@kepler.gl/components 3.1.0-alpha.3 → 3.1.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bottom-widget.d.ts +7 -1
- package/dist/bottom-widget.js +2 -8
- package/dist/common/action-panel.d.ts +5 -6
- package/dist/common/action-panel.js +3 -5
- package/dist/common/animation-control/animation-control.d.ts +2 -1
- package/dist/common/animation-control/animation-control.js +4 -2
- package/dist/common/animation-control/animation-speed-slider.js +21 -7
- package/dist/common/animation-control/floating-time-display.js +1 -1
- package/dist/common/animation-control/play-control.js +11 -13
- package/dist/common/animation-control/playback-controls.d.ts +11 -20
- package/dist/common/animation-control/playback-controls.js +6 -4
- package/dist/common/animation-control/reset-control.js +11 -13
- package/dist/common/animation-control/speed-control.js +10 -12
- package/dist/common/color-legend.d.ts +4 -5
- package/dist/common/color-legend.js +16 -5
- package/dist/common/column-stats-chart.d.ts +9 -3
- package/dist/common/column-stats-chart.js +17 -63
- package/dist/common/data-table/canvas.d.ts +2 -1
- package/dist/common/data-table/index.d.ts +7 -7
- package/dist/common/data-table/index.js +4 -5
- package/dist/common/file-uploader/file-upload-progress.d.ts +4 -4
- package/dist/common/file-uploader/file-upload-progress.js +1 -2
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/upload-button.js +2 -2
- package/dist/common/flex-container.d.ts +8 -3
- package/dist/common/histogram-plot.js +4 -2
- package/dist/common/icon-button.d.ts +7 -4
- package/dist/common/icons/draggable-dots.d.ts +14 -0
- package/dist/common/icons/draggable-dots.js +85 -0
- package/dist/common/icons/horizontal-resize-handle.d.ts +14 -0
- package/dist/common/icons/horizontal-resize-handle.js +59 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/pin.js +1 -1
- package/dist/common/info-helper.js +2 -2
- package/dist/common/item-selector/chickleted-input.d.ts +21 -17
- package/dist/common/item-selector/chickleted-input.js +3 -3
- package/dist/common/item-selector/dropdown-list.d.ts +12 -12
- package/dist/common/item-selector/dropdown-list.js +1 -2
- package/dist/common/item-selector/dropdown-select.d.ts +8 -4
- package/dist/common/item-selector/dropdown-select.js +2 -2
- package/dist/common/item-selector/item-selector.d.ts +5 -9
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +20 -6
- package/dist/common/item-selector/typeahead.js +3 -3
- package/dist/common/loading-spinner.d.ts +8 -4
- package/dist/common/loading-spinner.js +1 -1
- package/dist/common/modal.d.ts +12 -12
- package/dist/common/modal.js +3 -3
- package/dist/common/portaled.d.ts +22 -486
- package/dist/common/portaled.js +6 -3
- package/dist/common/range-plot.d.ts +23 -28
- package/dist/common/range-plot.js +38 -29
- package/dist/common/range-slider-timeline.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +5 -0
- package/dist/common/slider/slider-bar-handle.js +2 -2
- package/dist/common/slider/slider-handle.d.ts +9 -0
- package/dist/common/slider/slider-handle.js +3 -3
- package/dist/common/slider/slider.d.ts +2 -2
- package/dist/common/styled-components.d.ts +444 -92
- package/dist/common/styled-components.js +15 -11
- package/dist/common/sync-timeline-control.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +4 -0
- package/dist/common/time-range-slider-time-title.js +1 -1
- package/dist/common/time-range-slider.d.ts +7 -3
- package/dist/common/time-range-slider.js +1 -1
- package/dist/common/timeline-slider.d.ts +2 -0
- package/dist/common/timeline-slider.js +1 -1
- package/dist/common/toolbar-item.js +2 -2
- package/dist/common/toolbar.d.ts +5 -3
- package/dist/common/toolbar.js +1 -1
- package/dist/common/vertical-toolbar.d.ts +6 -1
- package/dist/container.js +2 -2
- package/dist/dnd-context.d.ts +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +4 -4
- package/dist/effects/effect-manager.js +4 -2
- package/dist/effects/effect-panel-header.js +5 -5
- package/dist/effects/effect-time-configurator.js +2 -2
- package/dist/effects/effect-time-selector.d.ts +1 -6
- package/dist/effects/effect-time-selector.js +3 -3
- package/dist/effects/effect-type-dropdown-list.js +2 -2
- package/dist/effects/effect-type-list-item.d.ts +1 -10
- package/dist/effects/effect-type-list-item.js +2 -2
- package/dist/effects/effect-type-selector.d.ts +1 -12
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/timezone-selector.d.ts +1 -9
- package/dist/effects/timezone-selector.js +1 -1
- package/dist/filters/components.d.ts +6 -3
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +3 -4
- package/dist/filters/time-widget-top.js +2 -2
- package/dist/filters/types.d.ts +4 -2
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.js +2 -2
- package/dist/geocoder-panel.d.ts +6 -0
- package/dist/geocoder-panel.js +1 -1
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +3 -2
- package/dist/hooks/use-fetch-vector-tile-metadata.js +33 -18
- package/dist/hooks/use-legend-position.d.ts +36 -0
- package/dist/hooks/use-legend-position.js +147 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +18 -3
- package/dist/kepler-gl.d.ts +44 -5
- package/dist/kepler-gl.js +77 -4
- package/dist/map/layer-hover-info.d.ts +3 -1
- package/dist/map/map-control-panel.js +4 -3
- package/dist/map/map-control-toolbar.d.ts +15 -1
- package/dist/map/map-control-toolbar.js +1 -1
- package/dist/map/map-legend-panel.d.ts +10 -35
- package/dist/map/map-legend-panel.js +242 -127
- package/dist/map/map-legend.d.ts +3 -2
- package/dist/map/map-legend.js +7 -10
- package/dist/map/map-popover.js +16 -11
- package/dist/map-container.d.ts +10 -8
- package/dist/map-container.js +86 -55
- package/dist/modal-container.d.ts +2 -1
- package/dist/modal-container.js +4 -3
- package/dist/modals/add-map-style-modal.d.ts +3 -0
- package/dist/modals/add-map-style-modal.js +58 -10
- package/dist/modals/cloud-components/cloud-item.js +2 -2
- package/dist/modals/cloud-tile.d.ts +6 -1
- package/dist/modals/cloud-tile.js +2 -2
- package/dist/modals/data-table-modal.d.ts +5 -3
- package/dist/modals/data-table-modal.js +3 -3
- package/dist/modals/export-data-modal.js +4 -5
- package/dist/modals/export-map-modal/components.d.ts +5 -3
- package/dist/modals/export-map-modal/export-html-map.js +2 -2
- package/dist/modals/export-map-modal/export-json-map.js +3 -2
- package/dist/modals/modal-dialog.d.ts +3 -1
- package/dist/modals/modal-tabs.js +2 -2
- package/dist/modals/share-map-modal.d.ts +4 -4
- package/dist/modals/storage-map-viewer.js +3 -3
- package/dist/modals/tilesets-modals/common.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +3 -3
- package/dist/modals/tilesets-modals/load-data-footer.js +16 -7
- package/dist/modals/tilesets-modals/load-tileset.js +5 -4
- package/dist/modals/tilesets-modals/tileset-vector-form.js +28 -14
- package/dist/plot-container.js +3 -3
- package/dist/side-panel/add-by-dataset-button.js +4 -1
- package/dist/side-panel/common/dataset-info.js +3 -3
- package/dist/side-panel/common/dataset-title.d.ts +1 -0
- package/dist/side-panel/common/dataset-title.js +5 -4
- package/dist/side-panel/filter-manager.d.ts +2 -2
- package/dist/side-panel/filter-manager.js +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +9 -1
- package/dist/side-panel/filter-panel/filter-panel-header.js +24 -9
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +10 -1
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +5 -3
- package/dist/side-panel/layer-panel/aggr-scale-selector.d.ts +2 -1
- package/dist/side-panel/layer-panel/aggr-scale-selector.js +3 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +2 -4
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +9 -5
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +15 -7
- package/dist/side-panel/layer-panel/color-breaks-panel.js +52 -20
- package/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
- package/dist/side-panel/layer-panel/color-palette.d.ts +9 -4
- package/dist/side-panel/layer-panel/color-palette.js +13 -7
- package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +3 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +82 -37
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -6
- package/dist/side-panel/layer-panel/color-selector.js +52 -36
- package/dist/side-panel/layer-panel/custom-palette.d.ts +44 -15
- package/dist/side-panel/layer-panel/custom-palette.js +342 -39
- package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -5
- package/dist/side-panel/layer-panel/custom-picker.js +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +5 -3
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +1 -1
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -11
- package/dist/side-panel/layer-panel/layer-config-group.js +2 -2
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +7 -7
- package/dist/side-panel/layer-panel/layer-configurator.js +10 -10
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -0
- package/dist/side-panel/layer-panel/layer-list.js +7 -4
- package/dist/side-panel/layer-panel/layer-panel-header.js +5 -5
- package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -0
- package/dist/side-panel/layer-panel/layer-panel.js +8 -8
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +1 -10
- package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -8
- package/dist/side-panel/layer-panel/layer-type-selector.js +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +6 -3
- package/dist/side-panel/map-style-panel/map-style-selector.js +2 -2
- package/dist/side-panel/panel-header-action.js +2 -2
- package/dist/side-panel/panel-header.js +2 -2
- package/dist/side-panel/panel-tab.d.ts +3 -3
- package/dist/side-panel/panel-tab.js +2 -2
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/panel-view-list-toggle.js +2 -2
- package/dist/side-panel/side-bar.js +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +6 -7
- package/dist/types.js +1 -1
- package/package.json +23 -22
|
@@ -34,9 +34,9 @@ var _textLabelPanel = _interopRequireDefault(require("./text-label-panel"));
|
|
|
34
34
|
var _visConfigSlider = _interopRequireDefault(require("./vis-config-slider"));
|
|
35
35
|
var _visConfigSwitch = _interopRequireDefault(require("./vis-config-switch"));
|
|
36
36
|
var _vectorTileLayerConfigurator = _interopRequireDefault(require("./vector-tile-layer-configurator"));
|
|
37
|
-
var _utils = require("@kepler.gl/utils");
|
|
38
37
|
var _constants = require("@kepler.gl/constants");
|
|
39
|
-
var
|
|
38
|
+
var _table = require("@kepler.gl/table");
|
|
39
|
+
var _utils = require("@kepler.gl/utils");
|
|
40
40
|
var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
|
|
41
41
|
// Copyright contributors to the kepler.gl project
|
|
42
42
|
/* eslint-disable complexity */
|
|
@@ -184,11 +184,11 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
184
184
|
return /*#__PURE__*/_react["default"].createElement(StyledLayerVisualConfigurator, null, /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
185
185
|
label: 'layer.color',
|
|
186
186
|
collapsible: true
|
|
187
|
-
}, /*#__PURE__*/_react["default"].createElement(LayerColorRangeSelector, visConfiguratorProps), /*#__PURE__*/_react["default"].createElement(
|
|
187
|
+
}, /*#__PURE__*/_react["default"].createElement(LayerColorRangeSelector, visConfiguratorProps), /*#__PURE__*/_react["default"].createElement(AggrScaleSelector, (0, _extends2["default"])({}, layerChannelConfigProps, {
|
|
188
188
|
channel: layer.visualChannels.color
|
|
189
|
-
}
|
|
189
|
+
})), /*#__PURE__*/_react["default"].createElement(ChannelByValueSelector, (0, _extends2["default"])({
|
|
190
190
|
channel: layer.visualChannels.color
|
|
191
|
-
})), layer.visConfigSettings.colorAggregation.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(AggregationTypeSelector, (0, _extends2["default"])({}, layer.visConfigSettings.colorAggregation, layerChannelConfigProps, {
|
|
191
|
+
}, layerChannelConfigProps)), /*#__PURE__*/_react["default"].createElement(_layerConfigGroup.ConfigGroupCollapsibleContent, null, layer.visConfigSettings.colorAggregation.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(AggregationTypeSelector, (0, _extends2["default"])({}, layer.visConfigSettings.colorAggregation, layerChannelConfigProps, {
|
|
192
192
|
channel: layer.visualChannels.color
|
|
193
193
|
})) : null, /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.opacity, visConfiguratorProps)))), /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
194
194
|
label: 'layer.radius',
|
|
@@ -242,9 +242,9 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
242
242
|
collapsible: true
|
|
243
243
|
}, /*#__PURE__*/_react["default"].createElement(ChannelByValueSelector, (0, _extends2["default"])({
|
|
244
244
|
channel: layer.visualChannels.color
|
|
245
|
-
}, layerChannelConfigProps)), /*#__PURE__*/_react["default"].createElement(
|
|
245
|
+
}, layerChannelConfigProps)), /*#__PURE__*/_react["default"].createElement(AggrScaleSelector, (0, _extends2["default"])({}, layerChannelConfigProps, {
|
|
246
246
|
channel: layer.visualChannels.color
|
|
247
|
-
})), layer.visConfigSettings.colorAggregation.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(AggregationTypeSelector, (0, _extends2["default"])({}, layer.visConfigSettings.colorAggregation, layerChannelConfigProps, {
|
|
247
|
+
})), /*#__PURE__*/_react["default"].createElement(LayerColorRangeSelector, visConfiguratorProps), /*#__PURE__*/_react["default"].createElement(_layerConfigGroup.ConfigGroupCollapsibleContent, null, layer.visConfigSettings.colorAggregation.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(AggregationTypeSelector, (0, _extends2["default"])({}, layer.visConfigSettings.colorAggregation, layerChannelConfigProps, {
|
|
248
248
|
description: colorByDescription,
|
|
249
249
|
channel: layer.visualChannels.color
|
|
250
250
|
})) : null, layer.visConfigSettings.percentile && layer.visConfigSettings.percentile.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.percentile, visConfiguratorProps)) : null, /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.opacity, visConfiguratorProps)))), /*#__PURE__*/_react["default"].createElement(LayerConfigGroup, {
|
|
@@ -260,7 +260,7 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
260
260
|
disabled: !enable3d
|
|
261
261
|
})), layer.visConfigSettings.sizeAggregation.condition(layer.config) ? /*#__PURE__*/_react["default"].createElement(AggregationTypeSelector, (0, _extends2["default"])({}, layer.visConfigSettings.sizeAggregation, layerChannelConfigProps, {
|
|
262
262
|
channel: layer.visualChannels.size
|
|
263
|
-
})) : null, /*#__PURE__*/_react["default"].createElement(AggrScaleSelector, (0, _extends2["default"])({},
|
|
263
|
+
})) : null, /*#__PURE__*/_react["default"].createElement(AggrScaleSelector, (0, _extends2["default"])({}, layerChannelConfigProps, {
|
|
264
264
|
channel: layer.visualChannels.size,
|
|
265
265
|
label: 'Height Scale'
|
|
266
266
|
})), /*#__PURE__*/_react["default"].createElement(VisConfigSlider, (0, _extends2["default"])({}, layer.visConfigSettings.sizeRange, visConfiguratorProps, {
|
|
@@ -544,7 +544,7 @@ function LayerConfiguratorFactory(SourceDataSelector, VisConfigSlider, TextLabel
|
|
|
544
544
|
|
|
545
545
|
// show only datasets that can be used by the layer
|
|
546
546
|
var sourceDataSelectorOptions = Object.keys(datasets).reduce(function (acc, id) {
|
|
547
|
-
return (0,
|
|
547
|
+
return (0, _table.matchDatasetType)(datasets[id], layer) ? _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, id, datasets[id])) : acc;
|
|
548
548
|
}, {});
|
|
549
549
|
return /*#__PURE__*/_react["default"].createElement(StyledLayerConfigurator, null, layer.layerInfoModal && !layer.supportedColumnModes ?
|
|
550
550
|
/*#__PURE__*/
|
|
@@ -641,4 +641,4 @@ var AggregationTypeSelector = exports.AggregationTypeSelector = function Aggrega
|
|
|
641
641
|
}));
|
|
642
642
|
};
|
|
643
643
|
/* eslint-enable max-params */
|
|
644
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9jYWxpemF0aW9uIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zb3VyY2VEYXRhU2VsZWN0b3IiLCJfYWdnclNjYWxlU2VsZWN0b3IiLCJfY2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIl9ob3dUb0J1dHRvbiIsIl9sYXllckNvbG9yU2VsZWN0b3IiLCJfbGF5ZXJDb2x1bW5Nb2RlQ29uZmlnIiwiX2xheWVyQ29uZmlnR3JvdXAiLCJfbGF5ZXJFcnJvck1lc3NhZ2UiLCJfbGF5ZXJUeXBlU2VsZWN0b3IiLCJfdGV4dExhYmVsUGFuZWwiLCJfdmlzQ29uZmlnU2xpZGVyIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl92ZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3IiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xheWVycyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIlN0eWxlZExheWVyQ29uZmlndXJhdG9yIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJsYXllckNvbmZpZ3VyYXRvck1hcmdpbiIsImxheWVyQ29uZmlndXJhdG9yUGFkZGluZyIsImxheWVyQ29uZmlndXJhdG9yQm9yZGVyIiwibGF5ZXJDb25maWd1cmF0b3JCb3JkZXJDb2xvciIsIlN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yIiwiZ2V0TGF5ZXJGaWVsZHMiLCJleHBvcnRzIiwiZGF0YXNldHMiLCJsYXllciIsIl9sYXllciRjb25maWciLCJjb25maWciLCJkYXRhSWQiLCJmaWVsZHMiLCJnZXRMYXllckRhdGFzZXQiLCJfbGF5ZXIkY29uZmlnMiIsImdldExheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJvbkNoYW5nZSIsInVwZGF0ZUxheWVyQ29uZmlnIiwic2V0Q29sb3JVSSIsInVwZGF0ZUxheWVyQ29sb3JVSSIsImdldFZpc0NvbmZpZ3VyYXRvclByb3BzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyIsImRhdGFzZXQiLCJ1cGRhdGVMYXllclZpc3VhbENoYW5uZWxDb25maWciLCJMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJkZXBzIiwiU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1NsaWRlckZhY3RvcnkiLCJUZXh0TGFiZWxQYW5lbEZhY3RvcnkiLCJMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSIsIkNoYW5uZWxCeVZhbHVlU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnRmFjdG9yeSIsIkxheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSIsIlZpc0NvbmZpZ1N3aXRjaEZhY3RvcnkiLCJMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5IiwiQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSIsIkFnZ3JTY2FsZVNlbGVjdG9yRmFjdG9yeSIsIlZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkiLCJTb3VyY2VEYXRhU2VsZWN0b3IiLCJWaXNDb25maWdTbGlkZXIiLCJUZXh0TGFiZWxQYW5lbCIsIkxheWVyQ29uZmlnR3JvdXAiLCJDaGFubmVsQnlWYWx1ZVNlbGVjdG9yIiwiTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnIiwiTGF5ZXJUeXBlU2VsZWN0b3IiLCJWaXNDb25maWdTd2l0Y2giLCJMYXllckNvbG9yU2VsZWN0b3IiLCJMYXllckNvbG9yUmFuZ2VTZWxlY3RvciIsIkFyY0xheWVyQ29sb3JTZWxlY3RvciIsIkFnZ3JTY2FsZVNlbGVjdG9yIiwiVmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yIiwiTGF5ZXJDb25maWd1cmF0b3IiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJrZXkiLCJjb2x1bW5Nb2RlIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsIl9yZW5kZXJQb2ludExheWVyQ29uZmlnIiwiX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWciLCJfcmVuZGVySWNvbkxheWVyQ29uZmlnIiwiX3JlbmRlclZlY3RvclRpbGVMYXllckNvbmZpZyIsImNyZWF0ZUVsZW1lbnQiLCJfcmVmIiwidmlzQ29uZmlndXJhdG9yUHJvcHMiLCJsYXllckNoYW5uZWxDb25maWdQcm9wcyIsImxheWVyQ29uZmlndXJhdG9yUHJvcHMiLCJfZXh0ZW5kczIiLCJ2aXNDb25maWdTZXR0aW5ncyIsImZpbGxlZCIsImxhYmVsIiwiY29sbGFwc2libGUiLCJjaGFubmVsIiwidmlzdWFsQ2hhbm5lbHMiLCJjb2xvciIsImNvbG9yRmllbGQiLCJDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudCIsIm9wYWNpdHkiLCJ0eXBlIiwiTEFZRVJfVFlQRVMiLCJwb2ludCIsIm91dGxpbmUiLCJzdHJva2VDb2xvciIsInN0cm9rZUNvbG9yRmllbGQiLCJwcm9wZXJ0eSIsInNlbGVjdGVkQ29sb3IiLCJ2aXNDb25maWciLCJ0aGlja25lc3MiLCJkaXNhYmxlZCIsInNpemVGaWVsZCIsInJhZGl1cyIsInJhZGl1c1JhbmdlIiwiZml4ZWRSYWRpdXMiLCJzaXplIiwiYmlsbGJvYXJkIiwiaWQiLCJ1cGRhdGVMYXllclRleHRMYWJlbCIsInRleHRMYWJlbCIsImFsbG93SG92ZXIiLCJzaG93TmVpZ2hib3JPbkhvdmVyIiwic2hvd0hpZ2hsaWdodENvbG9yIiwiX3JlbmRlckNsdXN0ZXJMYXllckNvbmZpZyIsIl9yZWYyIiwiY29sb3JBZ2dyZWdhdGlvbiIsImNvbmRpdGlvbiIsIkFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yIiwiY2x1c3RlclJhZGl1cyIsIl9yZW5kZXJIZWF0bWFwTGF5ZXJDb25maWciLCJfcmVmMyIsIndlaWdodCIsIl9yZW5kZXJHcmlkTGF5ZXJDb25maWciLCJfcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyIsIl9yZW5kZXJIZXhhZ29uTGF5ZXJDb25maWciLCJfcmVmNCIsIl9jb25maWckdmlzQ29uZmlnIiwiZW5hYmxlM2QiLCJmaXhlZEhlaWdodCIsImVsZXZhdGlvbkJ5RGVzY3JpcHRpb24iLCJjb2xvckJ5RGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbiIsInBlcmNlbnRpbGUiLCJ3b3JsZFVuaXRTaXplIiwiY292ZXJhZ2UiLCJlbGV2YXRpb25TY2FsZSIsInNpemVBZ2dyZWdhdGlvbiIsInNpemVSYW5nZSIsImVsZXZhdGlvblBlcmNlbnRpbGUiLCJfcmVuZGVySGV4YWdvbklkTGF5ZXJDb25maWciLCJfcmVmNSIsInN0cm9rZU9wYWNpdHkiLCJjb3ZlcmFnZUZpZWxkIiwiY292ZXJhZ2VSYW5nZSIsIl9yZW5kZXJBcmNMYXllckNvbmZpZyIsIl9yZW5kZXJMaW5lTGF5ZXJDb25maWciLCJfcmVmNiIsInNvdXJjZUNvbG9yIiwib25DaGFuZ2VDb25maWciLCJvbkNoYW5nZVZpc0NvbmZpZyIsIl9yZW5kZXJUcmlwTGF5ZXJDb25maWciLCJfcmVmNyIsIl9sYXllciRtZXRhJGZlYXR1cmVUeSIsIm1ldGEiLCJmZWF0dXJlVHlwZXMiLCJwb2x5Z29uIiwic3Ryb2tlZCIsInRyYWlsTGVuZ3RoIiwiZmFkZVRyYWlsIiwiX3JlbmRlckdlb2pzb25MYXllckNvbmZpZyIsIl9yZWY4IiwiX2xheWVyJG1ldGEkZmVhdHVyZVR5MiIsImhlaWdodCIsIndpcmVmcmFtZSIsInJhZGl1c0ZpZWxkIiwiX3JlbmRlcjNETGF5ZXJDb25maWciLCJfcmVmOSIsIkZyYWdtZW50IiwiSW5wdXQiLCJhY2NlcHQiLCJ0YXJnZXQiLCJmaWxlcyIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsInNjZW5lZ3JhcGgiLCJzaXplU2NhbGUiLCJhbmdsZVgiLCJhbmdsZVkiLCJhbmdsZVoiLCJfcmVuZGVyUzJMYXllckNvbmZpZyIsIl9yZWYxMCIsImhlaWdodFJhbmdlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJvcGVuTW9kYWwiLCJsYXllclR5cGVPcHRpb25zIiwidXBkYXRlTGF5ZXJUeXBlIiwiX3RoaXMkcHJvcHMkZGlzYWJsZVR5IiwiZGlzYWJsZVR5cGVTZWxlY3QiLCJfcmVmMTEiLCJfcmVmMTEkZmllbGRzIiwiX3JlZjExJGZpZWxkUGFpcnMiLCJmaWVsZFBhaXJzIiwidW5kZWZpbmVkIiwicmVuZGVyVGVtcGxhdGUiLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zIiwicmVkdWNlIiwiYWNjIiwibWF0Y2hEYXRhc2V0VHlwZSIsImxheWVySW5mb01vZGFsIiwic3VwcG9ydGVkQ29sdW1uTW9kZXMiLCJvbkNsaWNrIiwiZXhwYW5kZWQiLCJoYXNBbGxDb2x1bW5zIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwib25TZWxlY3QiLCJsYXllckNvbmZpZyIsImVycm9yTWVzc2FnZSIsIkNvbXBvbmVudCIsIl9yZWYxMiIsImZpZWxkIiwiYWdncmVnYXRpb24iLCJzZWxlY3RlZEZpZWxkIiwibGF5ZXJBZ2dyZWdhdGlvblR5cGVzIiwiZ2V0QWdncmVnYXRpb25PcHRpb25zIiwiYWdncmVnYXRpb25PcHRpb25zIiwiQUdHUkVHQVRJT05fVFlQRV9PUFRJT05TIiwiX3JlZjEzIiwiaW5jbHVkZXMiLCJzZWxlY3RlZEFnZ3JlZ2F0aW9uIiwiZmluZCIsIl9yZWYxNCIsIlNpZGVQYW5lbFNlY3Rpb24iLCJQYW5lbExhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsInZhbHVlcyIsImRpc3BsYXlOYW1lIiwic2VsZWN0ZWRJdGVtcyIsImRpc3BsYXlPcHRpb24iLCJnZXRPcHRpb25WYWx1ZSIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWNvbmZpZ3VyYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIEZyYWdtZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7SW5wdXQsIFBhbmVsTGFiZWwsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9zb3VyY2UtZGF0YS1zZWxlY3Rvcic7XG5pbXBvcnQgQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vYWdnci1zY2FsZS1zZWxlY3Rvcic7XG5pbXBvcnQgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9jaGFubmVsLWJ5LXZhbHVlLXNlbGVjdG9yJztcbmltcG9ydCBIb3dUb0J1dHRvbiBmcm9tICcuL2hvdy10by1idXR0b24nO1xuaW1wb3J0IHtcbiAgQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5LFxuICBMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5XG59IGZyb20gJy4vbGF5ZXItY29sb3Itc2VsZWN0b3InO1xuaW1wb3J0IExheWVyQ29sdW1uTW9kZUNvbmZpZ0ZhY3RvcnkgZnJvbSAnLi9sYXllci1jb2x1bW4tbW9kZS1jb25maWcnO1xuaW1wb3J0IExheWVyQ29uZmlnR3JvdXBGYWN0b3J5LCB7Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnR9IGZyb20gJy4vbGF5ZXItY29uZmlnLWdyb3VwJztcbmltcG9ydCBMYXllckVycm9yTWVzc2FnZSBmcm9tICcuL2xheWVyLWVycm9yLW1lc3NhZ2UnO1xuaW1wb3J0IExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2xheWVyLXR5cGUtc2VsZWN0b3InO1xuaW1wb3J0IFRleHRMYWJlbFBhbmVsRmFjdG9yeSBmcm9tICcuL3RleHQtbGFiZWwtcGFuZWwnO1xuaW1wb3J0IFZpc0NvbmZpZ1NsaWRlckZhY3RvcnkgZnJvbSAnLi92aXMtY29uZmlnLXNsaWRlcic7XG5pbXBvcnQgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSBmcm9tICcuL3Zpcy1jb25maWctc3dpdGNoJztcbmltcG9ydCBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3JGYWN0b3J5IGZyb20gJy4vdmVjdG9yLXRpbGUtbGF5ZXItY29uZmlndXJhdG9yJztcblxuaW1wb3J0IHtjYXBpdGFsaXplRmlyc3RMZXR0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge0FHR1JFR0FUSU9OX1RZUEVfT1BUSU9OUywgTEFZRVJfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uTGF5ZXIsXG4gIExheWVyLFxuICBMYXllckJhc2VDb25maWcsXG4gIFZpc3VhbENoYW5uZWwsXG4gIG1hdGNoRGF0YXNldFR5cGVcbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuXG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHRvZ2dsZU1vZGFsfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yVUksIExheWVyVmlzQ29uZmlnLCBOZXN0ZWRQYXJ0aWFsfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxudHlwZSBMYXllckNvbmZpZ3VyYXRvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJUeXBlT3B0aW9uczoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBpY29uOiBSZWFjdC5FbGVtZW50VHlwZTtcbiAgICByZXF1aXJlRGF0YTogYm9vbGVhbjtcbiAgfVtdO1xuICBvcGVuTW9kYWw6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZU1vZGFsPjtcbiAgdXBkYXRlTGF5ZXJDb25maWc6IChuZXdDb25maWc6IFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPikgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJUeXBlOiAobmV3VHlwZTogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclZpc0NvbmZpZzogKG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZzogKFxuICAgIG5ld0NvbmZpZzogUGFydGlhbDxMYXllckJhc2VDb25maWc+LFxuICAgIGNoYW5uZWw6IHN0cmluZyxcbiAgICBuZXdWaXNDb25maWc/OiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPlxuICApID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyQ29sb3JVSTogKHByb3A6IHN0cmluZywgbmV3Q29uZmlnOiBOZXN0ZWRQYXJ0aWFsPENvbG9yVUk+KSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclRleHRMYWJlbDogKGlkeDogbnVtYmVyIHwgJ2FsbCcsIHByb3A6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgZGlzYWJsZVR5cGVTZWxlY3Q/OiBib29sZWFuO1xufTtcblxudHlwZSBBZ2dyZWdhdGlvblNlbGVjdG9yUHJvcHMgPSB7XG4gIGNoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG4gIGxheWVyOiBBZ2dyZWdhdGlvbkxheWVyO1xuICBvbkNoYW5nZTogKFxuICAgIHZhbDogUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHJlYWRvbmx5IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0KVtdIHwgbnVsbFxuICAgID4sXG4gICAga2V5OiBzdHJpbmdcbiAgKSA9PiB2b2lkO1xufTtcblxuY29uc3QgU3R5bGVkTGF5ZXJDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZydcbn0pYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGF5ZXJDb25maWd1cmF0b3JNYXJnaW59O1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yUGFkZGluZ307XG4gIGJvcmRlci1sZWZ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyfSBkYXNoZWRcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZ19fdmlzdWFsQy1jb25maWcnXG59KWBcbiAgbWFyZ2luLXRvcDogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckZpZWxkcyA9IChkYXRhc2V0czogRGF0YXNldHMsIGxheWVyOiBMYXllcikgPT5cbiAgZGF0YXNldHNbbGF5ZXIuY29uZmlnPy5kYXRhSWQgfHwgJyddID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0uZmllbGRzIDogW107XG5cbi8qKiBSZXR1cm4gYW55IHRvIGJlIGFibGUgdG8gY3VzdG9taXplIHRoZSBEYXRhc2V0IGVudGl0eSAqL1xuZXhwb3J0IGNvbnN0IGdldExheWVyRGF0YXNldCA9IChkYXRhc2V0czogRGF0YXNldHMsIGxheWVyOiBMYXllcik6IGFueSA9PlxuICBkYXRhc2V0c1tsYXllci5jb25maWc/LmRhdGFJZCB8fCAnJ107XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzID0gKHByb3BzOiBMYXllckNvbmZpZ3VyYXRvclByb3BzKSA9PiAoe1xuICBsYXllcjogcHJvcHMubGF5ZXIsXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0VmlzQ29uZmlndXJhdG9yUHJvcHMgPSAocHJvcHM6IExheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyA9IChwcm9wczogTGF5ZXJDb25maWd1cmF0b3JQcm9wcykgPT4gKHtcbiAgbGF5ZXI6IHByb3BzLmxheWVyLFxuICBkYXRhc2V0OiBnZXRMYXllckRhdGFzZXQocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5MYXllckNvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSxcbiAgVGV4dExhYmVsUGFuZWxGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sdW1uTW9kZUNvbmZpZ0ZhY3RvcnksXG4gIExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5LFxuICBBcmNMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5LFxuICBBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnksXG4gIFZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgU291cmNlRGF0YVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5PixcbiAgVmlzQ29uZmlnU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBWaXNDb25maWdTbGlkZXJGYWN0b3J5PixcbiAgVGV4dExhYmVsUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFRleHRMYWJlbFBhbmVsRmFjdG9yeT4sXG4gIExheWVyQ29uZmlnR3JvdXA6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29uZmlnR3JvdXBGYWN0b3J5PixcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3Rvcnk+LFxuICBMYXllckNvbHVtbk1vZGVDb25maWc6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sdW1uTW9kZUNvbmZpZ0ZhY3Rvcnk+LFxuICBMYXllclR5cGVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5PixcbiAgVmlzQ29uZmlnU3dpdGNoOiBSZXR1cm5UeXBlPHR5cGVvZiBWaXNDb25maWdTd2l0Y2hGYWN0b3J5PixcbiAgTGF5ZXJDb2xvclNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5PixcbiAgTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeT4sXG4gIEFyY0xheWVyQ29sb3JTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeT4sXG4gIEFnZ3JTY2FsZVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBBZ2dyU2NhbGVTZWxlY3RvckZhY3Rvcnk+LFxuICBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3I6IFJldHVyblR5cGU8dHlwZW9mIFZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3Rvcnk+XG4pOiBSZWFjdC5Db21wb25lbnRUeXBlPExheWVyQ29uZmlndXJhdG9yUHJvcHM+IHtcbiAgY2xhc3MgTGF5ZXJDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnQ8TGF5ZXJDb25maWd1cmF0b3JQcm9wcz4ge1xuICAgIF9yZW5kZXJQb2ludExheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckljb25MYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcocHJvcHMpO1xuICAgIH1cblxuICAgIF9yZW5kZXJWZWN0b3JUaWxlTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiA8VmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yIHsuLi5wcm9wc30gLz47XG4gICAgfVxuXG4gICAgX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17Qm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5zaXplRmllbGQgfHwgbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYmlsbGJvYXJkfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0ZXh0IGxhYmVsICovfVxuICAgICAgICAgIDxUZXh0TGFiZWxQYW5lbFxuICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgZmllbGRzPXt2aXNDb25maWd1cmF0b3JQcm9wcy5maWVsZHN9XG4gICAgICAgICAgICB1cGRhdGVMYXllclRleHRMYWJlbD17dGhpcy5wcm9wcy51cGRhdGVMYXllclRleHRMYWJlbH1cbiAgICAgICAgICAgIHRleHRMYWJlbD17bGF5ZXIuY29uZmlnLnRleHRMYWJlbH1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgey8qIEludGVyYWN0aW9uICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuaW50ZXJhY3Rpb24nfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFsbG93SG92ZXJ9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaG93TmVpZ2hib3JPbkhvdmVyfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaG93SGlnaGxpZ2h0Q29sb3J9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfSAvPlxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENsdXN0ZXIgUmFkaXVzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jbHVzdGVyUmFkaXVzfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c1JhbmdlfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckhlYXRtYXBMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzLCBsYXllckNoYW5uZWxDb25maWdQcm9wc30pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLnJhZGl1cyd9PlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHsvKiBXZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci53ZWlnaHQnfT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLndlaWdodH1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJHcmlkTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGV4YWdvbkxheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtjb25maWd9ID0gbGF5ZXI7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHZpc0NvbmZpZzoge2VuYWJsZTNkLCBmaXhlZEhlaWdodH1cbiAgICAgIH0gPSBjb25maWc7XG4gICAgICBjb25zdCBlbGV2YXRpb25CeURlc2NyaXB0aW9uID0gJ2xheWVyLmVsZXZhdGlvbkJ5RGVzY3JpcHRpb24nO1xuICAgICAgY29uc3QgY29sb3JCeURlc2NyaXB0aW9uID0gJ2xheWVyLmNvbG9yQnlEZXNjcmlwdGlvbic7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPEFnZ3JTY2FsZVNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn0gLz5cblxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2NvbG9yQnlEZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZSAmJlxuICAgICAgICAgICAgICBsYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBDZWxsIHNpemUgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLndvcmxkVW5pdFNpemV9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIEVsZXZhdGlvbiAqL31cbiAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2QgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9eydsYXllclZpc0NvbmZpZ3MuaGVpZ2h0TXVsdGlwbGllcid9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtlbGV2YXRpb25CeURlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFlbmFibGUzZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplQWdncmVnYXRpb24uY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVBZ2dyZWdhdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXsnSGVpZ2h0IFNjYWxlJ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZSd9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17Zml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uUGVyY2VudGlsZS5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGV9XG4gICAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFNoYW4gbW92ZSB0aGVzZSBpbnRvIGxheWVyIGNsYXNzXG4gICAgX3JlbmRlckhleGFnb25JZExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIEZpbGwgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD17J2xheWVyLmZpbGxDb2xvcid9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIE91dGxpbmUgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vdXRsaW5lfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy52aXNDb25maWcub3V0bGluZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIENvdmVyYWdlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY292ZXJhZ2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLmNvdmVyYWdlRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2VSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb3ZlcmFnZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBoZWlnaHQgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPXsnbGF5ZXJWaXNDb25maWdzLmhlaWdodE11bHRpcGxpZXInfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIHRleHQgbGFiZWwgKi99XG4gICAgICAgICAgPFRleHRMYWJlbFBhbmVsXG4gICAgICAgICAgICBpZD17bGF5ZXIuaWR9XG4gICAgICAgICAgICBmaWVsZHM9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLmZpZWxkc31cbiAgICAgICAgICAgIHVwZGF0ZUxheWVyVGV4dExhYmVsPXt0aGlzLnByb3BzLnVwZGF0ZUxheWVyVGV4dExhYmVsfVxuICAgICAgICAgICAgdGV4dExhYmVsPXtsYXllci5jb25maWcudGV4dExhYmVsfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJBcmNMYXllckNvbmZpZyhhcmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyTGluZUxheWVyQ29uZmlnKGFyZ3MpO1xuICAgIH1cblxuICAgIF9yZW5kZXJMaW5lTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc291cmNlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXJjTGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHNldENvbG9yVUk9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMuc2V0Q29sb3JVSX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZUNvbmZpZz17bGF5ZXJDb25maWd1cmF0b3JQcm9wcy5vbkNoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZVZpc0NvbmZpZz17dmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0aGlja25lc3MgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5zdHJva2UnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcuc2l6ZUZpZWxkfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogZWxldmF0aW9uIHNjYWxlICovfVxuICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZSA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyVHJpcExheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX1cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSBsYWJlbD1cImxheWVyLnN0cm9rZVdpZHRoXCIgY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmJpbGxib2FyZH0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogVHJhaWwgTGVuZ3RoKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci50cmFpbExlbmd0aFwiXG4gICAgICAgICAgICBkZXNjcmlwdGlvbj1cImxheWVyLnRyYWlsTGVuZ3RoRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50cmFpbExlbmd0aH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5mYWRlVHJhaWx9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyR2VvanNvbkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHtmZWF0dXJlVHlwZXMgPSB7fX0sXG4gICAgICAgIGNvbmZpZzoge3Zpc0NvbmZpZ31cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBGaWxsIENvbG9yICovfVxuICAgICAgICAgIHtmZWF0dXJlVHlwZXMucG9seWdvbiB8fCBmZWF0dXJlVHlwZXMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuZmlsbENvbG9yXCJcbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAgICB7Lyogc3Ryb2tlIGNvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuc3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlT3BhY2l0eX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgV2lkdGggKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi4oZmVhdHVyZVR5cGVzLnBvbHlnb24gPyBsYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkIDoge30pfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2x5Z29uID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZEhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIFJhZGl1cyAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgeyFsYXllci5jb25maWcucmFkaXVzRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtCb29sZWFuKGxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5yYWRpdXNGaWVsZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyM0RMYXllckNvbmZpZyh7bGF5ZXIsIHZpc0NvbmZpZ3VyYXRvclByb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbCd9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgYWNjZXB0PVwiLmdsYiwuZ2x0ZlwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMgJiYgZS50YXJnZXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZS50YXJnZXQuZmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2Uoe3NjZW5lZ3JhcGg6IHVybH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuM0RNb2RlbE9wdGlvbnMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVTY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVYfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVl9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWn1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclMyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY29uZmlnOiB7dmlzQ29uZmlnfVxuICAgICAgfSA9IGxheWVyO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5maWxsQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBTdHJva2UgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zdHJva2VkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9XCJsYXllci5zdHJva2VDb2xvclwiXG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc3Ryb2tlQ29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gcHJvcGVydHk9XCJzdHJva2VDb2xvclJhbmdlXCIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3JcbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT1cInN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlIFdpZHRoICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIEVsZXZhdGlvbiAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyF2aXNDb25maWcuZmlsbGVkfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5oZWlnaHR9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuaGVpZ2h0UmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPVwibGF5ZXJWaXNDb25maWdzLmhlaWdodFJhbmdlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy53aXJlZnJhbWV9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0Q29sdW1uTW9kZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qge3VwZGF0ZUxheWVyQ29uZmlnfSA9IHRoaXMucHJvcHM7XG4gICAgICB1cGRhdGVMYXllckNvbmZpZyh7Y29sdW1uTW9kZToga2V5fSk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBvcGVuTW9kYWwsXG4gICAgICAgIHVwZGF0ZUxheWVyQ29uZmlnLFxuICAgICAgICBsYXllclR5cGVPcHRpb25zLFxuICAgICAgICB1cGRhdGVMYXllclR5cGUsXG4gICAgICAgIGRpc2FibGVUeXBlU2VsZWN0ID0gZmFsc2VcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qge2ZpZWxkcyA9IFtdLCBmaWVsZFBhaXJzID0gdW5kZWZpbmVkfSA9IGxheWVyLmNvbmZpZy5kYXRhSWRcbiAgICAgICAgPyBkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXVxuICAgICAgICA6IHt9O1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsYXllcjtcblxuICAgICAgY29uc3QgdmlzQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRWaXNDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ29uZmlndXJhdG9yUHJvcHMgPSBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMgPSBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSBnZXRMYXllckRhdGFzZXQoZGF0YXNldHMsIGxheWVyKTtcbiAgICAgIGNvbnN0IHJlbmRlclRlbXBsYXRlID0gbGF5ZXIudHlwZSAmJiBgX3JlbmRlciR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxheWVyLnR5cGUpfUxheWVyQ29uZmlnYDtcblxuICAgICAgLy8gc2hvdyBvbmx5IGRhdGFzZXRzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGxheWVyXG4gICAgICBjb25zdCBzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zID0gT2JqZWN0LmtleXMoZGF0YXNldHMpLnJlZHVjZShcbiAgICAgICAgKGFjYywgaWQpID0+IChtYXRjaERhdGFzZXRUeXBlKGRhdGFzZXRzW2lkXSwgbGF5ZXIpID8gey4uLmFjYywgW2lkXTogZGF0YXNldHNbaWRdfSA6IGFjYyksXG4gICAgICAgIHt9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICAgICAge2xheWVyLmxheWVySW5mb01vZGFsICYmICFsYXllci5zdXBwb3J0ZWRDb2x1bW5Nb2RlcyA/IChcbiAgICAgICAgICAgIC8vIFRPRE8gZmlndXJlIG91dCBoYW5kbGVyIHR5cGUuIFN0cmluZyBvciByZXR1cm4gdHlwZSBvZiBsYXllci5sYXllckluZm9Nb2RhbCA/XG4gICAgICAgICAgICA8SG93VG9CdXR0b24gb25DbGljaz17KCkgPT4gb3Blbk1vZGFsKGxheWVyLmxheWVySW5mb01vZGFsIGFzIGFueSl9IC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5iYXNpYyd9IGNvbGxhcHNpYmxlIGV4cGFuZGVkPXshbGF5ZXIuaGFzQWxsQ29sdW1ucygpfT5cbiAgICAgICAgICAgIDxMYXllclR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICBzZWxlY3RlZD17bGF5ZXIudHlwZX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVUeXBlU2VsZWN0fVxuICAgICAgICAgICAgICBvcHRpb25zPXtsYXllclR5cGVPcHRpb25zfVxuICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt1cGRhdGVMYXllclR5cGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8U291cmNlRGF0YVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgZGF0YXNldHM9e3NvdXJjZURhdGFTZWxlY3Rvck9wdGlvbnN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGRhdGFJZD17Y29uZmlnLmRhdGFJZH1cbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9eyh2YWx1ZTogc3RyaW5nKSA9PiB1cGRhdGVMYXllckNvbmZpZyh7ZGF0YUlkOiB2YWx1ZX0pfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8TGF5ZXJDb2x1bW5Nb2RlQ29uZmlnXG4gICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgIHN1cHBvcnRlZENvbHVtbk1vZGVzPXtsYXllci5zdXBwb3J0ZWRDb2x1bW5Nb2Rlc31cbiAgICAgICAgICAgICAgICBpZD17bGF5ZXIuaWR9XG4gICAgICAgICAgICAgICAgbGF5ZXJDb25maWc9e2xheWVyLmNvbmZpZ31cbiAgICAgICAgICAgICAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgaGFuZGxlciB0eXBlLiBTdHJpbmcgb3IgcmV0dXJuIHR5cGUgb2YgbGF5ZXIubGF5ZXJJbmZvTW9kYWwgP1xuICAgICAgICAgICAgICAgIG9wZW5Nb2RhbD17b3Blbk1vZGFsIGFzIGFueX1cbiAgICAgICAgICAgICAgICB1cGRhdGVMYXllckNvbmZpZz17dXBkYXRlTGF5ZXJDb25maWd9XG4gICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJUeXBlPXt1cGRhdGVMYXllclR5cGV9XG4gICAgICAgICAgICAgICAgZmllbGRzPXtmaWVsZHN9XG4gICAgICAgICAgICAgICAgZmllbGRQYWlycz17ZmllbGRQYWlyc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICB7bGF5ZXIuZXJyb3JNZXNzYWdlID8gPExheWVyRXJyb3JNZXNzYWdlIGVycm9yTWVzc2FnZT17bGF5ZXIuZXJyb3JNZXNzYWdlfSAvPiA6IG51bGx9XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgIHtyZW5kZXJUZW1wbGF0ZSAmJlxuICAgICAgICAgICAgdGhpc1tyZW5kZXJUZW1wbGF0ZV0gJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdKHtcbiAgICAgICAgICAgICAgbGF5ZXIsXG4gICAgICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgICAgICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBMYXllckNvbmZpZ3VyYXRvcjtcbn1cblxuZXhwb3J0IGNvbnN0IEFnZ3JlZ2F0aW9uVHlwZVNlbGVjdG9yID0gKHtjaGFubmVsLCBsYXllciwgb25DaGFuZ2V9OiBBZ2dyZWdhdGlvblNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3Qge2ZpZWxkLCBhZ2dyZWdhdGlvbiwga2V5fSA9IGNoYW5uZWw7XG4gIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBsYXllci5jb25maWdbZmllbGRdO1xuICBjb25zdCB7dmlzQ29uZmlnfSA9IGxheWVyLmNvbmZpZztcblxuICAvLyBhZ2dyZWdhdGlvbiBzaG91bGQgb25seSBiZSBzZWxlY3RhYmxlIHdoZW4gZmllbGQgaXMgc2VsZWN0ZWRcbiAgY29uc3QgbGF5ZXJBZ2dyZWdhdGlvblR5cGVzID0gbGF5ZXIuZ2V0QWdncmVnYXRpb25PcHRpb25zKGtleSk7XG5cbiAgY29uc3QgYWdncmVnYXRpb25PcHRpb25zID0gQUdHUkVHQVRJT05fVFlQRV9PUFRJT05TLmZpbHRlcigoe2lkfSkgPT5cbiAgICBsYXllckFnZ3JlZ2F0aW9uVHlwZXMuaW5jbHVkZXMoaWQpXG4gICk7XG5cbiAgY29uc3Qgc2VsZWN0ZWRBZ2dyZWdhdGlvbiA9IGFnZ3JlZ2F0aW9uXG4gICAgPyBhZ2dyZWdhdGlvbk9wdGlvbnMuZmluZCgoe2lkfSkgPT4gaWQgPT09IHZpc0NvbmZpZ1thZ2dyZWdhdGlvbl0pXG4gICAgOiBbXTtcblxuICByZXR1cm4gKFxuICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgaWQ9eydsYXllci5hZ2dyZWdhdGVCeSd9XG4gICAgICAgICAgdmFsdWVzPXt7XG4gICAgICAgICAgICBmaWVsZDogc2VsZWN0ZWRGaWVsZC5kaXNwbGF5TmFtZVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkQWdncmVnYXRpb259XG4gICAgICAgIG9wdGlvbnM9e2FnZ3JlZ2F0aW9uT3B0aW9uc31cbiAgICAgICAgZGlzcGxheU9wdGlvbj1cImxhYmVsXCJcbiAgICAgICAgZ2V0T3B0aW9uVmFsdWU9XCJpZFwiXG4gICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PlxuICAgICAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgICAgICAgICAuLi5sYXllci5jb25maWcudmlzQ29uZmlnLFxuICAgICAgICAgICAgICAgIFthZ2dyZWdhdGlvbiBhcyBzdHJpbmddOiB2YWx1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hhbm5lbC5rZXlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICApO1xufTtcbi8qIGVzbGludC1lbmFibGUgbWF4LXBhcmFtcyAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxhQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBRUEsSUFBQUssYUFBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFB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
|
|
644
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9jYWxpemF0aW9uIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zb3VyY2VEYXRhU2VsZWN0b3IiLCJfYWdnclNjYWxlU2VsZWN0b3IiLCJfY2hhbm5lbEJ5VmFsdWVTZWxlY3RvciIsIl9ob3dUb0J1dHRvbiIsIl9sYXllckNvbG9yU2VsZWN0b3IiLCJfbGF5ZXJDb2x1bW5Nb2RlQ29uZmlnIiwiX2xheWVyQ29uZmlnR3JvdXAiLCJfbGF5ZXJFcnJvck1lc3NhZ2UiLCJfbGF5ZXJUeXBlU2VsZWN0b3IiLCJfdGV4dExhYmVsUGFuZWwiLCJfdmlzQ29uZmlnU2xpZGVyIiwiX3Zpc0NvbmZpZ1N3aXRjaCIsIl92ZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3IiLCJfY29uc3RhbnRzIiwiX3RhYmxlIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiU3R5bGVkTGF5ZXJDb25maWd1cmF0b3IiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImxheWVyQ29uZmlndXJhdG9yTWFyZ2luIiwibGF5ZXJDb25maWd1cmF0b3JQYWRkaW5nIiwibGF5ZXJDb25maWd1cmF0b3JCb3JkZXIiLCJsYXllckNvbmZpZ3VyYXRvckJvcmRlckNvbG9yIiwiU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3IiLCJnZXRMYXllckZpZWxkcyIsImV4cG9ydHMiLCJkYXRhc2V0cyIsImxheWVyIiwiX2xheWVyJGNvbmZpZyIsImNvbmZpZyIsImRhdGFJZCIsImZpZWxkcyIsImdldExheWVyRGF0YXNldCIsIl9sYXllciRjb25maWcyIiwiZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyIsIm9uQ2hhbmdlIiwidXBkYXRlTGF5ZXJDb25maWciLCJzZXRDb2xvclVJIiwidXBkYXRlTGF5ZXJDb2xvclVJIiwiZ2V0VmlzQ29uZmlndXJhdG9yUHJvcHMiLCJ1cGRhdGVMYXllclZpc0NvbmZpZyIsImdldExheWVyQ2hhbm5lbENvbmZpZ1Byb3BzIiwiZGF0YXNldCIsInVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyIsIkxheWVyQ29uZmlndXJhdG9yRmFjdG9yeSIsImRlcHMiLCJTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5IiwiVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSIsIlRleHRMYWJlbFBhbmVsRmFjdG9yeSIsIkxheWVyQ29uZmlnR3JvdXBGYWN0b3J5IiwiQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnkiLCJMYXllckNvbHVtbk1vZGVDb25maWdGYWN0b3J5IiwiTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5IiwiVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSIsIkxheWVyQ29sb3JTZWxlY3RvckZhY3RvcnkiLCJMYXllckNvbG9yUmFuZ2VTZWxlY3RvckZhY3RvcnkiLCJBcmNMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5IiwiQWdnclNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiVmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yRmFjdG9yeSIsIlNvdXJjZURhdGFTZWxlY3RvciIsIlZpc0NvbmZpZ1NsaWRlciIsIlRleHRMYWJlbFBhbmVsIiwiTGF5ZXJDb25maWdHcm91cCIsIkNoYW5uZWxCeVZhbHVlU2VsZWN0b3IiLCJMYXllckNvbHVtbk1vZGVDb25maWciLCJMYXllclR5cGVTZWxlY3RvciIsIlZpc0NvbmZpZ1N3aXRjaCIsIkxheWVyQ29sb3JTZWxlY3RvciIsIkxheWVyQ29sb3JSYW5nZVNlbGVjdG9yIiwiQXJjTGF5ZXJDb2xvclNlbGVjdG9yIiwiQWdnclNjYWxlU2VsZWN0b3IiLCJWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3IiLCJMYXllckNvbmZpZ3VyYXRvciIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsImtleSIsImNvbHVtbk1vZGUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwiX3JlbmRlclBvaW50TGF5ZXJDb25maWciLCJfcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyIsIl9yZW5kZXJJY29uTGF5ZXJDb25maWciLCJfcmVuZGVyVmVjdG9yVGlsZUxheWVyQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsIl9yZWYiLCJ2aXNDb25maWd1cmF0b3JQcm9wcyIsImxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzIiwibGF5ZXJDb25maWd1cmF0b3JQcm9wcyIsIl9leHRlbmRzMiIsInZpc0NvbmZpZ1NldHRpbmdzIiwiZmlsbGVkIiwibGFiZWwiLCJjb2xsYXBzaWJsZSIsImNoYW5uZWwiLCJ2aXN1YWxDaGFubmVscyIsImNvbG9yIiwiY29sb3JGaWVsZCIsIkNvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50Iiwib3BhY2l0eSIsInR5cGUiLCJMQVlFUl9UWVBFUyIsInBvaW50Iiwib3V0bGluZSIsInN0cm9rZUNvbG9yIiwic3Ryb2tlQ29sb3JGaWVsZCIsInByb3BlcnR5Iiwic2VsZWN0ZWRDb2xvciIsInZpc0NvbmZpZyIsInRoaWNrbmVzcyIsImRpc2FibGVkIiwic2l6ZUZpZWxkIiwicmFkaXVzIiwicmFkaXVzUmFuZ2UiLCJmaXhlZFJhZGl1cyIsInNpemUiLCJiaWxsYm9hcmQiLCJpZCIsInVwZGF0ZUxheWVyVGV4dExhYmVsIiwidGV4dExhYmVsIiwiYWxsb3dIb3ZlciIsInNob3dOZWlnaGJvck9uSG92ZXIiLCJzaG93SGlnaGxpZ2h0Q29sb3IiLCJfcmVuZGVyQ2x1c3RlckxheWVyQ29uZmlnIiwiX3JlZjIiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiY29uZGl0aW9uIiwiQWdncmVnYXRpb25UeXBlU2VsZWN0b3IiLCJjbHVzdGVyUmFkaXVzIiwiX3JlbmRlckhlYXRtYXBMYXllckNvbmZpZyIsIl9yZWYzIiwid2VpZ2h0IiwiX3JlbmRlckdyaWRMYXllckNvbmZpZyIsIl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnIiwiX3JlbmRlckhleGFnb25MYXllckNvbmZpZyIsIl9yZWY0IiwiX2NvbmZpZyR2aXNDb25maWciLCJlbmFibGUzZCIsImZpeGVkSGVpZ2h0IiwiZWxldmF0aW9uQnlEZXNjcmlwdGlvbiIsImNvbG9yQnlEZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uIiwicGVyY2VudGlsZSIsIndvcmxkVW5pdFNpemUiLCJjb3ZlcmFnZSIsImVsZXZhdGlvblNjYWxlIiwic2l6ZUFnZ3JlZ2F0aW9uIiwic2l6ZVJhbmdlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsIl9yZW5kZXJIZXhhZ29uSWRMYXllckNvbmZpZyIsIl9yZWY1Iiwic3Ryb2tlT3BhY2l0eSIsImNvdmVyYWdlRmllbGQiLCJjb3ZlcmFnZVJhbmdlIiwiX3JlbmRlckFyY0xheWVyQ29uZmlnIiwiX3JlbmRlckxpbmVMYXllckNvbmZpZyIsIl9yZWY2Iiwic291cmNlQ29sb3IiLCJvbkNoYW5nZUNvbmZpZyIsIm9uQ2hhbmdlVmlzQ29uZmlnIiwiX3JlbmRlclRyaXBMYXllckNvbmZpZyIsIl9yZWY3IiwiX2xheWVyJG1ldGEkZmVhdHVyZVR5IiwibWV0YSIsImZlYXR1cmVUeXBlcyIsInBvbHlnb24iLCJzdHJva2VkIiwidHJhaWxMZW5ndGgiLCJmYWRlVHJhaWwiLCJfcmVuZGVyR2VvanNvbkxheWVyQ29uZmlnIiwiX3JlZjgiLCJfbGF5ZXIkbWV0YSRmZWF0dXJlVHkyIiwiaGVpZ2h0Iiwid2lyZWZyYW1lIiwicmFkaXVzRmllbGQiLCJfcmVuZGVyM0RMYXllckNvbmZpZyIsIl9yZWY5IiwiRnJhZ21lbnQiLCJJbnB1dCIsImFjY2VwdCIsInRhcmdldCIsImZpbGVzIiwidXJsIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwic2NlbmVncmFwaCIsInNpemVTY2FsZSIsImFuZ2xlWCIsImFuZ2xlWSIsImFuZ2xlWiIsIl9yZW5kZXJTMkxheWVyQ29uZmlnIiwiX3JlZjEwIiwiaGVpZ2h0UmFuZ2UiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsIm9wZW5Nb2RhbCIsImxheWVyVHlwZU9wdGlvbnMiLCJ1cGRhdGVMYXllclR5cGUiLCJfdGhpcyRwcm9wcyRkaXNhYmxlVHkiLCJkaXNhYmxlVHlwZVNlbGVjdCIsIl9yZWYxMSIsIl9yZWYxMSRmaWVsZHMiLCJfcmVmMTEkZmllbGRQYWlycyIsImZpZWxkUGFpcnMiLCJ1bmRlZmluZWQiLCJyZW5kZXJUZW1wbGF0ZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsInNvdXJjZURhdGFTZWxlY3Rvck9wdGlvbnMiLCJyZWR1Y2UiLCJhY2MiLCJtYXRjaERhdGFzZXRUeXBlIiwibGF5ZXJJbmZvTW9kYWwiLCJzdXBwb3J0ZWRDb2x1bW5Nb2RlcyIsIm9uQ2xpY2siLCJleHBhbmRlZCIsImhhc0FsbENvbHVtbnMiLCJzZWxlY3RlZCIsIm9wdGlvbnMiLCJvblNlbGVjdCIsImxheWVyQ29uZmlnIiwiZXJyb3JNZXNzYWdlIiwiQ29tcG9uZW50IiwiX3JlZjEyIiwiZmllbGQiLCJhZ2dyZWdhdGlvbiIsInNlbGVjdGVkRmllbGQiLCJsYXllckFnZ3JlZ2F0aW9uVHlwZXMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJBR0dSRUdBVElPTl9UWVBFX09QVElPTlMiLCJfcmVmMTMiLCJpbmNsdWRlcyIsInNlbGVjdGVkQWdncmVnYXRpb24iLCJmaW5kIiwiX3JlZjE0IiwiU2lkZVBhbmVsU2VjdGlvbiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwidmFsdWVzIiwiZGlzcGxheU5hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiZGlzcGxheU9wdGlvbiIsImdldE9wdGlvblZhbHVlIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItY29uZmlndXJhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRnJhZ21lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtJbnB1dCwgUGFuZWxMYWJlbCwgU2lkZVBhbmVsU2VjdGlvbn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IFNvdXJjZURhdGFTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL3NvdXJjZS1kYXRhLXNlbGVjdG9yJztcbmltcG9ydCBBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9hZ2dyLXNjYWxlLXNlbGVjdG9yJztcbmltcG9ydCBDaGFubmVsQnlWYWx1ZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2NoYW5uZWwtYnktdmFsdWUtc2VsZWN0b3InO1xuaW1wb3J0IEhvd1RvQnV0dG9uIGZyb20gJy4vaG93LXRvLWJ1dHRvbic7XG5pbXBvcnQge1xuICBBcmNMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5LFxuICBMYXllckNvbG9yUmFuZ2VTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sb3JTZWxlY3RvckZhY3Rvcnlcbn0gZnJvbSAnLi9sYXllci1jb2xvci1zZWxlY3Rvcic7XG5pbXBvcnQgTGF5ZXJDb2x1bW5Nb2RlQ29uZmlnRmFjdG9yeSBmcm9tICcuL2xheWVyLWNvbHVtbi1tb2RlLWNvbmZpZyc7XG5pbXBvcnQgTGF5ZXJDb25maWdHcm91cEZhY3RvcnksIHtDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudH0gZnJvbSAnLi9sYXllci1jb25maWctZ3JvdXAnO1xuaW1wb3J0IExheWVyRXJyb3JNZXNzYWdlIGZyb20gJy4vbGF5ZXItZXJyb3ItbWVzc2FnZSc7XG5pbXBvcnQgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vbGF5ZXItdHlwZS1zZWxlY3Rvcic7XG5pbXBvcnQgVGV4dExhYmVsUGFuZWxGYWN0b3J5IGZyb20gJy4vdGV4dC1sYWJlbC1wYW5lbCc7XG5pbXBvcnQgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSBmcm9tICcuL3Zpcy1jb25maWctc2xpZGVyJztcbmltcG9ydCBWaXNDb25maWdTd2l0Y2hGYWN0b3J5IGZyb20gJy4vdmlzLWNvbmZpZy1zd2l0Y2gnO1xuaW1wb3J0IFZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3RvcnkgZnJvbSAnLi92ZWN0b3ItdGlsZS1sYXllci1jb25maWd1cmF0b3InO1xuXG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHRvZ2dsZU1vZGFsfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFX09QVElPTlMsIExBWUVSX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FnZ3JlZ2F0aW9uTGF5ZXIsIExheWVyLCBMYXllckJhc2VDb25maWcsIFZpc3VhbENoYW5uZWx9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcblxuaW1wb3J0IHttYXRjaERhdGFzZXRUeXBlLCBEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yVUksIExheWVyVmlzQ29uZmlnLCBOZXN0ZWRQYXJ0aWFsfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBMYXllckNvbmZpZ3VyYXRvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJUeXBlT3B0aW9uczoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBpY29uOiBSZWFjdC5FbGVtZW50VHlwZTtcbiAgICByZXF1aXJlRGF0YTogYm9vbGVhbjtcbiAgfVtdO1xuICBvcGVuTW9kYWw6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZU1vZGFsPjtcbiAgdXBkYXRlTGF5ZXJDb25maWc6IChuZXdDb25maWc6IFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPikgPT4gdm9pZDtcbiAgdXBkYXRlTGF5ZXJUeXBlOiAobmV3VHlwZTogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclZpc0NvbmZpZzogKG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZzogKFxuICAgIG5ld0NvbmZpZzogUGFydGlhbDxMYXllckJhc2VDb25maWc+LFxuICAgIGNoYW5uZWw6IHN0cmluZyxcbiAgICBuZXdWaXNDb25maWc/OiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPlxuICApID0+IHZvaWQ7XG4gIHVwZGF0ZUxheWVyQ29sb3JVSTogKHByb3A6IHN0cmluZywgbmV3Q29uZmlnOiBOZXN0ZWRQYXJ0aWFsPENvbG9yVUk+KSA9PiB2b2lkO1xuICB1cGRhdGVMYXllclRleHRMYWJlbDogKGlkeDogbnVtYmVyIHwgJ2FsbCcsIHByb3A6IHN0cmluZywgdmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgZGlzYWJsZVR5cGVTZWxlY3Q/OiBib29sZWFuO1xufTtcblxudHlwZSBBZ2dyZWdhdGlvblNlbGVjdG9yUHJvcHMgPSB7XG4gIGNoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG4gIGxheWVyOiBBZ2dyZWdhdGlvbkxheWVyO1xuICBvbkNoYW5nZTogKFxuICAgIHZhbDogUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHJlYWRvbmx5IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0KVtdIHwgbnVsbFxuICAgID4sXG4gICAga2V5OiBzdHJpbmdcbiAgKSA9PiB2b2lkO1xufTtcblxuY29uc3QgU3R5bGVkTGF5ZXJDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZydcbn0pYFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGF5ZXJDb25maWd1cmF0b3JNYXJnaW59O1xuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yUGFkZGluZ307XG4gIGJvcmRlci1sZWZ0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyfSBkYXNoZWRcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyQ29uZmlndXJhdG9yQm9yZGVyQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3IgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2NvbmZpZ19fdmlzdWFsQy1jb25maWcnXG59KWBcbiAgbWFyZ2luLXRvcDogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckZpZWxkcyA9IChkYXRhc2V0czogRGF0YXNldHMsIGxheWVyOiBMYXllcikgPT5cbiAgZGF0YXNldHNbbGF5ZXIuY29uZmlnPy5kYXRhSWQgfHwgJyddID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF0uZmllbGRzIDogW107XG5cbi8qKiBSZXR1cm4gYW55IHRvIGJlIGFibGUgdG8gY3VzdG9taXplIHRoZSBEYXRhc2V0IGVudGl0eSAqL1xuZXhwb3J0IGNvbnN0IGdldExheWVyRGF0YXNldCA9IChkYXRhc2V0czogRGF0YXNldHMsIGxheWVyOiBMYXllcik6IGFueSA9PlxuICBkYXRhc2V0c1tsYXllci5jb25maWc/LmRhdGFJZCB8fCAnJ107XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNvbmZpZ3VyYXRvclByb3BzID0gKHByb3BzOiBMYXllckNvbmZpZ3VyYXRvclByb3BzKSA9PiAoe1xuICBsYXllcjogcHJvcHMubGF5ZXIsXG4gIGZpZWxkczogZ2V0TGF5ZXJGaWVsZHMocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgb25DaGFuZ2U6IHByb3BzLnVwZGF0ZUxheWVyQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0VmlzQ29uZmlndXJhdG9yUHJvcHMgPSAocHJvcHM6IExheWVyQ29uZmlndXJhdG9yUHJvcHMpID0+ICh7XG4gIGxheWVyOiBwcm9wcy5sYXllcixcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXNDb25maWcsXG4gIHNldENvbG9yVUk6IHByb3BzLnVwZGF0ZUxheWVyQ29sb3JVSVxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXRMYXllckNoYW5uZWxDb25maWdQcm9wcyA9IChwcm9wczogTGF5ZXJDb25maWd1cmF0b3JQcm9wcykgPT4gKHtcbiAgbGF5ZXI6IHByb3BzLmxheWVyLFxuICBkYXRhc2V0OiBnZXRMYXllckRhdGFzZXQocHJvcHMuZGF0YXNldHMsIHByb3BzLmxheWVyKSxcbiAgZmllbGRzOiBnZXRMYXllckZpZWxkcyhwcm9wcy5kYXRhc2V0cywgcHJvcHMubGF5ZXIpLFxuICBvbkNoYW5nZTogcHJvcHMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnLFxuICBzZXRDb2xvclVJOiBwcm9wcy51cGRhdGVMYXllckNvbG9yVUlcbn0pO1xuXG5MYXllckNvbmZpZ3VyYXRvckZhY3RvcnkuZGVwcyA9IFtcbiAgU291cmNlRGF0YVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU2xpZGVyRmFjdG9yeSxcbiAgVGV4dExhYmVsUGFuZWxGYWN0b3J5LFxuICBMYXllckNvbmZpZ0dyb3VwRmFjdG9yeSxcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3RvcnksXG4gIExheWVyQ29sdW1uTW9kZUNvbmZpZ0ZhY3RvcnksXG4gIExheWVyVHlwZVNlbGVjdG9yRmFjdG9yeSxcbiAgVmlzQ29uZmlnU3dpdGNoRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeSxcbiAgTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3JGYWN0b3J5LFxuICBBcmNMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5LFxuICBBZ2dyU2NhbGVTZWxlY3RvckZhY3RvcnksXG4gIFZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3Rvcnlcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExheWVyQ29uZmlndXJhdG9yRmFjdG9yeShcbiAgU291cmNlRGF0YVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBTb3VyY2VEYXRhU2VsZWN0b3JGYWN0b3J5PixcbiAgVmlzQ29uZmlnU2xpZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBWaXNDb25maWdTbGlkZXJGYWN0b3J5PixcbiAgVGV4dExhYmVsUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFRleHRMYWJlbFBhbmVsRmFjdG9yeT4sXG4gIExheWVyQ29uZmlnR3JvdXA6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29uZmlnR3JvdXBGYWN0b3J5PixcbiAgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQ2hhbm5lbEJ5VmFsdWVTZWxlY3RvckZhY3Rvcnk+LFxuICBMYXllckNvbHVtbk1vZGVDb25maWc6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sdW1uTW9kZUNvbmZpZ0ZhY3Rvcnk+LFxuICBMYXllclR5cGVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJUeXBlU2VsZWN0b3JGYWN0b3J5PixcbiAgVmlzQ29uZmlnU3dpdGNoOiBSZXR1cm5UeXBlPHR5cGVvZiBWaXNDb25maWdTd2l0Y2hGYWN0b3J5PixcbiAgTGF5ZXJDb2xvclNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yU2VsZWN0b3JGYWN0b3J5PixcbiAgTGF5ZXJDb2xvclJhbmdlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JSYW5nZVNlbGVjdG9yRmFjdG9yeT4sXG4gIEFyY0xheWVyQ29sb3JTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgQXJjTGF5ZXJDb2xvclNlbGVjdG9yRmFjdG9yeT4sXG4gIEFnZ3JTY2FsZVNlbGVjdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBBZ2dyU2NhbGVTZWxlY3RvckZhY3Rvcnk+LFxuICBWZWN0b3JUaWxlTGF5ZXJDb25maWd1cmF0b3I6IFJldHVyblR5cGU8dHlwZW9mIFZlY3RvclRpbGVMYXllckNvbmZpZ3VyYXRvckZhY3Rvcnk+XG4pOiBSZWFjdC5Db21wb25lbnRUeXBlPExheWVyQ29uZmlndXJhdG9yUHJvcHM+IHtcbiAgY2xhc3MgTGF5ZXJDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnQ8TGF5ZXJDb25maWd1cmF0b3JQcm9wcz4ge1xuICAgIF9yZW5kZXJQb2ludExheWVyQ29uZmlnKHByb3BzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2NhdHRlcnBsb3RMYXllckNvbmZpZyhwcm9wcyk7XG4gICAgfVxuXG4gICAgX3JlbmRlckljb25MYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcocHJvcHMpO1xuICAgIH1cblxuICAgIF9yZW5kZXJWZWN0b3JUaWxlTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiA8VmVjdG9yVGlsZUxheWVyQ29uZmlndXJhdG9yIHsuLi5wcm9wc30gLz47XG4gICAgfVxuXG4gICAgX3JlbmRlclNjYXR0ZXJwbG90TGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLihsYXllci52aXNDb25maWdTZXR0aW5ncy5maWxsZWQgfHwge2xhYmVsOiAnbGF5ZXIuY29sb3InfSl9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvciB7Li4ubGF5ZXJDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7Lyogb3V0bGluZSBjb2xvciAqL31cbiAgICAgICAgICB7bGF5ZXIudHlwZSA9PT0gTEFZRVJfVFlQRVMucG9pbnQgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnN0cm9rZUNvbG9yfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zdHJva2VDb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb2xvcj17bGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5zdHJva2VDb2xvcn1cbiAgICAgICAgICAgICAgICAgIHByb3BlcnR5PVwic3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17Qm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyLmNvbmZpZy5zaXplRmllbGQgfHwgbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2hcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5maXhlZFJhZGl1c31cbiAgICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYmlsbGJvYXJkfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0ZXh0IGxhYmVsICovfVxuICAgICAgICAgIDxUZXh0TGFiZWxQYW5lbFxuICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgZmllbGRzPXt2aXNDb25maWd1cmF0b3JQcm9wcy5maWVsZHN9XG4gICAgICAgICAgICB1cGRhdGVMYXllclRleHRMYWJlbD17dGhpcy5wcm9wcy51cGRhdGVMYXllclRleHRMYWJlbH1cbiAgICAgICAgICAgIHRleHRMYWJlbD17bGF5ZXIuY29uZmlnLnRleHRMYWJlbH1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgey8qIEludGVyYWN0aW9uICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuaW50ZXJhY3Rpb24nfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFsbG93SG92ZXJ9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaG93TmVpZ2hib3JPbkhvdmVyfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaG93SGlnaGxpZ2h0Q29sb3J9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJDbHVzdGVyTGF5ZXJDb25maWcoe1xuICAgICAgbGF5ZXIsXG4gICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNoYW5uZWxDb25maWdQcm9wc1xuICAgIH0pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvciB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9IGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfSAvPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9uLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxBZ2dyZWdhdGlvblR5cGVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvbG9yQWdncmVnYXRpb259XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogQ2x1c3RlciBSYWRpdXMgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNsdXN0ZXJSYWRpdXN9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucmFkaXVzUmFuZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVySGVhdG1hcExheWVyQ29uZmlnKHtsYXllciwgdmlzQ29uZmlndXJhdG9yUHJvcHMsIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7LyogUmFkaXVzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgICAgey8qIFdlaWdodCAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLndlaWdodCd9PlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMud2VpZ2h0fVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckdyaWRMYXllckNvbmZpZyhwcm9wcykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcocHJvcHMpO1xuICAgIH1cblxuICAgIF9yZW5kZXJIZXhhZ29uTGF5ZXJDb25maWcocHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJBZ2dyZWdhdGlvbkxheWVyQ29uZmlnKHByb3BzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyQWdncmVnYXRpb25MYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsYXllcjtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgdmlzQ29uZmlnOiB7ZW5hYmxlM2QsIGZpeGVkSGVpZ2h0fVxuICAgICAgfSA9IGNvbmZpZztcbiAgICAgIGNvbnN0IGVsZXZhdGlvbkJ5RGVzY3JpcHRpb24gPSAnbGF5ZXIuZWxldmF0aW9uQnlEZXNjcmlwdGlvbic7XG4gICAgICBjb25zdCBjb2xvckJ5RGVzY3JpcHRpb24gPSAnbGF5ZXIuY29sb3JCeURlc2NyaXB0aW9uJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvbG9yJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxBZ2dyU2NhbGVTZWxlY3RvciB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9IGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfSAvPlxuICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cblxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY29sb3JBZ2dyZWdhdGlvbi5jb25kaXRpb24obGF5ZXIuY29uZmlnKSA/IChcbiAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5jb2xvckFnZ3JlZ2F0aW9ufVxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249e2NvbG9yQnlEZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MucGVyY2VudGlsZSAmJlxuICAgICAgICAgICAgICBsYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlLmNvbmRpdGlvbihsYXllci5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5wZXJjZW50aWxlfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5vcGFjaXR5fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBDZWxsIHNpemUgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5yYWRpdXMnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXIgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLndvcmxkVW5pdFNpemV9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuY292ZXJhZ2V9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIEVsZXZhdGlvbiAqL31cbiAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2QgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9eydsYXllclZpc0NvbmZpZ3MuaGVpZ2h0TXVsdGlwbGllcid9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtlbGV2YXRpb25CeURlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFlbmFibGUzZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtsYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplQWdncmVnYXRpb24uY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgICA8QWdncmVnYXRpb25UeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVBZ2dyZWdhdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8QWdnclNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17J0hlaWdodCBTY2FsZSd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9eydsYXllclZpc0NvbmZpZ3MuaGVpZ2h0UmFuZ2UnfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpeGVkSGVpZ2h0fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaFxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpeGVkSGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge2xheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblBlcmNlbnRpbGUuY29uZGl0aW9uKGxheWVyLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25QZXJjZW50aWxlfVxuICAgICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBTaGFuIG1vdmUgdGhlc2UgaW50byBsYXllciBjbGFzc1xuICAgIF9yZW5kZXJIZXhhZ29uSWRMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBGaWxsICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmlsbGVkfVxuICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgbGFiZWw9eydsYXllci5maWxsQ29sb3InfVxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5jb2xvcn1cbiAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuY29sb3JGaWVsZCA/IChcbiAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yU2VsZWN0b3Igey4uLmxheWVyQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLm9wYWNpdHl9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maWxsZWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBPdXRsaW5lICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3V0bGluZX1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnN0cm9rZUNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I9e2xheWVyLmNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgICAgcHJvcGVydHk9XCJzdHJva2VDb2xvclwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZU9wYWNpdHl9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5vdXRsaW5lfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcudmlzQ29uZmlnLm91dGxpbmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBDb3ZlcmFnZSAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLmNvdmVyYWdlJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7IWxheWVyLmNvbmZpZy5jb3ZlcmFnZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvdmVyYWdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmNvdmVyYWdlUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY292ZXJhZ2V9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogaGVpZ2h0ICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZW5hYmxlM2R9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbGV2YXRpb25TY2FsZX1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD17J2xheWVyVmlzQ29uZmlncy5oZWlnaHRNdWx0aXBsaWVyJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpeGVkSGVpZ2h0fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiB0ZXh0IGxhYmVsICovfVxuICAgICAgICAgIDxUZXh0TGFiZWxQYW5lbFxuICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgZmllbGRzPXt2aXNDb25maWd1cmF0b3JQcm9wcy5maWVsZHN9XG4gICAgICAgICAgICB1cGRhdGVMYXllclRleHRMYWJlbD17dGhpcy5wcm9wcy51cGRhdGVMYXllclRleHRMYWJlbH1cbiAgICAgICAgICAgIHRleHRMYWJlbD17bGF5ZXIuY29uZmlnLnRleHRMYWJlbH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyQXJjTGF5ZXJDb25maWcoYXJncykge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlckxpbmVMYXllckNvbmZpZyhhcmdzKTtcbiAgICB9XG5cbiAgICBfcmVuZGVyTGluZUxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICAgICAgey8qIENvbG9yICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuY29sb3InfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNvdXJjZUNvbG9yfVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5jb2xvckZpZWxkID8gKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclJhbmdlU2VsZWN0b3Igey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEFyY0xheWVyQ29sb3JTZWxlY3RvclxuICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICBzZXRDb2xvclVJPXtsYXllckNvbmZpZ3VyYXRvclByb3BzLnNldENvbG9yVUl9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VDb25maWc9e2xheWVyQ29uZmlndXJhdG9yUHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2VWaXNDb25maWc9e3Zpc0NvbmZpZ3VyYXRvclByb3BzLm9uQ2hhbmdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogdGhpY2tuZXNzICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuc3Ryb2tlJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXIuY29uZmlnLnNpemVGaWVsZH1cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIGVsZXZhdGlvbiBzY2FsZSAqL31cbiAgICAgICAgICB7bGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGUgPyAoXG4gICAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5lbGV2YXRpb25TY2FsZVwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVsZXZhdGlvblNjYWxlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlclRyaXBMYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXRhOiB7ZmVhdHVyZVR5cGVzID0ge319XG4gICAgICB9ID0gbGF5ZXI7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogQ29sb3IgKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXAgbGFiZWw9eydsYXllci5jb2xvcid9IGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlIFdpZHRoICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gbGFiZWw9XCJsYXllci5zdHJva2VXaWR0aFwiIGNvbGxhcHNpYmxlPlxuICAgICAgICAgICAge2xheWVyLmNvbmZpZy5zaXplRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnRoaWNrbmVzc31cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5iaWxsYm9hcmR9IHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5zaXplfVxuICAgICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIFRyYWlsIExlbmd0aCovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICB7Li4uKGZlYXR1cmVUeXBlcy5wb2x5Z29uID8gbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZCA6IHt9KX1cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIudHJhaWxMZW5ndGhcIlxuICAgICAgICAgICAgZGVzY3JpcHRpb249XCJsYXllci50cmFpbExlbmd0aERlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudHJhaWxMZW5ndGh9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1N3aXRjaCB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZmFkZVRyYWlsfSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlckdlb2pzb25MYXllckNvbmZpZyh7XG4gICAgICBsYXllcixcbiAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgIGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzXG4gICAgfSkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXRhOiB7ZmVhdHVyZVR5cGVzID0ge319LFxuICAgICAgICBjb25maWc6IHt2aXNDb25maWd9XG4gICAgICB9ID0gbGF5ZXI7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICAgICB7LyogRmlsbCBDb2xvciAqL31cbiAgICAgICAgICB7ZmVhdHVyZVR5cGVzLnBvbHlnb24gfHwgZmVhdHVyZVR5cGVzLnBvaW50ID8gKFxuICAgICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpbGxlZH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBsYWJlbD1cImxheWVyLmZpbGxDb2xvclwiXG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgICAgPExheWVyQ29sb3JSYW5nZVNlbGVjdG9yIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgey8qIHN0cm9rZSBjb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZWR9XG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICBsYWJlbD1cImxheWVyLnN0cm9rZUNvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnN0cm9rZUNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I9e2xheWVyLmNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgICAgcHJvcGVydHk9XCJzdHJva2VDb2xvclwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnN0cm9rZU9wYWNpdHl9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlIFdpZHRoICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICB7Li4uKGZlYXR1cmVUeXBlcy5wb2x5Z29uID8gbGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZCA6IHt9KX1cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuc3Ryb2tlV2lkdGhcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnNpemVGaWVsZCA/IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MudGhpY2tuZXNzfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8Q2hhbm5lbEJ5VmFsdWVTZWxlY3RvclxuICAgICAgICAgICAgICAgIGNoYW5uZWw9e2xheWVyLnZpc3VhbENoYW5uZWxzLnNpemV9XG4gICAgICAgICAgICAgICAgey4uLmxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogRWxldmF0aW9uICovfVxuICAgICAgICAgIHtmZWF0dXJlVHlwZXMucG9seWdvbiA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmVuYWJsZTNkfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17IXZpc0NvbmZpZy5maWxsZWR9XG4gICAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoXG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZml4ZWRIZWlnaHR9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8VmlzQ29uZmlnU3dpdGNoIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc30gey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLndpcmVmcmFtZX0gLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIHsvKiBSYWRpdXMgKi99XG4gICAgICAgICAge2ZlYXR1cmVUeXBlcy5wb2ludCA/IChcbiAgICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIucmFkaXVzJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICAgIHshbGF5ZXIuY29uZmlnLnJhZGl1c0ZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17Qm9vbGVhbihsYXllci5jb25maWcucmFkaXVzRmllbGQpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnJhZGl1c1JhbmdlfVxuICAgICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllci5jb25maWcucmFkaXVzRmllbGR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICBjaGFubmVsPXtsYXllci52aXN1YWxDaGFubmVscy5yYWRpdXN9XG4gICAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TdHlsZWRMYXllclZpc3VhbENvbmZpZ3VyYXRvcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgX3JlbmRlcjNETGF5ZXJDb25maWcoe2xheWVyLCB2aXNDb25maWd1cmF0b3JQcm9wc30pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLjNETW9kZWwnfSBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgIGFjY2VwdD1cIi5nbGIsLmdsdGZcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0LmZpbGVzICYmIGUudGFyZ2V0LmZpbGVzWzBdKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGUudGFyZ2V0LmZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgIHZpc0NvbmZpZ3VyYXRvclByb3BzLm9uQ2hhbmdlKHtzY2VuZWdyYXBoOiB1cmx9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCBsYWJlbD17J2xheWVyLjNETW9kZWxPcHRpb25zJ30gY29sbGFwc2libGU+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5zaXplU2NhbGV9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxWaXNDb25maWdTbGlkZXJcbiAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmFuZ2xlWH1cbiAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuYW5nbGVZfVxuICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5hbmdsZVp9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9yZW5kZXJTMkxheWVyQ29uZmlnKHtcbiAgICAgIGxheWVyLFxuICAgICAgdmlzQ29uZmlndXJhdG9yUHJvcHMsXG4gICAgICBsYXllckNvbmZpZ3VyYXRvclByb3BzLFxuICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHNcbiAgICB9KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvbmZpZzoge3Zpc0NvbmZpZ31cbiAgICAgIH0gPSBsYXllcjtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyVmlzdWFsQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHsvKiBDb2xvciAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cFxuICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpbGxlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuZmlsbENvbG9yXCJcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuY29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLmNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yIHsuLi5sYXllckNvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlciB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mub3BhY2l0eX0gey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG5cbiAgICAgICAgICB7LyogU3Ryb2tlICovfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwXG4gICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Muc3Ryb2tlZH1cbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIGxhYmVsPVwibGF5ZXIuc3Ryb2tlQ29sb3JcIlxuICAgICAgICAgICAgY29sbGFwc2libGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bGF5ZXIuY29uZmlnLnN0cm9rZUNvbG9yRmllbGQgPyAoXG4gICAgICAgICAgICAgIDxMYXllckNvbG9yUmFuZ2VTZWxlY3RvciB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IHByb3BlcnR5PVwic3Ryb2tlQ29sb3JSYW5nZVwiIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TGF5ZXJDb2xvclNlbGVjdG9yXG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkQ29sb3I9e2xheWVyLmNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgICAgcHJvcGVydHk9XCJzdHJva2VDb2xvclwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc3Ryb2tlQ29sb3J9XG4gICAgICAgICAgICAgIHsuLi5sYXllckNoYW5uZWxDb25maWdQcm9wc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9MYXllckNvbmZpZ0dyb3VwPlxuXG4gICAgICAgICAgey8qIFN0cm9rZSBXaWR0aCAqL31cbiAgICAgICAgICA8TGF5ZXJDb25maWdHcm91cCB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IGxhYmVsPVwibGF5ZXIuc3Ryb2tlV2lkdGhcIiBjb2xsYXBzaWJsZT5cbiAgICAgICAgICAgIHtsYXllci5jb25maWcuc2l6ZUZpZWxkID8gKFxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLnNpemVSYW5nZX1cbiAgICAgICAgICAgICAgICB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2ZhbHNlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy50aGlja25lc3N9XG4gICAgICAgICAgICAgICAgey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfVxuICAgICAgICAgICAgICAgIGxhYmVsPXtmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8Q29uZmlnR3JvdXBDb2xsYXBzaWJsZUNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxDaGFubmVsQnlWYWx1ZVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZX1cbiAgICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cblxuICAgICAgICAgIHsvKiBFbGV2YXRpb24gKi99XG4gICAgICAgICAgPExheWVyQ29uZmlnR3JvdXBcbiAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgIHsuLi5sYXllci52aXNDb25maWdTZXR0aW5ncy5lbmFibGUzZH1cbiAgICAgICAgICAgIGRpc2FibGVkPXshdmlzQ29uZmlnLmZpbGxlZH1cbiAgICAgICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENoYW5uZWxCeVZhbHVlU2VsZWN0b3JcbiAgICAgICAgICAgICAgY2hhbm5lbD17bGF5ZXIudmlzdWFsQ2hhbm5lbHMuaGVpZ2h0fVxuICAgICAgICAgICAgICB7Li4ubGF5ZXJDaGFubmVsQ29uZmlnUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFZpc0NvbmZpZ1NsaWRlclxuICAgICAgICAgICAgICB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MuZWxldmF0aW9uU2NhbGV9XG4gICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgbGFiZWw9eydsYXllclZpc0NvbmZpZ3MuaGVpZ2h0TXVsdGlwbGllcid9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPENvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAgICA8VmlzQ29uZmlnU2xpZGVyXG4gICAgICAgICAgICAgICAgey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmhlaWdodFJhbmdlfVxuICAgICAgICAgICAgICAgIHsuLi52aXNDb25maWd1cmF0b3JQcm9wc31cbiAgICAgICAgICAgICAgICBsYWJlbD1cImxheWVyVmlzQ29uZmlncy5oZWlnaHRSYW5nZVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLmxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLmZpeGVkSGVpZ2h0fSB7Li4udmlzQ29uZmlndXJhdG9yUHJvcHN9IC8+XG4gICAgICAgICAgICAgIDxWaXNDb25maWdTd2l0Y2ggey4uLnZpc0NvbmZpZ3VyYXRvclByb3BzfSB7Li4ubGF5ZXIudmlzQ29uZmlnU2V0dGluZ3Mud2lyZWZyYW1lfSAvPlxuICAgICAgICAgICAgPC9Db25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICA8L0xheWVyQ29uZmlnR3JvdXA+XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJWaXN1YWxDb25maWd1cmF0b3I+XG4gICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZVNlbGVjdENvbHVtbk1vZGUgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHt1cGRhdGVMYXllckNvbmZpZ30gPSB0aGlzLnByb3BzO1xuICAgICAgdXBkYXRlTGF5ZXJDb25maWcoe2NvbHVtbk1vZGU6IGtleX0pO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGxheWVyLFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgb3Blbk1vZGFsLFxuICAgICAgICB1cGRhdGVMYXllckNvbmZpZyxcbiAgICAgICAgbGF5ZXJUeXBlT3B0aW9ucyxcbiAgICAgICAgdXBkYXRlTGF5ZXJUeXBlLFxuICAgICAgICBkaXNhYmxlVHlwZVNlbGVjdCA9IGZhbHNlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHtmaWVsZHMgPSBbXSwgZmllbGRQYWlycyA9IHVuZGVmaW5lZH0gPSBsYXllci5jb25maWcuZGF0YUlkXG4gICAgICAgID8gZGF0YXNldHNbbGF5ZXIuY29uZmlnLmRhdGFJZF1cbiAgICAgICAgOiB7fTtcbiAgICAgIGNvbnN0IHtjb25maWd9ID0gbGF5ZXI7XG5cbiAgICAgIGNvbnN0IHZpc0NvbmZpZ3VyYXRvclByb3BzID0gZ2V0VmlzQ29uZmlndXJhdG9yUHJvcHModGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllckNvbmZpZ3VyYXRvclByb3BzID0gZ2V0TGF5ZXJDb25maWd1cmF0b3JQcm9wcyh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxheWVyQ2hhbm5lbENvbmZpZ1Byb3BzID0gZ2V0TGF5ZXJDaGFubmVsQ29uZmlnUHJvcHModGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBkYXRhc2V0ID0gZ2V0TGF5ZXJEYXRhc2V0KGRhdGFzZXRzLCBsYXllcik7XG4gICAgICBjb25zdCByZW5kZXJUZW1wbGF0ZSA9IGxheWVyLnR5cGUgJiYgYF9yZW5kZXIke2NhcGl0YWxpemVGaXJzdExldHRlcihsYXllci50eXBlKX1MYXllckNvbmZpZ2A7XG5cbiAgICAgIC8vIHNob3cgb25seSBkYXRhc2V0cyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBsYXllclxuICAgICAgY29uc3Qgc291cmNlRGF0YVNlbGVjdG9yT3B0aW9ucyA9IE9iamVjdC5rZXlzKGRhdGFzZXRzKS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGlkKSA9PiAobWF0Y2hEYXRhc2V0VHlwZShkYXRhc2V0c1tpZF0sIGxheWVyKSA/IHsuLi5hY2MsIFtpZF06IGRhdGFzZXRzW2lkXX0gOiBhY2MpLFxuICAgICAgICB7fVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgICAgIHtsYXllci5sYXllckluZm9Nb2RhbCAmJiAhbGF5ZXIuc3VwcG9ydGVkQ29sdW1uTW9kZXMgPyAoXG4gICAgICAgICAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgaGFuZGxlciB0eXBlLiBTdHJpbmcgb3IgcmV0dXJuIHR5cGUgb2YgbGF5ZXIubGF5ZXJJbmZvTW9kYWwgP1xuICAgICAgICAgICAgPEhvd1RvQnV0dG9uIG9uQ2xpY2s9eygpID0+IG9wZW5Nb2RhbChsYXllci5sYXllckluZm9Nb2RhbCBhcyBhbnkpfSAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxMYXllckNvbmZpZ0dyb3VwIGxhYmVsPXsnbGF5ZXIuYmFzaWMnfSBjb2xsYXBzaWJsZSBleHBhbmRlZD17IWxheWVyLmhhc0FsbENvbHVtbnMoKX0+XG4gICAgICAgICAgICA8TGF5ZXJUeXBlU2VsZWN0b3JcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ9e2xheWVyLnR5cGV9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlVHlwZVNlbGVjdH1cbiAgICAgICAgICAgICAgb3B0aW9ucz17bGF5ZXJUeXBlT3B0aW9uc31cbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBvblNlbGVjdD17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxDb25maWdHcm91cENvbGxhcHNpYmxlQ29udGVudD5cbiAgICAgICAgICAgICAgPFNvdXJjZURhdGFTZWxlY3RvclxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtzb3VyY2VEYXRhU2VsZWN0b3JPcHRpb25zfVxuICAgICAgICAgICAgICAgIGlkPXtsYXllci5pZH1cbiAgICAgICAgICAgICAgICBkYXRhSWQ9e2NvbmZpZy5kYXRhSWR9XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXsodmFsdWU6IHN0cmluZykgPT4gdXBkYXRlTGF5ZXJDb25maWcoe2RhdGFJZDogdmFsdWV9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPExheWVyQ29sdW1uTW9kZUNvbmZpZ1xuICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRDb2x1bW5Nb2Rlcz17bGF5ZXIuc3VwcG9ydGVkQ29sdW1uTW9kZXN9XG4gICAgICAgICAgICAgICAgaWQ9e2xheWVyLmlkfVxuICAgICAgICAgICAgICAgIGxheWVyQ29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICAgICAgLy8gVE9ETyBmaWd1cmUgb3V0IGhhbmRsZXIgdHlwZS4gU3RyaW5nIG9yIHJldHVybiB0eXBlIG9mIGxheWVyLmxheWVySW5mb01vZGFsID9cbiAgICAgICAgICAgICAgICBvcGVuTW9kYWw9e29wZW5Nb2RhbCBhcyBhbnl9XG4gICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJDb25maWc9e3VwZGF0ZUxheWVyQ29uZmlnfVxuICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHlwZT17dXBkYXRlTGF5ZXJUeXBlfVxuICAgICAgICAgICAgICAgIGZpZWxkcz17ZmllbGRzfVxuICAgICAgICAgICAgICAgIGZpZWxkUGFpcnM9e2ZpZWxkUGFpcnN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbmZpZ0dyb3VwQ29sbGFwc2libGVDb250ZW50PlxuICAgICAgICAgICAge2xheWVyLmVycm9yTWVzc2FnZSA/IDxMYXllckVycm9yTWVzc2FnZSBlcnJvck1lc3NhZ2U9e2xheWVyLmVycm9yTWVzc2FnZX0gLz4gOiBudWxsfVxuICAgICAgICAgIDwvTGF5ZXJDb25maWdHcm91cD5cbiAgICAgICAgICB7cmVuZGVyVGVtcGxhdGUgJiZcbiAgICAgICAgICAgIHRoaXNbcmVuZGVyVGVtcGxhdGVdICYmXG4gICAgICAgICAgICB0aGlzW3JlbmRlclRlbXBsYXRlXSh7XG4gICAgICAgICAgICAgIGxheWVyLFxuICAgICAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICAgICAgICB2aXNDb25maWd1cmF0b3JQcm9wcyxcbiAgICAgICAgICAgICAgbGF5ZXJDaGFubmVsQ29uZmlnUHJvcHMsXG4gICAgICAgICAgICAgIGxheWVyQ29uZmlndXJhdG9yUHJvcHNcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8L1N0eWxlZExheWVyQ29uZmlndXJhdG9yPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gTGF5ZXJDb25maWd1cmF0b3I7XG59XG5cbmV4cG9ydCBjb25zdCBBZ2dyZWdhdGlvblR5cGVTZWxlY3RvciA9ICh7Y2hhbm5lbCwgbGF5ZXIsIG9uQ2hhbmdlfTogQWdncmVnYXRpb25TZWxlY3RvclByb3BzKSA9PiB7XG4gIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb24sIGtleX0gPSBjaGFubmVsO1xuICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbGF5ZXIuY29uZmlnW2ZpZWxkXTtcbiAgY29uc3Qge3Zpc0NvbmZpZ30gPSBsYXllci5jb25maWc7XG5cbiAgLy8gYWdncmVnYXRpb24gc2hvdWxkIG9ubHkgYmUgc2VsZWN0YWJsZSB3aGVuIGZpZWxkIGlzIHNlbGVjdGVkXG4gIGNvbnN0IGxheWVyQWdncmVnYXRpb25UeXBlcyA9IGxheWVyLmdldEFnZ3JlZ2F0aW9uT3B0aW9ucyhrZXkpO1xuXG4gIGNvbnN0IGFnZ3JlZ2F0aW9uT3B0aW9ucyA9IEFHR1JFR0FUSU9OX1RZUEVfT1BUSU9OUy5maWx0ZXIoKHtpZH0pID0+XG4gICAgbGF5ZXJBZ2dyZWdhdGlvblR5cGVzLmluY2x1ZGVzKGlkKVxuICApO1xuXG4gIGNvbnN0IHNlbGVjdGVkQWdncmVnYXRpb24gPSBhZ2dyZWdhdGlvblxuICAgID8gYWdncmVnYXRpb25PcHRpb25zLmZpbmQoKHtpZH0pID0+IGlkID09PSB2aXNDb25maWdbYWdncmVnYXRpb25dKVxuICAgIDogW107XG5cbiAgcmV0dXJuIChcbiAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgIGlkPXsnbGF5ZXIuYWdncmVnYXRlQnknfVxuICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgZmllbGQ6IHNlbGVjdGVkRmllbGQuZGlzcGxheU5hbWVcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZEFnZ3JlZ2F0aW9ufVxuICAgICAgICBvcHRpb25zPXthZ2dyZWdhdGlvbk9wdGlvbnN9XG4gICAgICAgIGRpc3BsYXlPcHRpb249XCJsYWJlbFwiXG4gICAgICAgIGdldE9wdGlvblZhbHVlPVwiaWRcIlxuICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICBvbkNoYW5nZT17dmFsdWUgPT5cbiAgICAgICAgICBvbkNoYW5nZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgLi4ubGF5ZXIuY29uZmlnLnZpc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBbYWdncmVnYXRpb24gYXMgc3RyaW5nXTogdmFsdWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNoYW5uZWwua2V5XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAvPlxuICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgKTtcbn07XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1wYXJhbXMgKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFOLE9BQUE7QUFFQSxJ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
|
|
@@ -3,12 +3,14 @@ import { Layer, LayerClassesType } from '@kepler.gl/layers';
|
|
|
3
3
|
import { Datasets } from '@kepler.gl/table';
|
|
4
4
|
import { UIStateActions, VisStateActions, MapStateActions } from '@kepler.gl/actions';
|
|
5
5
|
import LayerPanelFactory from './layer-panel';
|
|
6
|
+
import { SplitMap } from '@kepler.gl/types';
|
|
6
7
|
export declare type LayerListProps = {
|
|
7
8
|
datasets: Datasets;
|
|
8
9
|
layers: Layer[];
|
|
9
10
|
layerOrder: string[];
|
|
10
11
|
layerClasses: LayerClassesType;
|
|
11
12
|
isSortable?: boolean;
|
|
13
|
+
splitMap?: SplitMap;
|
|
12
14
|
uiStateActions: typeof UIStateActions;
|
|
13
15
|
visStateActions: typeof VisStateActions;
|
|
14
16
|
mapStateActions: typeof MapStateActions;
|