@kepler.gl/constants 3.0.0-alpha.2 → 3.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/layers.js DELETED
@@ -1,510 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "DEFAULT_COLOR_RANGE", {
9
- enumerable: true,
10
- get: function get() {
11
- return _colorRanges.DEFAULT_COLOR_RANGE;
12
- }
13
- });
14
- exports.EDITOR_AVAILABLE_LAYERS = exports.LAYER_TYPES = exports.LAYER_TEXT_CONFIGS = exports.LAYER_VIS_CONFIGS = exports.DEFAULT_COLOR_UI = exports.UNKNOWN_COLOR_KEY = exports.DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_TEXT_LABEL = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_LAYER_OPACITY = exports.PROPERTY_GROUPS = void 0;
15
-
16
- var _keymirror = _interopRequireDefault(require("keymirror"));
17
-
18
- var _colorRanges = require("./color-ranges");
19
-
20
- var _defaultSettings = require("./default-settings");
21
-
22
- // SPDX-License-Identifier: MIT
23
- // Copyright contributors to the kepler.gl project
24
- var PROPERTY_GROUPS = (0, _keymirror["default"])({
25
- color: null,
26
- stroke: null,
27
- radius: null,
28
- height: null,
29
- angle: null,
30
- // for heatmap aggregation
31
- cell: null,
32
- precision: null,
33
- display: null
34
- });
35
- exports.PROPERTY_GROUPS = PROPERTY_GROUPS;
36
- var DEFAULT_LAYER_OPACITY = 0.8;
37
- exports.DEFAULT_LAYER_OPACITY = DEFAULT_LAYER_OPACITY;
38
- var DEFAULT_HIGHLIGHT_COLOR = [252, 242, 26, 255];
39
- exports.DEFAULT_HIGHLIGHT_COLOR = DEFAULT_HIGHLIGHT_COLOR;
40
- var DEFAULT_LAYER_LABEL = 'new layer';
41
- exports.DEFAULT_LAYER_LABEL = DEFAULT_LAYER_LABEL;
42
- var DEFAULT_TEXT_LABEL = {
43
- field: null,
44
- color: [255, 255, 255],
45
- size: 18,
46
- offset: [0, 0],
47
- anchor: 'start',
48
- alignment: 'center',
49
- outlineWidth: 0,
50
- outlineColor: [255, 0, 0, 255],
51
- background: false,
52
- backgroundColor: [0, 0, 200, 255]
53
- };
54
- exports.DEFAULT_TEXT_LABEL = DEFAULT_TEXT_LABEL;
55
- var DEFAULT_CUSTOM_PALETTE = {
56
- name: 'color.customPalette',
57
- type: 'custom',
58
- category: 'Custom',
59
- colors: []
60
- };
61
- exports.DEFAULT_CUSTOM_PALETTE = DEFAULT_CUSTOM_PALETTE;
62
- var UNKNOWN_COLOR_KEY = '__unknownColor__';
63
- exports.UNKNOWN_COLOR_KEY = UNKNOWN_COLOR_KEY;
64
- var DEFAULT_COLOR_UI = {
65
- // customPalette in edit
66
- customPalette: DEFAULT_CUSTOM_PALETTE,
67
- // show color sketcher modal
68
- showSketcher: false,
69
- // show color range selection panel
70
- showDropdown: false,
71
- // color range selector config
72
- colorRangeConfig: {
73
- type: 'all',
74
- steps: 6,
75
- reversed: false,
76
- custom: false
77
- }
78
- };
79
- exports.DEFAULT_COLOR_UI = DEFAULT_COLOR_UI;
80
- var LAYER_VIS_CONFIGS = {
81
- thickness: {
82
- type: 'number',
83
- defaultValue: 2,
84
- label: 'layerVisConfigs.strokeWidth',
85
- isRanged: false,
86
- range: [0, 100],
87
- step: 0.1,
88
- group: PROPERTY_GROUPS.stroke,
89
- property: 'thickness',
90
- allowCustomValue: true
91
- },
92
- strokeWidthRange: {
93
- type: 'number',
94
- defaultValue: [0, 10],
95
- label: 'layerVisConfigs.strokeWidthRange',
96
- isRanged: true,
97
- range: [0, 200],
98
- step: 0.1,
99
- group: PROPERTY_GROUPS.stroke,
100
- property: 'sizeRange',
101
- allowCustomValue: true
102
- },
103
- trailLength: {
104
- type: 'number',
105
- defaultValue: 180,
106
- label: 'layerVisConfigs.strokeWidth',
107
- isRanged: false,
108
- range: [1, 1000],
109
- step: 1,
110
- group: PROPERTY_GROUPS.stroke,
111
- property: 'trailLength',
112
- allowCustomValue: true
113
- },
114
- // radius is actually radiusScale in deck.gl
115
- radius: {
116
- type: 'number',
117
- defaultValue: 10,
118
- label: 'layerVisConfigs.radius',
119
- isRanged: false,
120
- range: [0, 100],
121
- step: 0.1,
122
- group: PROPERTY_GROUPS.radius,
123
- property: 'radius',
124
- allowCustomValue: true
125
- },
126
- fixedRadius: {
127
- defaultValue: false,
128
- type: 'boolean',
129
- label: 'layerVisConfigs.fixedRadius',
130
- description: 'layerVisConfigs.fixedRadiusDescription',
131
- group: PROPERTY_GROUPS.radius,
132
- property: 'fixedRadius'
133
- },
134
- radiusRange: {
135
- type: 'number',
136
- defaultValue: [0, 50],
137
- isRanged: true,
138
- range: [0, 500],
139
- step: 0.1,
140
- label: 'layerVisConfigs.radiusRange',
141
- group: PROPERTY_GROUPS.radius,
142
- property: 'radiusRange',
143
- allowCustomValue: true
144
- },
145
- clusterRadius: {
146
- type: 'number',
147
- label: 'layerVisConfigs.clusterRadius',
148
- defaultValue: 40,
149
- isRanged: false,
150
- range: [1, 500],
151
- step: 0.1,
152
- group: PROPERTY_GROUPS.radius,
153
- property: 'clusterRadius',
154
- allowCustomValue: true
155
- },
156
- clusterRadiusRange: {
157
- type: 'number',
158
- label: 'layerVisConfigs.radiusRangePixels',
159
- defaultValue: [1, 40],
160
- isRanged: true,
161
- range: [1, 150],
162
- step: 0.1,
163
- group: PROPERTY_GROUPS.radius,
164
- property: 'radiusRange',
165
- allowCustomValue: true
166
- },
167
- opacity: {
168
- type: 'number',
169
- defaultValue: DEFAULT_LAYER_OPACITY,
170
- label: 'layerVisConfigs.opacity',
171
- isRanged: false,
172
- range: [0, 1],
173
- step: 0.01,
174
- group: PROPERTY_GROUPS.color,
175
- property: 'opacity',
176
- allowCustomValue: false
177
- },
178
- coverage: {
179
- type: 'number',
180
- defaultValue: 1,
181
- label: 'layerVisConfigs.coverage',
182
- isRanged: false,
183
- range: [0, 1],
184
- step: 0.01,
185
- group: PROPERTY_GROUPS.cell,
186
- property: 'coverage',
187
- allowCustomValue: false
188
- },
189
- // used in point layer
190
- outline: {
191
- type: 'boolean',
192
- defaultValue: false,
193
- label: 'layer.outline',
194
- group: PROPERTY_GROUPS.display,
195
- property: 'outline'
196
- },
197
- colorRange: {
198
- type: 'color-range-select',
199
- defaultValue: _colorRanges.DEFAULT_COLOR_RANGE,
200
- label: 'layerVisConfigs.colorRange',
201
- group: PROPERTY_GROUPS.color,
202
- property: 'colorRange'
203
- },
204
- strokeColorRange: {
205
- type: 'color-range-select',
206
- defaultValue: _colorRanges.DEFAULT_COLOR_RANGE,
207
- label: 'layerVisConfigs.strokeColorRange',
208
- group: PROPERTY_GROUPS.color,
209
- property: 'strokeColorRange'
210
- },
211
- targetColor: {
212
- type: 'color-select',
213
- label: 'layerVisConfigs.targetColor',
214
- defaultValue: null,
215
- group: PROPERTY_GROUPS.color,
216
- property: 'targetColor'
217
- },
218
- strokeColor: {
219
- type: 'color-select',
220
- label: 'layerVisConfigs.strokeColor',
221
- defaultValue: null,
222
- group: PROPERTY_GROUPS.color,
223
- property: 'strokeColor'
224
- },
225
- colorAggregation: {
226
- type: 'select',
227
- defaultValue: _defaultSettings.AGGREGATION_TYPES.average,
228
- label: 'layerVisConfigs.colorAggregation',
229
- // aggregation options are based on color field types
230
- options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
231
- group: PROPERTY_GROUPS.color,
232
- property: 'colorAggregation',
233
- condition: function condition(config) {
234
- return Boolean(config.colorField);
235
- }
236
- },
237
- sizeAggregation: {
238
- type: 'select',
239
- defaultValue: _defaultSettings.AGGREGATION_TYPES.average,
240
- label: 'layerVisConfigs.heightAggregation',
241
- // aggregation options are based on color field types
242
- options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
243
- group: PROPERTY_GROUPS.height,
244
- property: 'sizeAggregation',
245
- condition: function condition(config) {
246
- return Boolean(config.sizeField);
247
- }
248
- },
249
- percentile: {
250
- type: 'number',
251
- defaultValue: [0, 100],
252
- label: function label(config) {
253
- return "Filter by ".concat(config.colorField ? "".concat(config.visConfig.colorAggregation, " ").concat(config.colorField.name) : 'count', " percentile");
254
- },
255
- isRanged: true,
256
- range: [0, 100],
257
- step: 0.01,
258
- group: PROPERTY_GROUPS.color,
259
- property: 'percentile',
260
- // percentile filter only makes sense with linear aggregation
261
- condition: function condition(config) {
262
- return config.colorScale !== 'ordinal';
263
- },
264
- allowCustomValue: false
265
- },
266
- elevationPercentile: {
267
- type: 'number',
268
- defaultValue: [0, 100],
269
- label: function label(config) {
270
- return "Filter by ".concat(config.sizeField ? "".concat(config.visConfig.sizeAggregation, " ").concat(config.sizeField.name) : 'count', " percentile");
271
- },
272
- isRanged: true,
273
- range: [0, 100],
274
- step: 0.01,
275
- group: PROPERTY_GROUPS.height,
276
- property: 'elevationPercentile',
277
- // percentile filter only makes sense with linear aggregation
278
- condition: function condition(config) {
279
- return Boolean(config.visConfig.enable3d && (config.colorField || config.sizeField));
280
- },
281
- allowCustomValue: false
282
- },
283
- resolution: {
284
- type: 'number',
285
- defaultValue: 8,
286
- label: 'layerVisConfigs.resolution',
287
- isRanged: false,
288
- range: [0, 13],
289
- step: 1,
290
- group: PROPERTY_GROUPS.cell,
291
- property: 'resolution',
292
- allowCustomValue: true
293
- },
294
- sizeScale: {
295
- type: 'number',
296
- defaultValue: 10,
297
- label: 'layerVisConfigs.sizeScale',
298
- isRanged: false,
299
- range: [1, 1000],
300
- step: 1,
301
- group: PROPERTY_GROUPS.stroke,
302
- property: 'sizeScale',
303
- allowCustomValue: true
304
- },
305
- angle: {
306
- type: 'number',
307
- label: 'layerVisConfigs.angle',
308
- defaultValue: 0,
309
- isRanged: false,
310
- range: [0, 360],
311
- group: PROPERTY_GROUPS.angle,
312
- step: 1,
313
- property: 'angle',
314
- allowCustomValue: true
315
- },
316
- worldUnitSize: {
317
- type: 'number',
318
- defaultValue: 1,
319
- label: 'layerVisConfigs.worldUnitSize',
320
- isRanged: false,
321
- range: [0, 500],
322
- step: 0.0001,
323
- group: PROPERTY_GROUPS.cell,
324
- property: 'worldUnitSize',
325
- allowCustomValue: true
326
- },
327
- elevationScale: {
328
- type: 'number',
329
- defaultValue: 5,
330
- label: 'layerVisConfigs.elevationScale',
331
- isRanged: false,
332
- range: [0, 100],
333
- step: 0.1,
334
- group: PROPERTY_GROUPS.height,
335
- property: 'elevationScale',
336
- allowCustomValue: true
337
- },
338
- enableElevationZoomFactor: {
339
- type: 'boolean',
340
- defaultValue: true,
341
- label: 'layerVisConfigs.enableElevationZoomFactor',
342
- group: PROPERTY_GROUPS.height,
343
- property: 'enableElevationZoomFactor',
344
- description: 'layerVisConfigs.enableElevationZoomFactorDescription'
345
- },
346
- elevationRange: {
347
- type: 'number',
348
- defaultValue: [0, 500],
349
- label: 'layerVisConfigs.heightScale',
350
- isRanged: true,
351
- range: [0, 1000],
352
- step: 0.01,
353
- group: PROPERTY_GROUPS.height,
354
- property: 'sizeRange',
355
- allowCustomValue: true
356
- },
357
- heightRange: {
358
- type: 'number',
359
- defaultValue: [0, 500],
360
- label: 'Height Scale',
361
- isRanged: true,
362
- range: [0, 1000],
363
- step: 0.01,
364
- group: PROPERTY_GROUPS.height,
365
- property: 'heightRange',
366
- allowCustomValue: true
367
- },
368
- coverageRange: {
369
- type: 'number',
370
- defaultValue: [0, 1],
371
- label: 'layerVisConfigs.coverageRange',
372
- isRanged: true,
373
- range: [0, 1],
374
- step: 0.01,
375
- group: PROPERTY_GROUPS.radius,
376
- property: 'coverageRange',
377
- allowCustomValue: false
378
- },
379
- // hi precision is deprecated by deck.gl
380
- 'hi-precision': {
381
- type: 'boolean',
382
- defaultValue: false,
383
- label: 'layerVisConfigs.highPrecisionRendering',
384
- group: PROPERTY_GROUPS.precision,
385
- property: 'hi-precision',
386
- description: 'layerVisConfigs.highPrecisionRenderingDescription'
387
- },
388
- enable3d: {
389
- type: 'boolean',
390
- defaultValue: false,
391
- label: 'layerVisConfigs.height',
392
- group: PROPERTY_GROUPS.height,
393
- property: 'enable3d',
394
- description: 'layerVisConfigs.heightDescription'
395
- },
396
- stroked: {
397
- type: 'boolean',
398
- label: 'layerVisConfigs.stroke',
399
- defaultValue: true,
400
- group: PROPERTY_GROUPS.display,
401
- property: 'stroked'
402
- },
403
- filled: {
404
- type: 'boolean',
405
- label: 'layerVisConfigs.fill',
406
- defaultValue: false,
407
- group: PROPERTY_GROUPS.display,
408
- property: 'filled'
409
- },
410
- extruded: {
411
- type: 'boolean',
412
- defaultValue: false,
413
- label: 'layerVisConfigs.enablePolygonHeight',
414
- group: PROPERTY_GROUPS.display,
415
- property: 'extruded'
416
- },
417
- wireframe: {
418
- type: 'boolean',
419
- defaultValue: false,
420
- label: 'layerVisConfigs.showWireframe',
421
- group: PROPERTY_GROUPS.display,
422
- property: 'wireframe'
423
- },
424
- // used for heatmap
425
- weight: {
426
- type: 'number',
427
- defaultValue: 1,
428
- label: 'layerVisConfigs.weightIntensity',
429
- isRanged: false,
430
- range: [0.01, 500],
431
- step: 0.01,
432
- group: PROPERTY_GROUPS.cell,
433
- property: 'weight',
434
- condition: function condition(config) {
435
- return Boolean(config.weightField);
436
- },
437
- allowCustomValue: true
438
- },
439
- heatmapRadius: {
440
- type: 'number',
441
- defaultValue: 20,
442
- label: 'layerVisConfigs.radius',
443
- isRanged: false,
444
- range: [0, 100],
445
- step: 0.1,
446
- group: PROPERTY_GROUPS.cell,
447
- property: 'radius',
448
- allowCustomValue: true
449
- },
450
- darkBaseMapEnabled: {
451
- type: 'boolean',
452
- defaultValue: true,
453
- label: 'layerVisConfigs.darkModeEnabled',
454
- property: 'darkBaseMapEnabled',
455
- group: PROPERTY_GROUPS.display
456
- }
457
- };
458
- exports.LAYER_VIS_CONFIGS = LAYER_VIS_CONFIGS;
459
- var LAYER_TEXT_CONFIGS = {
460
- fontSize: {
461
- type: 'number',
462
- range: [1, 100],
463
- value0: 1,
464
- step: 1,
465
- isRanged: false,
466
- label: 'Font size',
467
- showInput: true
468
- },
469
- outlineWidth: {
470
- type: 'number',
471
- range: [0, 1],
472
- value0: 0,
473
- step: 0.01,
474
- isRanged: false,
475
- label: 'Outline width',
476
- showInput: true
477
- },
478
- textAnchor: {
479
- type: 'select',
480
- options: ['start', 'middle', 'end'],
481
- multiSelect: false,
482
- searchable: false
483
- },
484
- textAlignment: {
485
- type: 'select',
486
- options: ['top', 'center', 'bottom'],
487
- multiSelect: false,
488
- searchable: false
489
- }
490
- };
491
- exports.LAYER_TEXT_CONFIGS = LAYER_TEXT_CONFIGS;
492
- var LAYER_TYPES = (0, _keymirror["default"])({
493
- point: null,
494
- arc: null,
495
- line: null,
496
- grid: null,
497
- hexagon: null,
498
- geojson: null,
499
- cluster: null,
500
- icon: null,
501
- heatmap: null,
502
- hexagonId: null,
503
- '3D': null,
504
- trip: null,
505
- s2: null
506
- });
507
- exports.LAYER_TYPES = LAYER_TYPES;
508
- var EDITOR_AVAILABLE_LAYERS = [LAYER_TYPES.point, LAYER_TYPES.hexagon, LAYER_TYPES.arc, LAYER_TYPES.line, LAYER_TYPES.hexagonId, LAYER_TYPES.geojson];
509
- exports.EDITOR_AVAILABLE_LAYERS = EDITOR_AVAILABLE_LAYERS;
510
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllcnMudHMiXSwibmFtZXMiOlsiUFJPUEVSVFlfR1JPVVBTIiwiY29sb3IiLCJzdHJva2UiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsImNlbGwiLCJwcmVjaXNpb24iLCJkaXNwbGF5IiwiREVGQVVMVF9MQVlFUl9PUEFDSVRZIiwiREVGQVVMVF9ISUdITElHSFRfQ09MT1IiLCJERUZBVUxUX0xBWUVSX0xBQkVMIiwiREVGQVVMVF9URVhUX0xBQkVMIiwiZmllbGQiLCJzaXplIiwib2Zmc2V0IiwiYW5jaG9yIiwiYWxpZ25tZW50Iiwib3V0bGluZVdpZHRoIiwib3V0bGluZUNvbG9yIiwiYmFja2dyb3VuZCIsImJhY2tncm91bmRDb2xvciIsIkRFRkFVTFRfQ1VTVE9NX1BBTEVUVEUiLCJuYW1lIiwidHlwZSIsImNhdGVnb3J5IiwiY29sb3JzIiwiVU5LTk9XTl9DT0xPUl9LRVkiLCJERUZBVUxUX0NPTE9SX1VJIiwiY3VzdG9tUGFsZXR0ZSIsInNob3dTa2V0Y2hlciIsInNob3dEcm9wZG93biIsImNvbG9yUmFuZ2VDb25maWciLCJzdGVwcyIsInJldmVyc2VkIiwiY3VzdG9tIiwiTEFZRVJfVklTX0NPTkZJR1MiLCJ0aGlja25lc3MiLCJkZWZhdWx0VmFsdWUiLCJsYWJlbCIsImlzUmFuZ2VkIiwicmFuZ2UiLCJzdGVwIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsImFsbG93Q3VzdG9tVmFsdWUiLCJzdHJva2VXaWR0aFJhbmdlIiwidHJhaWxMZW5ndGgiLCJmaXhlZFJhZGl1cyIsImRlc2NyaXB0aW9uIiwicmFkaXVzUmFuZ2UiLCJjbHVzdGVyUmFkaXVzIiwiY2x1c3RlclJhZGl1c1JhbmdlIiwib3BhY2l0eSIsImNvdmVyYWdlIiwib3V0bGluZSIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwic3Ryb2tlQ29sb3JSYW5nZSIsInRhcmdldENvbG9yIiwic3Ryb2tlQ29sb3IiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiQUdHUkVHQVRJT05fVFlQRVMiLCJhdmVyYWdlIiwib3B0aW9ucyIsIk9iamVjdCIsImtleXMiLCJjb25kaXRpb24iLCJjb25maWciLCJCb29sZWFuIiwiY29sb3JGaWVsZCIsInNpemVBZ2dyZWdhdGlvbiIsInNpemVGaWVsZCIsInBlcmNlbnRpbGUiLCJ2aXNDb25maWciLCJjb2xvclNjYWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVuYWJsZTNkIiwicmVzb2x1dGlvbiIsInNpemVTY2FsZSIsIndvcmxkVW5pdFNpemUiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJlbGV2YXRpb25SYW5nZSIsImhlaWdodFJhbmdlIiwiY292ZXJhZ2VSYW5nZSIsInN0cm9rZWQiLCJmaWxsZWQiLCJleHRydWRlZCIsIndpcmVmcmFtZSIsIndlaWdodCIsIndlaWdodEZpZWxkIiwiaGVhdG1hcFJhZGl1cyIsImRhcmtCYXNlTWFwRW5hYmxlZCIsIkxBWUVSX1RFWFRfQ09ORklHUyIsImZvbnRTaXplIiwidmFsdWUwIiwic2hvd0lucHV0IiwidGV4dEFuY2hvciIsIm11bHRpU2VsZWN0Iiwic2VhcmNoYWJsZSIsInRleHRBbGlnbm1lbnQiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiYXJjIiwibGluZSIsImdyaWQiLCJoZXhhZ29uIiwiZ2VvanNvbiIsImNsdXN0ZXIiLCJpY29uIiwiaGVhdG1hcCIsImhleGFnb25JZCIsInRyaXAiLCJzMiIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFFQTs7QUFDQTs7QUFOQTtBQUNBO0FBaUJPLElBQU1BLGVBQWUsR0FBRywyQkFBVTtBQUN2Q0MsRUFBQUEsS0FBSyxFQUFFLElBRGdDO0FBRXZDQyxFQUFBQSxNQUFNLEVBQUUsSUFGK0I7QUFHdkNDLEVBQUFBLE1BQU0sRUFBRSxJQUgrQjtBQUl2Q0MsRUFBQUEsTUFBTSxFQUFFLElBSitCO0FBS3ZDQyxFQUFBQSxLQUFLLEVB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RUFBRSxLQUhIO0FBSVZDLElBQUFBLFVBQVUsRUFBRTtBQUpGLEdBbkJxQztBQXlCakRDLEVBQUFBLGFBQWEsRUFBRTtBQUNiN0UsSUFBQUEsSUFBSSxFQUFFLFFBRE87QUFFYndDLElBQUFBLE9BQU8sRUFBRSxDQUFDLEtBQUQsRUFBUSxRQUFSLEVBQWtCLFFBQWxCLENBRkk7QUFHYm1DLElBQUFBLFdBQVcsRUFBRSxLQUhBO0FBSWJDLElBQUFBLFVBQVUsRUFBRTtBQUpDO0FBekJrQyxDQUE1Qzs7QUFnQ0EsSUFBTUUsV0FBVyxHQUFHLDJCQUFVO0FBQ25DQyxFQUFBQSxLQUFLLEVBQUUsSUFENEI7QUFFbkNDLEVBQUFBLEdBQUcsRUFBRSxJQUY4QjtBQUduQ0MsRUFBQUEsSUFBSSxFQUFFLElBSDZCO0FBSW5DQyxFQUFBQSxJQUFJLEVBQUUsSUFKNkI7QUFLbkNDLEVBQUFBLE9BQU8sRUFBRSxJQUwwQjtBQU1uQ0MsRUFBQUEsT0FBTyxFQUFFLElBTjBCO0FBT25DQyxFQUFBQSxPQUFPLEVBQUUsSUFQMEI7QUFRbkNDLEVBQUFBLElBQUksRUFBRSxJQVI2QjtBQVNuQ0MsRUFBQUEsT0FBTyxFQUFFLElBVDBCO0FBVW5DQyxFQUFBQSxTQUFTLEVBQUUsSUFWd0I7QUFXbkMsUUFBTSxJQVg2QjtBQVluQ0MsRUFBQUEsSUFBSSxFQUFFLElBWjZCO0FBYW5DQyxFQUFBQSxFQUFFLEVBQUU7QUFiK0IsQ0FBVixDQUFwQjs7QUFnQkEsSUFBTUMsdUJBQWlDLEdBQUcsQ0FDL0NiLFdBQVcsQ0FBQ0MsS0FEbUMsRUFFL0NELFdBQVcsQ0FBQ0ssT0FGbUMsRUFHL0NMLFdBQVcsQ0FBQ0UsR0FIbUMsRUFJL0NGLFdBQVcsQ0FBQ0csSUFKbUMsRUFLL0NILFdBQVcsQ0FBQ1UsU0FMbUMsRUFNL0NWLFdBQVcsQ0FBQ00sT0FObUMsQ0FBMUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQga2V5TWlycm9yIGZyb20gJ2tleW1pcnJvcic7XG5cbmltcG9ydCB7Q29sb3JSYW5nZSwgREVGQVVMVF9DT0xPUl9SQU5HRX0gZnJvbSAnLi9jb2xvci1yYW5nZXMnO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnLi9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtcbiAgQ29sb3JVSSxcbiAgTGF5ZXJUZXh0Q29uZmlnLFxuICBMYXllclRleHRMYWJlbCxcbiAgTGF5ZXJWaXNDb25maWdTZXR0aW5ncyxcbiAgUkdCQUNvbG9yXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvblR5cGVzID0ga2V5b2YgdHlwZW9mIEFHR1JFR0FUSU9OX1RZUEVTO1xuXG5leHBvcnQgY29uc3QgUFJPUEVSVFlfR1JPVVBTID0ga2V5TWlycm9yKHtcbiAgY29sb3I6IG51bGwsXG4gIHN0cm9rZTogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGwsXG4gIGRpc3BsYXk6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9PUEFDSVRZID0gMC44O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSElHSExJR0hUX0NPTE9SOiBSR0JBQ29sb3IgPSBbMjUyLCAyNDIsIDI2LCAyNTVdO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfTEFCRUwgPSAnbmV3IGxheWVyJztcbmV4cG9ydCB7REVGQVVMVF9DT0xPUl9SQU5HRX07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfTEFCRUw6IExheWVyVGV4dExhYmVsID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFsyNTUsIDI1NSwgMjU1XSxcbiAgc2l6ZTogMTgsXG4gIG9mZnNldDogWzAsIDBdLFxuICBhbmNob3I6ICdzdGFydCcsXG4gIGFsaWdubWVudDogJ2NlbnRlcicsXG4gIG91dGxpbmVXaWR0aDogMCxcbiAgb3V0bGluZUNvbG9yOiBbMjU1LCAwLCAwLCAyNTVdLFxuICBiYWNrZ3JvdW5kOiBmYWxzZSxcbiAgYmFja2dyb3VuZENvbG9yOiBbMCwgMCwgMjAwLCAyNTVdXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVNUT01fUEFMRVRURTogQ29sb3JSYW5nZSA9IHtcbiAgbmFtZTogJ2NvbG9yLmN1c3RvbVBhbGV0dGUnLFxuICB0eXBlOiAnY3VzdG9tJyxcbiAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICBjb2xvcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9DT0xPUl9LRVkgPSAnX191bmtub3duQ29sb3JfXyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SX1VJOiBDb2xvclVJID0ge1xuICAvLyBjdXN0b21QYWxldHRlIGluIGVkaXRcbiAgY3VzdG9tUGFsZXR0ZTogREVGQVVMVF9DVVNUT01fUEFMRVRURSxcbiAgLy8gc2hvdyBjb2xvciBza2V0Y2hlciBtb2RhbFxuICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAvLyBzaG93IGNvbG9yIHJhbmdlIHNlbGVjdGlvbiBwYW5lbFxuICBzaG93RHJvcGRvd246IGZhbHNlLFxuICAvLyBjb2xvciByYW5nZSBzZWxlY3RvciBjb25maWdcbiAgY29sb3JSYW5nZUNvbmZpZzoge1xuICAgIHR5cGU6ICdhbGwnLFxuICAgIHN0ZXBzOiA2LFxuICAgIHJldmVyc2VkOiBmYWxzZSxcbiAgICBjdXN0b206IGZhbHNlXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBMQVlFUl9WSVNfQ09ORklHUzogTGF5ZXJWaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgdGhpY2tuZXNzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAyLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZVdpZHRoJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3RoaWNrbmVzcycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBzdHJva2VXaWR0aFJhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTBdLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZVdpZHRoUmFuZ2UnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMjAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplUmFuZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgdHJhaWxMZW5ndGg6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDE4MCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgMTAwMF0sXG4gICAgc3RlcDogMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3RyYWlsTGVuZ3RoJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIC8vIHJhZGl1cyBpcyBhY3R1YWxseSByYWRpdXNTY2FsZSBpbiBkZWNrLmdsXG4gIHJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMTAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1cycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBmaXhlZFJhZGl1czoge1xuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmZpeGVkUmFkaXVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ2xheWVyVmlzQ29uZmlncy5maXhlZFJhZGl1c0Rlc2NyaXB0aW9uJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ2ZpeGVkUmFkaXVzJ1xuICB9LFxuICByYWRpdXNSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwXSxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1c1JhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1c1JhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jbHVzdGVyUmFkaXVzJyxcbiAgICBkZWZhdWx0VmFsdWU6IDQwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDUwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnY2x1c3RlclJhZGl1cycsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBjbHVzdGVyUmFkaXVzUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXNSYW5nZVBpeGVscycsXG4gICAgZGVmYXVsdFZhbHVlOiBbMSwgNDBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMSwgMTUwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdyYWRpdXNSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBvcGFjaXR5OiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xBWUVSX09QQUNJVFksXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Mub3BhY2l0eScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnb3BhY2l0eScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgY292ZXJhZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuY292ZXJhZ2UnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAnY292ZXJhZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IGZhbHNlXG4gIH0sXG4gIC8vIHVzZWQgaW4gcG9pbnQgbGF5ZXJcbiAgb3V0bGluZToge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXIub3V0bGluZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnb3V0bGluZSdcbiAgfSxcbiAgY29sb3JSYW5nZToge1xuICAgIHR5cGU6ICdjb2xvci1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvclJhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnY29sb3JSYW5nZSdcbiAgfSxcbiAgc3Ryb2tlQ29sb3JSYW5nZToge1xuICAgIHR5cGU6ICdjb2xvci1yYW5nZS1zZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VDb2xvclJhbmdlJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3JSYW5nZSdcbiAgfSxcbiAgdGFyZ2V0Q29sb3I6IHtcbiAgICB0eXBlOiAnY29sb3Itc2VsZWN0JyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy50YXJnZXRDb2xvcicsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICd0YXJnZXRDb2xvcidcbiAgfSxcbiAgc3Ryb2tlQ29sb3I6IHtcbiAgICB0eXBlOiAnY29sb3Itc2VsZWN0JyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VDb2xvcicsXG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdzdHJva2VDb2xvcidcbiAgfSxcbiAgY29sb3JBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb2xvckFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSBhcyBBZ2dyZWdhdGlvblR5cGVzW10sXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ2NvbG9yQWdncmVnYXRpb24nLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLmNvbG9yRmllbGQpXG4gIH0sXG4gIHNpemVBZ2dyZWdhdGlvbjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIGRlZmF1bHRWYWx1ZTogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHRBZ2dyZWdhdGlvbicsXG4gICAgLy8gYWdncmVnYXRpb24gb3B0aW9ucyBhcmUgYmFzZWQgb24gY29sb3IgZmllbGQgdHlwZXNcbiAgICBvcHRpb25zOiBPYmplY3Qua2V5cyhBR0dSRUdBVElPTl9UWVBFUykgYXMgQWdncmVnYXRpb25UeXBlc1tdLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnc2l6ZUFnZ3JlZ2F0aW9uJyxcbiAgICBjb25kaXRpb246IGNvbmZpZyA9PiBCb29sZWFuKGNvbmZpZy5zaXplRmllbGQpXG4gIH0sXG4gIHBlcmNlbnRpbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxMDBdLFxuICAgIGxhYmVsOiBjb25maWcgPT5cbiAgICAgIGBGaWx0ZXIgYnkgJHtcbiAgICAgICAgY29uZmlnLmNvbG9yRmllbGRcbiAgICAgICAgICA/IGAke2NvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvbn0gJHtjb25maWcuY29sb3JGaWVsZC5uYW1lfWBcbiAgICAgICAgICA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3BlcmNlbnRpbGUnLFxuXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy5jb2xvclNjYWxlICE9PSAnb3JkaW5hbCcsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgZWxldmF0aW9uUGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuc2l6ZUZpZWxkID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb259ICR7Y29uZmlnLnNpemVGaWVsZC5uYW1lfWAgOiAnY291bnQnXG4gICAgICB9IHBlcmNlbnRpbGVgLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZWxldmF0aW9uUGVyY2VudGlsZScsXG4gICAgLy8gcGVyY2VudGlsZSBmaWx0ZXIgb25seSBtYWtlcyBzZW5zZSB3aXRoIGxpbmVhciBhZ2dyZWdhdGlvblxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+XG4gICAgICBCb29sZWFuKGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QgJiYgKGNvbmZpZy5jb2xvckZpZWxkIHx8IGNvbmZpZy5zaXplRmllbGQpKSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICByZXNvbHV0aW9uOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA4LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJlc29sdXRpb24nLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEzXSxcbiAgICBzdGVwOiAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3Jlc29sdXRpb24nLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgc2l6ZVNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zaXplU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdzaXplU2NhbGUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgYW5nbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5hbmdsZScsXG4gICAgZGVmYXVsdFZhbHVlOiAwLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDM2MF0sXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5hbmdsZSxcbiAgICBzdGVwOiAxLFxuICAgIHByb3BlcnR5OiAnYW5nbGUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgd29ybGRVbml0U2l6ZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53b3JsZFVuaXRTaXplJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCA1MDBdLFxuICAgIHN0ZXA6IDAuMDAwMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3b3JsZFVuaXRTaXplJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiA1LFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVsZXZhdGlvblNjYWxlJyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvckRlc2NyaXB0aW9uJ1xuICB9LFxuICBlbGV2YXRpb25SYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0U2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBoZWlnaHRSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdIZWlnaHQgU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodFJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNvdmVyYWdlUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZVJhbmdlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZVJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICAvLyBoaSBwcmVjaXNpb24gaXMgZGVwcmVjYXRlZCBieSBkZWNrLmdsXG4gICdoaS1wcmVjaXNpb24nOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGlnaFByZWNpc2lvblJlbmRlcmluZycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5wcmVjaXNpb24sXG4gICAgcHJvcGVydHk6ICdoaS1wcmVjaXNpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmdEZXNjcmlwdGlvbidcbiAgfSxcbiAgZW5hYmxlM2Q6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlM2QnLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodERlc2NyaXB0aW9uJ1xuICB9LFxuICBzdHJva2VkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZScsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZWQnXG4gIH0sXG4gIGZpbGxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5maWxsJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfSxcbiAgZXh0cnVkZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVQb2x5Z29uSGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdleHRydWRlZCdcbiAgfSxcbiAgd2lyZWZyYW1lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2hvd1dpcmVmcmFtZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnd2lyZWZyYW1lJ1xuICB9LFxuICAvLyB1c2VkIGZvciBoZWF0bWFwXG4gIHdlaWdodDoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53ZWlnaHRJbnRlbnNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAuMDEsIDUwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3ZWlnaHQnLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLndlaWdodEZpZWxkKSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGhlYXRtYXBSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGRhcmtCYXNlTWFwRW5hYmxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZGFya01vZGVFbmFibGVkJyxcbiAgICBwcm9wZXJ0eTogJ2RhcmtCYXNlTWFwRW5hYmxlZCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBMQVlFUl9URVhUX0NPTkZJR1M6IExheWVyVGV4dENvbmZpZyA9IHtcbiAgZm9udFNpemU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICByYW5nZTogWzEsIDEwMF0sXG4gICAgdmFsdWUwOiAxLFxuICAgIHN0ZXA6IDEsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIGxhYmVsOiAnRm9udCBzaXplJyxcbiAgICBzaG93SW5wdXQ6IHRydWVcbiAgfSxcbiAgb3V0bGluZVdpZHRoOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICB2YWx1ZTA6IDAsXG4gICAgc3RlcDogMC4wMSxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgbGFiZWw6ICdPdXRsaW5lIHdpZHRoJyxcbiAgICBzaG93SW5wdXQ6IHRydWVcbiAgfSxcbiAgdGV4dEFuY2hvcjoge1xuICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgIG9wdGlvbnM6IFsnc3RhcnQnLCAnbWlkZGxlJywgJ2VuZCddLFxuICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZVxuICB9LFxuICB0ZXh0QWxpZ25tZW50OiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddLFxuICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZVxuICB9XG59O1xuZXhwb3J0IGNvbnN0IExBWUVSX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgcG9pbnQ6IG51bGwsXG4gIGFyYzogbnVsbCxcbiAgbGluZTogbnVsbCxcbiAgZ3JpZDogbnVsbCxcbiAgaGV4YWdvbjogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgY2x1c3RlcjogbnVsbCxcbiAgaWNvbjogbnVsbCxcbiAgaGVhdG1hcDogbnVsbCxcbiAgaGV4YWdvbklkOiBudWxsLFxuICAnM0QnOiBudWxsLFxuICB0cmlwOiBudWxsLFxuICBzMjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUzogc3RyaW5nW10gPSBbXG4gIExBWUVSX1RZUEVTLnBvaW50LFxuICBMQVlFUl9UWVBFUy5oZXhhZ29uLFxuICBMQVlFUl9UWVBFUy5hcmMsXG4gIExBWUVSX1RZUEVTLmxpbmUsXG4gIExBWUVSX1RZUEVTLmhleGFnb25JZCxcbiAgTEFZRVJfVFlQRVMuZ2VvanNvblxuXTtcbiJdfQ==