@kepler.gl/constants 3.3.0-alpha.0 → 3.3.0-alpha.10

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