@kepler.gl/deckgl-layers 3.0.0-alpha.0 → 3.0.0-alpha.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.
- package/dist/3d-building-layer/3d-building-layer.d.ts +15 -10
- package/dist/3d-building-layer/3d-building-layer.js +15 -13
- package/dist/3d-building-layer/3d-building-utils.d.ts +3 -1
- package/dist/3d-building-layer/3d-building-utils.js +6 -5
- package/dist/3d-building-layer/types.d.ts +14 -0
- package/dist/3d-building-layer/types.js +1 -1
- package/dist/cluster-layer/cluster-layer.js +2 -2
- package/dist/column-layer/enhanced-column-layer.d.ts +8 -3
- package/dist/column-layer/enhanced-column-layer.js +86 -8
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +2 -2
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +2 -2
- package/dist/index.js +1 -1
- package/dist/layer-utils/cluster-utils.js +2 -2
- package/dist/layer-utils/cpu-aggregator.js +2 -2
- package/dist/layer-utils/shader-utils.js +2 -2
- package/dist/line-layer/line-layer.js +2 -2
- package/dist/svg-icon-layer/scatterplot-icon-layer.js +2 -2
- package/dist/svg-icon-layer/svg-icon-layer.js +2 -2
- package/package.json +12 -12
@@ -1,11 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
import {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
1
|
+
import { CompositeLayer } from '@deck.gl/core/typed';
|
2
|
+
import { TileLayer as DeckGLTileLayer } from '@deck.gl/geo-layers/typed';
|
3
|
+
import { SolidPolygonLayer, SolidPolygonLayerProps } from '@deck.gl/layers/typed';
|
4
|
+
import { ThreeDBuildingLayerProps, TileDataItem, TileLoadProps } from './types';
|
5
|
+
export default class ThreeDBuildingLayer extends CompositeLayer<ThreeDBuildingLayerProps> {
|
6
|
+
renderSubLayers(props: SolidPolygonLayerProps<any>): SolidPolygonLayer<TileDataItem, {}>;
|
7
|
+
renderLayers(): DeckGLTileLayer<any, {
|
8
|
+
id: string;
|
9
|
+
getTileData: (tile: TileLoadProps) => Promise<TileDataItem[]>;
|
10
|
+
minZoom: 13;
|
11
|
+
renderSubLayers: (props: SolidPolygonLayerProps<any>) => SolidPolygonLayer<TileDataItem, {}>;
|
12
|
+
updateTriggers: {
|
13
|
+
getFillColor: import("@kepler.gl/types").RGBColor;
|
14
|
+
} & Record<string, any>;
|
15
|
+
}>[];
|
11
16
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -39,13 +39,15 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
39
39
|
|
40
40
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
41
41
|
|
42
|
-
var
|
42
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
43
43
|
|
44
|
-
var
|
44
|
+
var _typed = require("@deck.gl/core/typed");
|
45
45
|
|
46
|
-
var
|
46
|
+
var _typed2 = require("@deck.gl/geo-layers/typed");
|
47
|
+
|
48
|
+
var _typed3 = require("@deck.gl/layers/typed");
|
47
49
|
|
48
|
-
var
|
50
|
+
var _dBuildingUtils = require("./3d-building-utils");
|
49
51
|
|
50
52
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
51
53
|
|
@@ -69,10 +71,10 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
69
71
|
key: "renderSubLayers",
|
70
72
|
value: // this layer add its subLayers to the redux store, and push sample data
|
71
73
|
function renderSubLayers(props) {
|
72
|
-
return new
|
74
|
+
return new _typed3.SolidPolygonLayer(_objectSpread(_objectSpread({}, props), {}, {
|
73
75
|
parameters: {
|
74
|
-
blendFunc: [
|
75
|
-
blendEquation: [
|
76
|
+
blendFunc: [_constants["default"].SRC_ALPHA, _constants["default"].ONE_MINUS_SRC_ALPHA, _constants["default"].ONE, _constants["default"].ONE_MINUS_SRC_ALPHA],
|
77
|
+
blendEquation: [_constants["default"].FUNC_ADD, _constants["default"].FUNC_ADD]
|
76
78
|
},
|
77
79
|
extruded: true,
|
78
80
|
opacity: 1,
|
@@ -91,10 +93,10 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
91
93
|
value: function renderLayers() {
|
92
94
|
var _this = this;
|
93
95
|
|
94
|
-
return [new
|
96
|
+
return [new _typed2.TileLayer({
|
95
97
|
id: "".concat(this.id, "-deck-3d-building"),
|
96
|
-
getTileData: function getTileData(
|
97
|
-
return (0, _dBuildingUtils.getTileData)(_this.props.mapboxApiUrl, _this.props.mapboxApiAccessToken,
|
98
|
+
getTileData: function getTileData(tile) {
|
99
|
+
return (0, _dBuildingUtils.getTileData)(_this.props.mapboxApiUrl, _this.props.mapboxApiAccessToken, tile);
|
98
100
|
},
|
99
101
|
minZoom: 13,
|
100
102
|
renderSubLayers: this.renderSubLayers.bind(this),
|
@@ -103,7 +105,7 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
103
105
|
}
|
104
106
|
}]);
|
105
107
|
return ThreeDBuildingLayer;
|
106
|
-
}(
|
108
|
+
}(_typed.CompositeLayer);
|
107
109
|
|
108
110
|
exports["default"] = ThreeDBuildingLayer;
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
111
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllci50cyJdLCJuYW1lcyI6WyJUaHJlZURCdWlsZGluZ0xheWVyIiwicHJvcHMiLCJTb2xpZFBvbHlnb25MYXllciIsInBhcmFtZXRlcnMiLCJibGVuZEZ1bmMiLCJHTCIsIlNSQ19BTFBIQSIsIk9ORV9NSU5VU19TUkNfQUxQSEEiLCJPTkUiLCJibGVuZEVxdWF0aW9uIiwiRlVOQ19BREQiLCJleHRydWRlZCIsIm9wYWNpdHkiLCJmaWxsZWQiLCJnZXRFbGV2YXRpb24iLCJmZWF0dXJlIiwicHJvcGVydGllcyIsImhlaWdodCIsImdldFBvbHlnb24iLCJjb29yZGluYXRlcyIsImdldEZpbGxDb2xvciIsInRocmVlREJ1aWxkaW5nQ29sb3IiLCJEZWNrR0xUaWxlTGF5ZXIiLCJpZCIsImdldFRpbGVEYXRhIiwidGlsZSIsIm1hcGJveEFwaVVybCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWluWm9vbSIsInJlbmRlclN1YkxheWVycyIsImJpbmQiLCJ1cGRhdGVUcmlnZ2VycyIsIkNvbXBvc2l0ZUxheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7SUFHcUJBLG1COzs7Ozs7Ozs7Ozs7V0FDbkI7QUFFQSw2QkFBZ0JDLEtBQWhCLEVBQW9EO0FBQ2xELGFBQU8sSUFBSUMseUJBQUosaUNBQ0ZELEtBREU7QUFFTEUsUUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLFVBQUFBLFNBQVMsRUFBRSxDQUFDQyxzQkFBR0MsU0FBSixFQUFlRCxzQkFBR0UsbUJBQWxCLEVBQXVDRixzQkFBR0csR0FBMUMsRUFBK0NILHNCQUFHRSxtQkFBbEQsQ0FERDtBQUVWRSxVQUFBQSxhQUFhLEVBQUUsQ0FBQ0osc0JBQUdLLFFBQUosRUFBY0wsc0JBQUdLLFFBQWpCO0FBRkwsU0FGUDtBQU1MQyxRQUFBQSxRQUFRLEVBQUUsSUFOTDtBQU9MQyxRQUFBQSxPQUFPLEVBQUUsQ0FQSjtBQVFMQyxRQUFBQSxNQUFNLEVBQUUsSUFSSDtBQVNMQyxRQUFBQSxZQUFZLEVBQUUsc0JBQUNDLE9BQUQ7QUFBQSxpQkFBMkJBLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQkMsTUFBbkIsSUFBNkIsQ0FBeEQ7QUFBQSxTQVRUO0FBVUxDLFFBQUFBLFVBQVUsRUFBRSxvQkFBQ0gsT0FBRDtBQUFBLGlCQUEyQkEsT0FBTyxDQUFDSSxXQUFuQztBQUFBLFNBVlA7QUFXTEMsUUFBQUEsWUFBWSxFQUFFLEtBQUtuQixLQUFMLENBQVdvQjtBQVhwQixTQUFQO0FBYUQ7OztXQUVELHdCQUFlO0FBQUE7O0FBQ2IsYUFBTyxDQUNMLElBQUlDLGlCQUFKLENBQW9CO0FBQ2xCQyxRQUFBQSxFQUFFLFlBQUssS0FBS0EsRUFBVixzQkFEZ0I7QUFFbEJDLFFBQUFBLFdBQVcsRUFBRSxxQkFBQ0MsSUFBRDtBQUFBLGlCQUNYLGlDQUFZLEtBQUksQ0FBQ3hCLEtBQUwsQ0FBV3lCLFlBQXZCLEVBQXFDLEtBQUksQ0FBQ3pCLEtBQUwsQ0FBVzBCLG9CQUFoRCxFQUFzRUYsSUFBdEUsQ0FEVztBQUFBLFNBRks7QUFJbEJHLFFBQUFBLE9BQU8sRUFBRSxFQUpTO0FBS2xCQyxRQUFBQSxlQUFlLEVBQUUsS0FBS0EsZUFBTCxDQUFxQkMsSUFBckIsQ0FBMEIsSUFBMUIsQ0FMQztBQU1sQkMsUUFBQUEsY0FBYyxFQUFFLEtBQUs5QixLQUFMLENBQVc4QjtBQU5ULE9BQXBCLENBREssQ0FBUDtBQVVEOzs7RUE5QjhDQyxxQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBHTCBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtDb21wb3NpdGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvY29yZS90eXBlZCc7XG5pbXBvcnQge1RpbGVMYXllciBhcyBEZWNrR0xUaWxlTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2dlby1sYXllcnMvdHlwZWQnO1xuaW1wb3J0IHtTb2xpZFBvbHlnb25MYXllciwgU29saWRQb2x5Z29uTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzL3R5cGVkJztcblxuaW1wb3J0IHtnZXRUaWxlRGF0YX0gZnJvbSAnLi8zZC1idWlsZGluZy11dGlscyc7XG5pbXBvcnQge1RocmVlREJ1aWxkaW5nTGF5ZXJQcm9wcywgVGlsZURhdGFJdGVtLCBUaWxlTG9hZFByb3BzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGhyZWVEQnVpbGRpbmdMYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyPFRocmVlREJ1aWxkaW5nTGF5ZXJQcm9wcz4ge1xuICAvLyB0aGlzIGxheWVyIGFkZCBpdHMgc3ViTGF5ZXJzIHRvIHRoZSByZWR1eCBzdG9yZSwgYW5kIHB1c2ggc2FtcGxlIGRhdGFcblxuICByZW5kZXJTdWJMYXllcnMocHJvcHM6IFNvbGlkUG9seWdvbkxheWVyUHJvcHM8YW55Pikge1xuICAgIHJldHVybiBuZXcgU29saWRQb2x5Z29uTGF5ZXI8VGlsZURhdGFJdGVtPih7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgYmxlbmRGdW5jOiBbR0wuU1JDX0FMUEhBLCBHTC5PTkVfTUlOVVNfU1JDX0FMUEhBLCBHTC5PTkUsIEdMLk9ORV9NSU5VU19TUkNfQUxQSEFdLFxuICAgICAgICBibGVuZEVxdWF0aW9uOiBbR0wuRlVOQ19BREQsIEdMLkZVTkNfQUREXVxuICAgICAgfSxcbiAgICAgIGV4dHJ1ZGVkOiB0cnVlLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICAgIGZpbGxlZDogdHJ1ZSxcbiAgICAgIGdldEVsZXZhdGlvbjogKGZlYXR1cmU6IFRpbGVEYXRhSXRlbSkgPT4gZmVhdHVyZS5wcm9wZXJ0aWVzLmhlaWdodCB8fCAwLFxuICAgICAgZ2V0UG9seWdvbjogKGZlYXR1cmU6IFRpbGVEYXRhSXRlbSkgPT4gZmVhdHVyZS5jb29yZGluYXRlcyxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5wcm9wcy50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgfSk7XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBEZWNrR0xUaWxlTGF5ZXIoe1xuICAgICAgICBpZDogYCR7dGhpcy5pZH0tZGVjay0zZC1idWlsZGluZ2AgYXMgc3RyaW5nLFxuICAgICAgICBnZXRUaWxlRGF0YTogKHRpbGU6IFRpbGVMb2FkUHJvcHMpID0+XG4gICAgICAgICAgZ2V0VGlsZURhdGEodGhpcy5wcm9wcy5tYXBib3hBcGlVcmwsIHRoaXMucHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sIHRpbGUpLFxuICAgICAgICBtaW5ab29tOiAxMyxcbiAgICAgICAgcmVuZGVyU3ViTGF5ZXJzOiB0aGlzLnJlbmRlclN1YkxheWVycy5iaW5kKHRoaXMpLFxuICAgICAgICB1cGRhdGVUcmlnZ2VyczogdGhpcy5wcm9wcy51cGRhdGVUcmlnZ2Vyc1xuICAgICAgfSlcbiAgICBdO1xuICB9XG59XG4iXX0=
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { Coordinates, FlatFigure, TileDataItem, VectorTileFeature, VectorTileFeatureProperties } from './types';
|
2
|
-
export declare function getTileData(host: string, token: string, { x, y, z }
|
2
|
+
export declare function getTileData(host: string, token: string, { index: { x, y, z } }: {
|
3
|
+
index: Coordinates;
|
4
|
+
}): Promise<TileDataItem[]>;
|
3
5
|
export declare function decodeTile(x: number, y: number, z: number, arrayBuffer: ArrayBuffer): TileDataItem[];
|
4
6
|
export declare function vectorTileFeatureToProp(vectorTileFeature: VectorTileFeature, project: (r: FlatFigure, n: number) => void): {
|
5
7
|
coordinates: FlatFigure[];
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -39,9 +39,10 @@ var MAPBOX_HOST = 'https://a.tiles.mapbox.com';
|
|
39
39
|
var MAP_SOURCE = '/v4/mapbox.mapbox-streets-v7';
|
40
40
|
|
41
41
|
function getTileData(host, token, _ref) {
|
42
|
-
var
|
43
|
-
|
44
|
-
|
42
|
+
var _ref$index = _ref.index,
|
43
|
+
x = _ref$index.x,
|
44
|
+
y = _ref$index.y,
|
45
|
+
z = _ref$index.z;
|
45
46
|
var mapSource = "".concat(host || MAPBOX_HOST).concat(MAP_SOURCE, "/").concat(z, "/").concat(x, "/").concat(y, ".vector.pbf?access_token=").concat(token);
|
46
47
|
return fetch(mapSource).then(function (response) {
|
47
48
|
return response.arrayBuffer();
|
@@ -209,4 +210,4 @@ function signedArea(ring) {
|
|
209
210
|
|
210
211
|
return sum;
|
211
212
|
}
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy11dGlscy50cyJdLCJuYW1lcyI6WyJUSUxFX1NJWkUiLCJNQVBCT1hfSE9TVCIsIk1BUF9TT1VSQ0UiLCJnZXRUaWxlRGF0YSIsImhvc3QiLCJ0b2tlbiIsIngiLCJ5IiwieiIsIm1hcFNvdXJjZSIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwiYXJyYXlCdWZmZXIiLCJidWZmZXIiLCJkZWNvZGVUaWxlIiwidGlsZSIsIlZlY3RvclRpbGUiLCJQcm90b2J1ZiIsInJlc3VsdCIsInhQcm9qIiwieVByb2oiLCJzY2FsZSIsIk1hdGgiLCJwb3ciLCJwcm9qZWN0RnVuYyIsInByb2plY3QiLCJiaW5kIiwibGF5ZXJOYW1lIiwidmVjdG9yVGlsZUxheWVyIiwibGF5ZXJzIiwiaSIsImxlbmd0aCIsInZlY3RvclRpbGVGZWF0dXJlIiwiZmVhdHVyZSIsImZlYXR1cmVzIiwidmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AiLCJmb3JFYWNoIiwiZiIsInByb3BlcnRpZXMiLCJsYXllciIsImhlaWdodCIsInB1c2giLCJsaW5lIiwiZXh0ZW50Iiwic2l6ZVRvUGl4ZWwiLCJpaSIsInAiLCJjb29yZHMiLCJnZXRDb29yZGluYXRlcyIsImoiLCJjbGFzc2lmeVJpbmdzIiwibWFwIiwiY29vcmRpbmF0ZXMiLCJwYmYiLCJfcGJmIiwicG9zIiwiX2dlb21ldHJ5IiwiZW5kIiwicmVhZFZhcmludCIsImNtZCIsImxpbmVzIiwiY21kTGVuIiwicmVhZFNWYXJpbnQiLCJzbGljZSIsIkVycm9yIiwicmluZ3MiLCJsZW4iLCJwb2x5Z29ucyIsInBvbHlnb24iLCJjY3ciLCJhcmVhIiwic2lnbmVkQXJlYSIsInVuZGVmaW5lZCIsInJpbmciLCJzdW0iLCJwMSIsInAyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUF0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBYUE7QUFDQSxJQUFNQSxTQUFTLEdBQUcsR0FBbEI7QUFDQSxJQUFNQyxXQUFXLEdBQUcsNEJBQXBCO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLDhCQUFuQjs7QUFFTyxTQUFTQyxXQUFULENBQ0xDLElBREssRUFFTEMsS0FGSyxRQUlvQjtBQUFBLE1BRHhCQyxDQUN3QixRQUR4QkEsQ0FDd0I7QUFBQSxNQURyQkMsQ0FDcUIsUUFEckJBLENBQ3FCO0FBQUEsTUFEbEJDLENBQ2tCLFFBRGxCQSxDQUNrQjtBQUN6QixNQUFNQyxTQUFTLGFBQU1MLElBQUksSUFDdkJILFdBRGEsU0FDQ0MsVUFERCxjQUNlTSxDQURmLGNBQ29CRixDQURwQixjQUN5QkMsQ0FEekIsc0NBQ3NERixLQUR0RCxDQUFmO0FBR0EsU0FBT0ssS0FBSyxDQUFDRCxTQUFELENBQUwsQ0FDSkUsSUFESSxDQUNDLFVBQUFDLFFBQVE7QUFBQSxXQUFJQSxRQUFRLENBQUNDLFdBQVQsRUFBSjtBQUFBLEdBRFQsRUFFSkYsSUFGSSxDQUVDLFVBQUFHLE1BQU07QUFBQSxXQUFJQyxVQUFVLENBQUNULENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVNLE1BQVYsQ0FBZDtBQUFBLEdBRlAsQ0FBUDtBQUdEOztBQUVNLFNBQVNDLFVBQVQsQ0FDTFQsQ0FESyxFQUVMQyxDQUZLLEVBR0xDLENBSEssRUFJTEssV0FKSyxFQUtXO0FBQ2hCLE1BQU1HLElBQUksR0FBRyxJQUFJQyxzQkFBSixDQUFlLElBQUlDLGVBQUosQ0FBYUwsV0FBYixDQUFmLENBQWI7QUFFQSxNQUFNTSxNQUFzQixHQUFHLEVBQS9CO0FBQ0EsTUFBTUMsS0FBSyxHQUFHZCxDQUFDLEdBQUdOLFNBQWxCO0FBQ0EsTUFBTXFCLEtBQUssR0FBR2QsQ0FBQyxHQUFHUCxTQUFsQjtBQUNBLE1BQU1zQixLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWWhCLENBQVosQ0FBZDtBQUVBLE1BQU1pQixXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLElBQWIsRUFBbUJQLEtBQW5CLEVBQTBCQyxLQUExQixFQUFpQ0MsS0FBakMsQ0FBcEI7QUFFQTs7QUFDQSxNQUFNTSxTQUFTLEdBQUcsVUFBbEI7QUFDQSxNQUFNQyxlQUFlLEdBQUdiLElBQUksQ0FBQ2MsTUFBTCxDQUFZRixTQUFaLENBQXhCOztBQUNBLE1BQUksQ0FBQ0MsZUFBTCxFQUFzQjtBQUNwQixXQUFPLEVBQVA7QUFDRDs7QUFDRCxPQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdGLGVBQWUsQ0FBQ0csTUFBcEMsRUFBNENELENBQUMsRUFBN0MsRUFBaUQ7QUFDL0MsUUFBTUUsaUJBQWlCLEdBQUdKLGVBQWUsQ0FBQ0ssT0FBaEIsQ0FBd0JILENBQXhCLENBQTFCO0FBQ0EsUUFBTUksUUFBUSxHQUFHQyx1QkFBdUIsQ0FBQ0gsaUJBQUQsRUFBb0JSLFdBQXBCLENBQXhDO0FBQ0FVLElBQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFBQyxDQUFDLEVBQUk7QUFDcEJBLE1BQUFBLENBQUMsQ0FBQ0MsVUFBRixDQUFhQyxLQUFiLEdBQXFCWixTQUFyQjs7QUFDQSxVQUFJVSxDQUFDLENBQUNDLFVBQUYsQ0FBYUUsTUFBakIsRUFBeUI7QUFDdkJ0QixRQUFBQSxNQUFNLENBQUN1QixJQUFQLENBQVlKLENBQVo7QUFDRDtBQUNGLEtBTEQ7QUFNRDs7QUFDRCxTQUFPbkIsTUFBUDtBQUNEOztBQUVELFNBQVNPLE9BQVQsQ0FBaUJwQixDQUFqQixFQUE0QkMsQ0FBNUIsRUFBdUNlLEtBQXZDLEVBQXNEcUIsSUFBdEQsRUFBd0VDLE1BQXhFLEVBQThGO0FBQzVGLE1BQU1DLFdBQVcsR0FBR0QsTUFBTSxHQUFHNUMsU0FBN0I7O0FBRUEsT0FBSyxJQUFJOEMsRUFBRSxHQUFHLENBQWQsRUFBaUJBLEVBQUUsR0FBR0gsSUFBSSxDQUFDWCxNQUEzQixFQUFtQ2MsRUFBRSxFQUFyQyxFQUF5QztBQUN2QyxRQUFNQyxDQUFDLEdBQUdKLElBQUksQ0FBQ0csRUFBRCxDQUFkLENBRHVDLENBRXZDOztBQUNBSCxJQUFBQSxJQUFJLENBQUNHLEVBQUQsQ0FBSixHQUFXLDRDQUFjLENBQUN4QyxDQUFDLEdBQUd5QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQU9GLFdBQVosRUFBeUJ0QyxDQUFDLEdBQUd3QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQU9GLFdBQXBDLENBQWQsRUFBZ0V2QixLQUFoRSxDQUFYO0FBQ0Q7QUFDRjtBQUVEOztBQUNBOzs7QUFDTyxTQUFTYyx1QkFBVCxDQUNMSCxpQkFESyxFQUVMUCxPQUZLLEVBR21FO0FBQ3hFLE1BQUlzQixNQUFxQyxHQUFHQyxjQUFjLENBQUNoQixpQkFBRCxDQUExRDtBQUNBLE1BQU1XLE1BQU0sR0FBR1gsaUJBQWlCLENBQUNXLE1BQWpDO0FBQ0EsTUFBSWIsQ0FBSjtBQUNBLE1BQUltQixDQUFKO0FBRUFGLEVBQUFBLE1BQU0sR0FBR0csYUFBYSxDQUFDSCxNQUFELENBQXRCOztBQUNBLE9BQUtqQixDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUdpQixNQUFNLENBQUNoQixNQUF2QixFQUErQkQsQ0FBQyxFQUFoQyxFQUFvQztBQUNsQyxTQUFLbUIsQ0FBQyxHQUFHLENBQVQsRUFBWUEsQ0FBQyxHQUFHRixNQUFNLENBQUNqQixDQUFELENBQU4sQ0FBVUMsTUFBMUIsRUFBa0NrQixDQUFDLEVBQW5DLEVBQXVDO0FBQ3JDeEIsTUFBQUEsT0FBTyxDQUFDc0IsTUFBTSxDQUFDakIsQ0FBRCxDQUFOLENBQVVtQixDQUFWLENBQUQsRUFBZU4sTUFBZixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPSSxNQUFNLENBQUNJLEdBQVAsQ0FBVyxVQUFBQyxXQUFXO0FBQUEsV0FBSztBQUNoQ0EsTUFBQUEsV0FBVyxFQUFYQSxXQURnQztBQUVoQ2QsTUFBQUEsVUFBVSxFQUFFTixpQkFBaUIsQ0FBQ007QUFGRSxLQUFMO0FBQUEsR0FBdEIsQ0FBUDtBQUlEOztBQUVELFNBQVNVLGNBQVQsQ0FBd0JoQixpQkFBeEIsRUFBNEU7QUFDMUUsTUFBTXFCLEdBQUcsR0FBR3JCLGlCQUFpQixDQUFDc0IsSUFBOUI7QUFDQUQsRUFBQUEsR0FBRyxDQUFDRSxHQUFKLEdBQVV2QixpQkFBaUIsQ0FBQ3dCLFNBQTVCO0FBRUEsTUFBTUMsR0FBRyxHQUFHSixHQUFHLENBQUNLLFVBQUosS0FBbUJMLEdBQUcsQ0FBQ0UsR0FBbkM7QUFDQSxNQUFJSSxHQUFHLEdBQUcsQ0FBVjtBQUNBLE1BQUk1QixNQUFNLEdBQUcsQ0FBYjtBQUNBLE1BQUkxQixDQUFDLEdBQUcsQ0FBUjtBQUNBLE1BQUlDLENBQUMsR0FBRyxDQUFSO0FBRUEsTUFBTXNELEtBQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJbEIsSUFBSjs7QUFFQSxTQUFPVyxHQUFHLENBQUNFLEdBQUosR0FBVUUsR0FBakIsRUFBc0I7QUFDcEIsUUFBSTFCLE1BQU0sSUFBSSxDQUFkLEVBQWlCO0FBQ2YsVUFBTThCLE1BQU0sR0FBR1IsR0FBRyxDQUFDSyxVQUFKLEVBQWY7QUFDQUMsTUFBQUEsR0FBRyxHQUFHRSxNQUFNLEdBQUcsR0FBZjtBQUNBOUIsTUFBQUEsTUFBTSxHQUFHOEIsTUFBTSxJQUFJLENBQW5CO0FBQ0Q7O0FBRUQ5QixJQUFBQSxNQUFNOztBQUVOLFFBQUk0QixHQUFHLEtBQUssQ0FBUixJQUFhQSxHQUFHLEtBQUssQ0FBekIsRUFBNEI7QUFDMUJ0RCxNQUFBQSxDQUFDLElBQUlnRCxHQUFHLENBQUNTLFdBQUosRUFBTDtBQUNBeEQsTUFBQUEsQ0FBQyxJQUFJK0MsR0FBRyxDQUFDUyxXQUFKLEVBQUw7O0FBRUEsVUFBSUgsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNiO0FBQ0EsWUFBSWpCLElBQUosRUFBVWtCLEtBQUssQ0FBQ25CLElBQU4sQ0FBV0MsSUFBWDtBQUNWQSxRQUFBQSxJQUFJLEdBQUcsRUFBUDtBQUNEOztBQUVELFVBQUlBLElBQUosRUFBVUEsSUFBSSxDQUFDRCxJQUFMLENBQVUsQ0FBQ3BDLENBQUQsRUFBSUMsQ0FBSixDQUFWO0FBQ1gsS0FYRCxNQVdPLElBQUlxRCxHQUFHLEtBQUssQ0FBWixFQUFlO0FBQ3BCO0FBQ0EsVUFBSWpCLElBQUosRUFBVTtBQUNSQSxRQUFBQSxJQUFJLENBQUNELElBQUwsQ0FBVUMsSUFBSSxDQUFDLENBQUQsQ0FBSixDQUFRcUIsS0FBUixFQUFWLEVBRFEsQ0FDbUU7QUFDNUU7QUFDRixLQUxNLE1BS0E7QUFDTCxZQUFNLElBQUlDLEtBQUosMkJBQTZCTCxHQUE3QixFQUFOO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJakIsSUFBSixFQUFVa0IsS0FBSyxDQUFDbkIsSUFBTixDQUFXQyxJQUFYO0FBRVYsU0FBT2tCLEtBQVA7QUFDRCxDLENBRUQ7OztBQUVBLFNBQVNWLGFBQVQsQ0FBdUJlLEtBQXZCLEVBQTREO0FBQzFELE1BQU1DLEdBQUcsR0FBR0QsS0FBSyxDQUFDbEMsTUFBbEI7QUFFQSxNQUFJbUMsR0FBRyxJQUFJLENBQVgsRUFBYyxPQUFPLENBQUNELEtBQUQsQ0FBUDtBQUVkLE1BQU1FLFFBQXdCLEdBQUcsRUFBakM7QUFDQSxNQUFJQyxPQUFKO0FBQ0EsTUFBSUMsR0FBSjs7QUFFQSxPQUFLLElBQUl2QyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHb0MsR0FBcEIsRUFBeUJwQyxDQUFDLEVBQTFCLEVBQThCO0FBQzVCLFFBQU13QyxJQUFJLEdBQUdDLFVBQVUsQ0FBQ04sS0FBSyxDQUFDbkMsQ0FBRCxDQUFOLENBQXZCOztBQUNBLFFBQUl3QyxJQUFJLEtBQUssQ0FBYixFQUFnQjtBQUNkO0FBQ0Q7O0FBRUQsUUFBSUQsR0FBRyxLQUFLRyxTQUFaLEVBQXVCO0FBQ3JCSCxNQUFBQSxHQUFHLEdBQUdDLElBQUksR0FBRyxDQUFiO0FBQ0Q7O0FBRUQsUUFBSUQsR0FBRyxLQUFLQyxJQUFJLEdBQUcsQ0FBbkIsRUFBc0I7QUFDcEIsVUFBSUYsT0FBSixFQUFhO0FBQ1hELFFBQUFBLFFBQVEsQ0FBQzFCLElBQVQsQ0FBYzJCLE9BQWQ7QUFDRDs7QUFDREEsTUFBQUEsT0FBTyxHQUFHLENBQUNILEtBQUssQ0FBQ25DLENBQUQsQ0FBTixDQUFWO0FBQ0QsS0FMRCxNQUtPLElBQUlzQyxPQUFKLEVBQWE7QUFDbEJBLE1BQUFBLE9BQU8sQ0FBQzNCLElBQVIsQ0FBYXdCLEtBQUssQ0FBQ25DLENBQUQsQ0FBbEI7QUFDRDtBQUNGOztBQUNELE1BQUlzQyxPQUFKLEVBQWE7QUFDWEQsSUFBQUEsUUFBUSxDQUFDMUIsSUFBVCxDQUFjMkIsT0FBZDtBQUNEOztBQUVELFNBQU9ELFFBQVA7QUFDRDs7QUFFRCxTQUFTSSxVQUFULENBQW9CRSxJQUFwQixFQUE4QztBQUM1QyxNQUFJQyxHQUFHLEdBQUcsQ0FBVjs7QUFDQSxPQUFLLElBQUk1QyxDQUFDLEdBQUcsQ0FBUixFQUFXb0MsR0FBRyxHQUFHTyxJQUFJLENBQUMxQyxNQUF0QixFQUE4QmtCLENBQUMsR0FBR2lCLEdBQUcsR0FBRyxDQUF4QyxFQUEyQ1MsRUFBM0MsRUFBeURDLEVBQTlELEVBQTRFOUMsQ0FBQyxHQUFHb0MsR0FBaEYsRUFBcUZqQixDQUFDLEdBQUduQixDQUFDLEVBQTFGLEVBQThGO0FBQzVGNkMsSUFBQUEsRUFBRSxHQUFHRixJQUFJLENBQUMzQyxDQUFELENBQVQ7QUFDQThDLElBQUFBLEVBQUUsR0FBR0gsSUFBSSxDQUFDeEIsQ0FBRCxDQUFUO0FBQ0F5QixJQUFBQSxHQUFHLElBQUksQ0FBQ0UsRUFBRSxDQUFDLENBQUQsQ0FBRixHQUFRRCxFQUFFLENBQUMsQ0FBRCxDQUFYLEtBQW1CQSxFQUFFLENBQUMsQ0FBRCxDQUFGLEdBQVFDLEVBQUUsQ0FBQyxDQUFELENBQTdCLENBQVA7QUFDRDs7QUFDRCxTQUFPRixHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUHJvdG9idWYgZnJvbSAncGJmJztcbmltcG9ydCB7VmVjdG9yVGlsZX0gZnJvbSAnQG1hcGJveC92ZWN0b3ItdGlsZSc7XG5pbXBvcnQge3dvcmxkVG9MbmdMYXR9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtcbiAgQ29vcmRpbmF0ZXMsXG4gIEZsYXRGaWd1cmUsXG4gIFRpbGVEYXRhSXRlbSxcbiAgVmVjdG9yVGlsZUZlYXR1cmUsXG4gIFZlY3RvclRpbGVGZWF0dXJlUHJvcGVydGllc1xufSBmcm9tICcuL3R5cGVzJztcblxuLyogZ2xvYmFsIGZldGNoICovXG5jb25zdCBUSUxFX1NJWkUgPSA1MTI7XG5jb25zdCBNQVBCT1hfSE9TVCA9ICdodHRwczovL2EudGlsZXMubWFwYm94LmNvbSc7XG5jb25zdCBNQVBfU09VUkNFID0gJy92NC9tYXBib3gubWFwYm94LXN0cmVldHMtdjcnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGlsZURhdGEoXG4gIGhvc3Q6IHN0cmluZyxcbiAgdG9rZW46IHN0cmluZyxcbiAge3gsIHksIHp9OiBDb29yZGluYXRlc1xuKTogUHJvbWlzZTxUaWxlRGF0YUl0ZW1bXT4ge1xuICBjb25zdCBtYXBTb3VyY2UgPSBgJHtob3N0IHx8XG4gICAgTUFQQk9YX0hPU1R9JHtNQVBfU09VUkNFfS8ke3p9LyR7eH0vJHt5fS52ZWN0b3IucGJmP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XG5cbiAgcmV0dXJuIGZldGNoKG1hcFNvdXJjZSlcbiAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5hcnJheUJ1ZmZlcigpKVxuICAgIC50aGVuKGJ1ZmZlciA9PiBkZWNvZGVUaWxlKHgsIHksIHosIGJ1ZmZlcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVGlsZShcbiAgeDogbnVtYmVyLFxuICB5OiBudW1iZXIsXG4gIHo6IG51bWJlcixcbiAgYXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyXG4pOiBUaWxlRGF0YUl0ZW1bXSB7XG4gIGNvbnN0IHRpbGUgPSBuZXcgVmVjdG9yVGlsZShuZXcgUHJvdG9idWYoYXJyYXlCdWZmZXIpKTtcblxuICBjb25zdCByZXN1bHQ6IFRpbGVEYXRhSXRlbVtdID0gW107XG4gIGNvbnN0IHhQcm9qID0geCAqIFRJTEVfU0laRTtcbiAgY29uc3QgeVByb2ogPSB5ICogVElMRV9TSVpFO1xuICBjb25zdCBzY2FsZSA9IE1hdGgucG93KDIsIHopO1xuXG4gIGNvbnN0IHByb2plY3RGdW5jID0gcHJvamVjdC5iaW5kKG51bGwsIHhQcm9qLCB5UHJvaiwgc2NhbGUpO1xuXG4gIC8qIGVzbGludC1kaXNhYmxlIGd1YXJkLWZvci1pbiAqL1xuICBjb25zdCBsYXllck5hbWUgPSAnYnVpbGRpbmcnO1xuICBjb25zdCB2ZWN0b3JUaWxlTGF5ZXIgPSB0aWxlLmxheWVyc1tsYXllck5hbWVdO1xuICBpZiAoIXZlY3RvclRpbGVMYXllcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZlY3RvclRpbGVMYXllci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHZlY3RvclRpbGVGZWF0dXJlID0gdmVjdG9yVGlsZUxheWVyLmZlYXR1cmUoaSk7XG4gICAgY29uc3QgZmVhdHVyZXMgPSB2ZWN0b3JUaWxlRmVhdHVyZVRvUHJvcCh2ZWN0b3JUaWxlRmVhdHVyZSwgcHJvamVjdEZ1bmMpO1xuICAgIGZlYXR1cmVzLmZvckVhY2goZiA9PiB7XG4gICAgICBmLnByb3BlcnRpZXMubGF5ZXIgPSBsYXllck5hbWU7XG4gICAgICBpZiAoZi5wcm9wZXJ0aWVzLmhlaWdodCkge1xuICAgICAgICByZXN1bHQucHVzaChmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0KHg6IG51bWJlciwgeTogbnVtYmVyLCBzY2FsZTogbnVtYmVyLCBsaW5lOiBGbGF0RmlndXJlLCBleHRlbnQ6IG51bWJlcik6IHZvaWQge1xuICBjb25zdCBzaXplVG9QaXhlbCA9IGV4dGVudCAvIFRJTEVfU0laRTtcblxuICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgbGluZS5sZW5ndGg7IGlpKyspIHtcbiAgICBjb25zdCBwID0gbGluZVtpaV07XG4gICAgLy8gTE5HTEFUXG4gICAgbGluZVtpaV0gPSB3b3JsZFRvTG5nTGF0KFt4ICsgcFswXSAvIHNpemVUb1BpeGVsLCB5ICsgcFsxXSAvIHNpemVUb1BpeGVsXSwgc2NhbGUpO1xuICB9XG59XG5cbi8qIGFkYXB0ZWQgZnJvbSBAbWFwYm94L3ZlY3Rvci10aWxlL2xpYi92ZWN0b3J0aWxlZmVhdHVyZS5qcyBmb3IgYmV0dGVyIHBlcmYgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AoXG4gIHZlY3RvclRpbGVGZWF0dXJlOiBWZWN0b3JUaWxlRmVhdHVyZSxcbiAgcHJvamVjdDogKHI6IEZsYXRGaWd1cmUsIG46IG51bWJlcikgPT4gdm9pZFxuKToge2Nvb3JkaW5hdGVzOiBGbGF0RmlndXJlW107IHByb3BlcnRpZXM6IFZlY3RvclRpbGVGZWF0dXJlUHJvcGVydGllc31bXSB7XG4gIGxldCBjb29yZHM6IEZsYXRGaWd1cmVbXVtdIHwgRmxhdEZpZ3VyZVtdID0gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmUpO1xuICBjb25zdCBleHRlbnQgPSB2ZWN0b3JUaWxlRmVhdHVyZS5leHRlbnQ7XG4gIGxldCBpOiBudW1iZXI7XG4gIGxldCBqOiBudW1iZXI7XG5cbiAgY29vcmRzID0gY2xhc3NpZnlSaW5ncyhjb29yZHMpO1xuICBmb3IgKGkgPSAwOyBpIDwgY29vcmRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChqID0gMDsgaiA8IGNvb3Jkc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgcHJvamVjdChjb29yZHNbaV1bal0sIGV4dGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvb3Jkcy5tYXAoY29vcmRpbmF0ZXMgPT4gKHtcbiAgICBjb29yZGluYXRlcyxcbiAgICBwcm9wZXJ0aWVzOiB2ZWN0b3JUaWxlRmVhdHVyZS5wcm9wZXJ0aWVzXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmU6IFZlY3RvclRpbGVGZWF0dXJlKTogRmxhdEZpZ3VyZVtdIHtcbiAgY29uc3QgcGJmID0gdmVjdG9yVGlsZUZlYXR1cmUuX3BiZjtcbiAgcGJmLnBvcyA9IHZlY3RvclRpbGVGZWF0dXJlLl9nZW9tZXRyeTtcblxuICBjb25zdCBlbmQgPSBwYmYucmVhZFZhcmludCgpICsgcGJmLnBvcztcbiAgbGV0IGNtZCA9IDE7XG4gIGxldCBsZW5ndGggPSAwO1xuICBsZXQgeCA9IDA7XG4gIGxldCB5ID0gMDtcblxuICBjb25zdCBsaW5lczogRmxhdEZpZ3VyZVtdID0gW107XG4gIGxldCBsaW5lOiBGbGF0RmlndXJlIHwgdW5kZWZpbmVkO1xuXG4gIHdoaWxlIChwYmYucG9zIDwgZW5kKSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwKSB7XG4gICAgICBjb25zdCBjbWRMZW4gPSBwYmYucmVhZFZhcmludCgpO1xuICAgICAgY21kID0gY21kTGVuICYgMHg3O1xuICAgICAgbGVuZ3RoID0gY21kTGVuID4+IDM7XG4gICAgfVxuXG4gICAgbGVuZ3RoLS07XG5cbiAgICBpZiAoY21kID09PSAxIHx8IGNtZCA9PT0gMikge1xuICAgICAgeCArPSBwYmYucmVhZFNWYXJpbnQoKTtcbiAgICAgIHkgKz0gcGJmLnJlYWRTVmFyaW50KCk7XG5cbiAgICAgIGlmIChjbWQgPT09IDEpIHtcbiAgICAgICAgLy8gbW92ZVRvXG4gICAgICAgIGlmIChsaW5lKSBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICBsaW5lID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lKSBsaW5lLnB1c2goW3gsIHldKTtcbiAgICB9IGVsc2UgaWYgKGNtZCA9PT0gNykge1xuICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBuaWstdmVjdG9yLXRpbGUvaXNzdWVzLzkwXG4gICAgICBpZiAobGluZSkge1xuICAgICAgICBsaW5lLnB1c2gobGluZVswXS5zbGljZSgpIGFzIFtudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pOyAvLyBjbG9zZVBvbHlnb25cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGNvbW1hbmQgJHtjbWR9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGxpbmUpIGxpbmVzLnB1c2gobGluZSk7XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG4vLyBjbGFzc2lmaWVzIGFuIGFycmF5IG9mIHJpbmdzIGludG8gcG9seWdvbnMgd2l0aCBvdXRlciByaW5ncyBhbmQgaG9sZXNcblxuZnVuY3Rpb24gY2xhc3NpZnlSaW5ncyhyaW5nczogRmxhdEZpZ3VyZVtdKTogRmxhdEZpZ3VyZVtdW10ge1xuICBjb25zdCBsZW4gPSByaW5ncy5sZW5ndGg7XG5cbiAgaWYgKGxlbiA8PSAxKSByZXR1cm4gW3JpbmdzXTtcblxuICBjb25zdCBwb2x5Z29uczogRmxhdEZpZ3VyZVtdW10gPSBbXTtcbiAgbGV0IHBvbHlnb246IEZsYXRGaWd1cmVbXSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNjdzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgYXJlYSA9IHNpZ25lZEFyZWEocmluZ3NbaV0pO1xuICAgIGlmIChhcmVhID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY2N3ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNjdyA9IGFyZWEgPCAwO1xuICAgIH1cblxuICAgIGlmIChjY3cgPT09IGFyZWEgPCAwKSB7XG4gICAgICBpZiAocG9seWdvbikge1xuICAgICAgICBwb2x5Z29ucy5wdXNoKHBvbHlnb24pO1xuICAgICAgfVxuICAgICAgcG9seWdvbiA9IFtyaW5nc1tpXV07XG4gICAgfSBlbHNlIGlmIChwb2x5Z29uKSB7XG4gICAgICBwb2x5Z29uLnB1c2gocmluZ3NbaV0pO1xuICAgIH1cbiAgfVxuICBpZiAocG9seWdvbikge1xuICAgIHBvbHlnb25zLnB1c2gocG9seWdvbik7XG4gIH1cblxuICByZXR1cm4gcG9seWdvbnM7XG59XG5cbmZ1bmN0aW9uIHNpZ25lZEFyZWEocmluZzogRmxhdEZpZ3VyZSk6IG51bWJlciB7XG4gIGxldCBzdW0gPSAwO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gcmluZy5sZW5ndGgsIGogPSBsZW4gLSAxLCBwMTogbnVtYmVyW10sIHAyOiBudW1iZXJbXTsgaSA8IGxlbjsgaiA9IGkrKykge1xuICAgIHAxID0gcmluZ1tpXTtcbiAgICBwMiA9IHJpbmdbal07XG4gICAgc3VtICs9IChwMlswXSAtIHAxWzBdKSAqIChwMVsxXSArIHAyWzFdKTtcbiAgfVxuICByZXR1cm4gc3VtO1xufVxuIl19
|
213
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy11dGlscy50cyJdLCJuYW1lcyI6WyJUSUxFX1NJWkUiLCJNQVBCT1hfSE9TVCIsIk1BUF9TT1VSQ0UiLCJnZXRUaWxlRGF0YSIsImhvc3QiLCJ0b2tlbiIsImluZGV4IiwieCIsInkiLCJ6IiwibWFwU291cmNlIiwiZmV0Y2giLCJ0aGVuIiwicmVzcG9uc2UiLCJhcnJheUJ1ZmZlciIsImJ1ZmZlciIsImRlY29kZVRpbGUiLCJ0aWxlIiwiVmVjdG9yVGlsZSIsIlByb3RvYnVmIiwicmVzdWx0IiwieFByb2oiLCJ5UHJvaiIsInNjYWxlIiwiTWF0aCIsInBvdyIsInByb2plY3RGdW5jIiwicHJvamVjdCIsImJpbmQiLCJsYXllck5hbWUiLCJ2ZWN0b3JUaWxlTGF5ZXIiLCJsYXllcnMiLCJpIiwibGVuZ3RoIiwidmVjdG9yVGlsZUZlYXR1cmUiLCJmZWF0dXJlIiwiZmVhdHVyZXMiLCJ2ZWN0b3JUaWxlRmVhdHVyZVRvUHJvcCIsImZvckVhY2giLCJmIiwicHJvcGVydGllcyIsImxheWVyIiwiaGVpZ2h0IiwicHVzaCIsImxpbmUiLCJleHRlbnQiLCJzaXplVG9QaXhlbCIsImlpIiwicCIsImNvb3JkcyIsImdldENvb3JkaW5hdGVzIiwiaiIsImNsYXNzaWZ5UmluZ3MiLCJtYXAiLCJjb29yZGluYXRlcyIsInBiZiIsIl9wYmYiLCJwb3MiLCJfZ2VvbWV0cnkiLCJlbmQiLCJyZWFkVmFyaW50IiwiY21kIiwibGluZXMiLCJjbWRMZW4iLCJyZWFkU1ZhcmludCIsInNsaWNlIiwiRXJyb3IiLCJyaW5ncyIsImxlbiIsInBvbHlnb25zIiwicG9seWdvbiIsImNjdyIsImFyZWEiLCJzaWduZWRBcmVhIiwidW5kZWZpbmVkIiwicmluZyIsInN1bSIsInAxIiwicDIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQXRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUFRLENBQUMxQixJQUFULENBQWMyQixPQUFkO0FBQ0Q7O0FBQ0RBLE1BQUFBLE9BQU8sR0FBRyxDQUFDSCxLQUFLLENBQUNuQyxDQUFELENBQU4sQ0FBVjtBQUNELEtBTEQsTUFLTyxJQUFJc0MsT0FBSixFQUFhO0FBQ2xCQSxNQUFBQSxPQUFPLENBQUMzQixJQUFSLENBQWF3QixLQUFLLENBQUNuQyxDQUFELENBQWxCO0FBQ0Q7QUFDRjs7QUFDRCxNQUFJc0MsT0FBSixFQUFhO0FBQ1hELElBQUFBLFFBQVEsQ0FBQzFCLElBQVQsQ0FBYzJCLE9BQWQ7QUFDRDs7QUFFRCxTQUFPRCxRQUFQO0FBQ0Q7O0FBRUQsU0FBU0ksVUFBVCxDQUFvQkUsSUFBcEIsRUFBOEM7QUFDNUMsTUFBSUMsR0FBRyxHQUFHLENBQVY7O0FBQ0EsT0FBSyxJQUFJNUMsQ0FBQyxHQUFHLENBQVIsRUFBV29DLEdBQUcsR0FBR08sSUFBSSxDQUFDMUMsTUFBdEIsRUFBOEJrQixDQUFDLEdBQUdpQixHQUFHLEdBQUcsQ0FBeEMsRUFBMkNTLEVBQTNDLEVBQXlEQyxFQUE5RCxFQUE0RTlDLENBQUMsR0FBR29DLEdBQWhGLEVBQXFGakIsQ0FBQyxHQUFHbkIsQ0FBQyxFQUExRixFQUE4RjtBQUM1RjZDLElBQUFBLEVBQUUsR0FBR0YsSUFBSSxDQUFDM0MsQ0FBRCxDQUFUO0FBQ0E4QyxJQUFBQSxFQUFFLEdBQUdILElBQUksQ0FBQ3hCLENBQUQsQ0FBVDtBQUNBeUIsSUFBQUEsR0FBRyxJQUFJLENBQUNFLEVBQUUsQ0FBQyxDQUFELENBQUYsR0FBUUQsRUFBRSxDQUFDLENBQUQsQ0FBWCxLQUFtQkEsRUFBRSxDQUFDLENBQUQsQ0FBRixHQUFRQyxFQUFFLENBQUMsQ0FBRCxDQUE3QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBT0YsR0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFByb3RvYnVmIGZyb20gJ3BiZic7XG5pbXBvcnQge1ZlY3RvclRpbGV9IGZyb20gJ0BtYXBib3gvdmVjdG9yLXRpbGUnO1xuaW1wb3J0IHt3b3JsZFRvTG5nTGF0fSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7XG4gIENvb3JkaW5hdGVzLFxuICBGbGF0RmlndXJlLFxuICBUaWxlRGF0YUl0ZW0sXG4gIFZlY3RvclRpbGVGZWF0dXJlLFxuICBWZWN0b3JUaWxlRmVhdHVyZVByb3BlcnRpZXNcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qIGdsb2JhbCBmZXRjaCAqL1xuY29uc3QgVElMRV9TSVpFID0gNTEyO1xuY29uc3QgTUFQQk9YX0hPU1QgPSAnaHR0cHM6Ly9hLnRpbGVzLm1hcGJveC5jb20nO1xuY29uc3QgTUFQX1NPVVJDRSA9ICcvdjQvbWFwYm94Lm1hcGJveC1zdHJlZXRzLXY3JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbGVEYXRhKFxuICBob3N0OiBzdHJpbmcsXG4gIHRva2VuOiBzdHJpbmcsXG4gIHtpbmRleDoge3gsIHksIHp9fToge2luZGV4OiBDb29yZGluYXRlc31cbik6IFByb21pc2U8VGlsZURhdGFJdGVtW10+IHtcbiAgY29uc3QgbWFwU291cmNlID0gYCR7aG9zdCB8fFxuICAgIE1BUEJPWF9IT1NUfSR7TUFQX1NPVVJDRX0vJHt6fS8ke3h9LyR7eX0udmVjdG9yLnBiZj9hY2Nlc3NfdG9rZW49JHt0b2tlbn1gO1xuXG4gIHJldHVybiBmZXRjaChtYXBTb3VyY2UpXG4gICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSlcbiAgICAudGhlbihidWZmZXIgPT4gZGVjb2RlVGlsZSh4LCB5LCB6LCBidWZmZXIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRpbGUoXG4gIHg6IG51bWJlcixcbiAgeTogbnVtYmVyLFxuICB6OiBudW1iZXIsXG4gIGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlclxuKTogVGlsZURhdGFJdGVtW10ge1xuICBjb25zdCB0aWxlID0gbmV3IFZlY3RvclRpbGUobmV3IFByb3RvYnVmKGFycmF5QnVmZmVyKSk7XG5cbiAgY29uc3QgcmVzdWx0OiBUaWxlRGF0YUl0ZW1bXSA9IFtdO1xuICBjb25zdCB4UHJvaiA9IHggKiBUSUxFX1NJWkU7XG4gIGNvbnN0IHlQcm9qID0geSAqIFRJTEVfU0laRTtcbiAgY29uc3Qgc2NhbGUgPSBNYXRoLnBvdygyLCB6KTtcblxuICBjb25zdCBwcm9qZWN0RnVuYyA9IHByb2plY3QuYmluZChudWxsLCB4UHJvaiwgeVByb2osIHNjYWxlKTtcblxuICAvKiBlc2xpbnQtZGlzYWJsZSBndWFyZC1mb3ItaW4gKi9cbiAgY29uc3QgbGF5ZXJOYW1lID0gJ2J1aWxkaW5nJztcbiAgY29uc3QgdmVjdG9yVGlsZUxheWVyID0gdGlsZS5sYXllcnNbbGF5ZXJOYW1lXTtcbiAgaWYgKCF2ZWN0b3JUaWxlTGF5ZXIpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2ZWN0b3JUaWxlTGF5ZXIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB2ZWN0b3JUaWxlRmVhdHVyZSA9IHZlY3RvclRpbGVMYXllci5mZWF0dXJlKGkpO1xuICAgIGNvbnN0IGZlYXR1cmVzID0gdmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AodmVjdG9yVGlsZUZlYXR1cmUsIHByb2plY3RGdW5jKTtcbiAgICBmZWF0dXJlcy5mb3JFYWNoKGYgPT4ge1xuICAgICAgZi5wcm9wZXJ0aWVzLmxheWVyID0gbGF5ZXJOYW1lO1xuICAgICAgaWYgKGYucHJvcGVydGllcy5oZWlnaHQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goZik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcHJvamVjdCh4OiBudW1iZXIsIHk6IG51bWJlciwgc2NhbGU6IG51bWJlciwgbGluZTogRmxhdEZpZ3VyZSwgZXh0ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgY29uc3Qgc2l6ZVRvUGl4ZWwgPSBleHRlbnQgLyBUSUxFX1NJWkU7XG5cbiAgZm9yIChsZXQgaWkgPSAwOyBpaSA8IGxpbmUubGVuZ3RoOyBpaSsrKSB7XG4gICAgY29uc3QgcCA9IGxpbmVbaWldO1xuICAgIC8vIExOR0xBVFxuICAgIGxpbmVbaWldID0gd29ybGRUb0xuZ0xhdChbeCArIHBbMF0gLyBzaXplVG9QaXhlbCwgeSArIHBbMV0gLyBzaXplVG9QaXhlbF0sIHNjYWxlKTtcbiAgfVxufVxuXG4vKiBhZGFwdGVkIGZyb20gQG1hcGJveC92ZWN0b3ItdGlsZS9saWIvdmVjdG9ydGlsZWZlYXR1cmUuanMgZm9yIGJldHRlciBwZXJmICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvclRpbGVGZWF0dXJlVG9Qcm9wKFxuICB2ZWN0b3JUaWxlRmVhdHVyZTogVmVjdG9yVGlsZUZlYXR1cmUsXG4gIHByb2plY3Q6IChyOiBGbGF0RmlndXJlLCBuOiBudW1iZXIpID0+IHZvaWRcbik6IHtjb29yZGluYXRlczogRmxhdEZpZ3VyZVtdOyBwcm9wZXJ0aWVzOiBWZWN0b3JUaWxlRmVhdHVyZVByb3BlcnRpZXN9W10ge1xuICBsZXQgY29vcmRzOiBGbGF0RmlndXJlW11bXSB8IEZsYXRGaWd1cmVbXSA9IGdldENvb3JkaW5hdGVzKHZlY3RvclRpbGVGZWF0dXJlKTtcbiAgY29uc3QgZXh0ZW50ID0gdmVjdG9yVGlsZUZlYXR1cmUuZXh0ZW50O1xuICBsZXQgaTogbnVtYmVyO1xuICBsZXQgajogbnVtYmVyO1xuXG4gIGNvb3JkcyA9IGNsYXNzaWZ5UmluZ3MoY29vcmRzKTtcbiAgZm9yIChpID0gMDsgaSA8IGNvb3Jkcy5sZW5ndGg7IGkrKykge1xuICAgIGZvciAoaiA9IDA7IGogPCBjb29yZHNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgIHByb2plY3QoY29vcmRzW2ldW2pdLCBleHRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb29yZHMubWFwKGNvb3JkaW5hdGVzID0+ICh7XG4gICAgY29vcmRpbmF0ZXMsXG4gICAgcHJvcGVydGllczogdmVjdG9yVGlsZUZlYXR1cmUucHJvcGVydGllc1xuICB9KSk7XG59XG5cbmZ1bmN0aW9uIGdldENvb3JkaW5hdGVzKHZlY3RvclRpbGVGZWF0dXJlOiBWZWN0b3JUaWxlRmVhdHVyZSk6IEZsYXRGaWd1cmVbXSB7XG4gIGNvbnN0IHBiZiA9IHZlY3RvclRpbGVGZWF0dXJlLl9wYmY7XG4gIHBiZi5wb3MgPSB2ZWN0b3JUaWxlRmVhdHVyZS5fZ2VvbWV0cnk7XG5cbiAgY29uc3QgZW5kID0gcGJmLnJlYWRWYXJpbnQoKSArIHBiZi5wb3M7XG4gIGxldCBjbWQgPSAxO1xuICBsZXQgbGVuZ3RoID0gMDtcbiAgbGV0IHggPSAwO1xuICBsZXQgeSA9IDA7XG5cbiAgY29uc3QgbGluZXM6IEZsYXRGaWd1cmVbXSA9IFtdO1xuICBsZXQgbGluZTogRmxhdEZpZ3VyZSB8IHVuZGVmaW5lZDtcblxuICB3aGlsZSAocGJmLnBvcyA8IGVuZCkge1xuICAgIGlmIChsZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgY21kTGVuID0gcGJmLnJlYWRWYXJpbnQoKTtcbiAgICAgIGNtZCA9IGNtZExlbiAmIDB4NztcbiAgICAgIGxlbmd0aCA9IGNtZExlbiA+PiAzO1xuICAgIH1cblxuICAgIGxlbmd0aC0tO1xuXG4gICAgaWYgKGNtZCA9PT0gMSB8fCBjbWQgPT09IDIpIHtcbiAgICAgIHggKz0gcGJmLnJlYWRTVmFyaW50KCk7XG4gICAgICB5ICs9IHBiZi5yZWFkU1ZhcmludCgpO1xuXG4gICAgICBpZiAoY21kID09PSAxKSB7XG4gICAgICAgIC8vIG1vdmVUb1xuICAgICAgICBpZiAobGluZSkgbGluZXMucHVzaChsaW5lKTtcbiAgICAgICAgbGluZSA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAobGluZSkgbGluZS5wdXNoKFt4LCB5XSk7XG4gICAgfSBlbHNlIGlmIChjbWQgPT09IDcpIHtcbiAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXBib3gvbWFwbmlrLXZlY3Rvci10aWxlL2lzc3Vlcy85MFxuICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgbGluZS5wdXNoKGxpbmVbMF0uc2xpY2UoKSBhcyBbbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKTsgLy8gY2xvc2VQb2x5Z29uXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBjb21tYW5kICR7Y21kfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChsaW5lKSBsaW5lcy5wdXNoKGxpbmUpO1xuXG4gIHJldHVybiBsaW5lcztcbn1cblxuLy8gY2xhc3NpZmllcyBhbiBhcnJheSBvZiByaW5ncyBpbnRvIHBvbHlnb25zIHdpdGggb3V0ZXIgcmluZ3MgYW5kIGhvbGVzXG5cbmZ1bmN0aW9uIGNsYXNzaWZ5UmluZ3MocmluZ3M6IEZsYXRGaWd1cmVbXSk6IEZsYXRGaWd1cmVbXVtdIHtcbiAgY29uc3QgbGVuID0gcmluZ3MubGVuZ3RoO1xuXG4gIGlmIChsZW4gPD0gMSkgcmV0dXJuIFtyaW5nc107XG5cbiAgY29uc3QgcG9seWdvbnM6IEZsYXRGaWd1cmVbXVtdID0gW107XG4gIGxldCBwb2x5Z29uOiBGbGF0RmlndXJlW10gfCB1bmRlZmluZWQ7XG4gIGxldCBjY3c6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGFyZWEgPSBzaWduZWRBcmVhKHJpbmdzW2ldKTtcbiAgICBpZiAoYXJlYSA9PT0gMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGNjdyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjY3cgPSBhcmVhIDwgMDtcbiAgICB9XG5cbiAgICBpZiAoY2N3ID09PSBhcmVhIDwgMCkge1xuICAgICAgaWYgKHBvbHlnb24pIHtcbiAgICAgICAgcG9seWdvbnMucHVzaChwb2x5Z29uKTtcbiAgICAgIH1cbiAgICAgIHBvbHlnb24gPSBbcmluZ3NbaV1dO1xuICAgIH0gZWxzZSBpZiAocG9seWdvbikge1xuICAgICAgcG9seWdvbi5wdXNoKHJpbmdzW2ldKTtcbiAgICB9XG4gIH1cbiAgaWYgKHBvbHlnb24pIHtcbiAgICBwb2x5Z29ucy5wdXNoKHBvbHlnb24pO1xuICB9XG5cbiAgcmV0dXJuIHBvbHlnb25zO1xufVxuXG5mdW5jdGlvbiBzaWduZWRBcmVhKHJpbmc6IEZsYXRGaWd1cmUpOiBudW1iZXIge1xuICBsZXQgc3VtID0gMDtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHJpbmcubGVuZ3RoLCBqID0gbGVuIC0gMSwgcDE6IG51bWJlcltdLCBwMjogbnVtYmVyW107IGkgPCBsZW47IGogPSBpKyspIHtcbiAgICBwMSA9IHJpbmdbaV07XG4gICAgcDIgPSByaW5nW2pdO1xuICAgIHN1bSArPSAocDJbMF0gLSBwMVswXSkgKiAocDFbMV0gKyBwMlsxXSk7XG4gIH1cbiAgcmV0dXJuIHN1bTtcbn1cbiJdfQ==
|
@@ -1,4 +1,18 @@
|
|
1
1
|
import { RGBColor } from '@kepler.gl/types';
|
2
|
+
export declare type TileIndex = {
|
3
|
+
x: number;
|
4
|
+
y: number;
|
5
|
+
z: number;
|
6
|
+
};
|
7
|
+
export declare type TileLoadProps = {
|
8
|
+
id: string;
|
9
|
+
index: TileIndex;
|
10
|
+
bbox: any;
|
11
|
+
url?: string | null;
|
12
|
+
signal?: AbortSignal;
|
13
|
+
userData?: Record<string, any>;
|
14
|
+
zoom?: number;
|
15
|
+
};
|
2
16
|
export declare type ThreeDBuildingLayerProps = {
|
3
17
|
id: string;
|
4
18
|
mapboxApiAccessToken: string;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -346,4 +346,4 @@ var ClusterLayer = /*#__PURE__*/function (_AggregationLayer) {
|
|
346
346
|
exports["default"] = ClusterLayer;
|
347
347
|
ClusterLayer.layerName = 'ClusterLayer';
|
348
348
|
ClusterLayer.defaultProps = defaultProps;
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwibGVuZ3RoIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsInZpZXdwb3J0IiwiZGF0YSIsImdldFBvc2l0aW9uIiwiZmlsdGVyRGF0YSIsImdlb0pTT04iLCJjbHVzdGVyQnVpbGRlciIsIkNsdXN0ZXJCdWlsZGVyIiwic2V0U3RhdGUiLCJnZXRDbHVzdGVycyIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJwb3NpdGlvbiIsInByb3AiLCJ1cGRhdGVUcmlnZ2VyIiwidXBkYXRlciIsImdldFJhZGl1c1ZhbHVlRG9tYWluIiwiZGltZW5zaW9uVXBkYXRlciIsInZhbHVlRG9tYWluIiwiX3NldERpbWVuc2lvblN0YXRlIiwiY2x1c3RlckxheWVyRGltZW5zaW9ucyIsImRlZmF1bHRDb2xvckRpbWVuc2lvbiIsImFjY2Vzc29yIiwibnVsbFZhbHVlIiwidmFsdWUiLCJkb21haW4iLCJyYW5nZSIsInNjYWxlVHlwZSIsImdldERpbWVuc2lvblNjYWxlIiwiZ2V0U3ViTGF5ZXJBY2Nlc3NvciIsImdldFBpY2tpbmdJbmZvIiwicmFkaXVzVmFsdWUiLCJkZWZhdWx0UHJvcHMiLCJjb2xvckRvbWFpbiIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JTY2FsZVR5cGUiLCJTQ0FMRV9UWVBFUyIsInF1YW50aXplIiwicmFkaXVzU2NhbGVUeXBlIiwic3FydCIsInJhZGl1c1JhbmdlIiwidHlwZSIsIngiLCJnZXRDb2xvclZhbHVlIiwiQ2x1c3RlckxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsInVwZGF0ZVN0YXRlIiwiY29udGV4dCIsImF0dHJpYnV0ZXMiLCJnZXRBdHRyaWJ1dGVzIiwibnVtSW5zdGFuY2VzIiwiZ2V0TnVtSW5zdGFuY2VzIiwiaW5mbyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJpZCIsInJhZGl1c1NjYWxlIiwidmlzaWJsZSIsIm9wYWNpdHkiLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJoaWdobGlnaHRDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwibWV0ZXJzUGVyUGl4ZWwiLCJTY2F0dGVycGxvdExheWVyIiwicGFyYW1ldGVycyIsImRlcHRoTWFzayIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7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QUYvQjtBQUdMdUYsUUFBQUEsV0FBVyxFQUFFVyxjQUFjLEdBQUdYLFdBSHpCO0FBSUxDLFFBQUFBLE9BQU8sRUFBUEEsT0FKSztBQUtMQyxRQUFBQSxPQUFPLEVBQVBBLE9BTEs7QUFNTEMsUUFBQUEsUUFBUSxFQUFSQSxRQU5LO0FBT0xDLFFBQUFBLGFBQWEsRUFBYkEsYUFQSztBQVFMQyxRQUFBQSxjQUFjLEVBQWRBLGNBUks7QUFTTEMsUUFBQUEsY0FBYyxFQUFkQSxjQVRLO0FBVUxPLFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUU7QUFERDtBQVZQLFNBYUZOLFNBYkUsRUFBUDtBQWVEOzs7RUFoRnVDTyxvQzs7O0FBbUYxQ3ZDLFlBQVksQ0FBQ3dDLFNBQWIsR0FBeUIsY0FBekI7QUFDQXhDLFlBQVksQ0FBQ2IsWUFBYixHQUE0QkEsWUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge19BZ2dyZWdhdGlvbkxheWVyIGFzIEFnZ3JlZ2F0aW9uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQgQ1BVQWdncmVnYXRvciwge1xuICBBZ2dyZWdhdGlvblR5cGUsXG4gIGRlZmF1bHRDb2xvckRpbWVuc2lvbixcbiAgRGltZW5zaW9uVHlwZSxcbiAgZ2V0RGltZW5zaW9uU2NhbGVcbn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge21heH0gZnJvbSAnZDMtYXJyYXknO1xuXG5pbXBvcnQge1NDQUxFX1RZUEVTLCBERUZBVUxUX0NPTE9SX1JBTkdFLCBMQVlFUl9WSVNfQ09ORklHU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IENsdXN0ZXJCdWlsZGVyLCB7Z2V0R2VvSlNPTn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY2x1c3Rlci11dGlscyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0FnZ3JlZ2F0aW9uTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzL2FnZ3JlZ2F0aW9uLWxheWVyJztcblxuY29uc3QgZGVmYXVsdFJhZGl1cyA9IExBWUVSX1ZJU19DT05GSUdTLmNsdXN0ZXJSYWRpdXMuZGVmYXVsdFZhbHVlO1xuY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gTEFZRVJfVklTX0NPTkZJR1MuY2x1c3RlclJhZGl1c1JhbmdlLmRlZmF1bHRWYWx1ZTtcblxuY29uc3QgZGVmYXVsdEdldENvbG9yVmFsdWUgPSBwb2ludHMgPT4gcG9pbnRzLmxlbmd0aDtcbmNvbnN0IGRlZmF1bHRHZXRSYWRpdXNWYWx1ZSA9IGNlbGwgPT5cbiAgY2VsbC5maWx0ZXJlZFBvaW50cyA/IGNlbGwuZmlsdGVyZWRQb2ludHMubGVuZ3RoIDogY2VsbC5wb2ludHMubGVuZ3RoO1xuXG5mdW5jdGlvbiBwcm9jZXNzR2VvSlNPTih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgYWdncmVnYXRpb24sIHt2aWV3cG9ydH0pIHtcbiAgY29uc3Qge2RhdGEsIGdldFBvc2l0aW9uLCBmaWx0ZXJEYXRhfSA9IHByb3BzO1xuICBjb25zdCBnZW9KU09OID0gZ2V0R2VvSlNPTihkYXRhLCBnZXRQb3NpdGlvbiwgZmlsdGVyRGF0YSk7XG4gIGNvbnN0IGNsdXN0ZXJCdWlsZGVyID0gbmV3IENsdXN0ZXJCdWlsZGVyKCk7XG5cbiAgdGhpcy5zZXRTdGF0ZSh7Z2VvSlNPTiwgY2x1c3RlckJ1aWxkZXJ9KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2x1c3RlcnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGFnZ3JlZ2F0aW9uLCB7dmlld3BvcnR9KSB7XG4gIGNvbnN0IHtnZW9KU09OLCBjbHVzdGVyQnVpbGRlcn0gPSB0aGlzLnN0YXRlO1xuICBjb25zdCB7Y2x1c3RlclJhZGl1cywgem9vbSwgd2lkdGgsIGhlaWdodH0gPSBwcm9wcztcbiAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGV9ID0gdmlld3BvcnQ7XG5cbiAgLy8gem9vbSBuZWVkcyB0byBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgZGlmZmVyZW50IG1hcCB1dGlscy4gQWxzbyBoZWxwcyB3aXRoIGNhY2hlIGtleS5cbiAgY29uc3QgYmJveCA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHpvb20sIFt3aWR0aCwgaGVpZ2h0XSk7XG4gIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlckJ1aWxkZXIuY2x1c3RlcnNBdFpvb20oe2Jib3gsIGNsdXN0ZXJSYWRpdXMsIGdlb0pTT04sIHpvb219KTtcblxuICB0aGlzLnNldFN0YXRlKHtcbiAgICBsYXllckRhdGE6IHtkYXRhOiBjbHVzdGVyc31cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyUmFkaXVzKGRpbWVuc2lvblN0YXRlLCBkaW1lbnNpb24sIGxheWVyUHJvcHMpIHtcbiAgcmV0dXJuIGNlbGwgPT4ge1xuICAgIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBsYXllclByb3BzO1xuICAgIGNvbnN0IHtzY2FsZUZ1bmN9ID0gZGltZW5zaW9uU3RhdGU7XG4gICAgcmV0dXJuIHNjYWxlRnVuYyhnZXRSYWRpdXNWYWx1ZShjZWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBjbHVzdGVyQWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiAncG9zaXRpb24nLFxuICB1cGRhdGVTdGVwczogW1xuICAgIHtcbiAgICAgIGtleTogJ2dlb2pzb24nLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0UG9zaXRpb24nLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRQb3NpdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdmaWx0ZXJEYXRhJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZmlsdGVyRGF0YSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IHByb2Nlc3NHZW9KU09OXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdjbHVzdGVyaW5nJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICAgICAgICBwcm9wOiAnY2x1c3RlclJhZGl1cydcbiAgICAgICAgfSxcbiAgICAgICAgem9vbToge1xuICAgICAgICAgIHByb3A6ICd6b29tJ1xuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgIHByb3A6ICd3aWR0aCdcbiAgICAgICAgfSxcbiAgICAgICAgaGVpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2hlaWdodCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldENsdXN0ZXJzXG4gICAgfVxuICBdXG59O1xuXG5mdW5jdGlvbiBnZXRSYWRpdXNWYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBwcm9wcztcbiAgY29uc3Qge2xheWVyRGF0YX0gPSB0aGlzLnN0YXRlO1xuXG4gIGNvbnN0IHZhbHVlRG9tYWluID0gWzAsIG1heChsYXllckRhdGEuZGF0YSwgZ2V0UmFkaXVzVmFsdWUpXTtcbiAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7dmFsdWVEb21haW59KTtcbn1cblxuY29uc3QgY2x1c3RlckxheWVyRGltZW5zaW9uczogW0RpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiwgRGltZW5zaW9uVHlwZTxudW1iZXI+XSA9IFtcbiAgZGVmYXVsdENvbG9yRGltZW5zaW9uLFxuICB7XG4gICAga2V5OiAncmFkaXVzJyxcbiAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgbnVsbFZhbHVlOiAwLFxuICAgIHVwZGF0ZVN0ZXBzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2dldERvbWFpbicsXG4gICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3A6ICdnZXRSYWRpdXNWYWx1ZScsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UmFkaXVzVmFsdWUnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVyOiBnZXRSYWRpdXNWYWx1ZURvbWFpblxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2V0U2NhbGVGdW5jJyxcbiAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICBkb21haW46IHtwcm9wOiAncmFkaXVzRG9tYWluJ30sXG4gICAgICAgICAgcmFuZ2U6IHtwcm9wOiAncmFkaXVzUmFuZ2UnfSxcbiAgICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAncmFkaXVzU2NhbGVUeXBlJ31cbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU2NhbGVcbiAgICAgIH1cbiAgICBdLFxuICAgIGdldFN1YkxheWVyQWNjZXNzb3I6IGdldFN1YkxheWVyUmFkaXVzLFxuICAgIGdldFBpY2tpbmdJbmZvOiAoZGltZW5zaW9uU3RhdGUsIGNlbGwsIGxheWVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IHJhZGl1c1ZhbHVlID0gbGF5ZXJQcm9wcy5nZXRSYWRpdXNWYWx1ZShjZWxsKTtcbiAgICAgIHJldHVybiB7cmFkaXVzVmFsdWV9O1xuICAgIH1cbiAgfVxuXTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjbHVzdGVyUmFkaXVzOiBkZWZhdWx0UmFkaXVzLFxuICBjb2xvckRvbWFpbjogbnVsbCxcbiAgY29sb3JSYW5nZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgY29sb3JTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnF1YW50aXplLFxuICByYWRpdXNTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnNxcnQsXG4gIHJhZGl1c1JhbmdlOiBkZWZhdWx0UmFkaXVzUmFuZ2UsXG4gIGdldFBvc2l0aW9uOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IHggPT4geC5wb3NpdGlvbn0sXG4gIGdldENvbG9yVmFsdWU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogZGVmYXVsdEdldENvbG9yVmFsdWV9LFxuICBnZXRSYWRpdXNWYWx1ZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBkZWZhdWx0R2V0UmFkaXVzVmFsdWV9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbHVzdGVyTGF5ZXIgZXh0ZW5kcyBBZ2dyZWdhdGlvbkxheWVyPFxuICBhbnksXG4gIEFnZ3JlZ2F0aW9uTGF5ZXJQcm9wczxhbnk+ICYge3JhZGl1c1NjYWxlOiBudW1iZXJ9XG4+IHtcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IGNwdUFnZ3JlZ2F0b3IgPSBuZXcgQ1BVQWdncmVnYXRvcih7XG4gICAgICBhZ2dyZWdhdGlvbjogY2x1c3RlckFnZ3JlZ2F0aW9uLFxuICAgICAgZGltZW5zaW9uczogY2x1c3RlckxheWVyRGltZW5zaW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgLy8gbWFrZSBhIGNvcHkgb2YgdGhlIGludGVybmFsIHN0YXRlIG9mIGNwdUFnZ3JlZ2F0b3IgZm9yIHRlc3RpbmdcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLnVwZGF0ZVN0YXRlKFxuICAgICAgICB7b2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFnc30sXG4gICAgICAgIHtcbiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5jb250ZXh0LnZpZXdwb3J0LFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuZ2V0QXR0cmlidXRlcygpLFxuICAgICAgICAgIG51bUluc3RhbmNlczogdGhpcy5nZXROdW1JbnN0YW5jZXMocHJvcHMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0UGlja2luZ0luZm8oe2luZm99LCB0aGlzLnByb3BzKTtcbiAgfVxuXG4gIF9nZXRTdWJsYXllclVwZGF0ZVRyaWdnZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0VXBkYXRlVHJpZ2dlcnModGhpcy5wcm9wcyk7XG4gIH1cblxuICBfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFJhZGl1czogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdyYWRpdXMnLCB0aGlzLnByb3BzKSxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdmaWxsQ29sb3InLCB0aGlzLnByb3BzKVxuICAgIH07XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgLy8gZm9yIHN1YmNsYXNzaW5nLCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm5cbiAgICAvLyBjdXN0b21pemVkIHN1YiBsYXllciBwcm9wc1xuICAgIGNvbnN0IHtpZCwgcmFkaXVzU2NhbGV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7Y3B1QWdncmVnYXRvcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFzZSBsYXllciBwcm9wc1xuICAgIGNvbnN0IHt2aXNpYmxlLCBvcGFjaXR5LCBwaWNrYWJsZSwgYXV0b0hpZ2hsaWdodCwgaGlnaGxpZ2h0Q29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHRoaXMuX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMoKTtcbiAgICBjb25zdCBhY2Nlc3NvcnMgPSB0aGlzLl9nZXRTdWJMYXllckFjY2Vzc29ycygpO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGRpc3RhbmNlU2NhbGUgPSBnZXREaXN0YW5jZVNjYWxlcyh0aGlzLmNvbnRleHQudmlld3BvcnQpO1xuICAgIGNvbnN0IG1ldGVyc1BlclBpeGVsID0gZGlzdGFuY2VTY2FsZS5tZXRlcnNQZXJQaXhlbFswXTtcblxuICAgIC8vIHJldHVybiBwcm9wcyB0byB0aGUgc3VibGF5ZXIgY29uc3RydWN0b3JcbiAgICByZXR1cm4gbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgaWQ6IGAke2lkfS1jbHVzdGVyYCxcbiAgICAgIGRhdGE6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGUubGF5ZXJEYXRhLmRhdGEsXG4gICAgICByYWRpdXNTY2FsZTogbWV0ZXJzUGVyUGl4ZWwgKiByYWRpdXNTY2FsZSxcbiAgICAgIHZpc2libGUsXG4gICAgICBvcGFjaXR5LFxuICAgICAgcGlja2FibGUsXG4gICAgICBhdXRvSGlnaGxpZ2h0LFxuICAgICAgaGlnaGxpZ2h0Q29sb3IsXG4gICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgZGVwdGhNYXNrOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIC4uLmFjY2Vzc29yc1xuICAgIH0pO1xuICB9XG59XG5cbkNsdXN0ZXJMYXllci5sYXllck5hbWUgPSAnQ2x1c3RlckxheWVyJztcbkNsdXN0ZXJMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=
|
349
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwibGVuZ3RoIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsInZpZXdwb3J0IiwiZGF0YSIsImdldFBvc2l0aW9uIiwiZmlsdGVyRGF0YSIsImdlb0pTT04iLCJjbHVzdGVyQnVpbGRlciIsIkNsdXN0ZXJCdWlsZGVyIiwic2V0U3RhdGUiLCJnZXRDbHVzdGVycyIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJwb3NpdGlvbiIsInByb3AiLCJ1cGRhdGVUcmlnZ2VyIiwidXBkYXRlciIsImdldFJhZGl1c1ZhbHVlRG9tYWluIiwiZGltZW5zaW9uVXBkYXRlciIsInZhbHVlRG9tYWluIiwiX3NldERpbWVuc2lvblN0YXRlIiwiY2x1c3RlckxheWVyRGltZW5zaW9ucyIsImRlZmF1bHRDb2xvckRpbWVuc2lvbiIsImFjY2Vzc29yIiwibnVsbFZhbHVlIiwidmFsdWUiLCJkb21haW4iLCJyYW5nZSIsInNjYWxlVHlwZSIsImdldERpbWVuc2lvblNjYWxlIiwiZ2V0U3ViTGF5ZXJBY2Nlc3NvciIsImdldFBpY2tpbmdJbmZvIiwicmFkaXVzVmFsdWUiLCJkZWZhdWx0UHJvcHMiLCJjb2xvckRvbWFpbiIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JTY2FsZVR5cGUiLCJTQ0FMRV9UWVBFUyIsInF1YW50aXplIiwicmFkaXVzU2NhbGVUeXBlIiwic3FydCIsInJhZGl1c1JhbmdlIiwidHlwZSIsIngiLCJnZXRDb2xvclZhbHVlIiwiQ2x1c3RlckxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsInVwZGF0ZVN0YXRlIiwiY29udGV4dCIsImF0dHJpYnV0ZXMiLCJnZXRBdHRyaWJ1dGVzIiwibnVtSW5zdGFuY2VzIiwiZ2V0TnVtSW5zdGFuY2VzIiwiaW5mbyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJpZCIsInJhZGl1c1NjYWxlIiwidmlzaWJsZSIsIm9wYWNpdHkiLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJoaWdobGlnaHRDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwibWV0ZXJzUGVyUGl4ZWwiLCJTY2F0dGVycGxvdExheWVyIiwicGFyYW1ldGVycyIsImRlcHRoTWFzayIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7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QUYvQjtBQUdMdUYsUUFBQUEsV0FBVyxFQUFFVyxjQUFjLEdBQUdYLFdBSHpCO0FBSUxDLFFBQUFBLE9BQU8sRUFBUEEsT0FKSztBQUtMQyxRQUFBQSxPQUFPLEVBQVBBLE9BTEs7QUFNTEMsUUFBQUEsUUFBUSxFQUFSQSxRQU5LO0FBT0xDLFFBQUFBLGFBQWEsRUFBYkEsYUFQSztBQVFMQyxRQUFBQSxjQUFjLEVBQWRBLGNBUks7QUFTTEMsUUFBQUEsY0FBYyxFQUFkQSxjQVRLO0FBVUxPLFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUU7QUFERDtBQVZQLFNBYUZOLFNBYkUsRUFBUDtBQWVEOzs7RUFoRnVDTyxvQzs7O0FBbUYxQ3ZDLFlBQVksQ0FBQ3dDLFNBQWIsR0FBeUIsY0FBekI7QUFDQXhDLFlBQVksQ0FBQ2IsWUFBYixHQUE0QkEsWUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge19BZ2dyZWdhdGlvbkxheWVyIGFzIEFnZ3JlZ2F0aW9uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQgQ1BVQWdncmVnYXRvciwge1xuICBBZ2dyZWdhdGlvblR5cGUsXG4gIGRlZmF1bHRDb2xvckRpbWVuc2lvbixcbiAgRGltZW5zaW9uVHlwZSxcbiAgZ2V0RGltZW5zaW9uU2NhbGVcbn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge21heH0gZnJvbSAnZDMtYXJyYXknO1xuXG5pbXBvcnQge1NDQUxFX1RZUEVTLCBERUZBVUxUX0NPTE9SX1JBTkdFLCBMQVlFUl9WSVNfQ09ORklHU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IENsdXN0ZXJCdWlsZGVyLCB7Z2V0R2VvSlNPTn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY2x1c3Rlci11dGlscyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0FnZ3JlZ2F0aW9uTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzL2FnZ3JlZ2F0aW9uLWxheWVyJztcblxuY29uc3QgZGVmYXVsdFJhZGl1cyA9IExBWUVSX1ZJU19DT05GSUdTLmNsdXN0ZXJSYWRpdXMuZGVmYXVsdFZhbHVlO1xuY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gTEFZRVJfVklTX0NPTkZJR1MuY2x1c3RlclJhZGl1c1JhbmdlLmRlZmF1bHRWYWx1ZTtcblxuY29uc3QgZGVmYXVsdEdldENvbG9yVmFsdWUgPSBwb2ludHMgPT4gcG9pbnRzLmxlbmd0aDtcbmNvbnN0IGRlZmF1bHRHZXRSYWRpdXNWYWx1ZSA9IGNlbGwgPT5cbiAgY2VsbC5maWx0ZXJlZFBvaW50cyA/IGNlbGwuZmlsdGVyZWRQb2ludHMubGVuZ3RoIDogY2VsbC5wb2ludHMubGVuZ3RoO1xuXG5mdW5jdGlvbiBwcm9jZXNzR2VvSlNPTih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgYWdncmVnYXRpb24sIHt2aWV3cG9ydH0pIHtcbiAgY29uc3Qge2RhdGEsIGdldFBvc2l0aW9uLCBmaWx0ZXJEYXRhfSA9IHByb3BzO1xuICBjb25zdCBnZW9KU09OID0gZ2V0R2VvSlNPTihkYXRhLCBnZXRQb3NpdGlvbiwgZmlsdGVyRGF0YSk7XG4gIGNvbnN0IGNsdXN0ZXJCdWlsZGVyID0gbmV3IENsdXN0ZXJCdWlsZGVyKCk7XG5cbiAgdGhpcy5zZXRTdGF0ZSh7Z2VvSlNPTiwgY2x1c3RlckJ1aWxkZXJ9KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2x1c3RlcnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGFnZ3JlZ2F0aW9uLCB7dmlld3BvcnR9KSB7XG4gIGNvbnN0IHtnZW9KU09OLCBjbHVzdGVyQnVpbGRlcn0gPSB0aGlzLnN0YXRlO1xuICBjb25zdCB7Y2x1c3RlclJhZGl1cywgem9vbSwgd2lkdGgsIGhlaWdodH0gPSBwcm9wcztcbiAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGV9ID0gdmlld3BvcnQ7XG5cbiAgLy8gem9vbSBuZWVkcyB0byBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgZGlmZmVyZW50IG1hcCB1dGlscy4gQWxzbyBoZWxwcyB3aXRoIGNhY2hlIGtleS5cbiAgY29uc3QgYmJveCA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHpvb20sIFt3aWR0aCwgaGVpZ2h0XSk7XG4gIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlckJ1aWxkZXIuY2x1c3RlcnNBdFpvb20oe2Jib3gsIGNsdXN0ZXJSYWRpdXMsIGdlb0pTT04sIHpvb219KTtcblxuICB0aGlzLnNldFN0YXRlKHtcbiAgICBsYXllckRhdGE6IHtkYXRhOiBjbHVzdGVyc31cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyUmFkaXVzKGRpbWVuc2lvblN0YXRlLCBkaW1lbnNpb24sIGxheWVyUHJvcHMpIHtcbiAgcmV0dXJuIGNlbGwgPT4ge1xuICAgIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBsYXllclByb3BzO1xuICAgIGNvbnN0IHtzY2FsZUZ1bmN9ID0gZGltZW5zaW9uU3RhdGU7XG4gICAgcmV0dXJuIHNjYWxlRnVuYyhnZXRSYWRpdXNWYWx1ZShjZWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBjbHVzdGVyQWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiAncG9zaXRpb24nLFxuICB1cGRhdGVTdGVwczogW1xuICAgIHtcbiAgICAgIGtleTogJ2dlb2pzb24nLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0UG9zaXRpb24nLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRQb3NpdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdmaWx0ZXJEYXRhJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZmlsdGVyRGF0YSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IHByb2Nlc3NHZW9KU09OXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdjbHVzdGVyaW5nJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICAgICAgICBwcm9wOiAnY2x1c3RlclJhZGl1cydcbiAgICAgICAgfSxcbiAgICAgICAgem9vbToge1xuICAgICAgICAgIHByb3A6ICd6b29tJ1xuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgIHByb3A6ICd3aWR0aCdcbiAgICAgICAgfSxcbiAgICAgICAgaGVpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2hlaWdodCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldENsdXN0ZXJzXG4gICAgfVxuICBdXG59O1xuXG5mdW5jdGlvbiBnZXRSYWRpdXNWYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBwcm9wcztcbiAgY29uc3Qge2xheWVyRGF0YX0gPSB0aGlzLnN0YXRlO1xuXG4gIGNvbnN0IHZhbHVlRG9tYWluID0gWzAsIG1heChsYXllckRhdGEuZGF0YSwgZ2V0UmFkaXVzVmFsdWUpXTtcbiAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7dmFsdWVEb21haW59KTtcbn1cblxuY29uc3QgY2x1c3RlckxheWVyRGltZW5zaW9uczogW0RpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiwgRGltZW5zaW9uVHlwZTxudW1iZXI+XSA9IFtcbiAgZGVmYXVsdENvbG9yRGltZW5zaW9uLFxuICB7XG4gICAga2V5OiAncmFkaXVzJyxcbiAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgbnVsbFZhbHVlOiAwLFxuICAgIHVwZGF0ZVN0ZXBzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2dldERvbWFpbicsXG4gICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3A6ICdnZXRSYWRpdXNWYWx1ZScsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UmFkaXVzVmFsdWUnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVyOiBnZXRSYWRpdXNWYWx1ZURvbWFpblxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2V0U2NhbGVGdW5jJyxcbiAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICBkb21haW46IHtwcm9wOiAncmFkaXVzRG9tYWluJ30sXG4gICAgICAgICAgcmFuZ2U6IHtwcm9wOiAncmFkaXVzUmFuZ2UnfSxcbiAgICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAncmFkaXVzU2NhbGVUeXBlJ31cbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU2NhbGVcbiAgICAgIH1cbiAgICBdLFxuICAgIGdldFN1YkxheWVyQWNjZXNzb3I6IGdldFN1YkxheWVyUmFkaXVzLFxuICAgIGdldFBpY2tpbmdJbmZvOiAoZGltZW5zaW9uU3RhdGUsIGNlbGwsIGxheWVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IHJhZGl1c1ZhbHVlID0gbGF5ZXJQcm9wcy5nZXRSYWRpdXNWYWx1ZShjZWxsKTtcbiAgICAgIHJldHVybiB7cmFkaXVzVmFsdWV9O1xuICAgIH1cbiAgfVxuXTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjbHVzdGVyUmFkaXVzOiBkZWZhdWx0UmFkaXVzLFxuICBjb2xvckRvbWFpbjogbnVsbCxcbiAgY29sb3JSYW5nZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgY29sb3JTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnF1YW50aXplLFxuICByYWRpdXNTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnNxcnQsXG4gIHJhZGl1c1JhbmdlOiBkZWZhdWx0UmFkaXVzUmFuZ2UsXG4gIGdldFBvc2l0aW9uOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IHggPT4geC5wb3NpdGlvbn0sXG4gIGdldENvbG9yVmFsdWU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogZGVmYXVsdEdldENvbG9yVmFsdWV9LFxuICBnZXRSYWRpdXNWYWx1ZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBkZWZhdWx0R2V0UmFkaXVzVmFsdWV9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbHVzdGVyTGF5ZXIgZXh0ZW5kcyBBZ2dyZWdhdGlvbkxheWVyPFxuICBhbnksXG4gIEFnZ3JlZ2F0aW9uTGF5ZXJQcm9wczxhbnk+ICYge3JhZGl1c1NjYWxlOiBudW1iZXJ9XG4+IHtcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IGNwdUFnZ3JlZ2F0b3IgPSBuZXcgQ1BVQWdncmVnYXRvcih7XG4gICAgICBhZ2dyZWdhdGlvbjogY2x1c3RlckFnZ3JlZ2F0aW9uLFxuICAgICAgZGltZW5zaW9uczogY2x1c3RlckxheWVyRGltZW5zaW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgLy8gbWFrZSBhIGNvcHkgb2YgdGhlIGludGVybmFsIHN0YXRlIG9mIGNwdUFnZ3JlZ2F0b3IgZm9yIHRlc3RpbmdcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLnVwZGF0ZVN0YXRlKFxuICAgICAgICB7b2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFnc30sXG4gICAgICAgIHtcbiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5jb250ZXh0LnZpZXdwb3J0LFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuZ2V0QXR0cmlidXRlcygpLFxuICAgICAgICAgIG51bUluc3RhbmNlczogdGhpcy5nZXROdW1JbnN0YW5jZXMocHJvcHMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0UGlja2luZ0luZm8oe2luZm99LCB0aGlzLnByb3BzKTtcbiAgfVxuXG4gIF9nZXRTdWJsYXllclVwZGF0ZVRyaWdnZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0VXBkYXRlVHJpZ2dlcnModGhpcy5wcm9wcyk7XG4gIH1cblxuICBfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFJhZGl1czogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdyYWRpdXMnLCB0aGlzLnByb3BzKSxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdmaWxsQ29sb3InLCB0aGlzLnByb3BzKVxuICAgIH07XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgLy8gZm9yIHN1YmNsYXNzaW5nLCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm5cbiAgICAvLyBjdXN0b21pemVkIHN1YiBsYXllciBwcm9wc1xuICAgIGNvbnN0IHtpZCwgcmFkaXVzU2NhbGV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7Y3B1QWdncmVnYXRvcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFzZSBsYXllciBwcm9wc1xuICAgIGNvbnN0IHt2aXNpYmxlLCBvcGFjaXR5LCBwaWNrYWJsZSwgYXV0b0hpZ2hsaWdodCwgaGlnaGxpZ2h0Q29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHRoaXMuX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMoKTtcbiAgICBjb25zdCBhY2Nlc3NvcnMgPSB0aGlzLl9nZXRTdWJMYXllckFjY2Vzc29ycygpO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGRpc3RhbmNlU2NhbGUgPSBnZXREaXN0YW5jZVNjYWxlcyh0aGlzLmNvbnRleHQudmlld3BvcnQpO1xuICAgIGNvbnN0IG1ldGVyc1BlclBpeGVsID0gZGlzdGFuY2VTY2FsZS5tZXRlcnNQZXJQaXhlbFswXTtcblxuICAgIC8vIHJldHVybiBwcm9wcyB0byB0aGUgc3VibGF5ZXIgY29uc3RydWN0b3JcbiAgICByZXR1cm4gbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgaWQ6IGAke2lkfS1jbHVzdGVyYCxcbiAgICAgIGRhdGE6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGUubGF5ZXJEYXRhLmRhdGEsXG4gICAgICByYWRpdXNTY2FsZTogbWV0ZXJzUGVyUGl4ZWwgKiByYWRpdXNTY2FsZSxcbiAgICAgIHZpc2libGUsXG4gICAgICBvcGFjaXR5LFxuICAgICAgcGlja2FibGUsXG4gICAgICBhdXRvSGlnaGxpZ2h0LFxuICAgICAgaGlnaGxpZ2h0Q29sb3IsXG4gICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgZGVwdGhNYXNrOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIC4uLmFjY2Vzc29yc1xuICAgIH0pO1xuICB9XG59XG5cbkNsdXN0ZXJMYXllci5sYXllck5hbWUgPSAnQ2x1c3RlckxheWVyJztcbkNsdXN0ZXJMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=
|
@@ -1,7 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
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> {
|
4
6
|
getShaders(): any;
|
5
7
|
initializeState(): void;
|
8
|
+
draw({ uniforms }: {
|
9
|
+
uniforms: any;
|
10
|
+
}): void;
|
6
11
|
}
|
7
12
|
export default EnhancedColumnLayer;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -41,7 +41,11 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
41
41
|
|
42
42
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
43
43
|
|
44
|
-
var
|
44
|
+
var _core = require("@deck.gl/core");
|
45
|
+
|
46
|
+
var _typed = require("@deck.gl/layers/typed");
|
47
|
+
|
48
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
45
49
|
|
46
50
|
var _ = require("../");
|
47
51
|
|
@@ -56,9 +60,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
56
60
|
function addInstanceCoverage(vs) {
|
57
61
|
var addDecl = (0, _.editShader)(vs, 'hexagon cell vs add instance 1', 'in vec3 instancePickingColors;', "in vec3 instancePickingColors;\n in float instanceCoverage;");
|
58
62
|
return (0, _.editShader)(addDecl, 'hexagon cell vs add instance 2', 'float dotRadius = radius * coverage * shouldRender;', 'float dotRadius = radius * coverage * instanceCoverage * shouldRender;');
|
59
|
-
}
|
60
|
-
|
63
|
+
}
|
61
64
|
|
65
|
+
// TODO: export all deck.gl layers from kepler.gl
|
62
66
|
var EnhancedColumnLayer = /*#__PURE__*/function (_ColumnLayer) {
|
63
67
|
(0, _inherits2["default"])(EnhancedColumnLayer, _ColumnLayer);
|
64
68
|
|
@@ -80,19 +84,93 @@ var EnhancedColumnLayer = /*#__PURE__*/function (_ColumnLayer) {
|
|
80
84
|
}, {
|
81
85
|
key: "initializeState",
|
82
86
|
value: function initializeState() {
|
83
|
-
|
84
|
-
|
87
|
+
var _this$getAttributeMan;
|
88
|
+
|
89
|
+
(0, _get2["default"])((0, _getPrototypeOf2["default"])(EnhancedColumnLayer.prototype), "initializeState", this).call(this);
|
90
|
+
(_this$getAttributeMan = this.getAttributeManager()) === null || _this$getAttributeMan === void 0 ? void 0 : _this$getAttributeMan.addInstanced({
|
85
91
|
instanceCoverage: {
|
86
92
|
size: 1,
|
87
93
|
accessor: 'getCoverage'
|
88
94
|
}
|
89
95
|
});
|
90
96
|
}
|
97
|
+
}, {
|
98
|
+
key: "draw",
|
99
|
+
value: function draw(_ref) {
|
100
|
+
var uniforms = _ref.uniforms;
|
101
|
+
var _this$props = this.props,
|
102
|
+
lineWidthUnits = _this$props.lineWidthUnits,
|
103
|
+
lineWidthScale = _this$props.lineWidthScale,
|
104
|
+
lineWidthMinPixels = _this$props.lineWidthMinPixels,
|
105
|
+
lineWidthMaxPixels = _this$props.lineWidthMaxPixels,
|
106
|
+
radiusUnits = _this$props.radiusUnits,
|
107
|
+
elevationScale = _this$props.elevationScale,
|
108
|
+
extruded = _this$props.extruded,
|
109
|
+
filled = _this$props.filled,
|
110
|
+
stroked = _this$props.stroked,
|
111
|
+
strokeOpacity = _this$props.strokeOpacity,
|
112
|
+
wireframe = _this$props.wireframe,
|
113
|
+
offset = _this$props.offset,
|
114
|
+
coverage = _this$props.coverage,
|
115
|
+
radius = _this$props.radius,
|
116
|
+
angle = _this$props.angle;
|
117
|
+
var _this$state = this.state,
|
118
|
+
model = _this$state.model,
|
119
|
+
fillVertexCount = _this$state.fillVertexCount,
|
120
|
+
wireframeVertexCount = _this$state.wireframeVertexCount,
|
121
|
+
edgeDistance = _this$state.edgeDistance;
|
122
|
+
model.setUniforms(uniforms).setUniforms({
|
123
|
+
radius: radius,
|
124
|
+
angle: angle / 180 * Math.PI,
|
125
|
+
offset: offset,
|
126
|
+
extruded: extruded,
|
127
|
+
stroked: stroked,
|
128
|
+
coverage: coverage,
|
129
|
+
elevationScale: elevationScale,
|
130
|
+
edgeDistance: edgeDistance,
|
131
|
+
radiusUnits: _core.UNIT[radiusUnits],
|
132
|
+
widthUnits: _core.UNIT[lineWidthUnits],
|
133
|
+
widthScale: lineWidthScale,
|
134
|
+
widthMinPixels: lineWidthMinPixels,
|
135
|
+
widthMaxPixels: lineWidthMaxPixels
|
136
|
+
}); // When drawing 3d: draw wireframe first so it doesn't get occluded by depth test
|
137
|
+
|
138
|
+
if (extruded && wireframe) {
|
139
|
+
model.setProps({
|
140
|
+
isIndexed: true
|
141
|
+
});
|
142
|
+
model.setVertexCount(wireframeVertexCount).setDrawMode(_constants["default"].LINES).setUniforms({
|
143
|
+
isStroke: true
|
144
|
+
}).draw();
|
145
|
+
}
|
146
|
+
|
147
|
+
if (filled) {
|
148
|
+
model.setProps({
|
149
|
+
isIndexed: false
|
150
|
+
});
|
151
|
+
model.setVertexCount(fillVertexCount).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
|
152
|
+
isStroke: false
|
153
|
+
}).draw();
|
154
|
+
} // When drawing 2d: draw fill before stroke so that the outline is always on top
|
155
|
+
|
156
|
+
|
157
|
+
if (!extruded && stroked) {
|
158
|
+
model.setProps({
|
159
|
+
isIndexed: false
|
160
|
+
}); // The width of the stroke is achieved by flattening the side of the cylinder.
|
161
|
+
// Skip the last 1/3 of the vertices which is the top.
|
162
|
+
|
163
|
+
model.setVertexCount(fillVertexCount * 2 / 3).setDrawMode(_constants["default"].TRIANGLE_STRIP).setUniforms({
|
164
|
+
isStroke: true,
|
165
|
+
opacity: strokeOpacity
|
166
|
+
}).draw();
|
167
|
+
}
|
168
|
+
}
|
91
169
|
}]);
|
92
170
|
return EnhancedColumnLayer;
|
93
|
-
}(
|
171
|
+
}(_typed.ColumnLayer);
|
94
172
|
|
95
173
|
EnhancedColumnLayer.layerName = 'EnhancedColumnLayer';
|
96
174
|
var _default = EnhancedColumnLayer;
|
97
175
|
exports["default"] = _default;
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2x1bW4tbGF5ZXIvZW5oYW5jZWQtY29sdW1uLWxheWVyLnRzIl0sIm5hbWVzIjpbImFkZEluc3RhbmNlQ292ZXJhZ2UiLCJ2cyIsImFkZERlY2wiLCJFbmhhbmNlZENvbHVtbkxheWVyIiwic2hhZGVycyIsInVuZGVmaW5lZCIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGRJbnN0YW5jZWQiLCJpbnN0YW5jZUNvdmVyYWdlIiwic2l6ZSIsImFjY2Vzc29yIiwiQ29sdW1uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsU0FBU0EsbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQy9CLE1BQU1DLE9BQU8sR0FBRyxrQkFDZEQsRUFEYyxFQUVkLGdDQUZjLEVBR2QsZ0NBSGMsb0VBQWhCO0FBUUEsU0FBTyxrQkFDTEMsT0FESyxFQUVMLGdDQUZLLEVBR0wscURBSEssRUFJTCx3RUFKSyxDQUFQO0FBTUQsQyxDQUVEOzs7SUFDTUMsbUI7Ozs7Ozs7Ozs7OztXQUNKLHNCQUFhO0FBQ1gsVUFBTUMsT0FBTyx3SEFBYjtBQUVBLDZDQUNLQSxPQURMO0FBRUVILFFBQUFBLEVBQUUsRUFBRUQsbUJBQW1CLENBQUNJLE9BQU8sQ0FBQ0gsRUFBVDtBQUZ6QjtBQUlEOzs7V0FFRCwyQkFBa0I7QUFDaEIsaUlBQXNCSSxTQUF0QjtBQUVBLFdBQUtDLG1CQUFMLEdBQTJCQyxZQUEzQixDQUF3QztBQUN0Q0MsUUFBQUEsZ0JBQWdCLEVBQUU7QUFBQ0MsVUFBQUEsSUFBSSxFQUFFLENBQVA7QUFBVUMsVUFBQUEsUUFBUSxFQUFFO0FBQXBCO0FBRG9CLE9BQXhDO0FBR0Q7OztFQWhCK0JDLG1COztBQW1CbENSLG1CQUFtQixDQUFDUyxTQUFwQixHQUFnQyxxQkFBaEM7ZUFFZVQsbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0NvbHVtbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHtlZGl0U2hhZGVyfSBmcm9tICcuLi8nO1xuXG5mdW5jdGlvbiBhZGRJbnN0YW5jZUNvdmVyYWdlKHZzKSB7XG4gIGNvbnN0IGFkZERlY2wgPSBlZGl0U2hhZGVyKFxuICAgIHZzLFxuICAgICdoZXhhZ29uIGNlbGwgdnMgYWRkIGluc3RhbmNlIDEnLFxuICAgICdpbiB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9yczsnLFxuICAgIGBpbiB2ZWMzIGluc3RhbmNlUGlja2luZ0NvbG9ycztcbiAgICAgaW4gZmxvYXQgaW5zdGFuY2VDb3ZlcmFnZTtgXG4gICk7XG5cbiAgcmV0dXJuIGVkaXRTaGFkZXIoXG4gICAgYWRkRGVjbCxcbiAgICAnaGV4YWdvbiBjZWxsIHZzIGFkZCBpbnN0YW5jZSAyJyxcbiAgICAnZmxvYXQgZG90UmFkaXVzID0gcmFkaXVzICogY292ZXJhZ2UgKiBzaG91bGRSZW5kZXI7JyxcbiAgICAnZmxvYXQgZG90UmFkaXVzID0gcmFkaXVzICogY292ZXJhZ2UgKiBpbnN0YW5jZUNvdmVyYWdlICogc2hvdWxkUmVuZGVyOydcbiAgKTtcbn1cblxuLy8gVE9ETzogZXhwb3J0IGFsbCBkZWNrLmdsIGxheWVycyBmcm9tIGtlcGxlci5nbFxuY2xhc3MgRW5oYW5jZWRDb2x1bW5MYXllciBleHRlbmRzIENvbHVtbkxheWVyPGFueT4ge1xuICBnZXRTaGFkZXJzKCkge1xuICAgIGNvbnN0IHNoYWRlcnMgPSBzdXBlci5nZXRTaGFkZXJzKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2hhZGVycyxcbiAgICAgIHZzOiBhZGRJbnN0YW5jZUNvdmVyYWdlKHNoYWRlcnMudnMpXG4gICAgfTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUodW5kZWZpbmVkKTtcblxuICAgIHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpLmFkZEluc3RhbmNlZCh7XG4gICAgICBpbnN0YW5jZUNvdmVyYWdlOiB7c2l6ZTogMSwgYWNjZXNzb3I6ICdnZXRDb3ZlcmFnZSd9XG4gICAgfSk7XG4gIH1cbn1cblxuRW5oYW5jZWRDb2x1bW5MYXllci5sYXllck5hbWUgPSAnRW5oYW5jZWRDb2x1bW5MYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEVuaGFuY2VkQ29sdW1uTGF5ZXI7XG4iXX0=
|
176
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2x1bW4tbGF5ZXIvZW5oYW5jZWQtY29sdW1uLWxheWVyLnRzIl0sIm5hbWVzIjpbImFkZEluc3RhbmNlQ292ZXJhZ2UiLCJ2cyIsImFkZERlY2wiLCJFbmhhbmNlZENvbHVtbkxheWVyIiwic2hhZGVycyIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGRJbnN0YW5jZWQiLCJpbnN0YW5jZUNvdmVyYWdlIiwic2l6ZSIsImFjY2Vzc29yIiwidW5pZm9ybXMiLCJwcm9wcyIsImxpbmVXaWR0aFVuaXRzIiwibGluZVdpZHRoU2NhbGUiLCJsaW5lV2lkdGhNaW5QaXhlbHMiLCJsaW5lV2lkdGhNYXhQaXhlbHMiLCJyYWRpdXNVbml0cyIsImVsZXZhdGlvblNjYWxlIiwiZXh0cnVkZWQiLCJmaWxsZWQiLCJzdHJva2VkIiwic3Ryb2tlT3BhY2l0eSIsIndpcmVmcmFtZSIsIm9mZnNldCIsImNvdmVyYWdlIiwicmFkaXVzIiwiYW5nbGUiLCJzdGF0ZSIsIm1vZGVsIiwiZmlsbFZlcnRleENvdW50Iiwid2lyZWZyYW1lVmVydGV4Q291bnQiLCJlZGdlRGlzdGFuY2UiLCJzZXRVbmlmb3JtcyIsIk1hdGgiLCJQSSIsIlVOSVQiLCJ3aWR0aFVuaXRzIiwid2lkdGhTY2FsZSIsIndpZHRoTWluUGl4ZWxzIiwid2lkdGhNYXhQaXhlbHMiLCJzZXRQcm9wcyIsImlzSW5kZXhlZCIsInNldFZlcnRleENvdW50Iiwic2V0RHJhd01vZGUiLCJHTCIsIkxJTkVTIiwiaXNTdHJva2UiLCJkcmF3IiwiVFJJQU5HTEVfU1RSSVAiLCJvcGFjaXR5IiwiQ29sdW1uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBRUEsU0FBU0EsbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQy9CLE1BQU1DLE9BQU8sR0FBRyxrQkFDZEQsRUFEYyxFQUVkLGdDQUZj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LFVBQUk1QixNQUFKLEVBQVk7QUFDVlMsUUFBQUEsS0FBSyxDQUFDWSxRQUFOLENBQWU7QUFBQ0MsVUFBQUEsU0FBUyxFQUFFO0FBQVosU0FBZjtBQUNBYixRQUFBQSxLQUFLLENBQ0ZjLGNBREgsQ0FDa0JiLGVBRGxCLEVBRUdjLFdBRkgsQ0FFZUMsc0JBQUdJLGNBRmxCLEVBR0doQixXQUhILENBR2U7QUFBQ2MsVUFBQUEsUUFBUSxFQUFFO0FBQVgsU0FIZixFQUlHQyxJQUpIO0FBS0QsT0FwRGMsQ0FxRGY7OztBQUNBLFVBQUksQ0FBQzdCLFFBQUQsSUFBYUUsT0FBakIsRUFBMEI7QUFDeEJRLFFBQUFBLEtBQUssQ0FBQ1ksUUFBTixDQUFlO0FBQUNDLFVBQUFBLFNBQVMsRUFBRTtBQUFaLFNBQWYsRUFEd0IsQ0FFeEI7QUFDQTs7QUFDQWIsUUFBQUEsS0FBSyxDQUNGYyxjQURILENBQ21CYixlQUFlLEdBQUcsQ0FBbkIsR0FBd0IsQ0FEMUMsRUFFR2MsV0FGSCxDQUVlQyxzQkFBR0ksY0FGbEIsRUFHR2hCLFdBSEgsQ0FHZTtBQUFDYyxVQUFBQSxRQUFRLEVBQUUsSUFBWDtBQUFpQkcsVUFBQUEsT0FBTyxFQUFFNUI7QUFBMUIsU0FIZixFQUlHMEIsSUFKSDtBQUtEO0FBQ0Y7OztFQWxGK0JHLGtCOztBQXFGbEMvQyxtQkFBbUIsQ0FBQ2dELFNBQXBCLEdBQWdDLHFCQUFoQztlQUVlaEQsbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1VOSVR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtDb2x1bW5MYXllciwgQ29sdW1uTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzL3R5cGVkJztcbmltcG9ydCBHTCBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge2VkaXRTaGFkZXJ9IGZyb20gJy4uLyc7XG5cbmZ1bmN0aW9uIGFkZEluc3RhbmNlQ292ZXJhZ2UodnMpIHtcbiAgY29uc3QgYWRkRGVjbCA9IGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2hleGFnb24gY2VsbCB2cyBhZGQgaW5zdGFuY2UgMScsXG4gICAgJ2luIHZlYzMgaW5zdGFuY2VQaWNraW5nQ29sb3JzOycsXG4gICAgYGluIHZlYzMgaW5zdGFuY2VQaWNraW5nQ29sb3JzO1xuICAgICBpbiBmbG9hdCBpbnN0YW5jZUNvdmVyYWdlO2BcbiAgKTtcblxuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICBhZGREZWNsLFxuICAgICdoZXhhZ29uIGNlbGwgdnMgYWRkIGluc3RhbmNlIDInLFxuICAgICdmbG9hdCBkb3RSYWRpdXMgPSByYWRpdXMgKiBjb3ZlcmFnZSAqIHNob3VsZFJlbmRlcjsnLFxuICAgICdmbG9hdCBkb3RSYWRpdXMgPSByYWRpdXMgKiBjb3ZlcmFnZSAqIGluc3RhbmNlQ292ZXJhZ2UgKiBzaG91bGRSZW5kZXI7J1xuICApO1xufVxuXG50eXBlIEVuaGFuY2VkQ29sdW1uTGF5ZXJQcm9wcyA9IENvbHVtbkxheWVyUHJvcHM8YW55PiAmIHtcbiAgc3Ryb2tlT3BhY2l0eTogYW55O1xufTtcblxuLy8gVE9ETzogZXhwb3J0IGFsbCBkZWNrLmdsIGxheWVycyBmcm9tIGtlcGxlci5nbFxuY2xhc3MgRW5oYW5jZWRDb2x1bW5MYXllciBleHRlbmRzIENvbHVtbkxheWVyPGFueSwgRW5oYW5jZWRDb2x1bW5MYXllclByb3BzPiB7XG4gIGdldFNoYWRlcnMoKSB7XG4gICAgY29uc3Qgc2hhZGVycyA9IHN1cGVyLmdldFNoYWRlcnMoKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zaGFkZXJzLFxuICAgICAgdnM6IGFkZEluc3RhbmNlQ292ZXJhZ2Uoc2hhZGVycy52cylcbiAgICB9O1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZSgpO1xuXG4gICAgdGhpcy5nZXRBdHRyaWJ1dGVNYW5hZ2VyKCk/LmFkZEluc3RhbmNlZCh7XG4gICAgICBpbnN0YW5jZUNvdmVyYWdlOiB7c2l6ZTogMSwgYWNjZXNzb3I6ICdnZXRDb3ZlcmFnZSd9XG4gICAgfSk7XG4gIH1cblxuICBkcmF3KHt1bmlmb3Jtc30pIHtcbiAgICBjb25zdCB7XG4gICAgICBsaW5lV2lkdGhVbml0cyxcbiAgICAgIGxpbmVXaWR0aFNjYWxlLFxuICAgICAgbGluZVdpZHRoTWluUGl4ZWxzLFxuICAgICAgbGluZVdpZHRoTWF4UGl4ZWxzLFxuICAgICAgcmFkaXVzVW5pdHMsXG4gICAgICBlbGV2YXRpb25TY2FsZSxcbiAgICAgIGV4dHJ1ZGVkLFxuICAgICAgZmlsbGVkLFxuICAgICAgc3Ryb2tlZCxcbiAgICAgIHN0cm9rZU9wYWNpdHksXG4gICAgICB3aXJlZnJhbWUsXG4gICAgICBvZmZzZXQsXG4gICAgICBjb3ZlcmFnZSxcbiAgICAgIHJhZGl1cyxcbiAgICAgIGFuZ2xlXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge21vZGVsLCBmaWxsVmVydGV4Q291bnQsIHdpcmVmcmFtZVZlcnRleENvdW50LCBlZGdlRGlzdGFuY2V9ID0gdGhpcy5zdGF0ZTtcblxuICAgIG1vZGVsLnNldFVuaWZvcm1zKHVuaWZvcm1zKS5zZXRVbmlmb3Jtcyh7XG4gICAgICByYWRpdXMsXG4gICAgICBhbmdsZTogKGFuZ2xlIC8gMTgwKSAqIE1hdGguUEksXG4gICAgICBvZmZzZXQsXG4gICAgICBleHRydWRlZCxcbiAgICAgIHN0cm9rZWQsXG4gICAgICBjb3ZlcmFnZSxcbiAgICAgIGVsZXZhdGlvblNjYWxlLFxuICAgICAgZWRnZURpc3RhbmNlLFxuICAgICAgcmFkaXVzVW5pdHM6IFVOSVRbcmFkaXVzVW5pdHNdLFxuICAgICAgd2lkdGhVbml0czogVU5JVFtsaW5lV2lkdGhVbml0c10sXG4gICAgICB3aWR0aFNjYWxlOiBsaW5lV2lkdGhTY2FsZSxcbiAgICAgIHdpZHRoTWluUGl4ZWxzOiBsaW5lV2lkdGhNaW5QaXhlbHMsXG4gICAgICB3aWR0aE1heFBpeGVsczogbGluZVdpZHRoTWF4UGl4ZWxzXG4gICAgfSk7XG5cbiAgICAvLyBXaGVuIGRyYXdpbmcgM2Q6IGRyYXcgd2lyZWZyYW1lIGZpcnN0IHNvIGl0IGRvZXNuJ3QgZ2V0IG9jY2x1ZGVkIGJ5IGRlcHRoIHRlc3RcbiAgICBpZiAoZXh0cnVkZWQgJiYgd2lyZWZyYW1lKSB7XG4gICAgICBtb2RlbC5zZXRQcm9wcyh7aXNJbmRleGVkOiB0cnVlfSk7XG4gICAgICBtb2RlbFxuICAgICAgICAuc2V0VmVydGV4Q291bnQod2lyZWZyYW1lVmVydGV4Q291bnQpXG4gICAgICAgIC5zZXREcmF3TW9kZShHTC5MSU5FUylcbiAgICAgICAgLnNldFVuaWZvcm1zKHtpc1N0cm9rZTogdHJ1ZX0pXG4gICAgICAgIC5kcmF3KCk7XG4gICAgfVxuICAgIGlmIChmaWxsZWQpIHtcbiAgICAgIG1vZGVsLnNldFByb3BzKHtpc0luZGV4ZWQ6IGZhbHNlfSk7XG4gICAgICBtb2RlbFxuICAgICAgICAuc2V0VmVydGV4Q291bnQoZmlsbFZlcnRleENvdW50KVxuICAgICAgICAuc2V0RHJhd01vZGUoR0wuVFJJQU5HTEVfU1RSSVApXG4gICAgICAgIC5zZXRVbmlmb3Jtcyh7aXNTdHJva2U6IGZhbHNlfSlcbiAgICAgICAgLmRyYXcoKTtcbiAgICB9XG4gICAgLy8gV2hlbiBkcmF3aW5nIDJkOiBkcmF3IGZpbGwgYmVmb3JlIHN0cm9rZSBzbyB0aGF0IHRoZSBvdXRsaW5lIGlzIGFsd2F5cyBvbiB0b3BcbiAgICBpZiAoIWV4dHJ1ZGVkICYmIHN0cm9rZWQpIHtcbiAgICAgIG1vZGVsLnNldFByb3BzKHtpc0luZGV4ZWQ6IGZhbHNlfSk7XG4gICAgICAvLyBUaGUgd2lkdGggb2YgdGhlIHN0cm9rZSBpcyBhY2hpZXZlZCBieSBmbGF0dGVuaW5nIHRoZSBzaWRlIG9mIHRoZSBjeWxpbmRlci5cbiAgICAgIC8vIFNraXAgdGhlIGxhc3QgMS8zIG9mIHRoZSB2ZXJ0aWNlcyB3aGljaCBpcyB0aGUgdG9wLlxuICAgICAgbW9kZWxcbiAgICAgICAgLnNldFZlcnRleENvdW50KChmaWxsVmVydGV4Q291bnQgKiAyKSAvIDMpXG4gICAgICAgIC5zZXREcmF3TW9kZShHTC5UUklBTkdMRV9TVFJJUClcbiAgICAgICAgLnNldFVuaWZvcm1zKHtpc1N0cm9rZTogdHJ1ZSwgb3BhY2l0eTogc3Ryb2tlT3BhY2l0eX0pXG4gICAgICAgIC5kcmF3KCk7XG4gICAgfVxuICB9XG59XG5cbkVuaGFuY2VkQ29sdW1uTGF5ZXIubGF5ZXJOYW1lID0gJ0VuaGFuY2VkQ29sdW1uTGF5ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBFbmhhbmNlZENvbHVtbkxheWVyO1xuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -102,4 +102,4 @@ var ScaleEnhancedGridLayer = /*#__PURE__*/function (_CPUGridLayer) {
|
|
102
102
|
|
103
103
|
exports["default"] = ScaleEnhancedGridLayer;
|
104
104
|
ScaleEnhancedGridLayer.layerName = 'ScaleEnhancedGridLayer';
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmlkLWxheWVyL2VuaGFuY2VkLWNwdS1ncmlkLWxheWVyLnRzIl0sIm5hbWVzIjpbImdyaWRBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJjZWxsU2l6ZSIsInByb3AiLCJwb3NpdGlvbiIsInVwZGF0ZVRyaWdnZXIiLCJhZ2dyZWdhdG9yIiwidXBkYXRlciIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiU2NhbGVFbmhhbmNlZEdyaWRMYXllciIsImNwdUFnZ3JlZ2F0b3IiLCJDUFVBZ2dyZWdhdG9yIiwiYWdncmVnYXRpb24iLCJzdGF0ZSIsImFnZ3JlZ2F0b3JTdGF0ZSIsImF0dHJpYnV0ZU1hbmFnZXIiLCJnZXRBdHRyaWJ1dGVNYW5hZ2VyIiwiYWRkIiwicG9zaXRpb25zIiwic2l6ZSIsImFjY2Vzc29yIiwiQ1BVR3JpZExheWVyIiwibGF5ZXJOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLGVBQWdDLEdBQUc7QUFDOUNDLEVBQUFBLEdBQUcsRUFBRSxVQUR5QztBQUU5Q0MsRUFBQUEsV0FBVyxFQUFFLENBQ1g7QUFDRUQsSUFBQUEsR0FBRyxFQUFFLFdBRFA7QUFFRUUsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLFFBQVEsRUFBRTtBQUNSQyxRQUFBQSxJQUFJLEVBQUU7QUFERSxPQURGO0FBSVJDLE1BQUFBLFFBQVEsRUFBRTtBQUNSRCxRQUFBQSxJQUFJLEVBQUUsYUFERTtBQUVSRSxRQUFBQSxhQUFhLEVBQUU7QUFGUCxPQUpGO0FBUVJDLE1BQUFBLFVBQVUsRUFBRTtBQUNWSCxRQUFBQSxJQUFJLEVBQUU7QUFESTtBQVJKLEtBRlo7QUFjRUksSUFBQUEsT0FBTyxFQUFFQztBQWRYLEdBRFc7QUFGaUMsQ0FBekM7OztJQXNCY0Msc0I7Ozs7Ozs7Ozs7OztXQUNuQiwyQkFBa0I7QUFDaEIsVUFBTUMsYUFBYSxHQUFHLElBQUlDLHlCQUFKLENBQWtCO0FBQ3RDQyxRQUFBQSxXQUFXLEVBQUVkO0FBRHlCLE9BQWxCLENBQXRCO0FBSUEsV0FBS2UsS0FBTCxHQUFhO0FBQ1hILFFBQUFBLGFBQWEsRUFBYkEsYUFEVztBQUVYSSxRQUFBQSxlQUFlLEVBQUVKLGFBQWEsQ0FBQ0c7QUFGcEIsT0FBYjtBQUlBLFVBQU1FLGdCQUFnQixHQUFHLEtBQUtDLG1CQUFMLEVBQXpCO0FBQ0FELE1BQUFBLGdCQUFnQixDQUFDRSxHQUFqQixDQUFxQjtBQUNuQkMsUUFBQUEsU0FBUyxFQUFFO0FBQUNDLFVBQUFBLElBQUksRUFBRSxDQUFQO0FBQVVDLFVBQUFBLFFBQVEsRUFBRTtBQUFwQjtBQURRLE9BQXJCO0FBR0Q7OztFQWRpREMsK0I7OztBQWlCcERaLHNCQUFzQixDQUFDYSxTQUF2QixHQUFtQyx3QkFBbkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0NQVUdyaWRMYXllcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcbmltcG9ydCBDUFVBZ2dyZWdhdG9yLCB7QWdncmVnYXRpb25UeXBlLCBnZXRBZ2dyZWdhdGVkRGF0YX0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuXG5leHBvcnQgY29uc3QgZ3JpZEFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUgPSB7XG4gIGtleTogJ3Bvc2l0aW9uJyxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdhZ2dyZWdhdGUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2VsbFNpemU6IHtcbiAgICAgICAgICBwcm9wOiAnY2VsbFNpemUnXG4gICAgICAgIH0sXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2dldFBvc2l0aW9uJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UG9zaXRpb24nXG4gICAgICAgIH0sXG4gICAgICAgIGFnZ3JlZ2F0b3I6IHtcbiAgICAgICAgICBwcm9wOiAnZ3JpZEFnZ3JlZ2F0b3InXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRBZ2dyZWdhdGVkRGF0YVxuICAgIH1cbiAgXVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NhbGVFbmhhbmNlZEdyaWRMYXllciBleHRlbmRzIENQVUdyaWRMYXllcjxhbnk+IHtcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IGNwdUFnZ3JlZ2F0b3IgPSBuZXcgQ1BVQWdncmVnYXRvcih7XG4gICAgICBhZ2dyZWdhdGlvbjogZ3JpZEFnZ3JlZ2F0aW9uXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY3B1QWdncmVnYXRvcixcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogY3B1QWdncmVnYXRvci5zdGF0ZVxuICAgIH07XG4gICAgY29uc3QgYXR0cmlidXRlTWFuYWdlciA9IHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpO1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkKHtcbiAgICAgIHBvc2l0aW9uczoge3NpemU6IDMsIGFjY2Vzc29yOiAnZ2V0UG9zaXRpb24nfVxuICAgIH0pO1xuICB9XG59XG5cblNjYWxlRW5oYW5jZWRHcmlkTGF5ZXIubGF5ZXJOYW1lID0gJ1NjYWxlRW5oYW5jZWRHcmlkTGF5ZXInO1xuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -102,4 +102,4 @@ var ScaleEnhancedHexagonLayer = /*#__PURE__*/function (_HexagonLayer) {
|
|
102
102
|
|
103
103
|
exports["default"] = ScaleEnhancedHexagonLayer;
|
104
104
|
ScaleEnhancedHexagonLayer.layerName = 'ScaleEnhancedHexagonLayer';
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
105
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZXhhZ29uLWxheWVyL2VuaGFuY2VkLWhleGFnb24tbGF5ZXIudHMiXSwibmFtZXMiOlsiaGV4YWdvbkFnZ3JlZ2F0aW9uIiwia2V5IiwidXBkYXRlU3RlcHMiLCJ0cmlnZ2VycyIsImNlbGxTaXplIiwicHJvcCIsInBvc2l0aW9uIiwidXBkYXRlVHJpZ2dlciIsImFnZ3JlZ2F0b3IiLCJ1cGRhdGVyIiwiZ2V0QWdncmVnYXRlZERhdGEiLCJTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJhZ2dyZWdhdGlvbiIsInN0YXRlIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwiYWNjZXNzb3IiLCJIZXhhZ29uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsa0JBQW1DLEdBQUc7QUFDakRDLEVBQUFBLEdBQUcsRUFBRSxVQUQ0QztBQUVqREMsRUFBQUEsV0FBVyxFQUFFLENBQ1g7QUFDRUQsSUFBQUEsR0FBRyxFQUFFLFdBRFA7QUFFRUUsSUFBQUEsUUFBUSxFQUFFO0FBQ1JDLE1BQUFBLFFBQVEsRUFBRTtBQUNSQyxRQUFBQSxJQUFJLEVBQUU7QUFERSxPQURGO0FBSVJDLE1BQUFBLFFBQVEsRUFBRTtBQUNSRCxRQUFBQSxJQUFJLEVBQUUsYUFERTtBQUVSRSxRQUFBQSxhQUFhLEVBQUU7QUFGUCxPQUpGO0FBUVJDLE1BQUFBLFVBQVUsRUFBRTtBQUNWSCxRQUFBQSxJQUFJLEVBQUU7QUFESTtBQVJKLEtBRlo7QUFjRUksSUFBQUEsT0FBTyxFQUFFQztBQWRYLEdBRFc7QUFGb0MsQ0FBNUM7OztJQXNCY0MseUI7Ozs7Ozs7Ozs7OztXQUNuQiwyQkFBa0I7QUFDaEIsVUFBTUMsYUFBYSxHQUFHLElBQUlDLHlCQUFKLENBQWtCO0FBQ3RDQyxRQUFBQSxXQUFXLEVBQUVkO0FBRHlCLE9BQWxCLENBQXRCO0FBSUEsV0FBS2UsS0FBTCxHQUFhO0FBQ1hILFFBQUFBLGFBQWEsRUFBYkEsYUFEVztBQUVYSSxRQUFBQSxlQUFlLEVBQUVKLGFBQWEsQ0FBQ0c7QUFGcEIsT0FBYjtBQUlBLFVBQU1FLGdCQUFnQixHQUFHLEtBQUtDLG1CQUFMLEVBQXpCO0FBQ0FELE1BQUFBLGdCQUFnQixDQUFDRSxHQUFqQixDQUFxQjtBQUNuQkMsUUFBQUEsU0FBUyxFQUFFO0FBQUNDLFVBQUFBLElBQUksRUFBRSxDQUFQO0FBQVVDLFVBQUFBLFFBQVEsRUFBRTtBQUFwQjtBQURRLE9BQXJCO0FBR0Q7OztFQWRvREMsK0I7OztBQWlCdkRaLHlCQUF5QixDQUFDYSxTQUExQixHQUFzQywyQkFBdEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0hleGFnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcbmltcG9ydCBDUFVBZ2dyZWdhdG9yLCB7QWdncmVnYXRpb25UeXBlLCBnZXRBZ2dyZWdhdGVkRGF0YX0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuXG5leHBvcnQgY29uc3QgaGV4YWdvbkFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUgPSB7XG4gIGtleTogJ3Bvc2l0aW9uJyxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdhZ2dyZWdhdGUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2VsbFNpemU6IHtcbiAgICAgICAgICBwcm9wOiAncmFkaXVzJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2hleGFnb25BZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYWxlRW5oYW5jZWRIZXhhZ29uTGF5ZXIgZXh0ZW5kcyBIZXhhZ29uTGF5ZXI8YW55PiB7XG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBjb25zdCBjcHVBZ2dyZWdhdG9yID0gbmV3IENQVUFnZ3JlZ2F0b3Ioe1xuICAgICAgYWdncmVnYXRpb246IGhleGFnb25BZ2dyZWdhdGlvblxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxufVxuXG5TY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyLmxheWVyTmFtZSA9ICdTY2FsZUVuaGFuY2VkSGV4YWdvbkxheWVyJztcbiJdfQ==
|
package/dist/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -117,4 +117,4 @@ var ClusterBuilder = /*#__PURE__*/function () {
|
|
117
117
|
}();
|
118
118
|
|
119
119
|
exports["default"] = ClusterBuilder;
|
120
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9jbHVzdGVyLXV0aWxzLnRzIl0sIm5hbWVzIjpbImdldEdlb0pTT04iLCJkYXRhIiwiZ2V0UG9zaXRpb24iLCJmaWx0ZXJEYXRhIiwicmF3IiwiZmlsdGVyIiwibWFwIiwiZCIsInR5cGUiLCJwcm9wZXJ0aWVzIiwicG9pbnRzIiwicG9pbnRfY291bnQiLCJwb2ludF9jb3VudF9hYmJyZXZpYXRlZCIsImdlb21ldHJ5IiwiY29vcmRpbmF0ZXMiLCJldmVyeSIsIk51bWJlciIsImlzRmluaXRlIiwiY2x1c3RlclJlc29sdmVyIiwiY2x1c3RlclJhZGl1cyIsImdldENsdXN0ZXJlciIsImdlb0pTT04iLCJTdXBlcmNsdXN0ZXIiLCJtYXhab29tIiwicmFkaXVzIiwicmVkdWNlIiwiYWNjdW11bGF0ZWQiLCJwcm9wcyIsImxvYWQiLCJDbHVzdGVyQnVpbGRlciIsImNsdXN0ZXJlciIsImJib3giLCJ6b29tIiwiY2x1c3RlcnMiLCJnZXRDbHVzdGVycyIsImMiLCJpIiwicG9zaXRpb24iLCJpbmRleCIsImNhY2hlIiwiY2xlYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT08sU0FBU0EsVUFBVCxDQUFvQkMsSUFBcEIsRUFBMEJDLFdBQTFCLEVBQXVDQyxVQUF2QyxFQUFtRDtBQUN4RCxNQUFNQyxHQUFHLEdBQUcsT0FBT0QsVUFBUCxLQUFzQixVQUF0QixHQUFtQ0YsSUFBSSxDQUFDSSxNQUFMLENBQVlGLFVBQVosQ0FBbkMsR0FBNkRGLElBQXpFO0FBRUEsU0FBT0csR0FBRyxDQUNQRSxHQURJLENBQ0EsVUFBQUMsQ0FBQztBQUFBLFdBQUs7QUFDVEMsTUFBQUEsSUFBSSxFQUFFLE9BREc7QUFFVEMsTUFBQUEsVUFBVSxFQUFFO0FBQ1ZSLFFBQUFBLElBQUksRUFBRU0sQ0FESTtBQUVWRyxRQUFBQSxNQUFNLEVBQUUsQ0FBQ0gsQ0FBRCxDQUZFO0FBR1ZJLFFBQUFBLFdBQVcsRUFBRSxDQUhIO0FBSVZDLFFBQUFBLHVCQUF1QixFQUFFO0FBSmYsT0FGSDtBQVFUQyxNQUFBQSxRQUFRLEVBQUU7QUFDUkMsUUFBQUEsV0FBVyxFQUFFWixXQUFXLENBQUNLLENBQUQ7QUFEaEI7QUFSRCxLQUFMO0FBQUEsR0FERCxFQWFKRixNQWJJLENBYUcsVUFBQUUsQ0FBQztBQUFBLFdBQUlBLENBQUMsQ0FBQ00sUUFBRixDQUFXQyxXQUFYLENBQXVCQyxLQUF2QixDQUE2QkMsTUFBTSxDQUFDQyxRQUFwQyxDQUFKO0FBQUEsR0FiSixDQUFQO0FBY0Q7O0FBRUQsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQjtBQUFBLE1BQUVDLGFBQUYsUUFBRUEsYUFBRjtBQUFBLG1CQUFpREEsYUFBakQ7QUFBQSxDQUF4Qjs7QUFFQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZTtBQUFBLE1BQUVELGFBQUYsU0FBRUEsYUFBRjtBQUFBLE1BQWlCRSxPQUFqQixTQUFpQkEsT0FBakI7QUFBQSxTQUNuQixJQUFJQyx3QkFBSixDQUFpQjtBQUNmQyxJQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxJQUFBQSxNQUFNLEVBQUVMLGFBRk87QUFHZk0sSUFBQUEsTUFBTSxFQUFFLGdCQUFDQyxXQUFELEVBQWNDLEtBQWQsRUFBd0I7QUFDOUJELE1BQUFBLFdBQVcsQ0FBQ2hCLE1BQVosaURBQXlCZ0IsV0FBVyxDQUFDaEIsTUFBckMsdUNBQWdEaUIsS0FBSyxDQUFDakIsTUFBdEQ7QUFDRCxLQUxjO0FBTWZKLElBQUFBLEdBQUcsRUFBRSxhQUFBcUIsS0FBSztBQUFBLGFBQUs7QUFBQ2pCLFFBQUFBLE1BQU0sRUFBRSxDQUFDaUIsS0FBSyxDQUFDMUIsSUFBUDtBQUFULE9BQUw7QUFBQTtBQU5LLEdBQWpCLEVBT0cyQixJQVBILENBT1FQLE9BUFIsQ0FEbUI7QUFBQSxDQUFyQjs7SUFVcUJRLGM7QUFJbkIsNEJBQWM7QUFBQTtBQUNaLFNBQUtDLFNBQUwsR0FBaUIsd0JBQVFWLFlBQVIsRUFBc0JGLGVBQXRCLENBQWpCO0FBQ0Q7Ozs7V0FFRCwrQkFjSTtBQUFBLFVBYkZhLElBYUUsU0FiRkEsSUFhRTtBQUFBLFVBWkZaLGFBWUUsU0FaRkEsYUFZRTtBQUFBLFVBWEZFLE9BV0UsU0FYRkEsT0FXRTtBQUFBLFVBVkZXLElBVUUsU0FWRkEsSUFVRTtBQUNGLFVBQU1GLFNBQVMsR0FBRyxLQUFLQSxTQUFMLENBQWU7QUFBQ1gsUUFBQUEsYUFBYSxFQUFiQSxhQUFEO0FBQWdCRSxRQUFBQSxPQUFPLEVBQVBBO0FBQWhCLE9BQWYsQ0FBbEIsQ0FERSxDQUdGOztBQUNBLFVBQU1ZLFFBQVEsR0FBR0gsU0FBUyxDQUFDSSxXQUFWLENBQXNCSCxJQUF0QixFQUE0QkMsSUFBNUIsRUFBa0MxQixHQUFsQyxDQUFzQyxVQUFDNkIsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsZUFBVztBQUNoRTFCLFVBQUFBLE1BQU0sRUFBRXlCLENBQUMsQ0FBQzFCLFVBQUYsQ0FBYUMsTUFEMkM7QUFFaEUyQixVQUFBQSxRQUFRLEVBQUVGLENBQUMsQ0FBQ3RCLFFBQUYsQ0FBV0MsV0FGMkM7QUFHaEV3QixVQUFBQSxLQUFLLEVBQUVGO0FBSHlELFNBQVg7QUFBQSxPQUF0QyxDQUFqQjtBQU1BLGFBQU9ILFFBQVA7QUFDRDs7O1dBRUQsK0JBQXNCO0FBQUE7O0FBQ3BCLDhEQUFLSCxTQUFMLENBQWVTLEtBQWYsRUFBcUJDLEtBQXJCO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgU3VwZXJjbHVzdGVyIGZyb20gJ3N1cGVyY2x1c3Rlcic7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdsb2Rhc2gubWVtb2l6ZSc7XG5pbXBvcnQge01lbW9pemVkRnVuY3Rpb259IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0JCb3gsIFBvc2l0aW9ufSBmcm9tICdnZW9qc29uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdlb0pTT04oZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGEpIHtcbiAgY29uc3QgcmF3ID0gdHlwZW9mIGZpbHRlckRhdGEgPT09ICdmdW5jdGlvbicgPyBkYXRhLmZpbHRlcihmaWx0ZXJEYXRhKSA6IGRhdGE7XG5cbiAgcmV0dXJuIHJhd1xuICAgIC5tYXAoZCA9PiAoe1xuICAgICAgdHlwZTogJ1BvaW50JyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZGF0YTogZCxcbiAgICAgICAgcG9pbnRzOiBbZF0sXG4gICAgICAgIHBvaW50X2NvdW50OiAxLFxuICAgICAgICBwb2ludF9jb3VudF9hYmJyZXZpYXRlZDogJzEnXG4gICAgICB9LFxuICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgY29vcmRpbmF0ZXM6IGdldFBvc2l0aW9uKGQpXG4gICAgICB9XG4gICAgfSkpXG4gICAgLmZpbHRlcihkID0+IGQuZ2VvbWV0cnkuY29vcmRpbmF0ZXMuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSk7XG59XG5cbmNvbnN0IGNsdXN0ZXJSZXNvbHZlciA9ICh7Y2x1c3RlclJhZGl1c306IHtjbHVzdGVyUmFkaXVzOiBudW1iZXJ9KSA9PiBgJHtjbHVzdGVyUmFkaXVzfWA7XG5cbmNvbnN0IGdldENsdXN0ZXJlciA9ICh7Y2x1c3RlclJhZGl1cywgZ2VvSlNPTn06IHtjbHVzdGVyUmFkaXVzOiBudW1iZXI7IGdlb0pTT059KSA9PlxuICBuZXcgU3VwZXJjbHVzdGVyKHtcbiAgICBtYXhab29tOiAyMCxcbiAgICByYWRpdXM6IGNsdXN0ZXJSYWRpdXMsXG4gICAgcmVkdWNlOiAoYWNjdW11bGF0ZWQsIHByb3BzKSA9PiB7XG4gICAgICBhY2N1bXVsYXRlZC5wb2ludHMgPSBbLi4uYWNjdW11bGF0ZWQucG9pbnRzLCAuLi5wcm9wcy5wb2ludHNdO1xuICAgIH0sXG4gICAgbWFwOiBwcm9wcyA9PiAoe3BvaW50czogW3Byb3BzLmRhdGFdfSlcbiAgfSkubG9hZChnZW9KU09OKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2x1c3RlckJ1aWxkZXIge1xuICBjbHVzdGVyZXI6ICgoe2NsdXN0ZXJSYWRpdXMsIGdlb0pTT059OiB7Y2x1c3RlclJhZGl1czogbnVtYmVyOyBnZW9KU09OfSkgPT4gU3VwZXJjbHVzdGVyKSAmXG4gICAgTWVtb2l6ZWRGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNsdXN0ZXJlciA9IG1lbW9pemUoZ2V0Q2x1c3RlcmVyLCBjbHVzdGVyUmVzb2x2ZXIpO1xuICB9XG5cbiAgY2x1c3RlcnNBdFpvb20oe1xuICAgIGJib3gsXG4gICAgY2x1c3RlclJhZGl1cyxcbiAgICBnZW9KU09OLFxuICAgIHpvb21cbiAgfToge1xuICAgIGJib3g6IEJCb3g7XG4gICAgY2x1c3RlclJhZGl1czogbnVtYmVyO1xuICAgIGdlb0pTT047XG4gICAgem9vbTogbnVtYmVyO1xuICB9KToge1xuICAgIHBvaW50czogYW55O1xuICAgIHBvc2l0aW9uOiBQb3NpdGlvbjtcbiAgICBpbmRleDogbnVtYmVyO1xuICB9W10ge1xuICAgIGNvbnN0IGNsdXN0ZXJlciA9IHRoaXMuY2x1c3RlcmVyKHtjbHVzdGVyUmFkaXVzLCBnZW9KU09OfSk7XG5cbiAgICAvLyBtYXAgY2x1c3RlcnMgdG8gZm9ybWF0dGVkIGJpbnMgdG8gYmUgcGFzc2VkIHRvIGRlY2suZ2wgYmluLXNvcnRlclxuICAgIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlcmVyLmdldENsdXN0ZXJzKGJib3gsIHpvb20pLm1hcCgoYywgaSkgPT4gKHtcbiAgICAgIHBvaW50czogYy5wcm9wZXJ0aWVzLnBvaW50cyxcbiAgICAgIHBvc2l0aW9uOiBjLmdlb21ldHJ5LmNvb3JkaW5hdGVzLFxuICAgICAgaW5kZXg6IGlcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gY2x1c3RlcnM7XG4gIH1cblxuICBjbGVhckNsdXN0ZXJlckNhY2hlKCkge1xuICAgIHRoaXMuY2x1c3RlcmVyLmNhY2hlLmNsZWFyPy4oKTtcbiAgfVxufVxuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -666,4 +666,4 @@ var CPUAggregator = /*#__PURE__*/function () {
|
|
666
666
|
|
667
667
|
exports["default"] = CPUAggregator;
|
668
668
|
CPUAggregator.getDimensionScale = getDimensionScale;
|
669
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9jcHUtYWdncmVnYXRvci50cyJdLCJuYW1lcyI6WyJERUNLX0FHR1JFR0FUSU9OX01BUCIsIkFHR1JFR0FUSU9OX09QRVJBVElPTiIsIlNVTSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwic3VtIiwiTUVBTiIsImF2ZXJhZ2UiLCJNSU4iLCJtaW5pbXVtIiwiTUFYIiwibWF4aW11bSIsImdldFZhbHVlRnVuYyIsImFnZ3JlZ2F0aW9uIiwiYWNjZXNzb3IiLCJ0b1VwcGVyQ2FzZSIsIkNvbnNvbGUiLCJ3YXJuIiwib3AiLCJrZXBsZXJPcCIsInB0cyIsIm1hcCIsImdldFNjYWxlRnVuY3RvciIsInNjYWxlVHlwZSIsIlNDQUxFX0ZVTkMiLCJxdWFudGl6ZSIsIm5vcCIsImdldEdldFZhbHVlIiwic3RlcCIsInByb3BzIiwiZGltZW5zaW9uVXBkYXRlciIsImtleSIsInRyaWdnZXJzIiwidmFsdWUiLCJ3ZWlnaHQiLCJnZXRWYWx1ZSIsInByb3AiLCJfc2V0RGltZW5zaW9uU3RhdGUiLCJnZXREaW1lbnNpb25Tb3J0ZWRCaW5zIiwic3RhdGUiLCJkaW1lbnNpb25zIiwic29ydGVkQmlucyIsIkJpblNvcnRlciIsImxheWVyRGF0YSIsImRhdGEiLCJmaWx0ZXJEYXRhIiwiX2ZpbHRlckRhdGEiLCJnZXREaW1lbnNpb25WYWx1ZURvbWFpbiIsImxvd2VyUGVyY2VudGlsZSIsInVwcGVyUGVyY2VudGlsZSIsInZhbHVlRG9tYWluIiwiZ2V0VmFsdWVEb21haW5CeVNjYWxlIiwiZ2V0RGltZW5zaW9uU2NhbGUiLCJkb21haW4iLCJyYW5nZSIsIm9uU2V0IiwiZGltZW5zaW9uUmFuZ2UiLCJkaW1lbnNpb25Eb21haW4iLCJzY2FsZUZ1bmN0b3IiLCJzY2FsZUZ1bmMiLCJub3JtYWxpemVSZXN1bHQiLCJyZXN1bHQiLCJoZXhhZ29ucyIsIk9iamVjdCIsImFzc2lnbiIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiYWdncmVnYXRpb25QYXJhbXMiLCJhZ2dyIiwiYWdncmVnYXRvciIsInNldFN0YXRlIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwidXBkYXRlU3RlcHMiLCJjZWxsU2l6ZSIsInBvc2l0aW9uIiwidXBkYXRlVHJpZ2dlciIsInVwZGF0ZXIiLCJnZXRTdWJMYXllckFjY2Vzc29yIiwiZGltZW5zaW9uU3RhdGUiLCJkaW1lbnNpb24iLCJsYXllclByb3BzIiwiY2VsbCIsImJpbiIsImJpbk1hcCIsImluZGV4IiwiY291bnRzIiwibnVsbFZhbHVlIiwiY3YiLCJpc1ZhbHVlSW5Eb21haW4iLCJsZW5ndGgiLCJkZWZhdWx0Q29sb3JEaW1lbnNpb24iLCJnZXRQaWNraW5nSW5mbyIsImNvbG9yVmFsdWUiLCJkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uIiwiZWxldmF0aW9uVmFsdWUiLCJkZWZhdWx0RGltZW5zaW9ucyIsIkNQVUFnZ3JlZ2F0b3IiLCJvcHRzIiwiaW5pdGlhbFN0YXRlIiwiZGltZW5zaW9uVXBkYXRlcnMiLCJhZ2dyZWdhdGlvblVwZGF0ZXIiLCJfYWRkRGltZW5zaW9uIiwiZGltZW5zaW9uQ2hhbmdlcyIsImRpbSIsInVwZGF0ZXJzIiwiX2FjY3VtdWxhdGVVcGRhdGVycyIsImNvbmNhdCIsImZvckVhY2giLCJmIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwidXBkYXRlQWdncmVnYXRpb24iLCJ1cGRhdGVBbGxEaW1lbnNpb25zIiwiYWdncmVnYXRpb25DaGFuZ2VzIiwiX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyIsIl9nZXREaW1lbnNpb25DaGFuZ2VzIiwidXBkYXRlT2JqZWN0IiwiZGltZW5zaW9uU3RlcCIsInZhbHVlcyIsInNvbWUiLCJpdGVtIiwidXBkYXRlVHJpZ2dlcnNDaGFuZ2VkIiwiYWxsIiwiaSIsInB1c2giLCJiaW5kIiwibmVlZFVwZGF0ZVN0ZXAiLCJmaW5kSW5kZXgiLCJfbmVlZFVwZGF0ZVN0ZXAiLCJfZ2V0QWxsVXBkYXRlcnMiLCJfdXBkYXRlVHJpZ2dlcnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZyb21Qcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwidW5kZWZpbmVkIiwiaW5mbyIsImlzUGlja2VkIiwicGlja2VkIiwib2JqZWN0IiwiYmluSW5mbyIsInBvaW50cyIsImZpbHRlcmVkUG9pbnRzIiwiQm9vbGVhbiIsImRpbWVuc2lvbktleSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBcURPLElBQU1BLG9CQUFvQix3RkFDOUJDLHlDQUFzQkMsR0FEUSxFQUNGQyw2QkFBa0JDLEdBRGhCLDJEQUU5QkgseUNBQXNCSSxJQUZRLEVBRURGLDZCQUFrQkcsT0FGakIsMkRBRzlCTCx5Q0FBc0JNLEdBSFEsRUFHRkosNkJBQWtCSyxPQUhoQiwyREFJOUJQLHlDQUFzQlEsR0FKUSxFQUlGTiw2QkFBa0JPLE9BSmhCLHlCQUExQjs7O0FBT0EsU0FBU0MsWUFBVCxDQUFzQkMsV0FBdEIsRUFBbUNDLFFBQW5DLEVBQTZDO0FBQ2xELE1BQUksQ0FBQ0QsV0FBRCxJQUFnQixDQUFDWCx5Q0FBc0JXLFdBQVcsQ0FBQ0UsV0FBWixFQUF0QixDQUFyQixFQUF1RTtBQUNyRUMsb0JBQVFDLElBQVIsdUJBQTRCSixXQUE1QjtBQUNEOztBQUVELE1BQU1LLEVBQUUsR0FBR2hCLHlDQUFzQlcsV0FBVyxDQUFDRSxXQUFaLEVBQXRCLEtBQW9EYix5Q0FBc0JDLEdBQXJGOztBQUNBLE1BQU1nQixRQUFRLEdBQUdsQixvQkFBb0IsQ0FBQ2lCLEVBQUQsQ0FBckM7QUFFQSxTQUFPLFVBQUFFLEdBQUc7QUFBQSxXQUFJLHNCQUFVQSxHQUFHLENBQUNDLEdBQUosQ0FBUVAsUUFBUixDQUFWLEVBQTZCSyxRQUE3QixDQUFKO0FBQUEsR0FBVjtBQUNEOztBQUVNLFNBQVNHLGVBQVQsQ0FBeUJDLFNBQXpCLEVBQW9DO0FBQ3pDLE1BQUksQ0FBQ0EsU0FBRCxJQUFjLENBQUNDLHNCQUFXRCxTQUFYLENB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LFFBQUFBLE1BQU0sRUFBRUssT0FBTyxDQUFDSixNQUFELENBRFU7QUFFekI7QUFDQUEsUUFBQUEsTUFBTSxFQUFOQTtBQUh5QixPQUFwQixDQUFQO0FBS0Q7OztXQUVELHFCQUFZSyxZQUFaLEVBQTBCakUsVUFBMUIsRUFBc0M7QUFDcEMsVUFBSSxDQUFDLEtBQUttQixpQkFBTCxDQUF1QitDLGNBQXZCLENBQXNDRCxZQUF0QyxDQUFMLEVBQTBEO0FBQ3hELGVBQU90SCxHQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFLd0UsaUJBQUwsQ0FBdUI4QyxZQUF2QixFQUFxQ3BFLG1CQUFyQyxDQUNMLEtBQUtyQyxLQUFMLENBQVdDLFVBQVgsQ0FBc0J3RyxZQUF0QixDQURLLEVBRUwsS0FBSzlDLGlCQUFMLENBQXVCOEMsWUFBdkIsQ0FGSyxFQUdMakUsVUFISyxDQUFQO0FBS0Q7OztXQXhPRCw2QkFBMkI7QUFDekIsYUFBT2Usa0JBQVA7QUFDRDs7Ozs7O0FBeU9IQyxhQUFhLENBQUMzQyxpQkFBZCxHQUFrQ0EsaUJBQWxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG5pbXBvcnQge0FHR1JFR0FUSU9OX09QRVJBVElPTiwgX0JpblNvcnRlciBhcyBCaW5Tb3J0ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCB7YWdncmVnYXRlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVMsIFNDQUxFX0ZVTkN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgVXBkYXRlclR5cGUgPSAodGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBCaW5kZWRVcGRhdGVyVHlwZSA9ICgpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBBZ2dyZWdhdGVkVXBkYXRlclR5cGUgPSAoXG4gIHRoaXM6IENQVUFnZ3JlZ2F0b3IsXG4gIHN0ZXAsXG4gIHByb3BzLFxuICBhZ2dyZWdhdGlvbixcbiAgYWdncmVnYXRpb25QYXJhbXNcbikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZSA9IChhZ2dyZWdhdGlvblBhcmFtcykgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIG9uU2V0Pzoge1xuICAgIHByb3BzOiBzdHJpbmc7XG4gIH07XG4gIHVwZGF0ZXI6IFVwZGF0ZXJUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRGltZW5zaW9uVHlwZTxWYWx1ZVR5cGUgPSBhbnk+ID0ge1xuICBrZXk6IHN0cmluZztcbiAgYWNjZXNzb3I6IHN0cmluZztcbiAgZ2V0UGlja2luZ0luZm86IChkaW1lbnNpb25TdGF0ZSwgY2VsbCwgbGF5ZXJQcm9wcz8pID0+IGFueTtcbiAgbnVsbFZhbHVlOiBWYWx1ZVR5cGU7XG4gIHVwZGF0ZVN0ZXBzOiBVcGRhdGVTdGVwc1R5cGVbXTtcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3Nvcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHVwZGF0ZXI6IEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHVwZGF0ZVN0ZXBzOiBBZ2dyZWdhdGlvblVwZGF0ZVN0ZXBzVHlwZVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFQ0tfQUdHUkVHQVRJT05fTUFQID0ge1xuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTV06IEFHR1JFR0FUSU9OX1RZUEVTLnN1bSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NRUFOXTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NSU5dOiBBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtLFxuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLk1BWF06IEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUZ1bmMoYWdncmVnYXRpb24sIGFjY2Vzc29yKSB7XG4gIGlmICghYWdncmVnYXRpb24gfHwgIUFHR1JFR0FUSU9OX09QRVJBVElPTlthZ2dyZWdhdGlvbi50b1VwcGVyQ2FzZSgpXSkge1xuICAgIENvbnNvbGUud2FybihgQWdncmVnYXRpb24gJHthZ2dyZWdhdGlvbn0gaXMgbm90IHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3Qgb3AgPSBBR0dSRUdBVElPTl9PUEVSQVRJT05bYWdncmVnYXRpb24udG9VcHBlckNhc2UoKV0gfHwgQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTTtcbiAgY29uc3Qga2VwbGVyT3AgPSBERUNLX0FHR1JFR0FUSU9OX01BUFtvcF07XG5cbiAgcmV0dXJuIHB0cyA9PiBhZ2dyZWdhdGUocHRzLm1hcChhY2Nlc3NvciksIGtlcGxlck9wKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUpIHtcbiAgaWYgKCFzY2FsZVR5cGUgfHwgIVNDQUxFX0ZVTkNbc2NhbGVUeXBlXSkge1xuICAgIENvbnNvbGUud2FybihgU2NhbGUgJHtzY2FsZVR5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuICByZXR1cm4gU0NBTEVfRlVOQ1tzY2FsZVR5cGVdIHx8IFNDQUxFX0ZVTkMucXVhbnRpemU7XG59XG5cbmZ1bmN0aW9uIG5vcCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZXRWYWx1ZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHt2YWx1ZSwgd2VpZ2h0LCBhZ2dyZWdhdGlvbn0gPSBzdGVwLnRyaWdnZXJzO1xuXG4gIGxldCBnZXRWYWx1ZSA9IHByb3BzW3ZhbHVlLnByb3BdO1xuXG4gIGlmIChnZXRWYWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIElmIGBnZXRWYWx1ZWAgaXMgbm90IHByb3ZpZGVkIGZyb20gcHJvcHMsIGJ1aWxkIGl0IHdpdGggYWdncmVnYXRpb24gYW5kIHdlaWdodC5cbiAgICBnZXRWYWx1ZSA9IGdldFZhbHVlRnVuYyhwcm9wc1thZ2dyZWdhdGlvbi5wcm9wXSwgcHJvcHNbd2VpZ2h0LnByb3BdKTtcbiAgfVxuXG4gIGlmIChnZXRWYWx1ZSkge1xuICAgIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge2dldFZhbHVlfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvblNvcnRlZEJpbnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpIHtcbiAgY29uc3Qge2tleX0gPSBkaW1lbnNpb25VcGRhdGVyO1xuICBjb25zdCB7Z2V0VmFsdWV9ID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV07XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY29uc3Qgc29ydGVkQmlucyA9IG5ldyBCaW5Tb3J0ZXIodGhpcy5zdGF0ZS5sYXllckRhdGEuZGF0YSB8fCBbXSwge1xuICAgIGdldFZhbHVlLFxuICAgIGZpbHRlckRhdGE6IHByb3BzLl9maWx0ZXJEYXRhXG4gIH0pO1xuICB0aGlzLl9zZXREaW1lbnNpb25TdGF0ZShrZXksIHtzb3J0ZWRCaW5zfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25WYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtcbiAgICB0cmlnZ2Vyczoge2xvd2VyUGVyY2VudGlsZSwgdXBwZXJQZXJjZW50aWxlLCBzY2FsZVR5cGV9XG4gIH0gPSBzdGVwO1xuXG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0uc29ydGVkQmlucykge1xuICAgIC8vIHRoZSBwcmV2aW91cyBzdGVwIHNob3VsZCBzZXQgc29ydGVkQmlucywgaWYgbm90LCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGZvciBsb2cgYW5kIHNxcnQgc2NhbGUsIHJldHVybnMgbGluZWFyIGRvbWFpbiBieSBkZWZhdWx0XG4gIC8vIFRPRE86IHN1cHBvcnQgb3RoZXIgc2NhbGUgZnVuY3Rpb24gZG9tYWluIGluIGJpbiBzb3J0ZXJcbiAgY29uc3QgdmFsdWVEb21haW4gPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XS5zb3J0ZWRCaW5zLmdldFZhbHVlRG9tYWluQnlTY2FsZShcbiAgICBwcm9wc1tzY2FsZVR5cGUucHJvcF0sXG4gICAgW3Byb3BzW2xvd2VyUGVyY2VudGlsZS5wcm9wXSwgcHJvcHNbdXBwZXJQZXJjZW50aWxlLnByb3BdXVxuICApO1xuXG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3ZhbHVlRG9tYWlufSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25TY2FsZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtkb21haW4sIHJhbmdlLCBzY2FsZVR5cGV9ID0gc3RlcC50cmlnZ2VycztcbiAgY29uc3Qge29uU2V0fSA9IHN0ZXA7XG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0udmFsdWVEb21haW4pIHtcbiAgICAvLyB0aGUgcHJldmlvdXMgc3RlcCBzaG91bGQgc2V0IHZhbHVlRG9tYWluLCBpZiBub3QsIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGltZW5zaW9uUmFuZ2UgPSBwcm9wc1tyYW5nZS5wcm9wXTtcbiAgY29uc3QgZGltZW5zaW9uRG9tYWluID0gcHJvcHNbZG9tYWluLnByb3BdIHx8IHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLnZhbHVlRG9tYWluO1xuXG4gIGNvbnN0IHNjYWxlRnVuY3RvciA9IGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUgJiYgcHJvcHNbc2NhbGVUeXBlLnByb3BdKSgpO1xuXG4gIGNvbnN0IHNjYWxlRnVuYyA9IHNjYWxlRnVuY3Rvci5kb21haW4oZGltZW5zaW9uRG9tYWluKS5yYW5nZShkaW1lbnNpb25SYW5nZSk7XG5cbiAgaWYgKHR5cGVvZiBvblNldCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHByb3BzW29uU2V0LnByb3BzXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHByb3BzW29uU2V0LnByb3BzXShzY2FsZUZ1bmMuZG9tYWluKCkpO1xuICB9XG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3NjYWxlRnVuY30pO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXN1bHQocmVzdWx0OiB7aGV4YWdvbnM/OyBsYXllckRhdGE/fSA9IHt9KSB7XG4gIC8vIHN1cHBvcnQgcHJldmlvdXMgaGV4YWdvbkFnZ3JlZ2F0b3IgQVBJXG4gIGlmIChyZXN1bHQuaGV4YWdvbnMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7ZGF0YTogcmVzdWx0LmhleGFnb25zfSwgcmVzdWx0KTtcbiAgfSBlbHNlIGlmIChyZXN1bHQubGF5ZXJEYXRhKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2RhdGE6IHJlc3VsdC5sYXllckRhdGF9LCByZXN1bHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0ZWREYXRhKFxuICB0aGlzOiBDUFVBZ2dyZWdhdG9yLFxuICBzdGVwLFxuICBwcm9wcyxcbiAgYWdncmVnYXRpb24sXG4gIGFnZ3JlZ2F0aW9uUGFyYW1zXG4pIHtcbiAgY29uc3Qge1xuICAgIHRyaWdnZXJzOiB7YWdncmVnYXRvcjogYWdncn1cbiAgfSA9IHN0ZXA7XG4gIGNvbnN0IGFnZ3JlZ2F0b3IgPSBwcm9wc1thZ2dyLnByb3BdO1xuXG4gIC8vIHJlc3VsdCBzaG91bGQgY29udGFpbiBhIGRhdGEgYXJyYXkgYW5kIG90aGVyIHByb3BzXG4gIC8vIHJlc3VsdCA9IHtkYXRhOiBbXSwgLi4ub3RoZXIgcHJvcHN9XG4gIGNvbnN0IHJlc3VsdCA9IGFnZ3JlZ2F0b3IocHJvcHMsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcbiAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgbGF5ZXJEYXRhOiBub3JtYWxpemVSZXN1bHQocmVzdWx0KVxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnYWdncmVnYXRlJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNlbGxTaXplOiB7XG4gICAgICAgICAgcHJvcDogJ2NlbGxTaXplJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2dyaWRBZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyQWNjZXNzb3IoZGltZW5zaW9uU3RhdGUsIGRpbWVuc2lvbiwgbGF5ZXJQcm9wcykge1xuICByZXR1cm4gY2VsbCA9PiB7XG4gICAgY29uc3Qge3NvcnRlZEJpbnMsIHNjYWxlRnVuY30gPSBkaW1lbnNpb25TdGF0ZTtcbiAgICBjb25zdCBiaW4gPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XTtcblxuICAgIGlmIChiaW4gJiYgYmluLmNvdW50cyA9PT0gMCkge1xuICAgICAgLy8gbm8gcG9pbnRzIGxlZnQgaW4gYmluIGFmdGVyIGZpbHRlcmluZ1xuICAgICAgcmV0dXJuIGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3YgPSBiaW4gJiYgYmluLnZhbHVlO1xuICAgIGNvbnN0IGRvbWFpbiA9IHNjYWxlRnVuYy5kb21haW4oKTtcblxuICAgIGNvbnN0IGlzVmFsdWVJbkRvbWFpbiA9IGN2ID49IGRvbWFpblswXSAmJiBjdiA8PSBkb21haW5bZG9tYWluLmxlbmd0aCAtIDFdO1xuXG4gICAgLy8gaWYgY2VsbCB2YWx1ZSBpcyBvdXRzaWRlIGRvbWFpbiwgc2V0IGFscGhhIHRvIDBcbiAgICByZXR1cm4gaXNWYWx1ZUluRG9tYWluID8gc2NhbGVGdW5jKGN2KSA6IGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sb3JEaW1lbnNpb246IERpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiA9IHtcbiAga2V5OiAnZmlsbENvbG9yJyxcbiAgYWNjZXNzb3I6ICdnZXRGaWxsQ29sb3InLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGNvbG9yVmFsdWUgPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XSAmJiBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XS52YWx1ZTtcbiAgICByZXR1cm4ge2NvbG9yVmFsdWV9O1xuICB9LFxuICBudWxsVmFsdWU6IFswLCAwLCAwLCAwXSxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdnZXRWYWx1ZScsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHByb3A6ICdnZXRDb2xvclZhbHVlJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JWYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldENvbG9yV2VpZ2h0JyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JXZWlnaHQnXG4gICAgICAgIH0sXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2NvbG9yQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdsb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICd1cHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdjb2xvclNjYWxlVHlwZSd9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uVmFsdWVEb21haW5cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2dldFNjYWxlRnVuYycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBkb21haW46IHtwcm9wOiAnY29sb3JEb21haW4nfSxcbiAgICAgICAgcmFuZ2U6IHtwcm9wOiAnY29sb3JSYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnY29sb3JTY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIG9uU2V0OiB7XG4gICAgICAgIHByb3BzOiAnb25TZXRDb2xvckRvbWFpbidcbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25TY2FsZVxuICAgIH1cbiAgXSxcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3NvclxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbGV2YXRpb25EaW1lbnNpb246IERpbWVuc2lvblR5cGU8bnVtYmVyPiA9IHtcbiAga2V5OiAnZWxldmF0aW9uJyxcbiAgYWNjZXNzb3I6ICdnZXRFbGV2YXRpb24nLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0gJiYgc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0udmFsdWU7XG4gICAgcmV0dXJuIHtlbGV2YXRpb25WYWx1ZX07XG4gIH0sXG4gIG51bGxWYWx1ZTogLTEsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnZ2V0VmFsdWUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0RWxldmF0aW9uVmFsdWUnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRFbGV2YXRpb25WYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldEVsZXZhdGlvbldlaWdodCcsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldEVsZXZhdGlvbldlaWdodCdcbiAgICAgICAgfSxcbiAgICAgICAgYWdncmVnYXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZWxldmF0aW9uQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25Mb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25VcHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdlbGV2YXRpb25TY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblZhbHVlRG9tYWluXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXRTY2FsZUZ1bmMnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgZG9tYWluOiB7cHJvcDogJ2VsZXZhdGlvbkRvbWFpbid9LFxuICAgICAgICByYW5nZToge3Byb3A6ICdlbGV2YXRpb25SYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnZWxldmF0aW9uU2NhbGVUeXBlJ31cbiAgICAgIH0sXG4gICAgICBvblNldDoge1xuICAgICAgICBwcm9wczogJ29uU2V0RWxldmF0aW9uRG9tYWluJ1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblNjYWxlXG4gICAgfVxuICBdLFxuICBnZXRTdWJMYXllckFjY2Vzc29yXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdERpbWVuc2lvbnMgPSBbZGVmYXVsdENvbG9yRGltZW5zaW9uLCBkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uXTtcblxuZXhwb3J0IHR5cGUgQ1BVQWdncmVnYXRvclN0YXRlID0ge2xheWVyRGF0YToge2RhdGE/fTsgZGltZW5zaW9uczoge307IGdlb0pTT04/OyBjbHVzdGVyQnVpbGRlcj99O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDUFVBZ2dyZWdhdG9yIHtcbiAgc3RhdGljIGdldERpbWVuc2lvblNjYWxlOiBhbnk7XG4gIHN0YXRlOiBDUFVBZ2dyZWdhdG9yU3RhdGU7XG4gIGRpbWVuc2lvblVwZGF0ZXJzOiB7W2tleTogc3RyaW5nXTogRGltZW5zaW9uVHlwZX07XG4gIGFnZ3JlZ2F0aW9uVXBkYXRlcjogQWdncmVnYXRpb25UeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdHM6IHtcbiAgICAgIGluaXRpYWxTdGF0ZT86IENQVUFnZ3JlZ2F0b3JTdGF0ZTtcbiAgICAgIGRpbWVuc2lvbnM/OiBEaW1lbnNpb25UeXBlW107XG4gICAgICBhZ2dyZWdhdGlvbj86IEFnZ3JlZ2F0aW9uVHlwZTtcbiAgICB9ID0ge31cbiAgKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyRGF0YToge30sXG4gICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgIC8vIGNvbG9yOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gZWxldmF0aW9uOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfVxuICAgICAgfSxcbiAgICAgIC4uLm9wdHMuaW5pdGlhbFN0YXRlXG4gICAgfTtcblxuICAgIHRoaXMuZGltZW5zaW9uVXBkYXRlcnMgPSB7fTtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IG9wdHMuYWdncmVnYXRpb24gfHwgZGVmYXVsdEFnZ3JlZ2F0aW9uO1xuXG4gICAgdGhpcy5fYWRkRGltZW5zaW9uKG9wdHMuZGltZW5zaW9ucyB8fCBkZWZhdWx0RGltZW5zaW9ucyk7XG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdERpbWVuc2lvbnMoKSB7XG4gICAgcmV0dXJuIGRlZmF1bHREaW1lbnNpb25zO1xuICB9XG5cbiAgdXBkYXRlQWxsRGltZW5zaW9ucyhwcm9wcykge1xuICAgIGxldCBkaW1lbnNpb25DaGFuZ2VzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG4gICAgLy8gdXBkYXRlIGFsbCBkaW1lbnNpb25zXG4gICAgZm9yIChjb25zdCBkaW0gaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgY29uc3QgdXBkYXRlcnMgPSB0aGlzLl9hY2N1bXVsYXRlVXBkYXRlcnMoMCwgcHJvcHMsIHRoaXMuZGltZW5zaW9uVXBkYXRlcnNbZGltXSk7XG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gZGltZW5zaW9uQ2hhbmdlcy5jb25jYXQodXBkYXRlcnMpO1xuICAgIH1cblxuICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gIH1cblxuICB1cGRhdGVBZ2dyZWdhdGlvbihwcm9wcywgYWdncmVnYXRpb25QYXJhbXMpIHtcbiAgICBjb25zdCB1cGRhdGVycyA9IHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycygwLCBwcm9wcywgdGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIpO1xuICAgIHVwZGF0ZXJzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZShvcHRzLCBhZ2dyZWdhdGlvblBhcmFtcykge1xuICAgIGNvbnN0IHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSA9IG9wdHM7XG4gICAgbGV0IGRpbWVuc2lvbkNoYW5nZXM6IEJpbmRlZFVwZGF0ZXJUeXBlW10gPSBbXTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5kYXRhQ2hhbmdlZCkge1xuICAgICAgLy8gaWYgZGF0YSBjaGFuZ2VkIHVwZGF0ZSBldmVyeXRoaW5nXG4gICAgICB0aGlzLnVwZGF0ZUFnZ3JlZ2F0aW9uKHByb3BzLCBhZ2dyZWdhdGlvblBhcmFtcyk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhZ2dyZWdhdGlvbkNoYW5nZXMgPSB0aGlzLl9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncyk7XG5cbiAgICBpZiAoYWdncmVnYXRpb25DaGFuZ2VzICYmIGFnZ3JlZ2F0aW9uQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBhZ2dyZWdhdGVkRGF0YVxuICAgICAgYWdncmVnYXRpb25DaGFuZ2VzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbmx5IHVwZGF0ZSBkaW1lbnNpb25zXG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gdGhpcy5fZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB8fCBbXTtcbiAgICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICAvLyBVcGRhdGUgcHJpdmF0ZSBzdGF0ZVxuICBzZXRTdGF0ZSh1cGRhdGVPYmplY3QpIHtcbiAgICB0aGlzLnN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZSwgdXBkYXRlT2JqZWN0KTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSBwcml2YXRlIHN0YXRlLmRpbWVuc2lvbnNcbiAgX3NldERpbWVuc2lvblN0YXRlKGtleSwgdXBkYXRlT2JqZWN0KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkaW1lbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLmRpbWVuc2lvbnMsIHtcbiAgICAgICAgW2tleV06IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLCB1cGRhdGVPYmplY3QpXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgX2FkZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IGFnZ3JlZ2F0aW9uO1xuICB9XG5cbiAgX2FkZERpbWVuc2lvbihkaW1lbnNpb25zOiBEaW1lbnNpb25UeXBlW10gPSBbXSkge1xuICAgIGRpbWVuc2lvbnMuZm9yRWFjaChkaW1lbnNpb24gPT4ge1xuICAgICAgY29uc3Qge2tleX0gPSBkaW1lbnNpb247XG4gICAgICB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV0gPSBkaW1lbnNpb247XG4gICAgfSk7XG4gIH1cblxuICBfbmVlZFVwZGF0ZVN0ZXAoXG4gICAgZGltZW5zaW9uU3RlcDogVXBkYXRlU3RlcHNUeXBlIHwgQWdncmVnYXRpb25VcGRhdGVTdGVwc1R5cGUsXG4gICAgb2xkUHJvcHMsXG4gICAgcHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgKSB7XG4gICAgLy8gd2hldGhlciBuZWVkIHRvIHVwZGF0ZSBjdXJyZW50IGRpbWVuc2lvbiBzdGVwXG4gICAgLy8gZGltZW5zaW9uIHN0ZXAgaXMgdGhlIHZhbHVlLCBkb21haW4sIHNjYWxlRnVuY3Rpb24gb2YgZWFjaCBkaW1lbnNpb25cbiAgICAvLyBlYWNoIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggcHJvcGVydGllcyBsaW5rcyB0byBsYXllciBwcm9wIGFuZCB3aGV0aGVyIHRoZSBwcm9wIGlzXG4gICAgLy8gY29udHJvbGxlZCBieSB1cGRhdGVUcmlnZ2Vyc1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRpbWVuc2lvblN0ZXAudHJpZ2dlcnMpLnNvbWUoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS51cGRhdGVUcmlnZ2VyKSB7XG4gICAgICAgIC8vIGNoZWNrIGJhc2VkIG9uIHVwZGF0ZVRyaWdnZXJzIGNoYW5nZSBmaXJzdFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNoYW5nZUZsYWdzLnVwZGF0ZVRyaWdnZXJzQ2hhbmdlZCAmJlxuICAgICAgICAgIChjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWQuYWxsIHx8XG4gICAgICAgICAgICBjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWRbaXRlbS51cGRhdGVUcmlnZ2VyXSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIGZhbGxiYWNrIHRvIGRpcmVjdCBjb21wYXJpc29uXG4gICAgICByZXR1cm4gb2xkUHJvcHNbaXRlbS5wcm9wXSAhPT0gcHJvcHNbaXRlbS5wcm9wXTtcbiAgICB9KTtcbiAgfVxuXG4gIF9hY2N1bXVsYXRlVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBzdGVwLFxuICAgIHByb3BzLFxuICAgIGRpbWVuc2lvbjogVXBkYXRlck9iamVjdFR5cGVcbiAgKSB7XG4gICAgdHlwZSBMb2NhbFVwZGF0ZXJUeXBlID0gVXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlXG4gICAgICA/IEJpbmRlZFVwZGF0ZXJUeXBlXG4gICAgICA6IEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbiAgICBjb25zdCB1cGRhdGVyczogTG9jYWxVcGRhdGVyVHlwZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IHN0ZXA7IGkgPCBkaW1lbnNpb24udXBkYXRlU3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHVwZGF0ZXIgPSBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0udXBkYXRlcjtcbiAgICAgIGlmICh0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB1cGRhdGVycy5wdXNoKFxuICAgICAgICAgIHVwZGF0ZXIuYmluZCh0aGlzLCBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0sIHByb3BzLCBkaW1lbnNpb24pIGFzIExvY2FsVXBkYXRlclR5cGVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlcnM7XG4gIH1cblxuICBfZ2V0QWxsVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBkaW1lbnNpb246IFVwZGF0ZXJPYmplY3RUeXBlLFxuICAgIG9sZFByb3BzLFxuICAgIHByb3BzLFxuICAgIGNoYW5nZUZsYWdzXG4gICkge1xuICAgIHR5cGUgTG9jYWxVcGRhdGVyVHlwZSA9IFVwZGF0ZXJPYmplY3RUeXBlIGV4dGVuZHMgRGltZW5zaW9uVHlwZVxuICAgICAgPyBCaW5kZWRVcGRhdGVyVHlwZVxuICAgICAgOiBCaW5kZWRBZ2dyZWdhdGVkVXBkYXRlclR5cGU7XG4gICAgbGV0IHVwZGF0ZXJzOiBMb2NhbFVwZGF0ZXJUeXBlW10gPSBbXTtcbiAgICBjb25zdCBuZWVkVXBkYXRlU3RlcCA9IGRpbWVuc2lvbi51cGRhdGVTdGVwcy5maW5kSW5kZXgoc3RlcCA9PlxuICAgICAgdGhpcy5fbmVlZFVwZGF0ZVN0ZXAoc3RlcCwgb2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncylcbiAgICApO1xuXG4gICAgaWYgKG5lZWRVcGRhdGVTdGVwID4gLTEpIHtcbiAgICAgIHVwZGF0ZXJzID0gdXBkYXRlcnMuY29uY2F0KHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycyhuZWVkVXBkYXRlU3RlcCwgcHJvcHMsIGRpbWVuc2lvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycztcbiAgfVxuXG4gIF9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncykge1xuICAgIGNvbnN0IHVwZGF0ZXJzID0gdGhpcy5fZ2V0QWxsVXBkYXRlcnModGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIsIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBfZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB7XG4gICAgbGV0IHVwZGF0ZXJzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG5cbiAgICAvLyBnZXQgZGltZW5zaW9uIHRvIGJlIHVwZGF0ZWRcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IHRyaWdnZXJlZCB1cGRhdGVyIGZvciBlYWNoIGRpbWVuc2lvblxuICAgICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgY29uc3QgZGltZW5zaW9uVXBkYXRlcnMgPSB0aGlzLl9nZXRBbGxVcGRhdGVycyhkaW1lbnNpb24sIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgICAgdXBkYXRlcnMgPSB1cGRhdGVycy5jb25jYXQoZGltZW5zaW9uVXBkYXRlcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBnZXRVcGRhdGVUcmlnZ2Vycyhwcm9wcykge1xuICAgIGNvbnN0IF91cGRhdGVUcmlnZ2VycyA9IHByb3BzLnVwZGF0ZVRyaWdnZXJzIHx8IHt9O1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFjY2Vzc29yLFxuICAgICAgICB1cGRhdGVTdGVwc1xuICAgICAgfToge2FjY2Vzc29yOyB1cGRhdGVTdGVwczogVXBkYXRlU3RlcHNUeXBlW119ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgLy8gZm9sZCBkaW1lbnNpb24gdHJpZ2dlcnMgaW50byBlYWNoIGFjY2Vzc29yXG4gICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0gPSB7fTtcblxuICAgICAgdXBkYXRlU3RlcHMuZm9yRWFjaChzdGVwID0+IHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhzdGVwLnRyaWdnZXJzIHx8IFtdKS5mb3JFYWNoKCh7cHJvcCwgdXBkYXRlVHJpZ2dlcn0pID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlVHJpZ2dlcikge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBiYXNlZCBvbiB1cGRhdGVUcmlnZ2VyIGUuZy4gZ2V0Q29sb3JWYWx1ZSwgZ2V0Q29sb3JXZWlnaHRcbiAgICAgICAgICAgIC8vIGFuZCB1cGRhdGVUcmlnZ2VycyBpcyBwYXNzZWQgaW4gZnJvbSBsYXllciBwcm9wXG4gICAgICAgICAgICAvLyBmb2xkIHRoZSB1cGRhdGVUcmlnZ2VycyBpbnRvIGFjY2Vzc29yXG4gICAgICAgICAgICBjb25zdCBmcm9tUHJvcCA9IF91cGRhdGVUcmlnZ2Vyc1t1cGRhdGVUcmlnZ2VyXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJvbVByb3AgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGZyb21Qcm9wKSkge1xuICAgICAgICAgICAgICAvLyBpZiB1cGRhdGVUcmlnZ2VyIGlzIGFuIG9iamVjdCBzcHJlYWQgaXRcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0sIGZyb21Qcm9wKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJvbVByb3AgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl1bcHJvcF0gPSBmcm9tUHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBub3QgYmFzZWQgb24gdXBkYXRlVHJpZ2dlclxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnNbYWNjZXNzb3JdW3Byb3BdID0gcHJvcHNbcHJvcF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVUcmlnZ2VycztcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSwgbGF5ZXJQcm9wcykge1xuICAgIGNvbnN0IGlzUGlja2VkID0gaW5mby5waWNrZWQgJiYgaW5mby5pbmRleCA+IC0xO1xuICAgIGxldCBvYmplY3QgPSBudWxsO1xuICAgIGNvbnN0IGNlbGwgPSBpc1BpY2tlZCA/IHRoaXMuc3RhdGUubGF5ZXJEYXRhLmRhdGFbaW5mby5pbmRleF0gOiBudWxsO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICBsZXQgYmluSW5mbyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgICBjb25zdCB7Z2V0UGlja2luZ0luZm99ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIGdldFBpY2tpbmdJbmZvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYmluSW5mbyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGJpbkluZm8sXG4gICAgICAgICAgICBnZXRQaWNraW5nSW5mbyh0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XSwgY2VsbCwgbGF5ZXJQcm9wcylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9iamVjdCA9IE9iamVjdC5hc3NpZ24oYmluSW5mbywgY2VsbCwge1xuICAgICAgICBwb2ludHM6IGNlbGwuZmlsdGVyZWRQb2ludHMgfHwgY2VsbC5wb2ludHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGFkZCBiaW4gIGFuZCAgdG8gaW5mb1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGluZm8sIHtcbiAgICAgIHBpY2tlZDogQm9vbGVhbihvYmplY3QpLFxuICAgICAgLy8gb3ZlcnJpZGUgb2JqZWN0IHdpdGggcGlja2VkIGNlbGxcbiAgICAgIG9iamVjdFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjZXNzb3IoZGltZW5zaW9uS2V5LCBsYXllclByb3BzKSB7XG4gICAgaWYgKCF0aGlzLmRpbWVuc2lvblVwZGF0ZXJzLmhhc093blByb3BlcnR5KGRpbWVuc2lvbktleSkpIHtcbiAgICAgIHJldHVybiBub3A7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2RpbWVuc2lvbktleV0uZ2V0U3ViTGF5ZXJBY2Nlc3NvcihcbiAgICAgIHRoaXMuc3RhdGUuZGltZW5zaW9uc1tkaW1lbnNpb25LZXldLFxuICAgICAgdGhpcy5kaW1lbnNpb25VcGRhdGVyc1tkaW1lbnNpb25LZXldLFxuICAgICAgbGF5ZXJQcm9wc1xuICAgICk7XG4gIH1cbn1cblxuQ1BVQWdncmVnYXRvci5nZXREaW1lbnNpb25TY2FsZSA9IGdldERpbWVuc2lvblNjYWxlO1xuIl19
|
669
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9jcHUtYWdncmVnYXRvci50cyJdLCJuYW1lcyI6WyJERUNLX0FHR1JFR0FUSU9OX01BUCIsIkFHR1JFR0FUSU9OX09QRVJBVElPTiIsIlNVTSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwic3VtIiwiTUVBTiIsImF2ZXJhZ2UiLCJNSU4iLCJtaW5pbXVtIiwiTUFYIiwibWF4aW11bSIsImdldFZhbHVlRnVuYyIsImFnZ3JlZ2F0aW9uIiwiYWNjZXNzb3IiLCJ0b1VwcGVyQ2FzZSIsIkNvbnNvbGUiLCJ3YXJuIiwib3AiLCJrZXBsZXJPcCIsInB0cyIsIm1hcCIsImdldFNjYWxlRnVuY3RvciIsInNjYWxlVHlwZSIsIlNDQUxFX0ZVTkMiLCJxdWFudGl6ZSIsIm5vcCIsImdldEdldFZhbHVlIiwic3RlcCIsInByb3BzIiwiZGltZW5zaW9uVXBkYXRlciIsImtleSIsInRyaWdnZXJzIiwidmFsdWUiLCJ3ZWlnaHQiLCJnZXRWYWx1ZSIsInByb3AiLCJfc2V0RGltZW5zaW9uU3RhdGUiLCJnZXREaW1lbnNpb25Tb3J0ZWRCaW5zIiwic3RhdGUiLCJkaW1lbnNpb25zIiwic29ydGVkQmlucyIsIkJpblNvcnRlciIsImxheWVyRGF0YSIsImRhdGEiLCJmaWx0ZXJEYXRhIiwiX2ZpbHRlckRhdGEiLCJnZXREaW1lbnNpb25WYWx1ZURvbWFpbiIsImxvd2VyUGVyY2VudGlsZSIsInVwcGVyUGVyY2VudGlsZSIsInZhbHVlRG9tYWluIiwiZ2V0VmFsdWVEb21haW5CeVNjYWxlIiwiZ2V0RGltZW5zaW9uU2NhbGUiLCJkb21haW4iLCJyYW5nZSIsIm9uU2V0IiwiZGltZW5zaW9uUmFuZ2UiLCJkaW1lbnNpb25Eb21haW4iLCJzY2FsZUZ1bmN0b3IiLCJzY2FsZUZ1bmMiLCJub3JtYWxpemVSZXN1bHQiLCJyZXN1bHQiLCJoZXhhZ29ucyIsIk9iamVjdCIsImFzc2lnbiIsImdldEFnZ3JlZ2F0ZWREYXRhIiwiYWdncmVnYXRpb25QYXJhbXMiLCJhZ2dyIiwiYWdncmVnYXRvciIsInNldFN0YXRlIiwiZGVmYXVsdEFnZ3JlZ2F0aW9uIiwidXBkYXRlU3RlcHMiLCJjZWxsU2l6ZSIsInBvc2l0aW9uIiwidXBkYXRlVHJpZ2dlciIsInVwZGF0ZXIiLCJnZXRTdWJMYXllckFjY2Vzc29yIiwiZGltZW5zaW9uU3RhdGUiLCJkaW1lbnNpb24iLCJsYXllclByb3BzIiwiY2VsbCIsImJpbiIsImJpbk1hcCIsImluZGV4IiwiY291bnRzIiwibnVsbFZhbHVlIiwiY3YiLCJpc1ZhbHVlSW5Eb21haW4iLCJsZW5ndGgiLCJkZWZhdWx0Q29sb3JEaW1lbnNpb24iLCJnZXRQaWNraW5nSW5mbyIsImNvbG9yVmFsdWUiLCJkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uIiwiZWxldmF0aW9uVmFsdWUiLCJkZWZhdWx0RGltZW5zaW9ucyIsIkNQVUFnZ3JlZ2F0b3IiLCJvcHRzIiwiaW5pdGlhbFN0YXRlIiwiZGltZW5zaW9uVXBkYXRlcnMiLCJhZ2dyZWdhdGlvblVwZGF0ZXIiLCJfYWRkRGltZW5zaW9uIiwiZGltZW5zaW9uQ2hhbmdlcyIsImRpbSIsInVwZGF0ZXJzIiwiX2FjY3VtdWxhdGVVcGRhdGVycyIsImNvbmNhdCIsImZvckVhY2giLCJmIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwidXBkYXRlQWdncmVnYXRpb24iLCJ1cGRhdGVBbGxEaW1lbnNpb25zIiwiYWdncmVnYXRpb25DaGFuZ2VzIiwiX2dldEFnZ3JlZ2F0aW9uQ2hhbmdlcyIsIl9nZXREaW1lbnNpb25DaGFuZ2VzIiwidXBkYXRlT2JqZWN0IiwiZGltZW5zaW9uU3RlcCIsInZhbHVlcyIsInNvbWUiLCJpdGVtIiwidXBkYXRlVHJpZ2dlcnNDaGFuZ2VkIiwiYWxsIiwiaSIsInB1c2giLCJiaW5kIiwibmVlZFVwZGF0ZVN0ZXAiLCJmaW5kSW5kZXgiLCJfbmVlZFVwZGF0ZVN0ZXAiLCJfZ2V0QWxsVXBkYXRlcnMiLCJfdXBkYXRlVHJpZ2dlcnMiLCJ1cGRhdGVUcmlnZ2VycyIsImZyb21Qcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwidW5kZWZpbmVkIiwiaW5mbyIsImlzUGlja2VkIiwicGlja2VkIiwib2JqZWN0IiwiYmluSW5mbyIsInBvaW50cyIsImZpbHRlcmVkUG9pbnRzIiwiQm9vbGVhbiIsImRpbWVuc2lvbktleSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBcURPLElBQU1BLG9CQUFvQix3RkFDOUJDLHlDQUFzQkMsR0FEUSxFQUNGQyw2QkFBa0JDLEdBRGhCLDJEQUU5QkgseUNBQXNCSSxJQUZRLEVBRURGLDZCQUFrQkcsT0FGakIsMkRBRzlCTCx5Q0FBc0JNLEdBSFEsRUFHRkosNkJBQWtCSyxPQUhoQiwyREFJOUJQLHlDQUFzQlEsR0FKUSxFQUlGTiw2QkFBa0JPLE9BSmhCLHlCQUExQjs7O0FBT0EsU0FBU0MsWUFBVCxDQUFzQkMsV0FBdEIsRUFBbUNDLFFBQW5DLEVBQTZDO0FBQ2xELE1BQUksQ0FBQ0QsV0FBRCxJQUFnQixDQUFDWCx5Q0FBc0JXLFdBQVcsQ0FBQ0UsV0FBWixFQUF0QixDQUFyQixFQUF1RTtBQUNyRUMsb0JBQVFDLElBQVIsdUJBQTRCSixXQUE1QjtBQUNEOztBQUVELE1BQU1LLEVBQUUsR0FBR2hCLHlDQUFzQlcsV0FBVyxDQUFDRSxXQUFaLEVBQXRCLEtBQW9EYix5Q0FBc0JDLEdBQXJGOztBQUNBLE1BQU1nQixRQUFRLEdBQUdsQixvQkFBb0IsQ0FBQ2lCLEVBQUQsQ0FBckM7QUFFQSxTQUFPLFVBQUFFLEdBQUc7QUFBQSxXQUFJLHNCQUFVQSxHQUFHLENBQUNDLEdBQUosQ0FBUVAsUUFBUixDQUFWLEVBQTZCSyxRQUE3QixDQUFKO0FBQUEsR0FBVjtBQUNEOztBQUVNLFNBQVNHLGVBQVQsQ0FBeUJDLFNBQXpCLEVBQW9DO0FBQ3pDLE1BQUksQ0FBQ0EsU0FBRCxJQUFjLENBQUNDLHNCQUFXRCxTQUFYLENB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LFFBQUFBLE1BQU0sRUFBRUssT0FBTyxDQUFDSixNQUFELENBRFU7QUFFekI7QUFDQUEsUUFBQUEsTUFBTSxFQUFOQTtBQUh5QixPQUFwQixDQUFQO0FBS0Q7OztXQUVELHFCQUFZSyxZQUFaLEVBQTBCakUsVUFBMUIsRUFBc0M7QUFDcEMsVUFBSSxDQUFDLEtBQUttQixpQkFBTCxDQUF1QitDLGNBQXZCLENBQXNDRCxZQUF0QyxDQUFMLEVBQTBEO0FBQ3hELGVBQU90SCxHQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFLd0UsaUJBQUwsQ0FBdUI4QyxZQUF2QixFQUFxQ3BFLG1CQUFyQyxDQUNMLEtBQUtyQyxLQUFMLENBQVdDLFVBQVgsQ0FBc0J3RyxZQUF0QixDQURLLEVBRUwsS0FBSzlDLGlCQUFMLENBQXVCOEMsWUFBdkIsQ0FGSyxFQUdMakUsVUFISyxDQUFQO0FBS0Q7OztXQXhPRCw2QkFBMkI7QUFDekIsYUFBT2Usa0JBQVA7QUFDRDs7Ozs7O0FBeU9IQyxhQUFhLENBQUMzQyxpQkFBZCxHQUFrQ0EsaUJBQWxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG5pbXBvcnQge0FHR1JFR0FUSU9OX09QRVJBVElPTiwgX0JpblNvcnRlciBhcyBCaW5Tb3J0ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCB7YWdncmVnYXRlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7QUdHUkVHQVRJT05fVFlQRVMsIFNDQUxFX0ZVTkN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgVXBkYXRlclR5cGUgPSAodGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBCaW5kZWRVcGRhdGVyVHlwZSA9ICgpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBBZ2dyZWdhdGVkVXBkYXRlclR5cGUgPSAoXG4gIHRoaXM6IENQVUFnZ3JlZ2F0b3IsXG4gIHN0ZXAsXG4gIHByb3BzLFxuICBhZ2dyZWdhdGlvbixcbiAgYWdncmVnYXRpb25QYXJhbXNcbikgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZSA9IChhZ2dyZWdhdGlvblBhcmFtcykgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIG9uU2V0Pzoge1xuICAgIHByb3BzOiBzdHJpbmc7XG4gIH07XG4gIHVwZGF0ZXI6IFVwZGF0ZXJUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgRGltZW5zaW9uVHlwZTxWYWx1ZVR5cGUgPSBhbnk+ID0ge1xuICBrZXk6IHN0cmluZztcbiAgYWNjZXNzb3I6IHN0cmluZztcbiAgZ2V0UGlja2luZ0luZm86IChkaW1lbnNpb25TdGF0ZSwgY2VsbCwgbGF5ZXJQcm9wcz8pID0+IGFueTtcbiAgbnVsbFZhbHVlOiBWYWx1ZVR5cGU7XG4gIHVwZGF0ZVN0ZXBzOiBVcGRhdGVTdGVwc1R5cGVbXTtcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3Nvcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVXBkYXRlU3RlcHNUeXBlID0ge1xuICBrZXk6IHN0cmluZztcbiAgdHJpZ2dlcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICBwcm9wOiBzdHJpbmc7XG4gICAgICB1cGRhdGVUcmlnZ2VyPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIHVwZGF0ZXI6IEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHVwZGF0ZVN0ZXBzOiBBZ2dyZWdhdGlvblVwZGF0ZVN0ZXBzVHlwZVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFQ0tfQUdHUkVHQVRJT05fTUFQID0ge1xuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTV06IEFHR1JFR0FUSU9OX1RZUEVTLnN1bSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NRUFOXTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgW0FHR1JFR0FUSU9OX09QRVJBVElPTi5NSU5dOiBBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtLFxuICBbQUdHUkVHQVRJT05fT1BFUkFUSU9OLk1BWF06IEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZUZ1bmMoYWdncmVnYXRpb24sIGFjY2Vzc29yKSB7XG4gIGlmICghYWdncmVnYXRpb24gfHwgIUFHR1JFR0FUSU9OX09QRVJBVElPTlthZ2dyZWdhdGlvbi50b1VwcGVyQ2FzZSgpXSkge1xuICAgIENvbnNvbGUud2FybihgQWdncmVnYXRpb24gJHthZ2dyZWdhdGlvbn0gaXMgbm90IHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3Qgb3AgPSBBR0dSRUdBVElPTl9PUEVSQVRJT05bYWdncmVnYXRpb24udG9VcHBlckNhc2UoKV0gfHwgQUdHUkVHQVRJT05fT1BFUkFUSU9OLlNVTTtcbiAgY29uc3Qga2VwbGVyT3AgPSBERUNLX0FHR1JFR0FUSU9OX01BUFtvcF07XG5cbiAgcmV0dXJuIHB0cyA9PiBhZ2dyZWdhdGUocHRzLm1hcChhY2Nlc3NvciksIGtlcGxlck9wKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUpIHtcbiAgaWYgKCFzY2FsZVR5cGUgfHwgIVNDQUxFX0ZVTkNbc2NhbGVUeXBlXSkge1xuICAgIENvbnNvbGUud2FybihgU2NhbGUgJHtzY2FsZVR5cGV9IGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuICByZXR1cm4gU0NBTEVfRlVOQ1tzY2FsZVR5cGVdIHx8IFNDQUxFX0ZVTkMucXVhbnRpemU7XG59XG5cbmZ1bmN0aW9uIG5vcCgpIHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZXRWYWx1ZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHt2YWx1ZSwgd2VpZ2h0LCBhZ2dyZWdhdGlvbn0gPSBzdGVwLnRyaWdnZXJzO1xuXG4gIGxldCBnZXRWYWx1ZSA9IHByb3BzW3ZhbHVlLnByb3BdO1xuXG4gIGlmIChnZXRWYWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIElmIGBnZXRWYWx1ZWAgaXMgbm90IHByb3ZpZGVkIGZyb20gcHJvcHMsIGJ1aWxkIGl0IHdpdGggYWdncmVnYXRpb24gYW5kIHdlaWdodC5cbiAgICBnZXRWYWx1ZSA9IGdldFZhbHVlRnVuYyhwcm9wc1thZ2dyZWdhdGlvbi5wcm9wXSwgcHJvcHNbd2VpZ2h0LnByb3BdKTtcbiAgfVxuXG4gIGlmIChnZXRWYWx1ZSkge1xuICAgIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge2dldFZhbHVlfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpbWVuc2lvblNvcnRlZEJpbnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGRpbWVuc2lvblVwZGF0ZXIpIHtcbiAgY29uc3Qge2tleX0gPSBkaW1lbnNpb25VcGRhdGVyO1xuICBjb25zdCB7Z2V0VmFsdWV9ID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV07XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY29uc3Qgc29ydGVkQmlucyA9IG5ldyBCaW5Tb3J0ZXIodGhpcy5zdGF0ZS5sYXllckRhdGEuZGF0YSB8fCBbXSwge1xuICAgIGdldFZhbHVlLFxuICAgIGZpbHRlckRhdGE6IHByb3BzLl9maWx0ZXJEYXRhXG4gIH0pO1xuICB0aGlzLl9zZXREaW1lbnNpb25TdGF0ZShrZXksIHtzb3J0ZWRCaW5zfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25WYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtcbiAgICB0cmlnZ2Vyczoge2xvd2VyUGVyY2VudGlsZSwgdXBwZXJQZXJjZW50aWxlLCBzY2FsZVR5cGV9XG4gIH0gPSBzdGVwO1xuXG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0uc29ydGVkQmlucykge1xuICAgIC8vIHRoZSBwcmV2aW91cyBzdGVwIHNob3VsZCBzZXQgc29ydGVkQmlucywgaWYgbm90LCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIGZvciBsb2cgYW5kIHNxcnQgc2NhbGUsIHJldHVybnMgbGluZWFyIGRvbWFpbiBieSBkZWZhdWx0XG4gIC8vIFRPRE86IHN1cHBvcnQgb3RoZXIgc2NhbGUgZnVuY3Rpb24gZG9tYWluIGluIGJpbiBzb3J0ZXJcbiAgY29uc3QgdmFsdWVEb21haW4gPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XS5zb3J0ZWRCaW5zLmdldFZhbHVlRG9tYWluQnlTY2FsZShcbiAgICBwcm9wc1tzY2FsZVR5cGUucHJvcF0sXG4gICAgW3Byb3BzW2xvd2VyUGVyY2VudGlsZS5wcm9wXSwgcHJvcHNbdXBwZXJQZXJjZW50aWxlLnByb3BdXVxuICApO1xuXG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3ZhbHVlRG9tYWlufSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaW1lbnNpb25TY2FsZSh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtkb21haW4sIHJhbmdlLCBzY2FsZVR5cGV9ID0gc3RlcC50cmlnZ2VycztcbiAgY29uc3Qge29uU2V0fSA9IHN0ZXA7XG4gIGlmICghdGhpcy5zdGF0ZS5kaW1lbnNpb25zW2tleV0udmFsdWVEb21haW4pIHtcbiAgICAvLyB0aGUgcHJldmlvdXMgc3RlcCBzaG91bGQgc2V0IHZhbHVlRG9tYWluLCBpZiBub3QsIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGltZW5zaW9uUmFuZ2UgPSBwcm9wc1tyYW5nZS5wcm9wXTtcbiAgY29uc3QgZGltZW5zaW9uRG9tYWluID0gcHJvcHNbZG9tYWluLnByb3BdIHx8IHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLnZhbHVlRG9tYWluO1xuXG4gIGNvbnN0IHNjYWxlRnVuY3RvciA9IGdldFNjYWxlRnVuY3RvcihzY2FsZVR5cGUgJiYgcHJvcHNbc2NhbGVUeXBlLnByb3BdKSgpO1xuXG4gIGNvbnN0IHNjYWxlRnVuYyA9IHNjYWxlRnVuY3Rvci5kb21haW4oZGltZW5zaW9uRG9tYWluKS5yYW5nZShkaW1lbnNpb25SYW5nZSk7XG5cbiAgaWYgKHR5cGVvZiBvblNldCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHByb3BzW29uU2V0LnByb3BzXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHByb3BzW29uU2V0LnByb3BzXShzY2FsZUZ1bmMuZG9tYWluKCkpO1xuICB9XG4gIHRoaXMuX3NldERpbWVuc2lvblN0YXRlKGtleSwge3NjYWxlRnVuY30pO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSZXN1bHQocmVzdWx0OiB7aGV4YWdvbnM/OyBsYXllckRhdGE/fSA9IHt9KSB7XG4gIC8vIHN1cHBvcnQgcHJldmlvdXMgaGV4YWdvbkFnZ3JlZ2F0b3IgQVBJXG4gIGlmIChyZXN1bHQuaGV4YWdvbnMpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7ZGF0YTogcmVzdWx0LmhleGFnb25zfSwgcmVzdWx0KTtcbiAgfSBlbHNlIGlmIChyZXN1bHQubGF5ZXJEYXRhKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2RhdGE6IHJlc3VsdC5sYXllckRhdGF9LCByZXN1bHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFnZ3JlZ2F0ZWREYXRhKFxuICB0aGlzOiBDUFVBZ2dyZWdhdG9yLFxuICBzdGVwLFxuICBwcm9wcyxcbiAgYWdncmVnYXRpb24sXG4gIGFnZ3JlZ2F0aW9uUGFyYW1zXG4pIHtcbiAgY29uc3Qge1xuICAgIHRyaWdnZXJzOiB7YWdncmVnYXRvcjogYWdncn1cbiAgfSA9IHN0ZXA7XG4gIGNvbnN0IGFnZ3JlZ2F0b3IgPSBwcm9wc1thZ2dyLnByb3BdO1xuXG4gIC8vIHJlc3VsdCBzaG91bGQgY29udGFpbiBhIGRhdGEgYXJyYXkgYW5kIG90aGVyIHByb3BzXG4gIC8vIHJlc3VsdCA9IHtkYXRhOiBbXSwgLi4ub3RoZXIgcHJvcHN9XG4gIGNvbnN0IHJlc3VsdCA9IGFnZ3JlZ2F0b3IocHJvcHMsIGFnZ3JlZ2F0aW9uUGFyYW1zKTtcbiAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgbGF5ZXJEYXRhOiBub3JtYWxpemVSZXN1bHQocmVzdWx0KVxuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnYWdncmVnYXRlJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNlbGxTaXplOiB7XG4gICAgICAgICAgcHJvcDogJ2NlbGxTaXplJ1xuICAgICAgICB9LFxuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBhZ2dyZWdhdG9yOiB7XG4gICAgICAgICAgcHJvcDogJ2dyaWRBZ2dyZWdhdG9yJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0QWdncmVnYXRlZERhdGFcbiAgICB9XG4gIF1cbn07XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyQWNjZXNzb3IoZGltZW5zaW9uU3RhdGUsIGRpbWVuc2lvbiwgbGF5ZXJQcm9wcykge1xuICByZXR1cm4gY2VsbCA9PiB7XG4gICAgY29uc3Qge3NvcnRlZEJpbnMsIHNjYWxlRnVuY30gPSBkaW1lbnNpb25TdGF0ZTtcbiAgICBjb25zdCBiaW4gPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XTtcblxuICAgIGlmIChiaW4gJiYgYmluLmNvdW50cyA9PT0gMCkge1xuICAgICAgLy8gbm8gcG9pbnRzIGxlZnQgaW4gYmluIGFmdGVyIGZpbHRlcmluZ1xuICAgICAgcmV0dXJuIGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3YgPSBiaW4gJiYgYmluLnZhbHVlO1xuICAgIGNvbnN0IGRvbWFpbiA9IHNjYWxlRnVuYy5kb21haW4oKTtcblxuICAgIGNvbnN0IGlzVmFsdWVJbkRvbWFpbiA9IGN2ID49IGRvbWFpblswXSAmJiBjdiA8PSBkb21haW5bZG9tYWluLmxlbmd0aCAtIDFdO1xuXG4gICAgLy8gaWYgY2VsbCB2YWx1ZSBpcyBvdXRzaWRlIGRvbWFpbiwgc2V0IGFscGhhIHRvIDBcbiAgICByZXR1cm4gaXNWYWx1ZUluRG9tYWluID8gc2NhbGVGdW5jKGN2KSA6IGRpbWVuc2lvbi5udWxsVmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29sb3JEaW1lbnNpb246IERpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiA9IHtcbiAga2V5OiAnZmlsbENvbG9yJyxcbiAgYWNjZXNzb3I6ICdnZXRGaWxsQ29sb3InLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGNvbG9yVmFsdWUgPSBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XSAmJiBzb3J0ZWRCaW5zLmJpbk1hcFtjZWxsLmluZGV4XS52YWx1ZTtcbiAgICByZXR1cm4ge2NvbG9yVmFsdWV9O1xuICB9LFxuICBudWxsVmFsdWU6IFswLCAwLCAwLCAwXSxcbiAgdXBkYXRlU3RlcHM6IFtcbiAgICB7XG4gICAgICBrZXk6ICdnZXRWYWx1ZScsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHByb3A6ICdnZXRDb2xvclZhbHVlJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JWYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldENvbG9yV2VpZ2h0JyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0Q29sb3JXZWlnaHQnXG4gICAgICAgIH0sXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB7XG4gICAgICAgICAgcHJvcDogJ2NvbG9yQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdsb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICd1cHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdjb2xvclNjYWxlVHlwZSd9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uVmFsdWVEb21haW5cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2dldFNjYWxlRnVuYycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBkb21haW46IHtwcm9wOiAnY29sb3JEb21haW4nfSxcbiAgICAgICAgcmFuZ2U6IHtwcm9wOiAnY29sb3JSYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnY29sb3JTY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIG9uU2V0OiB7XG4gICAgICAgIHByb3BzOiAnb25TZXRDb2xvckRvbWFpbidcbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25TY2FsZVxuICAgIH1cbiAgXSxcbiAgZ2V0U3ViTGF5ZXJBY2Nlc3NvclxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbGV2YXRpb25EaW1lbnNpb246IERpbWVuc2lvblR5cGU8bnVtYmVyPiA9IHtcbiAga2V5OiAnZWxldmF0aW9uJyxcbiAgYWNjZXNzb3I6ICdnZXRFbGV2YXRpb24nLFxuICBnZXRQaWNraW5nSW5mbzogKGRpbWVuc2lvblN0YXRlLCBjZWxsKSA9PiB7XG4gICAgaWYgKCFjZWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtzb3J0ZWRCaW5zfSA9IGRpbWVuc2lvblN0YXRlO1xuICAgIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0gJiYgc29ydGVkQmlucy5iaW5NYXBbY2VsbC5pbmRleF0udmFsdWU7XG4gICAgcmV0dXJuIHtlbGV2YXRpb25WYWx1ZX07XG4gIH0sXG4gIG51bGxWYWx1ZTogLTEsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnZ2V0VmFsdWUnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0RWxldmF0aW9uVmFsdWUnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRFbGV2YXRpb25WYWx1ZSdcbiAgICAgICAgfSxcbiAgICAgICAgd2VpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2dldEVsZXZhdGlvbldlaWdodCcsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldEVsZXZhdGlvbldlaWdodCdcbiAgICAgICAgfSxcbiAgICAgICAgYWdncmVnYXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZWxldmF0aW9uQWdncmVnYXRpb24nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGVyOiBnZXRHZXRWYWx1ZVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0QmlucycsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdfZmlsdGVyRGF0YScsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ19maWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU29ydGVkQmluc1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGxvd2VyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25Mb3dlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHVwcGVyUGVyY2VudGlsZToge1xuICAgICAgICAgIHByb3A6ICdlbGV2YXRpb25VcHBlclBlcmNlbnRpbGUnXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdlbGV2YXRpb25TY2FsZVR5cGUnfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblZhbHVlRG9tYWluXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdnZXRTY2FsZUZ1bmMnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgZG9tYWluOiB7cHJvcDogJ2VsZXZhdGlvbkRvbWFpbid9LFxuICAgICAgICByYW5nZToge3Byb3A6ICdlbGV2YXRpb25SYW5nZSd9LFxuICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAnZWxldmF0aW9uU2NhbGVUeXBlJ31cbiAgICAgIH0sXG4gICAgICBvblNldDoge1xuICAgICAgICBwcm9wczogJ29uU2V0RWxldmF0aW9uRG9tYWluJ1xuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldERpbWVuc2lvblNjYWxlXG4gICAgfVxuICBdLFxuICBnZXRTdWJMYXllckFjY2Vzc29yXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdERpbWVuc2lvbnMgPSBbZGVmYXVsdENvbG9yRGltZW5zaW9uLCBkZWZhdWx0RWxldmF0aW9uRGltZW5zaW9uXTtcblxuZXhwb3J0IHR5cGUgQ1BVQWdncmVnYXRvclN0YXRlID0ge2xheWVyRGF0YToge2RhdGE/fTsgZGltZW5zaW9uczoge307IGdlb0pTT04/OyBjbHVzdGVyQnVpbGRlcj99O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDUFVBZ2dyZWdhdG9yIHtcbiAgc3RhdGljIGdldERpbWVuc2lvblNjYWxlOiBhbnk7XG4gIHN0YXRlOiBDUFVBZ2dyZWdhdG9yU3RhdGU7XG4gIGRpbWVuc2lvblVwZGF0ZXJzOiB7W2tleTogc3RyaW5nXTogRGltZW5zaW9uVHlwZX07XG4gIGFnZ3JlZ2F0aW9uVXBkYXRlcjogQWdncmVnYXRpb25UeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdHM6IHtcbiAgICAgIGluaXRpYWxTdGF0ZT86IENQVUFnZ3JlZ2F0b3JTdGF0ZTtcbiAgICAgIGRpbWVuc2lvbnM/OiBEaW1lbnNpb25UeXBlW107XG4gICAgICBhZ2dyZWdhdGlvbj86IEFnZ3JlZ2F0aW9uVHlwZTtcbiAgICB9ID0ge31cbiAgKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxheWVyRGF0YToge30sXG4gICAgICBkaW1lbnNpb25zOiB7XG4gICAgICAgIC8vIGNvbG9yOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gZWxldmF0aW9uOiB7XG4gICAgICAgIC8vICAgZ2V0VmFsdWU6IG51bGwsXG4gICAgICAgIC8vICAgZG9tYWluOiBudWxsLFxuICAgICAgICAvLyAgIHNvcnRlZEJpbnM6IG51bGwsXG4gICAgICAgIC8vICAgc2NhbGVGdW5jOiBub3BcbiAgICAgICAgLy8gfVxuICAgICAgfSxcbiAgICAgIC4uLm9wdHMuaW5pdGlhbFN0YXRlXG4gICAgfTtcblxuICAgIHRoaXMuZGltZW5zaW9uVXBkYXRlcnMgPSB7fTtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IG9wdHMuYWdncmVnYXRpb24gfHwgZGVmYXVsdEFnZ3JlZ2F0aW9uO1xuXG4gICAgdGhpcy5fYWRkRGltZW5zaW9uKG9wdHMuZGltZW5zaW9ucyB8fCBkZWZhdWx0RGltZW5zaW9ucyk7XG4gIH1cblxuICBzdGF0aWMgZGVmYXVsdERpbWVuc2lvbnMoKSB7XG4gICAgcmV0dXJuIGRlZmF1bHREaW1lbnNpb25zO1xuICB9XG5cbiAgdXBkYXRlQWxsRGltZW5zaW9ucyhwcm9wcykge1xuICAgIGxldCBkaW1lbnNpb25DaGFuZ2VzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG4gICAgLy8gdXBkYXRlIGFsbCBkaW1lbnNpb25zXG4gICAgZm9yIChjb25zdCBkaW0gaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgY29uc3QgdXBkYXRlcnMgPSB0aGlzLl9hY2N1bXVsYXRlVXBkYXRlcnMoMCwgcHJvcHMsIHRoaXMuZGltZW5zaW9uVXBkYXRlcnNbZGltXSk7XG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gZGltZW5zaW9uQ2hhbmdlcy5jb25jYXQodXBkYXRlcnMpO1xuICAgIH1cblxuICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gIH1cblxuICB1cGRhdGVBZ2dyZWdhdGlvbihwcm9wcywgYWdncmVnYXRpb25QYXJhbXMpIHtcbiAgICBjb25zdCB1cGRhdGVycyA9IHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycygwLCBwcm9wcywgdGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIpO1xuICAgIHVwZGF0ZXJzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gIH1cblxuICB1cGRhdGVTdGF0ZShvcHRzLCBhZ2dyZWdhdGlvblBhcmFtcykge1xuICAgIGNvbnN0IHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSA9IG9wdHM7XG4gICAgbGV0IGRpbWVuc2lvbkNoYW5nZXM6IEJpbmRlZFVwZGF0ZXJUeXBlW10gPSBbXTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5kYXRhQ2hhbmdlZCkge1xuICAgICAgLy8gaWYgZGF0YSBjaGFuZ2VkIHVwZGF0ZSBldmVyeXRoaW5nXG4gICAgICB0aGlzLnVwZGF0ZUFnZ3JlZ2F0aW9uKHByb3BzLCBhZ2dyZWdhdGlvblBhcmFtcyk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBhZ2dyZWdhdGlvbkNoYW5nZXMgPSB0aGlzLl9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncyk7XG5cbiAgICBpZiAoYWdncmVnYXRpb25DaGFuZ2VzICYmIGFnZ3JlZ2F0aW9uQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgIC8vIGdldCBhZ2dyZWdhdGVkRGF0YVxuICAgICAgYWdncmVnYXRpb25DaGFuZ2VzLmZvckVhY2goZiA9PiB0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJyAmJiBmKGFnZ3JlZ2F0aW9uUGFyYW1zKSk7XG4gICAgICB0aGlzLnVwZGF0ZUFsbERpbWVuc2lvbnMocHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbmx5IHVwZGF0ZSBkaW1lbnNpb25zXG4gICAgICBkaW1lbnNpb25DaGFuZ2VzID0gdGhpcy5fZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB8fCBbXTtcbiAgICAgIGRpbWVuc2lvbkNoYW5nZXMuZm9yRWFjaChmID0+IHR5cGVvZiBmID09PSAnZnVuY3Rpb24nICYmIGYoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gIH1cblxuICAvLyBVcGRhdGUgcHJpdmF0ZSBzdGF0ZVxuICBzZXRTdGF0ZSh1cGRhdGVPYmplY3QpIHtcbiAgICB0aGlzLnN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zdGF0ZSwgdXBkYXRlT2JqZWN0KTtcbiAgfVxuXG4gIC8vIFVwZGF0ZSBwcml2YXRlIHN0YXRlLmRpbWVuc2lvbnNcbiAgX3NldERpbWVuc2lvblN0YXRlKGtleSwgdXBkYXRlT2JqZWN0KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBkaW1lbnNpb25zOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLmRpbWVuc2lvbnMsIHtcbiAgICAgICAgW2tleV06IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc3RhdGUuZGltZW5zaW9uc1trZXldLCB1cGRhdGVPYmplY3QpXG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgX2FkZEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uOiBBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9uVXBkYXRlciA9IGFnZ3JlZ2F0aW9uO1xuICB9XG5cbiAgX2FkZERpbWVuc2lvbihkaW1lbnNpb25zOiBEaW1lbnNpb25UeXBlW10gPSBbXSkge1xuICAgIGRpbWVuc2lvbnMuZm9yRWFjaChkaW1lbnNpb24gPT4ge1xuICAgICAgY29uc3Qge2tleX0gPSBkaW1lbnNpb247XG4gICAgICB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2tleV0gPSBkaW1lbnNpb247XG4gICAgfSk7XG4gIH1cblxuICBfbmVlZFVwZGF0ZVN0ZXAoXG4gICAgZGltZW5zaW9uU3RlcDogVXBkYXRlU3RlcHNUeXBlIHwgQWdncmVnYXRpb25VcGRhdGVTdGVwc1R5cGUsXG4gICAgb2xkUHJvcHMsXG4gICAgcHJvcHMsXG4gICAgY2hhbmdlRmxhZ3NcbiAgKSB7XG4gICAgLy8gd2hldGhlciBuZWVkIHRvIHVwZGF0ZSBjdXJyZW50IGRpbWVuc2lvbiBzdGVwXG4gICAgLy8gZGltZW5zaW9uIHN0ZXAgaXMgdGhlIHZhbHVlLCBkb21haW4sIHNjYWxlRnVuY3Rpb24gb2YgZWFjaCBkaW1lbnNpb25cbiAgICAvLyBlYWNoIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggcHJvcGVydGllcyBsaW5rcyB0byBsYXllciBwcm9wIGFuZCB3aGV0aGVyIHRoZSBwcm9wIGlzXG4gICAgLy8gY29udHJvbGxlZCBieSB1cGRhdGVUcmlnZ2Vyc1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKGRpbWVuc2lvblN0ZXAudHJpZ2dlcnMpLnNvbWUoaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS51cGRhdGVUcmlnZ2VyKSB7XG4gICAgICAgIC8vIGNoZWNrIGJhc2VkIG9uIHVwZGF0ZVRyaWdnZXJzIGNoYW5nZSBmaXJzdFxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNoYW5nZUZsYWdzLnVwZGF0ZVRyaWdnZXJzQ2hhbmdlZCAmJlxuICAgICAgICAgIChjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWQuYWxsIHx8XG4gICAgICAgICAgICBjaGFuZ2VGbGFncy51cGRhdGVUcmlnZ2Vyc0NoYW5nZWRbaXRlbS51cGRhdGVUcmlnZ2VyXSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIGZhbGxiYWNrIHRvIGRpcmVjdCBjb21wYXJpc29uXG4gICAgICByZXR1cm4gb2xkUHJvcHNbaXRlbS5wcm9wXSAhPT0gcHJvcHNbaXRlbS5wcm9wXTtcbiAgICB9KTtcbiAgfVxuXG4gIF9hY2N1bXVsYXRlVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBzdGVwLFxuICAgIHByb3BzLFxuICAgIGRpbWVuc2lvbjogVXBkYXRlck9iamVjdFR5cGVcbiAgKSB7XG4gICAgdHlwZSBMb2NhbFVwZGF0ZXJUeXBlID0gVXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlXG4gICAgICA/IEJpbmRlZFVwZGF0ZXJUeXBlXG4gICAgICA6IEJpbmRlZEFnZ3JlZ2F0ZWRVcGRhdGVyVHlwZTtcbiAgICBjb25zdCB1cGRhdGVyczogTG9jYWxVcGRhdGVyVHlwZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IHN0ZXA7IGkgPCBkaW1lbnNpb24udXBkYXRlU3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHVwZGF0ZXIgPSBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0udXBkYXRlcjtcbiAgICAgIGlmICh0eXBlb2YgdXBkYXRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB1cGRhdGVycy5wdXNoKFxuICAgICAgICAgIHVwZGF0ZXIuYmluZCh0aGlzLCBkaW1lbnNpb24udXBkYXRlU3RlcHNbaV0sIHByb3BzLCBkaW1lbnNpb24pIGFzIExvY2FsVXBkYXRlclR5cGVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlcnM7XG4gIH1cblxuICBfZ2V0QWxsVXBkYXRlcnM8VXBkYXRlck9iamVjdFR5cGUgZXh0ZW5kcyBEaW1lbnNpb25UeXBlIHwgQWdncmVnYXRpb25UeXBlPihcbiAgICBkaW1lbnNpb246IFVwZGF0ZXJPYmplY3RUeXBlLFxuICAgIG9sZFByb3BzLFxuICAgIHByb3BzLFxuICAgIGNoYW5nZUZsYWdzXG4gICkge1xuICAgIHR5cGUgTG9jYWxVcGRhdGVyVHlwZSA9IFVwZGF0ZXJPYmplY3RUeXBlIGV4dGVuZHMgRGltZW5zaW9uVHlwZVxuICAgICAgPyBCaW5kZWRVcGRhdGVyVHlwZVxuICAgICAgOiBCaW5kZWRBZ2dyZWdhdGVkVXBkYXRlclR5cGU7XG4gICAgbGV0IHVwZGF0ZXJzOiBMb2NhbFVwZGF0ZXJUeXBlW10gPSBbXTtcbiAgICBjb25zdCBuZWVkVXBkYXRlU3RlcCA9IGRpbWVuc2lvbi51cGRhdGVTdGVwcy5maW5kSW5kZXgoc3RlcCA9PlxuICAgICAgdGhpcy5fbmVlZFVwZGF0ZVN0ZXAoc3RlcCwgb2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncylcbiAgICApO1xuXG4gICAgaWYgKG5lZWRVcGRhdGVTdGVwID4gLTEpIHtcbiAgICAgIHVwZGF0ZXJzID0gdXBkYXRlcnMuY29uY2F0KHRoaXMuX2FjY3VtdWxhdGVVcGRhdGVycyhuZWVkVXBkYXRlU3RlcCwgcHJvcHMsIGRpbWVuc2lvbikpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycztcbiAgfVxuXG4gIF9nZXRBZ2dyZWdhdGlvbkNoYW5nZXMob2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFncykge1xuICAgIGNvbnN0IHVwZGF0ZXJzID0gdGhpcy5fZ2V0QWxsVXBkYXRlcnModGhpcy5hZ2dyZWdhdGlvblVwZGF0ZXIsIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBfZ2V0RGltZW5zaW9uQ2hhbmdlcyhvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzKSB7XG4gICAgbGV0IHVwZGF0ZXJzOiBCaW5kZWRVcGRhdGVyVHlwZVtdID0gW107XG5cbiAgICAvLyBnZXQgZGltZW5zaW9uIHRvIGJlIHVwZGF0ZWRcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IHRyaWdnZXJlZCB1cGRhdGVyIGZvciBlYWNoIGRpbWVuc2lvblxuICAgICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgY29uc3QgZGltZW5zaW9uVXBkYXRlcnMgPSB0aGlzLl9nZXRBbGxVcGRhdGVycyhkaW1lbnNpb24sIG9sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3MpO1xuICAgICAgdXBkYXRlcnMgPSB1cGRhdGVycy5jb25jYXQoZGltZW5zaW9uVXBkYXRlcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVycy5sZW5ndGggPyB1cGRhdGVycyA6IG51bGw7XG4gIH1cblxuICBnZXRVcGRhdGVUcmlnZ2Vycyhwcm9wcykge1xuICAgIGNvbnN0IF91cGRhdGVUcmlnZ2VycyA9IHByb3BzLnVwZGF0ZVRyaWdnZXJzIHx8IHt9O1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGFjY2Vzc29yLFxuICAgICAgICB1cGRhdGVTdGVwc1xuICAgICAgfToge2FjY2Vzc29yOyB1cGRhdGVTdGVwczogVXBkYXRlU3RlcHNUeXBlW119ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgLy8gZm9sZCBkaW1lbnNpb24gdHJpZ2dlcnMgaW50byBlYWNoIGFjY2Vzc29yXG4gICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0gPSB7fTtcblxuICAgICAgdXBkYXRlU3RlcHMuZm9yRWFjaChzdGVwID0+IHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhzdGVwLnRyaWdnZXJzIHx8IFtdKS5mb3JFYWNoKCh7cHJvcCwgdXBkYXRlVHJpZ2dlcn0pID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlVHJpZ2dlcikge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBiYXNlZCBvbiB1cGRhdGVUcmlnZ2VyIGUuZy4gZ2V0Q29sb3JWYWx1ZSwgZ2V0Q29sb3JXZWlnaHRcbiAgICAgICAgICAgIC8vIGFuZCB1cGRhdGVUcmlnZ2VycyBpcyBwYXNzZWQgaW4gZnJvbSBsYXllciBwcm9wXG4gICAgICAgICAgICAvLyBmb2xkIHRoZSB1cGRhdGVUcmlnZ2VycyBpbnRvIGFjY2Vzc29yXG4gICAgICAgICAgICBjb25zdCBmcm9tUHJvcCA9IF91cGRhdGVUcmlnZ2Vyc1t1cGRhdGVUcmlnZ2VyXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZnJvbVByb3AgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGZyb21Qcm9wKSkge1xuICAgICAgICAgICAgICAvLyBpZiB1cGRhdGVUcmlnZ2VyIGlzIGFuIG9iamVjdCBzcHJlYWQgaXRcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl0sIGZyb21Qcm9wKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZnJvbVByb3AgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cGRhdGVUcmlnZ2Vyc1thY2Nlc3Nvcl1bcHJvcF0gPSBmcm9tUHJvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgcHJvcCBpcyBub3QgYmFzZWQgb24gdXBkYXRlVHJpZ2dlclxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnNbYWNjZXNzb3JdW3Byb3BdID0gcHJvcHNbcHJvcF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB1cGRhdGVUcmlnZ2VycztcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSwgbGF5ZXJQcm9wcykge1xuICAgIGNvbnN0IGlzUGlja2VkID0gaW5mby5waWNrZWQgJiYgaW5mby5pbmRleCA+IC0xO1xuICAgIGxldCBvYmplY3QgPSBudWxsO1xuICAgIGNvbnN0IGNlbGwgPSBpc1BpY2tlZCA/IHRoaXMuc3RhdGUubGF5ZXJEYXRhLmRhdGFbaW5mby5pbmRleF0gOiBudWxsO1xuICAgIGlmIChjZWxsKSB7XG4gICAgICBsZXQgYmluSW5mbyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kaW1lbnNpb25VcGRhdGVycykge1xuICAgICAgICBjb25zdCB7Z2V0UGlja2luZ0luZm99ID0gdGhpcy5kaW1lbnNpb25VcGRhdGVyc1trZXldO1xuICAgICAgICBpZiAodHlwZW9mIGdldFBpY2tpbmdJbmZvID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYmluSW5mbyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIGJpbkluZm8sXG4gICAgICAgICAgICBnZXRQaWNraW5nSW5mbyh0aGlzLnN0YXRlLmRpbWVuc2lvbnNba2V5XSwgY2VsbCwgbGF5ZXJQcm9wcylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9iamVjdCA9IE9iamVjdC5hc3NpZ24oYmluSW5mbywgY2VsbCwge1xuICAgICAgICBwb2ludHM6IGNlbGwuZmlsdGVyZWRQb2ludHMgfHwgY2VsbC5wb2ludHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGFkZCBiaW4gIGFuZCAgdG8gaW5mb1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGluZm8sIHtcbiAgICAgIHBpY2tlZDogQm9vbGVhbihvYmplY3QpLFxuICAgICAgLy8gb3ZlcnJpZGUgb2JqZWN0IHdpdGggcGlja2VkIGNlbGxcbiAgICAgIG9iamVjdFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjZXNzb3IoZGltZW5zaW9uS2V5LCBsYXllclByb3BzKSB7XG4gICAgaWYgKCF0aGlzLmRpbWVuc2lvblVwZGF0ZXJzLmhhc093blByb3BlcnR5KGRpbWVuc2lvbktleSkpIHtcbiAgICAgIHJldHVybiBub3A7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRpbWVuc2lvblVwZGF0ZXJzW2RpbWVuc2lvbktleV0uZ2V0U3ViTGF5ZXJBY2Nlc3NvcihcbiAgICAgIHRoaXMuc3RhdGUuZGltZW5zaW9uc1tkaW1lbnNpb25LZXldLFxuICAgICAgdGhpcy5kaW1lbnNpb25VcGRhdGVyc1tkaW1lbnNpb25LZXldLFxuICAgICAgbGF5ZXJQcm9wc1xuICAgICk7XG4gIH1cbn1cblxuQ1BVQWdncmVnYXRvci5nZXREaW1lbnNpb25TY2FsZSA9IGdldERpbWVuc2lvblNjYWxlO1xuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -45,4 +45,4 @@ function editShader(vs, type, originalText, testToReplace) {
|
|
45
45
|
|
46
46
|
return vs.replace(originalText, testToReplace);
|
47
47
|
}
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllci11dGlscy9zaGFkZXItdXRpbHMudHMiXSwibmFtZXMiOlsiZWRpdFNoYWRlciIsInZzIiwidHlwZSIsIm9yaWdpbmFsVGV4dCIsInRlc3RUb1JlcGxhY2UiLCJpbmNsdWRlcyIsIkNvbnNvbGUiLCJlcnJvciIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFvQkE7O0FBcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQWdDQyxJQUFoQyxFQUE4Q0MsWUFBOUMsRUFBb0VDLGFBQXBFLEVBQTJGO0FBQ2hHLE1BQUksQ0FBQ0gsRUFBRSxDQUFDSSxRQUFILENBQVlGLFlBQVosQ0FBTCxFQUFnQztBQUM5QjtBQUNBO0FBQ0FHLG9CQUFRQyxLQUFSLHVCQUE2QkwsSUFBN0I7O0FBQ0EsV0FBT0QsRUFBUDtBQUNEOztBQUVELFNBQU9BLEVBQUUsQ0FBQ08sT0FBSCxDQUFXTCxZQUFYLEVBQXlCQyxhQUF6QixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qXG4gKiBBbWVuZG1lbnQgdG8gZGVmYXVsdCBsYXllciB2ZXJ0ZXggc2hhZGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdnNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxUZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gdGVzdFRvUmVwbGFjZVxuICogQHJldHVybiB7c3RyaW5nfSBvdXRwdXQgc2hhZGVyXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdFNoYWRlcih2czogc3RyaW5nLCB0eXBlOiBzdHJpbmcsIG9yaWdpbmFsVGV4dDogc3RyaW5nLCB0ZXN0VG9SZXBsYWNlOiBzdHJpbmcpIHtcbiAgaWYgKCF2cy5pbmNsdWRlcyhvcmlnaW5hbFRleHQpKSB7XG4gICAgLy8gSGVyZSB3ZSBjYWxsIENvbnNvbGUuZXJyb3Igd2hlbiB3ZSBmYWlsIHRvIGVkaXQgZGVjay5nbCBzaGFkZXJcbiAgICAvLyBUaGlzIHNob3VsZCBiZSBjYXVnaHQgYnkgbGF5ZXIgdGVzdFxuICAgIENvbnNvbGUuZXJyb3IoYENhbm5vdCBlZGl0ICR7dHlwZX0gbGF5ZXIgc2hhZGVyYCk7XG4gICAgcmV0dXJuIHZzO1xuICB9XG5cbiAgcmV0dXJuIHZzLnJlcGxhY2Uob3JpZ2luYWxUZXh0LCB0ZXN0VG9SZXBsYWNlKTtcbn1cbiJdfQ==
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -129,4 +129,4 @@ var EnhancedLineLayer = /*#__PURE__*/function (_LineLayer) {
|
|
129
129
|
exports["default"] = EnhancedLineLayer;
|
130
130
|
EnhancedLineLayer.layerName = 'EnhancedLineLayer';
|
131
131
|
EnhancedLineLayer.defaultProps = defaultProps;
|
132
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW5lLWxheWVyL2xpbmUtbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFByb3BzIiwiTGluZUxheWVyIiwiZ2V0VGFyZ2V0Q29sb3IiLCJ4IiwiY29sb3IiLCJhZGRJbnN0YW5jZUNvbG9yU2hhZGVyIiwidnMiLCJ0YXJnZXRDb2xvclZzIiwiYWRkRWxldmF0aW9uU2NhbGUiLCJlbGV2YXRpb25WcyIsIkVuaGFuY2VkTGluZUxheWVyIiwic2hhZGVycyIsInVuaWZvcm1zIiwiZWxldmF0aW9uU2NhbGUiLCJwcm9wcyIsInVuZGVmaW5lZCIsImF0dHJpYnV0ZU1hbmFnZXIiLCJzdGF0ZSIsImFkZEluc3RhbmNlZCIsImluc3RhbmNlVGFyZ2V0Q29sb3JzIiwic2l6ZSIsImNvbG9yRm9ybWF0IiwibGVuZ3RoIiwidHlwZSIsIkdMIiwiVU5TSUdORURfQllURSIsIm5vcm1hbGl6ZWQiLCJ0cmFuc2l0aW9uIiwiYWNjZXNzb3IiLCJkZWZhdWx0VmFsdWUiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsWUFBWSxtQ0FDYkMsa0JBQVVELFlBREc7QUFFaEJFLEVBQUFBLGNBQWMsRUFBRSx3QkFBQUMsQ0FBQztBQUFBLFdBQUlBLENBQUMsQ0FBQ0MsS0FBRixJQUFXLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsR0FBVixDQUFmO0FBQUE7QUFGRCxFQUFsQjs7QUFLQSxTQUFTQyxzQkFBVCxDQUFnQ0MsRUFBaEMsRUFBb0M7QUFDbEMsTUFBTUMsYUFBYSxHQUFHLGtCQUNwQkQsRUFEb0IsRUFFcEIsc0JBRm9CLEVBR3BCLGdDQUhvQixFQUlwQixxRUFKb0IsQ0FBdEI7QUFPQSxTQUFPLGtCQUNMQyxhQURLLEVBRUwsZUFGSyxFQUdMLGdFQUhLLEVBSUwsdUhBSkssQ0FBUDtBQU9EOztBQUVELFNBQVNDLGlCQUFULENBQTJCRixFQUEzQixFQUErQjtBQUM3QixNQUFJRyxXQUFXLEdBQUcsa0JBQ2hCSCxFQURnQixFQUVoQixvREFGZ0IsRUFHaEIsK0JBSGdCLHNFQUFsQjtBQVFBRyxFQUFBQSxXQUFXLEdBQUcsa0JBQ1pBLFdBRFksRUFFWix5REFGWSxxWUFBZDtBQWNBQSxFQUFBQSxXQUFXLEdBQUcsa0JBQ1pBLFdBRFksRUFFWiwyQkFGWSxrR0FLWixFQUxZLENBQWQ7QUFRQSxTQUFPQSxXQUFQO0FBQ0Q7O0lBRW9CQyxpQjs7Ozs7Ozs7Ozs7O1dBSW5CLHNCQUFhO0FBQ1gsVUFBTUMsT0FBTyxzSEFBYjtBQUVBLFVBQUlMLEVBQUUsR0FBR0Qsc0JBQXNCLENBQUNNLE9BQU8sQ0FBQ0wsRUFBVCxDQUEvQjtBQUNBQSxNQUFBQSxFQUFFLEdBQUdFLGlCQUFpQixDQUFDRixFQUFELENBQXRCO0FBRUEsNkNBQ0tLLE9BREw7QUFFRUwsUUFBQUEsRUFBRSxFQUFGQTtBQUZGO0FBSUQ7OztXQUVELG9CQUFpQjtBQUFBLFVBQVhNLFFBQVcsUUFBWEEsUUFBVztBQUFBLFVBQ1JDLGNBRFEsR0FDVSxLQUFLQyxLQURmLENBQ1JELGNBRFE7QUFFZixvSEFBVztBQUFDRCxRQUFBQSxRQUFRLGtDQUFNQSxRQUFOO0FBQWdCQyxVQUFBQSxjQUFjLEVBQWRBO0FBQWhCO0FBQVQsT0FBWDtBQUNEOzs7V0FFRCwyQkFBa0I7QUFBQTs7QUFDaEIsK0hBQXNCRSxTQUF0QjtBQURnQixVQUVUQyxnQkFGUyxHQUVXLEtBQUtDLEtBRmhCLENBRVRELGdCQUZTO0FBR2hCQSxNQUFBQSxnQkFBZ0IsQ0FBQ0UsWUFBakIsQ0FBOEI7QUFDNUJDLFFBQUFBLG9CQUFvQixFQUFFO0FBQ3BCQyxVQUFBQSxJQUFJLDJCQUFFLEtBQUtOLEtBQUwsQ0FBV08sV0FBYiwwREFBRSxzQkFBd0JDLE1BRFY7QUFFcEJDLFVBQUFBLElBQUksRUFBRUMsc0JBQUdDLGFBRlc7QUFHcEJDLFVBQUFBLFVBQVUsRUFBRSxJQUhRO0FBSXBCQyxVQUFBQSxVQUFVLEVBQUUsSUFKUTtBQUtwQkMsVUFBQUEsUUFBUSxFQUFFLGdCQUxVO0FBTXBCQyxVQUFBQSxZQUFZLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxHQUFWO0FBTk07QUFETSxPQUE5QjtBQVVEOzs7RUFsQzRDNUIsaUI7OztBQXFDL0NTLGlCQUFpQixDQUFDb0IsU0FBbEIsR0FBOEIsbUJBQTlCO0FBQ0FwQixpQkFBaUIsQ0FBQ1YsWUFBbEIsR0FBaUNBLFlBQWpDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtMaW5lTGF5ZXIsIExpbmVMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAnZGVjay5nbCc7XG5pbXBvcnQge2VkaXRTaGFkZXJ9IGZyb20gJy4uLyc7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgLi4uTGluZUxheWVyLmRlZmF1bHRQcm9wcyxcbiAgZ2V0VGFyZ2V0Q29sb3I6IHggPT4geC5jb2xvciB8fCBbMCwgMCwgMCwgMjU1XVxufTtcblxuZnVuY3Rpb24gYWRkSW5zdGFuY2VDb2xvclNoYWRlcih2cykge1xuICBjb25zdCB0YXJnZXRDb2xvclZzID0gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnbGluZSB0YXJnZXQgY29sb3IgdnMnLFxuICAgICdhdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9yczsnLFxuICAgICdhdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9yczsgYXR0cmlidXRlIHZlYzQgaW5zdGFuY2VUYXJnZXRDb2xvcnM7J1xuICApO1xuXG4gIHJldHVybiBlZGl0U2hhZGVyKFxuICAgIHRhcmdldENvbG9yVnMsXG4gICAgJ2xpbmUgY29sb3IgdnMnLFxuICAgICd2Q29sb3IgPSB2ZWM0KGluc3RhbmNlQ29sb3JzLnJnYiwgaW5zdGFuY2VDb2xvcnMuYSAqIG9wYWNpdHkpOycsXG4gICAgYHZlYzQgY29sb3IgPSBtaXgoaW5zdGFuY2VDb2xvcnMsIGluc3RhbmNlVGFyZ2V0Q29sb3JzLCBwb3NpdGlvbnMueCk7YCArXG4gICAgICBgdkNvbG9yID0gdmVjNChjb2xvci5yZ2IsIGNvbG9yLmEgKiBvcGFjaXR5KTtgXG4gICk7XG59XG5cbmZ1bmN0aW9uIGFkZEVsZXZhdGlvblNjYWxlKHZzKSB7XG4gIGxldCBlbGV2YXRpb25WcyA9IGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2xpbmUgZWxldmF0aW9uIHNjYWxlIDEgdnMgLSBpbmplY3QgZWxldmF0aW9uIHNjYWxlJyxcbiAgICAndW5pZm9ybSBmbG9hdCB3aWR0aE1heFBpeGVsczsnLFxuICAgIGB1bmlmb3JtIGZsb2F0IHdpZHRoTWF4UGl4ZWxzO1xuICAgICB1bmlmb3JtIGZsb2F0IGVsZXZhdGlvblNjYWxlO2BcbiAgKTtcblxuICBlbGV2YXRpb25WcyA9IGVkaXRTaGFkZXIoXG4gICAgZWxldmF0aW9uVnMsXG4gICAgJ2xpbmUgZWxldmF0aW9uIHNjYWxlIDIgdnMgLSBtdWx0aXBseSBieSBlbGV2YXRpb24gc2NhbGUnLFxuICAgIGBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG4gIGdlb21ldHJ5LndvcmxkUG9zaXRpb25BbHQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztgLFxuICAgIGB2ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xuICAgICB2ZWMzIHRhcmdldF93b3JsZCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuICAgICBzb3VyY2Vfd29ybGQueiAqPSBlbGV2YXRpb25TY2FsZTtcbiAgICAgdGFyZ2V0X3dvcmxkLnogKj0gZWxldmF0aW9uU2NhbGU7XG4gICAgIFxuICAgICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gc291cmNlX3dvcmxkO1xuICAgICBnZW9tZXRyeS53b3JsZFBvc2l0aW9uQWx0ID0gdGFyZ2V0X3dvcmxkO2BcbiAgKTtcblxuICBlbGV2YXRpb25WcyA9IGVkaXRTaGFkZXIoXG4gICAgZWxldmF0aW9uVnMsXG4gICAgJ2xpbmUgZWxldmF0aW9uIHNjYWxlIDMgdnMnLFxuICAgIGB2ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xuICB2ZWMzIHRhcmdldF93b3JsZCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO2AsXG4gICAgJydcbiAgKTtcblxuICByZXR1cm4gZWxldmF0aW9uVnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVuaGFuY2VkTGluZUxheWVyIGV4dGVuZHMgTGluZUxheWVyPFxuICBhbnksXG4gIExpbmVMYXllclByb3BzPGFueT4gJiB7ZWxldmF0aW9uU2NhbGU6IG51bWJlcjsgZ2V0VGFyZ2V0Q29sb3I6IFJHQkFDb2xvcn1cbj4ge1xuICBnZXRTaGFkZXJzKCkge1xuICAgIGNvbnN0IHNoYWRlcnMgPSBzdXBlci5nZXRTaGFkZXJzKCk7XG5cbiAgICBsZXQgdnMgPSBhZGRJbnN0YW5jZUNvbG9yU2hhZGVyKHNoYWRlcnMudnMpO1xuICAgIHZzID0gYWRkRWxldmF0aW9uU2NhbGUodnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNoYWRlcnMsXG4gICAgICB2c1xuICAgIH07XG4gIH1cblxuICBkcmF3KHt1bmlmb3Jtc30pIHtcbiAgICBjb25zdCB7ZWxldmF0aW9uU2NhbGV9ID0gdGhpcy5wcm9wcztcbiAgICBzdXBlci5kcmF3KHt1bmlmb3Jtczogey4uLnVuaWZvcm1zLCBlbGV2YXRpb25TY2FsZX19KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUodW5kZWZpbmVkKTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlVGFyZ2V0Q29sb3JzOiB7XG4gICAgICAgIHNpemU6IHRoaXMucHJvcHMuY29sb3JGb3JtYXQ/Lmxlbmd0aCxcbiAgICAgICAgdHlwZTogR0wuVU5TSUdORURfQllURSxcbiAgICAgICAgbm9ybWFsaXplZDogdHJ1ZSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRUYXJnZXRDb2xvcicsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogWzAsIDAsIDAsIDI1NV1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5FbmhhbmNlZExpbmVMYXllci5sYXllck5hbWUgPSAnRW5oYW5jZWRMaW5lTGF5ZXInO1xuRW5oYW5jZWRMaW5lTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -96,4 +96,4 @@ var ScatterplotIconLayer = /*#__PURE__*/function (_ScatterplotLayer) {
|
|
96
96
|
|
97
97
|
exports["default"] = ScatterplotIconLayer;
|
98
98
|
ScatterplotIconLayer.layerName = 'ScatterplotIconLayer';
|
99
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
99
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdmctaWNvbi1sYXllci9zY2F0dGVycGxvdC1pY29uLWxheWVyLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUE9TIiwiU2NhdHRlcnBsb3RJY29uTGF5ZXIiLCJnbCIsInNoYWRlcnMiLCJnZXRTaGFkZXJzIiwidW5kZWZpbmVkIiwiaWNvbkdlb21ldHJ5IiwicHJvcHMiLCJnZW9tZXRyeSIsIkdlb21ldHJ5IiwiZHJhd01vZGUiLCJHTCIsIlRSSUFOR0xFUyIsImF0dHJpYnV0ZXMiLCJwb3NpdGlvbnMiLCJGbG9hdDMyQXJyYXkiLCJUUklBTkdMRV9GQU4iLCJNb2RlbCIsImlkIiwiaXNJbnN0YW5jZWQiLCJzaGFkZXJDYWNoZSIsImNvbnRleHQiLCJTY2F0dGVycGxvdExheWVyIiwibGF5ZXJOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUYsRUFBSyxDQUFDLENBQU4sRUFBUyxDQUFULEVBQVksQ0FBQyxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCLEVBQStCLENBQS9CLEVBQWtDLENBQUMsQ0FBbkMsRUFBc0MsQ0FBdEMsQ0FBcEI7O0lBTXFCQyxvQjs7Ozs7Ozs7Ozs7O1dBQ25CLG1CQUFVQyxFQUFWLEVBQXFDO0FBQ25DO0FBQ0EsVUFBTUMsT0FBTyxHQUFHLEtBQUtDLFVBQUwsQ0FBZ0JDLFNBQWhCLENBQWhCO0FBRm1DLFVBSTVCQyxZQUo0QixHQUlaLEtBQUtDLEtBSk8sQ0FJNUJELFlBSjRCO0FBTW5DLFVBQU1FLFFBQVEsR0FBR0YsWUFBWSxHQUN6QixJQUFJRyxjQUFKLENBQWE7QUFDWEMsUUFBQUEsUUFBUSxFQUFFQyxzQkFBR0MsU0FERjtBQUVYQyxRQUFBQSxVQUFVLEVBQUU7QUFDVkMsVUFBQUEsU0FBUyxFQUFFLElBQUlDLFlBQUosQ0FBaUJULFlBQWpCO0FBREQ7QUFGRCxPQUFiLENBRHlCLEdBT3pCLElBQUlHLGNBQUosQ0FBYTtBQUNYQyxRQUFBQSxRQUFRLEVBQUVDLHNCQUFHSyxZQURGO0FBRVhILFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUUsSUFBSUMsWUFBSixDQUFpQmYsV0FBakI7QUFERDtBQUZELE9BQWIsQ0FQSjtBQWNBLGFBQU8sSUFBSWlCLFdBQUosQ0FBVWYsRUFBVixrQ0FDRkMsT0FERTtBQUVMZSxRQUFBQSxFQUFFLEVBQUUsS0FBS1gsS0FBTCxDQUFXVyxFQUZWO0FBR0xWLFFBQUFBLFFBQVEsRUFBUkEsUUFISztBQUlMVyxRQUFBQSxXQUFXLEVBQUUsSUFKUjtBQUtMO0FBQ0FDLFFBQUFBLFdBQVcsRUFBRSxLQUFLQyxPQUFMLENBQWFEO0FBTnJCLFNBQVA7QUFRRDs7O0VBN0IrQ0Usd0I7OztBQWdDbERyQixvQkFBb0IsQ0FBQ3NCLFNBQXJCLEdBQWlDLHNCQUFqQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllciwgU2NhdHRlcnBsb3RMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHtHZW9tZXRyeSwgTW9kZWx9IGZyb20gJ0BsdW1hLmdsL2NvcmUnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5cbmNvbnN0IERFRkFVTFRfUE9TID0gWy0xLCAtMSwgMCwgLTEsIDEsIDAsIDEsIDEsIDAsIDEsIC0xLCAwXTtcblxuZXhwb3J0IGludGVyZmFjZSBTY2F0dGVycGxvdEljb25MYXllclByb3BzIGV4dGVuZHMgU2NhdHRlcnBsb3RMYXllclByb3BzPGFueT4ge1xuICBpY29uR2VvbWV0cnk6IG51bWJlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NhdHRlcnBsb3RJY29uTGF5ZXIgZXh0ZW5kcyBTY2F0dGVycGxvdExheWVyPGFueSwgU2NhdHRlcnBsb3RJY29uTGF5ZXJQcm9wcz4ge1xuICBfZ2V0TW9kZWwoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCkge1xuICAgIC8vIHVzZSBkZWZhdWx0IHNjYXR0ZXJwbG90IHNoYWRlcnNcbiAgICBjb25zdCBzaGFkZXJzID0gdGhpcy5nZXRTaGFkZXJzKHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCB7aWNvbkdlb21ldHJ5fSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBnZW9tZXRyeSA9IGljb25HZW9tZXRyeVxuICAgICAgPyBuZXcgR2VvbWV0cnkoe1xuICAgICAgICAgIGRyYXdNb2RlOiBHTC5UUklBTkdMRVMsXG4gICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KGljb25HZW9tZXRyeSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICA6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgICAgZHJhd01vZGU6IEdMLlRSSUFOR0xFX0ZBTixcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkoREVGQVVMVF9QT1MpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIHJldHVybiBuZXcgTW9kZWwoZ2wsIHtcbiAgICAgIC4uLnNoYWRlcnMsXG4gICAgICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAgIGdlb21ldHJ5LFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWUsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBzaGFkZXJDYWNoZTogdGhpcy5jb250ZXh0LnNoYWRlckNhY2hlXG4gICAgfSk7XG4gIH1cbn1cblxuU2NhdHRlcnBsb3RJY29uTGF5ZXIubGF5ZXJOYW1lID0gJ1NjYXR0ZXJwbG90SWNvbkxheWVyJztcbiJdfQ==
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// Copyright (c)
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
2
|
//
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
@@ -144,4 +144,4 @@ var SvgIconLayer = /*#__PURE__*/function (_CompositeLayer) {
|
|
144
144
|
exports["default"] = SvgIconLayer;
|
145
145
|
SvgIconLayer.layerName = 'SvgIconLayer';
|
146
146
|
SvgIconLayer.defaultProps = defaultProps;
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
147
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdmctaWNvbi1sYXllci9zdmctaWNvbi1sYXllci50cyJdLCJuYW1lcyI6WyJERUZBVUxUX0lDT05fR0VPTUVUUlkiLCJkZWZhdWx0UHJvcHMiLCJnZXRJY29uR2VvbWV0cnkiLCJpY29uSWQiLCJnZXRJY29uIiwiZCIsImljb24iLCJTdmdJY29uTGF5ZXIiLCJzdGF0ZSIsImRhdGEiLCJjaGFuZ2VGbGFncyIsImRhdGFDaGFuZ2VkIiwiX2V4dHJhY3RTdWJsYXllcnMiLCJwcm9wcyIsImljb25MYXllcnMiLCJpIiwibGVuZ3RoIiwiaWQiLCJnZW9tZXRyeSIsInB1c2giLCJzZXRTdGF0ZSIsIk9iamVjdCIsInZhbHVlcyIsImluZm8iLCJzb3VyY2VMYXllciIsInVwZGF0ZUF1dG9IaWdobGlnaHQiLCJsYXllcklkIiwibGF5ZXJzIiwibWFwIiwiU2NhdHRlcnBsb3RJY29uTGF5ZXIiLCJpY29uR2VvbWV0cnkiLCJDb21wb3NpdGVMYXllciIsImxheWVyTmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUlBOzs7Ozs7Ozs7O0FBRUE7QUFDQSxJQUFNQSxxQkFBcUIsR0FBRyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFDLENBQWQsRUFBaUIsQ0FBakIsRUFBb0IsQ0FBQyxDQUFyQixFQUF3QixDQUFDLENBQXpCLEVBQTRCLENBQTVCLEVBQStCLENBQUMsQ0FBaEMsRUFBbUMsQ0FBQyxDQUFwQyxFQUF1QyxDQUF2QyxFQUEwQyxDQUFDLENBQTNDLEVBQThDLENBQTlDLEVBQWlELENBQWpELEVBQW9ELENBQXBELEVBQXVELENBQXZELEVBQTBELENBQTFELENBQTlCO0FBRUEsSUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxlQUFlLEVBQUUseUJBQUNDLE1BQUQ7QUFBQSxXQUFvQkgscUJBQXBCO0FBQUEsR0FERTtBQUVuQkksRUFBQUEsT0FBTyxFQUFFLGlCQUFDQyxDQUFEO0FBQUEsV0FBdUJBLENBQUMsQ0FBQ0MsSUFBekI7QUFBQTtBQUZVLENBQXJCOztJQWFxQkMsWTs7Ozs7Ozs7Ozs7O1dBQ25CO0FBQ0EsK0JBQWtCO0FBQ2hCLFdBQUtDLEtBQUwsR0FBYTtBQUNYQyxRQUFBQSxJQUFJLEVBQUU7QUFESyxPQUFiO0FBR0Q7OztXQUVELDJCQUEyQjtBQUFBLFVBQWRDLFdBQWMsUUFBZEEsV0FBYzs7QUFDekIsVUFBSUEsV0FBVyxDQUFDQyxXQUFoQixFQUE2QjtBQUMzQixhQUFLQyxpQkFBTDtBQUNEO0FBQ0Y7OztXQUVELDZCQUFvQjtBQUFBLHdCQUN1QixLQUFLQyxLQUQ1QjtBQUFBLFVBQ1hKLElBRFcsZUFDWEEsSUFEVztBQUFBLFVBQ0xQLGVBREssZUFDTEEsZUFESztBQUFBLFVBQ1lFLE9BRFosZUFDWUEsT0FEWjtBQUdsQixVQUFNVSxVQUFVLEdBQUcsRUFBbkI7O0FBQ0EsV0FBSyxJQUFJQyxFQUFDLEdBQUcsQ0FBYixFQUFnQkEsRUFBQyxHQUFHTixJQUFJLENBQUNPLE1BQXpCLEVBQWlDRCxFQUFDLEVBQWxDLEVBQXNDO0FBQ3BDLFlBQU1aLE1BQU0sR0FBR0MsT0FBTyxDQUFDSyxJQUFJLENBQUNNLEVBQUQsQ0FBTCxDQUF0QjtBQUNBRCxRQUFBQSxVQUFVLENBQUNYLE1BQUQsQ0FBVixHQUFxQlcsVUFBVSxDQUFDWCxNQUFELENBQVYsSUFBc0I7QUFDekNjLFVBQUFBLEVBQUUsRUFBRWQsTUFEcUM7QUFFekNlLFVBQUFBLFFBQVEsRUFBRWhCLGVBQWUsQ0FBQ0MsTUFBRCxDQUFmLElBQTJCSCxxQkFGSTtBQUd6Q1MsVUFBQUEsSUFBSSxFQUFFO0FBSG1DLFNBQTNDO0FBS0FLLFFBQUFBLFVBQVUsQ0FBQ1gsTUFBRCxDQUFWLENBQW1CTSxJQUFuQixDQUF3QlUsSUFBeEIsQ0FBNkJWLElBQUksQ0FBQ00sRUFBRCxDQUFqQztBQUNEOztBQUNELFdBQUtLLFFBQUwsQ0FBYztBQUNaWCxRQUFBQSxJQUFJLEVBQUVZLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUixVQUFkO0FBRE0sT0FBZDtBQUdEOzs7V0FFRCw4QkFBcUJTLElBQXJCLEVBQTJCO0FBQUE7O0FBQ3pCQSxNQUFBQSxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLGlDQUFBQSxJQUFJLENBQUVDLFdBQU4sd0VBQW1CQyxtQkFBbkIsQ0FBdUNGLElBQXZDO0FBQ0Q7OztXQUVELHdCQUFlO0FBQUE7O0FBQ2IsVUFBTUcsT0FBTyxHQUFHLEtBQUtiLEtBQUwsQ0FBV0ksRUFBM0I7QUFFQSxVQUFNVSxNQUFNLEdBQ1YsS0FBS25CLEtBQUwsQ0FBV0MsSUFBWCxJQUNBLEtBQUtELEtBQUwsQ0FBV0MsSUFBWCxDQUFnQk8sTUFEaEIsSUFFQSxLQUFLUixLQUFMLENBQVdDLElBQVgsQ0FBZ0JtQixHQUFoQixDQUNFO0FBQUEsWUFBRVgsRUFBRixTQUFFQSxFQUFGO0FBQUEsWUFBTVIsSUFBTixTQUFNQSxJQUFOO0FBQUEsWUFBWVMsUUFBWixTQUFZQSxRQUFaO0FBQUEsZUFDRSxJQUFJVyxnQ0FBSixpQ0FDSyxLQUFJLENBQUNoQixLQURWO0FBRUVJLFVBQUFBLEVBQUUsWUFBS1MsT0FBTCxjQUFnQlQsRUFBaEIsQ0FGSjtBQUdFUixVQUFBQSxJQUFJLEVBQUpBLElBSEY7QUFJRXFCLFVBQUFBLFlBQVksRUFBRVo7QUFKaEIsV0FERjtBQUFBLE9BREYsQ0FIRjtBQWFBLGFBQU9TLE1BQU0sSUFBSUEsTUFBTSxDQUFDWCxNQUFQLEdBQWdCLENBQTFCLEdBQThCVyxNQUE5QixHQUF1QyxJQUE5QztBQUNEOzs7RUFyRHVDSSxvQjs7O0FBd0QxQ3hCLFlBQVksQ0FBQ3lCLFNBQWIsR0FBeUIsY0FBekI7QUFDQXpCLFlBQVksQ0FBQ04sWUFBYixHQUE0QkEsWUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge0NvbXBvc2l0ZUxheWVyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Q29tcG9zaXRlTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvY29yZS9saWIvY29tcG9zaXRlLWxheWVyJztcbmltcG9ydCB7UG9zaXRpb24sIFJHQkFDb2xvcn0gZnJvbSAnZGVjay5nbCc7XG5pbXBvcnQge1JHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCBTY2F0dGVycGxvdEljb25MYXllciBmcm9tICcuL3NjYXR0ZXJwbG90LWljb24tbGF5ZXInO1xuXG4vLyBkZWZhdWx0IGljb24gZ2VvbWV0cnkgaXMgYSBzcXVhcmVcbmNvbnN0IERFRkFVTFRfSUNPTl9HRU9NRVRSWSA9IFsxLCAxLCAwLCAxLCAtMSwgMCwgLTEsIC0xLCAwLCAtMSwgLTEsIDAsIC0xLCAxLCAwLCAxLCAxLCAwXTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBnZXRJY29uR2VvbWV0cnk6IChpY29uSWQ6IHN0cmluZykgPT4gREVGQVVMVF9JQ09OX0dFT01FVFJZLFxuICBnZXRJY29uOiAoZDoge2ljb246IHN0cmluZ30pID0+IGQuaWNvblxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdmdJY29uTGF5ZXJQcm9wcyBleHRlbmRzIENvbXBvc2l0ZUxheWVyUHJvcHM8YW55PiB7XG4gIGdldEljb25HZW9tZXRyeTogKGk6IHN0cmluZykgPT4gbnVtYmVyW107XG4gIGdldEljb246IChkOiB7aWNvbjogc3RyaW5nfSkgPT4gc3RyaW5nO1xuICBnZXRQb3NpdGlvbjogKGQ6IGFueSkgPT4gUG9zaXRpb247XG4gIGdldFJhZGl1czogKChkOiBhbnkpID0+IG51bWJlcikgfCBudW1iZXI7XG4gIGdldEZpbGxDb2xvcjogUkdCQ29sb3IgfCBSR0JBQ29sb3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN2Z0ljb25MYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyPGFueSwgU3ZnSWNvbkxheWVyUHJvcHM+IHtcbiAgLy8gTXVzdCBiZSBkZWZpbmVkXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGF0YToge31cbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe2NoYW5nZUZsYWdzfSkge1xuICAgIGlmIChjaGFuZ2VGbGFncy5kYXRhQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fZXh0cmFjdFN1YmxheWVycygpO1xuICAgIH1cbiAgfVxuXG4gIF9leHRyYWN0U3VibGF5ZXJzKCkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRJY29uR2VvbWV0cnksIGdldEljb259ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGljb25MYXllcnMgPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGljb25JZCA9IGdldEljb24oZGF0YVtpXSk7XG4gICAgICBpY29uTGF5ZXJzW2ljb25JZF0gPSBpY29uTGF5ZXJzW2ljb25JZF0gfHwge1xuICAgICAgICBpZDogaWNvbklkLFxuICAgICAgICBnZW9tZXRyeTogZ2V0SWNvbkdlb21ldHJ5KGljb25JZCkgfHwgREVGQVVMVF9JQ09OX0dFT01FVFJZLFxuICAgICAgICBkYXRhOiBbXVxuICAgICAgfTtcbiAgICAgIGljb25MYXllcnNbaWNvbklkXS5kYXRhLnB1c2goZGF0YVtpXSk7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgZGF0YTogT2JqZWN0LnZhbHVlcyhpY29uTGF5ZXJzKVxuICAgIH0pO1xuICB9XG5cbiAgX3VwZGF0ZUF1dG9IaWdobGlnaHQoaW5mbykge1xuICAgIGluZm8/LnNvdXJjZUxheWVyPy51cGRhdGVBdXRvSGlnaGxpZ2h0KGluZm8pO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIGNvbnN0IGxheWVySWQgPSB0aGlzLnByb3BzLmlkO1xuXG4gICAgY29uc3QgbGF5ZXJzID1cbiAgICAgIHRoaXMuc3RhdGUuZGF0YSAmJlxuICAgICAgdGhpcy5zdGF0ZS5kYXRhLmxlbmd0aCAmJlxuICAgICAgdGhpcy5zdGF0ZS5kYXRhLm1hcChcbiAgICAgICAgKHtpZCwgZGF0YSwgZ2VvbWV0cnl9KSA9PlxuICAgICAgICAgIG5ldyBTY2F0dGVycGxvdEljb25MYXllcih7XG4gICAgICAgICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgICAgICAgaWQ6IGAke2xheWVySWR9LSR7aWR9YCxcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBpY29uR2VvbWV0cnk6IGdlb21ldHJ5XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICByZXR1cm4gbGF5ZXJzICYmIGxheWVycy5sZW5ndGggPiAwID8gbGF5ZXJzIDogbnVsbDtcbiAgfVxufVxuXG5TdmdJY29uTGF5ZXIubGF5ZXJOYW1lID0gJ1N2Z0ljb25MYXllcic7XG5TdmdJY29uTGF5ZXIuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuIl19
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kepler.gl/deckgl-layers",
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
4
|
-
"version": "3.0.0-alpha.
|
4
|
+
"version": "3.0.0-alpha.1",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -31,15 +31,15 @@
|
|
31
31
|
],
|
32
32
|
"dependencies": {
|
33
33
|
"@danmarshall/deckgl-typings": "4.9.22",
|
34
|
-
"@deck.gl/aggregation-layers": "8.
|
35
|
-
"@deck.gl/core": "^8.
|
36
|
-
"@deck.gl/geo-layers": "^8.
|
37
|
-
"@deck.gl/layers": "^8.
|
38
|
-
"@kepler.gl/constants": "3.0.0-alpha.
|
39
|
-
"@kepler.gl/types": "3.0.0-alpha.
|
40
|
-
"@kepler.gl/utils": "3.0.0-alpha.
|
41
|
-
"@luma.gl/constants": "^8.5.
|
42
|
-
"@luma.gl/core": "^8.5.
|
34
|
+
"@deck.gl/aggregation-layers": "^8.9.12",
|
35
|
+
"@deck.gl/core": "^8.9.12",
|
36
|
+
"@deck.gl/geo-layers": "^8.9.12",
|
37
|
+
"@deck.gl/layers": "^8.9.12",
|
38
|
+
"@kepler.gl/constants": "3.0.0-alpha.1",
|
39
|
+
"@kepler.gl/types": "3.0.0-alpha.1",
|
40
|
+
"@kepler.gl/utils": "3.0.0-alpha.1",
|
41
|
+
"@luma.gl/constants": "^8.5.19",
|
42
|
+
"@luma.gl/core": "^8.5.19",
|
43
43
|
"@mapbox/geo-viewport": "^0.4.1",
|
44
44
|
"@mapbox/vector-tile": "^1.3.1",
|
45
45
|
"@types/d3-array": "^2.0.0",
|
@@ -58,14 +58,14 @@
|
|
58
58
|
"instrument": false
|
59
59
|
},
|
60
60
|
"engines": {
|
61
|
-
"node": ">=
|
61
|
+
"node": ">=14.21.1"
|
62
62
|
},
|
63
63
|
"maintainers": [
|
64
64
|
"Shan He <heshan0131@gmail.com>",
|
65
65
|
"Giuseppe Macri <gmacri@uber.com>"
|
66
66
|
],
|
67
67
|
"volta": {
|
68
|
-
"node": "
|
68
|
+
"node": "14.21.1",
|
69
69
|
"yarn": "1.22.17"
|
70
70
|
}
|
71
71
|
}
|