@kepler.gl/components 3.1.0-alpha.3 → 3.1.0-alpha.4
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/bottom-widget.d.ts +7 -1
- package/dist/bottom-widget.js +2 -8
- package/dist/common/action-panel.d.ts +5 -6
- package/dist/common/action-panel.js +3 -5
- package/dist/common/animation-control/animation-control.d.ts +2 -1
- package/dist/common/animation-control/animation-control.js +4 -2
- package/dist/common/animation-control/animation-speed-slider.js +21 -7
- package/dist/common/animation-control/floating-time-display.js +1 -1
- package/dist/common/animation-control/play-control.js +11 -13
- package/dist/common/animation-control/playback-controls.d.ts +11 -20
- package/dist/common/animation-control/playback-controls.js +6 -4
- package/dist/common/animation-control/reset-control.js +11 -13
- package/dist/common/animation-control/speed-control.js +10 -12
- package/dist/common/color-legend.d.ts +4 -5
- package/dist/common/color-legend.js +16 -5
- package/dist/common/column-stats-chart.d.ts +9 -3
- package/dist/common/column-stats-chart.js +17 -63
- package/dist/common/data-table/canvas.d.ts +2 -1
- package/dist/common/data-table/index.d.ts +7 -7
- package/dist/common/data-table/index.js +4 -5
- package/dist/common/file-uploader/file-upload-progress.d.ts +4 -4
- package/dist/common/file-uploader/file-upload-progress.js +1 -2
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/upload-button.js +2 -2
- package/dist/common/flex-container.d.ts +8 -3
- package/dist/common/histogram-plot.js +4 -2
- package/dist/common/icon-button.d.ts +7 -4
- package/dist/common/icons/draggable-dots.d.ts +14 -0
- package/dist/common/icons/draggable-dots.js +85 -0
- package/dist/common/icons/horizontal-resize-handle.d.ts +14 -0
- package/dist/common/icons/horizontal-resize-handle.js +59 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/pin.js +1 -1
- package/dist/common/info-helper.js +2 -2
- package/dist/common/item-selector/chickleted-input.d.ts +21 -17
- package/dist/common/item-selector/chickleted-input.js +3 -3
- package/dist/common/item-selector/dropdown-list.d.ts +12 -12
- package/dist/common/item-selector/dropdown-list.js +1 -2
- package/dist/common/item-selector/dropdown-select.d.ts +8 -4
- package/dist/common/item-selector/dropdown-select.js +2 -2
- package/dist/common/item-selector/item-selector.d.ts +5 -9
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +20 -6
- package/dist/common/item-selector/typeahead.js +3 -3
- package/dist/common/loading-spinner.d.ts +8 -4
- package/dist/common/loading-spinner.js +1 -1
- package/dist/common/modal.d.ts +12 -12
- package/dist/common/modal.js +3 -3
- package/dist/common/portaled.d.ts +22 -486
- package/dist/common/portaled.js +6 -3
- package/dist/common/range-plot.d.ts +23 -28
- package/dist/common/range-plot.js +38 -29
- package/dist/common/range-slider-timeline.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +5 -0
- package/dist/common/slider/slider-bar-handle.js +2 -2
- package/dist/common/slider/slider-handle.d.ts +9 -0
- package/dist/common/slider/slider-handle.js +3 -3
- package/dist/common/slider/slider.d.ts +2 -2
- package/dist/common/styled-components.d.ts +444 -92
- package/dist/common/styled-components.js +15 -11
- package/dist/common/sync-timeline-control.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +4 -0
- package/dist/common/time-range-slider-time-title.js +1 -1
- package/dist/common/time-range-slider.d.ts +7 -3
- package/dist/common/time-range-slider.js +1 -1
- package/dist/common/timeline-slider.d.ts +2 -0
- package/dist/common/timeline-slider.js +1 -1
- package/dist/common/toolbar-item.js +2 -2
- package/dist/common/toolbar.d.ts +5 -3
- package/dist/common/toolbar.js +1 -1
- package/dist/common/vertical-toolbar.d.ts +6 -1
- package/dist/container.js +2 -2
- package/dist/dnd-context.d.ts +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +4 -4
- package/dist/effects/effect-manager.js +4 -2
- package/dist/effects/effect-panel-header.js +5 -5
- package/dist/effects/effect-time-configurator.js +2 -2
- package/dist/effects/effect-time-selector.d.ts +1 -6
- package/dist/effects/effect-time-selector.js +3 -3
- package/dist/effects/effect-type-dropdown-list.js +2 -2
- package/dist/effects/effect-type-list-item.d.ts +1 -10
- package/dist/effects/effect-type-list-item.js +2 -2
- package/dist/effects/effect-type-selector.d.ts +1 -12
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/timezone-selector.d.ts +1 -9
- package/dist/effects/timezone-selector.js +1 -1
- package/dist/filters/components.d.ts +6 -3
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +3 -4
- package/dist/filters/time-widget-top.js +2 -2
- package/dist/filters/types.d.ts +4 -2
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.js +2 -2
- package/dist/geocoder-panel.d.ts +6 -0
- package/dist/geocoder-panel.js +1 -1
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +3 -2
- package/dist/hooks/use-fetch-vector-tile-metadata.js +33 -18
- package/dist/hooks/use-legend-position.d.ts +36 -0
- package/dist/hooks/use-legend-position.js +147 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +18 -3
- package/dist/kepler-gl.d.ts +44 -5
- package/dist/kepler-gl.js +77 -4
- package/dist/map/layer-hover-info.d.ts +3 -1
- package/dist/map/map-control-panel.js +4 -3
- package/dist/map/map-control-toolbar.d.ts +15 -1
- package/dist/map/map-control-toolbar.js +1 -1
- package/dist/map/map-legend-panel.d.ts +10 -35
- package/dist/map/map-legend-panel.js +242 -127
- package/dist/map/map-legend.d.ts +3 -2
- package/dist/map/map-legend.js +7 -10
- package/dist/map/map-popover.js +16 -11
- package/dist/map-container.d.ts +10 -8
- package/dist/map-container.js +86 -55
- package/dist/modal-container.d.ts +2 -1
- package/dist/modal-container.js +4 -3
- package/dist/modals/add-map-style-modal.d.ts +3 -0
- package/dist/modals/add-map-style-modal.js +58 -10
- package/dist/modals/cloud-components/cloud-item.js +2 -2
- package/dist/modals/cloud-tile.d.ts +6 -1
- package/dist/modals/cloud-tile.js +2 -2
- package/dist/modals/data-table-modal.d.ts +5 -3
- package/dist/modals/data-table-modal.js +3 -3
- package/dist/modals/export-data-modal.js +4 -5
- package/dist/modals/export-map-modal/components.d.ts +5 -3
- package/dist/modals/export-map-modal/export-html-map.js +2 -2
- package/dist/modals/export-map-modal/export-json-map.js +3 -2
- package/dist/modals/modal-dialog.d.ts +3 -1
- package/dist/modals/modal-tabs.js +2 -2
- package/dist/modals/share-map-modal.d.ts +4 -4
- package/dist/modals/storage-map-viewer.js +3 -3
- package/dist/modals/tilesets-modals/common.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +3 -3
- package/dist/modals/tilesets-modals/load-data-footer.js +16 -7
- package/dist/modals/tilesets-modals/load-tileset.js +5 -4
- package/dist/modals/tilesets-modals/tileset-vector-form.js +28 -14
- package/dist/plot-container.js +3 -3
- package/dist/side-panel/add-by-dataset-button.js +4 -1
- package/dist/side-panel/common/dataset-info.js +3 -3
- package/dist/side-panel/common/dataset-title.d.ts +1 -0
- package/dist/side-panel/common/dataset-title.js +5 -4
- package/dist/side-panel/filter-manager.d.ts +2 -2
- package/dist/side-panel/filter-manager.js +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +9 -1
- package/dist/side-panel/filter-panel/filter-panel-header.js +24 -9
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +10 -1
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +5 -3
- package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +2 -1
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +3 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +2 -4
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +9 -5
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +15 -7
- package/dist/side-panel/layer-panel/color-breaks-panel.js +52 -20
- package/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
- package/dist/side-panel/layer-panel/color-palette.d.ts +9 -4
- package/dist/side-panel/layer-panel/color-palette.js +13 -7
- package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +3 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +82 -37
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -6
- package/dist/side-panel/layer-panel/color-selector.js +52 -36
- package/dist/side-panel/layer-panel/custom-palette.d.ts +44 -15
- package/dist/side-panel/layer-panel/custom-palette.js +342 -39
- package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -5
- package/dist/side-panel/layer-panel/custom-picker.js +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +5 -3
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +1 -1
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -11
- package/dist/side-panel/layer-panel/layer-config-group.js +2 -2
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +7 -7
- package/dist/side-panel/layer-panel/layer-configurator.js +10 -10
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -0
- package/dist/side-panel/layer-panel/layer-list.js +7 -4
- package/dist/side-panel/layer-panel/layer-panel-header.js +5 -5
- package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -0
- package/dist/side-panel/layer-panel/layer-panel.js +8 -8
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +1 -10
- package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -8
- package/dist/side-panel/layer-panel/layer-type-selector.js +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +6 -3
- package/dist/side-panel/map-style-panel/map-style-selector.js +2 -2
- package/dist/side-panel/panel-header-action.js +2 -2
- package/dist/side-panel/panel-header.js +2 -2
- package/dist/side-panel/panel-tab.d.ts +3 -3
- package/dist/side-panel/panel-tab.js +2 -2
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/panel-view-list-toggle.js +2 -2
- package/dist/side-panel/side-bar.js +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +6 -7
- package/dist/types.js +1 -1
- package/package.json +23 -22
package/dist/kepler-gl.js
CHANGED
|
@@ -5,7 +5,7 @@ var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.geoCoderPanelSelector = exports["default"] = exports.bottomWidgetSelector = exports.DEFAULT_KEPLER_GL_PROPS = void 0;
|
|
8
|
+
exports.geoCoderPanelSelector = exports["default"] = exports.datasetAttributionSelector = exports.bottomWidgetSelector = exports.attributionSelector = exports.DEFAULT_KEPLER_GL_PROPS = void 0;
|
|
9
9
|
exports.getVisibleDatasets = getVisibleDatasets;
|
|
10
10
|
exports.isViewportDisjointed = exports.isSplitSelector = void 0;
|
|
11
11
|
exports.makeGetActionCreators = makeGetActionCreators;
|
|
@@ -26,6 +26,7 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
26
26
|
var _react = _interopRequireWildcard(require("react"));
|
|
27
27
|
var _console = _interopRequireDefault(require("global/console"));
|
|
28
28
|
var _redux = require("redux");
|
|
29
|
+
var _isPropValid = _interopRequireDefault(require("@emotion/is-prop-valid"));
|
|
29
30
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
30
31
|
var _reselect = require("reselect");
|
|
31
32
|
var _keplerglConnect = require("./connect/keplergl-connect");
|
|
@@ -56,9 +57,19 @@ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (
|
|
|
56
57
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
57
58
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
58
59
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
60
|
+
// This implements the default behavior from styled-components v5
|
|
61
|
+
function shouldForwardProp(propName, target) {
|
|
62
|
+
if (typeof target === 'string') {
|
|
63
|
+
// For HTML elements, forward the prop if it is a valid HTML attribute
|
|
64
|
+
return (0, _isPropValid["default"])(propName);
|
|
65
|
+
}
|
|
66
|
+
// For other elements, forward all props
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
|
|
59
70
|
// Maybe we should think about exporting this or creating a variable
|
|
60
71
|
// as part of the base.js theme
|
|
61
|
-
var GlobalStyle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n\n *,\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n margin: 0;\n }\n\n a {\n text-decoration: none;\n color: ", ";\n }\n\n .maplibregl-ctrl .maplibregl-ctrl-logo {\n display: none;\n }\n"])), function (props) {
|
|
72
|
+
var GlobalStyle = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n\n *,\n *:before,\n *:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n margin: 0;\n }\n\n a {\n text-decoration: none;\n color: ", ";\n }\n\n .maplibregl-ctrl .maplibregl-ctrl-logo {\n display: none;\n }\n\n .mapboxgl-ctrl .mapboxgl-ctrl-logo {\n display: none;\n }\n"])), function (props) {
|
|
62
73
|
return props.theme.fontFamily;
|
|
63
74
|
}, function (props) {
|
|
64
75
|
return props.theme.fontWeight;
|
|
@@ -95,6 +106,7 @@ var mapFieldsSelector = exports.mapFieldsSelector = function mapFieldsSelector(p
|
|
|
95
106
|
mapboxApiAccessToken: props.mapboxApiAccessToken,
|
|
96
107
|
mapboxApiUrl: props.mapboxApiUrl ? props.mapboxApiUrl : DEFAULT_KEPLER_GL_PROPS.mapboxApiUrl,
|
|
97
108
|
mapState: mapStateSelector(props, index),
|
|
109
|
+
datasetAttributions: attributionSelector(props).sources,
|
|
98
110
|
mapStyle: props.mapStyle,
|
|
99
111
|
onDeckInitialized: props.onDeckInitialized,
|
|
100
112
|
onViewStateChange: props.onViewStateChange,
|
|
@@ -213,6 +225,65 @@ var geoCoderPanelSelector = exports.geoCoderPanelSelector = function geoCoderPan
|
|
|
213
225
|
appWidth: dimensions.width
|
|
214
226
|
};
|
|
215
227
|
};
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Returns array of unique dataset attributions, each with title and url properties.
|
|
231
|
+
*/
|
|
232
|
+
var datasetAttributionSelector = exports.datasetAttributionSelector = (0, _reselect.createSelector)([function (state) {
|
|
233
|
+
return state.visState.datasets;
|
|
234
|
+
}], function (datasets) {
|
|
235
|
+
var uniqueAttributions = [];
|
|
236
|
+
Object.keys(datasets).forEach(function (key) {
|
|
237
|
+
var _ds$metadata;
|
|
238
|
+
var ds = datasets[key];
|
|
239
|
+
var attributions = ds === null || ds === void 0 || (_ds$metadata = ds.metadata) === null || _ds$metadata === void 0 ? void 0 : _ds$metadata.attributions;
|
|
240
|
+
if (Array.isArray(attributions)) {
|
|
241
|
+
attributions.forEach(function (attribution) {
|
|
242
|
+
if (typeof attribution === 'string') {
|
|
243
|
+
// attribution can be a raw string or a string with link tags
|
|
244
|
+
var links = attribution.match(/<a[^]+?a>/g);
|
|
245
|
+
if (links) {
|
|
246
|
+
try {
|
|
247
|
+
links === null || links === void 0 || links.forEach(function (link) {
|
|
248
|
+
var _link$match, _link$match2;
|
|
249
|
+
var href = (_link$match = link.match(/href="([^"]*)/)) === null || _link$match === void 0 ? void 0 : _link$match[1];
|
|
250
|
+
var title = (_link$match2 = link.match(/title="([^"]*)/)) === null || _link$match2 === void 0 ? void 0 : _link$match2[1];
|
|
251
|
+
if (href && title) {
|
|
252
|
+
uniqueAttributions.push({
|
|
253
|
+
title: "".concat(link.indexOf('©') >= 0 ? '© ' : '').concat(title),
|
|
254
|
+
url: href
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
} catch (error) {
|
|
259
|
+
// just ignore for now
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
uniqueAttributions.push({
|
|
263
|
+
title: attribution,
|
|
264
|
+
url: null
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
return uniqueAttributions;
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Deduplicated dataset and layer text attributions and logos.
|
|
276
|
+
* Returns text attributions and logos to display.
|
|
277
|
+
*/
|
|
278
|
+
var attributionSelector = exports.attributionSelector = (0, _reselect.createSelector)([datasetAttributionSelector], function (datasetAttributions) {
|
|
279
|
+
// TODO collect attributions from layers, and merge with dataset attributions here
|
|
280
|
+
var uniqueTextAttributions = datasetAttributions;
|
|
281
|
+
var logos = [];
|
|
282
|
+
return {
|
|
283
|
+
sources: uniqueTextAttributions,
|
|
284
|
+
logos: logos
|
|
285
|
+
};
|
|
286
|
+
});
|
|
216
287
|
var notificationPanelSelector = exports.notificationPanelSelector = function notificationPanelSelector(props) {
|
|
217
288
|
return {
|
|
218
289
|
removeNotification: props.uiStateActions.removeNotification,
|
|
@@ -392,6 +463,8 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
392
463
|
}, /*#__PURE__*/_react["default"].createElement(_reactIntl.IntlProvider, {
|
|
393
464
|
locale: uiState.locale,
|
|
394
465
|
messages: localeMessages[uiState.locale]
|
|
466
|
+
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyleSheetManager, {
|
|
467
|
+
shouldForwardProp: shouldForwardProp
|
|
395
468
|
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
396
469
|
theme: theme
|
|
397
470
|
}, /*#__PURE__*/_react["default"].createElement(_useCloudListProvider.CloudListProvider, {
|
|
@@ -430,7 +503,7 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
430
503
|
}))), /*#__PURE__*/_react["default"].createElement(ModalContainer, (0, _extends2["default"])({}, modalContainerFields, {
|
|
431
504
|
containerW: dimensions.width,
|
|
432
505
|
containerH: dimensions.height
|
|
433
|
-
}))))))));
|
|
506
|
+
})))))))));
|
|
434
507
|
}
|
|
435
508
|
}]);
|
|
436
509
|
}(_react.Component);
|
|
@@ -501,4 +574,4 @@ function mergeActions(actions, userActions) {
|
|
|
501
574
|
return _objectSpread(_objectSpread({}, actions), overrides);
|
|
502
575
|
}
|
|
503
576
|
var _default = exports["default"] = KeplerGlFactory;
|
|
504
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfdXRpbHMiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiR2xvYmFsU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsIl9yZWYiLCJhYnNvbHV0ZSIsImNvbmNhdCIsImlzVmlld3BvcnREaXNqb2ludGVkIiwiZXhwb3J0cyIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsImlzVmlld3BvcnRTeW5jZWQiLCJzcGxpdE1hcFZpZXdwb3J0cyIsIm1hcFN0YXRlU2VsZWN0b3IiLCJpbmRleCIsIk51bWJlciIsImlzRmluaXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJ1bmRlZmluZWQiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIkRFRkFVTFRfS0VQTEVSX0dMX1BST1BTIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsInRvcE1hcENvbnRhaW5lclByb3BzIiwiYm90dG9tTWFwQ29udGFpbmVyUHJvcHMiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiZ2V0VmlzaWJsZURhdGFzZXRzIiwiZGF0YXNldHMiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsImtleSIsIkdFT0NPREVSX0RBVEFTRVRfTkFNRSIsInNpZGVQYW5lbFNlbGVjdG9yIiwiYXZhaWxhYmxlUHJvdmlkZXJzIiwiZmlsdGVyZWREYXRhc2V0cyIsImFwcE5hbWUiLCJ2ZXJzaW9uIiwiYXBwV2Vic2l0ZSIsIm9uU2F2ZU1hcCIsIm1hcFN0eWxlQWN0aW9ucyIsImZpbHRlcnMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwiaW50ZXJhY3Rpb25Db25maWciLCJtYXBJbmZvIiwibGF5ZXJCbGVuZGluZyIsIm92ZXJsYXlCbGVuZGluZyIsIndpZHRoIiwic2lkZVBhbmVsV2lkdGgiLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJleHBvcnRJbWFnZVNldHRpbmciLCJleHBvcnRJbWFnZSIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJpc1NwbGl0U2VsZWN0b3IiLCJib3R0b21XaWRnZXRTZWxlY3RvciIsImFuaW1hdGlvbkNvbmZpZyIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsIiwibWFyZ2luIiwibGVmdCIsIm1vZGFsQ29udGFpbmVyU2VsZWN0b3IiLCJyb290Tm9kZSIsInByb3ZpZGVyQWN0aW9ucyIsImNsb3VkUHJvdmlkZXJzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsImdlb0NvZGVyUGFuZWxTZWxlY3RvciIsImRpbWVuc2lvbnMiLCJpc0dlb2NvZGVyRW5hYmxlZCIsImdlb2NvZGVyIiwiZW5hYmxlZCIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwiYXBwV2lkdGgiLCJub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yIiwicmVtb3ZlTm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9ucyIsIm1hcFN0eWxlcyIsIm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0IiwiREVGQVVMVF9NQVBCT1hfQVBJX1VSTCIsIktFUExFUl9HTF9OQU1FIiwiS0VQTEVSX0dMX1ZFUlNJT04iLCJESU1FTlNJT05TIiwiZmVhdHVyZUZsYWdzIiwiS2VwbGVyR2xGYWN0b3J5IiwiZGVwcyIsIkJvdHRvbVdpZGdldEZhY3RvcnkiLCJHZW9Db2RlclBhbmVsRmFjdG9yeSIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJNYXBzTGF5b3V0RmFjdG9yeSIsIk1vZGFsQ29udGFpbmVyRmFjdG9yeSIsIlNpZGVQYW5lbEZhY3RvcnkiLCJQbG90Q29udGFpbmVyRmFjdG9yeSIsIk5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSIsIkRuZENvbnRleHRGYWN0b3J5IiwiRWZmZWN0TWFuYWdlckZhY3RvcnkiLCJCb3R0b21XaWRnZXQiLCJHZW9Db2RlclBhbmVsIiwiTWFwQ29udGFpbmVyIiwiTWFwc0xheW91dCIsIk1vZGFsQ29udGFpbmVyIiwiU2lkZVBhbmVsIiwiUGxvdENvbnRhaW5lciIsIk5vdGlmaWNhdGlvblBhbmVsIiwiRG5kQ29udGV4dCIsIktlcGxlckdMIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5Iiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJjcmVhdGVTZWxlY3RvciIsInRoZW1lU2VsZWN0b3IiLCJfdHlwZW9mMiIsImJhc2ljVGhlbWUiLCJUSEVNRSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwiZGF0YXNldHNTZWxlY3RvciIsInByb3ZpZGVycyIsImlzQXJyYXkiLCJoYXNTdG9yYWdlIiwic29tZSIsInAiLCJoYXNQcml2YXRlU3RvcmFnZSIsImhhc1NoYXJlIiwiaGFzU2hhcmluZ1VybCIsImxvY2FsZU1lc3NhZ2VzIiwiY3VzdG9tTWVzc2FnZXMiLCJtZXJnZU1lc3NhZ2VzIiwibWVzc2FnZXMiLCJkZWZhdWx0U3R5bGVzIiwidmFsdWVzIiwiY3VzdG9tU3R5bGVzIiwibWFwIiwibXMiLCJpZCIsImdlbmVyYXRlSGFzaElkIiwiYWxsU3R5bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInJlZHVjZSIsImFjY3UiLCJzdHlsZSIsImxvYWRNYXBTdHlsZXMiLCJjb250YWluZXJJZCIsImxheWVySWQiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwidmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsIl92YWxpZGF0ZU1hcGJveFRva2VuIiwiX2xvYWRNYXBTdHlsZSIsIm9uS2VwbGVyR2xJbml0aWFsaXplZCIsInJvb3QiLCJjdXJyZW50IiwiSFRNTEVsZW1lbnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsIl9oYW5kbGVSZXNpemUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVub2JzZXJ2ZURpbWVuc2lvbnMiLCJ2YWxpZGF0ZVRva2VuIiwiQ29uc29sZSIsIndhcm4iLCJNSVNTSU5HX01BUEJPWF9UT0tFTiIsInJlbmRlciIsIl90aGlzMiIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMkaWQiLCJfdGhpcyRwcm9wcyR3aWR0aCIsIl90aGlzJHByb3BzJGhlaWdodCIsIl90aGlzJHByb3BzJGNsb3VkUHJvdiIsInN0YXRlIiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJUaGVtZVByb3ZpZGVyIiwiQ2xvdWRMaXN0UHJvdmlkZXIiLCJjbGFzc05hbWUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsInBvc2l0aW9uIiwicmVmIiwidW5zeW5jZWRWaWV3cG9ydHMiLCJfbWFwQ29udGFpbmVyIiwiaGFzUG9ydGFibGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJyb290UmVmIiwiYm90dG9tV2lkZ2V0UmVmIiwiY29udGFpbmVyVyIsImNvbnRhaW5lckgiLCJDb21wb25lbnQiLCJrZXBsZXJHbENvbm5lY3QiLCJtYXBTdGF0ZVRvUHJvcHMiLCJtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzIiwid2l0aFRoZW1lIiwiZGVmYXVsdFVzZXJBY3Rpb25zIiwiZ2V0RGlzcGF0Y2giLCJkaXNwYXRjaCIsImdldFVzZXJBY3Rpb25zIiwiYWN0aW9ucyIsIm1ha2VHZXRBY3Rpb25DcmVhdG9ycyIsInVzZXJBY3Rpb25zIiwiX21hcCIsIlZpc1N0YXRlQWN0aW9ucyIsIk1hcFN0YXRlQWN0aW9ucyIsIk1hcFN0eWxlQWN0aW9ucyIsIlVJU3RhdGVBY3Rpb25zIiwiUHJvdmlkZXJBY3Rpb25zIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwibWVyZ2VBY3Rpb25zIiwiX21hcDIiLCJfc2xpY2VkVG9BcnJheTIiLCJnZXRBY3Rpb25DcmVhdG9ycyIsIm1hcERpc3BhdGNoVG9Qcm9wcyIsIm93blByb3BzIiwiZ3JvdXBlZEFjdGlvbkNyZWF0b3JzIiwib3ZlcnJpZGVzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMva2VwbGVyLWdsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZiwgRGlzcGF0Y2h9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCB7YmluZEFjdGlvbkNyZWF0b3JzfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgc3R5bGVkLCB7VGhlbWVQcm92aWRlciwgd2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge2Nvbm5lY3QgYXMga2VwbGVyR2xDb25uZWN0fSBmcm9tICcuL2Nvbm5lY3Qva2VwbGVyZ2wtY29ubmVjdCc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1Jvb3RDb250ZXh0LCBGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIsIEZlYXR1cmVGbGFnc30gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7T25FcnJvckNhbGxCYWNrLCBPblN1Y2Nlc3NDYWxsQmFjaywgVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBNYXBTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgVmlzU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxudHlwZSBLZXBsZXJHbEFjdGlvbnMgPSB7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xuICBtYXBTdHlsZUFjdGlvbnM6IHR5cGVvZiBNYXBTdHlsZUFjdGlvbnM7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHByb3ZpZGVyQWN0aW9uczogdHlwZW9mIFByb3ZpZGVyQWN0aW9ucztcbn07XG5cbmltcG9ydCB7XG4gIERJTUVOU0lPTlMsXG4gIEtFUExFUl9HTF9OQU1FLFxuICBLRVBMRVJfR0xfVkVSU0lPTixcbiAgVEhFTUUsXG4gIERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gIEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgTUlTU0lOR19NQVBCT1hfVE9LRU5cbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQgU2lkZVBhbmVsRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udGFpbmVyJztcbmltcG9ydCBNYXBzTGF5b3V0RmFjdG9yeSBmcm9tICcuL21hcHMtbGF5b3V0JztcbmltcG9ydCBCb3R0b21XaWRnZXRGYWN0b3J5IGZyb20gJy4vYm90dG9tLXdpZGdldCc7XG5pbXBvcnQgTW9kYWxDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbW9kYWwtY29udGFpbmVyJztcbmltcG9ydCBQbG90Q29udGFpbmVyRmFjdG9yeSBmcm9tICcuL3Bsb3QtY29udGFpbmVyJztcbmltcG9ydCBOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkgZnJvbSAnLi9ub3RpZmljYXRpb24tcGFuZWwnO1xuaW1wb3J0IEdlb0NvZGVyUGFuZWxGYWN0b3J5IGZyb20gJy4vZ2VvY29kZXItcGFuZWwnO1xuaW1wb3J0IEVmZmVjdE1hbmFnZXJGYWN0b3J5IGZyb20gJy4vZWZmZWN0cy9lZmZlY3QtbWFuYWdlcic7XG5pbXBvcnQgRG5kQ29udGV4dEZhY3RvcnkgZnJvbSAnLi9kbmQtY29udGV4dCc7XG5pbXBvcnQge0Nsb3VkTGlzdFByb3ZpZGVyfSBmcm9tICcuL2hvb2tzL3VzZS1jbG91ZC1saXN0LXByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUsXG4gIHZhbGlkYXRlVG9rZW4sXG4gIG1lcmdlTWVzc2FnZXMsXG4gIG9ic2VydmVEaW1lbnNpb25zLFxuICB1bm9ic2VydmVEaW1lbnNpb25zLFxuICBoYXNQb3J0YWJsZVdpZHRoXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge3RoZW1lIGFzIGJhc2ljVGhlbWUsIHRoZW1lTFQsIHRoZW1lQlMsIGJyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7S2VwbGVyR2xTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5cbi8vIE1heWJlIHdlIHNob3VsZCB0aGluayBhYm91dCBleHBvcnRpbmcgdGhpcyBvciBjcmVhdGluZyBhIHZhcmlhYmxlXG4vLyBhcyBwYXJ0IG9mIHRoZSBiYXNlLmpzIHRoZW1lXG5jb25zdCBHbG9iYWxTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGluZUhlaWdodH07XG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cblxuICAubWFwbGlicmVnbC1jdHJsIC5tYXBsaWJyZWdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIEJvdHRvbVdpZGdldE91dGVyUHJvcHMge1xuICBhYnNvbHV0ZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IEJvdHRvbVdpZGdldE91dGVyID0gc3R5bGVkLmRpdjxCb3R0b21XaWRnZXRPdXRlclByb3BzPihcbiAgKHthYnNvbHV0ZX0pID0+IGBcbiAgJHthYnNvbHV0ZSA/ICdwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgcmlnaHQ6IDA7JyA6ICcnfVxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcHJldmVudCBwYWRkaW5nIGZyb20gYmxvY2tpbmcgaW5wdXQgKi9cbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9YFxuKTtcblxuZXhwb3J0IGNvbnN0IGlzVmlld3BvcnREaXNqb2ludGVkID0gcHJvcHMgPT4ge1xuICByZXR1cm4gKFxuICAgIHByb3BzLm1hcFN0YXRlLmlzU3BsaXQgJiZcbiAgICAhcHJvcHMubWFwU3RhdGUuaXNWaWV3cG9ydFN5bmNlZCAmJlxuICAgIHByb3BzLm1hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmxlbmd0aCA+IDFcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZVNlbGVjdG9yID0gKHByb3BzOiBhbnksIGluZGV4OiBudW1iZXIpOiBhbnkgPT4ge1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbmRleCkpIHtcbiAgICAvLyBlaXRoZXIgbm8gaW5kZXggYXJnIG9yIGFuIGludmFsaWQgaW5kZXggd2FzIHByb3ZpZGVkXG4gICAgLy8gaXQgaXMgZXhwZWN0ZWQgdG8gYmUgZWl0aGVyIDAgb3IgMSB3aGVuIGluIHNwbGl0IG1vZGVcbiAgICAvLyBvbmx5IHVzZSB0aGUgbWFwU3RhdGVcbiAgICByZXR1cm4gcHJvcHMubWFwU3RhdGU7XG4gIH1cblxuICByZXR1cm4gaXNWaWV3cG9ydERpc2pvaW50ZWQocHJvcHMpXG4gICAgPyAvLyBtaXggdG9nZXRoZXIgdGhlIHZpZXdwb3J0IHByb3BlcnRpZXMgaW50ZW5kZWQgZm9yIHRoaXMgZGlzam9pbnRlZCA8TWFwQ29udGFpbmVyPiB3aXRoIHRoZSBvdGhlciBuZWNlc3NhcnkgbWFwU3RhdGUgcHJvcGVydGllc1xuICAgICAgey4uLnByb3BzLm1hcFN0YXRlLCAuLi5wcm9wcy5tYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0c1tpbmRleF19XG4gICAgOiAvLyBvdGhlcndpc2Ugb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgICBwcm9wcy5tYXBTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBGaWVsZHNTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgaW5kZXggPSAwKSA9PiAoe1xuICBnZXRNYXBib3hSZWY6IHByb3BzLmdldE1hcGJveFJlZixcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHByb3BzLm1hcGJveEFwaVVybCA/IHByb3BzLm1hcGJveEFwaVVybCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLm1hcGJveEFwaVVybCxcbiAgbWFwU3RhdGU6IG1hcFN0YXRlU2VsZWN0b3IocHJvcHMsIGluZGV4KSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBvbkRlY2tJbml0aWFsaXplZDogcHJvcHMub25EZWNrSW5pdGlhbGl6ZWQsXG4gIG9uVmlld1N0YXRlQ2hhbmdlOiBwcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSxcbiAgb25Nb3VzZU1vdmU6IHByb3BzLm9uTW91c2VNb3ZlLFxuICBkZWNrR2xQcm9wczogcHJvcHMuZGVja0dsUHJvcHMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0YXRlQWN0aW9uczogcHJvcHMubWFwU3RhdGVBY3Rpb25zLFxuXG4gIC8vIHZpc1N0YXRlXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcblxuICAvLyB1aVN0YXRlXG4gIGFjdGl2ZVNpZGVQYW5lbDogcHJvcHMudWlTdGF0ZS5hY3RpdmVTaWRlUGFuZWwsXG4gIG1hcENvbnRyb2xzOiBwcm9wcy51aVN0YXRlLm1hcENvbnRyb2xzLFxuICByZWFkT25seTogcHJvcHMudWlTdGF0ZS5yZWFkT25seSxcbiAgbG9jYWxlOiBwcm9wcy51aVN0YXRlLmxvY2FsZSxcblxuICAvLyBtYXBTdHlsZVxuICB0b3BNYXBDb250YWluZXJQcm9wczogcHJvcHMudG9wTWFwQ29udGFpbmVyUHJvcHMsXG4gIGJvdHRvbU1hcENvbnRhaW5lclByb3BzOiBwcm9wcy5ib3R0b21NYXBDb250YWluZXJQcm9wcyxcblxuICAvLyB0cmFuc2Zvcm1SZXF1ZXN0IGZvciBNYXBib3ggYmFzZW1hcHNcbiAgdHJhbnNmb3JtUmVxdWVzdDogcHJvcHMudHJhbnNmb3JtUmVxdWVzdFxufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXNpYmxlRGF0YXNldHMoZGF0YXNldHMpIHtcbiAgLy8gV2UgZG9uJ3Qgd2FudCBHZW9jb2RlciBkYXRhc2V0IHRvIGJlIHByZXNlbnQgaW4gU2lkZVBhbmVsIGRhdGFzZXQgbGlzdFxuICByZXR1cm4gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUoZGF0YXNldHMsIGtleSA9PiBrZXkgIT09IEdFT0NPREVSX0RBVEFTRVRfTkFNRSk7XG59XG5cbmV4cG9ydCBjb25zdCBzaWRlUGFuZWxTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzLCBmaWx0ZXJlZERhdGFzZXRzKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lID8gcHJvcHMuYXBwTmFtZSA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmFwcE5hbWUsXG4gIHZlcnNpb246IHByb3BzLnZlcnNpb24gPyBwcm9wcy52ZXJzaW9uIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMudmVyc2lvbixcbiAgYXBwV2Vic2l0ZTogcHJvcHMuYXBwV2Vic2l0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBvblNhdmVNYXA6IHByb3BzLm9uU2F2ZU1hcCxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbWFwU3R5bGVBY3Rpb25zOiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0YXRlQWN0aW9uczogcHJvcHMubWFwU3RhdGVBY3Rpb25zLFxuXG4gIGRhdGFzZXRzOiBmaWx0ZXJlZERhdGFzZXRzLFxuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgbGF5ZXJDbGFzc2VzOiBwcm9wcy52aXNTdGF0ZS5sYXllckNsYXNzZXMsXG4gIGludGVyYWN0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgbWFwSW5mbzogcHJvcHMudmlzU3RhdGUubWFwSW5mbyxcbiAgbGF5ZXJCbGVuZGluZzogcHJvcHMudmlzU3RhdGUubGF5ZXJCbGVuZGluZyxcbiAgb3ZlcmxheUJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5vdmVybGF5QmxlbmRpbmcsXG5cbiAgd2lkdGg6IHByb3BzLnNpZGVQYW5lbFdpZHRoID8gcHJvcHMuc2lkZVBhbmVsV2lkdGggOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy53aWR0aCxcbiAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICBtYXBTYXZlZDogcHJvcHMucHJvdmlkZXJTdGF0ZS5tYXBTYXZlZFxufSk7XG5cbmV4cG9ydCBjb25zdCBwbG90Q29udGFpbmVyU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHdpZHRoOiBwcm9wcy53aWR0aCxcbiAgaGVpZ2h0OiBwcm9wcy5oZWlnaHQsXG4gIGV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZSxcbiAgbWFwRmllbGRzOiBtYXBGaWVsZHNTZWxlY3Rvcihwcm9wcyksXG4gIGFkZE5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuYWRkTm90aWZpY2F0aW9uLFxuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gIHNldEV4cG9ydEltYWdlRXJyb3I6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRXJyb3IsXG4gIHNwbGl0TWFwczogcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzXG59KTtcblxuZXhwb3J0IGNvbnN0IGlzU3BsaXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT5cbiAgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzICYmIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggPiAxO1xuXG5leHBvcnQgY29uc3QgYm90dG9tV2lkZ2V0U2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIHRoZW1lKSA9PiAoe1xuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBhbmltYXRpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmFuaW1hdGlvbkNvbmZpZyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHRvZ2dsZU1vZGFsOiBwcm9wcy51aVN0YXRlQWN0aW9ucy50b2dnbGVNb2RhbCxcbiAgc2lkZVBhbmVsV2lkdGg6IHByb3BzLnVpU3RhdGUucmVhZE9ubHkgPyAwIDogcHJvcHMuc2lkZVBhbmVsV2lkdGggKyB0aGVtZS5zaWRlUGFuZWwubWFyZ2luLmxlZnRcbn0pO1xuXG5leHBvcnQgY29uc3QgbW9kYWxDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgcm9vdE5vZGUpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUgPyBwcm9wcy5hcHBOYW1lIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuYXBwTmFtZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICB2aXNTdGF0ZTogcHJvcHMudmlzU3RhdGUsXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgcHJvdmlkZXJTdGF0ZTogcHJvcHMucHJvdmlkZXJTdGF0ZSxcblxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdWlTdGF0ZUFjdGlvbnM6IHByb3BzLnVpU3RhdGVBY3Rpb25zLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgcHJvdmlkZXJBY3Rpb25zOiBwcm9wcy5wcm92aWRlckFjdGlvbnMsXG5cbiAgcm9vdE5vZGUsXG4gIC8vIFVzZXIgZGVmaW5lZCBjbG91ZCBwcm92aWRlciBwcm9wc1xuICBjbG91ZFByb3ZpZGVyczogcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA/IHByb3BzLmNsb3VkUHJvdmlkZXJzXG4gICAgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5jbG91ZFByb3ZpZGVycyxcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2VzczogcHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzOiBwcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gIG9uTG9hZENsb3VkTWFwRXJyb3I6IHByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3IsXG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxufSk7XG5cbmV4cG9ydCBjb25zdCBnZW9Db2RlclBhbmVsU2VsZWN0b3IgPSAoXG4gIHByb3BzOiBLZXBsZXJHTFByb3BzLFxuICBkaW1lbnNpb25zOiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9XG4pID0+ICh7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgdXBkYXRlVmlzRGF0YTogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEsXG4gIHJlbW92ZURhdGFzZXQ6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0LFxuICB1cGRhdGVNYXA6IHByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAsXG4gIGFwcFdpZHRoOiBkaW1lbnNpb25zLndpZHRoXG59KTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2UsXG4gIGZlYXR1cmVGbGFnczoge31cbn07XG5cbnR5cGUgS2VwbGVyR0xCYXNpY1Byb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgYXBwV2Vic2l0ZT86IGFueTtcbiAgb25TYXZlTWFwPzogKCkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld1N0YXRlOiBWaWV3cG9ydCkgPT4gdm9pZDtcbiAgb25EZWNrSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBvbktlcGxlckdsSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBnZXRNYXBib3hSZWY/OiAoKSA9PiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcbiAgbWFwU3R5bGVzPzoge2lkOiBzdHJpbmc7IHN0eWxlPzogb2JqZWN0fVtdO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdD86IGJvb2xlYW47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNpZGVQYW5lbFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IG9iamVjdDtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBkZWNrR2xQcm9wcz86IG9iamVjdDtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uTW91c2VNb3ZlPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50ICYge2xuZ0xhdD86IFtudW1iZXIsIG51bWJlcl19KSA9PiB2b2lkO1xuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yPzogT25FcnJvckNhbGxCYWNrO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICBsb2NhbGVNZXNzYWdlcz86IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX07XG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxhbnk+O1xuXG4gIHRvcE1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuICBib3R0b21NYXBDb250YWluZXJQcm9wcz86IG9iamVjdDtcblxuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nKSA9PiB7dXJsOiBzdHJpbmd9O1xufTtcblxudHlwZSBLZXBsZXJHTFByb3BzID0gS2VwbGVyR2xTdGF0ZSAmIEtlcGxlckdsQWN0aW9ucyAmIEtlcGxlckdMQmFzaWNQcm9wcztcbnR5cGUgS2VwbGVyR0xDb21wU3RhdGUgPSB7XG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xufTtcblxuS2VwbGVyR2xGYWN0b3J5LmRlcHMgPSBbXG4gIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIEdlb0NvZGVyUGFuZWxGYWN0b3J5LFxuICBNYXBDb250YWluZXJGYWN0b3J5LFxuICBNYXBzTGF5b3V0RmFjdG9yeSxcbiAgTW9kYWxDb250YWluZXJGYWN0b3J5LFxuICBTaWRlUGFuZWxGYWN0b3J5LFxuICBQbG90Q29udGFpbmVyRmFjdG9yeSxcbiAgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5LFxuICBEbmRDb250ZXh0RmFjdG9yeSxcbiAgRWZmZWN0TWFuYWdlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBCb3R0b21XaWRnZXRGYWN0b3J5PixcbiAgR2VvQ29kZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgR2VvQ29kZXJQYW5lbEZhY3Rvcnk+LFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT4sXG4gIE1vZGFsQ29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbENvbnRhaW5lckZhY3Rvcnk+LFxuICBTaWRlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFNpZGVQYW5lbEZhY3Rvcnk+LFxuICBQbG90Q29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQbG90Q29udGFpbmVyRmFjdG9yeT4sXG4gIE5vdGlmaWNhdGlvblBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnk+LFxuICBEbmRDb250ZXh0OiBSZXR1cm5UeXBlPHR5cGVvZiBEbmRDb250ZXh0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8S2VwbGVyR0xCYXNpY1Byb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9PiB7XG4gIC8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2tlcGxlci1nbCcpLlVuY29ubmVjdGVkS2VwbGVyR2xQcm9wc30gS2VwbGVyR2xQcm9wcyAqL1xuICAvKiogQGF1Z21lbnRzIFJlYWN0LkNvbXBvbmVudDxLZXBsZXJHbFByb3BzPiAqL1xuICBjbGFzcyBLZXBsZXJHTCBleHRlbmRzIENvbXBvbmVudDxcbiAgICBLZXBsZXJHTFByb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9LFxuICAgIEtlcGxlckdMQ29tcFN0YXRlXG4gID4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlOiBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgYm90dG9tV2lkZ2V0UmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gICAgLyogc2VsZWN0b3JzICovXG4gICAgdGhlbWVTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnRoZW1lO1xuICAgIGF2YWlsYWJsZVRoZW1lU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLnRoZW1lU2VsZWN0b3IsIHRoZW1lID0+XG4gICAgICB0eXBlb2YgdGhlbWUgPT09ICdvYmplY3QnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lXG4gICAgICAgICAgfVxuICAgICAgICA6IHRoZW1lID09PSBUSEVNRS5saWdodFxuICAgICAgICA/IHRoZW1lTFRcbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUuYmFzZVxuICAgICAgICA/IHRoZW1lQlNcbiAgICAgICAgOiB0aGVtZVxuICAgICk7XG5cbiAgICBkYXRhc2V0c1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudmlzU3RhdGUuZGF0YXNldHM7XG4gICAgZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy5kYXRhc2V0c1NlbGVjdG9yLCBnZXRWaXNpYmxlRGF0YXNldHMpO1xuXG4gICAgYXZhaWxhYmxlUHJvdmlkZXJzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICAgICAgcHJvdmlkZXJzID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkocHJvdmlkZXJzKSAmJiBwcm92aWRlcnMubGVuZ3RoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGhhc1N0b3JhZ2U6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNQcml2YXRlU3RvcmFnZSgpKSxcbiAgICAgICAgICAgICAgaGFzU2hhcmU6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNTaGFyaW5nVXJsKCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICk7XG5cbiAgICBsb2NhbGVNZXNzYWdlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+IHByb3BzLmxvY2FsZU1lc3NhZ2VzLFxuICAgICAgY3VzdG9tTWVzc2FnZXMgPT4gKGN1c3RvbU1lc3NhZ2VzID8gbWVyZ2VNZXNzYWdlcyhtZXNzYWdlcywgY3VzdG9tTWVzc2FnZXMpIDogbWVzc2FnZXMpXG4gICAgKTtcblxuICAgIC8qIHByaXZhdGUgbWV0aG9kcyAqL1xuICAgIF92YWxpZGF0ZU1hcGJveFRva2VuKCkge1xuICAgICAgY29uc3Qge21hcGJveEFwaUFjY2Vzc1Rva2VufSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAoIXZhbGlkYXRlVG9rZW4obWFwYm94QXBpQWNjZXNzVG9rZW4pKSB7XG4gICAgICAgIENvbnNvbGUud2FybihNSVNTSU5HX01BUEJPWF9UT0tFTik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRNYXBTdHlsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdHlsZXMgPSBPYmplY3QudmFsdWVzKHRoaXMucHJvcHMubWFwU3R5bGUubWFwU3R5bGVzKTtcbiAgICAgIC8vIGFkZCBpZCB0byBjdXN0b20gbWFwIHN0eWxlcyBpZiBub3QgZ2l2ZW5cbiAgICAgIGNvbnN0IGN1c3RvbVN0eWxlcyA9ICh0aGlzLnByb3BzLm1hcFN0eWxlcyB8fCBbXSkubWFwKG1zID0+ICh7XG4gICAgICAgIC4uLm1zLFxuICAgICAgICBpZDogbXMuaWQgfHwgZ2VuZXJhdGVIYXNoSWQoKVxuICAgICAgfSkpO1xuXG4gICAgICBjb25zdCBhbGxTdHlsZXMgPSBbLi4uY3VzdG9tU3R5bGVzLCAuLi5kZWZhdWx0U3R5bGVzXS5yZWR1Y2UoKGFjY3UsIHN0eWxlKSA9PiB7XG4gICAgICAgIGFjY3Vbc3R5bGUuaWRdID0gc3R5bGU7XG4gICAgICAgIHJldHVybiBhY2N1O1xuICAgICAgfSwge30pO1xuXG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5sb2FkTWFwU3R5bGVzKGFsbFN0eWxlcyk7XG4gICAgfTtcblxuICAgIF9kZWxldGVNYXBMYWJlbHMgPSAoY29udGFpbmVySWQsIGxheWVySWQpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUxheWVyRm9yTWFwKGNvbnRhaW5lcklkLCBsYXllcklkKTtcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkID0gJ21hcCcsXG4gICAgICAgIHdpZHRoID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMud2lkdGgsXG4gICAgICAgIGhlaWdodCA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmhlaWdodCxcbiAgICAgICAgdWlTdGF0ZSxcbiAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgIC8vIHJlYWRPbmx5IG92ZXJyaWRlXG4gICAgICAgIHJlYWRPbmx5LFxuXG4gICAgICAgIC8vIGZlYXR1cmVzXG4gICAgICAgIGZlYXR1cmVGbGFncyxcblxuICAgICAgICAvLyBjbG91ZCBwcm92aWRlcnNcbiAgICAgICAgY2xvdWRQcm92aWRlcnMgPSBbXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnMgfHwge3dpZHRoLCBoZWlnaHR9O1xuICAgICAgY29uc3Qge1xuICAgICAgICBzcGxpdE1hcHMsIC8vIHRoaXMgd2lsbCBzdG9yZSBzdXBwb3J0IGZvciBzcGxpdCBtYXAgdmlldyBpcyBuZWNlc3NhcnlcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWdcbiAgICAgIH0gPSB2aXNTdGF0ZTtcblxuICAgICAgY29uc3QgaXNTcGxpdCA9IGlzU3BsaXRTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5hdmFpbGFibGVUaGVtZVNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbG9jYWxlTWVzc2FnZXMgPSB0aGlzLmxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBpc0V4cG9ydGluZ0ltYWdlID0gdWlTdGF0ZS5leHBvcnRJbWFnZS5leHBvcnRpbmc7XG4gICAgICBjb25zdCBhdmFpbGFibGVQcm92aWRlcnMgPSB0aGlzLmF2YWlsYWJsZVByb3ZpZGVycyh0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgZmlsdGVyZWREYXRhc2V0cyA9IHRoaXMuZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3Qgc2lkZUZpZWxkcyA9IHNpZGVQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGF2YWlsYWJsZVByb3ZpZGVycywgZmlsdGVyZWREYXRhc2V0cyk7XG4gICAgICBjb25zdCBwbG90Q29udGFpbmVyRmllbGRzID0gcGxvdENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgYm90dG9tV2lkZ2V0RmllbGRzID0gYm90dG9tV2lkZ2V0U2VsZWN0b3IodGhpcy5wcm9wcywgdGhlbWUpO1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXJGaWVsZHMgPSBtb2RhbENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMsIHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICAgIGNvbnN0IGdlb0NvZGVyUGFuZWxGaWVsZHMgPSBnZW9Db2RlclBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcywgZGltZW5zaW9ucyk7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25QYW5lbEZpZWxkcyA9IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgY29udGFpbmVySWQ9ezB9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzLCBpbmRleCl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXtpbmRleH1cbiAgICAgICAgICAgICAgZGVsZXRlTWFwTGFiZWxzPXt0aGlzLl9kZWxldGVNYXBMYWJlbHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um9vdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMucm9vdH0+XG4gICAgICAgICAgPEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciBmZWF0dXJlRmxhZ3M9e2ZlYXR1cmVGbGFnc30+XG4gICAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICAgICAgICAgIDxDbG91ZExpc3RQcm92aWRlciBwcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfT5cbiAgICAgICAgICAgICAgICAgIDxHbG9iYWxTdHlsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZXBsZXItZ2xcIlxuICAgICAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvblBhbmVsIHsuLi5ub3RpZmljYXRpb25QYW5lbEZpZWxkc30gLz5cbiAgICAgICAgICAgICAgICAgICAgPERuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgeyF1aVN0YXRlLnJlYWRPbmx5ICYmICFyZWFkT25seSAmJiA8U2lkZVBhbmVsIHsuLi5zaWRlRmllbGRzfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJtYXBzXCIgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge21hcENvbnRhaW5lcnN9XG4gICAgICAgICAgICAgICAgICAgICAgPC9NYXBzTGF5b3V0PlxuICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgIHtpc0V4cG9ydGluZ0ltYWdlICYmIDxQbG90Q29udGFpbmVyIHsuLi5wbG90Q29udGFpbmVyRmllbGRzfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgey8qIDEgZ2VvY29kZXI6IHNpbmdsZSBtb2RlIE9SIHNwbGl0IG1vZGUgYW5kIHN5bmNlZCB2aWV3cG9ydHMgKi99XG4gICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPEdlb0NvZGVyUGFuZWwgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9IGluZGV4PXswfSB1bnN5bmNlZFZpZXdwb3J0cz17ZmFsc2V9IC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHsvKiAyIGdlb2NvZGVyczogc3BsaXQgbW9kZSBhbmQgdW5zeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgbWFwQ29udGFpbmVycy5tYXAoKF9tYXBDb250YWluZXIsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN5bmNlZFZpZXdwb3J0cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRPdXRlciBhYnNvbHV0ZT17IWhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcyl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLmJvdHRvbVdpZGdldEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclc9e2RpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3R0b21XaWRnZXRPdXRlcj5cbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgey4uLm1vZGFsQ29udGFpbmVyRmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclc9e2RpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L0dsb2JhbFN0eWxlPlxuICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvSW50bFByb3ZpZGVyPlxuICAgICAgICAgIDwvRmVhdHVyZUZsYWdzQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICA8L1Jvb3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2VwbGVyR2xDb25uZWN0KFxuICAgIG1hcFN0YXRlVG9Qcm9wcyxcbiAgICBtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzXG4gICkod2l0aFRoZW1lKEtlcGxlckdMKSkgYXMgUmV0dXJuVHlwZTx0eXBlb2YgS2VwbGVyR2xGYWN0b3J5Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogS2VwbGVyR2xTdGF0ZSwgcHJvcHM6IEtlcGxlckdMUHJvcHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB2aXNTdGF0ZTogc3RhdGUudmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IHN0YXRlLm1hcFN0eWxlLFxuICAgIG1hcFN0YXRlOiBzdGF0ZS5tYXBTdGF0ZSxcbiAgICB1aVN0YXRlOiBzdGF0ZS51aVN0YXRlLFxuICAgIHByb3ZpZGVyU3RhdGU6IHN0YXRlLnByb3ZpZGVyU3RhdGVcbiAgfTtcbn1cblxuY29uc3QgZGVmYXVsdFVzZXJBY3Rpb25zID0ge307XG5cbmNvbnN0IGdldERpc3BhdGNoID0gZGlzcGF0Y2ggPT4gZGlzcGF0Y2g7XG5jb25zdCBnZXRVc2VyQWN0aW9ucyA9IChkaXNwYXRjaCwgcHJvcHMpID0+IHByb3BzLmFjdGlvbnMgfHwgZGVmYXVsdFVzZXJBY3Rpb25zO1xuXG4vKiogQHR5cGUgeygpID0+IGltcG9ydCgncmVzZWxlY3QnKS5PdXRwdXRQYXJhbWV0cmljU2VsZWN0b3I8YW55LCBhbnksIGFueSwgYW55Pn0gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKSB7XG4gIHJldHVybiBjcmVhdGVTZWxlY3RvcihbZ2V0RGlzcGF0Y2gsIGdldFVzZXJBY3Rpb25zXSwgKGRpc3BhdGNoLCB1c2VyQWN0aW9ucykgPT4ge1xuICAgIGNvbnN0IFt2aXNTdGF0ZUFjdGlvbnMsIG1hcFN0YXRlQWN0aW9ucywgbWFwU3R5bGVBY3Rpb25zLCB1aVN0YXRlQWN0aW9ucywgcHJvdmlkZXJBY3Rpb25zXSA9IFtcbiAgICAgIFZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIE1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIE1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIFVJU3RhdGVBY3Rpb25zLFxuICAgICAgUHJvdmlkZXJBY3Rpb25zXG4gICAgXS5tYXAoYWN0aW9ucyA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMobWVyZ2VBY3Rpb25zKGFjdGlvbnMsIHVzZXJBY3Rpb25zKSwgZGlzcGF0Y2gpKTtcblxuICAgIHJldHVybiB7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICBtYXBTdHlsZUFjdGlvbnMsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHByb3ZpZGVyQWN0aW9ucyxcbiAgICAgIGRpc3BhdGNoXG4gICAgfTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHMoKSB7XG4gIGNvbnN0IGdldEFjdGlvbkNyZWF0b3JzID0gbWFrZUdldEFjdGlvbkNyZWF0b3JzKCk7XG4gIGNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCwgb3duUHJvcHMpID0+IHtcbiAgICBjb25zdCBncm91cGVkQWN0aW9uQ3JlYXRvcnMgPSBnZXRBY3Rpb25DcmVhdG9ycyhkaXNwYXRjaCwgb3duUHJvcHMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmdyb3VwZWRBY3Rpb25DcmVhdG9ycyxcbiAgICAgIGRpc3BhdGNoXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gbWFwRGlzcGF0Y2hUb1Byb3BzO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlIGRlZmF1bHQga2VwbGVyLmdsIGFjdGlvbnMgd2l0aCB1c2VyIGRlZmluZWQgYWN0aW9ucyB1c2luZyB0aGUgc2FtZSBrZXlcbiAqL1xuZnVuY3Rpb24gbWVyZ2VBY3Rpb25zKGFjdGlvbnMsIHVzZXJBY3Rpb25zKSB7XG4gIGNvbnN0IG92ZXJyaWRlcyA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiB1c2VyQWN0aW9ucykge1xuICAgIGlmIChcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1c2VyQWN0aW9ucywga2V5KSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFjdGlvbnMsIGtleSlcbiAgICApIHtcbiAgICAgIG92ZXJyaWRlc1trZXldID0gdXNlckFjdGlvbnNba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gey4uLmFjdGlvbnMsIC4uLm92ZXJyaWRlc307XG59XG5cbmV4cG9ydCBkZWZhdWx0IEtlcGxlckdsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFMLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFB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
|
|
577
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfaXNQcm9wVmFsaWQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfdXRpbHMiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwic2hvdWxkRm9yd2FyZFByb3AiLCJwcm9wTmFtZSIsInRhcmdldCIsImlzUHJvcFZhbGlkIiwiR2xvYmFsU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsIl9yZWYiLCJhYnNvbHV0ZSIsImNvbmNhdCIsImlzVmlld3BvcnREaXNqb2ludGVkIiwiZXhwb3J0cyIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsImlzVmlld3BvcnRTeW5jZWQiLCJzcGxpdE1hcFZpZXdwb3J0cyIsIm1hcFN0YXRlU2VsZWN0b3IiLCJpbmRleCIsIk51bWJlciIsImlzRmluaXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJ1bmRlZmluZWQiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIkRFRkFVTFRfS0VQTEVSX0dMX1BST1BTIiwiZGF0YXNldEF0dHJpYnV0aW9ucyIsImF0dHJpYnV0aW9uU2VsZWN0b3IiLCJzb3VyY2VzIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsInRvcE1hcENvbnRhaW5lclByb3BzIiwiYm90dG9tTWFwQ29udGFpbmVyUHJvcHMiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiZ2V0VmlzaWJsZURhdGFzZXRzIiwiZGF0YXNldHMiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsImtleSIsIkdFT0NPREVSX0RBVEFTRVRfTkFNRSIsInNpZGVQYW5lbFNlbGVjdG9yIiwiYXZhaWxhYmxlUHJvdmlkZXJzIiwiZmlsdGVyZWREYXRhc2V0cyIsImFwcE5hbWUiLCJ2ZXJzaW9uIiwiYXBwV2Vic2l0ZSIsIm9uU2F2ZU1hcCIsIm1hcFN0eWxlQWN0aW9ucyIsImZpbHRlcnMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwiaW50ZXJhY3Rpb25Db25maWciLCJtYXBJbmZvIiwibGF5ZXJCbGVuZGluZyIsIm92ZXJsYXlCbGVuZGluZyIsIndpZHRoIiwic2lkZVBhbmVsV2lkdGgiLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJleHBvcnRJbWFnZVNldHRpbmciLCJleHBvcnRJbWFnZSIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJpc1NwbGl0U2VsZWN0b3IiLCJib3R0b21XaWRnZXRTZWxlY3RvciIsImFuaW1hdGlvbkNvbmZpZyIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsIiwibWFyZ2luIiwibGVmdCIsIm1vZGFsQ29udGFpbmVyU2VsZWN0b3IiLCJyb290Tm9kZSIsInByb3ZpZGVyQWN0aW9ucyIsImNsb3VkUHJvdmlkZXJzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsImdlb0NvZGVyUGFuZWxTZWxlY3RvciIsImRpbWVuc2lvbnMiLCJpc0dlb2NvZGVyRW5hYmxlZCIsImdlb2NvZGVyIiwiZW5hYmxlZCIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwiYXBwV2lkdGgiLCJkYXRhc2V0QXR0cmlidXRpb25TZWxlY3RvciIsImNyZWF0ZVNlbGVjdG9yIiwic3RhdGUiLCJ1bmlxdWVBdHRyaWJ1dGlvbnMiLCJfZHMkbWV0YWRhdGEiLCJkcyIsImF0dHJpYnV0aW9ucyIsIm1ldGFkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiYXR0cmlidXRpb24iLCJsaW5rcyIsIm1hdGNoIiwibGluayIsIl9saW5rJG1hdGNoIiwiX2xpbmskbWF0Y2gyIiwiaHJlZiIsInRpdGxlIiwiaW5kZXhPZiIsInVybCIsImVycm9yIiwidW5pcXVlVGV4dEF0dHJpYnV0aW9ucyIsImxvZ29zIiwibm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciIsInJlbW92ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbnMiLCJtYXBTdHlsZXMiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJLRVBMRVJfR0xfTkFNRSIsIktFUExFUl9HTF9WRVJTSU9OIiwiRElNRU5TSU9OUyIsImZlYXR1cmVGbGFncyIsIktlcGxlckdsRmFjdG9yeSIsImRlcHMiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiR2VvQ29kZXJQYW5lbEZhY3RvcnkiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJTaWRlUGFuZWxGYWN0b3J5IiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkiLCJEbmRDb250ZXh0RmFjdG9yeSIsIkVmZmVjdE1hbmFnZXJGYWN0b3J5IiwiQm90dG9tV2lkZ2V0IiwiR2VvQ29kZXJQYW5lbCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJNb2RhbENvbnRhaW5lciIsIlNpZGVQYW5lbCIsIlBsb3RDb250YWluZXIiLCJOb3RpZmljYXRpb25QYW5lbCIsIkRuZENvbnRleHQiLCJLZXBsZXJHTCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJzZXRTdGF0ZSIsImNyZWF0ZVJlZiIsInRoZW1lU2VsZWN0b3IiLCJfdHlwZW9mMiIsImJhc2ljVGhlbWUiLCJUSEVNRSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwiZGF0YXNldHNTZWxlY3RvciIsInByb3ZpZGVycyIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lcmdlTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiZ2VuZXJhdGVIYXNoSWQiLCJhbGxTdHlsZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicmVkdWNlIiwiYWNjdSIsInN0eWxlIiwibG9hZE1hcFN0eWxlcyIsImNvbnRhaW5lcklkIiwibGF5ZXJJZCIsInRvZ2dsZUxheWVyRm9yTWFwIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50IiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpZCIsIl90aGlzJHByb3BzJHdpZHRoIiwiX3RoaXMkcHJvcHMkaGVpZ2h0IiwiX3RoaXMkcHJvcHMkY2xvdWRQcm92IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJTdHlsZVNoZWV0TWFuYWdlciIsIlRoZW1lUHJvdmlkZXIiLCJDbG91ZExpc3RQcm92aWRlciIsImNsYXNzTmFtZSIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwicG9zaXRpb24iLCJyZWYiLCJ1bnN5bmNlZFZpZXdwb3J0cyIsIl9tYXBDb250YWluZXIiLCJoYXNQb3J0YWJsZVdpZHRoIiwiYnJlYWtQb2ludFZhbHVlcyIsInJvb3RSZWYiLCJib3R0b21XaWRnZXRSZWYiLCJjb250YWluZXJXIiwiY29udGFpbmVySCIsIkNvbXBvbmVudCIsImtlcGxlckdsQ29ubmVjdCIsIm1hcFN0YXRlVG9Qcm9wcyIsIm1ha2VNYXBEaXNwYXRjaFRvUHJvcHMiLCJ3aXRoVGhlbWUiLCJkZWZhdWx0VXNlckFjdGlvbnMiLCJnZXREaXNwYXRjaCIsImRpc3BhdGNoIiwiZ2V0VXNlckFjdGlvbnMiLCJhY3Rpb25zIiwibWFrZUdldEFjdGlvbkNyZWF0b3JzIiwidXNlckFjdGlvbnMiLCJfbWFwIiwiVmlzU3RhdGVBY3Rpb25zIiwiTWFwU3RhdGVBY3Rpb25zIiwiTWFwU3R5bGVBY3Rpb25zIiwiVUlTdGF0ZUFjdGlvbnMiLCJQcm92aWRlckFjdGlvbnMiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJtZXJnZUFjdGlvbnMiLCJfbWFwMiIsIl9zbGljZWRUb0FycmF5MiIsImdldEFjdGlvbkNyZWF0b3JzIiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwib3duUHJvcHMiLCJncm91cGVkQWN0aW9uQ3JlYXRvcnMiLCJvdmVycmlkZXMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9rZXBsZXItZ2wudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBEaXNwYXRjaH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IHtiaW5kQWN0aW9uQ3JlYXRvcnN9IGZyb20gJ3JlZHV4JztcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tICdAZW1vdGlvbi9pcy1wcm9wLXZhbGlkJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWUsIFN0eWxlU2hlZXRNYW5hZ2VyLCBUaGVtZVByb3ZpZGVyfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge2Nvbm5lY3QgYXMga2VwbGVyR2xDb25uZWN0fSBmcm9tICcuL2Nvbm5lY3Qva2VwbGVyZ2wtY29ubmVjdCc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1Jvb3RDb250ZXh0LCBGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIsIEZlYXR1cmVGbGFnc30gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7XG4gIEF0dHJpYnV0aW9uV2l0aFN0eWxlLFxuICBEYXRhc2V0QXR0cmlidXRpb24sXG4gIE9uRXJyb3JDYWxsQmFjayxcbiAgT25TdWNjZXNzQ2FsbEJhY2ssXG4gIFZpZXdwb3J0XG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBNYXBTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgVmlzU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxudHlwZSBLZXBsZXJHbEFjdGlvbnMgPSB7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xuICBtYXBTdHlsZUFjdGlvbnM6IHR5cGVvZiBNYXBTdHlsZUFjdGlvbnM7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHByb3ZpZGVyQWN0aW9uczogdHlwZW9mIFByb3ZpZGVyQWN0aW9ucztcbn07XG5cbmltcG9ydCB7XG4gIERJTUVOU0lPTlMsXG4gIEtFUExFUl9HTF9OQU1FLFxuICBLRVBMRVJfR0xfVkVSU0lPTixcbiAgVEhFTUUsXG4gIERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gIEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgTUlTU0lOR19NQVBCT1hfVE9LRU5cbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQgU2lkZVBhbmVsRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udGFpbmVyJztcbmltcG9ydCBNYXBzTGF5b3V0RmFjdG9yeSBmcm9tICcuL21hcHMtbGF5b3V0JztcbmltcG9ydCBCb3R0b21XaWRnZXRGYWN0b3J5IGZyb20gJy4vYm90dG9tLXdpZGdldCc7XG5pbXBvcnQgTW9kYWxDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbW9kYWwtY29udGFpbmVyJztcbmltcG9ydCBQbG90Q29udGFpbmVyRmFjdG9yeSBmcm9tICcuL3Bsb3QtY29udGFpbmVyJztcbmltcG9ydCBOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkgZnJvbSAnLi9ub3RpZmljYXRpb24tcGFuZWwnO1xuaW1wb3J0IEdlb0NvZGVyUGFuZWxGYWN0b3J5IGZyb20gJy4vZ2VvY29kZXItcGFuZWwnO1xuaW1wb3J0IEVmZmVjdE1hbmFnZXJGYWN0b3J5IGZyb20gJy4vZWZmZWN0cy9lZmZlY3QtbWFuYWdlcic7XG5pbXBvcnQgRG5kQ29udGV4dEZhY3RvcnkgZnJvbSAnLi9kbmQtY29udGV4dCc7XG5pbXBvcnQge0Nsb3VkTGlzdFByb3ZpZGVyfSBmcm9tICcuL2hvb2tzL3VzZS1jbG91ZC1saXN0LXByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUsXG4gIHZhbGlkYXRlVG9rZW4sXG4gIG1lcmdlTWVzc2FnZXMsXG4gIG9ic2VydmVEaW1lbnNpb25zLFxuICB1bm9ic2VydmVEaW1lbnNpb25zLFxuICBoYXNQb3J0YWJsZVdpZHRoXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge3RoZW1lIGFzIGJhc2ljVGhlbWUsIHRoZW1lTFQsIHRoZW1lQlMsIGJyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7S2VwbGVyR2xTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5cbi8vIFRoaXMgaW1wbGVtZW50cyB0aGUgZGVmYXVsdCBiZWhhdmlvciBmcm9tIHN0eWxlZC1jb21wb25lbnRzIHY1XG5mdW5jdGlvbiBzaG91bGRGb3J3YXJkUHJvcChwcm9wTmFtZSwgdGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xuICAgIC8vIEZvciBIVE1MIGVsZW1lbnRzLCBmb3J3YXJkIHRoZSBwcm9wIGlmIGl0IGlzIGEgdmFsaWQgSFRNTCBhdHRyaWJ1dGVcbiAgICByZXR1cm4gaXNQcm9wVmFsaWQocHJvcE5hbWUpO1xuICB9XG4gIC8vIEZvciBvdGhlciBlbGVtZW50cywgZm9yd2FyZCBhbGwgcHJvcHNcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8vIE1heWJlIHdlIHNob3VsZCB0aGluayBhYm91dCBleHBvcnRpbmcgdGhpcyBvciBjcmVhdGluZyBhIHZhcmlhYmxlXG4vLyBhcyBwYXJ0IG9mIHRoZSBiYXNlLmpzIHRoZW1lXG5jb25zdCBHbG9iYWxTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGluZUhlaWdodH07XG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cblxuICAubWFwbGlicmVnbC1jdHJsIC5tYXBsaWJyZWdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5tYXBib3hnbC1jdHJsIC5tYXBib3hnbC1jdHJsLWxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmA7XG5cbnR5cGUgQm90dG9tV2lkZ2V0T3V0ZXJQcm9wcyA9IHtcbiAgYWJzb2x1dGU/OiBib29sZWFuO1xufTtcblxuY29uc3QgQm90dG9tV2lkZ2V0T3V0ZXIgPSBzdHlsZWQuZGl2PEJvdHRvbVdpZGdldE91dGVyUHJvcHM+KFxuICAoe2Fic29sdXRlfSkgPT4gYFxuICAke2Fic29sdXRlID8gJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyByaWdodDogMDsnIDogJyd9XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBwcmV2ZW50IHBhZGRpbmcgZnJvbSBibG9ja2luZyBpbnB1dCAqL1xuICAmID4gKiB7XG4gICAgLyogYWxsIGNoaWxkcmVuIHNob3VsZCBhbGxvdyBpbnB1dCAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1gXG4pO1xuXG5leHBvcnQgY29uc3QgaXNWaWV3cG9ydERpc2pvaW50ZWQgPSBwcm9wcyA9PiB7XG4gIHJldHVybiAoXG4gICAgcHJvcHMubWFwU3RhdGUuaXNTcGxpdCAmJlxuICAgICFwcm9wcy5tYXBTdGF0ZS5pc1ZpZXdwb3J0U3luY2VkICYmXG4gICAgcHJvcHMubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubGVuZ3RoID4gMVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcFN0YXRlU2VsZWN0b3IgPSAocHJvcHM6IGFueSwgaW5kZXg6IG51bWJlcik6IGFueSA9PiB7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGluZGV4KSkge1xuICAgIC8vIGVpdGhlciBubyBpbmRleCBhcmcgb3IgYW4gaW52YWxpZCBpbmRleCB3YXMgcHJvdmlkZWRcbiAgICAvLyBpdCBpcyBleHBlY3RlZCB0byBiZSBlaXRoZXIgMCBvciAxIHdoZW4gaW4gc3BsaXQgbW9kZVxuICAgIC8vIG9ubHkgdXNlIHRoZSBtYXBTdGF0ZVxuICAgIHJldHVybiBwcm9wcy5tYXBTdGF0ZTtcbiAgfVxuXG4gIHJldHVybiBpc1ZpZXdwb3J0RGlzam9pbnRlZChwcm9wcylcbiAgICA/IC8vIG1peCB0b2dldGhlciB0aGUgdmlld3BvcnQgcHJvcGVydGllcyBpbnRlbmRlZCBmb3IgdGhpcyBkaXNqb2ludGVkIDxNYXBDb250YWluZXI+IHdpdGggdGhlIG90aGVyIG5lY2Vzc2FyeSBtYXBTdGF0ZSBwcm9wZXJ0aWVzXG4gICAgICB7Li4ucHJvcHMubWFwU3RhdGUsIC4uLnByb3BzLm1hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2luZGV4XX1cbiAgICA6IC8vIG90aGVyd2lzZSBvbmx5IHVzZSB0aGUgbWFwU3RhdGVcbiAgICAgIHByb3BzLm1hcFN0YXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IG1hcEZpZWxkc1NlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCBpbmRleCA9IDApID0+ICh7XG4gIGdldE1hcGJveFJlZjogcHJvcHMuZ2V0TWFwYm94UmVmLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsID8gcHJvcHMubWFwYm94QXBpVXJsIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMubWFwYm94QXBpVXJsLFxuICBtYXBTdGF0ZTogbWFwU3RhdGVTZWxlY3Rvcihwcm9wcywgaW5kZXgpLFxuICBkYXRhc2V0QXR0cmlidXRpb25zOiBhdHRyaWJ1dGlvblNlbGVjdG9yKHByb3BzKS5zb3VyY2VzLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uRGVja0luaXRpYWxpemVkOiBwcm9wcy5vbkRlY2tJbml0aWFsaXplZCxcbiAgb25WaWV3U3RhdGVDaGFuZ2U6IHByb3BzLm9uVmlld1N0YXRlQ2hhbmdlLFxuICBvbk1vdXNlTW92ZTogcHJvcHMub25Nb3VzZU1vdmUsXG4gIGRlY2tHbFByb3BzOiBwcm9wcy5kZWNrR2xQcm9wcyxcbiAgdWlTdGF0ZUFjdGlvbnM6IHByb3BzLnVpU3RhdGVBY3Rpb25zLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgLy8gdmlzU3RhdGVcbiAgdmlzU3RhdGU6IHByb3BzLnZpc1N0YXRlLFxuXG4gIC8vIHVpU3RhdGVcbiAgYWN0aXZlU2lkZVBhbmVsOiBwcm9wcy51aVN0YXRlLmFjdGl2ZVNpZGVQYW5lbCxcbiAgbWFwQ29udHJvbHM6IHByb3BzLnVpU3RhdGUubWFwQ29udHJvbHMsXG4gIHJlYWRPbmx5OiBwcm9wcy51aVN0YXRlLnJlYWRPbmx5LFxuICBsb2NhbGU6IHByb3BzLnVpU3RhdGUubG9jYWxlLFxuXG4gIC8vIG1hcFN0eWxlXG4gIHRvcE1hcENvbnRhaW5lclByb3BzOiBwcm9wcy50b3BNYXBDb250YWluZXJQcm9wcyxcbiAgYm90dG9tTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLmJvdHRvbU1hcENvbnRhaW5lclByb3BzLFxuXG4gIC8vIHRyYW5zZm9ybVJlcXVlc3QgZm9yIE1hcGJveCBiYXNlbWFwc1xuICB0cmFuc2Zvcm1SZXF1ZXN0OiBwcm9wcy50cmFuc2Zvcm1SZXF1ZXN0XG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpc2libGVEYXRhc2V0cyhkYXRhc2V0cykge1xuICAvLyBXZSBkb24ndCB3YW50IEdlb2NvZGVyIGRhdGFzZXQgdG8gYmUgcHJlc2VudCBpbiBTaWRlUGFuZWwgZGF0YXNldCBsaXN0XG4gIHJldHVybiBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZShkYXRhc2V0cywga2V5ID0+IGtleSAhPT0gR0VPQ09ERVJfREFUQVNFVF9OQU1FKTtcbn1cblxuZXhwb3J0IGNvbnN0IHNpZGVQYW5lbFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUgPyBwcm9wcy5hcHBOYW1lIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuYXBwTmFtZSxcbiAgdmVyc2lvbjogcHJvcHMudmVyc2lvbiA/IHByb3BzLnZlcnNpb24gOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy52ZXJzaW9uLFxuICBhcHBXZWJzaXRlOiBwcm9wcy5hcHBXZWJzaXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IGZpbHRlcmVkRGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBvdmVybGF5QmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgZXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLFxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PlxuICBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMgJiYgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG5cbmV4cG9ydCBjb25zdCBib3R0b21XaWRnZXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgdGhlbWUpID0+ICh7XG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdG9nZ2xlTW9kYWw6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMudWlTdGF0ZS5yZWFkT25seSA/IDAgOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCArIHRoZW1lLnNpZGVQYW5lbC5tYXJnaW4ubGVmdFxufSk7XG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbnRhaW5lclNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCByb290Tm9kZSkgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVyc1xuICAgID8gcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IChcbiAgcHJvcHM6IEtlcGxlckdMUHJvcHMsXG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn1cbikgPT4gKHtcbiAgaXNHZW9jb2RlckVuYWJsZWQ6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICB1cGRhdGVWaXNEYXRhOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMudXBkYXRlVmlzRGF0YSxcbiAgcmVtb3ZlRGF0YXNldDogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQsXG4gIHVwZGF0ZU1hcDogcHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCxcbiAgYXBwV2lkdGg6IGRpbWVuc2lvbnMud2lkdGhcbn0pO1xuXG4vKipcbiAqIFJldHVybnMgYXJyYXkgb2YgdW5pcXVlIGRhdGFzZXQgYXR0cmlidXRpb25zLCBlYWNoIHdpdGggdGl0bGUgYW5kIHVybCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgY29uc3QgZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW3N0YXRlID0+IHN0YXRlLnZpc1N0YXRlLmRhdGFzZXRzXSxcbiAgZGF0YXNldHMgPT4ge1xuICAgIGNvbnN0IHVuaXF1ZUF0dHJpYnV0aW9uczogRGF0YXNldEF0dHJpYnV0aW9uW10gPSBbXTtcbiAgICBPYmplY3Qua2V5cyhkYXRhc2V0cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgZHMgPSBkYXRhc2V0c1trZXldO1xuICAgICAgY29uc3QgYXR0cmlidXRpb25zID0gZHM/Lm1ldGFkYXRhPy5hdHRyaWJ1dGlvbnM7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhdHRyaWJ1dGlvbnMpKSB7XG4gICAgICAgIGF0dHJpYnV0aW9ucy5mb3JFYWNoKGF0dHJpYnV0aW9uID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGF0dHJpYnV0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gYXR0cmlidXRpb24gY2FuIGJlIGEgcmF3IHN0cmluZyBvciBhIHN0cmluZyB3aXRoIGxpbmsgdGFnc1xuICAgICAgICAgICAgY29uc3QgbGlua3MgPSBhdHRyaWJ1dGlvbi5tYXRjaCgvPGFbXl0rP2E+L2cpO1xuICAgICAgICAgICAgaWYgKGxpbmtzKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGlua3M/LmZvckVhY2gobGluayA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gbGluay5tYXRjaCgvaHJlZj1cIihbXlwiXSopLyk/LlsxXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gbGluay5tYXRjaCgvdGl0bGU9XCIoW15cIl0qKS8pPy5bMV07XG4gICAgICAgICAgICAgICAgICBpZiAoaHJlZiAmJiB0aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB1bmlxdWVBdHRyaWJ1dGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGAke2xpbmsuaW5kZXhPZignJmNvcHk7JykgPj0gMCA/ICfCqSAnIDogJyd9JHt0aXRsZX1gLFxuICAgICAgICAgICAgICAgICAgICAgIHVybDogaHJlZlxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGlnbm9yZSBmb3Igbm93XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuaXF1ZUF0dHJpYnV0aW9ucy5wdXNoKHt0aXRsZTogYXR0cmlidXRpb24sIHVybDogbnVsbH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHVuaXF1ZUF0dHJpYnV0aW9ucztcbiAgfVxuKTtcblxuLyoqXG4gKiBEZWR1cGxpY2F0ZWQgZGF0YXNldCBhbmQgbGF5ZXIgdGV4dCBhdHRyaWJ1dGlvbnMgYW5kIGxvZ29zLlxuICogUmV0dXJucyB0ZXh0IGF0dHJpYnV0aW9ucyBhbmQgbG9nb3MgdG8gZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNvbnN0IGF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW2RhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yXSxcbiAgZGF0YXNldEF0dHJpYnV0aW9ucyA9PiB7XG4gICAgLy8gVE9ETyBjb2xsZWN0IGF0dHJpYnV0aW9ucyBmcm9tIGxheWVycywgYW5kIG1lcmdlIHdpdGggZGF0YXNldCBhdHRyaWJ1dGlvbnMgaGVyZVxuICAgIGNvbnN0IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMgPSBkYXRhc2V0QXR0cmlidXRpb25zO1xuICAgIGNvbnN0IGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG5cbiAgICByZXR1cm4ge3NvdXJjZXM6IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMsIGxvZ29zfTtcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2UsXG4gIGZlYXR1cmVGbGFnczoge31cbn07XG5cbnR5cGUgS2VwbGVyR0xCYXNpY1Byb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgYXBwV2Vic2l0ZT86IGFueTtcbiAgb25TYXZlTWFwPzogKCkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld1N0YXRlOiBWaWV3cG9ydCkgPT4gdm9pZDtcbiAgb25EZWNrSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBvbktlcGxlckdsSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBnZXRNYXBib3hSZWY/OiAoKSA9PiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcbiAgbWFwU3R5bGVzPzoge2lkOiBzdHJpbmc7IHN0eWxlPzogb2JqZWN0fVtdO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdD86IGJvb2xlYW47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNpZGVQYW5lbFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IG9iamVjdDtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBkZWNrR2xQcm9wcz86IG9iamVjdDtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uTW91c2VNb3ZlPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50ICYge2xuZ0xhdD86IFtudW1iZXIsIG51bWJlcl19KSA9PiB2b2lkO1xuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yPzogT25FcnJvckNhbGxCYWNrO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICBsb2NhbGVNZXNzYWdlcz86IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX07XG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxhbnk+O1xuXG4gIHRvcE1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuICBib3R0b21NYXBDb250YWluZXJQcm9wcz86IG9iamVjdDtcblxuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nKSA9PiB7dXJsOiBzdHJpbmd9O1xufTtcblxudHlwZSBLZXBsZXJHTFByb3BzID0gS2VwbGVyR2xTdGF0ZSAmIEtlcGxlckdsQWN0aW9ucyAmIEtlcGxlckdMQmFzaWNQcm9wcztcbnR5cGUgS2VwbGVyR0xDb21wU3RhdGUgPSB7XG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xufTtcblxuS2VwbGVyR2xGYWN0b3J5LmRlcHMgPSBbXG4gIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIEdlb0NvZGVyUGFuZWxGYWN0b3J5LFxuICBNYXBDb250YWluZXJGYWN0b3J5LFxuICBNYXBzTGF5b3V0RmFjdG9yeSxcbiAgTW9kYWxDb250YWluZXJGYWN0b3J5LFxuICBTaWRlUGFuZWxGYWN0b3J5LFxuICBQbG90Q29udGFpbmVyRmFjdG9yeSxcbiAgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5LFxuICBEbmRDb250ZXh0RmFjdG9yeSxcbiAgRWZmZWN0TWFuYWdlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBCb3R0b21XaWRnZXRGYWN0b3J5PixcbiAgR2VvQ29kZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgR2VvQ29kZXJQYW5lbEZhY3Rvcnk+LFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT4sXG4gIE1vZGFsQ29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbENvbnRhaW5lckZhY3Rvcnk+LFxuICBTaWRlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFNpZGVQYW5lbEZhY3Rvcnk+LFxuICBQbG90Q29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQbG90Q29udGFpbmVyRmFjdG9yeT4sXG4gIE5vdGlmaWNhdGlvblBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnk+LFxuICBEbmRDb250ZXh0OiBSZXR1cm5UeXBlPHR5cGVvZiBEbmRDb250ZXh0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8S2VwbGVyR0xCYXNpY1Byb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9PiB7XG4gIC8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2tlcGxlci1nbCcpLlVuY29ubmVjdGVkS2VwbGVyR2xQcm9wc30gS2VwbGVyR2xQcm9wcyAqL1xuICAvKiogQGF1Z21lbnRzIFJlYWN0LkNvbXBvbmVudDxLZXBsZXJHbFByb3BzPiAqL1xuICBjbGFzcyBLZXBsZXJHTCBleHRlbmRzIENvbXBvbmVudDxcbiAgICBLZXBsZXJHTFByb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9LFxuICAgIEtlcGxlckdMQ29tcFN0YXRlXG4gID4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlOiBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgYm90dG9tV2lkZ2V0UmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gICAgLyogc2VsZWN0b3JzICovXG4gICAgdGhlbWVTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnRoZW1lO1xuICAgIGF2YWlsYWJsZVRoZW1lU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLnRoZW1lU2VsZWN0b3IsIHRoZW1lID0+XG4gICAgICB0eXBlb2YgdGhlbWUgPT09ICdvYmplY3QnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lXG4gICAgICAgICAgfVxuICAgICAgICA6IHRoZW1lID09PSBUSEVNRS5saWdodFxuICAgICAgICA/IHRoZW1lTFRcbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUuYmFzZVxuICAgICAgICA/IHRoZW1lQlNcbiAgICAgICAgOiB0aGVtZVxuICAgICk7XG5cbiAgICBkYXRhc2V0c1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudmlzU3RhdGUuZGF0YXNldHM7XG4gICAgZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy5kYXRhc2V0c1NlbGVjdG9yLCBnZXRWaXNpYmxlRGF0YXNldHMpO1xuXG4gICAgYXZhaWxhYmxlUHJvdmlkZXJzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICAgICAgcHJvdmlkZXJzID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkocHJvdmlkZXJzKSAmJiBwcm92aWRlcnMubGVuZ3RoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGhhc1N0b3JhZ2U6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNQcml2YXRlU3RvcmFnZSgpKSxcbiAgICAgICAgICAgICAgaGFzU2hhcmU6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNTaGFyaW5nVXJsKCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICk7XG5cbiAgICBsb2NhbGVNZXNzYWdlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+IHByb3BzLmxvY2FsZU1lc3NhZ2VzLFxuICAgICAgY3VzdG9tTWVzc2FnZXMgPT4gKGN1c3RvbU1lc3NhZ2VzID8gbWVyZ2VNZXNzYWdlcyhtZXNzYWdlcywgY3VzdG9tTWVzc2FnZXMpIDogbWVzc2FnZXMpXG4gICAgKTtcblxuICAgIC8qIHByaXZhdGUgbWV0aG9kcyAqL1xuICAgIF92YWxpZGF0ZU1hcGJveFRva2VuKCkge1xuICAgICAgY29uc3Qge21hcGJveEFwaUFjY2Vzc1Rva2VufSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAoIXZhbGlkYXRlVG9rZW4obWFwYm94QXBpQWNjZXNzVG9rZW4pKSB7XG4gICAgICAgIENvbnNvbGUud2FybihNSVNTSU5HX01BUEJPWF9UT0tFTik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xvYWRNYXBTdHlsZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTdHlsZXMgPSBPYmplY3QudmFsdWVzKHRoaXMucHJvcHMubWFwU3R5bGUubWFwU3R5bGVzKTtcbiAgICAgIC8vIGFkZCBpZCB0byBjdXN0b20gbWFwIHN0eWxlcyBpZiBub3QgZ2l2ZW5cbiAgICAgIGNvbnN0IGN1c3RvbVN0eWxlcyA9ICh0aGlzLnByb3BzLm1hcFN0eWxlcyB8fCBbXSkubWFwKG1zID0+ICh7XG4gICAgICAgIC4uLm1zLFxuICAgICAgICBpZDogbXMuaWQgfHwgZ2VuZXJhdGVIYXNoSWQoKVxuICAgICAgfSkpO1xuXG4gICAgICBjb25zdCBhbGxTdHlsZXMgPSBbLi4uY3VzdG9tU3R5bGVzLCAuLi5kZWZhdWx0U3R5bGVzXS5yZWR1Y2UoKGFjY3UsIHN0eWxlKSA9PiB7XG4gICAgICAgIGFjY3Vbc3R5bGUuaWRdID0gc3R5bGU7XG4gICAgICAgIHJldHVybiBhY2N1O1xuICAgICAgfSwge30pO1xuXG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5sb2FkTWFwU3R5bGVzKGFsbFN0eWxlcyk7XG4gICAgfTtcblxuICAgIF9kZWxldGVNYXBMYWJlbHMgPSAoY29udGFpbmVySWQsIGxheWVySWQpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUxheWVyRm9yTWFwKGNvbnRhaW5lcklkLCBsYXllcklkKTtcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkID0gJ21hcCcsXG4gICAgICAgIHdpZHRoID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMud2lkdGgsXG4gICAgICAgIGhlaWdodCA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmhlaWdodCxcbiAgICAgICAgdWlTdGF0ZSxcbiAgICAgICAgdmlzU3RhdGUsXG4gICAgICAgIC8vIHJlYWRPbmx5IG92ZXJyaWRlXG4gICAgICAgIHJlYWRPbmx5LFxuXG4gICAgICAgIC8vIGZlYXR1cmVzXG4gICAgICAgIGZlYXR1cmVGbGFncyxcblxuICAgICAgICAvLyBjbG91ZCBwcm92aWRlcnNcbiAgICAgICAgY2xvdWRQcm92aWRlcnMgPSBbXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnMgfHwge3dpZHRoLCBoZWlnaHR9O1xuICAgICAgY29uc3Qge1xuICAgICAgICBzcGxpdE1hcHMsIC8vIHRoaXMgd2lsbCBzdG9yZSBzdXBwb3J0IGZvciBzcGxpdCBtYXAgdmlldyBpcyBuZWNlc3NhcnlcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWdcbiAgICAgIH0gPSB2aXNTdGF0ZTtcblxuICAgICAgY29uc3QgaXNTcGxpdCA9IGlzU3BsaXRTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5hdmFpbGFibGVUaGVtZVNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbG9jYWxlTWVzc2FnZXMgPSB0aGlzLmxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBpc0V4cG9ydGluZ0ltYWdlID0gdWlTdGF0ZS5leHBvcnRJbWFnZS5leHBvcnRpbmc7XG4gICAgICBjb25zdCBhdmFpbGFibGVQcm92aWRlcnMgPSB0aGlzLmF2YWlsYWJsZVByb3ZpZGVycyh0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgZmlsdGVyZWREYXRhc2V0cyA9IHRoaXMuZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3Qgc2lkZUZpZWxkcyA9IHNpZGVQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGF2YWlsYWJsZVByb3ZpZGVycywgZmlsdGVyZWREYXRhc2V0cyk7XG4gICAgICBjb25zdCBwbG90Q29udGFpbmVyRmllbGRzID0gcGxvdENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgYm90dG9tV2lkZ2V0RmllbGRzID0gYm90dG9tV2lkZ2V0U2VsZWN0b3IodGhpcy5wcm9wcywgdGhlbWUpO1xuICAgICAgY29uc3QgbW9kYWxDb250YWluZXJGaWVsZHMgPSBtb2RhbENvbnRhaW5lclNlbGVjdG9yKHRoaXMucHJvcHMsIHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICAgIGNvbnN0IGdlb0NvZGVyUGFuZWxGaWVsZHMgPSBnZW9Db2RlclBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcywgZGltZW5zaW9ucyk7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25QYW5lbEZpZWxkcyA9IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcENvbnRhaW5lcnMgPSAhaXNTcGxpdFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIDxNYXBDb250YWluZXJcbiAgICAgICAgICAgICAgcHJpbWFyeT17dHJ1ZX1cbiAgICAgICAgICAgICAga2V5PXswfVxuICAgICAgICAgICAgICBpbmRleD17MH1cbiAgICAgICAgICAgICAgey4uLm1hcEZpZWxkc1NlbGVjdG9yKHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICBjb250YWluZXJJZD17MH1cbiAgICAgICAgICAgICAgZGVsZXRlTWFwTGFiZWxzPXt0aGlzLl9kZWxldGVNYXBMYWJlbHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIF1cbiAgICAgICAgOiBzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxNYXBDb250YWluZXJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBwcmltYXJ5PXtpbmRleCA9PT0gMX1cbiAgICAgICAgICAgICAgey4uLm1hcEZpZWxkc1NlbGVjdG9yKHRoaXMucHJvcHMsIGluZGV4KX1cbiAgICAgICAgICAgICAgY29udGFpbmVySWQ9e2luZGV4fVxuICAgICAgICAgICAgICBkZWxldGVNYXBMYWJlbHM9e3RoaXMuX2RlbGV0ZU1hcExhYmVsc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb290Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy5yb290fT5cbiAgICAgICAgICA8RmVhdHVyZUZsYWdzQ29udGV4dFByb3ZpZGVyIGZlYXR1cmVGbGFncz17ZmVhdHVyZUZsYWdzfT5cbiAgICAgICAgICAgIDxJbnRsUHJvdmlkZXIgbG9jYWxlPXt1aVN0YXRlLmxvY2FsZX0gbWVzc2FnZXM9e2xvY2FsZU1lc3NhZ2VzW3VpU3RhdGUubG9jYWxlXX0+XG4gICAgICAgICAgICAgIDxTdHlsZVNoZWV0TWFuYWdlciBzaG91bGRGb3J3YXJkUHJvcD17c2hvdWxkRm9yd2FyZFByb3B9PlxuICAgICAgICAgICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgICAgICAgICAgICA8Q2xvdWRMaXN0UHJvdmlkZXIgcHJvdmlkZXJzPXtjbG91ZFByb3ZpZGVyc30+XG4gICAgICAgICAgICAgICAgICAgIDxHbG9iYWxTdHlsZVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImtlcGxlci1nbFwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9e2BrZXBsZXItZ2xfXyR7aWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgJHt3aWR0aH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGAke2hlaWdodH1weGBcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGhpcy5yb290fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvblBhbmVsIHsuLi5ub3RpZmljYXRpb25QYW5lbEZpZWxkc30gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8RG5kQ29udGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJtYXBzXCIgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge2lzRXhwb3J0aW5nSW1hZ2UgJiYgPFBsb3RDb250YWluZXIgey4uLnBsb3RDb250YWluZXJGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHsvKiAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMiBnZW9jb2RlcnM6IHNwbGl0IG1vZGUgYW5kIHVuc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcENvbnRhaW5lcnMubWFwKChfbWFwQ29udGFpbmVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPXshaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dG9tV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQm90dG9tV2lkZ2V0T3V0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ubW9kYWxDb250YWluZXJGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HbG9iYWxTdHlsZT5cbiAgICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1N0eWxlU2hlZXRNYW5hZ2VyPlxuICAgICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QoXG4gICAgbWFwU3RhdGVUb1Byb3BzLFxuICAgIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHNcbiAgKSh3aXRoVGhlbWUoS2VwbGVyR0wpKSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBLZXBsZXJHbFN0YXRlLCBwcm9wczogS2VwbGVyR0xQcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSBkaXNwYXRjaCA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJBY3Rpb25zLCBrZXkpICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aW9ucywga2V5KVxuICAgICkge1xuICAgICAgb3ZlcnJpZGVzW2tleV0gPSB1c2VyQWN0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7Li4uYWN0aW9ucywgLi4ub3ZlcnJpZGVzfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgS2VwbGVyR2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQU4sdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxhQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFTQSxJQUFBVyxRQUFBLEdBQUFYLE9BQUE7QUFRQSxJQUFBWSxZQUFBLEdBQUFaLE9BQUE7QUFVQSxJQUFBYSxVQUFBLEdBQUFiLE9BQUE7QUFVQSxJQUFBYyxVQUFBLEdBQUFaLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZSxjQUFBLEdBQUFiLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZ0IsV0FBQSxHQUFBZCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWlCLGFBQUEsR0FBQWYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFrQixlQUFBLEdBQUFoQixzQkFBQSxDQUFB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
|
|
@@ -4,7 +4,9 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { Layer } from '@kepler.gl/layers';
|
|
5
5
|
import { LayerHoverProp } from '@kepler.gl/reducers';
|
|
6
6
|
import { VisState } from '@kepler.gl/schemas';
|
|
7
|
-
export declare const StyledLayerName: import("styled-components").
|
|
7
|
+
export declare const StyledLayerName: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<Omit<import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
|
|
8
|
+
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
9
|
+
}, never>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>, keyof React.Component<any, {}, any>>;
|
|
8
10
|
export declare type EntryInfoProps = Merge<LayerHoverProp, {
|
|
9
11
|
fieldsToShow: TooltipField[];
|
|
10
12
|
}>;
|
|
@@ -13,6 +13,7 @@ var _localization = require("@kepler.gl/localization");
|
|
|
13
13
|
var _styledComponents2 = require("../common/styled-components");
|
|
14
14
|
var _icons = require("../common/icons");
|
|
15
15
|
var _switch = _interopRequireDefault(require("../common/switch"));
|
|
16
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
16
17
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
|
|
17
18
|
// Copyright contributors to the kepler.gl project
|
|
18
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -52,7 +53,7 @@ var StyledDisableableSwitch = (0, _styledComponents["default"])(_switch["default
|
|
|
52
53
|
}, function (props) {
|
|
53
54
|
return props.disabled ? 'none' : 'all';
|
|
54
55
|
});
|
|
55
|
-
var StyledIcon = (0, _styledComponents["default"])(_styledComponents2.IconRoundSmall)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n background-color: transparent;\n\n
|
|
56
|
+
var StyledIcon = (0, _styledComponents["default"])(_styledComponents2.IconRoundSmall)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n background-color: transparent;\n\n &:hover {\n cursor: pointer;\n background-color: transparent;\n color: ", ";\n }\n"])), function (props) {
|
|
56
57
|
return props.theme.activeColor;
|
|
57
58
|
}, function (props) {
|
|
58
59
|
return props.theme.floatingBtnActColor;
|
|
@@ -92,7 +93,7 @@ function MapControlPanelFactory() {
|
|
|
92
93
|
transform: "scale(".concat(scale, ")"),
|
|
93
94
|
marginBottom: '8px !important'
|
|
94
95
|
},
|
|
95
|
-
className: className
|
|
96
|
+
className: (0, _classnames["default"])('map-control-panel', className)
|
|
96
97
|
}, mapState !== null && mapState !== void 0 && mapState.isSplit && isViewportUnsyncAllowed ? /*#__PURE__*/_react["default"].createElement(StyledMapControlPanelHeaderSplitViewportsTools, null, /*#__PURE__*/_react["default"].createElement(StyledSBCenterFlexbox, {
|
|
97
98
|
style: {
|
|
98
99
|
paddingBottom: '6px'
|
|
@@ -136,4 +137,4 @@ function MapControlPanelFactory() {
|
|
|
136
137
|
return MapControlPanel;
|
|
137
138
|
}
|
|
138
139
|
var _default = exports["default"] = MapControlPanelFactory;
|
|
139
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2ljb25zIiwiX3N3aXRjaCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRNYXBDb250cm9sUGFuZWwiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJtYXBQYW5lbEJhY2tncm91bmRDb2xvciIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnQiLCJhdHRycyIsImNsYXNzTmFtZSIsInNpZGVQYW5lbFNjcm9sbEJhciIsIm1hcENvbnRyb2wiLCJ3aWR0aCIsImlzRXhwb3J0IiwiU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyIiwibWFwUGFuZWxIZWFkZXJCYWNrZ3JvdW5kQ29sb3IiLCJmb250RmFtaWx5IiwidGl0bGVUZXh0Q29sb3IiLCJTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzIiwiU3R5bGVkU0JDZW50ZXJGbGV4Ym94IiwiQ2VudGVyRmxleGJveCIsIlN0eWxlZERpc2FibGVhYmxlVGV4dCIsInNwYW4iLCJkaXNhYmxlZCIsIlN0eWxlZERpc2FibGVhYmxlU3dpdGNoIiwiU3dpdGNoIiwiU3R5bGVkSWNvbiIsIkljb25Sb3VuZFNtYWxsIiwiYWN0aXZlQ29sb3IiLCJmbG9hdGluZ0J0bkFjdENvbG9yIiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbCIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJjaGlsZHJlbiIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwib25QaW5DbGljayIsIm9uQ2xpY2siLCJfcmVmJHNjYWxlIiwic2NhbGUiLCJsb2dvQ29tcG9uZW50IiwibWFwU3RhdGUiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCIsIl9yZWYkY2xhc3NOYW1lIiwiX3JlZjIiLCJpc1ZpZXdwb3J0U3luY2VkIiwiaXNab29tTG9ja2VkIiwib25VbmxvY2tWaWV3cG9ydENoYW5nZSIsInVzZUNhbGxiYWNrIiwib25TeW5jWm9vbUNoYW5nZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRyYW5zZm9ybSIsImNvbmNhdCIsIm1hcmdpbkJvdHRvbSIsImlzU3BsaXQiLCJwYWRkaW5nQm90dG9tIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwidmVydGljYWxBbGlnbiIsIkZyYWdtZW50IiwiUGluIiwiaGVpZ2h0IiwiQ2xvc2UiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWNvbnRyb2wtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7U3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Q2VudGVyRmxleGJveCwgSWNvblJvdW5kU21hbGx9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Nsb3NlLCBQaW59IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IHtNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmNvbnN0IFN0eWxlZE1hcENvbnRyb2xQYW5lbCA9IHN0eWxlZC5kaXZgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwUGFuZWxCYWNrZ3JvdW5kQ29sb3J9O1xuICBmbGV4LWdyb3c6IDE7XG4gIHotaW5kZXg6IDE7XG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbmA7XG5cbnR5cGUgU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudFByb3BzID0ge1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50ID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ21hcC1jb250cm9sX19wYW5lbC1jb250ZW50J1xufSk8U3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudFByb3BzPmBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zaWRlUGFuZWxTY3JvbGxCYXJ9O1xuICBtYXgtaGVpZ2h0OiA1MDBweDtcbiAgbWluLWhlaWdodDogMTAwcHg7XG4gIG1pbi13aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLndpZHRofXB4O1xuICBvdmVyZmxvdzogJHtwcm9wcyA9PiAocHJvcHMuaXNFeHBvcnQgPyAnaGlkZGVuJyA6ICdvdmVybGF5Jyl9O1xuYDtcblxudHlwZSBNYXBDb250cm9sUGFuZWxIZWFkZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmNvbnN0IFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdtYXAtY29udHJvbF9fcGFuZWwtaGVhZGVyJ1xufSk8TWFwQ29udHJvbFBhbmVsSGVhZGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwUGFuZWxIZWFkZXJCYWNrZ3JvdW5kQ29sb3J9O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50aXRsZVRleHRDb2xvcn07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyU3BsaXRWaWV3cG9ydHNUb29sczogU3R5bGVkQ29tcG9uZW50PFxuICAnZGl2JyxcbiAgYW55LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJztcbiAgfSxcbiAgJ2NsYXNzTmFtZSdcbj4gPSBzdHlsZWQoU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyKS5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ21hcC1jb250cm9sX19wYW5lbC1zcGxpdC12aWV3cG9ydC10b29scydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBoZWlnaHQ6IHVuc2V0O1xuYDtcblxuY29uc3QgU3R5bGVkU0JDZW50ZXJGbGV4Ym94ID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZERpc2FibGVhYmxlVGV4dFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWREaXNhYmxlYWJsZVRleHQgPSBzdHlsZWQuc3BhbjxTdHlsZWREaXNhYmxlYWJsZVRleHRQcm9wcz5gXG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gMC40IDogMSl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuYDtcblxuY29uc3QgU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2ggPSBzdHlsZWQoU3dpdGNoKWBcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAwLjQgOiAxKX07XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG5gO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb25Sb3VuZFNtYWxsKWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mbG9hdGluZ0J0bkFjdENvbG9yfTtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTWFwQ29udHJvbFBhbmVsUHJvcHMgPSB7XG4gIGhlYWRlcj86IHN0cmluZztcbiAgc2NhbGU/OiBudW1iZXI7XG4gIG9uQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIG9uUGluQ2xpY2s/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD47XG4gIHBpbm5hYmxlPzogYm9vbGVhbjtcbiAgZGlzYWJsZUNsb3NlPzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBsb2dvQ29tcG9uZW50PzogRWxlbWVudDtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD47XG4gIGlzVmlld3BvcnRVbnN5bmNBbGxvd2VkPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIE1hcENvbnRyb2xQYW5lbEZhY3RvcnkoKSB7XG4gIGNvbnN0IE1hcENvbnRyb2xQYW5lbDogUmVhY3QuRkM8TWFwQ29udHJvbFBhbmVsUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgICAoe1xuICAgICAgY2hpbGRyZW4sXG4gICAgICBoZWFkZXIsXG4gICAgICBwaW5uYWJsZSxcbiAgICAgIGRpc2FibGVDbG9zZSxcbiAgICAgIG9uUGluQ2xpY2ssXG4gICAgICBvbkNsaWNrLFxuICAgICAgc2NhbGUgPSAxLFxuICAgICAgaXNFeHBvcnQsXG4gICAgICBsb2dvQ29tcG9uZW50LFxuICAgICAgbWFwU3RhdGUsXG4gICAgICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQsXG4gICAgICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCxcbiAgICAgIGNsYXNzTmFtZSA9ICdtYXAtY29udHJvbC1wYW5lbCdcbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCB7aXNWaWV3cG9ydFN5bmNlZCwgaXNab29tTG9ja2VkfSA9IG1hcFN0YXRlIHx8IHt9O1xuICAgICAgY29uc3Qgb25VbmxvY2tWaWV3cG9ydENoYW5nZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0Py4oe2lzVmlld3BvcnRTeW5jZWQ6ICFpc1ZpZXdwb3J0U3luY2VkfSk7XG4gICAgICB9LCBbaXNWaWV3cG9ydFN5bmNlZCwgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0XSk7XG5cbiAgICAgIGNvbnN0IG9uU3luY1pvb21DaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD8uKHtpc1pvb21Mb2NrZWQ6ICFpc1pvb21Mb2NrZWR9KTtcbiAgICAgIH0sIFtpc1pvb21Mb2NrZWQsIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydF0pO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWFwQ29udHJvbFBhbmVsXG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHRyYW5zZm9ybTogYHNjYWxlKCR7c2NhbGV9KWAsXG4gICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHggIWltcG9ydGFudCdcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICA+XG4gICAgICAgICAge21hcFN0YXRlPy5pc1NwbGl0ICYmIGlzVmlld3BvcnRVbnN5bmNBbGxvd2VkID8gKFxuICAgICAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHM+XG4gICAgICAgICAgICAgIDxTdHlsZWRTQkNlbnRlckZsZXhib3ggc3R5bGU9e3twYWRkaW5nQm90dG9tOiAnNnB4J319PlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiVW5sb2NrIFZpZXdwb3J0XCIgLz5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRGlzYWJsZWFibGVTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyFtYXBTdGF0ZT8uaXNWaWV3cG9ydFN5bmNlZH1cbiAgICAgICAgICAgICAgICAgIGlkPVwidW5sb2NrLXZpZXdwb3J0LXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25VbmxvY2tWaWV3cG9ydENoYW5nZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZFNCQ2VudGVyRmxleGJveD5cbiAgICAgICAgICAgICAgPFN0eWxlZFNCQ2VudGVyRmxleGJveD5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRGlzYWJsZWFibGVUZXh0IGRpc2FibGVkPXttYXBTdGF0ZT8uaXNWaWV3cG9ydFN5bmNlZH0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIlN5bmMgWm9vbVwiIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWREaXNhYmxlYWJsZVRleHQ+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlU3dpdGNoXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXttYXBTdGF0ZT8uaXNab29tTG9ja2VkfVxuICAgICAgICAgICAgICAgICAgaWQ9XCJzeW5jLXpvb20tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblN5bmNab29tQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21hcFN0YXRlPy5pc1ZpZXdwb3J0U3luY2VkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkU0JDZW50ZXJGbGV4Ym94PlxuICAgICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlcj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgKGlzRXhwb3J0ICYmIGxvZ29Db21wb25lbnQgPyAoXG4gICAgICAgICAgICAgICAgbG9nb0NvbXBvbmVudFxuICAgICAgICAgICAgICApIDogaGVhZGVyID8gKFxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7dmVydGljYWxBbGlnbjogJ21pZGRsZSd9fT5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtoZWFkZXJ9IC8+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICApIDogbnVsbCkgYXMgUmVhY3QuUmVhY3ROb2RlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7aXNFeHBvcnQgPyBudWxsIDogKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIHtwaW5uYWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwaW4tbWFwLWNvbnRyb2wtaXRlbVwiIG9uQ2xpY2s9e29uUGluQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICA8UGluIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRJY29uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge2Rpc2FibGVDbG9zZSA/IG51bGwgOiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJjbG9zZS1tYXAtY29udHJvbC1pdGVtXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICAgICAgICAgIDxDbG9zZSBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXI+XG4gICAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnQgaXNFeHBvcnQ9e2lzRXhwb3J0fT5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L1N0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnQ+XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsPlxuICAgICAgKTtcbiAgICB9XG4gICk7XG5cbiAgTWFwQ29udHJvbFBhbmVsLmRpc3BsYXlOYW1lID0gJ01hcENvbnRyb2xQYW5lbCc7XG5cbiAgcmV0dXJuIE1hcENvbnRyb2xQYW5lbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwQ29udHJvbFBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFBc0MsSUFBQU8sZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVJ0QztBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFD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
|
|
140
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2ljb25zIiwiX3N3aXRjaCIsIl9jbGFzc25hbWVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcFBhbmVsQmFja2dyb3VuZENvbG9yIiwiU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudCIsImF0dHJzIiwiY2xhc3NOYW1lIiwic2lkZVBhbmVsU2Nyb2xsQmFyIiwibWFwQ29udHJvbCIsIndpZHRoIiwiaXNFeHBvcnQiLCJTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXIiLCJtYXBQYW5lbEhlYWRlckJhY2tncm91bmRDb2xvciIsImZvbnRGYW1pbHkiLCJ0aXRsZVRleHRDb2xvciIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHMiLCJTdHlsZWRTQkNlbnRlckZsZXhib3giLCJDZW50ZXJGbGV4Ym94IiwiU3R5bGVkRGlzYWJsZWFibGVUZXh0Iiwic3BhbiIsImRpc2FibGVkIiwiU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2giLCJTd2l0Y2giLCJTdHlsZWRJY29uIiwiSWNvblJvdW5kU21hbGwiLCJhY3RpdmVDb2xvciIsImZsb2F0aW5nQnRuQWN0Q29sb3IiLCJNYXBDb250cm9sUGFuZWxGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsIiwiUmVhY3QiLCJtZW1vIiwiX3JlZiIsImNoaWxkcmVuIiwiaGVhZGVyIiwicGlubmFibGUiLCJkaXNhYmxlQ2xvc2UiLCJvblBpbkNsaWNrIiwib25DbGljayIsIl9yZWYkc2NhbGUiLCJzY2FsZSIsImxvZ29Db21wb25lbnQiLCJtYXBTdGF0ZSIsIm9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiX3JlZiRjbGFzc05hbWUiLCJfcmVmMiIsImlzVmlld3BvcnRTeW5jZWQiLCJpc1pvb21Mb2NrZWQiLCJvblVubG9ja1ZpZXdwb3J0Q2hhbmdlIiwidXNlQ2FsbGJhY2siLCJvblN5bmNab29tQ2hhbmdlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwidHJhbnNmb3JtIiwiY29uY2F0IiwibWFyZ2luQm90dG9tIiwiY2xhc3NOYW1lcyIsImlzU3BsaXQiLCJwYWRkaW5nQm90dG9tIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwidmVydGljYWxBbGlnbiIsIkZyYWdtZW50IiwiUGluIiwiaGVpZ2h0IiwiQ2xvc2UiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWNvbnRyb2wtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94LCBJY29uUm91bmRTbWFsbH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Q2xvc2UsIFBpbn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge01hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWwgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsQmFja2dyb3VuZENvbG9yfTtcbiAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5gO1xuXG50eXBlIFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcyA9IHtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdtYXAtY29udHJvbF9fcGFuZWwtY29udGVudCdcbn0pPFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcz5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC53aWR0aH1weDtcbiAgb3ZlcmZsb3c6ICR7cHJvcHMgPT4gKHByb3BzLmlzRXhwb3J0ID8gJ2hpZGRlbicgOiAnb3ZlcmxheScpfTtcbmA7XG5cbnR5cGUgTWFwQ29udHJvbFBhbmVsSGVhZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbWFwLWNvbnRyb2xfX3BhbmVsLWhlYWRlcidcbn0pPE1hcENvbnRyb2xQYW5lbEhlYWRlclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsSGVhZGVyQmFja2dyb3VuZENvbG9yfTtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGl0bGVUZXh0Q29sb3J9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHMgPSBzdHlsZWQoU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyKS5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ21hcC1jb250cm9sX19wYW5lbC1zcGxpdC12aWV3cG9ydC10b29scydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBoZWlnaHQ6IHVuc2V0O1xuYDtcblxuY29uc3QgU3R5bGVkU0JDZW50ZXJGbGV4Ym94ID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZERpc2FibGVhYmxlVGV4dFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWREaXNhYmxlYWJsZVRleHQgPSBzdHlsZWQuc3BhbjxTdHlsZWREaXNhYmxlYWJsZVRleHRQcm9wcz5gXG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gMC40IDogMSl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuYDtcblxuY29uc3QgU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2ggPSBzdHlsZWQoU3dpdGNoKWBcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAwLjQgOiAxKX07XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG5gO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb25Sb3VuZFNtYWxsKWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZmxvYXRpbmdCdG5BY3RDb2xvcn07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcENvbnRyb2xQYW5lbFByb3BzID0ge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIHNjYWxlPzogbnVtYmVyO1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblBpbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBwaW5uYWJsZT86IGJvb2xlYW47XG4gIGRpc2FibGVDbG9zZT86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgbG9nb0NvbXBvbmVudD86IEVsZW1lbnQ7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBNYXBDb250cm9sUGFuZWxGYWN0b3J5KCkge1xuICBjb25zdCBNYXBDb250cm9sUGFuZWw6IFJlYWN0LkZDPE1hcENvbnRyb2xQYW5lbFByb3BzPiA9IFJlYWN0Lm1lbW8oXG4gICAgKHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGVhZGVyLFxuICAgICAgcGlubmFibGUsXG4gICAgICBkaXNhYmxlQ2xvc2UsXG4gICAgICBvblBpbkNsaWNrLFxuICAgICAgb25DbGljayxcbiAgICAgIHNjYWxlID0gMSxcbiAgICAgIGlzRXhwb3J0LFxuICAgICAgbG9nb0NvbXBvbmVudCxcbiAgICAgIG1hcFN0YXRlLFxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0LFxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQsXG4gICAgICBjbGFzc05hbWUgPSAnbWFwLWNvbnRyb2wtcGFuZWwnXG4gICAgfSkgPT4ge1xuICAgICAgY29uc3Qge2lzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZH0gPSBtYXBTdGF0ZSB8fCB7fTtcbiAgICAgIGNvbnN0IG9uVW5sb2NrVmlld3BvcnRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD8uKHtpc1ZpZXdwb3J0U3luY2VkOiAhaXNWaWV3cG9ydFN5bmNlZH0pO1xuICAgICAgfSwgW2lzVmlld3BvcnRTeW5jZWQsIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydF0pO1xuXG4gICAgICBjb25zdCBvblN5bmNab29tQ2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/Lih7aXNab29tTG9ja2VkOiAhaXNab29tTG9ja2VkfSk7XG4gICAgICB9LCBbaXNab29tTG9ja2VkLCBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnRdKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbFxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IGBzY2FsZSgke3NjYWxlfSlgLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnOHB4ICFpbXBvcnRhbnQnXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ21hcC1jb250cm9sLXBhbmVsJywgY2xhc3NOYW1lKX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBTdGF0ZT8uaXNTcGxpdCAmJiBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzPlxuICAgICAgICAgICAgICA8U3R5bGVkU0JDZW50ZXJGbGV4Ym94IHN0eWxlPXt7cGFkZGluZ0JvdHRvbTogJzZweCd9fT5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIlVubG9jayBWaWV3cG9ydFwiIC8+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlU3dpdGNoXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXshbWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9XG4gICAgICAgICAgICAgICAgICBpZD1cInVubG9jay12aWV3cG9ydC10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVW5sb2NrVmlld3BvcnRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgIDxTdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlVGV4dCBkaXNhYmxlZD17bWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9PlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJTeW5jIFpvb21cIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRGlzYWJsZWFibGVUZXh0PlxuICAgICAgICAgICAgICAgIDxTdHlsZWREaXNhYmxlYWJsZVN3aXRjaFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bWFwU3RhdGU/LmlzWm9vbUxvY2tlZH1cbiAgICAgICAgICAgICAgICAgIGlkPVwic3luYy16b29tLXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25TeW5jWm9vbUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttYXBTdGF0ZT8uaXNWaWV3cG9ydFN5bmNlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZFNCQ2VudGVyRmxleGJveD5cbiAgICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyU3BsaXRWaWV3cG9ydHNUb29scz5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIChpc0V4cG9ydCAmJiBsb2dvQ29tcG9uZW50ID8gKFxuICAgICAgICAgICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgICAgICAgICAgKSA6IGhlYWRlciA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17e3ZlcnRpY2FsQWxpZ246ICdtaWRkbGUnfX0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aGVhZGVyfSAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGwpIGFzIFJlYWN0LlJlYWN0Tm9kZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2lzRXhwb3J0ID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cGlubmFibGUgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicGluLW1hcC1jb250cm9sLWl0ZW1cIiBvbkNsaWNrPXtvblBpbkNsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgPFBpbiBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtkaXNhYmxlQ2xvc2UgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwiY2xvc2UtbWFwLWNvbnRyb2wtaXRlbVwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICA8Q2xvc2UgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyPlxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50IGlzRXhwb3J0PXtpc0V4cG9ydH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50PlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRyb2xQYW5lbD5cbiAgICAgICk7XG4gICAgfVxuICApO1xuXG4gIE1hcENvbnRyb2xQYW5lbC5kaXNwbGF5TmFtZSA9ICdNYXBDb250cm9sUGFuZWwnO1xuXG4gIHJldHVybiBNYXBDb250cm9sUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxrQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQU8sV0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQW9DLElBQUFRLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFYcEM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFB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
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseComponentProps } from '../types';
|
|
3
|
+
declare function MapControlToolbar(): import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("styled-components/dist/types").FastOmit<{
|
|
4
|
+
show?: boolean | undefined;
|
|
5
|
+
} & import("react").HTMLAttributes<unknown> & {
|
|
6
|
+
children?: import("react").ReactNode;
|
|
7
|
+
}, "show" | keyof import("react").HTMLAttributes<unknown>> & {
|
|
8
|
+
show?: boolean | undefined;
|
|
9
|
+
} & import("react").HTMLAttributes<unknown> & {
|
|
10
|
+
children?: import("react").ReactNode;
|
|
11
|
+
}, BaseComponentProps>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<{
|
|
12
|
+
show?: boolean | undefined;
|
|
13
|
+
} & import("react").HTMLAttributes<unknown> & {
|
|
14
|
+
children?: import("react").ReactNode;
|
|
15
|
+
}, import("../common/toolbar").ToolbarProps>> & Omit<import("styled-components").IStyledComponent<"web", import("../common/toolbar").ToolbarProps>, keyof import("react").Component<any, {}, any>>, keyof import("react").Component<any, {}, any>>;
|
|
2
16
|
export default MapControlToolbar;
|