@kepler.gl/deckgl-layers 3.1.0-alpha.1 → 3.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-building-layer/3d-building-layer.d.ts +16 -0
- package/dist/3d-building-layer/3d-building-layer.js +69 -0
- package/dist/3d-building-layer/3d-building-utils.d.ts +9 -0
- package/dist/3d-building-layer/3d-building-utils.js +166 -0
- package/dist/3d-building-layer/types.d.ts +51 -0
- package/dist/3d-building-layer/types.js +6 -0
- package/dist/cluster-layer/cluster-layer.d.ts +44 -0
- package/dist/cluster-layer/cluster-layer.js +297 -0
- package/dist/column-layer/enhanced-column-layer.d.ts +12 -0
- package/dist/column-layer/enhanced-column-layer.js +131 -0
- package/dist/deckgl-extensions/filter-arrow-layer.d.ts +42 -0
- package/dist/deckgl-extensions/filter-arrow-layer.js +76 -0
- package/dist/deckgl-extensions/filter-shader-module.d.ts +16 -0
- package/dist/deckgl-extensions/filter-shader-module.js +27 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +7 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +67 -0
- package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +7 -0
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +67 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +109 -0
- package/dist/layer-utils/cluster-utils.d.ts +22 -0
- package/dist/layer-utils/cluster-utils.js +93 -0
- package/dist/layer-utils/cpu-aggregator.d.ts +93 -0
- package/dist/layer-utils/cpu-aggregator.js +582 -0
- package/dist/layer-utils/shader-utils.d.ts +1 -0
- package/dist/layer-utils/shader-utils.js +29 -0
- package/dist/line-layer/line-layer.d.ts +12 -0
- package/dist/line-layer/line-layer.js +87 -0
- package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +9 -0
- package/dist/svg-icon-layer/scatterplot-icon-layer.js +57 -0
- package/dist/svg-icon-layer/svg-icon-layer.d.ts +22 -0
- package/dist/svg-icon-layer/svg-icon-layer.js +102 -0
- package/package.json +6 -5
@@ -0,0 +1,297 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports["default"] = exports.clusterAggregation = void 0;
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
15
|
+
var _layers = require("@deck.gl/layers");
|
16
|
+
var _aggregationLayers = require("@deck.gl/aggregation-layers");
|
17
|
+
var _geoViewport = _interopRequireDefault(require("@mapbox/geo-viewport"));
|
18
|
+
var _cpuAggregator = _interopRequireWildcard(require("../layer-utils/cpu-aggregator"));
|
19
|
+
var _viewportMercatorProject = require("viewport-mercator-project");
|
20
|
+
var _d3Array = require("d3-array");
|
21
|
+
var _constants = require("@kepler.gl/constants");
|
22
|
+
var _clusterUtils = _interopRequireWildcard(require("../layer-utils/cluster-utils"));
|
23
|
+
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); }
|
24
|
+
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; }
|
25
|
+
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; }
|
26
|
+
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; }
|
27
|
+
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)); }
|
28
|
+
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
|
29
|
+
// Copyright contributors to the kepler.gl project
|
30
|
+
var defaultRadius = _constants.LAYER_VIS_CONFIGS.clusterRadius.defaultValue;
|
31
|
+
var defaultRadiusRange = _constants.LAYER_VIS_CONFIGS.clusterRadiusRange.defaultValue;
|
32
|
+
var defaultGetColorValue = function defaultGetColorValue(points) {
|
33
|
+
return points.length;
|
34
|
+
};
|
35
|
+
var defaultGetRadiusValue = function defaultGetRadiusValue(cell) {
|
36
|
+
return cell.filteredPoints ? cell.filteredPoints.length : cell.points.length;
|
37
|
+
};
|
38
|
+
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
40
|
+
function processGeoJSON(step, props, aggregation, _ref) {
|
41
|
+
var viewport = _ref.viewport;
|
42
|
+
var data = props.data,
|
43
|
+
getPosition = props.getPosition,
|
44
|
+
filterData = props.filterData;
|
45
|
+
var geoJSON = (0, _clusterUtils.getGeoJSON)(data, getPosition, filterData);
|
46
|
+
var clusterBuilder = new _clusterUtils["default"]();
|
47
|
+
this.setState({
|
48
|
+
geoJSON: geoJSON,
|
49
|
+
clusterBuilder: clusterBuilder
|
50
|
+
});
|
51
|
+
}
|
52
|
+
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
54
|
+
function getClusters(step, props, aggregation, _ref2) {
|
55
|
+
var viewport = _ref2.viewport;
|
56
|
+
var _this$state = this.state,
|
57
|
+
geoJSON = _this$state.geoJSON,
|
58
|
+
clusterBuilder = _this$state.clusterBuilder;
|
59
|
+
var clusterRadius = props.clusterRadius,
|
60
|
+
zoom = props.zoom,
|
61
|
+
width = props.width,
|
62
|
+
height = props.height;
|
63
|
+
var longitude = viewport.longitude,
|
64
|
+
latitude = viewport.latitude;
|
65
|
+
|
66
|
+
// zoom needs to be an integer for the different map utils. Also helps with cache key.
|
67
|
+
var bbox = _geoViewport["default"].bounds([longitude, latitude], zoom, [width, height]);
|
68
|
+
var clusters = clusterBuilder.clustersAtZoom({
|
69
|
+
bbox: bbox,
|
70
|
+
clusterRadius: clusterRadius,
|
71
|
+
geoJSON: geoJSON,
|
72
|
+
zoom: zoom
|
73
|
+
});
|
74
|
+
this.setState({
|
75
|
+
layerData: {
|
76
|
+
data: clusters
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}
|
80
|
+
function getSubLayerRadius(dimensionState, dimension, layerProps) {
|
81
|
+
return function (cell) {
|
82
|
+
var getRadiusValue = layerProps.getRadiusValue;
|
83
|
+
var scaleFunc = dimensionState.scaleFunc;
|
84
|
+
return scaleFunc(getRadiusValue(cell));
|
85
|
+
};
|
86
|
+
}
|
87
|
+
var clusterAggregation = exports.clusterAggregation = {
|
88
|
+
key: 'position',
|
89
|
+
updateSteps: [{
|
90
|
+
key: 'geojson',
|
91
|
+
triggers: {
|
92
|
+
position: {
|
93
|
+
prop: 'getPosition',
|
94
|
+
updateTrigger: 'getPosition'
|
95
|
+
},
|
96
|
+
filterData: {
|
97
|
+
prop: 'filterData',
|
98
|
+
updateTrigger: 'filterData'
|
99
|
+
}
|
100
|
+
},
|
101
|
+
updater: processGeoJSON
|
102
|
+
}, {
|
103
|
+
key: 'clustering',
|
104
|
+
triggers: {
|
105
|
+
clusterRadius: {
|
106
|
+
prop: 'clusterRadius'
|
107
|
+
},
|
108
|
+
zoom: {
|
109
|
+
prop: 'zoom'
|
110
|
+
},
|
111
|
+
width: {
|
112
|
+
prop: 'width'
|
113
|
+
},
|
114
|
+
height: {
|
115
|
+
prop: 'height'
|
116
|
+
}
|
117
|
+
},
|
118
|
+
updater: getClusters
|
119
|
+
}]
|
120
|
+
};
|
121
|
+
function getRadiusValueDomain(step, props, dimensionUpdater) {
|
122
|
+
var key = dimensionUpdater.key;
|
123
|
+
var getRadiusValue = props.getRadiusValue;
|
124
|
+
var layerData = this.state.layerData;
|
125
|
+
var valueDomain = [0, (0, _d3Array.max)(layerData.data, getRadiusValue)];
|
126
|
+
this._setDimensionState(key, {
|
127
|
+
valueDomain: valueDomain
|
128
|
+
});
|
129
|
+
}
|
130
|
+
var clusterLayerDimensions = [_cpuAggregator.defaultColorDimension, {
|
131
|
+
key: 'radius',
|
132
|
+
accessor: 'getRadius',
|
133
|
+
nullValue: 0,
|
134
|
+
updateSteps: [{
|
135
|
+
key: 'getDomain',
|
136
|
+
triggers: {
|
137
|
+
value: {
|
138
|
+
prop: 'getRadiusValue',
|
139
|
+
updateTrigger: 'getRadiusValue'
|
140
|
+
}
|
141
|
+
},
|
142
|
+
updater: getRadiusValueDomain
|
143
|
+
}, {
|
144
|
+
key: 'getScaleFunc',
|
145
|
+
triggers: {
|
146
|
+
domain: {
|
147
|
+
prop: 'radiusDomain'
|
148
|
+
},
|
149
|
+
range: {
|
150
|
+
prop: 'radiusRange'
|
151
|
+
},
|
152
|
+
scaleType: {
|
153
|
+
prop: 'radiusScaleType'
|
154
|
+
}
|
155
|
+
},
|
156
|
+
updater: _cpuAggregator.getDimensionScale
|
157
|
+
}],
|
158
|
+
getSubLayerAccessor: getSubLayerRadius,
|
159
|
+
getPickingInfo: function getPickingInfo(dimensionState, cell, layerProps) {
|
160
|
+
var radiusValue = layerProps.getRadiusValue(cell);
|
161
|
+
return {
|
162
|
+
radiusValue: radiusValue
|
163
|
+
};
|
164
|
+
}
|
165
|
+
}];
|
166
|
+
var defaultProps = {
|
167
|
+
clusterRadius: defaultRadius,
|
168
|
+
colorDomain: null,
|
169
|
+
colorRange: _constants.DEFAULT_COLOR_RANGE,
|
170
|
+
colorScaleType: _constants.SCALE_TYPES.quantize,
|
171
|
+
radiusScaleType: _constants.SCALE_TYPES.sqrt,
|
172
|
+
radiusRange: defaultRadiusRange,
|
173
|
+
getPosition: {
|
174
|
+
type: 'accessor',
|
175
|
+
value: function value(x) {
|
176
|
+
return x.position;
|
177
|
+
}
|
178
|
+
},
|
179
|
+
getColorValue: {
|
180
|
+
type: 'accessor',
|
181
|
+
value: defaultGetColorValue
|
182
|
+
},
|
183
|
+
getRadiusValue: {
|
184
|
+
type: 'accessor',
|
185
|
+
value: defaultGetRadiusValue
|
186
|
+
}
|
187
|
+
};
|
188
|
+
var ClusterLayer = exports["default"] = /*#__PURE__*/function (_AggregationLayer) {
|
189
|
+
function ClusterLayer() {
|
190
|
+
(0, _classCallCheck2["default"])(this, ClusterLayer);
|
191
|
+
return _callSuper(this, ClusterLayer, arguments);
|
192
|
+
}
|
193
|
+
(0, _inherits2["default"])(ClusterLayer, _AggregationLayer);
|
194
|
+
return (0, _createClass2["default"])(ClusterLayer, [{
|
195
|
+
key: "initializeState",
|
196
|
+
value: function initializeState() {
|
197
|
+
var cpuAggregator = new _cpuAggregator["default"]({
|
198
|
+
aggregation: clusterAggregation,
|
199
|
+
dimensions: clusterLayerDimensions
|
200
|
+
});
|
201
|
+
this.state = {
|
202
|
+
cpuAggregator: cpuAggregator,
|
203
|
+
aggregatorState: cpuAggregator.state
|
204
|
+
};
|
205
|
+
var attributeManager = this.getAttributeManager();
|
206
|
+
attributeManager.add({
|
207
|
+
positions: {
|
208
|
+
size: 3,
|
209
|
+
accessor: 'getPosition'
|
210
|
+
}
|
211
|
+
});
|
212
|
+
}
|
213
|
+
}, {
|
214
|
+
key: "updateState",
|
215
|
+
value: function updateState(_ref3) {
|
216
|
+
var oldProps = _ref3.oldProps,
|
217
|
+
props = _ref3.props,
|
218
|
+
changeFlags = _ref3.changeFlags;
|
219
|
+
this.setState({
|
220
|
+
// make a copy of the internal state of cpuAggregator for testing
|
221
|
+
aggregatorState: this.state.cpuAggregator.updateState({
|
222
|
+
oldProps: oldProps,
|
223
|
+
props: props,
|
224
|
+
changeFlags: changeFlags
|
225
|
+
}, {
|
226
|
+
viewport: this.context.viewport,
|
227
|
+
attributes: this.getAttributes(),
|
228
|
+
numInstances: this.getNumInstances(props)
|
229
|
+
})
|
230
|
+
});
|
231
|
+
}
|
232
|
+
}, {
|
233
|
+
key: "getPickingInfo",
|
234
|
+
value: function getPickingInfo(_ref4) {
|
235
|
+
var info = _ref4.info;
|
236
|
+
return this.state.cpuAggregator.getPickingInfo({
|
237
|
+
info: info
|
238
|
+
}, this.props);
|
239
|
+
}
|
240
|
+
}, {
|
241
|
+
key: "_getSublayerUpdateTriggers",
|
242
|
+
value: function _getSublayerUpdateTriggers() {
|
243
|
+
return this.state.cpuAggregator.getUpdateTriggers(this.props);
|
244
|
+
}
|
245
|
+
}, {
|
246
|
+
key: "_getSubLayerAccessors",
|
247
|
+
value: function _getSubLayerAccessors() {
|
248
|
+
return {
|
249
|
+
getRadius: this.state.cpuAggregator.getAccessor('radius', this.props),
|
250
|
+
getFillColor: this.state.cpuAggregator.getAccessor('fillColor', this.props)
|
251
|
+
};
|
252
|
+
}
|
253
|
+
}, {
|
254
|
+
key: "renderLayers",
|
255
|
+
value: function renderLayers() {
|
256
|
+
// for subclassing, override this method to return
|
257
|
+
// customized sub layer props
|
258
|
+
var _this$props = this.props,
|
259
|
+
id = _this$props.id,
|
260
|
+
radiusScale = _this$props.radiusScale;
|
261
|
+
var cpuAggregator = this.state.cpuAggregator;
|
262
|
+
|
263
|
+
// base layer props
|
264
|
+
var _this$props2 = this.props,
|
265
|
+
visible = _this$props2.visible,
|
266
|
+
opacity = _this$props2.opacity,
|
267
|
+
pickable = _this$props2.pickable,
|
268
|
+
autoHighlight = _this$props2.autoHighlight,
|
269
|
+
highlightColor = _this$props2.highlightColor;
|
270
|
+
var updateTriggers = this._getSublayerUpdateTriggers();
|
271
|
+
var accessors = this._getSubLayerAccessors();
|
272
|
+
|
273
|
+
// @ts-expect-error
|
274
|
+
var distanceScale = (0, _viewportMercatorProject.getDistanceScales)(this.context.viewport);
|
275
|
+
var metersPerPixel = distanceScale.metersPerPixel[0];
|
276
|
+
|
277
|
+
// return props to the sublayer constructor
|
278
|
+
return new _layers.ScatterplotLayer(_objectSpread({
|
279
|
+
id: "".concat(id, "-cluster"),
|
280
|
+
data: cpuAggregator.state.layerData.data,
|
281
|
+
radiusScale: metersPerPixel * radiusScale,
|
282
|
+
visible: visible,
|
283
|
+
opacity: opacity,
|
284
|
+
pickable: pickable,
|
285
|
+
autoHighlight: autoHighlight,
|
286
|
+
highlightColor: highlightColor,
|
287
|
+
updateTriggers: updateTriggers,
|
288
|
+
parameters: {
|
289
|
+
depthMask: false
|
290
|
+
}
|
291
|
+
}, accessors));
|
292
|
+
}
|
293
|
+
}]);
|
294
|
+
}(_aggregationLayers._AggregationLayer);
|
295
|
+
ClusterLayer.layerName = 'ClusterLayer';
|
296
|
+
ClusterLayer.defaultProps = defaultProps;
|
297
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl9hZ2dyZWdhdGlvbkxheWVycyIsIl9nZW9WaWV3cG9ydCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY3B1QWdncmVnYXRvciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3ZpZXdwb3J0TWVyY2F0b3JQcm9qZWN0IiwiX2QzQXJyYXkiLCJfY29uc3RhbnRzIiwiX2NsdXN0ZXJVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsIl9yZWYiLCJ2aWV3cG9ydCIsImRhdGEiLCJnZXRQb3NpdGlvbiIsImZpbHRlckRhdGEiLCJnZW9KU09OIiwiZ2V0R2VvSlNPTiIsImNsdXN0ZXJCdWlsZGVyIiwiQ2x1c3RlckJ1aWxkZXIiLCJzZXRTdGF0ZSIsImdldENsdXN0ZXJzIiwiX3JlZjIiLCJfdGhpcyRzdGF0ZSIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImV4cG9ydHMiLCJrZXkiLCJ1cGRhdGVTdGVwcyIsInRyaWdnZXJzIiwicG9zaXRpb24iLCJwcm9wIiwidXBkYXRlVHJpZ2dlciIsInVwZGF0ZXIiLCJnZXRSYWRpdXNWYWx1ZURvbWFpbiIsImRpbWVuc2lvblVwZGF0ZXIiLCJ2YWx1ZURvbWFpbiIsIm1heCIsIl9zZXREaW1lbnNpb25TdGF0ZSIsImNsdXN0ZXJMYXllckRpbWVuc2lvbnMiLCJkZWZhdWx0Q29sb3JEaW1lbnNpb24iLCJhY2Nlc3NvciIsIm51bGxWYWx1ZSIsInZhbHVlIiwiZG9tYWluIiwicmFuZ2UiLCJzY2FsZVR5cGUiLCJnZXREaW1lbnNpb25TY2FsZSIsImdldFN1YkxheWVyQWNjZXNzb3IiLCJnZXRQaWNraW5nSW5mbyIsInJhZGl1c1ZhbHVlIiwiZGVmYXVsdFByb3BzIiwiY29sb3JEb21haW4iLCJjb2xvclJhbmdlIiwiREVGQVVMVF9DT0xPUl9SQU5HRSIsImNvbG9yU2NhbGVUeXBlIiwiU0NBTEVfVFlQRVMiLCJxdWFudGl6ZSIsInJhZGl1c1NjYWxlVHlwZSIsInNxcnQiLCJyYWRpdXNSYW5nZSIsInR5cGUiLCJ4IiwiZ2V0Q29sb3JWYWx1ZSIsIkNsdXN0ZXJMYXllciIsIl9BZ2dyZWdhdGlvbkxheWVyIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiaW5pdGlhbGl6ZVN0YXRlIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwidXBkYXRlU3RhdGUiLCJfcmVmMyIsIm9sZFByb3BzIiwiY2hhbmdlRmxhZ3MiLCJjb250ZXh0IiwiYXR0cmlidXRlcyIsImdldEF0dHJpYnV0ZXMiLCJudW1JbnN0YW5jZXMiLCJnZXROdW1JbnN0YW5jZXMiLCJfcmVmNCIsImluZm8iLCJfZ2V0U3VibGF5ZXJVcGRhdGVUcmlnZ2VycyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YkxheWVyQWNjZXNzb3JzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJyZW5kZXJMYXllcnMiLCJfdGhpcyRwcm9wcyIsImlkIiwicmFkaXVzU2NhbGUiLCJfdGhpcyRwcm9wczIiLCJ2aXNpYmxlIiwib3BhY2l0eSIsInBpY2thYmxlIiwiYXV0b0hpZ2hsaWdodCIsImhpZ2hsaWdodENvbG9yIiwidXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsIlNjYXR0ZXJwbG90TGF5ZXIiLCJjb25jYXQiLCJwYXJhbWV0ZXJzIiwiZGVwdGhNYXNrIiwiQWdncmVnYXRpb25MYXllciIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtTY2F0dGVycGxvdExheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHtfQWdncmVnYXRpb25MYXllciBhcyBBZ2dyZWdhdGlvbkxheWVyfSBmcm9tICdAZGVjay5nbC9hZ2dyZWdhdGlvbi1sYXllcnMnO1xuXG5pbXBvcnQgZ2VvVmlld3BvcnQgZnJvbSAnQG1hcGJveC9nZW8tdmlld3BvcnQnO1xuaW1wb3J0IENQVUFnZ3JlZ2F0b3IsIHtcbiAgQWdncmVnYXRpb25UeXBlLFxuICBkZWZhdWx0Q29sb3JEaW1lbnNpb24sXG4gIERpbWVuc2lvblR5cGUsXG4gIGdldERpbWVuc2lvblNjYWxlXG59IGZyb20gJy4uL2xheWVyLXV0aWxzL2NwdS1hZ2dyZWdhdG9yJztcbmltcG9ydCB7Z2V0RGlzdGFuY2VTY2FsZXN9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHttYXh9IGZyb20gJ2QzLWFycmF5JztcblxuaW1wb3J0IHtTQ0FMRV9UWVBFUywgREVGQVVMVF9DT0xPUl9SQU5HRSwgTEFZRVJfVklTX0NPTkZJR1N9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCBDbHVzdGVyQnVpbGRlciwge2dldEdlb0pTT059IGZyb20gJy4uL2xheWVyLXV0aWxzL2NsdXN0ZXItdXRpbHMnO1xuaW1wb3J0IHtSR0JBQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvbkxheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycy9hZ2dyZWdhdGlvbi1sYXllcic7XG5cbmNvbnN0IGRlZmF1bHRSYWRpdXMgPSBMQVlFUl9WSVNfQ09ORklHUy5jbHVzdGVyUmFkaXVzLmRlZmF1bHRWYWx1ZTtcbmNvbnN0IGRlZmF1bHRSYWRpdXNSYW5nZSA9IExBWUVSX1ZJU19DT05GSUdTLmNsdXN0ZXJSYWRpdXNSYW5nZS5kZWZhdWx0VmFsdWU7XG5cbmNvbnN0IGRlZmF1bHRHZXRDb2xvclZhbHVlID0gcG9pbnRzID0+IHBvaW50cy5sZW5ndGg7XG5jb25zdCBkZWZhdWx0R2V0UmFkaXVzVmFsdWUgPSBjZWxsID0+XG4gIGNlbGwuZmlsdGVyZWRQb2ludHMgPyBjZWxsLmZpbHRlcmVkUG9pbnRzLmxlbmd0aCA6IGNlbGwucG9pbnRzLmxlbmd0aDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZnVuY3Rpb24gcHJvY2Vzc0dlb0pTT04odGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGFnZ3JlZ2F0aW9uLCB7dmlld3BvcnR9KSB7XG4gIGNvbnN0IHtkYXRhLCBnZXRQb3NpdGlvbiwgZmlsdGVyRGF0YX0gPSBwcm9wcztcbiAgY29uc3QgZ2VvSlNPTiA9IGdldEdlb0pTT04oZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGEpO1xuICBjb25zdCBjbHVzdGVyQnVpbGRlciA9IG5ldyBDbHVzdGVyQnVpbGRlcigpO1xuXG4gIHRoaXMuc2V0U3RhdGUoe2dlb0pTT04sIGNsdXN0ZXJCdWlsZGVyfSk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmZ1bmN0aW9uIGdldENsdXN0ZXJzKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBhZ2dyZWdhdGlvbiwge3ZpZXdwb3J0fSkge1xuICBjb25zdCB7Z2VvSlNPTiwgY2x1c3RlckJ1aWxkZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgY29uc3Qge2NsdXN0ZXJSYWRpdXMsIHpvb20sIHdpZHRoLCBoZWlnaHR9ID0gcHJvcHM7XG4gIGNvbnN0IHtsb25naXR1ZGUsIGxhdGl0dWRlfSA9IHZpZXdwb3J0O1xuXG4gIC8vIHpvb20gbmVlZHMgdG8gYmUgYW4gaW50ZWdlciBmb3IgdGhlIGRpZmZlcmVudCBtYXAgdXRpbHMuIEFsc28gaGVscHMgd2l0aCBjYWNoZSBrZXkuXG4gIGNvbnN0IGJib3ggPSBnZW9WaWV3cG9ydC5ib3VuZHMoW2xvbmdpdHVkZSwgbGF0aXR1ZGVdLCB6b29tLCBbd2lkdGgsIGhlaWdodF0pO1xuICBjb25zdCBjbHVzdGVycyA9IGNsdXN0ZXJCdWlsZGVyLmNsdXN0ZXJzQXRab29tKHtiYm94LCBjbHVzdGVyUmFkaXVzLCBnZW9KU09OLCB6b29tfSk7XG5cbiAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgbGF5ZXJEYXRhOiB7ZGF0YTogY2x1c3RlcnN9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdWJMYXllclJhZGl1cyhkaW1lbnNpb25TdGF0ZSwgZGltZW5zaW9uLCBsYXllclByb3BzKSB7XG4gIHJldHVybiBjZWxsID0+IHtcbiAgICBjb25zdCB7Z2V0UmFkaXVzVmFsdWV9ID0gbGF5ZXJQcm9wcztcbiAgICBjb25zdCB7c2NhbGVGdW5jfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIHJldHVybiBzY2FsZUZ1bmMoZ2V0UmFkaXVzVmFsdWUoY2VsbCkpO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY2x1c3RlckFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUgPSB7XG4gIGtleTogJ3Bvc2l0aW9uJyxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdnZW9qc29uJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2dldFBvc2l0aW9uJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UG9zaXRpb24nXG4gICAgICAgIH0sXG4gICAgICAgIGZpbHRlckRhdGE6IHtcbiAgICAgICAgICBwcm9wOiAnZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2ZpbHRlckRhdGEnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBwcm9jZXNzR2VvSlNPTlxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY2x1c3RlcmluZycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBjbHVzdGVyUmFkaXVzOiB7XG4gICAgICAgICAgcHJvcDogJ2NsdXN0ZXJSYWRpdXMnXG4gICAgICAgIH0sXG4gICAgICAgIHpvb206IHtcbiAgICAgICAgICBwcm9wOiAnem9vbSdcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6IHtcbiAgICAgICAgICBwcm9wOiAnd2lkdGgnXG4gICAgICAgIH0sXG4gICAgICAgIGhlaWdodDoge1xuICAgICAgICAgIHByb3A6ICdoZWlnaHQnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRDbHVzdGVyc1xuICAgIH1cbiAgXVxufTtcblxuZnVuY3Rpb24gZ2V0UmFkaXVzVmFsdWVEb21haW4odGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpIHtcbiAgY29uc3Qge2tleX0gPSBkaW1lbnNpb25VcGRhdGVyO1xuICBjb25zdCB7Z2V0UmFkaXVzVmFsdWV9ID0gcHJvcHM7XG4gIGNvbnN0IHtsYXllckRhdGF9ID0gdGhpcy5zdGF0ZTtcblxuICBjb25zdCB2YWx1ZURvbWFpbiA9IFswLCBtYXgobGF5ZXJEYXRhLmRhdGEsIGdldFJhZGl1c1ZhbHVlKV07XG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3ZhbHVlRG9tYWlufSk7XG59XG5cbmNvbnN0IGNsdXN0ZXJMYXllckRpbWVuc2lvbnM6IFtEaW1lbnNpb25UeXBlPFJHQkFDb2xvcj4sIERpbWVuc2lvblR5cGU8bnVtYmVyPl0gPSBbXG4gIGRlZmF1bHRDb2xvckRpbWVuc2lvbixcbiAge1xuICAgIGtleTogJ3JhZGl1cycsXG4gICAgYWNjZXNzb3I6ICdnZXRSYWRpdXMnLFxuICAgIG51bGxWYWx1ZTogMCxcbiAgICB1cGRhdGVTdGVwczogW1xuICAgICAge1xuICAgICAgICBrZXk6ICdnZXREb21haW4nLFxuICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBwcm9wOiAnZ2V0UmFkaXVzVmFsdWUnLFxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFJhZGl1c1ZhbHVlJ1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlcjogZ2V0UmFkaXVzVmFsdWVEb21haW5cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2dldFNjYWxlRnVuYycsXG4gICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgZG9tYWluOiB7cHJvcDogJ3JhZGl1c0RvbWFpbid9LFxuICAgICAgICAgIHJhbmdlOiB7cHJvcDogJ3JhZGl1c1JhbmdlJ30sXG4gICAgICAgICAgc2NhbGVUeXBlOiB7cHJvcDogJ3JhZGl1c1NjYWxlVHlwZSd9XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblNjYWxlXG4gICAgICB9XG4gICAgXSxcbiAgICBnZXRTdWJMYXllckFjY2Vzc29yOiBnZXRTdWJMYXllclJhZGl1cyxcbiAgICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsLCBsYXllclByb3BzKSA9PiB7XG4gICAgICBjb25zdCByYWRpdXNWYWx1ZSA9IGxheWVyUHJvcHMuZ2V0UmFkaXVzVmFsdWUoY2VsbCk7XG4gICAgICByZXR1cm4ge3JhZGl1c1ZhbHVlfTtcbiAgICB9XG4gIH1cbl07XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgY2x1c3RlclJhZGl1czogZGVmYXVsdFJhZGl1cyxcbiAgY29sb3JEb21haW46IG51bGwsXG4gIGNvbG9yUmFuZ2U6IERFRkFVTFRfQ09MT1JfUkFOR0UsXG4gIGNvbG9yU2NhbGVUeXBlOiBTQ0FMRV9UWVBFUy5xdWFudGl6ZSxcbiAgcmFkaXVzU2NhbGVUeXBlOiBTQ0FMRV9UWVBFUy5zcXJ0LFxuICByYWRpdXNSYW5nZTogZGVmYXVsdFJhZGl1c1JhbmdlLFxuICBnZXRQb3NpdGlvbjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiB4ID0+IHgucG9zaXRpb259LFxuICBnZXRDb2xvclZhbHVlOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IGRlZmF1bHRHZXRDb2xvclZhbHVlfSxcbiAgZ2V0UmFkaXVzVmFsdWU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogZGVmYXVsdEdldFJhZGl1c1ZhbHVlfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2x1c3RlckxheWVyIGV4dGVuZHMgQWdncmVnYXRpb25MYXllcjxcbiAgYW55LFxuICBBZ2dyZWdhdGlvbkxheWVyUHJvcHM8YW55PiAmIHtyYWRpdXNTY2FsZTogbnVtYmVyfVxuPiB7XG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCBjcHVBZ2dyZWdhdG9yID0gbmV3IENQVUFnZ3JlZ2F0b3Ioe1xuICAgICAgYWdncmVnYXRpb246IGNsdXN0ZXJBZ2dyZWdhdGlvbixcbiAgICAgIGRpbWVuc2lvbnM6IGNsdXN0ZXJMYXllckRpbWVuc2lvbnNcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBjcHVBZ2dyZWdhdG9yLFxuICAgICAgYWdncmVnYXRvclN0YXRlOiBjcHVBZ2dyZWdhdG9yLnN0YXRlXG4gICAgfTtcbiAgICBjb25zdCBhdHRyaWJ1dGVNYW5hZ2VyID0gdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk7XG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGQoe1xuICAgICAgcG9zaXRpb25zOiB7c2l6ZTogMywgYWNjZXNzb3I6ICdnZXRQb3NpdGlvbid9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZSh7b2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFnc30pIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIC8vIG1ha2UgYSBjb3B5IG9mIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiBjcHVBZ2dyZWdhdG9yIGZvciB0ZXN0aW5nXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci51cGRhdGVTdGF0ZShcbiAgICAgICAge29sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3N9LFxuICAgICAgICB7XG4gICAgICAgICAgdmlld3BvcnQ6IHRoaXMuY29udGV4dC52aWV3cG9ydCxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB0aGlzLmdldEF0dHJpYnV0ZXMoKSxcbiAgICAgICAgICBudW1JbnN0YW5jZXM6IHRoaXMuZ2V0TnVtSW5zdGFuY2VzKHByb3BzKVxuICAgICAgICB9XG4gICAgICApXG4gICAgfSk7XG4gIH1cblxuICBnZXRQaWNraW5nSW5mbyh7aW5mb30pIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldFBpY2tpbmdJbmZvKHtpbmZvfSwgdGhpcy5wcm9wcyk7XG4gIH1cblxuICBfZ2V0U3VibGF5ZXJVcGRhdGVUcmlnZ2VycygpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldFVwZGF0ZVRyaWdnZXJzKHRoaXMucHJvcHMpO1xuICB9XG5cbiAgX2dldFN1YkxheWVyQWNjZXNzb3JzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZXRSYWRpdXM6IHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRBY2Nlc3NvcigncmFkaXVzJywgdGhpcy5wcm9wcyksXG4gICAgICBnZXRGaWxsQ29sb3I6IHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRBY2Nlc3NvcignZmlsbENvbG9yJywgdGhpcy5wcm9wcylcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIC8vIGZvciBzdWJjbGFzc2luZywgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmV0dXJuXG4gICAgLy8gY3VzdG9taXplZCBzdWIgbGF5ZXIgcHJvcHNcbiAgICBjb25zdCB7aWQsIHJhZGl1c1NjYWxlfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2NwdUFnZ3JlZ2F0b3J9ID0gdGhpcy5zdGF0ZTtcblxuICAgIC8vIGJhc2UgbGF5ZXIgcHJvcHNcbiAgICBjb25zdCB7dmlzaWJsZSwgb3BhY2l0eSwgcGlja2FibGUsIGF1dG9IaWdobGlnaHQsIGhpZ2hsaWdodENvbG9yfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgdXBkYXRlVHJpZ2dlcnMgPSB0aGlzLl9nZXRTdWJsYXllclVwZGF0ZVRyaWdnZXJzKCk7XG4gICAgY29uc3QgYWNjZXNzb3JzID0gdGhpcy5fZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMoKTtcblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBjb25zdCBkaXN0YW5jZVNjYWxlID0gZ2V0RGlzdGFuY2VTY2FsZXModGhpcy5jb250ZXh0LnZpZXdwb3J0KTtcbiAgICBjb25zdCBtZXRlcnNQZXJQaXhlbCA9IGRpc3RhbmNlU2NhbGUubWV0ZXJzUGVyUGl4ZWxbMF07XG5cbiAgICAvLyByZXR1cm4gcHJvcHMgdG8gdGhlIHN1YmxheWVyIGNvbnN0cnVjdG9yXG4gICAgcmV0dXJuIG5ldyBTY2F0dGVycGxvdExheWVyKHtcbiAgICAgIGlkOiBgJHtpZH0tY2x1c3RlcmAsXG4gICAgICBkYXRhOiBjcHVBZ2dyZWdhdG9yLnN0YXRlLmxheWVyRGF0YS5kYXRhLFxuICAgICAgcmFkaXVzU2NhbGU6IG1ldGVyc1BlclBpeGVsICogcmFkaXVzU2NhbGUsXG4gICAgICB2aXNpYmxlLFxuICAgICAgb3BhY2l0eSxcbiAgICAgIHBpY2thYmxlLFxuICAgICAgYXV0b0hpZ2hsaWdodCxcbiAgICAgIGhpZ2hsaWdodENvbG9yLFxuICAgICAgdXBkYXRlVHJpZ2dlcnMsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGRlcHRoTWFzazogZmFsc2VcbiAgICAgIH0sXG4gICAgICAuLi5hY2Nlc3NvcnNcbiAgICB9KTtcbiAgfVxufVxuXG5DbHVzdGVyTGF5ZXIubGF5ZXJOYW1lID0gJ0NsdXN0ZXJMYXllcic7XG5DbHVzdGVyTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGtCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxZQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFNQSxJQUFBTSx3QkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBSix1QkFBQSxDQUFBTCxPQUFBO0FBQXdFLFNBQUFVLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTix3QkFBQU0sQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxD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
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { ColumnLayer, ColumnLayerProps } from '@deck.gl/layers/typed';
|
2
|
+
declare type EnhancedColumnLayerProps = ColumnLayerProps<any> & {
|
3
|
+
strokeOpacity: any;
|
4
|
+
};
|
5
|
+
declare class EnhancedColumnLayer extends ColumnLayer<any, EnhancedColumnLayerProps> {
|
6
|
+
getShaders(): any;
|
7
|
+
initializeState(): void;
|
8
|
+
draw({ uniforms }: {
|
9
|
+
uniforms: any;
|
10
|
+
}): void;
|
11
|
+
}
|
12
|
+
export default EnhancedColumnLayer;
|
@@ -0,0 +1,131 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports["default"] = void 0;
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
11
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
12
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
13
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
15
|
+
var _core = require("@deck.gl/core");
|
16
|
+
var _typed = require("@deck.gl/layers/typed");
|
17
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
18
|
+
var _ = require("../");
|
19
|
+
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; }
|
20
|
+
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; }
|
21
|
+
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)); }
|
22
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
23
|
+
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
|
24
|
+
// Copyright contributors to the kepler.gl project
|
25
|
+
function addInstanceCoverage(vs) {
|
26
|
+
var addDecl = (0, _.editShader)(vs, 'hexagon cell vs add instance 1', 'in vec3 instancePickingColors;', "in vec3 instancePickingColors;\n in float instanceCoverage;");
|
27
|
+
return (0, _.editShader)(addDecl, 'hexagon cell vs add instance 2', 'float dotRadius = radius * coverage * shouldRender;', 'float dotRadius = radius * coverage * instanceCoverage * shouldRender;');
|
28
|
+
}
|
29
|
+
// TODO: export all deck.gl layers from kepler.gl
|
30
|
+
var EnhancedColumnLayer = /*#__PURE__*/function (_ColumnLayer) {
|
31
|
+
function EnhancedColumnLayer() {
|
32
|
+
(0, _classCallCheck2["default"])(this, EnhancedColumnLayer);
|
33
|
+
return _callSuper(this, EnhancedColumnLayer, arguments);
|
34
|
+
}
|
35
|
+
(0, _inherits2["default"])(EnhancedColumnLayer, _ColumnLayer);
|
36
|
+
return (0, _createClass2["default"])(EnhancedColumnLayer, [{
|
37
|
+
key: "getShaders",
|
38
|
+
value: function getShaders() {
|
39
|
+
var shaders = _superPropGet(EnhancedColumnLayer, "getShaders", this, 3)([]);
|
40
|
+
return _objectSpread(_objectSpread({}, shaders), {}, {
|
41
|
+
vs: addInstanceCoverage(shaders.vs)
|
42
|
+
});
|
43
|
+
}
|
44
|
+
}, {
|
45
|
+
key: "initializeState",
|
46
|
+
value: function initializeState() {
|
47
|
+
var _this$getAttributeMan;
|
48
|
+
_superPropGet(EnhancedColumnLayer, "initializeState", this, 3)([]);
|
49
|
+
(_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 || _this$getAttributeMan.addInstanced({
|
50
|
+
instanceCoverage: {
|
51
|
+
size: 1,
|
52
|
+
accessor: 'getCoverage'
|
53
|
+
}
|
54
|
+
});
|
55
|
+
}
|
56
|
+
}, {
|
57
|
+
key: "draw",
|
58
|
+
value: function draw(_ref) {
|
59
|
+
var uniforms = _ref.uniforms;
|
60
|
+
var _this$props = this.props,
|
61
|
+
lineWidthUnits = _this$props.lineWidthUnits,
|
62
|
+
lineWidthScale = _this$props.lineWidthScale,
|
63
|
+
lineWidthMinPixels = _this$props.lineWidthMinPixels,
|
64
|
+
lineWidthMaxPixels = _this$props.lineWidthMaxPixels,
|
65
|
+
radiusUnits = _this$props.radiusUnits,
|
66
|
+
elevationScale = _this$props.elevationScale,
|
67
|
+
extruded = _this$props.extruded,
|
68
|
+
filled = _this$props.filled,
|
69
|
+
stroked = _this$props.stroked,
|
70
|
+
strokeOpacity = _this$props.strokeOpacity,
|
71
|
+
wireframe = _this$props.wireframe,
|
72
|
+
offset = _this$props.offset,
|
73
|
+
coverage = _this$props.coverage,
|
74
|
+
radius = _this$props.radius,
|
75
|
+
angle = _this$props.angle;
|
76
|
+
var _this$state = this.state,
|
77
|
+
model = _this$state.model,
|
78
|
+
fillVertexCount = _this$state.fillVertexCount,
|
79
|
+
wireframeVertexCount = _this$state.wireframeVertexCount,
|
80
|
+
edgeDistance = _this$state.edgeDistance;
|
81
|
+
model.setUniforms(uniforms).setUniforms({
|
82
|
+
radius: radius,
|
83
|
+
angle: angle / 180 * Math.PI,
|
84
|
+
offset: offset,
|
85
|
+
extruded: extruded,
|
86
|
+
stroked: stroked,
|
87
|
+
coverage: coverage,
|
88
|
+
elevationScale: elevationScale,
|
89
|
+
edgeDistance: edgeDistance,
|
90
|
+
radiusUnits: _core.UNIT[radiusUnits],
|
91
|
+
widthUnits: _core.UNIT[lineWidthUnits],
|
92
|
+
widthScale: lineWidthScale,
|
93
|
+
widthMinPixels: lineWidthMinPixels,
|
94
|
+
widthMaxPixels: lineWidthMaxPixels
|
95
|
+
});
|
96
|
+
|
97
|
+
// When drawing 3d: draw wireframe first so it doesn't get occluded by depth test
|
98
|
+
if (extruded && wireframe) {
|
99
|
+
model.setProps({
|
100
|
+
isIndexed: true
|
101
|
+
});
|
102
|
+
model.setVertexCount(wireframeVertexCount).setDrawMode(_constants["default"].LINES).setUniforms({
|
103
|
+
isStroke: true
|
104
|
+
}).draw();
|
105
|
+
}
|
106
|
+
if (filled) {
|
107
|
+
model.setProps({
|
108
|
+
isIndexed: false
|
109
|
+
});
|
110
|
+
model.setVertexCount(fillVertexCount).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
|
111
|
+
isStroke: false
|
112
|
+
}).draw();
|
113
|
+
}
|
114
|
+
// When drawing 2d: draw fill before stroke so that the outline is always on top
|
115
|
+
if (!extruded && stroked) {
|
116
|
+
model.setProps({
|
117
|
+
isIndexed: false
|
118
|
+
});
|
119
|
+
// The width of the stroke is achieved by flattening the side of the cylinder.
|
120
|
+
// Skip the last 1/3 of the vertices which is the top.
|
121
|
+
model.setVertexCount(fillVertexCount * 2 / 3).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
|
122
|
+
isStroke: true,
|
123
|
+
opacity: strokeOpacity
|
124
|
+
}).draw();
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}]);
|
128
|
+
}(_typed.ColumnLayer);
|
129
|
+
EnhancedColumnLayer.layerName = 'EnhancedColumnLayer';
|
130
|
+
var _default = exports["default"] = EnhancedColumnLayer;
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfdHlwZWQiLCJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl8iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJhZGRJbnN0YW5jZUNvdmVyYWdlIiwidnMiLCJhZGREZWNsIiwiZWRpdFNoYWRlciIsIkVuaGFuY2VkQ29sdW1uTGF5ZXIiLCJfQ29sdW1uTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImdldFNoYWRlcnMiLCJzaGFkZXJzIiwiaW5pdGlhbGl6ZVN0YXRlIiwiX3RoaXMkZ2V0QXR0cmlidXRlTWFuIiwiZ2V0QXR0cmlidXRlTWFuYWdlciIsImFkZEluc3RhbmNlZCIsImluc3RhbmNlQ292ZXJhZ2UiLCJzaXplIiwiYWNjZXNzb3IiLCJkcmF3IiwiX3JlZiIsInVuaWZvcm1zIiwiX3RoaXMkcHJvcHMiLCJwcm9wcyIsImxpbmVXaWR0aFVuaXRzIiwibGluZVdpZHRoU2NhbGUiLCJsaW5lV2lkdGhNaW5QaXhlbHMiLCJsaW5lV2lkdGhNYXhQaXhlbHMiLCJyYWRpdXNVbml0cyIsImVsZXZhdGlvblNjYWxlIiwiZXh0cnVkZWQiLCJmaWxsZWQiLCJzdHJva2VkIiwic3Ryb2tlT3BhY2l0eSIsIndpcmVmcmFtZSIsIm9mZnNldCIsImNvdmVyYWdlIiwicmFkaXVzIiwiYW5nbGUiLCJfdGhpcyRzdGF0ZSIsInN0YXRlIiwibW9kZWwiLCJmaWxsVmVydGV4Q291bnQiLCJ3aXJlZnJhbWVWZXJ0ZXhDb3VudCIsImVkZ2VEaXN0YW5jZSIsInNldFVuaWZvcm1zIiwiTWF0aCIsIlBJIiwiVU5JVCIsIndpZHRoVW5pdHMiLCJ3aWR0aFNjYWxlIiwid2lkdGhNaW5QaXhlbHMiLCJ3aWR0aE1heFBpeGVscyIsInNldFByb3BzIiwiaXNJbmRleGVkIiwic2V0VmVydGV4Q291bnQiLCJzZXREcmF3TW9kZSIsIkdMIiwiTElORVMiLCJpc1N0cm9rZSIsIlRSSUFOR0xFX1NUUklQIiwib3BhY2l0eSIsIkNvbHVtbkxheWVyIiwibGF5ZXJOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbHVtbi1sYXllci9lbmhhbmNlZC1jb2x1bW4tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtVTklUfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Q29sdW1uTGF5ZXIsIENvbHVtbkxheWVyUHJvcHN9IGZyb20gJ0BkZWNrLmdsL2xheWVycy90eXBlZCc7XG5pbXBvcnQgR0wgZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtlZGl0U2hhZGVyfSBmcm9tICcuLi8nO1xuXG5mdW5jdGlvbiBhZGRJbnN0YW5jZUNvdmVyYWdlKHZzKSB7XG4gIGNvbnN0IGFkZERlY2wgPSBlZGl0U2hhZGVyKFxuICAgIHZzLFxuICAgICdoZXhhZ29uIGNlbGwgdnMgYWRkIGluc3RhbmNlIDEnLFxuICAgICdpbiB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9yczsnLFxuICAgIGBpbiB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbiAgICAgaW4gZmxvYXQgaW5zdGFuY2VDb3ZlcmFnZTtgXG4gICk7XG5cbiAgcmV0dXJuIGVkaXRTaGFkZXIoXG4gICAgYWRkRGVjbCxcbiAgICAnaGV4YWdvbiBjZWxsIHZzIGFkZCBpbnN0YW5jZSAyJyxcbiAgICAnZmxvYXQgZG90UmFkaXVzID0gcmFkaXVzICogY292ZXJhZ2UgKiBzaG91bGRSZW5kZXI7JyxcbiAgICAnZmxvYXQgZG90UmFkaXVzID0gcmFkaXVzICogY292ZXJhZ2UgKiBpbnN0YW5jZUNvdmVyYWdlICogc2hvdWxkUmVuZGVyOydcbiAgKTtcbn1cblxudHlwZSBFbmhhbmNlZENvbHVtbkxheWVyUHJvcHMgPSBDb2x1bW5MYXllclByb3BzPGFueT4gJiB7XG4gIHN0cm9rZU9wYWNpdHk6IGFueTtcbn07XG5cbi8vIFRPRE86IGV4cG9ydCBhbGwgZGVjay5nbCBsYXllcnMgZnJvbSBrZXBsZXIuZ2xcbmNsYXNzIEVuaGFuY2VkQ29sdW1uTGF5ZXIgZXh0ZW5kcyBDb2x1bW5MYXllcjxhbnksIEVuaGFuY2VkQ29sdW1uTGF5ZXJQcm9wcz4ge1xuICBnZXRTaGFkZXJzKCkge1xuICAgIGNvbnN0IHNoYWRlcnMgPSBzdXBlci5nZXRTaGFkZXJzKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2hhZGVycyxcbiAgICAgIHZzOiBhZGRJbnN0YW5jZUNvdmVyYWdlKHNoYWRlcnMudnMpXG4gICAgfTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcblxuICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpPy5hZGRJbnN0YW5jZWQoe1xuICAgICAgaW5zdGFuY2VDb3ZlcmFnZToge3NpemU6IDEsIGFjY2Vzc29yOiAnZ2V0Q292ZXJhZ2UnfVxuICAgIH0pO1xuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXN9KSB7XG4gICAgY29uc3Qge1xuICAgICAgbGluZVdpZHRoVW5pdHMsXG4gICAgICBsaW5lV2lkdGhTY2FsZSxcbiAgICAgIGxpbmVXaWR0aE1pblBpeGVscyxcbiAgICAgIGxpbmVXaWR0aE1heFBpeGVscyxcbiAgICAgIHJhZGl1c1VuaXRzLFxuICAgICAgZWxldmF0aW9uU2NhbGUsXG4gICAgICBleHRydWRlZCxcbiAgICAgIGZpbGxlZCxcbiAgICAgIHN0cm9rZWQsXG4gICAgICBzdHJva2VPcGFjaXR5LFxuICAgICAgd2lyZWZyYW1lLFxuICAgICAgb2Zmc2V0LFxuICAgICAgY292ZXJhZ2UsXG4gICAgICByYWRpdXMsXG4gICAgICBhbmdsZVxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHttb2RlbCwgZmlsbFZlcnRleENvdW50LCB3aXJlZnJhbWVWZXJ0ZXhDb3VudCwgZWRnZURpc3RhbmNlfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBtb2RlbC5zZXRVbmlmb3Jtcyh1bmlmb3Jtcykuc2V0VW5pZm9ybXMoe1xuICAgICAgcmFkaXVzLFxuICAgICAgYW5nbGU6IChhbmdsZSAvIDE4MCkgKiBNYXRoLlBJLFxuICAgICAgb2Zmc2V0LFxuICAgICAgZXh0cnVkZWQsXG4gICAgICBzdHJva2VkLFxuICAgICAgY292ZXJhZ2UsXG4gICAgICBlbGV2YXRpb25TY2FsZSxcbiAgICAgIGVkZ2VEaXN0YW5jZSxcbiAgICAgIHJhZGl1c1VuaXRzOiBVTklUW3JhZGl1c1VuaXRzXSxcbiAgICAgIHdpZHRoVW5pdHM6IFVOSVRbbGluZVdpZHRoVW5pdHNdLFxuICAgICAgd2lkdGhTY2FsZTogbGluZVdpZHRoU2NhbGUsXG4gICAgICB3aWR0aE1pblBpeGVsczogbGluZVdpZHRoTWluUGl4ZWxzLFxuICAgICAgd2lkdGhNYXhQaXhlbHM6IGxpbmVXaWR0aE1heFBpeGVsc1xuICAgIH0pO1xuXG4gICAgLy8gV2hlbiBkcmF3aW5nIDNkOiBkcmF3IHdpcmVmcmFtZSBmaXJzdCBzbyBpdCBkb2Vzbid0IGdldCBvY2NsdWRlZCBieSBkZXB0aCB0ZXN0XG4gICAgaWYgKGV4dHJ1ZGVkICYmIHdpcmVmcmFtZSkge1xuICAgICAgbW9kZWwuc2V0UHJvcHMoe2lzSW5kZXhlZDogdHJ1ZX0pO1xuICAgICAgbW9kZWxcbiAgICAgICAgLnNldFZlcnRleENvdW50KHdpcmVmcmFtZVZlcnRleENvdW50KVxuICAgICAgICAuc2V0RHJhd01vZGUoR0wuTElORVMpXG4gICAgICAgIC5zZXRVbmlmb3Jtcyh7aXNTdHJva2U6IHRydWV9KVxuICAgICAgICAuZHJhdygpO1xuICAgIH1cbiAgICBpZiAoZmlsbGVkKSB7XG4gICAgICBtb2RlbC5zZXRQcm9wcyh7aXNJbmRleGVkOiBmYWxzZX0pO1xuICAgICAgbW9kZWxcbiAgICAgICAgLnNldFZlcnRleENvdW50KGZpbGxWZXJ0ZXhDb3VudClcbiAgICAgICAgLnNldERyYXdNb2RlKEdMLlRSSUFOR0xFX1NUUklQKVxuICAgICAgICAuc2V0VW5pZm9ybXMoe2lzU3Ryb2tlOiBmYWxzZX0pXG4gICAgICAgIC5kcmF3KCk7XG4gICAgfVxuICAgIC8vIFdoZW4gZHJhd2luZyAyZDogZHJhdyBmaWxsIGJlZm9yZSBzdHJva2Ugc28gdGhhdCB0aGUgb3V0bGluZSBpcyBhbHdheXMgb24gdG9wXG4gICAgaWYgKCFleHRydWRlZCAmJiBzdHJva2VkKSB7XG4gICAgICBtb2RlbC5zZXRQcm9wcyh7aXNJbmRleGVkOiBmYWxzZX0pO1xuICAgICAgLy8gVGhlIHdpZHRoIG9mIHRoZSBzdHJva2UgaXMgYWNoaWV2ZWQgYnkgZmxhdHRlbmluZyB0aGUgc2lkZSBvZiB0aGUgY3lsaW5kZXIuXG4gICAgICAvLyBTa2lwIHRoZSBsYXN0IDEvMyBvZiB0aGUgdmVydGljZXMgd2hpY2ggaXMgdGhlIHRvcC5cbiAgICAgIG1vZGVsXG4gICAgICAgIC5zZXRWZXJ0ZXhDb3VudCgoZmlsbFZlcnRleENvdW50ICogMikgLyAzKVxuICAgICAgICAuc2V0RHJhd01vZGUoR0wuVFJJQU5HTEVfU1RSSVApXG4gICAgICAgIC5zZXRVbmlmb3Jtcyh7aXNTdHJva2U6IHRydWUsIG9wYWNpdHk6IHN0cm9rZU9wYWNpdHl9KVxuICAgICAgICAuZHJhdygpO1xuICAgIH1cbiAgfVxufVxuXG5FbmhhbmNlZENvbHVtbkxheWVyLmxheWVyTmFtZSA9ICdFbmhhbmNlZENvbHVtbkxheWVyJztcblxuZXhwb3J0IGRlZmF1bHQgRW5oYW5jZWRDb2x1bW5MYXllcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFFQSxJQUFBSSxDQUFBLEdBQUFKLE9BQUE7QUFBK0IsU0FBQUssUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFG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
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/// <reference types="deck.gl" />
|
2
|
+
import { Layer, LayerExtension } from '@deck.gl/core';
|
3
|
+
export declare type FilterArrowExtensionProps = {
|
4
|
+
getFiltered?: () => number;
|
5
|
+
};
|
6
|
+
/**
|
7
|
+
* FilterArrowExtension - a deck.gl extension to filter arrow layer
|
8
|
+
*
|
9
|
+
* A simple extension to filter arrow layer based on the result of CPU filteredIndex,
|
10
|
+
* so we can avoid filtering on the raw Arrow table and recreating geometry attributes.
|
11
|
+
* Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered
|
12
|
+
* the shader module is modified to discard the feature if filtered value is 0
|
13
|
+
* the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer
|
14
|
+
*/
|
15
|
+
export default class FilterArrowExtension extends LayerExtension {
|
16
|
+
static defaultProps: {
|
17
|
+
getFiltered: {
|
18
|
+
type: string;
|
19
|
+
value: number;
|
20
|
+
};
|
21
|
+
};
|
22
|
+
static extensionName: string;
|
23
|
+
getShaders(): {
|
24
|
+
modules: {
|
25
|
+
name: string;
|
26
|
+
dependencies: {
|
27
|
+
name: string;
|
28
|
+
dependencies: any[];
|
29
|
+
vs: string;
|
30
|
+
getUniforms: (opts?: {} | undefined) => any;
|
31
|
+
}[];
|
32
|
+
vs: string;
|
33
|
+
fs: string;
|
34
|
+
inject: {
|
35
|
+
'vs:DECKGL_FILTER_GL_POSITION': string;
|
36
|
+
};
|
37
|
+
getUniforms: () => void;
|
38
|
+
}[];
|
39
|
+
defines: {};
|
40
|
+
};
|
41
|
+
initializeState(this: Layer<FilterArrowExtensionProps>): void;
|
42
|
+
}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports["default"] = void 0;
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
10
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
11
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
14
|
+
var _core = require("@deck.gl/core");
|
15
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
16
|
+
var _filterShaderModule = _interopRequireDefault(require("./filter-shader-module"));
|
17
|
+
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)); }
|
18
|
+
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
|
+
// Copyright contributors to the kepler.gl project
|
20
|
+
var VALUE_FILTERED = 1;
|
21
|
+
var defaultProps = {
|
22
|
+
getFiltered: {
|
23
|
+
type: 'accessor',
|
24
|
+
value: VALUE_FILTERED
|
25
|
+
}
|
26
|
+
};
|
27
|
+
/**
|
28
|
+
* FilterArrowExtension - a deck.gl extension to filter arrow layer
|
29
|
+
*
|
30
|
+
* A simple extension to filter arrow layer based on the result of CPU filteredIndex,
|
31
|
+
* so we can avoid filtering on the raw Arrow table and recreating geometry attributes.
|
32
|
+
* Specifically, an attribute `filtered` is added to the layer to indicate whether the feature has been Filtered
|
33
|
+
* the shader module is modified to discard the feature if filtered value is 0
|
34
|
+
* the accessor getFiltered is used to get the value of `filtered` based on the value `filteredIndex` in Arrowlayer
|
35
|
+
*/
|
36
|
+
var FilterArrowExtension = exports["default"] = /*#__PURE__*/function (_LayerExtension) {
|
37
|
+
function FilterArrowExtension() {
|
38
|
+
(0, _classCallCheck2["default"])(this, FilterArrowExtension);
|
39
|
+
return _callSuper(this, FilterArrowExtension, arguments);
|
40
|
+
}
|
41
|
+
(0, _inherits2["default"])(FilterArrowExtension, _LayerExtension);
|
42
|
+
return (0, _createClass2["default"])(FilterArrowExtension, [{
|
43
|
+
key: "getShaders",
|
44
|
+
value: function getShaders() {
|
45
|
+
return {
|
46
|
+
modules: [_filterShaderModule["default"]],
|
47
|
+
defines: {}
|
48
|
+
};
|
49
|
+
}
|
50
|
+
}, {
|
51
|
+
key: "initializeState",
|
52
|
+
value: function initializeState() {
|
53
|
+
var attributeManager = this.getAttributeManager();
|
54
|
+
if (attributeManager) {
|
55
|
+
attributeManager.add({
|
56
|
+
filtered: {
|
57
|
+
size: 1,
|
58
|
+
type: _constants["default"].FLOAT,
|
59
|
+
accessor: 'getFiltered',
|
60
|
+
shaderAttributes: {
|
61
|
+
filtered: {
|
62
|
+
divisor: 0
|
63
|
+
},
|
64
|
+
instanceFiltered: {
|
65
|
+
divisor: 1
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
});
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}]);
|
73
|
+
}(_core.LayerExtension);
|
74
|
+
(0, _defineProperty2["default"])(FilterArrowExtension, "defaultProps", defaultProps);
|
75
|
+
(0, _defineProperty2["default"])(FilterArrowExtension, "extensionName", 'FilterArrowExtension');
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9maWx0ZXJTaGFkZXJNb2R1bGUiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIlZBTFVFX0ZJTFRFUkVEIiwiZGVmYXVsdFByb3BzIiwiZ2V0RmlsdGVyZWQiLCJ0eXBlIiwidmFsdWUiLCJGaWx0ZXJBcnJvd0V4dGVuc2lvbiIsImV4cG9ydHMiLCJfTGF5ZXJFeHRlbnNpb24iLCJfY2xhc3NDYWxsQ2hlY2syIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJnZXRTaGFkZXJzIiwibW9kdWxlcyIsInNoYWRlck1vZHVsZSIsImRlZmluZXMiLCJpbml0aWFsaXplU3RhdGUiLCJhdHRyaWJ1dGVNYW5hZ2VyIiwiZ2V0QXR0cmlidXRlTWFuYWdlciIsImFkZCIsImZpbHRlcmVkIiwic2l6ZSIsIkdMIiwiRkxPQVQiLCJhY2Nlc3NvciIsInNoYWRlckF0dHJpYnV0ZXMiLCJkaXZpc29yIiwiaW5zdGFuY2VGaWx0ZXJlZCIsIkxheWVyRXh0ZW5zaW9uIiwiX2RlZmluZVByb3BlcnR5MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNrZ2wtZXh0ZW5zaW9ucy9maWx0ZXItYXJyb3ctbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtMYXllciwgTGF5ZXJFeHRlbnNpb259IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBzaGFkZXJNb2R1bGUgZnJvbSAnLi9maWx0ZXItc2hhZGVyLW1vZHVsZSc7XG5cbmNvbnN0IFZBTFVFX0ZJTFRFUkVEID0gMTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBnZXRGaWx0ZXJlZDoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBWQUxVRV9GSUxURVJFRH1cbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckFycm93RXh0ZW5zaW9uUHJvcHMgPSB7XG4gIGdldEZpbHRlcmVkPzogKCkgPT4gbnVtYmVyO1xufTtcblxuLyoqXG4gKiBGaWx0ZXJBcnJvd0V4dGVuc2lvbiAtIGEgZGVjay5nbCBleHRlbnNpb24gdG8gZmlsdGVyIGFycm93IGxheWVyXG4gKlxuICogQSBzaW1wbGUgZXh0ZW5zaW9uIHRvIGZpbHRlciBhcnJvdyBsYXllciBiYXNlZCBvbiB0aGUgcmVzdWx0IG9mIENQVSBmaWx0ZXJlZEluZGV4LFxuICogc28gd2UgY2FuIGF2b2lkIGZpbHRlcmluZyBvbiB0aGUgcmF3IEFycm93IHRhYmxlIGFuZCByZWNyZWF0aW5nIGdlb21ldHJ5IGF0dHJpYnV0ZXMuXG4gKiBTcGVjaWZpY2FsbHksIGFuIGF0dHJpYnV0ZSBgZmlsdGVyZWRgIGlzIGFkZGVkIHRvIHRoZSBsYXllciB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBmZWF0dXJlIGhhcyBiZWVuIEZpbHRlcmVkXG4gKiB0aGUgc2hhZGVyIG1vZHVsZSBpcyBtb2RpZmllZCB0byBkaXNjYXJkIHRoZSBmZWF0dXJlIGlmIGZpbHRlcmVkIHZhbHVlIGlzIDBcbiAqIHRoZSBhY2Nlc3NvciBnZXRGaWx0ZXJlZCBpcyB1c2VkIHRvIGdldCB0aGUgdmFsdWUgb2YgYGZpbHRlcmVkYCBiYXNlZCBvbiB0aGUgdmFsdWUgYGZpbHRlcmVkSW5kZXhgIGluIEFycm93bGF5ZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyQXJyb3dFeHRlbnNpb24gZXh0ZW5kcyBMYXllckV4dGVuc2lvbiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4gIHN0YXRpYyBleHRlbnNpb25OYW1lID0gJ0ZpbHRlckFycm93RXh0ZW5zaW9uJztcblxuICBnZXRTaGFkZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGVzOiBbc2hhZGVyTW9kdWxlXSxcbiAgICAgIGRlZmluZXM6IHt9XG4gICAgfTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSh0aGlzOiBMYXllcjxGaWx0ZXJBcnJvd0V4dGVuc2lvblByb3BzPikge1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBpZiAoYXR0cmlidXRlTWFuYWdlcikge1xuICAgICAgYXR0cmlidXRlTWFuYWdlci5hZGQoe1xuICAgICAgICBmaWx0ZXJlZDoge1xuICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgdHlwZTogR0wuRkxPQVQsXG4gICAgICAgICAgYWNjZXNzb3I6ICdnZXRGaWx0ZXJlZCcsXG4gICAgICAgICAgc2hhZGVyQXR0cmlidXRlczoge1xuICAgICAgICAgICAgZmlsdGVyZWQ6IHtcbiAgICAgICAgICAgICAgZGl2aXNvcjogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluc3RhbmNlRmlsdGVyZWQ6IHtcbiAgICAgICAgICAgICAgZGl2aXNvcjogMVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxtQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQWtELFNBQUFJLFdBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFdBQUFELENBQUEsT0FBQUUsZ0JBQUEsYUFBQUYsQ0FBQSxPQUFBRywyQkFBQSxhQUFBSixDQUFBLEVBQUFLLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTixDQUFBLEVBQUFDLENBQUEsWUFBQUMsZ0JBQUEsYUFBQUgsQ0FBQSxFQUFBUSxXQUFBLElBQUFQLENBQUEsQ0FBQVEsS0FBQSxDQUFBVCxDQUFBLEVBQUFFLENBQUE7QUFBQSxTQUFBRywwQkFBQSxjQUFBTCxDQUFBLElBQUFVLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFDLElBQUEsQ0FBQVAsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUFWLENBQUEsYUFBQUsseUJBQUEsWUFBQUEsMEJBQUEsYUFBQUwsQ0FBQSxVQU5sRDtBQUNBO0FBT0EsSUFBTWMsY0FBYyxHQUFHLENBQUM7QUFFeEIsSUFBTUMsWUFBWSxHQUFHO0VBQ25CQyxXQUFXLEVBQUU7SUFBQ0MsSUFBSSxFQUFFLFVBQVU7SUFBRUMsS0FBSyxFQUFFSjtFQUFjO0FBQ3ZELENBQUM7QUFNRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQSxJQVNxQkssb0JBQW9CLEdBQUFDLE9BQUEscUNBQUFDLGVBQUE7RUFBQSxTQUFBRixxQkFBQTtJQUFBLElBQUFHLGdCQUFBLG1CQUFBSCxvQkFBQTtJQUFBLE9BQUFwQixVQUFBLE9BQUFvQixvQkFBQSxFQUFBSSxTQUFBO0VBQUE7RUFBQSxJQUFBQyxVQUFBLGFBQUFMLG9CQUFBLEVBQUFFLGVBQUE7RUFBQSxXQUFBSSxhQUFBLGFBQUFOLG9CQUFBO0lBQUFPLEdBQUE7SUFBQVIsS0FBQSxFQUl2QyxTQUFBUyxVQUFVQSxDQUFBLEVBQUc7TUFDWCxPQUFPO1FBQ0xDLE9BQU8sRUFBRSxDQUFDQyw4QkFBWSxDQUFDO1FBQ3ZCQyxPQUFPLEVBQUUsQ0FBQztNQUNaLENBQUM7SUFDSDtFQUFDO0lBQUFKLEdBQUE7SUFBQVIsS0FBQSxFQUVELFNBQUFhLGVBQWVBLENBQUEsRUFBeUM7TUFDdEQsSUFBTUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ25ELElBQUlELGdCQUFnQixFQUFFO1FBQ3BCQSxnQkFBZ0IsQ0FBQ0UsR0FBRyxDQUFDO1VBQ25CQyxRQUFRLEVBQUU7WUFDUkMsSUFBSSxFQUFFLENBQUM7WUFDUG5CLElBQUksRUFBRW9CLHFCQUFFLENBQUNDLEtBQUs7WUFDZEMsUUFBUSxFQUFFLGFBQWE7WUFDdkJDLGdCQUFnQixFQUFFO2NBQ2hCTCxRQUFRLEVBQUU7Z0JBQ1JNLE9BQU8sRUFBRTtjQUNYLENBQUM7Y0FDREMsZ0JBQWdCLEVBQUU7Z0JBQ2hCRCxPQUFPLEVBQUU7Y0FDWDtZQUNGO1VBQ0Y7UUFDRixDQUFDLENBQUM7TUFDSjtJQUNGO0VBQUM7QUFBQSxFQTlCK0NFLG9CQUFjO0FBQUEsSUFBQUMsZ0JBQUEsYUFBM0N6QixvQkFBb0Isa0JBQ2pCSixZQUFZO0FBQUEsSUFBQTZCLGdCQUFBLGFBRGZ6QixvQkFBb0IsbUJBRWhCLHNCQUFzQiIsImlnbm9yZUxpc3QiOltdfQ==
|