@kepler.gl/deckgl-layers 3.2.6 → 3.3.0-alpha.0

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 (55) hide show
  1. package/dist/3d-building-layer/3d-building-layer.d.ts +3 -3
  2. package/dist/3d-building-layer/3d-building-layer.js +9 -12
  3. package/dist/3d-building-layer/types.d.ts +8 -8
  4. package/dist/cluster-layer/cluster-layer.d.ts +16 -26
  5. package/dist/cluster-layer/cluster-layer.js +19 -30
  6. package/dist/column-layer/enhanced-column-layer.d.ts +4 -4
  7. package/dist/column-layer/enhanced-column-layer.js +39 -35
  8. package/dist/deckgl-extensions/filter-arrow-layer.d.ts +33 -6
  9. package/dist/deckgl-extensions/filter-arrow-layer.js +4 -12
  10. package/dist/deckgl-extensions/filter-shader-module.d.ts +32 -4
  11. package/dist/deckgl-extensions/filter-shader-module.js +3 -4
  12. package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +4906 -6
  13. package/dist/grid-layer/enhanced-cpu-grid-layer.js +46 -44
  14. package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +4903 -4
  15. package/dist/hexagon-layer/enhanced-hexagon-layer.js +61 -41
  16. package/dist/layer-utils/cpu-aggregator.d.ts +74 -27
  17. package/dist/layer-utils/cpu-aggregator.js +224 -19
  18. package/dist/line-layer/line-layer.d.ts +4 -4
  19. package/dist/line-layer/line-layer.js +29 -21
  20. package/dist/raster/images.d.ts +10 -3
  21. package/dist/raster/images.js +154 -60
  22. package/dist/raster/pipeline-validation-patch.d.ts +1 -0
  23. package/dist/raster/pipeline-validation-patch.js +60 -0
  24. package/dist/raster/raster-layer/raster-layer-shaders.d.ts +56 -0
  25. package/dist/raster/raster-layer/raster-layer-shaders.js +129 -0
  26. package/dist/raster/raster-layer/raster-layer.d.ts +6 -6
  27. package/dist/raster/raster-layer/raster-layer.js +100 -79
  28. package/dist/raster/raster-mesh-layer/matrix.d.ts +3 -1
  29. package/dist/raster/raster-mesh-layer/matrix.js +3 -3
  30. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.d.ts +19 -0
  31. package/dist/raster/raster-mesh-layer/raster-mesh-layer-shaders.js +38 -0
  32. package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +7 -6
  33. package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +106 -81
  34. package/dist/raster/types.d.ts +8 -8
  35. package/dist/raster/types.js +1 -1
  36. package/dist/raster/webgl/color/colormap.js +13 -7
  37. package/dist/raster/webgl/color/filter.js +22 -12
  38. package/dist/raster/webgl/color/gamma-contrast.js +9 -3
  39. package/dist/raster/webgl/color/linear-rescale.js +9 -5
  40. package/dist/raster/webgl/color/saturation.js +7 -4
  41. package/dist/raster/webgl/color/sigmoidal-contrast.js +9 -5
  42. package/dist/raster/webgl/pansharpen/pansharpen-brovey.js +7 -4
  43. package/dist/raster/webgl/texture/combine-bands.js +1 -1
  44. package/dist/raster/webgl/texture/mask.js +27 -35
  45. package/dist/raster/webgl/texture/reorder-bands.js +8 -5
  46. package/dist/raster/webgl/texture/rgba-image.js +1 -1
  47. package/dist/raster/webgl/types.d.ts +11 -6
  48. package/dist/raster/webgl/types.js +1 -1
  49. package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +2 -4
  50. package/dist/svg-icon-layer/scatterplot-icon-layer.js +19 -25
  51. package/dist/svg-icon-layer/svg-icon-layer.d.ts +4 -6
  52. package/dist/svg-icon-layer/svg-icon-layer.js +5 -3
  53. package/dist/wms/wms-layer.d.ts +3 -3
  54. package/dist/wms/wms-layer.js +7 -7
  55. package/package.json +14 -13
@@ -1,67 +1,69 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.gridAggregation = exports["default"] = void 0;
7
+ exports["default"] = void 0;
9
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
15
  var _aggregationLayers = require("@deck.gl/aggregation-layers");
15
- var _cpuAggregator = _interopRequireWildcard(require("../layer-utils/cpu-aggregator"));
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
16
+ 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; }
17
+ 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; }
18
18
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
19
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
19
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
20
+ function _superPropGet(t, e, r, o) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & o ? t.prototype : t), e, r); return 2 & o ? function (t) { return p.apply(r, t); } : p; } // SPDX-License-Identifier: MIT
20
21
  // Copyright contributors to the kepler.gl project
21
- var gridAggregation = exports.gridAggregation = {
22
- key: 'position',
23
- updateSteps: [{
24
- key: 'aggregate',
25
- triggers: {
26
- cellSize: {
27
- prop: 'cellSize'
28
- },
29
- position: {
30
- prop: 'getPosition',
31
- updateTrigger: 'getPosition'
32
- },
33
- aggregator: {
34
- prop: 'gridAggregator'
35
- }
36
- },
37
- updater: _cpuAggregator.getAggregatedData
38
- }]
39
- };
40
- var ScaleEnhancedGridLayer = exports["default"] = /*#__PURE__*/function (_CPUGridLayer) {
22
+ /**
23
+ * In deck.gl 9, GridLayer natively supports CPU aggregation via gpuAggregation: false,
24
+ * custom getColorValue/getElevationValue accessors, percentile filtering, and scale types.
25
+ * The custom CPUAggregator override from deck.gl 8 is no longer needed.
26
+ *
27
+ * We override getPickingInfo to add `cellOutline` — an array of [lng, lat] coordinates
28
+ * computed in common space so the outline aligns with rendered cells at all latitudes.
29
+ */
30
+ var ScaleEnhancedGridLayer = exports["default"] = /*#__PURE__*/function (_GridLayer) {
41
31
  function ScaleEnhancedGridLayer() {
42
32
  (0, _classCallCheck2["default"])(this, ScaleEnhancedGridLayer);
43
33
  return _callSuper(this, ScaleEnhancedGridLayer, arguments);
44
34
  }
45
- (0, _inherits2["default"])(ScaleEnhancedGridLayer, _CPUGridLayer);
35
+ (0, _inherits2["default"])(ScaleEnhancedGridLayer, _GridLayer);
46
36
  return (0, _createClass2["default"])(ScaleEnhancedGridLayer, [{
47
- key: "initializeState",
48
- value: function initializeState() {
49
- var cpuAggregator = new _cpuAggregator["default"]({
50
- aggregation: gridAggregation
51
- });
52
- this.state = {
53
- cpuAggregator: cpuAggregator,
54
- aggregatorState: cpuAggregator.state
55
- };
56
- var attributeManager = this.getAttributeManager();
57
- attributeManager.add({
58
- positions: {
59
- size: 3,
60
- accessor: 'getPosition'
37
+ key: "getPickingInfo",
38
+ value: function getPickingInfo(params) {
39
+ var info = _superPropGet(ScaleEnhancedGridLayer, "getPickingInfo", this, 3)([params]);
40
+ if (info.object) {
41
+ var _this$props$coverage;
42
+ var _ref = this.state,
43
+ cellOriginCommon = _ref.cellOriginCommon,
44
+ cellSizeCommon = _ref.cellSizeCommon,
45
+ aggregatorViewport = _ref.aggregatorViewport;
46
+ var coverage = (_this$props$coverage = this.props.coverage) !== null && _this$props$coverage !== void 0 ? _this$props$coverage : 1;
47
+ if (!cellOriginCommon || !cellSizeCommon || !aggregatorViewport) {
48
+ console.error('ScaleEnhancedGridLayer: expected internal state properties ' + '(cellOriginCommon, cellSizeCommon, aggregatorViewport) are missing. ' + 'Hover outline will not be shown. This may indicate a deck.gl version change.');
49
+ return info;
61
50
  }
62
- });
51
+ var _ref2 = info.object,
52
+ col = _ref2.col,
53
+ row = _ref2.row;
54
+ if (typeof col !== 'number' || typeof row !== 'number') return info;
55
+ var cx = (col + 0.5) * cellSizeCommon[0] + cellOriginCommon[0];
56
+ var cy = (row + 0.5) * cellSizeCommon[1] + cellOriginCommon[1];
57
+ var hw = 0.5 * coverage * cellSizeCommon[0];
58
+ var hh = 0.5 * coverage * cellSizeCommon[1];
59
+ info.object.cellOutline = [aggregatorViewport.unprojectFlat([cx - hw, cy - hh]), aggregatorViewport.unprojectFlat([cx + hw, cy - hh]), aggregatorViewport.unprojectFlat([cx + hw, cy + hh]), aggregatorViewport.unprojectFlat([cx - hw, cy + hh]), aggregatorViewport.unprojectFlat([cx - hw, cy - hh])];
60
+ }
61
+ return info;
63
62
  }
64
63
  }]);
65
- }(_aggregationLayers.CPUGridLayer);
64
+ }(_aggregationLayers.GridLayer);
65
+ (0, _defineProperty2["default"])(ScaleEnhancedGridLayer, "defaultProps", _objectSpread(_objectSpread({}, _aggregationLayers.GridLayer.defaultProps), {}, {
66
+ gpuAggregation: false
67
+ }));
66
68
  ScaleEnhancedGridLayer.layerName = 'ScaleEnhancedGridLayer';
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwiX2NwdUFnZ3JlZ2F0b3IiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZ3JpZEFnZ3JlZ2F0aW9uIiwiZXhwb3J0cyIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJjZWxsU2l6ZSIsInByb3AiLCJwb3NpdGlvbiIsInVwZGF0ZVRyaWdnZXIiLCJhZ2dyZWdhdG9yIiwidXBkYXRlciIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiU2NhbGVFbmhhbmNlZEdyaWRMYXllciIsIl9DUFVHcmlkTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJ2YWx1ZSIsImluaXRpYWxpemVTdGF0ZSIsImNwdUFnZ3JlZ2F0b3IiLCJDUFVBZ2dyZWdhdG9yIiwiYWdncmVnYXRpb24iLCJzdGF0ZSIsImFnZ3JlZ2F0b3JTdGF0ZSIsImF0dHJpYnV0ZU1hbmFnZXIiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiYWRkIiwicG9zaXRpb25zIiwic2l6ZSIsImFjY2Vzc29yIiwiQ1BVR3JpZExheWVyIiwibGF5ZXJOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dyaWQtbGF5ZXIvZW5oYW5jZWQtY3B1LWdyaWQtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtDUFVHcmlkTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5pbXBvcnQgQ1BVQWdncmVnYXRvciwge0FnZ3JlZ2F0aW9uVHlwZSwgZ2V0QWdncmVnYXRlZERhdGF9IGZyb20gJy4uL2xheWVyLXV0aWxzL2NwdS1hZ2dyZWdhdG9yJztcblxuZXhwb3J0IGNvbnN0IGdyaWRBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnYWdncmVnYXRlJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNlbGxTaXplOiB7XG4gICAgICAgICAgcHJvcDogJ2NlbGxTaXplJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2dyaWRBZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgZXh0ZW5kcyBDUFVHcmlkTGF5ZXI8YW55PiB7XG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCBjcHVBZ2dyZWdhdG9yID0gbmV3IENQVUFnZ3JlZ2F0b3Ioe1xuICAgICAgYWdncmVnYXRpb246IGdyaWRBZ2dyZWdhdGlvblxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxufVxuXG5TY2FsZUVuaGFuY2VkR3JpZExheWVyLmxheWVyTmFtZSA9ICdTY2FsZUVuaGFuY2VkR3JpZExheWVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLGtCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFBZ0csU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFGLHdCQUFBRSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtB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
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWdncmVnYXRpb25MYXllcnMiLCJyZXF1aXJlIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiU2NhbGVFbmhhbmNlZEdyaWRMYXllciIsImV4cG9ydHMiLCJfR3JpZExheWVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJnZXRQaWNraW5nSW5mbyIsInBhcmFtcyIsImluZm8iLCJvYmplY3QiLCJfdGhpcyRwcm9wcyRjb3ZlcmFnZSIsIl9yZWYiLCJzdGF0ZSIsImNlbGxPcmlnaW5Db21tb24iLCJjZWxsU2l6ZUNvbW1vbiIsImFnZ3JlZ2F0b3JWaWV3cG9ydCIsImNvdmVyYWdlIiwicHJvcHMiLCJjb25zb2xlIiwiZXJyb3IiLCJfcmVmMiIsImNvbCIsInJvdyIsImN4IiwiY3kiLCJodyIsImhoIiwiY2VsbE91dGxpbmUiLCJ1bnByb2plY3RGbGF0IiwiR3JpZExheWVyIiwiZGVmYXVsdFByb3BzIiwiZ3B1QWdncmVnYXRpb24iLCJsYXllck5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ3JpZC1sYXllci9lbmhhbmNlZC1jcHUtZ3JpZC1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0dyaWRMYXllciwgR3JpZExheWVyUGlja2luZ0luZm99IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5pbXBvcnQge0dldFBpY2tpbmdJbmZvUGFyYW1zLCBQaWNraW5nSW5mbywgVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG5pbnRlcmZhY2UgR3JpZEludGVybmFsU3RhdGUge1xuICBjZWxsT3JpZ2luQ29tbW9uPzogW251bWJlciwgbnVtYmVyXTtcbiAgY2VsbFNpemVDb21tb24/OiBbbnVtYmVyLCBudW1iZXJdO1xuICBhZ2dyZWdhdG9yVmlld3BvcnQ/OiBWaWV3cG9ydCAmIHt1bnByb2plY3RGbGF0KHh5OiBudW1iZXJbXSk6IG51bWJlcltdfTtcbn1cblxuaW50ZXJmYWNlIEdyaWRQaWNraW5nT2JqZWN0IHtcbiAgY29sOiBudW1iZXI7XG4gIHJvdzogbnVtYmVyO1xuICBjZWxsT3V0bGluZT86IG51bWJlcltdW107XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKlxuICogSW4gZGVjay5nbCA5LCBHcmlkTGF5ZXIgbmF0aXZlbHkgc3VwcG9ydHMgQ1BVIGFnZ3JlZ2F0aW9uIHZpYSBncHVBZ2dyZWdhdGlvbjogZmFsc2UsXG4gKiBjdXN0b20gZ2V0Q29sb3JWYWx1ZS9nZXRFbGV2YXRpb25WYWx1ZSBhY2Nlc3NvcnMsIHBlcmNlbnRpbGUgZmlsdGVyaW5nLCBhbmQgc2NhbGUgdHlwZXMuXG4gKiBUaGUgY3VzdG9tIENQVUFnZ3JlZ2F0b3Igb3ZlcnJpZGUgZnJvbSBkZWNrLmdsIDggaXMgbm8gbG9uZ2VyIG5lZWRlZC5cbiAqXG4gKiBXZSBvdmVycmlkZSBnZXRQaWNraW5nSW5mbyB0byBhZGQgYGNlbGxPdXRsaW5lYCDigJQgYW4gYXJyYXkgb2YgW2xuZywgbGF0XSBjb29yZGluYXRlc1xuICogY29tcHV0ZWQgaW4gY29tbW9uIHNwYWNlIHNvIHRoZSBvdXRsaW5lIGFsaWducyB3aXRoIHJlbmRlcmVkIGNlbGxzIGF0IGFsbCBsYXRpdHVkZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIgZXh0ZW5kcyBHcmlkTGF5ZXI8YW55PiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgLi4uR3JpZExheWVyLmRlZmF1bHRQcm9wcyxcbiAgICBncHVBZ2dyZWdhdGlvbjogZmFsc2VcbiAgfTtcblxuICBnZXRQaWNraW5nSW5mbyhwYXJhbXM6IEdldFBpY2tpbmdJbmZvUGFyYW1zKTogUGlja2luZ0luZm8ge1xuICAgIGNvbnN0IGluZm8gPSBzdXBlci5nZXRQaWNraW5nSW5mbyhwYXJhbXMpIGFzIEdyaWRMYXllclBpY2tpbmdJbmZvPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgICBpZiAoaW5mby5vYmplY3QpIHtcbiAgICAgIGNvbnN0IHtjZWxsT3JpZ2luQ29tbW9uLCBjZWxsU2l6ZUNvbW1vbiwgYWdncmVnYXRvclZpZXdwb3J0fSA9IHRoaXNcbiAgICAgICAgLnN0YXRlIGFzIHVua25vd24gYXMgR3JpZEludGVybmFsU3RhdGU7XG4gICAgICBjb25zdCBjb3ZlcmFnZSA9IHRoaXMucHJvcHMuY292ZXJhZ2UgPz8gMTtcbiAgICAgIGlmICghY2VsbE9yaWdpbkNvbW1vbiB8fCAhY2VsbFNpemVDb21tb24gfHwgIWFnZ3JlZ2F0b3JWaWV3cG9ydCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdTY2FsZUVuaGFuY2VkR3JpZExheWVyOiBleHBlY3RlZCBpbnRlcm5hbCBzdGF0ZSBwcm9wZXJ0aWVzICcgK1xuICAgICAgICAgICAgJyhjZWxsT3JpZ2luQ29tbW9uLCBjZWxsU2l6ZUNvbW1vbiwgYWdncmVnYXRvclZpZXdwb3J0KSBhcmUgbWlzc2luZy4gJyArXG4gICAgICAgICAgICAnSG92ZXIgb3V0bGluZSB3aWxsIG5vdCBiZSBzaG93bi4gVGhpcyBtYXkgaW5kaWNhdGUgYSBkZWNrLmdsIHZlcnNpb24gY2hhbmdlLidcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9XG4gICAgICBjb25zdCB7Y29sLCByb3d9ID0gaW5mby5vYmplY3QgYXMgR3JpZFBpY2tpbmdPYmplY3Q7XG4gICAgICBpZiAodHlwZW9mIGNvbCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHJvdyAhPT0gJ251bWJlcicpIHJldHVybiBpbmZvO1xuICAgICAgY29uc3QgY3ggPSAoY29sICsgMC41KSAqIGNlbGxTaXplQ29tbW9uWzBdICsgY2VsbE9yaWdpbkNvbW1vblswXTtcbiAgICAgIGNvbnN0IGN5ID0gKHJvdyArIDAuNSkgKiBjZWxsU2l6ZUNvbW1vblsxXSArIGNlbGxPcmlnaW5Db21tb25bMV07XG4gICAgICBjb25zdCBodyA9IDAuNSAqIGNvdmVyYWdlICogY2VsbFNpemVDb21tb25bMF07XG4gICAgICBjb25zdCBoaCA9IDAuNSAqIGNvdmVyYWdlICogY2VsbFNpemVDb21tb25bMV07XG5cbiAgICAgIChpbmZvLm9iamVjdCBhcyBHcmlkUGlja2luZ09iamVjdCkuY2VsbE91dGxpbmUgPSBbXG4gICAgICAgIGFnZ3JlZ2F0b3JWaWV3cG9ydC51bnByb2plY3RGbGF0KFtjeCAtIGh3LCBjeSAtIGhoXSksXG4gICAgICAgIGFnZ3JlZ2F0b3JWaWV3cG9ydC51bnByb2plY3RGbGF0KFtjeCArIGh3LCBjeSAtIGhoXSksXG4gICAgICAgIGFnZ3JlZ2F0b3JWaWV3cG9ydC51bnByb2plY3RGbGF0KFtjeCArIGh3LCBjeSArIGhoXSksXG4gICAgICAgIGFnZ3JlZ2F0b3JWaWV3cG9ydC51bnByb2plY3RGbGF0KFtjeCAtIGh3LCBjeSArIGhoXSksXG4gICAgICAgIGFnZ3JlZ2F0b3JWaWV3cG9ydC51bnByb2plY3RGbGF0KFtjeCAtIGh3LCBjeSAtIGhoXSlcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBpbmZvO1xuICB9XG59XG5cblNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIubGF5ZXJOYW1lID0gJ1NjYWxlRW5oYW5jZWRHcmlkTGF5ZXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLGtCQUFBLEdBQUFDLE9BQUE7QUFBNEUsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFB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