kepler.gl 3.1.0 → 3.1.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 (234) hide show
  1. package/README.md +27 -132
  2. package/dist/src/common-utils/src/data-type.d.ts +9 -1
  3. package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
  4. package/dist/src/components/src/common/data-table/index.d.ts +1 -0
  5. package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
  6. package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
  7. package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
  8. package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
  9. package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
  10. package/dist/src/components/src/geocoder-panel.d.ts +2 -2
  11. package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  12. package/dist/src/constants/src/default-settings.d.ts +14 -1
  13. package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
  14. package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
  15. package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
  16. package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
  17. package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
  18. package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
  19. package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
  20. package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
  21. package/dist/src/processors/src/data-processor.d.ts +15 -1
  22. package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
  23. package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
  24. package/dist/src/table/src/dataset-utils.d.ts +1 -1
  25. package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  26. package/dist/src/utils/src/application-config.d.ts +4 -3
  27. package/dist/src/utils/src/data-utils.d.ts +9 -3
  28. package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
  29. package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
  30. package/dist/src/utils/src/map-utils.d.ts +1 -1
  31. package/dist/src/utils/src/plot.d.ts +2 -2
  32. package/package.json +5 -5
  33. package/src/actions/package.json +8 -8
  34. package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
  35. package/src/ai-assistant/package.json +7 -7
  36. package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
  37. package/src/cloud-providers/package.json +2 -2
  38. package/src/common-utils/dist/data-type.d.ts +9 -1
  39. package/src/common-utils/dist/data-type.js +50 -1
  40. package/src/common-utils/package.json +3 -3
  41. package/src/common-utils/src/data-type.ts +49 -1
  42. package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
  43. package/src/components/dist/common/data-table/header-cell.js +2 -2
  44. package/src/components/dist/common/data-table/index.d.ts +1 -0
  45. package/src/components/dist/common/data-table/index.js +5 -1
  46. package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
  47. package/src/components/dist/common/file-uploader/file-drop.js +152 -167
  48. package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
  49. package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
  50. package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
  51. package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
  52. package/src/components/dist/common/range-brush.js +3 -3
  53. package/src/components/dist/geocoder/geocoder.d.ts +7 -0
  54. package/src/components/dist/geocoder/geocoder.js +19 -11
  55. package/src/components/dist/geocoder-panel.d.ts +2 -2
  56. package/src/components/dist/geocoder-panel.js +64 -91
  57. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  58. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
  59. package/src/components/dist/hooks/use-legend-position.js +8 -4
  60. package/src/components/dist/map/map-legend-panel.js +2 -3
  61. package/src/components/dist/modal-container.js +8 -8
  62. package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
  63. package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  64. package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
  65. package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
  66. package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
  67. package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
  68. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
  69. package/src/components/package.json +16 -16
  70. package/src/components/src/common/data-table/header-cell.tsx +2 -1
  71. package/src/components/src/common/data-table/index.tsx +4 -0
  72. package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
  73. package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
  74. package/src/components/src/common/range-brush.tsx +2 -2
  75. package/src/components/src/geocoder/geocoder.tsx +16 -8
  76. package/src/components/src/geocoder-panel.tsx +95 -85
  77. package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
  78. package/src/components/src/hooks/use-legend-position.ts +5 -2
  79. package/src/components/src/map/map-legend-panel.tsx +1 -2
  80. package/src/components/src/modal-container.tsx +7 -7
  81. package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
  82. package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
  83. package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
  84. package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
  85. package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
  86. package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
  87. package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
  88. package/src/constants/dist/default-settings.d.ts +14 -1
  89. package/src/constants/dist/default-settings.js +20 -5
  90. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
  91. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
  92. package/src/constants/package.json +2 -2
  93. package/src/constants/src/default-settings.ts +16 -1
  94. package/src/constants/umd/keplergl.min.js +2 -2
  95. package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
  96. package/src/deckgl-arrow-layers/dist/constants.js +4 -15
  97. package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
  98. package/src/deckgl-arrow-layers/dist/index.js +1 -8
  99. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
  100. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
  101. package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
  102. package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
  103. package/src/deckgl-arrow-layers/package.json +2 -1
  104. package/src/deckgl-arrow-layers/src/constants.ts +0 -13
  105. package/src/deckgl-arrow-layers/src/index.ts +0 -2
  106. package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
  107. package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
  108. package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
  109. package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
  110. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
  111. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
  112. package/src/deckgl-layers/package.json +5 -5
  113. package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
  114. package/src/duckdb/dist/components/monaco-editor.js +4 -5
  115. package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
  116. package/src/duckdb/dist/components/preview-data-panel.js +7 -8
  117. package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
  118. package/src/duckdb/dist/components/schema-panel.js +41 -24
  119. package/src/duckdb/dist/components/sql-panel.js +245 -56
  120. package/src/duckdb/dist/init.js +20 -14
  121. package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
  122. package/src/duckdb/dist/processors/data-processor.js +4 -4
  123. package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
  124. package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
  125. package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
  126. package/src/duckdb/dist/table/duckdb-table.js +153 -261
  127. package/src/duckdb/package.json +6 -6
  128. package/src/duckdb/src/components/monaco-editor.tsx +3 -3
  129. package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
  130. package/src/duckdb/src/components/schema-panel.tsx +92 -21
  131. package/src/duckdb/src/components/sql-panel.tsx +160 -22
  132. package/src/duckdb/src/init.ts +4 -1
  133. package/src/duckdb/src/processors/data-processor.ts +2 -2
  134. package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
  135. package/src/duckdb/src/table/duckdb-table.ts +61 -92
  136. package/src/effects/package.json +5 -5
  137. package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
  138. package/src/layers/dist/arc-layer/arc-layer.js +2 -3
  139. package/src/layers/dist/base-layer.d.ts +7 -6
  140. package/src/layers/dist/base-layer.js +36 -19
  141. package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
  142. package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
  143. package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
  144. package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
  145. package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
  146. package/src/layers/dist/icon-layer/icon-layer.js +19 -11
  147. package/src/layers/dist/index.d.ts +1 -1
  148. package/src/layers/dist/index.js +1 -1
  149. package/src/layers/dist/layer-text-label.d.ts +9 -0
  150. package/src/layers/dist/layer-text-label.js +51 -6
  151. package/src/layers/dist/layer-utils.d.ts +39 -30
  152. package/src/layers/dist/layer-utils.js +69 -9
  153. package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
  154. package/src/layers/dist/line-layer/line-layer.js +2 -3
  155. package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
  156. package/src/layers/dist/point-layer/point-layer.js +16 -8
  157. package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
  158. package/src/layers/dist/trip-layer/trip-layer.js +4 -2
  159. package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
  160. package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
  161. package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
  162. package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
  163. package/src/layers/package.json +11 -10
  164. package/src/layers/src/arc-layer/arc-layer.ts +1 -1
  165. package/src/layers/src/base-layer.ts +50 -9
  166. package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
  167. package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
  168. package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
  169. package/src/layers/src/icon-layer/icon-layer.ts +7 -3
  170. package/src/layers/src/index.ts +1 -2
  171. package/src/layers/src/layer-text-label.ts +53 -4
  172. package/src/layers/src/layer-utils.ts +88 -9
  173. package/src/layers/src/line-layer/line-layer.ts +1 -1
  174. package/src/layers/src/point-layer/point-layer.ts +15 -11
  175. package/src/layers/src/trip-layer/trip-layer.ts +4 -2
  176. package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
  177. package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
  178. package/src/localization/package.json +1 -1
  179. package/src/processors/dist/data-processor.d.ts +15 -1
  180. package/src/processors/dist/data-processor.js +104 -11
  181. package/src/processors/package.json +8 -7
  182. package/src/processors/src/data-processor.ts +116 -13
  183. package/src/reducers/dist/export-utils.js +2 -2
  184. package/src/reducers/dist/layer-utils.js +1 -1
  185. package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
  186. package/src/reducers/dist/provider-state-updaters.js +5 -2
  187. package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
  188. package/src/reducers/dist/vis-state-updaters.js +23 -12
  189. package/src/reducers/package.json +16 -16
  190. package/src/reducers/src/export-utils.ts +1 -1
  191. package/src/reducers/src/layer-utils.ts +2 -1
  192. package/src/reducers/src/provider-state-updaters.ts +4 -1
  193. package/src/reducers/src/vis-state-updaters.ts +45 -10
  194. package/src/schemas/dist/dataset-schema.js +35 -6
  195. package/src/schemas/package.json +7 -7
  196. package/src/schemas/src/dataset-schema.ts +36 -8
  197. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
  198. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
  199. package/src/styles/package.json +2 -2
  200. package/src/styles/umd/keplergl.min.js +2 -2
  201. package/src/table/dist/dataset-utils.js +23 -14
  202. package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
  203. package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  204. package/src/table/dist/tileset/vector-tile-utils.js +122 -2
  205. package/src/table/package.json +5 -5
  206. package/src/table/src/dataset-utils.ts +16 -6
  207. package/src/table/src/tileset/vector-tile-utils.ts +131 -8
  208. package/src/tasks/package.json +2 -2
  209. package/src/types/actions.d.ts +1 -0
  210. package/src/types/layers.d.ts +1 -0
  211. package/src/types/package.json +1 -1
  212. package/src/types/types.d.ts +17 -0
  213. package/src/utils/dist/application-config.d.ts +4 -3
  214. package/src/utils/dist/application-config.js +3 -2
  215. package/src/utils/dist/data-scale-utils.js +4 -4
  216. package/src/utils/dist/data-utils.d.ts +9 -3
  217. package/src/utils/dist/data-utils.js +40 -7
  218. package/src/utils/dist/dataset-utils.js +23 -8
  219. package/src/utils/dist/indexed-data-container.d.ts +2 -2
  220. package/src/utils/dist/indexed-data-container.js +1 -1
  221. package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
  222. package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
  223. package/src/utils/dist/plot.d.ts +2 -2
  224. package/src/utils/dist/plot.js +6 -6
  225. package/src/utils/map-utils.spec.js +1 -2
  226. package/src/utils/package.json +5 -4
  227. package/src/utils/src/application-config.ts +11 -8
  228. package/src/utils/src/data-scale-utils.ts +3 -3
  229. package/src/utils/src/data-utils.ts +36 -7
  230. package/src/utils/src/dataset-utils.ts +41 -9
  231. package/src/utils/src/indexed-data-container.ts +1 -1
  232. package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
  233. package/src/utils/src/plot.ts +5 -5
  234. package/umd/keplergl.min.js +1279 -1295
@@ -59,7 +59,7 @@ function createNewDataEntry(_ref) {
59
59
  }
60
60
  var validatedData = dataValidator(data);
61
61
  if (!validatedData) {
62
- return {};
62
+ return null;
63
63
  }
64
64
 
65
65
  // check if dataset already exists, and update it when loading data by batches incrementally
@@ -158,7 +158,7 @@ function refreshRemoteData(_x3) {
158
158
  }
159
159
  function _refreshRemoteData() {
160
160
  _refreshRemoteData = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(datasetInfo) {
161
- var _ref3, remoteTileFormat, tilesetMetadataUrl, rawMetadata, tileSource;
161
+ var _ref3, remoteTileFormat, tilesetMetadataUrl, tilesetDataUrl, rawMetadata, tileSource, metadata;
162
162
  return _regenerator["default"].wrap(function _callee3$(_context3) {
163
163
  while (1) switch (_context3.prev = _context3.next) {
164
164
  case 0:
@@ -168,8 +168,8 @@ function _refreshRemoteData() {
168
168
  }
169
169
  return _context3.abrupt("return", null);
170
170
  case 2:
171
- _ref3 = datasetInfo.opts.metadata || {}, remoteTileFormat = _ref3.remoteTileFormat, tilesetMetadataUrl = _ref3.tilesetMetadataUrl;
172
- if (!(!(remoteTileFormat === _constants.RemoteTileFormat.PMTILES || remoteTileFormat === _constants.RemoteTileFormat.MVT) || typeof tilesetMetadataUrl !== 'string')) {
171
+ _ref3 = datasetInfo.opts.metadata || {}, remoteTileFormat = _ref3.remoteTileFormat, tilesetMetadataUrl = _ref3.tilesetMetadataUrl, tilesetDataUrl = _ref3.tilesetDataUrl;
172
+ if (!(!(remoteTileFormat === _constants.RemoteTileFormat.PMTILES || remoteTileFormat === _constants.RemoteTileFormat.MVT) || typeof tilesetMetadataUrl !== 'string' || typeof tilesetDataUrl !== 'string')) {
173
173
  _context3.next = 5;
174
174
  break;
175
175
  }
@@ -195,24 +195,33 @@ function _refreshRemoteData() {
195
195
  rawMetadata = _context3.sent;
196
196
  case 17:
197
197
  if (!rawMetadata) {
198
- _context3.next = 19;
198
+ _context3.next = 22;
199
199
  break;
200
200
  }
201
- return _context3.abrupt("return", (0, _vectorTileUtils.parseVectorMetadata)(rawMetadata));
202
- case 19:
203
- _context3.next = 23;
204
- break;
201
+ metadata = (0, _vectorTileUtils.parseVectorMetadata)(rawMetadata);
202
+ _context3.next = 21;
203
+ return (0, _vectorTileUtils.getFieldsFromTile)({
204
+ remoteTileFormat: remoteTileFormat,
205
+ tilesetUrl: tilesetDataUrl,
206
+ metadataUrl: tilesetMetadataUrl,
207
+ metadata: metadata
208
+ });
205
209
  case 21:
206
- _context3.prev = 21;
210
+ return _context3.abrupt("return", metadata);
211
+ case 22:
212
+ _context3.next = 26;
213
+ break;
214
+ case 24:
215
+ _context3.prev = 24;
207
216
  _context3.t0 = _context3["catch"](5);
208
- case 23:
217
+ case 26:
209
218
  return _context3.abrupt("return", null);
210
- case 24:
219
+ case 27:
211
220
  case "end":
212
221
  return _context3.stop();
213
222
  }
214
- }, _callee3, null, [[5, 21]]);
223
+ }, _callee3, null, [[5, 24]]);
215
224
  }));
216
225
  return _refreshRemoteData.apply(this, arguments);
217
226
  }
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfa2VwbGVyVGFibGUiLCJfdGFza3MiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX3BtdGlsZXMiLCJfdGlsZXNldFV0aWxzIiwiX3ZlY3RvclRpbGVVdGlscyIsIl9leGNsdWRlZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGF0YXNldENvbG9ycyIsIm1hcCIsImhleFRvUmdiIiwiZ2V0TmV3RGF0YXNldENvbG9yIiwiZGF0YXNldHMiLCJwcmVzZXRDb2xvcnMiLCJTdHJpbmciLCJ1c2VkQ29sb3JzIiwidW5pcSIsInZhbHVlcyIsImQiLCJjb2xvciIsImMiLCJpbmNsdWRlcyIsImRhdGFzZXRDb2xvck1ha2VyIiwibmV4dCIsInZhbHVlIiwiY3JlYXRlTmV3RGF0YUVudHJ5IiwiX3JlZiIsIl9nZXRBcHBsaWNhdGlvbkNvbmZpZyIsImluZm8iLCJkYXRhIiwib3B0cyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJ1bmRlZmluZWQiLCJUYWJsZUNsYXNzIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJ0YWJsZSIsIktlcGxlclRhYmxlIiwiZGF0YVZhbGlkYXRvciIsInZhbGlkYXRlSW5wdXREYXRhIiwiZ2V0SW5wdXREYXRhVmFsaWRhdG9yIiwidmFsaWRhdGVkRGF0YSIsImlkIiwia2VwbGVyVGFibGUiLCJVUERBVEVfVEFCTEVfVEFTSyIsIkNSRUFURV9UQUJMRV9UQVNLIiwidXBkYXRlVGFibGUiLCJfeCIsIl91cGRhdGVUYWJsZSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZjIiLCJ1cGRhdGVkIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwidXBkYXRlIiwic2VudCIsImFicnVwdCIsInN0b3AiLCJjcmVhdGVUYWJsZSIsIl94MiIsIl9jcmVhdGVUYWJsZSIsIl9jYWxsZWUyIiwiZGF0YXNldEluZm8iLCJfZ2V0QXBwbGljYXRpb25Db25maWcyIiwicmVmcmVzaGVkTWV0YWRhdGEiLCJtZXRhZGF0YSIsIl9tZXRhZGF0YSIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInJlZnJlc2hSZW1vdGVEYXRhIiwiZmllbGRzIiwiaW1wb3J0RGF0YSIsIlRhc2siLCJmcm9tUHJvbWlzZSIsIl94MyIsIl9yZWZyZXNoUmVtb3RlRGF0YSIsIl9jYWxsZWUzIiwiX3JlZjMiLCJyZW1vdGVUaWxlRm9ybWF0IiwidGlsZXNldE1ldGFkYXRhVXJsIiwicmF3TWV0YWRhdGEiLCJ0aWxlU291cmNlIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwidHlwZSIsIkRhdGFzZXRUeXBlIiwiVkVDVE9SX1RJTEUiLCJSZW1vdGVUaWxlRm9ybWF0IiwiUE1USUxFUyIsIk1WVCIsImdldE1WVE1ldGFkYXRhIiwiUE1UaWxlc1NvdXJjZSIsImNyZWF0ZURhdGFTb3VyY2UiLCJwYXJzZVZlY3Rvck1ldGFkYXRhIiwidDAiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YXNldC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5pbXBvcnQgS2VwbGVyVGFibGUsIHtEYXRhc2V0c30gZnJvbSAnLi9rZXBsZXItdGFibGUnO1xuaW1wb3J0IHtQcm90b0RhdGFzZXQsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCBUYXNrIGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuXG5pbXBvcnQge0RhdGFzZXRUeXBlLCBSZW1vdGVUaWxlRm9ybWF0LCBWZWN0b3JUaWxlRGF0YXNldE1ldGFkYXRhfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBoZXhUb1JnYixcbiAgdmFsaWRhdGVJbnB1dERhdGEsXG4gIGRhdGFzZXRDb2xvck1ha2VyLFxuICBnZXRBcHBsaWNhdGlvbkNvbmZpZ1xufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7UE1UaWxlc1NvdXJjZSwgUE1UaWxlc01ldGFkYXRhfSBmcm9tICdAbG9hZGVycy5nbC9wbXRpbGVzJztcbmltcG9ydCB7LyogTVZUU291cmNlLCovIFRpbGVKU09OfSBmcm9tICdAbG9hZGVycy5nbC9tdnQnO1xuXG5pbXBvcnQge2dldE1WVE1ldGFkYXRhfSBmcm9tICcuL3RpbGVzZXQvdGlsZXNldC11dGlscyc7XG5pbXBvcnQge3BhcnNlVmVjdG9yTWV0YWRhdGF9IGZyb20gJy4vdGlsZXNldC92ZWN0b3ItdGlsZS11dGlscyc7XG5cbi8vIGFwcGx5IGEgY29sb3IgZm9yIGVhY2ggZGF0YXNldFxuLy8gdG8gdXNlIGFzIGxhYmVsIGNvbG9yc1xuY29uc3QgZGF0YXNldENvbG9ycyA9IFtcbiAgJyM4RjJGQkYnLFxuICAnIzAwNUNGRicsXG4gICcjQzA2Qzg0JyxcbiAgJyNGOEIxOTUnLFxuICAnIzU0N0E4MicsXG4gICcjM0VBQ0E4JyxcbiAgJyNBMkQ0QUInXG5dLm1hcChoZXhUb1JnYik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdEYXRhc2V0Q29sb3IoZGF0YXNldHM6IERhdGFzZXRzKTogUkdCQ29sb3Ige1xuICBjb25zdCBwcmVzZXRDb2xvcnMgPSBkYXRhc2V0Q29sb3JzLm1hcChTdHJpbmcpO1xuICBjb25zdCB1c2VkQ29sb3JzID0gdW5pcShPYmplY3QudmFsdWVzKGRhdGFzZXRzKS5tYXAoZCA9PiBTdHJpbmcoZC5jb2xvcikpKS5maWx0ZXIoYyA9PlxuICAgIHByZXNldENvbG9ycy5pbmNsdWRlcyhjKVxuICApO1xuXG4gIGlmICh1c2VkQ29sb3JzLmxlbmd0aCA9PT0gcHJlc2V0Q29sb3JzLmxlbmd0aCkge1xuICAgIC8vIGlmIHdlIGFscmVhZHkgZGVwbGV0ZWQgdGhlIHBvb2wgb2YgY29sb3JcbiAgICByZXR1cm4gZGF0YXNldENvbG9yTWFrZXIubmV4dCgpLnZhbHVlO1xuICB9XG5cbiAgbGV0IGNvbG9yID0gZGF0YXNldENvbG9yTWFrZXIubmV4dCgpLnZhbHVlO1xuICB3aGlsZSAodXNlZENvbG9ycy5pbmNsdWRlcyhTdHJpbmcoY29sb3IpKSkge1xuICAgIGNvbG9yID0gZGF0YXNldENvbG9yTWFrZXIubmV4dCgpLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGNvbG9yO1xufVxuXG4vKipcbiAqIFRha2UgZGF0YXNldHMgcGF5bG9hZCBmcm9tIGFkZERhdGFUb01hcCwgY3JlYXRlIGRhdGFzZXRzIGVudHJ5IHNhdmUgdG8gdmlzU3RhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU5ld0RhdGFFbnRyeShcbiAge2luZm8sIGRhdGEsIC4uLm9wdHN9OiBQcm90b0RhdGFzZXQsXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyA9IHt9XG4pOiBEYXRhc2V0cyB7XG4gIGNvbnN0IFRhYmxlQ2xhc3MgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnRhYmxlID8/IEtlcGxlclRhYmxlO1xuICBsZXQgZGF0YVZhbGlkYXRvciA9IHZhbGlkYXRlSW5wdXREYXRhO1xuICBpZiAodHlwZW9mIFRhYmxlQ2xhc3MuZ2V0SW5wdXREYXRhVmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZGF0YVZhbGlkYXRvciA9IFRhYmxlQ2xhc3MuZ2V0SW5wdXREYXRhVmFsaWRhdG9yKCk7XG4gIH1cblxuICBjb25zdCB2YWxpZGF0ZWREYXRhID0gZGF0YVZhbGlkYXRvcihkYXRhKTtcbiAgaWYgKCF2YWxpZGF0ZWREYXRhKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gY2hlY2sgaWYgZGF0YXNldCBhbHJlYWR5IGV4aXN0cywgYW5kIHVwZGF0ZSBpdCB3aGVuIGxvYWRpbmcgZGF0YSBieSBiYXRjaGVzIGluY3JlbWVudGFsbHlcbiAgaWYgKGluZm8gJiYgaW5mby5pZCAmJiBkYXRhc2V0c1tpbmZvLmlkXSkge1xuICAgIC8vIGdldCBrZXBsZXJUYWJsZSBmcm9tIGRhdGFzZXRzXG4gICAgY29uc3Qga2VwbGVyVGFibGUgPSBkYXRhc2V0c1tpbmZvLmlkXTtcbiAgICAvLyB1cGRhdGUgdGhlIGRhdGEgaW4ga2VwbGVyVGFibGVcbiAgICByZXR1cm4gVVBEQVRFX1RBQkxFX1RBU0soe3RhYmxlOiBrZXBsZXJUYWJsZSwgZGF0YTogdmFsaWRhdGVkRGF0YX0pO1xuICB9XG5cbiAgaW5mbyA9IGluZm8gfHwge307XG4gIGNvbnN0IGNvbG9yID0gaW5mby5jb2xvciB8fCBnZXROZXdEYXRhc2V0Q29sb3IoZGF0YXNldHMpO1xuXG4gIHJldHVybiBDUkVBVEVfVEFCTEVfVEFTSyh7XG4gICAgaW5mbyxcbiAgICBjb2xvcixcbiAgICBvcHRzLFxuICAgIGRhdGE6IHZhbGlkYXRlZERhdGFcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVRhYmxlKHt0YWJsZSwgZGF0YX0pIHtcbiAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRhYmxlLnVwZGF0ZShkYXRhKTsgLy8gQXNzdW1pbmcgYHRhYmxlYCBoYXMgYW4gYHVwZGF0ZWAgbWV0aG9kXG4gIHJldHVybiB1cGRhdGVkO1xufVxuXG50eXBlIENyZWF0ZVRhYmxlUHJvcHMgPSB7XG4gIGluZm86IGFueTtcbiAgY29sb3I6IFJHQkNvbG9yO1xuICBvcHRzOiB7XG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbiAgZGF0YTogYW55O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGFibGUoZGF0YXNldEluZm86IENyZWF0ZVRhYmxlUHJvcHMpIHtcbiAgY29uc3Qge2luZm8sIGNvbG9yLCBvcHRzLCBkYXRhfSA9IGRhdGFzZXRJbmZvO1xuXG4gIC8vIHVwZGF0ZSBtZXRhZGF0YSBmb3IgcmVtb3RlIHRpbGVkIGRhdGFzZXRzXG4gIGNvbnN0IHJlZnJlc2hlZE1ldGFkYXRhID0gYXdhaXQgcmVmcmVzaFJlbW90ZURhdGEoZGF0YXNldEluZm8pO1xuICBsZXQgbWV0YWRhdGEgPSBvcHRzLm1ldGFkYXRhO1xuICBpZiAocmVmcmVzaGVkTWV0YWRhdGEpIHtcbiAgICBtZXRhZGF0YSA9IHsuLi5vcHRzLm1ldGFkYXRhLCAuLi5yZWZyZXNoZWRNZXRhZGF0YX07XG4gICAgZGF0YS5maWVsZHMgPSBtZXRhZGF0YT8uZmllbGRzO1xuICB9XG5cbiAgY29uc3QgVGFibGVDbGFzcyA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkudGFibGUgPz8gS2VwbGVyVGFibGU7XG4gIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlQ2xhc3Moe1xuICAgIGluZm8sXG4gICAgY29sb3IsXG4gICAgLi4ub3B0cyxcbiAgICBtZXRhZGF0YVxuICB9KTtcbiAgYXdhaXQgdGFibGUuaW1wb3J0RGF0YSh7ZGF0YX0pO1xuXG4gIHJldHVybiB0YWJsZTtcbn1cbmNvbnN0IFVQREFURV9UQUJMRV9UQVNLID0gVGFzay5mcm9tUHJvbWlzZSh1cGRhdGVUYWJsZSwgJ1VQREFURV9UQUJMRV9UQVNLJyk7XG5jb25zdCBDUkVBVEVfVEFCTEVfVEFTSyA9IFRhc2suZnJvbVByb21pc2UoY3JlYXRlVGFibGUsICdDUkVBVEVfVEFCTEVfVEFTSycpO1xuXG4vKipcbiAqIEZldGNoIG1ldGFkYXRhIGZvciB2ZWN0b3IgdGlsZSBsYXllcnMgdXNpbmcgdGlsZXNldE1ldGFkYXRhVXJsIGZyb20gbWV0YWRhdGFcbiAqIEBwYXJhbSBkYXRhc2V0SW5mb1xuICogQHJldHVybnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVmcmVzaFJlbW90ZURhdGEoZGF0YXNldEluZm86IENyZWF0ZVRhYmxlUHJvcHMpIHtcbiAgLy8gc28gZmFyIG9ubHkgdmVjdG9yIHRpbGUgbGF5ZXJzIHNob3VsZCByZWZyZXNoIG1ldGFkYXRhXG4gIGlmIChkYXRhc2V0SW5mby5pbmZvLnR5cGUgIT09IERhdGFzZXRUeXBlLlZFQ1RPUl9USUxFKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCB7cmVtb3RlVGlsZUZvcm1hdCwgdGlsZXNldE1ldGFkYXRhVXJsfSA9XG4gICAgKGRhdGFzZXRJbmZvLm9wdHMubWV0YWRhdGEgYXMgVmVjdG9yVGlsZURhdGFzZXRNZXRhZGF0YSkgfHwge307XG5cbiAgaWYgKFxuICAgICEocmVtb3RlVGlsZUZvcm1hdCA9PT0gUmVtb3RlVGlsZUZvcm1hdC5QTVRJTEVTIHx8IHJlbW90ZVRpbGVGb3JtYXQgPT09IFJlbW90ZVRpbGVGb3JtYXQuTVZUKSB8fFxuICAgIHR5cGVvZiB0aWxlc2V0TWV0YWRhdGFVcmwgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBsZXQgcmF3TWV0YWRhdGE6IFBNVGlsZXNNZXRhZGF0YSB8IFRpbGVKU09OIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHJlbW90ZVRpbGVGb3JtYXQgPT09IFJlbW90ZVRpbGVGb3JtYXQuTVZUKSB7XG4gICAgICByYXdNZXRhZGF0YSA9IGF3YWl0IGdldE1WVE1ldGFkYXRhKHRpbGVzZXRNZXRhZGF0YVVybCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRpbGVTb3VyY2UgPSBQTVRpbGVzU291cmNlLmNyZWF0ZURhdGFTb3VyY2UodGlsZXNldE1ldGFkYXRhVXJsLCB7fSk7XG4gICAgICByYXdNZXRhZGF0YSA9IGF3YWl0IHRpbGVTb3VyY2UubWV0YWRhdGE7XG4gICAgfVxuXG4gICAgaWYgKHJhd01ldGFkYXRhKSB7XG4gICAgICByZXR1cm4gcGFyc2VWZWN0b3JNZXRhZGF0YShyYXdNZXRhZGF0YSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBpZ25vcmUgZm9yIG5vdywgYW5kIHVzZSBvbGQgbWV0YWRhdGE/XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBTUEsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBR0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBQUFnRSxJQUFBUSxTQUFBLHFCQW5CaEU7QUFDQTtBQUFBLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBSCxPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBO0FBb0JBO0FBQ0E7QUFDQSxJQUFNb0IsYUFBYSxHQUFHLENBQ3BCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsQ0FDVixDQUFDQyxHQUFHLENBQUNDLGVBQVEsQ0FBQztBQUVSLFNBQVNDLGtCQUFrQkEsQ0FBQ0MsUUFBa0IsRUFBWTtFQUMvRCxJQUFNQyxZQUFZLEdBQUdMLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDSyxNQUFNLENBQUM7RUFDOUMsSUFBTUMsVUFBVSxHQUFHLElBQUFDLGtCQUFJLEVBQUN6QixNQUFNLENBQUMwQixNQUFNLENBQUNMLFFBQVEsQ0FBQyxDQUFDSCxHQUFHLENBQUMsVUFBQVMsQ0FBQztJQUFBLE9BQUlKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDQyxLQUFLLENBQUM7RUFBQSxFQUFDLENBQUMsQ0FBQ3hCLE1BQU0sQ0FBQyxVQUFBeUIsQ0FBQztJQUFBLE9BQ2pGUCxZQUFZLENBQUNRLFFBQVEsQ0FBQ0QsQ0FBQyxDQUFDO0VBQUEsQ0FDMUIsQ0FBQztFQUVELElBQUlMLFVBQVUsQ0FBQ2IsTUFBTSxLQUFLVyxZQUFZLENBQUNYLE1BQU0sRUFBRTtJQUM3QztJQUNBLE9BQU9vQix3QkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsS0FBSztFQUN2QztFQUVBLElBQUlMLEtBQUssR0FBR0csd0JBQWlCLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUNDLEtBQUs7RUFDMUMsT0FBT1QsVUFBVSxDQUFDTSxRQUFRLENBQUNQLE1BQU0sQ0FBQ0ssS0FBSyxDQUFDLENBQUMsRUFBRTtJQUN6Q0EsS0FBSyxHQUFHRyx3QkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsS0FBSztFQUN4QztFQUVBLE9BQU9MLEtBQUs7QUFDZDs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTTSxrQkFBa0JBLENBQUFDLElBQUEsRUFHdEI7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLElBRlRDLElBQUksR0FBQUYsSUFBQSxDQUFKRSxJQUFJO0lBQUVDLElBQUksR0FBQUgsSUFBQSxDQUFKRyxJQUFJO0lBQUtDLElBQUksT0FBQUMseUJBQUEsYUFBQUwsSUFBQSxFQUFBeEMsU0FBQTtFQUFBLElBQ3BCMEIsUUFBa0IsR0FBQVgsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQStCLFNBQUEsR0FBQS9CLFNBQUEsTUFBRyxDQUFDLENBQUM7RUFFdkIsSUFBTWdDLFVBQVUsSUFBQU4scUJBQUEsR0FBRyxJQUFBTywyQkFBb0IsRUFBQyxDQUFDLENBQUNDLEtBQUssY0FBQVIscUJBQUEsY0FBQUEscUJBQUEsR0FBSVMsdUJBQVc7RUFDOUQsSUFBSUMsYUFBYSxHQUFHQyx3QkFBaUI7RUFDckMsSUFBSSxPQUFPTCxVQUFVLENBQUNNLHFCQUFxQixLQUFLLFVBQVUsRUFBRTtJQUMxREYsYUFBYSxHQUFHSixVQUFVLENBQUNNLHFCQUFxQixDQUFDLENBQUM7RUFDcEQ7RUFFQSxJQUFNQyxhQUFhLEdBQUdILGFBQWEsQ0FBQ1IsSUFBSSxDQUFDO0VBQ3pDLElBQUksQ0FBQ1csYUFBYSxFQUFFO0lBQ2xCLE9BQU8sQ0FBQyxDQUFDO0VBQ1g7O0VBRUE7RUFDQSxJQUFJWixJQUFJLElBQUlBLElBQUksQ0FBQ2EsRUFBRSxJQUFJN0IsUUFBUSxDQUFDZ0IsSUFBSSxDQUFDYSxFQUFFLENBQUMsRUFBRTtJQUN4QztJQUNBLElBQU1DLFdBQVcsR0FBRzlCLFFBQVEsQ0FBQ2dCLElBQUksQ0FBQ2EsRUFBRSxDQUFDO0lBQ3JDO0lBQ0EsT0FBT0UsaUJBQWlCLENBQUM7TUFBQ1IsS0FBSyxFQUFFTyxXQUFXO01BQUViLElBQUksRUFBRVc7SUFBYSxDQUFDLENBQUM7RUFDckU7RUFFQVosSUFBSSxHQUFHQSxJQUFJLElBQUksQ0FBQyxDQUFDO0VBQ2pCLElBQU1ULEtBQUssR0FBR1MsSUFBSSxDQUFDVCxLQUFLLElBQUlSLGtCQUFrQixDQUFDQyxRQUFRLENBQUM7RUFFeEQsT0FBT2dDLGlCQUFpQixDQUFDO0lBQ3ZCaEIsSUFBSSxFQUFKQSxJQUFJO0lBQ0pULEtBQUssRUFBTEEsS0FBSztJQUNMVyxJQUFJLEVBQUpBLElBQUk7SUFDSkQsSUFBSSxFQUFFVztFQUNSLENBQUMsQ0FBQztBQUNKO0FBQUMsU0FFY0ssV0FBV0EsQ0FBQUMsRUFBQTtFQUFBLE9BQUFDLFlBQUEsQ0FBQWhELEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBQUEsU0FBQThDLGFBQUE7RUFBQUEsWUFBQSxPQUFBQyxrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBQTFCLFNBQUFDLFFBQUFDLEtBQUE7SUFBQSxJQUFBakIsS0FBQSxFQUFBTixJQUFBLEVBQUF3QixPQUFBO0lBQUEsT0FBQUosWUFBQSxZQUFBSyxJQUFBLFVBQUFDLFNBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQWpDLElBQUE7UUFBQTtVQUE0QlksS0FBSyxHQUFBaUIsS0FBQSxDQUFMakIsS0FBSyxFQUFFTixJQUFJLEdBQUF1QixLQUFBLENBQUp2QixJQUFJO1VBQUEyQixRQUFBLENBQUFqQyxJQUFBO1VBQUEsT0FDZlksS0FBSyxDQUFDdUIsTUFBTSxDQUFDN0IsSUFBSSxDQUFDO1FBQUE7VUFBbEN3QixPQUFPLEdBQUFHLFFBQUEsQ0FBQUcsSUFBQTtVQUFBLE9BQUFILFFBQUEsQ0FBQUksTUFBQSxXQUNOUCxPQUFPO1FBQUE7UUFBQTtVQUFBLE9BQUFHLFFBQUEsQ0FBQUssSUFBQTtNQUFBO0lBQUEsR0FBQVYsT0FBQTtFQUFBLENBQ2Y7RUFBQSxPQUFBSixZQUFBLENBQUFoRCxLQUFBLE9BQUFFLFNBQUE7QUFBQTtBQUFBLFNBV2M2RCxXQUFXQSxDQUFBQyxHQUFBO0VBQUEsT0FBQUMsWUFBQSxDQUFBakUsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFBQSxTQUFBK0QsYUFBQTtFQUFBQSxZQUFBLE9BQUFoQixrQkFBQSwyQkFBQUMsWUFBQSxZQUFBQyxJQUFBLENBQTFCLFNBQUFlLFNBQTJCQyxXQUE2QjtJQUFBLElBQUFDLHNCQUFBO0lBQUEsSUFBQXZDLElBQUEsRUFBQVQsS0FBQSxFQUFBVyxJQUFBLEVBQUFELElBQUEsRUFBQXVDLGlCQUFBLEVBQUFDLFFBQUEsRUFBQUMsU0FBQSxFQUFBckMsVUFBQSxFQUFBRSxLQUFBO0lBQUEsT0FBQWMsWUFBQSxZQUFBSyxJQUFBLFVBQUFpQixVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQWYsSUFBQSxHQUFBZSxTQUFBLENBQUFqRCxJQUFBO1FBQUE7VUFDL0NLLElBQUksR0FBdUJzQyxXQUFXLENBQXRDdEMsSUFBSSxFQUFFVCxLQUFLLEdBQWdCK0MsV0FBVyxDQUFoQy9DLEtBQUssRUFBRVcsSUFBSSxHQUFVb0MsV0FBVyxDQUF6QnBDLElBQUksRUFBRUQsSUFBSSxHQUFJcUMsV0FBVyxDQUFuQnJDLElBQUksRUFFOUI7VUFBQTJDLFNBQUEsQ0FBQWpELElBQUE7VUFBQSxPQUNnQ2tELGlCQUFpQixDQUFDUCxXQUFXLENBQUM7UUFBQTtVQUF4REUsaUJBQWlCLEdBQUFJLFNBQUEsQ0FBQWIsSUFBQTtVQUNuQlUsUUFBUSxHQUFHdkMsSUFBSSxDQUFDdUMsUUFBUTtVQUM1QixJQUFJRCxpQkFBaUIsRUFBRTtZQUNyQkMsUUFBUSxHQUFBckUsYUFBQSxDQUFBQSxhQUFBLEtBQU84QixJQUFJLENBQUN1QyxRQUFRLEdBQUtELGlCQUFpQixDQUFDO1lBQ25EdkMsSUFBSSxDQUFDNkMsTUFBTSxJQUFBSixTQUFBLEdBQUdELFFBQVEsY0FBQUMsU0FBQSx1QkFBUkEsU0FBQSxDQUFVSSxNQUFNO1VBQ2hDO1VBRU16QyxVQUFVLElBQUFrQyxzQkFBQSxHQUFHLElBQUFqQywyQkFBb0IsRUFBQyxDQUFDLENBQUNDLEtBQUssY0FBQWdDLHNCQUFBLGNBQUFBLHNCQUFBLEdBQUkvQix1QkFBVztVQUN4REQsS0FBSyxHQUFHLElBQUlGLFVBQVUsQ0FBQWpDLGFBQUEsQ0FBQUEsYUFBQTtZQUMxQjRCLElBQUksRUFBSkEsSUFBSTtZQUNKVCxLQUFLLEVBQUxBO1VBQUssR0FDRlcsSUFBSTtZQUNQdUMsUUFBUSxFQUFSQTtVQUFRLEVBQ1QsQ0FBQztVQUFBRyxTQUFBLENBQUFqRCxJQUFBO1VBQUEsT0FDSVksS0FBSyxDQUFDd0MsVUFBVSxDQUFDO1lBQUM5QyxJQUFJLEVBQUpBO1VBQUksQ0FBQyxDQUFDO1FBQUE7VUFBQSxPQUFBMkMsU0FBQSxDQUFBWixNQUFBLFdBRXZCekIsS0FBSztRQUFBO1FBQUE7VUFBQSxPQUFBcUMsU0FBQSxDQUFBWCxJQUFBO01BQUE7SUFBQSxHQUFBSSxRQUFBO0VBQUEsQ0FDYjtFQUFBLE9BQUFELFlBQUEsQ0FBQWpFLEtBQUEsT0FBQUUsU0FBQTtBQUFBO0FBQ0QsSUFBTTBDLGlCQUFpQixHQUFHaUMsaUJBQUksQ0FBQ0MsV0FBVyxDQUFDaEMsV0FBVyxFQUFFLG1CQUFtQixDQUFDO0FBQzVFLElBQU1ELGlCQUFpQixHQUFHZ0MsaUJBQUksQ0FBQ0MsV0FBVyxDQUFDZixXQUFXLEVBQUUsbUJBQW1CLENBQUM7O0FBRTVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQSxTQUtlVyxpQkFBaUJBLENBQUFLLEdBQUE7RUFBQSxPQUFBQyxrQkFBQSxDQUFBaEYsS0FBQSxPQUFBRSxTQUFBO0FBQUE7QUFBQSxTQUFBOEUsbUJBQUE7RUFBQUEsa0JBQUEsT0FBQS9CLGtCQUFBLDJCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FBaEMsU0FBQThCLFNBQWlDZCxXQUE2QjtJQUFBLElBQUFlLEtBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsa0JBQUEsRUFBQUMsV0FBQSxFQUFBQyxVQUFBO0lBQUEsT0FBQXBDLFlBQUEsWUFBQUssSUFBQSxVQUFBZ0MsVUFBQUMsU0FBQTtNQUFBLGtCQUFBQSxTQUFBLENBQUE5QixJQUFBLEdBQUE4QixTQUFBLENBQUFoRSxJQUFBO1FBQUE7VUFBQSxNQUV4RDJDLFdBQVcsQ0FBQ3RDLElBQUksQ0FBQzRELElBQUksS0FBS0Msc0JBQVcsQ0FBQ0MsV0FBVztZQUFBSCxTQUFBLENBQUFoRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUFnRSxTQUFBLENBQUEzQixNQUFBLFdBQzVDLElBQUk7UUFBQTtVQUFBcUIsS0FBQSxHQUlWZixXQUFXLENBQUNwQyxJQUFJLENBQUN1QyxRQUFRLElBQWtDLENBQUMsQ0FBQyxFQUR6RGEsZ0JBQWdCLEdBQUFELEtBQUEsQ0FBaEJDLGdCQUFnQixFQUFFQyxrQkFBa0IsR0FBQUYsS0FBQSxDQUFsQkUsa0JBQWtCO1VBQUEsTUFJekMsRUFBRUQsZ0JBQWdCLEtBQUtTLDJCQUFnQixDQUFDQyxPQUFPLElBQUlWLGdCQUFnQixLQUFLUywyQkFBZ0IsQ0FBQ0UsR0FBRyxDQUFDLElBQzdGLE9BQU9WLGtCQUFrQixLQUFLLFFBQVE7WUFBQUksU0FBQSxDQUFBaEUsSUFBQTtZQUFBO1VBQUE7VUFBQSxPQUFBZ0UsU0FBQSxDQUFBM0IsTUFBQSxXQUUvQixJQUFJO1FBQUE7VUFBQTJCLFNBQUEsQ0FBQTlCLElBQUE7VUFJUDJCLFdBQThDLEdBQUcsSUFBSTtVQUFBLE1BQ3JERixnQkFBZ0IsS0FBS1MsMkJBQWdCLENBQUNFLEdBQUc7WUFBQU4sU0FBQSxDQUFBaEUsSUFBQTtZQUFBO1VBQUE7VUFBQWdFLFNBQUEsQ0FBQWhFLElBQUE7VUFBQSxPQUN2QixJQUFBdUUsNEJBQWMsRUFBQ1gsa0JBQWtCLENBQUM7UUFBQTtVQUF0REMsV0FBVyxHQUFBRyxTQUFBLENBQUE1QixJQUFBO1VBQUE0QixTQUFBLENBQUFoRSxJQUFBO1VBQUE7UUFBQTtVQUVMOEQsVUFBVSxHQUFHVSxzQkFBYSxDQUFDQyxnQkFBZ0IsQ0FBQ2Isa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUM7VUFBQUksU0FBQSxDQUFBaEUsSUFBQTtVQUFBLE9BQ3JEOEQsVUFBVSxDQUFDaEIsUUFBUTtRQUFBO1VBQXZDZSxXQUFXLEdBQUFHLFNBQUEsQ0FBQTVCLElBQUE7UUFBQTtVQUFBLEtBR1R5QixXQUFXO1lBQUFHLFNBQUEsQ0FBQWhFLElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQWdFLFNBQUEsQ0FBQTNCLE1BQUEsV0FDTixJQUFBcUMsb0NBQW1CLEVBQUNiLFdBQVcsQ0FBQztRQUFBO1VBQUFHLFNBQUEsQ0FBQWhFLElBQUE7VUFBQTtRQUFBO1VBQUFnRSxTQUFBLENBQUE5QixJQUFBO1VBQUE4QixTQUFBLENBQUFXLEVBQUEsR0FBQVgsU0FBQTtRQUFBO1VBQUEsT0FBQUEsU0FBQSxDQUFBM0IsTUFBQSxXQU1wQyxJQUFJO1FBQUE7UUFBQTtVQUFBLE9BQUEyQixTQUFBLENBQUExQixJQUFBO01BQUE7SUFBQSxHQUFBbUIsUUFBQTtFQUFBLENBQ1o7RUFBQSxPQUFBRCxrQkFBQSxDQUFBaEYsS0FBQSxPQUFBRSxTQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
227
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfa2VwbGVyVGFibGUiLCJfdGFza3MiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX3BtdGlsZXMiLCJfdGlsZXNldFV0aWxzIiwiX3ZlY3RvclRpbGVVdGlscyIsIl9leGNsdWRlZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGF0YXNldENvbG9ycyIsIm1hcCIsImhleFRvUmdiIiwiZ2V0TmV3RGF0YXNldENvbG9yIiwiZGF0YXNldHMiLCJwcmVzZXRDb2xvcnMiLCJTdHJpbmciLCJ1c2VkQ29sb3JzIiwidW5pcSIsInZhbHVlcyIsImQiLCJjb2xvciIsImMiLCJpbmNsdWRlcyIsImRhdGFzZXRDb2xvck1ha2VyIiwibmV4dCIsInZhbHVlIiwiY3JlYXRlTmV3RGF0YUVudHJ5IiwiX3JlZiIsIl9nZXRBcHBsaWNhdGlvbkNvbmZpZyIsImluZm8iLCJkYXRhIiwib3B0cyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJ1bmRlZmluZWQiLCJUYWJsZUNsYXNzIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJ0YWJsZSIsIktlcGxlclRhYmxlIiwiZGF0YVZhbGlkYXRvciIsInZhbGlkYXRlSW5wdXREYXRhIiwiZ2V0SW5wdXREYXRhVmFsaWRhdG9yIiwidmFsaWRhdGVkRGF0YSIsImlkIiwia2VwbGVyVGFibGUiLCJVUERBVEVfVEFCTEVfVEFTSyIsIkNSRUFURV9UQUJMRV9UQVNLIiwidXBkYXRlVGFibGUiLCJfeCIsIl91cGRhdGVUYWJsZSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwiX3JlZjIiLCJ1cGRhdGVkIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwidXBkYXRlIiwic2VudCIsImFicnVwdCIsInN0b3AiLCJjcmVhdGVUYWJsZSIsIl94MiIsIl9jcmVhdGVUYWJsZSIsIl9jYWxsZWUyIiwiZGF0YXNldEluZm8iLCJfZ2V0QXBwbGljYXRpb25Db25maWcyIiwicmVmcmVzaGVkTWV0YWRhdGEiLCJtZXRhZGF0YSIsIl9tZXRhZGF0YSIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInJlZnJlc2hSZW1vdGVEYXRhIiwiZmllbGRzIiwiaW1wb3J0RGF0YSIsIlRhc2siLCJmcm9tUHJvbWlzZSIsIl94MyIsIl9yZWZyZXNoUmVtb3RlRGF0YSIsIl9jYWxsZWUzIiwiX3JlZjMiLCJyZW1vdGVUaWxlRm9ybWF0IiwidGlsZXNldE1ldGFkYXRhVXJsIiwidGlsZXNldERhdGFVcmwiLCJyYXdNZXRhZGF0YSIsInRpbGVTb3VyY2UiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJ0eXBlIiwiRGF0YXNldFR5cGUiLCJWRUNUT1JfVElMRSIsIlJlbW90ZVRpbGVGb3JtYXQiLCJQTVRJTEVTIiwiTVZUIiwiZ2V0TVZUTWV0YWRhdGEiLCJQTVRpbGVzU291cmNlIiwiY3JlYXRlRGF0YVNvdXJjZSIsInBhcnNlVmVjdG9yTWV0YWRhdGEiLCJnZXRGaWVsZHNGcm9tVGlsZSIsInRpbGVzZXRVcmwiLCJtZXRhZGF0YVVybCIsInQwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzZXQtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoLnVuaXEnO1xuaW1wb3J0IEtlcGxlclRhYmxlLCB7RGF0YXNldHN9IGZyb20gJy4va2VwbGVyLXRhYmxlJztcbmltcG9ydCB7UHJvdG9EYXRhc2V0LCBSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQgVGFzayBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcblxuaW1wb3J0IHtEYXRhc2V0VHlwZSwgUmVtb3RlVGlsZUZvcm1hdCwgVmVjdG9yVGlsZURhdGFzZXRNZXRhZGF0YX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgaGV4VG9SZ2IsXG4gIHZhbGlkYXRlSW5wdXREYXRhLFxuICBkYXRhc2V0Q29sb3JNYWtlcixcbiAgZ2V0QXBwbGljYXRpb25Db25maWdcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1BNVGlsZXNTb3VyY2UsIFBNVGlsZXNNZXRhZGF0YX0gZnJvbSAnQGxvYWRlcnMuZ2wvcG10aWxlcyc7XG5pbXBvcnQgey8qIE1WVFNvdXJjZSwqLyBUaWxlSlNPTn0gZnJvbSAnQGxvYWRlcnMuZ2wvbXZ0JztcblxuaW1wb3J0IHtnZXRNVlRNZXRhZGF0YX0gZnJvbSAnLi90aWxlc2V0L3RpbGVzZXQtdXRpbHMnO1xuaW1wb3J0IHtwYXJzZVZlY3Rvck1ldGFkYXRhLCBnZXRGaWVsZHNGcm9tVGlsZX0gZnJvbSAnLi90aWxlc2V0L3ZlY3Rvci10aWxlLXV0aWxzJztcblxuLy8gYXBwbHkgYSBjb2xvciBmb3IgZWFjaCBkYXRhc2V0XG4vLyB0byB1c2UgYXMgbGFiZWwgY29sb3JzXG5jb25zdCBkYXRhc2V0Q29sb3JzID0gW1xuICAnIzhGMkZCRicsXG4gICcjMDA1Q0ZGJyxcbiAgJyNDMDZDODQnLFxuICAnI0Y4QjE5NScsXG4gICcjNTQ3QTgyJyxcbiAgJyMzRUFDQTgnLFxuICAnI0EyRDRBQidcbl0ubWFwKGhleFRvUmdiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5ld0RhdGFzZXRDb2xvcihkYXRhc2V0czogRGF0YXNldHMpOiBSR0JDb2xvciB7XG4gIGNvbnN0IHByZXNldENvbG9ycyA9IGRhdGFzZXRDb2xvcnMubWFwKFN0cmluZyk7XG4gIGNvbnN0IHVzZWRDb2xvcnMgPSB1bmlxKE9iamVjdC52YWx1ZXMoZGF0YXNldHMpLm1hcChkID0+IFN0cmluZyhkLmNvbG9yKSkpLmZpbHRlcihjID0+XG4gICAgcHJlc2V0Q29sb3JzLmluY2x1ZGVzKGMpXG4gICk7XG5cbiAgaWYgKHVzZWRDb2xvcnMubGVuZ3RoID09PSBwcmVzZXRDb2xvcnMubGVuZ3RoKSB7XG4gICAgLy8gaWYgd2UgYWxyZWFkeSBkZXBsZXRlZCB0aGUgcG9vbCBvZiBjb2xvclxuICAgIHJldHVybiBkYXRhc2V0Q29sb3JNYWtlci5uZXh0KCkudmFsdWU7XG4gIH1cblxuICBsZXQgY29sb3IgPSBkYXRhc2V0Q29sb3JNYWtlci5uZXh0KCkudmFsdWU7XG4gIHdoaWxlICh1c2VkQ29sb3JzLmluY2x1ZGVzKFN0cmluZyhjb2xvcikpKSB7XG4gICAgY29sb3IgPSBkYXRhc2V0Q29sb3JNYWtlci5uZXh0KCkudmFsdWU7XG4gIH1cblxuICByZXR1cm4gY29sb3I7XG59XG5cbi8qKlxuICogVGFrZSBkYXRhc2V0cyBwYXlsb2FkIGZyb20gYWRkRGF0YVRvTWFwLCBjcmVhdGUgZGF0YXNldHMgZW50cnkgc2F2ZSB0byB2aXNTdGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTmV3RGF0YUVudHJ5KFxuICB7aW5mbywgZGF0YSwgLi4ub3B0c306IFByb3RvRGF0YXNldCxcbiAgZGF0YXNldHM6IERhdGFzZXRzID0ge31cbik6IERhdGFzZXRzIHwgbnVsbCB7XG4gIGNvbnN0IFRhYmxlQ2xhc3MgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLnRhYmxlID8/IEtlcGxlclRhYmxlO1xuICBsZXQgZGF0YVZhbGlkYXRvciA9IHZhbGlkYXRlSW5wdXREYXRhO1xuICBpZiAodHlwZW9mIFRhYmxlQ2xhc3MuZ2V0SW5wdXREYXRhVmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZGF0YVZhbGlkYXRvciA9IFRhYmxlQ2xhc3MuZ2V0SW5wdXREYXRhVmFsaWRhdG9yKCk7XG4gIH1cblxuICBjb25zdCB2YWxpZGF0ZWREYXRhID0gZGF0YVZhbGlkYXRvcihkYXRhKTtcbiAgaWYgKCF2YWxpZGF0ZWREYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBjaGVjayBpZiBkYXRhc2V0IGFscmVhZHkgZXhpc3RzLCBhbmQgdXBkYXRlIGl0IHdoZW4gbG9hZGluZyBkYXRhIGJ5IGJhdGNoZXMgaW5jcmVtZW50YWxseVxuICBpZiAoaW5mbyAmJiBpbmZvLmlkICYmIGRhdGFzZXRzW2luZm8uaWRdKSB7XG4gICAgLy8gZ2V0IGtlcGxlclRhYmxlIGZyb20gZGF0YXNldHNcbiAgICBjb25zdCBrZXBsZXJUYWJsZSA9IGRhdGFzZXRzW2luZm8uaWRdO1xuICAgIC8vIHVwZGF0ZSB0aGUgZGF0YSBpbiBrZXBsZXJUYWJsZVxuICAgIHJldHVybiBVUERBVEVfVEFCTEVfVEFTSyh7dGFibGU6IGtlcGxlclRhYmxlLCBkYXRhOiB2YWxpZGF0ZWREYXRhfSk7XG4gIH1cblxuICBpbmZvID0gaW5mbyB8fCB7fTtcbiAgY29uc3QgY29sb3IgPSBpbmZvLmNvbG9yIHx8IGdldE5ld0RhdGFzZXRDb2xvcihkYXRhc2V0cyk7XG5cbiAgcmV0dXJuIENSRUFURV9UQUJMRV9UQVNLKHtcbiAgICBpbmZvLFxuICAgIGNvbG9yLFxuICAgIG9wdHMsXG4gICAgZGF0YTogdmFsaWRhdGVkRGF0YVxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlVGFibGUoe3RhYmxlLCBkYXRhfSkge1xuICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGFibGUudXBkYXRlKGRhdGEpOyAvLyBBc3N1bWluZyBgdGFibGVgIGhhcyBhbiBgdXBkYXRlYCBtZXRob2RcbiAgcmV0dXJuIHVwZGF0ZWQ7XG59XG5cbnR5cGUgQ3JlYXRlVGFibGVQcm9wcyA9IHtcbiAgaW5mbzogYW55O1xuICBjb2xvcjogUkdCQ29sb3I7XG4gIG9wdHM6IHtcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xuICBkYXRhOiBhbnk7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVUYWJsZShkYXRhc2V0SW5mbzogQ3JlYXRlVGFibGVQcm9wcykge1xuICBjb25zdCB7aW5mbywgY29sb3IsIG9wdHMsIGRhdGF9ID0gZGF0YXNldEluZm87XG5cbiAgLy8gdXBkYXRlIG1ldGFkYXRhIGZvciByZW1vdGUgdGlsZWQgZGF0YXNldHNcbiAgY29uc3QgcmVmcmVzaGVkTWV0YWRhdGEgPSBhd2FpdCByZWZyZXNoUmVtb3RlRGF0YShkYXRhc2V0SW5mbyk7XG4gIGxldCBtZXRhZGF0YSA9IG9wdHMubWV0YWRhdGE7XG4gIGlmIChyZWZyZXNoZWRNZXRhZGF0YSkge1xuICAgIG1ldGFkYXRhID0gey4uLm9wdHMubWV0YWRhdGEsIC4uLnJlZnJlc2hlZE1ldGFkYXRhfTtcbiAgICBkYXRhLmZpZWxkcyA9IG1ldGFkYXRhPy5maWVsZHM7XG4gIH1cblxuICBjb25zdCBUYWJsZUNsYXNzID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS50YWJsZSA/PyBLZXBsZXJUYWJsZTtcbiAgY29uc3QgdGFibGUgPSBuZXcgVGFibGVDbGFzcyh7XG4gICAgaW5mbyxcbiAgICBjb2xvcixcbiAgICAuLi5vcHRzLFxuICAgIG1ldGFkYXRhXG4gIH0pO1xuICBhd2FpdCB0YWJsZS5pbXBvcnREYXRhKHtkYXRhfSk7XG5cbiAgcmV0dXJuIHRhYmxlO1xufVxuY29uc3QgVVBEQVRFX1RBQkxFX1RBU0sgPSBUYXNrLmZyb21Qcm9taXNlKHVwZGF0ZVRhYmxlLCAnVVBEQVRFX1RBQkxFX1RBU0snKTtcbmNvbnN0IENSRUFURV9UQUJMRV9UQVNLID0gVGFzay5mcm9tUHJvbWlzZShjcmVhdGVUYWJsZSwgJ0NSRUFURV9UQUJMRV9UQVNLJyk7XG5cbi8qKlxuICogRmV0Y2ggbWV0YWRhdGEgZm9yIHZlY3RvciB0aWxlIGxheWVycyB1c2luZyB0aWxlc2V0TWV0YWRhdGFVcmwgZnJvbSBtZXRhZGF0YVxuICogQHBhcmFtIGRhdGFzZXRJbmZvXG4gKiBAcmV0dXJuc1xuICovXG5hc3luYyBmdW5jdGlvbiByZWZyZXNoUmVtb3RlRGF0YShkYXRhc2V0SW5mbzogQ3JlYXRlVGFibGVQcm9wcykge1xuICAvLyBzbyBmYXIgb25seSB2ZWN0b3IgdGlsZSBsYXllcnMgc2hvdWxkIHJlZnJlc2ggbWV0YWRhdGFcbiAgaWYgKGRhdGFzZXRJbmZvLmluZm8udHlwZSAhPT0gRGF0YXNldFR5cGUuVkVDVE9SX1RJTEUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHtyZW1vdGVUaWxlRm9ybWF0LCB0aWxlc2V0TWV0YWRhdGFVcmwsIHRpbGVzZXREYXRhVXJsfSA9XG4gICAgKGRhdGFzZXRJbmZvLm9wdHMubWV0YWRhdGEgYXMgVmVjdG9yVGlsZURhdGFzZXRNZXRhZGF0YSkgfHwge307XG5cbiAgaWYgKFxuICAgICEocmVtb3RlVGlsZUZvcm1hdCA9PT0gUmVtb3RlVGlsZUZvcm1hdC5QTVRJTEVTIHx8IHJlbW90ZVRpbGVGb3JtYXQgPT09IFJlbW90ZVRpbGVGb3JtYXQuTVZUKSB8fFxuICAgIHR5cGVvZiB0aWxlc2V0TWV0YWRhdGFVcmwgIT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHRpbGVzZXREYXRhVXJsICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgbGV0IHJhd01ldGFkYXRhOiBQTVRpbGVzTWV0YWRhdGEgfCBUaWxlSlNPTiB8IG51bGwgPSBudWxsO1xuICAgIGlmIChyZW1vdGVUaWxlRm9ybWF0ID09PSBSZW1vdGVUaWxlRm9ybWF0Lk1WVCkge1xuICAgICAgcmF3TWV0YWRhdGEgPSBhd2FpdCBnZXRNVlRNZXRhZGF0YSh0aWxlc2V0TWV0YWRhdGFVcmwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0aWxlU291cmNlID0gUE1UaWxlc1NvdXJjZS5jcmVhdGVEYXRhU291cmNlKHRpbGVzZXRNZXRhZGF0YVVybCwge30pO1xuICAgICAgcmF3TWV0YWRhdGEgPSBhd2FpdCB0aWxlU291cmNlLm1ldGFkYXRhO1xuICAgIH1cblxuICAgIGlmIChyYXdNZXRhZGF0YSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBwYXJzZVZlY3Rvck1ldGFkYXRhKHJhd01ldGFkYXRhKTtcblxuICAgICAgYXdhaXQgZ2V0RmllbGRzRnJvbVRpbGUoe1xuICAgICAgICByZW1vdGVUaWxlRm9ybWF0LFxuICAgICAgICB0aWxlc2V0VXJsOiB0aWxlc2V0RGF0YVVybCxcbiAgICAgICAgbWV0YWRhdGFVcmw6IHRpbGVzZXRNZXRhZGF0YVVybCxcbiAgICAgICAgbWV0YWRhdGFcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbWV0YWRhdGE7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBpZ25vcmUgZm9yIG5vdywgYW5kIHVzZSBvbGQgbWV0YWRhdGE/XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBTUEsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBR0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBQUFtRixJQUFBUSxTQUFBLHFCQW5CbkY7QUFDQTtBQUFBLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFB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
@@ -4,4 +4,4 @@ export declare function getNewDatasetColor(datasets: Datasets): RGBColor;
4
4
  /**
5
5
  * Take datasets payload from addDataToMap, create datasets entry save to visState
6
6
  */
7
- export declare function createNewDataEntry({ info, data, ...opts }: ProtoDataset, datasets?: Datasets): Datasets;
7
+ export declare function createNewDataEntry({ info, data, ...opts }: ProtoDataset, datasets?: Datasets): Datasets | null;
@@ -1,7 +1,8 @@
1
1
  import { TileJSON } from '@loaders.gl/mvt';
2
2
  import { PMTilesMetadata } from '@loaders.gl/pmtiles';
3
- import { FilterProps, KeplerTable as KeplerDataset } from '@kepler.gl/table';
3
+ import { RemoteTileFormat } from '@kepler.gl/constants';
4
4
  import { KeplerLayer } from '@kepler.gl/types';
5
+ import { FilterProps, default as KeplerDataset } from '../kepler-table';
5
6
  export declare const getLoaderOptions: () => {
6
7
  mvt: {
7
8
  workerUrl: string;
@@ -72,4 +73,19 @@ export declare function getFilterProps(fieldType: string, attribute: TippecanoeL
72
73
  * @returns Returns true if a dataset can be used as source data for a layer.
73
74
  */
74
75
  export declare function matchDatasetType(dataset: KeplerDataset, layer: KeplerLayer): boolean;
76
+ declare type GetFieldsFromTileProps = {
77
+ remoteTileFormat: RemoteTileFormat;
78
+ tilesetUrl: string | null;
79
+ metadataUrl: string | null;
80
+ metadata: VectorTileMetadata | null;
81
+ };
82
+ /**
83
+ * Extracts fields from a tile and updates the metadata object with found fields.
84
+ * Note: this function is for tilesets that don't include fields in metadata (most likely saved with older spec.).
85
+ * @param params.remoteTileFormat The format of the remote tile (MVT or PMTiles).
86
+ * @param params.tilesetUrl The URL of the tileset.
87
+ * @param params.metadataUrl The URL of the metadata.
88
+ * @param params.metadata The metadata object containing fields and tile properties.
89
+ */
90
+ export declare const getFieldsFromTile: ({ remoteTileFormat, tilesetUrl, metadataUrl, metadata }: GetFieldsFromTileProps) => Promise<void>;
75
91
  export {};