@kepler.gl/components 3.3.0-alpha.6 → 3.3.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/common/data-table/cell-size.js +40 -23
- package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
- package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
- package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
- package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
- package/dist/cjs/common/data-table/header-cell.js +123 -44
- package/dist/cjs/common/data-table/index.js +102 -29
- package/dist/cjs/common/histogram-plot.js +1 -1
- package/dist/cjs/common/icons/{arrow-down-solid.js → draw-point.js} +21 -11
- package/dist/cjs/common/icons/index.js +15 -1
- package/dist/cjs/common/icons/line-string.js +60 -0
- package/dist/cjs/common/toolbar-item.js +24 -3
- package/dist/cjs/editor/editor.js +26 -8
- package/dist/cjs/editor/feature-action-panel.js +34 -12
- package/dist/cjs/editor/feature-properties-editor.js +215 -0
- package/dist/cjs/editor/filter-feature-badges.js +92 -0
- package/dist/cjs/index.js +33 -1
- package/dist/cjs/kepler-gl.js +20 -3
- package/dist/cjs/map/map-control-toolbar.js +2 -2
- package/dist/cjs/map/map-control.js +13 -7
- package/dist/cjs/map/map-draw-panel.js +65 -15
- package/dist/cjs/map/theme-toggle-button.js +64 -0
- package/dist/cjs/map-container.js +16 -5
- package/dist/cjs/modal-container.js +2 -1
- package/dist/cjs/modals/cloud-components/cloud-item.js +55 -7
- package/dist/cjs/modals/cloud-components/cloud-item.spec.js +75 -3
- package/dist/cjs/modals/cloud-components/cloud-maps.js +2 -1
- package/dist/cjs/modals/cloud-tile.js +52 -38
- package/dist/cjs/modals/data-table-modal.js +37 -25
- package/dist/cjs/modals/export-video-modal.js +28 -1
- package/dist/cjs/modals/export-video-modal.spec.js +56 -10
- package/dist/cjs/modals/globe-export-video-container.js +19 -3
- package/dist/cjs/modals/globe-export-video-preview.js +25 -7
- package/dist/cjs/modals/hubble-utils.js +8 -3
- package/dist/cjs/modals/swipe-composite-utils.js +9 -1
- package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
- package/dist/cjs/modals/swipe-export-video-preview.js +9 -5
- package/dist/cjs/side-panel/layer-manager.js +11 -3
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +11 -3
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +74 -31
- package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +90 -25
- package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
- package/dist/common/data-table/column-statistics-components.d.ts +31 -0
- package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
- package/dist/common/data-table/column-statistics-time.d.ts +19 -0
- package/dist/common/data-table/header-cell.d.ts +7 -5
- package/dist/common/data-table/index.d.ts +7 -24
- package/dist/common/histogram-plot.d.ts +24 -1
- package/dist/common/icons/{arrow-down-solid.d.ts → draw-point.d.ts} +2 -1
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/line-string.d.ts +10 -0
- package/dist/common/toolbar-item.d.ts +2 -0
- package/dist/editor/editor.d.ts +1 -0
- package/dist/editor/feature-action-panel.d.ts +1 -0
- package/dist/editor/feature-properties-editor.d.ts +8 -0
- package/dist/editor/filter-feature-badges.d.ts +12 -0
- package/dist/esm/common/data-table/cell-size.js +40 -23
- package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
- package/dist/esm/common/data-table/column-statistics-components.js +59 -0
- package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
- package/dist/esm/common/data-table/column-statistics-time.js +60 -0
- package/dist/esm/common/data-table/header-cell.js +125 -46
- package/dist/esm/common/data-table/index.js +102 -29
- package/dist/esm/common/histogram-plot.js +1 -1
- package/dist/esm/common/icons/draw-point.js +44 -0
- package/dist/esm/common/icons/index.js +3 -1
- package/dist/esm/common/icons/line-string.js +54 -0
- package/dist/esm/common/toolbar-item.js +24 -3
- package/dist/esm/editor/editor.js +26 -8
- package/dist/esm/editor/feature-action-panel.js +37 -15
- package/dist/esm/editor/feature-properties-editor.js +208 -0
- package/dist/esm/editor/filter-feature-badges.js +85 -0
- package/dist/esm/index.js +5 -1
- package/dist/esm/kepler-gl.js +20 -3
- package/dist/esm/map/map-control-toolbar.js +2 -2
- package/dist/esm/map/map-control.js +13 -7
- package/dist/esm/map/map-draw-panel.js +63 -11
- package/dist/esm/map/theme-toggle-button.js +55 -0
- package/dist/esm/map-container.js +16 -5
- package/dist/esm/modal-container.js +2 -1
- package/dist/esm/modals/cloud-components/cloud-item.js +53 -7
- package/dist/esm/modals/cloud-components/cloud-item.spec.js +76 -4
- package/dist/esm/modals/cloud-components/cloud-maps.js +2 -1
- package/dist/esm/modals/cloud-tile.js +52 -38
- package/dist/esm/modals/data-table-modal.js +38 -26
- package/dist/esm/modals/export-video-modal.js +29 -2
- package/dist/esm/modals/export-video-modal.spec.js +56 -10
- package/dist/esm/modals/globe-export-video-container.js +20 -4
- package/dist/esm/modals/globe-export-video-preview.js +26 -8
- package/dist/esm/modals/hubble-utils.js +8 -3
- package/dist/esm/modals/swipe-composite-utils.js +9 -1
- package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
- package/dist/esm/modals/swipe-export-video-preview.js +8 -4
- package/dist/esm/side-panel/layer-manager.js +11 -3
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +11 -3
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +74 -31
- package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +90 -25
- package/dist/index.d.ts +8 -0
- package/dist/kepler-gl.d.ts +3 -0
- package/dist/map/map-control.d.ts +6 -2
- package/dist/map/map-draw-panel.d.ts +1 -0
- package/dist/map/theme-toggle-button.d.ts +18 -0
- package/dist/map-container.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
- package/dist/modals/data-table-modal.d.ts +1 -0
- package/dist/modals/globe-export-video-container.d.ts +2 -0
- package/dist/modals/globe-export-video-preview.d.ts +3 -0
- package/dist/modals/hubble-utils.d.ts +2 -1
- package/dist/modals/swipe-composite-utils.d.ts +1 -1
- package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
- package/package.json +20 -20
- package/dist/cjs/modals/cloud-components/provider-loading.js +0 -20
- package/dist/cjs/modals/storage-map-viewer.js +0 -98
- package/dist/cjs/side-panel/cloud-storage-dropdown.js +0 -40
- package/dist/esm/common/icons/arrow-down-solid.js +0 -34
- package/dist/esm/modals/cloud-components/provider-loading.js +0 -15
- package/dist/esm/modals/storage-map-viewer.js +0 -93
- package/dist/esm/side-panel/cloud-storage-dropdown.js +0 -33
- package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
- package/dist/modals/storage-map-viewer.d.ts +0 -21
- package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
|
@@ -18,7 +18,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
18
18
|
var _react2 = _interopRequireDefault(require("@deck.gl/react"));
|
|
19
19
|
var _maplibre = _interopRequireWildcard(require("react-map-gl/maplibre"));
|
|
20
20
|
var _mapbox = require("@deck.gl/mapbox");
|
|
21
|
-
var
|
|
21
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
22
22
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
23
23
|
var _react3 = require("@hubble.gl/react");
|
|
24
24
|
var _swipeCompositeUtils = require("./swipe-composite-utils");
|
|
@@ -150,7 +150,7 @@ var SwipeExportVideoPreview = exports.SwipeExportVideoPreview = /*#__PURE__*/fun
|
|
|
150
150
|
return (0, _createClass2["default"])(SwipeExportVideoPreview, [{
|
|
151
151
|
key: "componentDidUpdate",
|
|
152
152
|
value: function componentDidUpdate(prevProps) {
|
|
153
|
-
if (!(0,
|
|
153
|
+
if (!(0, _isEqual["default"])(prevProps.resolution, this.props.resolution)) {
|
|
154
154
|
this._resizeVideo();
|
|
155
155
|
}
|
|
156
156
|
if (prevProps.currentTimeMs !== this.props.currentTimeMs || prevProps.swipeStartPct !== this.props.swipeStartPct || prevProps.swipeEndPct !== this.props.swipeEndPct || prevProps.swipeEasing !== this.props.swipeEasing) {
|
|
@@ -222,12 +222,15 @@ var SwipeExportVideoPreview = exports.SwipeExportVideoPreview = /*#__PURE__*/fun
|
|
|
222
222
|
}, {
|
|
223
223
|
key: "_compositeFrame",
|
|
224
224
|
value: function _compositeFrame() {
|
|
225
|
+
var _this$props$mapData, _globe$config;
|
|
225
226
|
var leftCanvas = this._getLeftCanvas();
|
|
226
227
|
var rightCanvas = this._getRightCanvas();
|
|
227
228
|
var outputCanvas = this.compositeCanvasRef.current;
|
|
228
229
|
if (!leftCanvas || !rightCanvas || !outputCanvas) return;
|
|
229
230
|
var percentage = this._getCurrentSwipePercentage();
|
|
230
|
-
(
|
|
231
|
+
var globe = (_this$props$mapData = this.props.mapData) === null || _this$props$mapData === void 0 || (_this$props$mapData = _this$props$mapData.mapState) === null || _this$props$mapData === void 0 ? void 0 : _this$props$mapData.globe;
|
|
232
|
+
var showStars = Boolean((globe === null || globe === void 0 ? void 0 : globe.enabled) && (globe === null || globe === void 0 || (_globe$config = globe.config) === null || _globe$config === void 0 ? void 0 : _globe$config.stars));
|
|
233
|
+
(0, _swipeCompositeUtils.compositeSwipeFrame)(leftCanvas, rightCanvas, outputCanvas, percentage, true, this.props.backgroundColor, showStars);
|
|
231
234
|
}
|
|
232
235
|
}, {
|
|
233
236
|
key: "_areLayersLoaded",
|
|
@@ -268,7 +271,8 @@ var SwipeExportVideoPreview = exports.SwipeExportVideoPreview = /*#__PURE__*/fun
|
|
|
268
271
|
return (0, _hubbleUtils.getGlobeExportLayers)(mapData, {
|
|
269
272
|
mapIndex: mapIndex,
|
|
270
273
|
mapboxApiAccessToken: mapProps === null || mapProps === void 0 ? void 0 : mapProps.mapboxApiAccessToken,
|
|
271
|
-
mapboxApiUrl: mapProps === null || mapProps === void 0 ? void 0 : mapProps.mapboxApiUrl
|
|
274
|
+
mapboxApiUrl: mapProps === null || mapProps === void 0 ? void 0 : mapProps.mapboxApiUrl,
|
|
275
|
+
viewState: viewState
|
|
272
276
|
});
|
|
273
277
|
}
|
|
274
278
|
if (deckProps && deckProps.layers) {
|
|
@@ -388,4 +392,4 @@ var SwipeExportVideoPreview = exports.SwipeExportVideoPreview = /*#__PURE__*/fun
|
|
|
388
392
|
}
|
|
389
393
|
}]);
|
|
390
394
|
}(_react.Component);
|
|
391
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9tYXBsaWJyZSIsIl9tYXBib3giLCJfbG9kYXNoIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfcmVhY3QzIiwiX3N3aXBlQ29tcG9zaXRlVXRpbHMiLCJfaHViYmxlVXRpbHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsInNldFJlZiIsInJlZiIsInZhbHVlIiwiY3VycmVudCIsIkRlY2tHTE92ZXJsYXkiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJvdmVybGF5IiwidXNlQ29udHJvbCIsIk1hcGJveE92ZXJsYXkiLCJpbnRlcmxlYXZlZCIsInNldFByb3BzIiwiX2RlY2siLCJkaXNwbGF5TmFtZSIsIlByZXZpZXdDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIiR3aWR0aCIsIiRoZWlnaHQiLCJWaXNpYmxlQ2FudmFzIiwiY2FudmFzIiwiTWFwTGF5ZXIiLCJTd2lwZUV4cG9ydFZpZGVvUHJldmlldyIsImV4cG9ydHMiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJwcm9jZWVkVG9OZXh0RnJhbWUiLCJsZWZ0TG9hZGVkIiwiX2FyZUxheWVyc0xvYWRlZCIsInJpZ2h0TG9hZGVkIiwibGVmdFRpbGVzUmVhZHkiLCJkaXNhYmxlQmFzZU1hcCIsImxlZnRNYXBSZWYiLCJnZXRNYXAiLCJhcmVUaWxlc0xvYWRlZCIsInJpZ2h0VGlsZXNSZWFkeSIsInJpZ2h0TWFwUmVmIiwiX2NvbXBvc2l0ZUZyYW1lIiwiX3RoaXMkbGVmdE1hcFJlZiRjdXJyIiwibWFwIiwib24iLCJzdGF0ZSIsImxlZnRSZWFkeSIsInNldFN0YXRlIiwiX3RyeUNvbXBvc2l0ZSIsIl90aGlzJHJpZ2h0TWFwUmVmJGN1ciIsInJpZ2h0UmVhZHkiLCJzaWRlIiwicmVhZHlLZXkiLCJsZWZ0RGVja1JlZiIsInJpZ2h0RGVja1JlZiIsIl9yZXNpemVWaWRlbyIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiaXNFcXVhbCIsInJlc29sdXRpb24iLCJjdXJyZW50VGltZU1zIiwic3dpcGVTdGFydFBjdCIsInN3aXBlRW5kUGN0Iiwic3dpcGVFYXNpbmciLCJfdGhpcyRwcm9wcyIsImV4cG9ydFZpZGVvV2lkdGgiLCJfc2V0RGV2aWNlUGl4ZWxSYXRpbyIsImRldmljZVBpeGVsUmF0aW8iLCJ3aW5kb3ciLCJfZ2V0Q29udGFpbmVyIiwiX3RoaXMkcHJvcHMyIiwiYXNwZWN0UmF0aW8iLCJoZWlnaHQiLCJ3aWR0aCIsIl9nZXRDdXJyZW50U3dpcGVQZXJjZW50YWdlIiwiX3RoaXMkcHJvcHMzIiwiZHVyYXRpb25NcyIsImdldFN3aXBlUGVyY2VudGFnZUF0VGltZSIsIl9nZXRMZWZ0Q2FudmFzIiwiZ2V0Q2FudmFzIiwiX2dldENhbnZhcyIsIl9yZWYiLCJfZ2V0UmlnaHRDYW52YXMiLCJfZ2V0Q2FudmFzMiIsIl9yZWYyIiwibGVmdENhbnZhcyIsInJpZ2h0Q2FudmFzIiwib3V0cHV0Q2FudmFzIiwiY29tcG9zaXRlQ2FudmFzUmVmIiwicGVyY2VudGFnZSIsImNvbXBvc2l0ZVN3aXBlRnJhbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkZWNrUmVmIiwibGF5ZXJzIiwiZXZlcnkiLCJsYXllciIsImlzTG9hZGVkIiwiZ2V0Q29tcG9zaXRlQ2FudmFzIiwiX2NyZWF0ZUxheWVycyIsIm1hcEluZGV4IiwiYmVmb3JlSWQiLCJfbWFwRGF0YSRtYXBTdGF0ZSIsIl90aGlzJHByb3BzNCIsImRlY2tQcm9wcyIsIm1hcERhdGEiLCJ2aWV3U3RhdGUiLCJtYXBQcm9wcyIsIm1hcFN0YXRlIiwiZ2xvYmUiLCJlbmFibGVkIiwiZ2V0R2xvYmVFeHBvcnRMYXllcnMiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsImNsb25lIiwiaWQiLCJjb25jYXQiLCJjcmVhdGVLZXBsZXJMYXllcnMiLCJfcmVuZGVyTWFwQ2FudmFzIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHM1IiwiYWRhcHRlciIsIm1hcGJveExheWVyQmVmb3JlSWQiLCJfdGhpcyRfZ2V0Q29udGFpbmVyIiwia2VwbGVyTGF5ZXJzIiwibWFwUmVmIiwib25NYXBMb2FkIiwiX29uTGVmdE1hcExvYWQiLCJfb25SaWdodE1hcExvYWQiLCJkZWNrIiwiYWRhcHRlclByb3BzIiwiZ2V0UHJvcHMiLCJleHRyYVByb3BzIiwiYWRhcHRlck9uQWZ0ZXJSZW5kZXIiLCJvbkFmdGVyUmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImRldmljZVByb3BzIiwiRVhQT1JUX0RFQ0tfREVWSUNFX1BST1BTIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJfcmVmMyIsInZzIiwic2V0Vmlld1N0YXRlIiwicGFyYW1zIiwiX29uRGVja1JlbmRlciIsIl9yZWY1IiwibWFwU3R5bGVGcm9tUHJvcHMiLCJtYXBTdHlsZSIsIm1hcExpYiIsInRyYW5zZm9ybVJlcXVlc3QiLCJzdHlsZSIsImFudGlhbGlhcyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsIm9uTG9hZCIsIkVYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QUyIsInJlbmRlciIsIl90aGlzJF9nZXRDb250YWluZXIyIiwiQ29tcG9uZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9zd2lwZS1leHBvcnQtdmlkZW8tcHJldmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBSZWZPYmplY3QsIGZvcndhcmRSZWYsIEZvcndhcmRlZFJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQgUmVhY3RNYXBHTCwge3R5cGUgTWFwUmVmLCB1c2VDb250cm9sfSBmcm9tICdyZWFjdC1tYXAtZ2wvbWFwbGlicmUnO1xuLy8gQHRzLWlnbm9yZSBtb2R1bGUgcmVzb2x1dGlvbiBtaXNtYXRjaCB3aXRoIG1vZHVsZVJlc29sdXRpb246XCJub2RlXCJcbmltcG9ydCB7TWFwYm94T3ZlcmxheX0gZnJvbSAnQGRlY2suZ2wvbWFwYm94JztcbmltcG9ydCB0eXBlIHtEZWNrLCBEZWNrUHJvcHMsIE1hcFZpZXdTdGF0ZX0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2guaXNlcXVhbCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtEZWNrQWRhcHRlcn0gZnJvbSAnQGh1YmJsZS5nbC9jb3JlJztcbmltcG9ydCB7Y3JlYXRlS2VwbGVyTGF5ZXJzfSBmcm9tICdAaHViYmxlLmdsL3JlYWN0JztcbmltcG9ydCB7Y29tcG9zaXRlU3dpcGVGcmFtZSwgZ2V0U3dpcGVQZXJjZW50YWdlQXRUaW1lLCBTd2lwZUVhc2luZ30gZnJvbSAnLi9zd2lwZS1jb21wb3NpdGUtdXRpbHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0RFQ0tfREVWSUNFX1BST1BTLFxuICBFWFBPUlRfT1ZFUkxBWV9ERVZJQ0VfUFJPUFMsXG4gIGdldEdsb2JlRXhwb3J0TGF5ZXJzXG59IGZyb20gJy4vaHViYmxlLXV0aWxzJztcblxuZnVuY3Rpb24gc2V0UmVmPFQ+KHJlZjogUmVhY3QuUmVmPFQ+IHwgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxUPiwgdmFsdWU6IFQpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2UgaWYgKHJlZikge1xuICAgIChyZWYgYXMgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxUPikuY3VycmVudCA9IHZhbHVlO1xuICB9XG59XG5cbmNvbnN0IERlY2tHTE92ZXJsYXkgPSBmb3J3YXJkUmVmPERlY2ssIGFueT4oXG4gIChwcm9wczogYW55LCByZWY6IEZvcndhcmRlZFJlZjxEZWNrPikgPT4ge1xuICAgIGNvbnN0IG92ZXJsYXkgPSB1c2VDb250cm9sPE1hcGJveE92ZXJsYXk+KCgpID0+IG5ldyBNYXBib3hPdmVybGF5KHsuLi5wcm9wcywgaW50ZXJsZWF2ZWQ6IHRydWV9KSk7XG4gICAgb3ZlcmxheS5zZXRQcm9wcyhwcm9wcyk7XG4gICAgc2V0UmVmKHJlZiwgKG92ZXJsYXkgYXMgYW55KS5fZGVjayk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbik7XG5EZWNrR0xPdmVybGF5LmRpc3BsYXlOYW1lID0gJ0RlY2tHTE92ZXJsYXknO1xuXG5jb25zdCBQcmV2aWV3Q29udGFpbmVyID0gc3R5bGVkLmRpdjx7JHdpZHRoOiBudW1iZXI7ICRoZWlnaHQ6IG51bWJlcn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy4kd2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy4kaGVpZ2h0fXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBWaXNpYmxlQ2FudmFzID0gc3R5bGVkLmNhbnZhczx7JHdpZHRoOiBudW1iZXI7ICRoZWlnaHQ6IG51bWJlcn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy4kd2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy4kaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuYDtcblxuY29uc3QgTWFwTGF5ZXIgPSBzdHlsZWQuZGl2PHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMDtcbmA7XG5cbmV4cG9ydCB0eXBlIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMgPSB7XG4gIG1hcERhdGE6IGFueTtcbiAgcmVzb2x1dGlvbjogW251bWJlciwgbnVtYmVyXTtcbiAgZXhwb3J0VmlkZW9XaWR0aDogbnVtYmVyO1xuICBkaXNhYmxlQmFzZU1hcDogYm9vbGVhbjtcbiAgZGVja1Byb3BzPzogRGVja1Byb3BzO1xuICB2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZTtcbiAgYWRhcHRlcjogRGVja0FkYXB0ZXI7XG4gIG1hcGJveExheWVyQmVmb3JlSWQ/OiBzdHJpbmc7XG4gIHJlbmRlcmluZzogYm9vbGVhbjtcbiAgc2F2aW5nOiBib29sZWFuO1xuICBzZXRWaWV3U3RhdGU6ICh2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZSkgPT4gdm9pZDtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBtYXBQcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHN3aXBlU3RhcnRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFbmRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFYXNpbmc6IFN3aXBlRWFzaW5nO1xuICBjdXJyZW50VGltZU1zOiBudW1iZXI7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbn07XG5cbnR5cGUgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdTdGF0ZSA9IHtcbiAgbGVmdFJlYWR5OiBib29sZWFuO1xuICByaWdodFJlYWR5OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBIGR1YWwtY2FudmFzIHZpZGVvIGV4cG9ydCBwcmV2aWV3IHRoYXQgcmVuZGVycyBsZWZ0L3JpZ2h0IHNwbGl0IG1hcCBsYXllcnNcbiAqIGFuZCBjb21wb3NpdGVzIHRoZW0gd2l0aCBhbiBhbmltYXRlZCBzd2lwZSBkaXZpZGVyLlxuICovXG5leHBvcnQgY2xhc3MgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXcgZXh0ZW5kcyBDb21wb25lbnQ8XG4gIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMsXG4gIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3U3RhdGVcbj4ge1xuICBsZWZ0TWFwUmVmOiBSZWZPYmplY3Q8TWFwUmVmIHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8TWFwUmVmIHwgbnVsbD4oKTtcbiAgcmlnaHRNYXBSZWY6IFJlZk9iamVjdDxNYXBSZWYgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxNYXBSZWYgfCBudWxsPigpO1xuICBsZWZ0RGVja1JlZjogUmVmT2JqZWN0PERlY2sgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxEZWNrIHwgbnVsbD4oKTtcbiAgcmlnaHREZWNrUmVmOiBSZWZPYmplY3Q8RGVjayB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPERlY2sgfCBudWxsPigpO1xuICBjb21wb3NpdGVDYW52YXNSZWY6IFJlZk9iamVjdDxIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBsZWZ0UmVhZHk6IGZhbHNlLFxuICAgICAgcmlnaHRSZWFkeTogZmFsc2VcbiAgICB9O1xuXG4gICAgdGhpcy5fcmVzaXplVmlkZW8oKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMpIHtcbiAgICBpZiAoIWlzRXF1YWwocHJldlByb3BzLnJlc29sdXRpb24sIHRoaXMucHJvcHMucmVzb2x1dGlvbikpIHtcbiAgICAgIHRoaXMuX3Jlc2l6ZVZpZGVvKCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJldlByb3BzLmN1cnJlbnRUaW1lTXMgIT09IHRoaXMucHJvcHMuY3VycmVudFRpbWVNcyB8fFxuICAgICAgcHJldlByb3BzLnN3aXBlU3RhcnRQY3QgIT09IHRoaXMucHJvcHMuc3dpcGVTdGFydFBjdCB8fFxuICAgICAgcHJldlByb3BzLnN3aXBlRW5kUGN0ICE9PSB0aGlzLnByb3BzLnN3aXBlRW5kUGN0IHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVFYXNpbmcgIT09IHRoaXMucHJvcHMuc3dpcGVFYXNpbmdcbiAgICApIHtcbiAgICAgIHRoaXMuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgfVxuICB9XG5cbiAgX3Jlc2l6ZVZpZGVvKCkge1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRoLCByZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgdGhpcy5fc2V0RGV2aWNlUGl4ZWxSYXRpbyhyZXNvbHV0aW9uWzBdIC8gZXhwb3J0VmlkZW9XaWR0aCk7XG4gIH1cblxuICBfc2V0RGV2aWNlUGl4ZWxSYXRpbyhkZXZpY2VQaXhlbFJhdGlvOiBudW1iZXIpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgd2luZG93LmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VQaXhlbFJhdGlvO1xuICB9XG5cbiAgX2dldENvbnRhaW5lcigpIHtcbiAgICBjb25zdCB7ZXhwb3J0VmlkZW9XaWR0aCwgcmVzb2x1dGlvbn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGFzcGVjdFJhdGlvID0gcmVzb2x1dGlvblswXSAvIHJlc29sdXRpb25bMV07XG4gICAgcmV0dXJuIHtoZWlnaHQ6IGV4cG9ydFZpZGVvV2lkdGggLyBhc3BlY3RSYXRpbywgd2lkdGg6IGV4cG9ydFZpZGVvV2lkdGh9O1xuICB9XG5cbiAgX2dldEN1cnJlbnRTd2lwZVBlcmNlbnRhZ2UoKTogbnVtYmVyIHtcbiAgICBjb25zdCB7Y3VycmVudFRpbWVNcywgZHVyYXRpb25Ncywgc3dpcGVTdGFydFBjdCwgc3dpcGVFbmRQY3QsIHN3aXBlRWFzaW5nfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGdldFN3aXBlUGVyY2VudGFnZUF0VGltZShjdXJyZW50VGltZU1zLCBkdXJhdGlvbk1zLCBzd2lwZVN0YXJ0UGN0LCBzd2lwZUVuZFBjdCwgc3dpcGVFYXNpbmcpO1xuICB9XG5cbiAgX2dldExlZnRDYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmxlZnRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5nZXRDYW52YXMoKTtcbiAgICB9XG4gICAgLy8gRmFsbGJhY2s6IERlY2tHTCBjYW52YXMgKG5vIGJhc2VtYXAgbW9kZSlcbiAgICBpZiAodGhpcy5sZWZ0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gKHRoaXMubGVmdERlY2tSZWYuY3VycmVudCBhcyBhbnkpLmdldENhbnZhcz8uKCkgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfZ2V0UmlnaHRDYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yaWdodE1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmdldENhbnZhcygpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yaWdodERlY2tSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuICh0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50IGFzIGFueSkuZ2V0Q2FudmFzPy4oKSB8fCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9jb21wb3NpdGVGcmFtZSgpIHtcbiAgICBjb25zdCBsZWZ0Q2FudmFzID0gdGhpcy5fZ2V0TGVmdENhbnZhcygpO1xuICAgIGNvbnN0IHJpZ2h0Q2FudmFzID0gdGhpcy5fZ2V0UmlnaHRDYW52YXMoKTtcbiAgICBjb25zdCBvdXRwdXRDYW52YXMgPSB0aGlzLmNvbXBvc2l0ZUNhbnZhc1JlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFsZWZ0Q2FudmFzIHx8ICFyaWdodENhbnZhcyB8fCAhb3V0cHV0Q2FudmFzKSByZXR1cm47XG5cbiAgICBjb25zdCBwZXJjZW50YWdlID0gdGhpcy5fZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSgpO1xuICAgIGNvbXBvc2l0ZVN3aXBlRnJhbWUoXG4gICAgICBsZWZ0Q2FudmFzLFxuICAgICAgcmlnaHRDYW52YXMsXG4gICAgICBvdXRwdXRDYW52YXMsXG4gICAgICBwZXJjZW50YWdlLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHBhcmVudCBjb250YWluZXIncyBhZGFwdGVyIGFmdGVyIGVhY2ggcmVuZGVyLlxuICAgKiBXZSBuZWVkIGJvdGggbWFwcyB0byBiZSBsb2FkZWQgYmVmb3JlIGNvbXBvc2l0aW5nIGFuZCBjYXB0dXJpbmcuXG4gICAqL1xuICBvbkFmdGVyUmVuZGVyID0gKHByb2NlZWRUb05leHRGcmFtZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IGxlZnRMb2FkZWQgPSB0aGlzLl9hcmVMYXllcnNMb2FkZWQoJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodExvYWRlZCA9IHRoaXMuX2FyZUxheWVyc0xvYWRlZCgncmlnaHQnKTtcbiAgICBjb25zdCBsZWZ0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLmxlZnRNYXBSZWYuY3VycmVudCB8fCB0aGlzLmxlZnRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5hcmVUaWxlc0xvYWRlZCgpO1xuICAgIGNvbnN0IHJpZ2h0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQgfHwgdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmFyZVRpbGVzTG9hZGVkKCk7XG5cbiAgICBpZiAobGVmdExvYWRlZCAmJiByaWdodExvYWRlZCAmJiBsZWZ0VGlsZXNSZWFkeSAmJiByaWdodFRpbGVzUmVhZHkpIHtcbiAgICAgIHRoaXMuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgICBwcm9jZWVkVG9OZXh0RnJhbWUoKTtcbiAgICB9XG4gIH07XG5cbiAgX2FyZUxheWVyc0xvYWRlZChzaWRlOiAnbGVmdCcgfCAncmlnaHQnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVja1JlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdERlY2tSZWYgOiB0aGlzLnJpZ2h0RGVja1JlZjtcbiAgICBpZiAoIWRlY2tSZWYuY3VycmVudCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGxheWVycyA9IGRlY2tSZWYuY3VycmVudC5wcm9wcy5sYXllcnMgfHwgW107XG4gICAgcmV0dXJuIGxheWVycy5ldmVyeSgobGF5ZXI6IGFueSkgPT4gbGF5ZXIuaXNMb2FkZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29tcG9zaXRlZCBjYW52YXMgZWxlbWVudCBmb3IgdmlkZW8gY2FwdHVyZS5cbiAgICovXG4gIGdldENvbXBvc2l0ZUNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2l0ZUNhbnZhc1JlZi5jdXJyZW50O1xuICB9XG5cbiAgX2NyZWF0ZUxheWVycyhtYXBJbmRleDogbnVtYmVyLCBiZWZvcmVJZD86IHN0cmluZykge1xuICAgIGNvbnN0IHtkZWNrUHJvcHMsIG1hcERhdGEsIHZpZXdTdGF0ZSwgZGlzYWJsZUJhc2VNYXAsIG1hcFByb3BzfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyBHbG9iZSBzd2lwZTogYnVpbGQgYSBmcmVzaCBzZXQgb2YgZ2xvYmUgbGF5ZXJzIHBlciBzaWRlLiBFYWNoIHNpZGUgaXMgYVxuICAgIC8vIHNlcGFyYXRlIERlY2ssIHNvIGl0IG5lZWRzIGl0cyBPV04gTGF5ZXIgaW5zdGFuY2VzIChkZWNrLmdsIExheWVyIG9iamVjdHNcbiAgICAvLyBhcmUgc3RhdGVmdWwgYW5kIGJvdW5kIHRvIG9uZSBEZWNrIOKAlCBzaGFyaW5nIHRoZW0gbWFrZXMgdGhlIHNlY29uZCBEZWNrXG4gICAgLy8gYXNzZXJ0IHdoaWxlIGluaXRpYWxpemluZyB0aGVtKS4gQnVpbGRpbmcgcGVyIGBtYXBJbmRleGAgYWxzbyByZXNwZWN0cyB0aGVcbiAgICAvLyBzcGxpdC1tYXAgbGF5ZXIgdmlzaWJpbGl0eSBvbiBlYWNoIGhhbGYgb2YgdGhlIHN3aXBlLlxuICAgIGlmIChkaXNhYmxlQmFzZU1hcCAmJiBtYXBEYXRhPy5tYXBTdGF0ZT8uZ2xvYmU/LmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiBnZXRHbG9iZUV4cG9ydExheWVycyhtYXBEYXRhLCB7XG4gICAgICAgIG1hcEluZGV4LFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogbWFwUHJvcHM/Lm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmw6IG1hcFByb3BzPy5tYXBib3hBcGlVcmxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChkZWNrUHJvcHMgJiYgZGVja1Byb3BzLmxheWVycykge1xuICAgICAgLy8gTm9uLWdsb2JlIHBhdGggd2l0aCBleHBsaWNpdCBsYXllcnM6IGNsb25lIHBlciBzaWRlIHdpdGggYSB1bmlxdWUgaWQgc29cbiAgICAgIC8vIHRoZSB0d28gRGVjayBpbnN0YW5jZXMgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc3RhdGVmdWwgTGF5ZXIgb2JqZWN0cy5cbiAgICAgIHJldHVybiBkZWNrUHJvcHMubGF5ZXJzLm1hcCgobGF5ZXI6IGFueSkgPT5cbiAgICAgICAgbGF5ZXIgJiYgdHlwZW9mIGxheWVyLmNsb25lID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBsYXllci5jbG9uZSh7aWQ6IGAke2xheWVyLmlkfS1zd2lwZS0ke21hcEluZGV4fWB9KVxuICAgICAgICAgIDogbGF5ZXJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVLZXBsZXJMYXllcnMobWFwRGF0YSwgdmlld1N0YXRlLCBtYXBJbmRleCwgYmVmb3JlSWQpO1xuICB9XG5cbiAgX29uTGVmdE1hcExvYWQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQ/LmdldE1hcCgpO1xuICAgIGlmIChtYXApIHtcbiAgICAgIG1hcC5vbigncmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUubGVmdFJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7bGVmdFJlYWR5OiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdHJ5Q29tcG9zaXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX29uUmlnaHRNYXBMb2FkID0gKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMucmlnaHRNYXBSZWYuY3VycmVudD8uZ2V0TWFwKCk7XG4gICAgaWYgKG1hcCkge1xuICAgICAgbWFwLm9uKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5yaWdodFJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cmlnaHRSZWFkeTogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RyeUNvbXBvc2l0ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF90cnlDb21wb3NpdGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUubGVmdFJlYWR5ICYmIHRoaXMuc3RhdGUucmlnaHRSZWFkeSkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBHbG9iZSAoZGlzYWJsZUJhc2VNYXApIG1vZGUgaGFzIG5vIFJlYWN0TWFwR0wgYW5kIHRoZXJlZm9yZSBubyBtYXAgJ3JlbmRlcidcbiAgLy8gZXZlbnQgdG8gZHJpdmUgY29tcG9zaXRpbmcuIEluc3RlYWQgZWFjaCBiYXJlIDxEZWNrR0w+IHJlcG9ydHMgd2hlbiBpdCBoYXNcbiAgLy8gZHJhd24gdmlhIG9uQWZ0ZXJSZW5kZXI7IG9uY2UgYm90aCBzaWRlcyBoYXZlIHJlbmRlcmVkIHdlIGNvbXBvc2l0ZS4gV2l0aG91dFxuICAvLyB0aGlzIHRoZSBjb21wb3NpdGUgb3V0cHV0IGNhbnZhcyBpcyBuZXZlciBwYWludGVkIHVudGlsIHRoZSB1c2VyIHByZXNzZXNcbiAgLy8gcGxheSwgc28gdGhlIHByZXZpZXcgc2hvd3MgYSBibGFuayAod2hpdGUpIGZyYW1lIG9uIG1vdW50LlxuICBfb25EZWNrUmVuZGVyID0gKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcpID0+IHtcbiAgICBjb25zdCByZWFkeUtleSA9IHNpZGUgPT09ICdsZWZ0JyA/ICdsZWZ0UmVhZHknIDogJ3JpZ2h0UmVhZHknO1xuICAgIGlmICghdGhpcy5zdGF0ZVtyZWFkeUtleV0pIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1tyZWFkeUtleV06IHRydWV9IGFzIGFueSk7XG4gICAgfVxuICAgIC8vIENvbXBvc2l0ZSBhcyBzb29uIGFzIGJvdGggZGVja3MgZXhpc3QgYW5kIGhhdmUgZHJhd24uIFdlIGNoZWNrIHRoZSBkZWNrXG4gICAgLy8gcmVmcyBkaXJlY3RseSAobm90IFJlYWN0IHN0YXRlLCB3aGljaCBjYW4gYmUgc3RhbGUgcmlnaHQgYWZ0ZXIgc2V0U3RhdGUpXG4gICAgLy8gYW5kIGludGVudGlvbmFsbHkgZG9uJ3QgZ2F0ZSBvbiBsYXllcnMgYmVpbmcgZnVsbHkgbG9hZGVkIGhlcmUgKHRoYXQgZ2F0ZVxuICAgIC8vIGxpdmVzIGluIHRoZSBjYXB0dXJlIGxvb3ApOiBmb3IgYSBsaXZlIHByZXZpZXcgd2Ugd2FudCB0byBzaG93IHRoZSBnbG9iZVxuICAgIC8vIGFzIGl0IHN0cmVhbXMgaW4gcmF0aGVyIHRoYW4gYSBibGFuayBmcmFtZSB3aGlsZSB0aWxlcyBsb2FkLlxuICAgIGlmICh0aGlzLmxlZnREZWNrUmVmLmN1cnJlbnQgJiYgdGhpcy5yaWdodERlY2tSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlck1hcENhbnZhcyhcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIG1hcEluZGV4OiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3Qge3ZpZXdTdGF0ZSwgYWRhcHRlciwgZGVja1Byb3BzLCBtYXBQcm9wcywgZGlzYWJsZUJhc2VNYXAsIG1hcGJveExheWVyQmVmb3JlSWR9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLl9nZXRDb250YWluZXIoKTtcbiAgICBjb25zdCBrZXBsZXJMYXllcnMgPSB0aGlzLl9jcmVhdGVMYXllcnMobWFwSW5kZXgsIG1hcGJveExheWVyQmVmb3JlSWQpO1xuICAgIGNvbnN0IG1hcFJlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdE1hcFJlZiA6IHRoaXMucmlnaHRNYXBSZWY7XG4gICAgY29uc3QgZGVja1JlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdERlY2tSZWYgOiB0aGlzLnJpZ2h0RGVja1JlZjtcbiAgICBjb25zdCBvbk1hcExvYWQgPSBzaWRlID09PSAnbGVmdCcgPyB0aGlzLl9vbkxlZnRNYXBMb2FkIDogdGhpcy5fb25SaWdodE1hcExvYWQ7XG4gICAgY29uc3QgZGVjayA9IGRlY2tSZWYuY3VycmVudDtcblxuICAgIGlmIChkaXNhYmxlQmFzZU1hcCkge1xuICAgICAgY29uc3QgYWRhcHRlclByb3BzID0gYWRhcHRlci5nZXRQcm9wcyh7XG4gICAgICAgIGRlY2s6IGRlY2sgYXMgYW55LFxuICAgICAgICBleHRyYVByb3BzOiB7Li4uZGVja1Byb3BzLCBsYXllcnM6IGtlcGxlckxheWVyc31cbiAgICAgIH0pIGFzIGFueTtcbiAgICAgIGNvbnN0IGFkYXB0ZXJPbkFmdGVyUmVuZGVyID0gYWRhcHRlclByb3BzLm9uQWZ0ZXJSZW5kZXI7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWFwTGF5ZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgICA8RGVja0dMXG4gICAgICAgICAgICByZWY9e3JlZiA9PiBzZXRSZWYoZGVja1JlZiwgcmVmPy5kZWNrIGFzIGFueSl9XG4gICAgICAgICAgICBkZXZpY2VQcm9wcz17RVhQT1JUX0RFQ0tfREVWSUNFX1BST1BTfVxuICAgICAgICAgICAgey4uLmFkYXB0ZXJQcm9wc31cbiAgICAgICAgICAgIHZpZXdTdGF0ZT17dmlld1N0YXRlfVxuICAgICAgICAgICAgb25WaWV3U3RhdGVDaGFuZ2U9eyh7dmlld1N0YXRlOiB2c306IGFueSkgPT4gdGhpcy5wcm9wcy5zZXRWaWV3U3RhdGUodnMpfVxuICAgICAgICAgICAgb25BZnRlclJlbmRlcj17KHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYWRhcHRlck9uQWZ0ZXJSZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyT25BZnRlclJlbmRlcihwYXJhbXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuX29uRGVja1JlbmRlcihzaWRlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB7Li4udGhpcy5fZ2V0Q29udGFpbmVyKCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9NYXBMYXllcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbWFwU3R5bGU6IG1hcFN0eWxlRnJvbVByb3BzLFxuICAgICAgbWFwTGliLFxuICAgICAgdHJhbnNmb3JtUmVxdWVzdFxuICAgIH0gPSAobWFwUHJvcHMgfHwge30pIGFzIGFueTtcblxuICAgIHJldHVybiAoXG4gICAgICA8TWFwTGF5ZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgPFJlYWN0TWFwR0xcbiAgICAgICAgICByZWY9e21hcFJlZn1cbiAgICAgICAgICBzdHlsZT17e3dpZHRoLCBoZWlnaHR9fVxuICAgICAgICAgIGFudGlhbGlhc1xuICAgICAgICAgIG1hcExpYj17bWFwTGlifVxuICAgICAgICAgIHRyYW5zZm9ybVJlcXVlc3Q9e3RyYW5zZm9ybVJlcXVlc3R9XG4gICAgICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyXG4gICAgICAgICAgey4uLnZpZXdTdGF0ZX1cbiAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGVGcm9tUHJvcHN9XG4gICAgICAgICAgb25Mb2FkPXtvbk1hcExvYWR9XG4gICAgICAgID5cbiAgICAgICAgICA8RGVja0dMT3ZlcmxheVxuICAgICAgICAgICAgcmVmPXtkZWNrUmVmfVxuICAgICAgICAgICAgZGV2aWNlUHJvcHM9e0VYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QU31cbiAgICAgICAgICAgIHsuLi5hZGFwdGVyLmdldFByb3BzKHtkZWNrOiBkZWNrIGFzIGFueSwgZXh0cmFQcm9wczogey4uLmRlY2tQcm9wcywgbGF5ZXJzOiBrZXBsZXJMYXllcnN9fSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9SZWFjdE1hcEdMPlxuICAgICAgPC9NYXBMYXllcj5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtyZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gdGhpcy5fZ2V0Q29udGFpbmVyKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdDb250YWluZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgey8qIEhpZGRlbiBtYXAgY2FudmFzZXMgZm9yIGxlZnQgKG1hcEluZGV4PTApIGFuZCByaWdodCAobWFwSW5kZXg9MSkgKi99XG4gICAgICAgIHt0aGlzLl9yZW5kZXJNYXBDYW52YXMoJ2xlZnQnLCAwKX1cbiAgICAgICAge3RoaXMuX3JlbmRlck1hcENhbnZhcygncmlnaHQnLCAxKX1cblxuICAgICAgICB7LyogVmlzaWJsZSBjb21wb3NpdGVkIG91dHB1dCAqL31cbiAgICAgICAgPFZpc2libGVDYW52YXNcbiAgICAgICAgICByZWY9e3RoaXMuY29tcG9zaXRlQ2FudmFzUmVmfVxuICAgICAgICAgIHdpZHRoPXtyZXNvbHV0aW9uWzBdfVxuICAgICAgICAgIGhlaWdodD17cmVzb2x1dGlvblsxXX1cbiAgICAgICAgICAkd2lkdGg9e3dpZHRofVxuICAgICAgICAgICRoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgLz5cbiAgICAg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
|
|
395
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9tYXBsaWJyZSIsIl9tYXBib3giLCJfaXNFcXVhbCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3JlYWN0MyIsIl9zd2lwZUNvbXBvc2l0ZVV0aWxzIiwiX2h1YmJsZVV0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJzZXRSZWYiLCJyZWYiLCJ2YWx1ZSIsImN1cnJlbnQiLCJEZWNrR0xPdmVybGF5IiwiZm9yd2FyZFJlZiIsInByb3BzIiwib3ZlcmxheSIsInVzZUNvbnRyb2wiLCJNYXBib3hPdmVybGF5IiwiaW50ZXJsZWF2ZWQiLCJzZXRQcm9wcyIsIl9kZWNrIiwiZGlzcGxheU5hbWUiLCJQcmV2aWV3Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCIkd2lkdGgiLCIkaGVpZ2h0IiwiVmlzaWJsZUNhbnZhcyIsImNhbnZhcyIsIk1hcExheWVyIiwiU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXciLCJleHBvcnRzIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIlJlYWN0IiwiY3JlYXRlUmVmIiwicHJvY2VlZFRvTmV4dEZyYW1lIiwibGVmdExvYWRlZCIsIl9hcmVMYXllcnNMb2FkZWQiLCJyaWdodExvYWRlZCIsImxlZnRUaWxlc1JlYWR5IiwiZGlzYWJsZUJhc2VNYXAiLCJsZWZ0TWFwUmVmIiwiZ2V0TWFwIiwiYXJlVGlsZXNMb2FkZWQiLCJyaWdodFRpbGVzUmVhZHkiLCJyaWdodE1hcFJlZiIsIl9jb21wb3NpdGVGcmFtZSIsIl90aGlzJGxlZnRNYXBSZWYkY3VyciIsIm1hcCIsIm9uIiwic3RhdGUiLCJsZWZ0UmVhZHkiLCJzZXRTdGF0ZSIsIl90cnlDb21wb3NpdGUiLCJfdGhpcyRyaWdodE1hcFJlZiRjdXIiLCJyaWdodFJlYWR5Iiwic2lkZSIsInJlYWR5S2V5IiwibGVmdERlY2tSZWYiLCJyaWdodERlY2tSZWYiLCJfcmVzaXplVmlkZW8iLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsImlzRXF1YWwiLCJyZXNvbHV0aW9uIiwiY3VycmVudFRpbWVNcyIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiX3RoaXMkcHJvcHMiLCJleHBvcnRWaWRlb1dpZHRoIiwiX3NldERldmljZVBpeGVsUmF0aW8iLCJkZXZpY2VQaXhlbFJhdGlvIiwid2luZG93IiwiX2dldENvbnRhaW5lciIsIl90aGlzJHByb3BzMiIsImFzcGVjdFJhdGlvIiwiaGVpZ2h0Iiwid2lkdGgiLCJfZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSIsIl90aGlzJHByb3BzMyIsImR1cmF0aW9uTXMiLCJnZXRTd2lwZVBlcmNlbnRhZ2VBdFRpbWUiLCJfZ2V0TGVmdENhbnZhcyIsImdldENhbnZhcyIsIl9nZXRDYW52YXMiLCJfcmVmIiwiX2dldFJpZ2h0Q2FudmFzIiwiX2dldENhbnZhczIiLCJfcmVmMiIsIl90aGlzJHByb3BzJG1hcERhdGEiLCJfZ2xvYmUkY29uZmlnIiwibGVmdENhbnZhcyIsInJpZ2h0Q2FudmFzIiwib3V0cHV0Q2FudmFzIiwiY29tcG9zaXRlQ2FudmFzUmVmIiwicGVyY2VudGFnZSIsImdsb2JlIiwibWFwRGF0YSIsIm1hcFN0YXRlIiwic2hvd1N0YXJzIiwiZW5hYmxlZCIsImNvbmZpZyIsInN0YXJzIiwiY29tcG9zaXRlU3dpcGVGcmFtZSIsImJhY2tncm91bmRDb2xvciIsImRlY2tSZWYiLCJsYXllcnMiLCJldmVyeSIsImxheWVyIiwiaXNMb2FkZWQiLCJnZXRDb21wb3NpdGVDYW52YXMiLCJfY3JlYXRlTGF5ZXJzIiwibWFwSW5kZXgiLCJiZWZvcmVJZCIsIl9tYXBEYXRhJG1hcFN0YXRlIiwiX3RoaXMkcHJvcHM0IiwiZGVja1Byb3BzIiwidmlld1N0YXRlIiwibWFwUHJvcHMiLCJnZXRHbG9iZUV4cG9ydExheWVycyIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwiY2xvbmUiLCJpZCIsImNvbmNhdCIsImNyZWF0ZUtlcGxlckxheWVycyIsIl9yZW5kZXJNYXBDYW52YXMiLCJfdGhpczIiLCJfdGhpcyRwcm9wczUiLCJhZGFwdGVyIiwibWFwYm94TGF5ZXJCZWZvcmVJZCIsIl90aGlzJF9nZXRDb250YWluZXIiLCJrZXBsZXJMYXllcnMiLCJtYXBSZWYiLCJvbk1hcExvYWQiLCJfb25MZWZ0TWFwTG9hZCIsIl9vblJpZ2h0TWFwTG9hZCIsImRlY2siLCJhZGFwdGVyUHJvcHMiLCJnZXRQcm9wcyIsImV4dHJhUHJvcHMiLCJhZGFwdGVyT25BZnRlclJlbmRlciIsIm9uQWZ0ZXJSZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiZGV2aWNlUHJvcHMiLCJFWFBPUlRfREVDS19ERVZJQ0VfUFJPUFMiLCJvblZpZXdTdGF0ZUNoYW5nZSIsIl9yZWYzIiwidnMiLCJzZXRWaWV3U3RhdGUiLCJwYXJhbXMiLCJfb25EZWNrUmVuZGVyIiwiX3JlZjUiLCJtYXBTdHlsZUZyb21Qcm9wcyIsIm1hcFN0eWxlIiwibWFwTGliIiwidHJhbnNmb3JtUmVxdWVzdCIsInN0eWxlIiwiYW50aWFsaWFzIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwib25Mb2FkIiwiRVhQT1JUX09WRVJMQVlfREVWSUNFX1BST1BTIiwicmVuZGVyIiwiX3RoaXMkX2dldENvbnRhaW5lcjIiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kYWxzL3N3aXBlLWV4cG9ydC12aWRlby1wcmV2aWV3LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIFJlZk9iamVjdCwgZm9yd2FyZFJlZiwgRm9yd2FyZGVkUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRGVja0dMIGZyb20gJ0BkZWNrLmdsL3JlYWN0JztcbmltcG9ydCBSZWFjdE1hcEdMLCB7dHlwZSBNYXBSZWYsIHVzZUNvbnRyb2x9IGZyb20gJ3JlYWN0LW1hcC1nbC9tYXBsaWJyZSc7XG4vLyBAdHMtaWdub3JlIG1vZHVsZSByZXNvbHV0aW9uIG1pc21hdGNoIHdpdGggbW9kdWxlUmVzb2x1dGlvbjpcIm5vZGVcIlxuaW1wb3J0IHtNYXBib3hPdmVybGF5fSBmcm9tICdAZGVjay5nbC9tYXBib3gnO1xuaW1wb3J0IHR5cGUge0RlY2ssIERlY2tQcm9wcywgTWFwVmlld1N0YXRlfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0RlY2tBZGFwdGVyfSBmcm9tICdAaHViYmxlLmdsL2NvcmUnO1xuaW1wb3J0IHtjcmVhdGVLZXBsZXJMYXllcnN9IGZyb20gJ0BodWJibGUuZ2wvcmVhY3QnO1xuaW1wb3J0IHtjb21wb3NpdGVTd2lwZUZyYW1lLCBnZXRTd2lwZVBlcmNlbnRhZ2VBdFRpbWUsIFN3aXBlRWFzaW5nfSBmcm9tICcuL3N3aXBlLWNvbXBvc2l0ZS11dGlscyc7XG5pbXBvcnQge1xuICBFWFBPUlRfREVDS19ERVZJQ0VfUFJPUFMsXG4gIEVYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QUyxcbiAgZ2V0R2xvYmVFeHBvcnRMYXllcnNcbn0gZnJvbSAnLi9odWJibGUtdXRpbHMnO1xuXG5mdW5jdGlvbiBzZXRSZWY8VD4ocmVmOiBSZWFjdC5SZWY8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQ+LCB2YWx1ZTogVCkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZih2YWx1ZSk7XG4gIH0gZWxzZSBpZiAocmVmKSB7XG4gICAgKHJlZiBhcyBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQ+KS5jdXJyZW50ID0gdmFsdWU7XG4gIH1cbn1cblxuY29uc3QgRGVja0dMT3ZlcmxheSA9IGZvcndhcmRSZWY8RGVjaywgYW55PihcbiAgKHByb3BzOiBhbnksIHJlZjogRm9yd2FyZGVkUmVmPERlY2s+KSA9PiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHVzZUNvbnRyb2w8TWFwYm94T3ZlcmxheT4oKCkgPT4gbmV3IE1hcGJveE92ZXJsYXkoey4uLnByb3BzLCBpbnRlcmxlYXZlZDogdHJ1ZX0pKTtcbiAgICBvdmVybGF5LnNldFByb3BzKHByb3BzKTtcbiAgICBzZXRSZWYocmVmLCAob3ZlcmxheSBhcyBhbnkpLl9kZWNrKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuKTtcbkRlY2tHTE92ZXJsYXkuZGlzcGxheU5hbWUgPSAnRGVja0dMT3ZlcmxheSc7XG5cbmNvbnN0IFByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2PHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFZpc2libGVDYW52YXMgPSBzdHlsZWQuY2FudmFzPHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG5jb25zdCBNYXBMYXllciA9IHN0eWxlZC5kaXY8eyR3aWR0aDogbnVtYmVyOyAkaGVpZ2h0OiBudW1iZXJ9PmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMuJHdpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuJGhlaWdodH1weDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xuYDtcblxuZXhwb3J0IHR5cGUgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcyA9IHtcbiAgbWFwRGF0YTogYW55O1xuICByZXNvbHV0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICBleHBvcnRWaWRlb1dpZHRoOiBudW1iZXI7XG4gIGRpc2FibGVCYXNlTWFwOiBib29sZWFuO1xuICBkZWNrUHJvcHM/OiBEZWNrUHJvcHM7XG4gIHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlO1xuICBhZGFwdGVyOiBEZWNrQWRhcHRlcjtcbiAgbWFwYm94TGF5ZXJCZWZvcmVJZD86IHN0cmluZztcbiAgcmVuZGVyaW5nOiBib29sZWFuO1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIHNldFZpZXdTdGF0ZTogKHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlKSA9PiB2b2lkO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIG1hcFByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG4gIGN1cnJlbnRUaW1lTXM6IG51bWJlcjtcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufTtcblxudHlwZSBTd2lwZUV4cG9ydFZpZGVvUHJldmlld1N0YXRlID0ge1xuICBsZWZ0UmVhZHk6IGJvb2xlYW47XG4gIHJpZ2h0UmVhZHk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEEgZHVhbC1jYW52YXMgdmlkZW8gZXhwb3J0IHByZXZpZXcgdGhhdCByZW5kZXJzIGxlZnQvcmlnaHQgc3BsaXQgbWFwIGxheWVyc1xuICogYW5kIGNvbXBvc2l0ZXMgdGhlbSB3aXRoIGFuIGFuaW1hdGVkIHN3aXBlIGRpdmlkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTd2lwZUV4cG9ydFZpZGVvUHJldmlldyBleHRlbmRzIENvbXBvbmVudDxcbiAgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcyxcbiAgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdTdGF0ZVxuPiB7XG4gIGxlZnRNYXBSZWY6IFJlZk9iamVjdDxNYXBSZWYgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxNYXBSZWYgfCBudWxsPigpO1xuICByaWdodE1hcFJlZjogUmVmT2JqZWN0PE1hcFJlZiB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPE1hcFJlZiB8IG51bGw+KCk7XG4gIGxlZnREZWNrUmVmOiBSZWZPYmplY3Q8RGVjayB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPERlY2sgfCBudWxsPigpO1xuICByaWdodERlY2tSZWY6IFJlZk9iamVjdDxEZWNrIHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8RGVjayB8IG51bGw+KCk7XG4gIGNvbXBvc2l0ZUNhbnZhc1JlZjogUmVmT2JqZWN0PEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8SFRNTENhbnZhc0VsZW1lbnQgfCBudWxsPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTd2lwZUV4cG9ydFZpZGVvUHJldmlld1Byb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxlZnRSZWFkeTogZmFsc2UsXG4gICAgICByaWdodFJlYWR5OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLl9yZXNpemVWaWRlbygpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcykge1xuICAgIGlmICghaXNFcXVhbChwcmV2UHJvcHMucmVzb2x1dGlvbiwgdGhpcy5wcm9wcy5yZXNvbHV0aW9uKSkge1xuICAgICAgdGhpcy5fcmVzaXplVmlkZW8oKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcmV2UHJvcHMuY3VycmVudFRpbWVNcyAhPT0gdGhpcy5wcm9wcy5jdXJyZW50VGltZU1zIHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVTdGFydFBjdCAhPT0gdGhpcy5wcm9wcy5zd2lwZVN0YXJ0UGN0IHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVFbmRQY3QgIT09IHRoaXMucHJvcHMuc3dpcGVFbmRQY3QgfHxcbiAgICAgIHByZXZQcm9wcy5zd2lwZUVhc2luZyAhPT0gdGhpcy5wcm9wcy5zd2lwZUVhc2luZ1xuICAgICkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH1cblxuICBfcmVzaXplVmlkZW8oKSB7XG4gICAgY29uc3Qge2V4cG9ydFZpZGVvV2lkdGgsIHJlc29sdXRpb259ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLl9zZXREZXZpY2VQaXhlbFJhdGlvKHJlc29sdXRpb25bMF0gLyBleHBvcnRWaWRlb1dpZHRoKTtcbiAgfVxuXG4gIF9zZXREZXZpY2VQaXhlbFJhdGlvKGRldmljZVBpeGVsUmF0aW86IG51bWJlcikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW87XG4gIH1cblxuICBfZ2V0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRoLCByZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgYXNwZWN0UmF0aW8gPSByZXNvbHV0aW9uWzBdIC8gcmVzb2x1dGlvblsxXTtcbiAgICByZXR1cm4ge2hlaWdodDogZXhwb3J0VmlkZW9XaWR0aCAvIGFzcGVjdFJhdGlvLCB3aWR0aDogZXhwb3J0VmlkZW9XaWR0aH07XG4gIH1cblxuICBfZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHtjdXJyZW50VGltZU1zLCBkdXJhdGlvbk1zLCBzd2lwZVN0YXJ0UGN0LCBzd2lwZUVuZFBjdCwgc3dpcGVFYXNpbmd9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gZ2V0U3dpcGVQZXJjZW50YWdlQXRUaW1lKGN1cnJlbnRUaW1lTXMsIGR1cmF0aW9uTXMsIHN3aXBlU3RhcnRQY3QsIHN3aXBlRW5kUGN0LCBzd2lwZUVhc2luZyk7XG4gIH1cblxuICBfZ2V0TGVmdENhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0aGlzLmxlZnRNYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVmdE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmdldENhbnZhcygpO1xuICAgIH1cbiAgICAvLyBGYWxsYmFjazogRGVja0dMIGNhbnZhcyAobm8gYmFzZW1hcCBtb2RlKVxuICAgIGlmICh0aGlzLmxlZnREZWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiAodGhpcy5sZWZ0RGVja1JlZi5jdXJyZW50IGFzIGFueSkuZ2V0Q2FudmFzPy4oKSB8fCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9nZXRSaWdodENhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQuZ2V0TWFwKCkuZ2V0Q2FudmFzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gKHRoaXMucmlnaHREZWNrUmVmLmN1cnJlbnQgYXMgYW55KS5nZXRDYW52YXM/LigpIHx8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgX2NvbXBvc2l0ZUZyYW1lKCkge1xuICAgIGNvbnN0IGxlZnRDYW52YXMgPSB0aGlzLl9nZXRMZWZ0Q2FudmFzKCk7XG4gICAgY29uc3QgcmlnaHRDYW52YXMgPSB0aGlzLl9nZXRSaWdodENhbnZhcygpO1xuICAgIGNvbnN0IG91dHB1dENhbnZhcyA9IHRoaXMuY29tcG9zaXRlQ2FudmFzUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWxlZnRDYW52YXMgfHwgIXJpZ2h0Q2FudmFzIHx8ICFvdXRwdXRDYW52YXMpIHJldHVybjtcblxuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSB0aGlzLl9nZXRDdXJyZW50U3dpcGVQZXJjZW50YWdlKCk7XG4gICAgY29uc3QgZ2xvYmUgPSB0aGlzLnByb3BzLm1hcERhdGE/Lm1hcFN0YXRlPy5nbG9iZTtcbiAgICBjb25zdCBzaG93U3RhcnMgPSBCb29sZWFuKGdsb2JlPy5lbmFibGVkICYmIGdsb2JlPy5jb25maWc/LnN0YXJzKTtcblxuICAgIGNvbXBvc2l0ZVN3aXBlRnJhbWUoXG4gICAgICBsZWZ0Q2FudmFzLFxuICAgICAgcmlnaHRDYW52YXMsXG4gICAgICBvdXRwdXRDYW52YXMsXG4gICAgICBwZXJjZW50YWdlLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgc2hvd1N0YXJzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHBhcmVudCBjb250YWluZXIncyBhZGFwdGVyIGFmdGVyIGVhY2ggcmVuZGVyLlxuICAgKiBXZSBuZWVkIGJvdGggbWFwcyB0byBiZSBsb2FkZWQgYmVmb3JlIGNvbXBvc2l0aW5nIGFuZCBjYXB0dXJpbmcuXG4gICAqL1xuICBvbkFmdGVyUmVuZGVyID0gKHByb2NlZWRUb05leHRGcmFtZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IGxlZnRMb2FkZWQgPSB0aGlzLl9hcmVMYXllcnNMb2FkZWQoJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodExvYWRlZCA9IHRoaXMuX2FyZUxheWVyc0xvYWRlZCgncmlnaHQnKTtcbiAgICBjb25zdCBsZWZ0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLmxlZnRNYXBSZWYuY3VycmVudCB8fCB0aGlzLmxlZnRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5hcmVUaWxlc0xvYWRlZCgpO1xuICAgIGNvbnN0IHJpZ2h0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQgfHwgdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmFyZVRpbGVzTG9hZGVkKCk7XG5cbiAgICBpZiAobGVmdExvYWRlZCAmJiByaWdodExvYWRlZCAmJiBsZWZ0VGlsZXNSZWFkeSAmJiByaWdodFRpbGVzUmVhZHkpIHtcbiAgICAgIHRoaXMuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgICBwcm9jZWVkVG9OZXh0RnJhbWUoKTtcbiAgICB9XG4gIH07XG5cbiAgX2FyZUxheWVyc0xvYWRlZChzaWRlOiAnbGVmdCcgfCAncmlnaHQnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVja1JlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdERlY2tSZWYgOiB0aGlzLnJpZ2h0RGVja1JlZjtcbiAgICBpZiAoIWRlY2tSZWYuY3VycmVudCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGxheWVycyA9IGRlY2tSZWYuY3VycmVudC5wcm9wcy5sYXllcnMgfHwgW107XG4gICAgcmV0dXJuIGxheWVycy5ldmVyeSgobGF5ZXI6IGFueSkgPT4gbGF5ZXIuaXNMb2FkZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29tcG9zaXRlZCBjYW52YXMgZWxlbWVudCBmb3IgdmlkZW8gY2FwdHVyZS5cbiAgICovXG4gIGdldENvbXBvc2l0ZUNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2l0ZUNhbnZhc1JlZi5jdXJyZW50O1xuICB9XG5cbiAgX2NyZWF0ZUxheWVycyhtYXBJbmRleDogbnVtYmVyLCBiZWZvcmVJZD86IHN0cmluZykge1xuICAgIGNvbnN0IHtkZWNrUHJvcHMsIG1hcERhdGEsIHZpZXdTdGF0ZSwgZGlzYWJsZUJhc2VNYXAsIG1hcFByb3BzfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyBHbG9iZSBzd2lwZTogYnVpbGQgYSBmcmVzaCBzZXQgb2YgZ2xvYmUgbGF5ZXJzIHBlciBzaWRlLiBFYWNoIHNpZGUgaXMgYVxuICAgIC8vIHNlcGFyYXRlIERlY2ssIHNvIGl0IG5lZWRzIGl0cyBPV04gTGF5ZXIgaW5zdGFuY2VzIChkZWNrLmdsIExheWVyIG9iamVjdHNcbiAgICAvLyBhcmUgc3RhdGVmdWwgYW5kIGJvdW5kIHRvIG9uZSBEZWNrIOKAlCBzaGFyaW5nIHRoZW0gbWFrZXMgdGhlIHNlY29uZCBEZWNrXG4gICAgLy8gYXNzZXJ0IHdoaWxlIGluaXRpYWxpemluZyB0aGVtKS4gQnVpbGRpbmcgcGVyIGBtYXBJbmRleGAgYWxzbyByZXNwZWN0cyB0aGVcbiAgICAvLyBzcGxpdC1tYXAgbGF5ZXIgdmlzaWJpbGl0eSBvbiBlYWNoIGhhbGYgb2YgdGhlIHN3aXBlLlxuICAgIGlmIChkaXNhYmxlQmFzZU1hcCAmJiBtYXBEYXRhPy5tYXBTdGF0ZT8uZ2xvYmU/LmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiBnZXRHbG9iZUV4cG9ydExheWVycyhtYXBEYXRhLCB7XG4gICAgICAgIG1hcEluZGV4LFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogbWFwUHJvcHM/Lm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmw6IG1hcFByb3BzPy5tYXBib3hBcGlVcmwsXG4gICAgICAgIHZpZXdTdGF0ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRlY2tQcm9wcyAmJiBkZWNrUHJvcHMubGF5ZXJzKSB7XG4gICAgICAvLyBOb24tZ2xvYmUgcGF0aCB3aXRoIGV4cGxpY2l0IGxheWVyczogY2xvbmUgcGVyIHNpZGUgd2l0aCBhIHVuaXF1ZSBpZCBzb1xuICAgICAgLy8gdGhlIHR3byBEZWNrIGluc3RhbmNlcyBkb24ndCBzaGFyZSB0aGUgc2FtZSBzdGF0ZWZ1bCBMYXllciBvYmplY3RzLlxuICAgICAgcmV0dXJuIGRlY2tQcm9wcy5sYXllcnMubWFwKChsYXllcjogYW55KSA9PlxuICAgICAgICBsYXllciAmJiB0eXBlb2YgbGF5ZXIuY2xvbmUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IGxheWVyLmNsb25lKHtpZDogYCR7bGF5ZXIuaWR9LXN3aXBlLSR7bWFwSW5kZXh9YH0pXG4gICAgICAgICAgOiBsYXllclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUtlcGxlckxheWVycyhtYXBEYXRhLCB2aWV3U3RhdGUsIG1hcEluZGV4LCBiZWZvcmVJZCk7XG4gIH1cblxuICBfb25MZWZ0TWFwTG9hZCA9ICgpID0+IHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLmxlZnRNYXBSZWYuY3VycmVudD8uZ2V0TWFwKCk7XG4gICAgaWYgKG1hcCkge1xuICAgICAgbWFwLm9uKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5sZWZ0UmVhZHkpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtsZWZ0UmVhZHk6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90cnlDb21wb3NpdGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBfb25SaWdodE1hcExvYWQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50Py5nZXRNYXAoKTtcbiAgICBpZiAobWFwKSB7XG4gICAgICBtYXAub24oJ3JlbmRlcicsICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnJpZ2h0UmVhZHkpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtyaWdodFJlYWR5OiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdHJ5Q29tcG9zaXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3RyeUNvbXBvc2l0ZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5sZWZ0UmVhZHkgJiYgdGhpcy5zdGF0ZS5yaWdodFJlYWR5KSB7XG4gICAgICB0aGlzLl9jb21wb3NpdGVGcmFtZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdsb2JlIChkaXNhYmxlQmFzZU1hcCkgbW9kZSBoYXMgbm8gUmVhY3RNYXBHTCBhbmQgdGhlcmVmb3JlIG5vIG1hcCAncmVuZGVyJ1xuICAvLyBldmVudCB0byBkcml2ZSBjb21wb3NpdGluZy4gSW5zdGVhZCBlYWNoIGJhcmUgPERlY2tHTD4gcmVwb3J0cyB3aGVuIGl0IGhhc1xuICAvLyBkcmF3biB2aWEgb25BZnRlclJlbmRlcjsgb25jZSBib3RoIHNpZGVzIGhhdmUgcmVuZGVyZWQgd2UgY29tcG9zaXRlLiBXaXRob3V0XG4gIC8vIHRoaXMgdGhlIGNvbXBvc2l0ZSBvdXRwdXQgY2FudmFzIGlzIG5ldmVyIHBhaW50ZWQgdW50aWwgdGhlIHVzZXIgcHJlc3Nlc1xuICAvLyBwbGF5LCBzbyB0aGUgcHJldmlldyBzaG93cyBhIGJsYW5rICh3aGl0ZSkgZnJhbWUgb24gbW91bnQuXG4gIF9vbkRlY2tSZW5kZXIgPSAoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JykgPT4ge1xuICAgIGNvbnN0IHJlYWR5S2V5ID0gc2lkZSA9PT0gJ2xlZnQnID8gJ2xlZnRSZWFkeScgOiAncmlnaHRSZWFkeSc7XG4gICAgaWYgKCF0aGlzLnN0YXRlW3JlYWR5S2V5XSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7W3JlYWR5S2V5XTogdHJ1ZX0gYXMgYW55KTtcbiAgICB9XG4gICAgLy8gQ29tcG9zaXRlIGFzIHNvb24gYXMgYm90aCBkZWNrcyBleGlzdCBhbmQgaGF2ZSBkcmF3bi4gV2UgY2hlY2sgdGhlIGRlY2tcbiAgICAvLyByZWZzIGRpcmVjdGx5IChub3QgUmVhY3Qgc3RhdGUsIHdoaWNoIGNhbiBiZSBzdGFsZSByaWdodCBhZnRlciBzZXRTdGF0ZSlcbiAgICAvLyBhbmQgaW50ZW50aW9uYWxseSBkb24ndCBnYXRlIG9uIGxheWVycyBiZWluZyBmdWxseSBsb2FkZWQgaGVyZSAodGhhdCBnYXRlXG4gICAgLy8gbGl2ZXMgaW4gdGhlIGNhcHR1cmUgbG9vcCk6IGZvciBhIGxpdmUgcHJldmlldyB3ZSB3YW50IHRvIHNob3cgdGhlIGdsb2JlXG4gICAgLy8gYXMgaXQgc3RyZWFtcyBpbiByYXRoZXIgdGhhbiBhIGJsYW5rIGZyYW1lIHdoaWxlIHRpbGVzIGxvYWQuXG4gICAgaWYgKHRoaXMubGVmdERlY2tSZWYuY3VycmVudCAmJiB0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jb21wb3NpdGVGcmFtZSgpO1xuICAgIH1cbiAgfTtcblxuICBfcmVuZGVyTWFwQ2FudmFzKFxuICAgIHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsXG4gICAgbWFwSW5kZXg6IG51bWJlclxuICApIHtcbiAgICBjb25zdCB7dmlld1N0YXRlLCBhZGFwdGVyLCBkZWNrUHJvcHMsIG1hcFByb3BzLCBkaXNhYmxlQmFzZU1hcCwgbWFwYm94TGF5ZXJCZWZvcmVJZH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuX2dldENvbnRhaW5lcigpO1xuICAgIGNvbnN0IGtlcGxlckxheWVycyA9IHRoaXMuX2NyZWF0ZUxheWVycyhtYXBJbmRleCwgbWFwYm94TGF5ZXJCZWZvcmVJZCk7XG4gICAgY29uc3QgbWFwUmVmID0gc2lkZSA9PT0gJ2xlZnQnID8gdGhpcy5sZWZ0TWFwUmVmIDogdGhpcy5yaWdodE1hcFJlZjtcbiAgICBjb25zdCBkZWNrUmVmID0gc2lkZSA9PT0gJ2xlZnQnID8gdGhpcy5sZWZ0RGVja1JlZiA6IHRoaXMucmlnaHREZWNrUmVmO1xuICAgIGNvbnN0IG9uTWFwTG9hZCA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMuX29uTGVmdE1hcExvYWQgOiB0aGlzLl9vblJpZ2h0TWFwTG9hZDtcbiAgICBjb25zdCBkZWNrID0gZGVja1JlZi5jdXJyZW50O1xuXG4gICAgaWYgKGRpc2FibGVCYXNlTWFwKSB7XG4gICAgICBjb25zdCBhZGFwdGVyUHJvcHMgPSBhZGFwdGVyLmdldFByb3BzKHtcbiAgICAgICAgZGVjazogZGVjayBhcyBhbnksXG4gICAgICAgIGV4dHJhUHJvcHM6IHsuLi5kZWNrUHJvcHMsIGxheWVyczoga2VwbGVyTGF5ZXJzfVxuICAgICAgfSkgYXMgYW55O1xuICAgICAgY29uc3QgYWRhcHRlck9uQWZ0ZXJSZW5kZXIgPSBhZGFwdGVyUHJvcHMub25BZnRlclJlbmRlcjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNYXBMYXllciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICAgIDxEZWNrR0xcbiAgICAgICAgICAgIHJlZj17cmVmID0+IHNldFJlZihkZWNrUmVmLCByZWY/LmRlY2sgYXMgYW55KX1cbiAgICAgICAgICAgIGRldmljZVByb3BzPXtFWFBPUlRfREVDS19ERVZJQ0VfUFJPUFN9XG4gICAgICAgICAgICB7Li4uYWRhcHRlclByb3BzfVxuICAgICAgICAgICAgdmlld1N0YXRlPXt2aWV3U3RhdGV9XG4gICAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGU6IHZzfTogYW55KSA9PiB0aGlzLnByb3BzLnNldFZpZXdTdGF0ZSh2cyl9XG4gICAgICAgICAgICBvbkFmdGVyUmVuZGVyPXsocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhZGFwdGVyT25BZnRlclJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGFkYXB0ZXJPbkFmdGVyUmVuZGVyKHBhcmFtcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fb25EZWNrUmVuZGVyKHNpZGUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHsuLi50aGlzLl9nZXRDb250YWluZXIoKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L01hcExheWVyPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBtYXBTdHlsZTogbWFwU3R5bGVGcm9tUHJvcHMsXG4gICAgICBtYXBMaWIsXG4gICAgICB0cmFuc2Zvcm1SZXF1ZXN0XG4gICAgfSA9IChtYXBQcm9wcyB8fCB7fSkgYXMgYW55O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNYXBMYXllciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICA8UmVhY3RNYXBHTFxuICAgICAgICAgIHJlZj17bWFwUmVmfVxuICAgICAgICAgIHN0eWxlPXt7d2lkdGgsIGhlaWdodH19XG4gICAgICAgICAgYW50aWFsaWFzXG4gICAgICAgICAgbWFwTGliPXttYXBMaWJ9XG4gICAgICAgICAgdHJhbnNmb3JtUmVxdWVzdD17dHJhbnNmb3JtUmVxdWVzdH1cbiAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXJcbiAgICAgICAgICB7Li4udmlld1N0YXRlfVxuICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZUZyb21Qcm9wc31cbiAgICAgICAgICBvbkxvYWQ9e29uTWFwTG9hZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxEZWNrR0xPdmVybGF5XG4gICAgICAgICAgICByZWY9e2RlY2tSZWZ9XG4gICAgICAgICAgICBkZXZpY2VQcm9wcz17RVhQT1JUX09WRVJMQVlfREVWSUNFX1BST1BTfVxuICAgICAgICAgICAgey4uLmFkYXB0ZXIuZ2V0UHJvcHMoe2RlY2s6IGRlY2sgYXMgYW55LCBleHRyYVByb3BzOiB7Li4uZGVja1Byb3BzLCBsYXllcnM6IGtlcGxlckxheWVyc319KX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1JlYWN0TWFwR0w+XG4gICAgICA8L01hcExheWVyPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3Jlc29sdXRpb259ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLl9nZXRDb250YWluZXIoKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJldmlld0NvbnRhaW5lciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICB7LyogSGlkZGVuIG1hcCBjYW52YXNlcyBmb3IgbGVmdCAobWFwSW5kZXg9MCkgYW5kIHJpZ2h0IChtYXBJbmRleD0xKSAqL31cbiAgICAgICAge3RoaXMuX3JlbmRlck1hcENhbnZhcygnbGVmdCcsIDApfVxuICAgICAgICB7dGhpcy5fcmVuZGVyTWFwQ2FudmFzKCdyaWdodCcsIDEpfVxuXG4gICAgICAgIHsvKiBWaXNpYmxlIGNvbXBvc2l0ZWQgb3V0cHV0ICovfVxuICAgICAgICA8VmlzaWJsZUNhbnZhc1xuICAgICAgICAgIHJlZj17dGhpcy5jb21wb3NpdGVDYW52YXNSZWZ9XG4gICAgICAgICAgd2lkdGg9e3Jlc29sdXRpb25bMF19XG4gICAgICAgICAgaGVpZ2h0PXtyZXNvbHV0aW9uWzFdfVxuICAgICAgICAgICR3aWR0aD17d2lkdGh9XG4gICAgICAgICAgJGhlaWdodD17aGVpZ2h0fVxuICAgICAgICAvPlxuICAgICAgPC9QcmV2aWV3Q29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUosdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxvQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBSXdCLElBQUFVLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUE7QUFBQSxTQUFBYix3QkFBQWMsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWhCLHVCQUFBLFlBQUFBLHdCQUFBYyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFB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
|
|
@@ -28,7 +28,8 @@ var _panelHeaderAction = _interopRequireDefault(require("./panel-header-action")
|
|
|
28
28
|
var _icons = require("../common/icons");
|
|
29
29
|
var _excluded = ["rasterTile"],
|
|
30
30
|
_excluded2 = ["wms"],
|
|
31
|
-
_excluded3 = ["flow"]
|
|
31
|
+
_excluded3 = ["flow"],
|
|
32
|
+
_excluded4 = ["a5"];
|
|
32
33
|
var _templateObject, _templateObject2;
|
|
33
34
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
34
35
|
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; }
|
|
@@ -132,6 +133,7 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
132
133
|
var enableRasterTileLayer = (0, _utils.getApplicationConfig)().enableRasterTileLayer;
|
|
133
134
|
var enableWMSLayer = (0, _utils.getApplicationConfig)().enableWMSLayer;
|
|
134
135
|
var enableFlowLayer = (0, _utils.getApplicationConfig)().enableFlowLayer;
|
|
136
|
+
var enableA5Layer = (0, _utils.getApplicationConfig)().enableA5Layer;
|
|
135
137
|
var enableLayerGroups = (0, _utils.getApplicationConfig)().enableLayerGroups;
|
|
136
138
|
var filteredLayerClasses = (0, _react.useMemo)(function () {
|
|
137
139
|
var filteredClasses = layerClasses;
|
|
@@ -153,8 +155,14 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
153
155
|
_rest2 = (0, _objectWithoutProperties2["default"])(_filteredClasses3, _excluded3);
|
|
154
156
|
filteredClasses = _rest2;
|
|
155
157
|
}
|
|
158
|
+
if (!enableA5Layer) {
|
|
159
|
+
var _filteredClasses4 = filteredClasses,
|
|
160
|
+
_a5 = _filteredClasses4.a5,
|
|
161
|
+
_rest3 = (0, _objectWithoutProperties2["default"])(_filteredClasses4, _excluded4);
|
|
162
|
+
filteredClasses = _rest3;
|
|
163
|
+
}
|
|
156
164
|
return filteredClasses;
|
|
157
|
-
}, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, layerClasses]);
|
|
165
|
+
}, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, enableA5Layer, layerClasses]);
|
|
158
166
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
159
167
|
className: "layer-manager"
|
|
160
168
|
}, /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(PanelViewListToggle, {
|
|
@@ -221,4 +229,4 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
221
229
|
return (0, _reactIntl.injectIntl)(LayerManager);
|
|
222
230
|
}
|
|
223
231
|
var _default = exports["default"] = LayerManagerFactory;
|
|
224
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9pY29ucyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJMYXllckJsZW5kaW5nU2VsZWN0b3IiLCJleHBvcnRzIiwiUmVhY3QiLCJtZW1vIiwiX3JlZiIsImxheWVyQmxlbmRpbmciLCJ1cGRhdGVMYXllckJsZW5kaW5nIiwiaW50bCIsImNsYXNzTmFtZSIsImxhYmVsZWRMYXllckJsZW5kaW5ncyIsIkxBWUVSX0JMRU5ESU5HUyIsInJlZHVjZSIsImFjYyIsImN1cnJlbnQiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJsYWJlbCIsIm9uQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJibGVuZGluZyIsImNyZWF0ZUVsZW1lbnQiLCJTaWRlUGFuZWxTZWN0aW9uIiwiUGFuZWxMYWJlbCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJzZWxlY3RlZEl0ZW1zIiwib3B0aW9ucyIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsImRpc3BsYXlOYW1lIiwiSW5mb0hlbHBlcldyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIk92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3ciLCJPdmVybGF5QmxlbmRpbmdTZWxlY3RvciIsIl9yZWYyIiwib3ZlcmxheUJsZW5kaW5nIiwidXBkYXRlT3ZlcmxheUJsZW5kaW5nIiwiaW5mb0hlbHBlciIsImxhYmVsZWRPdmVybGF5QmxlbmRpbmdzIiwiT1ZFUkxBWV9CTEVORElOR1MiLCJMYXllck1hbmFnZXJGYWN0b3J5IiwiZGVwcyIsIkxheWVyTGlzdEZhY3RvcnkiLCJEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSIsIlBhbmVsVGl0bGVGYWN0b3J5IiwiRGF0YXNldFNlY3Rpb25GYWN0b3J5IiwiQWRkTGF5ZXJCdXR0b25GYWN0b3J5IiwiSW5mb0hlbHBlckZhY3RvcnkiLCJQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkiLCJMYXllckxpc3QiLCJEYXRhc2V0TGF5ZXJHcm91cCIsIlBhbmVsVmlld0xpc3RUb2dnbGUiLCJQYW5lbFRpdGxlIiwiRGF0YXNldFNlY3Rpb24iLCJBZGRMYXllckJ1dHRvbiIsIkluZm9IZWxwZXIiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkxheWVyTWFuYWdlciIsIl9yZWYzIiwibGF5ZXJzIiwiZGF0YXNldHMiLCJsYXllck9yZGVyIiwicGFuZWxMaXN0VmlldyIsInBhbmVsTWV0YWRhdGEiLCJsYXllckNsYXNzZXMiLCJzaG93QWRkRGF0YU1vZGFsIiwiX3JlZjMkc2hvd0RlbGV0ZURhdGFzIiwic2hvd0RlbGV0ZURhdGFzZXQiLCJ1cGRhdGVUYWJsZUNvbG9yIiwic2hvd0RhdGFzZXRUYWJsZSIsInJlbW92ZURhdGFzZXQiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsIm1hcFN0YXRlIiwiYWRkTGF5ZXIiLCJ0b2dnbGVQYW5lbExpc3RWaWV3Iiwib25BZGRMYXllciIsImRhdGFzZXQiLCJ1bmRlZmluZWQiLCJvbkFkZEdyb3VwIiwiYWRkTGF5ZXJHcm91cCIsIm9uVG9nZ2xlUGFuZWxMaXN0VmlldyIsImxpc3RWaWV3IiwicGFuZWxJZCIsImlzU29ydEJ5RGF0YXNldE1vZGUiLCJQQU5FTF9WSUVXX1RPR0dMRVMiLCJieURhdGFzZXQiLCJlbmFibGVSYXN0ZXJUaWxlTGF5ZXIiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZVdNU0xheWVyIiwiZW5hYmxlRmxvd0xheWVyIiwiZW5hYmxlTGF5ZXJHcm91cHMiLCJmaWx0ZXJlZExheWVyQ2xhc3NlcyIsInVzZU1lbW8iLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJfZmlsdGVyZWRDbGFzc2VzMyIsIl9mbG93IiwiZmxvdyIsIm1vZGUiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsIkZvbGRlciIsInRvb2x0aXAiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge01hcFN0YXRlLCBQYW5lbExpc3RWaWV3LCBMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge0ZvbGRlcn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcblxudHlwZSBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICB1cGRhdGVMYXllckJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZU92ZXJsYXlCbGVuZGluZzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZz47XG4gIGluZm9IZWxwZXI6IFJlYWN0LlJlYWN0Tm9kZTtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgTGF5ZXJNYW5hZ2VyUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIGxheWVyQmxlbmRpbmc6IHN0cmluZztcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBzaG93QWRkRGF0YU1vZGFsOiAoKSA9PiB2b2lkO1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBVSVN0YXRlQWN0aW9ucy5vcGVuRGVsZXRlTW9kYWw+O1xuICBzaG93RGF0YXNldFRhYmxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMuc2hvd0RhdGFzZXRUYWJsZT47XG4gIHVwZGF0ZVRhYmxlQ29sb3I6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVUYWJsZUNvbG9yPjtcbiAgcGFuZWxMaXN0VmlldzogUGFuZWxMaXN0VmlldztcbiAgcGFuZWxNZXRhZGF0YTogU2lkZVBhbmVsSXRlbTtcbiAgc2hvd0RlbGV0ZURhdGFzZXQ/OiBib29sZWFuO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxuZXhwb3J0IGNvbnN0IExheWVyQmxlbmRpbmdTZWxlY3RvciA9IFJlYWN0Lm1lbW8oXG4gICh7bGF5ZXJCbGVuZGluZywgdXBkYXRlTGF5ZXJCbGVuZGluZywgaW50bCwgY2xhc3NOYW1lfTogTGF5ZXJCbGVuZGluZ1NlbGVjdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBsYWJlbGVkTGF5ZXJCbGVuZGluZ3MgPSBPYmplY3Qua2V5cyhMQVlFUl9CTEVORElOR1MpLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnJlbnQpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IExBWUVSX0JMRU5ESU5HU1tjdXJyZW50XS5sYWJlbH0pXTogY3VycmVudFxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgYmxlbmRpbmcgPT4gdXBkYXRlTGF5ZXJCbGVuZGluZyhsYWJlbGVkTGF5ZXJCbGVuZGluZ3NbYmxlbmRpbmddKSxcbiAgICAgIFt1cGRhdGVMYXllckJsZW5kaW5nLCBsYWJlbGVkTGF5ZXJCbGVuZGluZ3NdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwibGF5ZXJCbGVuZGluZy50aXRsZVwiIC8+XG4gICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IExBWUVSX0JMRU5ESU5HU1tsYXllckJsZW5kaW5nXS5sYWJlbH0pfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKGxhYmVsZWRMYXllckJsZW5kaW5ncyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICApO1xuICB9XG4pO1xuTGF5ZXJCbGVuZGluZ1NlbGVjdG9yLmRpc3BsYXlOYW1lID0gJ0xheWVyQmxlbmRpbmdTZWxlY3Rvcic7XG5cbmNvbnN0IEluZm9IZWxwZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxvYXQ6IHJpZ2h0O1xuYDtcblxuY29uc3QgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBPdmVybGF5QmxlbmRpbmdTZWxlY3RvciA9IFJlYWN0Lm1lbW8oXG4gICh7b3ZlcmxheUJsZW5kaW5nLCB1cGRhdGVPdmVybGF5QmxlbmRpbmcsIGludGwsIGluZm9IZWxwZXJ9OiBPdmVybGF5QmxlbmRpbmdTZWxlY3RvclByb3BzKSA9PiB7XG4gICAgY29uc3QgbGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MgPSBPYmplY3Qua2V5cyhPVkVSTEFZX0JMRU5ESU5HUykucmVkdWNlKFxuICAgICAgKGFjYywgY3VycmVudCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogT1ZFUkxBWV9CTEVORElOR1NbY3VycmVudF0ubGFiZWx9KV06IGN1cnJlbnRcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIGJsZW5kaW5nID0+IHVwZGF0ZU92ZXJsYXlCbGVuZGluZyhsYWJlbGVkT3ZlcmxheUJsZW5kaW5nc1tibGVuZGluZ10pLFxuICAgICAgW3VwZGF0ZU92ZXJsYXlCbGVuZGluZywgbGFiZWxlZE92ZXJsYXlCbGVuZGluZ3NdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3c+XG4gICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIm92ZXJsYXlCbGVuZGluZy50aXRsZVwiIC8+XG4gICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgIDxJbmZvSGVscGVyV3JhcHBlcj57aW5mb0hlbHBlcn08L0luZm9IZWxwZXJXcmFwcGVyPlxuICAgICAgICA8L092ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3c+XG4gICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBPVkVSTEFZX0JMRU5ESU5HU1tvdmVybGF5QmxlbmRpbmddLmxhYmVsfSl9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMobGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MpfVxuICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfVxuKTtcbk92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yLmRpc3BsYXlOYW1lID0gJ092ZXJsYXlCbGVuZGluZ1NlbGVjdG9yJztcblxuTGF5ZXJNYW5hZ2VyRmFjdG9yeS5kZXBzID0gW1xuICBMYXllckxpc3RGYWN0b3J5LFxuICBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnksXG4gIFBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5LFxuICBQYW5lbFRpdGxlRmFjdG9yeSxcbiAgRGF0YXNldFNlY3Rpb25GYWN0b3J5LFxuICBBZGRMYXllckJ1dHRvbkZhY3RvcnksXG4gIEluZm9IZWxwZXJGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIExheWVyTWFuYWdlckZhY3RvcnkoXG4gIExheWVyTGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMaXN0RmFjdG9yeT4sXG4gIERhdGFzZXRMYXllckdyb3VwOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhc2V0TGF5ZXJHcm91cEZhY3Rvcnk+LFxuICBQYW5lbFZpZXdMaXN0VG9nZ2xlOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeT4sXG4gIFBhbmVsVGl0bGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVGl0bGVGYWN0b3J5PixcbiAgRGF0YXNldFNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRTZWN0aW9uRmFjdG9yeT4sXG4gIEFkZExheWVyQnV0dG9uOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRMYXllckJ1dHRvbkZhY3Rvcnk+LFxuICBJbmZvSGVscGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbmZvSGVscGVyRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJNYW5hZ2VyOiBSZWFjdC5GQzxMYXllck1hbmFnZXJQcm9wcz4gPSAoe1xuICAgIGxheWVycyxcbiAgICBkYXRhc2V0cyxcbiAgICBpbnRsLFxuICAgIGxheWVyT3JkZXIsXG4gICAgcGFuZWxMaXN0VmlldyxcbiAgICBwYW5lbE1ldGFkYXRhLFxuICAgIGxheWVyQ2xhc3NlcyxcbiAgICBsYXllckJsZW5kaW5nLFxuICAgIG92ZXJsYXlCbGVuZGluZyxcbiAgICBzaG93QWRkRGF0YU1vZGFsLFxuICAgIHNob3dEZWxldGVEYXRhc2V0ID0gdHJ1ZSxcbiAgICB1cGRhdGVUYWJsZUNvbG9yLFxuICAgIHNob3dEYXRhc2V0VGFibGUsXG4gICAgcmVtb3ZlRGF0YXNldCxcbiAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgIG1hcFN0YXRlXG4gIH0pID0+IHtcbiAgICBjb25zdCB7YWRkTGF5ZXJ9ID0gdmlzU3RhdGVBY3Rpb25zO1xuICAgIGNvbnN0IHt0b2dnbGVQYW5lbExpc3RWaWV3fSA9IHVpU3RhdGVBY3Rpb25zO1xuICAgIGNvbnN0IG9uQWRkTGF5ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgIChkYXRhc2V0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWRkTGF5ZXIodW5kZWZpbmVkLCBkYXRhc2V0KTtcbiAgICAgIH0sXG4gICAgICBbYWRkTGF5ZXJdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkR3JvdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMuYWRkTGF5ZXJHcm91cCh7fSk7XG4gICAgfSwgW3Zpc1N0YXRlQWN0aW9uc10pO1xuXG4gICAgY29uc3Qgb25Ub2dnbGVQYW5lbExpc3RWaWV3ID0gdXNlQ2FsbGJhY2soXG4gICAgICAobGlzdFZpZXc6IHN0cmluZykgPT4ge1xuICAgICAgICB0b2dnbGVQYW5lbExpc3RWaWV3KHtwYW5lbElkOiAnbGF5ZXInLCBsaXN0Vmlld30pO1xuICAgICAgfSxcbiAgICAgIFt0b2dnbGVQYW5lbExpc3RWaWV3XVxuICAgICk7XG5cbiAgICBjb25zdCBpc1NvcnRCeURhdGFzZXRNb2RlID0gcGFuZWxMaXN0VmlldyA9PT0gUEFORUxfVklFV19UT0dHTEVTLmJ5RGF0YXNldDtcblxuICAgIC8vIHRlbXAgcGF0Y2ggdG8gaGlkZSBsYXllcnMgdGhhdCBhcmUgaW4gZGV2ZWxvcG1lbnRcbiAgICBjb25zdCBlbmFibGVSYXN0ZXJUaWxlTGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZVJhc3RlclRpbGVMYXllcjtcbiAgICBjb25zdCBlbmFibGVXTVNMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlV01TTGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlRmxvd0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVGbG93TGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlTGF5ZXJHcm91cHMgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZUxheWVyR3JvdXBzO1xuXG4gICAgY29uc3QgZmlsdGVyZWRMYXllckNsYXNzZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJlZENsYXNzZXMgPSBsYXllckNsYXNzZXM7XG4gICAgICBpZiAoIWVuYWJsZVJhc3RlclRpbGVMYXllcikge1xuICAgICAgICBjb25zdCB7cmFzdGVyVGlsZTogX3Jhc3RlclRpbGUsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZVdNU0xheWVyKSB7XG4gICAgICAgIGNvbnN0IHt3bXM6IF93bXMsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZUZsb3dMYXllcikge1xuICAgICAgICBjb25zdCB7ZmxvdzogX2Zsb3csIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyZWRDbGFzc2VzIGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgfSwgW2VuYWJsZVJhc3RlclRpbGVMYXllciwgZW5hYmxlV01TTGF5ZXIsIGVuYWJsZUZsb3dMYXllciwgbGF5ZXJDbGFzc2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci1tYW5hZ2VyXCI+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxQYW5lbFZpZXdMaXN0VG9nZ2xlIHRvZ2dsZVBhbmVsTGlzdFZpZXc9e29uVG9nZ2xlUGFuZWxMaXN0Vmlld30gbW9kZT17cGFuZWxMaXN0Vmlld30gLz5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8RGF0YXNldFNlY3Rpb25cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXQ9e3Nob3dEZWxldGVEYXRhc2V0fVxuICAgICAgICAgIHNob3dEYXRhc2V0TGlzdD17IWlzU29ydEJ5RGF0YXNldE1vZGV9XG4gICAgICAgICAgc2hvd0FkZERhdGFNb2RhbD17c2hvd0FkZERhdGFNb2RhbH1cbiAgICAgICAgLz5cbiAgICAgICAgPFNpZGVQYW5lbERpdmlkZXIgLz5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPFBhbmVsVGl0bGVcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLW1hbmFnZXItdGl0bGVcIlxuICAgICAgICAgICAgdGl0bGU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IHBhbmVsTWV0YWRhdGEubGFiZWx9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZW5hYmxlTGF5ZXJHcm91cHMgPyAoXG4gICAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLWdyb3VwX19jcmVhdGVcIlxuICAgICAgICAgICAgICAgIGlkPVwibmV3LWxheWVyLWdyb3VwXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkFkZEdyb3VwfVxuICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e0ZvbGRlcn1cbiAgICAgICAgICAgICAgICB0b29sdGlwPVwiQ3JlYXRlIGxheWVyIGdyb3VwXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPEFkZExheWVyQnV0dG9uIGRhdGFzZXRzPXtkYXRhc2V0c30gb25BZGQ9e29uQWRkTGF5ZXJ9IC8+XG4gICAgICAgICAgPC9QYW5lbFRpdGxlPlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIHtpc1NvcnRCeURhdGFzZXRNb2RlID8gKFxuICAgICAgICAgICAgPERhdGFzZXRMYXllckdyb3VwXG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17ZmlsdGVyZWRMYXllckNsYXNzZXN9XG4gICAgICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgIHNob3dEZWxldGVEYXRhc2V0PXtzaG93RGVsZXRlRGF0YXNldH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMYXllckxpc3RcbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8TGF5ZXJCbGVuZGluZ1NlbGVjdG9yXG4gICAgICAgICAgbGF5ZXJCbGVuZGluZz17bGF5ZXJCbGVuZGluZ31cbiAgICAgICAgICB1cGRhdGVMYXllckJsZW5kaW5nPXt2aXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZ31cbiAgICAgICAgICBpbnRsPXtpbnRsfVxuICAgICAgICAvPlxuICAgICAgICA8T3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JcbiAgICAgICAgICBvdmVybGF5QmxlbmRpbmc9e292ZXJsYXlCbGVuZGluZ31cbiAgICAgICAgICB1cGRhdGVPdmVybGF5QmxlbmRpbmc9e3Zpc1N0YXRlQWN0aW9ucy51cGRhdGVPdmVybGF5QmxlbmRpbmd9XG4gICAgICAgICAgaW50bD17aW50bH1cbiAgICAgICAgICBpbmZvSGVscGVyPXtcbiAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgIGlkPXtgb3ZlcmxheUJsZW5kaW5nLWRlc2NyaXB0aW9uYH1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249eydvdmVybGF5QmxlbmRpbmcuZGVzY3JpcHRpb24nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBpbmplY3RJbnRsKExheWVyTWFuYWdlcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyTWFuYWdlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVMsZUFBQSxHQUFBTixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVUsZUFBQSxHQUFBUCxzQkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQVcsYUFBQSxHQUFBUixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVksa0JBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLFdBQUEsR0FBQVYsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFjLFVBQUEsR0FBQWQsT0FBQTtBQU1BLElBQUFlLE1BQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixrQkFBQSxHQUFBYixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQWlCLE1BQUEsR0FBQWpCLE9BQUE7QUFBdUMsSUFBQWtCLFNBQUE7RUFBQUMsVUFBQTtFQUFBQyxVQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxn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
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9pY29ucyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX2V4Y2x1ZGVkNCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiTGF5ZXJCbGVuZGluZ1NlbGVjdG9yIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJsYXllckJsZW5kaW5nIiwidXBkYXRlTGF5ZXJCbGVuZGluZyIsImludGwiLCJjbGFzc05hbWUiLCJsYWJlbGVkTGF5ZXJCbGVuZGluZ3MiLCJMQVlFUl9CTEVORElOR1MiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwiZm9ybWF0TWVzc2FnZSIsImlkIiwibGFiZWwiLCJvbkNoYW5nZSIsInVzZUNhbGxiYWNrIiwiYmxlbmRpbmciLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJkaXNwbGF5TmFtZSIsIkluZm9IZWxwZXJXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93IiwiT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IiLCJfcmVmMiIsIm92ZXJsYXlCbGVuZGluZyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZyIsImluZm9IZWxwZXIiLCJsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyIsIk9WRVJMQVlfQkxFTkRJTkdTIiwiTGF5ZXJNYW5hZ2VyRmFjdG9yeSIsImRlcHMiLCJMYXllckxpc3RGYWN0b3J5IiwiRGF0YXNldExheWVyR3JvdXBGYWN0b3J5IiwiUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnkiLCJQYW5lbFRpdGxlRmFjdG9yeSIsIkRhdGFzZXRTZWN0aW9uRmFjdG9yeSIsIkFkZExheWVyQnV0dG9uRmFjdG9yeSIsIkluZm9IZWxwZXJGYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyR3JvdXAiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlIiwiUGFuZWxUaXRsZSIsIkRhdGFzZXRTZWN0aW9uIiwiQWRkTGF5ZXJCdXR0b24iLCJJbmZvSGVscGVyIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllck1hbmFnZXIiLCJfcmVmMyIsImxheWVycyIsImRhdGFzZXRzIiwibGF5ZXJPcmRlciIsInBhbmVsTGlzdFZpZXciLCJwYW5lbE1ldGFkYXRhIiwibGF5ZXJDbGFzc2VzIiwic2hvd0FkZERhdGFNb2RhbCIsIl9yZWYzJHNob3dEZWxldGVEYXRhcyIsInNob3dEZWxldGVEYXRhc2V0IiwidXBkYXRlVGFibGVDb2xvciIsInNob3dEYXRhc2V0VGFibGUiLCJyZW1vdmVEYXRhc2V0IiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZSIsImFkZExheWVyIiwidG9nZ2xlUGFuZWxMaXN0VmlldyIsIm9uQWRkTGF5ZXIiLCJkYXRhc2V0IiwidW5kZWZpbmVkIiwib25BZGRHcm91cCIsImFkZExheWVyR3JvdXAiLCJvblRvZ2dsZVBhbmVsTGlzdFZpZXciLCJsaXN0VmlldyIsInBhbmVsSWQiLCJpc1NvcnRCeURhdGFzZXRNb2RlIiwiUEFORUxfVklFV19UT0dHTEVTIiwiYnlEYXRhc2V0IiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVXTVNMYXllciIsImVuYWJsZUZsb3dMYXllciIsImVuYWJsZUE1TGF5ZXIiLCJlbmFibGVMYXllckdyb3VwcyIsImZpbHRlcmVkTGF5ZXJDbGFzc2VzIiwidXNlTWVtbyIsImZpbHRlcmVkQ2xhc3NlcyIsIl9maWx0ZXJlZENsYXNzZXMiLCJfcmFzdGVyVGlsZSIsInJhc3RlclRpbGUiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIl9maWx0ZXJlZENsYXNzZXMyIiwiX3dtcyIsIndtcyIsIl9maWx0ZXJlZENsYXNzZXMzIiwiX2Zsb3ciLCJmbG93IiwiX2ZpbHRlcmVkQ2xhc3NlczQiLCJfYTUiLCJhNSIsIm1vZGUiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsIkZvbGRlciIsInRvb2x0aXAiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge01hcFN0YXRlLCBQYW5lbExpc3RWaWV3LCBMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge0ZvbGRlcn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcblxudHlwZSBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICB1cGRhdGVMYXllckJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZU92ZXJsYXlCbGVuZGluZzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZz47XG4gIGluZm9IZWxwZXI6IFJlYWN0LlJlYWN0Tm9kZTtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgTGF5ZXJNYW5hZ2VyUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIGxheWVyQmxlbmRpbmc6IHN0cmluZztcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBzaG93QWRkRGF0YU1vZGFsOiAoKSA9PiB2b2lkO1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBVSVN0YXRlQWN0aW9ucy5vcGVuRGVsZXRlTW9kYWw+O1xuICBzaG93RGF0YXNldFRhYmxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMuc2hvd0RhdGFzZXRUYWJsZT47XG4gIHVwZGF0ZVRhYmxlQ29sb3I6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVUYWJsZUNvbG9yPjtcbiAgcGFuZWxMaXN0VmlldzogUGFuZWxMaXN0VmlldztcbiAgcGFuZWxNZXRhZGF0YTogU2lkZVBhbmVsSXRlbTtcbiAgc2hvd0RlbGV0ZURhdGFzZXQ/OiBib29sZWFuO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxuZXhwb3J0IGNvbnN0IExheWVyQmxlbmRpbmdTZWxlY3RvciA9IFJlYWN0Lm1lbW8oXG4gICh7bGF5ZXJCbGVuZGluZywgdXBkYXRlTGF5ZXJCbGVuZGluZywgaW50bCwgY2xhc3NOYW1lfTogTGF5ZXJCbGVuZGluZ1NlbGVjdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBsYWJlbGVkTGF5ZXJCbGVuZGluZ3MgPSBPYmplY3Qua2V5cyhMQVlFUl9CTEVORElOR1MpLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnJlbnQpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IExBWUVSX0JMRU5ESU5HU1tjdXJyZW50XS5sYWJlbH0pXTogY3VycmVudFxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgYmxlbmRpbmcgPT4gdXBkYXRlTGF5ZXJCbGVuZGluZyhsYWJlbGVkTGF5ZXJCbGVuZGluZ3NbYmxlbmRpbmddKSxcbiAgICAgIFt1cGRhdGVMYXllckJsZW5kaW5nLCBsYWJlbGVkTGF5ZXJCbGVuZGluZ3NdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwibGF5ZXJCbGVuZGluZy50aXRsZVwiIC8+XG4gICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IExBWUVSX0JMRU5ESU5HU1tsYXllckJsZW5kaW5nXS5sYWJlbH0pfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKGxhYmVsZWRMYXllckJsZW5kaW5ncyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICApO1xuICB9XG4pO1xuTGF5ZXJCbGVuZGluZ1NlbGVjdG9yLmRpc3BsYXlOYW1lID0gJ0xheWVyQmxlbmRpbmdTZWxlY3Rvcic7XG5cbmNvbnN0IEluZm9IZWxwZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZmxvYXQ6IHJpZ2h0O1xuYDtcblxuY29uc3QgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBPdmVybGF5QmxlbmRpbmdTZWxlY3RvciA9IFJlYWN0Lm1lbW8oXG4gICh7b3ZlcmxheUJsZW5kaW5nLCB1cGRhdGVPdmVybGF5QmxlbmRpbmcsIGludGwsIGluZm9IZWxwZXJ9OiBPdmVybGF5QmxlbmRpbmdTZWxlY3RvclByb3BzKSA9PiB7XG4gICAgY29uc3QgbGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MgPSBPYmplY3Qua2V5cyhPVkVSTEFZX0JMRU5ESU5HUykucmVkdWNlKFxuICAgICAgKGFjYywgY3VycmVudCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogT1ZFUkxBWV9CTEVORElOR1NbY3VycmVudF0ubGFiZWx9KV06IGN1cnJlbnRcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIGJsZW5kaW5nID0+IHVwZGF0ZU92ZXJsYXlCbGVuZGluZyhsYWJlbGVkT3ZlcmxheUJsZW5kaW5nc1tibGVuZGluZ10pLFxuICAgICAgW3VwZGF0ZU92ZXJsYXlCbGVuZGluZywgbGFiZWxlZE92ZXJsYXlCbGVuZGluZ3NdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3c+XG4gICAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIm92ZXJsYXlCbGVuZGluZy50aXRsZVwiIC8+XG4gICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgIDxJbmZvSGVscGVyV3JhcHBlcj57aW5mb0hlbHBlcn08L0luZm9IZWxwZXJXcmFwcGVyPlxuICAgICAgICA8L092ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3c+XG4gICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBPVkVSTEFZX0JMRU5ESU5HU1tvdmVybGF5QmxlbmRpbmddLmxhYmVsfSl9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMobGFiZWxlZE92ZXJsYXlCbGVuZGluZ3MpfVxuICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfVxuKTtcbk92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yLmRpc3BsYXlOYW1lID0gJ092ZXJsYXlCbGVuZGluZ1NlbGVjdG9yJztcblxuTGF5ZXJNYW5hZ2VyRmFjdG9yeS5kZXBzID0gW1xuICBMYXllckxpc3RGYWN0b3J5LFxuICBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnksXG4gIFBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5LFxuICBQYW5lbFRpdGxlRmFjdG9yeSxcbiAgRGF0YXNldFNlY3Rpb25GYWN0b3J5LFxuICBBZGRMYXllckJ1dHRvbkZhY3RvcnksXG4gIEluZm9IZWxwZXJGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIExheWVyTWFuYWdlckZhY3RvcnkoXG4gIExheWVyTGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMaXN0RmFjdG9yeT4sXG4gIERhdGFzZXRMYXllckdyb3VwOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhc2V0TGF5ZXJHcm91cEZhY3Rvcnk+LFxuICBQYW5lbFZpZXdMaXN0VG9nZ2xlOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeT4sXG4gIFBhbmVsVGl0bGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVGl0bGVGYWN0b3J5PixcbiAgRGF0YXNldFNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRTZWN0aW9uRmFjdG9yeT4sXG4gIEFkZExheWVyQnV0dG9uOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRMYXllckJ1dHRvbkZhY3Rvcnk+LFxuICBJbmZvSGVscGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbmZvSGVscGVyRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJNYW5hZ2VyOiBSZWFjdC5GQzxMYXllck1hbmFnZXJQcm9wcz4gPSAoe1xuICAgIGxheWVycyxcbiAgICBkYXRhc2V0cyxcbiAgICBpbnRsLFxuICAgIGxheWVyT3JkZXIsXG4gICAgcGFuZWxMaXN0VmlldyxcbiAgICBwYW5lbE1ldGFkYXRhLFxuICAgIGxheWVyQ2xhc3NlcyxcbiAgICBsYXllckJsZW5kaW5nLFxuICAgIG92ZXJsYXlCbGVuZGluZyxcbiAgICBzaG93QWRkRGF0YU1vZGFsLFxuICAgIHNob3dEZWxldGVEYXRhc2V0ID0gdHJ1ZSxcbiAgICB1cGRhdGVUYWJsZUNvbG9yLFxuICAgIHNob3dEYXRhc2V0VGFibGUsXG4gICAgcmVtb3ZlRGF0YXNldCxcbiAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgIG1hcFN0YXRlXG4gIH0pID0+IHtcbiAgICBjb25zdCB7YWRkTGF5ZXJ9ID0gdmlzU3RhdGVBY3Rpb25zO1xuICAgIGNvbnN0IHt0b2dnbGVQYW5lbExpc3RWaWV3fSA9IHVpU3RhdGVBY3Rpb25zO1xuICAgIGNvbnN0IG9uQWRkTGF5ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgIChkYXRhc2V0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWRkTGF5ZXIodW5kZWZpbmVkLCBkYXRhc2V0KTtcbiAgICAgIH0sXG4gICAgICBbYWRkTGF5ZXJdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkR3JvdXAgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMuYWRkTGF5ZXJHcm91cCh7fSk7XG4gICAgfSwgW3Zpc1N0YXRlQWN0aW9uc10pO1xuXG4gICAgY29uc3Qgb25Ub2dnbGVQYW5lbExpc3RWaWV3ID0gdXNlQ2FsbGJhY2soXG4gICAgICAobGlzdFZpZXc6IHN0cmluZykgPT4ge1xuICAgICAgICB0b2dnbGVQYW5lbExpc3RWaWV3KHtwYW5lbElkOiAnbGF5ZXInLCBsaXN0Vmlld30pO1xuICAgICAgfSxcbiAgICAgIFt0b2dnbGVQYW5lbExpc3RWaWV3XVxuICAgICk7XG5cbiAgICBjb25zdCBpc1NvcnRCeURhdGFzZXRNb2RlID0gcGFuZWxMaXN0VmlldyA9PT0gUEFORUxfVklFV19UT0dHTEVTLmJ5RGF0YXNldDtcblxuICAgIC8vIHRlbXAgcGF0Y2ggdG8gaGlkZSBsYXllcnMgdGhhdCBhcmUgaW4gZGV2ZWxvcG1lbnRcbiAgICBjb25zdCBlbmFibGVSYXN0ZXJUaWxlTGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZVJhc3RlclRpbGVMYXllcjtcbiAgICBjb25zdCBlbmFibGVXTVNMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlV01TTGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlRmxvd0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVGbG93TGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlQTVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlQTVMYXllcjtcbiAgICBjb25zdCBlbmFibGVMYXllckdyb3VwcyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlTGF5ZXJHcm91cHM7XG5cbiAgICBjb25zdCBmaWx0ZXJlZExheWVyQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGZpbHRlcmVkQ2xhc3NlcyA9IGxheWVyQ2xhc3NlcztcbiAgICAgIGlmICghZW5hYmxlUmFzdGVyVGlsZUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHtyYXN0ZXJUaWxlOiBfcmFzdGVyVGlsZSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlV01TTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3dtczogX3dtcywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlRmxvd0xheWVyKSB7XG4gICAgICAgIGNvbnN0IHtmbG93OiBfZmxvdywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlQTVMYXllcikge1xuICAgICAgICBjb25zdCB7YTU6IF9hNSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJlZENsYXNzZXMgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICB9LCBbZW5hYmxlUmFzdGVyVGlsZUxheWVyLCBlbmFibGVXTVNMYXllciwgZW5hYmxlRmxvd0xheWVyLCBlbmFibGVBNUxheWVyLCBsYXllckNsYXNzZXNdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyLW1hbmFnZXJcIj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPFBhbmVsVmlld0xpc3RUb2dnbGUgdG9nZ2xlUGFuZWxMaXN0Vmlldz17b25Ub2dnbGVQYW5lbExpc3RWaWV3fSBtb2RlPXtwYW5lbExpc3RWaWV3fSAvPlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxEYXRhc2V0U2VjdGlvblxuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldD17c2hvd0RlbGV0ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RhdGFzZXRMaXN0PXshaXNTb3J0QnlEYXRhc2V0TW9kZX1cbiAgICAgICAgICBzaG93QWRkRGF0YU1vZGFsPXtzaG93QWRkRGF0YU1vZGFsfVxuICAgICAgICAvPlxuICAgICAgICA8U2lkZVBhbmVsRGl2aWRlciAvPlxuICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8UGFuZWxUaXRsZVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItbWFuYWdlci10aXRsZVwiXG4gICAgICAgICAgICB0aXRsZT17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogcGFuZWxNZXRhZGF0YS5sYWJlbH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlbmFibGVMYXllckdyb3VwcyA/IChcbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX2NyZWF0ZVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJuZXctbGF5ZXItZ3JvdXBcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQWRkR3JvdXB9XG4gICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17Rm9sZGVyfVxuICAgICAgICAgICAgICAgIHRvb2x0aXA9XCJDcmVhdGUgbGF5ZXIgZ3JvdXBcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8QWRkTGF5ZXJCdXR0b24gZGF0YXNldHM9e2RhdGFzZXRzfSBvbkFkZD17b25BZGRMYXllcn0gLz5cbiAgICAgICAgICA8L1BhbmVsVGl0bGU+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAge2lzU29ydEJ5RGF0YXNldE1vZGUgPyAoXG4gICAgICAgICAgICA8RGF0YXNldExheWVyR3JvdXBcbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17dXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXQ9e3Nob3dEZWxldGVEYXRhc2V0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPExheWVyTGlzdFxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBsYXllck9yZGVyPXtsYXllck9yZGVyfVxuICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIHZpc1N0YXRlQWN0aW9ucz17dmlzU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBtYXBTdGF0ZUFjdGlvbnM9e21hcFN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICBsYXllckNsYXNzZXM9e2ZpbHRlcmVkTGF5ZXJDbGFzc2VzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxMYXllckJsZW5kaW5nU2VsZWN0b3JcbiAgICAgICAgICBsYXllckJsZW5kaW5nPXtsYXllckJsZW5kaW5nfVxuICAgICAgICAgIHVwZGF0ZUxheWVyQmxlbmRpbmc9e3Zpc1N0YXRlQWN0aW9ucy51cGRhdGVMYXllckJsZW5kaW5nfVxuICAgICAgICAgIGludGw9e2ludGx9XG4gICAgICAgIC8+XG4gICAgICAgIDxPdmVybGF5QmxlbmRpbmdTZWxlY3RvclxuICAgICAgICAgIG92ZXJsYXlCbGVuZGluZz17b3ZlcmxheUJsZW5kaW5nfVxuICAgICAgICAgIHVwZGF0ZU92ZXJsYXlCbGVuZGluZz17dmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZ31cbiAgICAgICAgICBpbnRsPXtpbnRsfVxuICAgICAgICAgIGluZm9IZWxwZXI9e1xuICAgICAgICAgICAgPEluZm9IZWxwZXJcbiAgICAgICAgICAgICAgaWQ9e2BvdmVybGF5QmxlbmRpbmctZGVzY3JpcHRpb25gfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17J292ZXJsYXlCbGVuZGluZy5kZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoTGF5ZXJNYW5hZ2VyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJNYW5hZ2VyRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFB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
|
|
@@ -17,7 +17,8 @@ var _utils = require("@kepler.gl/utils");
|
|
|
17
17
|
var _excluded = ["rasterTile"],
|
|
18
18
|
_excluded2 = ["wms"],
|
|
19
19
|
_excluded3 = ["flow"],
|
|
20
|
-
_excluded4 = ["bitmap"]
|
|
20
|
+
_excluded4 = ["bitmap"],
|
|
21
|
+
_excluded5 = ["a5"];
|
|
21
22
|
var _templateObject; // SPDX-License-Identifier: MIT
|
|
22
23
|
// Copyright contributors to the kepler.gl project
|
|
23
24
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -49,6 +50,7 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
|
|
|
49
50
|
var enableWMSLayer = (0, _utils.getApplicationConfig)().enableWMSLayer;
|
|
50
51
|
var enableFlowLayer = (0, _utils.getApplicationConfig)().enableFlowLayer;
|
|
51
52
|
var enableBitmapLayer = (0, _utils.getApplicationConfig)().enableBitmapLayer;
|
|
53
|
+
var enableA5Layer = (0, _utils.getApplicationConfig)().enableA5Layer;
|
|
52
54
|
var filteredLayerClasses = (0, _react.useMemo)(function () {
|
|
53
55
|
var filteredClasses = layerClasses;
|
|
54
56
|
if (!enableRasterTileLayer) {
|
|
@@ -75,8 +77,14 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
|
|
|
75
77
|
_rest3 = (0, _objectWithoutProperties2["default"])(_filteredClasses4, _excluded4);
|
|
76
78
|
filteredClasses = _rest3;
|
|
77
79
|
}
|
|
80
|
+
if (!enableA5Layer) {
|
|
81
|
+
var _filteredClasses5 = filteredClasses,
|
|
82
|
+
_a5 = _filteredClasses5.a5,
|
|
83
|
+
_rest4 = (0, _objectWithoutProperties2["default"])(_filteredClasses5, _excluded5);
|
|
84
|
+
filteredClasses = _rest4;
|
|
85
|
+
}
|
|
78
86
|
return filteredClasses;
|
|
79
|
-
}, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, enableBitmapLayer, layerClasses]);
|
|
87
|
+
}, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, enableBitmapLayer, enableA5Layer, layerClasses]);
|
|
80
88
|
return /*#__PURE__*/_react["default"].createElement(DatasetLayerSectionWrapper, null, /*#__PURE__*/_react["default"].createElement(SourceDataCatalog, {
|
|
81
89
|
datasets: datasetCatalog,
|
|
82
90
|
showDatasetTable: showDatasetTable,
|
|
@@ -98,4 +106,4 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
|
|
|
98
106
|
return DatasetLayerSection;
|
|
99
107
|
}
|
|
100
108
|
var _default = exports["default"] = DatasetLayerSectionFactory;
|
|
101
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc291cmNlRGF0YUNhdGFsb2ciLCJfbGF5ZXJMaXN0IiwiX3V0aWxzIiwiX2V4Y2x1ZGVkIiwiX2V4Y2x1ZGVkMiIsIl9leGNsdWRlZDMiLCJfZXhjbHVkZWQ0IiwiX3RlbXBsYXRlT2JqZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJEYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlciIsInN0eWxlZCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJEYXRhc2V0TGF5ZXJTZWN0aW9uRmFjdG9yeSIsImRlcHMiLCJTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3RvcnkiLCJMYXllckxpc3RGYWN0b3J5IiwiU291cmNlRGF0YUNhdGFsb2ciLCJMYXllckxpc3QiLCJEYXRhc2V0TGF5ZXJTZWN0aW9uIiwicHJvcHMiLCJkYXRhc2V0IiwiZGF0YXNldHMiLCJzaG93RGF0YXNldFRhYmxlIiwibGF5ZXJzIiwidXBkYXRlVGFibGVDb2xvciIsInNob3dEZWxldGVEYXRhc2V0IiwicmVtb3ZlRGF0YXNldCIsImxheWVyT3JkZXIiLCJsYXllckNsYXNzZXMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsIm1hcFN0YXRlIiwiZGF0YXNldENhdGFsb2ciLCJ1c2VNZW1vIiwiX2RlZmluZVByb3BlcnR5MiIsImlkIiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVXTVNMYXllciIsImVuYWJsZUZsb3dMYXllciIsImVuYWJsZUJpdG1hcExheWVyIiwiZmlsdGVyZWRMYXllckNsYXNzZXMiLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJfZmlsdGVyZWRDbGFzc2VzMyIsIl9mbG93IiwiZmxvdyIsIl9maWx0ZXJlZENsYXNzZXM0IiwiX2JpdG1hcCIsImJpdG1hcCIsImNyZWF0ZUVsZW1lbnQiLCJpc1NvcnRhYmxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvZGF0YXNldC1sYXllci1zZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IFNvdXJjZURhdGFDYXRhbG9nRmFjdG9yeSBmcm9tICcuLi9jb21tb24vc291cmNlLWRhdGEtY2F0YWxvZyc7XG5pbXBvcnQgTGF5ZXJMaXN0RmFjdG9yeSBmcm9tICcuL2xheWVyLWxpc3QnO1xuaW1wb3J0IHtMYXllciwgTGF5ZXJDbGFzc2VzVHlwZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtVSVN0YXRlQWN0aW9ucywgQWN0aW9uSGFuZGxlciwgVmlzU3RhdGVBY3Rpb25zLCBNYXBTdGF0ZUFjdGlvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0tlcGxlclRhYmxlLCBEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXJPcmRlciwgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG50eXBlIERhdGFzZXRMYXllclNlY3Rpb25Qcm9wcyA9IHtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBkYXRhc2V0OiBLZXBsZXJUYWJsZTtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIHNob3dEZWxldGVEYXRhc2V0OiBib29sZWFuO1xuICBzaG93RGF0YXNldFRhYmxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMuc2hvd0RhdGFzZXRUYWJsZT47XG4gIHVwZGF0ZVRhYmxlQ29sb3I6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVUYWJsZUNvbG9yPjtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59O1xuXG5jb25zdCBEYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdkYXRhc2V0LWxheWVyLXNlY3Rpb24nXG59KWBcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbmA7XG5cbkRhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5LmRlcHMgPSBbU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5LCBMYXllckxpc3RGYWN0b3J5XTtcblxuZnVuY3Rpb24gRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkoXG4gIFNvdXJjZURhdGFDYXRhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3Rvcnk+LFxuICBMYXllckxpc3Q6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGlzdEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgRGF0YXNldExheWVyU2VjdGlvbjogUmVhY3QuRkM8RGF0YXNldExheWVyU2VjdGlvblByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkYXRhc2V0LFxuICAgICAgZGF0YXNldHMsXG4gICAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgICAgbGF5ZXJzLFxuICAgICAgdXBkYXRlVGFibGVDb2xvcixcbiAgICAgIHNob3dEZWxldGVEYXRhc2V0LFxuICAgICAgcmVtb3ZlRGF0YXNldCxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICBsYXllckNsYXNzZXMsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgZGF0YXNldENhdGFsb2cgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiB7W2RhdGFzZXQuaWRdOiBkYXRhc2V0fTtcbiAgICB9LCBbZGF0YXNldF0pO1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBlbmFibGVGbG93TGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZUZsb3dMYXllcjtcbiAgICBjb25zdCBlbmFibGVCaXRtYXBMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlQml0bWFwTGF5ZXI7XG5cbiAgICBjb25zdCBmaWx0ZXJlZExheWVyQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGZpbHRlcmVkQ2xhc3NlcyA9IGxheWVyQ2xhc3NlcztcbiAgICAgIGlmICghZW5hYmxlUmFzdGVyVGlsZUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHtyYXN0ZXJUaWxlOiBfcmFzdGVyVGlsZSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlV01TTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3dtczogX3dtcywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlRmxvd0xheWVyKSB7XG4gICAgICAgIGNvbnN0IHtmbG93OiBfZmxvdywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlQml0bWFwTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge2JpdG1hcDogX2JpdG1hcCwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJlZENsYXNzZXMgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICB9LCBbZW5hYmxlUmFzdGVyVGlsZUxheWVyLCBlbmFibGVXTVNMYXllciwgZW5hYmxlRmxvd0xheWVyLCBlbmFibGVCaXRtYXBMYXllciwgbGF5ZXJDbGFzc2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyPlxuICAgICAgICA8U291cmNlRGF0YUNhdGFsb2dcbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldENhdGFsb2d9XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXQ9e3Nob3dEZWxldGVEYXRhc2V0fVxuICAgICAgICAvPlxuICAgICAgICA8TGF5ZXJMaXN0XG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgIGlzU29ydGFibGU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9EYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBEYXRhc2V0TGF5ZXJTZWN0aW9uO1xufVxuXG5l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
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc291cmNlRGF0YUNhdGFsb2ciLCJfbGF5ZXJMaXN0IiwiX3V0aWxzIiwiX2V4Y2x1ZGVkIiwiX2V4Y2x1ZGVkMiIsIl9leGNsdWRlZDMiLCJfZXhjbHVkZWQ0IiwiX2V4Y2x1ZGVkNSIsIl90ZW1wbGF0ZU9iamVjdCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiRGF0YXNldExheWVyU2VjdGlvbldyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkiLCJkZXBzIiwiU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5IiwiTGF5ZXJMaXN0RmFjdG9yeSIsIlNvdXJjZURhdGFDYXRhbG9nIiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyU2VjdGlvbiIsInByb3BzIiwiZGF0YXNldCIsImRhdGFzZXRzIiwic2hvd0RhdGFzZXRUYWJsZSIsImxheWVycyIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGVsZXRlRGF0YXNldCIsInJlbW92ZURhdGFzZXQiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZSIsImRhdGFzZXRDYXRhbG9nIiwidXNlTWVtbyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJpZCIsImVuYWJsZVJhc3RlclRpbGVMYXllciIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZW5hYmxlV01TTGF5ZXIiLCJlbmFibGVGbG93TGF5ZXIiLCJlbmFibGVCaXRtYXBMYXllciIsImVuYWJsZUE1TGF5ZXIiLCJmaWx0ZXJlZExheWVyQ2xhc3NlcyIsImZpbHRlcmVkQ2xhc3NlcyIsIl9maWx0ZXJlZENsYXNzZXMiLCJfcmFzdGVyVGlsZSIsInJhc3RlclRpbGUiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIl9maWx0ZXJlZENsYXNzZXMyIiwiX3dtcyIsIndtcyIsIl9maWx0ZXJlZENsYXNzZXMzIiwiX2Zsb3ciLCJmbG93IiwiX2ZpbHRlcmVkQ2xhc3NlczQiLCJfYml0bWFwIiwiYml0bWFwIiwiX2ZpbHRlcmVkQ2xhc3NlczUiLCJfYTUiLCJhNSIsImNyZWF0ZUVsZW1lbnQiLCJpc1NvcnRhYmxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvZGF0YXNldC1sYXllci1zZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IFNvdXJjZURhdGFDYXRhbG9nRmFjdG9yeSBmcm9tICcuLi9jb21tb24vc291cmNlLWRhdGEtY2F0YWxvZyc7XG5pbXBvcnQgTGF5ZXJMaXN0RmFjdG9yeSBmcm9tICcuL2xheWVyLWxpc3QnO1xuaW1wb3J0IHtMYXllciwgTGF5ZXJDbGFzc2VzVHlwZX0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtVSVN0YXRlQWN0aW9ucywgQWN0aW9uSGFuZGxlciwgVmlzU3RhdGVBY3Rpb25zLCBNYXBTdGF0ZUFjdGlvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0tlcGxlclRhYmxlLCBEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXJPcmRlciwgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG50eXBlIERhdGFzZXRMYXllclNlY3Rpb25Qcm9wcyA9IHtcbiAgZGF0YXNldHM6IERhdGFzZXRzO1xuICBkYXRhc2V0OiBLZXBsZXJUYWJsZTtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBMYXllck9yZGVyO1xuICBsYXllckNsYXNzZXM6IExheWVyQ2xhc3Nlc1R5cGU7XG4gIHNob3dEZWxldGVEYXRhc2V0OiBib29sZWFuO1xuICBzaG93RGF0YXNldFRhYmxlOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMuc2hvd0RhdGFzZXRUYWJsZT47XG4gIHVwZGF0ZVRhYmxlQ29sb3I6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy51cGRhdGVUYWJsZUNvbG9yPjtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59O1xuXG5jb25zdCBEYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdkYXRhc2V0LWxheWVyLXNlY3Rpb24nXG59KWBcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbmA7XG5cbkRhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5LmRlcHMgPSBbU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5LCBMYXllckxpc3RGYWN0b3J5XTtcblxuZnVuY3Rpb24gRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkoXG4gIFNvdXJjZURhdGFDYXRhbG9nOiBSZXR1cm5UeXBlPHR5cGVvZiBTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3Rvcnk+LFxuICBMYXllckxpc3Q6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGlzdEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgRGF0YXNldExheWVyU2VjdGlvbjogUmVhY3QuRkM8RGF0YXNldExheWVyU2VjdGlvblByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBkYXRhc2V0LFxuICAgICAgZGF0YXNldHMsXG4gICAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgICAgbGF5ZXJzLFxuICAgICAgdXBkYXRlVGFibGVDb2xvcixcbiAgICAgIHNob3dEZWxldGVEYXRhc2V0LFxuICAgICAgcmVtb3ZlRGF0YXNldCxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICBsYXllckNsYXNzZXMsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgZGF0YXNldENhdGFsb2cgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiB7W2RhdGFzZXQuaWRdOiBkYXRhc2V0fTtcbiAgICB9LCBbZGF0YXNldF0pO1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBlbmFibGVGbG93TGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZUZsb3dMYXllcjtcbiAgICBjb25zdCBlbmFibGVCaXRtYXBMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlQml0bWFwTGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlQTVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlQTVMYXllcjtcblxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJDbGFzc2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBsZXQgZmlsdGVyZWRDbGFzc2VzID0gbGF5ZXJDbGFzc2VzO1xuICAgICAgaWYgKCFlbmFibGVSYXN0ZXJUaWxlTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3Jhc3RlclRpbGU6IF9yYXN0ZXJUaWxlLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVXTVNMYXllcikge1xuICAgICAgICBjb25zdCB7d21zOiBfd21zLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVGbG93TGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge2Zsb3c6IF9mbG93LCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVCaXRtYXBMYXllcikge1xuICAgICAgICBjb25zdCB7Yml0bWFwOiBfYml0bWFwLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVBNUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHthNTogX2E1LCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcmVkQ2xhc3NlcyBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgIH0sIFtcbiAgICAgIGVuYWJsZVJhc3RlclRpbGVMYXllcixcbiAgICAgIGVuYWJsZVdNU0xheWVyLFxuICAgICAgZW5hYmxlRmxvd0xheWVyLFxuICAgICAgZW5hYmxlQml0bWFwTGF5ZXIsXG4gICAgICBlbmFibGVBNUxheWVyLFxuICAgICAgbGF5ZXJDbGFzc2VzXG4gICAgXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyPlxuICAgICAgICA8U291cmNlRGF0YUNhdGFsb2dcbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldENhdGFsb2d9XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXQ9e3Nob3dEZWxldGVEYXRhc2V0fVxuICAgICAgICAvPlxuICAgICAgICA8TGF5ZXJMaXN0XG4gICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgIGlzU29ydGFibGU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9EYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBEYXRhc2V0TGF5ZXJTZWN0aW9uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRhc2V0TGF5ZXJTZWN0aW9uRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsa0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUlBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUFzRCxJQUFBTSxTQUFBO0VBQUFDLFVBQUE7RUFBQUMsVUFBQTtFQUFBQyxVQUFBO0VBQUFDLFVBQUE7QUFBQSxJQUFBQyxlQUFBLEVBWHREO0FBQ0E7QUFBQSxTQUFBWix3QkFBQWEsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQWYsdUJBQUEsWUFBQUEsd0JBQUFhLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMs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
|