@kepler.gl/constants 3.0.0-alpha.1 → 3.0.0-alpha.2

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.
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -26,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
26
6
  value: true
27
7
  });
28
8
  exports.getHTMLMapModeTileUrl = getHTMLMapModeTileUrl;
29
- exports.GEOCODER_GEO_OFFSET = exports.GEOCODER_LAYER_ID = exports.GEOCODER_DATASET_NAME = exports.SPEED_CONTROL_STEP = exports.SPEED_CONTROL_RANGE = exports.DEFAULT_TIME_FORMAT = exports.ANIMATION_WINDOW = exports.FPS = exports.BASE_SPEED = exports.THROTTLE_NOTIFICATION_TIME = exports.DEFAULT_NOTIFICATION_TOPICS = exports.DEFAULT_NOTIFICATION_TYPES = exports.DEFAULT_NOTIFICATION_MESSAGE = exports.DEFAULT_UUID_COUNT = exports.EXPORT_HTML_MAP_MODE_OPTIONS = exports.EXPORT_MAP_FORMAT_OPTIONS = exports.EXPORT_HTML_MAP_MODES = exports.EXPORT_MAP_FORMATS = exports.EXPORT_DATA_TYPE_OPTIONS = exports.EXPORT_DATA_TYPE = exports.EXPORT_IMG_RESOLUTION_OPTIONS = exports.TwoXResolutionOption = exports.OneXResolutionOption = exports.EXPORT_IMG_RATIO_OPTIONS = exports.SixteenByNineRatioOption = exports.FourByThreeRatioOption = exports.CustomRatioOption = exports.ScreenRatioOption = exports.EXPORT_IMG_RATIOS = exports.RESOLUTIONS = exports.MAX_DEFAULT_TOOLTIPS = exports.LAYER_BLENDINGS = exports.OVERLAY_BLENDINGS = exports.DEFAULT_PICKING_RADIUS = exports.NO_VALUE_COLOR = exports.DEFAULT_TOOLTIP_FIELDS = exports.DEFAULT_LAYER_COLOR = exports.CHANNEL_SCALE_SUPPORTED_FIELDS = exports.FIELD_OPTS = exports.DEFAULT_AGGREGATION = exports.notSupportAggrOpts = exports.notSupportedScaleOpts = exports.ordinalFieldAggrScaleFunctions = exports.ordinalFieldScaleFunctions = exports.linearFieldAggrScaleFunctions = exports.linearFieldScaleFunctions = exports.AGGREGATION_TYPES = exports.CHANNEL_SCALES = exports.HIGHLIGH_COLOR_3D = exports.FIELD_COLORS = exports.FIELD_TYPE_DISPLAY = exports.TABLE_OPTION_LIST = exports.TABLE_OPTION = exports.SORT_ORDER = exports.ALL_FIELD_TYPES = exports.SCALE_FUNC = exports.SCALE_TYPES = exports.DEFAULT_FILTER_VIEW_TYPE = exports.FILTER_VIEW_TYPES = exports.FILTER_TYPES = exports.TRIP_ARC_FIELDS = exports.ALTITUDE_FIELDS = exports.TRIP_POINT_FIELDS = exports.ICON_FIELDS = exports.GEOJSON_FIELDS = exports.DEFAULT_MAP_STYLES = exports.NO_BASEMAP_ICON = exports.EMPTY_MAPBOX_STYLE = exports.NO_MAP_ID = exports.BASE_MAP_COLOR_MODES = exports.DEFAULT_LAYER_GROUPS = exports.BACKGROUND_LAYER_GROUP = exports.THREE_D_BUILDING_LAYER_GROUP_SLUG = exports.BACKGROUND_LAYER_GROUP_SLUG = exports.BASE_MAP_BACKGROUND_LAYER_IDS = exports.DEFAULT_BACKGROUND_COLOR = exports.DEFAULT_BLDG_COLOR = exports.PANELS = exports.PANEL_VIEW_TOGGLES = exports.SIDEBAR_PANELS = exports.THEME = exports.DIMENSIONS = exports.KEPLER_GL_WEBSITE = exports.KEPLER_GL_VERSION = exports.KEPLER_GL_NAME = exports.SHARE_MAP_ID = exports.OVERWRITE_MAP_ID = exports.SAVE_MAP_ID = exports.EXPORT_MAP_ID = exports.ADD_MAP_STYLE_ID = exports.EXPORT_DATA_ID = exports.EXPORT_IMAGE_ID = exports.ADD_DATA_ID = exports.DELETE_DATA_ID = exports.DATA_TABLE_ID = exports.TRANSITION_DURATION = exports.DEFAULT_MAPBOX_API_URL = exports.BASEMAP_ICON_PREFIX = exports.KEPLER_UNFOLDED_BUCKET = exports.ACTION_PREFIX = void 0;
30
- exports.EFFECT_DESCS = exports.POSTPROCESSING_EFFECTS = exports.DEFAULT_LIGHT_AND_SHADOW_PROPS = exports.LIGHT_AND_SHADOW_EFFECT = exports.DEFAULT_SHADOW_COLOR = exports.DEFAULT_SHADOW_INTENSITY = exports.DEFAULT_LIGHT_INTENSITY = exports.DEFAULT_LIGHT_COLOR = exports.DEFAULT_EFFECT_TYPE = exports.dataTestIds = exports.TEXT_OUTLINE_MULTIPLIER = exports.PROJECTED_PIXEL_SIZE_MULTIPLIER = exports.MAP_CONTROLS = exports.DATASET_FORMATS = exports.DEFAULT_FEATURE_FLAGS = exports.LOADING_METHODS = exports.MAP_INFO_CHARACTER = exports.MAP_THUMBNAIL_DIMENSION = exports.MAX_GPU_FILTERS = exports.INIT_FILTER_ITEMS_IN_DROPDOWN = exports.PLOT_TYPES = exports.EDITOR_MODES = exports.EDITOR_LAYER_PICKING_RADIUS = exports.EDITOR_LAYER_ID = exports.GEOCODER_ICON_SIZE = exports.GEOCODER_ICON_COLOR = void 0;
9
+ exports.GEOCODER_LAYER_ID = exports.GEOCODER_DATASET_NAME = exports.SPEED_CONTROL_STEP = exports.SPEED_CONTROL_RANGE = exports.DEFAULT_TIME_FORMAT = exports.ANIMATION_WINDOW = exports.FPS = exports.BASE_SPEED = exports.THROTTLE_NOTIFICATION_TIME = exports.DEFAULT_NOTIFICATION_TOPICS = exports.DEFAULT_NOTIFICATION_TYPES = exports.DEFAULT_NOTIFICATION_MESSAGE = exports.DEFAULT_UUID_COUNT = exports.EXPORT_HTML_MAP_MODE_OPTIONS = exports.EXPORT_MAP_FORMAT_OPTIONS = exports.EXPORT_HTML_MAP_MODES = exports.EXPORT_MAP_FORMATS = exports.EXPORT_DATA_TYPE_OPTIONS = exports.EXPORT_DATA_TYPE = exports.EXPORT_IMG_RESOLUTION_OPTIONS = exports.TwoXResolutionOption = exports.OneXResolutionOption = exports.EXPORT_IMG_RATIO_OPTIONS = exports.SixteenByNineRatioOption = exports.FourByThreeRatioOption = exports.CustomRatioOption = exports.ScreenRatioOption = exports.EXPORT_IMG_RATIOS = exports.RESOLUTIONS = exports.MAX_DEFAULT_TOOLTIPS = exports.LAYER_BLENDINGS = exports.OVERLAY_BLENDINGS = exports.DEFAULT_PICKING_RADIUS = exports.NO_VALUE_COLOR = exports.DEFAULT_TOOLTIP_FIELDS = exports.DEFAULT_LAYER_COLOR = exports.CHANNEL_SCALE_SUPPORTED_FIELDS = exports.FIELD_OPTS = exports.DEFAULT_AGGREGATION = exports.notSupportAggrOpts = exports.notSupportedScaleOpts = exports.ordinalFieldAggrScaleFunctions = exports.ordinalFieldScaleFunctions = exports.linearFieldAggrScaleFunctions = exports.linearFieldScaleFunctions = exports.AGGREGATION_TYPE_OPTIONS = exports.AGGREGATION_TYPES = exports.CHANNEL_SCALES = exports.HIGHLIGH_COLOR_3D = exports.FIELD_COLORS = exports.FIELD_TYPE_DISPLAY = exports.TABLE_OPTION_LIST = exports.TABLE_OPTION = exports.SORT_ORDER = exports.ALL_FIELD_TYPES = exports.SCALE_FUNC = exports.SCALE_TYPES = exports.DEFAULT_FILTER_VIEW_TYPE = exports.FILTER_VIEW_TYPES = exports.FILTER_TYPES = exports.TRIP_ARC_FIELDS = exports.ALTITUDE_FIELDS = exports.TRIP_POINT_FIELDS = exports.ICON_FIELDS = exports.GEOJSON_FIELDS = exports.DEFAULT_MAP_STYLES = exports.NO_BASEMAP_ICON = exports.EMPTY_MAPBOX_STYLE = exports.NO_MAP_ID = exports.BASE_MAP_COLOR_MODES = exports.DEFAULT_LAYER_GROUPS = exports.BACKGROUND_LAYER_GROUP = exports.THREE_D_BUILDING_LAYER_GROUP_SLUG = exports.BACKGROUND_LAYER_GROUP_SLUG = exports.BASE_MAP_BACKGROUND_LAYER_IDS = exports.DEFAULT_BACKGROUND_COLOR = exports.DEFAULT_BLDG_COLOR = exports.PANELS = exports.PANEL_VIEW_TOGGLES = exports.SIDEBAR_PANELS = exports.THEME = exports.DIMENSIONS = exports.KEPLER_GL_WEBSITE = exports.KEPLER_GL_VERSION = exports.KEPLER_GL_NAME = exports.SHARE_MAP_ID = exports.OVERWRITE_MAP_ID = exports.SAVE_MAP_ID = exports.EXPORT_MAP_ID = exports.ADD_MAP_STYLE_ID = exports.EXPORT_DATA_ID = exports.EXPORT_IMAGE_ID = exports.ADD_DATA_ID = exports.DELETE_DATA_ID = exports.DATA_TABLE_ID = exports.TRANSITION_DURATION = exports.DEFAULT_MAPBOX_API_URL = exports.BASEMAP_ICON_PREFIX = exports.KEPLER_UNFOLDED_BUCKET = exports.ACTION_PREFIX = void 0;
10
+ exports.EFFECT_DESCRIPTIONS = exports.POSTPROCESSING_EFFECTS = exports.LIGHT_AND_SHADOW_EFFECT = exports.DEFAULT_LIGHT_AND_SHADOW_PROPS = exports.LIGHT_AND_SHADOW_EFFECT_TIME_MODES = exports.DEFAULT_SHADOW_COLOR = exports.DEFAULT_SHADOW_INTENSITY = exports.DEFAULT_LIGHT_INTENSITY = exports.DEFAULT_LIGHT_COLOR = exports.DEFAULT_POST_PROCESSING_EFFECT_TYPE = exports.DEFAULT_TIMEZONE = exports.dataTestIds = exports.TEXT_OUTLINE_MULTIPLIER = exports.PROJECTED_PIXEL_SIZE_MULTIPLIER = exports.MAP_CONTROLS = exports.DATASET_FORMATS = exports.DEFAULT_FEATURE_FLAGS = exports.LOADING_METHODS = exports.MAP_INFO_CHARACTER = exports.MAP_THUMBNAIL_DIMENSION = exports.MAX_GPU_FILTERS = exports.INIT_FILTER_ITEMS_IN_DROPDOWN = exports.PLOT_TYPES = exports.EDITOR_MODES = exports.EDITOR_LAYER_PICKING_RADIUS = exports.EDITOR_LAYER_ID = exports.GEOCODER_ICON_SIZE = exports.GEOCODER_ICON_COLOR = exports.GEOCODER_GEO_OFFSET = void 0;
31
11
 
32
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
33
13
 
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
34
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
35
17
 
36
18
  var _keymirror = _interopRequireDefault(require("keymirror"));
@@ -152,7 +134,7 @@ var KEPLER_GL_NAME = 'kepler.gl'; // __PACKAGE_VERSION__ is automatically inject
152
134
  // an empty string which will allow us to retrieve the latest umd version
153
135
 
154
136
  exports.KEPLER_GL_NAME = KEPLER_GL_NAME;
155
- var KEPLER_GL_VERSION = "3.0.0-alpha.1";
137
+ var KEPLER_GL_VERSION = "3.0.0-alpha.2";
156
138
  exports.KEPLER_GL_VERSION = KEPLER_GL_VERSION;
157
139
  var KEPLER_GL_WEBSITE = 'http://kepler.gl/';
158
140
  exports.KEPLER_GL_WEBSITE = KEPLER_GL_WEBSITE;
@@ -226,7 +208,7 @@ var PANELS = SIDEBAR_PANELS; // MAP STYLES
226
208
  exports.PANELS = PANELS;
227
209
  var DEFAULT_BLDG_COLOR = '#D1CEC7';
228
210
  exports.DEFAULT_BLDG_COLOR = DEFAULT_BLDG_COLOR;
229
- var DEFAULT_BACKGROUND_COLOR = '#FFFFFF'; // assists in identifying basemap background layers when auto-determining the backgroundColor
211
+ var DEFAULT_BACKGROUND_COLOR = '#000000'; // assists in identifying basemap background layers when auto-determining the backgroundColor
230
212
 
231
213
  exports.DEFAULT_BACKGROUND_COLOR = DEFAULT_BACKGROUND_COLOR;
232
214
  var BASE_MAP_BACKGROUND_LAYER_IDS = ['background', 'bg', 'land', 'water'];
@@ -338,50 +320,59 @@ exports.NO_BASEMAP_ICON = NO_BASEMAP_ICON;
338
320
  var DEFAULT_MAP_STYLES = [{
339
321
  id: NO_MAP_ID,
340
322
  label: 'No Basemap',
341
- url: null,
323
+ url: '',
342
324
  icon: NO_BASEMAP_ICON,
343
325
  layerGroups: [BACKGROUND_LAYER_GROUP],
344
326
  colorMode: BASE_MAP_COLOR_MODES.NONE,
345
327
  style: EMPTY_MAPBOX_STYLE
346
328
  }, {
347
- id: 'dark',
348
- label: 'Dark',
349
- url: 'mapbox://styles/uberdata/cjoqbbf6l9k302sl96tyvka09',
350
- icon: "".concat(BASEMAP_ICON_PREFIX, "/UBER_DARK_V2.png"),
329
+ id: 'dark-matter',
330
+ label: 'DarkMatter',
331
+ url: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
332
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/DARKMATTER.png"),
333
+ layerGroups: DEFAULT_LAYER_GROUPS,
334
+ colorMode: BASE_MAP_COLOR_MODES.DARK,
335
+ complimentaryStyleId: 'positron'
336
+ }, {
337
+ id: 'dark-matter-nolabels',
338
+ label: 'DarkMatterNoLabels',
339
+ url: 'https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json',
340
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/DARKMATTER_NOLABELS.png"),
351
341
  layerGroups: DEFAULT_LAYER_GROUPS,
352
342
  colorMode: BASE_MAP_COLOR_MODES.DARK,
353
- complimentaryStyleId: 'light'
343
+ complimentaryStyleId: 'positron-nolabels'
354
344
  }, {
355
- id: 'light',
356
- label: 'Light',
357
- url: 'mapbox://styles/uberdata/cjoqb9j339k1f2sl9t5ic5bn4',
358
- icon: "".concat(BASEMAP_ICON_PREFIX, "/UBER_LIGHT_V2.png"),
345
+ id: 'positron',
346
+ label: 'Positron',
347
+ url: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json',
348
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/POSITRON.png"),
359
349
  layerGroups: DEFAULT_LAYER_GROUPS,
360
350
  colorMode: BASE_MAP_COLOR_MODES.LIGHT,
361
- complimentaryStyleId: 'dark'
351
+ complimentaryStyleId: 'dark-matter'
362
352
  }, {
363
- id: 'muted',
364
- label: 'Muted Light',
365
- url: 'mapbox://styles/uberdata/cjfyl03kp1tul2smf5v2tbdd4',
366
- icon: "".concat(BASEMAP_ICON_PREFIX, "/UBER_MUTED_LIGHT.png"),
353
+ id: 'positron-nolabels',
354
+ label: 'PositronNoLabels',
355
+ url: 'https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json',
356
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/POSITRON_NOLABELS.png"),
367
357
  layerGroups: DEFAULT_LAYER_GROUPS,
368
358
  colorMode: BASE_MAP_COLOR_MODES.LIGHT,
369
- complimentaryStyleId: 'muted_night'
359
+ complimentaryStyleId: 'dark-matter-nolabels'
370
360
  }, {
371
- id: 'muted_night',
372
- label: 'Muted Night',
373
- url: 'mapbox://styles/uberdata/cjfxhlikmaj1b2soyzevnywgs',
374
- icon: "".concat(BASEMAP_ICON_PREFIX, "/UBER_MUTED_NIGHT.png"),
361
+ id: 'voyager',
362
+ label: 'Voyager',
363
+ url: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
364
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/VOYAGER.png"),
375
365
  layerGroups: DEFAULT_LAYER_GROUPS,
376
- colorMode: BASE_MAP_COLOR_MODES.DARK,
377
- complimentaryStyleId: 'muted'
366
+ colorMode: BASE_MAP_COLOR_MODES.LIGHT,
367
+ complimentaryStyleId: 'dark-matter'
378
368
  }, {
379
- id: 'satellite',
380
- label: 'Satellite',
381
- url: "mapbox://styles/mapbox/satellite-v9",
382
- icon: "".concat(BASEMAP_ICON_PREFIX, "/UBER_SATELLITE.png"),
383
- layerGroups: [],
384
- colorMode: BASE_MAP_COLOR_MODES.NONE
369
+ id: 'voyager-nolabels',
370
+ label: 'VoyagerNoLabels',
371
+ url: 'https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json',
372
+ icon: "".concat(BASEMAP_ICON_PREFIX, "/VOYAGER_NOLABELS.png"),
373
+ layerGroups: DEFAULT_LAYER_GROUPS,
374
+ colorMode: BASE_MAP_COLOR_MODES.LIGHT,
375
+ complimentaryStyleId: 'dark-matter-nolabels'
385
376
  }];
386
377
  exports.DEFAULT_MAP_STYLES = DEFAULT_MAP_STYLES;
387
378
  var GEOJSON_FIELDS = {
@@ -443,7 +434,8 @@ var ALL_FIELD_TYPES = (0, _keymirror["default"])({
443
434
  timestamp: null,
444
435
  point: null,
445
436
  array: null,
446
- object: null
437
+ object: null,
438
+ geoarrow: null
447
439
  }); // Data Table
448
440
 
449
441
  exports.ALL_FIELD_TYPES = ALL_FIELD_TYPES;
@@ -527,6 +519,9 @@ var FIELD_TYPE_DISPLAY = (_FIELD_TYPE_DISPLAY = {}, (0, _defineProperty2["defaul
527
519
  }), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.geojson, {
528
520
  label: 'geo',
529
521
  color: BLUE2
522
+ }), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.geoarrow, {
523
+ label: 'geo',
524
+ color: BLUE2
530
525
  }), (0, _defineProperty2["default"])(_FIELD_TYPE_DISPLAY, ALL_FIELD_TYPES.integer, {
531
526
  label: 'int',
532
527
  color: YELLOW
@@ -577,9 +572,20 @@ var AGGREGATION_TYPES = {
577
572
  variance: 'variance',
578
573
  // ordinal
579
574
  mode: 'mode',
580
- countUnique: 'count unique'
575
+ countUnique: 'countUnique'
581
576
  };
582
577
  exports.AGGREGATION_TYPES = AGGREGATION_TYPES;
578
+ var AGGREGATION_TYPE_OPTIONS = Object.entries(AGGREGATION_TYPES).map(function (_ref7) {
579
+ var _ref8 = (0, _slicedToArray2["default"])(_ref7, 2),
580
+ key = _ref8[0],
581
+ value = _ref8[1];
582
+
583
+ return {
584
+ id: key,
585
+ label: key === 'stdev' ? 'Std Deviation' : key === 'countUnique' ? 'Count Unique' : typeof value === 'string' ? value.charAt(0).toUpperCase() + value.slice(1) : value
586
+ };
587
+ });
588
+ exports.AGGREGATION_TYPE_OPTIONS = AGGREGATION_TYPE_OPTIONS;
583
589
  var linearFieldScaleFunctions = (_linearFieldScaleFunc = {}, (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.color, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.radius, [SCALE_TYPES.sqrt]), (0, _defineProperty2["default"])(_linearFieldScaleFunc, CHANNEL_SCALES.size, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), _linearFieldScaleFunc);
584
590
  exports.linearFieldScaleFunctions = linearFieldScaleFunctions;
585
591
  var linearFieldAggrScaleFunctions = (_linearFieldAggrScale = {}, (0, _defineProperty2["default"])(_linearFieldAggrScale, CHANNEL_SCALES.colorAggr, (_CHANNEL_SCALES$color = {}, (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.average, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.maximum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.minimum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.median, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.stdev, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.sum, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$color, AGGREGATION_TYPES.variance, [SCALE_TYPES.quantize, SCALE_TYPES.quantile]), _CHANNEL_SCALES$color)), (0, _defineProperty2["default"])(_linearFieldAggrScale, CHANNEL_SCALES.sizeAggr, (_CHANNEL_SCALES$sizeA = {}, (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.average, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.maximum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.minimum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.median, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.stdev, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.sum, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), (0, _defineProperty2["default"])(_CHANNEL_SCALES$sizeA, AGGREGATION_TYPES.variance, [SCALE_TYPES.linear, SCALE_TYPES.sqrt, SCALE_TYPES.log]), _CHANNEL_SCALES$sizeA)), _linearFieldAggrScale);
@@ -665,6 +671,15 @@ var FIELD_OPTS = (_FIELD_OPTS = {}, (0, _defineProperty2["default"])(_FIELD_OPTS
665
671
  },
666
672
  tooltip: []
667
673
  }
674
+ }), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.geoarrow, {
675
+ type: 'geometry',
676
+ scale: _objectSpread(_objectSpread({}, notSupportedScaleOpts), notSupportAggrOpts),
677
+ format: {
678
+ legend: function legend(d) {
679
+ return '...';
680
+ },
681
+ tooltip: []
682
+ }
668
683
  }), (0, _defineProperty2["default"])(_FIELD_OPTS, ALL_FIELD_TYPES.object, {
669
684
  type: 'numerical',
670
685
  scale: {},
@@ -1016,7 +1031,8 @@ var DATASET_FORMATS = (0, _keymirror["default"])({
1016
1031
  row: null,
1017
1032
  geojson: null,
1018
1033
  csv: null,
1019
- keplergl: null
1034
+ keplergl: null,
1035
+ arrow: null
1020
1036
  });
1021
1037
  exports.DATASET_FORMATS = DATASET_FORMATS;
1022
1038
  var MAP_CONTROLS = (0, _keymirror["default"])({
@@ -1055,12 +1071,19 @@ var dataTestIds = {
1055
1071
  removeLayerAction: 'remove-layer-action',
1056
1072
  layerPanel: 'layer-panel',
1057
1073
  sortableEffectItem: 'sortable-effect-item',
1058
- staticEffectItem: 'static-effect-item'
1074
+ staticEffectItem: 'static-effect-item',
1075
+ providerLoading: 'provider-loading',
1076
+ providerMapInfoPanel: 'provider-map-info-panel',
1077
+ providerSelect: 'provider-select',
1078
+ cloudHeader: 'cloud-header',
1079
+ providerShareMap: 'provider-share-map'
1059
1080
  }; // Effects
1060
1081
 
1061
1082
  exports.dataTestIds = dataTestIds;
1062
- var DEFAULT_EFFECT_TYPE = 'ink';
1063
- exports.DEFAULT_EFFECT_TYPE = DEFAULT_EFFECT_TYPE;
1083
+ var DEFAULT_TIMEZONE = 'UTC';
1084
+ exports.DEFAULT_TIMEZONE = DEFAULT_TIMEZONE;
1085
+ var DEFAULT_POST_PROCESSING_EFFECT_TYPE = 'ink';
1086
+ exports.DEFAULT_POST_PROCESSING_EFFECT_TYPE = DEFAULT_POST_PROCESSING_EFFECT_TYPE;
1064
1087
  var DEFAULT_LIGHT_COLOR = [255, 255, 255];
1065
1088
  exports.DEFAULT_LIGHT_COLOR = DEFAULT_LIGHT_COLOR;
1066
1089
  var DEFAULT_LIGHT_INTENSITY = 1;
@@ -1069,14 +1092,15 @@ var DEFAULT_SHADOW_INTENSITY = 0.5;
1069
1092
  exports.DEFAULT_SHADOW_INTENSITY = DEFAULT_SHADOW_INTENSITY;
1070
1093
  var DEFAULT_SHADOW_COLOR = [0, 0, 0];
1071
1094
  exports.DEFAULT_SHADOW_COLOR = DEFAULT_SHADOW_COLOR;
1072
- var LIGHT_AND_SHADOW_EFFECT = {
1073
- type: 'lightAndShadow',
1074
- name: 'Light & Shadow'
1095
+ var LIGHT_AND_SHADOW_EFFECT_TIME_MODES = {
1096
+ pick: 'pick',
1097
+ current: 'current',
1098
+ animation: 'animation'
1075
1099
  };
1076
- exports.LIGHT_AND_SHADOW_EFFECT = LIGHT_AND_SHADOW_EFFECT;
1100
+ exports.LIGHT_AND_SHADOW_EFFECT_TIME_MODES = LIGHT_AND_SHADOW_EFFECT_TIME_MODES;
1077
1101
  var DEFAULT_LIGHT_AND_SHADOW_PROPS = {
1078
1102
  timestamp: Date.now(),
1079
- useCurrentTime: false,
1103
+ timeMode: LIGHT_AND_SHADOW_EFFECT_TIME_MODES.pick,
1080
1104
  shadowIntensity: DEFAULT_SHADOW_INTENSITY,
1081
1105
  shadowColor: [].concat(DEFAULT_SHADOW_COLOR),
1082
1106
  sunLightColor: [].concat(DEFAULT_LIGHT_COLOR),
@@ -1085,71 +1109,272 @@ var DEFAULT_LIGHT_AND_SHADOW_PROPS = {
1085
1109
  ambientLightIntensity: DEFAULT_LIGHT_INTENSITY
1086
1110
  };
1087
1111
  exports.DEFAULT_LIGHT_AND_SHADOW_PROPS = DEFAULT_LIGHT_AND_SHADOW_PROPS;
1112
+ var LIGHT_AND_SHADOW_EFFECT = {
1113
+ type: 'lightAndShadow',
1114
+ name: 'Light & Shadow',
1115
+ parameters: [{
1116
+ name: 'timestamp',
1117
+ min: 0,
1118
+ max: Number.MAX_SAFE_INTEGER
1119
+ }, {
1120
+ name: 'shadowIntensity',
1121
+ min: 0,
1122
+ max: 1,
1123
+ defaultValue: DEFAULT_SHADOW_INTENSITY
1124
+ }, {
1125
+ name: 'sunLightIntensity',
1126
+ min: 0,
1127
+ max: 1,
1128
+ defaultValue: DEFAULT_LIGHT_INTENSITY
1129
+ }, {
1130
+ name: 'ambientLightIntensity',
1131
+ min: 0,
1132
+ max: 1,
1133
+ defaultValue: DEFAULT_LIGHT_INTENSITY
1134
+ }, {
1135
+ name: 'shadowColor',
1136
+ type: 'color',
1137
+ min: 0,
1138
+ max: 255,
1139
+ defaultValue: DEFAULT_SHADOW_COLOR
1140
+ }, {
1141
+ name: 'sunLightColor',
1142
+ type: 'color',
1143
+ min: 0,
1144
+ max: 255,
1145
+ defaultValue: DEFAULT_LIGHT_COLOR
1146
+ }, {
1147
+ name: 'ambientLightColor',
1148
+ type: 'color',
1149
+ min: 0,
1150
+ max: 255,
1151
+ defaultValue: DEFAULT_LIGHT_COLOR
1152
+ }]
1153
+ };
1154
+ exports.LIGHT_AND_SHADOW_EFFECT = LIGHT_AND_SHADOW_EFFECT;
1088
1155
  var POSTPROCESSING_EFFECTS = {
1089
1156
  ink: {
1090
1157
  type: 'ink',
1091
- name: 'Ink'
1158
+ name: 'Ink',
1159
+ parameters: [{
1160
+ name: 'strength',
1161
+ min: 0,
1162
+ max: 1
1163
+ }]
1092
1164
  },
1093
1165
  brightnessContrast: {
1094
1166
  type: 'brightnessContrast',
1095
- name: 'Brightness & Contrast'
1167
+ name: 'Brightness & Contrast',
1168
+ parameters: [{
1169
+ name: 'brightness',
1170
+ min: -1,
1171
+ max: 1
1172
+ }, {
1173
+ name: 'contrast',
1174
+ min: -1,
1175
+ max: 1
1176
+ }]
1096
1177
  },
1097
1178
  hueSaturation: {
1098
1179
  type: 'hueSaturation',
1099
- name: 'Hue & Saturation'
1180
+ name: 'Hue & Saturation',
1181
+ parameters: [{
1182
+ name: 'hue',
1183
+ min: -1,
1184
+ max: 1
1185
+ }, {
1186
+ name: 'saturation',
1187
+ defaultValue: 0.25,
1188
+ min: -1,
1189
+ max: 1
1190
+ }]
1100
1191
  },
1101
1192
  vibrance: {
1102
1193
  type: 'vibrance',
1103
- name: 'Vibrance'
1194
+ name: 'Vibrance',
1195
+ parameters: [{
1196
+ name: 'amount',
1197
+ defaultValue: 0.5,
1198
+ min: -1,
1199
+ max: 1
1200
+ }]
1104
1201
  },
1105
1202
  sepia: {
1106
1203
  type: 'sepia',
1107
- name: 'Sepia'
1204
+ name: 'Sepia',
1205
+ parameters: [{
1206
+ name: 'amount',
1207
+ min: 0,
1208
+ max: 1
1209
+ }]
1108
1210
  },
1109
1211
  dotScreen: {
1110
1212
  type: 'dotScreen',
1111
- name: 'Dot Screen'
1213
+ name: 'Dot Screen',
1214
+ parameters: [{
1215
+ name: 'angle',
1216
+ min: 0,
1217
+ max: Math.PI / 2
1218
+ }, {
1219
+ name: 'size',
1220
+ min: 1,
1221
+ max: 20
1222
+ }, {
1223
+ name: 'center',
1224
+ type: 'array',
1225
+ label: ['Center X', 'Center Y'],
1226
+ defaultValue: [0.5, 0.5],
1227
+ min: 0,
1228
+ max: 1
1229
+ }]
1112
1230
  },
1113
1231
  colorHalftone: {
1114
1232
  type: 'colorHalftone',
1115
- name: 'Color Halftone'
1233
+ name: 'Color Halftone',
1234
+ parameters: [{
1235
+ name: 'angle',
1236
+ min: 0,
1237
+ max: Math.PI / 2
1238
+ }, {
1239
+ name: 'size',
1240
+ min: 1,
1241
+ max: 20
1242
+ }, {
1243
+ name: 'center',
1244
+ type: 'array',
1245
+ label: ['Center X', 'Center Y'],
1246
+ defaultValue: [0.5, 0.5],
1247
+ min: 0,
1248
+ max: 1
1249
+ }]
1116
1250
  },
1117
1251
  noise: {
1118
1252
  type: 'noise',
1119
- name: 'Noise'
1253
+ name: 'Noise',
1254
+ parameters: [{
1255
+ name: 'amount',
1256
+ min: 0,
1257
+ max: 1
1258
+ }]
1120
1259
  },
1121
1260
  triangleBlur: {
1122
1261
  type: 'triangleBlur',
1123
- name: 'Blur (Triangle)'
1262
+ name: 'Blur (Triangle)',
1263
+ parameters: [{
1264
+ name: 'radius',
1265
+ min: 0,
1266
+ max: 100
1267
+ }]
1124
1268
  },
1125
1269
  zoomBlur: {
1126
1270
  type: 'zoomBlur',
1127
- name: 'Blur (Zoom)'
1271
+ name: 'Blur (Zoom)',
1272
+ parameters: [{
1273
+ name: 'strength',
1274
+ defaultValue: 0.05,
1275
+ min: 0,
1276
+ max: 1
1277
+ }, {
1278
+ name: 'center',
1279
+ type: 'array',
1280
+ label: ['Center X', 'Center Y'],
1281
+ defaultValue: [0.5, 0.5],
1282
+ min: 0,
1283
+ max: 1
1284
+ }]
1128
1285
  },
1129
1286
  tiltShift: {
1130
1287
  type: 'tiltShift',
1131
- name: 'Blur (Tilt Shift)'
1288
+ name: 'Blur (Tilt Shift)',
1289
+ parameters: [{
1290
+ name: 'blurRadius',
1291
+ label: 'Blur',
1292
+ min: 0,
1293
+ max: 50
1294
+ }, {
1295
+ name: 'gradientRadius',
1296
+ label: 'Gradient',
1297
+ min: 0,
1298
+ max: 400
1299
+ }, {
1300
+ name: 'start',
1301
+ type: 'array',
1302
+ label: ['Start', false],
1303
+ defaultValue: [0.0, 0.0],
1304
+ min: 0,
1305
+ max: 1
1306
+ }, {
1307
+ name: 'end',
1308
+ type: 'array',
1309
+ label: ['End', false],
1310
+ defaultValue: [1, 1],
1311
+ min: 0,
1312
+ max: 1
1313
+ }]
1132
1314
  },
1133
1315
  edgeWork: {
1134
1316
  type: 'edgeWork',
1135
- name: 'Edge work'
1317
+ name: 'Edge work',
1318
+ parameters: [{
1319
+ name: 'radius',
1320
+ min: 1,
1321
+ max: 50
1322
+ }]
1136
1323
  },
1137
1324
  vignette: {
1138
1325
  type: 'vignette',
1139
- name: 'Vignette'
1326
+ name: 'Vignette',
1327
+ parameters: [{
1328
+ name: 'amount',
1329
+ min: 0,
1330
+ max: 1
1331
+ }, {
1332
+ name: 'radius',
1333
+ min: 0,
1334
+ max: 1
1335
+ }]
1140
1336
  },
1141
1337
  magnify: {
1142
1338
  type: 'magnify',
1143
- name: 'Magnify'
1339
+ name: 'Magnify',
1340
+ parameters: [{
1341
+ name: 'screenXY',
1342
+ type: 'array',
1343
+ label: ['Position X', 'Position Y'],
1344
+ defaultValue: [0.5, 0.5],
1345
+ min: 0,
1346
+ max: 1
1347
+ }, {
1348
+ name: 'radiusPixels',
1349
+ label: 'Size',
1350
+ min: 10,
1351
+ max: 500
1352
+ }, {
1353
+ name: 'zoom',
1354
+ min: 0.5,
1355
+ max: 50
1356
+ }, {
1357
+ name: 'borderWidthPixels',
1358
+ label: 'Border Width',
1359
+ defaultValue: 3,
1360
+ min: 0,
1361
+ max: 50
1362
+ }]
1144
1363
  },
1145
1364
  hexagonalPixelate: {
1146
1365
  type: 'hexagonalPixelate',
1147
- name: 'Hexagonal Pixelate'
1366
+ name: 'Hexagonal Pixelate',
1367
+ parameters: [{
1368
+ name: 'scale',
1369
+ defaultValue: 20,
1370
+ min: 1,
1371
+ max: 50
1372
+ }]
1148
1373
  }
1149
1374
  };
1150
1375
  exports.POSTPROCESSING_EFFECTS = POSTPROCESSING_EFFECTS;
1151
- var EFFECT_DESCS = [LIGHT_AND_SHADOW_EFFECT].concat((0, _toConsumableArray2["default"])(Object.keys(POSTPROCESSING_EFFECTS).map(function (keyName) {
1376
+ var EFFECT_DESCRIPTIONS = [LIGHT_AND_SHADOW_EFFECT].concat((0, _toConsumableArray2["default"])(Object.keys(POSTPROCESSING_EFFECTS).map(function (keyName) {
1152
1377
  return POSTPROCESSING_EFFECTS[keyName];
1153
1378
  })));
1154
- exports.EFFECT_DESCS = EFFECT_DESCS;
1155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0LXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbIkFDVElPTl9QUkVGSVgiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwiQkFTRU1BUF9JQ09OX1BSRUZJWCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiREFUQV9UQUJMRV9JRCIsIkRFTEVURV9EQVRBX0lEIiwiQUREX0RBVEFfSUQiLCJFWFBPUlRfSU1BR0VfSUQiLCJFWFBPUlRfREFUQV9JRCIsIkFERF9NQVBfU1RZTEVfSUQiLCJFWFBPUlRfTUFQX0lEIiwiU0FWRV9NQVBfSUQiLCJPVkVSV1JJVEVfTUFQX0lEIiwiU0hBUkVfTUFQX0lEIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIktFUExFUl9HTF9XRUJTSVRFIiwiRElNRU5TSU9OUyIsInNpZGVQYW5lbCIsIndpZHRoIiwibWFyZ2luIiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwiaGVhZGVySGVpZ2h0IiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJtYXBMZWdlbmQiLCJwaW5uZWQiLCJUSEVNRSIsImxpZ2h0IiwiZGFyayIsImJhc2UiLCJTSURFQkFSX1BBTkVMUyIsImlkIiwibGFiZWwiLCJvbkNsaWNrIiwiUEFORUxfVklFV19UT0dHTEVTIiwibGlzdCIsImJ5RGF0YXNldCIsIlBBTkVMUyIsIkRFRkFVTFRfQkxER19DT0xPUiIsIkRFRkFVTFRfQkFDS0dST1VORF9DT0xPUiIsIkJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUF9TTFVHIiwiVEhSRUVfRF9CVUlMRElOR19MQVlFUl9HUk9VUF9TTFVHIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUCIsInNsdWciLCJmaWx0ZXIiLCJkZWZhdWx0VmlzaWJpbGl0eSIsImlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZSIsImlzTW92ZVRvVG9wQXZhaWxhYmxlIiwiaXNDb2xvclBpY2tlckF2YWlsYWJsZSIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwibWF0Y2giLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIk5PTkUiLCJEQVJLIiwiTElHSFQiLCJOT19NQVBfSUQiLCJFTVBUWV9NQVBCT1hfU1RZTEUiLCJ2ZXJzaW9uIiwic291cmNlcyIsImxheWVycyIsIk5PX0JBU0VNQVBfSUNPTiIsIkRFRkFVTFRfTUFQX1NUWUxFUyIsInVybCIsImljb24iLCJsYXllckdyb3VwcyIsImNvbG9yTW9kZSIsInN0eWxlIiwiY29tcGxpbWVudGFyeVN0eWxlSWQiLCJHRU9KU09OX0ZJRUxEUyIsImdlb2pzb24iLCJJQ09OX0ZJRUxEUyIsIlRSSVBfUE9JTlRfRklFTERTIiwiQUxUSVRVREVfRklFTERTIiwiVFJJUF9BUkNfRklFTERTIiwibGF0MCIsImxuZzAiLCJsYXQxIiwibG5nMSIsIkZJTFRFUl9UWVBFUyIsInJhbmdlIiwic2VsZWN0IiwiaW5wdXQiLCJ0aW1lUmFuZ2UiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJGSUxURVJfVklFV19UWVBFUyIsInNpZGUiLCJlbmxhcmdlZCIsIm1pbmlmaWVkIiwiREVGQVVMVF9GSUxURVJfVklFV19UWVBFIiwiU0NBTEVfVFlQRVMiLCJvcmRpbmFsIiwicXVhbnRpbGUiLCJxdWFudGl6ZSIsImxpbmVhciIsInNxcnQiLCJsb2ciLCJwb2ludCIsIlNDQUxFX0ZVTkMiLCJzY2FsZUxpbmVhciIsInNjYWxlUXVhbnRpemUiLCJzY2FsZVF1YW50aWxlIiwic2NhbGVPcmRpbmFsIiwic2NhbGVTcXJ0Iiwic2NhbGVMb2ciLCJzY2FsZVBvaW50IiwiQUxMX0ZJRUxEX1RZUEVTIiwiZGF0ZSIsImludGVnZXIiLCJyZWFsIiwic3RyaW5nIiwidGltZXN0YW1wIiwiYXJyYXkiLCJvYmplY3QiLCJTT1JUX09SREVSIiwiQVNDRU5ESU5HIiwiREVTQ0VORElORyIsIlVOU09SVCIsIlRBQkxFX09QVElPTiIsIlNPUlRfQVNDIiwiU09SVF9ERVMiLCJQSU4iLCJVTlBJTiIsIkNPUFkiLCJGT1JNQVRfQ09MVU1OIiwiVEFCTEVfT1BUSU9OX0xJU1QiLCJ2YWx1ZSIsImRpc3BsYXkiLCJjb25kaXRpb24iLCJwcm9wcyIsInNvcnRNb2RlIiwiaXNTb3J0ZWQiLCJpc1Bpbm5lZCIsIllFTExPVyIsIlBJTksiLCJQVVJQTEUiLCJCTFVFIiwiQkxVRTIiLCJCTFVFMyIsIkdSRUVOIiwiR1JFRU4yIiwiUkVEIiwiT1JBTkdFIiwiRklFTERfVFlQRV9ESVNQTEFZIiwiY29sb3IiLCJGSUVMRF9DT0xPUlMiLCJISUdITElHSF9DT0xPUl8zRCIsIkNIQU5ORUxfU0NBTEVTIiwicmFkaXVzIiwic2l6ZSIsImNvbG9yQWdnciIsInNpemVBZ2dyIiwiQUdHUkVHQVRJT05fVFlQRVMiLCJjb3VudCIsImF2ZXJhZ2UiLCJtYXhpbXVtIiwibWluaW11bSIsIm1lZGlhbiIsInN0ZGV2Iiwic3VtIiwidmFyaWFuY2UiLCJtb2RlIiwiY291bnRVbmlxdWUiLCJsaW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zIiwibGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMiLCJvcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyIsIm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyIsIm5vdFN1cHBvcnRlZFNjYWxlT3B0cyIsIm5vdFN1cHBvcnRBZ2dyT3B0cyIsIkRFRkFVTFRfQUdHUkVHQVRJT04iLCJGSUVMRF9PUFRTIiwidHlwZSIsInNjYWxlIiwiZm9ybWF0IiwibGVnZW5kIiwiZCIsInRvb2x0aXAiLCJUT09MVElQX0ZPUk1BVF9UWVBFUyIsIkRFQ0lNQUwiLCJQRVJDRU5UQUdFIiwiREFURSIsIkRBVEVfVElNRSIsIkJPT0xFQU4iLCJDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFMiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwiYWNjdSIsImtleSIsImZ0IiwibGVuZ3RoIiwiREVGQVVMVF9MQVlFUl9DT0xPUiIsInRyaXBBcmMiLCJiZWdpbnRyaXBfbGF0IiwiZHJvcG9mZl9sYXQiLCJyZXF1ZXN0X2xhdCIsIkRFRkFVTFRfVE9PTFRJUF9GSUVMRFMiLCJOT19WQUxVRV9DT0xPUiIsIkRFRkFVTFRfUElDS0lOR19SQURJVVMiLCJPVkVSTEFZX0JMRU5ESU5HUyIsIm5vcm1hbCIsInNjcmVlbiIsImRhcmtlbiIsIkxBWUVSX0JMRU5ESU5HUyIsImFkZGl0aXZlIiwiYmxlbmRGdW5jIiwiYmxlbmRFcXVhdGlvbiIsInN1YnRyYWN0aXZlIiwiTUFYX0RFRkFVTFRfVE9PTFRJUFMiLCJSRVNPTFVUSU9OUyIsIk9ORV9YIiwiVFdPX1giLCJFWFBPUlRfSU1HX1JBVElPUyIsIlNDUkVFTiIsIkZPVVJfQllfVEhSRUUiLCJTSVhURUVOX0JZX05JTkUiLCJDVVNUT00iLCJTY3JlZW5SYXRpb09wdGlvbiIsImdldFNpemUiLCJzY3JlZW5XIiwic2NyZWVuSCIsImhlaWdodCIsIkN1c3RvbVJhdGlvT3B0aW9uIiwiaGlkZGVuIiwibWFwVyIsIm1hcEgiLCJGb3VyQnlUaHJlZVJhdGlvT3B0aW9uIiwiTWF0aCIsInJvdW5kIiwiU2l4dGVlbkJ5TmluZVJhdGlvT3B0aW9uIiwiRVhQT1JUX0lNR19SQVRJT19PUFRJT05TIiwiT25lWFJlc29sdXRpb25PcHRpb24iLCJhdmFpbGFibGUiLCJUd29YUmVzb2x1dGlvbk9wdGlvbiIsIkVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TIiwiRVhQT1JUX0RBVEFfVFlQRSIsIkNTViIsIkVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyIsInRvTG93ZXJDYXNlIiwiRVhQT1JUX01BUF9GT1JNQVRTIiwiSFRNTCIsIkpTT04iLCJFWFBPUlRfSFRNTF9NQVBfTU9ERVMiLCJSRUFEIiwiRURJVCIsIkVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMiLCJlbnRyaWVzIiwibWFwIiwiZW50cnkiLCJnZXRIVE1MTWFwTW9kZVRpbGVVcmwiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwiREVGQVVMVF9VVUlEX0NPVU5UIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUVTU0FHRSIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTIiwiaW5mbyIsImVycm9yIiwid2FybmluZyIsInN1Y2Nlc3MiLCJERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MiLCJnbG9iYWwiLCJmaWxlIiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJCQVNFX1NQRUVEIiwiRlBTIiwiQU5JTUFUSU9OX1dJTkRPVyIsImZyZWUiLCJpbmNyZW1lbnRhbCIsImludGVydmFsIiwiREVGQVVMVF9USU1FX0ZPUk1BVCIsIlNQRUVEX0NPTlRST0xfUkFOR0UiLCJTUEVFRF9DT05UUk9MX1NURVAiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsIkdFT0NPREVSX0dFT19PRkZTRVQiLCJHRU9DT0RFUl9JQ09OX0NPTE9SIiwiR0VPQ09ERVJfSUNPTl9TSVpFIiwiRURJVE9SX0xBWUVSX0lEIiwiRURJVE9SX0xBWUVSX1BJQ0tJTkdfUkFESVVTIiwiRURJVE9SX01PREVTIiwiRFJBV19QT0xZR09OIiwiRFJBV19SRUNUQU5HTEUiLCJQTE9UX1RZUEVTIiwiaGlzdG9ncmFtIiwibGluZUNoYXJ0IiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJNQVhfR1BVX0ZJTFRFUlMiLCJNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiIsIk1BUF9JTkZPX0NIQVJBQ1RFUiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJMT0FESU5HX01FVEhPRFMiLCJ1cGxvYWQiLCJzdG9yYWdlIiwiREVGQVVMVF9GRUFUVVJFX0ZMQUdTIiwiREFUQVNFVF9GT1JNQVRTIiwicm93IiwiY3N2Iiwia2VwbGVyZ2wiLCJNQVBfQ09OVFJPTFMiLCJ2aXNpYmxlTGF5ZXJzIiwidG9nZ2xlM2QiLCJzcGxpdE1hcCIsIm1hcERyYXciLCJtYXBMb2NhbGUiLCJlZmZlY3QiLCJQUk9KRUNURURfUElYRUxfU0laRV9NVUxUSVBMSUVSIiwiVEVYVF9PVVRMSU5FX01VTFRJUExJRVIiLCJkYXRhVGVzdElkcyIsImluZm9JY29uIiwid2FybmluZ0ljb24iLCJlcnJvckljb24iLCJzdWNjZXNzSWNvbiIsImNoZWNrbWFya0ljb24iLCJzb3J0YWJsZUxheWVySXRlbSIsInN0YXRpY0xheWVySXRlbSIsImxheWVyVGl0bGVFZGl0b3IiLCJyZW1vdmVMYXllckFjdGlvbiIsImxheWVyUGFuZWwiLCJzb3J0YWJsZUVmZmVjdEl0ZW0iLCJzdGF0aWNFZmZlY3RJdGVtIiwiREVGQVVMVF9FRkZFQ1RfVFlQRSIsIkRFRkFVTFRfTElHSFRfQ09MT1IiLCJERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSIsIkRFRkFVTFRfU0hBRE9XX0lOVEVOU0lUWSIsIkRFRkFVTFRfU0hBRE9XX0NPTE9SIiwiTElHSFRfQU5EX1NIQURPV19FRkZFQ1QiLCJuYW1lIiwiREVGQVVMVF9MSUdIVF9BTkRfU0hBRE9XX1BST1BTIiwiRGF0ZSIsIm5vdyIsInVzZUN1cnJlbnRUaW1lIiwic2hhZG93SW50ZW5zaXR5Iiwic2hhZG93Q29sb3IiLCJzdW5MaWdodENvbG9yIiwic3VuTGlnaHRJbnRlbnNpdHkiLCJhbWJpZW50TGlnaHRDb2xvciIsImFtYmllbnRMaWdodEludGVuc2l0eSIsIlBPU1RQUk9DRVNTSU5HX0VGRkVDVFMiLCJpbmsiLCJicmlnaHRuZXNzQ29udHJhc3QiLCJodWVTYXR1cmF0aW9uIiwidmlicmFuY2UiLCJzZXBpYSIsImRvdFNjcmVlbiIsImNvbG9ySGFsZnRvbmUiLCJub2lzZSIsInRyaWFuZ2xlQmx1ciIsInpvb21CbHVyIiwidGlsdFNoaWZ0IiwiZWRnZVdvcmsiLCJ2aWduZXR0ZSIsIm1hZ25pZnkiLCJoZXhhZ29uYWxQaXhlbGF0ZSIsIkVGRkVDVF9ERVNDUyIsImtleU5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFFQTs7QUFTQTs7Ozs7Ozs7QUFHTyxJQUFNQSxhQUFhLEdBQUcsY0FBdEI7O0FBQ0EsSUFBTUMsc0JBQXNCLEdBQUcsNERBQS9COztBQUNBLElB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V0FERztBQUVUMkosSUFBQUEsSUFBSSxFQUFFO0FBRkcsR0F6Q3dFO0FBNkNuRnVCLEVBQUFBLFFBQVEsRUFBRTtBQUNSbEwsSUFBQUEsSUFBSSxFQUFFLFVBREU7QUFFUjJKLElBQUFBLElBQUksRUFBRTtBQUZFLEdBN0N5RTtBQWlEbkZ3QixFQUFBQSxRQUFRLEVBQUU7QUFDUm5MLElBQUFBLElBQUksRUFBRSxVQURFO0FBRVIySixJQUFBQSxJQUFJLEVBQUU7QUFGRSxHQWpEeUU7QUFxRG5GeUIsRUFBQUEsT0FBTyxFQUFFO0FBQ1BwTCxJQUFBQSxJQUFJLEVBQUUsU0FEQztBQUVQMkosSUFBQUEsSUFBSSxFQUFFO0FBRkMsR0FyRDBFO0FBeURuRjBCLEVBQUFBLGlCQUFpQixFQUFFO0FBQ2pCckwsSUFBQUEsSUFBSSxFQUFFLG1CQURXO0FBRWpCMkosSUFBQUEsSUFBSSxFQUFFO0FBRlc7QUF6RGdFLENBQTlFOztBQStEQSxJQUFNMkIsWUFBNEMsSUFDdkQ1Qix1QkFEdUQsNkNBRXBEN0ksTUFBTSxDQUFDQyxJQUFQLENBQVl3SixzQkFBWixFQUFvQzFGLEdBQXBDLENBQXdDLFVBQUEyRyxPQUFPO0FBQUEsU0FBSWpCLHNCQUFzQixDQUFDaUIsT0FBRCxDQUExQjtBQUFBLENBQS9DLENBRm9ELEVBQWxEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IGtleU1pcnJvciBmcm9tICdrZXltaXJyb3InO1xuXG5pbXBvcnQge1xuICBzY2FsZUxpbmVhcixcbiAgc2NhbGVRdWFudGl6ZSxcbiAgc2NhbGVRdWFudGlsZSxcbiAgc2NhbGVPcmRpbmFsLFxuICBzY2FsZVNxcnQsXG4gIHNjYWxlTG9nLFxuICBzY2FsZVBvaW50XG59IGZyb20gJ2QzLXNjYWxlJztcbmltcG9ydCB7VE9PTFRJUF9GT1JNQVRfVFlQRVN9IGZyb20gJy4vdG9vbHRpcCc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBQ1RJT05fUFJFRklYID0gJ0BAa2VwbGVyLmdsLyc7XG5leHBvcnQgY29uc3QgS0VQTEVSX1VORk9MREVEX0JVQ0tFVCA9ICdodHRwczovL3N0dWRpby1wdWJsaWMtZGF0YS5mb3Vyc3F1YXJlLmNvbS9zdGF0aWNzL2tlcGxlcmdsJztcbmV4cG9ydCBjb25zdCBCQVNFTUFQX0lDT05fUFJFRklYID0gYCR7S0VQTEVSX1VORk9MREVEX0JVQ0tFVH0vZ2VvZHVkZWA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCA9ICdodHRwczovL2FwaS5tYXBib3guY29tJztcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0RVUkFUSU9OID0gMDtcblxuLy8gTW9kYWwgSWRzXG4vKipcbiAqIE1vZGFsIGlkOiBkYXRhIHRhYmxlXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX1RBQkxFX0lEID0gJ2RhdGFUYWJsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBkZWxldGUgZGF0YXNldCBjb25maXJtIGRpYWxvZ1xuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVMRVRFX0RBVEFfSUQgPSAnZGVsZXRlRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX0RBVEFfSUQgPSAnYWRkRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgaW1hZ2UgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUFHRV9JRCA9ICdleHBvcnRJbWFnZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfSUQgPSAnZXhwb3J0RGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgY3VzdG9tIG1hcCBzdHlsZSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX01BUF9TVFlMRV9JRCA9ICdhZGRNYXBTdHlsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgbWFwIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFQX0lEID0gJ2V4cG9ydE1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBzYXZlIG1hcCBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgU0FWRV9NQVBfSUQgPSAnc2F2ZU1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBjb25maXJtIHRvIG92ZXJ3cml0ZSBzYXZlZCBtYXBcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE9WRVJXUklURV9NQVBfSUQgPSAnb3ZlcndyaXRlTWFwJztcbi8qKlxuICogTW9kYWwgaWQ6IHNoYXJlIG1hcCB1cmwgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFNIQVJFX01BUF9JRCA9ICdzaGFyZU1hcCc7XG5cbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfTkFNRSA9ICdrZXBsZXIuZ2wnO1xuXG4vLyBfX1BBQ0tBR0VfVkVSU0lPTl9fIGlzIGF1dG9tYXRpY2FsbHkgaW5qZWN0ZWQgYnkgQmFiZWwvV2VicGFjayBkdXJpbmcgdGhlIGJ1aWxkaW5nIHByb2Nlc3Ncbi8vIFNpbmNlIHdlIGFyZSBpbmplY3RpbmcgdGhpcyBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3Mgd2l0aCBiYWJlbFxuLy8gd2hpbGUgZGV2ZWxvcGluZyBWRVJTSU9OIGlzIG5vdCBkZWZpbmVkLCB3ZSBjYXB0dXJlIHRoZSBleGNlcHRpb24gYW5kIHJldHVyblxuLy8gYW4gZW1wdHkgc3RyaW5nIHdoaWNoIHdpbGwgYWxsb3cgdXMgdG8gcmV0cmlldmUgdGhlIGxhdGVzdCB1bWQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9WRVJTSU9OID0gJ19fUEFDS0FHRV9WRVJTSU9OX18nO1xuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9XRUJTSVRFID0gJ2h0dHA6Ly9rZXBsZXIuZ2wvJztcblxuZXhwb3J0IGNvbnN0IERJTUVOU0lPTlMgPSB7XG4gIHNpZGVQYW5lbDoge1xuICAgIHdpZHRoOiAzMDAsXG4gICAgbWFyZ2luOiB7dG9wOiAyMCwgbGVmdDogMjAsIGJvdHRvbTogMzAsIHJpZ2h0OiAyMH0sXG4gICAgaGVhZGVySGVpZ2h0OiA5NlxuICB9LFxuICBtYXBDb250cm9sOiB7XG4gICAgd2lkdGg6IDE4NCxcbiAgICBwYWRkaW5nOiAxMixcbiAgICBtYXBMZWdlbmQ6IHtcbiAgICAgIHBpbm5lZDoge1xuICAgICAgICBib3R0b206IDIyLFxuICAgICAgICByaWdodDogMTJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVGhlbWUgbmFtZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYEtlcGxlckdsYCBgcHJvcC50aGVtZWAuXG4gKiBBdmFpbGFibGUgdGhlbWVzIGFyZSBgVEhFTUUubGlnaHRgIGFuZCBgVEhFTUUuZGFya2AuIERlZmF1bHQgdGhlbWUgaXMgYFRIRU1FLmRhcmtgXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtvYmplY3R9XG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIGNvbnN0IE1hcCA9ICgpID0+IDxLZXBsZXJHbCB0aGVtZT17VEhFTUUubGlnaHR9IGlkPVwibWFwXCIvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVNRSA9IGtleU1pcnJvcih7XG4gIGxpZ2h0OiBudWxsLFxuICBkYXJrOiBudWxsLFxuICBiYXNlOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNJREVCQVJfUEFORUxTID0gW1xuICB7XG4gICAgaWQ6ICdsYXllcicsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5sYXllcicsXG4gICAgb25DbGljazogbnVsbFxuICB9LFxuICB7XG4gICAgaWQ6ICdmaWx0ZXInLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMuZmlsdGVyJyxcbiAgICBvbkNsaWNrOiBudWxsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2ludGVyYWN0aW9uJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmludGVyYWN0aW9uJyxcbiAgICBvbkNsaWNrOiBudWxsXG4gIH0sXG4gIHtcbiAgICBpZDogJ21hcCcsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5iYXNlbWFwJyxcbiAgICBvbkNsaWNrOiBudWxsXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBQQU5FTF9WSUVXX1RPR0dMRVMgPSBrZXlNaXJyb3Ioe1xuICBsaXN0OiBudWxsLFxuICBieURhdGFzZXQ6IG51bGxcbn0pO1xuXG4vLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG5leHBvcnQgY29uc3QgUEFORUxTID0gU0lERUJBUl9QQU5FTFM7XG5cbi8vIE1BUCBTVFlMRVNcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkxER19DT0xPUiA9ICcjRDFDRUM3JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDS0dST1VORF9DT0xPUiA9ICcjRkZGRkZGJztcblxuLy8gYXNzaXN0cyBpbiBpZGVudGlmeWluZyBiYXNlbWFwIGJhY2tncm91bmQgbGF5ZXJzIHdoZW4gYXV0by1kZXRlcm1pbmluZyB0aGUgYmFja2dyb3VuZENvbG9yXG5leHBvcnQgY29uc3QgQkFTRV9NQVBfQkFDS0dST1VORF9MQVlFUl9JRFMgPSBbJ2JhY2tncm91bmQnLCAnYmcnLCAnbGFuZCcsICd3YXRlciddO1xuXG5leHBvcnQgY29uc3QgQkFDS0dST1VORF9MQVlFUl9HUk9VUF9TTFVHID0gJ0JhY2tncm91bmQnO1xuXG5leHBvcnQgY29uc3QgVEhSRUVfRF9CVUlMRElOR19MQVlFUl9HUk9VUF9TTFVHID0gJzNkIGJ1aWxkaW5nJztcblxuZXhwb3J0IHR5cGUgREVGQVVMVF9MQVlFUl9HUk9VUCA9IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBmaWx0ZXI6ICh2YWx1ZSkgPT4gYm9vbGVhbjtcbiAgZGVmYXVsdFZpc2liaWxpdHk6IGJvb2xlYW47XG4gIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZT86IGJvb2xlYW47XG4gIGlzTW92ZVRvVG9wQXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgaXNDb2xvclBpY2tlckF2YWlsYWJsZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgQkFDS0dST1VORF9MQVlFUl9HUk9VUDogREVGQVVMVF9MQVlFUl9HUk9VUCA9IHtcbiAgc2x1ZzogQkFDS0dST1VORF9MQVlFUl9HUk9VUF9TTFVHLFxuICBmaWx0ZXI6ICgpID0+IGZhbHNlLFxuICBkZWZhdWx0VmlzaWJpbGl0eTogZmFsc2UsXG4gIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogZmFsc2UsXG4gIGlzTW92ZVRvVG9wQXZhaWxhYmxlOiBmYWxzZSxcbiAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogdHJ1ZVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfR1JPVVBTOiBERUZBVUxUX0xBWUVSX0dST1VQW10gPSBbXG4gIHtcbiAgICBzbHVnOiAnbGFiZWwnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0obGFiZWx8cGxhY2UtfHBvaS0pKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiBmYWxzZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ3JvYWQnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0ocm9hZHxyYWlsd2F5fHR1bm5lbHxzdHJlZXR8YnJpZGdlKSkoPyEuKmxhYmVsKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiBmYWxzZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2JvcmRlcicsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goL2JvcmRlcnxib3VuZGFyaWVzfGJvdW5kYXJ5LyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiBmYWxzZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2J1aWxkaW5nJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvYnVpbGRpbmcvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICd3YXRlcicsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goLyg/PSh3YXRlcnxzdHJlYW18ZmVycnkpKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiBmYWxzZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2xhbmQnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0ocGFya3N8bGFuZGNvdmVyfGluZHVzdHJpYWx8c2FuZHxoaWxsc2hhZGUpKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiBmYWxzZVxuICB9LFxuICB7XG4gICAgc2x1ZzogVEhSRUVfRF9CVUlMRElOR19MQVlFUl9HUk9VUF9TTFVHLFxuICAgIGZpbHRlcjogKCkgPT4gZmFsc2UsXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlLFxuICAgIGlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZTogdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlOiB0cnVlXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBCQVNFX01BUF9DT0xPUl9NT0RFUyA9IGtleU1pcnJvcih7XG4gIE5PTkU6IG51bGwsXG4gIERBUks6IG51bGwsXG4gIExJR0hUOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IE5PX01BUF9JRCA9ICdub19tYXAnO1xuXG4vLyBGYWxsYmFjayBzdHlsZSB0byB1c2Ugd2hlbiBzdHlsZXMgYXJlIGJlaW5nIGZldGNoZWQsIG9yIHdoZW5cbi8vIGEgc3R5bGUgZmFpbHMgdG8gZmV0Y2hcbmV4cG9ydCBjb25zdCBFTVBUWV9NQVBCT1hfU1RZTEUgPSB7XG4gIHZlcnNpb246IDgsXG4gIHNvdXJjZXM6IHt9LFxuICBsYXllcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgTk9fQkFTRU1BUF9JQ09OID0gYCR7QkFTRU1BUF9JQ09OX1BSRUZJWH0vTk9fQkFTRU1BUC5wbmdgO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBfU1RZTEVTOiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nIHwgbnVsbDtcbiAgaWNvbjogc3RyaW5nO1xuICBsYXllckdyb3VwczogdHlwZW9mIERFRkFVTFRfTEFZRVJfR1JPVVBTO1xuICBjb21wbGltZW50YXJ5U3R5bGVJZD86IHN0cmluZztcbiAgY29sb3JNb2RlOiBzdHJpbmc7XG4gIHN0eWxlPzogYW55O1xufVtdID0gW1xuICB7XG4gICAgaWQ6IE5PX01BUF9JRCxcbiAgICBsYWJlbDogJ05vIEJhc2VtYXAnLFxuICAgIHVybDogbnVsbCxcbiAgICBpY29uOiBOT19CQVNFTUFQX0lDT04sXG4gICAgbGF5ZXJHcm91cHM6IFtCQUNLR1JPVU5EX0xBWUVSX0dST1VQXSxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLk5PTkUsXG4gICAgc3R5bGU6IEVNUFRZX01BUEJPWF9TVFlMRVxuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrJyxcbiAgICBsYWJlbDogJ0RhcmsnLFxuICAgIHVybDogJ21hcGJveDovL3N0eWxlcy91YmVyZGF0YS9jam9xYmJmNmw5azMwMnNsOTZ0eXZrYTA5JyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9VQkVSX0RBUktfVjIucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFMsXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLLFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAnbGlnaHQnXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xpZ2h0JyxcbiAgICBsYWJlbDogJ0xpZ2h0JyxcbiAgICB1cmw6ICdtYXBib3g6Ly9zdHlsZXMvdWJlcmRhdGEvY2pvcWI5ajMzOWsxZjJzbDl0NWljNWJuNCcsXG4gICAgaWNvbjogYCR7QkFTRU1BUF9JQ09OX1BSRUZJWH0vVUJFUl9MSUdIVF9WMi5wbmdgLFxuICAgIGxheWVyR3JvdXBzOiBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hULFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAnZGFyaydcbiAgfSxcbiAge1xuICAgIGlkOiAnbXV0ZWQnLFxuICAgIGxhYmVsOiAnTXV0ZWQgTGlnaHQnLFxuICAgIHVybDogJ21hcGJveDovL3N0eWxlcy91YmVyZGF0YS9jamZ5bDAza3AxdHVsMnNtZjV2MnRiZGQ0JyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9VQkVSX01VVEVEX0xJR0hULnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQsXG4gICAgY29tcGxpbWVudGFyeVN0eWxlSWQ6ICdtdXRlZF9uaWdodCdcbiAgfSxcbiAge1xuICAgIGlkOiAnbXV0ZWRfbmlnaHQnLFxuICAgIGxhYmVsOiAnTXV0ZWQgTmlnaHQnLFxuICAgIHVybDogJ21hcGJveDovL3N0eWxlcy91YmVyZGF0YS9jamZ4aGxpa21hajFiMnNveXpldm55d2dzJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9VQkVSX01VVEVEX05JR0hULnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSyxcbiAgICBjb21wbGltZW50YXJ5U3R5bGVJZDogJ211dGVkJ1xuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIGxhYmVsOiAnU2F0ZWxsaXRlJyxcbiAgICB1cmw6IGBtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3NhdGVsbGl0ZS12OWAsXG4gICAgaWNvbjogYCR7QkFTRU1BUF9JQ09OX1BSRUZJWH0vVUJFUl9TQVRFTExJVEUucG5nYCxcbiAgICBsYXllckdyb3VwczogW10sXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5OT05FXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBHRU9KU09OX0ZJRUxEUyA9IHtcbiAgZ2VvanNvbjogWydfZ2VvanNvbicsICdhbGxfcG9pbnRzJywgJ2dlb2pzb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IElDT05fRklFTERTID0ge1xuICBpY29uOiBbJ2ljb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IFRSSVBfUE9JTlRfRklFTERTOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXG4gIFsnbGF0JywgJ2xuZyddLFxuICBbJ2xhdCcsICdsb24nXSxcbiAgWydsYXQnLCAnbG9uZyddLFxuICBbJ2xhdGl0dWRlJywgJ2xvbmdpdHVkZSddXG5dO1xuXG5leHBvcnQgY29uc3QgQUxUSVRVREVfRklFTERTID0gWydhbHQnLCAnYWx0aXR1ZGUnXTtcbmV4cG9ydCBjb25zdCBUUklQX0FSQ19GSUVMRFMgPSB7XG4gIGxhdDA6ICdiZWdpbnRyaXAnLFxuICBsbmcwOiAnYmVnaW50cmlwJyxcbiAgbGF0MTogJ2Ryb3BvZmYnLFxuICBsbmcxOiAnZHJvcG9mZidcbn07XG5cbmV4cG9ydCBjb25zdCBGSUxURVJfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICByYW5nZTogbnVsbCxcbiAgc2VsZWN0OiBudWxsLFxuICBpbnB1dDogbnVsbCxcbiAgdGltZVJhbmdlOiBudWxsLFxuICBtdWx0aVNlbGVjdDogbnVsbCxcbiAgcG9seWdvbjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBGSUxURVJfVklFV19UWVBFUyA9IGtleU1pcnJvcih7XG4gIHNpZGU6IG51bGwsXG4gIGVubGFyZ2VkOiBudWxsLFxuICBtaW5pZmllZDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJTFRFUl9WSUVXX1RZUEUgPSBGSUxURVJfVklFV19UWVBFUy5zaWRlO1xuXG5leHBvcnQgY29uc3QgU0NBTEVfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBvcmRpbmFsOiBudWxsLFxuICBxdWFudGlsZTogbnVsbCxcbiAgcXVhbnRpemU6IG51bGwsXG4gIGxpbmVhcjogbnVsbCxcbiAgc3FydDogbnVsbCxcbiAgbG9nOiBudWxsLFxuXG4gIC8vIG9yZGluYWwgZG9tYWluIHRvIGxpbmVhciByYW5nZVxuICBwb2ludDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBTQ0FMRV9GVU5DID0ge1xuICBbU0NBTEVfVFlQRVMubGluZWFyXTogc2NhbGVMaW5lYXIsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGl6ZV06IHNjYWxlUXVhbnRpemUsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGlsZV06IHNjYWxlUXVhbnRpbGUsXG4gIFtTQ0FMRV9UWVBFUy5vcmRpbmFsXTogc2NhbGVPcmRpbmFsLFxuICBbU0NBTEVfVFlQRVMuc3FydF06IHNjYWxlU3FydCxcbiAgW1NDQUxFX1RZUEVTLmxvZ106IHNjYWxlTG9nLFxuICBbU0NBTEVfVFlQRVMucG9pbnRdOiBzY2FsZVBvaW50XG59O1xuXG5leHBvcnQgY29uc3QgQUxMX0ZJRUxEX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgYm9vbGVhbjogbnVsbCxcbiAgZGF0ZTogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgaW50ZWdlcjogbnVsbCxcbiAgcmVhbDogbnVsbCxcbiAgc3RyaW5nOiBudWxsLFxuICB0aW1lc3RhbXA6IG51bGwsXG4gIHBvaW50OiBudWxsLFxuICBhcnJheTogbnVsbCxcbiAgb2JqZWN0OiBudWxsXG59KTtcblxuLy8gRGF0YSBUYWJsZVxuZXhwb3J0IGNvbnN0IFNPUlRfT1JERVIgPSBrZXlNaXJyb3Ioe1xuICBBU0NFTkRJTkc6IG51bGwsXG4gIERFU0NFTkRJTkc6IG51bGwsXG4gIFVOU09SVDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT04gPSBrZXlNaXJyb3Ioe1xuICBTT1JUX0FTQzogbnVsbCxcbiAgU09SVF9ERVM6IG51bGwsXG4gIFVOU09SVDogbnVsbCxcbiAgUElOOiBudWxsLFxuICBVTlBJTjogbnVsbCxcbiAgQ09QWTogbnVsbCxcbiAgRk9STUFUX0NPTFVNTjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT05fTElTVCA9IFtcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9BU0MsXG4gICAgZGlzcGxheTogJ1NvcnQgQXNjZW5kaW5nJyxcbiAgICBpY29uOiAnQXJyb3dVcCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5BU0NFTkRJTkdcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9ERVMsXG4gICAgZGlzcGxheTogJ1NvcnQgRGVzY2VuZGluZycsXG4gICAgaWNvbjogJ0Fycm93RG93bicsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5ERVNDRU5ESU5HXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOU09SVCxcbiAgICBkaXNwbGF5OiAnVW5zb3J0IENvbHVtbicsXG4gICAgaWNvbjogJ0NhbmNlbCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5pc1NvcnRlZFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5QSU4sXG4gICAgZGlzcGxheTogJ1BpbiBDb2x1bW4nLFxuICAgIGljb246ICdQaW4nLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gIXByb3BzLmlzUGlubmVkXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOUElOLFxuICAgIGRpc3BsYXk6ICdVbnBpbiBDb2x1bW4nLFxuICAgIGljb246ICdDYW5jZWwnLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuaXNQaW5uZWRcbiAgfSxcbiAge3ZhbHVlOiBUQUJMRV9PUFRJT04uQ09QWSwgZGlzcGxheTogJ0NvcHkgQ29sdW1uJywgaWNvbjogJ0NsaXBib2FyZCd9LFxuICB7dmFsdWU6IFRBQkxFX09QVElPTi5GT1JNQVRfQ09MVU1OLCBkaXNwbGF5OiAnRm9ybWF0IENvbHVtbicsIGljb246ICdIYXNoJ31cbl07XG5cbmNvbnN0IFlFTExPVyA9ICcyNDgsIDE5NCwgMjgnO1xuY29uc3QgUElOSyA9ICcyNDIsIDE1MiwgMTYzJztcbmNvbnN0IFBVUlBMRSA9ICcxNjAsIDEwNiwgMjA2JztcbmNvbnN0IEJMVUUgPSAnMTQwLCAyMTAsIDIwNSc7XG5jb25zdCBCTFVFMiA9ICcxMDYsIDE2MCwgMjA2JztcbmNvbnN0IEJMVUUzID0gJzAsIDE3MiwgMjM3JztcbmNvbnN0IEdSRUVOID0gJzEwNiwgMTYwLCA1Nic7XG5jb25zdCBHUkVFTjIgPSAnNzQsIDE2NSwgMTUwJztcbmNvbnN0IFJFRCA9ICcyMzcsIDg4LCAxMDYnO1xuY29uc3QgT1JBTkdFID0gJzIzMSwgMTEwLCA1OCc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0RJU1BMQVkgPSB7XG4gIFtBTExfRklFTERfVFlQRVMuYm9vbGVhbl06IHtcbiAgICBsYWJlbDogJ2Jvb2wnLFxuICAgIGNvbG9yOiBQSU5LXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZGF0ZV06IHtcbiAgICBsYWJlbDogJ2RhdGUnLFxuICAgIGNvbG9yOiBQVVJQTEVcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9qc29uXToge1xuICAgIGxhYmVsOiAnZ2VvJyxcbiAgICBjb2xvcjogQkxVRTJcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXToge1xuICAgIGxhYmVsOiAnaW50JyxcbiAgICBjb2xvcjogWUVMTE9XXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMucmVhbF06IHtcbiAgICBsYWJlbDogJ2Zsb2F0JyxcbiAgICBjb2xvcjogWUVMTE9XXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuc3RyaW5nXToge1xuICAgIGxhYmVsOiAnc3RyaW5nJyxcbiAgICBjb2xvcjogQkxVRVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcF06IHtcbiAgICBsYWJlbDogJ3RpbWUnLFxuICAgIGNvbG9yOiBHUkVFTlxuICB9LFxuICAvLyBmaWVsZCBwYWlyc1xuICBbQUxMX0ZJRUxEX1RZUEVTLnBvaW50XToge1xuICAgIGxhYmVsOiAncG9pbnQnLFxuICAgIGNvbG9yOiBCTFVFM1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmFycmF5XToge1xuICAgIGxhYmVsOiAnYXJyYXknLFxuICAgIGNvbG9yOiBPUkFOR0VcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5vYmplY3RdOiB7XG4gICAgbGFiZWw6ICdvYmplY3QnLFxuICAgIGNvbG9yOiBHUkVFTjJcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0NPTE9SUyA9IHtcbiAgZGVmYXVsdDogUkVEXG59O1xuZXhwb3J0IGNvbnN0IEhJR0hMSUdIX0NPTE9SXzNEOiBSR0JBQ29sb3IgPSBbMjU1LCAyNTUsIDI1NSwgNjBdO1xuZXhwb3J0IGNvbnN0IENIQU5ORUxfU0NBTEVTID0ga2V5TWlycm9yKHtcbiAgY29sb3I6IG51bGwsXG4gIHJhZGl1czogbnVsbCxcbiAgc2l6ZTogbnVsbCxcbiAgY29sb3JBZ2dyOiBudWxsLFxuICBzaXplQWdncjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBBR0dSRUdBVElPTl9UWVBFUzoge1xuICAvLyBkZWZhdWx0XG4gIGNvdW50OiAnY291bnQnO1xuICAvLyBsaW5lYXJcbiAgYXZlcmFnZTogJ2F2ZXJhZ2UnO1xuICBtYXhpbXVtOiAnbWF4aW11bSc7XG4gIG1pbmltdW06ICdtaW5pbXVtJztcbiAgbWVkaWFuOiAnbWVkaWFuJztcbiAgc3RkZXY6ICdzdGRldic7XG4gIHN1bTogJ3N1bSc7XG4gIHZhcmlhbmNlOiAndmFyaWFuY2UnO1xuICAvLyBvcmRpbmFsXG4gIG1vZGU6ICdtb2RlJztcbiAgY291bnRVbmlxdWU6ICdjb3VudCB1bmlxdWUnO1xufSA9IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JyxcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJyxcbiAgbWF4aW11bTogJ21heGltdW0nLFxuICBtaW5pbXVtOiAnbWluaW11bScsXG4gIG1lZGlhbjogJ21lZGlhbicsXG4gIHN0ZGV2OiAnc3RkZXYnLFxuICBzdW06ICdzdW0nLFxuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJyxcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZScsXG4gIGNvdW50VW5pcXVlOiAnY291bnQgdW5pcXVlJ1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvcl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICBbQ0hBTk5FTF9TQ0FMRVMucmFkaXVzXTogW1NDQUxFX1RZUEVTLnNxcnRdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbn07XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyA9IHtcbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLnN0ZGV2XTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLnN1bV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdXG4gIH0sXG5cbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5tZWRpYW5dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdGRldl06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLnN1bV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXVxuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgb3JkaW5hbEZpZWxkU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvcl06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtTQ0FMRV9UWVBFUy5wb2ludF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplXTogW1NDQUxFX1RZUEVTLnBvaW50XVxufTtcblxuZXhwb3J0IGNvbnN0IG9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyA9IHtcbiAgLy8gW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsLCBTQ0FMRV9UWVBFUy5saW5lYXJdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5tb2RlXTogW1NDQUxFX1RZUEVTLm9yZGluYWxdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudFVuaXF1ZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdXG4gIH0sXG5cbiAgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCB5ZXRcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge31cbn07XG5cbmV4cG9ydCBjb25zdCBub3RTdXBwb3J0ZWRTY2FsZU9wdHMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvcl06IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMucmFkaXVzXTogW10sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplXTogW11cbn07XG5cbmV4cG9ydCBjb25zdCBub3RTdXBwb3J0QWdnck9wdHMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7fSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge31cbn07XG5cbi8qKlxuICogRGVmYXVsdCBhZ2dyZWdhdGlvbiBhcmUgYmFzZWQgb24gb2N1bnRcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUdHUkVHQVRJT04gPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmNvdW50XTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV1cbiAgfSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuLyoqXG4gKiBEZWZpbmUgd2hhdCB0eXBlIG9mIHNjYWxlIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIGVhY2ggdHlwZSBvZiBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IEZJRUxEX09QVFMgPSB7XG4gIFtBTExfRklFTERfVFlQRVMuc3RyaW5nXToge1xuICAgIHR5cGU6ICdjYXRlZ29yaWNhbCcsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMucmVhbF06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLmxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5QRVJDRU5UQUdFXG4gICAgICBdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcF06IHtcbiAgICB0eXBlOiAndGltZScsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLmxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5ub3RTdXBwb3J0QWdnck9wdHNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVfVElNRVxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXToge1xuICAgIHR5cGU6ICdudW1lcmljYWwnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5saW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ubGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRFQ0lNQUwsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLlBFUkNFTlRBR0VcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuYm9vbGVhbl06IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1RPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsIFRPT0xUSVBfRk9STUFUX1RZUEVTLkJPT0xFQU5dXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmRhdGVdOiB7XG4gICAgdHlwZTogJ3RpbWUnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5vcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLCBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9qc29uXToge1xuICAgIHR5cGU6ICdnZW9tZXRyeScsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm5vdFN1cHBvcnRlZFNjYWxlT3B0cyxcbiAgICAgIC4uLm5vdFN1cHBvcnRBZ2dyT3B0c1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gJy4uLicsXG4gICAgICB0b29sdGlwOiBbXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5vYmplY3RdOiB7XG4gICAgdHlwZTogJ251bWVyaWNhbCcsXG4gICAgc2NhbGU6IHt9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+ICcuLi4nLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuYXJyYXldOiB7XG4gICAgdHlwZTogJ251bWVyaWNhbCcsXG4gICAgc2NhbGU6IHt9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+ICcuLi4nLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBDSEFOTkVMX1NDQUxFX1NVUFBPUlRFRF9GSUVMRFMgPSBPYmplY3Qua2V5cyhDSEFOTkVMX1NDQUxFUykucmVkdWNlKFxuICAoYWNjdSwga2V5KSA9PiAoe1xuICAgIC4uLmFjY3UsXG4gICAgW2tleV06IE9iamVjdC5rZXlzKEZJRUxEX09QVFMpLmZpbHRlcihcbiAgICAgIGZ0ID0+IEZJRUxEX09QVFNbZnRdLnNjYWxlW2tleV0gJiYgT2JqZWN0LmtleXMoRklFTERfT1BUU1tmdF0uc2NhbGVba2V5XSkubGVuZ3RoXG4gICAgKVxuICB9KSxcbiAge30gYXMge1tpZDogc3RyaW5nXTogc3RyaW5nW119XG4pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9DT0xPUiA9IHtcbiAgdHJpcEFyYzogJyM5MjI2QzYnLFxuICBiZWdpbnRyaXBfbGF0OiAnIzFFOTZCRScsXG4gIGRyb3BvZmZfbGF0OiAnI0ZGOTkxRicsXG4gIHJlcXVlc3RfbGF0OiAnIzUyQTM1Mydcbn07XG5cbi8vIGxldCB1c2VyIHBhc3MgaW4gZGVmYXVsdCB0b29sdGlwIGZpZWxkc1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVE9PTFRJUF9GSUVMRFM6IGFueVtdID0gW107XG5cbmV4cG9ydCBjb25zdCBOT19WQUxVRV9DT0xPUjogUkdCQUNvbG9yID0gWzAsIDAsIDAsIDBdO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QSUNLSU5HX1JBRElVUyA9IDM7XG5cbmV4cG9ydCBjb25zdCBPVkVSTEFZX0JMRU5ESU5HUyA9IHtcbiAgbm9ybWFsOiB7XG4gICAgbGFiZWw6ICdvdmVybGF5QmxlbmRpbmcubm9ybWFsJyxcbiAgICB2YWx1ZTogJ25vcm1hbCdcbiAgfSxcbiAgc2NyZWVuOiB7XG4gICAgbGFiZWw6ICdvdmVybGF5QmxlbmRpbmcuc2NyZWVuJyxcbiAgICB2YWx1ZTogJ3NjcmVlbidcbiAgfSxcbiAgZGFya2VuOiB7XG4gICAgbGFiZWw6ICdvdmVybGF5QmxlbmRpbmcuZGFya2VuJyxcbiAgICB2YWx1ZTogJ2RhcmtlbidcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IExBWUVSX0JMRU5ESU5HUyA9IHtcbiAgYWRkaXRpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuYWRkaXRpdmUnLFxuICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogJ0ZVTkNfQUREJ1xuICB9LFxuICBub3JtYWw6IHtcbiAgICAvLyByZWZlcmVuY2UgdG9cbiAgICAvLyBodHRwczovL2xpbW51LmNvbS93ZWJnbC1ibGVuZGluZy15b3VyZS1wcm9iYWJseS13cm9uZy9cbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcubm9ybWFsJyxcbiAgICBibGVuZEZ1bmM6IFsnU1JDX0FMUEhBJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnLCAnT05FJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfQUREJywgJ0ZVTkNfQUREJ11cbiAgfSxcbiAgc3VidHJhY3RpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuc3VidHJhY3RpdmUnLFxuICAgIGJsZW5kRnVuYzogWydPTkUnLCAnT05FX01JTlVTX0RTVF9DT0xPUicsICdTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogWydGVU5DX1NVQlRSQUNUJywgJ0ZVTkNfQUREJ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1BWF9ERUZBVUxUX1RPT0xUSVBTID0gNTtcblxuZXhwb3J0IGNvbnN0IFJFU09MVVRJT05TID0ga2V5TWlycm9yKHtcbiAgT05FX1g6IG51bGwsXG4gIFRXT19YOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUdfUkFUSU9TID0ga2V5TWlycm9yKHtcbiAgU0NSRUVOOiBudWxsLFxuICBGT1VSX0JZX1RIUkVFOiBudWxsLFxuICBTSVhURUVOX0JZX05JTkU6IG51bGwsXG4gIENVU1RPTTogbnVsbFxufSk7XG5cbmV4cG9ydCB0eXBlIEV4cG9ydEltYWdlID0ge1xuICByYXRpbzoga2V5b2YgdHlwZW9mIEVYUE9SVF9JTUdfUkFUSU9TO1xuICByZXNvbHV0aW9uOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxlZ2VuZDogYm9vbGVhbjtcbiAgbWFwSDogbnVtYmVyO1xuICBtYXBXOiBudW1iZXI7XG4gIGltYWdlU2l6ZToge1xuICAgIHpvb21PZmZzZXQ6IG51bWJlcjtcbiAgICBzY2FsZTogbnVtYmVyO1xuICAgIGltYWdlVzogbnVtYmVyO1xuICAgIGltYWdlSDogbnVtYmVyO1xuICB9O1xuICAvLyBleHBvcnRpbmcgc3RhdGVcbiAgaW1hZ2VEYXRhVXJpOiBzdHJpbmc7XG4gIGV4cG9ydGluZzogYm9vbGVhbjtcbiAgcHJvY2Vzc2luZzogYm9vbGVhbjtcbiAgZXJyb3I6IEVycm9yIHwgZmFsc2U7XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG4gIC8vIFRoaXMgZmllbGQgd2FzIG5vdCBpbiB0aGUgLmQudHMgZmlsZVxuICBjZW50ZXI6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBJbWFnZVJhdGlvT3B0aW9uID0ge1xuICBpZDoga2V5b2YgdHlwZW9mIEVYUE9SVF9JTUdfUkFUSU9TO1xuICBsYWJlbDogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBnZXRTaXplOiAoc2NyZWVuVzogbnVtYmVyLCBzY3JlZW5IOiBudW1iZXIpID0+IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn07XG59O1xuXG5leHBvcnQgY29uc3QgU2NyZWVuUmF0aW9PcHRpb246IEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBFWFBPUlRfSU1HX1JBVElPUy5TQ1JFRU4sXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9PcmlnaW5hbFNjcmVlbicsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe3dpZHRoOiBzY3JlZW5XLCBoZWlnaHQ6IHNjcmVlbkh9KVxufTtcbmV4cG9ydCBjb25zdCBDdXN0b21SYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLkNVU1RPTSxcbiAgaGlkZGVuOiB0cnVlLFxuICBsYWJlbDogJ21vZGFsLmV4cG9ydEltYWdlLnJhdGlvQ3VzdG9tJyxcbiAgZ2V0U2l6ZTogKG1hcFcsIG1hcEgpID0+ICh7d2lkdGg6IG1hcFcsIGhlaWdodDogbWFwSH0pXG59O1xuZXhwb3J0IGNvbnN0IEZvdXJCeVRocmVlUmF0aW9PcHRpb246IEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBFWFBPUlRfSU1HX1JBVElPUy5GT1VSX0JZX1RIUkVFLFxuICBsYWJlbDogJ21vZGFsLmV4cG9ydEltYWdlLnJhdGlvNF8zJyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7XG4gICAgd2lkdGg6IHNjcmVlblcsXG4gICAgaGVpZ2h0OiBNYXRoLnJvdW5kKHNjcmVlblcgKiAwLjc1KVxuICB9KVxufTtcbmV4cG9ydCBjb25zdCBTaXh0ZWVuQnlOaW5lUmF0aW9PcHRpb246IEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBFWFBPUlRfSU1HX1JBVElPUy5TSVhURUVOX0JZX05JTkUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW8xNl85JyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7XG4gICAgd2lkdGg6IHNjcmVlblcsXG4gICAgaGVpZ2h0OiBNYXRoLnJvdW5kKHNjcmVlblcgKiAwLjU2MjUpXG4gIH0pXG59O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SQVRJT19PUFRJT05TOiBSZWFkb25seUFycmF5PEltYWdlUmF0aW9PcHRpb24+ID0gW1xuICBTY3JlZW5SYXRpb09wdGlvbixcbiAgQ3VzdG9tUmF0aW9PcHRpb24sXG4gIEZvdXJCeVRocmVlUmF0aW9PcHRpb24sXG4gIFNpeHRlZW5CeU5pbmVSYXRpb09wdGlvblxuXTtcblxuZXhwb3J0IHR5cGUgSW1hZ2VSZXNvbHV0aW9uT3B0aW9uID0ge1xuICBpZDoga2V5b2YgdHlwZW9mIFJFU09MVVRJT05TO1xuICBsYWJlbDogc3RyaW5nO1xuICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIHNjYWxlOiBudW1iZXI7XG4gIGdldFNpemU6IChzY3JlZW5XOiBudW1iZXIsIHNjcmVlbkg6IG51bWJlcikgPT4ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbn07XG5cbmV4cG9ydCBjb25zdCBPbmVYUmVzb2x1dGlvbk9wdGlvbjogSW1hZ2VSZXNvbHV0aW9uT3B0aW9uID0ge1xuICBpZDogUkVTT0xVVElPTlMuT05FX1gsXG4gIGxhYmVsOiAnMXgnLFxuICBhdmFpbGFibGU6IHRydWUsXG4gIHNjYWxlOiAxLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IHNjcmVlbkhcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBUd29YUmVzb2x1dGlvbk9wdGlvbjogSW1hZ2VSZXNvbHV0aW9uT3B0aW9uID0ge1xuICBpZDogUkVTT0xVVElPTlMuVFdPX1gsXG4gIGxhYmVsOiAnMngnLFxuICBhdmFpbGFibGU6IHRydWUsXG4gIHNjYWxlOiAyLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyAqIDIsXG4gICAgaGVpZ2h0OiBzY3JlZW5IICogMlxuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TOiBSZWFkb25seUFycmF5PEltYWdlUmVzb2x1dGlvbk9wdGlvbj4gPSBbXG4gIE9uZVhSZXNvbHV0aW9uT3B0aW9uLFxuICBUd29YUmVzb2x1dGlvbk9wdGlvblxuXTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEUgPSBrZXlNaXJyb3Ioe1xuICBDU1Y6IG51bGxcbiAgLy8gU0hBUEVGSUxFOiBudWxsLFxuICAvLyBKU09OOiBudWxsLFxuICAvLyBHRU9KU09OOiBudWxsLFxuICAvLyBUT1BPSlNPTjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfREFUQV9UWVBFX09QVElPTlMgPSBbXG4gIHtcbiAgICBpZDogRVhQT1JUX0RBVEFfVFlQRS5DU1YsXG4gICAgbGFiZWw6IEVYUE9SVF9EQVRBX1RZUEUuQ1NWLnRvTG93ZXJDYXNlKCksXG4gICAgYXZhaWxhYmxlOiB0cnVlXG4gIH1cbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLlNIQVBFRklMRSxcbiAgLy8gICBsYWJlbDogJ3NoYXBlZmlsZScsXG4gIC8vICAgYXZhaWxhYmxlOiBmYWxzZVxuICAvLyB9LFxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuSlNPTixcbiAgLy8gICBsYWJlbDogJ2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfSxcbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLkdFT0pTT04sXG4gIC8vICAgbGFiZWw6ICdnZW9qc29uJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH0sXG4gIC8vIHtcbiAgLy8gICBpZDogRVhQT1JUX0RBVEFfVFlQRS5UT1BPSlNPTixcbiAgLy8gICBsYWJlbDogJ3RvcG9qc29uJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH1cbl07XG5cbi8vIEV4cG9ydCBtYXAgdHlwZXNcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFQX0ZPUk1BVFMgPSBrZXlNaXJyb3Ioe1xuICBIVE1MOiBudWxsLFxuICBKU09OOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9IVE1MX01BUF9NT0RFUyA9IGtleU1pcnJvcih7XG4gIFJFQUQ6IG51bGwsXG4gIEVESVQ6IG51bGxcbn0pO1xuXG4vLyBFeHBvcnQgbWFwIG9wdGlvbnNcbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TID0gT2JqZWN0LmVudHJpZXMoRVhQT1JUX01BUF9GT1JNQVRTKS5tYXAoXG4gIChlbnRyeTogW3N0cmluZywgYW55XSkgPT4gKHtcbiAgICBpZDogZW50cnlbMF0sXG4gICAgbGFiZWw6IGVudHJ5WzFdLnRvTG93ZXJDYXNlKCksXG4gICAgYXZhaWxhYmxlOiB0cnVlXG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SFRNTE1hcE1vZGVUaWxlVXJsKG1vZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaHR0cHM6Ly9kMWEzZjRzcGF6enJwNC5jbG91ZGZyb250Lm5ldC9rZXBsZXIuZ2wvZG9jdW1lbnRhdGlvbi9tYXAtJHttb2RlLnRvTG93ZXJDYXNlKCl9LW1vZGUucG5nYDtcbn1cblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMgPSBPYmplY3QuZW50cmllcyhFWFBPUlRfSFRNTF9NQVBfTU9ERVMpLm1hcChcbiAgKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiAoe1xuICAgIGlkOiBlbnRyeVswXSxcbiAgICBsYWJlbDogYG1vZGFsLmV4cG9ydE1hcC5odG1sLiR7ZW50cnlbMV0udG9Mb3dlckNhc2UoKX1gLFxuICAgIGF2YWlsYWJsZTogdHJ1ZSxcbiAgICB1cmw6IGdldEhUTUxNYXBNb2RlVGlsZVVybChlbnRyeVsxXSlcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1VVSURfQ09VTlQgPSA2O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fTUVTU0FHRSA9ICdNRVNTQUdFX05PVF9QUk9WSURFRCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUyA9IGtleU1pcnJvcih7XG4gIGluZm86IG51bGwsXG4gIGVycm9yOiBudWxsLFxuICB3YXJuaW5nOiBudWxsLFxuICBzdWNjZXNzOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUyA9IGtleU1pcnJvcih7XG4gIGdsb2JhbDogbnVsbCxcbiAgZmlsZTogbnVsbFxufSk7XG5cbi8vIE1pbmltdW0gdGltZSBiZXR3ZWVuIGlkZW50aWNhbCBub3RpZmljYXRpb25zIGFib3V0IGRlY2suZ2wgZXJyb3JzXG5leHBvcnQgY29uc3QgVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUgPSAzMzA7XG5cbi8vIEFuaW1hdGlvblxuZXhwb3J0IGNvbnN0IEJBU0VfU1BFRUQgPSA2MDA7XG5leHBvcnQgY29uc3QgRlBTID0gNjA7XG5cbi8qKlxuICogNCBBbmltYXRpb24gV2luZG93IFR5cGVzXG4gKiAxLiBmcmVlXG4gKiAgfC0+ICB8LT5cbiAqIEN1cnJlbnQgdGltZSBpcyBhIGZpeGVkIHJhbmdlLCBhbmltYXRpb24gY29udHJvbGxlciBjYWxscyBuZXh0IGFuaW1hdGlvbiBmcmFtZXMgY29udGludW91c2x5IHRvIGFuaW1hdGlvbiBhIG1vdmluZyB3aW5kb3dcbiAqIFRoZSBpbmNyZW1lbnQgaWQgYmFzZWQgb24gZG9tYWluIC8gQkFTRV9TUEVFRCAqIFNQRUVEXG4gKlxuICogMi4gaW5jcmVtZW50YWxcbiAqIHwgICAgfC0+XG4gKiBTYW1lIGFzIGZyZWUsIGN1cnJlbnQgdGltZSBpcyBhIGdyb3dpbmcgcmFuZ2UsIG9ubHkgdGhlIG1heCB2YWx1ZSBvZiByYW5nZSBpbmNyZW1lbnQgZHVyaW5nIGFuaW1hdGlvbi5cbiAqIFRoZSBpbmNyZW1lbnQgaXMgYWxzbyBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiAzLiBwb2ludFxuICogbyAtPiBvXG4gKiBDdXJyZW50IHRpbWUgaXMgYSBwb2ludCwgYW5pbWF0aW9uIGNvbnRyb2xsZXIgY2FsbHMgbmV4dCBhbmltYXRpb24gZnJhbWUgY29udGludW91c2x5IHRvIGFuaW1hdGlvbiBhIG1vdmluZyBwb2ludFxuICogVGhlIGluY3JlbWVudCBpcyBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiA0LiBpbnRlcnZhbFxuICogbyB+PiBvXG4gKiBDdXJyZW50IHRpbWUgaXMgYSBwb2ludC4gQW4gYXJyYXkgb2Ygc29ydGVkIHRpbWUgc3RlcHMgbmVlZCB0byBiZSBwcm92aWRlZC5cbiAqIGFuaW1hdGlvbiBjb250cm9sbGVyIGNhbGxzIG5leHQgYW5pbWF0aW9uIGF0IGEgaW50ZXJ2YWwgd2hlbiB0aGUgcG9pbnQganVtcHMgdG8gdGhlIG5leHQgc3RlcFxuICovXG5leHBvcnQgY29uc3QgQU5JTUFUSU9OX1dJTkRPVyA9IGtleU1pcnJvcih7XG4gIGZyZWU6IG51bGwsXG4gIGluY3JlbWVudGFsOiBudWxsLFxuICBwb2ludDogbnVsbCxcbiAgaW50ZXJ2YWw6IG51bGxcbn0pO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVElNRV9GT1JNQVQgPSAnTU0vREQvWVkgSEg6bW06c3NhJztcbmV4cG9ydCBjb25zdCBTUEVFRF9DT05UUk9MX1JBTkdFOiBbbnVtYmVyLCBudW1iZXJdID0gWzAsIDEwXTtcbmV4cG9ydCBjb25zdCBTUEVFRF9DT05UUk9MX1NURVAgPSAwLjAwMTtcblxuLy8gR2VvY29kZXJcbmV4cG9ydCBjb25zdCBHRU9DT0RFUl9EQVRBU0VUX05BTUUgPSAnZ2VvY29kZXJfZGF0YXNldCc7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfTEFZRVJfSUQgPSAnZ2VvY29kZXJfbGF5ZXInO1xuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0dFT19PRkZTRVQgPSAwLjA1O1xuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0lDT05fQ09MT1I6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9IFsyNTUsIDAsIDBdO1xuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0lDT05fU0laRSA9IDgwO1xuXG4vLyBFZGl0b3JcbmV4cG9ydCBjb25zdCBFRElUT1JfTEFZRVJfSUQgPSAna2VwbGVyX2VkaXRvcl9sYXllcic7XG5leHBvcnQgY29uc3QgRURJVE9SX0xBWUVSX1BJQ0tJTkdfUkFESVVTID0gNjtcbmV4cG9ydCBjb25zdCBFRElUT1JfTU9ERVMgPSB7XG4gIERSQVdfUE9MWUdPTjogJ0RSQVdfUE9MWUdPTicsXG4gIERSQVdfUkVDVEFOR0xFOiAnRFJBV19SRUNUQU5HTEUnLFxuICBFRElUOiAnRURJVF9WRVJURVgnXG59O1xuXG5leHBvcnQgY29uc3QgUExPVF9UWVBFUyA9IGtleU1pcnJvcih7XG4gIGhpc3RvZ3JhbTogbnVsbCxcbiAgbGluZUNoYXJ0OiBudWxsXG59KTtcblxuLy8gRmlsdGVyXG5leHBvcnQgY29uc3QgSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04gPSAxMDA7XG5cbi8vIEdQVSBGaWx0ZXJpbmdcbi8qKlxuICogTWF4IG51bWJlciBvZiBmaWx0ZXIgdmFsdWUgYnVmZmVycyB0aGF0IGRlY2suZ2wgcHJvdmlkZXNcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9HUFVfRklMVEVSUyA9IDQ7XG5leHBvcnQgY29uc3QgTUFQX1RIVU1CTkFJTF9ESU1FTlNJT04gPSB7XG4gIHdpZHRoOiAzMDAsXG4gIGhlaWdodDogMjAwXG59O1xuXG5leHBvcnQgY29uc3QgTUFQX0lORk9fQ0hBUkFDVEVSID0ge1xuICB0aXRsZTogMTAwLFxuICBkZXNjcmlwdGlvbjogMTAwXG59O1xuXG4vLyBMb2FkIGRhdGFcbmV4cG9ydCBjb25zdCBMT0FESU5HX01FVEhPRFMgPSBrZXlNaXJyb3Ioe1xuICB1cGxvYWQ6IG51bGwsXG4gIHN0b3JhZ2U6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9GRUFUVVJFX0ZMQUdTID0ge307XG5cbmV4cG9ydCBjb25zdCBEQVRBU0VUX0ZPUk1BVFMgPSBrZXlNaXJyb3Ioe1xuICByb3c6IG51bGwsXG4gIGdlb2pzb246IG51bGwsXG4gIGNzdjogbnVsbCxcbiAga2VwbGVyZ2w6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTUFQX0NPTlRST0xTID0ga2V5TWlycm9yKHtcbiAgdmlzaWJsZUxheWVyczogbnVsbCxcbiAgbWFwTGVnZW5kOiBudWxsLFxuICB0b2dnbGUzZDogbnVsbCxcbiAgc3BsaXRNYXA6IG51bGwsXG4gIG1hcERyYXc6IG51bGwsXG4gIG1hcExvY2FsZTogbnVsbCxcbiAgZWZmZWN0OiBudWxsXG59KTtcblxuLyoqXG4gKiBBIG11bHRpcGxpZXIgZm9yIHNjcmVlbi1zcGFjZSB3aWR0aC9zY2FsZSBmb3IgQXJjLCBMaW5lLCBJY29uIGFuZCBUZXh0IGxheWVycy5cbiAqIFJlcXVpcmVkIGluIG9yZGVyIHRvIG1haW50YWluIHRoZSBzYW1lIGFwcGVhcmFuY2UgYWZ0ZXIgdXBncmFkaW5nIHRvIGRlY2suZ2wgdjguNS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS92aXNnbC9kZWNrLmdsL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZS1ndWlkZS5tZFxuICovXG5leHBvcnQgY29uc3QgUFJPSkVDVEVEX1BJWEVMX1NJWkVfTVVMVElQTElFUiA9IDIgLyAzO1xuXG4vKipcbiAqIE1heGltdW0gdmFsdWUgZm9yIHRleHQgb3V0bGluZSB3aWR0aFxuICovXG5leHBvcnQgY29uc3QgVEVYVF9PVVRMSU5FX01VTFRJUExJRVIgPSA1O1xuXG5leHBvcnQgY29uc3QgZGF0YVRlc3RJZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGluZm9JY29uOiAnaW5mby1pY29uJyxcbiAgd2FybmluZ0ljb246ICd3YXJuaW5nLWljb24nLFxuICBlcnJvckljb246ICdlcnJvci1pY29uJyxcbiAgc3VjY2Vzc0ljb246ICdzdWNjZXNzLWljb24nLFxuICBjaGVja21hcmtJY29uOiAnY2hlY2ttYXJrLWljb24nLFxuICBzb3J0YWJsZUxheWVySXRlbTogJ3NvcnRhYmxlLWxheWVyLWl0ZW0nLFxuICBzdGF0aWNMYXllckl0ZW06ICdzdGF0aWMtbGF5ZXItaXRlbScsXG4gIGxheWVyVGl0bGVFZGl0b3I6ICdsYXllcl9fdGl0bGVfX2VkaXRvcicsXG4gIHJlbW92ZUxheWVyQWN0aW9uOiAncmVtb3ZlLWxheWVyLWFjdGlvbicsXG4gIGxheWVyUGFuZWw6ICdsYXllci1wYW5lbCcsXG4gIHNvcnRhYmxlRWZmZWN0SXRlbTogJ3NvcnRhYmxlLWVmZmVjdC1pdGVtJyxcbiAgc3RhdGljRWZmZWN0SXRlbTogJ3N0YXRpYy1lZmZlY3QtaXRlbSdcbn07XG5cbi8vIEVmZmVjdHNcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRUZGRUNUX1RZUEUgPSAnaW5rJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRfQ09MT1I6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9IFsyNTUsIDI1NSwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSA9IDE7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TSEFET1dfSU5URU5TSVRZID0gMC41O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0hBRE9XX0NPTE9SOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPSBbMCwgMCwgMF07XG5leHBvcnQgY29uc3QgTElHSFRfQU5EX1NIQURPV19FRkZFQ1QgPSB7dHlwZTogJ2xpZ2h0QW5kU2hhZG93JywgbmFtZTogJ0xpZ2h0ICYgU2hhZG93J307XG5leHBvcnQgY29uc3QgREVGQVVMVF9MSUdIVF9BTkRfU0hBRE9XX1BST1BTID0ge1xuICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gIHVzZUN1cnJlbnRUaW1lOiBmYWxzZSxcbiAgc2hhZG93SW50ZW5zaXR5OiBERUZBVUxUX1NIQURPV19JTlRFTlNJVFksXG4gIHNoYWRvd0NvbG9yOiBbLi4uREVGQVVMVF9TSEFET1dfQ09MT1JdIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgc3VuTGlnaHRDb2xvcjogWy4uLkRFRkFVTFRfTElHSFRfQ09MT1JdIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgc3VuTGlnaHRJbnRlbnNpdHk6IERFRkFVTFRfTElHSFRfSU5URU5TSVRZLFxuICBhbWJpZW50TGlnaHRDb2xvcjogWy4uLkRFRkFVTFRfTElHSFRfQ09MT1JdIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgYW1iaWVudExpZ2h0SW50ZW5zaXR5OiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWVxufTtcblxuZXhwb3J0IGNvbnN0IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFM6IHtba2V5OiBzdHJpbmddOiB7dHlwZTogc3RyaW5nOyBuYW1lOiBzdHJpbmd9fSA9IHtcbiAgaW5rOiB7XG4gICAgdHlwZTogJ2luaycsXG4gICAgbmFtZTogJ0luaydcbiAgfSxcbiAgYnJpZ2h0bmVzc0NvbnRyYXN0OiB7XG4gICAgdHlwZTogJ2JyaWdodG5lc3NDb250cmFzdCcsXG4gICAgbmFtZTogJ0JyaWdodG5lc3MgJiBDb250cmFzdCdcbiAgfSxcbiAgaHVlU2F0dXJhdGlvbjoge1xuICAgIHR5cGU6ICdodWVTYXR1cmF0aW9uJyxcbiAgICBuYW1lOiAnSHVlICYgU2F0dXJhdGlvbidcbiAgfSxcbiAgdmlicmFuY2U6IHtcbiAgICB0eXBlOiAndmlicmFuY2UnLFxuICAgIG5hbWU6ICdWaWJyYW5jZSdcbiAgfSxcbiAgc2VwaWE6IHtcbiAgICB0eXBlOiAnc2VwaWEnLFxuICAgIG5hbWU6ICdTZXBpYSdcbiAgfSxcbiAgZG90U2NyZWVuOiB7XG4gICAgdHlwZTogJ2RvdFNjcmVlbicsXG4gICAgbmFtZTogJ0RvdCBTY3JlZW4nXG4gIH0sXG4gIGNvbG9ySGFsZnRvbmU6IHtcbiAgICB0eXBlOiAnY29sb3JIYWxmdG9uZScsXG4gICAgbmFtZTogJ0NvbG9yIEhhbGZ0b25lJ1xuICB9LFxuICBub2lzZToge1xuICAgIHR5cGU6ICdub2lzZScsXG4gICAgbmFtZTogJ05vaXNlJ1xuICB9LFxuICB0cmlhbmdsZUJsdXI6IHtcbiAgICB0eXBlOiAndHJpYW5nbGVCbHVyJyxcbiAgICBuYW1lOiAnQmx1ciAoVHJpYW5nbGUpJ1xuICB9LFxuICB6b29tQmx1cjoge1xuICAgIHR5cGU6ICd6b29tQmx1cicsXG4gICAgbmFtZTogJ0JsdXIgKFpvb20pJ1xuICB9LFxuICB0aWx0U2hpZnQ6IHtcbiAgICB0eXBlOiAndGlsdFNoaWZ0JyxcbiAgICBuYW1lOiAnQmx1ciAoVGlsdCBTaGlmdCknXG4gIH0sXG4gIGVkZ2VXb3JrOiB7XG4gICAgdHlwZTogJ2VkZ2VXb3JrJyxcbiAgICBuYW1lOiAnRWRnZSB3b3JrJ1xuICB9LFxuICB2aWduZXR0ZToge1xuICAgIHR5cGU6ICd2aWduZXR0ZScsXG4gICAgbmFtZTogJ1ZpZ25ldHRlJ1xuICB9LFxuICBtYWduaWZ5OiB7XG4gICAgdHlwZTogJ21hZ25pZnknLFxuICAgIG5hbWU6ICdNYWduaWZ5J1xuICB9LFxuICBoZXhhZ29uYWxQaXhlbGF0ZToge1xuICAgIHR5cGU6ICdoZXhhZ29uYWxQaXhlbGF0ZScsXG4gICAgbmFtZTogJ0hleGFnb25hbCBQaXhlbGF0ZSdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEVGRkVDVF9ERVNDUzoge3R5cGU6IHN0cmluZzsgbmFtZTogc3RyaW5nfVtdID0gW1xuICBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCxcbiAgLi4uT2JqZWN0LmtleXMoUE9TVFBST0NFU1NJTkdfRUZGRUNUUykubWFwKGtleU5hbWUgPT4gUE9TVFBST0NFU1NJTkdfRUZGRUNUU1trZXlOYW1lXSlcbl07XG4iXX0=
1379
+ exports.EFFECT_DESCRIPTIONS = EFFECT_DESCRIPTIONS;
1380
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0LXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbIkFDVElPTl9QUkVGSVgiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwiQkFTRU1BUF9JQ09OX1BSRUZJWCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiREFUQV9UQUJMRV9JRCIsIkRFTEVURV9EQVRBX0lEIiwiQUREX0RBVEFfSUQiLCJFWFBPUlRfSU1BR0VfSUQiLCJFWFBPUlRfREFUQV9JRCIsIkFERF9NQVBfU1RZTEVfSUQiLCJFWFBPUlRfTUFQX0lEIiwiU0FWRV9NQVBfSUQiLCJPVkVSV1JJVEVfTUFQX0lEIiwiU0hBUkVfTUFQX0lEIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIktFUExFUl9HTF9XRUJTSVRFIiwiRElNRU5TSU9OUyIsInNpZGVQYW5lbCIsIndpZHRoIiwibWFyZ2luIiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwiaGVhZGVySGVpZ2h0IiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJtYXBMZWdlbmQiLCJwaW5uZWQiLCJUSEVNRSIsImxpZ2h0IiwiZGFyayIsImJhc2UiLCJTSURFQkFSX1BBTkVMUyIsImlkIiwibGFiZWwiLCJvbkNsaWNrIiwiUEFORUxfVklFV19UT0dHTEVTIiwibGlzdCIsImJ5RGF0YXNldCIsIlBBTkVMUyIsIkRFRkFVTFRfQkxER19DT0xPUiIsIkRFRkFVTFRfQkFDS0dST1VORF9DT0xPUiIsIkJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUF9TTFVHIiwiVEhSRUVfRF9CVUlMRElOR19MQVlFUl9HUk9VUF9TTFVHIiwiQkFDS0dST1VORF9MQVlFUl9HUk9VUCIsInNsdWciLCJmaWx0ZXIiLCJkZWZhdWx0VmlzaWJpbGl0eSIsImlzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZSIsImlzTW92ZVRvVG9wQXZhaWxhYmxlIiwiaXNDb2xvclBpY2tlckF2YWlsYWJsZSIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwibWF0Y2giLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIk5PTkUiLCJEQVJLIiwiTElHSFQiLCJOT19NQVBfSUQiLCJFTVBUWV9NQVBCT1hfU1RZTEUiLCJ2ZXJzaW9uIiwic291cmNlcyIsImxheWVycyIsIk5PX0JBU0VNQVBfSUNPTiIsIkRFRkFVTFRfTUFQX1NUWUxFUyIsInVybCIsImljb24iLCJsYXllckdyb3VwcyIsImNvbG9yTW9kZSIsInN0eWxlIiwiY29tcGxpbWVudGFyeVN0eWxlSWQiLCJHRU9KU09OX0ZJRUxEUyIsImdlb2pzb24iLCJJQ09OX0ZJRUxEUyIsIlRSSVBfUE9JTlRfRklFTERTIiwiQUxUSVRVREVfRklFTERTIiwiVFJJUF9BUkNfRklFTERTIiwibGF0MCIsImxuZzAiLCJsYXQxIiwibG5nMSIsIkZJTFRFUl9UWVBFUyIsInJhbmdlIiwic2VsZWN0IiwiaW5wdXQiLCJ0aW1lUmFuZ2UiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJGSUxURVJfVklFV19UWVBFUyIsInNpZGUiLCJlbmxhcmdlZCIsIm1pbmlmaWVkIiwiREVGQVVMVF9GSUxURVJfVklFV19UWVBFIiwiU0NBTEVfVFlQRVMiLCJvcmRpbmFsIiwicXVhbnRpbGUiLCJxdWFudGl6ZSIsImxpbmVhciIsInNxcnQiLCJsb2ciLCJwb2ludCIsIlNDQUxFX0ZVTkMiLCJzY2FsZUxpbmVhciIsInNjYWxlUXVhbnRpemUiLCJzY2FsZVF1YW50aWxlIiwic2NhbGVPcmRpbmFsIiwic2NhbGVTcXJ0Iiwic2NhbGVMb2ciLCJzY2FsZVBvaW50IiwiQUxMX0ZJRUxEX1RZUEVTIiwiZGF0ZSIsImludGVnZXIiLCJyZWFsIiwic3RyaW5nIiwidGltZXN0YW1wIiwiYXJyYXkiLCJvYmplY3QiLCJnZW9hcnJvdyIsIlNPUlRfT1JERVIiLCJBU0NFTkRJTkciLCJERVNDRU5ESU5HIiwiVU5TT1JUIiwiVEFCTEVfT1BUSU9OIiwiU09SVF9BU0MiLCJTT1JUX0RFUyIsIlBJTiIsIlVOUElOIiwiQ09QWSIsIkZPUk1BVF9DT0xVTU4iLCJUQUJMRV9PUFRJT05fTElTVCIsInZhbHVlIiwiZGlzcGxheSIsImNvbmRpdGlvbiIsInByb3BzIiwic29ydE1vZGUiLCJpc1NvcnRlZCIsImlzUGlubmVkIiwiWUVMTE9XIiwiUElOSyIsIlBVUlBMRSIsIkJMVUUiLCJCTFVFMiIsIkJMVUUzIiwiR1JFRU4iLCJHUkVFTjIiLCJSRUQiLCJPUkFOR0UiLCJGSUVMRF9UWVBFX0RJU1BMQVkiLCJjb2xvciIsIkZJRUxEX0NPTE9SUyIsIkhJR0hMSUdIX0NPTE9SXzNEIiwiQ0hBTk5FTF9TQ0FMRVMiLCJyYWRpdXMiLCJzaXplIiwiY29sb3JBZ2dyIiwic2l6ZUFnZ3IiLCJBR0dSRUdBVElPTl9UWVBFUyIsImNvdW50IiwiYXZlcmFnZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSIsIm1vZGUiLCJjb3VudFVuaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVfT1BUSU9OUyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJrZXkiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwibGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyIsImxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zIiwib3JkaW5hbEZpZWxkU2NhbGVGdW5jdGlvbnMiLCJvcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMiLCJub3RTdXBwb3J0ZWRTY2FsZU9wdHMiLCJub3RTdXBwb3J0QWdnck9wdHMiLCJERUZBVUxUX0FHR1JFR0FUSU9OIiwiRklFTERfT1BUUyIsInR5cGUiLCJzY2FsZSIsImZvcm1hdCIsImxlZ2VuZCIsImQiLCJ0b29sdGlwIiwiVE9PTFRJUF9GT1JNQVRfVFlQRVMiLCJERUNJTUFMIiwiUEVSQ0VOVEFHRSIsIkRBVEUiLCJEQVRFX1RJTUUiLCJCT09MRUFOIiwiQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTIiwia2V5cyIsInJlZHVjZSIsImFjY3UiLCJmdCIsImxlbmd0aCIsIkRFRkFVTFRfTEFZRVJfQ09MT1IiLCJ0cmlwQXJjIiwiYmVnaW50cmlwX2xhdCIsImRyb3BvZmZfbGF0IiwicmVxdWVzdF9sYXQiLCJERUZBVUxUX1RPT0xUSVBfRklFTERTIiwiTk9fVkFMVUVfQ09MT1IiLCJERUZBVUxUX1BJQ0tJTkdfUkFESVVTIiwiT1ZFUkxBWV9CTEVORElOR1MiLCJub3JtYWwiLCJzY3JlZW4iLCJkYXJrZW4iLCJMQVlFUl9CTEVORElOR1MiLCJhZGRpdGl2ZSIsImJsZW5kRnVuYyIsImJsZW5kRXF1YXRpb24iLCJzdWJ0cmFjdGl2ZSIsIk1BWF9ERUZBVUxUX1RPT0xUSVBTIiwiUkVTT0xVVElPTlMiLCJPTkVfWCIsIlRXT19YIiwiRVhQT1JUX0lNR19SQVRJT1MiLCJTQ1JFRU4iLCJGT1VSX0JZX1RIUkVFIiwiU0lYVEVFTl9CWV9OSU5FIiwiQ1VTVE9NIiwiU2NyZWVuUmF0aW9PcHRpb24iLCJnZXRTaXplIiwic2NyZWVuVyIsInNjcmVlbkgiLCJoZWlnaHQiLCJDdXN0b21SYXRpb09wdGlvbiIsImhpZGRlbiIsIm1hcFciLCJtYXBIIiwiRm91ckJ5VGhyZWVSYXRpb09wdGlvbiIsIk1hdGgiLCJyb3VuZCIsIlNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbiIsIkVYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiYXZhaWxhYmxlIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUyIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJFWFBPUlRfREFUQV9UWVBFX09QVElPTlMiLCJ0b0xvd2VyQ2FzZSIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJKU09OIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkVESVQiLCJFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TIiwiZW50cnkiLCJnZXRIVE1MTWFwTW9kZVRpbGVVcmwiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwiREVGQVVMVF9VVUlEX0NPVU5UIiwiREVGQVVMVF9OT1RJRklDQVRJT05fTUVTU0FHRSIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTIiwiaW5mbyIsImVycm9yIiwid2FybmluZyIsInN1Y2Nlc3MiLCJERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MiLCJnbG9iYWwiLCJmaWxlIiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJCQVNFX1NQRUVEIiwiRlBTIiwiQU5JTUFUSU9OX1dJTkRPVyIsImZyZWUiLCJpbmNyZW1lbnRhbCIsImludGVydmFsIiwiREVGQVVMVF9USU1FX0ZPUk1BVCIsIlNQRUVEX0NPTlRST0xfUkFOR0UiLCJTUEVFRF9DT05UUk9MX1NURVAiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJHRU9DT0RFUl9MQVlFUl9JRCIsIkdFT0NPREVSX0dFT19PRkZTRVQiLCJHRU9DT0RFUl9JQ09OX0NPTE9SIiwiR0VPQ09ERVJfSUNPTl9TSVpFIiwiRURJVE9SX0xBWUVSX0lEIiwiRURJVE9SX0xBWUVSX1BJQ0tJTkdfUkFESVVTIiwiRURJVE9SX01PREVTIiwiRFJBV19QT0xZR09OIiwiRFJBV19SRUNUQU5HTEUiLCJQTE9UX1RZUEVTIiwiaGlzdG9ncmFtIiwibGluZUNoYXJ0IiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJNQVhfR1BVX0ZJTFRFUlMiLCJNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiIsIk1BUF9JTkZPX0NIQVJBQ1RFUiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJMT0FESU5HX01FVEhPRFMiLCJ1cGxvYWQiLCJzdG9yYWdlIiwiREVGQVVMVF9GRUFUVVJFX0ZMQUdTIiwiREFUQVNFVF9GT1JNQVRTIiwicm93IiwiY3N2Iiwia2VwbGVyZ2wiLCJhcnJvdyIsIk1BUF9DT05UUk9MUyIsInZpc2libGVMYXllcnMiLCJ0b2dnbGUzZCIsInNwbGl0TWFwIiwibWFwRHJhdyIsIm1hcExvY2FsZSIsImVmZmVjdCIsIlBST0pFQ1RFRF9QSVhFTF9TSVpFX01VTFRJUExJRVIiLCJURVhUX09VVExJTkVfTVVMVElQTElFUiIsImRhdGFUZXN0SWRzIiwiaW5mb0ljb24iLCJ3YXJuaW5nSWNvbiIsImVycm9ySWNvbiIsInN1Y2Nlc3NJY29uIiwiY2hlY2ttYXJrSWNvbiIsInNvcnRhYmxlTGF5ZXJJdGVtIiwic3RhdGljTGF5ZXJJdGVtIiwibGF5ZXJUaXRsZUVkaXRvciIsInJlbW92ZUxheWVyQWN0aW9uIiwibGF5ZXJQYW5lbCIsInNvcnRhYmxlRWZmZWN0SXRlbSIsInN0YXRpY0VmZmVjdEl0ZW0iLCJwcm92aWRlckxvYWRpbmciLCJwcm92aWRlck1hcEluZm9QYW5lbCIsInByb3ZpZGVyU2VsZWN0IiwiY2xvdWRIZWFkZXIiLCJwcm92aWRlclNoYXJlTWFwIiwiREVGQVVMVF9USU1FWk9ORSIsIkRFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFIiwiREVGQVVMVF9MSUdIVF9DT0xPUiIsIkRFRkFVTFRfTElHSFRfSU5URU5TSVRZIiwiREVGQVVMVF9TSEFET1dfSU5URU5TSVRZIiwiREVGQVVMVF9TSEFET1dfQ09MT1IiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVF9USU1FX01PREVTIiwicGljayIsImN1cnJlbnQiLCJhbmltYXRpb24iLCJERUZBVUxUX0xJR0hUX0FORF9TSEFET1dfUFJPUFMiLCJEYXRlIiwibm93IiwidGltZU1vZGUiLCJzaGFkb3dJbnRlbnNpdHkiLCJzaGFkb3dDb2xvciIsInN1bkxpZ2h0Q29sb3IiLCJzdW5MaWdodEludGVuc2l0eSIsImFtYmllbnRMaWdodENvbG9yIiwiYW1iaWVudExpZ2h0SW50ZW5zaXR5IiwiTElHSFRfQU5EX1NIQURPV19FRkZFQ1QiLCJuYW1lIiwicGFyYW1ldGVycyIsIm1pbiIsIm1heCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJkZWZhdWx0VmFsdWUiLCJQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTIiwiaW5rIiwiYnJpZ2h0bmVzc0NvbnRyYXN0IiwiaHVlU2F0dXJhdGlvbiIsInZpYnJhbmNlIiwic2VwaWEiLCJkb3RTY3JlZW4iLCJQSSIsImNvbG9ySGFsZnRvbmUiLCJub2lzZSIsInRyaWFuZ2xlQmx1ciIsInpvb21CbHVyIiwidGlsdFNoaWZ0IiwiZWRnZVdvcmsiLCJ2aWduZXR0ZSIsIm1hZ25pZnkiLCJoZXhhZ29uYWxQaXhlbGF0ZSIsIkVGRkVDVF9ERVNDUklQVElPTlMiLCJrZXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUVBOztBQVNBOzs7Ozs7OztBQUdPLElBQU1BLGFBQWEsR0FBRyxjQUF0Qjs7QUFDQSxJQUFNQyxzQkFBc0IsR0FBRyw0REFBL0I7O0FBQ0EsSUFBTUMsbUJBQW1CLGFBQU1ELHNCQUFOLGFBQXpCOztBQUNBLElBQU1FLHNCQUFzQixHQUFHLHdCQUEvQjs7QUFDQSxJQUFNQyxtQkFBbUIsR0FBRyxDQUE1QixDLENBRVA7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsV0FBdEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGNBQWMsR0FBRyxZQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMsV0FBVyxHQUFHLFNBQXBCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxlQUFlLEdBQUcsYUFBeEI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGNBQWMsR0FBRyxZQUF2QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMsZ0JBQWdCLEdBQUcsYUFBekI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGFBQWEsR0FBRyxXQUF0QjtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMs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LElBQUksRUFBRSxPQUFQO0FBQWdCTSxNQUFBQSxZQUFZLEVBQUUsRUFBOUI7QUFBa0NKLE1BQUFBLEdBQUcsRUFBRSxDQUF2QztBQUEwQ0MsTUFBQUEsR0FBRyxFQUFFO0FBQS9DLEtBQUQ7QUFISztBQTdMcUQsQ0FBbkU7O0FBb01BLElBQU1xQixtQkFBd0MsSUFDbkR6Qix1QkFEbUQsNkNBRWhEMUwsTUFBTSxDQUFDNEIsSUFBUCxDQUFZc0ssc0JBQVosRUFBb0NoTSxHQUFwQyxDQUF3QyxVQUFBa04sT0FBTztBQUFBLFNBQUlsQixzQkFBc0IsQ0FBQ2tCLE9BQUQsQ0FBMUI7QUFBQSxDQUEvQyxDQUZnRCxFQUE5QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtcbiAgc2NhbGVMaW5lYXIsXG4gIHNjYWxlUXVhbnRpemUsXG4gIHNjYWxlUXVhbnRpbGUsXG4gIHNjYWxlT3JkaW5hbCxcbiAgc2NhbGVTcXJ0LFxuICBzY2FsZUxvZyxcbiAgc2NhbGVQb2ludFxufSBmcm9tICdkMy1zY2FsZSc7XG5pbXBvcnQge1RPT0xUSVBfRk9STUFUX1RZUEVTfSBmcm9tICcuL3Rvb2x0aXAnO1xuaW1wb3J0IHtSR0JBQ29sb3IsIEVmZmVjdERlc2NyaXB0aW9uLCBCYXNlTWFwU3R5bGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZJWCA9ICdAQGtlcGxlci5nbC8nO1xuZXhwb3J0IGNvbnN0IEtFUExFUl9VTkZPTERFRF9CVUNLRVQgPSAnaHR0cHM6Ly9zdHVkaW8tcHVibGljLWRhdGEuZm91cnNxdWFyZS5jb20vc3RhdGljcy9rZXBsZXJnbCc7XG5leHBvcnQgY29uc3QgQkFTRU1BUF9JQ09OX1BSRUZJWCA9IGAke0tFUExFUl9VTkZPTERFRF9CVUNLRVR9L2dlb2R1ZGVgO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwgPSAnaHR0cHM6Ly9hcGkubWFwYm94LmNvbSc7XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbi8vIE1vZGFsIElkc1xuLyoqXG4gKiBNb2RhbCBpZDogZGF0YSB0YWJsZVxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREFUQV9UQUJMRV9JRCA9ICdkYXRhVGFibGUnO1xuLyoqXG4gKiBNb2RhbCBpZDogZGVsZXRlIGRhdGFzZXQgY29uZmlybSBkaWFsb2dcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFTEVURV9EQVRBX0lEID0gJ2RlbGV0ZURhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogYWRkIGRhdGEgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEFERF9EQVRBX0lEID0gJ2FkZERhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IGltYWdlIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1BR0VfSUQgPSAnZXhwb3J0SW1hZ2UnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IGRhdGEgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX0lEID0gJ2V4cG9ydERhdGEnO1xuLyoqXG4gKiBNb2RhbCBpZDogYWRkIGN1c3RvbSBtYXAgc3R5bGUgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEFERF9NQVBfU1RZTEVfSUQgPSAnYWRkTWFwU3R5bGUnO1xuLyoqXG4gKiBNb2RhbCBpZDogZXhwb3J0IG1hcCBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUF9JRCA9ICdleHBvcnRNYXAnO1xuLyoqXG4gKiBNb2RhbCBpZDogc2F2ZSBtYXAgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFNBVkVfTUFQX0lEID0gJ3NhdmVNYXAnO1xuLyoqXG4gKiBNb2RhbCBpZDogY29uZmlybSB0byBvdmVyd3JpdGUgc2F2ZWQgbWFwXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBPVkVSV1JJVEVfTUFQX0lEID0gJ292ZXJ3cml0ZU1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBzaGFyZSBtYXAgdXJsIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBTSEFSRV9NQVBfSUQgPSAnc2hhcmVNYXAnO1xuXG5leHBvcnQgY29uc3QgS0VQTEVSX0dMX05BTUUgPSAna2VwbGVyLmdsJztcblxuLy8gX19QQUNLQUdFX1ZFUlNJT05fXyBpcyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IEJhYmVsL1dlYnBhY2sgZHVyaW5nIHRoZSBidWlsZGluZyBwcm9jZXNzXG4vLyBTaW5jZSB3ZSBhcmUgaW5qZWN0aW5nIHRoaXMgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzIHdpdGggYmFiZWxcbi8vIHdoaWxlIGRldmVsb3BpbmcgVkVSU0lPTiBpcyBub3QgZGVmaW5lZCwgd2UgY2FwdHVyZSB0aGUgZXhjZXB0aW9uIGFuZCByZXR1cm5cbi8vIGFuIGVtcHR5IHN0cmluZyB3aGljaCB3aWxsIGFsbG93IHVzIHRvIHJldHJpZXZlIHRoZSBsYXRlc3QgdW1kIHZlcnNpb25cbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfVkVSU0lPTiA9ICdfX1BBQ0tBR0VfVkVSU0lPTl9fJztcbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfV0VCU0lURSA9ICdodHRwOi8va2VwbGVyLmdsLyc7XG5cbmV4cG9ydCBjb25zdCBESU1FTlNJT05TID0ge1xuICBzaWRlUGFuZWw6IHtcbiAgICB3aWR0aDogMzAwLFxuICAgIG1hcmdpbjoge3RvcDogMjAsIGxlZnQ6IDIwLCBib3R0b206IDMwLCByaWdodDogMjB9LFxuICAgIGhlYWRlckhlaWdodDogOTZcbiAgfSxcbiAgbWFwQ29udHJvbDoge1xuICAgIHdpZHRoOiAxODQsXG4gICAgcGFkZGluZzogMTIsXG4gICAgbWFwTGVnZW5kOiB7XG4gICAgICBwaW5uZWQ6IHtcbiAgICAgICAgYm90dG9tOiAyMixcbiAgICAgICAgcmlnaHQ6IDEyXG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFRoZW1lIG5hbWUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGBLZXBsZXJHbGAgYHByb3AudGhlbWVgLlxuICogQXZhaWxhYmxlIHRoZW1lcyBhcmUgYFRIRU1FLmxpZ2h0YCBhbmQgYFRIRU1FLmRhcmtgLiBEZWZhdWx0IHRoZW1lIGlzIGBUSEVNRS5kYXJrYFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7b2JqZWN0fVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBjb25zdCBNYXAgPSAoKSA9PiA8S2VwbGVyR2wgdGhlbWU9e1RIRU1FLmxpZ2h0fSBpZD1cIm1hcFwiLz5cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgVEhFTUUgPSBrZXlNaXJyb3Ioe1xuICBsaWdodDogbnVsbCxcbiAgZGFyazogbnVsbCxcbiAgYmFzZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBTSURFQkFSX1BBTkVMUyA9IFtcbiAge1xuICAgIGlkOiAnbGF5ZXInLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMubGF5ZXInLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnZmlsdGVyJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmZpbHRlcicsXG4gICAgb25DbGljazogbnVsbFxuICB9LFxuICB7XG4gICAgaWQ6ICdpbnRlcmFjdGlvbicsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5pbnRlcmFjdGlvbicsXG4gICAgb25DbGljazogbnVsbFxuICB9LFxuICB7XG4gICAgaWQ6ICdtYXAnLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMuYmFzZW1hcCcsXG4gICAgb25DbGljazogbnVsbFxuICB9XG5dO1xuXG5leHBvcnQgY29uc3QgUEFORUxfVklFV19UT0dHTEVTID0ga2V5TWlycm9yKHtcbiAgbGlzdDogbnVsbCxcbiAgYnlEYXRhc2V0OiBudWxsXG59KTtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IGNvbnN0IFBBTkVMUyA9IFNJREVCQVJfUEFORUxTO1xuXG4vLyBNQVAgU1RZTEVTXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JMREdfQ09MT1IgPSAnI0QxQ0VDNyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1IgPSAnIzAwMDAwMCc7XG5cbi8vIGFzc2lzdHMgaW4gaWRlbnRpZnlpbmcgYmFzZW1hcCBiYWNrZ3JvdW5kIGxheWVycyB3aGVuIGF1dG8tZGV0ZXJtaW5pbmcgdGhlIGJhY2tncm91bmRDb2xvclxuZXhwb3J0IGNvbnN0IEJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTID0gWydiYWNrZ3JvdW5kJywgJ2JnJywgJ2xhbmQnLCAnd2F0ZXInXTtcblxuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVBfU0xVRyA9ICdCYWNrZ3JvdW5kJztcblxuZXhwb3J0IGNvbnN0IFRIUkVFX0RfQlVJTERJTkdfTEFZRVJfR1JPVVBfU0xVRyA9ICczZCBidWlsZGluZyc7XG5cbmV4cG9ydCB0eXBlIERFRkFVTFRfTEFZRVJfR1JPVVAgPSB7XG4gIHNsdWc6IHN0cmluZztcbiAgZmlsdGVyOiAodmFsdWUpID0+IGJvb2xlYW47XG4gIGRlZmF1bHRWaXNpYmlsaXR5OiBib29sZWFuO1xuICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU/OiBib29sZWFuO1xuICBpc01vdmVUb1RvcEF2YWlsYWJsZT86IGJvb2xlYW47XG4gIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVA6IERFRkFVTFRfTEFZRVJfR1JPVVAgPSB7XG4gIHNsdWc6IEJBQ0tHUk9VTkRfTEFZRVJfR1JPVVBfU0xVRyxcbiAgZmlsdGVyOiAoKSA9PiBmYWxzZSxcbiAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlLFxuICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IGZhbHNlLFxuICBpc01vdmVUb1RvcEF2YWlsYWJsZTogZmFsc2UsXG4gIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0dST1VQUzogREVGQVVMVF9MQVlFUl9HUk9VUFtdID0gW1xuICB7XG4gICAgc2x1ZzogJ2xhYmVsJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KGxhYmVsfHBsYWNlLXxwb2ktKSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdyb2FkJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHJvYWR8cmFpbHdheXx0dW5uZWx8c3RyZWV0fGJyaWRnZSkpKD8hLipsYWJlbCkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdib3JkZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC9ib3JkZXJ8Ym91bmRhcmllc3xib3VuZGFyeS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdidWlsZGluZycsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goL2J1aWxkaW5nLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IHRydWUsXG4gICAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlOiB0cnVlLFxuICAgIGlzTW92ZVRvVG9wQXZhaWxhYmxlOiB0cnVlLFxuICAgIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU6IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnd2F0ZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0od2F0ZXJ8c3RyZWFtfGZlcnJ5KSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdsYW5kJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHBhcmtzfGxhbmRjb3ZlcnxpbmR1c3RyaWFsfHNhbmR8aGlsbHNoYWRlKSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogZmFsc2VcbiAgfSxcbiAge1xuICAgIHNsdWc6IFRIUkVFX0RfQlVJTERJTkdfTEFZRVJfR1JPVVBfU0xVRyxcbiAgICBmaWx0ZXI6ICgpID0+IGZhbHNlLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU6IHRydWUsXG4gICAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU6IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZTogdHJ1ZVxuICB9XG5dO1xuXG5leHBvcnQgY29uc3QgQkFTRV9NQVBfQ09MT1JfTU9ERVMgPSBrZXlNaXJyb3Ioe1xuICBOT05FOiBudWxsLFxuICBEQVJLOiBudWxsLFxuICBMSUdIVDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBOT19NQVBfSUQgPSAnbm9fbWFwJztcblxuLy8gRmFsbGJhY2sgc3R5bGUgdG8gdXNlIHdoZW4gc3R5bGVzIGFyZSBiZWluZyBmZXRjaGVkLCBvciB3aGVuXG4vLyBhIHN0eWxlIGZhaWxzIHRvIGZldGNoXG5leHBvcnQgY29uc3QgRU1QVFlfTUFQQk9YX1NUWUxFID0ge1xuICB2ZXJzaW9uOiA4LFxuICBzb3VyY2VzOiB7fSxcbiAgbGF5ZXJzOiBbXVxufTtcblxuZXhwb3J0IGNvbnN0IE5PX0JBU0VNQVBfSUNPTiA9IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L05PX0JBU0VNQVAucG5nYDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQX1NUWUxFUzogQmFzZU1hcFN0eWxlW10gPSBbXG4gIHtcbiAgICBpZDogTk9fTUFQX0lELFxuICAgIGxhYmVsOiAnTm8gQmFzZW1hcCcsXG4gICAgdXJsOiAnJyxcbiAgICBpY29uOiBOT19CQVNFTUFQX0lDT04sXG4gICAgbGF5ZXJHcm91cHM6IFtCQUNLR1JPVU5EX0xBWUVSX0dST1VQXSxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLk5PTkUsXG4gICAgc3R5bGU6IEVNUFRZX01BUEJPWF9TVFlMRVxuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrLW1hdHRlcicsXG4gICAgbGFiZWw6ICdEYXJrTWF0dGVyJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC9kYXJrLW1hdHRlci1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9EQVJLTUFUVEVSLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSyxcbiAgICBjb21wbGltZW50YXJ5U3R5bGVJZDogJ3Bvc2l0cm9uJ1xuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscycsXG4gICAgbGFiZWw6ICdEYXJrTWF0dGVyTm9MYWJlbHMnLFxuICAgIHVybDogJ2h0dHBzOi8vYmFzZW1hcHMuY2FydG9jZG4uY29tL2dsL2RhcmstbWF0dGVyLW5vbGFiZWxzLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L0RBUktNQVRURVJfTk9MQUJFTFMucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFMsXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLLFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAncG9zaXRyb24tbm9sYWJlbHMnXG4gIH0sXG4gIHtcbiAgICBpZDogJ3Bvc2l0cm9uJyxcbiAgICBsYWJlbDogJ1Bvc2l0cm9uJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC9wb3NpdHJvbi1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9QT1NJVFJPTi5wbmdgLFxuICAgIGxheWVyR3JvdXBzOiBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgICBjb2xvck1vZGU6IEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hULFxuICAgIGNvbXBsaW1lbnRhcnlTdHlsZUlkOiAnZGFyay1tYXR0ZXInXG4gIH0sXG4gIHtcbiAgICBpZDogJ3Bvc2l0cm9uLW5vbGFiZWxzJyxcbiAgICBsYWJlbDogJ1Bvc2l0cm9uTm9MYWJlbHMnLFxuICAgIHVybDogJ2h0dHBzOi8vYmFzZW1hcHMuY2FydG9jZG4uY29tL2dsL3Bvc2l0cm9uLW5vbGFiZWxzLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L1BPU0lUUk9OX05PTEFCRUxTLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQsXG4gICAgY29tcGxpbWVudGFyeVN0eWxlSWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscydcbiAgfSxcbiAge1xuICAgIGlkOiAndm95YWdlcicsXG4gICAgbGFiZWw6ICdWb3lhZ2VyJyxcbiAgICB1cmw6ICdodHRwczovL2Jhc2VtYXBzLmNhcnRvY2RuLmNvbS9nbC92b3lhZ2VyLWdsLXN0eWxlL3N0eWxlLmpzb24nLFxuICAgIGljb246IGAke0JBU0VNQVBfSUNPTl9QUkVGSVh9L1ZPWUFHRVIucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFMsXG4gICAgY29sb3JNb2RlOiBCQVNFX01BUF9DT0xPUl9NT0RFUy5MSUdIVCxcbiAgICBjb21wbGltZW50YXJ5U3R5bGVJZDogJ2RhcmstbWF0dGVyJ1xuICB9LFxuICB7XG4gICAgaWQ6ICd2b3lhZ2VyLW5vbGFiZWxzJyxcbiAgICBsYWJlbDogJ1ZveWFnZXJOb0xhYmVscycsXG4gICAgdXJsOiAnaHR0cHM6Ly9iYXNlbWFwcy5jYXJ0b2Nkbi5jb20vZ2wvdm95YWdlci1ub2xhYmVscy1nbC1zdHlsZS9zdHlsZS5qc29uJyxcbiAgICBpY29uOiBgJHtCQVNFTUFQX0lDT05fUFJFRklYfS9WT1lBR0VSX05PTEFCRUxTLnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICAgIGNvbG9yTW9kZTogQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQsXG4gICAgY29tcGxpbWVudGFyeVN0eWxlSWQ6ICdkYXJrLW1hdHRlci1ub2xhYmVscydcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT0pTT05fRklFTERTID0ge1xuICBnZW9qc29uOiBbJ19nZW9qc29uJywgJ2FsbF9wb2ludHMnLCAnZ2VvanNvbiddXG59O1xuXG5leHBvcnQgY29uc3QgSUNPTl9GSUVMRFMgPSB7XG4gIGljb246IFsnaWNvbiddXG59O1xuXG5leHBvcnQgY29uc3QgVFJJUF9QT0lOVF9GSUVMRFM6IFtzdHJpbmcsIHN0cmluZ11bXSA9IFtcbiAgWydsYXQnLCAnbG5nJ10sXG4gIFsnbGF0JywgJ2xvbiddLFxuICBbJ2xhdCcsICdsb25nJ10sXG4gIFsnbGF0aXR1ZGUnLCAnbG9uZ2l0dWRlJ11cbl07XG5cbmV4cG9ydCBjb25zdCBBTFRJVFVERV9GSUVMRFMgPSBbJ2FsdCcsICdhbHRpdHVkZSddO1xuZXhwb3J0IGNvbnN0IFRSSVBfQVJDX0ZJRUxEUyA9IHtcbiAgbGF0MDogJ2JlZ2ludHJpcCcsXG4gIGxuZzA6ICdiZWdpbnRyaXAnLFxuICBsYXQxOiAnZHJvcG9mZicsXG4gIGxuZzE6ICdkcm9wb2ZmJ1xufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFUyA9IGtleU1pcnJvcih7XG4gIHJhbmdlOiBudWxsLFxuICBzZWxlY3Q6IG51bGwsXG4gIGlucHV0OiBudWxsLFxuICB0aW1lUmFuZ2U6IG51bGwsXG4gIG11bHRpU2VsZWN0OiBudWxsLFxuICBwb2x5Z29uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9WSUVXX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgc2lkZTogbnVsbCxcbiAgZW5sYXJnZWQ6IG51bGwsXG4gIG1pbmlmaWVkOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMVEVSX1ZJRVdfVFlQRSA9IEZJTFRFUl9WSUVXX1RZUEVTLnNpZGU7XG5cbmV4cG9ydCBjb25zdCBTQ0FMRV9UWVBFUyA9IGtleU1pcnJvcih7XG4gIG9yZGluYWw6IG51bGwsXG4gIHF1YW50aWxlOiBudWxsLFxuICBxdWFudGl6ZTogbnVsbCxcbiAgbGluZWFyOiBudWxsLFxuICBzcXJ0OiBudWxsLFxuICBsb2c6IG51bGwsXG5cbiAgLy8gb3JkaW5hbCBkb21haW4gdG8gbGluZWFyIHJhbmdlXG4gIHBvaW50OiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDQUxFX0ZVTkMgPSB7XG4gIFtTQ0FMRV9UWVBFUy5saW5lYXJdOiBzY2FsZUxpbmVhcixcbiAgW1NDQUxFX1RZUEVTLnF1YW50aXplXTogc2NhbGVRdWFudGl6ZSxcbiAgW1NDQUxFX1RZUEVTLnF1YW50aWxlXTogc2NhbGVRdWFudGlsZSxcbiAgW1NDQUxFX1RZUEVTLm9yZGluYWxdOiBzY2FsZU9yZGluYWwsXG4gIFtTQ0FMRV9UWVBFUy5zcXJ0XTogc2NhbGVTcXJ0LFxuICBbU0NBTEVfVFlQRVMubG9nXTogc2NhbGVMb2csXG4gIFtTQ0FMRV9UWVBFUy5wb2ludF06IHNjYWxlUG9pbnRcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfRklFTERfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBib29sZWFuOiBudWxsLFxuICBkYXRlOiBudWxsLFxuICBnZW9qc29uOiBudWxsLFxuICBpbnRlZ2VyOiBudWxsLFxuICByZWFsOiBudWxsLFxuICBzdHJpbmc6IG51bGwsXG4gIHRpbWVzdGFtcDogbnVsbCxcbiAgcG9pbnQ6IG51bGwsXG4gIGFycmF5OiBudWxsLFxuICBvYmplY3Q6IG51bGwsXG4gIGdlb2Fycm93OiBudWxsXG59KTtcblxuLy8gRGF0YSBUYWJsZVxuZXhwb3J0IGNvbnN0IFNPUlRfT1JERVIgPSBrZXlNaXJyb3Ioe1xuICBBU0NFTkRJTkc6IG51bGwsXG4gIERFU0NFTkRJTkc6IG51bGwsXG4gIFVOU09SVDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT04gPSBrZXlNaXJyb3Ioe1xuICBTT1JUX0FTQzogbnVsbCxcbiAgU09SVF9ERVM6IG51bGwsXG4gIFVOU09SVDogbnVsbCxcbiAgUElOOiBudWxsLFxuICBVTlBJTjogbnVsbCxcbiAgQ09QWTogbnVsbCxcbiAgRk9STUFUX0NPTFVNTjogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBUQUJMRV9PUFRJT05fTElTVCA9IFtcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9BU0MsXG4gICAgZGlzcGxheTogJ1NvcnQgQXNjZW5kaW5nJyxcbiAgICBpY29uOiAnQXJyb3dVcCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5BU0NFTkRJTkdcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9ERVMsXG4gICAgZGlzcGxheTogJ1NvcnQgRGVzY2VuZGluZycsXG4gICAgaWNvbjogJ0Fycm93RG93bicsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5ERVNDRU5ESU5HXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOU09SVCxcbiAgICBkaXNwbGF5OiAnVW5zb3J0IENvbHVtbicsXG4gICAgaWNvbjogJ0NhbmNlbCcsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5pc1NvcnRlZFxuICB9LFxuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5QSU4sXG4gICAgZGlzcGxheTogJ1BpbiBDb2x1bW4nLFxuICAgIGljb246ICdQaW4nLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gIXByb3BzLmlzUGlubmVkXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogVEFCTEVfT1BUSU9OLlVOUElOLFxuICAgIGRpc3BsYXk6ICdVbnBpbiBDb2x1bW4nLFxuICAgIGljb246ICdDYW5jZWwnLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuaXNQaW5uZWRcbiAgfSxcbiAge3ZhbHVlOiBUQUJMRV9PUFRJT04uQ09QWSwgZGlzcGxheTogJ0NvcHkgQ29sdW1uJywgaWNvbjogJ0NsaXBib2FyZCd9LFxuICB7dmFsdWU6IFRBQkxFX09QVElPTi5GT1JNQVRfQ09MVU1OLCBkaXNwbGF5OiAnRm9ybWF0IENvbHVtbicsIGljb246ICdIYXNoJ31cbl07XG5cbmNvbnN0IFlFTExPVyA9ICcyNDgsIDE5NCwgMjgnO1xuY29uc3QgUElOSyA9ICcyNDIsIDE1MiwgMTYzJztcbmNvbnN0IFBVUlBMRSA9ICcxNjAsIDEwNiwgMjA2JztcbmNvbnN0IEJMVUUgPSAnMTQwLCAyMTAsIDIwNSc7XG5jb25zdCBCTFVFMiA9ICcxMDYsIDE2MCwgMjA2JztcbmNvbnN0IEJMVUUzID0gJzAsIDE3MiwgMjM3JztcbmNvbnN0IEdSRUVOID0gJzEwNiwgMTYwLCA1Nic7XG5jb25zdCBHUkVFTjIgPSAnNzQsIDE2NSwgMTUwJztcbmNvbnN0IFJFRCA9ICcyMzcsIDg4LCAxMDYnO1xuY29uc3QgT1JBTkdFID0gJzIzMSwgMTEwLCA1OCc7XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0RJU1BMQVkgPSB7XG4gIFtBTExfRklFTERfVFlQRVMuYm9vbGVhbl06IHtcbiAgICBsYWJlbDogJ2Jvb2wnLFxuICAgIGNvbG9yOiBQSU5LXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZGF0ZV06IHtcbiAgICBsYWJlbDogJ2RhdGUnLFxuICAgIGNvbG9yOiBQVVJQTEVcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9qc29uXToge1xuICAgIGxhYmVsOiAnZ2VvJyxcbiAgICBjb2xvcjogQkxVRTJcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5nZW9hcnJvd106IHtcbiAgICBsYWJlbDogJ2dlbycsXG4gICAgY29sb3I6IEJMVUUyXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICBsYWJlbDogJ2ludCcsXG4gICAgY29sb3I6IFlFTExPV1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgbGFiZWw6ICdmbG9hdCcsXG4gICAgY29sb3I6IFlFTExPV1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnN0cmluZ106IHtcbiAgICBsYWJlbDogJ3N0cmluZycsXG4gICAgY29sb3I6IEJMVUVcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXBdOiB7XG4gICAgbGFiZWw6ICd0aW1lJyxcbiAgICBjb2xvcjogR1JFRU5cbiAgfSxcbiAgLy8gZmllbGQgcGFpcnNcbiAgW0FMTF9GSUVMRF9UWVBFUy5wb2ludF06IHtcbiAgICBsYWJlbDogJ3BvaW50JyxcbiAgICBjb2xvcjogQkxVRTNcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5hcnJheV06IHtcbiAgICBsYWJlbDogJ2FycmF5JyxcbiAgICBjb2xvcjogT1JBTkdFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMub2JqZWN0XToge1xuICAgIGxhYmVsOiAnb2JqZWN0JyxcbiAgICBjb2xvcjogR1JFRU4yXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT0xPUlMgPSB7XG4gIGRlZmF1bHQ6IFJFRFxufTtcbmV4cG9ydCBjb25zdCBISUdITElHSF9DT0xPUl8zRDogUkdCQUNvbG9yID0gWzI1NSwgMjU1LCAyNTUsIDYwXTtcbmV4cG9ydCBjb25zdCBDSEFOTkVMX1NDQUxFUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICByYWRpdXM6IG51bGwsXG4gIHNpemU6IG51bGwsXG4gIGNvbG9yQWdncjogbnVsbCxcbiAgc2l6ZUFnZ3I6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRVM6IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JztcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJztcbiAgbWF4aW11bTogJ21heGltdW0nO1xuICBtaW5pbXVtOiAnbWluaW11bSc7XG4gIG1lZGlhbjogJ21lZGlhbic7XG4gIHN0ZGV2OiAnc3RkZXYnO1xuICBzdW06ICdzdW0nO1xuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJztcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZSc7XG4gIGNvdW50VW5pcXVlOiAnY291bnRVbmlxdWUnO1xufSA9IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JyxcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJyxcbiAgbWF4aW11bTogJ21heGltdW0nLFxuICBtaW5pbXVtOiAnbWluaW11bScsXG4gIG1lZGlhbjogJ21lZGlhbicsXG4gIHN0ZGV2OiAnc3RkZXYnLFxuICBzdW06ICdzdW0nLFxuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJyxcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZScsXG4gIGNvdW50VW5pcXVlOiAnY291bnRVbmlxdWUnXG59O1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRV9PUFRJT05TOiB7aWQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZ31bXSA9IE9iamVjdC5lbnRyaWVzKFxuICBBR0dSRUdBVElPTl9UWVBFU1xuKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgaWQ6IGtleSxcbiAgbGFiZWw6XG4gICAga2V5ID09PSAnc3RkZXYnXG4gICAgICA/ICdTdGQgRGV2aWF0aW9uJ1xuICAgICAgOiBrZXkgPT09ICdjb3VudFVuaXF1ZSdcbiAgICAgID8gJ0NvdW50IFVuaXF1ZSdcbiAgICAgIDogdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgPyB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpXG4gICAgICA6IHZhbHVlXG59KSk7XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtTQ0FMRV9UWVBFUy5zcXJ0XSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddXG59O1xuXG5leHBvcnQgY29uc3QgbGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2VdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1lZGlhbl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdGRldl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMudmFyaWFuY2VdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXVxuICB9LFxuXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMucG9pbnRdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtTQ0FMRV9UWVBFUy5wb2ludF1cbn07XG5cbmV4cG9ydCBjb25zdCBvcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMgPSB7XG4gIC8vIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbCwgU0NBTEVfVFlQRVMubGluZWFyXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubW9kZV06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRVbmlxdWVdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlXVxuICB9LFxuXG4gIC8vIEN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQgeWV0XG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydGVkU2NhbGVPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydEFnZ3JPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge30sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG4vKipcbiAqIERlZmF1bHQgYWdncmVnYXRpb24gYXJlIGJhc2VkIG9uIG9jdW50XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FHR1JFR0FUSU9OID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGVdXG4gIH0sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddXG4gIH1cbn07XG5cbi8qKlxuICogRGVmaW5lIHdoYXQgdHlwZSBvZiBzY2FsZSBvcGVyYXRpb24gaXMgYWxsb3dlZCBvbiBlYWNoIHR5cGUgb2YgZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9PUFRTID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLnN0cmluZ106IHtcbiAgICB0eXBlOiAnY2F0ZWdvcmljYWwnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5vcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgdHlwZTogJ251bWVyaWNhbCcsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLmxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5saW5lYXJGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuTk9ORSxcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREVDSU1BTCxcbiAgICAgICAgVE9PTFRJUF9GT1JNQVRfVFlQRVMuUEVSQ0VOVEFHRVxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXBdOiB7XG4gICAgdHlwZTogJ3RpbWUnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5saW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5EQVRFX1RJTUVcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLmxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5QRVJDRU5UQUdFXG4gICAgICBdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW5dOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5vcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9uc1xuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gZCxcbiAgICAgIHRvb2x0aXA6IFtUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLCBUT09MVElQX0ZPUk1BVF9UWVBFUy5CT09MRUFOXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5kYXRlXToge1xuICAgIHR5cGU6ICd0aW1lJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ub3JkaW5hbEZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5vcmRpbmFsRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbVE9PTFRJUF9GT1JNQVRfVFlQRVMuTk9ORSwgVE9PTFRJUF9GT1JNQVRfVFlQRVMuREFURV1cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvanNvbl06IHtcbiAgICB0eXBlOiAnZ2VvbWV0cnknLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5ub3RTdXBwb3J0ZWRTY2FsZU9wdHMsXG4gICAgICAuLi5ub3RTdXBwb3J0QWdnck9wdHNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+ICcuLi4nLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvYXJyb3ddOiB7XG4gICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubm90U3VwcG9ydGVkU2NhbGVPcHRzLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiAnLi4uJyxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLm9iamVjdF06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge30sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gJy4uLicsXG4gICAgICB0b29sdGlwOiBbXVxuICAgIH1cbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5hcnJheV06IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge30sXG4gICAgZm9ybWF0OiB7XG4gICAgICBsZWdlbmQ6IGQgPT4gJy4uLicsXG4gICAgICB0b29sdGlwOiBbXVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IENIQU5ORUxfU0NBTEVfU1VQUE9SVEVEX0ZJRUxEUyA9IE9iamVjdC5rZXlzKENIQU5ORUxfU0NBTEVTKS5yZWR1Y2UoXG4gIChhY2N1LCBrZXkpID0+ICh7XG4gICAgLi4uYWNjdSxcbiAgICBba2V5XTogT2JqZWN0LmtleXMoRklFTERfT1BUUykuZmlsdGVyKFxuICAgICAgZnQgPT4gRklFTERfT1BUU1tmdF0uc2NhbGVba2V5XSAmJiBPYmplY3Qua2V5cyhGSUVMRF9PUFRTW2Z0XS5zY2FsZVtrZXldKS5sZW5ndGhcbiAgICApXG4gIH0pLFxuICB7fSBhcyB7W2lkOiBzdHJpbmddOiBzdHJpbmdbXX1cbik7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0NPTE9SID0ge1xuICB0cmlwQXJjOiAnIzkyMjZDNicsXG4gIGJlZ2ludHJpcF9sYXQ6ICcjMUU5NkJFJyxcbiAgZHJvcG9mZl9sYXQ6ICcjRkY5OTFGJyxcbiAgcmVxdWVzdF9sYXQ6ICcjNTJBMzUzJ1xufTtcblxuLy8gbGV0IHVzZXIgcGFzcyBpbiBkZWZhdWx0IHRvb2x0aXAgZmllbGRzXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MVElQX0ZJRUxEUzogYW55W10gPSBbXTtcblxuZXhwb3J0IGNvbnN0IE5PX1ZBTFVFX0NPTE9SOiBSR0JBQ29sb3IgPSBbMCwgMCwgMCwgMF07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BJQ0tJTkdfUkFESVVTID0gMztcblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfQkxFTkRJTkdTID0ge1xuICBub3JtYWw6IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5ub3JtYWwnLFxuICAgIHZhbHVlOiAnbm9ybWFsJ1xuICB9LFxuICBzY3JlZW46IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5zY3JlZW4nLFxuICAgIHZhbHVlOiAnc2NyZWVuJ1xuICB9LFxuICBkYXJrZW46IHtcbiAgICBsYWJlbDogJ292ZXJsYXlCbGVuZGluZy5kYXJrZW4nLFxuICAgIHZhbHVlOiAnZGFya2VuJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfQkxFTkRJTkdTID0ge1xuICBhZGRpdGl2ZToge1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5hZGRpdGl2ZScsXG4gICAgYmxlbmRGdW5jOiBbJ1NSQ19BTFBIQScsICdEU1RfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiAnRlVOQ19BREQnXG4gIH0sXG4gIG5vcm1hbDoge1xuICAgIC8vIHJlZmVyZW5jZSB0b1xuICAgIC8vIGh0dHBzOi8vbGltbnUuY29tL3dlYmdsLWJsZW5kaW5nLXlvdXJlLXByb2JhYmx5LXdyb25nL1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5ub3JtYWwnLFxuICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnT05FX01JTlVTX1NSQ19BTFBIQScsICdPTkUnLCAnT05FX01JTlVTX1NSQ19BTFBIQSddLFxuICAgIGJsZW5kRXF1YXRpb246IFsnRlVOQ19BREQnLCAnRlVOQ19BREQnXVxuICB9LFxuICBzdWJ0cmFjdGl2ZToge1xuICAgIGxhYmVsOiAnbGF5ZXJCbGVuZGluZy5zdWJ0cmFjdGl2ZScsXG4gICAgYmxlbmRGdW5jOiBbJ09ORScsICdPTkVfTUlOVVNfRFNUX0NPTE9SJywgJ1NSQ19BTFBIQScsICdEU1RfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfU1VCVFJBQ1QnLCAnRlVOQ19BREQnXVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTUFYX0RFRkFVTFRfVE9PTFRJUFMgPSA1O1xuXG5leHBvcnQgY29uc3QgUkVTT0xVVElPTlMgPSBrZXlNaXJyb3Ioe1xuICBPTkVfWDogbnVsbCxcbiAgVFdPX1g6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SQVRJT1MgPSBrZXlNaXJyb3Ioe1xuICBTQ1JFRU46IG51bGwsXG4gIEZPVVJfQllfVEhSRUU6IG51bGwsXG4gIFNJWFRFRU5fQllfTklORTogbnVsbCxcbiAgQ1VTVE9NOiBudWxsXG59KTtcblxuZXhwb3J0IHR5cGUgRXhwb3J0SW1hZ2UgPSB7XG4gIHJhdGlvOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIHJlc29sdXRpb246IGtleW9mIHR5cGVvZiBSRVNPTFVUSU9OUztcbiAgbGVnZW5kOiBib29sZWFuO1xuICBtYXBIOiBudW1iZXI7XG4gIG1hcFc6IG51bWJlcjtcbiAgaW1hZ2VTaXplOiB7XG4gICAgem9vbU9mZnNldDogbnVtYmVyO1xuICAgIHNjYWxlOiBudW1iZXI7XG4gICAgaW1hZ2VXOiBudW1iZXI7XG4gICAgaW1hZ2VIOiBudW1iZXI7XG4gIH07XG4gIC8vIGV4cG9ydGluZyBzdGF0ZVxuICBpbWFnZURhdGFVcmk6IHN0cmluZztcbiAgZXhwb3J0aW5nOiBib29sZWFuO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuICBlcnJvcjogRXJyb3IgfCBmYWxzZTtcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrPzogYm9vbGVhbjtcbiAgLy8gVGhpcyBmaWVsZCB3YXMgbm90IGluIHRoZSAuZC50cyBmaWxlXG4gIGNlbnRlcjogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGdldFNpemU6IChzY3JlZW5XOiBudW1iZXIsIHNjcmVlbkg6IG51bWJlcikgPT4ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbn07XG5cbmV4cG9ydCBjb25zdCBTY3JlZW5SYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNDUkVFTixcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpb09yaWdpbmFsU2NyZWVuJyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7d2lkdGg6IHNjcmVlblcsIGhlaWdodDogc2NyZWVuSH0pXG59O1xuZXhwb3J0IGNvbnN0IEN1c3RvbVJhdGlvT3B0aW9uOiBJbWFnZVJhdGlvT3B0aW9uID0ge1xuICBpZDogRVhQT1JUX0lNR19SQVRJT1MuQ1VTVE9NLFxuICBoaWRkZW46IHRydWUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9DdXN0b20nLFxuICBnZXRTaXplOiAobWFwVywgbWFwSCkgPT4gKHt3aWR0aDogbWFwVywgaGVpZ2h0OiBtYXBIfSlcbn07XG5leHBvcnQgY29uc3QgRm91ckJ5VGhyZWVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLkZPVVJfQllfVEhSRUUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW80XzMnLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNzUpXG4gIH0pXG59O1xuZXhwb3J0IGNvbnN0IFNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSxcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpbzE2XzknLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNTYyNSlcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1HX1JBVElPX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSYXRpb09wdGlvbj4gPSBbXG4gIFNjcmVlblJhdGlvT3B0aW9uLFxuICBDdXN0b21SYXRpb09wdGlvbixcbiAgRm91ckJ5VGhyZWVSYXRpb09wdGlvbixcbiAgU2l4dGVlbkJ5TmluZVJhdGlvT3B0aW9uXG5dO1xuXG5leHBvcnQgdHlwZSBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgZ2V0U2l6ZTogKHNjcmVlblc6IG51bWJlciwgc2NyZWVuSDogbnVtYmVyKSA9PiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xufTtcblxuZXhwb3J0IGNvbnN0IE9uZVhSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGFiZWw6ICcxeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDEsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XLFxuICAgIGhlaWdodDogc2NyZWVuSFxuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IFR3b1hSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5UV09fWCxcbiAgbGFiZWw6ICcyeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDIsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XICogMixcbiAgICBoZWlnaHQ6IHNjcmVlbkggKiAyXG4gIH0pXG59O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SRVNPTFVUSU9OX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSZXNvbHV0aW9uT3B0aW9uPiA9IFtcbiAgT25lWFJlc29sdXRpb25PcHRpb24sXG4gIFR3b1hSZXNvbHV0aW9uT3B0aW9uXG5dO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfVFlQRSA9IGtleU1pcnJvcih7XG4gIENTVjogbnVsbFxuICAvLyBTSEFQRUZJTEU6IG51bGwsXG4gIC8vIEpTT046IG51bGwsXG4gIC8vIEdFT0pTT046IG51bGwsXG4gIC8vIFRPUE9KU09OOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyA9IFtcbiAge1xuICAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgICBsYWJlbDogRVhQT1JUX0RBVEFfVFlQRS5DU1YudG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfVxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuU0hBUEVGSUxFLFxuICAvLyAgIGxhYmVsOiAnc2hhcGVmaWxlJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH0sXG4gIC8vIHtcbiAgLy8gICBpZDogRVhQT1JUX0RBVEFfVFlQRS5KU09OLFxuICAvLyAgIGxhYmVsOiAnanNvbicsXG4gIC8vICAgYXZhaWxhYmxlOiBmYWxzZVxuICAvLyB9LFxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuR0VPSlNPTixcbiAgLy8gICBsYWJlbDogJ2dlb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfSxcbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLlRPUE9KU09OLFxuICAvLyAgIGxhYmVsOiAndG9wb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfVxuXTtcblxuLy8gRXhwb3J0IG1hcCB0eXBlc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIEhUTUw6IG51bGwsXG4gIEpTT046IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVTID0ga2V5TWlycm9yKHtcbiAgUkVBRDogbnVsbCxcbiAgRURJVDogbnVsbFxufSk7XG5cbi8vIEV4cG9ydCBtYXAgb3B0aW9uc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMgPSBPYmplY3QuZW50cmllcyhFWFBPUlRfTUFQX0ZPUk1BVFMpLm1hcChcbiAgKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiAoe1xuICAgIGlkOiBlbnRyeVswXSxcbiAgICBsYWJlbDogZW50cnlbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfSlcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIVE1MTWFwTW9kZVRpbGVVcmwobW9kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBodHRwczovL2QxYTNmNHNwYXp6cnA0LmNsb3VkZnJvbnQubmV0L2tlcGxlci5nbC9kb2N1bWVudGF0aW9uL21hcC0ke21vZGUudG9Mb3dlckNhc2UoKX0tbW9kZS5wbmdgO1xufVxuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyA9IE9iamVjdC5lbnRyaWVzKEVYUE9SVF9IVE1MX01BUF9NT0RFUykubWFwKFxuICAoZW50cnk6IFtzdHJpbmcsIGFueV0pID0+ICh7XG4gICAgaWQ6IGVudHJ5WzBdLFxuICAgIGxhYmVsOiBgbW9kYWwuZXhwb3J0TWFwLmh0bWwuJHtlbnRyeVsxXS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgYXZhaWxhYmxlOiB0cnVlLFxuICAgIHVybDogZ2V0SFRNTE1hcE1vZGVUaWxlVXJsKGVudHJ5WzFdKVxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVVVJRF9DT1VOVCA9IDY7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9NRVNTQUdFID0gJ01FU1NBR0VfTk9UX1BST1ZJREVEJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgaW5mbzogbnVsbCxcbiAgZXJyb3I6IG51bGwsXG4gIHdhcm5pbmc6IG51bGwsXG4gIHN1Y2Nlc3M6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTID0ga2V5TWlycm9yKHtcbiAgZ2xvYmFsOiBudWxsLFxuICBmaWxlOiBudWxsXG59KTtcblxuLy8gTWluaW11bSB0aW1lIGJldHdlZW4gaWRlbnRpY2FsIG5vdGlmaWNhdGlvbnMgYWJvdXQgZGVjay5nbCBlcnJvcnNcbmV4cG9ydCBjb25zdCBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRSA9IDMzMDtcblxuLy8gQW5pbWF0aW9uXG5leHBvcnQgY29uc3QgQkFTRV9TUEVFRCA9IDYwMDtcbmV4cG9ydCBjb25zdCBGUFMgPSA2MDtcblxuLyoqXG4gKiA0IEFuaW1hdGlvbiBXaW5kb3cgVHlwZXNcbiAqIDEuIGZyZWVcbiAqICB8LT4gIHwtPlxuICogQ3VycmVudCB0aW1lIGlzIGEgZml4ZWQgcmFuZ2UsIGFuaW1hdGlvbiBjb250cm9sbGVyIGNhbGxzIG5leHQgYW5pbWF0aW9uIGZyYW1lcyBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHdpbmRvd1xuICogVGhlIGluY3JlbWVudCBpZCBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiAyLiBpbmNyZW1lbnRhbFxuICogfCAgICB8LT5cbiAqIFNhbWUgYXMgZnJlZSwgY3VycmVudCB0aW1lIGlzIGEgZ3Jvd2luZyByYW5nZSwgb25seSB0aGUgbWF4IHZhbHVlIG9mIHJhbmdlIGluY3JlbWVudCBkdXJpbmcgYW5pbWF0aW9uLlxuICogVGhlIGluY3JlbWVudCBpcyBhbHNvIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDMuIHBvaW50XG4gKiBvIC0+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LCBhbmltYXRpb24gY29udHJvbGxlciBjYWxscyBuZXh0IGFuaW1hdGlvbiBmcmFtZSBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHBvaW50XG4gKiBUaGUgaW5jcmVtZW50IGlzIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDQuIGludGVydmFsXG4gKiBvIH4+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LiBBbiBhcnJheSBvZiBzb3J0ZWQgdGltZSBzdGVwcyBuZWVkIHRvIGJlIHByb3ZpZGVkLlxuICogYW5pbWF0aW9uIGNvbnRyb2xsZXIgY2FsbHMgbmV4dCBhbmltYXRpb24gYXQgYSBpbnRlcnZhbCB3aGVuIHRoZSBwb2ludCBqdW1wcyB0byB0aGUgbmV4dCBzdGVwXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRJT05fV0lORE9XID0ga2V5TWlycm9yKHtcbiAgZnJlZTogbnVsbCxcbiAgaW5jcmVtZW50YWw6IG51bGwsXG4gIHBvaW50OiBudWxsLFxuICBpbnRlcnZhbDogbnVsbFxufSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FX0ZPUk1BVCA9ICdNTS9ERC9ZWSBISDptbTpzc2EnO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfUkFOR0U6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMTBdO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfU1RFUCA9IDAuMDAxO1xuXG4vLyBHZW9jb2RlclxuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0RBVEFTRVRfTkFNRSA9ICdnZW9jb2Rlcl9kYXRhc2V0JztcbmV4cG9ydCBjb25zdCBHRU9DT0RFUl9MQVlFUl9JRCA9ICdnZW9jb2Rlcl9sYXllcic7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfR0VPX09GRlNFVCA9IDAuMDU7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9DT0xPUjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzI1NSwgMCwgMF07XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9TSVpFID0gODA7XG5cbi8vIEVkaXRvclxuZXhwb3J0IGNvbnN0IEVESVRPUl9MQVlFUl9JRCA9ICdrZXBsZXJfZWRpdG9yX2xheWVyJztcbmV4cG9ydCBjb25zdCBFRElUT1JfTEFZRVJfUElDS0lOR19SQURJVVMgPSA2O1xuZXhwb3J0IGNvbnN0IEVESVRPUl9NT0RFUyA9IHtcbiAgRFJBV19QT0xZR09OOiAnRFJBV19QT0xZR09OJyxcbiAgRFJBV19SRUNUQU5HTEU6ICdEUkFXX1JFQ1RBTkdMRScsXG4gIEVESVQ6ICdFRElUX1ZFUlRFWCdcbn07XG5cbmV4cG9ydCBjb25zdCBQTE9UX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgaGlzdG9ncmFtOiBudWxsLFxuICBsaW5lQ2hhcnQ6IG51bGxcbn0pO1xuXG4vLyBGaWx0ZXJcbmV4cG9ydCBjb25zdCBJTklUX0ZJTFRFUl9JVEVNU19JTl9EUk9QRE9XTiA9IDEwMDtcblxuLy8gR1BVIEZpbHRlcmluZ1xuLyoqXG4gKiBNYXggbnVtYmVyIG9mIGZpbHRlciB2YWx1ZSBidWZmZXJzIHRoYXQgZGVjay5nbCBwcm92aWRlc1xuICovXG5leHBvcnQgY29uc3QgTUFYX0dQVV9GSUxURVJTID0gNDtcbmV4cG9ydCBjb25zdCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiA9IHtcbiAgd2lkdGg6IDMwMCxcbiAgaGVpZ2h0OiAyMDBcbn07XG5cbmV4cG9ydCBjb25zdCBNQVBfSU5GT19DSEFSQUNURVIgPSB7XG4gIHRpdGxlOiAxMDAsXG4gIGRlc2NyaXB0aW9uOiAxMDBcbn07XG5cbi8vIExvYWQgZGF0YVxuZXhwb3J0IGNvbnN0IExPQURJTkdfTUVUSE9EUyA9IGtleU1pcnJvcih7XG4gIHVwbG9hZDogbnVsbCxcbiAgc3RvcmFnZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZFQVRVUkVfRkxBR1MgPSB7fTtcblxuZXhwb3J0IGNvbnN0IERBVEFTRVRfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIHJvdzogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgY3N2OiBudWxsLFxuICBrZXBsZXJnbDogbnVsbCxcbiAgYXJyb3c6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTUFQX0NPTlRST0xTID0ga2V5TWlycm9yKHtcbiAgdmlzaWJsZUxheWVyczogbnVsbCxcbiAgbWFwTGVnZW5kOiBudWxsLFxuICB0b2dnbGUzZDogbnVsbCxcbiAgc3BsaXRNYXA6IG51bGwsXG4gIG1hcERyYXc6IG51bGwsXG4gIG1hcExvY2FsZTogbnVsbCxcbiAgZWZmZWN0OiBudWxsXG59KTtcblxuLyoqXG4gKiBBIG11bHRpcGxpZXIgZm9yIHNjcmVlbi1zcGFjZSB3aWR0aC9zY2FsZSBmb3IgQXJjLCBMaW5lLCBJY29uIGFuZCBUZXh0IGxheWVycy5cbiAqIFJlcXVpcmVkIGluIG9yZGVyIHRvIG1haW50YWluIHRoZSBzYW1lIGFwcGVhcmFuY2UgYWZ0ZXIgdXBncmFkaW5nIHRvIGRlY2suZ2wgdjguNS5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS92aXNnbC9kZWNrLmdsL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZS1ndWlkZS5tZFxuICovXG5leHBvcnQgY29uc3QgUFJPSkVDVEVEX1BJWEVMX1NJWkVfTVVMVElQTElFUiA9IDIgLyAzO1xuXG4vKipcbiAqIE1heGltdW0gdmFsdWUgZm9yIHRleHQgb3V0bGluZSB3aWR0aFxuICovXG5leHBvcnQgY29uc3QgVEVYVF9PVVRMSU5FX01VTFRJUExJRVIgPSA1O1xuXG5leHBvcnQgY29uc3QgZGF0YVRlc3RJZHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGluZm9JY29uOiAnaW5mby1pY29uJyxcbiAgd2FybmluZ0ljb246ICd3YXJuaW5nLWljb24nLFxuICBlcnJvckljb246ICdlcnJvci1pY29uJyxcbiAgc3VjY2Vzc0ljb246ICdzdWNjZXNzLWljb24nLFxuICBjaGVja21hcmtJY29uOiAnY2hlY2ttYXJrLWljb24nLFxuICBzb3J0YWJsZUxheWVySXRlbTogJ3NvcnRhYmxlLWxheWVyLWl0ZW0nLFxuICBzdGF0aWNMYXllckl0ZW06ICdzdGF0aWMtbGF5ZXItaXRlbScsXG4gIGxheWVyVGl0bGVFZGl0b3I6ICdsYXllcl9fdGl0bGVfX2VkaXRvcicsXG4gIHJlbW92ZUxheWVyQWN0aW9uOiAncmVtb3ZlLWxheWVyLWFjdGlvbicsXG4gIGxheWVyUGFuZWw6ICdsYXllci1wYW5lbCcsXG4gIHNvcnRhYmxlRWZmZWN0SXRlbTogJ3NvcnRhYmxlLWVmZmVjdC1pdGVtJyxcbiAgc3RhdGljRWZmZWN0SXRlbTogJ3N0YXRpYy1lZmZlY3QtaXRlbScsXG4gIHByb3ZpZGVyTG9hZGluZzogJ3Byb3ZpZGVyLWxvYWRpbmcnLFxuICBwcm92aWRlck1hcEluZm9QYW5lbDogJ3Byb3ZpZGVyLW1hcC1pbmZvLXBhbmVsJyxcbiAgcHJvdmlkZXJTZWxlY3Q6ICdwcm92aWRlci1zZWxlY3QnLFxuICBjbG91ZEhlYWRlcjogJ2Nsb3VkLWhlYWRlcicsXG4gIHByb3ZpZGVyU2hhcmVNYXA6ICdwcm92aWRlci1zaGFyZS1tYXAnXG59O1xuXG4vLyBFZmZlY3RzXG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FWk9ORSA9ICdVVEMnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUE9TVF9QUk9DRVNTSU5HX0VGRkVDVF9UWVBFOiBzdHJpbmcgPSAnaW5rJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRfQ09MT1I6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSA9IFsyNTUsIDI1NSwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSA9IDE7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TSEFET1dfSU5URU5TSVRZID0gMC41O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0hBRE9XX0NPTE9SOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gPSBbMCwgMCwgMF07XG5cbmV4cG9ydCBjb25zdCBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVF9USU1FX01PREVTID0ge1xuICBwaWNrOiAncGljaycgYXMgJ3BpY2snLFxuICBjdXJyZW50OiAnY3VycmVudCcgYXMgJ2N1cnJlbnQnLFxuICBhbmltYXRpb246ICdhbmltYXRpb24nIGFzICdhbmltYXRpb24nXG59O1xuZXhwb3J0IHR5cGUgTGlnaHRBbmRTaGFkb3dFZmZlY3RUaW1lTW9kZSA9ICdwaWNrJyB8ICdjdXJyZW50JyB8ICdhbmltYXRpb24nO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElHSFRfQU5EX1NIQURPV19QUk9QUzoge1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgdGltZU1vZGU6IExpZ2h0QW5kU2hhZG93RWZmZWN0VGltZU1vZGU7XG4gIHNoYWRvd0ludGVuc2l0eTogbnVtYmVyO1xuICBzaGFkb3dDb2xvcjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICBzdW5MaWdodENvbG9yOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIHN1bkxpZ2h0SW50ZW5zaXR5OiBudW1iZXI7XG4gIGFtYmllbnRMaWdodENvbG9yOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIGFtYmllbnRMaWdodEludGVuc2l0eTogbnVtYmVyO1xufSA9IHtcbiAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICB0aW1lTW9kZTogTElHSFRfQU5EX1NIQURPV19FRkZFQ1RfVElNRV9NT0RFUy5waWNrIGFzIExpZ2h0QW5kU2hhZG93RWZmZWN0VGltZU1vZGUsXG4gIHNoYWRvd0ludGVuc2l0eTogREVGQVVMVF9TSEFET1dfSU5URU5TSVRZLFxuICBzaGFkb3dDb2xvcjogWy4uLkRFRkFVTFRfU0hBRE9XX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIHN1bkxpZ2h0Q29sb3I6IFsuLi5ERUZBVUxUX0xJR0hUX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIHN1bkxpZ2h0SW50ZW5zaXR5OiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWSxcbiAgYW1iaWVudExpZ2h0Q29sb3I6IFsuLi5ERUZBVUxUX0xJR0hUX0NPTE9SXSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIGFtYmllbnRMaWdodEludGVuc2l0eTogREVGQVVMVF9MSUdIVF9JTlRFTlNJVFlcbn07XG5cbmV4cG9ydCBjb25zdCBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVDogRWZmZWN0RGVzY3JpcHRpb24gPSB7XG4gIHR5cGU6ICdsaWdodEFuZFNoYWRvdycsXG4gIG5hbWU6ICdMaWdodCAmIFNoYWRvdycsXG4gIHBhcmFtZXRlcnM6IFtcbiAgICB7bmFtZTogJ3RpbWVzdGFtcCcsIG1pbjogMCwgbWF4OiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn0sXG4gICAge25hbWU6ICdzaGFkb3dJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX1NIQURPV19JTlRFTlNJVFl9LFxuICAgIHtuYW1lOiAnc3VuTGlnaHRJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWX0sXG4gICAge25hbWU6ICdhbWJpZW50TGlnaHRJbnRlbnNpdHknLCBtaW46IDAsIG1heDogMSwgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0xJR0hUX0lOVEVOU0lUWX0sXG4gICAge25hbWU6ICdzaGFkb3dDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9TSEFET1dfQ09MT1J9LFxuICAgIHtuYW1lOiAnc3VuTGlnaHRDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MSUdIVF9DT0xPUn0sXG4gICAge25hbWU6ICdhbWJpZW50TGlnaHRDb2xvcicsIHR5cGU6ICdjb2xvcicsIG1pbjogMCwgbWF4OiAyNTUsIGRlZmF1bHRWYWx1ZTogREVGQVVMVF9MSUdIVF9DT0xPUn1cbiAgXVxufTtcblxuZXhwb3J0IGNvbnN0IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFM6IHtba2V5OiBzdHJpbmddOiBFZmZlY3REZXNjcmlwdGlvbn0gPSB7XG4gIGluazoge1xuICAgIHR5cGU6ICdpbmsnLFxuICAgIG5hbWU6ICdJbmsnLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ3N0cmVuZ3RoJywgbWluOiAwLCBtYXg6IDF9XVxuICB9LFxuICBicmlnaHRuZXNzQ29udHJhc3Q6IHtcbiAgICB0eXBlOiAnYnJpZ2h0bmVzc0NvbnRyYXN0JyxcbiAgICBuYW1lOiAnQnJpZ2h0bmVzcyAmIENvbnRyYXN0JyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7bmFtZTogJ2JyaWdodG5lc3MnLCBtaW46IC0xLCBtYXg6IDF9LFxuICAgICAge25hbWU6ICdjb250cmFzdCcsIG1pbjogLTEsIG1heDogMX1cbiAgICBdXG4gIH0sXG4gIGh1ZVNhdHVyYXRpb246IHtcbiAgICB0eXBlOiAnaHVlU2F0dXJhdGlvbicsXG4gICAgbmFtZTogJ0h1ZSAmIFNhdHVyYXRpb24nLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtuYW1lOiAnaHVlJywgbWluOiAtMSwgbWF4OiAxfSxcbiAgICAgIHtuYW1lOiAnc2F0dXJhdGlvbicsIGRlZmF1bHRWYWx1ZTogMC4yNSwgbWluOiAtMSwgbWF4OiAxfVxuICAgIF1cbiAgfSxcbiAgdmlicmFuY2U6IHtcbiAgICB0eXBlOiAndmlicmFuY2UnLFxuICAgIG5hbWU6ICdWaWJyYW5jZScsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAnYW1vdW50JywgZGVmYXVsdFZhbHVlOiAwLjUsIG1pbjogLTEsIG1heDogMX1dXG4gIH0sXG4gIHNlcGlhOiB7XG4gICAgdHlwZTogJ3NlcGlhJyxcbiAgICBuYW1lOiAnU2VwaWEnLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ2Ftb3VudCcsIG1pbjogMCwgbWF4OiAxfV1cbiAgfSxcbiAgZG90U2NyZWVuOiB7XG4gICAgdHlwZTogJ2RvdFNjcmVlbicsXG4gICAgbmFtZTogJ0RvdCBTY3JlZW4nLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2FuZ2xlJyxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IE1hdGguUEkgLyAyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc2l6ZScsXG4gICAgICAgIG1pbjogMSxcbiAgICAgICAgbWF4OiAyMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NlbnRlcicsXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGxhYmVsOiBbJ0NlbnRlciBYJywgJ0NlbnRlciBZJ10sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogWzAuNSwgMC41XSxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDFcbiAgICAgIH1cbiAgICBdXG4gIH0sXG4gIGNvbG9ySGFsZnRvbmU6IHtcbiAgICB0eXBlOiAnY29sb3JIYWxmdG9uZScsXG4gICAgbmFtZTogJ0NvbG9yIEhhbGZ0b25lJyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdhbmdsZScsXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiBNYXRoLlBJIC8gMlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3NpemUnLFxuICAgICAgICBtaW46IDEsXG4gICAgICAgIG1heDogMjBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjZW50ZXInLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydDZW50ZXIgWCcsICdDZW50ZXIgWSddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFswLjUsIDAuNV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBub2lzZToge1xuICAgIHR5cGU6ICdub2lzZScsXG4gICAgbmFtZTogJ05vaXNlJyxcbiAgICBwYXJhbWV0ZXJzOiBbe25hbWU6ICdhbW91bnQnLCBtaW46IDAsIG1heDogMX1dXG4gIH0sXG4gIHRyaWFuZ2xlQmx1cjoge1xuICAgIHR5cGU6ICd0cmlhbmdsZUJsdXInLFxuICAgIG5hbWU6ICdCbHVyIChUcmlhbmdsZSknLFxuICAgIHBhcmFtZXRlcnM6IFt7bmFtZTogJ3JhZGl1cycsIG1pbjogMCwgbWF4OiAxMDB9XVxuICB9LFxuICB6b29tQmx1cjoge1xuICAgIHR5cGU6ICd6b29tQmx1cicsXG4gICAgbmFtZTogJ0JsdXIgKFpvb20pJyxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdHJlbmd0aCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMC4wNSxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjZW50ZXInLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydDZW50ZXIgWCcsICdDZW50ZXIgWSddLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IFswLjUsIDAuNV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICB0aWx0U2hpZnQ6IHtcbiAgICB0eXBlOiAndGlsdFNoaWZ0JyxcbiAgICBuYW1lOiAnQmx1ciAoVGlsdCBTaGlmdCknLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2JsdXJSYWRpdXMnLFxuICAgICAgICBsYWJlbDogJ0JsdXInLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogNTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdncmFkaWVudFJhZGl1cycsXG4gICAgICAgIGxhYmVsOiAnR3JhZGllbnQnLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogNDAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3RhcnQnLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydTdGFydCcsIGZhbHNlXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMC4wLCAwLjBdLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2VuZCcsXG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGxhYmVsOiBbJ0VuZCcsIGZhbHNlXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMSwgMV0sXG4gICAgICAgIG1pbjogMCxcbiAgICAgICAgbWF4OiAxXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBlZGdlV29yazoge1xuICAgIHR5cGU6ICdlZGdlV29yaycsXG4gICAgbmFtZTogJ0VkZ2Ugd29yaycsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAncmFkaXVzJywgbWluOiAxLCBtYXg6IDUwfV1cbiAgfSxcbiAgdmlnbmV0dGU6IHtcbiAgICB0eXBlOiAndmlnbmV0dGUnLFxuICAgIG5hbWU6ICdWaWduZXR0ZScsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge25hbWU6ICdhbW91bnQnLCBtaW46IDAsIG1heDogMX0sXG4gICAgICB7bmFtZTogJ3JhZGl1cycsIG1pbjogMCwgbWF4OiAxfVxuICAgIF1cbiAgfSxcbiAgbWFnbmlmeToge1xuICAgIHR5cGU6ICdtYWduaWZ5JyxcbiAgICBuYW1lOiAnTWFnbmlmeScsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnc2NyZWVuWFknLFxuICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICBsYWJlbDogWydQb3NpdGlvbiBYJywgJ1Bvc2l0aW9uIFknXSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMC41LCAwLjVdLFxuICAgICAgICBtaW46IDAsXG4gICAgICAgIG1heDogMVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3JhZGl1c1BpeGVscycsXG4gICAgICAgIGxhYmVsOiAnU2l6ZScsXG4gICAgICAgIG1pbjogMTAsXG4gICAgICAgIG1heDogNTAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnem9vbScsXG4gICAgICAgIG1pbjogMC41LFxuICAgICAgICBtYXg6IDUwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYm9yZGVyV2lkdGhQaXhlbHMnLFxuICAgICAgICBsYWJlbDogJ0JvcmRlciBXaWR0aCcsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMyxcbiAgICAgICAgbWluOiAwLFxuICAgICAgICBtYXg6IDUwXG4gICAgICB9XG4gICAgXVxuICB9LFxuICBoZXhhZ29uYWxQaXhlbGF0ZToge1xuICAgIHR5cGU6ICdoZXhhZ29uYWxQaXhlbGF0ZScsXG4gICAgbmFtZTogJ0hleGFnb25hbCBQaXhlbGF0ZScsXG4gICAgcGFyYW1ldGVyczogW3tuYW1lOiAnc2NhbGUnLCBkZWZhdWx0VmFsdWU6IDIwLCBtaW46IDEsIG1heDogNTB9XVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgRUZGRUNUX0RFU0NSSVBUSU9OUzogRWZmZWN0RGVzY3JpcHRpb25bXSA9IFtcbiAgTElHSFRfQU5EX1NIQURPV19FRkZFQ1QsXG4gIC4uLk9iamVjdC5rZXlzKFBPU1RQUk9DRVNTSU5HX0VGRkVDVFMpLm1hcChrZXlOYW1lID0+IFBPU1RQUk9DRVNTSU5HX0VGRkVDVFNba2V5TmFtZV0pXG5dO1xuXG5leHBvcnQgdHlwZSBFZmZlY3RUeXBlID1cbiAgfCAnaW5rJ1xuICB8ICdicmlnaHRuZXNzQ29udHJhc3QnXG4gIHwgJ2h1ZVNhdHVyYXRpb24nXG4gIHwgJ3ZpYnJhbmNlJ1xuICB8ICdzZXBpYSdcbiAgfCAnZG90U2NyZWVuJ1xuICB8ICdjb2xvckhhbGZ0b25lJ1xuICB8ICdub2lzZSdcbiAgfCAndHJpYW5nbGVCbHVyJ1xuICB8ICd6b29tQmx1cidcbiAgfCAndGlsdFNoaWZ0J1xuICB8ICdlZGdlV29yaydcbiAgfCAndmlnbmV0dGUnXG4gIHwgJ21hZ25pZnknXG4gIHwgJ2hleGFnb25hbFBpeGVsYXRlJ1xuICB8ICdsaWdodEFuZFNoYWRvdyc7XG4iXX0=