@kepler.gl/components 3.3.0-alpha.1 → 3.3.0-alpha.3

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.
Files changed (126) hide show
  1. package/dist/common/action-panel.js +1 -1
  2. package/dist/common/color-legend.d.ts +1 -1
  3. package/dist/common/data-table/canvas.d.ts +1 -1
  4. package/dist/common/data-table/index.d.ts +1 -1
  5. package/dist/common/dnd-layer-items.d.ts +4 -0
  6. package/dist/common/dnd-layer-items.js +6 -2
  7. package/dist/common/error-boundary.d.ts +1 -1
  8. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  9. package/dist/common/flex-container.d.ts +15 -7
  10. package/dist/common/icon-button.d.ts +53 -6
  11. package/dist/common/icons/arrow-down-full.d.ts +2 -1
  12. package/dist/common/icons/arrow-down-full.js +1 -1
  13. package/dist/common/icons/folder.d.ts +10 -0
  14. package/dist/common/icons/folder.js +51 -0
  15. package/dist/common/icons/index.d.ts +1 -0
  16. package/dist/common/icons/index.js +8 -1
  17. package/dist/common/icons/timeline-marker.d.ts +2 -1
  18. package/dist/common/icons/timeline-marker.js +1 -1
  19. package/dist/common/item-selector/dropdown-list.d.ts +1 -1
  20. package/dist/common/item-selector/dropdown-list.js +1 -1
  21. package/dist/common/item-selector/dropdown-select.d.ts +13 -7
  22. package/dist/common/item-selector/item-selector.d.ts +1 -1
  23. package/dist/common/item-selector/item-selector.js +1 -1
  24. package/dist/common/item-selector/typeahead.d.ts +4 -4
  25. package/dist/common/item-selector/typeahead.js +1 -3
  26. package/dist/common/layout-splitter.d.ts +45 -0
  27. package/dist/common/layout-splitter.js +231 -0
  28. package/dist/common/line-chart.d.ts +7 -3
  29. package/dist/common/line-chart.js +179 -59
  30. package/dist/common/modal.d.ts +11 -5
  31. package/dist/common/modal.js +1 -1
  32. package/dist/common/portaled.d.ts +17 -17
  33. package/dist/common/range-slider.js +1 -3
  34. package/dist/common/slider/mouse-event.d.ts +1 -1
  35. package/dist/common/slider/mouse-event.js +1 -2
  36. package/dist/common/slider/slider-bar-handle.d.ts +1 -1
  37. package/dist/common/slider/slider-bar-handle.js +1 -1
  38. package/dist/common/slider/slider-handle.d.ts +3 -3
  39. package/dist/common/slider/slider-handle.js +1 -1
  40. package/dist/common/slider/slider.d.ts +4 -4
  41. package/dist/common/slider/slider.js +1 -1
  42. package/dist/common/styled-components.d.ts +627 -177
  43. package/dist/common/vertical-toolbar.d.ts +12 -2
  44. package/dist/container.d.ts +3 -2
  45. package/dist/container.js +2 -2
  46. package/dist/context.d.ts +1 -1
  47. package/dist/context.js +1 -1
  48. package/dist/dnd-context.d.ts +4 -3
  49. package/dist/dnd-context.js +64 -9
  50. package/dist/effects/compact-color-picker.d.ts +1 -1
  51. package/dist/effects/effect-configurator.d.ts +2 -4
  52. package/dist/effects/effect-time-configurator.js +1 -1
  53. package/dist/effects/effect-type-list-item.d.ts +1 -1
  54. package/dist/filters/components.d.ts +7 -5
  55. package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
  56. package/dist/geocoder-panel.d.ts +2 -2
  57. package/dist/geocoder-panel.js +6 -7
  58. package/dist/hooks/use-dnd-layers.d.ts +4 -3
  59. package/dist/hooks/use-dnd-layers.js +103 -42
  60. package/dist/index.d.ts +3 -2
  61. package/dist/index.js +38 -9
  62. package/dist/injector.d.ts +1 -1
  63. package/dist/kepler-gl.d.ts +167 -27
  64. package/dist/kepler-gl.js +3 -2
  65. package/dist/loading-indicator.d.ts +1 -1
  66. package/dist/map/layer-hover-info.d.ts +7 -3
  67. package/dist/map/layer-hover-info.js +58 -22
  68. package/dist/map/map-control-panel.js +3 -2
  69. package/dist/map/map-control-toolbar.d.ts +29 -4
  70. package/dist/map/map-control.d.ts +11 -4
  71. package/dist/map/map-control.js +7 -6
  72. package/dist/map/map-legend-panel.d.ts +11 -2
  73. package/dist/map/map-legend-panel.js +19 -2
  74. package/dist/map/map-legend.d.ts +19 -2
  75. package/dist/map/map-legend.js +141 -27
  76. package/dist/map/split-map-button.d.ts +6 -1
  77. package/dist/map/split-map-button.js +113 -19
  78. package/dist/map-container.js +20 -3
  79. package/dist/maps-layout.d.ts +3 -0
  80. package/dist/maps-layout.js +86 -26
  81. package/dist/modal-container.d.ts +1 -1
  82. package/dist/modals/cloud-tile.d.ts +1 -2
  83. package/dist/modals/export-map-modal/components.d.ts +9 -5
  84. package/dist/modals/export-video-modal.d.ts +3 -0
  85. package/dist/modals/export-video-modal.js +79 -46
  86. package/dist/modals/export-video-modal.spec.js +2 -2
  87. package/dist/modals/hubble-utils.d.ts +16 -0
  88. package/dist/modals/hubble-utils.js +98 -1
  89. package/dist/modals/modal-dialog.d.ts +1 -1
  90. package/dist/modals/share-map-modal.d.ts +2 -4
  91. package/dist/modals/swipe-composite-utils.d.ts +10 -0
  92. package/dist/modals/swipe-composite-utils.js +108 -0
  93. package/dist/modals/swipe-export-settings.d.ts +24 -0
  94. package/dist/modals/swipe-export-settings.js +370 -0
  95. package/dist/modals/swipe-export-video-container.d.ts +122 -0
  96. package/dist/modals/swipe-export-video-container.js +630 -0
  97. package/dist/modals/swipe-export-video-preview.d.ts +68 -0
  98. package/dist/modals/swipe-export-video-preview.js +339 -0
  99. package/dist/modals/tilesets-modals/tileset-raster-form.js +1 -5
  100. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
  101. package/dist/side-panel/layer-manager.d.ts +5 -4
  102. package/dist/side-panel/layer-manager.js +16 -4
  103. package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
  104. package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
  105. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
  106. package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
  107. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
  108. package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -1
  109. package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
  110. package/dist/side-panel/layer-panel/layer-configurator.js +130 -82
  111. package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
  112. package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
  113. package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
  114. package/dist/side-panel/layer-panel/layer-list.js +197 -40
  115. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
  116. package/dist/side-panel/panel-tab.d.ts +1 -3
  117. package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
  118. package/dist/side-panel/side-bar.d.ts +1 -6
  119. package/dist/side-panel.d.ts +1 -1
  120. package/dist/types.d.ts +2 -2
  121. package/dist/types.js +1 -1
  122. package/package.json +32 -36
  123. package/dist/map/layer-selector-panel.d.ts +0 -21
  124. package/dist/map/layer-selector-panel.js +0 -85
  125. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
  126. package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
@@ -4,7 +4,7 @@ type StyledContainerProps = {
4
4
  $left: number;
5
5
  $bottomOffset: number;
6
6
  };
7
- export declare const StyledContainer: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledContainerProps>>;
7
+ export declare const StyledContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledContainerProps> & StyledContainerProps, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledContainerProps> & StyledContainerProps, never>>> & string;
8
8
  type LoadingIndicatorProps = {
9
9
  isVisible?: boolean;
10
10
  activeSidePanel?: boolean;
@@ -4,9 +4,13 @@ import PropTypes from 'prop-types';
4
4
  import { Layer } from '@kepler.gl/layers';
5
5
  import { LayerHoverProp } from '@kepler.gl/reducers';
6
6
  import { VisState } from '@kepler.gl/schemas';
7
- export declare const StyledLayerName: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<Omit<import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
8
- ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
9
- }, never>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>, keyof React.Component<any, {}, any>>;
7
+ export declare const StyledLayerName: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>, "as" | "forwardedAs"> & {
8
+ as?: import("styled-components").WebTarget | undefined;
9
+ forwardedAs?: import("styled-components").WebTarget | undefined;
10
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>, "as" | "forwardedAs"> & {
11
+ as?: import("styled-components").WebTarget | undefined;
12
+ forwardedAs?: import("styled-components").WebTarget | undefined;
13
+ }, never>>> & string;
10
14
  export type EntryInfoProps = Merge<LayerHoverProp, {
11
15
  fieldsToShow: TooltipField[];
12
16
  }>;
@@ -126,26 +126,24 @@ var EntryInfoRow = function EntryInfoRow(_ref4) {
126
126
  var value = fieldValueAccessor(field, data instanceof _utils.DataRow ? {
127
127
  index: data._rowIndex
128
128
  } : data);
129
-
130
- // Handle WMS layer data in comparison mode - WMS layers don't have comparable field data
131
129
  var primaryValue = null;
132
130
  var displayDeltaValue = null;
133
131
  if (primaryData) {
134
132
  try {
135
- // Only calculate primary value if primaryData has a compatible structure
136
- if (primaryData instanceof _utils.DataRow || primaryData && (0, _typeof2["default"])(primaryData) === 'object' && 'index' in primaryData) {
137
- primaryValue = fieldValueAccessor(field, primaryData instanceof _utils.DataRow ? {
133
+ if (primaryData instanceof _utils.DataRow) {
134
+ primaryValue = fieldValueAccessor(field, {
138
135
  index: primaryData._rowIndex
139
- } : primaryData);
140
- displayDeltaValue = (0, _reducers.getTooltipDisplayDeltaValue)({
141
- field: field,
142
- value: value,
143
- primaryValue: primaryValue,
144
- compareType: compareType
145
136
  });
137
+ } else if (Array.isArray(primaryData) || (0, _typeof2["default"])(primaryData) === 'object' && primaryData) {
138
+ primaryValue = fieldValueAccessor(field, primaryData);
146
139
  }
140
+ displayDeltaValue = (0, _reducers.getTooltipDisplayDeltaValue)({
141
+ field: field,
142
+ value: value,
143
+ primaryValue: primaryValue,
144
+ compareType: compareType
145
+ });
147
146
  } catch (error) {
148
- // If there's an error accessing primaryData (e.g., WMS layer data), skip comparison
149
147
  primaryValue = null;
150
148
  }
151
149
  }
@@ -161,15 +159,16 @@ var EntryInfoRow = function EntryInfoRow(_ref4) {
161
159
  isComparing: Boolean(primaryData)
162
160
  });
163
161
  };
164
-
165
- // TODO: supporting comparative value for aggregated cells as well
166
162
  var CellInfo = function CellInfo(_ref5) {
167
163
  var fieldsToShow = _ref5.fieldsToShow,
168
164
  data = _ref5.data,
169
- layer = _ref5.layer;
165
+ layer = _ref5.layer,
166
+ primaryData = _ref5.primaryData,
167
+ compareType = _ref5.compareType;
170
168
  var _ref6 = layer.config,
171
169
  colorField = _ref6.colorField,
172
170
  sizeField = _ref6.sizeField;
171
+ var isComparing = Boolean(primaryData);
173
172
  var colorValue = (0, _react.useMemo)(function () {
174
173
  if (colorField && layer.visualChannels.color) {
175
174
  var item = fieldsToShow.find(function (field) {
@@ -196,41 +195,78 @@ var CellInfo = function CellInfo(_ref5) {
196
195
  }
197
196
  return null;
198
197
  }, [fieldsToShow, sizeField, layer, data.elevationValue]);
198
+ var colorDelta = (0, _react.useMemo)(function () {
199
+ if (!primaryData || !colorField || !('colorValue' in primaryData)) return null;
200
+ return (0, _reducers.getTooltipDisplayDeltaValue)({
201
+ field: colorField,
202
+ value: data.colorValue,
203
+ primaryValue: primaryData.colorValue,
204
+ compareType: compareType
205
+ });
206
+ }, [primaryData, colorField, data.colorValue, compareType]);
207
+ var elevationDelta = (0, _react.useMemo)(function () {
208
+ if (!primaryData || !sizeField || !('elevationValue' in primaryData)) return null;
209
+ return (0, _reducers.getTooltipDisplayDeltaValue)({
210
+ field: sizeField,
211
+ value: data.elevationValue,
212
+ primaryValue: primaryData.elevationValue,
213
+ compareType: compareType
214
+ });
215
+ }, [primaryData, sizeField, data.elevationValue, compareType]);
199
216
  var aggregatedData = (0, _react.useMemo)(function () {
200
217
  if (data.aggregatedData && fieldsToShow) {
201
218
  return fieldsToShow.reduce(function (acc, field) {
202
219
  var _data$aggregatedData;
203
220
  var dataForField = (_data$aggregatedData = data.aggregatedData) === null || _data$aggregatedData === void 0 ? void 0 : _data$aggregatedData[field.name];
204
221
  if (dataForField !== null && dataForField !== void 0 && dataForField.measure && field.name !== (colorField === null || colorField === void 0 ? void 0 : colorField.name)) {
222
+ var _primaryData$aggregat;
223
+ var primaryDataForField = primaryData === null || primaryData === void 0 || (_primaryData$aggregat = primaryData.aggregatedData) === null || _primaryData$aggregat === void 0 ? void 0 : _primaryData$aggregat[field.name];
224
+ var deltaValue = primaryDataForField ? (0, _reducers.getTooltipDisplayDeltaValue)({
225
+ field: {
226
+ type: 'real',
227
+ name: field.name
228
+ },
229
+ value: dataForField.value != null ? Number(dataForField.value) : null,
230
+ primaryValue: primaryDataForField.value != null ? Number(primaryDataForField.value) : null,
231
+ compareType: compareType
232
+ }) : null;
205
233
  acc.push({
206
234
  name: "".concat((0, _utils.capitalizeFirstLetter)(dataForField.measure), " of ").concat(field.name),
207
- value: dataForField.value
235
+ value: dataForField.value,
236
+ deltaValue: deltaValue
208
237
  });
209
238
  }
210
239
  return acc;
211
240
  }, []);
212
241
  }
213
242
  return [];
214
- }, [data.aggregatedData, fieldsToShow, colorField === null || colorField === void 0 ? void 0 : colorField.name]);
243
+ }, [data.aggregatedData, fieldsToShow, colorField === null || colorField === void 0 ? void 0 : colorField.name, primaryData, compareType]);
215
244
  var colorMeasure = layer.getVisualChannelDescription('color').measure;
216
245
  var sizeMeasure = layer.getVisualChannelDescription('size').measure;
217
246
  return /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement(Row, {
218
247
  name: 'total points',
219
248
  key: "count",
220
- value: String(data.points && data.points.length)
249
+ value: String(data.points && data.points.length),
250
+ isComparing: isComparing
221
251
  }), colorField && layer.visualChannels.color && colorMeasure ? /*#__PURE__*/_react["default"].createElement(Row, {
222
252
  name: colorMeasure,
223
253
  key: "color",
224
- value: colorValue || 'N/A'
254
+ value: colorValue || 'N/A',
255
+ deltaValue: colorDelta,
256
+ isComparing: isComparing
225
257
  }) : null, sizeField && layer.visualChannels.size && sizeMeasure ? /*#__PURE__*/_react["default"].createElement(Row, {
226
258
  name: sizeMeasure,
227
259
  key: "size",
228
- value: elevationValue || 'N/A'
260
+ value: elevationValue || 'N/A',
261
+ deltaValue: elevationDelta,
262
+ isComparing: isComparing
229
263
  }) : null, aggregatedData.map(function (dataForField, idx) {
230
264
  return /*#__PURE__*/_react["default"].createElement(Row, {
231
265
  name: dataForField.name,
232
266
  key: "data_".concat(idx),
233
- value: dataForField.value || 'N/A'
267
+ value: dataForField.value != null ? String(dataForField.value) : 'N/A',
268
+ deltaValue: dataForField.deltaValue,
269
+ isComparing: isComparing
234
270
  });
235
271
  }));
236
272
  };
@@ -280,4 +316,4 @@ var LayerHoverInfoFactory = function LayerHoverInfoFactory() {
280
316
  return LayerHoverInfo;
281
317
  };
282
318
  var _default = exports["default"] = LayerHoverInfoFactory;
283
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdHJ1bmNhdGUiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfcHJvcFR5cGVzIiwiX2NvbW1vblV0aWxzIiwiX3V0aWxzIiwiX3JlZHVjZXJzIiwiX3JlYWN0SW50bCIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZExheWVyTmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJDZW50ZXJGbGV4Ym94IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJTdHlsZWRUYWJsZSIsInRhYmxlIiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsIm5lZ2F0aXZlQnRuQWN0QmdkIiwiU3R5bGVkRGl2aWRlciIsImRpdiIsInBhbmVsQm9yZGVyQ29sb3IiLCJUT09MVElQX1ZBTFVFX01BWF9MRU5HVEgiLCJUb29sdGlwSW1hZ2UiLCJfcmVmIiwic3JjIiwiaW1nUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0Iiwic3RhcnRzV2l0aCIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiUm93IiwiX3JlZjIiLCJuYW1lIiwidmFsdWUiLCJkZWx0YVZhbHVlIiwidXJsIiwiaXNDb21wYXJpbmciLCJtYXRjaCIsImRpc3BsYXlWYWx1ZSIsImxlbmd0aCIsInRydW5jYXRlIiwiYXNJbWciLCJ0ZXN0IiwiY2xhc3NOYW1lIiwia2V5IiwicmVwbGFjZSIsInRhcmdldCIsInJlbCIsImhyZWYiLCJjb25jYXQiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJ0b1N0cmluZyIsImNoYXJBdCIsIkVudHJ5SW5mbyIsIl9yZWYzIiwiZmllbGRzVG9TaG93IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIm1hcCIsIml0ZW0iLCJFbnRyeUluZm9Sb3ciLCJfZXh0ZW5kczIiLCJfcmVmNCIsImxheWVyIiwiZmllbGRzIiwiZGF0YSIsInByaW1hcnlEYXRhIiwiY29tcGFyZVR5cGUiLCJjdXJyZW50VGltZSIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiYWNjZXNzVlNGaWVsZFZhbHVlIiwiRGF0YVJvdyIsImluZGV4IiwiX3Jvd0luZGV4IiwicHJpbWFyeVZhbHVlIiwiZGlzcGxheURlbHRhVmFsdWUiLCJfdHlwZW9mMiIsImdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSIsImVycm9yIiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsImRpc3BsYXlOYW1lIiwiQm9vbGVhbiIsIkNlbGxJbmZvIiwiX3JlZjUiLCJfcmVmNiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplRmllbGQiLCJjb2xvclZhbHVlIiwidXNlTWVtbyIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJmaW5kIiwiZWxldmF0aW9uVmFsdWUiLCJzaXplIiwiYWdncmVnYXRlZERhdGEiLCJyZWR1Y2UiLCJhY2MiLCJfZGF0YSRhZ2dyZWdhdGVkRGF0YSIsImRhdGFGb3JGaWVsZCIsIm1lYXN1cmUiLCJwdXNoIiwiY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIiwiY29sb3JNZWFzdXJlIiwiZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uIiwic2l6ZU1lYXN1cmUiLCJTdHJpbmciLCJwb2ludHMiLCJpZHgiLCJMYXllckhvdmVySW5mb0ZhY3RvcnkiLCJMYXllckhvdmVySW5mbyIsImludGwiLCJ1c2VJbnRsIiwiaGFzRmllbGRzVG9TaG93IiwiZmllbGRWYWx1ZXMiLCJrZXlzIiwid21zRmVhdHVyZURhdGEiLCJMYXllcnMiLCJoZWlnaHQiLCJsYWJlbCIsInVuZGVmaW5lZCIsIl9yZWY3IiwiX3JlZjgiLCJsYWJlbE1lc3NhZ2UiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJpc0FnZ3JlZ2F0ZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwiYW55Iiwib2JqZWN0Iiwib25lT2ZUeXBlIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL2xheWVyLWhvdmVyLWluZm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdCwgdXNlUmVmLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB0cnVuY2F0ZSBmcm9tICdsb2Rhc2gvdHJ1bmNhdGUnO1xuaW1wb3J0IHtDb21wYXJlVHlwZSwgRmllbGQsIE1lcmdlLCBUb29sdGlwRmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94fSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RGF0YVJvd30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbkxheWVySG92ZXJEYXRhLFxuICBMYXllckhvdmVyUHJvcCxcbiAgZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlLFxuICBnZXRUb29sdGlwRGlzcGxheVZhbHVlXG59IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRMYXllck5hbWUgPSBzdHlsZWQoQ2VudGVyRmxleGJveClgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC40M3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRUYWJsZSA9IHN0eWxlZC50YWJsZWBcbiAgJiAucm93X19kZWx0YS12YWx1ZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcblxuICAgICYucG9zaXRpdmUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLnN1Y2Nlc3N9O1xuICAgIH1cblxuICAgICYubmVnYXRpdmUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubmVnYXRpdmVCdG5BY3RCZ2R9O1xuICAgIH1cbiAgfVxuICAmIC5yb3dfX25hbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAmIC5yb3dfX3ZhbHVlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREaXZpZGVyID0gc3R5bGVkLmRpdmBcbiAgLy8gb2Zmc2V0IGRpdmlkZXIgdG8gcmVhY2ggcG9wb3ZlciBlZGdlXG4gIG1hcmdpbi1sZWZ0OiAtMTRweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCb3JkZXJDb2xvcn07XG5gO1xuXG5pbnRlcmZhY2UgUm93UHJvcHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRlbHRhVmFsdWU/OiBzdHJpbmcgfCBudWxsO1xuICB1cmw/OiBzdHJpbmc7XG4gIGlzQ29tcGFyaW5nPzogYm9vbGVhbjtcbn1cblxuY29uc3QgVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIID0gMjU2O1xuXG4vKipcbiAqIEltYWdlIGNvbXBvbmVudCB0aGF0IGNsZWFucyB1cCByZXNvdXJjZXMgb24gdW5tb3VudCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcy5cbiAqIFJldm9rZXMgYmxvYi9vYmplY3QgVVJMcyBhbmQgY2xlYXJzIHRoZSBpbWFnZSBzcmMgdG8gcmVsZWFzZSBtZW1vcnkuXG4gKi9cbmNvbnN0IFRvb2x0aXBJbWFnZTogUmVhY3QuRkM8e3NyYzogc3RyaW5nfT4gPSAoe3NyY30pID0+IHtcbiAgY29uc3QgaW1nUmVmID0gdXNlUmVmPEhUTUxJbWFnZUVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIFJldm9rZSBibG9iIFVSTHMgdG8gZnJlZSBtZW1vcnlcbiAgICAgIGlmIChzcmMgJiYgKHNyYy5zdGFydHNXaXRoKCdibG9iOicpIHx8IHNyYy5zdGFydHNXaXRoKCdkYXRhOicpKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoc3JjKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIGlnbm9yZSBlcnJvcnMgZnJvbSBub24tb2JqZWN0IFVSTHNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2xlYXIgdGhlIGltYWdlIHNyYyB0byByZWxlYXNlIHRoZSBkZWNvZGVkIGltYWdlIGZyb20gbWVtb3J5XG4gICAgICBpZiAoaW1nUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgaW1nUmVmLmN1cnJlbnQuc3JjID0gJyc7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3NyY10pO1xuXG4gIHJldHVybiA8aW1nIHJlZj17aW1nUmVmfSBzcmM9e3NyY30gLz47XG59O1xuXG5jb25zdCBSb3c6IFJlYWN0LkZDPFJvd1Byb3BzPiA9ICh7bmFtZSwgdmFsdWUsIGRlbHRhVmFsdWUsIHVybCwgaXNDb21wYXJpbmd9KSA9PiB7XG4gIC8vIFNldCAndXJsJyB0byAndmFsdWUnIGlmIGl0IGxvb2tzIGxpa2UgYSB1cmxcbiAgaWYgKCF1cmwgJiYgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5tYXRjaCgvXmh0dHAvKSkge1xuICAgIHVybCA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3QgZGlzcGxheVZhbHVlID1cbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IFRPT0xUSVBfVkFMVUVfTUFYX0xFTkdUSFxuICAgICAgPyB0cnVuY2F0ZSh2YWx1ZSwge2xlbmd0aDogVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIfSlcbiAgICAgIDogdmFsdWU7XG5cbiAgY29uc3QgYXNJbWcgPSAvPGltZz4vLnRlc3QobmFtZSk7XG4gIHJldHVybiAoXG4gICAgPHRyIGNsYXNzTmFtZT1cImxheWVyLWhvdmVyLWluZm9fX3Jvd1wiIGtleT17bmFtZX0+XG4gICAgICA8dGQgY2xhc3NOYW1lPVwicm93X19uYW1lXCI+e2FzSW1nID8gbmFtZS5yZXBsYWNlKCc8aW1nPicsICcnKSA6IG5hbWV9PC90ZD5cbiAgICAgIDx0ZCBjbGFzc05hbWU9XCJyb3dfX3ZhbHVlXCI+XG4gICAgICAgIHthc0ltZyA/IChcbiAgICAgICAgICA8VG9vbHRpcEltYWdlIHNyYz17dmFsdWV9IC8+XG4gICAgICAgICkgOiB1cmwgPyAoXG4gICAgICAgICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGhyZWY9e3VybH0+XG4gICAgICAgICAgICB7ZGlzcGxheVZhbHVlfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8c3Bhbj57ZGlzcGxheVZhbHVlfTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgIDwvdGQ+XG4gICAgICB7aXNDb21wYXJpbmcgPyAoXG4gICAgICAgIDx0ZFxuICAgICAgICAgIGNsYXNzTmFtZT17YHJvd19fZGVsdGEtdmFsdWUgJHtcbiAgICAgICAgICAgIG5vdE51bGxvclVuZGVmaW5lZChkZWx0YVZhbHVlKVxuICAgICAgICAgICAgICA/IGRlbHRhVmFsdWU/LnRvU3RyaW5nKCkuY2hhckF0KDApID09PSAnKydcbiAgICAgICAgICAgICAgICA/ICdwb3NpdGl2ZSdcbiAgICAgICAgICAgICAgICA6ICduZWdhdGl2ZSdcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH1gfVxuICAgICAgICA+XG4gICAgICAgICAge2RlbHRhVmFsdWUgPz8gJyd9XG4gICAgICAgIDwvdGQ+XG4gICAgICApIDogbnVsbH1cbiAgICA8L3RyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgRW50cnlJbmZvUHJvcHMgPSBNZXJnZTxMYXllckhvdmVyUHJvcCwge2ZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW119PjtcblxuY29uc3QgRW50cnlJbmZvOiBSZWFjdC5GQzxFbnRyeUluZm9Qcm9wcz4gPSAoe2ZpZWxkc1RvU2hvdywgLi4ucHJvcHN9KSA9PiAoXG4gIDx0Ym9keT5cbiAgICB7ZmllbGRzVG9TaG93Lm1hcChpdGVtID0+IChcbiAgICAgIDxFbnRyeUluZm9Sb3cga2V5PXtpdGVtLm5hbWV9IGl0ZW09e2l0ZW19IHsuLi5wcm9wc30gLz5cbiAgICApKX1cbiAgPC90Ym9keT5cbik7XG5cbmV4cG9ydCB0eXBlIEVudHJ5SW5mb1Jvd1Byb3BzID0ge1xuICBkYXRhOiBMYXllckhvdmVyUHJvcFsnZGF0YSddO1xuICBmaWVsZHM6IEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbiAgcHJpbWFyeURhdGE/OiBMYXllckhvdmVyUHJvcFsncHJpbWFyeURhdGEnXTtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbiAgY3VycmVudFRpbWU/OiBWaXNTdGF0ZVsnYW5pbWF0aW9uQ29uZmlnJ11bJ2N1cnJlbnRUaW1lJ107XG4gIGl0ZW06IFRvb2x0aXBGaWVsZDtcbn07XG5cbmNvbnN0IEVudHJ5SW5mb1JvdzogUmVhY3QuRkM8RW50cnlJbmZvUm93UHJvcHM+ID0gKHtcbiAgbGF5ZXIsXG4gIGl0ZW0sXG4gIGZpZWxkcyxcbiAgZGF0YSxcbiAgcHJpbWFyeURhdGEsXG4gIGNvbXBhcmVUeXBlLFxuICBjdXJyZW50VGltZVxufSkgPT4ge1xuICBjb25zdCBmaWVsZElkeCA9IGZpZWxkcy5maW5kSW5kZXgoZiA9PiBmLm5hbWUgPT09IGl0ZW0ubmFtZSk7XG4gIGlmIChmaWVsZElkeCA8IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBmaWVsZCA9IGZpZWxkc1tmaWVsZElkeF07XG4gIGNvbnN0IGZpZWxkVmFsdWVBY2Nlc3NvciA9IGxheWVyLmFjY2Vzc1ZTRmllbGRWYWx1ZShmaWVsZCwgY3VycmVudFRpbWUpO1xuICBjb25zdCB2YWx1ZSA9IGZpZWxkVmFsdWVBY2Nlc3NvcihmaWVsZCwgZGF0YSBpbnN0YW5jZW9mIERhdGFSb3cgPyB7aW5kZXg6IGRhdGEuX3Jvd0luZGV4fSA6IGRhdGEpO1xuXG4gIC8vIEhhbmRsZSBXTVMgbGF5ZXIgZGF0YSBpbiBjb21wYXJpc29uIG1vZGUgLSBXTVMgbGF5ZXJzIGRvbid0IGhhdmUgY29tcGFyYWJsZSBmaWVsZCBkYXRhXG4gIGxldCBwcmltYXJ5VmFsdWUgPSBudWxsO1xuICBsZXQgZGlzcGxheURlbHRhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChwcmltYXJ5RGF0YSkge1xuICAgIHRyeSB7XG4gICAgICAvLyBPbmx5IGNhbGN1bGF0ZSBwcmltYXJ5IHZhbHVlIGlmIHByaW1hcnlEYXRhIGhhcyBhIGNvbXBhdGlibGUgc3RydWN0dXJlXG4gICAgICBpZiAoXG4gICAgICAgIHByaW1hcnlEYXRhIGluc3RhbmNlb2YgRGF0YVJvdyB8fFxuICAgICAgICAocHJpbWFyeURhdGEgJiYgdHlwZW9mIHByaW1hcnlEYXRhID09PSAnb2JqZWN0JyAmJiAnaW5kZXgnIGluIHByaW1hcnlEYXRhKVxuICAgICAgKSB7XG4gICAgICAgIHByaW1hcnlWYWx1ZSA9IGZpZWxkVmFsdWVBY2Nlc3NvcihcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBwcmltYXJ5RGF0YSBpbnN0YW5jZW9mIERhdGFSb3cgPyB7aW5kZXg6IHByaW1hcnlEYXRhLl9yb3dJbmRleH0gOiBwcmltYXJ5RGF0YVxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBwcmltYXJ5VmFsdWUsXG4gICAgICAgICAgY29tcGFyZVR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYW4gZXJyb3IgYWNjZXNzaW5nIHByaW1hcnlEYXRhIChlLmcuLCBXTVMgbGF5ZXIgZGF0YSksIHNraXAgY29tcGFyaXNvblxuICAgICAgcHJpbWFyeVZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZCwgdmFsdWV9KTtcblxuICByZXR1cm4gKFxuICAgIDxSb3dcbiAgICAgIG5hbWU9e2ZpZWxkLmRpc3BsYXlOYW1lIHx8IGZpZWxkLm5hbWV9XG4gICAgICB2YWx1ZT17ZGlzcGxheVZhbHVlfVxuICAgICAgZGVsdGFWYWx1ZT17ZGlzcGxheURlbHRhVmFsdWV9XG4gICAgICBpc0NvbXBhcmluZz17Qm9vbGVhbihwcmltYXJ5RGF0YSl9XG4gICAgLz5cbiAgKTtcbn07XG5cbi8vIFRPRE86IHN1cHBvcnRpbmcgY29tcGFyYXRpdmUgdmFsdWUgZm9yIGFnZ3JlZ2F0ZWQgY2VsbHMgYXMgd2VsbFxuY29uc3QgQ2VsbEluZm8gPSAoe1xuICBmaWVsZHNUb1Nob3csXG4gIGRhdGEsXG4gIGxheWVyXG59OiB7XG4gIGRhdGE6IEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGE7XG4gIGZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbn0pID0+IHtcbiAgY29uc3Qge2NvbG9yRmllbGQsIHNpemVGaWVsZH0gPSBsYXllci5jb25maWcgYXMgYW55O1xuXG4gIGNvbnN0IGNvbG9yVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoY29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvcikge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IGNvbG9yRmllbGQubmFtZSk7XG4gICAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSh7aXRlbSwgZmllbGQ6IGNvbG9yRmllbGQsIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWV9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtmaWVsZHNUb1Nob3csIGNvbG9yRmllbGQsIGxheWVyLCBkYXRhLmNvbG9yVmFsdWVdKTtcblxuICBjb25zdCBlbGV2YXRpb25WYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSkge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IHNpemVGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogc2l6ZUZpZWxkLCB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgc2l6ZUZpZWxkLCBsYXllciwgZGF0YS5lbGV2YXRpb25WYWx1ZV0pO1xuXG4gIGNvbnN0IGFnZ3JlZ2F0ZWREYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGRhdGEuYWdncmVnYXRlZERhdGEgJiYgZmllbGRzVG9TaG93KSB7XG4gICAgICByZXR1cm4gZmllbGRzVG9TaG93LnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhRm9yRmllbGQgPSBkYXRhLmFnZ3JlZ2F0ZWREYXRhPy5bZmllbGQubmFtZV07XG4gICAgICAgIGlmIChkYXRhRm9yRmllbGQ/Lm1lYXN1cmUgJiYgZmllbGQubmFtZSAhPT0gY29sb3JGaWVsZD8ubmFtZSkge1xuICAgICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NhcGl0YWxpemVGaXJzdExldHRlcihkYXRhRm9yRmllbGQubWVhc3VyZSl9IG9mICR7ZmllbGQubmFtZX1gLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGFGb3JGaWVsZC52YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSBhcyB7bmFtZTogc3RyaW5nOyB2YWx1ZT86IHN0cmluZ31bXSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSwgW2RhdGEuYWdncmVnYXRlZERhdGEsIGZpZWxkc1RvU2hvdywgY29sb3JGaWVsZD8ubmFtZV0pO1xuXG4gIGNvbnN0IGNvbG9yTWVhc3VyZSA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbignY29sb3InKS5tZWFzdXJlO1xuICBjb25zdCBzaXplTWVhc3VyZSA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbignc2l6ZScpLm1lYXN1cmU7XG4gIHJldHVybiAoXG4gICAgPHRib2R5PlxuICAgICAgPFJvdyBuYW1lPXsndG90YWwgcG9pbnRzJ30ga2V5PVwiY291bnRcIiB2YWx1ZT17U3RyaW5nKGRhdGEucG9pbnRzICYmIGRhdGEucG9pbnRzLmxlbmd0aCl9IC8+XG4gICAgICB7Y29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvciAmJiBjb2xvck1lYXN1cmUgPyAoXG4gICAgICAgIDxSb3cgbmFtZT17Y29sb3JNZWFzdXJlfSBrZXk9XCJjb2xvclwiIHZhbHVlPXtjb2xvclZhbHVlIHx8ICdOL0EnfSAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7c2l6ZUZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLnNpemUgJiYgc2l6ZU1lYXN1cmUgPyAoXG4gICAgICAgIDxSb3cgbmFtZT17c2l6ZU1lYXN1cmV9IGtleT1cInNpemVcIiB2YWx1ZT17ZWxldmF0aW9uVmFsdWUgfHwgJ04vQSd9IC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHthZ2dyZWdhdGVkRGF0YS5tYXAoKGRhdGFGb3JGaWVsZCwgaWR4KSA9PiAoXG4gICAgICAgIDxSb3cgbmFtZT17ZGF0YUZvckZpZWxkLm5hbWV9IGtleT17YGRhdGFfJHtpZHh9YH0gdmFsdWU9e2RhdGFGb3JGaWVsZC52YWx1ZSB8fCAnTi9BJ30gLz5cbiAgICAgICkpfVxuICAgIDwvdGJvZHk+XG4gICk7XG59O1xuXG5jb25zdCBMYXllckhvdmVySW5mb0ZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IExheWVySG92ZXJJbmZvID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtkYXRhLCBsYXllcn0gPSBwcm9wcztcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGlmICghZGF0YSB8fCAhbGF5ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0ZpZWxkc1RvU2hvdyA9XG4gICAgICAoZGF0YS5maWVsZFZhbHVlcyAmJiBPYmplY3Qua2V5cyhkYXRhLmZpZWxkVmFsdWVzKS5sZW5ndGggPiAwKSB8fFxuICAgICAgKGRhdGEud21zRmVhdHVyZURhdGEgJiYgZGF0YS53bXNGZWF0dXJlRGF0YS5sZW5ndGggPiAwKSB8fFxuICAgICAgKHByb3BzLmZpZWxkc1RvU2hvdyAmJiBwcm9wcy5maWVsZHNUb1Nob3cubGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXAtcG9wb3Zlcl9fbGF5ZXItaW5mb1wiPlxuICAgICAgICA8U3R5bGVkTGF5ZXJOYW1lIGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1uYW1lXCI+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIxMnB4XCIgLz5cbiAgICAgICAgICB7cHJvcHMubGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L1N0eWxlZExheWVyTmFtZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgICAgPFN0eWxlZFRhYmxlIGNsYXNzTmFtZT17cHJvcHMucHJpbWFyeURhdGEgPyAnY29tcGFyaW5nJyA6IHVuZGVmaW5lZH0+XG4gICAgICAgICAge2RhdGEud21zRmVhdHVyZURhdGEgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhLm1hcCgoe25hbWUsIHZhbHVlfSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxSb3cga2V5PXtpfSBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogZGF0YS5maWVsZFZhbHVlcyA/IChcbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAge2RhdGEuZmllbGRWYWx1ZXMubWFwKCh7bGFiZWxNZXNzYWdlLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogbGFiZWxNZXNzYWdlfSl9IHZhbHVlPXt2YWx1ZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICkgOiBwcm9wcy5sYXllci5pc0FnZ3JlZ2F0ZWQgPyAoXG4gICAgICAgICAgICA8Q2VsbEluZm8gey4uLnByb3BzfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8RW50cnlJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZFRhYmxlPlxuICAgICAgICB7aGFzRmllbGRzVG9TaG93ICYmIDxTdHlsZWREaXZpZGVyIC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckhvdmVySW5mby5wcm9wVHlwZXMgPSB7XG4gICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBmaWVsZHNUb1Nob3c6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRhdGE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLCBQcm9wVHlwZXMub2JqZWN0XSlcbiAgfTtcbiAgcmV0dXJuIExheWVySG92ZXJJbmZvO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJIb3ZlckluZm9GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUksa0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQU1BLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUFtQyxJQUFBVyxTQUFBO0FBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQW5CbkM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBakIsd0JBQUFpQixDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLFFBQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMs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
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdHJ1bmNhdGUiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfcHJvcFR5cGVzIiwiX2NvbW1vblV0aWxzIiwiX3V0aWxzIiwiX3JlZHVjZXJzIiwiX3JlYWN0SW50bCIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZExheWVyTmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJDZW50ZXJGbGV4Ym94IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJTdHlsZWRUYWJsZSIsInRhYmxlIiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsIm5lZ2F0aXZlQnRuQWN0QmdkIiwiU3R5bGVkRGl2aWRlciIsImRpdiIsInBhbmVsQm9yZGVyQ29sb3IiLCJUT09MVElQX1ZBTFVFX01BWF9MRU5HVEgiLCJUb29sdGlwSW1hZ2UiLCJfcmVmIiwic3JjIiwiaW1nUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0Iiwic3RhcnRzV2l0aCIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiUm93IiwiX3JlZjIiLCJuYW1lIiwidmFsdWUiLCJkZWx0YVZhbHVlIiwidXJsIiwiaXNDb21wYXJpbmciLCJtYXRjaCIsImRpc3BsYXlWYWx1ZSIsImxlbmd0aCIsInRydW5jYXRlIiwiYXNJbWciLCJ0ZXN0IiwiY2xhc3NOYW1lIiwia2V5IiwicmVwbGFjZSIsInRhcmdldCIsInJlbCIsImhyZWYiLCJjb25jYXQiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJ0b1N0cmluZyIsImNoYXJBdCIsIkVudHJ5SW5mbyIsIl9yZWYzIiwiZmllbGRzVG9TaG93IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIm1hcCIsIml0ZW0iLCJFbnRyeUluZm9Sb3ciLCJfZXh0ZW5kczIiLCJfcmVmNCIsImxheWVyIiwiZmllbGRzIiwiZGF0YSIsInByaW1hcnlEYXRhIiwiY29tcGFyZVR5cGUiLCJjdXJyZW50VGltZSIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiYWNjZXNzVlNGaWVsZFZhbHVlIiwiRGF0YVJvdyIsImluZGV4IiwiX3Jvd0luZGV4IiwicHJpbWFyeVZhbHVlIiwiZGlzcGxheURlbHRhVmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJfdHlwZW9mMiIsImdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSIsImVycm9yIiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsImRpc3BsYXlOYW1lIiwiQm9vbGVhbiIsIkNlbGxJbmZvIiwiX3JlZjUiLCJfcmVmNiIsImNvbmZpZyIsImNvbG9yRmllbGQiLCJzaXplRmllbGQiLCJjb2xvclZhbHVlIiwidXNlTWVtbyIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJmaW5kIiwiZWxldmF0aW9uVmFsdWUiLCJzaXplIiwiY29sb3JEZWx0YSIsImVsZXZhdGlvbkRlbHRhIiwiYWdncmVnYXRlZERhdGEiLCJyZWR1Y2UiLCJhY2MiLCJfZGF0YSRhZ2dyZWdhdGVkRGF0YSIsImRhdGFGb3JGaWVsZCIsIm1lYXN1cmUiLCJfcHJpbWFyeURhdGEkYWdncmVnYXQiLCJwcmltYXJ5RGF0YUZvckZpZWxkIiwidHlwZSIsIk51bWJlciIsInB1c2giLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJjb2xvck1lYXN1cmUiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJzaXplTWVhc3VyZSIsIlN0cmluZyIsInBvaW50cyIsImlkeCIsIkxheWVySG92ZXJJbmZvRmFjdG9yeSIsIkxheWVySG92ZXJJbmZvIiwiaW50bCIsInVzZUludGwiLCJoYXNGaWVsZHNUb1Nob3ciLCJmaWVsZFZhbHVlcyIsImtleXMiLCJ3bXNGZWF0dXJlRGF0YSIsIkxheWVycyIsImhlaWdodCIsImxhYmVsIiwidW5kZWZpbmVkIiwiX3JlZjciLCJfcmVmOCIsImxhYmVsTWVzc2FnZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImlzQWdncmVnYXRlZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5T2YiLCJhbnkiLCJvYmplY3QiLCJvbmVPZlR5cGUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItaG92ZXItaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHRydW5jYXRlIGZyb20gJ2xvZGFzaC90cnVuY2F0ZSc7XG5pbXBvcnQge0NvbXBhcmVUeXBlLCBGaWVsZCwgTWVyZ2UsIFRvb2x0aXBGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0NlbnRlckZsZXhib3h9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0xheWVyc30gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhUm93fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGEsXG4gIExheWVySG92ZXJQcm9wLFxuICBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUsXG4gIGdldFRvb2x0aXBEaXNwbGF5VmFsdWVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZExheWVyTmFtZSA9IHN0eWxlZChDZW50ZXJGbGV4Ym94KWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjQzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRhYmxlID0gc3R5bGVkLnRhYmxlYFxuICAmIC5yb3dfX2RlbHRhLXZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuXG4gICAgJi5wb3NpdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ub3RpZmljYXRpb25Db2xvcnMuc3VjY2Vzc307XG4gICAgfVxuXG4gICAgJi5uZWdhdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5uZWdhdGl2ZUJ0bkFjdEJnZH07XG4gICAgfVxuICB9XG4gICYgLnJvd19fbmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gICYgLnJvd19fdmFsdWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICAvLyBvZmZzZXQgZGl2aWRlciB0byByZWFjaCBwb3BvdmVyIGVkZ2VcbiAgbWFyZ2luLWxlZnQ6IC0xNHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbmA7XG5cbmludGVyZmFjZSBSb3dQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGVsdGFWYWx1ZT86IHN0cmluZyB8IG51bGw7XG4gIHVybD86IHN0cmluZztcbiAgaXNDb21wYXJpbmc/OiBib29sZWFuO1xufVxuXG5jb25zdCBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEggPSAyNTY7XG5cbi8qKlxuICogSW1hZ2UgY29tcG9uZW50IHRoYXQgY2xlYW5zIHVwIHJlc291cmNlcyBvbiB1bm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLlxuICogUmV2b2tlcyBibG9iL29iamVjdCBVUkxzIGFuZCBjbGVhcnMgdGhlIGltYWdlIHNyYyB0byByZWxlYXNlIG1lbW9yeS5cbiAqL1xuY29uc3QgVG9vbHRpcEltYWdlOiBSZWFjdC5GQzx7c3JjOiBzdHJpbmd9PiA9ICh7c3JjfSkgPT4ge1xuICBjb25zdCBpbWdSZWYgPSB1c2VSZWY8SFRNTEltYWdlRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gUmV2b2tlIGJsb2IgVVJMcyB0byBmcmVlIG1lbW9yeVxuICAgICAgaWYgKHNyYyAmJiAoc3JjLnN0YXJ0c1dpdGgoJ2Jsb2I6JykgfHwgc3JjLnN0YXJ0c1dpdGgoJ2RhdGE6JykpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChzcmMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gaWdub3JlIGVycm9ycyBmcm9tIG5vbi1vYmplY3QgVVJMc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDbGVhciB0aGUgaW1hZ2Ugc3JjIHRvIHJlbGVhc2UgdGhlIGRlY29kZWQgaW1hZ2UgZnJvbSBtZW1vcnlcbiAgICAgIGlmIChpbWdSZWYuY3VycmVudCkge1xuICAgICAgICBpbWdSZWYuY3VycmVudC5zcmMgPSAnJztcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc3JjXSk7XG5cbiAgcmV0dXJuIDxpbWcgcmVmPXtpbWdSZWZ9IHNyYz17c3JjfSAvPjtcbn07XG5cbmNvbnN0IFJvdzogUmVhY3QuRkM8Um93UHJvcHM+ID0gKHtuYW1lLCB2YWx1ZSwgZGVsdGFWYWx1ZSwgdXJsLCBpc0NvbXBhcmluZ30pID0+IHtcbiAgLy8gU2V0ICd1cmwnIHRvICd2YWx1ZScgaWYgaXQgbG9va3MgbGlrZSBhIHVybFxuICBpZiAoIXVybCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLm1hdGNoKC9eaHR0cC8pKSB7XG4gICAgdXJsID0gdmFsdWU7XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIXG4gICAgICA/IHRydW5jYXRlKHZhbHVlLCB7bGVuZ3RoOiBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEh9KVxuICAgICAgOiB2YWx1ZTtcblxuICBjb25zdCBhc0ltZyA9IC88aW1nPi8udGVzdChuYW1lKTtcbiAgcmV0dXJuIChcbiAgICA8dHIgY2xhc3NOYW1lPVwibGF5ZXItaG92ZXItaW5mb19fcm93XCIga2V5PXtuYW1lfT5cbiAgICAgIDx0ZCBjbGFzc05hbWU9XCJyb3dfX25hbWVcIj57YXNJbWcgPyBuYW1lLnJlcGxhY2UoJzxpbWc+JywgJycpIDogbmFtZX08L3RkPlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fdmFsdWVcIj5cbiAgICAgICAge2FzSW1nID8gKFxuICAgICAgICAgIDxUb29sdGlwSW1hZ2Ugc3JjPXt2YWx1ZX0gLz5cbiAgICAgICAgKSA6IHVybCA/IChcbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIHtkaXNwbGF5VmFsdWV9XG4gICAgICAgICAgPC9hPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxzcGFuPntkaXNwbGF5VmFsdWV9PC9zcGFuPlxuICAgICAgICApfVxuICAgICAgPC90ZD5cbiAgICAgIHtpc0NvbXBhcmluZyA/IChcbiAgICAgICAgPHRkXG4gICAgICAgICAgY2xhc3NOYW1lPXtgcm93X19kZWx0YS12YWx1ZSAke1xuICAgICAgICAgICAgbm90TnVsbG9yVW5kZWZpbmVkKGRlbHRhVmFsdWUpXG4gICAgICAgICAgICAgID8gZGVsdGFWYWx1ZT8udG9TdHJpbmcoKS5jaGFyQXQoMCkgPT09ICcrJ1xuICAgICAgICAgICAgICAgID8gJ3Bvc2l0aXZlJ1xuICAgICAgICAgICAgICAgIDogJ25lZ2F0aXZlJ1xuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfWB9XG4gICAgICAgID5cbiAgICAgICAgICB7ZGVsdGFWYWx1ZSA/PyAnJ31cbiAgICAgICAgPC90ZD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvdHI+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBFbnRyeUluZm9Qcm9wcyA9IE1lcmdlPExheWVySG92ZXJQcm9wLCB7ZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXX0+O1xuXG5jb25zdCBFbnRyeUluZm86IFJlYWN0LkZDPEVudHJ5SW5mb1Byb3BzPiA9ICh7ZmllbGRzVG9TaG93LCAuLi5wcm9wc30pID0+IChcbiAgPHRib2R5PlxuICAgIHtmaWVsZHNUb1Nob3cubWFwKGl0ZW0gPT4gKFxuICAgICAgPEVudHJ5SW5mb1JvdyBrZXk9e2l0ZW0ubmFtZX0gaXRlbT17aXRlbX0gey4uLnByb3BzfSAvPlxuICAgICkpfVxuICA8L3Rib2R5PlxuKTtcblxuZXhwb3J0IHR5cGUgRW50cnlJbmZvUm93UHJvcHMgPSB7XG4gIGRhdGE6IExheWVySG92ZXJQcm9wWydkYXRhJ107XG4gIGZpZWxkczogRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xuICBwcmltYXJ5RGF0YT86IExheWVySG92ZXJQcm9wWydwcmltYXJ5RGF0YSddO1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xuICBjdXJyZW50VGltZT86IFZpc1N0YXRlWydhbmltYXRpb25Db25maWcnXVsnY3VycmVudFRpbWUnXTtcbiAgaXRlbTogVG9vbHRpcEZpZWxkO1xufTtcblxuY29uc3QgRW50cnlJbmZvUm93OiBSZWFjdC5GQzxFbnRyeUluZm9Sb3dQcm9wcz4gPSAoe1xuICBsYXllcixcbiAgaXRlbSxcbiAgZmllbGRzLFxuICBkYXRhLFxuICBwcmltYXJ5RGF0YSxcbiAgY29tcGFyZVR5cGUsXG4gIGN1cnJlbnRUaW1lXG59KSA9PiB7XG4gIGNvbnN0IGZpZWxkSWR4ID0gZmllbGRzLmZpbmRJbmRleChmID0+IGYubmFtZSA9PT0gaXRlbS5uYW1lKTtcbiAgaWYgKGZpZWxkSWR4IDwgMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzW2ZpZWxkSWR4XTtcbiAgY29uc3QgZmllbGRWYWx1ZUFjY2Vzc29yID0gbGF5ZXIuYWNjZXNzVlNGaWVsZFZhbHVlKGZpZWxkLCBjdXJyZW50VGltZSk7XG4gIGNvbnN0IHZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCBkYXRhIGluc3RhbmNlb2YgRGF0YVJvdyA/IHtpbmRleDogZGF0YS5fcm93SW5kZXh9IDogZGF0YSk7XG5cbiAgbGV0IHByaW1hcnlWYWx1ZSA9IG51bGw7XG4gIGxldCBkaXNwbGF5RGVsdGFWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHByaW1hcnlEYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChwcmltYXJ5RGF0YSBpbnN0YW5jZW9mIERhdGFSb3cpIHtcbiAgICAgICAgcHJpbWFyeVZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCB7aW5kZXg6IHByaW1hcnlEYXRhLl9yb3dJbmRleH0pO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHByaW1hcnlEYXRhKSB8fCAodHlwZW9mIHByaW1hcnlEYXRhID09PSAnb2JqZWN0JyAmJiBwcmltYXJ5RGF0YSkpIHtcbiAgICAgICAgcHJpbWFyeVZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCBwcmltYXJ5RGF0YSk7XG4gICAgICB9XG5cbiAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBwcmltYXJ5VmFsdWUsXG4gICAgICAgIGNvbXBhcmVUeXBlXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbWFyeVZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZCwgdmFsdWV9KTtcblxuICByZXR1cm4gKFxuICAgIDxSb3dcbiAgICAgIG5hbWU9e2ZpZWxkLmRpc3BsYXlOYW1lIHx8IGZpZWxkLm5hbWV9XG4gICAgICB2YWx1ZT17ZGlzcGxheVZhbHVlfVxuICAgICAgZGVsdGFWYWx1ZT17ZGlzcGxheURlbHRhVmFsdWV9XG4gICAgICBpc0NvbXBhcmluZz17Qm9vbGVhbihwcmltYXJ5RGF0YSl9XG4gICAgLz5cbiAgKTtcbn07XG5cbmNvbnN0IENlbGxJbmZvID0gKHtcbiAgZmllbGRzVG9TaG93LFxuICBkYXRhLFxuICBsYXllcixcbiAgcHJpbWFyeURhdGEsXG4gIGNvbXBhcmVUeXBlXG59OiB7XG4gIGRhdGE6IEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGE7XG4gIGZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbiAgcHJpbWFyeURhdGE/OiBBZ2dyZWdhdGlvbkxheWVySG92ZXJEYXRhIHwgbnVsbDtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbn0pID0+IHtcbiAgY29uc3Qge2NvbG9yRmllbGQsIHNpemVGaWVsZH0gPSBsYXllci5jb25maWcgYXMgYW55O1xuICBjb25zdCBpc0NvbXBhcmluZyA9IEJvb2xlYW4ocHJpbWFyeURhdGEpO1xuXG4gIGNvbnN0IGNvbG9yVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoY29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvcikge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IGNvbG9yRmllbGQubmFtZSk7XG4gICAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSh7aXRlbSwgZmllbGQ6IGNvbG9yRmllbGQsIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWV9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtmaWVsZHNUb1Nob3csIGNvbG9yRmllbGQsIGxheWVyLCBkYXRhLmNvbG9yVmFsdWVdKTtcblxuICBjb25zdCBlbGV2YXRpb25WYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSkge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IHNpemVGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogc2l6ZUZpZWxkLCB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgc2l6ZUZpZWxkLCBsYXllciwgZGF0YS5lbGV2YXRpb25WYWx1ZV0pO1xuXG4gIGNvbnN0IGNvbG9yRGVsdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIXByaW1hcnlEYXRhIHx8ICFjb2xvckZpZWxkIHx8ICEoJ2NvbG9yVmFsdWUnIGluIHByaW1hcnlEYXRhKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSh7XG4gICAgICBmaWVsZDogY29sb3JGaWVsZCxcbiAgICAgIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWUsXG4gICAgICBwcmltYXJ5VmFsdWU6IHByaW1hcnlEYXRhLmNvbG9yVmFsdWUsXG4gICAgICBjb21wYXJlVHlwZVxuICAgIH0pO1xuICB9LCBbcHJpbWFyeURhdGEsIGNvbG9yRmllbGQsIGRhdGEuY29sb3JWYWx1ZSwgY29tcGFyZVR5cGVdKTtcblxuICBjb25zdCBlbGV2YXRpb25EZWx0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghcHJpbWFyeURhdGEgfHwgIXNpemVGaWVsZCB8fCAhKCdlbGV2YXRpb25WYWx1ZScgaW4gcHJpbWFyeURhdGEpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgIGZpZWxkOiBzaXplRmllbGQsXG4gICAgICB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZSxcbiAgICAgIHByaW1hcnlWYWx1ZTogcHJpbWFyeURhdGEuZWxldmF0aW9uVmFsdWUsXG4gICAgICBjb21wYXJlVHlwZVxuICAgIH0pO1xuICB9LCBbcHJpbWFyeURhdGEsIHNpemVGaWVsZCwgZGF0YS5lbGV2YXRpb25WYWx1ZSwgY29tcGFyZVR5cGVdKTtcblxuICBjb25zdCBhZ2dyZWdhdGVkRGF0YSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChkYXRhLmFnZ3JlZ2F0ZWREYXRhICYmIGZpZWxkc1RvU2hvdykge1xuICAgICAgcmV0dXJuIGZpZWxkc1RvU2hvdy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YUZvckZpZWxkID0gZGF0YS5hZ2dyZWdhdGVkRGF0YT8uW2ZpZWxkLm5hbWVdO1xuICAgICAgICAgIGlmIChkYXRhRm9yRmllbGQ/Lm1lYXN1cmUgJiYgZmllbGQubmFtZSAhPT0gY29sb3JGaWVsZD8ubmFtZSkge1xuICAgICAgICAgICAgY29uc3QgcHJpbWFyeURhdGFGb3JGaWVsZCA9IHByaW1hcnlEYXRhPy5hZ2dyZWdhdGVkRGF0YT8uW2ZpZWxkLm5hbWVdO1xuICAgICAgICAgICAgY29uc3QgZGVsdGFWYWx1ZSA9IHByaW1hcnlEYXRhRm9yRmllbGRcbiAgICAgICAgICAgICAgPyBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgZmllbGQ6IHt0eXBlOiAncmVhbCcsIG5hbWU6IGZpZWxkLm5hbWV9IGFzIEZpZWxkLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGRhdGFGb3JGaWVsZC52YWx1ZSAhPSBudWxsID8gTnVtYmVyKGRhdGFGb3JGaWVsZC52YWx1ZSkgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgcHJpbWFyeVZhbHVlOlxuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5RGF0YUZvckZpZWxkLnZhbHVlICE9IG51bGwgPyBOdW1iZXIocHJpbWFyeURhdGFGb3JGaWVsZC52YWx1ZSkgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgY29tcGFyZVR5cGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBhY2MucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGAke2NhcGl0YWxpemVGaXJzdExldHRlcihkYXRhRm9yRmllbGQubWVhc3VyZSl9IG9mICR7ZmllbGQubmFtZX1gLFxuICAgICAgICAgICAgICB2YWx1ZTogZGF0YUZvckZpZWxkLnZhbHVlLFxuICAgICAgICAgICAgICBkZWx0YVZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAgW10gYXMge25hbWU6IHN0cmluZzsgdmFsdWU/OiBzdHJpbmc7IGRlbHRhVmFsdWU6IHN0cmluZyB8IG51bGx9W11cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSwgW2RhdGEuYWdncmVnYXRlZERhdGEsIGZpZWxkc1RvU2hvdywgY29sb3JGaWVsZD8ubmFtZSwgcHJpbWFyeURhdGEsIGNvbXBhcmVUeXBlXSk7XG5cbiAgY29uc3QgY29sb3JNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdjb2xvcicpLm1lYXN1cmU7XG4gIGNvbnN0IHNpemVNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdzaXplJykubWVhc3VyZTtcbiAgcmV0dXJuIChcbiAgICA8dGJvZHk+XG4gICAgICA8Um93XG4gICAgICAgIG5hbWU9eyd0b3RhbCBwb2ludHMnfVxuICAgICAgICBrZXk9XCJjb3VudFwiXG4gICAgICAgIHZhbHVlPXtTdHJpbmcoZGF0YS5wb2ludHMgJiYgZGF0YS5wb2ludHMubGVuZ3RoKX1cbiAgICAgICAgaXNDb21wYXJpbmc9e2lzQ29tcGFyaW5nfVxuICAgICAgLz5cbiAgICAgIHtjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yICYmIGNvbG9yTWVhc3VyZSA/IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIG5hbWU9e2NvbG9yTWVhc3VyZX1cbiAgICAgICAgICBrZXk9XCJjb2xvclwiXG4gICAgICAgICAgdmFsdWU9e2NvbG9yVmFsdWUgfHwgJ04vQSd9XG4gICAgICAgICAgZGVsdGFWYWx1ZT17Y29sb3JEZWx0YX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSAmJiBzaXplTWVhc3VyZSA/IChcbiAgICAgICAgPFJvd1xuICAgICAgICAgIG5hbWU9e3NpemVNZWFzdXJlfVxuICAgICAgICAgIGtleT1cInNpemVcIlxuICAgICAgICAgIHZhbHVlPXtlbGV2YXRpb25WYWx1ZSB8fCAnTi9BJ31cbiAgICAgICAgICBkZWx0YVZhbHVlPXtlbGV2YXRpb25EZWx0YX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHthZ2dyZWdhdGVkRGF0YS5tYXAoKGRhdGFGb3JGaWVsZCwgaWR4KSA9PiAoXG4gICAgICAgIDxSb3dcbiAgICAgICAgICBuYW1lPXtkYXRhRm9yRmllbGQubmFtZX1cbiAgICAgICAgICBrZXk9e2BkYXRhXyR7aWR4fWB9XG4gICAgICAgICAgdmFsdWU9e2RhdGFGb3JGaWVsZC52YWx1ZSAhPSBudWxsID8gU3RyaW5nKGRhdGFGb3JGaWVsZC52YWx1ZSkgOiAnTi9BJ31cbiAgICAgICAgICBkZWx0YVZhbHVlPXtkYXRhRm9yRmllbGQuZGVsdGFWYWx1ZX1cbiAgICAgICAgICBpc0NvbXBhcmluZz17aXNDb21wYXJpbmd9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L3Rib2R5PlxuICApO1xufTtcblxuY29uc3QgTGF5ZXJIb3ZlckluZm9GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBMYXllckhvdmVySW5mbyA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7ZGF0YSwgbGF5ZXJ9ID0gcHJvcHM7XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgICBpZiAoIWRhdGEgfHwgIWxheWVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNGaWVsZHNUb1Nob3cgPVxuICAgICAgKGRhdGEuZmllbGRWYWx1ZXMgJiYgT2JqZWN0LmtleXMoZGF0YS5maWVsZFZhbHVlcykubGVuZ3RoID4gMCkgfHxcbiAgICAgIChkYXRhLndtc0ZlYXR1cmVEYXRhICYmIGRhdGEud21zRmVhdHVyZURhdGEubGVuZ3RoID4gMCkgfHxcbiAgICAgIChwcm9wcy5maWVsZHNUb1Nob3cgJiYgcHJvcHMuZmllbGRzVG9TaG93Lmxlbmd0aCA+IDApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJfX2xheWVyLWluZm9cIj5cbiAgICAgICAgPFN0eWxlZExheWVyTmFtZSBjbGFzc05hbWU9XCJtYXAtcG9wb3Zlcl9fbGF5ZXItbmFtZVwiPlxuICAgICAgICAgIDxMYXllcnMgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICAgICAge3Byb3BzLmxheWVyLmNvbmZpZy5sYWJlbH1cbiAgICAgICAgPC9TdHlsZWRMYXllck5hbWU+XG4gICAgICAgIHtoYXNGaWVsZHNUb1Nob3cgJiYgPFN0eWxlZERpdmlkZXIgLz59XG4gICAgICAgIDxTdHlsZWRUYWJsZSBjbGFzc05hbWU9e3Byb3BzLnByaW1hcnlEYXRhID8gJ2NvbXBhcmluZycgOiB1bmRlZmluZWR9PlxuICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhID8gKFxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICB7ZGF0YS53bXNGZWF0dXJlRGF0YS5tYXAoKHtuYW1lLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgKSA6IGRhdGEuZmllbGRWYWx1ZXMgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLmZpZWxkVmFsdWVzLm1hcCgoe2xhYmVsTWVzc2FnZSwgdmFsdWV9LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPFJvdyBrZXk9e2l9IG5hbWU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IGxhYmVsTWVzc2FnZX0pfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogcHJvcHMubGF5ZXIuaXNBZ2dyZWdhdGVkID8gKFxuICAgICAgICAgICAgPENlbGxJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPEVudHJ5SW5mbyB7Li4ucHJvcHN9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRUYWJsZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTGF5ZXJIb3ZlckluZm8ucHJvcFR5cGVzID0ge1xuICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSksXG4gICAgZmllbGRzVG9TaG93OiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBsYXllcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkYXRhOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSwgUHJvcFR5cGVzLm9iamVjdF0pXG4gIH07XG4gIHJldHVybiBMYXllckhvdmVySW5mbztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExheWVySG92ZXJJbmZvRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFFQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFNQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFBbUMsSUFBQVcsU0FBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFuQm5DO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWpCLHdCQUFBaUIsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxH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
@@ -13,6 +13,7 @@ var _localization = require("@kepler.gl/localization");
13
13
  var _styledComponents2 = require("../common/styled-components");
14
14
  var _icons = require("../common/icons");
15
15
  var _switch = _interopRequireDefault(require("../common/switch"));
16
+ var _constants = require("@kepler.gl/constants");
16
17
  var _classnames = _interopRequireDefault(require("classnames"));
17
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
18
19
  // Copyright contributors to the kepler.gl project
@@ -94,7 +95,7 @@ function MapControlPanelFactory() {
94
95
  marginBottom: '8px !important'
95
96
  },
96
97
  className: (0, _classnames["default"])('map-control-panel', className)
97
- }, mapState !== null && mapState !== void 0 && mapState.isSplit && isViewportUnsyncAllowed ? /*#__PURE__*/_react["default"].createElement(StyledMapControlPanelHeaderSplitViewportsTools, null, /*#__PURE__*/_react["default"].createElement(StyledSBCenterFlexbox, {
98
+ }, mapState !== null && mapState !== void 0 && mapState.isSplit && isViewportUnsyncAllowed && (mapState === null || mapState === void 0 ? void 0 : mapState.mapSplitMode) !== _constants.MapSplitMode.SWIPE_COMPARE ? /*#__PURE__*/_react["default"].createElement(StyledMapControlPanelHeaderSplitViewportsTools, null, /*#__PURE__*/_react["default"].createElement(StyledSBCenterFlexbox, {
98
99
  style: {
99
100
  paddingBottom: '6px'
100
101
  }
@@ -137,4 +138,4 @@ function MapControlPanelFactory() {
137
138
  return MapControlPanel;
138
139
  }
139
140
  var _default = exports["default"] = MapControlPanelFactory;
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2ljb25zIiwiX3N3aXRjaCIsIl9jbGFzc25hbWVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcFBhbmVsQmFja2dyb3VuZENvbG9yIiwiU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudCIsImF0dHJzIiwiY2xhc3NOYW1lIiwic2lkZVBhbmVsU2Nyb2xsQmFyIiwibWFwQ29udHJvbCIsIndpZHRoIiwiaXNFeHBvcnQiLCJTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXIiLCJtYXBQYW5lbEhlYWRlckJhY2tncm91bmRDb2xvciIsImZvbnRGYW1pbHkiLCJ0aXRsZVRleHRDb2xvciIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHMiLCJTdHlsZWRTQkNlbnRlckZsZXhib3giLCJDZW50ZXJGbGV4Ym94IiwiU3R5bGVkRGlzYWJsZWFibGVUZXh0Iiwic3BhbiIsImRpc2FibGVkIiwiU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2giLCJTd2l0Y2giLCJTdHlsZWRJY29uIiwiSWNvblJvdW5kU21hbGwiLCJhY3RpdmVDb2xvciIsImZsb2F0aW5nQnRuQWN0Q29sb3IiLCJNYXBDb250cm9sUGFuZWxGYWN0b3J5IiwiTWFwQ29udHJvbFBhbmVsIiwiUmVhY3QiLCJtZW1vIiwiX3JlZiIsImNoaWxkcmVuIiwiaGVhZGVyIiwicGlubmFibGUiLCJkaXNhYmxlQ2xvc2UiLCJvblBpbkNsaWNrIiwib25DbGljayIsIl9yZWYkc2NhbGUiLCJzY2FsZSIsImxvZ29Db21wb25lbnQiLCJtYXBTdGF0ZSIsIm9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiX3JlZiRjbGFzc05hbWUiLCJfcmVmMiIsImlzVmlld3BvcnRTeW5jZWQiLCJpc1pvb21Mb2NrZWQiLCJvblVubG9ja1ZpZXdwb3J0Q2hhbmdlIiwidXNlQ2FsbGJhY2siLCJvblN5bmNab29tQ2hhbmdlIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwidHJhbnNmb3JtIiwiY29uY2F0IiwibWFyZ2luQm90dG9tIiwiY2xhc3NOYW1lcyIsImlzU3BsaXQiLCJwYWRkaW5nQm90dG9tIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwidmVydGljYWxBbGlnbiIsIkZyYWdtZW50IiwiUGluIiwiaGVpZ2h0IiwiQ2xvc2UiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWNvbnRyb2wtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94LCBJY29uUm91bmRTbWFsbH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Q2xvc2UsIFBpbn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge01hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWwgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsQmFja2dyb3VuZENvbG9yfTtcbiAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5gO1xuXG50eXBlIFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcyA9IHtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdtYXAtY29udHJvbF9fcGFuZWwtY29udGVudCdcbn0pPFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcz5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC53aWR0aH1weDtcbiAgb3ZlcmZsb3c6ICR7cHJvcHMgPT4gKHByb3BzLmlzRXhwb3J0ID8gJ2hpZGRlbicgOiAnb3ZlcmxheScpfTtcbmA7XG5cbnR5cGUgTWFwQ29udHJvbFBhbmVsSGVhZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbWFwLWNvbnRyb2xfX3BhbmVsLWhlYWRlcidcbn0pPE1hcENvbnRyb2xQYW5lbEhlYWRlclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsSGVhZGVyQmFja2dyb3VuZENvbG9yfTtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGl0bGVUZXh0Q29sb3J9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHMgPSBzdHlsZWQoU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyKS5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ21hcC1jb250cm9sX19wYW5lbC1zcGxpdC12aWV3cG9ydC10b29scydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBoZWlnaHQ6IHVuc2V0O1xuYDtcblxuY29uc3QgU3R5bGVkU0JDZW50ZXJGbGV4Ym94ID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZERpc2FibGVhYmxlVGV4dFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWREaXNhYmxlYWJsZVRleHQgPSBzdHlsZWQuc3BhbjxTdHlsZWREaXNhYmxlYWJsZVRleHRQcm9wcz5gXG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gMC40IDogMSl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuYDtcblxuY29uc3QgU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2ggPSBzdHlsZWQoU3dpdGNoKWBcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAwLjQgOiAxKX07XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG5gO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb25Sb3VuZFNtYWxsKWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZmxvYXRpbmdCdG5BY3RDb2xvcn07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcENvbnRyb2xQYW5lbFByb3BzID0ge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIHNjYWxlPzogbnVtYmVyO1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblBpbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBwaW5uYWJsZT86IGJvb2xlYW47XG4gIGRpc2FibGVDbG9zZT86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgbG9nb0NvbXBvbmVudD86IEVsZW1lbnQ7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBNYXBDb250cm9sUGFuZWxGYWN0b3J5KCkge1xuICBjb25zdCBNYXBDb250cm9sUGFuZWw6IFJlYWN0LkZDPE1hcENvbnRyb2xQYW5lbFByb3BzPiA9IFJlYWN0Lm1lbW8oXG4gICAgKHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGVhZGVyLFxuICAgICAgcGlubmFibGUsXG4gICAgICBkaXNhYmxlQ2xvc2UsXG4gICAgICBvblBpbkNsaWNrLFxuICAgICAgb25DbGljayxcbiAgICAgIHNjYWxlID0gMSxcbiAgICAgIGlzRXhwb3J0LFxuICAgICAgbG9nb0NvbXBvbmVudCxcbiAgICAgIG1hcFN0YXRlLFxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0LFxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQsXG4gICAgICBjbGFzc05hbWUgPSAnbWFwLWNvbnRyb2wtcGFuZWwnXG4gICAgfSkgPT4ge1xuICAgICAgY29uc3Qge2lzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZH0gPSBtYXBTdGF0ZSB8fCB7fTtcbiAgICAgIGNvbnN0IG9uVW5sb2NrVmlld3BvcnRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD8uKHtpc1ZpZXdwb3J0U3luY2VkOiAhaXNWaWV3cG9ydFN5bmNlZH0pO1xuICAgICAgfSwgW2lzVmlld3BvcnRTeW5jZWQsIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydF0pO1xuXG4gICAgICBjb25zdCBvblN5bmNab29tQ2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/Lih7aXNab29tTG9ja2VkOiAhaXNab29tTG9ja2VkfSk7XG4gICAgICB9LCBbaXNab29tTG9ja2VkLCBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnRdKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbFxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IGBzY2FsZSgke3NjYWxlfSlgLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnOHB4ICFpbXBvcnRhbnQnXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ21hcC1jb250cm9sLXBhbmVsJywgY2xhc3NOYW1lKX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBTdGF0ZT8uaXNTcGxpdCAmJiBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzPlxuICAgICAgICAgICAgICA8U3R5bGVkU0JDZW50ZXJGbGV4Ym94IHN0eWxlPXt7cGFkZGluZ0JvdHRvbTogJzZweCd9fT5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIlVubG9jayBWaWV3cG9ydFwiIC8+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlU3dpdGNoXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXshbWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9XG4gICAgICAgICAgICAgICAgICBpZD1cInVubG9jay12aWV3cG9ydC10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVW5sb2NrVmlld3BvcnRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgIDxTdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlVGV4dCBkaXNhYmxlZD17bWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9PlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJTeW5jIFpvb21cIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRGlzYWJsZWFibGVUZXh0PlxuICAgICAgICAgICAgICAgIDxTdHlsZWREaXNhYmxlYWJsZVN3aXRjaFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bWFwU3RhdGU/LmlzWm9vbUxvY2tlZH1cbiAgICAgICAgICAgICAgICAgIGlkPVwic3luYy16b29tLXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25TeW5jWm9vbUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttYXBTdGF0ZT8uaXNWaWV3cG9ydFN5bmNlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZFNCQ2VudGVyRmxleGJveD5cbiAgICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyU3BsaXRWaWV3cG9ydHNUb29scz5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIChpc0V4cG9ydCAmJiBsb2dvQ29tcG9uZW50ID8gKFxuICAgICAgICAgICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgICAgICAgICAgKSA6IGhlYWRlciA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17e3ZlcnRpY2FsQWxpZ246ICdtaWRkbGUnfX0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aGVhZGVyfSAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGwpIGFzIFJlYWN0LlJlYWN0Tm9kZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2lzRXhwb3J0ID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cGlubmFibGUgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicGluLW1hcC1jb250cm9sLWl0ZW1cIiBvbkNsaWNrPXtvblBpbkNsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgPFBpbiBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtkaXNhYmxlQ2xvc2UgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwiY2xvc2UtbWFwLWNvbnRyb2wtaXRlbVwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICA8Q2xvc2UgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyPlxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50IGlzRXhwb3J0PXtpc0V4cG9ydH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50PlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRyb2xQYW5lbD5cbiAgICAgICk7XG4gICAgfVxuICApO1xuXG4gIE1hcENvbnRyb2xQYW5lbC5kaXNwbGF5TmFtZSA9ICdNYXBDb250cm9sUGFuZWwnO1xuXG4gIHJldHVybiBNYXBDb250cm9sUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxrQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQU8sV0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQW9DLElBQUFRLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFYcEM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFB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
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2ljb25zIiwiX3N3aXRjaCIsIl9jb25zdGFudHMiLCJfY2xhc3NuYW1lcyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJTdHlsZWRNYXBDb250cm9sUGFuZWwiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJtYXBQYW5lbEJhY2tncm91bmRDb2xvciIsIlN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnQiLCJhdHRycyIsImNsYXNzTmFtZSIsInNpZGVQYW5lbFNjcm9sbEJhciIsIm1hcENvbnRyb2wiLCJ3aWR0aCIsImlzRXhwb3J0IiwiU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyIiwibWFwUGFuZWxIZWFkZXJCYWNrZ3JvdW5kQ29sb3IiLCJmb250RmFtaWx5IiwidGl0bGVUZXh0Q29sb3IiLCJTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzIiwiU3R5bGVkU0JDZW50ZXJGbGV4Ym94IiwiQ2VudGVyRmxleGJveCIsIlN0eWxlZERpc2FibGVhYmxlVGV4dCIsInNwYW4iLCJkaXNhYmxlZCIsIlN0eWxlZERpc2FibGVhYmxlU3dpdGNoIiwiU3dpdGNoIiwiU3R5bGVkSWNvbiIsIkljb25Sb3VuZFNtYWxsIiwiYWN0aXZlQ29sb3IiLCJmbG9hdGluZ0J0bkFjdENvbG9yIiwiTWFwQ29udHJvbFBhbmVsRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbCIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJjaGlsZHJlbiIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwib25QaW5DbGljayIsIm9uQ2xpY2siLCJfcmVmJHNjYWxlIiwic2NhbGUiLCJsb2dvQ29tcG9uZW50IiwibWFwU3RhdGUiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCIsIl9yZWYkY2xhc3NOYW1lIiwiX3JlZjIiLCJpc1ZpZXdwb3J0U3luY2VkIiwiaXNab29tTG9ja2VkIiwib25VbmxvY2tWaWV3cG9ydENoYW5nZSIsInVzZUNhbGxiYWNrIiwib25TeW5jWm9vbUNoYW5nZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsInRyYW5zZm9ybSIsImNvbmNhdCIsIm1hcmdpbkJvdHRvbSIsImNsYXNzTmFtZXMiLCJpc1NwbGl0IiwibWFwU3BsaXRNb2RlIiwiTWFwU3BsaXRNb2RlIiwiU1dJUEVfQ09NUEFSRSIsInBhZGRpbmdCb3R0b20iLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJjaGVja2VkIiwib25DaGFuZ2UiLCJ2ZXJ0aWNhbEFsaWduIiwiRnJhZ21lbnQiLCJQaW4iLCJoZWlnaHQiLCJDbG9zZSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtY29udHJvbC1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0NlbnRlckZsZXhib3gsIEljb25Sb3VuZFNtYWxsfSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtDbG9zZSwgUGlufSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuLi9jb21tb24vc3dpdGNoJztcbmltcG9ydCB7TWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTcGxpdE1vZGV9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWwgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsQmFja2dyb3VuZENvbG9yfTtcbiAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5gO1xuXG50eXBlIFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcyA9IHtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkTWFwQ29udHJvbFBhbmVsQ29udGVudCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdtYXAtY29udHJvbF9fcGFuZWwtY29udGVudCdcbn0pPFN0eWxlZE1hcENvbnRyb2xQYW5lbENvbnRlbnRQcm9wcz5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICBtaW4td2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC53aWR0aH1weDtcbiAgb3ZlcmZsb3c6ICR7cHJvcHMgPT4gKHByb3BzLmlzRXhwb3J0ID8gJ2hpZGRlbicgOiAnb3ZlcmxheScpfTtcbmA7XG5cbnR5cGUgTWFwQ29udHJvbFBhbmVsSGVhZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5jb25zdCBTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbWFwLWNvbnRyb2xfX3BhbmVsLWhlYWRlcidcbn0pPE1hcENvbnRyb2xQYW5lbEhlYWRlclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcFBhbmVsSGVhZGVyQmFja2dyb3VuZENvbG9yfTtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTJweDtcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGl0bGVUZXh0Q29sb3J9O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgYnV0dG9uIHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1hcENvbnRyb2xQYW5lbEhlYWRlclNwbGl0Vmlld3BvcnRzVG9vbHMgPSBzdHlsZWQoU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyKS5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ21hcC1jb250cm9sX19wYW5lbC1zcGxpdC12aWV3cG9ydC10b29scydcbn0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuICBoZWlnaHQ6IHVuc2V0O1xuYDtcblxuY29uc3QgU3R5bGVkU0JDZW50ZXJGbGV4Ym94ID0gc3R5bGVkKENlbnRlckZsZXhib3gpYFxuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZERpc2FibGVhYmxlVGV4dFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWREaXNhYmxlYWJsZVRleHQgPSBzdHlsZWQuc3BhbjxTdHlsZWREaXNhYmxlYWJsZVRleHRQcm9wcz5gXG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gMC40IDogMSl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuYDtcblxuY29uc3QgU3R5bGVkRGlzYWJsZWFibGVTd2l0Y2ggPSBzdHlsZWQoU3dpdGNoKWBcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAwLjQgOiAxKX07XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG5gO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb25Sb3VuZFNtYWxsKWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZmxvYXRpbmdCdG5BY3RDb2xvcn07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcENvbnRyb2xQYW5lbFByb3BzID0ge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIHNjYWxlPzogbnVtYmVyO1xuICBvbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvblBpbkNsaWNrPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBwaW5uYWJsZT86IGJvb2xlYW47XG4gIGRpc2FibGVDbG9zZT86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgbG9nb0NvbXBvbmVudD86IEVsZW1lbnQ7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBNYXBDb250cm9sUGFuZWxGYWN0b3J5KCkge1xuICBjb25zdCBNYXBDb250cm9sUGFuZWw6IFJlYWN0LkZDPE1hcENvbnRyb2xQYW5lbFByb3BzPiA9IFJlYWN0Lm1lbW8oXG4gICAgKHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgaGVhZGVyLFxuICAgICAgcGlubmFibGUsXG4gICAgICBkaXNhYmxlQ2xvc2UsXG4gICAgICBvblBpbkNsaWNrLFxuICAgICAgb25DbGljayxcbiAgICAgIHNjYWxlID0gMSxcbiAgICAgIGlzRXhwb3J0LFxuICAgICAgbG9nb0NvbXBvbmVudCxcbiAgICAgIG1hcFN0YXRlLFxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0LFxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQsXG4gICAgICBjbGFzc05hbWUgPSAnbWFwLWNvbnRyb2wtcGFuZWwnXG4gICAgfSkgPT4ge1xuICAgICAgY29uc3Qge2lzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZH0gPSBtYXBTdGF0ZSB8fCB7fTtcbiAgICAgIGNvbnN0IG9uVW5sb2NrVmlld3BvcnRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD8uKHtpc1ZpZXdwb3J0U3luY2VkOiAhaXNWaWV3cG9ydFN5bmNlZH0pO1xuICAgICAgfSwgW2lzVmlld3BvcnRTeW5jZWQsIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydF0pO1xuXG4gICAgICBjb25zdCBvblN5bmNab29tQ2hhbmdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/Lih7aXNab29tTG9ja2VkOiAhaXNab29tTG9ja2VkfSk7XG4gICAgICB9LCBbaXNab29tTG9ja2VkLCBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnRdKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZE1hcENvbnRyb2xQYW5lbFxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IGBzY2FsZSgke3NjYWxlfSlgLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnOHB4ICFpbXBvcnRhbnQnXG4gICAgICAgICAgfX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ21hcC1jb250cm9sLXBhbmVsJywgY2xhc3NOYW1lKX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBTdGF0ZT8uaXNTcGxpdCAmJiBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCAmJiBtYXBTdGF0ZT8ubWFwU3BsaXRNb2RlICE9PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSA/IChcbiAgICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXJTcGxpdFZpZXdwb3J0c1Rvb2xzPlxuICAgICAgICAgICAgICA8U3R5bGVkU0JDZW50ZXJGbGV4Ym94IHN0eWxlPXt7cGFkZGluZ0JvdHRvbTogJzZweCd9fT5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIlVubG9jayBWaWV3cG9ydFwiIC8+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlU3dpdGNoXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXshbWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9XG4gICAgICAgICAgICAgICAgICBpZD1cInVubG9jay12aWV3cG9ydC10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVW5sb2NrVmlld3BvcnRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgIDxTdHlsZWRTQkNlbnRlckZsZXhib3g+XG4gICAgICAgICAgICAgICAgPFN0eWxlZERpc2FibGVhYmxlVGV4dCBkaXNhYmxlZD17bWFwU3RhdGU/LmlzVmlld3BvcnRTeW5jZWR9PlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJTeW5jIFpvb21cIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRGlzYWJsZWFibGVUZXh0PlxuICAgICAgICAgICAgICAgIDxTdHlsZWREaXNhYmxlYWJsZVN3aXRjaFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17bWFwU3RhdGU/LmlzWm9vbUxvY2tlZH1cbiAgICAgICAgICAgICAgICAgIGlkPVwic3luYy16b29tLXRvZ2dsZVwiXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25TeW5jWm9vbUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttYXBTdGF0ZT8uaXNWaWV3cG9ydFN5bmNlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZFNCQ2VudGVyRmxleGJveD5cbiAgICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyU3BsaXRWaWV3cG9ydHNUb29scz5cbiAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxIZWFkZXI+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIChpc0V4cG9ydCAmJiBsb2dvQ29tcG9uZW50ID8gKFxuICAgICAgICAgICAgICAgIGxvZ29Db21wb25lbnRcbiAgICAgICAgICAgICAgKSA6IGhlYWRlciA/IChcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17e3ZlcnRpY2FsQWxpZ246ICdtaWRkbGUnfX0+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aGVhZGVyfSAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgKSA6IG51bGwpIGFzIFJlYWN0LlJlYWN0Tm9kZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge2lzRXhwb3J0ID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cGlubmFibGUgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicGluLW1hcC1jb250cm9sLWl0ZW1cIiBvbkNsaWNrPXtvblBpbkNsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgPFBpbiBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtkaXNhYmxlQ2xvc2UgPyBudWxsIDogKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwiY2xvc2UtbWFwLWNvbnRyb2wtaXRlbVwiIG9uQ2xpY2s9e29uQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICA8Q2xvc2UgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTWFwQ29udHJvbFBhbmVsSGVhZGVyPlxuICAgICAgICAgIDxTdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50IGlzRXhwb3J0PXtpc0V4cG9ydH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sUGFuZWxDb250ZW50PlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRyb2xQYW5lbD5cbiAgICAgICk7XG4gICAgfVxuICApO1xuXG4gIE1hcENvbnRyb2xQYW5lbC5kaXNwbGF5TmFtZSA9ICdNYXBDb250cm9sUGFuZWwnO1xuXG4gIHJldHVybiBNYXBDb250cm9sUGFuZWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxrQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQU8sVUFBQSxH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
@@ -1,15 +1,40 @@
1
- import { BaseComponentProps } from '../types';
2
- declare function MapControlToolbar(): import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("styled-components/dist/types").FastOmit<{
1
+ declare function MapControlToolbar(): import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("../common/toolbar").ToolbarProps, "as" | "forwardedAs"> & {
2
+ as?: import("styled-components").WebTarget | undefined;
3
+ forwardedAs?: import("styled-components").WebTarget | undefined;
4
+ }, keyof import("react").HTMLAttributes<unknown> | "$show"> & {
5
+ $show?: boolean;
6
+ } & import("react").HTMLAttributes<unknown> & {
7
+ children?: import("react").ReactNode | undefined;
8
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("../common/toolbar").ToolbarProps, "as" | "forwardedAs"> & {
9
+ as?: import("styled-components").WebTarget | undefined;
10
+ forwardedAs?: import("styled-components").WebTarget | undefined;
11
+ }, keyof import("react").HTMLAttributes<unknown> | "$show"> & {
3
12
  $show?: boolean;
4
13
  } & import("react").HTMLAttributes<unknown> & {
5
14
  children?: import("react").ReactNode | undefined;
15
+ }, never>>, "as" | "forwardedAs"> & {
16
+ as?: import("styled-components").WebTarget | undefined;
17
+ forwardedAs?: import("styled-components").WebTarget | undefined;
18
+ }, keyof import("react").HTMLAttributes<unknown>> & import("react").HTMLAttributes<unknown> & {
19
+ children?: import("react").ReactNode | undefined;
20
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("../common/toolbar").ToolbarProps, "as" | "forwardedAs"> & {
21
+ as?: import("styled-components").WebTarget | undefined;
22
+ forwardedAs?: import("styled-components").WebTarget | undefined;
6
23
  }, keyof import("react").HTMLAttributes<unknown> | "$show"> & {
7
24
  $show?: boolean;
8
25
  } & import("react").HTMLAttributes<unknown> & {
9
26
  children?: import("react").ReactNode | undefined;
10
- }, BaseComponentProps>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<{
27
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("../common/toolbar").ToolbarProps, "as" | "forwardedAs"> & {
28
+ as?: import("styled-components").WebTarget | undefined;
29
+ forwardedAs?: import("styled-components").WebTarget | undefined;
30
+ }, keyof import("react").HTMLAttributes<unknown> | "$show"> & {
11
31
  $show?: boolean;
12
32
  } & import("react").HTMLAttributes<unknown> & {
13
33
  children?: import("react").ReactNode | undefined;
14
- }, import("../common/toolbar").ToolbarProps>> & Omit<import("styled-components").IStyledComponent<"web", import("../common/toolbar").ToolbarProps>, keyof import("react").Component<any, {}, any>>, keyof import("react").Component<any, {}, any>>;
34
+ }, never>>, "as" | "forwardedAs"> & {
35
+ as?: import("styled-components").WebTarget | undefined;
36
+ forwardedAs?: import("styled-components").WebTarget | undefined;
37
+ }, keyof import("react").HTMLAttributes<unknown>> & import("react").HTMLAttributes<unknown> & {
38
+ children?: import("react").ReactNode | undefined;
39
+ }, never>>> & string;
15
40
  export default MapControlToolbar;
@@ -1,13 +1,12 @@
1
1
  import React from 'react';
2
2
  import SplitMapButtonFactory from './split-map-button';
3
3
  import Toggle3dButtonFactory from './toggle-3d-button';
4
- import LayerSelectorPanelFactory from './layer-selector-panel';
5
4
  import MapLegendPanelFactory from './map-legend-panel';
6
5
  import MapDrawPanelFactory from './map-draw-panel';
7
6
  import LocalePanelFactory from './locale-panel';
8
7
  import MapNavigationControlFactory from './map-navigation-control';
9
8
  import { Layer } from '@kepler.gl/layers';
10
- import { Editor, LayerVisConfig, MapControls, MapState } from '@kepler.gl/types';
9
+ import { Editor, LayerVisConfig, LayerOrder, MapControls, MapState } from '@kepler.gl/types';
11
10
  import { Datasets } from '@kepler.gl/table';
12
11
  import { MapStateActions, UIStateActions } from '@kepler.gl/actions';
13
12
  import AnnotationControlFactory from './annotations/annotation-control';
@@ -17,6 +16,7 @@ export type MapControlProps = {
17
16
  isSplit: boolean;
18
17
  primary: boolean;
19
18
  layers: Layer[];
19
+ layerOrder?: LayerOrder;
20
20
  layersToRender: {
21
21
  [key: string]: boolean;
22
22
  };
@@ -24,6 +24,7 @@ export type MapControlProps = {
24
24
  mapControls: MapControls;
25
25
  onTogglePerspective: () => void;
26
26
  onToggleSplitMap: typeof MapStateActions.toggleSplitMap;
27
+ onSetMapSplitMode?: typeof MapStateActions.setMapSplitMode;
27
28
  onToggleSplitMapViewport: ({ isViewportSynced, isZoomLocked }: {
28
29
  isViewportSynced: boolean;
29
30
  isZoomLocked: boolean;
@@ -52,11 +53,17 @@ export type MapControlProps = {
52
53
  editor: Editor;
53
54
  actionComponents?: React.ComponentType<any>[];
54
55
  mapHeight?: number;
56
+ splitMaps?: {
57
+ layers: {
58
+ [key: string]: boolean;
59
+ };
60
+ }[];
61
+ onToggleLayerForMap?: (mapIndex: number, layerId: string) => void;
55
62
  };
56
- declare function MapControlFactory(SplitMapButton: ReturnType<typeof SplitMapButtonFactory>, Toggle3dButton: ReturnType<typeof Toggle3dButtonFactory>, LayerSelectorPanel: ReturnType<typeof LayerSelectorPanelFactory>, MapLegendPanel: ReturnType<typeof MapLegendPanelFactory>, MapDrawPanel: ReturnType<typeof MapDrawPanelFactory>, LocalePanel: ReturnType<typeof LocalePanelFactory>, AnnotationControl: ReturnType<typeof AnnotationControlFactory>, MapNavigationControl: ReturnType<typeof MapNavigationControlFactory>): React.FC<MapControlProps> & {
63
+ declare function MapControlFactory(SplitMapButton: ReturnType<typeof SplitMapButtonFactory>, Toggle3dButton: ReturnType<typeof Toggle3dButtonFactory>, MapLegendPanel: ReturnType<typeof MapLegendPanelFactory>, MapDrawPanel: ReturnType<typeof MapDrawPanelFactory>, LocalePanel: ReturnType<typeof LocalePanelFactory>, AnnotationControl: ReturnType<typeof AnnotationControlFactory>, MapNavigationControl: ReturnType<typeof MapNavigationControlFactory>): React.FC<MapControlProps> & {
57
64
  defaultActionComponents: MapControlProps["actionComponents"];
58
65
  };
59
66
  declare namespace MapControlFactory {
60
- var deps: (typeof MapNavigationControlFactory | typeof SplitMapButtonFactory | typeof Toggle3dButtonFactory | typeof LayerSelectorPanelFactory | typeof MapLegendPanelFactory | typeof MapDrawPanelFactory | typeof LocalePanelFactory | typeof AnnotationControlFactory)[];
67
+ var deps: (typeof MapNavigationControlFactory | typeof SplitMapButtonFactory | typeof Toggle3dButtonFactory | typeof MapLegendPanelFactory | typeof MapDrawPanelFactory | typeof LocalePanelFactory | typeof AnnotationControlFactory)[];
61
68
  }
62
69
  export default MapControlFactory;