@kepler.gl/reducers 3.3.0-alpha.7 → 3.3.0-alpha.9
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/cjs/interaction-utils.js +13 -3
- package/dist/cjs/map-state-updaters.js +2 -2
- package/dist/cjs/map-style-updaters.js +2 -2
- package/dist/cjs/ui-state-updaters.js +3 -15
- package/dist/cjs/vis-state-merger.js +4 -4
- package/dist/cjs/vis-state-updaters.js +813 -118
- package/dist/cjs/vis-state.js +2 -2
- package/dist/esm/interaction-utils.js +13 -3
- package/dist/esm/map-state-updaters.js +2 -2
- package/dist/esm/map-style-updaters.js +2 -2
- package/dist/esm/ui-state-updaters.js +3 -15
- package/dist/esm/vis-state-merger.js +4 -4
- package/dist/esm/vis-state-updaters.js +803 -117
- package/dist/esm/vis-state.js +2 -2
- package/dist/interaction-utils.d.ts +1 -1
- package/dist/map-style-updaters.d.ts +1 -3
- package/dist/vis-state-updaters.d.ts +58 -0
- package/package.json +17 -18
package/dist/cjs/vis-state.js
CHANGED
|
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
19
19
|
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
20
20
|
* It is used to generate documentation
|
|
21
21
|
*/
|
|
22
|
-
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), _actions.ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), _actions.ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), _actions.ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), _actions.ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), _actions.ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), _actions.ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), _actions.ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), _actions.ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), _actions.ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), _actions.ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), _actions.ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), _actions.ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), _actions.ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), _actions.ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), _actions.ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), _actions.ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), _actions.ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), _actions.ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), _actions.ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), _actions.ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), _actions.ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), _actions.ActionTypes.ADD_LAYER_GROUP, visStateUpdaters.addLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_GROUP, visStateUpdaters.removeLayerGroupUpdater), _actions.ActionTypes.UPDATE_LAYER_GROUP, visStateUpdaters.updateLayerGroupUpdater), _actions.ActionTypes.ADD_LAYER_TO_LAYER_GROUP, visStateUpdaters.addLayerToLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_FROM_LAYER_GROUP, visStateUpdaters.removeLayerFromLayerGroupUpdater), _actions.ActionTypes.SWAP_LAYER_ORDER_ENTRIES, visStateUpdaters.swapLayerOrderEntriesUpdater), _actions.ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), _actions.ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), _actions.ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), _actions.ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), _actions.ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), _actions.ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), _actions.ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), _actions.ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), _actions.ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.SET_EDITOR_FEATURE_PROPERTIES, visStateUpdaters.setEditorFeaturePropertiesUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_ALL_LAYERS, visStateUpdaters.setPolygonFilterAllLayersUpdater), _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.CONVERT_EDITOR_FEATURES_TO_LAYER, visStateUpdaters.convertEditorFeaturesToLayerUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), _actions.ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS, visStateUpdaters.loadColumnStatsUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_SUCCESS, visStateUpdaters.loadColumnStatsSuccessUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_ERROR, visStateUpdaters.loadColumnStatsErrorUpdater), _actions.ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), _actions.ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actions.ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.WMS_FEATURE_INFO, visStateUpdaters.wmsFeatureInfoUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), _actions.ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), _actions.ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), _actions.ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), _actions.ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), _actions.ActionTypes.ADD_ANNOTATION, visStateUpdaters.addAnnotationUpdater), _actions.ActionTypes.REMOVE_ANNOTATION, visStateUpdaters.removeAnnotationUpdater), _actions.ActionTypes.UPDATE_ANNOTATION, visStateUpdaters.updateAnnotationUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.DUPLICATE_ANNOTATION, visStateUpdaters.duplicateAnnotationUpdater), _actions.ActionTypes.SET_SELECTED_ANNOTATION, visStateUpdaters.setSelectedAnnotationUpdater), _actions.ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
|
|
22
|
+
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), _actions.ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), _actions.ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), _actions.ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), _actions.ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), _actions.ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), _actions.ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), _actions.ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), _actions.ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), _actions.ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), _actions.ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), _actions.ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), _actions.ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), _actions.ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), _actions.ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), _actions.ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), _actions.ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), _actions.ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), _actions.ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), _actions.ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), _actions.ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), _actions.ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), _actions.ActionTypes.ADD_LAYER_GROUP, visStateUpdaters.addLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_GROUP, visStateUpdaters.removeLayerGroupUpdater), _actions.ActionTypes.UPDATE_LAYER_GROUP, visStateUpdaters.updateLayerGroupUpdater), _actions.ActionTypes.ADD_LAYER_TO_LAYER_GROUP, visStateUpdaters.addLayerToLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_FROM_LAYER_GROUP, visStateUpdaters.removeLayerFromLayerGroupUpdater), _actions.ActionTypes.SWAP_LAYER_ORDER_ENTRIES, visStateUpdaters.swapLayerOrderEntriesUpdater), _actions.ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), _actions.ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), _actions.ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), _actions.ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), _actions.ActionTypes.REFRESH_DATASET, visStateUpdaters.refreshDatasetUpdater), _actions.ActionTypes.REFRESH_DATASET_SUCCESS, visStateUpdaters.refreshDatasetSuccessUpdater), _actions.ActionTypes.REFRESH_DATASET_ERROR, visStateUpdaters.refreshDatasetErrorUpdater), _actions.ActionTypes.REFRESH_DATASET_PROGRESS, visStateUpdaters.refreshDatasetProgressUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_TO_DATASET, visStateUpdaters.addToDatasetUpdater), _actions.ActionTypes.REMOVE_FROM_DATASET, visStateUpdaters.removeFromDatasetUpdater), _actions.ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), _actions.ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), _actions.ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), _actions.ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), _actions.ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), _actions.ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.UPDATE_DATASET, visStateUpdaters.updateDatasetUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.SET_EDITOR_FEATURE_PROPERTIES, visStateUpdaters.setEditorFeaturePropertiesUpdater), _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_ALL_LAYERS, visStateUpdaters.setPolygonFilterAllLayersUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.CONVERT_EDITOR_FEATURES_TO_LAYER, visStateUpdaters.convertEditorFeaturesToLayerUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), _actions.ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_COLUMN_STATS, visStateUpdaters.loadColumnStatsUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_SUCCESS, visStateUpdaters.loadColumnStatsSuccessUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_ERROR, visStateUpdaters.loadColumnStatsErrorUpdater), _actions.ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), _actions.ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actions.ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), _actions.ActionTypes.WMS_FEATURE_INFO, visStateUpdaters.wmsFeatureInfoUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), _actions.ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), _actions.ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), _actions.ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), _actions.ActionTypes.ADD_ANNOTATION, visStateUpdaters.addAnnotationUpdater), _actions.ActionTypes.REMOVE_ANNOTATION, visStateUpdaters.removeAnnotationUpdater), _actions.ActionTypes.UPDATE_ANNOTATION, visStateUpdaters.updateAnnotationUpdater), _actions.ActionTypes.DUPLICATE_ANNOTATION, visStateUpdaters.duplicateAnnotationUpdater), _actions.ActionTypes.SET_SELECTED_ANNOTATION, visStateUpdaters.setSelectedAnnotationUpdater), _actions.ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), (0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
|
|
23
23
|
|
|
24
24
|
// construct vis-state reducer
|
|
25
25
|
var visStateReducerFactory = exports.visStateReducerFactory = function visStateReducerFactory() {
|
|
@@ -32,4 +32,4 @@ var visStateReducerFactory = exports.visStateReducerFactory = function visStateR
|
|
|
32
32
|
);
|
|
33
33
|
};
|
|
34
34
|
var _default = exports["default"] = visStateReducerFactory();
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0ZJTFRFUiIsImFkZEZpbHRlclVwZGF0ZXIiLCJDUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUiIsImNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlciIsIkFERF9MQVlFUiIsImFkZExheWVyVXBkYXRlciIsIkFQUExZX0ZJTFRFUl9DT05GSUciLCJhcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIiLCJBUFBMWV9MQVlFUl9DT05GSUciLCJhcHBseUxheWVyQ29uZmlnVXBkYXRlciIsIkRVUExJQ0FURV9MQVlFUiIsImR1cGxpY2F0ZUxheWVyVXBkYXRlciIsIlNFVF9GSUxURVJfVklFVyIsInNldEZpbHRlclZpZXdVcGRhdGVyIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsImludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NMSUNLIiwibGF5ZXJDbGlja1VwZGF0ZXIiLCJMQVlFUl9DT05GSUdfQ0hBTkdFIiwibGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfU0VUX0lTX1ZBTElEIiwibGF5ZXJTZXRJc1ZhbGlkVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiQUREX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJHcm91cFVwZGF0ZXIiLCJSRU1PVkVfTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckdyb3VwVXBkYXRlciIsIlVQREFURV9MQVlFUl9HUk9VUCIsInVwZGF0ZUxheWVyR3JvdXBVcGRhdGVyIiwiQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJUb0xheWVyR3JvdXBVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSX0ZST01fTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlciIsIlNXQVBfTEFZRVJfT1JERVJfRU5UUklFUyIsInN3YXBMYXllck9yZGVyRW50cmllc1VwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9BTklNQVRJT04iLCJ0b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyIiwiVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRUQiLCJ1cGRhdGVGaWx0ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJTRVRfQU5JTUFUSU9OX0NPTkZJRyIsInNldEFuaW1hdGlvbkNvbmZpZ1VwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUUiLCJzZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUxheWVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0ZPUl9NQVAiLCJ0b2dnbGVMYXllckZvck1hcFVwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0JMRU5ESU5HIiwidXBkYXRlTGF5ZXJCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfT1ZFUkxBWV9CTEVORElORyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfVklTX0RBVEEiLCJ1cGRhdGVWaXNEYXRhVXBkYXRlciIsIlJFTkFNRV9EQVRBU0VUIiwicmVuYW1lRGF0YXNldFVwZGF0ZXIiLCJVUERBVEVfREFUQVNFVF9QUk9QUyIsInVwZGF0ZURhdGFzZXRQcm9wc1VwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJTRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFUyIsInNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlMiLCJzZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJDT05WRVJUX0VESVRPUl9GRUFUVVJFU19UT19MQVlFUiIsImNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9GRUFUVVJFIiwidG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIiLCJBUFBMWV9DUFVfRklMVEVSIiwiYXBwbHlDUFVGaWx0ZXJVcGRhdGVyIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJzb3J0VGFibGVDb2x1bW5VcGRhdGVyIiwiUElOX1RBQkxFX0NPTFVNTiIsInBpblRhYmxlQ29sdW1uVXBkYXRlciIsIkNPUFlfVEFCTEVfQ09MVU1OIiwiY29weVRhYmxlQ29sdW1uVXBkYXRlciIsIlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTIiwibG9hZENvbHVtblN0YXRzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1MiLCJsb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SIiwibG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJBRERfQU5OT1RBVElPTiIsImFkZEFubm90YXRpb25VcGRhdGVyIiwiUkVNT1ZFX0FOTk9UQVRJT04iLCJyZW1vdmVBbm5vdGF0aW9uVXBkYXRlciIsIlVQREFURV9BTk5PVEFUSU9OIiwidXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIiLCJEVVBMSUNBVEVfQU5OT1RBVElPTiIsImR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0FOTk9UQVRJT04iLCJzZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyIiwiQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1MiLCJjcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIiLCJTRVRfTE9BRElOR19JTkRJQ0FUT1IiLCJzZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlciIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJleHBvcnRzIiwiaW5pdGlhbFN0YXRlIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9ucyIsIklOSVRJQUxfVklTX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfRklMVEVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlGaWx0ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9MQVlFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5TGF5ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9WSUVXXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJWaWV3VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfU0VUX0lTX1ZBTElEXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclNldElzVmFsaWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9IT1ZFUl06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJIb3ZlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclR5cGVDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UT0dHTEVfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclRvTGF5ZXJHcm91cFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl9GUk9NX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1dBUF9MQVlFUl9PUkRFUl9FTlRSSUVTXTogdmlzU3RhdGVVcGRhdGVycy5zd2FwTGF5ZXJPcmRlckVudHJpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRklMVEVSX0FOSU1BVElPTl06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRmlsdGVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRURdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0FOSU1BVElPTl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEFuaW1hdGlvbkNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9GT1JfTUFQXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckZvck1hcFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TUExJVF9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0JMRU5ESU5HXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX09WRVJMQVlfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZU92ZXJsYXlCbGVuZGluZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9WSVNfREFUQV06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlVmlzRGF0YVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTkFNRV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW5hbWVEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRfUFJPUFNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRQcm9wc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GRUFUVVJFU106IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmVhdHVyZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFU106IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yRmVhdHVyZVByb3BlcnRpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ERUxFVEVfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMuZGVsZXRlRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0UG9seWdvbkZpbHRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJBbGxMYXllcnNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9NT0RFXTogdmlzU3RhdGVVcGRhdGVycy5zZXRFZGl0b3JNb2RlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQ09OVkVSVF9FRElUT1JfRkVBVFVSRVNfVE9fTEFZRVJdOlxuICAgIHZpc1N0YXRlVXBkYXRlcnMuY29udmVydEVkaXRvckZlYXR1cmVzVG9MYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFQUExZX0NQVV9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5Q1BVRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU09SVF9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNvcnRUYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlBJTl9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLnBpblRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQ09QWV9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLmNvcHlUYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldENvbHVtbkRpc3BsYXlGb3JtYXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NPTFVNTl9TVEFUU106IHZpc1N0YXRlVXBkYXRlcnMubG9hZENvbHVtblN0YXRzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9DT0xVTU5fU1RBVFNfU1VDQ0VTU106IHZpc1N0YXRlVXBkYXRlcnMubG9hZENvbHVtblN0YXRzU3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkQ29sdW1uU3RhdHNFcnJvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLk5FWFRfRklMRV9CQVRDSF06IHZpc1N0YXRlVXBkYXRlcnMubmV4dEZpbGVCYXRjaFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlBST0NFU1NfRklMRV9DT05URU5UXTogdmlzU3RhdGVVcGRhdGVycy5wcm9jZXNzRmlsZUNvbnRlbnRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnNldExheWVyQW5pbWF0aW9uVGltZUNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJGaWx0ZXJlZEl0ZW1zQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuV01TX0ZFQVRVUkVfSU5GT106IHZpc1N0YXRlVXBkYXRlcnMud21zRmVhdHVyZUluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TWU5DX1RJTUVfRklMVEVSX1dJVEhfTEFZRVJfVElNRUxJTkVdOlxuICAgIHZpc1N0YXRlVXBkYXRlcnMuc3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNZTkNfVElNRV9GSUxURVJfVElNRUxJTkVfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0VGltZUZpbHRlclRpbWVsaW5lTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZEVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFT1JERVJfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5yZW9yZGVyRWZmZWN0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlRWZmZWN0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRWZmZWN0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZEFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuRFVQTElDQVRFX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfU0VMRUNURURfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0U2VsZWN0ZWRBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmNyZWF0ZU5ld0RhdGFzZXRTdWNjZXNzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xPQURJTkdfSU5ESUNBVE9SXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlclxufTtcblxuLy8gY29uc3RydWN0IHZpcy1zdGF0ZSByZWR1Y2VyXG5leHBvcnQgY29uc3QgdmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSA9IChpbml0aWFsU3RhdGUgPSB7fSkgPT5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi52aXNTdGF0ZVVwZGF0ZXJzLklOSVRJQUxfVklTX1NUQVRFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICBpbml0aWFsU3RhdGVcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUF5RCxJQUFBSSxjQUFBLEVBTHpEO0FBQ0E7QUFBQSxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQs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QkFBZ0IsQ0FBQzRNLGdDQUFnQyxHQUU5RnRLLG9CQUFXLENBQUN1SyxVQUFVLEVBQUc3TSxnQkFBZ0IsQ0FBQzhNLGdCQUFnQixHQUUxRHhLLG9CQUFXLENBQUN5SyxjQUFjLEVBQUcvTSxnQkFBZ0IsQ0FBQ2dOLG9CQUFvQixHQUVsRTFLLG9CQUFXLENBQUMySyxhQUFhLEVBQUdqTixnQkFBZ0IsQ0FBQ2tOLG1CQUFtQixHQUVoRTVLLG9CQUFXLENBQUM2SyxhQUFhLEVBQUduTixnQkFBZ0IsQ0FBQ29OLG1CQUFtQixHQUVoRTlLLG9CQUFXLENBQUMrSyxjQUFjLEVBQUdyTixnQkFBZ0IsQ0FBQ3NOLG9CQUFvQixHQUVsRWhMLG9CQUFXLENBQUNpTCxpQkFBaUIsRUFBR3ZOLGdCQUFnQixDQUFDd04sdUJBQXVCLEdBRXhFbEwsb0JBQVcsQ0FBQ21MLGlCQUFpQixFQUFHek4sZ0JBQWdCLENBQUMwTix1QkFBdUIsT0FBQXhMLGdCQUFBLGlCQUFBQSxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGFBQUFoQyxjQUFBLEVBRXhFb0Msb0JBQVcsQ0FBQ3FMLG9CQUFvQixFQUFHM04sZ0JBQWdCLENBQUM0TiwwQkFBMEIsR0FFOUV0TCxvQkFBVyxDQUFDdUwsdUJBQXVCLEVBQUc3TixnQkFBZ0IsQ0FBQzhOLDRCQUE0QixHQUVuRnhMLG9CQUFXLENBQUN5TCwwQkFBMEIsRUFBRy9OLGdCQUFnQixDQUFDZ08sOEJBQThCLEdBRXhGMUwsb0JBQVcsQ0FBQzJMLHFCQUFxQixFQUFHak8sZ0JBQWdCLENBQUNrTywwQkFBMEIsRUFDakY7O0FBRUQ7QUFDTyxJQUFNQyxzQkFBc0IsR0FBQUMsT0FBQSxDQUFBRCxzQkFBQSxHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUE7RUFBQSxJQUFJRSxZQUFZLEdBQUF0TSxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBdU0sU0FBQSxHQUFBdk0sU0FBQSxNQUFHLENBQUMsQ0FBQztFQUFBO0lBQ3REO0lBQ0EsSUFBQXdNLDJCQUFhLEVBQUNsTSxhQUFhLEVBQUFQLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBLEtBQ3RCOUIsZ0JBQWdCLENBQUN3TyxpQkFBaUIsR0FDbENILFlBQVk7TUFDZkEsWUFBWSxFQUFaQTtJQUFZLEVBQ2I7RUFBQztBQUFBO0FBQUMsSUFBQUksUUFBQSxHQUFBTCxPQUFBLGNBRVVELHNCQUFzQixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0ZJTFRFUiIsImFkZEZpbHRlclVwZGF0ZXIiLCJDUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUiIsImNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlciIsIkFERF9MQVlFUiIsImFkZExheWVyVXBkYXRlciIsIkFQUExZX0ZJTFRFUl9DT05GSUciLCJhcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIiLCJBUFBMWV9MQVlFUl9DT05GSUciLCJhcHBseUxheWVyQ29uZmlnVXBkYXRlciIsIkRVUExJQ0FURV9MQVlFUiIsImR1cGxpY2F0ZUxheWVyVXBkYXRlciIsIlNFVF9GSUxURVJfVklFVyIsInNldEZpbHRlclZpZXdVcGRhdGVyIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsImludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NMSUNLIiwibGF5ZXJDbGlja1VwZGF0ZXIiLCJMQVlFUl9DT05GSUdfQ0hBTkdFIiwibGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfU0VUX0lTX1ZBTElEIiwibGF5ZXJTZXRJc1ZhbGlkVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiQUREX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJHcm91cFVwZGF0ZXIiLCJSRU1PVkVfTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckdyb3VwVXBkYXRlciIsIlVQREFURV9MQVlFUl9HUk9VUCIsInVwZGF0ZUxheWVyR3JvdXBVcGRhdGVyIiwiQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJUb0xheWVyR3JvdXBVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSX0ZST01fTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlciIsIlNXQVBfTEFZRVJfT1JERVJfRU5UUklFUyIsInN3YXBMYXllck9yZGVyRW50cmllc1VwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUIiwicmVmcmVzaERhdGFzZXRVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1MiLCJyZWZyZXNoRGF0YXNldFN1Y2Nlc3NVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX0VSUk9SIiwicmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIiLCJSRUZSRVNIX0RBVEFTRVRfUFJPR1JFU1MiLCJyZWZyZXNoRGF0YXNldFByb2dyZXNzVXBkYXRlciIsIkFERF9UT19EQVRBU0VUIiwiYWRkVG9EYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GUk9NX0RBVEFTRVQiLCJyZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsInRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIiLCJVUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlciIsIlNFVF9BTklNQVRJT05fQ09ORklHIiwic2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRSIsInNldExheWVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEIiwidXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfRk9SX01BUCIsInRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlciIsIlRPR0dMRV9TUExJVF9NQVAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQkxFTkRJTkciLCJ1cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9PVkVSTEFZX0JMRU5ESU5HIiwidXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9WSVNfREFUQSIsInVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwiUkVOQU1FX0RBVEFTRVQiLCJyZW5hbWVEYXRhc2V0VXBkYXRlciIsIlVQREFURV9EQVRBU0VUX1BST1BTIiwidXBkYXRlRGF0YXNldFByb3BzVXBkYXRlciIsIlVQREFURV9EQVRBU0VUIiwidXBkYXRlRGF0YXNldFVwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJTRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFUyIsInNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlMiLCJzZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJDT05WRVJUX0VESVRPUl9GRUFUVVJFU19UT19MQVlFUiIsImNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9GRUFUVVJFIiwidG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIiLCJBUFBMWV9DUFVfRklMVEVSIiwiYXBwbHlDUFVGaWx0ZXJVcGRhdGVyIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJzb3J0VGFibGVDb2x1bW5VcGRhdGVyIiwiUElOX1RBQkxFX0NPTFVNTiIsInBpblRhYmxlQ29sdW1uVXBkYXRlciIsIkNPUFlfVEFCTEVfQ09MVU1OIiwiY29weVRhYmxlQ29sdW1uVXBkYXRlciIsIlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTIiwibG9hZENvbHVtblN0YXRzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1MiLCJsb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SIiwibG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJBRERfQU5OT1RBVElPTiIsImFkZEFubm90YXRpb25VcGRhdGVyIiwiUkVNT1ZFX0FOTk9UQVRJT04iLCJyZW1vdmVBbm5vdGF0aW9uVXBkYXRlciIsIlVQREFURV9BTk5PVEFUSU9OIiwidXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIiLCJEVVBMSUNBVEVfQU5OT1RBVElPTiIsImR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0FOTk9UQVRJT04iLCJzZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyIiwiQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1MiLCJjcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIiLCJTRVRfTE9BRElOR19JTkRJQ0FUT1IiLCJzZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlciIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJleHBvcnRzIiwiaW5pdGlhbFN0YXRlIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9ucyIsIklOSVRJQUxfVklTX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfRklMVEVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlGaWx0ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9MQVlFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5TGF5ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9WSUVXXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJWaWV3VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfU0VUX0lTX1ZBTElEXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclNldElzVmFsaWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9IT1ZFUl06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJIb3ZlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclR5cGVDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UT0dHTEVfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclRvTGF5ZXJHcm91cFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl9GUk9NX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1dBUF9MQVlFUl9PUkRFUl9FTlRSSUVTXTogdmlzU3RhdGVVcGRhdGVycy5zd2FwTGF5ZXJPcmRlckVudHJpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRUZSRVNIX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9QUk9HUkVTU106IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRQcm9ncmVzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9UT19EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRUb0RhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRlJPTV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQU5JTUFUSU9OX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0ZPUl9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUxheWVyQmxlbmRpbmdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfT1ZFUkxBWV9CTEVORElOR106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfREFUQVNFVF9QUk9QU106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRGF0YXNldFByb3BzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRkVBVFVSRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZlYXR1cmVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9GRUFUVVJFX1BST1BFUlRJRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuREVMRVRFX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmRlbGV0ZUZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfUE9MWUdPTl9GSUxURVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9BTExfTEFZRVJTXTogdmlzU3RhdGVVcGRhdGVycy5zZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FRElUT1JfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9FRElUT1JfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPTlZFUlRfRURJVE9SX0ZFQVRVUkVTX1RPX0xBWUVSXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLmNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRklMVEVSX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUZpbHRlckZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9DUFVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hcHBseUNQVUZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNPUlRfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5zb3J0VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QSU5fVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5waW5UYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPUFlfVEFCTEVfQ09MVU1OXTogdmlzU3RhdGVVcGRhdGVycy5jb3B5VGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQ09MVU1OX0RJU1BMQVlfRk9STUFUXTogdmlzU3RhdGVVcGRhdGVycy5zZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9DT0xVTU5fU1RBVFNdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c1N1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NPTFVNTl9TVEFUU19FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ORVhUX0ZJTEVfQkFUQ0hdOiB2aXNTdGF0ZVVwZGF0ZXJzLm5leHRGaWxlQmF0Y2hVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QUk9DRVNTX0ZJTEVfQ09OVEVOVF06IHZpc1N0YXRlVXBkYXRlcnMucHJvY2Vzc0ZpbGVDb250ZW50VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9GSUxURVJFRF9JVEVNU19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLldNU19GRUFUVVJFX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLndtc0ZlYXR1cmVJbmZvVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnN5bmNUaW1lRmlsdGVyV2l0aExheWVyVGltZWxpbmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFRpbWVGaWx0ZXJUaW1lbGluZU1vZGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU9SREVSX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5hZGRBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkRVUExJQ0FURV9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5kdXBsaWNhdGVBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNSRUFURV9ORVdfREFUQVNFVF9TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5jcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MT0FESU5HX0lORElDQVRPUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TG9hZGluZ0luZGljYXRvclVwZGF0ZXJcbn07XG5cbi8vIGNvbnN0cnVjdCB2aXMtc3RhdGUgcmVkdWNlclxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkgPSAoaW5pdGlhbFN0YXRlID0ge30pID0+XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGFuZGxlQWN0aW9ucyhhY3Rpb25IYW5kbGVyLCB7XG4gICAgLi4udmlzU3RhdGVVcGRhdGVycy5JTklUSUFMX1ZJU19TVEFURSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBvcnQgZGVmYXVsdCB2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5KCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFBeUQsSUFBQUksY0FBQSxFQUx6RDtBQUNBO0FBQUEsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxH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
|
|
@@ -46,13 +46,23 @@ function autoFindTooltipFields(fields, maxDefaultTooltips) {
|
|
|
46
46
|
}) && type !== ALL_FIELD_TYPES.geojson && type !== ALL_FIELD_TYPES.geoarrow && type !== 'object';
|
|
47
47
|
});
|
|
48
48
|
return fieldsToShow.slice(0, maxDefaultTooltips).map(function (_ref5) {
|
|
49
|
-
var name = _ref5.name
|
|
49
|
+
var name = _ref5.name,
|
|
50
|
+
type = _ref5.type;
|
|
50
51
|
return {
|
|
51
52
|
name: name,
|
|
52
|
-
format:
|
|
53
|
+
format: getDefaultTooltipFormat(type)
|
|
53
54
|
};
|
|
54
55
|
});
|
|
55
56
|
}
|
|
57
|
+
function getDefaultTooltipFormat(type) {
|
|
58
|
+
if (type === ALL_FIELD_TYPES.timestamp) {
|
|
59
|
+
return TOOLTIP_FORMATS.DATE_TIME_L_LTS[TOOLTIP_KEY];
|
|
60
|
+
}
|
|
61
|
+
if (type === ALL_FIELD_TYPES.date) {
|
|
62
|
+
return TOOLTIP_FORMATS.DATE_L[TOOLTIP_KEY];
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
56
66
|
function _mergeFieldPairs(pairs) {
|
|
57
67
|
return pairs.reduce(function (prev, pair) {
|
|
58
68
|
return [].concat(_toConsumableArray(prev), _toConsumableArray(pair));
|
|
@@ -93,4 +103,4 @@ export function getTooltipDisplayValue(_ref7) {
|
|
|
93
103
|
}
|
|
94
104
|
return item !== null && item !== void 0 && item.format ? getFormatter(item === null || item === void 0 ? void 0 : item.format, field)(value) : field.displayFormat ? getFormatter(field.displayFormat, field)(value) : parseFieldValue(value, field.type);
|
|
95
105
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1RPT0xUSVBfRklFTERTIiwiQUxMX0ZJRUxEX1RZUEVTIiwiVFJJUF9QT0lOVF9GSUVMRFMiLCJUT09MVElQX0ZPUk1BVFMiLCJUT09MVElQX0tFWSIsIkNPTVBBUkVfVFlQRVMiLCJwYXJzZUZpZWxkVmFsdWUiLCJnZXRGb3JtYXR0ZXIiLCJpc051bWJlciIsImRlZmF1bHRGb3JtYXR0ZXIiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJUT09MVElQX01JTlVTX1NJR04iLCJORUdBVElWRV9TSUdOUyIsIkJSVVNIX0NPTkZJRyIsInJhbmdlIiwiZmluZEZpZWxkc1RvU2hvdyIsIl9yZWYiLCJmaWVsZHMiLCJpZCIsIm1heERlZmF1bHRUb29sdGlwcyIsImZpZWxkc1RvU2hvdyIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiZmluZCIsIl9yZWYyIiwibmFtZSIsInB1c2giLCJfZGVmaW5lUHJvcGVydHkiLCJsZW5ndGgiLCJhdXRvRmluZFRvb2x0aXBGaWVsZHMiLCJwdEZpZWxkcyIsIl9tZXJnZUZpZWxkUGFpcnMiLCJmaWx0ZXIiLCJfcmVmNCIsInR5cGUiLCJyZXBsYWNlIiwidHJpbSIsInNwbGl0IiwiZXZlcnkiLCJzZWciLCJpbmNsdWRlcyIsImdlb2pzb24iLCJnZW9hcnJvdyIsInNsaWNlIiwibWFwIiwiX3JlZjUiLCJmb3JtYXQiLCJwYWlycyIsInBhaXIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUiLCJfcmVmNiIsImZpZWxkIiwidmFsdWUiLCJwcmltYXJ5VmFsdWUiLCJjb21wYXJlVHlwZSIsImRpc3BsYXlEZWx0YVZhbHVlIiwiaW50ZWdlciIsInJlYWwiLCJkZWx0YVZhbHVlIiwiUkVMQVRJVkUiLCJkZWx0YUZvcm1hdCIsIkRFQ0lNQUxfUEVSQ0VOVF9GVUxMXzIiLCJkaXNwbGF5Rm9ybWF0IiwiREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzMiLCJkZWx0YUZpcnN0Q2hhciIsImNoYXJBdCIsImdldFRvb2x0aXBEaXNwbGF5VmFsdWUiLCJfcmVmNyIsIml0ZW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJhY3Rpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9UT09MVElQX0ZJRUxEUyxcbiAgQUxMX0ZJRUxEX1RZUEVTLFxuICBUUklQX1BPSU5UX0ZJRUxEUyxcbiAgVE9PTFRJUF9GT1JNQVRTLFxuICBUT09MVElQX0tFWSxcbiAgQ09NUEFSRV9UWVBFU1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7RmllbGQsIFRvb2x0aXBGaWVsZCwgQ29tcGFyZVR5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtwYXJzZUZpZWxkVmFsdWUsIGdldEZvcm1hdHRlciwgaXNOdW1iZXIsIGRlZmF1bHRGb3JtYXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxuLyoqXG4gKiBNaW51cyBzaWduIHVzZWQgaW4gdG9vbHRpcCBmb3JtYXR0aW5nLlxuICogXFx1MjIxMiBvciBcXHUwMDJEIGlzIHRoZSBtaW51cyBzaWduIHRoYXQgZDMtZm9ybWF0IHVzZXMgZm9yIGRlY2ltYWwgbnVtYmVyIGZvcm1hdHRpbmdcbiAqIGQzLWZvcm1hdCAyLjAgdXNlcyBcXHUwMDJEXG4gKi9cbmV4cG9ydCBjb25zdCBUT09MVElQX01JTlVTX1NJR04gPSAnXFx1MjIxMic7XG4vLyBib3RoIGFyZSBwb3NpYmxlIG5lZ2F0aXZlIHNpZ25zXG5leHBvcnQgY29uc3QgTkVHQVRJVkVfU0lHTlMgPSBbJ1xcdTAwMkQnLCAnXFx1MjIxMiddO1xuXG5leHBvcnQgY29uc3QgQlJVU0hfQ09ORklHOiB7XG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufSA9IHtcbiAgcmFuZ2U6IFswLCA1MF1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmllbGRzVG9TaG93KHtcbiAgZmllbGRzLFxuICBpZCxcbiAgbWF4RGVmYXVsdFRvb2x0aXBzXG59OiB7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgaWQ6IHN0cmluZztcbiAgbWF4RGVmYXVsdFRvb2x0aXBzOiBudW1iZXI7XG59KToge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXTtcbn0ge1xuICAvLyBmaXJzdCBmaW5kIGRlZmF1bHQgdG9vbHRpcCBmaWVsZHMgZm9yIHRyaXBzXG4gIGNvbnN0IGZpZWxkc1RvU2hvdyA9IERFRkFVTFRfVE9PTFRJUF9GSUVMRFMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgaWYgKGZpZWxkcy5maW5kKCh7bmFtZX0pID0+IGN1cnIubmFtZSA9PT0gbmFtZSkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHByZXYucHVzaChjdXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIFtpZF06IGZpZWxkc1RvU2hvdy5sZW5ndGggPyBmaWVsZHNUb1Nob3cgOiBhdXRvRmluZFRvb2x0aXBGaWVsZHMoZmllbGRzLCBtYXhEZWZhdWx0VG9vbHRpcHMpXG4gIH07XG59XG5cbmZ1bmN0aW9uIGF1dG9GaW5kVG9vbHRpcEZpZWxkcyhmaWVsZHMsIG1heERlZmF1bHRUb29sdGlwcykge1xuICBjb25zdCBwdEZpZWxkcyA9IF9tZXJnZUZpZWxkUGFpcnMoVFJJUF9QT0lOVF9GSUVMRFMpO1xuICAvLyBmaWx0ZXIgb3V0IHRoZSBkZWZhdWx0IGZpZWxkcyB0aGF0IGNvbnRhaW5zIGxhdCBhbmQgbG5nIGFuZCBhbnkgZ2VvbWV0cnlcbiAgY29uc3QgZmllbGRzVG9TaG93ID0gZmllbGRzLmZpbHRlcihcbiAgICAoe25hbWUsIHR5cGV9KSA9PlxuICAgICAgbmFtZVxuICAgICAgICAucmVwbGFjZSgvW18sLl0rL2csICcgJylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAuZXZlcnkoc2VnID0+ICFwdEZpZWxkcy5pbmNsdWRlcyhzZWcpKSAmJlxuICAgICAgdHlwZSAhPT0gQUxMX0ZJRUxEX1RZUEVTLmdlb2pzb24gJiZcbiAgICAgIHR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5nZW9hcnJvdyAmJlxuICAgICAgdHlwZSAhPT0gJ29iamVjdCdcbiAgKTtcblxuICByZXR1cm4gZmllbGRzVG9TaG93LnNsaWNlKDAsIG1heERlZmF1bHRUb29sdGlwcykubWFwKCh7bmFtZX0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGZvcm1hdDogbnVsbFxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBfbWVyZ2VGaWVsZFBhaXJzKHBhaXJzKSB7XG4gIHJldHVybiBwYWlycy5yZWR1Y2UoKHByZXYsIHBhaXIpID0+IFsuLi5wcmV2LCAuLi5wYWlyXSwgW10pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgZmllbGQsXG4gIHZhbHVlLFxuICBwcmltYXJ5VmFsdWUsXG4gIGNvbXBhcmVUeXBlXG59OiB7XG4gIGZpZWxkOiBGaWVsZDtcbiAgdmFsdWU6IGFueTtcbiAgcHJpbWFyeVZhbHVlOiBhbnk7XG4gIGNvbXBhcmVUeXBlPzogQ29tcGFyZVR5cGU7XG59KTogc3RyaW5nIHwgbnVsbCB7XG4gIGxldCBkaXNwbGF5RGVsdGFWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKFxuICAgIC8vIGNvbXBhcmlzb24gbW9kZSBvbmx5IHdvcmtzIGZvciBudW1lcmljIGZpZWxkXG4gICAgZmllbGQudHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLmludGVnZXIgfHxcbiAgICBmaWVsZC50eXBlID09PSBBTExfRklFTERfVFlQRVMucmVhbFxuICApIHtcbiAgICBpZiAoaXNOdW1iZXIocHJpbWFyeVZhbHVlKSAmJiBpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgIGNvbnN0IGRlbHRhVmFsdWUgPVxuICAgICAgICBjb21wYXJlVHlwZSA9PT0gQ09NUEFSRV9UWVBFUy5SRUxBVElWRSA/IHZhbHVlIC8gcHJpbWFyeVZhbHVlIC0gMSA6IHZhbHVlIC0gcHJpbWFyeVZhbHVlO1xuICAgICAgY29uc3QgZGVsdGFGb3JtYXQgPVxuICAgICAgICBjb21wYXJlVHlwZSA9PT0gQ09NUEFSRV9UWVBFUy5SRUxBVElWRVxuICAgICAgICAgID8gVE9PTFRJUF9GT1JNQVRTLkRFQ0lNQUxfUEVSQ0VOVF9GVUxMXzJbVE9PTFRJUF9LRVldXG4gICAgICAgICAgOiBmaWVsZC5kaXNwbGF5Rm9ybWF0IHx8IFRPT0xUSVBfRk9STUFUUy5ERUNJTUFMX0RFQ0lNQUxfRklYRURfM1tUT09MVElQX0tFWV07XG5cbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZ2V0Rm9ybWF0dGVyKGRlbHRhRm9ybWF0LCBmaWVsZCkoZGVsdGFWYWx1ZSk7XG5cbiAgICAgIC8vIHNhZmVseSBjYXN0IHN0cmluZ1xuICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBkZWZhdWx0Rm9ybWF0dGVyKGRpc3BsYXlEZWx0YVZhbHVlKTtcbiAgICAgIGNvbnN0IGRlbHRhRmlyc3RDaGFyID0gZGlzcGxheURlbHRhVmFsdWUuY2hhckF0KDApO1xuXG4gICAgICBpZiAoZGVsdGFGaXJzdENoYXIgIT09ICcrJyAmJiAhTkVHQVRJVkVfU0lHTlMuaW5jbHVkZXMoZGVsdGFGaXJzdENoYXIpKSB7XG4gICAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gYCske2Rpc3BsYXlEZWx0YVZhbHVlfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gVE9PTFRJUF9NSU5VU19TSUdOO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwbGF5RGVsdGFWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe1xuICBpdGVtLFxuICBmaWVsZCxcbiAgdmFsdWVcbn06IHtcbiAgaXRlbTogVG9vbHRpcEZpZWxkIHwgdW5kZWZpbmVkO1xuICBmaWVsZDogRmllbGQ7XG4gIHZhbHVlOiBhbnk7XG59KTogc3RyaW5nIHtcbiAgaWYgKCFub3ROdWxsb3JVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW0/LmZvcm1hdFxuICAgID8gZ2V0Rm9ybWF0dGVyKGl0ZW0/LmZvcm1hdCwgZmllbGQpKHZhbHVlKVxuICAgIDogZmllbGQuZGlzcGxheUZvcm1hdFxuICAgID8gZ2V0Rm9ybWF0dGVyKGZpZWxkLmRpc3BsYXlGb3JtYXQsIGZpZWxkKSh2YWx1ZSlcbiAgICA6IHBhcnNlRmllbGRWYWx1ZSh2YWx1ZSwgZmllbGQudHlwZSk7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTs7QUFFQSxTQUNFQSxzQkFBc0IsRUFDdEJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLFdBQVcsRUFDWEMsYUFBYSxRQUNSLHNCQUFzQjtBQUc3QixTQUFRQyxlQUFlLEVBQUVDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxnQkFBZ0IsUUFBTyxrQkFBa0I7QUFDMUYsU0FBUUMsa0JBQWtCLFFBQU8seUJBQXlCOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxJQUFNQyxrQkFBa0IsR0FBRyxRQUFRO0FBQzFDO0FBQ0EsT0FBTyxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxHQUFRLEVBQUUsUUFBUSxDQUFDO0FBRWxELE9BQU8sSUFBTUMsWUFFWixHQUFHO0VBQ0ZDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0FBQ2YsQ0FBQztBQUVELE9BQU8sU0FBU0MsZ0JBQWdCQSxDQUFBQyxJQUFBLEVBVTlCO0VBQUEsSUFUQUMs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
|
|
106
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1RPT0xUSVBfRklFTERTIiwiQUxMX0ZJRUxEX1RZUEVTIiwiVFJJUF9QT0lOVF9GSUVMRFMiLCJUT09MVElQX0ZPUk1BVFMiLCJUT09MVElQX0tFWSIsIkNPTVBBUkVfVFlQRVMiLCJwYXJzZUZpZWxkVmFsdWUiLCJnZXRGb3JtYXR0ZXIiLCJpc051bWJlciIsImRlZmF1bHRGb3JtYXR0ZXIiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJUT09MVElQX01JTlVTX1NJR04iLCJORUdBVElWRV9TSUdOUyIsIkJSVVNIX0NPTkZJRyIsInJhbmdlIiwiZmluZEZpZWxkc1RvU2hvdyIsIl9yZWYiLCJmaWVsZHMiLCJpZCIsIm1heERlZmF1bHRUb29sdGlwcyIsImZpZWxkc1RvU2hvdyIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiZmluZCIsIl9yZWYyIiwibmFtZSIsInB1c2giLCJfZGVmaW5lUHJvcGVydHkiLCJsZW5ndGgiLCJhdXRvRmluZFRvb2x0aXBGaWVsZHMiLCJwdEZpZWxkcyIsIl9tZXJnZUZpZWxkUGFpcnMiLCJmaWx0ZXIiLCJfcmVmNCIsInR5cGUiLCJyZXBsYWNlIiwidHJpbSIsInNwbGl0IiwiZXZlcnkiLCJzZWciLCJpbmNsdWRlcyIsImdlb2pzb24iLCJnZW9hcnJvdyIsInNsaWNlIiwibWFwIiwiX3JlZjUiLCJmb3JtYXQiLCJnZXREZWZhdWx0VG9vbHRpcEZvcm1hdCIsInRpbWVzdGFtcCIsIkRBVEVfVElNRV9MX0xUUyIsImRhdGUiLCJEQVRFX0wiLCJwYWlycyIsInBhaXIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUiLCJfcmVmNiIsImZpZWxkIiwidmFsdWUiLCJwcmltYXJ5VmFsdWUiLCJjb21wYXJlVHlwZSIsImRpc3BsYXlEZWx0YVZhbHVlIiwiaW50ZWdlciIsInJlYWwiLCJkZWx0YVZhbHVlIiwiUkVMQVRJVkUiLCJkZWx0YUZvcm1hdCIsIkRFQ0lNQUxfUEVSQ0VOVF9GVUxMXzIiLCJkaXNwbGF5Rm9ybWF0IiwiREVDSU1BTF9ERUNJTUFMX0ZJWEVEXzMiLCJkZWx0YUZpcnN0Q2hhciIsImNoYXJBdCIsImdldFRvb2x0aXBEaXNwbGF5VmFsdWUiLCJfcmVmNyIsIml0ZW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJhY3Rpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9UT09MVElQX0ZJRUxEUyxcbiAgQUxMX0ZJRUxEX1RZUEVTLFxuICBUUklQX1BPSU5UX0ZJRUxEUyxcbiAgVE9PTFRJUF9GT1JNQVRTLFxuICBUT09MVElQX0tFWSxcbiAgQ09NUEFSRV9UWVBFU1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7RmllbGQsIFRvb2x0aXBGaWVsZCwgQ29tcGFyZVR5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtwYXJzZUZpZWxkVmFsdWUsIGdldEZvcm1hdHRlciwgaXNOdW1iZXIsIGRlZmF1bHRGb3JtYXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxuLyoqXG4gKiBNaW51cyBzaWduIHVzZWQgaW4gdG9vbHRpcCBmb3JtYXR0aW5nLlxuICogXFx1MjIxMiBvciBcXHUwMDJEIGlzIHRoZSBtaW51cyBzaWduIHRoYXQgZDMtZm9ybWF0IHVzZXMgZm9yIGRlY2ltYWwgbnVtYmVyIGZvcm1hdHRpbmdcbiAqIGQzLWZvcm1hdCAyLjAgdXNlcyBcXHUwMDJEXG4gKi9cbmV4cG9ydCBjb25zdCBUT09MVElQX01JTlVTX1NJR04gPSAnXFx1MjIxMic7XG4vLyBib3RoIGFyZSBwb3NpYmxlIG5lZ2F0aXZlIHNpZ25zXG5leHBvcnQgY29uc3QgTkVHQVRJVkVfU0lHTlMgPSBbJ1xcdTAwMkQnLCAnXFx1MjIxMiddO1xuXG5leHBvcnQgY29uc3QgQlJVU0hfQ09ORklHOiB7XG4gIHJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xufSA9IHtcbiAgcmFuZ2U6IFswLCA1MF1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRmllbGRzVG9TaG93KHtcbiAgZmllbGRzLFxuICBpZCxcbiAgbWF4RGVmYXVsdFRvb2x0aXBzXG59OiB7XG4gIGZpZWxkczogRmllbGRbXTtcbiAgaWQ6IHN0cmluZztcbiAgbWF4RGVmYXVsdFRvb2x0aXBzOiBudW1iZXI7XG59KToge1xuICBba2V5OiBzdHJpbmddOiBUb29sdGlwRmllbGRbXTtcbn0ge1xuICAvLyBmaXJzdCBmaW5kIGRlZmF1bHQgdG9vbHRpcCBmaWVsZHMgZm9yIHRyaXBzXG4gIGNvbnN0IGZpZWxkc1RvU2hvdyA9IERFRkFVTFRfVE9PTFRJUF9GSUVMRFMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgaWYgKGZpZWxkcy5maW5kKCh7bmFtZX0pID0+IGN1cnIubmFtZSA9PT0gbmFtZSkpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHByZXYucHVzaChjdXJyKTtcbiAgICB9XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIFtpZF06IGZpZWxkc1RvU2hvdy5sZW5ndGggPyBmaWVsZHNUb1Nob3cgOiBhdXRvRmluZFRvb2x0aXBGaWVsZHMoZmllbGRzLCBtYXhEZWZhdWx0VG9vbHRpcHMpXG4gIH07XG59XG5cbmZ1bmN0aW9uIGF1dG9GaW5kVG9vbHRpcEZpZWxkcyhmaWVsZHMsIG1heERlZmF1bHRUb29sdGlwcykge1xuICBjb25zdCBwdEZpZWxkcyA9IF9tZXJnZUZpZWxkUGFpcnMoVFJJUF9QT0lOVF9GSUVMRFMpO1xuICAvLyBmaWx0ZXIgb3V0IHRoZSBkZWZhdWx0IGZpZWxkcyB0aGF0IGNvbnRhaW5zIGxhdCBhbmQgbG5nIGFuZCBhbnkgZ2VvbWV0cnlcbiAgY29uc3QgZmllbGRzVG9TaG93ID0gZmllbGRzLmZpbHRlcihcbiAgICAoe25hbWUsIHR5cGV9KSA9PlxuICAgICAgbmFtZVxuICAgICAgICAucmVwbGFjZSgvW18sLl0rL2csICcgJylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAuZXZlcnkoc2VnID0+ICFwdEZpZWxkcy5pbmNsdWRlcyhzZWcpKSAmJlxuICAgICAgdHlwZSAhPT0gQUxMX0ZJRUxEX1RZUEVTLmdlb2pzb24gJiZcbiAgICAgIHR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5nZW9hcnJvdyAmJlxuICAgICAgdHlwZSAhPT0gJ29iamVjdCdcbiAgKTtcblxuICByZXR1cm4gZmllbGRzVG9TaG93LnNsaWNlKDAsIG1heERlZmF1bHRUb29sdGlwcykubWFwKCh7bmFtZSwgdHlwZX0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIGZvcm1hdDogZ2V0RGVmYXVsdFRvb2x0aXBGb3JtYXQodHlwZSlcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFRvb2x0aXBGb3JtYXQodHlwZT86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBpZiAodHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcCkge1xuICAgIHJldHVybiBUT09MVElQX0ZPUk1BVFMuREFURV9USU1FX0xfTFRTW1RPT0xUSVBfS0VZXTtcbiAgfVxuICBpZiAodHlwZSA9PT0gQUxMX0ZJRUxEX1RZUEVTLmRhdGUpIHtcbiAgICByZXR1cm4gVE9PTFRJUF9GT1JNQVRTLkRBVEVfTFtUT09MVElQX0tFWV07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIF9tZXJnZUZpZWxkUGFpcnMocGFpcnMpIHtcbiAgcmV0dXJuIHBhaXJzLnJlZHVjZSgocHJldiwgcGFpcikgPT4gWy4uLnByZXYsIC4uLnBhaXJdLCBbXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICBmaWVsZCxcbiAgdmFsdWUsXG4gIHByaW1hcnlWYWx1ZSxcbiAgY29tcGFyZVR5cGVcbn06IHtcbiAgZmllbGQ6IEZpZWxkO1xuICB2YWx1ZTogYW55O1xuICBwcmltYXJ5VmFsdWU6IGFueTtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbn0pOiBzdHJpbmcgfCBudWxsIHtcbiAgbGV0IGRpc3BsYXlEZWx0YVZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBpZiAoXG4gICAgLy8gY29tcGFyaXNvbiBtb2RlIG9ubHkgd29ya3MgZm9yIG51bWVyaWMgZmllbGRcbiAgICBmaWVsZC50eXBlID09PSBBTExfRklFTERfVFlQRVMuaW50ZWdlciB8fFxuICAgIGZpZWxkLnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5yZWFsXG4gICkge1xuICAgIGlmIChpc051bWJlcihwcmltYXJ5VmFsdWUpICYmIGlzTnVtYmVyKHZhbHVlKSkge1xuICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9XG4gICAgICAgIGNvbXBhcmVUeXBlID09PSBDT01QQVJFX1RZUEVTLlJFTEFUSVZFID8gdmFsdWUgLyBwcmltYXJ5VmFsdWUgLSAxIDogdmFsdWUgLSBwcmltYXJ5VmFsdWU7XG4gICAgICBjb25zdCBkZWx0YUZvcm1hdCA9XG4gICAgICAgIGNvbXBhcmVUeXBlID09PSBDT01QQVJFX1RZUEVTLlJFTEFUSVZFXG4gICAgICAgICAgPyBUT09MVElQX0ZPUk1BVFMuREVDSU1BTF9QRVJDRU5UX0ZVTExfMltUT09MVElQX0tFWV1cbiAgICAgICAgICA6IGZpZWxkLmRpc3BsYXlGb3JtYXQgfHwgVE9PTFRJUF9GT1JNQVRTLkRFQ0lNQUxfREVDSU1BTF9GSVhFRF8zW1RPT0xUSVBfS0VZXTtcblxuICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBnZXRGb3JtYXR0ZXIoZGVsdGFGb3JtYXQsIGZpZWxkKShkZWx0YVZhbHVlKTtcblxuICAgICAgLy8gc2FmZWx5IGNhc3Qgc3RyaW5nXG4gICAgICBkaXNwbGF5RGVsdGFWYWx1ZSA9IGRlZmF1bHRGb3JtYXR0ZXIoZGlzcGxheURlbHRhVmFsdWUpO1xuICAgICAgY29uc3QgZGVsdGFGaXJzdENoYXIgPSBkaXNwbGF5RGVsdGFWYWx1ZS5jaGFyQXQoMCk7XG5cbiAgICAgIGlmIChkZWx0YUZpcnN0Q2hhciAhPT0gJysnICYmICFORUdBVElWRV9TSUdOUy5pbmNsdWRlcyhkZWx0YUZpcnN0Q2hhcikpIHtcbiAgICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBgKyR7ZGlzcGxheURlbHRhVmFsdWV9YDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBUT09MVElQX01JTlVTX1NJR047XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpc3BsYXlEZWx0YVZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSh7XG4gIGl0ZW0sXG4gIGZpZWxkLFxuICB2YWx1ZVxufToge1xuICBpdGVtOiBUb29sdGlwRmllbGQgfCB1bmRlZmluZWQ7XG4gIGZpZWxkOiBGaWVsZDtcbiAgdmFsdWU6IGFueTtcbn0pOiBzdHJpbmcge1xuICBpZiAoIW5vdE51bGxvclVuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gaXRlbT8uZm9ybWF0XG4gICAgPyBnZXRGb3JtYXR0ZXIoaXRlbT8uZm9ybWF0LCBmaWVsZCkodmFsdWUpXG4gICAgOiBmaWVsZC5kaXNwbGF5Rm9ybWF0XG4gICAgPyBnZXRGb3JtYXR0ZXIoZmllbGQuZGlzcGxheUZvcm1hdCwgZmllbGQpKHZhbHVlKVxuICAgIDogcGFyc2VGaWVsZFZhbHVlKHZhbHVlLCBmaWVsZC50eXBlKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBOztBQUVBLFNBQ0VBLHNCQUFzQixFQUN0QkMsZUFB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
|
|
@@ -10,7 +10,7 @@ import { booleanWithin } from '@turf/boolean-within';
|
|
|
10
10
|
import { bboxPolygon } from '@turf/bbox-polygon';
|
|
11
11
|
import { fitBounds } from '@math.gl/web-mercator';
|
|
12
12
|
import deepmerge from 'deepmerge';
|
|
13
|
-
import pick from '
|
|
13
|
+
import pick from 'es-toolkit/compat/pick';
|
|
14
14
|
import { getCenterAndZoomFromBounds, validateBounds, MAPBOX_TILE_SIZE, validateViewPort } from '@kepler.gl/utils';
|
|
15
15
|
import { MapSplitMode, MapViewMode, DEFAULT_GLOBE_CONFIG, GLOBE_MIN_ZOOM, GLOBE_MAX_ZOOM, GLOBE_MAX_LATITUDE } from '@kepler.gl/constants';
|
|
16
16
|
|
|
@@ -647,4 +647,4 @@ function updateViewport(originalViewport, viewportUpdates) {
|
|
|
647
647
|
}
|
|
648
648
|
return newViewport;
|
|
649
649
|
}
|
|
650
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW9WaWV3cG9ydCIsImJvb2xlYW5XaXRoaW4iLCJiYm94UG9seWdvbiIsImZpdEJvdW5kcyIsImRlZXBtZXJnZSIsInBpY2siLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsInZhbGlkYXRlQm91bmRzIiwiTUFQQk9YX1RJTEVfU0laRSIsInZhbGlkYXRlVmlld1BvcnQiLCJNYXBTcGxpdE1vZGUiLCJNYXBWaWV3TW9kZSIsIkRFRkFVTFRfR0xPQkVfQ09ORklHIiwiR0xPQkVfTUlOX1pPT00iLCJHTE9CRV9NQVhfWk9PTSIsIkdMT0JFX01BWF9MQVRJVFVERSIsIm1hcFN0YXRlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVEFURSIsInBpdGNoIiwiYmVhcmluZyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsImRyYWdSb3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsIm1pblpvb20iLCJ1bmRlZmluZWQiLCJtYXhab29tIiwibWF4UGl0Y2giLCJtYXhCb3VuZHMiLCJpc1NwbGl0IiwiaXNWaWV3cG9ydFN5bmNlZCIsImlzWm9vbUxvY2tlZCIsInNwbGl0TWFwVmlld3BvcnRzIiwibWFwVmlld01vZGUiLCJNT0RFXzJEIiwiZ2xvYmUiLCJlbmFibGVkIiwiY29uZmlnIiwibWFwU3BsaXRNb2RlIiwiU0lOR0xFX01BUCIsInN3aXBlQ29tcGFyZVBlcmNlbnRhZ2UiLCJ1cGRhdGVNYXBVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJfYWN0aW9uJHBheWxvYWQiLCJwYXlsb2FkIiwiaW5wdXRWaWV3cG9ydCIsInZpZXdwb3J0IiwiX2FjdGlvbiRwYXlsb2FkJG1hcEluIiwibWFwSW5kZXgiLCJ1cGRhdGVWaWV3cG9ydCIsIm90aGVyVmlld3BvcnRNYXBJbmRleCIsIm1hcCIsImN1cnJlbnRWaWV3cG9ydCIsImkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIl9vYmplY3RTcHJlYWQiLCJmaXRCb3VuZHNVcGRhdGVyIiwiX2FjdGlvbiRtZXRhIiwiX3N0YXRlJGdsb2JlIiwiY2VudGVyQW5kWm9vbSIsInBhZGRpbmciLCJtZXRhIiwiaXNHbG9iZU1vZGUiLCJCb29sZWFuIiwiTWF0aCIsIm1pbiIsIm1heCIsIm5ld1N0YXRlIiwiY2VudGVyIiwibGVuZ3RoIiwidG9nZ2xlUGVyc3BlY3RpdmVVcGRhdGVyIiwiX3N0YXRlJGdsb2JlMiIsIndhc0dsb2JlRW5hYmxlZCIsIk1PREVfM0QiLCJzZXRNYXBWaWV3TW9kZVVwZGF0ZXIiLCJfc3RhdGUkZ2xvYmUzIiwibmV4dFN0YXRlIiwiTU9ERV9HTE9CRSIsImdsb2JlQ29uZmlnQ2hhbmdlVXBkYXRlciIsInJlc2V0TWFwQ29uZmlnVXBkYXRlciIsImluaXRpYWxTdGF0ZSIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwiX3JlZiIsIl9yZWYkcGF5bG9hZCIsIl9yZWYkcGF5bG9hZCRjb25maWciLCJfcmVmJHBheWxvYWQkb3B0aW9ucyIsIm9wdGlvbnMiLCJfcmVmJHBheWxvYWQkYm91bmRzIiwiYm91bmRzIiwibWFwU3RhdGUiLCJtZXJnZWRTdGF0ZSIsImFycmF5TWVyZ2UiLCJfZGVzdGluYXRpb25BcnJheSIsInNvdXJjZUFycmF5IiwiY2VudGVyTWFwIiwiZ2V0TWFwRGltRm9yU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJEVUFMX01BUCIsInNldE1hcFNwbGl0TW9kZVVwZGF0ZXIiLCJwcmV2TW9kZSIsIlNXSVBFX0NPTVBBUkUiLCJzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciIsInBlcmNlbnRhZ2UiLCJjbGFtcGVkIiwidG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXIiLCJuZXdNYXBTdGF0ZSIsImxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCIsImZpbmRJbmRleCIsInYiLCJsZWZ0Vmlld3BvcnQiLCJwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSIsInJpZ2h0Vmlld3BvcnQiLCJ1cGRhdGVWaWV3cG9ydEJhc2VkT25Cb3VuZHMiLCJ2aWV3cG9ydEJvdW5kcyIsInZpZXdwb3J0Qm91bmRzUG9seWdvbiIsIm5ld1N0YXRlTWF4Qm91bmRzIiwibWF4Qm91bmRzUG9seWdvbiIsImhhc01heEJvdW5kc0NoYW5nZWQiLCJldmVyeSIsInZhbCIsImlkeCIsIl9maXRCb3VuZHMiLCJkZWZpbmVkUHJvcHMiLCJvYmoiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjdSIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheSIsImsiLCJfZGVmaW5lUHJvcGVydHkiLCJvcmlnaW5hbFZpZXdwb3J0Iiwidmlld3BvcnRVcGRhdGVzIiwiX2dsb2JlIiwibmV3Vmlld3BvcnQiLCJpc0dsb2JlIiwiX25ld1ZpZXdwb3J0JGxhdGl0dWRlIiwiem9vbUFkanVzdG1lbnQiLCJsb2cyIiwiY29zIiwiUEkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQge2Jvb2xlYW5XaXRoaW59IGZyb20gJ0B0dXJmL2Jvb2xlYW4td2l0aGluJztcbmltcG9ydCB7YmJveFBvbHlnb259IGZyb20gJ0B0dXJmL2Jib3gtcG9seWdvbic7XG5pbXBvcnQge2ZpdEJvdW5kc30gZnJvbSAnQG1hdGguZ2wvd2ViLW1lcmNhdG9yJztcbmltcG9ydCBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCBwaWNrIGZyb20gJ2xvZGFzaC9waWNrJztcblxuaW1wb3J0IHtcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIHZhbGlkYXRlQm91bmRzLFxuICBNQVBCT1hfVElMRV9TSVpFLFxuICB2YWxpZGF0ZVZpZXdQb3J0XG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBTdGF0ZUFjdGlvbnMsIFJlY2VpdmVNYXBDb25maWdQYXlsb2FkLCBBY3Rpb25UeXBlc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TWFwU3RhdGUsIEJvdW5kcywgVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtNYXBTcGxpdE1vZGUsIE1hcFZpZXdNb2RlLCBERUZBVUxUX0dMT0JFX0NPTkZJRywgR0xPQkVfTUlOX1pPT00sIEdMT0JFX01BWF9aT09NLCBHTE9CRV9NQVhfTEFUSVRVREV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuLyoqXG4gKiBVcGRhdGVycyBmb3IgYG1hcFN0YXRlYCByZWR1Y2VyLiBDYW4gYmUgdXNlZCBpbiB5b3VyIHJvb3QgcmVkdWNlciB0byBkaXJlY3RseSBtb2RpZnkga2VwbGVyLmdsJ3Mgc3RhdGUuXG4gKiBSZWFkIG1vcmUgYWJvdXQgW1VzaW5nIHVwZGF0ZXJzXSguLi9hZHZhbmNlZC11c2FnZS91c2luZy11cGRhdGVycy5tZClcbiAqIEBwdWJsaWNcbiAqIEBleGFtcGxlXG4gKlxuICogaW1wb3J0IGtlcGxlckdsUmVkdWNlciwge21hcFN0YXRlVXBkYXRlcnN9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gY2xpY2sgYnV0dG9uIHRvIGNsb3NlIHNpZGUgcGFuZWxcbiAqICAgIGNhc2UgJ0NMSUNLX0JVVFRPTic6XG4gKiAgICAgIHJldHVybiB7XG4gKiAgICAgICAgLi4uc3RhdGUsXG4gKiAgICAgICAga2VwbGVyR2w6IHtcbiAqICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICogICAgICAgICAgZm9vOiB7XG4gKiAgICAgICAgICAgICAuLi5zdGF0ZS5rZXBsZXJHbC5mb28sXG4gKiAgICAgICAgICAgICBtYXBTdGF0ZTogbWFwU3RhdGVVcGRhdGVycy5maXRCb3VuZHNVcGRhdGVyKFxuICogICAgICAgICAgICAgICBtYXBTdGF0ZSwge3BheWxvYWQ6IFsxMjcuMzQsIDMxLjA5LCAxMjcuNTYsIDMxLjU5XV19XG4gKiAgICAgICAgICAgICApXG4gKiAgICAgICAgICB9XG4gKiAgICAgICAgfVxuICogICAgICB9O1xuICogIH1cbiAqICByZXR1cm4gcmVkdWNlcnMoc3RhdGUsIGFjdGlvbik7XG4gKiB9O1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGNvbXBvc2VkUmVkdWNlcjtcbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IG1hcFN0YXRlVXBkYXRlcnMgPSBudWxsO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qKlxuICogRGVmYXVsdCBpbml0aWFsIGBtYXBTdGF0ZWBcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBwaXRjaCBEZWZhdWx0OiBgMGBcbiAqIEBwcm9wZXJ0eSBiZWFyaW5nIERlZmF1bHQ6IGAwYFxuICogQHByb3BlcnR5IGxhdGl0dWRlIERlZmF1bHQ6IGAzNy43NTA0M2BcbiAqIEBwcm9wZXJ0eSBsb25naXR1ZGUgRGVmYXVsdDogYC0xMjIuMzQ2NzlgXG4gKiBAcHJvcGVydHkgem9vbSBEZWZhdWx0OiBgOWBcbiAqIEBwcm9wZXJ0eSBkcmFnUm90YXRlIERlZmF1bHQ6IGBmYWxzZWBcbiAqIEBwcm9wZXJ0eSB3aWR0aCBEZWZhdWx0OiBgODAwYFxuICogQHByb3BlcnR5IGhlaWdodCBEZWZhdWx0OiBgODAwYFxuICogQHByb3BlcnR5IG1pblpvb206IGB1bmRlZmluZWRgLFxuICogQHByb3BlcnR5IG1heFpvb206IGB1bmRlZmluZWRgLFxuICogQHByb3BlcnR5IG1heFBpdGNoOiBgdW5kZWZpbmVkYCAoZGVmYXVsdHMgdG8gYXBwbGljYXRpb24gY29uZmlnIHZhbHVlLCBkZWNrLmdsIGRlZmF1bHQgaXMgNjApXG4gKiBAcHJvcGVydHkgbWF4Qm91bmRzOiBgdW5kZWZpbmVkYCxcbiAqIEBwcm9wZXJ0eSBpc1NwbGl0OiBgZmFsc2VgLFxuICogQHByb3BlcnR5IGlzVmlld3BvcnRTeW5jZWQ6IGB0cnVlYCxcbiAqIEBwcm9wZXJ0eSBpc1pvb21Mb2NrZWQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgc3BsaXRNYXBWaWV3cG9ydHM6IGBbXWBcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IElOSVRJQUxfTUFQX1NUQVRFOiBNYXBTdGF0ZSA9IHtcbiAgcGl0Y2g6IDAsXG4gIGJlYXJpbmc6IDAsXG4gIGxhdGl0dWRlOiAzNy43NTA0MyxcbiAgbG9uZ2l0dWRlOiAtMTIyLjM0Njc5LFxuICB6b29tOiA5LFxuICBkcmFnUm90YXRlOiBmYWxzZSxcbiAgd2lkdGg6IDgwMCxcbiAgaGVpZ2h0OiA4MDAsXG4gIG1pblpvb206IHVuZGVmaW5lZCxcbiAgbWF4Wm9vbTogdW5kZWZpbmVkLFxuICBtYXhQaXRjaDogdW5kZWZpbmVkLFxuICBtYXhCb3VuZHM6IHVuZGVmaW5lZCxcbiAgaXNTcGxpdDogZmFsc2UsXG4gIGlzVmlld3BvcnRTeW5jZWQ6IHRydWUsXG4gIGlzWm9vbUxvY2tlZDogZmFsc2UsXG4gIHNwbGl0TWFwVmlld3BvcnRzOiBbXSxcbiAgbWFwVmlld01vZGU6IE1hcFZpZXdNb2RlLk1PREVfMkQsXG4gIGdsb2JlOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgY29uZmlnOiBERUZBVUxUX0dMT0JFX0NPTkZJR1xuICB9LFxuICBtYXBTcGxpdE1vZGU6IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQLFxuICBzd2lwZUNvbXBhcmVQZXJjZW50YWdlOiA1MFxufTtcblxuLyogVXBkYXRlcnMgKi9cbi8qKlxuICogVXBkYXRlIG1hcCB2aWV3cG9ydFxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZU1hcFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuVXBkYXRlTWFwVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7dmlld3BvcnQ6IGlucHV0Vmlld3BvcnQsIG1hcEluZGV4ID0gMH0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgY29uc3Qgdmlld3BvcnQgPSB2YWxpZGF0ZVZpZXdQb3J0KGlucHV0Vmlld3BvcnQpO1xuXG4gIGlmIChzdGF0ZS5pc1ZpZXdwb3J0U3luY2VkKSB7XG4gICAgLy8gVGhlIGB1cGRhdGVWaWV3cG9ydGAgZnVuY3Rpb24gaXMgdHlwZWQgYXMgKFZpZXdwb3J0LCBWaWV3cG9ydCkgLT4gVmlld3BvcnQgYnV0IGhlcmUgdGhlXG4gICAgLy8gZXhwZWN0ZWQgdHlwaW5nIGlzIChNYXBTdGF0ZSwgVmlld3BvcnQpIC0+IE1hcFN0YXRlLlxuICAgIC8vIHRoaXMgY291bGQgYmUgYSBwb3RlbnRpYWwgYnVnIGFzIHdlIHRyZWF0IFZpZXdwb3J0IGFuZCBNYXBTdGF0ZSBhcyBlcXVhbCBzZWVtaW5nbHlcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFR5cGUgJ1ZpZXdwb3J0JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ01hcFN0YXRlJzogaXNTcGxpdCwgaXNWaWV3cG9ydFN5bmNlZCwgaXNab29tTG9ja2VkLCBzcGxpdE1hcFZpZXdwb3J0c1xuICAgIHJldHVybiB1cGRhdGVWaWV3cG9ydChzdGF0ZSwgdmlld3BvcnQpO1xuICB9XG5cbiAgbGV0IG90aGVyVmlld3BvcnRNYXBJbmRleCA9IC0xO1xuICBjb25zdCBzcGxpdE1hcFZpZXdwb3J0cyA9IHN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcCgoY3VycmVudFZpZXdwb3J0LCBpKSA9PiB7XG4gICAgaWYgKGkgPT09IG1hcEluZGV4KSB7XG4gICAgICAvLyB1cGRhdGUgdGhlIG1hdGNoaW5nIHZpZXdwb3J0IHdpdGggdGhlIG5ld1ZpZXdwb3J0IGluZm8gaW4gdGhlIGFjdGlvbiBwYXlsb2FkXG4gICAgICByZXR1cm4gdXBkYXRlVmlld3BvcnQoY3VycmVudFZpZXdwb3J0LCB2aWV3cG9ydCk7XG4gICAgfVxuXG4gICAgb3RoZXJWaWV3cG9ydE1hcEluZGV4ID0gaTtcbiAgICAvLyBtYWtlIG5vIGNoYW5nZXMgdG8gdGhlIG90aGVyIHZpZXdwb3J0ICh5ZXQpXG4gICAgcmV0dXJuIGN1cnJlbnRWaWV3cG9ydDtcbiAgfSk7XG5cbiAgLy8gbWFrZSBjb25kaXRpb25hbCB1cGRhdGVzIHRvIHRoZSBvdGhlciB2aWV3cG9ydCBub3QgbWF0Y2hpbmcgdGhpcyBwYXlsb2FkJ3MgYG1hcEluZGV4YFxuICBpZiAoTnVtYmVyLmlzRmluaXRlKG90aGVyVmlld3BvcnRNYXBJbmRleCkgJiYgb3RoZXJWaWV3cG9ydE1hcEluZGV4ID4gLTEpIHtcbiAgICAvLyB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBhIHNwZWNpYWwgY2FzZSBhbmQgYXJlIGFsd2F5cyB1cGRhdGVkXG4gICAgc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSA9IHtcbiAgICAgIC4uLnNwbGl0TWFwVmlld3BvcnRzW290aGVyVmlld3BvcnRNYXBJbmRleF0sXG4gICAgICB3aWR0aDogc3BsaXRNYXBWaWV3cG9ydHNbbWFwSW5kZXhdLndpZHRoLFxuICAgICAgaGVpZ2h0OiBzcGxpdE1hcFZpZXdwb3J0c1ttYXBJbmRleF0uaGVpZ2h0XG4gICAgfTtcblxuICAgIGlmIChzdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHVwZGF0ZSB0aGUgb3RoZXIgdmlld3BvcnQgd2l0aCB0aGUgbmV3IHpvb20gZnJvbSB0aGUgc3BsaXQgdmlld3BvcnQgdGhhdCB3YXMgdXBkYXRlZCB3aXRoIHRoaXMgcGF5bG9hZCdzIGBtYXBJbmRleGBcbiAgICAgIHNwbGl0TWFwVmlld3BvcnRzW290aGVyVmlld3BvcnRNYXBJbmRleF0gPSB7XG4gICAgICAgIC4uLnNwbGl0TWFwVmlld3BvcnRzW290aGVyVmlld3BvcnRNYXBJbmRleF0sXG4gICAgICAgIHpvb206IHNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XS56b29tXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gdXBkYXRlIHRoZSB0b3AtbGV2ZWwgbWFwU3RhdGUgdmlld3BvcnQgd2l0aCB0aGUgbW9zdCByZWNlbnRseSBpbnRlcmFjdGVkLXdpdGggc3BsaXQgdmlld3BvcnRcbiAgICAvLyBXSFk/IHRoaXMgYXZvaWRzIHpvb20gYW5kIGJvdW5kcyBcImp1bXBpbmdcIiBkdWUgdG8gYSBcInN0YWxlXCIgdG9wLWxldmVsIG1hcFN0YXRlIHZpZXdwb3J0IHdoZW46XG4gICAgLy8gIDEuIHRvZ2dsaW5nIG9mZiB0aGUgdW5zeW5jZWQgdmlld3BvcnRzIG1vZGUgdG8gc3dpdGNoIHRvIHRoZSBzeW5jZWQgdmlld3BvcnRzIG1vZGVcbiAgICAvLyAgMi4gdG9nZ2xpbmcgb24gdGhlIHpvb20gbG9jayBkdXJpbmcgYW4gdW5zeW5jZWQgdmlld3BvcnRzIG1vZGVcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi5zcGxpdE1hcFZpZXdwb3J0c1ttYXBJbmRleF0sXG4gICAgLy8gdXBkYXRlIHRoZSBtYXBTdGF0ZSB3aXRoIHRoZSBuZXcgYXJyYXkgb2Ygc3BsaXQgdmlld3BvcnRzXG4gICAgc3BsaXRNYXBWaWV3cG9ydHNcbiAgfTtcbn07XG5cbi8qKlxuICogRml0IG1hcCB2aWV3cG9ydCB0byBib3VuZHNcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBmaXRCb3VuZHNVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIGFjdGlvbjogTWFwU3RhdGVBY3Rpb25zLkZpdEJvdW5kc1VwZGF0ZXJBY3Rpb25cbik6IE1hcFN0YXRlID0+IHtcbiAgY29uc3QgY2VudGVyQW5kWm9vbSA9IGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGFjdGlvbi5wYXlsb2FkLCB7XG4gICAgd2lkdGg6IHN0YXRlLndpZHRoLFxuICAgIGhlaWdodDogc3RhdGUuaGVpZ2h0LFxuICAgIHBhZGRpbmc6IGFjdGlvbi5tZXRhPy5wYWRkaW5nXG4gIH0pO1xuICBpZiAoIWNlbnRlckFuZFpvb20pIHtcbiAgICAvLyBib3VuZHMgaXMgaW52YWxpZFxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIC8vIEluIGdsb2JlIG1vZGUsIGNsYW1wIHpvb20gdG8gZ2xvYmUncyBhbGxvd2VkIHJhbmdlXG4gIGNvbnN0IGlzR2xvYmVNb2RlID0gQm9vbGVhbihzdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG4gIGNvbnN0IHpvb20gPSBOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKVxuICAgID8gaXNHbG9iZU1vZGVcbiAgICAgID8gTWF0aC5taW4oTWF0aC5tYXgoY2VudGVyQW5kWm9vbS56b29tLCBHTE9CRV9NSU5fWk9PTSksIEdMT0JFX01BWF9aT09NKVxuICAgICAgOiBjZW50ZXJBbmRab29tLnpvb21cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAvLyBGb3IgbWFyZ2luYWwgb3IgaW52YWxpZCBib3VuZHMsIHpvb20gbWF5IGJlIE5hTi4gTWFrZSBzdXJlIHRvIHByb3ZpZGUgYSB2YWxpZCB2YWx1ZSBpbiBvcmRlclxuICAgIC8vIHRvIGF2b2lkIGNvcnJ1cHQgc3RhdGUgYW5kIHBvdGVudGlhbCBjcmFzaGVzIGFzIHpvb20gaXMgZXhwZWN0ZWQgdG8gYmUgYSBudW1iZXJcbiAgICAuLi4oem9vbSAhPT0gdW5kZWZpbmVkID8ge3pvb219IDoge30pXG4gIH07XG5cbiAgLy8gaWYgZml0dGluZyB0byBib3VuZHMgd2hpbGUgc3BsaXQgYW5kIHVuc3luY2VkXG4gIC8vIGNvcHkgdGhlIG5ldyBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhbmQgem9vbSB2YWx1ZXMgdG8gZWFjaCBzcGxpdCB2aWV3cG9ydFxuICBpZiAobmV3U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubGVuZ3RoKSB7XG4gICAgbmV3U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoY3VycmVudFZpZXdwb3J0ID0+ICh7XG4gICAgICAuLi5jdXJyZW50Vmlld3BvcnQsXG4gICAgICBsYXRpdHVkZTogbmV3U3RhdGUubGF0aXR1ZGUsXG4gICAgICBsb25naXR1ZGU6IG5ld1N0YXRlLmxvbmdpdHVkZSxcbiAgICAgIHpvb206IG5ld1N0YXRlLnpvb21cbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gbmV3U3RhdGU7XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBiZXR3ZWVuIDNkIGFuZCAyZCBtYXAuXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlUGVyc3BlY3RpdmVVcGRhdGVyID0gKHN0YXRlOiBNYXBTdGF0ZSk6IE1hcFN0YXRlID0+IHtcbiAgLy8gT25seSBkcm9wIG1pbi9tYXhab29tIHdoZW4gd2UncmUgYWN0dWFsbHkgbGVhdmluZyBnbG9iZSBtb2RlLCB3aGVyZSB0aG9zZVxuICAvLyBib3VuZHMgYXJlIHNldCB0byBnbG9iZS1vbmx5IHZhbHVlcy4gSWYgZ2xvYmUgd2FzIG5ldmVyIGVuYWJsZWQgdGhlc2UgYXJlXG4gIC8vIHRoZSBhcHAncyBvd24gY3VzdG9tIGJvdW5kcyBhbmQgbXVzdCBiZSBwcmVzZXJ2ZWQuXG4gIGNvbnN0IHdhc0dsb2JlRW5hYmxlZCA9IEJvb2xlYW4oc3RhdGUuZ2xvYmU/LmVuYWJsZWQpO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLntcbiAgICAgIHBpdGNoOiBzdGF0ZS5kcmFnUm90YXRlID8gMCA6IDUwLFxuICAgICAgYmVhcmluZzogc3RhdGUuZHJhZ1JvdGF0ZSA/IDAgOiAyNFxuICAgIH0sXG4gICAgZHJhZ1JvdGF0ZTogIXN0YXRlLmRyYWdSb3RhdGUsXG4gICAgbWFwVmlld01vZGU6IHN0YXRlLmRyYWdSb3RhdGUgPyBNYXBWaWV3TW9kZS5NT0RFXzJEIDogTWFwVmlld01vZGUuTU9ERV8zRCxcbiAgICBnbG9iZTogey4uLnN0YXRlLmdsb2JlISwgZW5hYmxlZDogZmFsc2V9LFxuICAgIC8vIExlYXZpbmcgZ2xvYmUgbW9kZTogZHJvcCBnbG9iZS1vbmx5IHpvb20gYm91bmRzIHNvIHRoZSBmbGF0IG1hcCAoYW5kXG4gICAgLy8gY29uc3VtZXJzIG9mIG1hcFN0YXRlIHN1Y2ggYXMgdmlkZW8gZXhwb3J0KSBhcmVuJ3QgbGVmdCBjbGFtcGVkLiBXaGVuXG4gICAgLy8gZ2xvYmUgd2FzIG5ldmVyIG9uLCBrZWVwIHdoYXRldmVyIG1pbi9tYXhab29tIHRoZSBhcHAgY29uZmlndXJlZC5cbiAgICAuLi4od2FzR2xvYmVFbmFibGVkID8ge21pblpvb206IHVuZGVmaW5lZCwgbWF4Wm9vbTogdW5kZWZpbmVkfSA6IHt9KVxuICB9O1xuXG4gIC8vIGlmIHRvZ2dsaW5nIDNkIGFuZCAyZCB3aGlsZSBzcGxpdCBhbmQgdW5zeW5jZWRcbiAgLy8gY29weSB0aGUgbmV3IHBpdGNoLCBiZWFyaW5nLCBhbmQgZHJhZ1JvdGF0ZSB2YWx1ZXMgdG8gZWFjaCBzcGxpdCB2aWV3cG9ydFxuICBpZiAobmV3U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubGVuZ3RoKSB7XG4gICAgbmV3U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoY3VycmVudFZpZXdwb3J0ID0+ICh7XG4gICAgICAuLi5jdXJyZW50Vmlld3BvcnQsXG4gICAgICBwaXRjaDogbmV3U3RhdGUucGl0Y2gsXG4gICAgICBiZWFyaW5nOiBuZXdTdGF0ZS5iZWFyaW5nLFxuICAgICAgZHJhZ1JvdGF0ZTogbmV3U3RhdGUuZHJhZ1JvdGF0ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogU2V0IG1hcCB2aWV3IG1vZGUgKDJELCAzRCwgR2xvYmUpXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwVmlld01vZGVVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIGFjdGlvbjogTWFwU3RhdGVBY3Rpb25zLlNldE1hcFZpZXdNb2RlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7bWFwVmlld01vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGxldCBuZXh0U3RhdGU6IE1hcFN0YXRlO1xuXG4gIC8vIE9ubHkgY2xlYXIgbWluL21heFpvb20gd2hlbiBsZWF2aW5nIGdsb2JlIG1vZGUgKHdoZXJlIHRoZXkgaG9sZCBnbG9iZS1vbmx5XG4gIC8vIGJvdW5kcykuIE90aGVyd2lzZSBwcmVzZXJ2ZSB0aGUgYXBwJ3MgY3VzdG9tIGJvdW5kcy5cbiAgY29uc3Qgd2FzR2xvYmVFbmFibGVkID0gQm9vbGVhbihzdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG5cbiAgc3dpdGNoIChtYXBWaWV3TW9kZSkge1xuICAgIGNhc2UgTWFwVmlld01vZGUuTU9ERV8yRDpcbiAgICAgIG5leHRTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiBmYWxzZX0sXG4gICAgICAgIHBpdGNoOiAwLFxuICAgICAgICBiZWFyaW5nOiAwLFxuICAgICAgICBkcmFnUm90YXRlOiBmYWxzZSxcbiAgICAgICAgLy8gQ2xlYXIgdGhlIGdsb2JlLW9ubHkgem9vbSBib3VuZHMgc28gdGhlIGZsYXQgbWFwIChhbmQgYW55dGhpbmcgdGhhdFxuICAgICAgICAvLyByZWFkcyBtYXBTdGF0ZSwgZS5nLiB2aWRlbyBleHBvcnQpIGlzIG5vdCBsZWZ0IHdpdGggZ2xvYmUnc1xuICAgICAgICAvLyBtaW4vbWF4Wm9vbSBhZnRlciBsZWF2aW5nIGdsb2JlIG1vZGUuIE9ubHkgd2hlbiBnbG9iZSB3YXMgYWN0dWFsbHkgb24uXG4gICAgICAgIC4uLih3YXNHbG9iZUVuYWJsZWQgPyB7bWluWm9vbTogdW5kZWZpbmVkLCBtYXhab29tOiB1bmRlZmluZWR9IDoge30pLFxuICAgICAgICBtYXBWaWV3TW9kZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWFwVmlld01vZGUuTU9ERV8zRDpcbiAgICAgIG5leHRTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiBmYWxzZX0sXG4gICAgICAgIHBpdGNoOiA1MCxcbiAgICAgICAgYmVhcmluZzogMjQsXG4gICAgICAgIGRyYWdSb3RhdGU6IHRydWUsXG4gICAgICAgIC4uLih3YXNHbG9iZUVuYWJsZWQgPyB7bWluWm9vbTogdW5kZWZpbmVkLCBtYXhab29tOiB1bmRlZmluZWR9IDoge30pLFxuICAgICAgICBtYXBWaWV3TW9kZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWFwVmlld01vZGUuTU9ERV9HTE9CRTpcbiAgICAgIG5leHRTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiB0cnVlfSxcbiAgICAgICAgZHJhZ1JvdGF0ZTogdHJ1ZSxcbiAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgIGJlYXJpbmc6IDAsXG4gICAgICAgIC8vIEFsbG93IHpvb21pbmcgb3V0IGZ1cnRoZXIgdGhhbiB0aGUgZGVmYXVsdCBzbyB0aGUgd2hvbGUgZ2xvYmUgY2FuIGJlXG4gICAgICAgIC8vIHB1bGxlZCBiYWNrIG9uIHNjcmVlbi4gQ2FwIHRoZSBtYXggem9vbSBzbyB0aGUgYmFzZW1hcCB0aWxlcyBzdGF5XG4gICAgICAgIC8vIGNvaGVyZW50ICh0aGV5IGJyZWFrIGRvd24gYXQgaGlnaCBnbG9iZSB6b29tIGluIGRlY2suZ2wgOS54KS5cbiAgICAgICAgbWluWm9vbTogR0xPQkVfTUlOX1pPT00sXG4gICAgICAgIG1heFpvb206IEdMT0JFX01BWF9aT09NLFxuICAgICAgICB6b29tOiBNYXRoLm1pbihNYXRoLm1heChzdGF0ZS56b29tLCBHTE9CRV9NSU5fWk9PTSksIEdMT0JFX01BWF9aT09NKSxcbiAgICAgICAgbWFwVmlld01vZGVcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgaWYgKG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXh0U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXh0U3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubWFwKGN1cnJlbnRWaWV3cG9ydCA9PiAoe1xuICAgICAgLi4uY3VycmVudFZpZXdwb3J0LFxuICAgICAgcGl0Y2g6IG5leHRTdGF0ZS5waXRjaCxcbiAgICAgIGJlYXJpbmc6IG5leHRTdGF0ZS5iZWFyaW5nLFxuICAgICAgZHJhZ1JvdGF0ZTogbmV4dFN0YXRlLmRyYWdSb3RhdGVcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gbmV4dFN0YXRlO1xufTtcblxuLyoqXG4gKiBVcGRhdGUgZ2xvYmUgY29uZmlnXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZ2xvYmVDb25maWdDaGFuZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIGFjdGlvbjogTWFwU3RhdGVBY3Rpb25zLkdsb2JlQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIGdsb2JlOiB7XG4gICAgICAuLi5zdGF0ZS5nbG9iZSEsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uc3RhdGUuZ2xvYmUhLmNvbmZpZyxcbiAgICAgICAgLi4uYWN0aW9uLnBheWxvYWRcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIHJlc2V0IG1hcFN0YXRlIHRvIGluaXRpYWwgU3RhdGVcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCByZXNldE1hcENvbmZpZ1VwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0YXRlKTogTWFwU3RhdGUgPT4gKHtcbiAgLi4uSU5JVElBTF9NQVBfU1RBVEUsXG4gIC4uLnN0YXRlLmluaXRpYWxTdGF0ZSxcbiAgaW5pdGlhbFN0YXRlOiBzdGF0ZS5pbml0aWFsU3RhdGVcbn0pO1xuXG4vLyBjb25zaWRlciBjYXNlIHdoZXJlIHlvdSBoYXZlIGEgc3BsaXQgbWFwIGFuZCB1c2VyIHdhbnRzIHRvIHJlc2V0XG4vKipcbiAqIFVwZGF0ZSBgbWFwU3RhdGVgIHRvIHByb3BhZ2F0ZSBhIG5ldyBjb25maWdcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHBheWxvYWQ6IHtjb25maWcgPSB7fSwgb3B0aW9ucyA9IHt9LCBib3VuZHMgPSBudWxsfVxuICB9OiB7XG4gICAgdHlwZT86IHR5cGVvZiBBY3Rpb25UeXBlcy5SRUNFSVZFX01BUF9DT05GSUc7XG4gICAgcGF5bG9hZDogUmVjZWl2ZU1hcENvbmZpZ1BheWxvYWQ7XG4gIH1cbik6IE1hcFN0YXRlID0+IHtcbiAgLyoqXG4gICAqIEB0eXBlIHtQYXJ0aWFsPE1hcFN0YXRlPn1cbiAgICovXG4gIGNvbnN0IG1hcFN0YXRlID0gKGNvbmZpZyB8fCB7fSkubWFwU3RhdGUgfHwge307XG4gIC8vIG1lcmdlZCByZWNlaXZlZCBtYXBTdGF0ZSB3aXRoIHByZXZpb3VzIHN0YXRlXG4gIC8vIHN0YXRlIGFsc28gbWF5IGluY2x1ZGUgcHJvcGVydGllcyB0aGF0IGFyZSBuZXcgdG8gYW4gZXhpc3RpbmcsIHNhdmVkIHByb2plY3QncyBtYXBTdGF0ZVxuXG4gIGxldCBtZXJnZWRTdGF0ZSA9IGRlZXBtZXJnZTxNYXBTdGF0ZT4oc3RhdGUsIG1hcFN0YXRlLCB7XG4gICAgLy8gbm90ZTogZGVlcG1lcmdlIGJ5IGRlZmF1bHQgd2lsbCBtZXJnZSBhcnJheXMgYnkgY29uY2F0ZW5hdGluZyB0aGVtXG4gICAgLy8gYnV0IHdlIG5lZWQgdG8gb3ZlcndyaXRlIGRlc3RpbmF0aW9uIGFycmF5cyB3aXRoIHNvdXJjZSBhcnJheXMsIGlmIHByZXNlbnRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vVGVoU2hyaWtlL2RlZXBtZXJnZSNhcnJheW1lcmdlLWV4YW1wbGUtb3ZlcndyaXRlLXRhcmdldC1hcnJheVxuICAgIGFycmF5TWVyZ2U6IChfZGVzdGluYXRpb25BcnJheSwgc291cmNlQXJyYXkpID0+IHNvdXJjZUFycmF5XG4gIH0pO1xuXG4gIC8vIGlmIGNlbnRlciBtYXBcbiAgLy8gY2VudGVyIG1hcCB3aWxsIG92ZXJyaWRlIG1hcFN0YXRlIGNvbmZpZ1xuICBpZiAob3B0aW9ucy5jZW50ZXJNYXAgJiYgYm91bmRzKSB7XG4gICAgbWVyZ2VkU3RhdGUgPSBmaXRCb3VuZHNVcGRhdGVyKG1lcmdlZFN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiBib3VuZHMsXG4gICAgICBtZXRhOiB7cGFkZGluZzogb3B0aW9ucy5wYWRkaW5nfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gbWFrZSBzdXJlIHdlIHZhbGlkYXRlIG1hcCBzdGF0ZSBiZWZvcmUgd2UgbWVyZ2VcbiAgbWVyZ2VkU3RhdGUgPSB2YWxpZGF0ZVZpZXdQb3J0KG1lcmdlZFN0YXRlKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm1lcmdlZFN0YXRlLFxuICAgIC8vIHVwZGF0ZSB3aWR0aCBpZiBgaXNTcGxpdGAgaGFzIGNoYW5nZWRcbiAgICAuLi5nZXRNYXBEaW1Gb3JTcGxpdE1hcChtZXJnZWRTdGF0ZS5pc1NwbGl0LCBzdGF0ZSlcbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gb25lIG9yIHNwbGl0IG1hcHNcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0YXRlKTogTWFwU3RhdGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIC4uLmdldE1hcERpbUZvclNwbGl0TWFwKCFzdGF0ZS5pc1NwbGl0LCBzdGF0ZSksXG4gIGlzU3BsaXQ6ICFzdGF0ZS5pc1NwbGl0LFxuICBtYXBTcGxpdE1vZGU6ICFzdGF0ZS5pc1NwbGl0ID8gTWFwU3BsaXRNb2RlLkRVQUxfTUFQIDogTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVAsXG4gIC4uLighc3RhdGUuaXNTcGxpdCA9PT0gZmFsc2VcbiAgICA/IHtcbiAgICAgICAgLy8gaWYgdG9nZ2xpbmcgdG8gbm8gbG9uZ2VyIHNwbGl0IChzaW5nbGUgbW9kZSkgdGhlbiByZXNldCBhIGZldyBwcm9wZXJ0aWVzXG4gICAgICAgIGlzVmlld3BvcnRTeW5jZWQ6IHRydWUsXG4gICAgICAgIGlzWm9vbUxvY2tlZDogZmFsc2UsXG4gICAgICAgIHNwbGl0TWFwVmlld3BvcnRzOiBbXVxuICAgICAgfVxuICAgIDoge30pXG59KTtcblxuLyoqXG4gKiBTZXQgdGhlIG1hcCBzcGxpdCBtb2RlIChzaW5nbGUsIGR1YWwsIG9yIHN3aXBlKVxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldE1hcFNwbGl0TW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwU3BsaXRNb2RlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7bWFwU3BsaXRNb2RlfSA9IGFjdGlvbi5wYXlsb2FkO1xuICBjb25zdCBwcmV2TW9kZSA9IHN0YXRlLm1hcFNwbGl0TW9kZTtcblxuICBpZiAobWFwU3BsaXRNb2RlID09PSBwcmV2TW9kZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHN3aXRjaCAobWFwU3BsaXRNb2RlKSB7XG4gICAgY2FzZSBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBtYXBTcGxpdE1vZGUsXG4gICAgICAgIGlzU3BsaXQ6IGZhbHNlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5EVUFMX01BUCAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoICogMlxuICAgICAgICB9KSxcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9O1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLkRVQUxfTUFQOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcFNwbGl0TW9kZSxcbiAgICAgICAgaXNTcGxpdDogdHJ1ZSxcbiAgICAgICAgLi4uKHByZXZNb2RlID09PSBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoIC8gMlxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKHByZXZNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoIC8gMlxuICAgICAgICB9KVxuICAgICAgfTtcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcFNwbGl0TW9kZSxcbiAgICAgICAgaXNTcGxpdDogdHJ1ZSxcbiAgICAgICAgLi4uKHByZXZNb2RlID09PSBNYXBTcGxpdE1vZGUuRFVBTF9NQVAgJiYge1xuICAgICAgICAgIHdpZHRoOiBzdGF0ZS53aWR0aCAqIDJcbiAgICAgICAgfSksXG4gICAgICAgIGlzVmlld3BvcnRTeW5jZWQ6IHRydWUsXG4gICAgICAgIGlzWm9vbUxvY2tlZDogZmFsc2UsXG4gICAgICAgIHNwbGl0TWFwVmlld3BvcnRzOiBbXVxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG4vKipcbiAqIFNldCB0aGUgc3dpcGUgY29tcGFyZSBwZXJjZW50YWdlXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZVVwZGF0ZXJBY3Rpb25cbik6IE1hcFN0YXRlID0+IHtcbiAgY29uc3Qge3BlcmNlbnRhZ2V9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IGNsYW1wZWQgPSBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsIHBlcmNlbnRhZ2UpKTtcbiAgaWYgKGNsYW1wZWQgPT09IHN0YXRlLnN3aXBlQ29tcGFyZVBlcmNlbnRhZ2UpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzd2lwZUNvbXBhcmVQZXJjZW50YWdlOiBjbGFtcGVkXG4gIH07XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBiZXR3ZWVuIGxvY2tlZCBhbmQgdW5sb2NrZWQgc3BsaXQgdmlld3BvcnRzXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXJBY3Rpb25cbikgPT4ge1xuICAvLyBTd2lwZSBtb2RlIGFsd2F5cyB1c2VzIHN5bmNlZCB2aWV3cG9ydHNcbiAgaWYgKHN0YXRlLm1hcFNwbGl0TW9kZSA9PT0gTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkUpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICAvLyBuZXcgbWFwIHN0YXRlIGltbWVkaWF0ZWx5IGdldHMgdGhlIG5ldywgb3B0aW9uYWwgcGF5bG9hZCB2YWx1ZXMgZm9yIGlzVmlld3BvcnRTeW5jZWQgYW5kL29yIGlzWm9vbUxvY2tlZFxuICBjb25zdCBuZXdNYXBTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi4oYWN0aW9uLnBheWxvYWQgfHwge30pXG4gIH07XG5cbiAgaWYgKG5ld01hcFN0YXRlLmlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAvLyBzd2l0Y2hpbmcgZnJvbSB1bnN5bmNlZCB0byBzeW5jZWQgdmlld3BvcnRzXG4gICAgbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBbXTtcbiAgfSBlbHNlIHtcbiAgICAvLyBzd2l0Y2hpbmcgZnJvbSBzeW5jZWQgdG8gdW5zeW5jZWQgdmlld3BvcnRzXG4gICAgLy8gb3IgYWxyZWFkeSBpbiB1bnN5bmNlZCBtb2RlIGFuZCB0b2dnbGluZyBsb2NrZWQgem9vbVxuXG4gICAgaWYgKHN0YXRlLmlzWm9vbUxvY2tlZCAmJiAhbmV3TWFwU3RhdGUuaXNab29tTG9ja2VkKSB7XG4gICAgICAvLyBzd2l0Y2hpbmcgb2ZmIGxvY2tlZCB6b29tIHdoaWxlIHVuc3luY2VkXG4gICAgICAvLyBkb24ndCBjb3B5IHRoZSBtYXBTdGF0ZXMgdG8gbGVmdCBhbmQgcmlnaHQgdmlld3BvcnRzIGJlY2F1c2UgdGhlcmUgd2lsbCBiZSB6b29tIFwianVtcGluZ1wiXG4gICAgICByZXR1cm4gbmV3TWFwU3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKCFzdGF0ZS5pc1pvb21Mb2NrZWQgJiYgbmV3TWFwU3RhdGUuaXNab29tTG9ja2VkKSB7XG4gICAgICAvLyBzd2l0Y2hpbmcgb24gbG9ja2VkIHpvb20gd2hpbGUgdW5zeW5jZWRcbiAgICAgIC8vIG9ubHkgY29weSB6b29tIHZpZXdwb3J0IHByb3BlcnR5IGZyb20gdGhlIG1vc3QgcmVjZW50bHkgaW50ZXJhY3RlZC13aXRoIHZpZXdwb3J0IHRvIHRoZSBvdGhlclxuICAgICAgLy8gVE9ETzogZG8gd2Ugd2FudCB0byBjaGVjayBmb3IgYSBtYXRjaCBhIGRpZmZlcmVudCB3YXksIHN1Y2ggYXMgYSBjb21ibyBvZiBgbGF0aXR1ZGVgIGFuZCBgbG9uZ2l0dWRlYD9cbiAgICAgIGNvbnN0IGxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCA9IG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmZpbmRJbmRleChcbiAgICAgICAgdiA9PiBuZXdNYXBTdGF0ZS56b29tID09PSB2Lnpvb21cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNwbGl0TWFwVmlld3BvcnRzID0gbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubWFwKChjdXJyZW50Vmlld3BvcnQsIGkpID0+IHtcbiAgICAgICAgaWYgKGkgPT09IGxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCkge1xuICAgICAgICAgIC8vIG5vIHpvb20gdG8gbW9kaWZ5IGhlcmVcbiAgICAgICAgICByZXR1cm4gY3VycmVudFZpZXdwb3J0O1xuICAgICAgICB9XG4gICAgICAgIC8vIHRoZSBvdGhlciB2aWV3cG9ydCBnZXRzIHRoZSBtb3N0IHJlY2VudGx5IGludGVyYWN0ZWQtd2l0aCB2aWV3cG9ydCdzIHpvb21cbiAgICAgICAgLy8gV0hZPyB0aGUgdmlld3BvcnQgdGhlIHVzZXIgd2FzIGxhc3QgaW50ZXJhY3Rpbmcgd2l0aCB3aWxsIHNldCB6b29tIGFjcm9zcyB0aGUgYm9hcmQgZm9yIHNtb290aCBVWFxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgICAgICB6b29tOiBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0c1tsYXN0VXBkYXRlZFZpZXdwb3J0SW5kZXhdLnpvb21cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IHNwbGl0TWFwVmlld3BvcnRzO1xuXG4gICAgICByZXR1cm4gbmV3TWFwU3RhdGU7XG4gICAgfVxuXG4gICAgLy8gaWYgY3VycmVudCB2aWV3cG9ydCBpcyBzeW5jZWQsIGFuZCB3ZSBhcmUgdW5zeW5jaW5nIGl0XG4gICAgLy8gb3IgYWxyZWFkeSBpbiB1bnN5bmNlZCBtb2RlIGFuZCBOT1QgdG9nZ2xpbmcgbG9ja2VkIHpvb21cbiAgICAvLyBtYWtlIGEgZnJlc2ggY29weSBvZiB0aGUgY3VycmVudCB2aWV3cG9ydCBvYmplY3QsIGFzc2lnbiBpdCB0byBzcGxpdE1hcFZpZXdwb3J0c1tdXG4gICAgLy8gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUgaXMgY2FsbGVkIHR3aWNlIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9uIGNvbmZsaWN0c1xuICAgIGNvbnN0IGxlZnRWaWV3cG9ydCA9IHBpY2tWaWV3cG9ydFByb3BzRnJvbU1hcFN0YXRlKG5ld01hcFN0YXRlKTtcbiAgICBjb25zdCByaWdodFZpZXdwb3J0ID0gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUobmV3TWFwU3RhdGUpO1xuICAgIG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzID0gW2xlZnRWaWV3cG9ydCwgcmlnaHRWaWV3cG9ydF07XG4gIH1cblxuICAvLyByZXR1cm4gbmV3IHN0YXRlXG4gIHJldHVybiBuZXdNYXBTdGF0ZTtcbn07XG5cbi8vIEhlbHBlcnNcbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXBEaW1Gb3JTcGxpdE1hcChpc1NwbGl0LCBzdGF0ZSkge1xuICAvLyBjYXNlczpcbiAgLy8gMS4gc3RhdGUgc3BsaXQ6IHRydWUgLSBpc1NwbGl0OiB0cnVlXG4gIC8vIGRvIG5vdGhpbmdcbiAgLy8gMi4gc3RhdGUgc3BsaXQ6IGZhbHNlIC0gaXNTcGxpdDogZmFsc2VcbiAgLy8gZG8gbm90aGluZ1xuICBpZiAoc3RhdGUuaXNTcGxpdCA9PT0gaXNTcGxpdCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIEluIHN3aXBlIG1vZGUsIGJvdGggbWFwcyB1c2UgZnVsbCB3aWR0aCAob3ZlcmxhcHBpbmcgd2l0aCBjbGlwKVxuICBpZiAoc3RhdGUubWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IHdpZHRoID1cbiAgICBzdGF0ZS5pc1NwbGl0ICYmICFpc1NwbGl0XG4gICAgICA/IC8vIDMuIHN0YXRlIHNwbGl0OiB0cnVlIC0gaXNTcGxpdDogZmFsc2VcbiAgICAgICAgLy8gZG91YmxlIHdpZHRoXG4gICAgICAgIHN0YXRlLndpZHRoICogMlxuICAgICAgOiAvLyA0LiBzdGF0ZSBzcGxpdDogZmFsc2UgLSBpc1NwbGl0OiB0cnVlXG4gICAgICAgIC8vIHNwbGl0IHdpZHRoXG4gICAgICAgIHN0YXRlLndpZHRoIC8gMjtcblxuICByZXR1cm4ge1xuICAgIHdpZHRoXG4gIH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVZpZXdwb3J0QmFzZWRPbkJvdW5kcyhzdGF0ZTogTWFwU3RhdGUsIG5ld01hcFN0YXRlOiBNYXBTdGF0ZSkge1xuICAvLyBHZXQgdGhlIG5ldyB2aWV3cG9ydCBib3VuZHNcbiAgY29uc3Qgdmlld3BvcnRCb3VuZHMgPSBnZW9WaWV3cG9ydC5ib3VuZHMoXG4gICAgW25ld01hcFN0YXRlLmxvbmdpdHVkZSwgbmV3TWFwU3RhdGUubGF0aXR1ZGVdLFxuICAgIG5ld01hcFN0YXRlLnpvb20sXG4gICAgW25ld01hcFN0YXRlLndpZHRoLCBuZXdNYXBTdGF0ZS5oZWlnaHRdLFxuICAgIE1BUEJPWF9USUxFX1NJWkVcbiAgKTtcbiAgLy8gR2VuZXJhdGUgdHVyZiBQb2x5Z29uIGZyb20gYm91bmRzIGZvciBjb21wYXJpc29uXG4gIGNvbnN0IHZpZXdwb3J0Qm91bmRzUG9seWdvbiA9IGJib3hQb2x5Z29uKHZpZXdwb3J0Qm91bmRzKTtcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBuZXdTdGF0ZU1heEJvdW5kczogQm91bmRzID0gbmV3TWFwU3RhdGUubWF4Qm91bmRzO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IG1heEJvdW5kc1BvbHlnb24gPSBiYm94UG9seWdvbihuZXdTdGF0ZU1heEJvdW5kcyk7XG5cbiAgLy8gSWYgbWF4Qm91bmRzIGhhcyBjaGFuZ2VkIHJlc2V0IHRoZSB2aWV3cG9ydCB0byBzbmFwIHRvIGJvdW5kc1xuICBjb25zdCBoYXNNYXhCb3VuZHNDaGFuZ2VkID1cbiAgICAhc3RhdGUubWF4Qm91bmRzIHx8ICFzdGF0ZS5tYXhCb3VuZHMuZXZlcnkoKHZhbCwgaWR4KSA9PiB2YWwgPT09IG5ld1N0YXRlTWF4Qm91bmRzW2lkeF0pO1xuICBpZiAoaGFzTWF4Qm91bmRzQ2hhbmdlZCkge1xuICAgIC8vIENoZWNrIGlmIHRoZSBuZXdNYXBTdGF0ZSB2aWV3cG9ydCBpcyB3aXRoaW4gbWF4Qm91bmRzXG4gICAgaWYgKCFib29sZWFuV2l0aGluKHZpZXdwb3J0Qm91bmRzUG9seWdvbiwgbWF4Qm91bmRzUG9seWdvbikpIHtcbiAgICAgIGNvbnN0IHtsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tfSA9IGZpdEJvdW5kcyh7XG4gICAgICAgIHdpZHRoOiBuZXdNYXBTdGF0ZS53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBuZXdNYXBTdGF0ZS5oZWlnaHQsXG4gICAgICAgIGJvdW5kczogW1xuICAgICAgICAgIFtuZXdTdGF0ZU1heEJvdW5kc1swXSwgbmV3U3RhdGVNYXhCb3VuZHNbMV1dLFxuICAgICAgICAgIFtuZXdTdGF0ZU1heEJvdW5kc1syXSwgbmV3U3RhdGVNYXhCb3VuZHNbM11dXG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICBuZXdNYXBTdGF0ZSA9IHtcbiAgICAgICAgLi4ubmV3TWFwU3RhdGUsXG4gICAgICAgIGxhdGl0dWRlLFxuICAgICAgICBsb25naXR1ZGUsXG4gICAgICAgIC8vIEZvciBtYXJnaW5hbCBvciBpbnZhbGlkIGJvdW5kcywgem9vbSBtYXkgYmUgTmFOLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBhIHZhbGlkIHZhbHVlIGluIG9yZGVyXG4gICAgICAgIC8vIHRvIGF2b2lkIGNvcnJ1cHQgc3RhdGUgYW5kIHBvdGVudGlhbCBjcmFzaGVzIGFzIHpvb20gaXMgZXhwZWN0ZWQgdG8gYmUgYSBudW1iZXJcbiAgICAgICAgLi4uKE51bWJlci5pc0Zpbml0ZSh6b29tKSA/IHt6b29tfSA6IHt9KVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld01hcFN0YXRlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIG5ld01hcFN0YXRlIHZpZXdwb3J0IGlzIHdpdGhpbiBtYXhCb3VuZHNcbiAgaWYgKCFib29sZWFuV2l0aGluKHZpZXdwb3J0Qm91bmRzUG9seWdvbiwgbWF4Qm91bmRzUG9seWdvbikpIHtcbiAgICBuZXdNYXBTdGF0ZSA9IHtcbiAgICAgIC4uLm5ld01hcFN0YXRlLFxuICAgICAgbG9uZ2l0dWRlOiBzdGF0ZS5sb25naXR1ZGUsXG4gICAgICBsYXRpdHVkZTogc3RhdGUubGF0aXR1ZGUsXG4gICAgICB6b29tOiBzdGF0ZS56b29tXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBuZXdNYXBTdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2tWaWV3cG9ydFByb3BzRnJvbU1hcFN0YXRlKHN0YXRlOiBNYXBTdGF0ZSk6IFZpZXdwb3J0IHtcbiAgcmV0dXJuIHBpY2soc3RhdGUsIFtcbiAgICAnd2lkdGgnLFxuICAgICdoZWlnaHQnLFxuICAgICd6b29tJyxcbiAgICAncGl0Y2gnLFxuICAgICdiZWFyaW5nJyxcbiAgICAnbGF0aXR1ZGUnLFxuICAgICdsb25naXR1ZGUnLFxuICAgICdkcmFnUm90YXRlJyxcbiAgICAnbWluWm9vbScsXG4gICAgJ21heFpvb20nLFxuICAgICdtYXhQaXRjaCcsXG4gICAgJ21heEJvdW5kcydcbiAgXSk7XG59XG5cbi8qKiBTZWxlY3QgaXRlbXMgZnJvbSBvYmplY3Qgd2hvc2UgdmFsdWUgaXMgbm90IHVuZGVmaW5lZCAqL1xuY29uc3QgZGVmaW5lZFByb3BzID0gb2JqID0+XG4gIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2N1LCBbaywgdl0pID0+ICh7Li4uYWNjdSwgLi4uKHYgIT09IHVuZGVmaW5lZCA/IHtba106IHZ9IDoge30pfSksXG4gICAge31cbiAgKTtcblxuZnVuY3Rpb24gdXBkYXRlVmlld3BvcnQob3JpZ2luYWxWaWV3cG9ydDogVmlld3BvcnQsIHZpZXdwb3J0VXBkYXRlczogVmlld3BvcnQpOiBWaWV3cG9ydCB7XG4gIGxldCBuZXdWaWV3cG9ydCA9IHtcbiAgICAuLi5vcmlnaW5hbFZpZXdwb3J0LFxuICAgIC4uLihkZWZpbmVkUHJvcHModmlld3BvcnRVcGRhdGVzKSB8fCB7fSlcbiAgfTtcblxuICAvLyBkZWNrLmdsJ3MgZ2xvYmUgY29udHJvbGxlciBhcHBsaWVzIGEgbGF0aXR1ZGUtZGVwZW5kZW50IGFkanVzdG1lbnQgdG8gdGhlXG4gIC8vIHpvb20gcmFuZ2UgKHNlZSBLZXBsZXJHbG9iZVZpZXcuX2NvbnN0cmFpblpvb20pLiBJZiB3ZSBjbGFtcCB0aGUgcHJvcGFnYXRlZFxuICAvLyB6b29tIGhlcmUgYWdhaW5zdCB0aGUgcmF3IG1pblpvb20vbWF4Wm9vbSAod2l0aG91dCB0aGF0IGFkanVzdG1lbnQpLCBSZWR1eFxuICAvLyBlbmRzIHVwIGRpc2FncmVlaW5nIHdpdGggdGhlIGNvbnRyb2xsZXI6IHRoZSBjb250cm9sbGVyIGxldHMgdGhlIHVzZXIgcHVsbFxuICAvLyB0aGUgZ2xvYmUgZnVydGhlciBvdXQsIGJ1dCB0aGlzIGNsYW1wIHNuYXBzIHpvb20gYmFjayB0byBgbWluWm9vbWAgd2hlbiB0aGVcbiAgLy8gaW50ZXJhY3Rpb24ncyBpbmVydGlhIHRyYW5zaXRpb24gZW5kcy4gQXBwbHkgdGhlIHNhbWUgYWRqdXN0bWVudCBpbiBnbG9iZVxuICAvLyBtb2RlIHNvIFJlZHV4IHN0YXlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgY29udHJvbGxlciBhbmQgdGhlcmUncyBubyBzbmFwLWJhY2suXG4gIGNvbnN0IGlzR2xvYmUgPSAobmV3Vmlld3BvcnQgYXMgYW55KS5nbG9iZT8uZW5hYmxlZDtcblxuICBpZiAoaXNHbG9iZSkge1xuICAgIC8vIEtlZXAgdGhlIGNhbWVyYSB0YXJnZXQgd2l0aGluIGEgbGF0aXR1ZGUgYmFuZCBhcm91bmQgdGhlIGVxdWF0b3Igc28gdGhlXG4gICAgLy8gc3RvcmVkIHZpZXdwb3J0IGNhbid0IGJlIGNlbnRlcmVkIG9uIHRoZSBwb2xlcyAobWF0Y2hlcyB0aGUgZ2xvYmVcbiAgICAvLyBjb250cm9sbGVyJ3MgYXBwbHlDb25zdHJhaW50cyBzbyBnZW9jb2Rlci9wcm9ncmFtbWF0aWMgdXBkYXRlcyBhZ3JlZSkuXG4gICAgaWYgKHR5cGVvZiBuZXdWaWV3cG9ydC5sYXRpdHVkZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIG5ld1ZpZXdwb3J0LmxhdGl0dWRlID0gTWF0aC5taW4oXG4gICAgICAgIEdMT0JFX01BWF9MQVRJVFVERSxcbiAgICAgICAgTWF0aC5tYXgoLUdMT0JFX01BWF9MQVRJVFVERSwgbmV3Vmlld3BvcnQubGF0aXR1ZGUpXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB6b29tQWRqdXN0bWVudCA9IE1hdGgubG9nMihNYXRoLmNvcygoKG5ld1ZpZXdwb3J0LmxhdGl0dWRlID8/IDApICogTWF0aC5QSSkgLyAxODApKTtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbmV3Vmlld3BvcnQubWluWm9vbSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC56b29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgbmV3Vmlld3BvcnQuem9vbSA8IG5ld1ZpZXdwb3J0Lm1pblpvb20gKyB6b29tQWRqdXN0bWVudFxuICAgICkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1pblpvb20gKyB6b29tQWRqdXN0bWVudDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIG5ld1ZpZXdwb3J0Lm1heFpvb20gPT09ICdudW1iZXInICYmXG4gICAgICB0eXBlb2YgbmV3Vmlld3BvcnQuem9vbSA9PT0gJ251bWJlcicgJiZcbiAgICAgIG5ld1ZpZXdwb3J0Lnpvb20gPiBuZXdWaWV3cG9ydC5tYXhab29tICsgem9vbUFkanVzdG1lbnRcbiAgICApIHtcbiAgICAgIG5ld1ZpZXdwb3J0Lnpvb20gPSBuZXdWaWV3cG9ydC5tYXhab29tICsgem9vbUFkanVzdG1lbnQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIE1ha2Ugc3VyZSB6b29tIGxldmVsIGRvZXNuJ3QgZ28gYmVsbG93IG1pblpvb20gaWYgZGVmaW5lZFxuICAgIGlmIChuZXdWaWV3cG9ydC5taW5ab29tICYmIG5ld1ZpZXdwb3J0Lnpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSA8IG5ld1ZpZXdwb3J0Lm1pblpvb20pIHtcbiAgICAgIG5ld1ZpZXdwb3J0Lnpvb20gPSBuZXdWaWV3cG9ydC5taW5ab29tO1xuICAgIH1cbiAgICAvLyBNYWtlIHN1cmUgem9vbSBsZXZlbCBkb2Vzbid0IGdvIGFib3ZlIG1heFpvb20gaWYgZGVmaW5lZFxuICAgIGlmIChuZXdWaWV3cG9ydC5tYXhab29tICYmIG5ld1ZpZXdwb3J0Lnpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSA+IG5ld1ZpZXdwb3J0Lm1heFpvb20pIHtcbiAgICAgIG5ld1ZpZXdwb3J0Lnpvb20gPSBuZXdWaWV3cG9ydC5tYXhab29tO1xuICAgIH1cbiAgfVxuICAvLyBMaW1pdCB2aWV3cG9ydCB1cGRhdGUgYmFzZWQgb24gbWF4Qm91bmRzXG4gIGlmIChuZXdWaWV3cG9ydC5tYXhCb3VuZHMgJiYgdmFsaWRhdGVCb3VuZHMobmV3Vmlld3BvcnQubWF4Qm91bmRzKSkge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSAnVmlld3BvcnQnIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAnTWFwU3RhdGUnOiBpc1NwbGl0LCBpc1ZpZXdwb3J0U3luY2VkLCBpc1pvb21Mb2NrZWQsIHNwbGl0TWFwVmlld3BvcnRzXG4gICAgbmV3Vmlld3BvcnQgPSB1cGRhdGVWaWV3cG9ydEJhc2VkT25Cb3VuZHMob3JpZ2luYWxWaWV3cG9ydCwgbmV3Vmlld3BvcnQpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1ZpZXdwb3J0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxXQUFXLE1BQU0sc0JBQXNCO0FBQzlDLFNBQVFDLGFBQWEsUUFBTyxzQkFBc0I7QUFDbEQsU0FBUUMsV0FBVyxRQUFPLG9CQUFvQjtBQUM5QyxTQUFRQyxTQUFTLFFBQU8sdUJBQXVCO0FBQy9DLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLElBQUksTUFBTSxhQUFhO0FBRTlCLFNBQ0VDLDBCQUEwQixFQUMxQkMsY0FBYyxFQUNk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QUFJLENBQUM2RSxHQUFHLENBQUUsRUFBQUgscUJBQUEsR0FBQ0YsV0FBVyxDQUFDeEgsUUFBUSxjQUFBMEgscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxDQUFDLElBQUkxRSxJQUFJLENBQUM4RSxFQUFFLEdBQUksR0FBRyxDQUFDLENBQUM7SUFDekYsSUFDRSxPQUFPTixXQUFXLENBQUNsSCxPQUFPLEtBQUssUUFBUSxJQUN2QyxPQUFPa0gsV0FBVyxDQUFDdEgsSUFBSSxLQUFLLFFBQVEsSUFDcENzSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNsSCxPQUFPLEdBQUdxSCxjQUFjLEVBQ3ZEO01BQ0FILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2xILE9BQU8sR0FBR3FILGNBQWM7SUFDekQ7SUFDQSxJQUNFLE9BQU9ILFdBQVcsQ0FBQ2hILE9BQU8sS0FBSyxRQUFRLElBQ3ZDLE9BQU9nSCxXQUFXLENBQUN0SCxJQUFJLEtBQUssUUFBUSxJQUNwQ3NILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2hILE9BQU8sR0FBR21ILGNBQWMsRUFDdkQ7TUFDQUgsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDaEgsT0FBTyxHQUFHbUgsY0FBYztJQUN6RDtFQUNGLENBQUMsTUFBTTtJQUNMO0lBQ0EsSUFBSUgsV0FBVyxDQUFDbEgsT0FBTyxJQUFJa0gsV0FBVyxDQUFDdEgsSUFBSSxJQUFJc0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDbEgsT0FBTyxFQUFFO01BQ3JGa0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDbEgsT0FBTztJQUN4QztJQUNBO0lBQ0EsSUFBSWtILFdBQVcsQ0FBQ2hILE9BQU8sSUFBSWdILFdBQVcsQ0FBQ3RILElBQUksSUFBSXNILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2hILE9BQU8sRUFBRTtNQUNyRmdILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2hILE9BQU87SUFDeEM7RUFDRjtFQUNBO0VBQ0EsSUFBSWdILFdBQVcsQ0FBQzlHLFNBQVMsSUFBSXZCLGNBQWMsQ0FBQ3FJLFdBQVcsQ0FBQzlHLFNBQVMsQ0FBQyxFQUFFO0lBQ2xFO0lBQ0E4RyxXQUFXLEdBQUd4QiwyQkFBMkIsQ0FBQ3FCLGdCQUFnQixFQUFFRyxXQUFXLENBQUM7RUFDMUU7RUFFQSxPQUFPQSxXQUFXO0FBQ3BCIiwiaWdub3JlTGlzdCI6W119
|
|
650
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW9WaWV3cG9ydCIsImJvb2xlYW5XaXRoaW4iLCJiYm94UG9seWdvbiIsImZpdEJvdW5kcyIsImRlZXBtZXJnZSIsInBpY2siLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsInZhbGlkYXRlQm91bmRzIiwiTUFQQk9YX1RJTEVfU0laRSIsInZhbGlkYXRlVmlld1BvcnQiLCJNYXBTcGxpdE1vZGUiLCJNYXBWaWV3TW9kZSIsIkRFRkFVTFRfR0xPQkVfQ09ORklHIiwiR0xPQkVfTUlOX1pPT00iLCJHTE9CRV9NQVhfWk9PTSIsIkdMT0JFX01BWF9MQVRJVFVERSIsIm1hcFN0YXRlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVEFURSIsInBpdGNoIiwiYmVhcmluZyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsImRyYWdSb3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsIm1pblpvb20iLCJ1bmRlZmluZWQiLCJtYXhab29tIiwibWF4UGl0Y2giLCJtYXhCb3VuZHMiLCJpc1NwbGl0IiwiaXNWaWV3cG9ydFN5bmNlZCIsImlzWm9vbUxvY2tlZCIsInNwbGl0TWFwVmlld3BvcnRzIiwibWFwVmlld01vZGUiLCJNT0RFXzJEIiwiZ2xvYmUiLCJlbmFibGVkIiwiY29uZmlnIiwibWFwU3BsaXRNb2RlIiwiU0lOR0xFX01BUCIsInN3aXBlQ29tcGFyZVBlcmNlbnRhZ2UiLCJ1cGRhdGVNYXBVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJfYWN0aW9uJHBheWxvYWQiLCJwYXlsb2FkIiwiaW5wdXRWaWV3cG9ydCIsInZpZXdwb3J0IiwiX2FjdGlvbiRwYXlsb2FkJG1hcEluIiwibWFwSW5kZXgiLCJ1cGRhdGVWaWV3cG9ydCIsIm90aGVyVmlld3BvcnRNYXBJbmRleCIsIm1hcCIsImN1cnJlbnRWaWV3cG9ydCIsImkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIl9vYmplY3RTcHJlYWQiLCJmaXRCb3VuZHNVcGRhdGVyIiwiX2FjdGlvbiRtZXRhIiwiX3N0YXRlJGdsb2JlIiwiY2VudGVyQW5kWm9vbSIsInBhZGRpbmciLCJtZXRhIiwiaXNHbG9iZU1vZGUiLCJCb29sZWFuIiwiTWF0aCIsIm1pbiIsIm1heCIsIm5ld1N0YXRlIiwiY2VudGVyIiwibGVuZ3RoIiwidG9nZ2xlUGVyc3BlY3RpdmVVcGRhdGVyIiwiX3N0YXRlJGdsb2JlMiIsIndhc0dsb2JlRW5hYmxlZCIsIk1PREVfM0QiLCJzZXRNYXBWaWV3TW9kZVVwZGF0ZXIiLCJfc3RhdGUkZ2xvYmUzIiwibmV4dFN0YXRlIiwiTU9ERV9HTE9CRSIsImdsb2JlQ29uZmlnQ2hhbmdlVXBkYXRlciIsInJlc2V0TWFwQ29uZmlnVXBkYXRlciIsImluaXRpYWxTdGF0ZSIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwiX3JlZiIsIl9yZWYkcGF5bG9hZCIsIl9yZWYkcGF5bG9hZCRjb25maWciLCJfcmVmJHBheWxvYWQkb3B0aW9ucyIsIm9wdGlvbnMiLCJfcmVmJHBheWxvYWQkYm91bmRzIiwiYm91bmRzIiwibWFwU3RhdGUiLCJtZXJnZWRTdGF0ZSIsImFycmF5TWVyZ2UiLCJfZGVzdGluYXRpb25BcnJheSIsInNvdXJjZUFycmF5IiwiY2VudGVyTWFwIiwiZ2V0TWFwRGltRm9yU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJEVUFMX01BUCIsInNldE1hcFNwbGl0TW9kZVVwZGF0ZXIiLCJwcmV2TW9kZSIsIlNXSVBFX0NPTVBBUkUiLCJzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciIsInBlcmNlbnRhZ2UiLCJjbGFtcGVkIiwidG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXIiLCJuZXdNYXBTdGF0ZSIsImxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCIsImZpbmRJbmRleCIsInYiLCJsZWZ0Vmlld3BvcnQiLCJwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSIsInJpZ2h0Vmlld3BvcnQiLCJ1cGRhdGVWaWV3cG9ydEJhc2VkT25Cb3VuZHMiLCJ2aWV3cG9ydEJvdW5kcyIsInZpZXdwb3J0Qm91bmRzUG9seWdvbiIsIm5ld1N0YXRlTWF4Qm91bmRzIiwibWF4Qm91bmRzUG9seWdvbiIsImhhc01heEJvdW5kc0NoYW5nZWQiLCJldmVyeSIsInZhbCIsImlkeCIsIl9maXRCb3VuZHMiLCJkZWZpbmVkUHJvcHMiLCJvYmoiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjdSIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheSIsImsiLCJfZGVmaW5lUHJvcGVydHkiLCJvcmlnaW5hbFZpZXdwb3J0Iiwidmlld3BvcnRVcGRhdGVzIiwiX2dsb2JlIiwibmV3Vmlld3BvcnQiLCJpc0dsb2JlIiwiX25ld1ZpZXdwb3J0JGxhdGl0dWRlIiwiem9vbUFkanVzdG1lbnQiLCJsb2cyIiwiY29zIiwiUEkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQge2Jvb2xlYW5XaXRoaW59IGZyb20gJ0B0dXJmL2Jvb2xlYW4td2l0aGluJztcbmltcG9ydCB7YmJveFBvbHlnb259IGZyb20gJ0B0dXJmL2Jib3gtcG9seWdvbic7XG5pbXBvcnQge2ZpdEJvdW5kc30gZnJvbSAnQG1hdGguZ2wvd2ViLW1lcmNhdG9yJztcbmltcG9ydCBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCBwaWNrIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3BpY2snO1xuXG5pbXBvcnQge1xuICBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyxcbiAgdmFsaWRhdGVCb3VuZHMsXG4gIE1BUEJPWF9USUxFX1NJWkUsXG4gIHZhbGlkYXRlVmlld1BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge01hcFN0YXRlQWN0aW9ucywgUmVjZWl2ZU1hcENvbmZpZ1BheWxvYWQsIEFjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTdGF0ZSwgQm91bmRzLCBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFNwbGl0TW9kZSwgTWFwVmlld01vZGUsIERFRkFVTFRfR0xPQkVfQ09ORklHLCBHTE9CRV9NSU5fWk9PTSwgR0xPQkVfTUFYX1pPT00sIEdMT0JFX01BWF9MQVRJVFVERX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG4vKipcbiAqIFVwZGF0ZXJzIGZvciBgbWFwU3RhdGVgIHJlZHVjZXIuIENhbiBiZSB1c2VkIGluIHlvdXIgcm9vdCByZWR1Y2VyIHRvIGRpcmVjdGx5IG1vZGlmeSBrZXBsZXIuZ2wncyBzdGF0ZS5cbiAqIFJlYWQgbW9yZSBhYm91dCBbVXNpbmcgdXBkYXRlcnNdKC4uL2FkdmFuY2VkLXVzYWdlL3VzaW5nLXVwZGF0ZXJzLm1kKVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyLCB7bWFwU3RhdGVVcGRhdGVyc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBjbGljayBidXR0b24gdG8gY2xvc2Ugc2lkZSBwYW5lbFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVVwZGF0ZXJzLmZpdEJvdW5kc1VwZGF0ZXIoXG4gKiAgICAgICAgICAgICAgIG1hcFN0YXRlLCB7cGF5bG9hZDogWzEyNy4zNCwgMzEuMDksIDEyNy41NiwgMzEuNTldXX1cbiAqICAgICAgICAgICAgIClcbiAqICAgICAgICAgIH1cbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbWFwU3RhdGVVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYG1hcFN0YXRlYFxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHBpdGNoIERlZmF1bHQ6IGAwYFxuICogQHByb3BlcnR5IGJlYXJpbmcgRGVmYXVsdDogYDBgXG4gKiBAcHJvcGVydHkgbGF0aXR1ZGUgRGVmYXVsdDogYDM3Ljc1MDQzYFxuICogQHByb3BlcnR5IGxvbmdpdHVkZSBEZWZhdWx0OiBgLTEyMi4zNDY3OWBcbiAqIEBwcm9wZXJ0eSB6b29tIERlZmF1bHQ6IGA5YFxuICogQHByb3BlcnR5IGRyYWdSb3RhdGUgRGVmYXVsdDogYGZhbHNlYFxuICogQHByb3BlcnR5IHdpZHRoIERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgaGVpZ2h0IERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgbWluWm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4Wm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4UGl0Y2g6IGB1bmRlZmluZWRgIChkZWZhdWx0cyB0byBhcHBsaWNhdGlvbiBjb25maWcgdmFsdWUsIGRlY2suZ2wgZGVmYXVsdCBpcyA2MClcbiAqIEBwcm9wZXJ0eSBtYXhCb3VuZHM6IGB1bmRlZmluZWRgLFxuICogQHByb3BlcnR5IGlzU3BsaXQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgaXNWaWV3cG9ydFN5bmNlZDogYHRydWVgLFxuICogQHByb3BlcnR5IGlzWm9vbUxvY2tlZDogYGZhbHNlYCxcbiAqIEBwcm9wZXJ0eSBzcGxpdE1hcFZpZXdwb3J0czogYFtdYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NQVBfU1RBVEU6IE1hcFN0YXRlID0ge1xuICBwaXRjaDogMCxcbiAgYmVhcmluZzogMCxcbiAgbGF0aXR1ZGU6IDM3Ljc1MDQzLFxuICBsb25naXR1ZGU6IC0xMjIuMzQ2NzksXG4gIHpvb206IDksXG4gIGRyYWdSb3RhdGU6IGZhbHNlLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgbWluWm9vbTogdW5kZWZpbmVkLFxuICBtYXhab29tOiB1bmRlZmluZWQsXG4gIG1heFBpdGNoOiB1bmRlZmluZWQsXG4gIG1heEJvdW5kczogdW5kZWZpbmVkLFxuICBpc1NwbGl0OiBmYWxzZSxcbiAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdLFxuICBtYXBWaWV3TW9kZTogTWFwVmlld01vZGUuTU9ERV8yRCxcbiAgZ2xvYmU6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBjb25maWc6IERFRkFVTFRfR0xPQkVfQ09ORklHXG4gIH0sXG4gIG1hcFNwbGl0TW9kZTogTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVAsXG4gIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IDUwXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBVcGRhdGUgbWFwIHZpZXdwb3J0XG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdXBkYXRlTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5VcGRhdGVNYXBVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHt2aWV3cG9ydDogaW5wdXRWaWV3cG9ydCwgbWFwSW5kZXggPSAwfSA9IGFjdGlvbi5wYXlsb2FkO1xuICBjb25zdCB2aWV3cG9ydCA9IHZhbGlkYXRlVmlld1BvcnQoaW5wdXRWaWV3cG9ydCk7XG5cbiAgaWYgKHN0YXRlLmlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAvLyBUaGUgYHVwZGF0ZVZpZXdwb3J0YCBmdW5jdGlvbiBpcyB0eXBlZCBhcyAoVmlld3BvcnQsIFZpZXdwb3J0KSAtPiBWaWV3cG9ydCBidXQgaGVyZSB0aGVcbiAgICAvLyBleHBlY3RlZCB0eXBpbmcgaXMgKE1hcFN0YXRlLCBWaWV3cG9ydCkgLT4gTWFwU3RhdGUuXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBhIHBvdGVudGlhbCBidWcgYXMgd2UgdHJlYXQgVmlld3BvcnQgYW5kIE1hcFN0YXRlIGFzIGVxdWFsIHNlZW1pbmdseVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSAnVmlld3BvcnQnIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAnTWFwU3RhdGUnOiBpc1NwbGl0LCBpc1ZpZXdwb3J0U3luY2VkLCBpc1pvb21Mb2NrZWQsIHNwbGl0TWFwVmlld3BvcnRzXG4gICAgcmV0dXJuIHVwZGF0ZVZpZXdwb3J0KHN0YXRlLCB2aWV3cG9ydCk7XG4gIH1cblxuICBsZXQgb3RoZXJWaWV3cG9ydE1hcEluZGV4ID0gLTE7XG4gIGNvbnN0IHNwbGl0TWFwVmlld3BvcnRzID0gc3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubWFwKChjdXJyZW50Vmlld3BvcnQsIGkpID0+IHtcbiAgICBpZiAoaSA9PT0gbWFwSW5kZXgpIHtcbiAgICAgIC8vIHVwZGF0ZSB0aGUgbWF0Y2hpbmcgdmlld3BvcnQgd2l0aCB0aGUgbmV3Vmlld3BvcnQgaW5mbyBpbiB0aGUgYWN0aW9uIHBheWxvYWRcbiAgICAgIHJldHVybiB1cGRhdGVWaWV3cG9ydChjdXJyZW50Vmlld3BvcnQsIHZpZXdwb3J0KTtcbiAgICB9XG5cbiAgICBvdGhlclZpZXdwb3J0TWFwSW5kZXggPSBpO1xuICAgIC8vIG1ha2Ugbm8gY2hhbmdlcyB0byB0aGUgb3RoZXIgdmlld3BvcnQgKHlldClcbiAgICByZXR1cm4gY3VycmVudFZpZXdwb3J0O1xuICB9KTtcblxuICAvLyBtYWtlIGNvbmRpdGlvbmFsIHVwZGF0ZXMgdG8gdGhlIG90aGVyIHZpZXdwb3J0IG5vdCBtYXRjaGluZyB0aGlzIHBheWxvYWQncyBgbWFwSW5kZXhgXG4gIGlmIChOdW1iZXIuaXNGaW5pdGUob3RoZXJWaWV3cG9ydE1hcEluZGV4KSAmJiBvdGhlclZpZXdwb3J0TWFwSW5kZXggPiAtMSkge1xuICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGEgc3BlY2lhbCBjYXNlIGFuZCBhcmUgYWx3YXlzIHVwZGF0ZWRcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1tvdGhlclZpZXdwb3J0TWFwSW5kZXhdID0ge1xuICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgIHdpZHRoOiBzcGxpdE1hcFZpZXdwb3J0c1ttYXBJbmRleF0ud2lkdGgsXG4gICAgICBoZWlnaHQ6IHNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XS5oZWlnaHRcbiAgICB9O1xuXG4gICAgaWYgKHN0YXRlLmlzWm9vbUxvY2tlZCkge1xuICAgICAgLy8gdXBkYXRlIHRoZSBvdGhlciB2aWV3cG9ydCB3aXRoIHRoZSBuZXcgem9vbSBmcm9tIHRoZSBzcGxpdCB2aWV3cG9ydCB0aGF0IHdhcyB1cGRhdGVkIHdpdGggdGhpcyBwYXlsb2FkJ3MgYG1hcEluZGV4YFxuICAgICAgc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSA9IHtcbiAgICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgICAgem9vbTogc3BsaXRNYXBWaWV3cG9ydHNbbWFwSW5kZXhdLnpvb21cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyB1cGRhdGUgdGhlIHRvcC1sZXZlbCBtYXBTdGF0ZSB2aWV3cG9ydCB3aXRoIHRoZSBtb3N0IHJlY2VudGx5IGludGVyYWN0ZWQtd2l0aCBzcGxpdCB2aWV3cG9ydFxuICAgIC8vIFdIWT8gdGhpcyBhdm9pZHMgem9vbSBhbmQgYm91bmRzIFwianVtcGluZ1wiIGR1ZSB0byBhIFwic3RhbGVcIiB0b3AtbGV2ZWwgbWFwU3RhdGUgdmlld3BvcnQgd2hlbjpcbiAgICAvLyAgMS4gdG9nZ2xpbmcgb2ZmIHRoZSB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZSB0byBzd2l0Y2ggdG8gdGhlIHN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC8vICAyLiB0b2dnbGluZyBvbiB0aGUgem9vbSBsb2NrIGR1cmluZyBhbiB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC4uLnN0YXRlLFxuICAgIC4uLnNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XSxcbiAgICAvLyB1cGRhdGUgdGhlIG1hcFN0YXRlIHdpdGggdGhlIG5ldyBhcnJheSBvZiBzcGxpdCB2aWV3cG9ydHNcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1xuICB9O1xufTtcblxuLyoqXG4gKiBGaXQgbWFwIHZpZXdwb3J0IHRvIGJvdW5kc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZpdEJvdW5kc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuRml0Qm91bmRzVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCBjZW50ZXJBbmRab29tID0gZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMoYWN0aW9uLnBheWxvYWQsIHtcbiAgICB3aWR0aDogc3RhdGUud2lkdGgsXG4gICAgaGVpZ2h0OiBzdGF0ZS5oZWlnaHQsXG4gICAgcGFkZGluZzogYWN0aW9uLm1ldGE/LnBhZGRpbmdcbiAgfSk7XG4gIGlmICghY2VudGVyQW5kWm9vbSkge1xuICAgIC8vIGJvdW5kcyBpcyBpbnZhbGlkXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgLy8gSW4gZ2xvYmUgbW9kZSwgY2xhbXAgem9vbSB0byBnbG9iZSdzIGFsbG93ZWQgcmFuZ2VcbiAgY29uc3QgaXNHbG9iZU1vZGUgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcbiAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pXG4gICAgPyBpc0dsb2JlTW9kZVxuICAgICAgPyBNYXRoLm1pbihNYXRoLm1heChjZW50ZXJBbmRab29tLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pXG4gICAgICA6IGNlbnRlckFuZFpvb20uem9vbVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgIC8vIEZvciBtYXJnaW5hbCBvciBpbnZhbGlkIGJvdW5kcywgem9vbSBtYXkgYmUgTmFOLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBhIHZhbGlkIHZhbHVlIGluIG9yZGVyXG4gICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgIC4uLih6b29tICE9PSB1bmRlZmluZWQgPyB7em9vbX0gOiB7fSlcbiAgfTtcblxuICAvLyBpZiBmaXR0aW5nIHRvIGJvdW5kcyB3aGlsZSBzcGxpdCBhbmQgdW5zeW5jZWRcbiAgLy8gY29weSB0aGUgbmV3IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFuZCB6b29tIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIGxhdGl0dWRlOiBuZXdTdGF0ZS5sYXRpdHVkZSxcbiAgICAgIGxvbmdpdHVkZTogbmV3U3RhdGUubG9uZ2l0dWRlLFxuICAgICAgem9vbTogbmV3U3RhdGUuem9vbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gM2QgYW5kIDJkIG1hcC5cbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQZXJzcGVjdGl2ZVVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0YXRlKTogTWFwU3RhdGUgPT4ge1xuICAvLyBPbmx5IGRyb3AgbWluL21heFpvb20gd2hlbiB3ZSdyZSBhY3R1YWxseSBsZWF2aW5nIGdsb2JlIG1vZGUsIHdoZXJlIHRob3NlXG4gIC8vIGJvdW5kcyBhcmUgc2V0IHRvIGdsb2JlLW9ubHkgdmFsdWVzLiBJZiBnbG9iZSB3YXMgbmV2ZXIgZW5hYmxlZCB0aGVzZSBhcmVcbiAgLy8gdGhlIGFwcCdzIG93biBjdXN0b20gYm91bmRzIGFuZCBtdXN0IGJlIHByZXNlcnZlZC5cbiAgY29uc3Qgd2FzR2xvYmVFbmFibGVkID0gQm9vbGVhbihzdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgLi4ue1xuICAgICAgcGl0Y2g6IHN0YXRlLmRyYWdSb3RhdGUgPyAwIDogNTAsXG4gICAgICBiZWFyaW5nOiBzdGF0ZS5kcmFnUm90YXRlID8gMCA6IDI0XG4gICAgfSxcbiAgICBkcmFnUm90YXRlOiAhc3RhdGUuZHJhZ1JvdGF0ZSxcbiAgICBtYXBWaWV3TW9kZTogc3RhdGUuZHJhZ1JvdGF0ZSA/IE1hcFZpZXdNb2RlLk1PREVfMkQgOiBNYXBWaWV3TW9kZS5NT0RFXzNELFxuICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiBmYWxzZX0sXG4gICAgLy8gTGVhdmluZyBnbG9iZSBtb2RlOiBkcm9wIGdsb2JlLW9ubHkgem9vbSBib3VuZHMgc28gdGhlIGZsYXQgbWFwIChhbmRcbiAgICAvLyBjb25zdW1lcnMgb2YgbWFwU3RhdGUgc3VjaCBhcyB2aWRlbyBleHBvcnQpIGFyZW4ndCBsZWZ0IGNsYW1wZWQuIFdoZW5cbiAgICAvLyBnbG9iZSB3YXMgbmV2ZXIgb24sIGtlZXAgd2hhdGV2ZXIgbWluL21heFpvb20gdGhlIGFwcCBjb25maWd1cmVkLlxuICAgIC4uLih3YXNHbG9iZUVuYWJsZWQgPyB7bWluWm9vbTogdW5kZWZpbmVkLCBtYXhab29tOiB1bmRlZmluZWR9IDoge30pXG4gIH07XG5cbiAgLy8gaWYgdG9nZ2xpbmcgM2QgYW5kIDJkIHdoaWxlIHNwbGl0IGFuZCB1bnN5bmNlZFxuICAvLyBjb3B5IHRoZSBuZXcgcGl0Y2gsIGJlYXJpbmcsIGFuZCBkcmFnUm90YXRlIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIHBpdGNoOiBuZXdTdGF0ZS5waXRjaCxcbiAgICAgIGJlYXJpbmc6IG5ld1N0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXdTdGF0ZS5kcmFnUm90YXRlXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufTtcblxuLyoqXG4gKiBTZXQgbWFwIHZpZXcgbW9kZSAoMkQsIDNELCBHbG9iZSlcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNYXBWaWV3TW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwVmlld01vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBWaWV3TW9kZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgbGV0IG5leHRTdGF0ZTogTWFwU3RhdGU7XG5cbiAgLy8gT25seSBjbGVhciBtaW4vbWF4Wm9vbSB3aGVuIGxlYXZpbmcgZ2xvYmUgbW9kZSAod2hlcmUgdGhleSBob2xkIGdsb2JlLW9ubHlcbiAgLy8gYm91bmRzKS4gT3RoZXJ3aXNlIHByZXNlcnZlIHRoZSBhcHAncyBjdXN0b20gYm91bmRzLlxuICBjb25zdCB3YXNHbG9iZUVuYWJsZWQgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcblxuICBzd2l0Y2ggKG1hcFZpZXdNb2RlKSB7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzJEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgIGJlYXJpbmc6IDAsXG4gICAgICAgIGRyYWdSb3RhdGU6IGZhbHNlLFxuICAgICAgICAvLyBDbGVhciB0aGUgZ2xvYmUtb25seSB6b29tIGJvdW5kcyBzbyB0aGUgZmxhdCBtYXAgKGFuZCBhbnl0aGluZyB0aGF0XG4gICAgICAgIC8vIHJlYWRzIG1hcFN0YXRlLCBlLmcuIHZpZGVvIGV4cG9ydCkgaXMgbm90IGxlZnQgd2l0aCBnbG9iZSdzXG4gICAgICAgIC8vIG1pbi9tYXhab29tIGFmdGVyIGxlYXZpbmcgZ2xvYmUgbW9kZS4gT25seSB3aGVuIGdsb2JlIHdhcyBhY3R1YWxseSBvbi5cbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzNEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDUwLFxuICAgICAgICBiZWFyaW5nOiAyNCxcbiAgICAgICAgZHJhZ1JvdGF0ZTogdHJ1ZSxcbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFX0dMT0JFOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IHRydWV9LFxuICAgICAgICBkcmFnUm90YXRlOiB0cnVlLFxuICAgICAgICBwaXRjaDogMCxcbiAgICAgICAgYmVhcmluZzogMCxcbiAgICAgICAgLy8gQWxsb3cgem9vbWluZyBvdXQgZnVydGhlciB0aGFuIHRoZSBkZWZhdWx0IHNvIHRoZSB3aG9sZSBnbG9iZSBjYW4gYmVcbiAgICAgICAgLy8gcHVsbGVkIGJhY2sgb24gc2NyZWVuLiBDYXAgdGhlIG1heCB6b29tIHNvIHRoZSBiYXNlbWFwIHRpbGVzIHN0YXlcbiAgICAgICAgLy8gY29oZXJlbnQgKHRoZXkgYnJlYWsgZG93biBhdCBoaWdoIGdsb2JlIHpvb20gaW4gZGVjay5nbCA5LngpLlxuICAgICAgICBtaW5ab29tOiBHTE9CRV9NSU5fWk9PTSxcbiAgICAgICAgbWF4Wm9vbTogR0xPQkVfTUFYX1pPT00sXG4gICAgICAgIHpvb206IE1hdGgubWluKE1hdGgubWF4KHN0YXRlLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pLFxuICAgICAgICBtYXBWaWV3TW9kZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAobmV4dFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmxlbmd0aCkge1xuICAgIG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoY3VycmVudFZpZXdwb3J0ID0+ICh7XG4gICAgICAuLi5jdXJyZW50Vmlld3BvcnQsXG4gICAgICBwaXRjaDogbmV4dFN0YXRlLnBpdGNoLFxuICAgICAgYmVhcmluZzogbmV4dFN0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXh0U3RhdGUuZHJhZ1JvdGF0ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXh0U3RhdGU7XG59O1xuXG4vKipcbiAqIFVwZGF0ZSBnbG9iZSBjb25maWdcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBnbG9iZUNvbmZpZ0NoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuR2xvYmVDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2xvYmU6IHtcbiAgICAgIC4uLnN0YXRlLmdsb2JlISxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5zdGF0ZS5nbG9iZSEuY29uZmlnLFxuICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogcmVzZXQgbWFwU3RhdGUgdG8gaW5pdGlhbCBTdGF0ZVxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0TWFwQ29uZmlnVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5JTklUSUFMX01BUF9TVEFURSxcbiAgLi4uc3RhdGUuaW5pdGlhbFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IHN0YXRlLmluaXRpYWxTdGF0ZVxufSk7XG5cbi8vIGNvbnNpZGVyIGNhc2Ugd2hlcmUgeW91IGhhdmUgYSBzcGxpdCBtYXAgYW5kIHVzZXIgd2FudHMgdG8gcmVzZXRcbi8qKlxuICogVXBkYXRlIGBtYXBTdGF0ZWAgdG8gcHJvcGFnYXRlIGEgbmV3IGNvbmZpZ1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlY2VpdmVNYXBDb25maWdVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcGF5bG9hZDoge2NvbmZpZyA9IHt9LCBvcHRpb25zID0ge30sIGJvdW5kcyA9IG51bGx9XG4gIH06IHtcbiAgICB0eXBlPzogdHlwZW9mIEFjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJRztcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogTWFwU3RhdGUgPT4ge1xuICAvKipcbiAgICogQHR5cGUge1BhcnRpYWw8TWFwU3RhdGU+fVxuICAgKi9cbiAgY29uc3QgbWFwU3RhdGUgPSAoY29uZmlnIHx8IHt9KS5tYXBTdGF0ZSB8fCB7fTtcbiAgLy8gbWVyZ2VkIHJlY2VpdmVkIG1hcFN0YXRlIHdpdGggcHJldmlvdXMgc3RhdGVcbiAgLy8gc3RhdGUgYWxzbyBtYXkgaW5jbHVkZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5ldyB0byBhbiBleGlzdGluZywgc2F2ZWQgcHJvamVjdCdzIG1hcFN0YXRlXG5cbiAgbGV0IG1lcmdlZFN0YXRlID0gZGVlcG1lcmdlPE1hcFN0YXRlPihzdGF0ZSwgbWFwU3RhdGUsIHtcbiAgICAvLyBub3RlOiBkZWVwbWVyZ2UgYnkgZGVmYXVsdCB3aWxsIG1lcmdlIGFycmF5cyBieSBjb25jYXRlbmF0aW5nIHRoZW1cbiAgICAvLyBidXQgd2UgbmVlZCB0byBvdmVyd3JpdGUgZGVzdGluYXRpb24gYXJyYXlzIHdpdGggc291cmNlIGFycmF5cywgaWYgcHJlc2VudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWhTaHJpa2UvZGVlcG1lcmdlI2FycmF5bWVyZ2UtZXhhbXBsZS1vdmVyd3JpdGUtdGFyZ2V0LWFycmF5XG4gICAgYXJyYXlNZXJnZTogKF9kZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXlcbiAgfSk7XG5cbiAgLy8gaWYgY2VudGVyIG1hcFxuICAvLyBjZW50ZXIgbWFwIHdpbGwgb3ZlcnJpZGUgbWFwU3RhdGUgY29uZmlnXG4gIGlmIChvcHRpb25zLmNlbnRlck1hcCAmJiBib3VuZHMpIHtcbiAgICBtZXJnZWRTdGF0ZSA9IGZpdEJvdW5kc1VwZGF0ZXIobWVyZ2VkU3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IGJvdW5kcyxcbiAgICAgIG1ldGE6IHtwYWRkaW5nOiBvcHRpb25zLnBhZGRpbmd9XG4gICAgfSk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgd2UgdmFsaWRhdGUgbWFwIHN0YXRlIGJlZm9yZSB3ZSBtZXJnZVxuICBtZXJnZWRTdGF0ZSA9IHZhbGlkYXRlVmlld1BvcnQobWVyZ2VkU3RhdGUpO1xuXG4gIHJldHVybiB7XG4gICAgLi4ubWVyZ2VkU3RhdGUsXG4gICAgLy8gdXBkYXRlIHdpZHRoIGlmIGBpc1NwbGl0YCBoYXMgY2hhbmdlZFxuICAgIC4uLmdldE1hcERpbUZvclNwbGl0TWFwKG1lcmdlZFN0YXRlLmlzU3BsaXQsIHN0YXRlKVxuICB9O1xufTtcblxuLyoqXG4gKiBUb2dnbGUgYmV0d2VlbiBvbmUgb3Igc3BsaXQgbWFwc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNwbGl0TWFwVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgLi4uZ2V0TWFwRGltRm9yU3BsaXRNYXAoIXN0YXRlLmlzU3BsaXQsIHN0YXRlKSxcbiAgaXNTcGxpdDogIXN0YXRlLmlzU3BsaXQsXG4gIG1hcFNwbGl0TW9kZTogIXN0YXRlLmlzU3BsaXQgPyBNYXBTcGxpdE1vZGUuRFVBTF9NQVAgOiBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCxcbiAgLi4uKCFzdGF0ZS5pc1NwbGl0ID09PSBmYWxzZVxuICAgID8ge1xuICAgICAgICAvLyBpZiB0b2dnbGluZyB0byBubyBsb25nZXIgc3BsaXQgKHNpbmdsZSBtb2RlKSB0aGVuIHJlc2V0IGEgZmV3IHByb3BlcnRpZXNcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9XG4gICAgOiB7fSlcbn0pO1xuXG4vKipcbiAqIFNldCB0aGUgbWFwIHNwbGl0IG1vZGUgKHNpbmdsZSwgZHVhbCwgb3Igc3dpcGUpXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwU3BsaXRNb2RlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRNYXBTcGxpdE1vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBTcGxpdE1vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IHByZXZNb2RlID0gc3RhdGUubWFwU3BsaXRNb2RlO1xuXG4gIGlmIChtYXBTcGxpdE1vZGUgPT09IHByZXZNb2RlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3dpdGNoIChtYXBTcGxpdE1vZGUpIHtcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcFNwbGl0TW9kZSxcbiAgICAgICAgaXNTcGxpdDogZmFsc2UsXG4gICAgICAgIC4uLihwcmV2TW9kZSA9PT0gTWFwU3BsaXRNb2RlLkRVQUxfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggKiAyXG4gICAgICAgIH0pLFxuICAgICAgICBpc1ZpZXdwb3J0U3luY2VkOiB0cnVlLFxuICAgICAgICBpc1pvb21Mb2NrZWQ6IGZhbHNlLFxuICAgICAgICBzcGxpdE1hcFZpZXdwb3J0czogW11cbiAgICAgIH07XG4gICAgY2FzZSBNYXBTcGxpdE1vZGUuRFVBTF9NQVA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5EVUFMX01BUCAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoICogMlxuICAgICAgICB9KSxcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0IHRoZSBzd2lwZSBjb21wYXJlIHBlcmNlbnRhZ2VcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7cGVyY2VudGFnZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgcGVyY2VudGFnZSkpO1xuICBpZiAoY2xhbXBlZCA9PT0gc3RhdGUuc3dpcGVDb21wYXJlUGVyY2VudGFnZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IGNsYW1wZWRcbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gbG9ja2VkIGFuZCB1bmxvY2tlZCBzcGxpdCB2aWV3cG9ydHNcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlckFjdGlvblxuKSA9PiB7XG4gIC8vIFN3aXBlIG1vZGUgYWx3YXlzIHVzZXMgc3luY2VkIHZpZXdwb3J0c1xuICBpZiAoc3RhdGUubWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIC8vIG5ldyBtYXAgc3RhdGUgaW1tZWRpYXRlbHkgZ2V0cyB0aGUgbmV3LCBvcHRpb25hbCBwYXlsb2FkIHZhbHVlcyBmb3IgaXNWaWV3cG9ydFN5bmNlZCBhbmQvb3IgaXNab29tTG9ja2VkXG4gIGNvbnN0IG5ld01hcFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLihhY3Rpb24ucGF5bG9hZCB8fCB7fSlcbiAgfTtcblxuICBpZiAobmV3TWFwU3RhdGUuaXNWaWV3cG9ydFN5bmNlZCkge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHVuc3luY2VkIHRvIHN5bmNlZCB2aWV3cG9ydHNcbiAgICBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IFtdO1xuICB9IGVsc2Uge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHN5bmNlZCB0byB1bnN5bmNlZCB2aWV3cG9ydHNcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIHRvZ2dsaW5nIGxvY2tlZCB6b29tXG5cbiAgICBpZiAoc3RhdGUuaXNab29tTG9ja2VkICYmICFuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvZmYgbG9ja2VkIHpvb20gd2hpbGUgdW5zeW5jZWRcbiAgICAgIC8vIGRvbid0IGNvcHkgdGhlIG1hcFN0YXRlcyB0byBsZWZ0IGFuZCByaWdodCB2aWV3cG9ydHMgYmVjYXVzZSB0aGVyZSB3aWxsIGJlIHpvb20gXCJqdW1waW5nXCJcbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLmlzWm9vbUxvY2tlZCAmJiBuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvbiBsb2NrZWQgem9vbSB3aGlsZSB1bnN5bmNlZFxuICAgICAgLy8gb25seSBjb3B5IHpvb20gdmlld3BvcnQgcHJvcGVydHkgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBpbnRlcmFjdGVkLXdpdGggdmlld3BvcnQgdG8gdGhlIG90aGVyXG4gICAgICAvLyBUT0RPOiBkbyB3ZSB3YW50IHRvIGNoZWNrIGZvciBhIG1hdGNoIGEgZGlmZmVyZW50IHdheSwgc3VjaCBhcyBhIGNvbWJvIG9mIGBsYXRpdHVkZWAgYW5kIGBsb25naXR1ZGVgP1xuICAgICAgY29uc3QgbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4ID0gbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMuZmluZEluZGV4KFxuICAgICAgICB2ID0+IG5ld01hcFN0YXRlLnpvb20gPT09IHYuem9vbVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoKGN1cnJlbnRWaWV3cG9ydCwgaSkgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4KSB7XG4gICAgICAgICAgLy8gbm8gem9vbSB0byBtb2RpZnkgaGVyZVxuICAgICAgICAgIHJldHVybiBjdXJyZW50Vmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhlIG90aGVyIHZpZXdwb3J0IGdldHMgdGhlIG1vc3QgcmVjZW50bHkgaW50ZXJhY3RlZC13aXRoIHZpZXdwb3J0J3Mgem9vbVxuICAgICAgICAvLyBXSFk/IHRoZSB2aWV3cG9ydCB0aGUgdXNlciB3YXMgbGFzdCBpbnRlcmFjdGluZyB3aXRoIHdpbGwgc2V0IHpvb20gYWNyb3NzIHRoZSBib2FyZCBmb3Igc21vb3RoIFVYXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY3VycmVudFZpZXdwb3J0LFxuICAgICAgICAgIHpvb206IG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2xhc3RVcGRhdGVkVmlld3BvcnRJbmRleF0uem9vbVxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzID0gc3BsaXRNYXBWaWV3cG9ydHM7XG5cbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICAvLyBpZiBjdXJyZW50IHZpZXdwb3J0IGlzIHN5bmNlZCwgYW5kIHdlIGFyZSB1bnN5bmNpbmcgaXRcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIE5PVCB0b2dnbGluZyBsb2NrZWQgem9vbVxuICAgIC8vIG1ha2UgYSBmcmVzaCBjb3B5IG9mIHRoZSBjdXJyZW50IHZpZXdwb3J0IG9iamVjdCwgYXNzaWduIGl0IHRvIHNwbGl0TWFwVmlld3BvcnRzW11cbiAgICAvLyBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSBpcyBjYWxsZWQgdHdpY2UgdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb24gY29uZmxpY3RzXG4gICAgY29uc3QgbGVmdFZpZXdwb3J0ID0gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUobmV3TWFwU3RhdGUpO1xuICAgIGNvbnN0IHJpZ2h0Vmlld3BvcnQgPSBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZShuZXdNYXBTdGF0ZSk7XG4gICAgbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBbbGVmdFZpZXdwb3J0LCByaWdodFZpZXdwb3J0XTtcbiAgfVxuXG4gIC8vIHJldHVybiBuZXcgc3RhdGVcbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufTtcblxuLy8gSGVscGVyc1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcERpbUZvclNwbGl0TWFwKGlzU3BsaXQsIHN0YXRlKSB7XG4gIC8vIGNhc2VzOlxuICAvLyAxLiBzdGF0ZSBzcGxpdDogdHJ1ZSAtIGlzU3BsaXQ6IHRydWVcbiAgLy8gZG8gbm90aGluZ1xuICAvLyAyLiBzdGF0ZSBzcGxpdDogZmFsc2UgLSBpc1NwbGl0OiBmYWxzZVxuICAvLyBkbyBub3RoaW5nXG4gIGlmIChzdGF0ZS5pc1NwbGl0ID09PSBpc1NwbGl0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gSW4gc3dpcGUgbW9kZSwgYm90aCBtYXBzIHVzZSBmdWxsIHdpZHRoIChvdmVybGFwcGluZyB3aXRoIGNsaXApXG4gIGlmIChzdGF0ZS5tYXBTcGxpdE1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qgd2lkdGggPVxuICAgIHN0YXRlLmlzU3BsaXQgJiYgIWlzU3BsaXRcbiAgICAgID8gLy8gMy4gc3RhdGUgc3BsaXQ6IHRydWUgLSBpc1NwbGl0OiBmYWxzZVxuICAgICAgICAvLyBkb3VibGUgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggKiAyXG4gICAgICA6IC8vIDQuIHN0YXRlIHNwbGl0OiBmYWxzZSAtIGlzU3BsaXQ6IHRydWVcbiAgICAgICAgLy8gc3BsaXQgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggLyAyO1xuXG4gIHJldHVybiB7XG4gICAgd2lkdGhcbiAgfTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVmlld3BvcnRCYXNlZE9uQm91bmRzKHN0YXRlOiBNYXBTdGF0ZSwgbmV3TWFwU3RhdGU6IE1hcFN0YXRlKSB7XG4gIC8vIEdldCB0aGUgbmV3IHZpZXdwb3J0IGJvdW5kc1xuICBjb25zdCB2aWV3cG9ydEJvdW5kcyA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhcbiAgICBbbmV3TWFwU3RhdGUubG9uZ2l0dWRlLCBuZXdNYXBTdGF0ZS5sYXRpdHVkZV0sXG4gICAgbmV3TWFwU3RhdGUuem9vbSxcbiAgICBbbmV3TWFwU3RhdGUud2lkdGgsIG5ld01hcFN0YXRlLmhlaWdodF0sXG4gICAgTUFQQk9YX1RJTEVfU0laRVxuICApO1xuICAvLyBHZW5lcmF0ZSB0dXJmIFBvbHlnb24gZnJvbSBib3VuZHMgZm9yIGNvbXBhcmlzb25cbiAgY29uc3Qgdmlld3BvcnRCb3VuZHNQb2x5Z29uID0gYmJveFBvbHlnb24odmlld3BvcnRCb3VuZHMpO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IG5ld1N0YXRlTWF4Qm91bmRzOiBCb3VuZHMgPSBuZXdNYXBTdGF0ZS5tYXhCb3VuZHM7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbWF4Qm91bmRzUG9seWdvbiA9IGJib3hQb2x5Z29uKG5ld1N0YXRlTWF4Qm91bmRzKTtcblxuICAvLyBJZiBtYXhCb3VuZHMgaGFzIGNoYW5nZWQgcmVzZXQgdGhlIHZpZXdwb3J0IHRvIHNuYXAgdG8gYm91bmRzXG4gIGNvbnN0IGhhc01heEJvdW5kc0NoYW5nZWQgPVxuICAgICFzdGF0ZS5tYXhCb3VuZHMgfHwgIXN0YXRlLm1heEJvdW5kcy5ldmVyeSgodmFsLCBpZHgpID0+IHZhbCA9PT0gbmV3U3RhdGVNYXhCb3VuZHNbaWR4XSk7XG4gIGlmIChoYXNNYXhCb3VuZHNDaGFuZ2VkKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIG5ld01hcFN0YXRlIHZpZXdwb3J0IGlzIHdpdGhpbiBtYXhCb3VuZHNcbiAgICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgICAgY29uc3Qge2xhdGl0dWRlLCBsb25naXR1ZGUsIHpvb219ID0gZml0Qm91bmRzKHtcbiAgICAgICAgd2lkdGg6IG5ld01hcFN0YXRlLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IG5ld01hcFN0YXRlLmhlaWdodCxcbiAgICAgICAgYm91bmRzOiBbXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzBdLCBuZXdTdGF0ZU1heEJvdW5kc1sxXV0sXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzJdLCBuZXdTdGF0ZU1heEJvdW5kc1szXV1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgICAuLi5uZXdNYXBTdGF0ZSxcbiAgICAgICAgbGF0aXR1ZGUsXG4gICAgICAgIGxvbmdpdHVkZSxcbiAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgICAgICAuLi4oTnVtYmVyLmlzRmluaXRlKHpvb20pID8ge3pvb219IDoge30pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3TWFwU3RhdGU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgbmV3TWFwU3RhdGUgdmlld3BvcnQgaXMgd2l0aGluIG1heEJvdW5kc1xuICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgLi4ubmV3TWFwU3RhdGUsXG4gICAgICBsb25naXR1ZGU6IHN0YXRlLmxvbmdpdHVkZSxcbiAgICAgIGxhdGl0dWRlOiBzdGF0ZS5sYXRpdHVkZSxcbiAgICAgIHpvb206IHN0YXRlLnpvb21cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUoc3RhdGU6IE1hcFN0YXRlKTogVmlld3BvcnQge1xuICByZXR1cm4gcGljayhzdGF0ZSwgW1xuICAgICd3aWR0aCcsXG4gICAgJ2hlaWdodCcsXG4gICAgJ3pvb20nLFxuICAgICdwaXRjaCcsXG4gICAgJ2JlYXJpbmcnLFxuICAgICdsYXRpdHVkZScsXG4gICAgJ2xvbmdpdHVkZScsXG4gICAgJ2RyYWdSb3RhdGUnLFxuICAgICdtaW5ab29tJyxcbiAgICAnbWF4Wm9vbScsXG4gICAgJ21heFBpdGNoJyxcbiAgICAnbWF4Qm91bmRzJ1xuICBdKTtcbn1cblxuLyoqIFNlbGVjdCBpdGVtcyBmcm9tIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyBub3QgdW5kZWZpbmVkICovXG5jb25zdCBkZWZpbmVkUHJvcHMgPSBvYmogPT5cbiAgT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGFjY3UsIFtrLCB2XSkgPT4gKHsuLi5hY2N1LCAuLi4odiAhPT0gdW5kZWZpbmVkID8ge1trXTogdn0gOiB7fSl9KSxcbiAgICB7fVxuICApO1xuXG5mdW5jdGlvbiB1cGRhdGVWaWV3cG9ydChvcmlnaW5hbFZpZXdwb3J0OiBWaWV3cG9ydCwgdmlld3BvcnRVcGRhdGVzOiBWaWV3cG9ydCk6IFZpZXdwb3J0IHtcbiAgbGV0IG5ld1ZpZXdwb3J0ID0ge1xuICAgIC4uLm9yaWdpbmFsVmlld3BvcnQsXG4gICAgLi4uKGRlZmluZWRQcm9wcyh2aWV3cG9ydFVwZGF0ZXMpIHx8IHt9KVxuICB9O1xuXG4gIC8vIGRlY2suZ2wncyBnbG9iZSBjb250cm9sbGVyIGFwcGxpZXMgYSBsYXRpdHVkZS1kZXBlbmRlbnQgYWRqdXN0bWVudCB0byB0aGVcbiAgLy8gem9vbSByYW5nZSAoc2VlIEtlcGxlckdsb2JlVmlldy5fY29uc3RyYWluWm9vbSkuIElmIHdlIGNsYW1wIHRoZSBwcm9wYWdhdGVkXG4gIC8vIHpvb20gaGVyZSBhZ2FpbnN0IHRoZSByYXcgbWluWm9vbS9tYXhab29tICh3aXRob3V0IHRoYXQgYWRqdXN0bWVudCksIFJlZHV4XG4gIC8vIGVuZHMgdXAgZGlzYWdyZWVpbmcgd2l0aCB0aGUgY29udHJvbGxlcjogdGhlIGNvbnRyb2xsZXIgbGV0cyB0aGUgdXNlciBwdWxsXG4gIC8vIHRoZSBnbG9iZSBmdXJ0aGVyIG91dCwgYnV0IHRoaXMgY2xhbXAgc25hcHMgem9vbSBiYWNrIHRvIGBtaW5ab29tYCB3aGVuIHRoZVxuICAvLyBpbnRlcmFjdGlvbidzIGluZXJ0aWEgdHJhbnNpdGlvbiBlbmRzLiBBcHBseSB0aGUgc2FtZSBhZGp1c3RtZW50IGluIGdsb2JlXG4gIC8vIG1vZGUgc28gUmVkdXggc3RheXMgY29uc2lzdGVudCB3aXRoIHRoZSBjb250cm9sbGVyIGFuZCB0aGVyZSdzIG5vIHNuYXAtYmFjay5cbiAgY29uc3QgaXNHbG9iZSA9IChuZXdWaWV3cG9ydCBhcyBhbnkpLmdsb2JlPy5lbmFibGVkO1xuXG4gIGlmIChpc0dsb2JlKSB7XG4gICAgLy8gS2VlcCB0aGUgY2FtZXJhIHRhcmdldCB3aXRoaW4gYSBsYXRpdHVkZSBiYW5kIGFyb3VuZCB0aGUgZXF1YXRvciBzbyB0aGVcbiAgICAvLyBzdG9yZWQgdmlld3BvcnQgY2FuJ3QgYmUgY2VudGVyZWQgb24gdGhlIHBvbGVzIChtYXRjaGVzIHRoZSBnbG9iZVxuICAgIC8vIGNvbnRyb2xsZXIncyBhcHBseUNvbnN0cmFpbnRzIHNvIGdlb2NvZGVyL3Byb2dyYW1tYXRpYyB1cGRhdGVzIGFncmVlKS5cbiAgICBpZiAodHlwZW9mIG5ld1ZpZXdwb3J0LmxhdGl0dWRlID09PSAnbnVtYmVyJykge1xuICAgICAgbmV3Vmlld3BvcnQubGF0aXR1ZGUgPSBNYXRoLm1pbihcbiAgICAgICAgR0xPQkVfTUFYX0xBVElUVURFLFxuICAgICAgICBNYXRoLm1heCgtR0xPQkVfTUFYX0xBVElUVURFLCBuZXdWaWV3cG9ydC5sYXRpdHVkZSlcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gTWF0aC5sb2cyKE1hdGguY29zKCgobmV3Vmlld3BvcnQubGF0aXR1ZGUgPz8gMCkgKiBNYXRoLlBJKSAvIDE4MCkpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC5taW5ab29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIG5ld1ZpZXdwb3J0Lnpvb20gPT09ICdudW1iZXInICYmXG4gICAgICBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50XG4gICAgKSB7XG4gICAgICBuZXdWaWV3cG9ydC56b29tID0gbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbmV3Vmlld3BvcnQubWF4Wm9vbSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC56b29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgbmV3Vmlld3BvcnQuem9vbSA+IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudFxuICAgICkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTWFrZSBzdXJlIHpvb20gbGV2ZWwgZG9lc24ndCBnbyBiZWxsb3cgbWluWm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1pblpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1pblpvb207XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB6b29tIGxldmVsIGRvZXNuJ3QgZ28gYWJvdmUgbWF4Wm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1heFpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tID4gbmV3Vmlld3BvcnQubWF4Wm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb207XG4gICAgfVxuICB9XG4gIC8vIExpbWl0IHZpZXdwb3J0IHVwZGF0ZSBiYXNlZCBvbiBtYXhCb3VuZHNcbiAgaWYgKG5ld1ZpZXdwb3J0Lm1heEJvdW5kcyAmJiB2YWxpZGF0ZUJvdW5kcyhuZXdWaWV3cG9ydC5tYXhCb3VuZHMpKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUeXBlICdWaWV3cG9ydCcgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICdNYXBTdGF0ZSc6IGlzU3BsaXQsIGlzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZCwgc3BsaXRNYXBWaWV3cG9ydHNcbiAgICBuZXdWaWV3cG9ydCA9IHVwZGF0ZVZpZXdwb3J0QmFzZWRPbkJvdW5kcyhvcmlnaW5hbFZpZXdwb3J0LCBuZXdWaWV3cG9ydCk7XG4gIH1cblxuICByZXR1cm4gbmV3Vmlld3BvcnQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLFdBQVcsTUFBTSxzQkFBc0I7QUFDOUMsU0FBUUMsYUFBYSxRQUFPLHNCQUFzQjtBQUNsRCxTQUFRQyxXQUFXLFFBQU8sb0JBQW9CO0FBQzlDLFNBQVFDLFNBQVMsUUFBTyx1QkFBdUI7QUFDL0MsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsSUFBSSxNQUFNLHdCQUF3QjtBQUV6QyxTQUNFQywwQkFBMEIsRUFD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SUFBSSxDQUFDNUUsSUFBSSxDQUFDNkUsR0FBRyxDQUFFLEVBQUFILHFCQUFBLEdBQUNGLFdBQVcsQ0FBQ3hILFFBQVEsY0FBQTBILHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksQ0FBQyxJQUFJMUUsSUFBSSxDQUFDOEUsRUFBRSxHQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3pGLElBQ0UsT0FBT04sV0FBVyxDQUFDbEgsT0FBTyxLQUFLLFFBQVEsSUFDdkMsT0FBT2tILFdBQVcsQ0FBQ3RILElBQUksS0FBSyxRQUFRLElBQ3BDc0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDbEgsT0FBTyxHQUFHcUgsY0FBYyxFQUN2RDtNQUNBSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNsSCxPQUFPLEdBQUdxSCxjQUFjO0lBQ3pEO0lBQ0EsSUFDRSxPQUFPSCxXQUFXLENBQUNoSCxPQUFPLEtBQUssUUFBUSxJQUN2QyxPQUFPZ0gsV0FBVyxDQUFDdEgsSUFBSSxLQUFLLFFBQVEsSUFDcENzSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNoSCxPQUFPLEdBQUdtSCxjQUFjLEVBQ3ZEO01BQ0FILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2hILE9BQU8sR0FBR21ILGNBQWM7SUFDekQ7RUFDRixDQUFDLE1BQU07SUFDTDtJQUNBLElBQUlILFdBQVcsQ0FBQ2xILE9BQU8sSUFBSWtILFdBQVcsQ0FBQ3RILElBQUksSUFBSXNILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2xILE9BQU8sRUFBRTtNQUNyRmtILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2xILE9BQU87SUFDeEM7SUFDQTtJQUNBLElBQUlrSCxXQUFXLENBQUNoSCxPQUFPLElBQUlnSCxXQUFXLENBQUN0SCxJQUFJLElBQUlzSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNoSCxPQUFPLEVBQUU7TUFDckZnSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNoSCxPQUFPO0lBQ3hDO0VBQ0Y7RUFDQTtFQUNBLElBQUlnSCxXQUFXLENBQUM5RyxTQUFTLElBQUl2QixjQUFjLENBQUNxSSxXQUFXLENBQUM5RyxTQUFTLENBQUMsRUFBRTtJQUNsRTtJQUNBOEcsV0FBVyxHQUFHeEIsMkJBQTJCLENBQUNxQixnQkFBZ0IsRUFBRUcsV0FBVyxDQUFDO0VBQzFFO0VBRUEsT0FBT0EsV0FBVztBQUNwQiIsImlnbm9yZUxpc3QiOltdfQ==
|