kepler.gl 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/src/ai-assistant/src/config/models.d.ts +8 -0
  2. package/dist/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
  3. package/dist/src/localization/src/translations/en.d.ts +1 -0
  4. package/package.json +2 -2
  5. package/src/actions/package.json +8 -8
  6. package/src/ai-assistant/dist/components/ai-assistant-config.js +40 -24
  7. package/src/ai-assistant/dist/config/models.d.ts +8 -0
  8. package/src/ai-assistant/dist/config/models.js +16 -8
  9. package/src/ai-assistant/dist/localization.js +7 -7
  10. package/src/ai-assistant/dist/reducers/index.js +3 -2
  11. package/src/ai-assistant/package.json +16 -16
  12. package/src/ai-assistant/src/components/ai-assistant-config.tsx +39 -28
  13. package/src/ai-assistant/src/config/models.ts +37 -25
  14. package/src/ai-assistant/src/localization.ts +6 -6
  15. package/src/ai-assistant/src/reducers/index.ts +2 -1
  16. package/src/cloud-providers/package.json +2 -2
  17. package/src/common-utils/package.json +3 -3
  18. package/src/components/dist/common/color-legend.js +8 -8
  19. package/src/components/dist/common/data-table/index.js +13 -9
  20. package/src/components/dist/map/map-legend-panel.js +10 -4
  21. package/src/components/dist/map/map-legend.js +2 -2
  22. package/src/components/dist/plot-container.js +4 -2
  23. package/src/components/dist/side-panel/interaction-panel/interaction-panel.js +2 -2
  24. package/src/components/dist/side-panel/layer-panel/color-breaks-panel.js +11 -2
  25. package/src/components/dist/side-panel/layer-panel/color-scale-selector.js +65 -12
  26. package/src/components/dist/side-panel/layer-panel/custom-palette.js +18 -7
  27. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
  28. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +18 -4
  29. package/src/components/package.json +15 -15
  30. package/src/components/src/common/color-legend.tsx +15 -2
  31. package/src/components/src/common/data-table/index.tsx +1 -1
  32. package/src/components/src/map/map-legend-panel.tsx +21 -2
  33. package/src/components/src/map/map-legend.tsx +1 -1
  34. package/src/components/src/plot-container.tsx +2 -1
  35. package/src/components/src/side-panel/interaction-panel/interaction-panel.tsx +1 -0
  36. package/src/components/src/side-panel/layer-panel/color-breaks-panel.tsx +14 -3
  37. package/src/components/src/side-panel/layer-panel/color-scale-selector.tsx +62 -8
  38. package/src/components/src/side-panel/layer-panel/custom-palette.tsx +11 -5
  39. package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +19 -2
  40. package/src/constants/dist/default-settings.js +1 -1
  41. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b3/bd/e4f91c7af9e320b979e29ad3b9e3a4dfcd61e4a09d6e4579104c40dcace7651b443fdd6d7ff5d947ed6c9df2c0bbbcc76a2ea86d6398e4945257eeb80dd5 +1 -0
  42. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/b4/c5/a43653dff3b380f7b0793080a57c980a9a136764933e79454de0fe43a5ca +2 -0
  43. package/src/constants/package.json +2 -2
  44. package/src/constants/umd/keplergl.min.js +1 -1
  45. package/src/deckgl-arrow-layers/package.json +2 -2
  46. package/src/deckgl-layers/package.json +4 -4
  47. package/src/duckdb/dist/table/duckdb-table-utils.js +3 -2
  48. package/src/duckdb/package.json +6 -6
  49. package/src/duckdb/src/table/duckdb-table-utils.ts +5 -1
  50. package/src/effects/package.json +5 -5
  51. package/src/layers/dist/icon-layer/icon-layer.js +12 -2
  52. package/src/layers/dist/vector-tile/common-tile/tile-dataset.d.ts +4 -0
  53. package/src/layers/dist/vector-tile/common-tile/tile-dataset.js +10 -1
  54. package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +11 -0
  55. package/src/layers/dist/vector-tile/vector-tile-layer.js +113 -7
  56. package/src/layers/package.json +9 -9
  57. package/src/layers/src/icon-layer/icon-layer.ts +49 -38
  58. package/src/layers/src/vector-tile/common-tile/tile-dataset.ts +7 -0
  59. package/src/layers/src/vector-tile/vector-tile-layer.ts +110 -6
  60. package/src/localization/dist/translations/en.d.ts +1 -0
  61. package/src/localization/dist/translations/en.js +2 -1
  62. package/src/localization/package.json +1 -1
  63. package/src/localization/src/translations/en.ts +1 -0
  64. package/src/processors/dist/data-processor.js +15 -5
  65. package/src/processors/package.json +7 -7
  66. package/src/processors/src/data-processor.ts +19 -4
  67. package/src/reducers/package.json +16 -16
  68. package/src/schemas/package.json +7 -7
  69. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/52/82/28cacf6fd462b779c22675964b655bf3a9f3ce9ec3c9b141a401a5bf90cb7d904ac65ab8e484570130b12771af0a0d5bab20e6976cfa773666763e046a6a +1 -0
  70. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/56/db/b5a812c56b0d1dcdcd33da37e464062a19c8752cb2296603dc72d2c54d31 +2 -0
  71. package/src/styles/package.json +2 -2
  72. package/src/styles/umd/keplergl.min.js +1 -1
  73. package/src/table/package.json +5 -5
  74. package/src/tasks/package.json +2 -2
  75. package/src/types/package.json +1 -1
  76. package/src/utils/package.json +4 -4
  77. package/umd/keplergl.min.js +1366 -1333
@@ -1,3 +1,11 @@
1
+ export declare const PROVIDER_DEFAULT_BASE_URLS: {
2
+ openai: string;
3
+ anthropic: string;
4
+ google: string;
5
+ deepseek: string;
6
+ xai: string;
7
+ ollama: string;
8
+ };
1
9
  export declare const PROVIDER_MODELS: {
2
10
  openai: string[];
3
11
  google: string[];
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { VectorTileLayer } from '@kepler.gl/layers';
3
3
  import { KeplerTable as KeplerDataset } from '@kepler.gl/table';
4
4
  import SourceDataSelectorFactory from '../common/source-data-selector';
5
+ import FieldSelectorFactory from '../../common/field-selector';
5
6
  import ChannelByValueSelectorFactory from './channel-by-value-selector';
6
7
  import LayerConfigGroupFactory from './layer-config-group';
7
8
  import { LayerColorRangeSelectorFactory, LayerColorSelectorFactory } from './layer-color-selector';
@@ -15,8 +16,8 @@ declare type Props = {
15
16
  layerChannelConfigProps: GetProps<typeof ChannelByValueSelectorFactory>;
16
17
  layerConfiguratorProps: any;
17
18
  };
18
- declare function VectorTileLayerConfiguratorFactory(ChannelByValueSelector: ReturnType<typeof ChannelByValueSelectorFactory>, LayerColorRangeSelector: ReturnType<typeof LayerColorRangeSelectorFactory>, LayerColorSelector: ReturnType<typeof LayerColorSelectorFactory>, LayerConfigGroup: ReturnType<typeof LayerConfigGroupFactory>, VisConfigSlider: ReturnType<typeof VisConfigSliderFactory>, VisConfigSwitch: ReturnType<typeof VisConfigSwitchFactory>): React.FC<Props>;
19
+ declare function VectorTileLayerConfiguratorFactory(ChannelByValueSelector: ReturnType<typeof ChannelByValueSelectorFactory>, LayerColorRangeSelector: ReturnType<typeof LayerColorRangeSelectorFactory>, LayerColorSelector: ReturnType<typeof LayerColorSelectorFactory>, LayerConfigGroup: ReturnType<typeof LayerConfigGroupFactory>, VisConfigSlider: ReturnType<typeof VisConfigSliderFactory>, VisConfigSwitch: ReturnType<typeof VisConfigSwitchFactory>, _SourceDataSelector: ReturnType<typeof SourceDataSelectorFactory>, FieldSelector: ReturnType<typeof FieldSelectorFactory>): React.FC<Props>;
19
20
  declare namespace VectorTileLayerConfiguratorFactory {
20
- var deps: (typeof VisConfigSwitchFactory | typeof LayerConfigGroupFactory | typeof VisConfigSliderFactory | typeof SourceDataSelectorFactory | typeof ChannelByValueSelectorFactory | typeof LayerColorSelectorFactory | typeof LayerColorRangeSelectorFactory)[];
21
+ var deps: (typeof FieldSelectorFactory | typeof VisConfigSwitchFactory | typeof LayerConfigGroupFactory | typeof VisConfigSliderFactory | typeof SourceDataSelectorFactory | typeof ChannelByValueSelectorFactory | typeof LayerColorSelectorFactory | typeof LayerColorRangeSelectorFactory)[];
21
22
  }
22
23
  export default VectorTileLayerConfiguratorFactory;
@@ -94,6 +94,7 @@ declare const _default: {
94
94
  service: string;
95
95
  layer: string;
96
96
  appearance: string;
97
+ uniqueIdField: string;
97
98
  type: {
98
99
  point: string;
99
100
  arc: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kepler.gl",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.2.0",
4
+ "version": "3.2.1",
5
5
  "description": "kepler.gl is a webgl based application to visualize large scale location data in the browser",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -103,7 +103,7 @@
103
103
  "@deck.gl/mapbox": "^8.9.27",
104
104
  "@hubble.gl/core": "1.4.0",
105
105
  "@hubble.gl/react": "1.4.0",
106
- "@kepler.gl/components": "3.2.0",
106
+ "@kepler.gl/components": "3.2.1",
107
107
  "@loaders.gl/polyfills": "^4.3.2",
108
108
  "@types/mapbox__geo-viewport": "^0.4.1",
109
109
  "html-webpack-plugin": "^4.3.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/actions",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.2.0",
4
+ "version": "3.2.1",
5
5
  "description": "kepler.gl constants used by kepler.gl components, actions and reducers",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -31,13 +31,13 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@deck.gl/core": "^8.9.27",
34
- "@kepler.gl/cloud-providers": "3.2.0",
35
- "@kepler.gl/constants": "3.2.0",
36
- "@kepler.gl/layers": "3.2.0",
37
- "@kepler.gl/processors": "3.2.0",
38
- "@kepler.gl/table": "3.2.0",
39
- "@kepler.gl/types": "3.2.0",
40
- "@kepler.gl/utils": "3.2.0",
34
+ "@kepler.gl/cloud-providers": "3.2.1",
35
+ "@kepler.gl/constants": "3.2.1",
36
+ "@kepler.gl/layers": "3.2.1",
37
+ "@kepler.gl/processors": "3.2.1",
38
+ "@kepler.gl/table": "3.2.1",
39
+ "@kepler.gl/types": "3.2.1",
40
+ "@kepler.gl/utils": "3.2.1",
41
41
  "@reduxjs/toolkit": "^1.7.2",
42
42
  "@types/lodash": "4.17.5",
43
43
  "@types/react-redux": "^7.1.23",
@@ -84,7 +84,7 @@ function AiAssistantConfig() {
84
84
  _useLocalStorage10 = (0, _slicedToArray2["default"])(_useLocalStorage9, 2),
85
85
  topP = _useLocalStorage10[0],
86
86
  setTopP = _useLocalStorage10[1];
87
- var _useLocalStorage11 = (0, _usehooksTs.useLocalStorage)('ai-assistant-base-url', aiAssistantConfig.baseUrl || 'http://localhost:11434/api'),
87
+ var _useLocalStorage11 = (0, _usehooksTs.useLocalStorage)('ai-assistant-base-url', aiAssistantConfig.baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider]),
88
88
  _useLocalStorage12 = (0, _slicedToArray2["default"])(_useLocalStorage11, 2),
89
89
  baseUrl = _useLocalStorage12[0],
90
90
  setBaseUrl = _useLocalStorage12[1];
@@ -116,6 +116,7 @@ function AiAssistantConfig() {
116
116
  if (typeof value === 'string') {
117
117
  setProvider(value);
118
118
  setModel(_models.PROVIDER_MODELS[value][0]);
119
+ setBaseUrl(_models.PROVIDER_DEFAULT_BASE_URLS[value]);
119
120
  setConnectionError(false);
120
121
  setErrorMessage('');
121
122
  }
@@ -169,42 +170,59 @@ function AiAssistantConfig() {
169
170
  return reject(new Error('Connection timeout after 15 seconds'));
170
171
  }, 15000);
171
172
  });
172
- AssistantModel = (0, _core.GetAssistantModelByProvider)({
173
+ _context.next = 5;
174
+ return (0, _core.GetAssistantModelByProvider)({
173
175
  provider: provider
174
176
  });
175
- _context.next = 6;
176
- return Promise.race([AssistantModel === null || AssistantModel === void 0 ? void 0 : AssistantModel.testConnection(apiKey, model), timeoutPromise]);
177
- case 6:
177
+ case 5:
178
+ AssistantModel = _context.sent;
179
+ if (!(!AssistantModel || !AssistantModel.configure || !AssistantModel.testConnection)) {
180
+ _context.next = 8;
181
+ break;
182
+ }
183
+ throw new Error('Failed to initialize AI model');
184
+ case 8:
185
+ // configure model
186
+ AssistantModel.configure({
187
+ model: model,
188
+ baseURL: baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider],
189
+ apiKey: apiKey,
190
+ temperature: Number(temperature),
191
+ topP: Number(topP)
192
+ });
193
+ _context.next = 11;
194
+ return Promise.race([AssistantModel.testConnection(apiKey, model), timeoutPromise]);
195
+ case 11:
178
196
  success = _context.sent;
179
- _errorMessage = !success ? provider === 'ollama' ? 'Connection failed: maybe invalid Ollama Base URL' : 'Connection failed: maybe invalid API Key' : '';
197
+ _errorMessage = !success ? provider === 'ollama' ? 'Connection failed: maybe invalid Base URL' : 'Connection failed: maybe invalid API Key or Base URL' : '';
180
198
  setConnectionError(!success);
181
199
  setErrorMessage(_errorMessage);
182
200
  dispatch((0, _actions.updateAiAssistantConfig)({
183
201
  provider: provider,
184
202
  model: model,
185
203
  apiKey: apiKey,
186
- baseUrl: baseUrl,
204
+ baseUrl: baseUrl || _models.PROVIDER_DEFAULT_BASE_URLS[provider],
187
205
  isReady: success,
188
206
  temperature: temperature,
189
207
  topP: topP,
190
208
  mapboxToken: mapboxToken
191
209
  }));
192
- _context.next = 17;
210
+ _context.next = 22;
193
211
  break;
194
- case 13:
195
- _context.prev = 13;
212
+ case 18:
213
+ _context.prev = 18;
196
214
  _context.t0 = _context["catch"](1);
197
215
  setConnectionError(true);
198
216
  setErrorMessage(_context.t0 instanceof Error ? _context.t0.message : 'Connection failed');
199
- case 17:
200
- _context.prev = 17;
217
+ case 22:
218
+ _context.prev = 22;
201
219
  setIsRunning(false);
202
- return _context.finish(17);
203
- case 20:
220
+ return _context.finish(22);
221
+ case 25:
204
222
  case "end":
205
223
  return _context.stop();
206
224
  }
207
- }, _callee, null, [[1, 13, 17, 20]]);
225
+ }, _callee, null, [[1, 18, 22, 25]]);
208
226
  }));
209
227
  return function onStartChat() {
210
228
  return _ref.apply(this, arguments);
@@ -262,8 +280,8 @@ function AiAssistantConfig() {
262
280
  placeholder: "Enter Model Name",
263
281
  value: ollamaModelInputValue,
264
282
  disabled: !ollamaModelInputChecked
265
- })), provider !== 'ollama' ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
266
- id: "aiAssistantManager.apiKey.placeholder"
283
+ })), provider !== 'ollama' && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
284
+ id: "aiAssistantManager.apiKey.title"
267
285
  }))), /*#__PURE__*/_react["default"].createElement("div", {
268
286
  className: "api-key-input"
269
287
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -277,8 +295,8 @@ function AiAssistantConfig() {
277
295
  id: 'aiAssistantManager.apiKey.placeholder'
278
296
  }),
279
297
  value: apiKey
280
- }))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
281
- id: "aiAssistantManager.baseUrl.placeholder"
298
+ }))), /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
299
+ id: "aiAssistantManager.baseUrl.title"
282
300
  }))), /*#__PURE__*/_react["default"].createElement("div", {
283
301
  className: "api-key-input"
284
302
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -288,11 +306,9 @@ function AiAssistantConfig() {
288
306
  })), /*#__PURE__*/_react["default"].createElement(_components.Input, {
289
307
  type: "text",
290
308
  onChange: onBaseUrlChange,
291
- placeholder: intl.formatMessage({
292
- id: 'aiAssistantManager.baseUrl.placeholder'
293
- }),
309
+ placeholder: _models.PROVIDER_DEFAULT_BASE_URLS[provider],
294
310
  value: baseUrl
295
- }))), connectionError && /*#__PURE__*/_react["default"].createElement(StyleErrorMessage, {
311
+ })), connectionError && /*#__PURE__*/_react["default"].createElement(StyleErrorMessage, {
296
312
  className: "error-message"
297
313
  }, errorMessage), /*#__PURE__*/_react["default"].createElement(_components.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(SectionTitle, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, {
298
314
  id: "aiAssistantManager.temperature.title"
@@ -334,4 +350,4 @@ function AiAssistantConfig() {
334
350
  id: "aiAssistantManager.startChat"
335
351
  }))));
336
352
  }
337
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RSZWR1eCIsIl9jb21wb25lbnRzIiwiX2FwaUtleSIsIl9tb2RlbHMiLCJfdXNlaG9va3NUcyIsIl9jb3JlIiwiX2FjdGlvbnMiLCJfcmVhY3RJbnRsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNlY3Rpb25UaXRsZSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImlucHV0Rm9udFNpemUiLCJlZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxIiwiU3R5bGVkQWlBc3Npc3RhbnRDb25maWciLCJwcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0IiwiYm94U2hhZG93IiwiZ2VvY29kZXJJbnB1dEhlaWdodCIsInN1YnRleHRDb2xvciIsIk9sbGFtYU1vZGVsSW5wdXRXcmFwcGVyIiwiU3R5bGVkV3JhcHBlciIsIlN0eWxlZEl0ZW1TZWxlY3RvciIsIkl0ZW1TZWxlY3RvciIsImFjdGl2ZUNvbG9yIiwiU3R5bGVTbGlkZXJXcmFwcGVyIiwiU3R5bGVkQnV0dG9uIiwiU3R5bGVFcnJvck1lc3NhZ2UiLCJlcnJvckNvbG9yIiwiZXJyb3JUZXh0Q29sb3IiLCJSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQWlBc3Npc3RhbnRDb25maWciLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiYWlBc3Npc3RhbnRDb25maWciLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZGVtbyIsImFpQXNzaXN0YW50IiwiY29uZmlnIiwiaW50bCIsInVzZUludGwiLCJfdXNlTG9jYWxTdG9yYWdlIiwidXNlTG9jYWxTdG9yYWdlIiwicHJvdmlkZXIiLCJfdXNlTG9jYWxTdG9yYWdlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFByb3ZpZGVyIiwiX3VzZUxvY2FsU3RvcmFnZTMiLCJtb2RlbCIsIlBST1ZJREVSX01PREVMUyIsIl91c2VMb2NhbFN0b3JhZ2U0Iiwic2V0TW9kZWwiLCJfdXNlTG9jYWxTdG9yYWdlNSIsImFwaUtleSIsIl91c2VMb2NhbFN0b3JhZ2U2Iiwic2V0QXBpS2V5IiwiX3VzZUxvY2FsU3RvcmFnZTciLCJ0ZW1wZXJhdHVyZSIsIl91c2VMb2NhbFN0b3JhZ2U4Iiwic2V0VGVtcGVyYXR1cmUiLCJfdXNlTG9jYWxTdG9yYWdlOSIsInRvcFAiLCJfdXNlTG9jYWxTdG9yYWdlMTAiLCJzZXRUb3BQIiwiX3VzZUxvY2FsU3RvcmFnZTExIiwiYmFzZVVybCIsIl91c2VMb2NhbFN0b3JhZ2UxMiIsInNldEJhc2VVcmwiLCJfdXNlTG9jYWxTdG9yYWdlMTMiLCJtYXBib3hUb2tlbiIsIl91c2VMb2NhbFN0b3JhZ2UxNCIsInNldE1hcGJveFRva2VuIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwib2xsYW1hTW9kZWxJbnB1dENoZWNrZWQiLCJzZXRPbGxhbWFNb2RlbElucHV0Q2hlY2tlZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib2xsYW1hTW9kZWxJbnB1dFZhbHVlIiwic2V0T2xsYW1hTW9kZWxJbnB1dFZhbHVlIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJjb25uZWN0aW9uRXJyb3IiLCJzZXRDb25uZWN0aW9uRXJyb3IiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yTWVzc2FnZSIsInNldEVycm9yTWVzc2FnZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsImlzUnVubmluZyIsInNldElzUnVubmluZyIsIm9uQWlQcm92aWRlclNlbGVjdCIsInZhbHVlIiwib25MTE1Nb2RlbFNlbGVjdCIsIm9uQXBpS2V5Q2hhbmdlIiwidGFyZ2V0Iiwib25UZW1wZXJhdHVyZUNoYW5nZSIsIm9uVG9wUENoYW5nZSIsIm9uQmFzZVVybENoYW5nZSIsIm9uTWFwYm94VG9rZW5DaGFuZ2UiLCJvbk9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIiwiY2hlY2tlZCIsIm9uT2xsYW1hTW9kZWxJbnB1dFZhbHVlQ2hhbmdlIiwib25TdGFydENoYXQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ0aW1lb3V0UHJvbWlzZSIsIkFzc2lzdGFudE1vZGVsIiwic3VjY2VzcyIsIl9lcnJvck1lc3NhZ2UiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiUHJvbWlzZSIsIl8iLCJyZWplY3QiLCJzZXRUaW1lb3V0IiwiRXJyb3IiLCJHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIiLCJyYWNlIiwidGVzdENvbm5lY3Rpb24iLCJzZW50IiwidXBkYXRlQWlBc3Npc3RhbnRDb25maWciLCJpc1JlYWR5IiwidDAiLCJtZXNzYWdlIiwiZmluaXNoIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJrZXlzIiwibXVsdGlTZWxlY3QiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwiZmlsdGVyT3B0aW9uIiwiZ2V0T3B0aW9uVmFsdWUiLCJvcCIsImRpc3BsYXlPcHRpb24iLCJzZWFyY2hhYmxlIiwic2hvd0Fycm93IiwicGxhY2Vob2xkZXIiLCJzdHlsZSIsIndpZHRoIiwiQ2hlY2tib3giLCJsYWJlbCIsIklucHV0IiwidHlwZSIsIkZyYWdtZW50IiwiaGVpZ2h0IiwiZm9ybWF0TWVzc2FnZSIsInNob3dJbnB1dCIsImlzUmFuZ2VkIiwidmFsdWUwIiwidmFsdWUxIiwicmFuZ2UiLCJzdGVwIiwiQnV0dG9uIiwib25DbGljayIsIkxvYWRpbmdTcGlubmVyIiwic2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2FpLWFzc2lzdGFudC1jb25maWcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dXNlU2VsZWN0b3IsIHVzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBJbnB1dCxcbiAgUGFuZWxMYWJlbFdyYXBwZXIsXG4gIEl0ZW1TZWxlY3RvcixcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBCdXR0b24sXG4gIExvYWRpbmdTcGlubmVyLFxuICBhcHBJbmplY3RvcixcbiAgQ2hlY2tib3hcbn0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBBcGlLZXkgZnJvbSAnLi4vaWNvbnMvYXBpLWtleSc7XG5pbXBvcnQge1BST1ZJREVSX01PREVMU30gZnJvbSAnLi4vY29uZmlnL21vZGVscyc7XG5pbXBvcnQge3VzZUxvY2FsU3RvcmFnZX0gZnJvbSAndXNlaG9va3MtdHMnO1xuaW1wb3J0IHtHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXJ9IGZyb20gJ0BvcGVuYXNzaXN0YW50L2NvcmUnO1xuaW1wb3J0IHt1cGRhdGVBaUFzc2lzdGFudENvbmZpZ30gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2UsIHVzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5jb25zdCBTZWN0aW9uVGl0bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVmZmVjdFBhbmVsVGV4dFNlY29uZGFyeTF9O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbmA7XG5cbmNvbnN0IFN0eWxlZEFpQXNzaXN0YW50Q29uZmlnID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogMTJweDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5Gb250U2l6ZURlZmF1bHR9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEycHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgLmFwaS1rZXktaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuYXBpLWtleS1pbnB1dF9faWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBwYWRkaW5nOiA0cHggMzZweDtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgY2FyZXQtY29sb3I6IHVuc2V0O1xuICAgIH1cbiAgfVxuYDtcblxuLy8gT2xsYW1hIG1vZGVsIGlucHV0IHdyYXBwZXI6IGNoZWNrYm94ICsgJ0lucHV0IE1vZGVsIE5hbWU6JyArIGlucHV0XG4vLyBhbGwgY2hpbGRyZW4gZWxlbWVudCBoYXZlIHdpZHRoIGJhc2VkIG9uIHRoZSBjb250ZW50XG5jb25zdCBPbGxhbWFNb2RlbElucHV0V3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGdhcDogNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYDtcblxuY29uc3QgU3R5bGVkV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFN0eWxlZEl0ZW1TZWxlY3RvciA9IHN0eWxlZChJdGVtU2VsZWN0b3IpYFxuICAuaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24ge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgfVxuICB3aWR0aDogMTAwJTtcbmA7XG5cbmNvbnN0IFN0eWxlU2xpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC5rZy1yYW5nZS1zbGlkZXJfX2lucHV0IHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gIH1cbiAgLmtnLXNsaWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIH1cbiAgLmtnLXJhbmdlLXNsaWRlciB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gIGJ1dHRvbiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVFcnJvck1lc3NhZ2UgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucHJpbWFyeUJ0bkZvbnRTaXplRGVmYXVsdH07XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JDb2xvcn07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JUZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgUmFuZ2VTbGlkZXIgPSBhcHBJbmplY3Rvci5nZXQoUmFuZ2VTbGlkZXJGYWN0b3J5KTtcblxuZXhwb3J0IGZ1bmN0aW9uIEFpQXNzaXN0YW50Q29uZmlnKCkge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGFpQXNzaXN0YW50Q29uZmlnID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBTdGF0ZSkgPT4gc3RhdGUuZGVtby5haUFzc2lzdGFudC5jb25maWcpO1xuICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuXG4gIGNvbnN0IFtwcm92aWRlciwgc2V0UHJvdmlkZXJdID0gdXNlTG9jYWxTdG9yYWdlKFxuICAgICdhaS1hc3Npc3RhbnQtcHJvdmlkZXInLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLnByb3ZpZGVyIHx8ICdvcGVuYWknXG4gICk7XG4gIGNvbnN0IFttb2RlbCwgc2V0TW9kZWxdID0gdXNlTG9jYWxTdG9yYWdlKFxuICAgICdhaS1hc3Npc3RhbnQtbW9kZWwnLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1vZGVsIHx8IFBST1ZJREVSX01PREVMU1twcm92aWRlcl1bMF1cbiAgKTtcbiAgY29uc3QgW2FwaUtleSwgc2V0QXBpS2V5XSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LWFwaS1rZXknLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLmFwaUtleSB8fCAnJ1xuICApO1xuICBjb25zdCBbdGVtcGVyYXR1cmUsIHNldFRlbXBlcmF0dXJlXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LXRlbXBlcmF0dXJlJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy50ZW1wZXJhdHVyZSB8fCAwLjBcbiAgKTtcbiAgY29uc3QgW3RvcFAsIHNldFRvcFBdID0gdXNlTG9jYWxTdG9yYWdlKCdhaS1hc3Npc3RhbnQtdG9wLXAnLCBhaUFzc2lzdGFudENvbmZpZy50b3BQIHx8IDEuMCk7XG4gIGNvbnN0IFtiYXNlVXJsLCBzZXRCYXNlVXJsXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LWJhc2UtdXJsJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5iYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjExNDM0L2FwaSdcbiAgKTtcbiAgY29uc3QgW21hcGJveFRva2VuLCBzZXRNYXBib3hUb2tlbl0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1tYXBib3gtdG9rZW4nLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1hcGJveFRva2VuIHx8ICcnXG4gICk7XG4gIGNvbnN0IFtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCwgc2V0T2xsYW1hTW9kZWxJbnB1dENoZWNrZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb2xsYW1hTW9kZWxJbnB1dFZhbHVlLCBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbY29ubmVjdGlvbkVycm9yLCBzZXRDb25uZWN0aW9uRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNSdW5uaW5nLCBzZXRJc1J1bm5pbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uQWlQcm92aWRlclNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0UHJvdmlkZXIodmFsdWUpO1xuICAgICAgc2V0TW9kZWwoUFJPVklERVJfTU9ERUxTW3ZhbHVlXVswXSk7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IoZmFsc2UpO1xuICAgICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25MTE1Nb2RlbFNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0TW9kZWwodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkFwaUtleUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldEFwaUtleShlLnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgcHJldmlvdXMga2V5IGVycm9yIGlmIGFueVxuICAgIHNldENvbm5lY3Rpb25FcnJvcihmYWxzZSk7XG4gICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgfTtcblxuICBjb25zdCBvblRlbXBlcmF0dXJlQ2hhbmdlID0gKHZhbHVlOiBudW1iZXJbXSkgPT4ge1xuICAgIHNldFRlbXBlcmF0dXJlKHZhbHVlWzFdKTtcbiAgfTtcblxuICBjb25zdCBvblRvcFBDaGFuZ2UgPSAodmFsdWU6IG51bWJlcltdKSA9PiB7XG4gICAgc2V0VG9wUCh2YWx1ZVsxXSk7XG4gIH07XG5cbiAgY29uc3Qgb25CYXNlVXJsQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgc2V0QmFzZVVybChlLnRhcmdldC52YWx1ZSk7XG4gICAgc2V0Q29ubmVjdGlvbkVycm9yKGZhbHNlKTtcbiAgICBzZXRFcnJvck1lc3NhZ2UoJycpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFwYm94VG9rZW5DaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRNYXBib3hUb2tlbihlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZCA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgIGlmICghZS50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gdXNlIG1vZGVsIGZyb20gc2VsZWN0b3JcbiAgICAgIHNldE1vZGVsKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICAgIHNldE1vZGVsKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBvblN0YXJ0Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRJc1J1bm5pbmcodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gdGltZW91dCBhZnRlciAxNSBzZWNvbmRzJykpLCAxNTAwMCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgQXNzaXN0YW50TW9kZWwgPSBHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIoe1xuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXJcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gKGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIEFzc2lzdGFudE1vZGVsPy50ZXN0Q29ubmVjdGlvbihhcGlLZXksIG1vZGVsKSxcbiAgICAgICAgdGltZW91dFByb21pc2VcbiAgICAgIF0pKSBhcyBib29sZWFuO1xuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAhc3VjY2Vzc1xuICAgICAgICA/IHByb3ZpZGVyID09PSAnb2xsYW1hJ1xuICAgICAgICAgID8gJ0Nvbm5lY3Rpb24gZmFpbGVkOiBtYXliZSBpbnZhbGlkIE9sbGFtYSBCYXNlIFVSTCdcbiAgICAgICAgICA6ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBBUEkgS2V5J1xuICAgICAgICA6ICcnO1xuICAgICAgc2V0Q29ubmVjdGlvbkVycm9yKCFzdWNjZXNzKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnKHtcbiAgICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIsXG4gICAgICAgICAgbW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGFwaUtleTogYXBpS2V5LFxuICAgICAgICAgIGJhc2VVcmw6IGJhc2VVcmwsXG4gICAgICAgICAgaXNSZWFkeTogc3VjY2VzcyxcbiAgICAgICAgICB0ZW1wZXJhdHVyZTogdGVtcGVyYXR1cmUsXG4gICAgICAgICAgdG9wUDogdG9wUCxcbiAgICAgICAgICBtYXBib3hUb2tlbjogbWFwYm94VG9rZW5cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldENvbm5lY3Rpb25FcnJvcih0cnVlKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdDb25uZWN0aW9uIGZhaWxlZCcpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1J1bm5pbmcoZmFsc2UpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRBaUFzc2lzdGFudENvbmZpZyBjbGFzc05hbWU9XCJhaS1hc3Npc3RhbnQtY29uZmlnX190eXBlXCI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYWlQcm92aWRlclwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZWRXcmFwcGVyPlxuICAgICAgICA8U3R5bGVkSXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17cHJvdmlkZXJ9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMoUFJPVklERVJfTU9ERUxTKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkFpUHJvdmlkZXJTZWxlY3R9XG4gICAgICAgICAgZmlsdGVyT3B0aW9uPVwibmFtZVwiXG4gICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e29wID0+IG9wfVxuICAgICAgICAgIGRpc3BsYXlPcHRpb249e29wID0+IG9wfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIHNob3dBcnJvdz17dHJ1ZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU3R5bGVkV3JhcHBlcj5cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci5sbG1Nb2RlbC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIHsoKHByb3ZpZGVyID09PSAnb2xsYW1hJyAmJiAhb2xsYW1hTW9kZWxJbnB1dENoZWNrZWQpIHx8IHByb3ZpZGVyICE9PSAnb2xsYW1hJykgJiYgKFxuICAgICAgICA8U3R5bGVkV3JhcHBlcj5cbiAgICAgICAgICA8U3R5bGVkSXRlbVNlbGVjdG9yXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXttb2RlbH1cbiAgICAgICAgICAgIG9wdGlvbnM9e1BST1ZJREVSX01PREVMU1twcm92aWRlcl19XG4gICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICBkaXNhYmxlZD17cHJvdmlkZXIgPT09ICdvbGxhbWEnID8gb2xsYW1hTW9kZWxJbnB1dENoZWNrZWQgOiBmYWxzZX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IExMTSBNb2RlbFwiXG4gICAgICAgICAgICBvbkNoYW5nZT17b25MTE1Nb2RlbFNlbGVjdH1cbiAgICAgICAgICAgIGZpbHRlck9wdGlvbj1cIm5hbWVcIlxuICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e29wID0+IG9wfVxuICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17b3AgPT4gb3B9XG4gICAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIHNob3dBcnJvdz17dHJ1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICApfVxuICAgICAge3Byb3ZpZGVyID09PSAnb2xsYW1hJyAmJiAoXG4gICAgICAgIDxPbGxhbWFNb2RlbElucHV0V3JhcHBlcj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7d2lkdGg6ICcyNTBweCd9fT5cbiAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICBpZD1cIm9sbGFtYS1tb2RlbC1pbnB1dFwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiSW5wdXQgTW9kZWwgTmFtZVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk9sbGFtYU1vZGVsSW5wdXRDaGVja2VkfVxuICAgICAgICAgICAgICBjaGVja2VkPXtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBvbkNoYW5nZT17b25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE1vZGVsIE5hbWVcIlxuICAgICAgICAgICAgdmFsdWU9e29sbGFtYU1vZGVsSW5wdXRWYWx1ZX1cbiAgICAgICAgICAgIGRpc2FibGVkPXshb2xsYW1hTW9kZWxJbnB1dENoZWNrZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9PbGxhbWFNb2RlbElucHV0V3JhcHBlcj5cbiAgICAgICl9XG4gICAgICB7cHJvdmlkZXIgIT09ICdvbGxhbWEnID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmFwaUtleS5wbGFjZWhvbGRlclwiIC8+XG4gICAgICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0X19pY29uXCI+XG4gICAgICAgICAgICAgIDxBcGlLZXkgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkFwaUtleUNoYW5nZX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdhaUFzc2lzdGFudE1hbmFnZXIuYXBpS2V5LnBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICB2YWx1ZT17YXBpS2V5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApIDogKFxuICAgICAgICA8PlxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmJhc2VVcmwucGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICAgICAgPC9TZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dF9faWNvblwiPlxuICAgICAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25CYXNlVXJsQ2hhbmdlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2FpQXNzaXN0YW50TWFuYWdlci5iYXNlVXJsLnBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICB2YWx1ZT17YmFzZVVybH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICAgIHtjb25uZWN0aW9uRXJyb3IgJiYgKFxuICAgICAgICA8U3R5bGVFcnJvck1lc3NhZ2UgY2xhc3NOYW1lPVwiZXJyb3ItbWVzc2FnZVwiPntlcnJvck1lc3NhZ2V9PC9TdHlsZUVycm9yTWVzc2FnZT5cbiAgICAgICl9XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIudGVtcGVyYXR1cmUudGl0bGVcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICA8U3R5bGVTbGlkZXJXcmFwcGVyPlxuICAgICAgICA8UmFuZ2VTbGlkZXJcbiAgICAgICAgICBzaG93SW5wdXQ9e3RydWV9XG4gICAgICAgICAgaXNSYW5nZWQ9e2ZhbHNlfVxuICAgICAgICAgIHZhbHVlMD17MH1cbiAgICAgICAgICB2YWx1ZTE9e3RlbXBlcmF0dXJlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRlbXBlcmF0dXJlQ2hhbmdlfVxuICAgICAgICAgIHJhbmdlPXtbMCwgMl19XG4gICAgICAgICAgc3RlcD17MC4xfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIudG9wUC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgIHNob3dJbnB1dD17dHJ1ZX1cbiAgICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgICAgdmFsdWUwPXswfVxuICAgICAgICAgIHZhbHVlMT17dG9wUH1cbiAgICAgICAgICBvbkNoYW5nZT17b25Ub3BQQ2hhbmdlfVxuICAgICAgICAgIHJhbmdlPXtbMCwgMV19XG4gICAgICAgICAgc3RlcD17MC4xfVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICA8PlxuICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgPFNlY3Rpb25UaXRsZT5NYXBib3ggVG9rZW4gKG9wdGlvbmFsIGZvciByb3V0ZS9pc29jaHJvbmUpPC9TZWN0aW9uVGl0bGU+XG4gICAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dF9faWNvblwiPlxuICAgICAgICAgICAgPEFwaUtleSBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk1hcGJveFRva2VuQ2hhbmdlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIE1hcGJveCBUb2tlblwiXG4gICAgICAgICAgICB2YWx1ZT17bWFwYm94VG9rZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8Lz5cbiAgICAgIDxTdHlsZWRCdXR0b24+XG4gICAgICAgIDxCdXR0b24gb25DbGljaz17b25TdGFydENoYXR9IHdpZHRoPXsnMTAwJSd9PlxuICAgICAgICAgIHtpc1J1bm5pbmcgJiYgPExvYWRpbmdTcGlubmVyIHNpemU9ezEyfSAvPn1cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci5zdGFydENoYXRcIiAvPlxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvU3R5bGVkQnV0dG9uPlxuICAgIDwvU3R5bGVkQWlBc3Npc3RhbnRDb25maWc+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFXQSxJQUFBSyxPQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFB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
353
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RSZWR1eCIsIl9jb21wb25lbnRzIiwiX2FwaUtleSIsIl9tb2RlbHMiLCJfdXNlaG9va3NUcyIsIl9jb3JlIiwiX2FjdGlvbnMiLCJfcmVhY3RJbnRsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlNlY3Rpb25UaXRsZSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImlucHV0Rm9udFNpemUiLCJlZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxIiwiU3R5bGVkQWlBc3Npc3RhbnRDb25maWciLCJwcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0IiwiYm94U2hhZG93IiwiZ2VvY29kZXJJbnB1dEhlaWdodCIsInN1YnRleHRDb2xvciIsIk9sbGFtYU1vZGVsSW5wdXRXcmFwcGVyIiwiU3R5bGVkV3JhcHBlciIsIlN0eWxlZEl0ZW1TZWxlY3RvciIsIkl0ZW1TZWxlY3RvciIsImFjdGl2ZUNvbG9yIiwiU3R5bGVTbGlkZXJXcmFwcGVyIiwiU3R5bGVkQnV0dG9uIiwiU3R5bGVFcnJvck1lc3NhZ2UiLCJlcnJvckNvbG9yIiwiZXJyb3JUZXh0Q29sb3IiLCJSYW5nZVNsaWRlciIsImFwcEluamVjdG9yIiwiUmFuZ2VTbGlkZXJGYWN0b3J5IiwiQWlBc3Npc3RhbnRDb25maWciLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiYWlBc3Npc3RhbnRDb25maWciLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZGVtbyIsImFpQXNzaXN0YW50IiwiY29uZmlnIiwiaW50bCIsInVzZUludGwiLCJfdXNlTG9jYWxTdG9yYWdlIiwidXNlTG9jYWxTdG9yYWdlIiwicHJvdmlkZXIiLCJfdXNlTG9jYWxTdG9yYWdlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFByb3ZpZGVyIiwiX3VzZUxvY2FsU3RvcmFnZTMiLCJtb2RlbCIsIlBST1ZJREVSX01PREVMUyIsIl91c2VMb2NhbFN0b3JhZ2U0Iiwic2V0TW9kZWwiLCJfdXNlTG9jYWxTdG9yYWdlNSIsImFwaUtleSIsIl91c2VMb2NhbFN0b3JhZ2U2Iiwic2V0QXBpS2V5IiwiX3VzZUxvY2FsU3RvcmFnZTciLCJ0ZW1wZXJhdHVyZSIsIl91c2VMb2NhbFN0b3JhZ2U4Iiwic2V0VGVtcGVyYXR1cmUiLCJfdXNlTG9jYWxTdG9yYWdlOSIsInRvcFAiLCJfdXNlTG9jYWxTdG9yYWdlMTAiLCJzZXRUb3BQIiwiX3VzZUxvY2FsU3RvcmFnZTExIiwiYmFzZVVybCIsIlBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTIiwiX3VzZUxvY2FsU3RvcmFnZTEyIiwic2V0QmFzZVVybCIsIl91c2VMb2NhbFN0b3JhZ2UxMyIsIm1hcGJveFRva2VuIiwiX3VzZUxvY2FsU3RvcmFnZTE0Iiwic2V0TWFwYm94VG9rZW4iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCIsInNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJvbGxhbWFNb2RlbElucHV0VmFsdWUiLCJzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImNvbm5lY3Rpb25FcnJvciIsInNldENvbm5lY3Rpb25FcnJvciIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiaXNSdW5uaW5nIiwic2V0SXNSdW5uaW5nIiwib25BaVByb3ZpZGVyU2VsZWN0IiwidmFsdWUiLCJvbkxMTU1vZGVsU2VsZWN0Iiwib25BcGlLZXlDaGFuZ2UiLCJ0YXJnZXQiLCJvblRlbXBlcmF0dXJlQ2hhbmdlIiwib25Ub3BQQ2hhbmdlIiwib25CYXNlVXJsQ2hhbmdlIiwib25NYXBib3hUb2tlbkNoYW5nZSIsIm9uT2xsYW1hTW9kZWxJbnB1dENoZWNrZWQiLCJjaGVja2VkIiwib25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UiLCJvblN0YXJ0Q2hhdCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInRpbWVvdXRQcm9taXNlIiwiQXNzaXN0YW50TW9kZWwiLCJzdWNjZXNzIiwiX2Vycm9yTWVzc2FnZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJQcm9taXNlIiwiXyIsInJlamVjdCIsInNldFRpbWVvdXQiLCJFcnJvciIsIkdldEFzc2lzdGFudE1vZGVsQnlQcm92aWRlciIsInNlbnQiLCJjb25maWd1cmUiLCJ0ZXN0Q29ubmVjdGlvbiIsImJhc2VVUkwiLCJOdW1iZXIiLCJyYWNlIiwidXBkYXRlQWlBc3Npc3RhbnRDb25maWciLCJpc1JlYWR5IiwidDAiLCJtZXNzYWdlIiwiZmluaXNoIiwic3RvcCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJrZXlzIiwibXVsdGlTZWxlY3QiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwiZmlsdGVyT3B0aW9uIiwiZ2V0T3B0aW9uVmFsdWUiLCJvcCIsImRpc3BsYXlPcHRpb24iLCJzZWFyY2hhYmxlIiwic2hvd0Fycm93IiwicGxhY2Vob2xkZXIiLCJzdHlsZSIsIndpZHRoIiwiQ2hlY2tib3giLCJsYWJlbCIsIklucHV0IiwidHlwZSIsIkZyYWdtZW50IiwiaGVpZ2h0IiwiZm9ybWF0TWVzc2FnZSIsInNob3dJbnB1dCIsImlzUmFuZ2VkIiwidmFsdWUwIiwidmFsdWUxIiwicmFuZ2UiLCJzdGVwIiwiQnV0dG9uIiwib25DbGljayIsIkxvYWRpbmdTcGlubmVyIiwic2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2FpLWFzc2lzdGFudC1jb25maWcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dXNlU2VsZWN0b3IsIHVzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBJbnB1dCxcbiAgUGFuZWxMYWJlbFdyYXBwZXIsXG4gIEl0ZW1TZWxlY3RvcixcbiAgUmFuZ2VTbGlkZXJGYWN0b3J5LFxuICBCdXR0b24sXG4gIExvYWRpbmdTcGlubmVyLFxuICBhcHBJbmplY3RvcixcbiAgQ2hlY2tib3hcbn0gZnJvbSAnQGtlcGxlci5nbC9jb21wb25lbnRzJztcbmltcG9ydCB7U3RhdGV9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCBBcGlLZXkgZnJvbSAnLi4vaWNvbnMvYXBpLWtleSc7XG5pbXBvcnQge1BST1ZJREVSX01PREVMUywgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFN9IGZyb20gJy4uL2NvbmZpZy9tb2RlbHMnO1xuaW1wb3J0IHt1c2VMb2NhbFN0b3JhZ2V9IGZyb20gJ3VzZWhvb2tzLXRzJztcbmltcG9ydCB7R2V0QXNzaXN0YW50TW9kZWxCeVByb3ZpZGVyfSBmcm9tICdAb3BlbmFzc2lzdGFudC9jb3JlJztcbmltcG9ydCB7dXBkYXRlQWlBc3Npc3RhbnRDb25maWd9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlLCB1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcblxuY29uc3QgU2VjdGlvblRpdGxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbFRleHRTZWNvbmRhcnkxfTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRBaUFzc2lzdGFudENvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIHBhZGRpbmc6IDEycHg7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wcmltYXJ5QnRuRm9udFNpemVEZWZhdWx0fTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIC5hcGkta2V5LWlucHV0IHtcbiAgICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmFwaS1rZXktaW5wdXRfX2ljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgcGFkZGluZzogNHB4IDM2cHg7XG4gICAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICAgIGNhcmV0LWNvbG9yOiB1bnNldDtcbiAgICB9XG4gIH1cbmA7XG5cbi8vIE9sbGFtYSBtb2RlbCBpbnB1dCB3cmFwcGVyOiBjaGVja2JveCArICdJbnB1dCBNb2RlbCBOYW1lOicgKyBpbnB1dFxuLy8gYWxsIGNoaWxkcmVuIGVsZW1lbnQgaGF2ZSB3aWR0aCBiYXNlZCBvbiB0aGUgY29udGVudFxuY29uc3QgT2xsYW1hTW9kZWxJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBnYXA6IDRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IFN0eWxlZFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBTdHlsZWRJdGVtU2VsZWN0b3IgPSBzdHlsZWQoSXRlbVNlbGVjdG9yKWBcbiAgLml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG4gIC5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwcHggMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgd2lkdGg6IDEwMCU7XG5gO1xuXG5jb25zdCBTdHlsZVNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAua2ctcmFuZ2Utc2xpZGVyX19pbnB1dCB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcHggNnB4O1xuICB9XG4gIC5rZy1zbGlkZXIge1xuICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICB9XG4gIC5rZy1yYW5nZS1zbGlkZXIge1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogMTJweDtcblxuICBidXR0b24gZGl2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlRXJyb3JNZXNzYWdlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5Gb250U2l6ZURlZmF1bHR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yQ29sb3J9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmVycm9yVGV4dENvbG9yfTtcbmA7XG5cbmNvbnN0IFJhbmdlU2xpZGVyID0gYXBwSW5qZWN0b3IuZ2V0KFJhbmdlU2xpZGVyRmFjdG9yeSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBBaUFzc2lzdGFudENvbmZpZygpIHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBhaUFzc2lzdGFudENvbmZpZyA9IHVzZVNlbGVjdG9yKChzdGF0ZTogU3RhdGUpID0+IHN0YXRlLmRlbW8uYWlBc3Npc3RhbnQuY29uZmlnKTtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICBjb25zdCBbcHJvdmlkZXIsIHNldFByb3ZpZGVyXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LXByb3ZpZGVyJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5wcm92aWRlciB8fCAnb3BlbmFpJ1xuICApO1xuICBjb25zdCBbbW9kZWwsIHNldE1vZGVsXSA9IHVzZUxvY2FsU3RvcmFnZShcbiAgICAnYWktYXNzaXN0YW50LW1vZGVsJyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5tb2RlbCB8fCBQUk9WSURFUl9NT0RFTFNbcHJvdmlkZXJdWzBdXG4gICk7XG4gIGNvbnN0IFthcGlLZXksIHNldEFwaUtleV0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1hcGkta2V5JyxcbiAgICBhaUFzc2lzdGFudENvbmZpZy5hcGlLZXkgfHwgJydcbiAgKTtcbiAgY29uc3QgW3RlbXBlcmF0dXJlLCBzZXRUZW1wZXJhdHVyZV0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC10ZW1wZXJhdHVyZScsXG4gICAgYWlBc3Npc3RhbnRDb25maWcudGVtcGVyYXR1cmUgfHwgMC4wXG4gICk7XG4gIGNvbnN0IFt0b3BQLCBzZXRUb3BQXSA9IHVzZUxvY2FsU3RvcmFnZSgnYWktYXNzaXN0YW50LXRvcC1wJywgYWlBc3Npc3RhbnRDb25maWcudG9wUCB8fCAxLjApO1xuICBjb25zdCBbYmFzZVVybCwgc2V0QmFzZVVybF0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1iYXNlLXVybCcsXG4gICAgYWlBc3Npc3RhbnRDb25maWcuYmFzZVVybCB8fCBQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMU1twcm92aWRlcl1cbiAgKTtcbiAgY29uc3QgW21hcGJveFRva2VuLCBzZXRNYXBib3hUb2tlbl0gPSB1c2VMb2NhbFN0b3JhZ2UoXG4gICAgJ2FpLWFzc2lzdGFudC1tYXBib3gtdG9rZW4nLFxuICAgIGFpQXNzaXN0YW50Q29uZmlnLm1hcGJveFRva2VuIHx8ICcnXG4gICk7XG4gIGNvbnN0IFtvbGxhbWFNb2RlbElucHV0Q2hlY2tlZCwgc2V0T2xsYW1hTW9kZWxJbnB1dENoZWNrZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbb2xsYW1hTW9kZWxJbnB1dFZhbHVlLCBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbY29ubmVjdGlvbkVycm9yLCBzZXRDb25uZWN0aW9uRXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNSdW5uaW5nLCBzZXRJc1J1bm5pbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uQWlQcm92aWRlclNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0UHJvdmlkZXIodmFsdWUpO1xuICAgICAgc2V0TW9kZWwoUFJPVklERVJfTU9ERUxTW3ZhbHVlXVswXSk7XG4gICAgICBzZXRCYXNlVXJsKFBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTW3ZhbHVlXSk7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IoZmFsc2UpO1xuICAgICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25MTE1Nb2RlbFNlbGVjdCA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2V0TW9kZWwodmFsdWUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBvbkFwaUtleUNoYW5nZSA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldEFwaUtleShlLnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgcHJldmlvdXMga2V5IGVycm9yIGlmIGFueVxuICAgIHNldENvbm5lY3Rpb25FcnJvcihmYWxzZSk7XG4gICAgc2V0RXJyb3JNZXNzYWdlKCcnKTtcbiAgfTtcblxuICBjb25zdCBvblRlbXBlcmF0dXJlQ2hhbmdlID0gKHZhbHVlOiBudW1iZXJbXSkgPT4ge1xuICAgIHNldFRlbXBlcmF0dXJlKHZhbHVlWzFdKTtcbiAgfTtcblxuICBjb25zdCBvblRvcFBDaGFuZ2UgPSAodmFsdWU6IG51bWJlcltdKSA9PiB7XG4gICAgc2V0VG9wUCh2YWx1ZVsxXSk7XG4gIH07XG5cbiAgY29uc3Qgb25CYXNlVXJsQ2hhbmdlID0gKGU6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgc2V0QmFzZVVybChlLnRhcmdldC52YWx1ZSk7XG4gICAgc2V0Q29ubmVjdGlvbkVycm9yKGZhbHNlKTtcbiAgICBzZXRFcnJvck1lc3NhZ2UoJycpO1xuICB9O1xuXG4gIGNvbnN0IG9uTWFwYm94VG9rZW5DaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRNYXBib3hUb2tlbihlLnRhcmdldC52YWx1ZSk7XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZCA9IChlOiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIHNldE9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKGUudGFyZ2V0LmNoZWNrZWQpO1xuICAgIGlmICghZS50YXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gdXNlIG1vZGVsIGZyb20gc2VsZWN0b3JcbiAgICAgIHNldE1vZGVsKCcnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgb25PbGxhbWFNb2RlbElucHV0VmFsdWVDaGFuZ2UgPSAoZTogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBzZXRPbGxhbWFNb2RlbElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICAgIHNldE1vZGVsKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBvblN0YXJ0Q2hhdCA9IGFzeW5jICgpID0+IHtcbiAgICBzZXRJc1J1bm5pbmcodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gdGltZW91dCBhZnRlciAxNSBzZWNvbmRzJykpLCAxNTAwMCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgQXNzaXN0YW50TW9kZWwgPSBhd2FpdCBHZXRBc3Npc3RhbnRNb2RlbEJ5UHJvdmlkZXIoe1xuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXJcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIUFzc2lzdGFudE1vZGVsIHx8ICFBc3Npc3RhbnRNb2RlbC5jb25maWd1cmUgfHwgIUFzc2lzdGFudE1vZGVsLnRlc3RDb25uZWN0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGluaXRpYWxpemUgQUkgbW9kZWwnKTtcbiAgICAgIH1cblxuICAgICAgLy8gY29uZmlndXJlIG1vZGVsXG4gICAgICBBc3Npc3RhbnRNb2RlbC5jb25maWd1cmUoe1xuICAgICAgICBtb2RlbDogbW9kZWwsXG4gICAgICAgIGJhc2VVUkw6IGJhc2VVcmwgfHwgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFNbcHJvdmlkZXJdLFxuICAgICAgICBhcGlLZXk6IGFwaUtleSxcbiAgICAgICAgdGVtcGVyYXR1cmU6IE51bWJlcih0ZW1wZXJhdHVyZSksXG4gICAgICAgIHRvcFA6IE51bWJlcih0b3BQKVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSAoYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICAgICAgQXNzaXN0YW50TW9kZWwudGVzdENvbm5lY3Rpb24oYXBpS2V5LCBtb2RlbCksXG4gICAgICAgIHRpbWVvdXRQcm9taXNlXG4gICAgICBdKSkgYXMgYm9vbGVhbjtcblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gIXN1Y2Nlc3NcbiAgICAgICAgPyBwcm92aWRlciA9PT0gJ29sbGFtYSdcbiAgICAgICAgICA/ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBCYXNlIFVSTCdcbiAgICAgICAgICA6ICdDb25uZWN0aW9uIGZhaWxlZDogbWF5YmUgaW52YWxpZCBBUEkgS2V5IG9yIEJhc2UgVVJMJ1xuICAgICAgICA6ICcnO1xuICAgICAgc2V0Q29ubmVjdGlvbkVycm9yKCFzdWNjZXNzKTtcbiAgICAgIHNldEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpO1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnKHtcbiAgICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIsXG4gICAgICAgICAgbW9kZWw6IG1vZGVsLFxuICAgICAgICAgIGFwaUtleTogYXBpS2V5LFxuICAgICAgICAgIGJhc2VVcmw6IGJhc2VVcmwgfHwgUFJPVklERVJfREVGQVVMVF9CQVNFX1VSTFNbcHJvdmlkZXJdLFxuICAgICAgICAgIGlzUmVhZHk6IHN1Y2Nlc3MsXG4gICAgICAgICAgdGVtcGVyYXR1cmU6IHRlbXBlcmF0dXJlLFxuICAgICAgICAgIHRvcFA6IHRvcFAsXG4gICAgICAgICAgbWFwYm94VG9rZW46IG1hcGJveFRva2VuXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBzZXRDb25uZWN0aW9uRXJyb3IodHJ1ZSk7XG4gICAgICBzZXRFcnJvck1lc3NhZ2UoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQ29ubmVjdGlvbiBmYWlsZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0SXNSdW5uaW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWlBc3Npc3RhbnRDb25maWcgY2xhc3NOYW1lPVwiYWktYXNzaXN0YW50LWNvbmZpZ19fdHlwZVwiPlxuICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICA8U2VjdGlvblRpdGxlPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLmFpUHJvdmlkZXJcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICA8U3R5bGVkV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3Byb3ZpZGVyfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKFBST1ZJREVSX01PREVMUyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25BaVByb3ZpZGVyU2VsZWN0fVxuICAgICAgICAgIGZpbHRlck9wdGlvbj1cIm5hbWVcIlxuICAgICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcH1cbiAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtvcCA9PiBvcH1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBzaG93QXJyb3c9e3RydWV9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlZFdyYXBwZXI+XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIubGxtTW9kZWwudGl0bGVcIiAvPlxuICAgICAgICA8L1NlY3Rpb25UaXRsZT5cbiAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICB7KChwcm92aWRlciA9PT0gJ29sbGFtYScgJiYgIW9sbGFtYU1vZGVsSW5wdXRDaGVja2VkKSB8fCBwcm92aWRlciAhPT0gJ29sbGFtYScpICYmIChcbiAgICAgICAgPFN0eWxlZFdyYXBwZXI+XG4gICAgICAgICAgPFN0eWxlZEl0ZW1TZWxlY3RvclxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17bW9kZWx9XG4gICAgICAgICAgICBvcHRpb25zPXtQUk9WSURFUl9NT0RFTFNbcHJvdmlkZXJdfVxuICAgICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3ZpZGVyID09PSAnb2xsYW1hJyA/IG9sbGFtYU1vZGVsSW5wdXRDaGVja2VkIDogZmFsc2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBMTE0gTW9kZWxcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uTExNTW9kZWxTZWxlY3R9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249XCJuYW1lXCJcbiAgICAgICAgICAgIGdldE9wdGlvblZhbHVlPXtvcCA9PiBvcH1cbiAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e29wID0+IG9wfVxuICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICBzaG93QXJyb3c9e3RydWV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdHlsZWRXcmFwcGVyPlxuICAgICAgKX1cbiAgICAgIHtwcm92aWRlciA9PT0gJ29sbGFtYScgJiYgKFxuICAgICAgICA8T2xsYW1hTW9kZWxJbnB1dFdyYXBwZXI+XG4gICAgICAgICAgPGRpdiBzdHlsZT17e3dpZHRoOiAnMjUwcHgnfX0+XG4gICAgICAgICAgICA8Q2hlY2tib3hcbiAgICAgICAgICAgICAgaWQ9XCJvbGxhbWEtbW9kZWwtaW5wdXRcIlxuICAgICAgICAgICAgICBsYWJlbD1cIklucHV0IE1vZGVsIE5hbWVcIlxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25PbGxhbWFNb2RlbElucHV0Q2hlY2tlZH1cbiAgICAgICAgICAgICAgY2hlY2tlZD17b2xsYW1hTW9kZWxJbnB1dENoZWNrZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uT2xsYW1hTW9kZWxJbnB1dFZhbHVlQ2hhbmdlfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBNb2RlbCBOYW1lXCJcbiAgICAgICAgICAgIHZhbHVlPXtvbGxhbWFNb2RlbElucHV0VmFsdWV9XG4gICAgICAgICAgICBkaXNhYmxlZD17IW9sbGFtYU1vZGVsSW5wdXRDaGVja2VkfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvT2xsYW1hTW9kZWxJbnB1dFdyYXBwZXI+XG4gICAgICApfVxuICAgICAge3Byb3ZpZGVyICE9PSAnb2xsYW1hJyAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYXBpS2V5LnRpdGxlXCIgLz5cbiAgICAgICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgICAgIDwvUGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRfX2ljb25cIj5cbiAgICAgICAgICAgICAgPEFwaUtleSBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQXBpS2V5Q2hhbmdlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2FpQXNzaXN0YW50TWFuYWdlci5hcGlLZXkucGxhY2Vob2xkZXInfSl9XG4gICAgICAgICAgICAgIHZhbHVlPXthcGlLZXl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgIDxTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJhaUFzc2lzdGFudE1hbmFnZXIuYmFzZVVybC50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYXBpLWtleS1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFwaS1rZXktaW5wdXRfX2ljb25cIj5cbiAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkJhc2VVcmxDaGFuZ2V9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1BST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTW3Byb3ZpZGVyXX1cbiAgICAgICAgICB2YWx1ZT17YmFzZVVybH1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAge2Nvbm5lY3Rpb25FcnJvciAmJiAoXG4gICAgICAgIDxTdHlsZUVycm9yTWVzc2FnZSBjbGFzc05hbWU9XCJlcnJvci1tZXNzYWdlXCI+e2Vycm9yTWVzc2FnZX08L1N0eWxlRXJyb3JNZXNzYWdlPlxuICAgICAgKX1cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci50ZW1wZXJhdHVyZS50aXRsZVwiIC8+XG4gICAgICAgIDwvU2VjdGlvblRpdGxlPlxuICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgIDxTdHlsZVNsaWRlcldyYXBwZXI+XG4gICAgICAgIDxSYW5nZVNsaWRlclxuICAgICAgICAgIHNob3dJbnB1dD17dHJ1ZX1cbiAgICAgICAgICBpc1JhbmdlZD17ZmFsc2V9XG4gICAgICAgICAgdmFsdWUwPXswfVxuICAgICAgICAgIHZhbHVlMT17dGVtcGVyYXR1cmV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uVGVtcGVyYXR1cmVDaGFuZ2V9XG4gICAgICAgICAgcmFuZ2U9e1swLCAyXX1cbiAgICAgICAgICBzdGVwPXswLjF9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPFNlY3Rpb25UaXRsZT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImFpQXNzaXN0YW50TWFuYWdlci50b3BQLnRpdGxlXCIgLz5cbiAgICAgICAgPC9TZWN0aW9uVGl0bGU+XG4gICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgPFN0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgICAgPFJhbmdlU2xpZGVyXG4gICAgICAgICAgc2hvd0lucHV0PXt0cnVlfVxuICAgICAgICAgIGlzUmFuZ2VkPXtmYWxzZX1cbiAgICAgICAgICB2YWx1ZTA9ezB9XG4gICAgICAgICAgdmFsdWUxPXt0b3BQfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblRvcFBDaGFuZ2V9XG4gICAgICAgICAgcmFuZ2U9e1swLCAxXX1cbiAgICAgICAgICBzdGVwPXswLjF9XG4gICAgICAgIC8+XG4gICAgICA8L1N0eWxlU2xpZGVyV3JhcHBlcj5cbiAgICAgIDw+XG4gICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8U2VjdGlvblRpdGxlPk1hcGJveCBUb2tlbiAob3B0aW9uYWwgZm9yIHJvdXRlL2lzb2Nocm9uZSk8L1NlY3Rpb25UaXRsZT5cbiAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcGkta2V5LWlucHV0X19pY29uXCI+XG4gICAgICAgICAgICA8QXBpS2V5IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgb25DaGFuZ2U9e29uTWFwYm94VG9rZW5DaGFuZ2V9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHlvdXIgTWFwYm94IFRva2VuXCJcbiAgICAgICAgICAgIHZhbHVlPXttYXBib3hUb2tlbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICAgPFN0eWxlZEJ1dHRvbj5cbiAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtvblN0YXJ0Q2hhdH0gd2lkdGg9eycxMDAlJ30+XG4gICAgICAgICAge2lzUnVubmluZyAmJiA8TG9hZGluZ1NwaW5uZXIgc2l6ZT17MTJ9IC8+fVxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwiYWlBc3Npc3RhbnRNYW5hZ2VyLnN0YXJ0Q2hhdFwiIC8+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgPC9TdHlsZWRCdXR0b24+XG4gICAgPC9TdHlsZWRBaUFzc2lzdGFudENvbmZpZz5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQVdBLElBQUFLLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUFxRCxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBdEJyRDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFyQix3QkFBQXFCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxD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
@@ -1,3 +1,11 @@
1
+ export declare const PROVIDER_DEFAULT_BASE_URLS: {
2
+ openai: string;
3
+ anthropic: string;
4
+ google: string;
5
+ deepseek: string;
6
+ xai: string;
7
+ ollama: string;
8
+ };
1
9
  export declare const PROVIDER_MODELS: {
2
10
  openai: string[];
3
11
  google: string[];
@@ -3,16 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PROVIDER_MODELS = void 0;
6
+ exports.PROVIDER_MODELS = exports.PROVIDER_DEFAULT_BASE_URLS = void 0;
7
7
  // SPDX-License-Identifier: MIT
8
8
  // Copyright contributors to the kepler.gl project
9
9
 
10
+ var PROVIDER_DEFAULT_BASE_URLS = exports.PROVIDER_DEFAULT_BASE_URLS = {
11
+ "openai": "https://api.openai.com/v1",
12
+ "anthropic": "https://api.anthropic.com/v1",
13
+ "google": "https://generativelanguage.googleapis.com/v1beta",
14
+ "deepseek": "https://api.deepseek.com/v1",
15
+ "xai": "https://api.x.ai/v1",
16
+ "ollama": "http://localhost:11434/api"
17
+ };
10
18
  var PROVIDER_MODELS = exports.PROVIDER_MODELS = {
11
- "openai": ["gpt-4.1", "gpt-4o", "gpt-4o-mini", "gpt-4", "gpt-3.5-turbo", "o1", "o1-preview", "o1-mini"],
12
- "google": ["gemini-2.5-flash-preview-04-17", "gemini-2.5-pro-preview-05-06", "gemini-2.0-flash", "gemini-1.5-flash", "gemini-1.5-pro"],
13
- "deepseek": ["deepseek-chat"],
14
- "anthropic": ["claude-3.7-sonnet", "claude-3.5-sonnet", "claude-3.5-haiku", "claude-3-opus", "claude-3-sonnet", "claude-3-haiku"],
15
- "xai": ["grok-3", "grok-3-fast", "grok-3-mini", "grok-3-mini-fast"],
16
- "ollama": ["deepseek-r1", "gemma3", "llama4", "llama3.3", "mistral", "phi4", "qwen3", "qwen2.5"]
19
+ openai: ['gpt-4.1', 'gpt-4o', 'gpt-4o-mini', 'gpt-4', 'gpt-3.5-turbo', 'o1', 'o1-preview', 'o1-mini'],
20
+ google: ['gemini-2.5-flash', 'gemini-2.5-pro', 'gemini-2.0-flash', 'gemini-1.5-flash', 'gemini-1.5-pro'],
21
+ deepseek: ['deepseek-chat'],
22
+ anthropic: ['claude-opus-4-1', 'claude-opus-4-0', 'claude-sonnet-4-0', 'claude-3.7-sonnet', 'claude-3.5-sonnet', 'claude-3.5-haiku', 'claude-3-opus', 'claude-3-sonnet', 'claude-3-haiku'],
23
+ xai: ['grok-3', 'grok-3-fast', 'grok-3-mini', 'grok-3-mini-fast'],
24
+ ollama: ['qwen3:32b', 'gpt-oss']
17
25
  };
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQUk9WSURFUl9NT0RFTFMiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9tb2RlbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0IGNvbnN0IFBST1ZJREVSX01PREVMUyA9IHtcbiAgXCJvcGVuYWlcIjogW1xuICAgIFwiZ3B0LTQuMVwiLFxuICAgIFwiZ3B0LTRvXCIsXG4gICAgXCJncHQtNG8tbWluaVwiLFxuICAgIFwiZ3B0LTRcIixcbiAgICBcImdwdC0zLjUtdHVyYm9cIixcbiAgICBcIm8xXCIsXG4gICAgXCJvMS1wcmV2aWV3XCIsXG4gICAgXCJvMS1taW5pXCJcbiAgXSxcbiAgXCJnb29nbGVcIjogW1xuICAgIFwiZ2VtaW5pLTIuNS1mbGFzaC1wcmV2aWV3LTA0LTE3XCIsXG4gICAgXCJnZW1pbmktMi41LXByby1wcmV2aWV3LTA1LTA2XCIsXG4gICAgXCJnZW1pbmktMi4wLWZsYXNoXCIsXG4gICAgXCJnZW1pbmktMS41LWZsYXNoXCIsXG4gICAgXCJnZW1pbmktMS41LXByb1wiXG4gIF0sXG4gIFwiZGVlcHNlZWtcIjogW1wiZGVlcHNlZWstY2hhdFwiXSxcbiAgXCJhbnRocm9waWNcIjogW1xuICAgIFwiY2xhdWRlLTMuNy1zb25uZXRcIixcbiAgICBcImNsYXVkZS0zLjUtc29ubmV0XCIsXG4gICAgXCJjbGF1ZGUtMy41LWhhaWt1XCIsXG4gICAgXCJjbGF1ZGUtMy1vcHVzXCIsXG4gICAgXCJjbGF1ZGUtMy1zb25uZXRcIixcbiAgICBcImNsYXVkZS0zLWhhaWt1XCJcbiAgXSxcbiAgXCJ4YWlcIjogW1wiZ3Jvay0zXCIsIFwiZ3Jvay0zLWZhc3RcIiwgXCJncm9rLTMtbWluaVwiLCBcImdyb2stMy1taW5pLWZhc3RcIl0sXG4gIFwib2xsYW1hXCI6IFtcImRlZXBzZWVrLXIxXCIsIFwiZ2VtbWEzXCIsIFwibGxhbWE0XCIsIFwibGxhbWEzLjNcIiwgXCJtaXN0cmFsXCIsIFwicGhpNFwiLCBcInF3ZW4zXCIsIFwicXdlbjIuNVwiXVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFTyxJQUFNQSxlQUFlLEdBQUFDLE9BQUEsQ0FBQUQsZUFBQSxHQUFHO0VBQzdCLFFBQVEsRUFBRSxDQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1IsYUFBYSxFQUNiLE9BQU8sRUFDUCxlQUFlLEVBQ2YsSUFBSSxFQUNKLFlBQVksRUFDWixTQUFTLENBQ1Y7RUFDRCxRQUFRLEVBQUUsQ0FDUixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQzlCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsZ0JBQWdCLENBQ2pCO0VBQ0QsVUFBVSxFQUFFLENBQUMsZUFBZSxDQUFDO0VBQzdCLFdBQVcsRUFBRSxDQUNYLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZ0JBQWdCLENBQ2pCO0VBQ0QsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUM7RUFDbkUsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVM7QUFDakcsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMUyIsImV4cG9ydHMiLCJQUk9WSURFUl9NT0RFTFMiLCJvcGVuYWkiLCJnb29nbGUiLCJkZWVwc2VlayIsImFudGhyb3BpYyIsInhhaSIsIm9sbGFtYSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbW9kZWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFUl9ERUZBVUxUX0JBU0VfVVJMUyA9IHtcbiAgXCJvcGVuYWlcIjogXCJodHRwczovL2FwaS5vcGVuYWkuY29tL3YxXCIsXG4gIFwiYW50aHJvcGljXCI6IFwiaHR0cHM6Ly9hcGkuYW50aHJvcGljLmNvbS92MVwiLFxuICBcImdvb2dsZVwiOiBcImh0dHBzOi8vZ2VuZXJhdGl2ZWxhbmd1YWdlLmdvb2dsZWFwaXMuY29tL3YxYmV0YVwiLFxuICBcImRlZXBzZWVrXCI6IFwiaHR0cHM6Ly9hcGkuZGVlcHNlZWsuY29tL3YxXCIsXG4gIFwieGFpXCI6IFwiaHR0cHM6Ly9hcGkueC5haS92MVwiLFxuICBcIm9sbGFtYVwiOiBcImh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQvYXBpXCJcbn07XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFUl9NT0RFTFMgPSB7XG4gIG9wZW5haTogW1xuICAgICdncHQtNC4xJyxcbiAgICAnZ3B0LTRvJyxcbiAgICAnZ3B0LTRvLW1pbmknLFxuICAgICdncHQtNCcsXG4gICAgJ2dwdC0zLjUtdHVyYm8nLFxuICAgICdvMScsXG4gICAgJ28xLXByZXZpZXcnLFxuICAgICdvMS1taW5pJ1xuICBdLFxuICBnb29nbGU6IFtcbiAgICAnZ2VtaW5pLTIuNS1mbGFzaCcsXG4gICAgJ2dlbWluaS0yLjUtcHJvJyxcbiAgICAnZ2VtaW5pLTIuMC1mbGFzaCcsXG4gICAgJ2dlbWluaS0xLjUtZmxhc2gnLFxuICAgICdnZW1pbmktMS41LXBybydcbiAgXSxcbiAgZGVlcHNlZWs6IFsnZGVlcHNlZWstY2hhdCddLFxuICBhbnRocm9waWM6IFtcbiAgICAnY2xhdWRlLW9wdXMtNC0xJyxcbiAgICAnY2xhdWRlLW9wdXMtNC0wJyxcbiAgICAnY2xhdWRlLXNvbm5ldC00LTAnLFxuICAgICdjbGF1ZGUtMy43LXNvbm5ldCcsXG4gICAgJ2NsYXVkZS0zLjUtc29ubmV0JyxcbiAgICAnY2xhdWRlLTMuNS1oYWlrdScsXG4gICAgJ2NsYXVkZS0zLW9wdXMnLFxuICAgICdjbGF1ZGUtMy1zb25uZXQnLFxuICAgICdjbGF1ZGUtMy1oYWlrdSdcbiAgXSxcbiAgeGFpOiBbJ2dyb2stMycsICdncm9rLTMtZmFzdCcsICdncm9rLTMtbWluaScsICdncm9rLTMtbWluaS1mYXN0J10sXG4gIG9sbGFtYTogWydxd2VuMzozMmInLCAnZ3B0LW9zcyddXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVPLElBQU1BLDBCQUEwQixHQUFBQyxPQUFBLENBQUFELDBCQUFBLEdBQUc7RUFDeEMsUUFBUSxFQUFFLDJCQUEyQjtFQUNyQyxXQUFXLEVBQUUsOEJBQThCO0VBQzNDLFFBQVEsRUFBRSxrREFBa0Q7RUFDNUQsVUFBVSxFQUFFLDZCQUE2QjtFQUN6QyxLQUFLLEVBQUUscUJBQXFCO0VBQzVCLFFBQVEsRUFBRTtBQUNaLENBQUM7QUFFTSxJQUFNRSxlQUFlLEdBQUFELE9BQUEsQ0FBQUMsZUFBQSxHQUFHO0VBQzdCQyxNQUFNLEVBQUUsQ0FDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLGFBQWEsRUFDYixPQUFPLEVBQ1AsZUFBZSxFQUNmLElBQUksRUFDSixZQUFZLEVBQ1osU0FBUyxDQUNWO0VBQ0RDLE1BQU0sRUFBRSxDQUNOLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FDakI7RUFDREMsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDO0VBQzNCQyxTQUFTLEVBQUUsQ0FDVCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGdCQUFnQixDQUNqQjtFQUNEQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztFQUNqRUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVM7QUFDakMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -27,8 +27,8 @@ var messages = exports.messages = {
27
27
  placeholder: 'Enter your API Key'
28
28
  },
29
29
  baseUrl: {
30
- title: 'Ollama Base URL',
31
- placeholder: 'Enter OllamaBase URL'
30
+ title: 'Base URL',
31
+ placeholder: 'Enter Base URL'
32
32
  },
33
33
  temperature: {
34
34
  title: 'Temperature'
@@ -55,8 +55,8 @@ var messages = exports.messages = {
55
55
  placeholder: 'Syötä API-avain'
56
56
  },
57
57
  baseUrl: {
58
- title: 'Ollama Base URL',
59
- placeholder: 'Syötä Ollama Base URL'
58
+ title: 'Base URL',
59
+ placeholder: 'Syötä Base URL'
60
60
  },
61
61
  temperature: {
62
62
  title: 'Lämpötila'
@@ -167,8 +167,8 @@ var messages = exports.messages = {
167
167
  placeholder: 'API キーを入力'
168
168
  },
169
169
  baseUrl: {
170
- title: 'Ollama Base URL',
171
- placeholder: 'OllamaBase URL を入力'
170
+ title: 'Base URL',
171
+ placeholder: 'Base URL を入力'
172
172
  },
173
173
  temperature: {
174
174
  title: '温度'
@@ -180,4 +180,4 @@ var messages = exports.messages = {
180
180
  }
181
181
  }
182
182
  };
183
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZXNzYWdlcyIsImV4cG9ydHMiLCJlbiIsInRvb2x0aXAiLCJzaG93QWlBc3Npc3RhbnRQYW5lbCIsImhpZGVBaUFzc2lzdGFudFBhbmVsIiwiYWlBc3Npc3RhbnRNYW5hZ2VyIiwidGl0bGUiLCJhaVByb3ZpZGVyIiwibGxtTW9kZWwiLCJhcGlLZXkiLCJwbGFjZWhvbGRlciIsImJhc2VVcmwiLCJ0ZW1wZXJhdHVyZSIsInRvcFAiLCJzdGFydENoYXQiLCJmaSIsImNhIiwiZXMiLCJjbiIsImpwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvY2FsaXphdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBBZGQgZW5nbGlzaCBtZXNzYWdlcyBoZXJlLCBvdGhlciBsYW5ndWFnZXMgd2lsbCB1c2UgdGhlc2Vcbi8vIGlmIHRyYW5zbGF0aW9ucyBub3QgYXZhaWxhYmxlIGZvciBldmVyeSBtZXNzYWdlXG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlcyA9IHtcbiAgZW46IHtcbiAgICB0b29sdGlwOiB7XG4gICAgICBzaG93QWlBc3Npc3RhbnRQYW5lbDogJ1Nob3cgQUkgQXNzaXN0YW50IHBhbmVsJyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnSGlkZSBBSSBBc3Npc3RhbnQgcGFuZWwnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnQUkgQXNzaXN0YW50JyxcbiAgICAgIGFpUHJvdmlkZXI6ICdBSSBQcm92aWRlcicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjdCBMTE0gTW9kZWwnXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQVBJIEtleScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBBUEkgS2V5J1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdPbGxhbWEgQmFzZSBVUkwnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ0VudGVyIE9sbGFtYUJhc2UgVVJMJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmUnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogXCJMZXQncyBDaGF0XCJcbiAgICB9XG4gIH0sXG4gIGZpOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6ICdOw6R5dMOkIEFJLW9oamFpbnBhbmVlbGknLFxuICAgICAgaGlkZUFpQXNzaXN0YW50UGFuZWw6ICdQaWlsb3RhIEFJLW9oamFpbnBhbmVlbGknXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnQUktb2hqYWluJyxcbiAgICAgIGFpUHJvdmlkZXI6ICdBSS10b2ltaXR0YWphJyxcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnVmFsaXRzZSBMTE0tbWFsbGknXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQVBJLWF2YWluJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdTecO2dMOkIEFQSS1hdmFpbidcbiAgICAgIH0sXG4gICAgICBiYXNlVXJsOiB7XG4gICAgICAgIHRpdGxlOiAnT2xsYW1hIEJhc2UgVVJMJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdTecO2dMOkIE9sbGFtYSBCYXNlIFVSTCdcbiAgICAgIH0sXG4gICAgICB0ZW1wZXJhdHVyZToge1xuICAgICAgICB0aXRsZTogJ0zDpG1ww7Z0aWxhJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICdBbG9pdGEga2Vza3VzdGVsdSdcbiAgICB9XG4gIH0sXG4gIGNhOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6IFwiTW9zdHJhciBwYW5lbGwgZCdJQVwiLFxuICAgICAgaGlkZUFpQXNzaXN0YW50UGFuZWw6IFwiT2N1bHRhciBwYW5lbGwgZCdJQVwiXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogXCJQcm92ZcOvZG9yIGQnSUFcIixcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnU2VsZWNjaW9uYXIgbW9kZWwgTExNJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0NsYXUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IGxhIHRldmEgY2xhdSBBUEknXG4gICAgICB9LFxuICAgICAgYmFzZVVybDoge1xuICAgICAgICB0aXRsZTogJ1VSTCBPbGxhbWFCYXNlJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0NvbWVuw6dhciB4YXQnXG4gICAgfVxuICB9LFxuICBlczoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnTW9zdHJhciBwYW5lbCBkZSBJQScsXG4gICAgICBoaWRlQWlBc3Npc3RhbnRQYW5lbDogJ09jdWx0YXIgcGFuZWwgZGUgSUEnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogJ1Byb3ZlZWRvciBkZSBJQScsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjY2lvbmFyIG1vZGVsbyBMTE0nXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQ2xhdmUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1Y2UgdHUgY2xhdmUgQVBJJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdVUkwgT2xsYW1hQmFzZScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnSW50cm9kdWNlIFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0luaWNpYXIgY2hhdCdcbiAgICB9XG4gIH0sXG4gIGNuOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6ICfmmL7npLogQUkg5Yqp5omL6Z2i5p2/JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAn6ZqQ6JePIEFJIOWKqeaJi+mdouadvydcbiAgICB9LFxuICAgIGFpQXNzaXN0YW50TWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdBSSDliqnmiYsnLFxuICAgICAgYWlQcm92aWRlcjogJ0FJIOaPkOS+m+WVhicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ+mAieaLqSBMTE0g5qih5Z6LJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0FQSSDlr4bpkqUnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ+i+k+WFpeS9oOeahCBBUEkg5a+G6ZKlJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdPbGxhbWFCYXNlIOe9keWdgCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAn6L6T5YWlIE9sbGFtYUJhc2Ug572R5Z2AJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAn5rip5bqmJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICflvIDlp4vogYrlpKknXG4gICAgfVxuICB9LFxuICBqcDoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6KGo56S6JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6Z2e6KGo56S6J1xuICAgIH0sXG4gICAgYWlBc3Npc3RhbnRNYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ0FJIOOCouOCt+OCueOCv+ODs+ODiCcsXG4gICAgICBhaVByb3ZpZGVyOiAnQUkg44OX44Ot44OQ44Kk44OA44O8JyxcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnTExNIOODouODh+ODq+OCkumBuOaKnidcbiAgICAgIH0sXG4gICAgICBhcGlLZXk6IHtcbiAgICAgICAgdGl0bGU6ICdBUEkg44Kt44O8JyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBUEkg44Kt44O844KS5YWl5YqbJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdPbGxhbWEgQmFzZSBVUkwnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ09sbGFtYUJhc2UgVVJMIOOCkuWFpeWKmydcbiAgICAgIH0sXG4gICAgICB0ZW1wZXJhdHVyZToge1xuICAgICAgICB0aXRsZTogJ+a4qeW6pidcbiAgICAgIH0sXG4gICAgICB0b3BQOiB7XG4gICAgICAgIHRpdGxlOiAnVG9wIFAnXG4gICAgICB9LFxuICAgICAgc3RhcnRDaGF0OiAn44OB44Oj44OD44OI44KS6ZaL5aeLJ1xuICAgIH1cbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVPLElBQU1BLFFBQVEsR0FBQUMsT0FBQSxDQUFBRCxRQUFBLEdBQUc7RUFDdEJFLEVBQUUsRUFBRTtJQUNGQyxPQUFPLEVBQUU7TUFDUEMsb0JBQW9CLEVBQUUseUJBQXlCO01BQy9DQyxvQkFBb0IsRUFBRTtJQUN4QixDQUFDO0lBQ0RDLGtCQUFrQixFQUFFO01BQ2xCQyxLQUFLLEVBQUUsY0FBYztNQUNyQkMsVUFBVSxFQUFFLGFBQWE7TUFDekJDLFFBQVEsRUFBRTtRQUNSRixLQUFLLEVBQUU7TUFDVCxDQUFDO01BQ0RHLE1BQU0sRUFBRTtRQUNOSCxLQUFLLEVBQUUsU0FBUztRQUNoQkksV0FBVyxFQUFFO01BQ2YsQ0FBQztNQUNEQyxPQUFPLEVBQUU7UUFDUEwsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QkksV0FBVyxFQUFFO01BQ2YsQ0FBQztNQUNERSxXQUFXLEVBQUU7UUFDWE4sS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNETyxJQUFJLEVBQUU7UUFDSlAsS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNEUSxTQUFTLEVBQUU7SUFDYjtFQUNGLENBQUM7RUFDREMsRUFBRSxFQUFFO0lBQ0ZiLE9BQU8sRUFBRTtNQUNQQyxvQkFBb0IsRUFBRSx3QkFBd0I7TUFDOUNDLG9CQUFvQixFQUFFO0lBQ3hCLENBQUM7SUFDREMsa0JBQWtCLEVBQUU7TUFDbEJDLEtBQUssRUFBRSxXQUFXO01BQ2xCQyxVQUFVLEVBQUUsZUFBZTtNQUMzQkMsUUFBUSxFQUFFO1FBQ1JGLEtBQUssRUFBRTtNQUNULENBQUM7TUFDREcsTUFBTSxFQUFFO1FBQ05ILEtBQUssRUFBRSxXQUFXO1FBQ2xCSSxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RDLE9BQU8sRUFB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
183
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZXNzYWdlcyIsImV4cG9ydHMiLCJlbiIsInRvb2x0aXAiLCJzaG93QWlBc3Npc3RhbnRQYW5lbCIsImhpZGVBaUFzc2lzdGFudFBhbmVsIiwiYWlBc3Npc3RhbnRNYW5hZ2VyIiwidGl0bGUiLCJhaVByb3ZpZGVyIiwibGxtTW9kZWwiLCJhcGlLZXkiLCJwbGFjZWhvbGRlciIsImJhc2VVcmwiLCJ0ZW1wZXJhdHVyZSIsInRvcFAiLCJzdGFydENoYXQiLCJmaSIsImNhIiwiZXMiLCJjbiIsImpwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvY2FsaXphdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vLyBBZGQgZW5nbGlzaCBtZXNzYWdlcyBoZXJlLCBvdGhlciBsYW5ndWFnZXMgd2lsbCB1c2UgdGhlc2Vcbi8vIGlmIHRyYW5zbGF0aW9ucyBub3QgYXZhaWxhYmxlIGZvciBldmVyeSBtZXNzYWdlXG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlcyA9IHtcbiAgZW46IHtcbiAgICB0b29sdGlwOiB7XG4gICAgICBzaG93QWlBc3Npc3RhbnRQYW5lbDogJ1Nob3cgQUkgQXNzaXN0YW50IHBhbmVsJyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnSGlkZSBBSSBBc3Npc3RhbnQgcGFuZWwnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnQUkgQXNzaXN0YW50JyxcbiAgICAgIGFpUHJvdmlkZXI6ICdBSSBQcm92aWRlcicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjdCBMTE0gTW9kZWwnXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQVBJIEtleScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBBUEkgS2V5J1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgQmFzZSBVUkwnXG4gICAgICB9LFxuICAgICAgdGVtcGVyYXR1cmU6IHtcbiAgICAgICAgdGl0bGU6ICdUZW1wZXJhdHVyZSdcbiAgICAgIH0sXG4gICAgICB0b3BQOiB7XG4gICAgICAgIHRpdGxlOiAnVG9wIFAnXG4gICAgICB9LFxuICAgICAgc3RhcnRDaGF0OiBcIkxldCdzIENoYXRcIlxuICAgIH1cbiAgfSxcbiAgZmk6IHtcbiAgICB0b29sdGlwOiB7XG4gICAgICBzaG93QWlBc3Npc3RhbnRQYW5lbDogJ07DpHl0w6QgQUktb2hqYWlucGFuZWVsaScsXG4gICAgICBoaWRlQWlBc3Npc3RhbnRQYW5lbDogJ1BpaWxvdGEgQUktb2hqYWlucGFuZWVsaSdcbiAgICB9LFxuICAgIGFpQXNzaXN0YW50TWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdBSS1vaGphaW4nLFxuICAgICAgYWlQcm92aWRlcjogJ0FJLXRvaW1pdHRhamEnLFxuICAgICAgbGxtTW9kZWw6IHtcbiAgICAgICAgdGl0bGU6ICdWYWxpdHNlIExMTS1tYWxsaSdcbiAgICAgIH0sXG4gICAgICBhcGlLZXk6IHtcbiAgICAgICAgdGl0bGU6ICdBUEktYXZhaW4nLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ1N5w7Z0w6QgQVBJLWF2YWluJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnU3nDtnTDpCBCYXNlIFVSTCdcbiAgICAgIH0sXG4gICAgICB0ZW1wZXJhdHVyZToge1xuICAgICAgICB0aXRsZTogJ0zDpG1ww7Z0aWxhJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICdBbG9pdGEga2Vza3VzdGVsdSdcbiAgICB9XG4gIH0sXG4gIGNhOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6IFwiTW9zdHJhciBwYW5lbGwgZCdJQVwiLFxuICAgICAgaGlkZUFpQXNzaXN0YW50UGFuZWw6IFwiT2N1bHRhciBwYW5lbGwgZCdJQVwiXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogXCJQcm92ZcOvZG9yIGQnSUFcIixcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnU2VsZWNjaW9uYXIgbW9kZWwgTExNJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0NsYXUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IGxhIHRldmEgY2xhdSBBUEknXG4gICAgICB9LFxuICAgICAgYmFzZVVybDoge1xuICAgICAgICB0aXRsZTogJ1VSTCBPbGxhbWFCYXNlJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1ZWl4IFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0NvbWVuw6dhciB4YXQnXG4gICAgfVxuICB9LFxuICBlczoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnTW9zdHJhciBwYW5lbCBkZSBJQScsXG4gICAgICBoaWRlQWlBc3Npc3RhbnRQYW5lbDogJ09jdWx0YXIgcGFuZWwgZGUgSUEnXG4gICAgfSxcbiAgICBhaUFzc2lzdGFudE1hbmFnZXI6IHtcbiAgICAgIHRpdGxlOiAnSUEnLFxuICAgICAgYWlQcm92aWRlcjogJ1Byb3ZlZWRvciBkZSBJQScsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ1NlbGVjY2lvbmFyIG1vZGVsbyBMTE0nXG4gICAgICB9LFxuICAgICAgYXBpS2V5OiB7XG4gICAgICAgIHRpdGxlOiAnQ2xhdmUgQVBJJyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdJbnRyb2R1Y2UgdHUgY2xhdmUgQVBJJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdVUkwgT2xsYW1hQmFzZScsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnSW50cm9kdWNlIFVSTCBPbGxhbWFCYXNlJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAnVGVtcGVyYXR1cmEnXG4gICAgICB9LFxuICAgICAgdG9wUDoge1xuICAgICAgICB0aXRsZTogJ1RvcCBQJ1xuICAgICAgfSxcbiAgICAgIHN0YXJ0Q2hhdDogJ0luaWNpYXIgY2hhdCdcbiAgICB9XG4gIH0sXG4gIGNuOiB7XG4gICAgdG9vbHRpcDoge1xuICAgICAgc2hvd0FpQXNzaXN0YW50UGFuZWw6ICfmmL7npLogQUkg5Yqp5omL6Z2i5p2/JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAn6ZqQ6JePIEFJIOWKqeaJi+mdouadvydcbiAgICB9LFxuICAgIGFpQXNzaXN0YW50TWFuYWdlcjoge1xuICAgICAgdGl0bGU6ICdBSSDliqnmiYsnLFxuICAgICAgYWlQcm92aWRlcjogJ0FJIOaPkOS+m+WVhicsXG4gICAgICBsbG1Nb2RlbDoge1xuICAgICAgICB0aXRsZTogJ+mAieaLqSBMTE0g5qih5Z6LJ1xuICAgICAgfSxcbiAgICAgIGFwaUtleToge1xuICAgICAgICB0aXRsZTogJ0FQSSDlr4bpkqUnLFxuICAgICAgICBwbGFjZWhvbGRlcjogJ+i+k+WFpeS9oOeahCBBUEkg5a+G6ZKlJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdPbGxhbWFCYXNlIOe9keWdgCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAn6L6T5YWlIE9sbGFtYUJhc2Ug572R5Z2AJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAn5rip5bqmJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICflvIDlp4vogYrlpKknXG4gICAgfVxuICB9LFxuICBqcDoge1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIHNob3dBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6KGo56S6JyxcbiAgICAgIGhpZGVBaUFzc2lzdGFudFBhbmVsOiAnQUkg44Ki44K344K544K/44Oz44OI44OR44ON44Or44KS6Z2e6KGo56S6J1xuICAgIH0sXG4gICAgYWlBc3Npc3RhbnRNYW5hZ2VyOiB7XG4gICAgICB0aXRsZTogJ0FJIOOCouOCt+OCueOCv+ODs+ODiCcsXG4gICAgICBhaVByb3ZpZGVyOiAnQUkg44OX44Ot44OQ44Kk44OA44O8JyxcbiAgICAgIGxsbU1vZGVsOiB7XG4gICAgICAgIHRpdGxlOiAnTExNIOODouODh+ODq+OCkumBuOaKnidcbiAgICAgIH0sXG4gICAgICBhcGlLZXk6IHtcbiAgICAgICAgdGl0bGU6ICdBUEkg44Kt44O8JyxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdBUEkg44Kt44O844KS5YWl5YqbJ1xuICAgICAgfSxcbiAgICAgIGJhc2VVcmw6IHtcbiAgICAgICAgdGl0bGU6ICdCYXNlIFVSTCcsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnQmFzZSBVUkwg44KS5YWl5YqbJ1xuICAgICAgfSxcbiAgICAgIHRlbXBlcmF0dXJlOiB7XG4gICAgICAgIHRpdGxlOiAn5rip5bqmJ1xuICAgICAgfSxcbiAgICAgIHRvcFA6IHtcbiAgICAgICAgdGl0bGU6ICdUb3AgUCdcbiAgICAgIH0sXG4gICAgICBzdGFydENoYXQ6ICfjg4Hjg6Pjg4Pjg4jjgpLplovlp4snXG4gICAgfVxuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRU8sSUFBTUEsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsR0FBRztFQUN0QkUsRUFBRSxFQUFFO0lBQ0ZDLE9BQU8sRUFBRTtNQUNQQyxvQkFBb0IsRUFBRSx5QkFBeUI7TUFDL0NDLG9CQUFvQixFQUFFO0lBQ3hCLENBQUM7SUFDREMsa0JBQWtCLEVBQUU7TUFDbEJDLEtBQUssRUFBRSxjQUFjO01BQ3JCQyxVQUFVLEVBQUUsYUFBYTtNQUN6QkMsUUFBUSxFQUFFO1FBQ1JGLEtBQUssRUFBRTtNQUNULENBQUM7TUFDREcsTUFBTSxFQUFFO1FBQ05ILEtBQUssRUFBRSxTQUFTO1FBQ2hCSSxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RDLE9BQU8sRUFBRTtRQUNQTCxLQUFLLEVBQUUsVUFBVTtRQUNqQkksV0FBVyxFQUFFO01BQ2YsQ0FBQztNQUNERSxXQUFXLEVBQUU7UUFDWE4sS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNETyxJQUFJLEVBQUU7UUFDSlAsS0FBSyxFQUFFO01BQ1QsQ0FBQztNQUNEUSxTQUFTLEVBQUU7SUFDYjtFQUNGLENBQUM7RUFDREMsRUFBRSxFQUFFO0lBQ0ZiLE9BQU8sRUFBRTtNQUNQQyxvQkFBb0IsRUFBRSx3QkFBd0I7TUFDOUNDLG9CQUFvQixFQUFFO0lBQ3hCLENBQUM7SUFDREMsa0JBQWtCLEVBQUU7TUFDbEJDLEtBQUssRUFBRSxXQUFXO01BQ2xCQyxVQUFVLEVBQUUsZUFBZTtNQUMzQkMsUUFBUSxFQUFFO1FBQ1JGLEtBQUssRUFBRTtNQUNULENBQUM7TUFDREcsTUFBTSxFQUFFO1FBQ05ILEtBQUssRUFBRSxXQUFXO1FBQ2xCSSxXQUFXLEVBQUU7TUFDZixDQUFDO01BQ0RDLE9BQU8sRUFBRTtRQUNQTCxLQUFLLEVBQUUsVUFBVTtRQUNqQkksV0FBVyxFQUFFO01B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
@@ -8,6 +8,7 @@ exports.aiAssistantReducer = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _reduxActions = require("redux-actions");
10
10
  var _actions = require("../actions");
11
+ var _models = require("../config/models");
11
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
13
14
  // Copyright contributors to the kepler.gl project
@@ -17,7 +18,7 @@ var initialConfig = {
17
18
  provider: 'openai',
18
19
  model: 'gpt-4o',
19
20
  apiKey: '',
20
- baseUrl: 'http://localhost:11434/api',
21
+ baseUrl: _models.PROVIDER_DEFAULT_BASE_URLS['openai'],
21
22
  temperature: 0.0,
22
23
  topP: 1.0
23
24
  };
@@ -62,4 +63,4 @@ function setMapBoundaryHandler(state, action) {
62
63
  })
63
64
  });
64
65
  }
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXhBY3Rpb25zIiwicmVxdWlyZSIsIl9hY3Rpb25zIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJpbml0aWFsQ29uZmlnIiwiaXNSZWFkeSIsInByb3ZpZGVyIiwibW9kZWwiLCJhcGlLZXkiLCJiYXNlVXJsIiwidGVtcGVyYXR1cmUiLCJ0b3BQIiwiaW5pdGlhbFN0YXRlIiwiY29uZmlnIiwibWVzc2FnZXMiLCJzY3JlZW5zaG90VG9Bc2siLCJzdGFydFNjcmVlbkNhcHR1cmUiLCJzY3JlZW5DYXB0dXJlZCIsImFpQXNzaXN0YW50UmVkdWNlciIsImV4cG9ydHMiLCJoYW5kbGVBY3Rpb25zIiwiVVBEQVRFX0FJX0FTU0lTVEFOVF9DT05GSUciLCJ1cGRhdGVBaUFzc2lzdGFudENvbmZpZ0hhbmRsZXIiLCJVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTIiwidXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlc0hhbmRsZXIiLCJTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUiLCJzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyIiwiU0VUX1NDUkVFTl9DQVBUVVJFRCIsInNldFNjcmVlbkNhcHR1cmVkSGFuZGxlciIsIlNFVF9NQVBfQk9VTkRBUlkiLCJzZXRNYXBCb3VuZGFyeUhhbmRsZXIiLCJzdGF0ZSIsImFjdGlvbiIsInBheWxvYWQiLCJrZXBsZXJHbCIsIm1hcEJvdW5kYXJ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlZHVjZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uLCBoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIFVQREFURV9BSV9BU1NJU1RBTlRfQ09ORklHLFxuICBVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTLFxuICBTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUsXG4gIFNFVF9TQ1JFRU5fQ0FQVFVSRUQsXG4gIFNFVF9NQVBfQk9VTkRBUllcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VNb2RlbH0gZnJvbSAnQG9wZW5hc3Npc3RhbnQvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEFpQXNzaXN0YW50Q29uZmlnID0ge1xuICBpc1JlYWR5OiBib29sZWFuO1xuICBwcm92aWRlcjogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nO1xuICBhcGlLZXk6IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgdGVtcGVyYXR1cmU6IG51bWJlcjtcbiAgdG9wUDogbnVtYmVyO1xuICBtYXBib3hUb2tlbj86IHN0cmluZztcbn07XG5cbi8vIEluaXRpYWwgc3RhdGUgZm9yIHRoZSByZWR1Y2VyXG5jb25zdCBpbml0aWFsQ29uZmlnOiBBaUFzc2lzdGFudENvbmZpZyA9IHtcbiAgaXNSZWFkeTogZmFsc2UsXG4gIHByb3ZpZGVyOiAnb3BlbmFpJyxcbiAgbW9kZWw6ICdncHQtNG8nLFxuICBhcGlLZXk6ICcnLFxuICBiYXNlVXJsOiAnaHR0cDovL2xvY2FsaG9zdDoxMTQzNC9hcGknLFxuICB0ZW1wZXJhdHVyZTogMC4wLFxuICB0b3BQOiAxLjBcbn07XG5cbmV4cG9ydCB0eXBlIEFpQXNzaXN0YW50U3RhdGUgPSB7XG4gIGNvbmZpZzogQWlBc3Npc3RhbnRDb25maWc7XG4gIG1lc3NhZ2VzOiBNZXNzYWdlTW9kZWxbXTtcbiAgc2NyZWVuc2hvdFRvQXNrOiB7XG4gICAgc3RhcnRTY3JlZW5DYXB0dXJlOiBib29sZWFuO1xuICAgIHNjcmVlbkNhcHR1cmVkOiBzdHJpbmc7XG4gIH07XG4gIGtlcGxlckdsPzoge1xuICAgIG1hcEJvdW5kYXJ5Pzoge1xuICAgICAgbnc6IFtudW1iZXIsIG51bWJlcl07XG4gICAgICBzZTogW251bWJlciwgbnVtYmVyXTtcbiAgICB9O1xuICB9O1xufTtcblxuY29uc3QgaW5pdGlhbFN0YXRlOiBBaUFzc2lzdGFudFN0YXRlID0ge1xuICBjb25maWc6IGluaXRpYWxDb25maWcsXG4gIG1lc3NhZ2VzOiBbXSxcbiAgc2NyZWVuc2hvdFRvQXNrOiB7XG4gICAgc3RhcnRTY3JlZW5DYXB0dXJlOiBmYWxzZSxcbiAgICBzY3JlZW5DYXB0dXJlZDogJydcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGFpQXNzaXN0YW50UmVkdWNlciA9IGhhbmRsZUFjdGlvbnM8QWlBc3Npc3RhbnRTdGF0ZSwgYW55PihcbiAge1xuICAgIFtVUERBVEVfQUlfQVNTSVNUQU5UX0NPTkZJR106IHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnSGFuZGxlcixcbiAgICBbVVBEQVRFX0FJX0FTU0lTVEFOVF9NRVNTQUdFU106IHVwZGF0ZUFpQXNzaXN0YW50TWVzc2FnZXNIYW5kbGVyLFxuICAgIFtTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkVdOiBzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyLFxuICAgIFtTRVRfU0NSRUVOX0NBUFRVUkVEXTogc2V0U2NyZWVuQ2FwdHVyZWRIYW5kbGVyLFxuICAgIFtTRVRfTUFQX0JPVU5EQVJZXTogc2V0TWFwQm91bmRhcnlIYW5kbGVyXG4gIH0sXG4gIGluaXRpYWxTdGF0ZVxuKTtcblxuZnVuY3Rpb24gdXBkYXRlQWlBc3Npc3RhbnRDb25maWdIYW5kbGVyKFxuICBzdGF0ZTogQWlBc3Npc3RhbnRTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb248QWlBc3Npc3RhbnRDb25maWc+XG4pIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBjb25maWc6IHsuLi5zdGF0ZS5jb25maWcsIC4uLmFjdGlvbi5wYXlsb2FkfVxuICB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzSGFuZGxlcihzdGF0ZTogQWlBc3Npc3RhbnRTdGF0ZSwgYWN0aW9uOiBBY3Rpb248TWVzc2FnZU1vZGVsW10+KSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWVzc2FnZXM6IGFjdGlvbi5wYXlsb2FkXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNldFN0YXJ0U2NyZWVuQ2FwdHVyZUhhbmRsZXIoc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsIGFjdGlvbjogQWN0aW9uPGJvb2xlYW4+KSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgc2NyZWVuc2hvdFRvQXNrOiB7c3RhcnRTY3JlZW5DYXB0dXJlOiBhY3Rpb24ucGF5bG9hZCwgc2NyZWVuQ2FwdHVyZWQ6ICcnfVxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXRTY3JlZW5DYXB0dXJlZEhhbmRsZXIoc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsIGFjdGlvbjogQWN0aW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzY3JlZW5zaG90VG9Bc2s6IHsuLi5zdGF0ZS5zY3JlZW5zaG90VG9Bc2ssIHNjcmVlbkNhcHR1cmVkOiBhY3Rpb24ucGF5bG9hZH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gc2V0TWFwQm91bmRhcnlIYW5kbGVyKFxuICBzdGF0ZTogQWlBc3Npc3RhbnRTdGF0ZSxcbiAgYWN0aW9uOiBBY3Rpb248e253OiBbbnVtYmVyLCBudW1iZXJdOyBzZTogW251bWJlciwgbnVtYmVyXX0+XG4pIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBrZXBsZXJHbDoge1xuICAgICAgLi4uc3RhdGUua2VwbGVy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
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXhBY3Rpb25zIiwicmVxdWlyZSIsIl9hY3Rpb25zIiwiX21vZGVscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiaW5pdGlhbENvbmZpZyIsImlzUmVhZHkiLCJwcm92aWRlciIsIm1vZGVsIiwiYXBpS2V5IiwiYmFzZVVybCIsIlBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTIiwidGVtcGVyYXR1cmUiLCJ0b3BQIiwiaW5pdGlhbFN0YXRlIiwiY29uZmlnIiwibWVzc2FnZXMiLCJzY3JlZW5zaG90VG9Bc2siLCJzdGFydFNjcmVlbkNhcHR1cmUiLCJzY3JlZW5DYXB0dXJlZCIsImFpQXNzaXN0YW50UmVkdWNlciIsImV4cG9ydHMiLCJoYW5kbGVBY3Rpb25zIiwiVVBEQVRFX0FJX0FTU0lTVEFOVF9DT05GSUciLCJ1cGRhdGVBaUFzc2lzdGFudENvbmZpZ0hhbmRsZXIiLCJVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTIiwidXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlc0hhbmRsZXIiLCJTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUiLCJzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyIiwiU0VUX1NDUkVFTl9DQVBUVVJFRCIsInNldFNjcmVlbkNhcHR1cmVkSGFuZGxlciIsIlNFVF9NQVBfQk9VTkRBUlkiLCJzZXRNYXBCb3VuZGFyeUhhbmRsZXIiLCJzdGF0ZSIsImFjdGlvbiIsInBheWxvYWQiLCJrZXBsZXJHbCIsIm1hcEJvdW5kYXJ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlZHVjZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uLCBoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7XG4gIFVQREFURV9BSV9BU1NJU1RBTlRfQ09ORklHLFxuICBVUERBVEVfQUlfQVNTSVNUQU5UX01FU1NBR0VTLFxuICBTRVRfU1RBUlRfU0NSRUVOX0NBUFRVUkUsXG4gIFNFVF9TQ1JFRU5fQ0FQVFVSRUQsXG4gIFNFVF9NQVBfQk9VTkRBUllcbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VNb2RlbH0gZnJvbSAnQG9wZW5hc3Npc3RhbnQvY29yZSc7XG5pbXBvcnQge1BST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTfSBmcm9tICcuLi9jb25maWcvbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgQWlBc3Npc3RhbnRDb25maWcgPSB7XG4gIGlzUmVhZHk6IGJvb2xlYW47XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICB0ZW1wZXJhdHVyZTogbnVtYmVyO1xuICB0b3BQOiBudW1iZXI7XG4gIG1hcGJveFRva2VuPzogc3RyaW5nO1xufTtcblxuLy8gSW5pdGlhbCBzdGF0ZSBmb3IgdGhlIHJlZHVjZXJcbmNvbnN0IGluaXRpYWxDb25maWc6IEFpQXNzaXN0YW50Q29uZmlnID0ge1xuICBpc1JlYWR5OiBmYWxzZSxcbiAgcHJvdmlkZXI6ICdvcGVuYWknLFxuICBtb2RlbDogJ2dwdC00bycsXG4gIGFwaUtleTogJycsXG4gIGJhc2VVcmw6IFBST1ZJREVSX0RFRkFVTFRfQkFTRV9VUkxTWydvcGVuYWknXSxcbiAgdGVtcGVyYXR1cmU6IDAuMCxcbiAgdG9wUDogMS4wXG59O1xuXG5leHBvcnQgdHlwZSBBaUFzc2lzdGFudFN0YXRlID0ge1xuICBjb25maWc6IEFpQXNzaXN0YW50Q29uZmlnO1xuICBtZXNzYWdlczogTWVzc2FnZU1vZGVsW107XG4gIHNjcmVlbnNob3RUb0Fzazoge1xuICAgIHN0YXJ0U2NyZWVuQ2FwdHVyZTogYm9vbGVhbjtcbiAgICBzY3JlZW5DYXB0dXJlZDogc3RyaW5nO1xuICB9O1xuICBrZXBsZXJHbD86IHtcbiAgICBtYXBCb3VuZGFyeT86IHtcbiAgICAgIG53OiBbbnVtYmVyLCBudW1iZXJdO1xuICAgICAgc2U6IFtudW1iZXIsIG51bWJlcl07XG4gICAgfTtcbiAgfTtcbn07XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogQWlBc3Npc3RhbnRTdGF0ZSA9IHtcbiAgY29uZmlnOiBpbml0aWFsQ29uZmlnLFxuICBtZXNzYWdlczogW10sXG4gIHNjcmVlbnNob3RUb0Fzazoge1xuICAgIHN0YXJ0U2NyZWVuQ2FwdHVyZTogZmFsc2UsXG4gICAgc2NyZWVuQ2FwdHVyZWQ6ICcnXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhaUFzc2lzdGFudFJlZHVjZXIgPSBoYW5kbGVBY3Rpb25zPEFpQXNzaXN0YW50U3RhdGUsIGFueT4oXG4gIHtcbiAgICBbVVBEQVRFX0FJX0FTU0lTVEFOVF9DT05GSUddOiB1cGRhdGVBaUFzc2lzdGFudENvbmZpZ0hhbmRsZXIsXG4gICAgW1VQREFURV9BSV9BU1NJU1RBTlRfTUVTU0FHRVNdOiB1cGRhdGVBaUFzc2lzdGFudE1lc3NhZ2VzSGFuZGxlcixcbiAgICBbU0VUX1NUQVJUX1NDUkVFTl9DQVBUVVJFXTogc2V0U3RhcnRTY3JlZW5DYXB0dXJlSGFuZGxlcixcbiAgICBbU0VUX1NDUkVFTl9DQVBUVVJFRF06IHNldFNjcmVlbkNhcHR1cmVkSGFuZGxlcixcbiAgICBbU0VUX01BUF9CT1VOREFSWV06IHNldE1hcEJvdW5kYXJ5SGFuZGxlclxuICB9LFxuICBpbml0aWFsU3RhdGVcbik7XG5cbmZ1bmN0aW9uIHVwZGF0ZUFpQXNzaXN0YW50Q29uZmlnSGFuZGxlcihcbiAgc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uPEFpQXNzaXN0YW50Q29uZmlnPlxuKSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgY29uZmlnOiB7Li4uc3RhdGUuY29uZmlnLCAuLi5hY3Rpb24ucGF5bG9hZH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQWlBc3Npc3RhbnRNZXNzYWdlc0hhbmRsZXIoc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsIGFjdGlvbjogQWN0aW9uPE1lc3NhZ2VNb2RlbFtdPikge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1lc3NhZ2VzOiBhY3Rpb24ucGF5bG9hZFxuICB9O1xufVxuXG5mdW5jdGlvbiBzZXRTdGFydFNjcmVlbkNhcHR1cmVIYW5kbGVyKHN0YXRlOiBBaUFzc2lzdGFudFN0YXRlLCBhY3Rpb246IEFjdGlvbjxib29sZWFuPikge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHNjcmVlbnNob3RUb0Fzazoge3N0YXJ0U2NyZWVuQ2FwdHVyZTogYWN0aW9uLnBheWxvYWQsIHNjcmVlbkNhcHR1cmVkOiAnJ31cbiAgfTtcbn1cblxuZnVuY3Rpb24gc2V0U2NyZWVuQ2FwdHVyZWRIYW5kbGVyKHN0YXRlOiBBaUFzc2lzdGFudFN0YXRlLCBhY3Rpb246IEFjdGlvbjxzdHJpbmc+KSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgc2NyZWVuc2hvdFRvQXNrOiB7Li4uc3RhdGUuc2NyZWVuc2hvdFRvQXNrLCBzY3JlZW5DYXB0dXJlZDogYWN0aW9uLnBheWxvYWR9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNldE1hcEJvdW5kYXJ5SGFuZGxlcihcbiAgc3RhdGU6IEFpQXNzaXN0YW50U3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uPHtudzogW251bWJlciwgbnVtYmVyXTsgc2U6IFtudW1iZXIsIG51bWJlcl19PlxuKSB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAga2VwbGVyR2w6IHtcbiAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICAgICAgbWFwQm91bmRhcnk6IGFjdGlvbi5wYXlsb2FkXG4gICAgfVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLGFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQVFBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUE0RCxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIs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