@kepler.gl/components 3.2.4 → 3.2.6

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.
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SetExportImageSettingUpdaterAction } from '@kepler.gl/actions';
3
- import { ExportImage } from '@kepler.gl/types';
3
+ import type { ExportImage } from '@kepler.gl/types';
4
4
  import { IntlShape } from 'react-intl';
5
5
  export interface ExportImageModalProps {
6
6
  exportImage: ExportImage;
@@ -19,7 +19,12 @@ var _templateObject; // SPDX-License-Identifier: MIT
19
19
  // Copyright contributors to the kepler.gl project
20
20
  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); }
21
21
  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; }
22
- var ImageOptionList = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n width: 250px;\n\n .image-option-section {\n .image-option-section-title {\n font-weight: 500;\n font-size: 14px;\n }\n }\n\n .button-list {\n display: flex;\n flex-direction: row;\n padding: 8px 0px;\n }\n\n input {\n margin-right: 8px;\n }\n"])));
22
+ var ImageOptionList = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 250px;\n\n .image-option-section {\n .image-option-section-title {\n font-weight: 500;\n font-size: 14px;\n }\n }\n\n .button-list {\n display: flex;\n flex-direction: row;\n padding: 8px 0px;\n flex-wrap: wrap;\n gap: 4px;\n }\n\n .resolution-dropdown {\n padding: 0px;\n margin-top: 8px;\n margin-bottom: 8px;\n\n select {\n width: 100%;\n padding: 6px 12px;\n border: 1px solid #d3d3d3;\n border-radius: 2px;\n font-size: 14px;\n cursor: pointer;\n background-color: white;\n font-family: inherit;\n appearance: none;\n height: 32px;\n\n &:hover {\n border-color: #999;\n background-color: #f9f9f9;\n }\n\n &:focus {\n outline: none;\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.1);\n }\n\n &:disabled {\n background-color: #f5f5f5;\n color: #999;\n cursor: not-allowed;\n }\n }\n }\n\n input {\n margin-right: 8px;\n }\n"])));
23
+
24
+ // Define resolution options for each ratio as constants
25
+ var SCREEN_RESOLUTION_OPTIONS = [_constants.OneXResolutionOption, _constants.TwoXResolutionOption];
26
+ var FOUR_BY_THREE_RESOLUTION_OPTIONS = [_constants.Resolution1024x768Option, _constants.Resolution1280x960Option, _constants.Resolution1600x1200Option, _constants.Resolution1920x1440Option];
27
+ var SIXTEEN_BY_NINE_RESOLUTION_OPTIONS = [_constants.Resolution1280x720Option, _constants.Resolution1600x900Option, _constants.Resolution1920x1080Option, _constants.Resolution2560x1440Option];
23
28
  var ExportImageModalFactory = function ExportImageModalFactory() {
24
29
  var ExportImageModal = function ExportImageModal(_ref) {
25
30
  var mapW = _ref.mapW,
@@ -31,6 +36,19 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
31
36
  var legend = exportImage.legend,
32
37
  ratio = exportImage.ratio,
33
38
  resolution = exportImage.resolution;
39
+
40
+ // Filter resolutions based on selected ratio
41
+ var filteredResolutions = (0, _react.useMemo)(function () {
42
+ if (ratio === _constants.EXPORT_IMG_RATIOS.SCREEN) {
43
+ return SCREEN_RESOLUTION_OPTIONS;
44
+ } else if (ratio === _constants.EXPORT_IMG_RATIOS.FOUR_BY_THREE) {
45
+ return FOUR_BY_THREE_RESOLUTION_OPTIONS;
46
+ } else if (ratio === _constants.EXPORT_IMG_RATIOS.SIXTEEN_BY_NINE) {
47
+ return SIXTEEN_BY_NINE_RESOLUTION_OPTIONS;
48
+ }
49
+ // For CUSTOM, don't show resolution options
50
+ return [];
51
+ }, [ratio]);
34
52
  (0, _react.useEffect)(function () {
35
53
  onUpdateImageSetting({
36
54
  exporting: true
@@ -45,6 +63,21 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
45
63
  });
46
64
  }
47
65
  }, [mapH, mapW, exportImage, onUpdateImageSetting]);
66
+ (0, _react.useEffect)(function () {
67
+ // Keep resolution in sync with the selected ratio and available options.
68
+ // If the current resolution is not available for this ratio, reset it to the first option.
69
+ if (!filteredResolutions || !filteredResolutions.length) {
70
+ return;
71
+ }
72
+ var isValidResolution = Boolean(resolution) && filteredResolutions.some(function (op) {
73
+ return op.id === resolution;
74
+ });
75
+ if (!isValidResolution) {
76
+ onUpdateImageSetting({
77
+ resolution: filteredResolutions[0].id
78
+ });
79
+ }
80
+ }, [ratio, filteredResolutions, resolution, onUpdateImageSetting]);
48
81
  return /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledModalContent, {
49
82
  className: "export-image-modal"
50
83
  }, /*#__PURE__*/_react["default"].createElement(ImageOptionList, null, /*#__PURE__*/_react["default"].createElement("div", {
@@ -72,18 +105,19 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
72
105
  }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
73
106
  id: op.label
74
107
  }), ratio === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents2.CheckMark, null));
75
- }))), /*#__PURE__*/_react["default"].createElement("div", {
108
+ }))), ratio !== _constants.EXPORT_IMG_RATIOS.CUSTOM && /*#__PURE__*/_react["default"].createElement("div", {
76
109
  className: "image-option-section"
77
110
  }, /*#__PURE__*/_react["default"].createElement("div", {
78
- className: "image-option-section-title"
111
+ className: "image-option-section-title",
112
+ id: "export-image-modal__resolution-title"
79
113
  }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
80
114
  id: 'modal.exportImage.resolutionTitle'
81
115
  })), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
82
116
  id: 'modal.exportImage.resolutionDescription'
83
- }), /*#__PURE__*/_react["default"].createElement("div", {
117
+ }), ratio === _constants.EXPORT_IMG_RATIOS.SCREEN ? /*#__PURE__*/_react["default"].createElement("div", {
84
118
  className: "button-list",
85
119
  id: "export-image-modal__option_resolution"
86
- }, _constants.EXPORT_IMG_RESOLUTION_OPTIONS.map(function (op) {
120
+ }, filteredResolutions.map(function (op) {
87
121
  return /*#__PURE__*/_react["default"].createElement(_styledComponents2.SelectionButton, {
88
122
  key: op.id,
89
123
  selected: resolution === op.id,
@@ -93,7 +127,41 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
93
127
  });
94
128
  }
95
129
  }, op.label, resolution === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents2.CheckMark, null));
96
- }))), /*#__PURE__*/_react["default"].createElement("div", {
130
+ })) : /*#__PURE__*/_react["default"].createElement("div", {
131
+ className: "resolution-dropdown",
132
+ id: "export-image-modal__option_resolution"
133
+ }, /*#__PURE__*/_react["default"].createElement("select", {
134
+ value: resolution || '',
135
+ "aria-labelledby": "export-image-modal__resolution-title",
136
+ onChange: function onChange(e) {
137
+ var value = e.target.value;
138
+ // Only update if a valid resolution is selected
139
+ if (value && filteredResolutions.some(function (op) {
140
+ return op.id === value;
141
+ })) {
142
+ // Type-safe: we've verified the value exists in filteredResolutions
143
+ onUpdateImageSetting({
144
+ resolution: value
145
+ });
146
+ }
147
+ // If empty string selected, optionally reset to first available resolution
148
+ else if (!value && filteredResolutions.length > 0) {
149
+ onUpdateImageSetting({
150
+ resolution: filteredResolutions[0].id
151
+ });
152
+ }
153
+ }
154
+ }, /*#__PURE__*/_react["default"].createElement("option", {
155
+ value: ""
156
+ }, intl.formatMessage({
157
+ id: 'modal.exportImage.resolutionPlaceholder'
158
+ })), filteredResolutions.map(function (op) {
159
+ return /*#__PURE__*/_react["default"].createElement("option", {
160
+ key: op.id,
161
+ value: op.id,
162
+ disabled: !op.available
163
+ }, op.label);
164
+ })))), /*#__PURE__*/_react["default"].createElement("div", {
97
165
  className: "image-option-section"
98
166
  }, /*#__PURE__*/_react["default"].createElement("div", {
99
167
  className: "image-option-section-title"
@@ -118,4 +186,4 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
118
186
  return (0, _reactIntl.injectIntl)(ExportImageModal);
119
187
  };
120
188
  var _default = exports["default"] = ExportImageModalFactory;
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJ1c2VFZmZlY3QiLCJleHBvcnRpbmciLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVkTW9kYWxDb250ZW50IiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiRVhQT1JUX0lNR19SQVRJT19PUFRJT05TIiwiZmlsdGVyIiwib3AiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TIiwiYXZhaWxhYmxlIiwidHlwZSIsImNoZWNrZWQiLCJmb3JtYXRNZXNzYWdlIiwib25DaGFuZ2UiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW1hZ2VQcmV2aWV3IGZyb20gJy4uL2NvbW1vbi9pbWFnZS1wcmV2aWV3JztcbmltcG9ydCB7U2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuaW1wb3J0IHtFWFBPUlRfSU1HX1JBVElPX09QVElPTlMsIEVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0V4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkTW9kYWxDb250ZW50LCBTZWxlY3Rpb25CdXR0b24sIENoZWNrTWFya30gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuY29uc3QgSW1hZ2VPcHRpb25MaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIHdpZHRoOiAyNTBweDtcblxuICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24ge1xuICAgIC5pbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24tbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0SW1hZ2VNb2RhbFByb3BzIHtcbiAgZXhwb3J0SW1hZ2U6IEV4cG9ydEltYWdlO1xuICBtYXBXOiBudW1iZXI7XG4gIG1hcEg6IG51bWJlcjtcbiAgb25VcGRhdGVJbWFnZVNldHRpbmc6IChwYXlsb2FkOiBTZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ10pID0+IHZvaWQ7XG4gIGNsZWFudXBFeHBvcnRJbWFnZTogKCkgPT4gdm9pZDtcbiAgaW50bDogSW50bFNoYXBlO1xufVxuXG5jb25zdCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgRXhwb3J0SW1hZ2VNb2RhbDogUmVhY3QuRkM8RXhwb3J0SW1hZ2VNb2RhbFByb3BzPiA9ICh7XG4gICAgbWFwVyxcbiAgICBtYXBILFxuICAgIGV4cG9ydEltYWdlLFxuICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nLFxuICAgIGNsZWFudXBFeHBvcnRJbWFnZSxcbiAgICBpbnRsXG4gIH0pID0+IHtcbiAgICBjb25zdCB7bGVnZW5kLCByYXRpbywgcmVzb2x1dGlvbn0gPSBleHBvcnRJbWFnZTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgIGV4cG9ydGluZzogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2xlYW51cEV4cG9ydEltYWdlO1xuICAgIH0sIFtvblVwZGF0ZUltYWdlU2V0dGluZywgY2xlYW51cEV4cG9ydEltYWdlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKG1hcEggIT09IGV4cG9ydEltYWdlLm1hcEggfHwgbWFwVyAhPT0gZXhwb3J0SW1hZ2UubWFwVykge1xuICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgICAgbWFwSCxcbiAgICAgICAgICBtYXBXXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sIFttYXBILCBtYXBXLCBleHBvcnRJbWFnZSwgb25VcGRhdGVJbWFnZVNldHRpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTW9kYWxDb250ZW50IGNsYXNzTmFtZT1cImV4cG9ydC1pbWFnZS1tb2RhbFwiPlxuICAgICAgICA8SW1hZ2VPcHRpb25MaXN0PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yYXRpb1RpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yYXRpb0Rlc2NyaXB0aW9uJ30gLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3JhdGlvXCI+XG4gICAgICAgICAgICAgIHtFWFBPUlRfSU1HX1JBVElPX09QVElPTlMuZmlsdGVyKG9wID0+ICFvcC5oaWRkZW4pLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdGlvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtvcC5pZH1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyYXRpbyA9PT0gb3AuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmF0aW86IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e29wLmxhYmVsfSAvPlxuICAgICAgICAgICAgICAgICAge3JhdGlvID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yZXNvbHV0aW9uVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbi1saXN0XCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yZXNvbHV0aW9uXCI+XG4gICAgICAgICAgICAgIHtFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUy5tYXAob3AgPT4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGtleT17b3AuaWR9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17cmVzb2x1dGlvbiA9PT0gb3AuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25VcGRhdGVJbWFnZVNldHRpbmcoe3Jlc29sdXRpb246IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge29wLmxhYmVsfVxuICAgICAgICAgICAgICAgICAge3Jlc29sdXRpb24gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLm1hcExlZ2VuZFRpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cImFkZC1tYXAtbGVnZW5kXCJcbiAgICAgICAgICAgICAgY2hlY2tlZD17bGVnZW5kfVxuICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmV4cG9ydEltYWdlLm1hcExlZ2VuZEFkZCd9KX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtsZWdlbmQ6ICFsZWdlbmR9KX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvSW1hZ2VPcHRpb25MaXN0PlxuICAgICAgICA8SW1hZ2VQcmV2aWV3IGV4cG9ydEltYWdlPXtleHBvcnRJbWFnZX0gLz5cbiAgICAgIDwvU3R5bGVkTW9kYWxDb250ZW50PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoRXhwb3J0SW1hZ2VNb2RhbCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFBeUQsSUFBQVMsZUFBQSxFQWJ6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FB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
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU0NSRUVOX1JFU09MVVRJT05fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMDI0eDc2OE9wdGlvbiIsIlJlc29sdXRpb24xMjgweDk2ME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDEyMDBPcHRpb24iLCJSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uIiwiU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMjgweDcyME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDkwME9wdGlvbiIsIlJlc29sdXRpb24xOTIweDEwODBPcHRpb24iLCJSZXNvbHV0aW9uMjU2MHgxNDQwT3B0aW9uIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJmaWx0ZXJlZFJlc29sdXRpb25zIiwidXNlTWVtbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiU0NSRUVOIiwiRk9VUl9CWV9USFJFRSIsIlNJWFRFRU5fQllfTklORSIsInVzZUVmZmVjdCIsImV4cG9ydGluZyIsImxlbmd0aCIsImlzVmFsaWRSZXNvbHV0aW9uIiwiQm9vbGVhbiIsInNvbWUiLCJvcCIsImlkIiwiY3JlYXRlRWxlbWVudCIsIlN0eWxlZE1vZGFsQ29udGVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJFWFBPUlRfSU1HX1JBVElPX09QVElPTlMiLCJmaWx0ZXIiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkNVU1RPTSIsImF2YWlsYWJsZSIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJmb3JtYXRNZXNzYWdlIiwiZGlzYWJsZWQiLCJ0eXBlIiwiY2hlY2tlZCIsImluamVjdEludGwiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJbWFnZVByZXZpZXcgZnJvbSAnLi4vY29tbW9uL2ltYWdlLXByZXZpZXcnO1xuaW1wb3J0IHtTZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbXBvcnQge1xuICBFWFBPUlRfSU1HX1JBVElPX09QVElPTlMsXG4gIEVYUE9SVF9JTUdfUkFUSU9TLFxuICBPbmVYUmVzb2x1dGlvbk9wdGlvbixcbiAgVHdvWFJlc29sdXRpb25PcHRpb24sXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7RXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge0V4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkTW9kYWxDb250ZW50LCBTZWxlY3Rpb25CdXR0b24sIENoZWNrTWFya30gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuY29uc3QgSW1hZ2VPcHRpb25MaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICB3aWR0aDogMjUwcHg7XG5cbiAgLmltYWdlLW9wdGlvbi1zZWN0aW9uIHtcbiAgICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgfVxuXG4gIC5yZXNvbHV0aW9uLWRyb3Bkb3duIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA2NmNjO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuYDtcblxuLy8gRGVmaW5lIHJlc29sdXRpb24gb3B0aW9ucyBmb3IgZWFjaCByYXRpbyBhcyBjb25zdGFudHNcbmNvbnN0IFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlMgPSBbT25lWFJlc29sdXRpb25PcHRpb24sIFR3b1hSZXNvbHV0aW9uT3B0aW9uXTtcblxuY29uc3QgRk9VUl9CWV9USFJFRV9SRVNPTFVUSU9OX09QVElPTlMgPSBbXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uXG5dO1xuXG5jb25zdCBTSVhURUVOX0JZX05JTkVfUkVTT0xVVElPTl9PUFRJT05TID0gW1xuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRJbWFnZU1vZGFsUHJvcHMge1xuICBleHBvcnRJbWFnZTogRXhwb3J0SW1hZ2U7XG4gIG1hcFc6IG51bWJlcjtcbiAgbWFwSDogbnVtYmVyO1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogKHBheWxvYWQ6IFNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXSkgPT4gdm9pZDtcbiAgY2xlYW51cEV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmNvbnN0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBFeHBvcnRJbWFnZU1vZGFsOiBSZWFjdC5GQzxFeHBvcnRJbWFnZU1vZGFsUHJvcHM+ID0gKHtcbiAgICBtYXBXLFxuICAgIG1hcEgsXG4gICAgZXhwb3J0SW1hZ2UsXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlLFxuICAgIGludGxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtsZWdlbmQsIHJhdGlvLCByZXNvbHV0aW9ufSA9IGV4cG9ydEltYWdlO1xuXG4gICAgLy8gRmlsdGVyIHJlc29sdXRpb25zIGJhc2VkIG9uIHNlbGVjdGVkIHJhdGlvXG4gICAgY29uc3QgZmlsdGVyZWRSZXNvbHV0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5TQ1JFRU4pIHtcbiAgICAgICAgcmV0dXJuIFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlM7XG4gICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5GT1VSX0JZX1RIUkVFKSB7XG4gICAgICAgIHJldHVybiBGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH0gZWxzZSBpZiAocmF0aW8gPT09IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSkge1xuICAgICAgICByZXR1cm4gU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH1cbiAgICAgIC8vIEZvciBDVVNUT00sIGRvbid0IHNob3cgcmVzb2x1dGlvbiBvcHRpb25zXG4gICAgICByZXR1cm4gW107XG4gICAgfSwgW3JhdGlvXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICBleHBvcnRpbmc6IHRydWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsZWFudXBFeHBvcnRJbWFnZTtcbiAgICB9LCBbb25VcGRhdGVJbWFnZVNldHRpbmcsIGNsZWFudXBFeHBvcnRJbWFnZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChtYXBIICE9PSBleHBvcnRJbWFnZS5tYXBIIHx8IG1hcFcgIT09IGV4cG9ydEltYWdlLm1hcFcpIHtcbiAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICAgIG1hcEgsXG4gICAgICAgICAgbWFwV1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBbbWFwSCwgbWFwVywgZXhwb3J0SW1hZ2UsIG9uVXBkYXRlSW1hZ2VTZXR0aW5nXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gS2VlcCByZXNvbHV0aW9uIGluIHN5bmMgd2l0aCB0aGUgc2VsZWN0ZWQgcmF0aW8gYW5kIGF2YWlsYWJsZSBvcHRpb25zLlxuICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHJhdGlvLCByZXNldCBpdCB0byB0aGUgZmlyc3Qgb3B0aW9uLlxuICAgICAgaWYgKCFmaWx0ZXJlZFJlc29sdXRpb25zIHx8ICFmaWx0ZXJlZFJlc29sdXRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVmFsaWRSZXNvbHV0aW9uID1cbiAgICAgICAgQm9vbGVhbihyZXNvbHV0aW9uKSAmJiBmaWx0ZXJlZFJlc29sdXRpb25zLnNvbWUob3AgPT4gb3AuaWQgPT09IHJlc29sdXRpb24pO1xuXG4gICAgICBpZiAoIWlzVmFsaWRSZXNvbHV0aW9uKSB7XG4gICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyZXNvbHV0aW9uOiBmaWx0ZXJlZFJlc29sdXRpb25zWzBdLmlkfSk7XG4gICAgICB9XG4gICAgfSwgW3JhdGlvLCBmaWx0ZXJlZFJlc29sdXRpb25zLCByZXNvbHV0aW9uLCBvblVwZGF0ZUltYWdlU2V0dGluZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwiZXhwb3J0LWltYWdlLW1vZGFsXCI+XG4gICAgICAgIDxJbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvRGVzY3JpcHRpb24nfSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24tbGlzdFwiIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19vcHRpb25fcmF0aW9cIj5cbiAgICAgICAgICAgICAge0VYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUy5maWx0ZXIob3AgPT4gIW9wLmhpZGRlbikubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3JhdGlvID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyYXRpbzogb3AuaWR9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17b3AubGFiZWx9IC8+XG4gICAgICAgICAgICAgICAgICB7cmF0aW8gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3JhdGlvICE9PSBFWFBPUlRfSU1HX1JBVElPUy5DVVNUT00gJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiXG4gICAgICAgICAgICAgICAgIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19yZXNvbHV0aW9uLXRpdGxlXCJcbiAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25UaXRsZSd9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICAgIHtyYXRpbyA9PT0gRVhQT1JUX0lNR19SQVRJT1MuU0NSRUVOID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3Jlc29sdXRpb25cIj5cbiAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZFJlc29sdXRpb25zLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyZXNvbHV0aW9uID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25VcGRhdGVJbWFnZVNldHRpbmcoe3Jlc29sdXRpb246IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7b3AubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAge3Jlc29sdXRpb24gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNvbHV0aW9uLWRyb3Bkb3duXCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yZXNvbHV0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZXNvbHV0aW9uIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX3Jlc29sdXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBhIHZhbGlkIHJlc29sdXRpb24gaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5zb21lKG9wID0+IG9wLmlkID09PSB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUtc2FmZTogd2UndmUgdmVyaWZpZWQgdGhlIHZhbHVlIGV4aXN0cyBpbiBmaWx0ZXJlZFJlc29sdXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogdmFsdWUgYXMgRXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBlbXB0eSBzdHJpbmcgc2VsZWN0ZWQsIG9wdGlvbmFsbHkgcmVzZXQgdG8gZmlyc3QgYXZhaWxhYmxlIHJlc29sdXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghdmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogZmlsdGVyZWRSZXNvbHV0aW9uc1swXS5pZH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmVzb2x1dGlvblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAge2ZpbHRlcmVkUmVzb2x1dGlvbnMubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17b3AuaWR9IHZhbHVlPXtvcC5pZH0gZGlzYWJsZWQ9eyFvcC5hdmFpbGFibGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge29wLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYWRkLW1hcC1sZWdlbmRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtsZWdlbmR9XG4gICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kQWRkJ30pfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25VcGRhdGVJbWFnZVNldHRpbmcoe2xlZ2VuZDogIWxlZ2VuZH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9JbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgIDxJbWFnZVByZXZpZXcgZXhwb3J0SW1hZ2U9e2V4cG9ydEltYWdlfSAvPlxuICAgICAgPC9TdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFeHBvcnRJbWFnZU1vZGFsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQWdCQSxJQUFBSyxrQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQXlELElBQUFTLGVBQUEsRUEzQnpEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVosd0JBQUFZLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUE0QkEsSUFBTVcsZUFBZSxHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUF2QixlQUFBLEtBQUFBLGVBQUEsT0FBQXdCLHVCQUFBLDJtQ0E0RGpDOztBQUVEO0FBQ0EsSUFBTUMseUJBQXlCLEdBQUcsQ0FBQ0MsK0JBQW9CLEVBQUVDLCtCQUFvQixDQUFDO0FBRTlFLElBQU1DLGdDQUFnQyxHQUFHLENBQ3ZDQyxtQ0FBd0IsRUFDeEJDLG1DQUF3QixFQUN4QkMsb0NBQXlCLEVBQ3pCQyxvQ0FBeUIsQ0FDMUI7QUFFRCxJQUFNQyxrQ0FBa0MsR0FBRyxDQUN6Q0MsbUNBQXdCLEVBQ3hCQyxtQ0FBd0IsRUFDeEJDLG9DQUF5QixFQUN6QkMsb0NBQXlCLENBQzFCO0FBV0QsSUFBTUMsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQSxFQUFTO0VBQ3BDLElBQU1DLGdCQUFpRCxHQUFHLFNBQXBEQSxnQkFBaURBLENBQUFDLElBQUEsRUFPakQ7SUFBQSxJQU5KQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtNQUNKQyxJQUFJLEdBQUFGLElBQUEsQ0FBSkUsSUFBSTtNQUNKQyxXQUFXLEdBQUFILElBQUEsQ0FBWEcsV0FBVztNQUNYQyxvQkFBb0IsR0FBQUosSUFBQSxDQUFwQkksb0JBQW9CO01BQ3BCQyxrQkFBa0IsR0FBQUwsSUFBQSxDQUFsQkssa0JBQWtCO01BQ2xCQyxJQUFJLEdBQUFOLElBQUEsQ0FBSk0sSUFBSTtJQUVKLElBQU9DLE1BQU0sR0FBdUJKLFdBQVcsQ0FBeENJLE1BQU07TUFBRUMsS0FBSyxHQUFnQkwsV0FBVyxDQUFoQ0ssS0FBSztNQUFFQyxVQUFVLEdBQUlOLFdBQVcsQ0FBekJNLFVBQVU7O0lBRWhDO0lBQ0EsSUFBTUMsbUJBQW1CLEdBQUcsSUFBQUMsY0FBTyxFQUFDLFlBQU07TUFDeEMsSUFBSUgsS0FBSyxLQUFLSSw0QkFBaUIsQ0FBQ0MsTUFBTSxFQUFFO1FBQ3RDLE9BQU81Qix5QkFBeUI7TUFDbEMsQ0FBQyxNQUFNLElBQUl1QixLQUFLLEtBQUtJLDRCQUFpQixDQUFDRSxhQUFhLEVBQUU7UUFDcEQsT0FBTzFCLGdDQUFnQztNQUN6QyxDQUFDLE1BQU0sSUFBSW9CLEtBQUssS0FBS0ksNEJBQWlCLENBQUNHLGVBQWUsRUFBRTtRQUN0RCxPQUFPdEIsa0NBQWtDO01BQzNDO01BQ0E7TUFDQSxPQUFPLEVBQUU7SUFDWCxDQUFDLEVBQUUsQ0FBQ2UsS0FBSyxDQUFDLENBQUM7SUFFWCxJQUFBUSxnQkFBUyxFQUFDLFlBQU07TUFDZFosb0JBQW9CLENBQUM7UUFDbkJhLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUNGLE9BQU9aLGtCQUFrQjtJQUMzQixDQUFDLEVBQUUsQ0FBQ0Qsb0JBQW9CLEVBQUVDLGtCQUFrQixDQUFDLENBQUM7SUFFOUMsSUFBQVcsZ0JBQVMsRUFBQyxZQUFNO01BQ2QsSUFBSWQsSUFBSSxLQUFLQyxXQUFXLENBQUNELElBQUksSUFBSUQsSUFBSSxLQUFLRSxXQUFXLENBQUNGLElBQUksRUFBRTtRQUMxREcsb0JBQW9CLENBQUM7VUFDbkJGLElBQUksRUFBSkEsSUFBSTtVQUNKRCxJQUFJLEVBQUpBO1FBQ0YsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLEVBQUUsQ0FBQ0MsSUFBSSxFQUFFRCxJQUFJLEVBQUVFLFdBQVcsRUFBRUMsb0JBQW9CLENBQUMsQ0FBQztJQUVuRCxJQUFBWSxnQkFBUyxFQUFDLFlBQU07TUFDZDtNQUNBO01BQ0EsSUFBSSxDQUFDTixtQkFBbUIsSUFBSSxDQUFDQSxtQkFBbUIsQ0FBQ1EsTUFBTSxFQUFFO1FBQ3ZEO01BQ0Y7TUFFQSxJQUFNQyxpQkFBaUIsR0FDckJDLE9BQU8sQ0FBQ1gsVUFBVSxDQUFDLElBQUlDLG1CQUFtQixDQUFDVyxJQUFJLENBQUMsVUFBQUMsRUFBRTtRQUFBLE9BQUlBLEVBQUUsQ0FBQ0MsRUFBRSxLQUFLZCxVQUFVO01BQUEsRUFBQztNQUU3RSxJQUFJLENBQUNVLGlCQUFpQixFQUFFO1FBQ3RCZixvQkFBb0IsQ0FBQztVQUFDSyxVQUFVLEVBQUVDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDYTtRQUFFLENBQUMsQ0FBQztNQUMvRDtJQUNGLENBQUMsRUFBRSxDQUFDZixLQUFLLEVBQUVFLG1CQUFtQixFQUFFRCxVQUFVLEVBQUVMLG9CQUFvQixDQUFDLENBQUM7SUFFbEUsb0JBQ0V2RCxNQUFBLFlBQUEyRSxhQUFBLENBQUNwRSxrQkFBQSxDQUFBcUUsa0JBQWtCO01BQUNDLFNBQVMsRUFBQztJQUFvQixnQkFDaEQ3RSxNQUFBLFlBQUEyRSxhQUFBLENBQUMzQyxlQUFlLHFCQUNkaEMsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBc0IsZ0JBQ25DN0UsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBNEIsZ0JBQ3pDN0UsTUFBQSxZQUFBMkUsYUFBQSxDQUFDakUsYUFBQSxDQUFBb0UsZ0JBQWdCO01BQUNKLEVBQUUsRUFBRTtJQUErQixDQUFFLENBQ3BELENBQUMsZUFDTjFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ2pFLGFBQUEsQ0FBQW9FLGdCQUFnQjtNQUFDSixFQUFFLEVBQUU7SUFBcUMsQ0FBRSxDQUFDLGVBQzlEMUUsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUMsYUFBYTtNQUFDSCxFQUFFLEVBQUM7SUFBa0MsR0FDL0RLLG1DQUF3QixDQUFDQyxNQUFNLENBQUMsVUFBQVAsRUFBRTtNQUFBLE9BQUksQ0FBQ0EsRUFBRSxDQUFDUSxNQUFNO0lBQUEsRUFBQyxDQUFDQyxHQUFHLENBQUMsVUFBQVQsRUFBRTtNQUFBLG9CQUN2RHpFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ3BFLGtCQUFBLENBQUE0RSxlQUFlO1FBQ2RDLEdBQUcsRUFBRVgsRUFBRSxDQUFDQyxFQUFHO1FBQ1hXLFFBQVEsRUFBRTFCLEtBQUssS0FBS2MsRUFBRSxDQUFDQyxFQUFHO1FBQzFCWSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVEvQixvQkFBb0IsQ0FBQztZQUFDSSxLQUFLLEVBQUVjLEVBQUUsQ0FBQ0M7VUFBRSxDQUFDLENBQUM7UUFBQTtNQUFDLGdCQUVwRDFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ2pFLGFBQUEsQ0FBQW9FLGdCQUFnQjtRQUFDSixFQUFFLEVBQUVELEVBQUUsQ0FBQ2M7TUFBTSxDQUFFLENBQUMsRUFDakM1QixLQUFLLEtBQUtjLEVBQUUsQ0FBQ0MsRUFBRSxpQkFBSTFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ3BFLGtCQUFBLENBQUFpRixTQUFTLE1BQUUsQ0FDakIsQ0FBQztJQUFBLENBQ25CLENBQ0UsQ0FDRixDQUFDLEVBQ0w3QixLQUFLLEtBQUtJLDRCQUFpQixDQUFDMEIsTUFBTSxpQkFDakN6RixNQUFBLFlBQUEyRSxhQUFBO01BQUtFLFNBQVMsRUFBQztJQUFzQixnQkFDbEM3RSxNQUFBLFlBQUEyRSxhQUFBO01BQ0VFLFNBQVMsRUFBQyw0QkFBNEI7TUFDdENILEVBQUUsRUFBQztJQUFzQyxnQkFFMUMxRSxNQUFBLFlBQUEyRSxhQUFBLENBQUNqRSxhQUFBLENBQUFvRSxnQkFBZ0I7TUFBQ0osRUFBRSxFQUFFO0lBQW9DLENBQUUsQ0FDekQsQ0FBQyxlQUNOMUUsTUFBQSxZQUFBMkUsYUFBQSxDQUFDakUsYUFBQSxDQUFBb0UsZ0JBQWdCO01BQUNKLEVBQUUsRUFBRTtJQUEwQyxDQUFFLENBQUMsRUFDbEVmLEtBQUssS0FBS0ksNEJBQWlCLENBQUNDLE1BQU0sZ0JBQ2pDaEUsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUMsYUFBYTtNQUFDSCxFQUFFLEVBQUM7SUFBdUMsR0FDcEViLG1CQUFtQixDQUFDcUIsR0FBRyxDQUFDLFVBQUFULEVBQUU7TUFBQSxvQkFDekJ6RSxNQUFBLFlBQUEyRSxhQUFBLENBQUNwRSxrQkFBQSxDQUFBNEUsZUFBZTtRQUNkQyxHQUFHLEVBQUVYLEVBQUUsQ0FBQ0MsRUFBRztRQUNYVyxRQUFRLEVBQUV6QixVQUFVLEtBQUthLEVBQUUsQ0FBQ0MsRUFBRztRQUMvQlksT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7VUFBQSxPQUFRYixFQUFFLENBQUNpQixTQUFTLElBQUluQyxvQkFBb0IsQ0FBQztZQUFDSyxVQUFVLEVBQUVhLEVBQUUsQ0FBQ0M7VUFBRSxDQUFDLENBQUM7UUFBQTtNQUFDLEdBRXhFRCxFQUFFLENBQUNjLEtBQUssRUFDUjNCLFVBQVUsS0FBS2EsRUFBRSxDQUFDQyxFQUFFLGlCQUFJMUUsTUFBQSxZQUFBMkUsYUFBQSxDQUFDcEUsa0JBQUEsQ0FBQWlGLFNBQVMsTUFBRSxDQUN0QixDQUFDO0lBQUEsQ0FDbkIsQ0FDRSxDQUFDLGdCQUVOeEYsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUMscUJBQXFCO01BQUNILEVBQUUsRUFBQztJQUF1QyxnQkFDN0UxRSxNQUFBLFlBQUEyRSxhQUFBO01BQ0VnQixLQUFLLEVBQUUvQixVQUFVLElBQUksRUFBRztNQUN4QixtQkFBZ0Isc0NBQXNDO01BQ3REZ0MsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUUvRSxDQUFDLEVBQUk7UUFDYixJQUFNOEUsS0FBSyxHQUFHOUUsQ0FBQyxDQUFDZ0YsTUFBTSxDQUFDRixLQUFLO1FBQzVCO1FBQ0EsSUFBSUEsS0FBSyxJQUFJOUIsbUJBQW1CLENBQUNXLElBQUksQ0FBQyxVQUFBQyxFQUFFO1VBQUEsT0FBSUEsRUFBRSxDQUFDQyxFQUFFLEtBQUtpQixLQUFLO1FBQUEsRUFBQyxFQUFFO1VBQzVEO1VBQ0FwQyxvQkFBb0IsQ0FBQztZQUFDSyxVQUFVLEVBQUUrQjtVQUErQixDQUFDLENBQUM7UUFDckU7UUFDQTtRQUFBLEtBQ0ssSUFBSSxDQUFDQSxLQUFLLElBQUk5QixtQkFBbUIsQ0FBQ1EsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUNqRGQsb0JBQW9CLENBQUM7WUFBQ0ssVUFBVSxFQUFFQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQ2E7VUFBRSxDQUFDLENBQUM7UUFDL0Q7TUFDRjtJQUFFLGdCQUVGMUUsTUFBQSxZQUFBMkUsYUFBQTtNQUFRZ0IsS0FBSyxFQUFDO0lBQUUsR0FDYmxDLElBQUksQ0FBQ3FDLGFBQWEsQ0FBQztNQUFDcEIsRUFBRSxFQUFFO0lBQXlDLENBQUMsQ0FDN0QsQ0FBQyxFQUNSYixtQkFBbUIsQ0FBQ3FCLEdBQUcsQ0FBQyxVQUFBVCxFQUFFO01BQUEsb0JBQ3pCekUsTUFBQSxZQUFBMkUsYUFBQTtRQUFRUyxHQUFHLEVBQUVYLEVBQUUsQ0FBQ0MsRUFBRztRQUFDaUIsS0FBSyxFQUFFbEIsRUFBRSxDQUFDQyxFQUFHO1FBQUNxQixRQUFRLEVBQUUsQ0FBQ3RCLEVBQUUsQ0FBQ2lCO01BQVUsR0FDdkRqQixFQUFFLENBQUNjLEtBQ0UsQ0FBQztJQUFBLENBQ1YsQ0FDSyxDQUNMLENBRUosQ0FDTixlQUNEdkYsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBc0IsZ0JBQ25DN0UsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBNEIsZ0JBQ3pDN0UsTUFBQSxZQUFBMkUsYUFBQSxDQUFDakUsYUFBQSxDQUFBb0UsZ0JBQWdCO01BQUNKLEVBQUUsRUFBRTtJQUFtQyxDQUFFLENBQ3hELENBQUMsZUFDTjFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ25FLE9BQUEsV0FBTTtNQUNMd0YsSUFBSSxFQUFDLFVBQVU7TUFDZnRCLEVBQUUsRUFBQyxnQkFBZ0I7TUFDbkJ1QixPQUFPLEVBQUV2QyxNQUFPO01BQ2hCNkIsS0FBSyxFQUFFOUIsSUFBSSxDQUFDcUMsYUFBYSxDQUFDO1FBQUNwQixFQUFFLEVBQUU7TUFBZ0MsQ0FBQyxDQUFFO01BQ2xFa0IsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7UUFBQSxPQUFRckMsb0JBQW9CLENBQUM7VUFBQ0csTUFBTSxFQUFFLENBQUNBO1FBQU0sQ0FBQyxDQUFDO01BQUE7SUFBQyxDQUN6RCxDQUNFLENBQ1UsQ0FBQyxlQUNsQjFELE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ3RFLGFBQUEsV0FBWTtNQUFDaUQsV0FBVyxFQUFFQTtJQUFZLENBQUUsQ0FDdkIsQ0FBQztFQUV6QixDQUFDO0VBRUQsT0FBTyxJQUFBNEMscUJBQVUsRUFBQ2hELGdCQUFnQixDQUFDO0FBQ3JDLENBQUM7QUFBQyxJQUFBaUQsUUFBQSxHQUFBQyxPQUFBLGNBRWFuRCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -77,6 +77,8 @@ function ExportHtmlMapFactory() {
77
77
  className: "disclaimer"
78
78
  }, /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
79
79
  id: 'modal.exportMap.html.tokenMisuseWarning'
80
+ })), /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
81
+ id: 'modal.exportMap.html.tokenSecurityWarning'
80
82
  })), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
81
83
  id: 'modal.exportMap.html.tokenDisclaimer'
82
84
  }), /*#__PURE__*/_react["default"].createElement(_components.ExportMapLink, {
@@ -123,4 +125,4 @@ function ExportHtmlMapFactory() {
123
125
  return (0, _reactIntl.injectIntl)(ExportHtmlMap);
124
126
  }
125
127
  var _default = exports["default"] = ExportHtmlMapFactory;
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NvbXBvbmVudHMiLCJfY29uc3RhbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3JlYWN0SW50bCIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIkV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24iLCJzdHlsZWQiLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiaW5wdXRGb250U2l6ZSIsImlucHV0Q29sb3IiLCJTdHlsZWRJbnB1dCIsImlucHV0IiwiaW5wdXRQYWRkaW5nIiwiZXJyb3IiLCJ0aXRsZUNvbG9yTFQiLCJpbnB1dEJveEhlaWdodCIsIkJpZ1N0eWxlZFRpbGUiLCJTdHlsZWRUeXBlIiwiRXhwb3J0SHRtbE1hcEZhY3RvcnkiLCJFeHBvcnRIdG1sTWFwIiwiX3JlZiIsIl9yZWYkb25DaGFuZ2VFeHBvcnRNYSIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJfcmVmJG9uRWRpdFVzZXJNYXBib3giLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJfcmVmJG9wdGlvbnMiLCJvcHRpb25zIiwiaW50bCIsImNyZWF0ZUVsZW1lbnQiLCJTdHlsZWRFeHBvcnRNYXBTZWN0aW9uIiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwidXNlck1hcGJveFRva2VuIiwiU3R5bGVkV2FybmluZyIsIkV4cG9ydE1hcExpbmsiLCJocmVmIiwiRVhQT1JUX0hUTUxfTUFQX0RPQyIsIkVYUE9SVF9IVE1MX01BUF9NT0RFU19ET0MiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwibWFwIiwibW9kZSIsImtleSIsInNlbGVjdGVkIiwib25DbGljayIsImF2YWlsYWJsZSIsInNyYyIsInVybCIsImFsdCIsInZhbHVlcyIsImxhYmVsIiwiQ2hlY2tNYXJrIiwiZGlzcGxheU5hbWUiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1odG1sLW1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U3R5bGVkRXhwb3J0U2VjdGlvbiwgU3R5bGVkVHlwZSwgQ2hlY2tNYXJrfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRNYXBTZWN0aW9uLCBTdHlsZWRXYXJuaW5nLCBFeHBvcnRNYXBMaW5rfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyxcbiAgRVhQT1JUX0hUTUxfTUFQX0RPQyxcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVTX0RPQ1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7SW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4sIHNldEV4cG9ydEhUTUxNYXBNb2RlLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5jb25zdCBFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICAuZGlzY2xhaW1lciB7XG4gICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cbmA7XG5cbmludGVyZmFjZSBTdHlsZWRJbnB1dFByb3BzIHtcbiAgZXJyb3I/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dDxTdHlsZWRJbnB1dFByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRQYWRkaW5nfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmVycm9yID8gJ3JlZCcgOiBwcm9wcy50aGVtZS50aXRsZUNvbG9yTFQpfTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0fTtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuYDtcblxuY29uc3QgQmlnU3R5bGVkVGlsZSA9IHN0eWxlZChTdHlsZWRUeXBlKWBcbiAgaGVpZ2h0OiB1bnNldDtcbiAgd2lkdGg6IHVuc2V0O1xuICBpbWcge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDEyMHB4O1xuICB9XG5gO1xuXG50eXBlIEV4cG9ydEh0bWxNYXBQcm9wcyA9IHtcbiAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZTogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygc2V0RXhwb3J0SFRNTE1hcE1vZGU+O1xuICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW46IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbj47XG4gIG9wdGlvbnM6IHtcbiAgICB1c2VyTWFwYm94VG9rZW4/OiBzdHJpbmc7XG4gICAgbW9kZT86IHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5mdW5jdGlvbiBFeHBvcnRIdG1sTWFwRmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPEV4cG9ydEh0bWxNYXBQcm9wcz4ge1xuICAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vZXhwb3J0LWh0bWwtbWFwJykuRXhwb3J0SHRtbE1hcH0gKi9cbiAgY29uc3QgRXhwb3J0SHRtbE1hcDogUmVhY3QuRkM8RXhwb3J0SHRtbE1hcFByb3BzICYgSW50bFByb3BzPiA9ICh7XG4gICAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZSA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbiA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICBpbnRsXG4gIH0pID0+IChcbiAgICA8ZGl2PlxuICAgICAgPFN0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwuc2VsZWN0aW9uJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1N0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICA8RXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbiBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsX19odG1sLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5UaXRsZSd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblN1YnRpdGxlJ30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgdmFsdWU9e29wdGlvbnMgPyBvcHRpb25zLnVzZXJNYXBib3hUb2tlbiA6ICcnfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXNjbGFpbWVyXCI+XG4gICAgICAgICAgICA8U3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbk1pc3VzZVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbkRpc2NsYWltZXInfSAvPlxuICAgICAgICAgICAgPEV4cG9ydE1hcExpbmsgaHJlZj17RVhQT1JUX0hUTUxfTUFQX0RPQ30+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5VcGRhdGUnfSAvPlxuICAgICAgICAgICAgPC9FeHBvcnRNYXBMaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVN1YnRpdGxlMSd9IC8+XG4gICAgICAgICAgICA8YSBocmVmPXtFWFBPUlRfSFRNTF9NQVBfTU9ERVNfRE9DfT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlU3VidGl0bGUyJ30gLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAge0VYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMubWFwKG1vZGUgPT4gKFxuICAgICAgICAgICAgPEJpZ1N0eWxlZFRpbGVcbiAgICAgICAgICAgICAga2V5PXttb2RlLmlkfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17b3B0aW9ucy5tb2RlID09PSBtb2RlLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtb2RlLmF2YWlsYWJsZSAmJiBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlKG1vZGUuaWQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17bW9kZS51cmx9IGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLm1vZGVEZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAgICAgICB2YWx1ZXM9e3ttb2RlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBtb2RlLmxhYmVsfSl9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge29wdGlvbnMubW9kZSA9PT0gbW9kZS5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgPC9CaWdTdHlsZWRUaWxlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICBFeHBvcnRIdG1sTWFwLmRpc3BsYXlOYW1lID0gJ0V4cG9ydEh0bWxNYXAnO1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydEh0bWxNYXApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRIdG1sTWFwRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxH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
128
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NvbXBvbmVudHMiLCJfY29uc3RhbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3JlYWN0SW50bCIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIkV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24iLCJzdHlsZWQiLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiaW5wdXRGb250U2l6ZSIsImlucHV0Q29sb3IiLCJTdHlsZWRJbnB1dCIsImlucHV0IiwiaW5wdXRQYWRkaW5nIiwiZXJyb3IiLCJ0aXRsZUNvbG9yTFQiLCJpbnB1dEJveEhlaWdodCIsIkJpZ1N0eWxlZFRpbGUiLCJTdHlsZWRUeXBlIiwiRXhwb3J0SHRtbE1hcEZhY3RvcnkiLCJFeHBvcnRIdG1sTWFwIiwiX3JlZiIsIl9yZWYkb25DaGFuZ2VFeHBvcnRNYSIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJfcmVmJG9uRWRpdFVzZXJNYXBib3giLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJfcmVmJG9wdGlvbnMiLCJvcHRpb25zIiwiaW50bCIsImNyZWF0ZUVsZW1lbnQiLCJTdHlsZWRFeHBvcnRNYXBTZWN0aW9uIiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwidXNlck1hcGJveFRva2VuIiwiU3R5bGVkV2FybmluZyIsIkV4cG9ydE1hcExpbmsiLCJocmVmIiwiRVhQT1JUX0hUTUxfTUFQX0RPQyIsIkVYUE9SVF9IVE1MX01BUF9NT0RFU19ET0MiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwibWFwIiwibW9kZSIsImtleSIsInNlbGVjdGVkIiwib25DbGljayIsImF2YWlsYWJsZSIsInNyYyIsInVybCIsImFsdCIsInZhbHVlcyIsImxhYmVsIiwiQ2hlY2tNYXJrIiwiZGlzcGxheU5hbWUiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1odG1sLW1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U3R5bGVkRXhwb3J0U2VjdGlvbiwgU3R5bGVkVHlwZSwgQ2hlY2tNYXJrfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRNYXBTZWN0aW9uLCBTdHlsZWRXYXJuaW5nLCBFeHBvcnRNYXBMaW5rfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyxcbiAgRVhQT1JUX0hUTUxfTUFQX0RPQyxcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVTX0RPQ1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7SW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4sIHNldEV4cG9ydEhUTUxNYXBNb2RlLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5jb25zdCBFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICAuZGlzY2xhaW1lciB7XG4gICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cbmA7XG5cbmludGVyZmFjZSBTdHlsZWRJbnB1dFByb3BzIHtcbiAgZXJyb3I/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dDxTdHlsZWRJbnB1dFByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRQYWRkaW5nfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmVycm9yID8gJ3JlZCcgOiBwcm9wcy50aGVtZS50aXRsZUNvbG9yTFQpfTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0fTtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuYDtcblxuY29uc3QgQmlnU3R5bGVkVGlsZSA9IHN0eWxlZChTdHlsZWRUeXBlKWBcbiAgaGVpZ2h0OiB1bnNldDtcbiAgd2lkdGg6IHVuc2V0O1xuICBpbWcge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDEyMHB4O1xuICB9XG5gO1xuXG50eXBlIEV4cG9ydEh0bWxNYXBQcm9wcyA9IHtcbiAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZTogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygc2V0RXhwb3J0SFRNTE1hcE1vZGU+O1xuICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW46IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbj47XG4gIG9wdGlvbnM6IHtcbiAgICB1c2VyTWFwYm94VG9rZW4/OiBzdHJpbmc7XG4gICAgbW9kZT86IHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5mdW5jdGlvbiBFeHBvcnRIdG1sTWFwRmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPEV4cG9ydEh0bWxNYXBQcm9wcz4ge1xuICAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vZXhwb3J0LWh0bWwtbWFwJykuRXhwb3J0SHRtbE1hcH0gKi9cbiAgY29uc3QgRXhwb3J0SHRtbE1hcDogUmVhY3QuRkM8RXhwb3J0SHRtbE1hcFByb3BzICYgSW50bFByb3BzPiA9ICh7XG4gICAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZSA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbiA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICBpbnRsXG4gIH0pID0+IChcbiAgICA8ZGl2PlxuICAgICAgPFN0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwuc2VsZWN0aW9uJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1N0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICA8RXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbiBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsX19odG1sLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5UaXRsZSd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblN1YnRpdGxlJ30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgdmFsdWU9e29wdGlvbnMgPyBvcHRpb25zLnVzZXJNYXBib3hUb2tlbiA6ICcnfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXNjbGFpbWVyXCI+XG4gICAgICAgICAgICA8U3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbk1pc3VzZVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5TZWN1cml0eVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbkRpc2NsYWltZXInfSAvPlxuICAgICAgICAgICAgPEV4cG9ydE1hcExpbmsgaHJlZj17RVhQT1JUX0hUTUxfTUFQX0RPQ30+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5VcGRhdGUnfSAvPlxuICAgICAgICAgICAgPC9FeHBvcnRNYXBMaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVN1YnRpdGxlMSd9IC8+XG4gICAgICAgICAgICA8YSBocmVmPXtFWFBPUlRfSFRNTF9NQVBfTU9ERVNfRE9DfT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlU3VidGl0bGUyJ30gLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAge0VYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMubWFwKG1vZGUgPT4gKFxuICAgICAgICAgICAgPEJpZ1N0eWxlZFRpbGVcbiAgICAgICAgICAgICAga2V5PXttb2RlLmlkfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17b3B0aW9ucy5tb2RlID09PSBtb2RlLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtb2RlLmF2YWlsYWJsZSAmJiBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlKG1vZGUuaWQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17bW9kZS51cmx9IGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLm1vZGVEZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAgICAgICB2YWx1ZXM9e3ttb2RlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBtb2RlLmxhYmVsfSl9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge29wdGlvbnMubW9kZSA9PT0gbW9kZS5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgPC9CaWdTdHlsZWRUaWxlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICBFeHBvcnRIdG1sTWFwLmRpc3BsYXlOYW1lID0gJ0V4cG9ydEh0bWxNYXAnO1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydEh0bWxNYXApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRIdG1sTWFwRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBS0EsSUFBQUksa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUF5RCxJQUFBTyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBYnpEO0FBQ0E7QUFpQkEsSUFBTUMsNEJBQTRCLEdBQUcsSUFBQUMsNkJBQU0sRUFBQ0MscUNBQW1CLENBQUMsQ0FBQUwsZUFBQSxLQUFBQSxlQUFBLE9BQUFNLHVCQUFBLDRHQUUvQyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGFBQWE7QUFBQSxHQUN0QyxVQUFBRixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNFLFVBQVU7QUFBQSxFQUczQztBQU1ELElBQU1DLFdBQVcsR0FBR1AsNkJBQU0sQ0FBQ1EsS0FBSyxDQUFBWCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBSyx1QkFBQSx3TUFFbkIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxZQUFZO0FBQUEsR0FDbkMsVUFBQU4sS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ08sS0FBSyxHQUFHLEtBQUssR0FBR1AsS0FBSyxDQUFDQyxLQUFLLENBQUNPLFlBQVk7QUFBQSxDQUFDLEVBQ3hELFVBQUFSLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsY0FBYztBQUFBLEdBRWhDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUND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
@@ -32,11 +32,36 @@ var DOM_FILTER_FUNC = function DOM_FILTER_FUNC(node) {
32
32
  return !CLASS_FILTER.includes(node.className);
33
33
  };
34
34
  var OUT_OF_SCREEN_POSITION = -9999;
35
+
36
+ /**
37
+ * Calculates legend zoom based on export height
38
+ * Maps export height to a zoom factor between 0.5 and 3
39
+ * @param height - export height in pixels
40
+ * @returns zoom factor for legend panel
41
+ */
42
+ function calculateLegendZoom(height) {
43
+ var baseHeight = 1080; // 1x zoom reference height
44
+ var minZoom = 0.5;
45
+ var maxZoom = 3;
46
+
47
+ // For initial/invalid heights, avoid shrinking the legend; use no scaling.
48
+ if (!Number.isFinite(height) || height <= 0) {
49
+ return 1;
50
+ }
51
+
52
+ // Linear mapping: height / baseHeight gives us the scale
53
+ var zoomFactor = height / baseHeight;
54
+ // Clamp between min and max
55
+ return Math.max(minZoom, Math.min(maxZoom, zoomFactor));
56
+ }
35
57
  PlotContainerFactory.deps = [_mapContainer["default"], _mapsLayout["default"]];
36
58
 
37
59
  // Remove mapbox logo in exported map, because it contains non-ascii characters
38
60
  // Remove split viewport UI controls from exported images when the legend is shown
39
- var StyledPlotContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .maplibregl-ctrl-bottom-left,\n .maplibregl-ctrl-bottom-right,\n .maplibre-attribution-container,\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapbox-attribution-container,\n .map-control__panel-split-viewport-tools {\n display: none;\n }\n\n position: absolute;\n top: ", "px;\n left: ", "px;\n"])), OUT_OF_SCREEN_POSITION, OUT_OF_SCREEN_POSITION);
61
+
62
+ var StyledPlotContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .maplibregl-ctrl-bottom-left,\n .maplibregl-ctrl-bottom-right,\n .maplibre-attribution-container,\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapbox-attribution-container,\n .map-control__panel-split-viewport-tools {\n display: none;\n }\n\n position: absolute;\n top: ", "px;\n left: ", "px;\n\n /* Apply zoom to legend panel based on export height */\n .map-control-panel {\n zoom: ", " !important;\n }\n"])), OUT_OF_SCREEN_POSITION, OUT_OF_SCREEN_POSITION, function (props) {
63
+ return props.legendZoom || 1;
64
+ });
40
65
  var StyledMapContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", "px;\n height: ", "px;\n display: flex;\n"])), function (props) {
41
66
  return props.width;
42
67
  }, function (props) {
@@ -79,6 +104,11 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
79
104
  return calculatedScale > 0 ? calculatedScale : 1;
80
105
  }, [imageSize.scale, imageSize.imageW, imageSize.imageH, mapState.width, mapState.height, mapState.isSplit]);
81
106
 
107
+ // Memoize the legend zoom calculation based on export height
108
+ var legendZoom = (0, _react.useMemo)(function () {
109
+ return calculateLegendZoom(imageSize.imageH);
110
+ }, [imageSize.imageH]);
111
+
82
112
  // Memoize the map style
83
113
  var scaledMapStyle = (0, _react.useMemo)(function () {
84
114
  var mapStyle = mapFields.mapStyle;
@@ -226,7 +256,8 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
226
256
  }, mapProps));
227
257
  }));
228
258
  return /*#__PURE__*/_react["default"].createElement(StyledPlotContainer, {
229
- className: "export-map-instance"
259
+ className: "export-map-instance",
260
+ legendZoom: legendZoom
230
261
  }, /*#__PURE__*/_react["default"].createElement(StyledMapContainer, {
231
262
  ref: plottingAreaRef,
232
263
  width: size.width,
@@ -237,4 +268,4 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
237
268
  }
238
269
  return /*#__PURE__*/_react["default"].memo(PlotContainer);
239
270
  }
240
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsIk1hdGgiLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJfbWFwRmllbGRzJG1hcENvbnRyb2wiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwic2V0dGluZ3MiLCJNYXBDb21wb25lbnQiLCJNYXAiLCJpc0V4cG9ydCIsImRlY2tHbFByb3BzIiwiZ2xPcHRpb25zIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidXNlRGV2aWNlUGl4ZWxzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJpbmRleCIsInByaW1hcnkiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cblBsb3RDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwQ29udGFpbmVyRmFjdG9yeSwgTWFwc0xheW91dEZhY3RvcnldO1xuXG4vLyBSZW1vdmUgbWFwYm94IGxvZ28gaW4gZXhwb3J0ZWQgbWFwLCBiZWNhdXNlIGl0IGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzXG4vLyBSZW1vdmUgc3BsaXQgdmlld3BvcnQgVUkgY29udHJvbHMgZnJvbSBleHBvcnRlZCBpbWFnZXMgd2hlbiB0aGUgbGVnZW5kIGlzIHNob3duXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tbGVmdCxcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwYm94Z2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyLFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7T1VUX09GX1NDUkVFTl9QT1NJVElPTn1weDtcbiAgbGVmdDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRhaW5lclByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuaW50ZXJmYWNlIFBsb3RDb250YWluZXJQcm9wcyB7XG4gIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICByYXRpbz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGVnZW5kPzogYm9vbGVhbjtcbiAgY2VudGVyPzogYm9vbGVhbjtcbiAgaW1hZ2VTaXplOiBFeHBvcnRJbWFnZVsnaW1hZ2VTaXplJ107XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG5cbiAgLy8gTWFwIHNldHRpbmdzXG4gIG1hcEZpZWxkczogUmV0dXJuVHlwZTx0eXBlb2YgbWFwRmllbGRzU2VsZWN0b3I+O1xuICBzcGxpdE1hcHM/OiBTcGxpdE1hcFtdO1xuXG4gIC8vIENhbGxiYWNrc1xuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHR5cGVvZiBzZXRFeHBvcnRJbWFnZVNldHRpbmc7XG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogdHlwZW9mIHNldEV4cG9ydEltYWdlRGF0YVVyaTtcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogdHlwZW9mIHNldEV4cG9ydEltYWdlRXJyb3I7XG4gIGFkZE5vdGlmaWNhdGlvbjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgYWRkTm90aWZpY2F0aW9uPjtcblxuICAvLyBGbGFnc1xuICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gT3B0aW9uYWw6IG92ZXJyaWRlIGxlZ2VuZCBoZWFkZXIgbG9nbyBkdXJpbmcgZXhwb3J0XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsb3RDb250YWluZXJGYWN0b3J5KFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGxvdENvbnRhaW5lclByb3BzPiB7XG4gIGZ1bmN0aW9uIFBsb3RDb250YWluZXIoe1xuICAgIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICAgIHJhdGlvLFxuICAgIHJlc29sdXRpb24sXG4gICAgbGVnZW5kID0gZmFsc2UsXG4gICAgY2VudGVyLFxuICAgIGltYWdlU2l6ZSxcbiAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgICAvLyBNYXAgc2V0dGluZ3NcbiAgICBtYXBGaWVsZHMsXG4gICAgc3BsaXRNYXBzID0gW10sXG5cbiAgICAvLyBDYWxsYmFja3NcbiAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgYWRkTm90aWZpY2F0aW9uLFxuXG4gICAgLy8gRmxhZ3NcbiAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICBsb2dvQ29tcG9uZW50XG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgICAgc2V0dGluZ3M6IG1hcEZpZWxkcy5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5nc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgTWFwQ29tcG9uZW50OiBNYXAsXG4gICAgICAgIG9uTWFwUmVuZGVyLFxuICAgICAgICBpc0V4cG9ydDogdHJ1ZSxcbiAgICAgICAgZGVja0dsUHJvcHM6IHtcbiAgICAgICAgICAuLi5tYXBGaWVsZHMuZGVja0dsUHJvcHMsXG4gICAgICAgICAgZ2xPcHRpb25zOiB7XG4gICAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgICAgICAgICB1c2VEZXZpY2VQaXhlbHM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2aXNTdGF0ZToge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy52aXNTdGF0ZSxcbiAgICAgICAgICBlZmZlY3RzOiBwbG90RWZmZWN0c1xuICAgICAgICB9LFxuICAgICAgICAvLyBhbGxvdyBvdmVycmlkaW5nIHRoZSBsZWdlbmQgcGFuZWwgbG9nbyBpbiBleHBvcnRcbiAgICAgICAgbG9nb0NvbXBvbmVudFxuICAgICAgfSksXG4gICAgICBbbWFwRmllbGRzLCBzY2FsZWRNYXBTdHlsZSwgbmV3TWFwU3RhdGUsIGxlZ2VuZCwgb25NYXBSZW5kZXIsIHBsb3RFZmZlY3RzLCBsb2dvQ29tcG9uZW50XVxuICAgICk7XG5cbiAgICBjb25zdCBpc1NwbGl0ID0gc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG4gICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0ID8gKFxuICAgICAgPE1hcENvbnRhaW5lciBpbmRleD17MH0gcHJpbWFyeT17dHJ1ZX0gey4uLm1hcFByb3BzfSAvPlxuICAgICkgOiAoXG4gICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJwbG90LWNvbnRhaW5lci1tYXBzXCIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAge3NwbGl0TWFwcy5tYXAoKHNldHRpbmdzLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxNYXBDb250YWluZXIga2V5PXtpbmRleH0gaW5kZXg9e2luZGV4fSBwcmltYXJ5PXtpbmRleCA9PT0gMX0gey4uLm1hcFByb3BzfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvTWFwc0xheW91dD5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRQbG90Q29udGFpbmVyIGNsYXNzTmFtZT1cImV4cG9ydC1tYXAtaW5zdGFuY2VcIj5cbiAgICAgICAgPFN0eWxlZE1hcENvbnRhaW5lciByZWY9e3Bsb3R0aW5nQXJlYVJlZn0gd2lkdGg9e3NpemUud2lkdGh9IGhlaWdodD17c2l6ZS5oZWlnaHR9PlxuICAgICAgICAgIDxNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAgICAgIHttYXBDb250YWluZXJzfVxuICAgICAgICAgIDwvTWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkUGxvdENvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oUGxvdENvbnRhaW5lcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUlBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFPQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxvQkFBQSxHQUFBVCxPQUFBO0FBRUEsSUFBQVUsVUFB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
271
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiY2FsY3VsYXRlTGVnZW5kWm9vbSIsImhlaWdodCIsImJhc2VIZWlnaHQiLCJtaW5ab29tIiwibWF4Wm9vbSIsIk51bWJlciIsImlzRmluaXRlIiwiem9vbUZhY3RvciIsIk1hdGgiLCJtYXgiLCJtaW4iLCJQbG90Q29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJTdHlsZWRQbG90Q29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxlZ2VuZFpvb20iLCJTdHlsZWRNYXBDb250YWluZXIiLCJ3aWR0aCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsImxvZzIiLCJyZW5kZXJlZExheWVycyIsImxheWVycyIsImxheWVyIiwiaWR4IiwiaWQiLCJHRU9DT0RFUl9MQVlFUl9JRCIsInNob3VsZFJlbmRlckxheWVyIiwibGF5ZXJEYXRhIiwiYm91bmRzIiwiZmluZE1hcEJvdW5kcyIsImNlbnRlckFuZFpvb20iLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJfbWFwRmllbGRzJG1hcENvbnRyb2wiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwic2V0dGluZ3MiLCJNYXBDb21wb25lbnQiLCJNYXAiLCJpc0V4cG9ydCIsImRlY2tHbFByb3BzIiwiZ2xPcHRpb25zIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidXNlRGV2aWNlUGl4ZWxzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJpbmRleCIsInByaW1hcnkiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBsZWdlbmQgem9vbSBiYXNlZCBvbiBleHBvcnQgaGVpZ2h0XG4gKiBNYXBzIGV4cG9ydCBoZWlnaHQgdG8gYSB6b29tIGZhY3RvciBiZXR3ZWVuIDAuNSBhbmQgM1xuICogQHBhcmFtIGhlaWdodCAtIGV4cG9ydCBoZWlnaHQgaW4gcGl4ZWxzXG4gKiBAcmV0dXJucyB6b29tIGZhY3RvciBmb3IgbGVnZW5kIHBhbmVsXG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZUxlZ2VuZFpvb20oaGVpZ2h0OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBiYXNlSGVpZ2h0ID0gMTA4MDsgLy8gMXggem9vbSByZWZlcmVuY2UgaGVpZ2h0XG4gIGNvbnN0IG1pblpvb20gPSAwLjU7XG4gIGNvbnN0IG1heFpvb20gPSAzO1xuXG4gIC8vIEZvciBpbml0aWFsL2ludmFsaWQgaGVpZ2h0cywgYXZvaWQgc2hyaW5raW5nIHRoZSBsZWdlbmQ7IHVzZSBubyBzY2FsaW5nLlxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShoZWlnaHQpIHx8IGhlaWdodCA8PSAwKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBMaW5lYXIgbWFwcGluZzogaGVpZ2h0IC8gYmFzZUhlaWdodCBnaXZlcyB1cyB0aGUgc2NhbGVcbiAgY29uc3Qgem9vbUZhY3RvciA9IGhlaWdodCAvIGJhc2VIZWlnaHQ7XG4gIC8vIENsYW1wIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgcmV0dXJuIE1hdGgubWF4KG1pblpvb20sIE1hdGgubWluKG1heFpvb20sIHpvb21GYWN0b3IpKTtcbn1cblxuUGxvdENvbnRhaW5lckZhY3RvcnkuZGVwcyA9IFtNYXBDb250YWluZXJGYWN0b3J5LCBNYXBzTGF5b3V0RmFjdG9yeV07XG5cbi8vIFJlbW92ZSBtYXBib3ggbG9nbyBpbiBleHBvcnRlZCBtYXAsIGJlY2F1c2UgaXQgY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnNcbi8vIFJlbW92ZSBzcGxpdCB2aWV3cG9ydCBVSSBjb250cm9scyBmcm9tIGV4cG9ydGVkIGltYWdlcyB3aGVuIHRoZSBsZWdlbmQgaXMgc2hvd25cbmludGVyZmFjZSBTdHlsZWRQbG90Q29udGFpbmVyUHJvcHMge1xuICBsZWdlbmRab29tPzogbnVtYmVyO1xufVxuXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRQbG90Q29udGFpbmVyUHJvcHM+YFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGxpYnJlLWF0dHJpYnV0aW9uLWNvbnRhaW5lcixcbiAgLm1hcGJveGdsLWN0cmwtYm90dG9tLWxlZnQsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGJveC1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXAtY29udHJvbF9fcGFuZWwtc3BsaXQtdmlld3BvcnQtdG9vbHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuICBsZWZ0OiAke09VVF9PRl9TQ1JFRU5fUE9TSVRJT059cHg7XG5cbiAgLyogQXBwbHkgem9vbSB0byBsZWdlbmQgcGFuZWwgYmFzZWQgb24gZXhwb3J0IGhlaWdodCAqL1xuICAubWFwLWNvbnRyb2wtcGFuZWwge1xuICAgIHpvb206ICR7cHJvcHMgPT4gcHJvcHMubGVnZW5kWm9vbSB8fCAxfSAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgU3R5bGVkTWFwQ29udGFpbmVyUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5jb25zdCBTdHlsZWRNYXBDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5pbnRlcmZhY2UgUGxvdENvbnRhaW5lclByb3BzIHtcbiAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gIHJhdGlvPzogc3RyaW5nO1xuICByZXNvbHV0aW9uPzogc3RyaW5nO1xuICBsZWdlbmQ/OiBib29sZWFuO1xuICBjZW50ZXI/OiBib29sZWFuO1xuICBpbWFnZVNpemU6IEV4cG9ydEltYWdlWydpbWFnZVNpemUnXTtcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrPzogYm9vbGVhbjtcblxuICAvLyBNYXAgc2V0dGluZ3NcbiAgbWFwRmllbGRzOiBSZXR1cm5UeXBlPHR5cGVvZiBtYXBGaWVsZHNTZWxlY3Rvcj47XG4gIHNwbGl0TWFwcz86IFNwbGl0TWFwW107XG5cbiAgLy8gQ2FsbGJhY2tzXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogdHlwZW9mIHNldEV4cG9ydEltYWdlU2V0dGluZztcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VEYXRhVXJpO1xuICBzZXRFeHBvcnRJbWFnZUVycm9yOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VFcnJvcjtcbiAgYWRkTm90aWZpY2F0aW9uOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBhZGROb3RpZmljYXRpb24+O1xuXG4gIC8vIEZsYWdzXG4gIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvLyBPcHRpb25hbDogb3ZlcnJpZGUgbGVnZW5kIGhlYWRlciBsb2dvIGR1cmluZyBleHBvcnRcbiAgbG9nb0NvbXBvbmVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGxvdENvbnRhaW5lckZhY3RvcnkoXG4gIE1hcENvbnRhaW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udGFpbmVyRmFjdG9yeT4sXG4gIE1hcHNMYXlvdXQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcHNMYXlvdXRGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxQbG90Q29udGFpbmVyUHJvcHM+IHtcbiAgZnVuY3Rpb24gUGxvdENvbnRhaW5lcih7XG4gICAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gICAgcmF0aW8sXG4gICAgcmVzb2x1dGlvbixcbiAgICBsZWdlbmQgPSBmYWxzZSxcbiAgICBjZW50ZXIsXG4gICAgaW1hZ2VTaXplLFxuICAgIGVzY2FwZVhodG1sRm9yV2VicGFjayxcblxuICAgIC8vIE1hcCBzZXR0aW5nc1xuICAgIG1hcEZpZWxkcyxcbiAgICBzcGxpdE1hcHMgPSBbXSxcblxuICAgIC8vIENhbGxiYWNrc1xuICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgICBhZGROb3RpZmljYXRpb24sXG5cbiAgICAvLyBGbGFnc1xuICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgIGxvZ29Db21wb25lbnRcbiAgfTogUGxvdENvbnRhaW5lclByb3BzKSB7XG4gICAgY29uc3QgcGxvdHRpbmdBcmVhUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbcGxvdEVmZmVjdHNdID0gdXNlU3RhdGU8RWZmZWN0W10+KCgpID0+XG4gICAgICBtYXBGaWVsZHMudmlzU3RhdGUuZWZmZWN0cy5tYXAoZWZmZWN0ID0+IGVmZmVjdC5jbG9uZSgpKVxuICAgICk7XG5cbiAgICBjb25zdCB7bWFwU3RhdGV9ID0gbWFwRmllbGRzO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgc2NhbGUgY2FsY3VsYXRpb25cbiAgICBjb25zdCBzY2FsZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGltYWdlU2l6ZS5zY2FsZSkge1xuICAgICAgICByZXR1cm4gaW1hZ2VTaXplLnNjYWxlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxjdWxhdGVkU2NhbGUgPSBnZXRTY2FsZUZyb21JbWFnZVNpemUoXG4gICAgICAgIGltYWdlU2l6ZS5pbWFnZVcsXG4gICAgICAgIGltYWdlU2l6ZS5pbWFnZUgsXG4gICAgICAgIG1hcFN0YXRlLndpZHRoICogKG1hcFN0YXRlLmlzU3BsaXQgPyAyIDogMSksXG4gICAgICAgIG1hcFN0YXRlLmhlaWdodFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGNhbGN1bGF0ZWRTY2FsZSA+IDAgPyBjYWxjdWxhdGVkU2NhbGUgOiAxO1xuICAgIH0sIFtcbiAgICAgIGltYWdlU2l6ZS5zY2FsZSxcbiAgICAgIGltYWdlU2l6ZS5pbWFnZVcsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgbWFwU3RhdGUud2lkdGgsXG4gICAgICBtYXBTdGF0ZS5oZWlnaHQsXG4gICAgICBtYXBTdGF0ZS5pc1NwbGl0XG4gICAgXSk7XG5cbiAgICAvLyBNZW1vaXplIHRoZSBsZWdlbmQgem9vbSBjYWxjdWxhdGlvbiBiYXNlZCBvbiBleHBvcnQgaGVpZ2h0XG4gICAgY29uc3QgbGVnZW5kWm9vbSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGNhbGN1bGF0ZUxlZ2VuZFpvb20oaW1hZ2VTaXplLmltYWdlSCk7XG4gICAgfSwgW2ltYWdlU2l6ZS5pbWFnZUhdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG1hcCBzdHlsZVxuICAgIGNvbnN0IHNjYWxlZE1hcFN0eWxlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBtYXBTdHlsZSA9IG1hcEZpZWxkcy5tYXBTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm1hcFN0eWxlLFxuICAgICAgICBib3R0b21NYXBTdHlsZTogc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbihtYXBTdHlsZS5ib3R0b21NYXBTdHlsZSwgc2NhbGUpLFxuICAgICAgICB0b3BNYXBTdHlsZTogc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbihtYXBTdHlsZS50b3BNYXBTdHlsZSwgc2NhbGUpXG4gICAgICB9O1xuICAgIH0sIFttYXBGaWVsZHMubWFwU3R5bGUsIHNjYWxlXSk7XG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXRyaWV2ZU5ld1NjcmVlbnNob3QgY2FsbGJhY2tcbiAgICBjb25zdCBkZWJvdW5jZWRTY3JlZW5zaG90ID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKCgpID0+IHtcbiAgICAgICAgICBpZiAocGxvdHRpbmdBcmVhUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnZlcnRUb1BuZyhwbG90dGluZ0FyZWFSZWYuY3VycmVudCwge1xuICAgICAgICAgICAgICBmaWx0ZXI6IERPTV9GSUxURVJfRlVOQyxcbiAgICAgICAgICAgICAgd2lkdGg6IGltYWdlU2l6ZS5pbWFnZVcsXG4gICAgICAgICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAudGhlbihzZXRFeHBvcnRJbWFnZURhdGFVcmkpXG4gICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICBpZiAoZW5hYmxlRXJyb3JOb3RpZmljYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgIGFkZE5vdGlmaWNhdGlvbihleHBvcnRJbWFnZUVycm9yKHtlcnJ9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCksXG4gICAgICBbXG4gICAgICAgIGltYWdlU2l6ZS5pbWFnZVcsXG4gICAgICAgIGltYWdlU2l6ZS5pbWFnZUgsXG4gICAgICAgIGVzY2FwZVhodG1sRm9yV2VicGFjayxcbiAgICAgICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZUVycm9yLFxuICAgICAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICAgICAgYWRkTm90aWZpY2F0aW9uXG4gICAgICBdXG4gICAgKTtcblxuICAgIGNvbnN0IHJldHJpZXZlTmV3U2NyZWVuc2hvdCA9IHVzZUNhbGxiYWNrKGRlYm91bmNlZFNjcmVlbnNob3QsIFtkZWJvdW5jZWRTY3JlZW5zaG90XSk7XG5cbiAgICAvLyBNZW1vaXplIHRoZSBvbk1hcFJlbmRlciBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZE1hcFJlbmRlciA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBkZWJvdW5jZShtYXAgPT4ge1xuICAgICAgICAgIGlmIChtYXAuaXNTdHlsZUxvYWRlZCgpKSB7XG4gICAgICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCksXG4gICAgICBbcmV0cmlldmVOZXdTY3JlZW5zaG90XVxuICAgICk7XG5cbiAgICBjb25zdCBvbk1hcFJlbmRlciA9IHVzZUNhbGxiYWNrKGRlYm91bmNlZE1hcFJlbmRlciwgW2RlYm91bmNlZE1hcFJlbmRlcl0pO1xuXG4gICAgLy8gSW5pdGlhbCBzZXR1cCBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nKHtwcm9jZXNzaW5nOiB0cnVlfSk7XG4gICAgfSwgW3NldEV4cG9ydEltYWdlU2V0dGluZ10pO1xuXG4gICAgLy8gU2NyZWVuc2hvdCB1cGRhdGUgZWZmZWN0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChyYXRpbyAhPT0gdW5kZWZpbmVkIHx8IHJlc29sdXRpb24gIT09IHVuZGVmaW5lZCB8fCBsZWdlbmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICAgICAgcmV0cmlldmVOZXdTY3JlZW5zaG90KCk7XG4gICAgICB9XG4gICAgfSwgW3JhdGlvLCByZXNvbHV0aW9uLCBsZWdlbmQsIHNldEV4cG9ydEltYWdlU2V0dGluZywgcmV0cmlldmVOZXdTY3JlZW5zaG90XSk7XG5cbiAgICAvLyBNZW1vaXplIHNpemUgY2FsY3VsYXRpb25zXG4gICAgY29uc3Qge3NpemUsIHdpZHRoLCBoZWlnaHR9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0ge1xuICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyB8fCAxLFxuICAgICAgICBoZWlnaHQ6IGltYWdlU2l6ZS5pbWFnZUggfHwgMVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBzcGxpdE1hcHMubGVuZ3RoID4gMTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNpemUsXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoIC8gKGlzU3BsaXQgPyAyIDogMSksXG4gICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgIH07XG4gICAgfSwgW2ltYWdlU2l6ZS5pbWFnZVcsIGltYWdlU2l6ZS5pbWFnZUgsIHNwbGl0TWFwcy5sZW5ndGhdKTtcblxuICAgIC8vIE1lbW9pemUgbWFwIHN0YXRlXG4gICAgY29uc3QgbmV3TWFwU3RhdGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGJhc2VNYXBTdGF0ZSA9IHtcbiAgICAgICAgLi4ubWFwU3RhdGUsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHpvb206IG1hcFN0YXRlLnpvb20gKyAoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgfTtcblxuICAgICAgaWYgKGNlbnRlcikge1xuICAgICAgICBjb25zdCByZW5kZXJlZExheWVycyA9IG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllcnMuZmlsdGVyKFxuICAgICAgICAgIChsYXllciwgaWR4KSA9PlxuICAgICAgICAgICAgbGF5ZXIuaWQgIT09IEdFT0NPREVSX0xBWUVSX0lEICYmXG4gICAgICAgICAgICBsYXllci5zaG91bGRSZW5kZXJMYXllcihtYXBGaWVsZHMudmlzU3RhdGUubGF5ZXJEYXRhW2lkeF0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGZpbmRNYXBCb3VuZHMocmVuZGVyZWRMYXllcnMpO1xuICAgICAgICBjb25zdCBjZW50ZXJBbmRab29tID0gZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMoYm91bmRzLCB7d2lkdGgsIGhlaWdodH0pO1xuICAgICAgICBpZiAoY2VudGVyQW5kWm9vbSkge1xuICAgICAgICAgIGNvbnN0IHpvb20gPSBOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKSA/IGNlbnRlckFuZFpvb20uem9vbSA6IG1hcFN0YXRlLnpvb207XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmJhc2VNYXBTdGF0ZSxcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgICAgICAgICB6b29tOiB6b29tICsgTnVtYmVyKE1hdGgubG9nMihzY2FsZSkgfHwgMClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBiYXNlTWFwU3RhdGU7XG4gICAgfSwgW21hcFN0YXRlLCB3aWR0aCwgaGVpZ2h0LCBzY2FsZSwgY2VudGVyLCBtYXBGaWVsZHMudmlzU3RhdGVdKTtcblxuICAgIC8vIE1lbW9pemUgbWFwIHByb3BzXG4gICAgY29uc3QgbWFwUHJvcHMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgLi4ubWFwRmllbGRzLFxuICAgICAgICBtYXBTdHlsZTogc2NhbGVkTWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlOiBuZXdNYXBTdGF0ZSxcbiAgICAgICAgbWFwQ29udHJvbHM6IHtcbiAgICAgICAgICBtYXBMZWdlbmQ6IHtcbiAgICAgICAgICAgIHNob3c6IEJvb2xlYW4obGVnZW5kKSxcbiAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIHNldHRpbmdzOiBtYXBGaWVsZHMubWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3NcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIE1hcENvbXBvbmVudDogTWFwLFxuICAgICAgICBvbk1hcFJlbmRlcixcbiAgICAgICAgaXNFeHBvcnQ6IHRydWUsXG4gICAgICAgIGRlY2tHbFByb3BzOiB7XG4gICAgICAgICAgLi4ubWFwRmllbGRzLmRlY2tHbFByb3BzLFxuICAgICAgICAgIGdsT3B0aW9uczoge1xuICAgICAgICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxuICAgICAgICAgICAgdXNlRGV2aWNlUGl4ZWxzOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmlzU3RhdGU6IHtcbiAgICAgICAgICAuLi5tYXBGaWVsZHMudmlzU3RhdGUsXG4gICAgICAgICAgZWZmZWN0czogcGxvdEVmZmVjdHNcbiAgICAgICAgfSxcbiAgICAgICAgLy8gYWxsb3cgb3ZlcnJpZGluZyB0aGUgbGVnZW5kIHBhbmVsIGxvZ28gaW4gZXhwb3J0XG4gICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgIH0pLFxuICAgICAgW21hcEZpZWxkcywgc2NhbGVkTWFwU3R5bGUsIG5ld01hcFN0YXRlLCBsZWdlbmQsIG9uTWFwUmVuZGVyLCBwbG90RWZmZWN0cywgbG9nb0NvbXBvbmVudF1cbiAgICApO1xuXG4gICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IG1hcENvbnRhaW5lcnMgPSAhaXNTcGxpdCA/IChcbiAgICAgIDxNYXBDb250YWluZXIgaW5kZXg9ezB9IHByaW1hcnk9e3RydWV9IHsuLi5tYXBQcm9wc30gLz5cbiAgICApIDogKFxuICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwicGxvdC1jb250YWluZXItbWFwc1wiIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgIHtzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICA8TWFwQ29udGFpbmVyIGtleT17aW5kZXh9IGluZGV4PXtpbmRleH0gcHJpbWFyeT17aW5kZXggPT09IDF9IHsuLi5tYXBQcm9wc30gLz5cbiAgICAgICAgKSl9XG4gICAgICA8L01hcHNMYXlvdXQ+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkUGxvdENvbnRhaW5lciBjbGFzc05hbWU9XCJleHBvcnQtbWFwLWluc3RhbmNlXCIgbGVnZW5kWm9vbT17bGVnZW5kWm9vbX0+XG4gICAgICAgIDxTdHlsZWRNYXBDb250YWluZXIgcmVmPXtwbG90dGluZ0FyZWFSZWZ9IHdpZHRoPXtzaXplLndpZHRofSBoZWlnaHQ9e3NpemUuaGVpZ2h0fT5cbiAgICAgICAgICA8TWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICA8L01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgPC9TdHlsZWRNYXBDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFBsb3RDb250YWluZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdC5tZW1vKFBs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QUNGO1FBQ0R0RSxRQUFRLEVBQUE1RCxhQUFBLENBQUFBLGFBQUEsS0FDSCtDLFNBQVMsQ0FBQ2EsUUFBUTtVQUNyQkMsT0FBTyxFQUFFTTtRQUFXLEVBQ3JCO1FBQ0Q7UUFDQVosYUFBYSxFQUFiQTtNQUFhO0lBQUEsQ0FDYixFQUNGLENBQUNSLFNBQVMsRUFBRTZCLGNBQWMsRUFBRXNCLFdBQVcsRUFBRXZELE1BQU0sRUFBRWlELFdBQVcsRUFBRXpCLFdBQVcsRUFBRVosYUFBYSxDQUMxRixDQUFDO0lBRUQsSUFBTW9CLE9BQU8sR0FBRzFCLFNBQVMsQ0FBQy9DLE1BQU0sR0FBRyxDQUFDO0lBQ3BDLElBQU1pSSxhQUFhLEdBQUcsQ0FBQ3hELE9BQU8sZ0JBQzVCdEgsTUFBQSxZQUFBK0ssYUFBQSxDQUFDaEcsWUFBWSxNQUFBaUcsU0FBQTtNQUFDQyxLQUFLLEVBQUUsQ0FBRTtNQUFDQyxPQUFPLEVBQUU7SUFBSyxHQUFLbkIsUUFBUSxDQUFHLENBQUMsZ0JBRXZEL0osTUFBQSxZQUFBK0ssYUFBQSxDQUFDL0YsVUFBVTtNQUFDMUIsU0FBUyxFQUFDLHFCQUFxQjtNQUFDeUQsUUFBUSxFQUFFOEI7SUFBWSxHQUMvRGpELFNBQVMsQ0FBQ2EsR0FBRyxDQUFDLFVBQUM2RCxRQUFRLEVBQUVXLEtBQUs7TUFBQSxvQkFDN0JqTCxNQUFBLFlBQUErSyxhQUFBLENBQUNoRyxZQUFZLE1BQUFpRyxTQUFBO1FBQUNHLEdBQUcsRUFBRUYsS0FBTTtRQUFDQSxLQUFLLEVBQUVBLEtBQU07UUFBQ0MsT0FBTyxFQUFFRCxLQUFLLEtBQUs7TUFBRSxHQUFLbEIsUUFBUSxDQUFHLENBQUM7SUFBQSxDQUMvRSxDQUNTLENBQ2I7SUFFRCxvQkFDRS9KLE1BQUEsWUFBQStLLGFBQUEsQ0FBQ3hHLG1CQUFtQjtNQUFDakIsU0FBUyxFQUFDLHFCQUFxQjtNQUFDc0IsVUFBVSxFQUFFQTtJQUFXLGdCQUMxRTVFLE1BQUEsWUFBQStLLGFBQUEsQ0FBQ2xHLGtCQUFrQjtNQUFDdUcsR0FBRyxFQUFFakYsZUFBZ0I7TUFBQ3JCLEtBQUssRUFBRThELElBQUksQ0FBQzlELEtBQU07TUFBQ3JCLE1BQU0sRUFBRW1GLElBQUksQ0FBQ25GO0lBQU8sZ0JBQy9FekQsTUFBQSxZQUFBK0ssYUFBQSxDQUFDcEssb0JBQUEsQ0FBQTBLLDJCQUEyQjtNQUFDdEUsUUFBUSxFQUFFOEI7SUFBWSxHQUNoRGlDLGFBQzBCLENBQ1gsQ0FDRCxDQUFDO0VBRTFCO0VBRUEsb0JBQU9RLGlCQUFLLENBQUNDLElBQUksQ0FBQ3RHLGFBQWEsQ0FBQztBQUNsQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -41,6 +41,7 @@ export declare type LayerPanelHeaderProps = {
41
41
  visible: ComponentType<Partial<BaseProps>>;
42
42
  hidden: ComponentType<Partial<BaseProps>>;
43
43
  enableConfig: ComponentType<Partial<BaseProps>>;
44
+ disableConfig?: ComponentType<Partial<BaseProps>>;
44
45
  resetIsValid: ComponentType<Partial<BaseProps>>;
45
46
  duplicate: ComponentType<Partial<BaseProps>>;
46
47
  crosshairs: ComponentType<Partial<BaseProps>>;