@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.1
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/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/bottom-widget.js +12 -6
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.js +3 -3
- package/dist/common/data-table/index.d.ts +1 -1
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/common/icons/index.js +8 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/line-chart.d.ts +4 -1
- package/dist/common/line-chart.js +59 -12
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -43
- package/dist/common/slider/slider.d.ts +4 -0
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +1 -1
- package/dist/common/styled-components.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +3 -2
- package/dist/effects/effect-configurator.js +213 -52
- package/dist/effects/effect-manager.js +3 -3
- package/dist/effects/effect-panel-header.js +34 -17
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +1 -0
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +3 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder/geocoder.js +61 -14
- package/dist/geocoder-panel.d.ts +1 -0
- package/dist/geocoder-panel.js +6 -2
- package/dist/index.d.ts +14 -0
- package/dist/index.js +124 -1
- package/dist/kepler-gl.d.ts +17 -5
- package/dist/kepler-gl.js +89 -11
- package/dist/loading-indicator.d.ts +2 -0
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/layer-hover-info.js +68 -35
- package/dist/map/layer-selector-panel.d.ts +1 -1
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-toolbar.d.ts +4 -4
- package/dist/map/map-control.d.ts +5 -2
- package/dist/map/map-control.js +16 -7
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +1 -1
- package/dist/map/map-legend-panel.js +7 -7
- package/dist/map/map-legend.d.ts +1 -1
- package/dist/map/map-legend.js +6 -6
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover.js +2 -2
- package/dist/map-container.d.ts +13 -3
- package/dist/map-container.js +250 -57
- package/dist/map-view-state-context.d.ts +1 -0
- package/dist/map-view-state-context.js +1 -1
- package/dist/modal-container.d.ts +3 -2
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-video-modal.d.ts +25 -0
- package/dist/modals/export-video-modal.js +338 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +25 -0
- package/dist/modals/hubble-utils.js +197 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.js +21 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +7 -6
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/layer-manager.js +11 -3
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +402 -76
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +1 -1
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel.js +5 -1
- package/package.json +39 -28
package/dist/map/map-legend.js
CHANGED
|
@@ -43,7 +43,7 @@ var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents[
|
|
|
43
43
|
}, function (props) {
|
|
44
44
|
return props.theme.panelBorderColor;
|
|
45
45
|
}, function (props) {
|
|
46
|
-
return props
|
|
46
|
+
return props.$last ? 0 : '1px';
|
|
47
47
|
}, function (props) {
|
|
48
48
|
return props.width;
|
|
49
49
|
}, function (props) {
|
|
@@ -63,9 +63,9 @@ var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents[
|
|
|
63
63
|
});
|
|
64
64
|
var StyledLegendHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n"])));
|
|
65
65
|
var StyledVisibilityToggle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n color: ", ";\n display: flex;\n align-items: center;\n margin-left: 8px;\n opacity: ", ";\n\n &:hover {\n color: ", ";\n opacity: 1;\n }\n"])), function (props) {
|
|
66
|
-
return props
|
|
66
|
+
return props.$isVisible ? props.theme.textColor : props.theme.subtextColor;
|
|
67
67
|
}, function (props) {
|
|
68
|
-
return props
|
|
68
|
+
return props.$isVisible ? 1 : 0.5;
|
|
69
69
|
}, function (props) {
|
|
70
70
|
return props.theme.textColorHl;
|
|
71
71
|
});
|
|
@@ -266,7 +266,7 @@ function LayerLegendHeaderFactory() {
|
|
|
266
266
|
opacity: isVisible ? 1 : 0.5
|
|
267
267
|
}
|
|
268
268
|
}, layer.config.label), onToggleLayerVisibility ? /*#__PURE__*/_react["default"].createElement(StyledVisibilityToggle, {
|
|
269
|
-
isVisible: isVisible,
|
|
269
|
+
$isVisible: isVisible,
|
|
270
270
|
onClick: onToggle
|
|
271
271
|
}, isVisible ? /*#__PURE__*/_react["default"].createElement(_icons.EyeSeen, {
|
|
272
272
|
height: "12px"
|
|
@@ -370,7 +370,7 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
|
|
|
370
370
|
var containerW = width || _constants.DIMENSIONS.mapControl.width;
|
|
371
371
|
return /*#__PURE__*/_react["default"].createElement(StyledMapControlLegend, {
|
|
372
372
|
className: "legend--layer",
|
|
373
|
-
last: index === layers.length - 1,
|
|
373
|
+
$last: index === layers.length - 1,
|
|
374
374
|
key: index,
|
|
375
375
|
width: containerW
|
|
376
376
|
}, /*#__PURE__*/_react["default"].createElement(LayerLegendHeader, {
|
|
@@ -393,4 +393,4 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
|
|
|
393
393
|
return MapLegend;
|
|
394
394
|
}
|
|
395
395
|
var _default = exports["default"] = MapLegendFactory;
|
|
396
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZE1hcENvbnRyb2xMZWdlbmQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJmb250RmFtaWx5IiwicGFuZWxCb3JkZXJDb2xvciIsImxhc3QiLCJ3aWR0aCIsInRleHRDb2xvciIsInN1YnRleHRDb2xvciIsInRleHRDb2xvckhsIiwiU3R5bGVkTGVnZW5kSGVhZGVyUm93IiwiU3R5bGVkVmlzaWJpbGl0eVRvZ2dsZSIsImlzVmlzaWJsZSIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwibGFiZWxGb3JtYXQiLCJkaXNwbGF5Rm9ybWF0IiwiZDNGb3JtYXQiLCJmb3JtYXRNZXNzYWdlIiwiY29uY2F0Iiwia2V5IiwiZGVmYXVsdE1lc3NhZ2UiLCJnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyIiwiX2dldERpc3RhbmNlU2NhbGVzIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsImZpeGVkUmFkaXVzIiwic2l6ZUZpZWxkIiwiZ2V0UmFkaXVzU2NhbGVCeVpvb20iLCJMYXllclJhZGl1c0xlZ2VuZCIsIl9yZWY1IiwidmlzdWFsQ2hhbm5lbCIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsImVuYWJsZVNpemVCeSIsIl9tYXAzIiwiX21hcDQiLCJzaXplU2NhbGUiLCJzaXplRG9tYWluIiwic2l6ZVJhbmdlIiwicmFkaXVzTXVsdGlwbGllciIsInYiLCJpc0NvbG9yQ2hhbm5lbCIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiaW5jbHVkZXMiLCJjaGFubmVsU2NhbGVUeXBlIiwiaXNSYWRpdXNDaGFubmVsIiwicmFkaXVzIiwiTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5IiwiTGF5ZXJMZWdlbmRIZWFkZXIiLCJfcmVmNiIsIm9wdGlvbnMiLCJvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSIsIm9uVG9nZ2xlIiwic2hvd0xheWVyTmFtZSIsInN0eWxlIiwib3BhY2l0eSIsIkV5ZVNlZW4iLCJoZWlnaHQiLCJFeWVVbnNlZW4iLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJBcnJvd0Rvd24iLCJBcnJvd1JpZ2h0IiwiTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeSIsIkxheWVyTGVnZW5kQ29udGVudCIsIl9yZWY3IiwiY29udGFpbmVyVyIsInZpc3VhbENoYW5uZWxzIiwiZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMiLCJjaGFubmVsS2V5cyIsInZhbHVlcyIsImNvbG9yQ2hhbm5lbHMiLCJub25Db2xvckNoYW5uZWxzIiwidmMiLCJESU1FTlNJT05TIiwiY29sb3JDaGFubmVsVG9SZW5kZXIiLCJjYyIsIl9sYXllciRnZXRWaXN1YWxDaGFubiIsImNvbmRpdGlvbiIsIkZyYWdtZW50IiwibWF0Y2hDb25kaXRpb24iLCJlbmFibGVkIiwiZGVmYXVsdE1lYXN1cmUiLCJNYXBMZWdlbmRGYWN0b3J5IiwiTWFwTGVnZW5kIiwiX3JlZjgiLCJfcmVmOCRsYXllcnMiLCJsYXllcnMiLCJfcmVmOCRhY3Rpb25JY29ucyIsImluZGV4IiwiaXNWYWxpZFRvU2F2ZSIsImhpZGRlbiIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtbGVnZW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtGQywgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCBDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7cmdifSBmcm9tICdkMy1jb2xvcic7XG5pbXBvcnQge2Zvcm1hdCBhcyBkM0Zvcm1hdH0gZnJvbSAnZDMtZm9ybWF0JztcbmltcG9ydCB7dXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgQ29sb3JMZWdlbmRGYWN0b3J5LCB7TGVnZW5kUm93RmFjdG9yeX0gZnJvbSAnLi4vY29tbW9uL2NvbG9yLWxlZ2VuZCc7XG5pbXBvcnQgUmFkaXVzTGVnZW5kIGZyb20gJy4uL2NvbW1vbi9yYWRpdXMtbGVnZW5kJztcbmltcG9ydCB7Q0hBTk5FTF9TQ0FMRVMsIERJTUVOU0lPTlN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtMYXllciwgTGF5ZXJCYXNlQ29uZmlnLCBWaXN1YWxDaGFubmVsLCBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb259IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIE1hcFN0YXRlLCBSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2dldERpc3RhbmNlU2NhbGVzfSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7QXJyb3dEb3duLCBBcnJvd1JpZ2h0LCBFeWVTZWVuLCBFeWVVbnNlZW59IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5cbmludGVyZmFjZSBTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgbGFzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNYXBDb250cm9sTGVnZW5kID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHM+YFxuICBwYWRkaW5nOiAxMHB4ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4IDEwcHhcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLmxhc3QgPyAwIDogJzFweCcpfTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl90eXBlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9fdGl0bGUge1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX2l0ZW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfYnkge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGQge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZExlZ2VuZEhlYWRlclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFN0eWxlZFZpc2liaWxpdHlUb2dnbGUgPSBzdHlsZWQuZGl2PHtpc1Zpc2libGU6IGJvb2xlYW59PmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuaXNWaXNpYmxlID8gcHJvcHMudGhlbWUudGV4dENvbG9yIDogcHJvcHMudGhlbWUuc3VidGV4dENvbG9yKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmlzVmlzaWJsZSA/IDEgOiAwLjUpfTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFZpc3VhbENoYW5uZWxNZXRyaWMgPSAoe25hbWV9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX190aXRsZVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bmFtZX0gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyU2l6ZUxlZ2VuZFByb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJEZWZhdWx0TGVnZW5kOiBSZWFjdC5GQzxMYXllclNpemVMZWdlbmRQcm9wcz4gPSAoe2xhYmVsLCBuYW1lfSkgPT5cbiAgbGFiZWwgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPntsYWJlbCA/IDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtsYWJlbH0gLz4gOiBudWxsfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPiBieSA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgICB7bmFtZSAmJiA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtuYW1lfSAvPn1cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZUNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgbGFiZWw/OiBzdHJpbmc7XG59O1xuXG5TaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IFNpbmdsZUNvbG9yTGVnZW5kOiBSZWFjdC5GQzxTaW5nbGVDb2xvckxlZ2VuZFByb3BzPiA9ICh7Y29sb3IsIGxhYmVsfSkgPT4gKFxuICAgIDxMZWdlbmRSb3dcbiAgICAgIGxhYmVsPXtsYWJlbCA/PyAnJ31cbiAgICAgIGRpc3BsYXlMYWJlbD17Qm9vbGVhbihsYWJlbCl9XG4gICAgICBjb2xvcj17QXJyYXkuaXNBcnJheShjb2xvcikgPyByZ2IoLi4uY29sb3IpLnRvU3RyaW5nKCkgOiBjb2xvcn1cbiAgICAvPlxuICApO1xuXG4gIFNpbmdsZUNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ1NpbmdsZUNvbG9yTGVnZW5kJztcblxuICByZXR1cm4gUmVhY3QubWVtbyhTaW5nbGVDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgZGVzY3JpcHRpb246IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbjtcbiAgY29uZmlnOiBMYXllckJhc2VDb25maWc7XG4gIGNvbG9yQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGxheWVyOiBMYXllcjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yTGVnZW5kRmFjdG9yeSxcbiAgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkoXG4gIENvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBTaW5nbGVDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckNvbG9yTGVnZW5kOiBSZWFjdC5GQzxMYXllckNvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb25maWcsXG4gICAgbGF5ZXIsXG4gICAgY29sb3JDaGFubmVsLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgaXNFeHBvcnQsXG4gICAgbWFwU3RhdGUsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgZW5hYmxlQ29sb3JCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZSwgcHJvcGVydHksIGZpeGVkfSA9IGNvbG9yQ2hhbm5lbDtcbiAgICBjb25zdCBbY29sb3JTY2FsZSwgY29sb3JGaWVsZCwgY29sb3JEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGNvbnN0IGlzRml4ZWQgPSBmaXhlZCAmJiBjb25maWcudmlzQ29uZmlnW2ZpeGVkXTtcblxuICAgIGNvbnN0IGNvbG9yUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICBjb25zdCBvblVwZGF0ZUNvbG9yTGVnZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvckxlZ2VuZHMgPT4ge1xuICAgICAgICBpZiAob25MYXllclZpc0NvbmZpZ0NoYW5nZSkge1xuICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UobGF5ZXIsIHtcbiAgICAgICAgICAgIFtyYW5nZV06IHtcbiAgICAgICAgICAgICAgLi4uY29sb3JSYW5nZSxcbiAgICAgICAgICAgICAgY29sb3JMZWdlbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbbGF5ZXIsIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsIGNvbG9yUmFuZ2UsIHJhbmdlXVxuICAgICk7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoaXNFeHBvcnQpO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUV4cGFuZGVkID0gKCkgPT4gc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9faXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3Itc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVDb2xvckJ5fSAvPlxuICAgICAgICAgICAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsZWdlbmQtY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzRXhwYW5kZWQgPyBhY3Rpb25JY29ucy5leHBhbmRlZCA6IGFjdGlvbkljb25zLmNvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICAgIDxDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17Y29sb3JTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbFxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtjb2xvckRvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KGNvbG9yRmllbGQgJiYgY29sb3JGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17Y29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQ9e29uVXBkYXRlQ29sb3JMZWdlbmR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXQgfHwgQm9vbGVhbihpc0V4cG9ydCl9XG4gICAgICAgICAgICAgICAgICBpc0ZpeGVkPXtpc0ZpeGVkfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgbGFiZWxGb3JtYXQ9e1xuICAgICAgICAgICAgICAgICAgICBjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0ID8gZDNGb3JtYXQoY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U2luZ2xlQ29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWdbcHJvcGVydHldIHx8IGNvbmZpZy5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuJHtsYXllci50eXBlfS5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLmRlZmF1bHQuc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICcgJyAvLyBtdXN0bid0IGJlIGVtcHR5IHN0cmluZyBvciBpZCB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIExheWVyQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnTGF5ZXJDb2xvckxlZ2VuZCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKExheWVyQ29sb3JMZWdlbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSkge1xuICAvLyBAdHMtaWdub3JlIHRoaXMgYWN0dWFsbHkgZXhpc3RcbiAgY29uc3Qge21ldGVyc1BlclBpeGVsfSA9IGdldERpc3RhbmNlU2NhbGVzKG1hcFN0YXRlKTtcbiAgLy8gaWYgbm8gZmllbGQgc2l6ZSBpcyBkZWZpbmVkIHdlIG5lZWQgdG8gcGFzcyBmaXhlZCByYWRpdXMgPSBmYWxzZVxuICBjb25zdCBmaXhlZFJhZGl1cyA9IGxheWVyLmNvbmZpZy52aXNDb25maWcuZml4ZWRSYWRpdXMgJiYgQm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKTtcbiAgcmV0dXJuIGxheWVyLmdldFJhZGl1c1NjYWxlQnlab29tKG1hcFN0YXRlLCBmaXhlZFJhZGl1cykgLyBtZXRlcnNQZXJQaXhlbFswXTtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGNvbGxhcHNlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJSYWRpdXNMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB3aWR0aDogbnVtYmVyO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJSYWRpdXNMZWdlbmQ6IEZDPExheWVyUmFkaXVzTGVnZW5kUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgKHtsYXllciwgd2lkdGgsIHZpc3VhbENoYW5uZWwsIG1hcFN0YXRlfSkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICBjb25zdCBjb25maWcgPSBsYXllci5jb25maWc7XG5cbiAgICBjb25zdCBlbmFibGVTaXplQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2V9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBbc2l6ZVNjYWxlLCBzaXplRmllbGQsIHNpemVEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGxldCBzaXplUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIGlmIChtYXBTdGF0ZSkge1xuICAgICAgY29uc3QgcmFkaXVzTXVsdGlwbGllciA9IGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKTtcbiAgICAgIHNpemVSYW5nZSA9IHNpemVSYW5nZS5tYXAodiA9PiB2ICogcmFkaXVzTXVsdGlwbGllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlU2l6ZUJ5fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IChcbiAgICAgICAgICAgICAgICA8UmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e3NpemVTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17c2l6ZURvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KHNpemVGaWVsZCAmJiBzaXplRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3NpemVSYW5nZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IGlzQ29sb3JDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3IsIENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl0uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IGlzUmFkaXVzQ2hhbm5lbCA9IHZpc3VhbENoYW5uZWwgPT5cbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c10uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeSgpIHtcbiAgY29uc3QgTGF5ZXJMZWdlbmRIZWFkZXI6IFJlYWN0LkZDPExheWVyTGVnZW5kSGVhZGVyUHJvcHM+ID0gKHtcbiAgICBvcHRpb25zLFxuICAgIGxheWVyLFxuICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5XG4gIH0pID0+IHtcbiAgICBjb25zdCBpc1Zpc2libGUgPSBsYXllci5jb25maWcuaXNWaXNpYmxlO1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5KSB7XG4gICAgICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5KGxheWVyKTtcbiAgICAgIH1cbiAgICB9LCBbbGF5ZXIsIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5XSk7XG5cbiAgICBpZiAob3B0aW9ucz8uc2hvd0xheWVyTmFtZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kSGVhZGVyUm93PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfbmFtZVwiIHN0eWxlPXt7b3BhY2l0eTogaXNWaXNpYmxlID8gMSA6IDAuNX19PlxuICAgICAgICAgIHtsYXllci5jb25maWcubGFiZWx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7b25Ub2dnbGVMYXllclZpc2liaWxpdHkgPyAoXG4gICAgICAgICAgPFN0eWxlZFZpc2liaWxpdHlUb2dnbGUgaXNWaXNpYmxlPXtpc1Zpc2libGV9IG9uQ2xpY2s9e29uVG9nZ2xlfT5cbiAgICAgICAgICAgIHtpc1Zpc2libGUgPyA8RXllU2VlbiBoZWlnaHQ9XCIxMnB4XCIgLz4gOiA8RXllVW5zZWVuIGhlaWdodD1cIjEycHhcIiAvPn1cbiAgICAgICAgICA8L1N0eWxlZFZpc2liaWxpdHlUb2dnbGU+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRMZWdlbmRIZWFkZXJSb3c+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIExheWVyTGVnZW5kSGVhZGVyO1xufVxuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBBcnJvd0Rvd24sXG4gIGNvbGxhcHNlZDogQXJyb3dSaWdodFxufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgY29udGFpbmVyVzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkuZGVwcyA9IFtMYXllckNvbG9yTGVnZW5kRmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5KFxuICBMYXllckNvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yTGVnZW5kRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckxlZ2VuZENvbnRlbnQ6IFJlYWN0LkZDPExheWVyTGVnZW5kQ29udGVudFByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgY29udGFpbmVyVyxcbiAgICBtYXBTdGF0ZSxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCB2aXN1YWxDaGFubmVscyA9IGxheWVyLmdldExlZ2VuZFZpc3VhbENoYW5uZWxzKCk7XG4gICAgY29uc3QgY2hhbm5lbEtleXMgPSBPYmplY3QudmFsdWVzKHZpc3VhbENoYW5uZWxzKTtcbiAgICBjb25zdCBjb2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKGlzQ29sb3JDaGFubmVsKSBhcyBWaXN1YWxDaGFubmVsW107XG4gICAgY29uc3Qgbm9uQ29sb3JDaGFubmVscyA9IGNoYW5uZWxLZXlzLmZpbHRlcih2YyA9PiAhaXNDb2xvckNoYW5uZWwodmMpKTtcbiAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclcgLSAyICogRElNRU5TSU9OUy5tYXBDb250cm9sLnBhZGRpbmc7XG5cbiAgICAvLyByZW5kZXIgY29sb3IgYnkgY2hhbmVsIG9ubHlcbiAgICBsZXQgY29sb3JDaGFubmVsVG9SZW5kZXIgPSBjb2xvckNoYW5uZWxzLmZpbHRlcihcbiAgICAgIGNjID0+XG4gICAgICAgICghY2MuY29uZGl0aW9uIHx8IGNjLmNvbmRpdGlvbihsYXllci5jb25maWcpKSAmJlxuICAgICAgICBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oY2Mua2V5KT8ubWVhc3VyZVxuICAgICk7XG4gICAgLy8gaWYgbm8gY29sb3IgYnkgY2hhbmVsLCByZW5kZXIgcmVzdFxuICAgIGlmICghY29sb3JDaGFubmVsVG9SZW5kZXIubGVuZ3RoKSB7XG4gICAgICBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgICBjYyA9PiAhY2MuY29uZGl0aW9uIHx8IGNjLmNvbmRpdGlvbihsYXllci5jb25maWcpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2NvbG9yQ2hhbm5lbFRvUmVuZGVyLm1hcChjb2xvckNoYW5uZWwgPT4gKFxuICAgICAgICAgIDxMYXllckNvbG9yTGVnZW5kXG4gICAgICAgICAgICBrZXk9e2NvbG9yQ2hhbm5lbC5rZXl9XG4gICAgICAgICAgICBjb2xvckNoYW5uZWw9e2NvbG9yQ2hhbm5lbH1cbiAgICAgICAgICAgIGNvbmZpZz17bGF5ZXIuY29uZmlnfVxuICAgICAgICAgICAgZGVzY3JpcHRpb249e2xheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjb2xvckNoYW5uZWwua2V5KX1cbiAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICAgIHtub25Db2xvckNoYW5uZWxzLm1hcCgodmlzdWFsQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1hdGNoQ29uZGl0aW9uID0gIXZpc3VhbENoYW5uZWwuY29uZGl0aW9uIHx8IHZpc3VhbENoYW5uZWwuY29uZGl0aW9uKGxheWVyLmNvbmZpZyk7XG4gICAgICAgICAgY29uc3QgZW5hYmxlZCA9IGxheWVyLmNvbmZpZ1t2aXN1YWxDaGFubmVsLmZpZWxkXSB8fCB2aXN1YWxDaGFubmVsLmRlZmF1bHRNZWFzdXJlO1xuXG4gICAgICAgICAgaWYgKG1hdGNoQ29uZGl0aW9uICYmIGVuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICAgICAgICAgIGlmIChpc1JhZGl1c0NoYW5uZWwodmlzdWFsQ2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8TGF5ZXJSYWRpdXNMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGtleT17dmlzdWFsQ2hhbm5lbC5rZXl9XG4gICAgICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgICB2aXN1YWxDaGFubmVsPXt2aXN1YWxDaGFubmVsfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8TGF5ZXJEZWZhdWx0TGVnZW5kXG4gICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICBsYWJlbD17ZGVzY3JpcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17ZGVzY3JpcHRpb24ubWVhc3VyZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIExheWVyTGVnZW5kQ29udGVudDtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUHJvcHMgPSB7XG4gIGxheWVycz86IFJlYWRvbmx5QXJyYXk8TGF5ZXI+O1xuICB3aWR0aD86IG51bWJlcjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgb3B0aW9ucz86IHtcbiAgICBzaG93TGF5ZXJOYW1lPzogYm9vbGVhbjtcbiAgfTtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5NYXBMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LCBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kRmFjdG9yeShcbiAgTGF5ZXJMZWdlbmRIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeT4sXG4gIExheWVyTGVnZW5kQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBMZWdlbmQ6IFJlYWN0LkZDPE1hcExlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXJzID0gW10sXG4gICAgd2lkdGgsXG4gICAgbWFwU3RhdGUsXG4gICAgb3B0aW9ucyxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5LFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH0pID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1sZWdlbmRcIj5cbiAgICAgIHtsYXllcnMubWFwKChsYXllciwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFsYXllci5pc1ZhbGlkVG9TYXZlKCkgfHwgbGF5ZXIuY29uZmlnLmhpZGRlbikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclcgPSB3aWR0aCB8fCBESU1FTlNJT05TLm1hcENvbnRyb2wud2lkdGg7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U3R5bGVkTWFwQ29udHJvbExlZ2VuZFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllclwiXG4gICAgICAgICAgICBsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyXG4gICAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT17b25Ub2dnbGVMYXllclZpc2liaWxpdHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLHdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQXlFLElBQUFhLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFoQnpFO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWxCLHdCQUFBa0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFzQk8sSUFBTWtDLHNCQUFzQixHQUFBQyxPQUFBLENBQUFELHNCQUFBLEdBQUdFLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXpDLGVBQUEsS0FBQUEsZUFBQSxPQUFBMEMsdUJBQUEsZzZCQUM5QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTztBQUFBLEdBQ25ELFVBQUFILEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPO0FBQUEsR0FFNUIsVUFBQUgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxVQUFVO0FBQUEsR0FDdkIsVUFBQUosS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSSxnQkFBZ0I7QUFBQSxHQUVyQyxVQUFBTCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUs7QUFBQSxDQUFDLEVBQy9DLFVBQUFOLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNPLEtBQUs7QUFBQSxHQUtWLFVBQUFQLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPO0FBQUEsR0FDL0MsVUFBQUgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxTQUFTO0FBQUEsR0FJOUIsVUFBQVIsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxZQUFZO0FBQUEsR0FHekIsVUFBQVQsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxVQUFVLENBQUNDLE9BQU87QUFBQSxHQU12QyxVQUFBSCxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTztBQUFBLEdBVy9DLFVBQUFILEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsWUFBWTtBQUFBLEdBS2pDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsV0FBVztBQUFBLEVBTzVDO0FBRUQsSUFBTUMscUJBQXFCLEdBQUdkLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXhDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF5Qyx1QkFBQSxtR0FJdkM7QUFFRCxJQUFNYSxzQkFBc0IsR0FBR2YsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBdkMsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQXdDLHVCQUFBLG1NQUU5QixVQUFBQyxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDYSxTQUFTLEdBQUdiLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxTQUFTLEdBQUdSLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxZQUFZO0FBQUEsQ0FBQyxFQUkzRSxVQUFBVCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDYSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEdBQUc7QUFBQSxDQUFDLEVBR3BDLFVBQUFiLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsV0FBVztBQUFBLEVBRzVDO0FBRU0sSUFBTUksbUJBQW1CLEdBQUFsQixPQUFBLENBQUFrQixtQkFBQSxHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUFDLElBQUEsRUFBZTtFQUFBLElBQVZDLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJQUFJO0VBQ3ZDLG9CQUNFMUUsTUFBQSxZQUFBMkUsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBc0IsZ0JBQ25DNUUsTUFBQSxZQUFBMkUsYUFBQTtJQUFNQyxTQUFTLEVBQUM7RUFBMkIsZ0JBQ3pDNUUsTUFBQSxZQUFBMkUsYUFBQSxDQUFDaEUsYUFBQSxDQUFBa0UsZ0JBQWdCO0lBQUNDLEVBQUUsRUFBRUo7RUFBSyxDQUFFLENBQ3pCLENBQ0gsQ0FBQztBQUVWLENBQUM7QUFPTSxJQUFNSyxrQkFBa0QsR0FBQXpCLE9BQUEsQ0FBQXlCLGtCQUFBLEdBQUcsU0FBckRBLGtCQUFrREEsQ0FBQUMsS0FBQTtFQUFBLElBQUtDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO0lBQUVQLElBQUksR0FBQU0sS0FBQSxDQUFKTixJQUFJO0VBQUEsT0FDN0VPLEtBQUssZ0JBQ0hqRixNQUFBLFlBQUEyRSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUEyQixnQkFDeEM1RSxNQUFBLFlBQUEyRSxhQUFBLHlCQUNFM0UsTUFBQSxZQUFBMkUsYUFBQTtJQUFNQyxTQUFTLEVBQUM7RUFBa0IsR0FBRUssS0FBSyxnQkFBR2pGLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ2hFLGFBQUEsQ0FBQWtFLGdCQUFnQjtJQUFDQyxFQUFFLEVBQUVHO0VBQU0sQ0FBRSxDQUFDLEdBQUcsSUFBVyxDQUFDLGVBQzFGakYsTUFBQSxZQUFBMkUsYUFBQTtJQUFNQyxTQUFTLEVBQUM7RUFBa0IsR0FBQyxNQUFVLENBQzVDLENBQUMsRUFDSEYsSUFBSSxpQkFBSTFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ0gsbUJBQW1CO0lBQUNFLElBQUksRUFBRUE7RUFBSyxDQUFFLENBQ3hDLENBQUMsR0FDSixJQUFJO0FBQUE7QUFPVlEsd0JBQXdCLENBQUNDLElBQUksR0FBRyxDQUFDQyw2QkFBZ0IsQ0FBQztBQUUzQyxTQUFTRix3QkFBd0JBLENBQUNHLFNBQThDLEVBQUU7RUFDdkYsSUFBTUMsaUJBQW1ELEdBQUcsU0FBdERBLGlCQUFtREEsQ0FBQUMsS0FBQTtJQUFBLElBQUtDLEtBQUssR0FBQUQsS0FBQSxDQUFMQyxLQUFLO01BQUVQLEtBQUssR0FBQU0sS0FBQSxDQUFMTixLQUFLO0lBQUEsb0JBQ3hFakYsTUFBQSxZQUFBMkUsYUFBQSxDQUFDVSxTQUFTO01BQ1JKLEtBQUssRUFBRUEsS0FBSyxhQUFMQSxLQUFLLGNBQUxBLEtBQUssR0FBSSxFQUFHO01BQ25CUSxZQUFZLEVBQUVDLE9BQU8sQ0FBQ1QsS0FBSyxDQUFFO01BQzdCTyxLQUFLLEVBQUVHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixLQUFLLENBQUMsR0FBR0ssWUFBRyxDQUFBaEQsS0FBQSxhQUFBaUQsbUJBQUEsYUFBSU4sS0FBSyxFQUFDLENBQUNPLFFBQVEsQ0FBQyxDQUFDLEdBQUdQO0lBQU0sQ0FDaEUsQ0FBQztFQUFBLENBQ0g7RUFFREYsaUJBQWlCLENBQUNVLFdBQVcsR0FBRyxtQkFBbUI7RUFFbkQsb0JBQU9DLGlCQUFLLENBQUNDLElBQUksQ0FBQ1osaUJBQWlCLENBQUM7QUFDdEM7QUFjQWEsdUJBQXVCLENBQUNoQixJQUFJLEdBQUcsQ0FDN0JpQix1QkFBa0IsRUFDbEJsQix3QkFBd0IsRUFDeEJtQiw2QkFBd0IsQ0FDekI7QUFDTSxTQUFTRix1QkFBdUJBLENBQ3JDRyxXQUFrRCxFQUNsRGhCLGlCQUE4RCxFQUM5RGlCLGlCQUE4RCxFQUM5RDtFQUNBLElBQU1DLGdCQUFpRCxHQUFHLFNBQXBEQSxnQkFBaURBLENBQUFDLEtBQUEsRUFVakQ7SUFBQSxJQVRKQyxXQUFXLEdBQUFELEtBQUEsQ0FBWEMsV0FBVztNQUNYQyxNQUFNLEdBQUFGLEtBQUEsQ0FBTkUsTUFBTTtNQUNOQyxLQUFLLEdBQUFILEtBQUEsQ0FBTEcsS0FBSztNQUNMQyxZQUFZLEdBQUFKLEtBQUEsQ0FBWkksWUFBWTtNQUNaQyxXQUFXLEdBQUFMLEtBQUEsQ0FBWEssV0FBVztNQUNYQyxzQkFBc0IsR0FBQU4sS0FBQSxDQUF0Qk0sc0JBQXNCO01BQ3RCQyxRQUFRLEdBQUFQLEtBQUEsQ0FBUk8sUUFBUTtNQUNSQyxRQUFRLEdBQUFSLEtBQUEsQ0FBUlEsUUFBUTtNQUNSQyxXQUFXLEdBQUFULEtBQUEsQ0FBWFMsV0FBVztJQUVYLElBQU1DLElBQUksR0FBRyxJQUFBQyxrQkFBTyxFQUFDLENBQUM7SUFDdEIsSUFBTUMsYUFBYSxHQUFHWCxXQUFXLENBQUNZLE9BQU87SUFDekMsSUFBT0MsS0FBSyxHQUEyQ1YsWUFBWSxDQUE1RFUsS0FBSztNQUFFQyxLQUFLLEdBQW9DWCxZQUFZLENBQXJEVyxLQUFLO01BQUVDLE1BQU0sR0FBNEJaLFlBQVksQ0FBOUNZLE1BQU07TUFBRUMsS0FBSyxHQUFxQmIsWUFBWSxDQUF0Q2EsS0FBSztNQUFFQyxRQUFRLEdBQVdkLFlBQVksQ0FBL0JjLFFBQVE7TUFBRUMsS0FBSyxHQUFJZixZQUFZLENBQXJCZSxLQUFLO0lBQ25ELElBQUFDLElBQUEsR0FBOEMsQ0FBQ04sS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sQ0FBQyxDQUFDSyxHQUFHLENBQUMsVUFBQUMsQ0FBQztRQUFBLE9BQUlwQixNQUFNLENBQUNvQixDQUFDLENBQUM7TUFBQSxFQUFDO01BQUFDLEtBQUEsT0FBQUMsZUFBQSxhQUFBSixJQUFBO01BQWpGSyxVQUFVLEdBQUFGLEtBQUE7TUFBRUcsVUFBVSxHQUFBSCxLQUFBO01BQUVJLFdBQVcsR0FBQUosS0FBQTtJQUMxQyxJQUFNSyxPQUFPLEdBQUdULEtBQUssSUFBSWpCLE1BQU0sQ0FBQzJCLFNBQVMsQ0FBQ1YsS0FBSyxDQUFDO0lBRWhELElBQU1XLFVBQVUsR0FBRzVCLE1BQU0sQ0FBQzJCLFNBQVMsQ0FBQ1osS0FBSyxDQUFDO0lBQzFDLElBQU1jLG1CQUFtQixHQUFHLElBQUFDLGtCQUFXLEVBQ3JDLFVBQUFDLFlBQVksRUFBSTtNQUNkLElBQUkzQixzQkFBc0IsRUFBRTtRQUMxQkEsc0JBQXNCLENBQUNILEtBQUssTUFBQTFELGdCQUFBLGlCQUN6QndFLEtBQUssRUFBQTVFLGFBQUEsQ0FBQUEsYUFBQSxLQUNEeUYsVUFBVTtVQUNiRyxZQUFZLEVBQVpBO1FBQVksR0FFZixDQUFDO01BQ0o7SUFDRixDQUFDLEVBQ0QsQ0FBQzlCLEtBQUssRUFBRUcsc0JBQXNCLEVBQUV3QixVQUFVLEVBQUViLEtBQUssQ0FDbkQsQ0FBQztJQUNELElBQUFpQixTQUFBLEdBQW9DLElBQUFDLGVBQVEsRUFBQzVCLFFBQVEsQ0FBQztNQUFBNkIsVUFBQSxPQUFBWixlQUFBLGFBQUFVLFNBQUE7TUFBL0NHLFVBQVUsR0FBQUQsVUFBQTtNQUFFRSxhQUFhLEdBQUFGLFVBQUE7SUFDaEMsSUFBTUcsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQTtNQUFBLE9BQVNELGFBQWEsQ0FBQyxDQUFDRCxVQUFVLENBQUM7SUFBQTtJQUM3RCxvQkFDRTlJLE1BQUEsWUFBQTJFLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQXFCLGdCQUNsQzVFLE1BQUEsWUFBQTJFLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQTRCLGdCQUN6QzVFLE1BQUEsWUFBQTJFLGFBQUEsY0FDRzBDLGFBQWEsZ0JBQ1pySCxNQUFBLFlBQUEyRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUE4QixnQkFDM0M1RSxNQUFBLFlBQUEyRSxhQUFBLENBQUNILG1CQUFtQjtNQUFDRSxJQUFJLEVBQUUyQztJQUFjLENBQUUsQ0FBQyxFQUMzQyxDQUFDTCxRQUFRLGdCQUNSaEgsTUFBQSxZQUFBMkUsYUFBQSxDQUFDNEIsaUJBQWlCO01BQ2hCekIsRUFBRSxFQUFDLHdCQUF3QjtNQUMzQm1FLE9BQU8sRUFBRUQsb0JBQXFCO01BQzlCRSxhQUFhLEVBQUVKLFVBQVUsR0FBRzVCLFdBQVcsQ0FBQ2lDLFFBQVEsR0FBR2pDLFdBQVcsQ0FBQ2tDO0lBQVUsQ0FDMUUsQ0FBQyxHQUNBLElBQ0QsQ0FBQyxHQUNKLElBQUksZUFDUnBKLE1BQUEsWUFBQTJFLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQTRCLEdBQ3hDeUMsYUFBYSxnQkFDWnJILE1BQUEsWUFBQTJFLGFBQUEsQ0FBQzJCLFdBQVc7TUFDVk0sS0FBSyxFQUFFQSxLQUFNO01BQ2JrQyxVQUFVLEVBQUVBLFVBQVc7TUFDdkJPLFNBQVMsRUFBRW5CLFVBQVc7TUFDdEJ6QyxZQUFZO01BQ1pnQyxNQUFNLEVBQUVXLFdBQVk7TUFDcEJrQixTQUFTLEVBQUduQixVQUFVLElBQUlBLFVBQVUsQ0FBQ29CLElBQUksSUFBSyxNQUFPO01BQ3JEN0IsS0FBSyxFQUFFYSxVQUFXO01BQ2xCQyxtQkFBbUIsRUFBRUEsbUJBQW9CO01BQ3pDMUIsV0FBVyxFQUFFQSxXQUFXLElBQUlwQixPQUFPLENBQUNzQixRQUFRLENBQUU7TUFDOUNxQixPQUFPLEVBQUVBLE9BQVE7TUFDakJwQixRQUFRLEVBQUVBLFFBQVM7TUFDbkJ1QyxXQUFXLEVBQ1RyQixVQUFVLGFBQVZBLFVBQVUsZUFBVkEsVUFBVSxDQUFFc0IsYUFBYSxHQUFHLElBQUFDLGdCQUFRLEVBQUN2QixVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRXNCLGFBQWEsQ0FBQyxHQUFHO0lBQ25FLENBQ0YsQ0FBQyxnQkFFRnpKLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ1csaUJBQWlCO01BQ2hCRSxLQUFLLEVBQUVtQixNQUFNLENBQUMyQixTQUFTLENBQUNYLFFBQVEsQ0FBQyxJQUFJaEIsTUFBTSxDQUFDZ0IsUUFBUSxDQUFDLElBQUloQixNQUFNLENBQUNuQixLQUFNO01BQ3RFUCxLQUFLLEVBQUVrQyxJQUFJLENBQUN3QyxhQUFhLENBQUM7UUFDeEI3RSxFQUFFLHNCQUFBOEUsTUFBQSxDQUFzQmhELEtBQUssQ0FBQzJDLElBQUksbUJBQUFLLE1BQUEsQ0FBZ0IvQyxZQUFZLENBQUNnRCxHQUFHLENBQUU7UUFDcEVDLGNBQWMsRUFBRTNDLElBQUksQ0FBQ3dDLGFBQWEsQ0FBQztVQUNqQzdFLEVBQUUsMENBQUE4RSxNQUFBLENBQTBDL0MsWUFBWSxDQUFDZ0QsR0FBRyxDQUFFO1VBQzlEQyxjQUFjLEVBQUUsR0FBRyxDQUFDO1FBQ3RCLENBQUM7TUFDSCxDQUFDO0lBQUUsQ0FDSixDQUVBLENBQ0YsQ0FDRixDQUNGLENBQUM7RUFFVixDQUFDO0VBRUR0RCxnQkFBZ0IsQ0FBQ1IsV0FBVyxHQUFHLGtCQUFrQjtFQUNqRCxvQkFBT0MsaUJBQUssQ0FBQ0MsSUFBSSxDQUFDTSxnQkFBZ0IsQ0FBQztBQUNyQztBQUVBLFNBQVN1RCwyQ0FBMkNBLENBQUNuRCxLQUFLLEVBQUVLLFFBQVEsRUFBRTtFQUNwRTtFQUNBLElBQUErQyxrQkFBQSxHQUF5QixJQUFBQywwQ0FBaUIsRUFBQ2hELFFBQVEsQ0FBQztJQUE3Q2lELGNBQWMsR0FBQUYsa0JBQUEsQ0FBZEUsY0FBYztFQUNyQjtFQUNBLElBQU1DLFdBQVcsR0FBR3ZELEtBQUssQ0FBQ0QsTUFBTSxDQUFDMkIsU0FBUyxDQUFDNkIsV0FBVyxJQUFJekUsT0FBTyxDQUFDa0IsS0FBSyxDQUFDRCxNQUFNLENBQUN5RCxTQUFTLENBQUM7RUFDekYsT0FBT3hELEtBQUssQ0FBQ3lELG9CQUFvQixDQUFDcEQsUUFBUSxFQUFFa0QsV0FBVyxDQUFDLEdBQUdELGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDOUU7QUFlTyxJQUFNSSxpQkFBNkMsR0FBQWhILE9BQUEsQ0FBQWdILGlCQUFBLGdCQUFHckUsaUJBQUssQ0FBQ0MsSUFBSSxDQUNyRSxVQUFBcUUsS0FBQSxFQUE2QztFQUFBLElBQTNDM0QsS0FBSyxHQUFBMkQsS0FBQSxDQUFMM0QsS0FBSztJQUFFM0MsS0FBSyxHQUFBc0csS0FBQSxDQUFMdEcsS0FBSztJQUFFdUcsYUFBYSxHQUFBRCxLQUFBLENBQWJDLGFBQWE7SUFBRXZELFFBQVEsR0FBQXNELEtBQUEsQ0FBUnRELFFBQVE7RUFDckMsSUFBTVAsV0FBVyxHQUFHRSxLQUFLLENBQUM2RCwyQkFBMkIsQ0FBQ0QsYUFBYSxDQUFDWCxHQUFHLENBQUM7RUFDeEUsSUFBTWxELE1BQU0sR0FBR0MsS0FBSyxDQUFDRCxNQUFNO0VBRTNCLElBQU0rRCxZQUFZLEdBQUdoRSxXQUFXLENBQUNZLE9BQU87RUFDeEMsSUFBT0MsS0FBSyxHQUEwQmlELGFBQWEsQ0FBNUNqRCxLQUFLO0lBQUVDLEtBQUssR0FBbUJnRCxhQUFhLENBQXJDaEQsS0FBSztJQUFFQyxNQUFNLEdBQVcrQyxhQUFhLENBQTlCL0MsTUFBTTtJQUFFQyxLQUFLLEdBQUk4QyxhQUFhLENBQXRCOUMsS0FBSztFQUNsQyxJQUFBaUQsS0FBQSxHQUEyQyxDQUFDcEQsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sQ0FBQyxDQUFDSyxHQUFHLENBQUMsVUFBQUMsQ0FBQztNQUFBLE9BQUlwQixNQUFNLENBQUNvQixDQUFDLENBQUM7SUFBQSxFQUFDO0lBQUE2QyxLQUFBLE9BQUEzQyxlQUFBLGFBQUEwQyxLQUFBO0lBQTlFRSxTQUFTLEdBQUFELEtBQUE7SUFBRVIsU0FBUyxHQUFBUSxLQUFBO0lBQUVFLFVBQVUsR0FBQUYsS0FBQTtFQUN2QyxJQUFJRyxTQUFTLEdBQUdwRSxNQUFNLENBQUMyQixTQUFTLENBQUNaLEtBQUssQ0FBQztFQUV2QyxJQUFJVCxRQUFRLEVBQUU7SUFDWixJQUFNK0QsZ0JBQWdCLEdBQUdqQiwyQ0FBMkMsQ0FBQ25ELEtBQUssRUFBRUssUUFBUSxDQUFDO0lBQ3JGOEQsU0FBUyxHQUFHQSxTQUFTLENBQUNqRCxHQUFHLENBQUMsVUFBQW1ELENBQUM7TUFBQSxPQUFJQSxDQUFDLEdBQUdELGdCQUFnQjtJQUFBLEVBQUM7RUFDdEQ7RUFFQSxvQkFDRWhMLE1BQUEsWUFBQTJFLGFBQUEsMkJBQ0UzRSxNQUFBLFlBQUEyRSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUEyQixnQkFDeEM1RSxNQUFBLFlBQUEyRSxhQUFBLGNBQ0crRixZQUFZLGdCQUFHMUssTUFBQSxZQUFBMkUsYUFBQSxDQUFDSCxtQkFBbUI7SUFBQ0UsSUFBSSxFQUFFZ0c7RUFBYSxDQUFFLENBQUMsR0FBRyxJQUFJLGVBQ2xFMUssTUFBQSxZQUFBMkUsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBMkIsR0FDdkM4RixZQUFZLGdCQUNYMUssTUFBQSxZQUFBMkUsYUFBQSxDQUFDbEUsYUFBQSxXQUFZO0lBQ1g0SSxTQUFTLEVBQUV3QixTQUFVO0lBQ3JCcEQsTUFBTSxFQUFFcUQsVUFBVztJQUNuQnhCLFNBQVMsRUFBR2MsU0FBUyxJQUFJQSxTQUFTLENBQUNiLElBQUksSUFBSyxNQUFPO0lBQ25EN0IsS0FBSyxFQUFFcUQsU0FBVTtJQUNqQjlHLEtBQUssRUFBRUE7RUFBTSxDQUNkLENBQUMsR0FDQSxJQUNELENBQ0YsQ0FDRixDQUNGLENBQUM7QUFFVixDQUNGLENBQUM7QUFFRCxJQUFNaUgsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFHVixhQUFhO0VBQUEsT0FDbEMsQ0FBQ1cseUJBQWMsQ0FBQzNGLEtBQUssRUFBRTJGLHlCQUFjLENBQUNDLFNBQVMsQ0FBQyxDQUFDQyxRQUFRLENBQUNiLGFBQWEsQ0FBQ2MsZ0JBQWdCLENBQUM7QUFBQTtBQVczRixJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUdmLGFBQWE7RUFBQSxPQUNuQyxDQUFDVyx5QkFBYyxDQUFDSyxNQUFNLENBQUMsQ0FBQ0gsUUFBUSxDQUFDYixhQUFhLENBQUNjLGdCQUFnQixDQUFDO0FBQUE7QUFFM0QsU0FBU0csd0JBQXdCQSxDQUFBLEVBQUc7RUFDekMsSUFBTUMsaUJBQW1ELEdBQUcsU0FBdERBLGlCQUFtREEsQ0FBQUMsS0FBQSxFQUluRDtJQUFBLElBSEpDLE9BQU8sR0FBQUQsS0FBQSxDQUFQQyxPQUFPO01BQ1BoRixLQUFLLEdBQUErRSxLQUFBLENBQUwvRSxLQUFLO01BQ0xpRix1QkFBdUIsR0FBQUYsS0FBQSxDQUF2QkUsdUJBQXVCO0lBRXZCLElBQU10SCxTQUFTLEdBQUdxQyxLQUFLLENBQUNELE1BQU0sQ0FBQ3BDLFNBQVM7SUFDeEMsSUFBTXVILFFBQVEsR0FBRyxJQUFBckQsa0JBQVcsRUFBQyxZQUFNO01BQ2pDLElBQUlvRCx1QkFBdUIsRUFBRTtRQUMzQkEsdUJBQXVCLENBQUNqRixLQUFLLENBQUM7TUFDaEM7SUFDRixDQUFDLEVBQUUsQ0FBQ0EsS0FBSyxFQUFFaUYsdUJBQXVCLENBQUMsQ0FBQztJQUVwQyxJQUFJLENBQUFELE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFRyxhQUFhLE1BQUssS0FBSyxFQUFFO01BQ3BDLE9BQU8sSUFBSTtJQUNiO0lBRUEsb0JBQ0UvTCxNQUFBLFlBQUEyRSxhQUFBLENBQUNOLHFCQUFxQixxQkFDcEJyRSxNQUFBLFlBQUEyRSxhQUFBO01BQUtDLFNBQVMsRUFBQyxvQkFBb0I7TUFBQ29ILEtBQUssRUFBRTtRQUFDQyxPQUFPLEVBQUUxSCxTQUFTLEdBQUcsQ0FBQyxHQUFHO01BQUc7SUFBRSxHQUN2RXFDLEtBQUssQ0FBQ0QsTUFBTSxDQUFDMUIsS0FDWCxDQUFDLEVBQ0w0Ryx1QkFBdUIsZ0JBQ3RCN0wsTUFBQSxZQUFBMkUsYUFBQSxDQUFDTCxzQkFBc0I7TUFBQ0MsU0FBUyxFQUFFQSxTQUFVO01BQUMwRSxPQUFPLEVBQUU2QztJQUFTLEdBQzdEdkgsU0FBUyxnQkFBR3ZFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQzlELE1BQUEsQ0FBQXFMLE9BQU87TUFBQ0MsTUFBTSxFQUFDO0lBQU0sQ0FBRSxDQUFDLGdCQUFHbk0sTUFBQSxZQUFBMkUsYUFBQSxDQUFDOUQsTUFBQSxDQUFBdUwsU0FBUztNQUFDRCxNQUFNLEVBQUM7SUFBTSxDQUFFLENBQzdDLENBQUMsR0FDdkIsSUFDaUIsQ0FBQztFQUU1QixDQUFDO0VBQ0QsT0FBT1QsaUJBQWlCO0FBQzFCO0FBRUEsSUFBTVcsa0JBQWtCLEdBQUc7RUFDekJsRCxRQUFRLEVBQUVtRCxnQkFBUztFQUNuQmxELFNBQVMsRUFBRW1EO0FBQ2IsQ0FBQztBQVlEQyx5QkFBeUIsQ0FBQ3JILElBQUksR0FBRyxDQUFDZ0IsdUJBQXVCLENBQUM7QUFFbkQsU0FBU3FHLHlCQUF5QkEsQ0FDdkNoRyxnQkFBNEQsRUFDNUQ7RUFDQSxJQUFNaUcsa0JBQXFELEdBQUcsU0FBeERBLGtCQUFxREEsQ0FBQUMsS0FBQSxFQVFyRDtJQUFBLElBUEo5RixLQUFLLEdBQUE4RixLQUFBLENBQUw5RixLQUFLO01BQ0wrRixVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtNQUNWMUYsUUFBUSxHQUFBeUYsS0FBQSxDQUFSekYsUUFBUTtNQUNSSCxXQUFXLEdBQUE0RixLQUFBLENBQVg1RixXQUFXO01BQ1hFLFFBQVEsR0FBQTBGLEtBQUEsQ0FBUjFGLFFBQVE7TUFDUkQsc0JBQXNCLEdBQUEyRixLQUFBLENBQXRCM0Ysc0JBQXNCO01BQ3RCRyxXQUFXLEdBQUF3RixLQUFBLENBQVh4RixXQUFXO0lBRVgsSUFBTTBGLGNBQWMsR0FBR2hHLEtBQUssQ0FBQ2lHLHVCQUF1QixDQUFDLENBQUM7SUFDdEQsSUFBTUMsV0FBVyxHQUFHaEwsTUFBTSxDQUFDaUwsTUFBTSxDQUFDSCxjQUFjLENBQUM7SUFDakQsSUFBTUksYUFBYSxHQUFHRixXQUFXLENBQUNwSyxNQUFNLENBQUN3SSxjQUFjLENBQW9CO0lBQzNFLElBQU0rQixnQkFBZ0IsR0FBR0gsV0FBVyxDQUFDcEssTUFBTSxDQUFDLFVBQUF3SyxFQUFFO01BQUEsT0FBSSxDQUFDaEMsY0FBYyxDQUFDZ0MsRUFBRSxDQUFDO0lBQUEsRUFBQztJQUN0RSxJQUFNakosS0FBSyxHQUFHMEksVUFBVSxHQUFHLENBQUMsR0FBR1EscUJBQVUsQ0FBQ3ZKLFVBQVUsQ0FBQ0MsT0FBTzs7SUFFNUQ7SUFDQSxJQUFJdUosb0JBQW9CLEdBQUdKLGFBQWEsQ0FBQ3RLLE1BQU0sQ0FDN0MsVUFBQTJLLEVBQUU7TUFBQSxJQUFBQyxxQkFBQTtNQUFBLE9BQ0EsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFNBQVMsSUFBSUYsRUFBRSxDQUFDRSxTQUFTLENBQUMzRyxLQUFLLENBQUNELE1BQU0sQ0FBQyxPQUFBMkcscUJBQUEsR0FDNUMxRyxLQUFLLENBQUM2RCwyQkFBMkIsQ0FBQzRDLEVBQUUsQ0FBQ3hELEdBQUcsQ0FBQyxjQUFBeUQscUJBQUEsdUJBQXpDQSxxQkFBQSxDQUEyQ2hHLE9BQU87SUFBQSxDQUN0RCxDQUFDO0lBQ0Q7SUFDQSxJQUFJLENBQUM4RixvQkFBb0IsQ0FBQ3BLLE1BQU0sRUFBRTtNQUNoQ29LLG9CQUFvQixHQUFHSixhQUFhLENBQUN0SyxNQUFNLENBQ3pDLFVBQUEySyxFQUFFO1FBQUEsT0FBSSxDQUFDQSxFQUFFLENBQUNFLFNBQVMsSUFBSUYsRUFBRSxDQUFDRSxTQUFTLENBQUMzRyxLQUFLLENBQUNELE1BQU0sQ0FBQztNQUFBLENBQ25ELENBQUM7SUFDSDtJQUNBLG9CQUNFM0csTUFBQSxZQUFBMkUsYUFBQSxDQUFBM0UsTUFBQSxZQUFBd04sUUFBQSxRQUNHSixvQkFBb0IsQ0FBQ3RGLEdBQUcsQ0FBQyxVQUFBakIsWUFBWTtNQUFBLG9CQUNwQzdHLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQzZCLGdCQUFnQjtRQUNmcUQsR0FBRyxFQUFFaEQsWUFBWSxDQUFDZ0QsR0FBSTtRQUN0QmhELFlBQVksRUFBRUEsWUFBYTtRQUMzQkYsTUFBTSxFQUFFQyxLQUFLLENBQUNELE1BQU87UUFDckJELFdBQVcsRUFBRUUsS0FBSyxDQUFDNkQsMkJBQTJCLENBQUM1RCxZQUFZLENBQUNnRCxHQUFHLENBQUU7UUFDakVqRCxLQUFLLEVBQUVBLEtBQU07UUFDYkksUUFBUSxFQUFFQSxRQUFTO1FBQ25CRixXQUFXLEVBQUVBLFdBQVk7UUFDekJHLFFBQVEsRUFBRUEsUUFBUztRQUNuQkYsc0JBQXNCLEVBQUVBLHNCQUF1QjtRQUMvQ0csV0FBVyxFQUFFQTtNQUFZLENBQzFCLENBQUM7SUFBQSxDQUNILENBQUMsRUFDRCtGLGdCQUFnQixDQUFDbkYsR0FBRyxDQUFDLFVBQUMwQyxhQUE0QixFQUFLO01BQ3RELElBQU1pRCxjQUFjLEdBQUcsQ0FBQ2pELGFBQWEsQ0FBQytDLFNBQVMsSUFBSS9DLGFBQWEsQ0FBQytDLFNBQVMsQ0FBQzNHLEtBQUssQ0FBQ0QsTUFBTSxDQUFDO01BQ3hGLElBQU0rRyxPQUFPLEdBQUc5RyxLQUFLLENBQUNELE1BQU0sQ0FBQzZELGFBQWEsQ0FBQ2hELEtBQUssQ0FBQyxJQUFJZ0QsYUFBYSxDQUFDbUQsY0FBYztNQUVqRixJQUFJRixjQUFjLElBQUlDLE9BQU8sRUFBRTtRQUM3QixJQUFNaEgsV0FBVyxHQUFHRSxLQUFLLENBQUM2RCwyQkFBMkIsQ0FBQ0QsYUFBYSxDQUFDWCxHQUFHLENBQUM7UUFDeEUsSUFBSTBCLGVBQWUsQ0FBQ2YsYUFBYSxDQUFDLEVBQUU7VUFDbEMsb0JBQ0V4SyxNQUFBLFlBQUEyRSxhQUFBLENBQUMyRixpQkFBaUI7WUFDaEJULEdBQUcsRUFBRVcsYUFBYSxDQUFDWCxHQUFJO1lBQ3ZCakQsS0FBSyxFQUFFQSxLQUFNO1lBQ2JLLFFBQVEsRUFBRUEsUUFBUztZQUNuQmhELEtBQUssRUFBRUEsS0FBTTtZQUNidUcsYUFBYSxFQUFFQTtVQUFjLENBQzlCLENBQUM7UUFFTjtRQUNBLG9CQUNFeEssTUFBQSxZQUFBMkUsYUFBQSxDQUFDSSxrQkFBa0I7VUFDakI4RSxHQUFHLEVBQUVXLGFBQWEsQ0FBQ1gsR0FBSTtVQUN2QjVFLEtBQUssRUFBRXlCLFdBQVcsQ0FBQ3pCLEtBQU07VUFDekJQLElBQUksRUFBRWdDLFdBQVcsQ0FBQ1k7UUFBUSxDQUMzQixDQUFDO01BRU47TUFDQSxPQUFPLElBQUk7SUFDYixDQUFDLENBQ0QsQ0FBQztFQUVQLENBQUM7RUFFRCxPQUFPbUYsa0JBQWtCO0FBQzNCO0FBZ0JBbUIsZ0JBQWdCLENBQUN6SSxJQUFJLEdBQUcsQ0FBQ3NHLHdCQUF3QixFQUFFZSx5QkFBeUIsQ0FBQztBQUU3RSxTQUFTb0IsZ0JBQWdCQSxDQUN2QmxDLGlCQUE4RCxFQUM5RGUsa0JBQWdFLEVBQ2hFO0VBQ0EsSUFBTW9CLFNBQW1DLEdBQUcsU0FBdENBLFNBQW1DQSxDQUFBQyxLQUFBO0lBQUEsSUFBQUMsWUFBQSxHQUFBRCxLQUFBLENBQ3ZDRSxNQUFNO01BQU5BLE1BQU0sR0FBQUQsWUFBQSxjQUFHLEVBQUUsR0FBQUEsWUFBQTtNQUNYOUosS0FBSyxHQUFBNkosS0FBQSxDQUFMN0osS0FBSztNQUNMZ0QsUUFBUSxHQUFBNkcsS0FBQSxDQUFSN0csUUFBUTtNQUNSMkUsT0FBTyxHQUFBa0MsS0FBQSxDQUFQbEMsT0FBTztNQUNQOUUsV0FBVyxHQUFBZ0gsS0FBQSxDQUFYaEgsV0FBVztNQUNYRSxRQUFRLEdBQUE4RyxLQUFBLENBQVI5RyxRQUFRO01BQ1JELHNCQUFzQixHQUFBK0csS0FBQSxDQUF0Qi9HLHNCQUFzQjtNQUN0QjhFLHVCQUF1QixHQUFBaUMsS0FBQSxDQUF2QmpDLHVCQUF1QjtNQUFBb0MsaUJBQUEsR0FBQUgsS0FBQSxDQUN2QjVHLFdBQVc7TUFBWEEsV0FBVyxHQUFBK0csaUJBQUEsY0FBRzVCLGtCQUFrQixHQUFBNEIsaUJBQUE7SUFBQSxvQkFFaENqTyxNQUFBLFlBQUEyRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFZLEdBQ3hCb0osTUFBTSxDQUFDbEcsR0FBRyxDQUFDLFVBQUNsQixLQUFLLEVBQUVzSCxLQUFLLEVBQUs7TUFDNUIsSUFBSSxDQUFDdEgsS0FBSyxDQUFDdUgsYUFBYSxDQUFDLENBQUMsSUFBSXZILEtBQUssQ0FBQ0QsTUFBTSxDQUFDeUgsTUFBTSxFQUFFO1FBQ2pELE9BQU8sSUFBSTtNQUNiO01BQ0EsSUFBTXpCLFVBQVUsR0FBRzFJLEtBQUssSUFBSWtKLHFCQUFVLENBQUN2SixVQUFVLENBQUNLLEtBQUs7TUFFdkQsb0JBQ0VqRSxNQUFBLFlBQUEyRSxhQUFBLENBQUN0QixzQkFBc0I7UUFDckJ1QixTQUFTLEVBQUMsZUFBZTtRQUN6QlosSUFBSSxFQUFFa0ssS0FBSyxLQUFLRixNQUFNLENBQUNoTCxNQUFNLEdBQUcsQ0FBRTtRQUNsQzZHLEdBQUcsRUFBRXFFLEtBQU07UUFDWGpLLEtBQUssRUFBRTBJO01BQVcsZ0JBRWxCM00sTUFBQSxZQUFBMkUsYUFBQSxDQUFDK0csaUJBQWlCO1FBQ2hCMUUsUUFBUSxFQUFFQSxRQUFTO1FBQ25CNEUsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCaEYsS0FBSyxFQUFFQSxLQUFNO1FBQ2JpRix1QkFBdUIsRUFBRUE7TUFBd0IsQ0FDbEQsQ0FBQyxlQUNGN0wsTUFBQSxZQUFBMkUsYUFBQSxDQUFDOEgsa0JBQWtCO1FBQ2pCRSxVQUFVLEVBQUVBLFVBQVc7UUFDdkIvRixLQUFLLEVBQUVBLEtBQU07UUFDYkssUUFBUSxFQUFFQSxRQUFTO1FBQ25CSCxXQUFXLEVBQUVBLFdBQVk7UUFDekJFLFFBQVEsRUFBRUEsUUFBUztRQUNuQkQsc0JBQXNCLEVBQUVBLHNCQUF1QjtRQUMvQ0csV0FBVyxFQUFFQTtNQUFZLENBQzFCLENBQ3FCLENBQUM7SUFFN0IsQ0FBQyxDQUNFLENBQUM7RUFBQSxDQUNQO0VBRUQyRyxTQUFTLENBQUM3SCxXQUFXLEdBQUcsV0FBVztFQUVuQyxPQUFPNkgsU0FBUztBQUNsQjtBQUFDLElBQUFRLFFBQUEsR0FBQS9LLE9BQUEsY0FFY3NLLGdCQUFnQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
396
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZE1hcENvbnRyb2xMZWdlbmQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJmb250RmFtaWx5IiwicGFuZWxCb3JkZXJDb2xvciIsIiRsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZExlZ2VuZEhlYWRlclJvdyIsIlN0eWxlZFZpc2liaWxpdHlUb2dnbGUiLCIkaXNWaXNpYmxlIiwiVmlzdWFsQ2hhbm5lbE1ldHJpYyIsIl9yZWYiLCJuYW1lIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJpZCIsIkxheWVyRGVmYXVsdExlZ2VuZCIsIl9yZWYyIiwibGFiZWwiLCJTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkiLCJkZXBzIiwiTGVnZW5kUm93RmFjdG9yeSIsIkxlZ2VuZFJvdyIsIlNpbmdsZUNvbG9yTGVnZW5kIiwiX3JlZjMiLCJjb2xvciIsImRpc3BsYXlMYWJlbCIsIkJvb2xlYW4iLCJBcnJheSIsImlzQXJyYXkiLCJyZ2IiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwidG9TdHJpbmciLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5IiwiQ29sb3JMZWdlbmRGYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiQ29sb3JMZWdlbmQiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkxheWVyQ29sb3JMZWdlbmQiLCJfcmVmNCIsImRlc2NyaXB0aW9uIiwiY29uZmlnIiwibGF5ZXIiLCJjb2xvckNoYW5uZWwiLCJkaXNhYmxlRWRpdCIsIm9uTGF5ZXJWaXNDb25maWdDaGFuZ2UiLCJpc0V4cG9ydCIsIm1hcFN0YXRlIiwiYWN0aW9uSWNvbnMiLCJpbnRsIiwidXNlSW50bCIsImVuYWJsZUNvbG9yQnkiLCJtZWFzdXJlIiwic2NhbGUiLCJmaWVsZCIsImRvbWFpbiIsInJhbmdlIiwicHJvcGVydHkiLCJmaXhlZCIsIl9tYXAiLCJtYXAiLCJrIiwiX21hcDIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb2xvclNjYWxlIiwiY29sb3JGaWVsZCIsImNvbG9yRG9tYWluIiwiaXNGaXhlZCIsInZpc0NvbmZpZyIsImNvbG9yUmFuZ2UiLCJvblVwZGF0ZUNvbG9yTGVnZW5kIiwidXNlQ2FsbGJhY2siLCJjb2xvckxlZ2VuZHMiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpc0V4cGFuZGVkIiwic2V0SXNFeHBhbmRlZCIsImhhbmRsZVRvZ2dsZUV4cGFuZGVkIiwib25DbGljayIsIkljb25Db21wb25lbnQiLCJleHBhbmRlZCIsImNvbGxhcHNlZCIsInNjYWxlVHlwZSIsImZpZWxkVHlwZSIsInR5cGUiLCJsYWJlbEZvcm1hdCIsImRpc3BsYXlGb3JtYXQiLCJkM0Zvcm1hdCIsImZvcm1hdE1lc3NhZ2UiLCJjb25jYXQiLCJrZXkiLCJkZWZhdWx0TWVzc2FnZSIsImdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIiLCJfZ2V0RGlzdGFuY2VTY2FsZXMiLCJnZXREaXN0YW5jZVNjYWxlcyIsIm1ldGVyc1BlclBpeGVsIiwiZml4ZWRSYWRpdXMiLCJzaXplRmllbGQiLCJnZXRSYWRpdXNTY2FsZUJ5Wm9vbSIsIkxheWVyUmFkaXVzTGVnZW5kIiwiX3JlZjUiLCJ2aXN1YWxDaGFubmVsIiwiZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uIiwiZW5hYmxlU2l6ZUJ5IiwiX21hcDMiLCJfbWFwNCIsInNpemVTY2FsZSIsInNpemVEb21haW4iLCJzaXplUmFuZ2UiLCJyYWRpdXNNdWx0aXBsaWVyIiwidiIsImlzQ29sb3JDaGFubmVsIiwiQ0hBTk5FTF9TQ0FMRVMiLCJjb2xvckFnZ3IiLCJpbmNsdWRlcyIsImNoYW5uZWxTY2FsZVR5cGUiLCJpc1JhZGl1c0NoYW5uZWwiLCJyYWRpdXMiLCJMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkiLCJMYXllckxlZ2VuZEhlYWRlciIsIl9yZWY2Iiwib3B0aW9ucyIsIm9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5IiwiaXNWaXNpYmxlIiwib25Ub2dnbGUiLCJzaG93TGF5ZXJOYW1lIiwic3R5bGUiLCJvcGFjaXR5IiwiRXllU2VlbiIsImhlaWdodCIsIkV5ZVVuc2VlbiIsImRlZmF1bHRBY3Rpb25JY29ucyIsIkFycm93RG93biIsIkFycm93UmlnaHQiLCJMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5IiwiTGF5ZXJMZWdlbmRDb250ZW50IiwiX3JlZjciLCJjb250YWluZXJXIiwidmlzdWFsQ2hhbm5lbHMiLCJnZXRMZWdlbmRWaXN1YWxDaGFubmVscyIsImNoYW5uZWxLZXlzIiwidmFsdWVzIiwiY29sb3JDaGFubmVscyIsIm5vbkNvbG9yQ2hhbm5lbHMiLCJ2YyIsIkRJTUVOU0lPTlMiLCJjb2xvckNoYW5uZWxUb1JlbmRlciIsImNjIiwiX2xheWVyJGdldFZpc3VhbENoYW5uIiwiY29uZGl0aW9uIiwiRnJhZ21lbnQiLCJtYXRjaENvbmRpdGlvbiIsImVuYWJsZWQiLCJkZWZhdWx0TWVhc3VyZSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJNYXBMZWdlbmQiLCJfcmVmOCIsIl9yZWY4JGxheWVycyIsImxheWVycyIsIl9yZWY4JGFjdGlvbkljb25zIiwiaW5kZXgiLCJpc1ZhbGlkVG9TYXZlIiwiaGlkZGVuIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0ZDLCB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIENvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtyZ2J9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7Zm9ybWF0IGFzIGQzRm9ybWF0fSBmcm9tICdkMy1mb3JtYXQnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckxlZ2VuZEZhY3RvcnksIHtMZWdlbmRSb3dGYWN0b3J5fSBmcm9tICcuLi9jb21tb24vY29sb3ItbGVnZW5kJztcbmltcG9ydCBSYWRpdXNMZWdlbmQgZnJvbSAnLi4vY29tbW9uL3JhZGl1cy1sZWdlbmQnO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgRElNRU5TSU9OU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0xheWVyLCBMYXllckJhc2VDb25maWcsIFZpc3VhbENoYW5uZWwsIFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtMYXllclZpc0NvbmZpZywgTWFwU3RhdGUsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Z2V0RGlzdGFuY2VTY2FsZXN9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtBcnJvd0Rvd24sIEFycm93UmlnaHQsIEV5ZVNlZW4sIEV5ZVVuc2Vlbn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICAkbGFzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNYXBDb250cm9sTGVnZW5kID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHM+YFxuICBwYWRkaW5nOiAxMHB4ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4IDEwcHhcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLiRsYXN0ID8gMCA6ICcxcHgnKX07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC5sZWdlbmQtLWxheWVyX25hbWUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfdHlwZSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX3RpdGxlIHtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX19pdGVtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX2J5IHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yX2ZpZWxkIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZCB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRMZWdlbmRIZWFkZXJSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlID0gc3R5bGVkLmRpdjx7JGlzVmlzaWJsZTogYm9vbGVhbn0+YFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kaXNWaXNpYmxlID8gcHJvcHMudGhlbWUudGV4dENvbG9yIDogcHJvcHMudGhlbWUuc3VidGV4dENvbG9yKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1Zpc2libGUgPyAxIDogMC41KX07XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBWaXN1YWxDaGFubmVsTWV0cmljID0gKHtuYW1lfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9fdGl0bGVcIj5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGRcIj5cbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e25hbWV9IC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclNpemVMZWdlbmRQcm9wcyA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyRGVmYXVsdExlZ2VuZDogUmVhY3QuRkM8TGF5ZXJTaXplTGVnZW5kUHJvcHM+ID0gKHtsYWJlbCwgbmFtZX0pID0+XG4gIGxhYmVsID8gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgPHA+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj57bGFiZWwgPyA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bGFiZWx9IC8+IDogbnVsbH08L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfYnlcIj4gYnkgPC9zcGFuPlxuICAgICAgPC9wPlxuICAgICAge25hbWUgJiYgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17bmFtZX0gLz59XG4gICAgPC9kaXY+XG4gICkgOiBudWxsO1xuXG5leHBvcnQgdHlwZSBTaW5nbGVDb2xvckxlZ2VuZFByb3BzID0ge1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIGxhYmVsPzogc3RyaW5nO1xufTtcblxuU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGVnZW5kUm93RmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkoTGVnZW5kUm93OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dGYWN0b3J5Pikge1xuICBjb25zdCBTaW5nbGVDb2xvckxlZ2VuZDogUmVhY3QuRkM8U2luZ2xlQ29sb3JMZWdlbmRQcm9wcz4gPSAoe2NvbG9yLCBsYWJlbH0pID0+IChcbiAgICA8TGVnZW5kUm93XG4gICAgICBsYWJlbD17bGFiZWwgPz8gJyd9XG4gICAgICBkaXNwbGF5TGFiZWw9e0Jvb2xlYW4obGFiZWwpfVxuICAgICAgY29sb3I9e0FycmF5LmlzQXJyYXkoY29sb3IpID8gcmdiKC4uLmNvbG9yKS50b1N0cmluZygpIDogY29sb3J9XG4gICAgLz5cbiAgKTtcblxuICBTaW5nbGVDb2xvckxlZ2VuZC5kaXNwbGF5TmFtZSA9ICdTaW5nbGVDb2xvckxlZ2VuZCc7XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oU2luZ2xlQ29sb3JMZWdlbmQpO1xufVxuXG5leHBvcnQgdHlwZSBMYXllckNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGRlc2NyaXB0aW9uOiBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb247XG4gIGNvbmZpZzogTGF5ZXJCYXNlQ29uZmlnO1xuICBjb2xvckNoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBsYXllcjogTGF5ZXI7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBhY3Rpb25JY29uczogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5MYXllckNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW1xuICBDb2xvckxlZ2VuZEZhY3RvcnksXG4gIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeSxcbiAgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XG5dO1xuZXhwb3J0IGZ1bmN0aW9uIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5KFxuICBDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgU2luZ2xlQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeT4sXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJDb2xvckxlZ2VuZDogUmVhY3QuRkM8TGF5ZXJDb2xvckxlZ2VuZFByb3BzPiA9ICh7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgY29uZmlnLFxuICAgIGxheWVyLFxuICAgIGNvbG9yQ2hhbm5lbCxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGlzRXhwb3J0LFxuICAgIG1hcFN0YXRlLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGNvbnN0IGVuYWJsZUNvbG9yQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2UsIHByb3BlcnR5LCBmaXhlZH0gPSBjb2xvckNoYW5uZWw7XG4gICAgY29uc3QgW2NvbG9yU2NhbGUsIGNvbG9yRmllbGQsIGNvbG9yRG9tYWluXSA9IFtzY2FsZSwgZmllbGQsIGRvbWFpbl0ubWFwKGsgPT4gY29uZmlnW2tdKTtcbiAgICBjb25zdCBpc0ZpeGVkID0gZml4ZWQgJiYgY29uZmlnLnZpc0NvbmZpZ1tmaXhlZF07XG5cbiAgICBjb25zdCBjb2xvclJhbmdlID0gY29uZmlnLnZpc0NvbmZpZ1tyYW5nZV07XG4gICAgY29uc3Qgb25VcGRhdGVDb2xvckxlZ2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3JMZWdlbmRzID0+IHtcbiAgICAgICAgaWYgKG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UpIHtcbiAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlKGxheWVyLCB7XG4gICAgICAgICAgICBbcmFuZ2VdOiB7XG4gICAgICAgICAgICAgIC4uLmNvbG9yUmFuZ2UsXG4gICAgICAgICAgICAgIGNvbG9yTGVnZW5kc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2xheWVyLCBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLCBjb2xvclJhbmdlLCByYW5nZV1cbiAgICApO1xuICAgIGNvbnN0IFtpc0V4cGFuZGVkLCBzZXRJc0V4cGFuZGVkXSA9IHVzZVN0YXRlKGlzRXhwb3J0KTtcbiAgICBjb25zdCBoYW5kbGVUb2dnbGVFeHBhbmRlZCA9ICgpID0+IHNldElzRXhwYW5kZWQoIWlzRXhwYW5kZWQpO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfX2l0ZW1cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93XCI+XG4gICAgICAgICAgICAgICAgPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlQ29sb3JCeX0gLz5cbiAgICAgICAgICAgICAgICB7IWlzRXhwb3J0ID8gKFxuICAgICAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibGVnZW5kLWNvbGxhcHNlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVRvZ2dsZUV4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtpc0V4cGFuZGVkID8gYWN0aW9uSWNvbnMuZXhwYW5kZWQgOiBhY3Rpb25JY29ucy5jb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZFwiPlxuICAgICAgICAgICAgICB7ZW5hYmxlQ29sb3JCeSA/IChcbiAgICAgICAgICAgICAgICA8Q29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e2NvbG9yU2NhbGV9XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5TGFiZWxcbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17Y29sb3JEb21haW59XG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU9eyhjb2xvckZpZWxkICYmIGNvbG9yRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e2NvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZUNvbG9yTGVnZW5kPXtvblVwZGF0ZUNvbG9yTGVnZW5kfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0IHx8IEJvb2xlYW4oaXNFeHBvcnQpfVxuICAgICAgICAgICAgICAgICAgaXNGaXhlZD17aXNGaXhlZH1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIGxhYmVsRm9ybWF0PXtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCA/IGQzRm9ybWF0KGNvbG9yRmllbGQ/LmRpc3BsYXlGb3JtYXQpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPFNpbmdsZUNvbG9yTGVnZW5kXG4gICAgICAgICAgICAgICAgICBjb2xvcj17Y29uZmlnLnZpc0NvbmZpZ1twcm9wZXJ0eV0gfHwgY29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWcuY29sb3J9XG4gICAgICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLiR7bGF5ZXIudHlwZX0uc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiBgbWFwTGVnZW5kLmxheWVycy5kZWZhdWx0LnNpbmdsZUNvbG9yLiR7Y29sb3JDaGFubmVsLmtleX1gLFxuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNZXNzYWdlOiAnICcgLy8gbXVzdG4ndCBiZSBlbXB0eSBzdHJpbmcgb3IgaWQgd2lsbCBiZSB1c2VkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ0xheWVyQ29sb3JMZWdlbmQnO1xuICByZXR1cm4gUmVhY3QubWVtbyhMYXllckNvbG9yTGVnZW5kKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllcihsYXllciwgbWFwU3RhdGUpIHtcbiAgLy8gQHRzLWlnbm9yZSB0aGlzIGFjdHVhbGx5IGV4aXN0XG4gIGNvbnN0IHttZXRlcnNQZXJQaXhlbH0gPSBnZXREaXN0YW5jZVNjYWxlcyhtYXBTdGF0ZSk7XG4gIC8vIGlmIG5vIGZpZWxkIHNpemUgaXMgZGVmaW5lZCB3ZSBuZWVkIHRvIHBhc3MgZml4ZWQgcmFkaXVzID0gZmFsc2VcbiAgY29uc3QgZml4ZWRSYWRpdXMgPSBsYXllci5jb25maWcudmlzQ29uZmlnLmZpeGVkUmFkaXVzICYmIEJvb2xlYW4obGF5ZXIuY29uZmlnLnNpemVGaWVsZCk7XG4gIHJldHVybiBsYXllci5nZXRSYWRpdXNTY2FsZUJ5Wm9vbShtYXBTdGF0ZSwgZml4ZWRSYWRpdXMpIC8gbWV0ZXJzUGVyUGl4ZWxbMF07XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZEljb25zID0ge1xuICBleHBhbmRlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBjb2xsYXBzZWQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyUmFkaXVzTGVnZW5kUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICB2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyUmFkaXVzTGVnZW5kOiBGQzxMYXllclJhZGl1c0xlZ2VuZFByb3BzPiA9IFJlYWN0Lm1lbW8oXG4gICh7bGF5ZXIsIHdpZHRoLCB2aXN1YWxDaGFubmVsLCBtYXBTdGF0ZX0pID0+IHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbih2aXN1YWxDaGFubmVsLmtleSk7XG4gICAgY29uc3QgY29uZmlnID0gbGF5ZXIuY29uZmlnO1xuXG4gICAgY29uc3QgZW5hYmxlU2l6ZUJ5ID0gZGVzY3JpcHRpb24ubWVhc3VyZTtcbiAgICBjb25zdCB7c2NhbGUsIGZpZWxkLCBkb21haW4sIHJhbmdlfSA9IHZpc3VhbENoYW5uZWw7XG4gICAgY29uc3QgW3NpemVTY2FsZSwgc2l6ZUZpZWxkLCBzaXplRG9tYWluXSA9IFtzY2FsZSwgZmllbGQsIGRvbWFpbl0ubWFwKGsgPT4gY29uZmlnW2tdKTtcbiAgICBsZXQgc2l6ZVJhbmdlID0gY29uZmlnLnZpc0NvbmZpZ1tyYW5nZV07XG5cbiAgICBpZiAobWFwU3RhdGUpIHtcbiAgICAgIGNvbnN0IHJhZGl1c011bHRpcGxpZXIgPSBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSk7XG4gICAgICBzaXplUmFuZ2UgPSBzaXplUmFuZ2UubWFwKHYgPT4gdiAqIHJhZGl1c011bHRpcGxpZXIpO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1zY2hlbWFcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IDxWaXN1YWxDaGFubmVsTWV0cmljIG5hbWU9e2VuYWJsZVNpemVCeX0gLz4gOiBudWxsfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVTaXplQnkgPyAoXG4gICAgICAgICAgICAgICAgPFJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAgc2NhbGVUeXBlPXtzaXplU2NhbGV9XG4gICAgICAgICAgICAgICAgICBkb21haW49e3NpemVEb21haW59XG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGU9eyhzaXplRmllbGQgJiYgc2l6ZUZpZWxkLnR5cGUpIHx8ICdyZWFsJ31cbiAgICAgICAgICAgICAgICAgIHJhbmdlPXtzaXplUmFuZ2V9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBpc0NvbG9yQ2hhbm5lbCA9IHZpc3VhbENoYW5uZWwgPT5cbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yLCBDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCB0eXBlIExheWVyTGVnZW5kSGVhZGVyUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgb3B0aW9ucz86IHtcbiAgICBzaG93TGF5ZXJOYW1lPzogYm9vbGVhbjtcbiAgfTtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7XG4gICAgb3B0aW9ucyxcbiAgICBsYXllcixcbiAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eVxuICB9KSA9PiB7XG4gICAgY29uc3QgaXNWaXNpYmxlID0gbGF5ZXIuY29uZmlnLmlzVmlzaWJsZTtcbiAgICBjb25zdCBvblRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSkge1xuICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eShsYXllcik7XG4gICAgICB9XG4gICAgfSwgW2xheWVyLCBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eV0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LnNob3dMYXllck5hbWUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZEhlYWRlclJvdz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIiBzdHlsZT17e29wYWNpdHk6IGlzVmlzaWJsZSA/IDEgOiAwLjV9fT5cbiAgICAgICAgICB7bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5ID8gKFxuICAgICAgICAgIDxTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlICRpc1Zpc2libGU9e2lzVmlzaWJsZX0gb25DbGljaz17b25Ub2dnbGV9PlxuICAgICAgICAgICAge2lzVmlzaWJsZSA/IDxFeWVTZWVuIGhlaWdodD1cIjEycHhcIiAvPiA6IDxFeWVVbnNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+fVxuICAgICAgICAgIDwvU3R5bGVkVmlzaWJpbGl0eVRvZ2dsZT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1N0eWxlZExlZ2VuZEhlYWRlclJvdz5cbiAgICApO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM/OiBNYXBMZWdlbmRJY29ucztcbn07XG5cbk1hcExlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMYXllckxlZ2VuZEhlYWRlckZhY3RvcnksIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRGYWN0b3J5KFxuICBMYXllckxlZ2VuZEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5PixcbiAgTGF5ZXJMZWdlbmRDb250ZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE1hcExlZ2VuZDogUmVhY3QuRkM8TWFwTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcnMgPSBbXSxcbiAgICB3aWR0aCxcbiAgICBtYXBTdGF0ZSxcbiAgICBvcHRpb25zLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnNcbiAgfSkgPT4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWxlZ2VuZFwiPlxuICAgICAge2xheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWxheWVyLmlzVmFsaWRUb1NhdmUoKSB8fCBsYXllci5jb25maWcuaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyVyA9IHdpZHRoIHx8IERJTUVOU0lPTlMubWFwQ29udHJvbC53aWR0aDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sTGVnZW5kXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyXCJcbiAgICAgICAgICAgICRsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyXG4gICAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT17b25Ub2dnbGVMYXllclZpc2liaWxpdHl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLHdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQXlFLElBQUFhLGVBQUEsRUFBQUMsZ0JB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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MapState } from '@kepler.gl/types';
|
|
3
|
+
import { MapStateActions } from '@kepler.gl/actions';
|
|
4
|
+
export type MapNavigationControlProps = {
|
|
5
|
+
mapState: MapState;
|
|
6
|
+
mapIndex: number;
|
|
7
|
+
mapStateActions: typeof MapStateActions;
|
|
8
|
+
};
|
|
9
|
+
declare function MapNavigationControlFactory(): React.NamedExoticComponent<MapNavigationControlProps>;
|
|
10
|
+
declare namespace MapNavigationControlFactory {
|
|
11
|
+
var deps: any[];
|
|
12
|
+
}
|
|
13
|
+
export default MapNavigationControlFactory;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = MapNavigationControlFactory;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
12
|
+
var _mapViewStateContext = require("../map-view-state-context");
|
|
13
|
+
var _styledComponents2 = require("../common/styled-components");
|
|
14
|
+
var _utils = require("@kepler.gl/utils");
|
|
15
|
+
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
16
|
+
// Copyright contributors to the kepler.gl project
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
|
+
var StyledMapNavigationControl = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 8px;\n flex-direction: column;\n align-items: flex-end;\n margin-top: 12px;\n"])));
|
|
20
|
+
var NavButtonGroup = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 0;\n overflow: hidden;\n box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.16);\n"])));
|
|
21
|
+
var NavButton = (0, _styledComponents["default"])(_styledComponents2.MapControlButton)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-shadow: none;\n border-top: ", ";\n"])), function (props) {
|
|
22
|
+
return props.$isFirst ? 'none' : "1px solid ".concat(props.theme.panelBorderColor);
|
|
23
|
+
});
|
|
24
|
+
MapNavigationControlFactory.deps = [];
|
|
25
|
+
function MapNavigationControlFactory() {
|
|
26
|
+
var MapNavigationControl = function MapNavigationControl(_ref) {
|
|
27
|
+
var _theme$notificationCo;
|
|
28
|
+
var mapState = _ref.mapState,
|
|
29
|
+
mapIndex = _ref.mapIndex,
|
|
30
|
+
mapStateActions = _ref.mapStateActions;
|
|
31
|
+
var _useContext = (0, _react.useContext)(_mapViewStateContext.MapViewStateContext),
|
|
32
|
+
getInternalViewState = _useContext.getInternalViewState;
|
|
33
|
+
var viewState = getInternalViewState(mapIndex);
|
|
34
|
+
var theme = (0, _styledComponents.useTheme)();
|
|
35
|
+
var isEnabled = (0, _utils.getApplicationConfig)().enableMapNavigationControl;
|
|
36
|
+
var handleZoomIn = (0, _react.useCallback)(function () {
|
|
37
|
+
var _viewState$zoom;
|
|
38
|
+
var currentZoom = (_viewState$zoom = viewState === null || viewState === void 0 ? void 0 : viewState.zoom) !== null && _viewState$zoom !== void 0 ? _viewState$zoom : mapState.zoom;
|
|
39
|
+
var nextZoom = currentZoom + 1;
|
|
40
|
+
if (mapState.maxZoom != null) {
|
|
41
|
+
nextZoom = Math.min(mapState.maxZoom, nextZoom);
|
|
42
|
+
}
|
|
43
|
+
mapStateActions.updateMap({
|
|
44
|
+
zoom: nextZoom
|
|
45
|
+
}, mapIndex);
|
|
46
|
+
}, [viewState, mapState, mapStateActions, mapIndex]);
|
|
47
|
+
var handleZoomOut = (0, _react.useCallback)(function () {
|
|
48
|
+
var _viewState$zoom2;
|
|
49
|
+
var currentZoom = (_viewState$zoom2 = viewState === null || viewState === void 0 ? void 0 : viewState.zoom) !== null && _viewState$zoom2 !== void 0 ? _viewState$zoom2 : mapState.zoom;
|
|
50
|
+
var nextZoom = currentZoom - 1;
|
|
51
|
+
if (mapState.minZoom != null) {
|
|
52
|
+
nextZoom = Math.max(mapState.minZoom, nextZoom);
|
|
53
|
+
}
|
|
54
|
+
mapStateActions.updateMap({
|
|
55
|
+
zoom: nextZoom
|
|
56
|
+
}, mapIndex);
|
|
57
|
+
}, [viewState, mapState, mapStateActions, mapIndex]);
|
|
58
|
+
var handleCompassClick = (0, _react.useCallback)(function () {
|
|
59
|
+
var _viewState$bearing, _viewState$pitch;
|
|
60
|
+
var currentBearing = (_viewState$bearing = viewState === null || viewState === void 0 ? void 0 : viewState.bearing) !== null && _viewState$bearing !== void 0 ? _viewState$bearing : mapState.bearing;
|
|
61
|
+
var currentPitch = (_viewState$pitch = viewState === null || viewState === void 0 ? void 0 : viewState.pitch) !== null && _viewState$pitch !== void 0 ? _viewState$pitch : mapState.pitch;
|
|
62
|
+
if (currentBearing === 0 && currentPitch === 0) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (currentBearing !== 0) {
|
|
66
|
+
mapStateActions.updateMap({
|
|
67
|
+
bearing: 0
|
|
68
|
+
}, mapIndex);
|
|
69
|
+
} else {
|
|
70
|
+
mapStateActions.updateMap({
|
|
71
|
+
bearing: 0,
|
|
72
|
+
pitch: 0
|
|
73
|
+
}, mapIndex);
|
|
74
|
+
}
|
|
75
|
+
}, [viewState, mapState, mapStateActions, mapIndex]);
|
|
76
|
+
var rotation = (0, _react.useMemo)(function () {
|
|
77
|
+
var _ref2, _viewState$bearing2, _ref3, _viewState$pitch2;
|
|
78
|
+
var bearing = -((_ref2 = (_viewState$bearing2 = viewState === null || viewState === void 0 ? void 0 : viewState.bearing) !== null && _viewState$bearing2 !== void 0 ? _viewState$bearing2 : mapState.bearing) !== null && _ref2 !== void 0 ? _ref2 : 0);
|
|
79
|
+
var pitch = (_ref3 = (_viewState$pitch2 = viewState === null || viewState === void 0 ? void 0 : viewState.pitch) !== null && _viewState$pitch2 !== void 0 ? _viewState$pitch2 : mapState.pitch) !== null && _ref3 !== void 0 ? _ref3 : 0;
|
|
80
|
+
return {
|
|
81
|
+
bearing: bearing,
|
|
82
|
+
pitch: pitch
|
|
83
|
+
};
|
|
84
|
+
}, [viewState, mapState]);
|
|
85
|
+
if (!isEnabled) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(StyledMapNavigationControl, {
|
|
89
|
+
className: "map-navigation-control"
|
|
90
|
+
}, /*#__PURE__*/_react["default"].createElement(NavButtonGroup, null, /*#__PURE__*/_react["default"].createElement(NavButton, {
|
|
91
|
+
$isFirst: true,
|
|
92
|
+
onClick: handleZoomIn,
|
|
93
|
+
title: "Zoom in",
|
|
94
|
+
className: "map-navigation-control__zoom-in"
|
|
95
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", {
|
|
96
|
+
fill: "none",
|
|
97
|
+
width: "18",
|
|
98
|
+
height: "18",
|
|
99
|
+
viewBox: "0 0 24 24",
|
|
100
|
+
strokeWidth: "2",
|
|
101
|
+
stroke: "currentColor"
|
|
102
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
103
|
+
d: "M12 4.5v15m7.5-7.5h-15"
|
|
104
|
+
}))), /*#__PURE__*/_react["default"].createElement(NavButton, {
|
|
105
|
+
onClick: handleZoomOut,
|
|
106
|
+
title: "Zoom out",
|
|
107
|
+
className: "map-navigation-control__zoom-out"
|
|
108
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", {
|
|
109
|
+
fill: "none",
|
|
110
|
+
width: "18",
|
|
111
|
+
height: "18",
|
|
112
|
+
viewBox: "0 0 24 24",
|
|
113
|
+
strokeWidth: "2",
|
|
114
|
+
stroke: "currentColor"
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
116
|
+
d: "M19.5 12h-15"
|
|
117
|
+
})))), mapState.dragRotate ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.MapControlButton, {
|
|
118
|
+
onClick: handleCompassClick,
|
|
119
|
+
title: "Reset bearing/pitch",
|
|
120
|
+
className: "map-navigation-control__compass"
|
|
121
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
122
|
+
style: {
|
|
123
|
+
transform: "rotateX(".concat(rotation.pitch, "deg)")
|
|
124
|
+
}
|
|
125
|
+
}, /*#__PURE__*/_react["default"].createElement("svg", {
|
|
126
|
+
fill: "none",
|
|
127
|
+
width: "18",
|
|
128
|
+
height: "18",
|
|
129
|
+
viewBox: "0 0 16 16"
|
|
130
|
+
}, /*#__PURE__*/_react["default"].createElement("g", {
|
|
131
|
+
transform: "rotate(".concat(rotation.bearing, ",8,8)")
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
133
|
+
d: "M5 8.00006L7.99987 0L10.9997 8.00006H5Z",
|
|
134
|
+
fill: ((_theme$notificationCo = theme.notificationColors) === null || _theme$notificationCo === void 0 ? void 0 : _theme$notificationCo.error) || '#F05C44'
|
|
135
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
136
|
+
d: "M11.0002 7.99994L8.00038 16L5.00051 7.99994L11.0002 7.99994Z",
|
|
137
|
+
fill: "currentColor"
|
|
138
|
+
}))))) : null);
|
|
139
|
+
};
|
|
140
|
+
MapNavigationControl.displayName = 'MapNavigationControl';
|
|
141
|
+
return /*#__PURE__*/_react["default"].memo(MapNavigationControl);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTmF2QnV0dG9uR3JvdXAiLCJOYXZCdXR0b24iLCJNYXBDb250cm9sQnV0dG9uIiwicHJvcHMiLCIkaXNGaXJzdCIsImNvbmNhdCIsInRoZW1lIiwicGFuZWxCb3JkZXJDb2xvciIsIk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSIsImRlcHMiLCJNYXBOYXZpZ2F0aW9uQ29udHJvbCIsIl9yZWYiLCJfdGhlbWUkbm90aWZpY2F0aW9uQ28iLCJtYXBTdGF0ZSIsIm1hcEluZGV4IiwibWFwU3RhdGVBY3Rpb25zIiwiX3VzZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiTWFwVmlld1N0YXRlQ29udGV4dCIsImdldEludGVybmFsVmlld1N0YXRlIiwidmlld1N0YXRlIiwidXNlVGhlbWUiLCJpc0VuYWJsZWQiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZU1hcE5hdmlnYXRpb25Db250cm9sIiwiaGFuZGxlWm9vbUluIiwidXNlQ2FsbGJhY2siLCJfdmlld1N0YXRlJHpvb20iLCJjdXJyZW50Wm9vbSIsInpvb20iLCJuZXh0Wm9vbSIsIm1heFpvb20iLCJNYXRoIiwibWluIiwidXBkYXRlTWFwIiwiaGFuZGxlWm9vbU91dCIsIl92aWV3U3RhdGUkem9vbTIiLCJtaW5ab29tIiwibWF4IiwiaGFuZGxlQ29tcGFzc0NsaWNrIiwiX3ZpZXdTdGF0ZSRiZWFyaW5nIiwiX3ZpZXdTdGF0ZSRwaXRjaCIsImN1cnJlbnRCZWFyaW5nIiwiYmVhcmluZyIsImN1cnJlbnRQaXRjaCIsInBpdGNoIiwicm90YXRpb24iLCJ1c2VNZW1vIiwiX3JlZjIiLCJfdmlld1N0YXRlJGJlYXJpbmcyIiwiX3JlZjMiLCJfdmlld1N0YXRlJHBpdGNoMiIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwidGl0bGUiLCJmaWxsIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94Iiwic3Ryb2tlV2lkdGgiLCJzdHJva2UiLCJkIiwiZHJhZ1JvdGF0ZSIsInN0eWxlIiwidHJhbnNmb3JtIiwibm90aWZpY2F0aW9uQ29sb3JzIiwiZXJyb3IiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLW5hdmlnYXRpb24tY29udHJvbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt1c2VUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGVDb250ZXh0LCBNYXBWaWV3U3RhdGVDb250ZXh0VHlwZX0gZnJvbSAnLi4vbWFwLXZpZXctc3RhdGUtY29udGV4dCc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtnZXRBcHBsaWNhdGlvbkNvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmV4cG9ydCB0eXBlIE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwSW5kZXg6IG51bWJlcjtcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xufTtcblxuY29uc3QgU3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuYDtcblxuY29uc3QgTmF2QnV0dG9uR3JvdXAgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuYDtcblxuaW50ZXJmYWNlIE5hdkJ1dHRvblByb3BzIHtcbiAgJGlzRmlyc3Q/OiBib29sZWFuO1xufVxuXG5jb25zdCBOYXZCdXR0b24gPSBzdHlsZWQoTWFwQ29udHJvbEJ1dHRvbik8TmF2QnV0dG9uUHJvcHM+YFxuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItdG9wOiAke3Byb3BzID0+IChwcm9wcy4kaXNGaXJzdCA/ICdub25lJyA6IGAxcHggc29saWQgJHtwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfWApfTtcbmA7XG5cbk1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeS5kZXBzID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcE5hdmlnYXRpb25Db250cm9sRmFjdG9yeSgpIHtcbiAgY29uc3QgTWFwTmF2aWdhdGlvbkNvbnRyb2w6IFJlYWN0LkZDPE1hcE5hdmlnYXRpb25Db250cm9sUHJvcHM+ID0gKHtcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBJbmRleCxcbiAgICBtYXBTdGF0ZUFjdGlvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtnZXRJbnRlcm5hbFZpZXdTdGF0ZX0gPSB1c2VDb250ZXh0PE1hcFZpZXdTdGF0ZUNvbnRleHRUeXBlPihNYXBWaWV3U3RhdGVDb250ZXh0KTtcbiAgICBjb25zdCB2aWV3U3RhdGUgPSBnZXRJbnRlcm5hbFZpZXdTdGF0ZShtYXBJbmRleCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuXG4gICAgY29uc3QgaXNFbmFibGVkID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVNYXBOYXZpZ2F0aW9uQ29udHJvbDtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21JbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRab29tID0gdmlld1N0YXRlPy56b29tID8/IG1hcFN0YXRlLnpvb207XG4gICAgICBsZXQgbmV4dFpvb20gPSBjdXJyZW50Wm9vbSArIDE7XG4gICAgICBpZiAobWFwU3RhdGUubWF4Wm9vbSAhPSBudWxsKSB7XG4gICAgICAgIG5leHRab29tID0gTWF0aC5taW4obWFwU3RhdGUubWF4Wm9vbSwgbmV4dFpvb20pO1xuICAgICAgfVxuICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCh7em9vbTogbmV4dFpvb219LCBtYXBJbmRleCk7XG4gICAgfSwgW3ZpZXdTdGF0ZSwgbWFwU3RhdGUsIG1hcFN0YXRlQWN0aW9ucywgbWFwSW5kZXhdKTtcblxuICAgIGNvbnN0IGhhbmRsZVpvb21PdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Wm9vbSA9IHZpZXdTdGF0ZT8uem9vbSA/PyBtYXBTdGF0ZS56b29tO1xuICAgICAgbGV0IG5leHRab29tID0gY3VycmVudFpvb20gLSAxO1xuICAgICAgaWYgKG1hcFN0YXRlLm1pblpvb20gIT0gbnVsbCkge1xuICAgICAgICBuZXh0Wm9vbSA9IE1hdGgubWF4KG1hcFN0YXRlLm1pblpvb20sIG5leHRab29tKTtcbiAgICAgIH1cbiAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe3pvb206IG5leHRab29tfSwgbWFwSW5kZXgpO1xuICAgIH0sIFt2aWV3U3RhdGUsIG1hcFN0YXRlLCBtYXBTdGF0ZUFjdGlvbnMsIG1hcEluZGV4XSk7XG5cbiAgICBjb25zdCBoYW5kbGVDb21wYXNzQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50QmVhcmluZyA9IHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nO1xuICAgICAgY29uc3QgY3VycmVudFBpdGNoID0gdmlld1N0YXRlPy5waXRjaCA/PyBtYXBTdGF0ZS5waXRjaDtcbiAgICAgIGlmIChjdXJyZW50QmVhcmluZyA9PT0gMCAmJiBjdXJyZW50UGl0Y2ggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRCZWFyaW5nICE9PSAwKSB7XG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoe2JlYXJpbmc6IDB9LCBtYXBJbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKHtiZWFyaW5nOiAwLCBwaXRjaDogMH0sIG1hcEluZGV4KTtcbiAgICAgIH1cbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZSwgbWFwU3RhdGVBY3Rpb25zLCBtYXBJbmRleF0pO1xuXG4gICAgY29uc3Qgcm90YXRpb24gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGJlYXJpbmcgPSAtKHZpZXdTdGF0ZT8uYmVhcmluZyA/PyBtYXBTdGF0ZS5iZWFyaW5nID8/IDApO1xuICAgICAgY29uc3QgcGl0Y2ggPSB2aWV3U3RhdGU/LnBpdGNoID8/IG1hcFN0YXRlLnBpdGNoID8/IDA7XG4gICAgICByZXR1cm4ge2JlYXJpbmcsIHBpdGNofTtcbiAgICB9LCBbdmlld1N0YXRlLCBtYXBTdGF0ZV0pO1xuXG4gICAgaWYgKCFpc0VuYWJsZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWFwTmF2aWdhdGlvbkNvbnRyb2wgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbFwiPlxuICAgICAgICA8TmF2QnV0dG9uR3JvdXA+XG4gICAgICAgICAgPE5hdkJ1dHRvblxuICAgICAgICAgICAgJGlzRmlyc3RcbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21Jbn1cbiAgICAgICAgICAgIHRpdGxlPVwiWm9vbSBpblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtbmF2aWdhdGlvbi1jb250cm9sX196b29tLWluXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIgNC41djE1bTcuNS03LjVoLTE1XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvTmF2QnV0dG9uPlxuICAgICAgICAgIDxOYXZCdXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVpvb21PdXR9XG4gICAgICAgICAgICB0aXRsZT1cIlpvb20gb3V0XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cIm1hcC1uYXZpZ2F0aW9uLWNvbnRyb2xfX3pvb20tb3V0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgd2lkdGg9XCIxOFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjE4XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuNSAxMmgtMTVcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9OYXZCdXR0b24+XG4gICAgICAgIDwvTmF2QnV0dG9uR3JvdXA+XG4gICAgICAgIHttYXBTdGF0ZS5kcmFnUm90YXRlID8gKFxuICAgICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVDb21wYXNzQ2xpY2t9XG4gICAgICAgICAgICB0aXRsZT1cIlJlc2V0IGJlYXJpbmcvcGl0Y2hcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwLW5hdmlnYXRpb24tY29udHJvbF9fY29tcGFzc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e3RyYW5zZm9ybTogYHJvdGF0ZVgoJHtyb3RhdGlvbi5waXRjaH1kZWcpYH19PlxuICAgICAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPlxuICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT17YHJvdGF0ZSgke3JvdGF0aW9uLmJlYXJpbmd9LDgsOClgfT5cbiAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNSA4LjAwMDA2TDcuOTk5ODcgMEwxMC45OTk3IDguMDAwMDZINVpcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPXt0aGVtZS5ub3RpZmljYXRpb25Db2xvcnM/LmVycm9yIHx8ICcjRjA1QzQ0J31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjAwMDIgNy45OTk5NEw4LjAwMDM4IDE2TDUuMDAwNTEgNy45OTk5NEwxMS4wMDAyIDcuOTk5OTRaXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L01hcENvbnRyb2xCdXR0b24+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRNYXBOYXZpZ2F0aW9uQ29udHJvbD5cbiAgICApO1xuICB9O1xuXG4gIE1hcE5hdmlnYXRpb25Db250cm9sLmRpc3BsYXlOYW1lID0gJ01hcE5hdmlnYXRpb25Db250cm9sJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTWFwTmF2aWdhdGlvbkNvbnRyb2wpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFHQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBc0QsSUFBQUssZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQVR0RDtBQUNB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LEVBQUMsVUFBVTtNQUNoQkYsU0FBUyxFQUFDO0lBQWtDLGdCQUU1Q3ZGLE1BQUEsWUFBQXNGLGFBQUE7TUFDRUksSUFBSSxFQUFDLE1BQU07TUFDWEMsS0FBSyxFQUFDLElBQUk7TUFDVkMsTUFBTSxFQUFDLElBQUk7TUFDWEMsT0FBTyxFQUFDLFdBQVc7TUFDbkJDLFdBQVcsRUFBQyxHQUFHO01BQ2ZDLE1BQU0sRUFBQztJQUFjLGdCQUVyQi9GLE1BQUEsWUFBQXNGLGFBQUE7TUFBTVUsQ0FBQyxFQUFDO0lBQWMsQ0FBRSxDQUNyQixDQUNJLENBQ0csQ0FBQyxFQUNoQmpELFFBQVEsQ0FBQ2tELFVBQVUsZ0JBQ2xCakcsTUFBQSxZQUFBc0YsYUFBQSxDQUFDakYsa0JBQUEsQ0FBQStCLGdCQUFnQjtNQUNmb0QsT0FBTyxFQUFFZixrQkFBbUI7TUFDNUJnQixLQUFLLEVBQUMscUJBQXFCO01BQzNCRixTQUFTLEVBQUM7SUFBaUMsZ0JBRTNDdkYsTUFBQSxZQUFBc0YsYUFBQTtNQUFLWSxLQUFLLEVBQUU7UUFBQ0MsU0FBUyxhQUFBNUQsTUFBQSxDQUFheUMsUUFBUSxDQUFDRCxLQUFLO01BQU07SUFBRSxnQkFDdkQvRSxNQUFBLFlBQUFzRixhQUFBO01BQUtJLElBQUksRUFBQyxNQUFNO01BQUNDLEtBQUssRUFBQyxJQUFJO01BQUNDLE1BQU0sRUFBQyxJQUFJO01BQUNDLE9BQU8sRUFBQztJQUFXLGdCQUN6RDdGLE1BQUEsWUFBQXNGLGFBQUE7TUFBR2EsU0FBUyxZQUFBNUQsTUFBQSxDQUFZeUMsUUFBUSxDQUFDSCxPQUFPO0lBQVEsZ0JBQzlDN0UsTUFBQSxZQUFBc0YsYUFBQTtNQUNFVSxDQUFDLEVBQUMseUNBQXlDO01BQzNDTixJQUFJLEVBQUUsRUFBQTVDLHFCQUFBLEdBQUFOLEtBQUssQ0FBQzRELGtCQUFrQixjQUFBdEQscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQnVELEtBQUssS0FBSTtJQUFVLENBQ3BELENBQUMsZUFDRnJHLE1BQUEsWUFBQXNGLGFBQUE7TUFDRVUsQ0FBQyxFQUFDLDhEQUE4RDtNQUNoRU4sSUFBSSxFQUFDO0lBQWMsQ0FDcEIsQ0FDQSxDQUNBLENBQ0YsQ0FDVyxDQUFDLEdBQ2pCLElBQ3NCLENBQUM7RUFFakMsQ0FBQztFQUVEOUMsb0JBQW9CLENBQUMwRCxXQUFXLEdBQUcsc0JBQXNCO0VBQ3pELG9CQUFPQyxpQkFBSyxDQUFDQyxJQUFJLENBQUM1RCxvQkFBb0IsQ0FBQztBQUN6QyIsImlnbm9yZUxpc3QiOltdfQ==
|
package/dist/map/map-popover.js
CHANGED
|
@@ -33,7 +33,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
33
33
|
var SELECTABLE_LAYERS = [_constants.LAYER_TYPES.hexagonId, _constants.LAYER_TYPES.geojson];
|
|
34
34
|
var MAX_WIDTH = 500;
|
|
35
35
|
var MAX_HEIGHT = 600;
|
|
36
|
-
var StyledMapPopover = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n max-width: ", "px;\n max-height: ", "px;\n padding: 14px;\n & > * + * {\n margin-top: 6px;\n }\n ", ";\n font-family: ", ";\n font-size: 11px;\n font-weight: 500;\n background-color: ", ";\n color: ", ";\n z-index: 98; /* should be below 99 which is side pane */\n overflow-x: auto;\n box-shadow: ", ";\n\n &:hover {\n background-color: ", ";\n }\n\n .primary-label {\n color: ", ";\n font-size: 10px;\n }\n\n .map-popover__layer-info,\n .coordingate-hover-info {\n & > * + * {\n margin-top: 7px;\n }\n }\n\n table {\n width: auto;\n display: grid;\n border-collapse: collapse;\n row-gap: 5px;\n column-gap: 5px;\n }\n\n .coordingate-hover-info > table {\n grid-template-columns: auto auto auto;\n }\n .map-popover__layer-info > table {\n grid-template-columns: auto auto;\n }\n\n tbody,\n tr {\n display: contents;\n }\n\n td {\n border-color: transparent;\n color: ", ";\n }\n\n td.row__value {\n text-align: right;\n font-weight: 500;\n color: ", ";\n }\n"])), MAX_WIDTH, MAX_HEIGHT, function (props) {
|
|
36
|
+
var StyledMapPopover = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n max-width: ", "px;\n max-height: ", "px;\n padding: 14px;\n & > * + * {\n margin-top: 6px;\n }\n ", ";\n font-family: ", ";\n font-size: 11px;\n font-weight: 500;\n background-color: ", ";\n color: ", ";\n z-index: 98; /* should be below 99 which is side pane */\n overflow-x: auto;\n box-shadow: ", ";\n\n &:hover {\n background-color: ", ";\n }\n\n .primary-label {\n color: ", ";\n font-size: 10px;\n }\n\n .map-popover__layer-info,\n .coordingate-hover-info {\n & > * + * {\n margin-top: 7px;\n }\n }\n\n table {\n width: auto;\n display: grid;\n border-collapse: collapse;\n row-gap: 5px;\n column-gap: 5px;\n }\n\n .coordingate-hover-info > table {\n grid-template-columns: auto auto auto;\n }\n .map-popover__layer-info > table {\n grid-template-columns: auto auto;\n }\n .map-popover__layer-info > table.comparing {\n grid-template-columns: auto auto auto;\n }\n\n tbody,\n tr {\n display: contents;\n }\n\n td {\n border-color: transparent;\n color: ", ";\n }\n\n td.row__value {\n text-align: right;\n font-weight: 500;\n color: ", ";\n }\n"])), MAX_WIDTH, MAX_HEIGHT, function (props) {
|
|
37
37
|
return props.theme.scrollBar;
|
|
38
38
|
}, function (props) {
|
|
39
39
|
return props.theme.fontFamily;
|
|
@@ -187,4 +187,4 @@ function MapPopoverFactory(MapPopoverContent) {
|
|
|
187
187
|
};
|
|
188
188
|
return (0, _reactIntl.injectIntl)(MapPopover);
|
|
189
189
|
}
|
|
190
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFwUG9wb3ZlckNvbnRlbnQiLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2xheWVycyIsIl9jb21tb25VdGlscyIsIl9jb25zdGFudHMiLCJfcmVkdWNlcnMiLCJfcmVhY3QyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlNFTEVDVEFCTEVfTEFZRVJTIiwiTEFZRVJfVFlQRVMiLCJoZXhhZ29uSWQiLCJnZW9qc29uIiwiTUFYX1dJRFRIIiwiTUFYX0hFSUdIVCIsIlN0eWxlZE1hcFBvcG92ZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzY3JvbGxCYXIiLCJmb250RmFtaWx5IiwicGFuZWxCYWNrZ3JvdW5kIiwidGV4dENvbG9yIiwicGFuZWxCb3hTaGFkb3ciLCJjb25jYXQiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwidGV4dENvbG9ySGwiLCJQaW5uZWRCdXR0b25zIiwiUG9wb3ZlckNvbnRlbnQiLCJTdHlsZWRJY29uIiwiYWN0aXZlQ29sb3IiLCJsaW5rQnRuQ29sb3IiLCJTdHlsZWRTZWxlY3RHZW9tZXRyeSIsIk1hcFBvcG92ZXJGYWN0b3J5IiwiZGVwcyIsIk1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSIsImdldFNlbGVjdGVkRmVhdHVyZSIsImxheWVySG92ZXJQcm9wIiwiX2xheWVyJGNvbmZpZyIsIl9sYXllciRjb25maWcyIiwibGF5ZXIiLCJmaWVsZElkeCIsInNlbGVjdGVkRmVhdHVyZSIsInR5cGUiLCJjb25maWciLCJjb2x1bW5zIiwiaGV4X2lkIiwiaWRUb1BvbHlnb25HZW8iLCJpZCIsImdldExheWVySG92ZXJQcm9wVmFsdWUiLCJkYXRhIiwiaXNDbG9zZWQiLCJwYXJzZUdlb0pzb25SYXdGZWF0dXJlIiwiZ2VuZXJhdGVIYXNoSWQiLCJNYXBQb3BvdmVyQ29udGVudCIsIk1hcFBvcG92ZXIiLCJfcmVmIiwiX2xheWVySG92ZXJQcm9wJGxheWVyIiwiX2xheWVySG92ZXJQcm9wJGxheWVyMiIsIngiLCJ5IiwiZnJvemVuIiwiY29vcmRpbmF0ZSIsImlzQmFzZSIsInpvb20iLCJjb250YWluZXIiLCJvbkNsb3NlIiwib25TZXRGZWF0dXJlcyIsInNldFNlbGVjdGVkRmVhdHVyZSIsImZlYXR1cmVDb2xsZWN0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInNldEhvcml6b250YWxQbGFjZW1lbnQiLCJtb3ZlTGVmdCIsIm1vdmVSaWdodCIsInJvb3RDb250ZXh0IiwidXNlQ29udGV4dCIsIlJvb3RDb250ZXh0IiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwibWFpbkF4aXMiLCJhbGlnbm1lbnRBeGlzIiwiZmxpcCIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJvblNldFNlbGVjdGVkRmVhdHVyZSIsInVzZUNhbGxiYWNrIiwiY2xpY2tDb250ZXh0IiwibWFwSW5kZXgiLCJyaWdodENsaWNrIiwicG9zaXRpb24iLCJ1cGRhdGVkRmVhdHVyZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmVhdHVyZXMiLCJjb250YWluZXJCb3VuZHMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRQb2ludCIsInVzZUNsaWVudFBvaW50IiwibGVmdCIsInRvcCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY3JlYXRlRWxlbWVudCIsIkZsb2F0aW5nUG9ydGFsIiwicm9vdCIsImN1cnJlbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJyZWYiLCJzZXRGbG9hdGluZyIsInN0eWxlIiwib25DbGljayIsIkFycm93TGVmdCIsIlBpbiIsImhlaWdodCIsIkFycm93UmlnaHQiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaW5jbHVkZXMiLCJDdXJzb3JQb2ludCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1wb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSBmcm9tICcuL21hcC1wb3BvdmVyLWNvbnRlbnQnO1xuaW1wb3J0IHtQaW4sIEFycm93TGVmdCwgQXJyb3dSaWdodCwgQ3Vyc29yUG9pbnR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHtwYXJzZUdlb0pzb25SYXdGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2dlbmVyYXRlSGFzaElkLCBpZFRvUG9seWdvbkdlb30gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtMQVlFUl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcCwgZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge0ZlYXR1cmUsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIEZsb2F0aW5nUG9ydGFsLFxuICBmbGlwLFxuICBvZmZzZXQsXG4gIHVzZUNsaWVudFBvaW50LFxuICB1c2VGbG9hdGluZyxcbiAgdXNlSW50ZXJhY3Rpb25zXG59IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmNvbnN0IFNFTEVDVEFCTEVfTEFZRVJTOiBzdHJpbmdbXSA9IFtMQVlFUl9UWVBFUy5oZXhhZ29uSWQsIExBWUVSX1RZUEVTLmdlb2pzb25dO1xuY29uc3QgTUFYX1dJRFRIID0gNTAwO1xuY29uc3QgTUFYX0hFSUdIVCA9IDYwMDtcblxuY29uc3QgU3R5bGVkTWFwUG9wb3ZlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgbWF4LXdpZHRoOiAke01BWF9XSURUSH1weDtcbiAgbWF4LWhlaWdodDogJHtNQVhfSEVJR0hUfXB4O1xuICBwYWRkaW5nOiAxNHB4O1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNjcm9sbEJhcn07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgei1pbmRleDogOTg7IC8qIHNob3VsZCBiZSBiZWxvdyA5OSB3aGljaCBpcyBzaWRlIHBhbmUgKi9cbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBgJHtwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9YH07XG4gIH1cblxuICAucHJpbWFyeS1sYWJlbCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLnN1Y2Nlc3N9O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gIC5tYXAtcG9wb3Zlcl9fbGF5ZXItaW5mbyxcbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8ge1xuICAgICYgPiAqICsgKiB7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgfVxuICB9XG5cbiAgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICByb3ctZ2FwOiA1cHg7XG4gICAgY29sdW1uLWdhcDogNXB4O1xuICB9XG5cbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0bztcbiAgfVxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gIH1cblxuICB0Ym9keSxcbiAgdHIge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICB9XG5cbiAgdGQge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgfVxuXG4gIHRkLnJvd19fdmFsdWUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5jb25zdCBQaW5uZWRCdXR0b25zID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFBvcG92ZXJDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5rQnRuQ29sb3J9O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRTZWxlY3RHZW9tZXRyeSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5rQnRuQ29sb3J9O1xuICB9XG5gO1xuXG5NYXBQb3BvdmVyRmFjdG9yeS5kZXBzID0gW01hcFBvcG92ZXJDb250ZW50RmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3RlZEZlYXR1cmUobGF5ZXJIb3ZlclByb3A6IExheWVySG92ZXJQcm9wIHwgbnVsbCk6IEZlYXR1cmUgfCBudWxsIHtcbiAgY29uc3QgbGF5ZXIgPSBsYXllckhvdmVyUHJvcD8ubGF5ZXI7XG4gIGxldCBmaWVsZElkeDtcbiAgbGV0IHNlbGVjdGVkRmVhdHVyZTtcbiAgc3dpdGNoIChsYXllcj8udHlwZSkge1xuICAgIGNhc2UgTEFZRVJfVFlQRVMuaGV4YWdvbklkOlxuICAgICAgZmllbGRJZHggPSBsYXllci5jb25maWc/LmNvbHVtbnM/LmhleF9pZD8uZmllbGRJZHg7XG4gICAgICBzZWxlY3RlZEZlYXR1cmUgPSBpZFRvUG9seWdvbkdlbyhcbiAgICAgICAge2lkOiBnZXRMYXllckhvdmVyUHJvcFZhbHVlKGxheWVySG92ZXJQcm9wPy5kYXRhLCBmaWVsZElkeCl9LFxuICAgICAgICB7aXNDbG9zZWQ6IHRydWV9XG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5nZW9qc29uOlxuICAgICAgZmllbGRJZHggPSBsYXllci5jb25maWc/LmNvbHVtbnM/Lmdlb2pzb24/LmZpZWxkSWR4O1xuICAgICAgc2VsZWN0ZWRGZWF0dXJlID0gcGFyc2VHZW9Kc29uUmF3RmVhdHVyZShcbiAgICAgICAgZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZShsYXllckhvdmVyUHJvcD8uZGF0YSwgZmllbGRJZHgpXG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgaWYgKHNlbGVjdGVkRmVhdHVyZSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zZWxlY3RlZEZlYXR1cmUsXG4gICAgICAvLyB1bmlxdWUgaWQgc2hvdWxkIGJlIGFzc2lnbmVkIHRvIGZlYXR1cmVzIGluIHRoZSBlZGl0b3JcbiAgICAgIGlkOiBnZW5lcmF0ZUhhc2hJZCg4KVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTWFwUG9wb3ZlclByb3BzID0ge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZnJvemVuPzogYm9vbGVhbjtcbiAgY29vcmRpbmF0ZTogW251bWJlciwgbnVtYmVyXSB8IGJvb2xlYW47XG4gIGxheWVySG92ZXJQcm9wOiBMYXllckhvdmVyUHJvcCB8IG51bGw7XG4gIGlzQmFzZT86IGJvb2xlYW47XG4gIHpvb206IG51bWJlcjtcbiAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBvbkNsb3NlOiAoKSA9PiB2b2lkO1xuICBvblNldEZlYXR1cmVzOiAoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4gYW55O1xuICBzZXRTZWxlY3RlZEZlYXR1cmU6IChmZWF0dXJlOiBGZWF0dXJlIHwgbnVsbCwgY2xpY2tDb250ZXh0PzogRmVhdHVyZVNlbGVjdGlvbkNvbnRleHQpID0+IGFueTtcbiAgZmVhdHVyZUNvbGxlY3Rpb24/OiB7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGZlYXR1cmVzOiBGZWF0dXJlW107XG4gIH07XG59O1xuXG50eXBlIEludGxQcm9wcyA9IHtcbiAgaW50bDogSW50bFNoYXBlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwUG9wb3ZlckZhY3RvcnkoXG4gIE1hcFBvcG92ZXJDb250ZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBQb3BvdmVyQ29udGVudEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTWFwUG9wb3ZlcjogUmVhY3QuRkM8TWFwUG9wb3ZlclByb3BzICYgSW50bFByb3BzPiA9ICh7XG4gICAgeCxcbiAgICB5LFxuICAgIGZyb3plbixcbiAgICBjb29yZGluYXRlLFxuICAgIGxheWVySG92ZXJQcm9wLFxuICAgIGlzQmFzZSxcbiAgICB6b29tLFxuICAgIGNvbnRhaW5lcixcbiAgICBvbkNsb3NlLFxuICAgIG9uU2V0RmVhdHVyZXMsXG4gICAgc2V0U2VsZWN0ZWRGZWF0dXJlLFxuICAgIGZlYXR1cmVDb2xsZWN0aW9uXG4gIH0pID0+IHtcbiAgICBjb25zdCBbaG9yaXpvbnRhbFBsYWNlbWVudCwgc2V0SG9yaXpvbnRhbFBsYWNlbWVudF0gPSB1c2VTdGF0ZSgnc3RhcnQnKTtcbiAgICBjb25zdCBtb3ZlTGVmdCA9ICgpID0+IHNldEhvcml6b250YWxQbGFjZW1lbnQoJ2VuZCcpO1xuICAgIGNvbnN0IG1vdmVSaWdodCA9ICgpID0+IHNldEhvcml6b250YWxQbGFjZW1lbnQoJ3N0YXJ0Jyk7XG4gICAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VDb250ZXh0KFJvb3RDb250ZXh0KTtcbiAgICBjb25zdCB7cmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXN9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgcGxhY2VtZW50OiBgJHtob3Jpem9udGFsUGxhY2VtZW50ID09ICdlbmQnID8gJ2xlZnQnIDogJ3JpZ2h0J30tc3RhcnRgLFxuICAgICAgbWlkZGxld2FyZTogW29mZnNldCh7bWFpbkF4aXM6IDIwLCBhbGlnbm1lbnRBeGlzOiAyMH0pLCBmbGlwKCldXG4gICAgfSk7XG4gICAgY29uc3Qgb25TZXRTZWxlY3RlZEZlYXR1cmUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjbGlja0NvbnRleHQgPSB7XG4gICAgICAgIG1hcEluZGV4OiAwLFxuICAgICAgICByaWdodENsaWNrOiB0cnVlLFxuICAgICAgICBwb3NpdGlvbjoge3gsIHl9XG4gICAgICB9O1xuICAgICAgY29uc3Qgc2VsZWN0ZWRGZWF0dXJlID0gZ2V0U2VsZWN0ZWRGZWF0dXJlKGxheWVySG92ZXJQcm9wKTtcbiAgICAgIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRGZWF0dXJlKHNlbGVjdGVkRmVhdHVyZSwgY2xpY2tDb250ZXh0KTtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZlYXR1cmVzID0gZmVhdHVyZUNvbGxlY3Rpb25cbiAgICAgICAgICA/IFsuLi5mZWF0dXJlQ29sbGVjdGlvbi5mZWF0dXJlcywgc2VsZWN0ZWRGZWF0dXJlXVxuICAgICAgICAgIDogW3NlbGVjdGVkRmVhdHVyZV07XG4gICAgICAgIG9uU2V0RmVhdHVyZXModXBkYXRlZEZlYXR1cmVzKTtcbiAgICAgIH1cbiAgICAgIG9uQ2xvc2UoKTtcbiAgICB9LCBbb25DbG9zZSwgb25TZXRGZWF0dXJlcywgeCwgeSwgc2V0U2VsZWN0ZWRGZWF0dXJlLCBsYXllckhvdmVyUHJvcCwgZmVhdHVyZUNvbGxlY3Rpb25dKTtcblxuICAgIGNvbnN0IGNvbnRhaW5lckJvdW5kcyA9IGNvbnRhaW5lcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgY2xpZW50UG9pbnQgPSB1c2VDbGllbnRQb2ludChjb250ZXh0LCB7XG4gICAgICB4OiAoY29udGFpbmVyQm91bmRzPy5sZWZ0IHx8IDApICsgeCxcbiAgICAgIHk6IChjb250YWluZXJCb3VuZHM/LnRvcCB8fCAwKSArIHlcbiAgICB9KTtcbiAgICBjb25zdCB7Z2V0RmxvYXRpbmdQcm9wc30gPSB1c2VJbnRlcmFjdGlvbnMoW2NsaWVudFBvaW50XSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZsb2F0aW5nUG9ydGFsIHJvb3Q9e3Jvb3RDb250ZXh0Py5jdXJyZW50fT5cbiAgICAgICAgPFN0eWxlZE1hcFBvcG92ZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtcG9wb3ZlclwiXG4gICAgICAgICAgcmVmPXtyZWZzLnNldEZsb2F0aW5nfVxuICAgICAgICAgIHN0eWxlPXtmbG9hdGluZ1N0eWxlc31cbiAgICAgICAgICB7Li4uZ2V0RmxvYXRpbmdQcm9wcygpfVxuICAgICAgICA+XG4gICAgICAgICAge2Zyb3plbiA/IChcbiAgICAgICAgICAgIDxQaW5uZWRCdXR0b25zPlxuICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ3N0YXJ0JyAmJiAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicG9wb3Zlci1hcnJvdy1sZWZ0XCIgb25DbGljaz17bW92ZUxlZnR9PlxuICAgICAgICAgICAgICAgICAgPEFycm93TGVmdCAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicG9wb3Zlci1waW5cIiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgICAgICAgICA8UGluIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgIHtob3Jpem9udGFsUGxhY2VtZW50ID09PSAnZW5kJyAmJiAoXG4gICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicG9wb3Zlci1hcnJvdy1yaWdodFwiIG9uQ2xpY2s9e21vdmVSaWdodH0+XG4gICAgICAgICAgICAgICAgICA8QXJyb3dSaWdodCAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAge2lzQmFzZSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwcmltYXJ5LWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIm1hcFBvcG92ZXIucHJpbWFyeVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbnM+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPFBvcG92ZXJDb250ZW50PlxuICAgICAgICAgICAgPE1hcFBvcG92ZXJDb250ZW50XG4gICAgICAgICAgICAgIGNvb3JkaW5hdGU9e2Nvb3JkaW5hdGV9XG4gICAgICAgICAgICAgIHpvb209e3pvb219XG4gICAgICAgICAgICAgIGxheWVySG92ZXJQcm9wPXtsYXllckhvdmVyUHJvcH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Qb3BvdmVyQ29udGVudD5cbiAgICAgICAgICB7bGF5ZXJIb3ZlclByb3A/LmxheWVyPy50eXBlICYmXG4gICAgICAgICAgU0VMRUNUQUJMRV9MQVlFUlMuaW5jbHVkZXMobGF5ZXJIb3ZlclByb3A/LmxheWVyPy50eXBlKSAmJlxuICAgICAgICAgIGZyb3plbiA/IChcbiAgICAgICAgICAgIDxTdHlsZWRTZWxlY3RHZW9tZXRyeSBjbGFzc05hbWU9XCJzZWxlY3QtZ2VvbWV0cnlcIiBvbkNsaWNrPXtvblNldFNlbGVjdGVkRmVhdHVyZX0+XG4gICAgICAgICAgICAgIDxDdXJzb3JQb2ludCAvPlxuICAgICAgICAgICAgICBTZWxlY3QgR2VvbWV0cnlcbiAgICAgICAgICAgIDwvU3R5bGVkU2VsZWN0R2VvbWV0cnk+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvU3R5bGVkTWFwUG9wb3Zlcj5cbiAgICAgIDwvRmxvYXRpbmdQb3J0YWw+XG4gICAgKTtcbiAgfTtcbiAgcmV0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
|
|
190
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFwUG9wb3ZlckNvbnRlbnQiLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2xheWVycyIsIl9jb21tb25VdGlscyIsIl9jb25zdGFudHMiLCJfcmVkdWNlcnMiLCJfcmVhY3QyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlNFTEVDVEFCTEVfTEFZRVJTIiwiTEFZRVJfVFlQRVMiLCJoZXhhZ29uSWQiLCJnZW9qc29uIiwiTUFYX1dJRFRIIiwiTUFYX0hFSUdIVCIsIlN0eWxlZE1hcFBvcG92ZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzY3JvbGxCYXIiLCJmb250RmFtaWx5IiwicGFuZWxCYWNrZ3JvdW5kIiwidGV4dENvbG9yIiwicGFuZWxCb3hTaGFkb3ciLCJjb25jYXQiLCJub3RpZmljYXRpb25Db2xvcnMiLCJzdWNjZXNzIiwidGV4dENvbG9ySGwiLCJQaW5uZWRCdXR0b25zIiwiUG9wb3ZlckNvbnRlbnQiLCJTdHlsZWRJY29uIiwiYWN0aXZlQ29sb3IiLCJsaW5rQnRuQ29sb3IiLCJTdHlsZWRTZWxlY3RHZW9tZXRyeSIsIk1hcFBvcG92ZXJGYWN0b3J5IiwiZGVwcyIsIk1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSIsImdldFNlbGVjdGVkRmVhdHVyZSIsImxheWVySG92ZXJQcm9wIiwiX2xheWVyJGNvbmZpZyIsIl9sYXllciRjb25maWcyIiwibGF5ZXIiLCJmaWVsZElkeCIsInNlbGVjdGVkRmVhdHVyZSIsInR5cGUiLCJjb25maWciLCJjb2x1bW5zIiwiaGV4X2lkIiwiaWRUb1BvbHlnb25HZW8iLCJpZCIsImdldExheWVySG92ZXJQcm9wVmFsdWUiLCJkYXRhIiwiaXNDbG9zZWQiLCJwYXJzZUdlb0pzb25SYXdGZWF0dXJlIiwiZ2VuZXJhdGVIYXNoSWQiLCJNYXBQb3BvdmVyQ29udGVudCIsIk1hcFBvcG92ZXIiLCJfcmVmIiwiX2xheWVySG92ZXJQcm9wJGxheWVyIiwiX2xheWVySG92ZXJQcm9wJGxheWVyMiIsIngiLCJ5IiwiZnJvemVuIiwiY29vcmRpbmF0ZSIsImlzQmFzZSIsInpvb20iLCJjb250YWluZXIiLCJvbkNsb3NlIiwib25TZXRGZWF0dXJlcyIsInNldFNlbGVjdGVkRmVhdHVyZSIsImZlYXR1cmVDb2xsZWN0aW9uIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInNldEhvcml6b250YWxQbGFjZW1lbnQiLCJtb3ZlTGVmdCIsIm1vdmVSaWdodCIsInJvb3RDb250ZXh0IiwidXNlQ29udGV4dCIsIlJvb3RDb250ZXh0IiwiX3VzZUZsb2F0aW5nIiwidXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJtaWRkbGV3YXJlIiwib2Zmc2V0IiwibWFpbkF4aXMiLCJhbGlnbm1lbnRBeGlzIiwiZmxpcCIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJvblNldFNlbGVjdGVkRmVhdHVyZSIsInVzZUNhbGxiYWNrIiwiY2xpY2tDb250ZXh0IiwibWFwSW5kZXgiLCJyaWdodENsaWNrIiwicG9zaXRpb24iLCJ1cGRhdGVkRmVhdHVyZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZmVhdHVyZXMiLCJjb250YWluZXJCb3VuZHMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRQb2ludCIsInVzZUNsaWVudFBvaW50IiwibGVmdCIsInRvcCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiY3JlYXRlRWxlbWVudCIsIkZsb2F0aW5nUG9ydGFsIiwicm9vdCIsImN1cnJlbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJyZWYiLCJzZXRGbG9hdGluZyIsInN0eWxlIiwib25DbGljayIsIkFycm93TGVmdCIsIlBpbiIsImhlaWdodCIsIkFycm93UmlnaHQiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaW5jbHVkZXMiLCJDdXJzb3JQb2ludCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1wb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcFBvcG92ZXJDb250ZW50RmFjdG9yeSBmcm9tICcuL21hcC1wb3BvdmVyLWNvbnRlbnQnO1xuaW1wb3J0IHtQaW4sIEFycm93TGVmdCwgQXJyb3dSaWdodCwgQ3Vyc29yUG9pbnR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHtwYXJzZUdlb0pzb25SYXdGZWF0dXJlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2dlbmVyYXRlSGFzaElkLCBpZFRvUG9seWdvbkdlb30gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtMQVlFUl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcCwgZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge0ZlYXR1cmUsIEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIEZsb2F0aW5nUG9ydGFsLFxuICBmbGlwLFxuICBvZmZzZXQsXG4gIHVzZUNsaWVudFBvaW50LFxuICB1c2VGbG9hdGluZyxcbiAgdXNlSW50ZXJhY3Rpb25zXG59IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmNvbnN0IFNFTEVDVEFCTEVfTEFZRVJTOiBzdHJpbmdbXSA9IFtMQVlFUl9UWVBFUy5oZXhhZ29uSWQsIExBWUVSX1RZUEVTLmdlb2pzb25dO1xuY29uc3QgTUFYX1dJRFRIID0gNTAwO1xuY29uc3QgTUFYX0hFSUdIVCA9IDYwMDtcblxuY29uc3QgU3R5bGVkTWFwUG9wb3ZlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgbWF4LXdpZHRoOiAke01BWF9XSURUSH1weDtcbiAgbWF4LWhlaWdodDogJHtNQVhfSEVJR0hUfXB4O1xuICBwYWRkaW5nOiAxNHB4O1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNjcm9sbEJhcn07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgei1pbmRleDogOTg7IC8qIHNob3VsZCBiZSBiZWxvdyA5OSB3aGljaCBpcyBzaWRlIHBhbmUgKi9cbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBgJHtwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9YH07XG4gIH1cblxuICAucHJpbWFyeS1sYWJlbCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLnN1Y2Nlc3N9O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gIC5tYXAtcG9wb3Zlcl9fbGF5ZXItaW5mbyxcbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8ge1xuICAgICYgPiAqICsgKiB7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG4gICAgfVxuICB9XG5cbiAgdGFibGUge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICByb3ctZ2FwOiA1cHg7XG4gICAgY29sdW1uLWdhcDogNXB4O1xuICB9XG5cbiAgLmNvb3JkaW5nYXRlLWhvdmVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gYXV0bztcbiAgfVxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8gPiB0YWJsZSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG87XG4gIH1cbiAgLm1hcC1wb3BvdmVyX19sYXllci1pbmZvID4gdGFibGUuY29tcGFyaW5nIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBhdXRvO1xuICB9XG5cbiAgdGJvZHksXG4gIHRyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cblxuICB0ZC5yb3dfX3ZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgUGlubmVkQnV0dG9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkU2VsZWN0R2VvbWV0cnkgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yfTtcbiAgfVxuYDtcblxuTWFwUG9wb3ZlckZhY3RvcnkuZGVwcyA9IFtNYXBQb3BvdmVyQ29udGVudEZhY3RvcnldO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRGZWF0dXJlKGxheWVySG92ZXJQcm9wOiBMYXllckhvdmVyUHJvcCB8IG51bGwpOiBGZWF0dXJlIHwgbnVsbCB7XG4gIGNvbnN0IGxheWVyID0gbGF5ZXJIb3ZlclByb3A/LmxheWVyO1xuICBsZXQgZmllbGRJZHg7XG4gIGxldCBzZWxlY3RlZEZlYXR1cmU7XG4gIHN3aXRjaCAobGF5ZXI/LnR5cGUpIHtcbiAgICBjYXNlIExBWUVSX1RZUEVTLmhleGFnb25JZDpcbiAgICAgIGZpZWxkSWR4ID0gbGF5ZXIuY29uZmlnPy5jb2x1bW5zPy5oZXhfaWQ/LmZpZWxkSWR4O1xuICAgICAgc2VsZWN0ZWRGZWF0dXJlID0gaWRUb1BvbHlnb25HZW8oXG4gICAgICAgIHtpZDogZ2V0TGF5ZXJIb3ZlclByb3BWYWx1ZShsYXllckhvdmVyUHJvcD8uZGF0YSwgZmllbGRJZHgpfSxcbiAgICAgICAge2lzQ2xvc2VkOiB0cnVlfVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTEFZRVJfVFlQRVMuZ2VvanNvbjpcbiAgICAgIGZpZWxkSWR4ID0gbGF5ZXIuY29uZmlnPy5jb2x1bW5zPy5nZW9qc29uPy5maWVsZElkeDtcbiAgICAgIHNlbGVjdGVkRmVhdHVyZSA9IHBhcnNlR2VvSnNvblJhd0ZlYXR1cmUoXG4gICAgICAgIGdldExheWVySG92ZXJQcm9wVmFsdWUobGF5ZXJIb3ZlclByb3A/LmRhdGEsIGZpZWxkSWR4KVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGlmIChzZWxlY3RlZEZlYXR1cmUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2VsZWN0ZWRGZWF0dXJlLFxuICAgICAgLy8gdW5pcXVlIGlkIHNob3VsZCBiZSBhc3NpZ25lZCB0byBmZWF0dXJlcyBpbiB0aGUgZWRpdG9yXG4gICAgICBpZDogZ2VuZXJhdGVIYXNoSWQoOClcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIE1hcFBvcG92ZXJQcm9wcyA9IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIGZyb3plbj86IGJvb2xlYW47XG4gIGNvb3JkaW5hdGU6IFtudW1iZXIsIG51bWJlcl0gfCBib29sZWFuO1xuICBsYXllckhvdmVyUHJvcDogTGF5ZXJIb3ZlclByb3AgfCBudWxsO1xuICBpc0Jhc2U/OiBib29sZWFuO1xuICB6b29tOiBudW1iZXI7XG4gIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbiAgb25TZXRGZWF0dXJlczogKGZlYXR1cmVzOiBGZWF0dXJlW10pID0+IGFueTtcbiAgc2V0U2VsZWN0ZWRGZWF0dXJlOiAoZmVhdHVyZTogRmVhdHVyZSB8IG51bGwsIGNsaWNrQ29udGV4dD86IEZlYXR1cmVTZWxlY3Rpb25Db250ZXh0KSA9PiBhbnk7XG4gIGZlYXR1cmVDb2xsZWN0aW9uPzoge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICB9O1xufTtcblxudHlwZSBJbnRsUHJvcHMgPSB7XG4gIGludGw6IEludGxTaGFwZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcFBvcG92ZXJGYWN0b3J5KFxuICBNYXBQb3BvdmVyQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwUG9wb3ZlckNvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE1hcFBvcG92ZXI6IFJlYWN0LkZDPE1hcFBvcG92ZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIHgsXG4gICAgeSxcbiAgICBmcm96ZW4sXG4gICAgY29vcmRpbmF0ZSxcbiAgICBsYXllckhvdmVyUHJvcCxcbiAgICBpc0Jhc2UsXG4gICAgem9vbSxcbiAgICBjb250YWluZXIsXG4gICAgb25DbG9zZSxcbiAgICBvblNldEZlYXR1cmVzLFxuICAgIHNldFNlbGVjdGVkRmVhdHVyZSxcbiAgICBmZWF0dXJlQ29sbGVjdGlvblxuICB9KSA9PiB7XG4gICAgY29uc3QgW2hvcml6b250YWxQbGFjZW1lbnQsIHNldEhvcml6b250YWxQbGFjZW1lbnRdID0gdXNlU3RhdGUoJ3N0YXJ0Jyk7XG4gICAgY29uc3QgbW92ZUxlZnQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdlbmQnKTtcbiAgICBjb25zdCBtb3ZlUmlnaHQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdzdGFydCcpO1xuICAgIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG4gICAgY29uc3Qge3JlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgIHBsYWNlbWVudDogYCR7aG9yaXpvbnRhbFBsYWNlbWVudCA9PSAnZW5kJyA/ICdsZWZ0JyA6ICdyaWdodCd9LXN0YXJ0YCxcbiAgICAgIG1pZGRsZXdhcmU6IFtvZmZzZXQoe21haW5BeGlzOiAyMCwgYWxpZ25tZW50QXhpczogMjB9KSwgZmxpcCgpXVxuICAgIH0pO1xuICAgIGNvbnN0IG9uU2V0U2VsZWN0ZWRGZWF0dXJlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgY29uc3QgY2xpY2tDb250ZXh0ID0ge1xuICAgICAgICBtYXBJbmRleDogMCxcbiAgICAgICAgcmlnaHRDbGljazogdHJ1ZSxcbiAgICAgICAgcG9zaXRpb246IHt4LCB5fVxuICAgICAgfTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRmVhdHVyZSA9IGdldFNlbGVjdGVkRmVhdHVyZShsYXllckhvdmVyUHJvcCk7XG4gICAgICBpZiAoc2VsZWN0ZWRGZWF0dXJlKSB7XG4gICAgICAgIHNldFNlbGVjdGVkRmVhdHVyZShzZWxlY3RlZEZlYXR1cmUsIGNsaWNrQ29udGV4dCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGZWF0dXJlcyA9IGZlYXR1cmVDb2xsZWN0aW9uXG4gICAgICAgICAgPyBbLi4uZmVhdHVyZUNvbGxlY3Rpb24uZmVhdHVyZXMsIHNlbGVjdGVkRmVhdHVyZV1cbiAgICAgICAgICA6IFtzZWxlY3RlZEZlYXR1cmVdO1xuICAgICAgICBvblNldEZlYXR1cmVzKHVwZGF0ZWRGZWF0dXJlcyk7XG4gICAgICB9XG4gICAgICBvbkNsb3NlKCk7XG4gICAgfSwgW29uQ2xvc2UsIG9uU2V0RmVhdHVyZXMsIHgsIHksIHNldFNlbGVjdGVkRmVhdHVyZSwgbGF5ZXJIb3ZlclByb3AsIGZlYXR1cmVDb2xsZWN0aW9uXSk7XG5cbiAgICBjb25zdCBjb250YWluZXJCb3VuZHMgPSBjb250YWluZXI/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNsaWVudFBvaW50ID0gdXNlQ2xpZW50UG9pbnQoY29udGV4dCwge1xuICAgICAgeDogKGNvbnRhaW5lckJvdW5kcz8ubGVmdCB8fCAwKSArIHgsXG4gICAgICB5OiAoY29udGFpbmVyQm91bmRzPy50b3AgfHwgMCkgKyB5XG4gICAgfSk7XG4gICAgY29uc3Qge2dldEZsb2F0aW5nUHJvcHN9ID0gdXNlSW50ZXJhY3Rpb25zKFtjbGllbnRQb2ludF0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxGbG9hdGluZ1BvcnRhbCByb290PXtyb290Q29udGV4dD8uY3VycmVudH0+XG4gICAgICAgIDxTdHlsZWRNYXBQb3BvdmVyXG4gICAgICAgICAgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJcIlxuICAgICAgICAgIHJlZj17cmVmcy5zZXRGbG9hdGluZ31cbiAgICAgICAgICBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9XG4gICAgICAgICAgey4uLmdldEZsb2F0aW5nUHJvcHMoKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtmcm96ZW4gPyAoXG4gICAgICAgICAgICA8UGlubmVkQnV0dG9ucz5cbiAgICAgICAgICAgICAge2hvcml6b250YWxQbGFjZW1lbnQgPT09ICdzdGFydCcgJiYgKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItYXJyb3ctbGVmdFwiIG9uQ2xpY2s9e21vdmVMZWZ0fT5cbiAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItcGluXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgICAgICAgPFBpbiBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRJY29uPlxuICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ2VuZCcgJiYgKFxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItYXJyb3ctcmlnaHRcIiBvbkNsaWNrPXttb3ZlUmlnaHR9PlxuICAgICAgICAgICAgICAgICAgPEFycm93UmlnaHQgLz5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpc0Jhc2UgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJpbWFyeS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJtYXBQb3BvdmVyLnByaW1hcnlcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9QaW5uZWRCdXR0b25zPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxQb3BvdmVyQ29udGVudD5cbiAgICAgICAgICAgIDxNYXBQb3BvdmVyQ29udGVudFxuICAgICAgICAgICAgICBjb29yZGluYXRlPXtjb29yZGluYXRlfVxuICAgICAgICAgICAgICB6b29tPXt6b29tfVxuICAgICAgICAgICAgICBsYXllckhvdmVyUHJvcD17bGF5ZXJIb3ZlclByb3B9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvUG9wb3ZlckNvbnRlbnQ+XG4gICAgICAgICAge2xheWVySG92ZXJQcm9wPy5sYXllcj8udHlwZSAmJlxuICAgICAgICAgIFNFTEVDVEFCTEVfTEFZRVJTLmluY2x1ZGVzKGxheWVySG92ZXJQcm9wPy5sYXllcj8udHlwZSkgJiZcbiAgICAgICAgICBmcm96ZW4gPyAoXG4gICAgICAgICAgICA8U3R5bGVkU2VsZWN0R2VvbWV0cnkgY2xhc3NOYW1lPVwic2VsZWN0LWdlb21ldHJ5XCIgb25DbGljaz17b25TZXRTZWxlY3RlZEZlYXR1cmV9PlxuICAgICAgICAgICAgICA8Q3Vyc29yUG9pbnQgLz5cbiAgICAgICAgICAgICAgU2VsZWN0IEdlb21ldHJ5XG4gICAgICAgICAgICA8L1N0eWxlZFNlbGVjdEdlb21ldHJ5PlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L1N0eWxlZE1hcFBvcG92ZXI+XG4gICAgICA8L0Zsb2F0aW5nUG9ydGFsPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBpbmplY3RJbnRsKE1hcFBvcG92ZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBTzRCLElBQUFhLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUF0QjVCO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQXBCLHdCQUFBb0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEs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
|