@kepler.gl/reducers 3.3.0-alpha.3 → 3.3.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/combined-updaters.d.ts +13 -0
- package/dist/combined-updaters.js +82 -3
- package/dist/composers.d.ts +1 -0
- package/dist/composers.js +3 -4
- package/dist/index.js +2 -3
- package/dist/layer-utils.js +4 -2
- package/dist/map-state-updaters.d.ts +12 -0
- package/dist/map-state-updaters.js +144 -11
- package/dist/map-state.js +6 -6
- package/dist/map-style-updaters.js +30 -31
- package/dist/map-style.js +2 -3
- package/dist/provider-state-updaters.js +5 -6
- package/dist/provider-state.js +2 -3
- package/dist/ui-state-updaters.d.ts +1 -0
- package/dist/ui-state-updaters.js +65 -50
- package/dist/ui-state.js +2 -3
- package/dist/vis-state-merger.js +3 -3
- package/dist/vis-state-updaters.js +107 -108
- package/dist/vis-state.js +2 -3
- package/package.json +18 -20
|
@@ -61,6 +61,19 @@ export declare const addDataToMapComposed: (state: KeplerGlState, { payload }: {
|
|
|
61
61
|
*
|
|
62
62
|
*/
|
|
63
63
|
export declare const combinedMapStyleChangeUpdater: (state: KeplerGlState, action: MapStyleChangeUpdaterAction) => KeplerGlState;
|
|
64
|
+
/**
|
|
65
|
+
* Derive globe basemap colors (surface / water / admin lines) from a map style and
|
|
66
|
+
* return an updated mapState with those colors written into `globe.config`. Used both
|
|
67
|
+
* when the base map style changes and when entering globe mode, so the globe always
|
|
68
|
+
* reflects the currently selected basemap instead of the static DEFAULT_GLOBE_CONFIG.
|
|
69
|
+
*/
|
|
70
|
+
export declare function syncGlobeConfigColorsToStyle(mapState: MapState, mapStyle: MapStyle, styleType: string): MapState;
|
|
71
|
+
/**
|
|
72
|
+
* Updater that switches the map view mode (2D / 3D / Globe). Runs the base map-state
|
|
73
|
+
* updater and, when entering globe mode, syncs the globe basemap colors to the
|
|
74
|
+
* currently selected map style so the globe doesn't show stale default colors.
|
|
75
|
+
*/
|
|
76
|
+
export declare const combinedSetMapViewModeUpdater: (state: KeplerGlState, action: MapStateActions.SetMapViewModeUpdaterAction) => KeplerGlState;
|
|
64
77
|
/**
|
|
65
78
|
* Updater that changes the layer type by calling `layerTypeChangeUpdater` on visState.
|
|
66
79
|
* In addition to that, if the new layer type has the `darkBaseMapEnabled` config
|
|
@@ -4,7 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.setMapSplitModeUpdater = exports.replaceDataInMapUpdater = exports.loadFilesSuccessUpdater = exports.isValidConfig = exports.defaultAddDataToMapOptions = exports.combinedSetMapViewModeUpdater = exports.combinedMapStyleChangeUpdater = exports.combinedLayerTypeChangeUpdater = exports.addDataToMapUpdater = exports.addDataToMapComposed = void 0;
|
|
8
|
+
exports.syncGlobeConfigColorsToStyle = syncGlobeConfigColorsToStyle;
|
|
9
|
+
exports.toggleSplitMapUpdater = void 0;
|
|
8
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
11
|
var _uiStateUpdaters = require("./ui-state-updaters");
|
|
10
12
|
var _visStateUpdaters = require("./vis-state-updaters");
|
|
@@ -15,6 +17,7 @@ var _composerHelpers = require("./composer-helpers");
|
|
|
15
17
|
var _utils = require("@kepler.gl/utils");
|
|
16
18
|
var _dataUtils = require("./data-utils");
|
|
17
19
|
var _constants = require("@kepler.gl/constants");
|
|
20
|
+
var _deckglLayers = require("@kepler.gl/deckgl-layers");
|
|
18
21
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
|
20
23
|
// Copyright contributors to the kepler.gl project
|
|
@@ -236,6 +239,7 @@ var updateDarkBaseMapLayers = function updateDarkBaseMapLayers(darkBaseMapEnable
|
|
|
236
239
|
*
|
|
237
240
|
*/
|
|
238
241
|
var combinedMapStyleChangeUpdater = exports.combinedMapStyleChangeUpdater = function combinedMapStyleChangeUpdater(state, action) {
|
|
242
|
+
var _mapState$globe;
|
|
239
243
|
var payload = action.payload;
|
|
240
244
|
var mapStyle = state.mapStyle;
|
|
241
245
|
var getColorMode = function getColorMode(key) {
|
|
@@ -244,7 +248,8 @@ var combinedMapStyleChangeUpdater = exports.combinedMapStyleChangeUpdater = func
|
|
|
244
248
|
};
|
|
245
249
|
var prevColorMode = getColorMode(mapStyle.styleType);
|
|
246
250
|
var nextColorMode = getColorMode(payload.styleType);
|
|
247
|
-
var visState = state.visState
|
|
251
|
+
var visState = state.visState,
|
|
252
|
+
mapState = state.mapState;
|
|
248
253
|
if (nextColorMode !== prevColorMode) {
|
|
249
254
|
switch (nextColorMode) {
|
|
250
255
|
case _constants.BASE_MAP_COLOR_MODES.DARK:
|
|
@@ -257,14 +262,88 @@ var combinedMapStyleChangeUpdater = exports.combinedMapStyleChangeUpdater = func
|
|
|
257
262
|
// do nothing
|
|
258
263
|
}
|
|
259
264
|
}
|
|
265
|
+
|
|
266
|
+
// Update globe config colors when style changes and globe is enabled
|
|
267
|
+
if ((_mapState$globe = mapState.globe) !== null && _mapState$globe !== void 0 && _mapState$globe.enabled) {
|
|
268
|
+
// Switching from "No Basemap" to a basemap - restore basemap sub-toggles
|
|
269
|
+
if (payload.styleType !== _constants.NO_MAP_ID && mapStyle.styleType === _constants.NO_MAP_ID) {
|
|
270
|
+
mapState = _objectSpread(_objectSpread({}, mapState), {}, {
|
|
271
|
+
globe: _objectSpread(_objectSpread({}, mapState.globe), {}, {
|
|
272
|
+
config: _objectSpread(_objectSpread({}, mapState.globe.config), {}, {
|
|
273
|
+
basemap: true,
|
|
274
|
+
labels: true,
|
|
275
|
+
adminLines: true,
|
|
276
|
+
water: true
|
|
277
|
+
})
|
|
278
|
+
})
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
mapState = syncGlobeConfigColorsToStyle(mapState, mapStyle, payload.styleType);
|
|
282
|
+
}
|
|
260
283
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
261
284
|
visState: visState,
|
|
285
|
+
mapState: mapState,
|
|
262
286
|
mapStyle: (0, _mapStyleUpdaters.mapStyleChangeUpdater)(mapStyle, {
|
|
263
287
|
payload: _objectSpread({}, payload)
|
|
264
288
|
})
|
|
265
289
|
});
|
|
266
290
|
};
|
|
267
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Derive globe basemap colors (surface / water / admin lines) from a map style and
|
|
294
|
+
* return an updated mapState with those colors written into `globe.config`. Used both
|
|
295
|
+
* when the base map style changes and when entering globe mode, so the globe always
|
|
296
|
+
* reflects the currently selected basemap instead of the static DEFAULT_GLOBE_CONFIG.
|
|
297
|
+
*/
|
|
298
|
+
function syncGlobeConfigColorsToStyle(mapState, mapStyle, styleType) {
|
|
299
|
+
var _mapState$globe2;
|
|
300
|
+
if (!((_mapState$globe2 = mapState.globe) !== null && _mapState$globe2 !== void 0 && _mapState$globe2.enabled)) {
|
|
301
|
+
return mapState;
|
|
302
|
+
}
|
|
303
|
+
var nextStyleObj = mapStyle.mapStyles[styleType];
|
|
304
|
+
var nextGlobeConfig = _objectSpread({}, mapState.globe.config);
|
|
305
|
+
if (styleType === _constants.NO_MAP_ID) {
|
|
306
|
+
nextGlobeConfig.basemap = false;
|
|
307
|
+
nextGlobeConfig.labels = false;
|
|
308
|
+
nextGlobeConfig.adminLines = false;
|
|
309
|
+
nextGlobeConfig.water = false;
|
|
310
|
+
nextGlobeConfig.surfaceColor = _deckglLayers.DEFAULT_BASEMAP_COLOR.backgroundFillColor;
|
|
311
|
+
nextGlobeConfig.waterColor = _deckglLayers.DEFAULT_BASEMAP_COLOR.basemapWaterFillColor;
|
|
312
|
+
nextGlobeConfig.adminLinesColor = _deckglLayers.DEFAULT_BASEMAP_COLOR.basemapAdminLineColor;
|
|
313
|
+
} else {
|
|
314
|
+
var basemapColors = nextStyleObj ? (0, _deckglLayers.getBasemapColorsForStyle)(styleType, {
|
|
315
|
+
style: nextStyleObj.style,
|
|
316
|
+
layerGroups: nextStyleObj.layerGroups
|
|
317
|
+
}) :
|
|
318
|
+
// Style object not yet loaded - use known presets by style type
|
|
319
|
+
(0, _deckglLayers.getBasemapColorsForStyle)(styleType);
|
|
320
|
+
nextGlobeConfig.surfaceColor = basemapColors.backgroundFillColor;
|
|
321
|
+
nextGlobeConfig.waterColor = basemapColors.basemapWaterFillColor;
|
|
322
|
+
nextGlobeConfig.adminLinesColor = basemapColors.basemapAdminLineColor;
|
|
323
|
+
}
|
|
324
|
+
return _objectSpread(_objectSpread({}, mapState), {}, {
|
|
325
|
+
globe: _objectSpread(_objectSpread({}, mapState.globe), {}, {
|
|
326
|
+
config: nextGlobeConfig
|
|
327
|
+
})
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Updater that switches the map view mode (2D / 3D / Globe). Runs the base map-state
|
|
333
|
+
* updater and, when entering globe mode, syncs the globe basemap colors to the
|
|
334
|
+
* currently selected map style so the globe doesn't show stale default colors.
|
|
335
|
+
*/
|
|
336
|
+
var combinedSetMapViewModeUpdater = exports.combinedSetMapViewModeUpdater = function combinedSetMapViewModeUpdater(state, action) {
|
|
337
|
+
var _mapState$globe3;
|
|
338
|
+
var mapState = (0, _mapStateUpdaters.setMapViewModeUpdater)(state.mapState, action);
|
|
339
|
+
if ((_mapState$globe3 = mapState.globe) !== null && _mapState$globe3 !== void 0 && _mapState$globe3.enabled) {
|
|
340
|
+
mapState = syncGlobeConfigColorsToStyle(mapState, state.mapStyle, state.mapStyle.styleType);
|
|
341
|
+
}
|
|
342
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
343
|
+
mapState: mapState
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
|
|
268
347
|
/**
|
|
269
348
|
* Updater that changes the layer type by calling `layerTypeChangeUpdater` on visState.
|
|
270
349
|
* In addition to that, if the new layer type has the `darkBaseMapEnabled` config
|
|
@@ -409,4 +488,4 @@ var replaceDataInMapUpdater = exports.replaceDataInMapUpdater = function replace
|
|
|
409
488
|
}));
|
|
410
489
|
return nextState;
|
|
411
490
|
};
|
|
412
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdWlTdGF0ZVVwZGF0ZXJzIiwicmVxdWlyZSIsIl92aXNTdGF0ZVVwZGF0ZXJzIiwiX21hcFN0YXRlVXBkYXRlcnMiLCJfbWFwU3R5bGVVcGRhdGVycyIsIl9wcm9jZXNzb3JzIiwiX2NvbXBvc2VySGVscGVycyIsIl91dGlscyIsIl9kYXRhVXRpbHMiLCJfY29uc3RhbnRzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJjb21iaW5lZFVwZGF0ZXJzIiwiaXNWYWxpZENvbmZpZyIsImV4cG9ydHMiLCJjb25maWciLCJpc1BsYWluT2JqZWN0IiwidmVyc2lvbiIsImRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zIiwiY2VudGVyTWFwIiwia2VlcEV4aXN0aW5nQ29uZmlnIiwiYXV0b0NyZWF0ZUxheWVycyIsImF1dG9DcmVhdGVUb29sdGlwcyIsImFkZERhdGFUb01hcFVwZGF0ZXIiLCJzdGF0ZSIsIl9yZWYiLCJfZGF0YXNldHMkIiwiX2RhdGFzZXRzJDIiLCJfZGF0YXNldHMkMyIsInBheWxvYWQiLCJkYXRhc2V0cyIsImluZm8iLCJvcHRpb25zIiwiaXNQcm9ncmVzc2l2ZUxvYWRpbmciLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJpZCIsInZpc1N0YXRlIiwiY29tcG9zZV8iLCJwaWNrXyIsImFwcGx5XyIsInZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIiLCJwYXJzZWRDb25maWciLCJzY2hlbWEiLCJwYXJzZVNhdmVkQ29uZmlnIiwib2xkTGF5ZXJzIiwibGF5ZXJzIiwiZmlsdGVyTmV3bHlBZGRlZExheWVycyIsIm5sIiwiZmluZCIsIm9sIiwiZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQiLCJib3VuZHMiLCJmaW5kTWFwQm91bmRzIiwidW5kZWZpbmVkIiwiaWZfIiwiQm9vbGVhbiIsInNldE1hcEluZm9VcGRhdGVyIiwid2l0aF8iLCJfcmVmMiIsInN0YXRlTWFwQ29uZmlnVXBkYXRlciIsInBheWxvYWRfIiwic3R5bGVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZVJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwidWlTdGF0ZUxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwibWVyZ2VfIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwicmVhZE9ubHkiLCJsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsImFjdGlvbiIsInBheWxvYWRzIiwiZmlsZXNUb0RhdGFQYXlsb2FkIiwicmVzdWx0IiwibmV4dFN0YXRlIiwiZmlsZUxvYWRpbmciLCJmaWxlTG9hZGluZ1Byb2dyZXNzIiwic3RhdGVXaXRoRGF0YSIsIm1hcCIsInAiLCJhZGREYXRhVG9NYXBDb21wb3NlZCIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZyIsIm92ZXJsYXlCbGVuZGluZyIsIk9WRVJMQVlfQkxFTkRJTkdTIiwibm9ybWFsIiwidmFsdWUiLCJ1cGRhdGVEYXJrQmFzZU1hcExheWVycyIsImRhcmtCYXNlTWFwRW5hYmxlZCIsImxheWVySWQiLCJsYXllciIsInZpc0NvbmZpZ1NldHRpbmdzIiwidmlzQ29uZmlnIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb21iaW5lZE1hcFN0eWxlQ2hhbmdlVXBkYXRlciIsIm1hcFN0eWxlIiwiZ2V0Q29sb3JNb2RlIiwia2V5IiwiX21hcFN0eWxlJG1hcFN0eWxlcyRrIiwibWFwU3R5bGVzIiwiY29sb3JNb2RlIiwicHJldkNvbG9yTW9kZSIsInN0eWxlVHlwZSIsIm5leHRDb2xvck1vZGUiLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIkRBUksiLCJzY3JlZW4iLCJMSUdIVCIsImRhcmtlbiIsIm1hcFN0eWxlQ2hhbmdlVXBkYXRlciIsImNvbWJpbmVkTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciIsIm9sZExheWVySW5kZXgiLCJmaW5kSW5kZXgiLCJvbGRMYXllciIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJuZXdMYXllciIsInRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIl9uZXdTdGF0ZSR1aVN0YXRlJG1hcCIsIm5ld1N0YXRlIiwidmlzU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJ1aVN0YXRlIiwidWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsIm1hcFN0YXRlIiwibWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJpc1NwbGl0Iiwic3BsaXRNYXBzIiwiaXNMZWdlbmRBY3RpdmUiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsImFjdGl2ZSIsInRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyIiwicGFuZWxJZCIsImluZGV4Iiwic2V0TWFwU3BsaXRNb2RlVXBkYXRlciIsIl9uZXdVaVN0YXRlJG1hcENvbnRybyIsIm1hcFNwbGl0TW9kZSIsInByZXZNb2RlIiwibmV3TWFwU3RhdGUiLCJtYXBTdGF0ZVNldE1hcFNwbGl0TW9kZVVwZGF0ZXIiLCJuZXdWaXNTdGF0ZSIsIk1hcFNwbGl0TW9kZSIsIlNJTkdMRV9NQVAiLCJEVUFMX01BUCIsIlNXSVBFX0NPTVBBUkUiLCJjb21wdXRlU3BsaXRNYXBMYXllcnMiLCJkdXBsaWNhdGUiLCJuZXdVaVN0YXRlIiwiZGVmYXVsdFJlcGxhY2VEYXRhVG9NYXBPcHRpb25zIiwicmVwbGFjZURhdGFJbk1hcFVwZGF0ZXIiLCJfcmVmMyIsImRhdGFzZXRUb1JlcGxhY2VJZCIsImRhdGFzZXRUb1VzZSIsIl9wYXlsb2FkJG9wdGlvbnMiLCJhZGREYXRhVG9NYXBPcHRpb25zIiwiZGF0YUlkVG9Vc2UiLCJwcmVwYXJlZFN0YXRlIiwicHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2UiXSwic291cmNlcyI6WyIuLi9zcmMvY29tYmluZWQtdXBkYXRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtcbiAgdG9nZ2xlTW9kYWxVcGRhdGVyLFxuICBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciBhcyB1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsXG4gIHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyLFxuICB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgYXMgdWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgdWlTdGF0ZVJlY2VpdmVNYXBDb25maWdVcGRhdGVyXG59IGZyb20gJy4vdWktc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgdXBkYXRlVmlzRGF0YVVwZGF0ZXIgYXMgdmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlcixcbiAgc2V0TWFwSW5mb1VwZGF0ZXIsXG4gIGxheWVyVHlwZUNoYW5nZVVwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyB2aXNTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgcHJlcGFyZVN0YXRlRm9yRGF0YXNldFJlcGxhY2Vcbn0gZnJvbSAnLi92aXMtc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICB0b2dnbGVTcGxpdE1hcFVwZGF0ZXIgYXMgbWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIsXG4gIHNldE1hcFNwbGl0TW9kZVVwZGF0ZXIgYXMgbWFwU3RhdGVTZXRNYXBTcGxpdE1vZGVVcGRhdGVyXG59IGZyb20gJy4vbWFwLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCB7XG4gIG1hcFN0eWxlQ2hhbmdlVXBkYXRlcixcbiAgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgYXMgc3R5bGVNYXBDb25maWdVcGRhdGVyXG59IGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcbmltcG9ydCB7ZmlsZXNUb0RhdGFQYXlsb2FkfSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtwYXlsb2FkXywgYXBwbHlfLCB3aXRoXywgaWZfLCBjb21wb3NlXywgbWVyZ2VfLCBwaWNrX30gZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcbmltcG9ydCB7TWFwU3RhdGUsIFVpU3RhdGUsIEFkZERhdGFUb01hcFBheWxvYWQsIFBhcnNlZENvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge01hcFN0eWxlfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5pbXBvcnQge1Byb3ZpZGVyU3RhdGV9IGZyb20gJy4vcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtcbiAgbG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXJBY3Rpb24sXG4gIE1hcFN0eWxlQ2hhbmdlVXBkYXRlckFjdGlvbixcbiAgTGF5ZXJUeXBlQ2hhbmdlVXBkYXRlckFjdGlvbixcbiAgVG9nZ2xlU3BsaXRNYXBVcGRhdGVyQWN0aW9uLFxuICBSZXBsYWNlRGF0YUluTWFwUGF5bG9hZCxcbiAgTWFwU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge1Zpc1N0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3NjaGVtYXMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtpc1BsYWluT2JqZWN0LCBjb21wdXRlU3BsaXRNYXBMYXllcnN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICcuL2RhdGEtdXRpbHMnO1xuaW1wb3J0IHtCQVNFX01BUF9DT0xPUl9NT0RFUywgT1ZFUkxBWV9CTEVORElOR1MsIE1hcFNwbGl0TW9kZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgdHlwZSBLZXBsZXJHbFN0YXRlID0ge1xuICB2aXNTdGF0ZTogVmlzU3RhdGU7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICBwcm92aWRlclN0YXRlOiBQcm92aWRlclN0YXRlO1xufTtcblxuLy8gY29tcG9zZSBhY3Rpb24gdG8gYXBwbHkgcmVzdWx0IG11bHRpcGxlIHJlZHVjZXJzLCB3aXRoIHRoZSBvdXRwdXQgb2Ygb25lXG5cbi8qKlxuICogU29tZSBhY3Rpb25zIHdpbGwgYWZmZWN0IHRoZSBlbnRpcmUga2VwbGVyLmxnIGluc3RhbmNlIHN0YXRlLlxuICogVGhlIHVwZGF0ZXJzIGZvciB0aGVzZSBhY3Rpb25zIGlzIGV4cG9ydGVkIGFzIGBjb21iaW5lZFVwZGF0ZXJzYC4gVGhlc2UgdXBkYXRlciB0YWtlIHRoZSBlbnRpcmUgaW5zdGFuY2Ugc3RhdGVcbiAqIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHtjb21iaW5lZFVwZGF0ZXJzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbiAqIC8vIFJvb3QgUmVkdWNlclxuICogY29uc3QgcmVkdWNlcnMgPSBjb21iaW5lUmVkdWNlcnMoe1xuICogIGtlcGxlckdsOiBrZXBsZXJHbFJlZHVjZXIsXG4gKiAgYXBwOiBhcHBSZWR1Y2VyXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBjb21wb3NlZFJlZHVjZXIgPSAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICogIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAqICAgIC8vIGFkZCBkYXRhIHRvIG1hcCBhZnRlciByZWNlaXZpbmcgZGF0YSBmcm9tIHJlbW90ZSBzb3VyY2VzXG4gKiAgICBjYXNlICdMT0FEX1JFTU9URV9SRVNPVVJDRV9TVUNDRVNTJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICAvLyBwYXNzIGluIGtlcGxlci5nbCBpbnN0YW5jZSBzdGF0ZSB0byBjb21iaW5lZFVwZGF0ZXJzXG4gKiAgICAgICAgICBtYXA6ICBjb21iaW5lZFVwZGF0ZXJzLmFkZERhdGFUb01hcFVwZGF0ZXIoXG4gKiAgICAgICAgICAgc3RhdGUua2VwbGVyR2wubWFwLFxuICogICAgICAgICAgIHtcbiAqICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAqICAgICAgICAgICAgICAgZGF0YXNldHM6IGFjdGlvbi5kYXRhc2V0cyxcbiAqICAgICAgICAgICAgICAgb3B0aW9uczoge3JlYWRPbmx5OiB0cnVlfSxcbiAqICAgICAgICAgICAgICAgY29uZmlnOiBhY3Rpb24uY29uZmlnXG4gKiAgICAgICAgICAgICAgfVxuICogICAgICAgICAgICB9XG4gKiAgICAgICAgICApXG4gKiAgICAgICAgfVxuICogICAgICB9O1xuICogIH1cbiAqICByZXR1cm4gcmVkdWNlcnMoc3RhdGUsIGFjdGlvbik7XG4gKiB9O1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGNvbXBvc2VkUmVkdWNlcjtcbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IGNvbWJpbmVkVXBkYXRlcnMgPSBudWxsO1xuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRDb25maWcgPSBjb25maWcgPT5cbiAgaXNQbGFpbk9iamVjdChjb25maWcpICYmIGlzUGxhaW5PYmplY3QoY29uZmlnLmNvbmZpZykgJiYgY29uZmlnLnZlcnNpb247XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyA9IHtcbiAgY2VudGVyTWFwOiB0cnVlLFxuICBrZWVwRXhpc3RpbmdDb25maWc6IGZhbHNlLFxuICBhdXRvQ3JlYXRlTGF5ZXJzOiB0cnVlLFxuICBhdXRvQ3JlYXRlVG9vbHRpcHM6IHRydWVcbn07XG5cbi8qKlxuICogQ29tYmluZSBkYXRhIGFuZCBmdWxsIGNvbmZpZ3VyYXRpb24gdXBkYXRlIGluIGEgc2luZ2xlIGFjdGlvblxuICpcbiAqIEBtZW1iZXJvZiBjb21iaW5lZFVwZGF0ZXJzXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhdGUga2VwbGVyLmdsIGluc3RhbmNlIHN0YXRlLCBjb250YWluaW5nIGFsbCBzdWJyZWR1Y2VyIHN0YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gYWN0aW9uXG4gKiBAcGFyYW0ge09iamVjdH0gYWN0aW9uLnBheWxvYWQgYHtkYXRhc2V0cywgb3B0aW9ucywgY29uZmlnfWBcbiAqIEBwYXJhbSBhY3Rpb24ucGF5bG9hZC5kYXRhc2V0cyAtICoqKnJlcXVpcmVkKiogZGF0YXNldHMgY2FuIGJlIGEgZGF0YXNldCBvciBhbiBhcnJheSBvZiBkYXRhc2V0c1xuICogRWFjaCBkYXRhc2V0IG9iamVjdCBuZWVkcyB0byBoYXZlIGBpbmZvYCBhbmQgYGRhdGFgIHByb3BlcnR5LlxuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5vcHRpb25zXSBvcHRpb24gb2JqZWN0IGB7Y2VudGVyTWFwOiB0cnVlfWBcbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQuY29uZmlnXSBtYXAgY29uZmlnXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLmluZm9dIG1hcCBpbmZvIGNvbnRhaW5zIHRpdGxlIGFuZCBkZXNjcmlwdGlvblxuICogQHJldHVybnMgbmV4dFN0YXRlXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gRGF0YXNldFxuICogQHByb3BlcnR5IGluZm8gLWluZm8gb2YgYSBkYXRhc2V0XG4gKiBAcHJvcGVydHkgaW5mby5pZCAtIGlkIG9mIHRoaXMgZGF0YXNldC4gSWYgY29uZmlnIGlzIGRlZmluZWQsIGBpZGAgc2hvdWxkIG1hdGNoZXMgdGhlIGBkYXRhSWRgIGluIGNvbmZpZy5cbiAqIEBwcm9wZXJ0eSBpbmZvLmxhYmVsIC0gQSBkaXNwbGF5IG5hbWUgb2YgdGhpcyBkYXRhc2V0XG4gKiBAcHJvcGVydHkgZGF0YSAtICoqKnJlcXVpcmVkKiogVGhlIGRhdGEgb2JqZWN0LCBpbiBhIHRhYnVsYXIgZm9ybWF0IHdpdGggMiBwcm9wZXJ0aWVzIGBmaWVsZHNgIGFuZCBgcm93c2BcbiAqIEBwcm9wZXJ0eSBkYXRhLmZpZWxkcyAtICoqKnJlcXVpcmVkKiogQXJyYXkgb2YgZmllbGRzLFxuICogQHByb3BlcnR5IGRhdGEuZmllbGRzLm5hbWUgLSAqKipyZXF1aXJlZCoqIE5hbWUgb2YgdGhlIGZpZWxkLFxuICogQHByb3BlcnR5IGRhdGEucm93cyAtICoqKnJlcXVpcmVkKiogQXJyYXkgb2Ygcm93cywgaW4gYSB0YWJ1bGFyIGZvcm1hdCB3aXRoIGBmaWVsZHNgIGFuZCBgcm93c2BcbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBhZGREYXRhVG9NYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAge3BheWxvYWR9OiB7cGF5bG9hZDogQWRkRGF0YVRvTWFwUGF5bG9hZH1cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCB7ZGF0YXNldHMsIGNvbmZpZywgaW5mb30gPSBwYXlsb2FkO1xuXG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgLi4uZGVmYXVsdEFkZERhdGFUb01hcE9wdGlvbnMsXG4gICAgLi4ucGF5bG9hZC5vcHRpb25zXG4gIH07XG5cbiAgLy8gY2hlY2sgaWYgcHJvZ3Jlc3NpdmUgbG9hZGluZyBkYXRhc2V0IGJ5IGJhdGNoZXMsIGFuZCB1cGRhdGUgdmlzU3RhdGUgZGlyZWN0bHlcbiAgY29uc3QgaXNQcm9ncmVzc2l2ZUxvYWRpbmcgPVxuICAgIEFycmF5LmlzQXJyYXkoZGF0YXNldHMpICYmXG4gICAgZGF0YXNldHNbMF0/LmluZm8uZm9ybWF0ID09PSAnYXJyb3cnICYmXG4gICAgZGF0YXNldHNbMF0/LmluZm8uaWQgJiZcbiAgICBkYXRhc2V0c1swXT8uaW5mby5pZCBpbiBzdGF0ZS52aXNTdGF0ZS5kYXRhc2V0cztcbiAgaWYgKGlzUHJvZ3Jlc3NpdmVMb2FkaW5nKSB7XG4gICAgcmV0dXJuIGNvbXBvc2VfPEtlcGxlckdsU3RhdGU+KFtcbiAgICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgICBhcHBseV88VmlzU3RhdGUsIGFueT4odmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlciwge1xuICAgICAgICAgIGRhdGFzZXRzLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgY29uZmlnXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgXSkoc3RhdGUpO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBsZXQgcGFyc2VkQ29uZmlnOiBQYXJzZWRDb25maWcgPSBjb25maWc7XG5cbiAgaWYgKGlzVmFsaWRDb25maWcoY29uZmlnKSkge1xuICAgIC8vIGlmIHBhc3NlZCBpbiBzYXZlZCBjb25maWdcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcGFyc2VkQ29uZmlnID0gc3RhdGUudmlzU3RhdGUuc2NoZW1hLnBhcnNlU2F2ZWRDb25maWcoY29uZmlnKTtcbiAgfVxuICBjb25zdCBvbGRMYXllcnMgPSBzdGF0ZS52aXNTdGF0ZS5sYXllcnM7XG4gIGNvbnN0IGZpbHRlck5ld2x5QWRkZWRMYXllcnMgPSAobGF5ZXJzOiBMYXllcltdKSA9PlxuICAgIGxheWVycy5maWx0ZXIobmwgPT4gIW9sZExheWVycy5maW5kKG9sID0+IG9sID09PSBubCkpO1xuXG4gIC8vIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZCwgdG8gbWFrZSB0eXBlc2NyaXB0IGhhcHB5XG4gIGNvbnN0IGZpbmRNYXBCb3VuZHNJZkNlbnRlcmVkID0gKGxheWVyczogTGF5ZXJbXSkgPT4ge1xuICAgIGNvbnN0IGJvdW5kcyA9IG9wdGlvbnMuY2VudGVyTWFwICYmIGZpbmRNYXBCb3VuZHMobGF5ZXJzKTtcbiAgICByZXR1cm4gYm91bmRzID8gYm91bmRzIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIHJldHVybiBjb21wb3NlXzxLZXBsZXJHbFN0YXRlPihbXG4gICAgcGlja18oJ3Zpc1N0YXRlJykoXG4gICAgICAvLyB0aGlzIHBhcnQgY2FuIGJlIGFzeW5jXG4gICAgICBhcHBseV88VmlzU3RhdGUsIGFueT4odmlzU3RhdGVVcGRhdGVWaXNEYXRhVXBkYXRlciwge1xuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY29uZmlnOiBwYXJzZWRDb25maWdcbiAgICAgIH0pXG4gICAgKSxcblxuICAgIGlmXyhCb29sZWFuKGluZm8pLCBwaWNrXygndmlzU3RhdGUnKShhcHBseV88VmlzU3RhdGUsIGFueT4oc2V0TWFwSW5mb1VwZGF0ZXIsIHtpbmZvfSkpKSxcbiAgICAvLyBOb3RlIHRoYXQgZml0IGJvdW5kcyBoZXJlIHdvbid0IGJlIGNhbGxlZCBpbiBjYXNlIGRhdGFzZXRzIGFyZSBjcmVhdGVkIGluIFRhc2tzLlxuICAgIC8vIEEgc2VwYXJhdGUgVGFzayB0byB1cGRhdGUgYm91bmRzIGlzIGNyZWF0ZWQgb25jZSB0aGUgZGF0YXNldHMgYXJlIHJlYWR5LlxuICAgIHdpdGhfKCh7dmlzU3RhdGV9KSA9PlxuICAgICAgcGlja18oJ21hcFN0YXRlJykoXG4gICAgICAgIGFwcGx5XyhcbiAgICAgICAgICBzdGF0ZU1hcENvbmZpZ1VwZGF0ZXIsXG4gICAgICAgICAgcGF5bG9hZF8oe1xuICAgICAgICAgICAgY29uZmlnOiBwYXJzZWRDb25maWcsXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgYm91bmRzOiBmaW5kTWFwQm91bmRzSWZDZW50ZXJlZChmaWx0ZXJOZXdseUFkZGVkTGF5ZXJzKHZpc1N0YXRlLmxheWVycykpXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgcGlja18oJ21hcFN0eWxlJykoYXBwbHlfKHN0eWxlTWFwQ29uZmlnVXBkYXRlciwgcGF5bG9hZF8oe2NvbmZpZzogcGFyc2VkQ29uZmlnLCBvcHRpb25zfSkpKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKFxuICAgICAgYXBwbHlfKHVpU3RhdGVSZWNlaXZlTWFwQ29uZmlnVXBkYXRlciwgcGF5bG9hZF8oe2NvbmZpZzogcGFyc2VkQ29uZmlnLCBvcHRpb25zfSkpXG4gICAgKSxcbiAgICBwaWNrXygndWlTdGF0ZScpKGFwcGx5Xyh1aVN0YXRlTG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIsIHBheWxvYWRfKG51bGwpKSksXG5cbiAgICBwaWNrXygndWlTdGF0ZScpKGFwcGx5Xyh0b2dnbGVNb2RhbFVwZGF0ZXIsIHBheWxvYWRfKG51bGwpKSksXG4gICAgcGlja18oJ3VpU3RhdGUnKShcbiAgICAgIG1lcmdlXyhcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICdyZWFkT25seScpXG4gICAgICAgICAgPyB7cmVhZE9ubHk6IG9wdGlvbnMucmVhZE9ubHl9XG4gICAgICAgICAgOiB7fVxuICAgICAgKVxuICAgIClcbiAgXSkoc3RhdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIC8vIHN0aWxsIG1vcmUgdG8gbG9hZFxuICBjb25zdCBwYXlsb2FkcyA9IGZpbGVzVG9EYXRhUGF5bG9hZChhY3Rpb24ucmVzdWx0KTtcbiAgY29uc3QgbmV4dFN0YXRlID0gY29tcG9zZV8oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgbWVyZ2VfKHtcbiAgICAgICAgZmlsZUxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBmaWxlTG9hZGluZ1Byb2dyZXNzOiB7fVxuICAgICAgfSlcbiAgICApXG4gIF0pKHN0YXRlKTtcbiAgLy8gbWFrZSBtdWx0aXBsZSBhZGQgZGF0YSB0byBtYXAgY2FsbHNcbiAgY29uc3Qgc3RhdGVXaXRoRGF0YSA9IGNvbXBvc2VfKHBheWxvYWRzLm1hcChwID0+IGFwcGx5XyhhZGREYXRhVG9NYXBVcGRhdGVyLCBwYXlsb2FkXyhwKSkpKShcbiAgICBuZXh0U3RhdGVcbiAgKTtcbiAgcmV0dXJuIHN0YXRlV2l0aERhdGEgYXMgS2VwbGVyR2xTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGREYXRhVG9NYXBDb21wb3NlZCA9IGFkZERhdGFUb01hcFVwZGF0ZXI7XG5cbi8qKlxuICogSGVscGVyIHdoaWNoIHVwZGF0ZXMgbWFwIG92ZXJsYXkgYmxlbmRpbmcgbW9kZSBpbiB2aXNTdGF0ZSxcbiAqIGJ1dCBvbmx5IGlmIGl0J3Mgbm90IGN1cnJlbnRseSBpbiB0aGUgYG5vcm1hbGAgbW9kZS5cbiAqL1xuY29uc3QgdXBkYXRlT3ZlcmxheUJsZW5kaW5nID0gb3ZlcmxheUJsZW5kaW5nID0+IHZpc1N0YXRlID0+IHtcbiAgaWYgKHZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyAhPT0gT1ZFUkxBWV9CTEVORElOR1Mubm9ybWFsLnZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnZpc1N0YXRlLFxuICAgICAgb3ZlcmxheUJsZW5kaW5nXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmlzU3RhdGU7XG59O1xuXG4vKipcbiAqIEhlbHBlciB3aGljaCB1cGRhdGVzIGBkYXJrQmFzZU1hcEVuYWJsZWRgIGluIGFsbCB0aGUgbGF5ZXJzIGluIHZpc1N0YXRlIHdoaWNoXG4gKiBoYXZlIHRoaXMgY29uZmlnIHNldHRpbmcgKG9yIGluIG9uZSBzcGVjaWZpYyBsYXllciBpZiB0aGUgYGxheWVySWRgIHBhcmFtIGlzIHByb3ZpZGVkKS5cbiAqL1xuY29uc3QgdXBkYXRlRGFya0Jhc2VNYXBMYXllcnMgPVxuICAoZGFya0Jhc2VNYXBFbmFibGVkOiBib29sZWFuLCBsYXllcklkOiBzdHJpbmcgfCBudWxsID0gbnVsbCkgPT5cbiAgdmlzU3RhdGUgPT4gKHtcbiAgICAuLi52aXNTdGF0ZSxcbiAgICBsYXllcnM6IHZpc1N0YXRlLmxheWVycy5tYXAobGF5ZXIgPT4ge1xuICAgICAgaWYgKCFsYXllcklkIHx8IGxheWVyLmlkID09PSBsYXllcklkKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobGF5ZXIudmlzQ29uZmlnU2V0dGluZ3MsICdkYXJrQmFzZU1hcEVuYWJsZWQnKSkge1xuICAgICAgICAgIGNvbnN0IHt2aXNDb25maWd9ID0gbGF5ZXIuY29uZmlnO1xuICAgICAgICAgIHJldHVybiBsYXllci51cGRhdGVMYXllckNvbmZpZyh7XG4gICAgICAgICAgICB2aXNDb25maWc6IHsuLi52aXNDb25maWcsIGRhcmtCYXNlTWFwRW5hYmxlZH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGxheWVyO1xuICAgIH0pXG4gIH0pO1xuXG4vKipcbiAqIFVwZGF0ZXIgdGhhdCBjaGFuZ2VzIHRoZSBtYXAgc3R5bGUgYnkgY2FsbGluZyBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIgb24gdmlzU3RhdGUuXG4gKiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpdCBkb2VzIHRoZSBmb2xsb3dpbmc6XG4gKlxuICogICAxLiBVcGRhdGUgbWFwIG92ZXJsYXkgYmxlbmRpbmcgbW9kZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbG9yTW9kZSBvZiB0aGVcbiAqICAgICAgYmFzZSBtYXAsIGJ1dCBvbmx5IGlmIGl0J3Mgbm90IGluIHRoZSBgbm9ybWFsYCBtb2RlLlxuICpcbiAqICAgMi4gVXBkYXRlIGFsbCB0aGUgbGF5ZXJzIHdoaWNoIGhhdmUgdGhlIGBkYXJrQmFzZU1hcEVuYWJsZWRgIGNvbmZpZyBzZXR0aW5nXG4gKiAgICAgIGFkanVzdGluZyBpdCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbG9yTW9kZSBvZiB0aGUgYmFzZSBtYXAuXG4gKlxuICovXG5leHBvcnQgY29uc3QgY29tYmluZWRNYXBTdHlsZUNoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IE1hcFN0eWxlQ2hhbmdlVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHtwYXlsb2FkfSA9IGFjdGlvbjtcbiAgY29uc3Qge21hcFN0eWxlfSA9IHN0YXRlO1xuICBjb25zdCBnZXRDb2xvck1vZGUgPSBrZXkgPT4gbWFwU3R5bGUubWFwU3R5bGVzW2tleV0/LmNvbG9yTW9kZTtcbiAgY29uc3QgcHJldkNvbG9yTW9kZSA9IGdldENvbG9yTW9kZShtYXBTdHlsZS5zdHlsZVR5cGUpO1xuICBjb25zdCBuZXh0Q29sb3JNb2RlID0gZ2V0Q29sb3JNb2RlKHBheWxvYWQuc3R5bGVUeXBlKTtcbiAgbGV0IHt2aXNTdGF0ZX0gPSBzdGF0ZTtcbiAgaWYgKG5leHRDb2xvck1vZGUgIT09IHByZXZDb2xvck1vZGUpIHtcbiAgICBzd2l0Y2ggKG5leHRDb2xvck1vZGUpIHtcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSzpcbiAgICAgICAgdmlzU3RhdGUgPSBjb21wb3NlXyhbXG4gICAgICAgICAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nKE9WRVJMQVlfQkxFTkRJTkdTLnNjcmVlbi52YWx1ZSksXG4gICAgICAgICAgdXBkYXRlRGFya0Jhc2VNYXBMYXllcnModHJ1ZSlcbiAgICAgICAgXSkodmlzU3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuTElHSFQ6XG4gICAgICAgIHZpc1N0YXRlID0gY29tcG9zZV8oW1xuICAgICAgICAgIHVwZGF0ZU92ZXJsYXlCbGVuZGluZyhPVkVSTEFZX0JMRU5ESU5HUy5kYXJrZW4udmFsdWUpLFxuICAgICAgICAgIHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKGZhbHNlKVxuICAgICAgICBdKSh2aXNTdGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogbWFwU3R5bGVDaGFuZ2VVcGRhdGVyKG1hcFN0eWxlLCB7cGF5bG9hZDogey4uLnBheWxvYWR9fSlcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlciB0aGF0IGNoYW5nZXMgdGhlIGxheWVyIHR5cGUgYnkgY2FsbGluZyBgbGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcmAgb24gdmlzU3RhdGUuXG4gKiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpZiB0aGUgbmV3IGxheWVyIHR5cGUgaGFzIHRoZSBgZGFya0Jhc2VNYXBFbmFibGVkYCBjb25maWdcbiAqIHNldHRpbmcsIHdlIGFkanVzdCBpdCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbG9yTW9kZSBvZiB0aGUgYmFzZSBtYXAuc1xuICovXG5leHBvcnQgY29uc3QgY29tYmluZWRMYXllclR5cGVDaGFuZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBMYXllclR5cGVDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgbGV0IHt2aXNTdGF0ZX0gPSBzdGF0ZTtcbiAgY29uc3Qgb2xkTGF5ZXJJbmRleCA9IHZpc1N0YXRlLmxheWVycy5maW5kSW5kZXgobGF5ZXIgPT4gbGF5ZXIgPT09IGFjdGlvbi5vbGRMYXllcik7XG4gIHZpc1N0YXRlID0gbGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcih2aXNTdGF0ZSwgYWN0aW9uKTtcbiAgY29uc3QgbmV3TGF5ZXIgPSB2aXNTdGF0ZS5sYXllcnNbb2xkTGF5ZXJJbmRleF07XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmV3TGF5ZXI/LnZpc0NvbmZpZ1NldHRpbmdzLCAnZGFya0Jhc2VNYXBFbmFibGVkJykpIHtcbiAgICBjb25zdCB7bWFwU3R5bGV9ID0gc3RhdGU7XG4gICAgY29uc3Qge2NvbG9yTW9kZX0gPSBtYXBTdHlsZS5tYXBTdHlsZXNbbWFwU3R5bGUuc3R5bGVUeXBlXTtcbiAgICBjb25zdCB7ZGFya0Jhc2VNYXBFbmFibGVkfSA9IG5ld0xheWVyLmNvbmZpZy52aXNDb25maWc7XG4gICAgc3dpdGNoIChjb2xvck1vZGUpIHtcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSzpcbiAgICAgICAgaWYgKCFkYXJrQmFzZU1hcEVuYWJsZWQpIHtcbiAgICAgICAgICB2aXNTdGF0ZSA9IHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKHRydWUsIG5ld0xheWVyLmlkKSh2aXNTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hUOlxuICAgICAgICBpZiAoZGFya0Jhc2VNYXBFbmFibGVkKSB7XG4gICAgICAgICAgdmlzU3RhdGUgPSB1cGRhdGVEYXJrQmFzZU1hcExheWVycyhmYWxzZSwgbmV3TGF5ZXIuaWQpKHZpc1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdmlzU3RhdGVcbiAgfTtcbn07XG5cbi8qKlxuICogTWFrZSBtYXBMZWdlbmQgYWN0aXZlIHdoZW4gdG9nZ2xlU3BsaXRNYXAgYWN0aW9uIGlzIGNhbGxlZFxuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU3BsaXRNYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBUb2dnbGVTcGxpdE1hcFVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZTogdmlzU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUudmlzU3RhdGUsIGFjdGlvbiksXG4gICAgdWlTdGF0ZTogdWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS51aVN0YXRlKSxcbiAgICBtYXBTdGF0ZTogbWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUubWFwU3RhdGUpXG4gIH07XG5cbiAgY29uc3QgaXNTcGxpdCA9IG5ld1N0YXRlLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggIT09IDA7XG4gIGNvbnN0IGlzTGVnZW5kQWN0aXZlID0gbmV3U3RhdGUudWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5hY3RpdmU7XG4gIGlmIChpc1NwbGl0ICYmICFpc0xlZ2VuZEFjdGl2ZSkge1xuICAgIG5ld1N0YXRlLnVpU3RhdGUgPSB0b2dnbGVNYXBDb250cm9sVXBkYXRlcihuZXdTdGF0ZS51aVN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7cGFuZWxJZDogJ21hcExlZ2VuZCcsIGluZGV4OiBhY3Rpb24ucGF5bG9hZH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogU2V0IG1hcCBzcGxpdCBtb2RlIHVwZGF0ZXIgLSBjb29yZGluYXRlcyBzdGF0ZSBjaGFuZ2VzIGFjcm9zcyB2aXNTdGF0ZSwgbWFwU3RhdGUsIGFuZCB1aVN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNYXBTcGxpdE1vZGVVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwU3BsaXRNb2RlVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBTcGxpdE1vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IHByZXZNb2RlID0gc3RhdGUubWFwU3RhdGUubWFwU3BsaXRNb2RlO1xuXG4gIGlmIChtYXBTcGxpdE1vZGUgPT09IHByZXZNb2RlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgbmV3TWFwU3RhdGUgPSBtYXBTdGF0ZVNldE1hcFNwbGl0TW9kZVVwZGF0ZXIoc3RhdGUubWFwU3RhdGUsIGFjdGlvbik7XG5cbiAgbGV0IG5ld1Zpc1N0YXRlID0gey4uLnN0YXRlLnZpc1N0YXRlfTtcblxuICBzd2l0Y2ggKG1hcFNwbGl0TW9kZSkge1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVA6XG4gICAgICBuZXdWaXNTdGF0ZSA9IHtcbiAgICAgICAgLi4ubmV3VmlzU3RhdGUsXG4gICAgICAgIHNwbGl0TWFwczogW11cbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5EVUFMX01BUDpcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFOlxuICAgICAgaWYgKHByZXZNb2RlID09PSBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCkge1xuICAgICAgICBuZXdWaXNTdGF0ZSA9IHtcbiAgICAgICAgICAuLi5uZXdWaXNTdGF0ZSxcbiAgICAgICAgICBzcGxpdE1hcHM6IGNvbXB1dGVTcGxpdE1hcExheWVycyhuZXdWaXNTdGF0ZS5sYXllcnMsIHtcbiAgICAgICAgICAgIGR1cGxpY2F0ZTogbWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRVxuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICBsZXQgbmV3VWlTdGF0ZSA9IHVpU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUudWlTdGF0ZSk7XG5cbiAgY29uc3QgaXNTcGxpdCA9IG5ld1Zpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggIT09IDA7XG4gIGNvbnN0IGlzTGVnZW5kQWN0aXZlID0gbmV3VWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5hY3RpdmU7XG4gIGlmIChpc1NwbGl0ICYmICFpc0xlZ2VuZEFjdGl2ZSkge1xuICAgIG5ld1VpU3RhdGUgPSB0b2dnbGVNYXBDb250cm9sVXBkYXRlcihuZXdVaVN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7cGFuZWxJZDogJ21hcExlZ2VuZCcsIGluZGV4OiAwfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYXBTdGF0ZTogbmV3TWFwU3RhdGUsXG4gICAgdmlzU3RhdGU6IG5ld1Zpc1N0YXRlLFxuICAgIHVpU3RhdGU6IG5ld1VpU3RhdGVcbiAgfTtcbn07XG5cbmNvbnN0IGRlZmF1bHRSZXBsYWNlRGF0YVRvTWFwT3B0aW9ucyA9IHtcbiAga2VlcEV4aXN0aW5nQ29uZmlnOiB0cnVlLFxuICBjZW50ZXJNYXA6IHRydWUsXG4gIGF1dG9DcmVhdGVMYXllcnM6IGZhbHNlXG59O1xuXG4vKipcbiAqIFVwZGF0ZXIgcmVwbGFjZSBhIGRhdGFzZXQgaW4gc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcGxhY2VEYXRhSW5NYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAge3BheWxvYWR9OiB7cGF5bG9hZDogUmVwbGFjZURhdGFJbk1hcFBheWxvYWR9XG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRUb1JlcGxhY2VJZCwgZGF0YXNldFRvVXNlLCBvcHRpb25zID0ge319ID0gcGF5bG9hZDtcbiAgY29uc3QgYWRkRGF0YVRvTWFwT3B0aW9ucyA9IHsuLi5kZWZhdWx0UmVwbGFjZURhdGFUb01hcE9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuXG4gIC8vIGNoZWNrIGlmIGRhdGFzZXQgaXMgdGhlcmVcbiAgaWYgKCFzdGF0ZS52aXNTdGF0ZS5kYXRhc2V0c1tkYXRhc2V0VG9SZXBsYWNlSWRdKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIC8vIGRhdGFzZXRUb1VzZSBpcyBQcm90b0RhdGFzZXRcbiAgY29uc3QgZGF0YUlkVG9Vc2UgPSBkYXRhc2V0VG9Vc2UuaW5mby5pZDtcbiAgaWYgKCFkYXRhSWRUb1VzZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICAvLyByZW1vdmUgZGF0YXNldCBhbmQgcHV0IGRlcGVuZGVuY2llcyBpbiB0b0JlTWVyZ2VkXG4gIGNvbnN0IHByZXBhcmVkU3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgdmlzU3RhdGU6IHByZXBhcmVTdGF0ZUZvckRhdGFzZXRSZXBsYWNlKHN0YXRlLnZpc1N0YXRlLCBkYXRhc2V0VG9SZXBsYWNlSWQsIGRhdGFJZFRvVXNlKVxuICB9O1xuXG4gIGNvbnN0IG5leHRTdGF0ZSA9IGFkZERhdGFUb01hcFVwZGF0ZXIoXG4gICAgcHJlcGFyZWRTdGF0ZSxcbiAgICBwYXlsb2FkXyh7XG4gICAgICBkYXRhc2V0czogZGF0YXNldFRvVXNlLFxuICAgICAgLy8gc2hvdWxkIHpvb20gdG8gbmV3IGRhdGFzZXRcbiAgICAgIG9wdGlvbnM6IGFkZERhdGFUb01hcE9wdGlvbnNcbiAgICB9KVxuICApO1xuXG4gIHJldHVybiBuZXh0U3RhdGU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUdBLElBQUFBLGdCQUFBLEdBQUFDLE9BQUE7QUFPQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsaUJBQUEsR0FBQUYsT0FBQTtBQUtBLElBQUFHLGlCQUFBLEdBQUFILE9BQUE7QUFJQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxn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
|
|
491
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdWlTdGF0ZVVwZGF0ZXJzIiwicmVxdWlyZSIsIl92aXNTdGF0ZVVwZGF0ZXJzIiwiX21hcFN0YXRlVXBkYXRlcnMiLCJfbWFwU3R5bGVVcGRhdGVycyIsIl9wcm9jZXNzb3JzIiwiX2NvbXBvc2VySGVscGVycyIsIl91dGlscyIsIl9kYXRhVXRpbHMiLCJfY29uc3RhbnRzIiwiX2RlY2tnbExheWVycyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiY29tYmluZWRVcGRhdGVycyIsImlzVmFsaWRDb25maWciLCJleHBvcnRzIiwiY29uZmlnIiwiaXNQbGFpbk9iamVjdCIsInZlcnNpb24iLCJkZWZhdWx0QWRkRGF0YVRvTWFwT3B0aW9ucyIsImNlbnRlck1hcCIsImtlZXBFeGlzdGluZ0NvbmZpZyIsImF1dG9DcmVhdGVMYXllcnMiLCJhdXRvQ3JlYXRlVG9vbHRpcHMiLCJhZGREYXRhVG9NYXBVcGRhdGVyIiwic3RhdGUiLCJfcmVmIiwiX2RhdGFzZXRzJCIsIl9kYXRhc2V0cyQyIiwiX2RhdGFzZXRzJDMiLCJwYXlsb2FkIiwiZGF0YXNldHMiLCJpbmZvIiwib3B0aW9ucyIsImlzUHJvZ3Jlc3NpdmVMb2FkaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwiaWQiLCJ2aXNTdGF0ZSIsImNvbXBvc2VfIiwicGlja18iLCJhcHBseV8iLCJ2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwicGFyc2VkQ29uZmlnIiwic2NoZW1hIiwicGFyc2VTYXZlZENvbmZpZyIsIm9sZExheWVycyIsImxheWVycyIsImZpbHRlck5ld2x5QWRkZWRMYXllcnMiLCJubCIsImZpbmQiLCJvbCIsImZpbmRNYXBCb3VuZHNJZkNlbnRlcmVkIiwiYm91bmRzIiwiZmluZE1hcEJvdW5kcyIsInVuZGVmaW5lZCIsImlmXyIsIkJvb2xlYW4iLCJzZXRNYXBJbmZvVXBkYXRlciIsIndpdGhfIiwiX3JlZjIiLCJzdGF0ZU1hcENvbmZpZ1VwZGF0ZXIiLCJwYXlsb2FkXyIsInN0eWxlTWFwQ29uZmlnVXBkYXRlciIsInVpU3RhdGVSZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsInVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlciIsInRvZ2dsZU1vZGFsVXBkYXRlciIsIm1lcmdlXyIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlYWRPbmx5IiwibG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIiLCJhY3Rpb24iLCJwYXlsb2FkcyIsImZpbGVzVG9EYXRhUGF5bG9hZCIsInJlc3VsdCIsIm5leHRTdGF0ZSIsImZpbGVMb2FkaW5nIiwiZmlsZUxvYWRpbmdQcm9ncmVzcyIsInN0YXRlV2l0aERhdGEiLCJtYXAiLCJwIiwiYWRkRGF0YVRvTWFwQ29tcG9zZWQiLCJ1cGRhdGVPdmVybGF5QmxlbmRpbmciLCJvdmVybGF5QmxlbmRpbmciLCJPVkVSTEFZX0JMRU5ESU5HUyIsIm5vcm1hbCIsInZhbHVlIiwidXBkYXRlRGFya0Jhc2VNYXBMYXllcnMiLCJkYXJrQmFzZU1hcEVuYWJsZWQiLCJsYXllcklkIiwibGF5ZXIiLCJ2aXNDb25maWdTZXR0aW5ncyIsInZpc0NvbmZpZyIsInVwZGF0ZUxheWVyQ29uZmlnIiwiY29tYmluZWRNYXBTdHlsZUNoYW5nZVVwZGF0ZXIiLCJfbWFwU3RhdGUkZ2xvYmUiLCJtYXBTdHlsZSIsImdldENvbG9yTW9kZSIsImtleSIsIl9tYXBTdHlsZSRtYXBTdHlsZXMkayIsIm1hcFN0eWxlcyIsImNvbG9yTW9kZSIsInByZXZDb2xvck1vZGUiLCJzdHlsZVR5cGUiLCJuZXh0Q29sb3JNb2RlIiwibWFwU3RhdGUiLCJCQVNFX01BUF9DT0xPUl9NT0RFUyIsIkRBUksiLCJzY3JlZW4iLCJMSUdIVCIsImRhcmtlbiIsImdsb2JlIiwiZW5hYmxlZCIsIk5PX01BUF9JRCIsImJhc2VtYXAiLCJsYWJlbHMiLCJhZG1pbkxpbmVzIiwid2F0ZXIiLCJzeW5jR2xvYmVDb25maWdDb2xvcnNUb1N0eWxlIiwibWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiX21hcFN0YXRlJGdsb2JlMiIsIm5leHRTdHlsZU9iaiIsIm5leHRHbG9iZUNvbmZpZyIsInN1cmZhY2VDb2xvciIsIkRFRkFVTFRfQkFTRU1BUF9DT0xPUiIsImJhY2tncm91bmRGaWxsQ29sb3IiLCJ3YXRlckNvbG9yIiwiYmFzZW1hcFdhdGVyRmlsbENvbG9yIiwiYWRtaW5MaW5lc0NvbG9yIiwiYmFzZW1hcEFkbWluTGluZUNvbG9yIiwiYmFzZW1hcENvbG9ycyIsImdldEJhc2VtYXBDb2xvcnNGb3JTdHlsZSIsInN0eWxlIiwibGF5ZXJHcm91cHMiLCJjb21iaW5lZFNldE1hcFZpZXdNb2RlVXBkYXRlciIsIl9tYXBTdGF0ZSRnbG9iZTMiLCJzZXRNYXBWaWV3TW9kZVVwZGF0ZXIiLCJjb21iaW5lZExheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJvbGRMYXllckluZGV4IiwiZmluZEluZGV4Iiwib2xkTGF5ZXIiLCJsYXllclR5cGVDaGFuZ2VVcGRhdGVyIiwibmV3TGF5ZXIiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJfbmV3U3RhdGUkdWlTdGF0ZSRtYXAiLCJuZXdTdGF0ZSIsInZpc1N0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwidWlTdGF0ZSIsInVpU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJtYXBTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlciIsImlzU3BsaXQiLCJzcGxpdE1hcHMiLCJpc0xlZ2VuZEFjdGl2ZSIsIm1hcENvbnRyb2xzIiwibWFwTGVnZW5kIiwiYWN0aXZlIiwidG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIiLCJwYW5lbElkIiwiaW5kZXgiLCJzZXRNYXBTcGxpdE1vZGVVcGRhdGVyIiwiX25ld1VpU3RhdGUkbWFwQ29udHJvIiwibWFwU3BsaXRNb2RlIiwicHJldk1vZGUiLCJuZXdNYXBTdGF0ZSIsIm1hcFN0YXRlU2V0TWFwU3BsaXRNb2RlVXBkYXRlciIsIm5ld1Zpc1N0YXRlIiwiTWFwU3BsaXRNb2RlIiwiU0lOR0xFX01BUCIsIkRVQUxfTUFQIiwiU1dJUEVfQ09NUEFSRSIsImNvbXB1dGVTcGxpdE1hcExheWVycyIsImR1cGxpY2F0ZSIsIm5ld1VpU3RhdGUiLCJkZWZhdWx0UmVwbGFjZURhdGFUb01hcE9wdGlvbnMiLCJyZXBsYWNlRGF0YUluTWFwVXBkYXRlciIsIl9yZWYzIiwiZGF0YXNldFRvUmVwbGFjZUlkIiwiZGF0YXNldFRvVXNlIiwiX3BheWxvYWQkb3B0aW9ucyIsImFkZERhdGFUb01hcE9wdGlvbnMiLCJkYXRhSWRUb1VzZSIsInByZXBhcmVkU3RhdGUiLCJwcmVwYXJlU3RhdGVGb3JEYXRhc2V0UmVwbGFjZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5lZC11cGRhdGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1xuICB0b2dnbGVNb2RhbFVwZGF0ZXIsXG4gIGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyIGFzIHVpU3RhdGVMb2FkRmlsZXNTdWNjZXNzVXBkYXRlcixcbiAgdG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyB1aVN0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuICByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyB1aVN0YXRlUmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXJcbn0gZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICB1cGRhdGVWaXNEYXRhVXBkYXRlciBhcyB2aXNTdGF0ZVVwZGF0ZVZpc0RhdGFVcGRhdGVyLFxuICBzZXRNYXBJbmZvVXBkYXRlcixcbiAgbGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcixcbiAgdG9nZ2xlU3BsaXRNYXBVcGRhdGVyIGFzIHZpc1N0YXRlVG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuICBwcmVwYXJlU3RhdGVGb3JEYXRhc2V0UmVwbGFjZVxufSBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICByZWNlaXZlTWFwQ29uZmlnVXBkYXRlciBhcyBzdGF0ZU1hcENvbmZpZ1VwZGF0ZXIsXG4gIHRvZ2dsZVNwbGl0TWFwVXBkYXRlciBhcyBtYXBTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcbiAgc2V0TWFwU3BsaXRNb2RlVXBkYXRlciBhcyBtYXBTdGF0ZVNldE1hcFNwbGl0TW9kZVVwZGF0ZXIsXG4gIHNldE1hcFZpZXdNb2RlVXBkYXRlclxufSBmcm9tICcuL21hcC1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQge1xuICBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIsXG4gIHJlY2VpdmVNYXBDb25maWdVcGRhdGVyIGFzIHN0eWxlTWFwQ29uZmlnVXBkYXRlclxufSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5pbXBvcnQge2ZpbGVzVG9EYXRhUGF5bG9hZH0gZnJvbSAnQGtlcGxlci5nbC9wcm9jZXNzb3JzJztcbmltcG9ydCB7cGF5bG9hZF8sIGFwcGx5Xywgd2l0aF8sIGlmXywgY29tcG9zZV8sIG1lcmdlXywgcGlja199IGZyb20gJy4vY29tcG9zZXItaGVscGVycyc7XG5pbXBvcnQge01hcFN0YXRlLCBVaVN0YXRlLCBBZGREYXRhVG9NYXBQYXlsb2FkLCBQYXJzZWRDb25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtNYXBTdHlsZX0gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuaW1wb3J0IHtQcm92aWRlclN0YXRlfSBmcm9tICcuL3Byb3ZpZGVyLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCB7XG4gIGxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyQWN0aW9uLFxuICBNYXBTdHlsZUNoYW5nZVVwZGF0ZXJBY3Rpb24sXG4gIExheWVyVHlwZUNoYW5nZVVwZGF0ZXJBY3Rpb24sXG4gIFRvZ2dsZVNwbGl0TWFwVXBkYXRlckFjdGlvbixcbiAgUmVwbGFjZURhdGFJbk1hcFBheWxvYWQsXG4gIE1hcFN0YXRlQWN0aW9uc1xufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7aXNQbGFpbk9iamVjdCwgY29tcHV0ZVNwbGl0TWFwTGF5ZXJzfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7ZmluZE1hcEJvdW5kc30gZnJvbSAnLi9kYXRhLXV0aWxzJztcbmltcG9ydCB7QkFTRV9NQVBfQ09MT1JfTU9ERVMsIE9WRVJMQVlfQkxFTkRJTkdTLCBOT19NQVBfSUQsIE1hcFNwbGl0TW9kZX0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtnZXRCYXNlbWFwQ29sb3JzRm9yU3R5bGUsIERFRkFVTFRfQkFTRU1BUF9DT0xPUn0gZnJvbSAnQGtlcGxlci5nbC9kZWNrZ2wtbGF5ZXJzJztcblxuZXhwb3J0IHR5cGUgS2VwbGVyR2xTdGF0ZSA9IHtcbiAgdmlzU3RhdGU6IFZpc1N0YXRlO1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIG1hcFN0eWxlOiBNYXBTdHlsZTtcbiAgdWlTdGF0ZTogVWlTdGF0ZTtcbiAgcHJvdmlkZXJTdGF0ZTogUHJvdmlkZXJTdGF0ZTtcbn07XG5cbi8vIGNvbXBvc2UgYWN0aW9uIHRvIGFwcGx5IHJlc3VsdCBtdWx0aXBsZSByZWR1Y2Vycywgd2l0aCB0aGUgb3V0cHV0IG9mIG9uZVxuXG4vKipcbiAqIFNvbWUgYWN0aW9ucyB3aWxsIGFmZmVjdCB0aGUgZW50aXJlIGtlcGxlci5sZyBpbnN0YW5jZSBzdGF0ZS5cbiAqIFRoZSB1cGRhdGVycyBmb3IgdGhlc2UgYWN0aW9ucyBpcyBleHBvcnRlZCBhcyBgY29tYmluZWRVcGRhdGVyc2AuIFRoZXNlIHVwZGF0ZXIgdGFrZSB0aGUgZW50aXJlIGluc3RhbmNlIHN0YXRlXG4gKiBhcyB0aGUgZmlyc3QgYXJndW1lbnQuIFJlYWQgbW9yZSBhYm91dCBbVXNpbmcgdXBkYXRlcnNdKC4uL2FkdmFuY2VkLXVzYWdlL3VzaW5nLXVwZGF0ZXJzLm1kKVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyLCB7Y29tYmluZWRVcGRhdGVyc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBhZGQgZGF0YSB0byBtYXAgYWZ0ZXIgcmVjZWl2aW5nIGRhdGEgZnJvbSByZW1vdGUgc291cmNlc1xuICogICAgY2FzZSAnTE9BRF9SRU1PVEVfUkVTT1VSQ0VfU1VDQ0VTUyc6XG4gKiAgICAgIHJldHVybiB7XG4gKiAgICAgICAgLi4uc3RhdGUsXG4gKiAgICAgICAga2VwbGVyR2w6IHtcbiAqICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLFxuICogICAgICAgICAgLy8gcGFzcyBpbiBrZXBsZXIuZ2wgaW5zdGFuY2Ugc3RhdGUgdG8gY29tYmluZWRVcGRhdGVyc1xuICogICAgICAgICAgbWFwOiAgY29tYmluZWRVcGRhdGVycy5hZGREYXRhVG9NYXBVcGRhdGVyKFxuICogICAgICAgICAgIHN0YXRlLmtlcGxlckdsLm1hcCxcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gKiAgICAgICAgICAgICAgIGRhdGFzZXRzOiBhY3Rpb24uZGF0YXNldHMsXG4gKiAgICAgICAgICAgICAgIG9wdGlvbnM6IHtyZWFkT25seTogdHJ1ZX0sXG4gKiAgICAgICAgICAgICAgIGNvbmZpZzogYWN0aW9uLmNvbmZpZ1xuICogICAgICAgICAgICAgIH1cbiAqICAgICAgICAgICAgfVxuICogICAgICAgICAgKVxuICogICAgICAgIH1cbiAqICAgICAgfTtcbiAqICB9XG4gKiAgcmV0dXJuIHJlZHVjZXJzKHN0YXRlLCBhY3Rpb24pO1xuICogfTtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBjb21wb3NlZFJlZHVjZXI7XG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBjb21iaW5lZFVwZGF0ZXJzID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkQ29uZmlnID0gY29uZmlnID0+XG4gIGlzUGxhaW5PYmplY3QoY29uZmlnKSAmJiBpc1BsYWluT2JqZWN0KGNvbmZpZy5jb25maWcpICYmIGNvbmZpZy52ZXJzaW9uO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEFkZERhdGFUb01hcE9wdGlvbnMgPSB7XG4gIGNlbnRlck1hcDogdHJ1ZSxcbiAga2VlcEV4aXN0aW5nQ29uZmlnOiBmYWxzZSxcbiAgYXV0b0NyZWF0ZUxheWVyczogdHJ1ZSxcbiAgYXV0b0NyZWF0ZVRvb2x0aXBzOiB0cnVlXG59O1xuXG4vKipcbiAqIENvbWJpbmUgZGF0YSBhbmQgZnVsbCBjb25maWd1cmF0aW9uIHVwZGF0ZSBpbiBhIHNpbmdsZSBhY3Rpb25cbiAqXG4gKiBAbWVtYmVyb2YgY29tYmluZWRVcGRhdGVyc1xuICogQHBhcmFtIHtPYmplY3R9IHN0YXRlIGtlcGxlci5nbCBpbnN0YW5jZSBzdGF0ZSwgY29udGFpbmluZyBhbGwgc3VicmVkdWNlciBzdGF0ZVxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvblxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvbi5wYXlsb2FkIGB7ZGF0YXNldHMsIG9wdGlvbnMsIGNvbmZpZ31gXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQuZGF0YXNldHMgLSAqKipyZXF1aXJlZCoqIGRhdGFzZXRzIGNhbiBiZSBhIGRhdGFzZXQgb3IgYW4gYXJyYXkgb2YgZGF0YXNldHNcbiAqIEVhY2ggZGF0YXNldCBvYmplY3QgbmVlZHMgdG8gaGF2ZSBgaW5mb2AgYW5kIGBkYXRhYCBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBbYWN0aW9uLnBheWxvYWQub3B0aW9uc10gb3B0aW9uIG9iamVjdCBge2NlbnRlck1hcDogdHJ1ZX1gXG4gKiBAcGFyYW0gW2FjdGlvbi5wYXlsb2FkLmNvbmZpZ10gbWFwIGNvbmZpZ1xuICogQHBhcmFtIFthY3Rpb24ucGF5bG9hZC5pbmZvXSBtYXAgaW5mbyBjb250YWlucyB0aXRsZSBhbmQgZGVzY3JpcHRpb25cbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERhdGFzZXRcbiAqIEBwcm9wZXJ0eSBpbmZvIC1pbmZvIG9mIGEgZGF0YXNldFxuICogQHByb3BlcnR5IGluZm8uaWQgLSBpZCBvZiB0aGlzIGRhdGFzZXQuIElmIGNvbmZpZyBpcyBkZWZpbmVkLCBgaWRgIHNob3VsZCBtYXRjaGVzIHRoZSBgZGF0YUlkYCBpbiBjb25maWcuXG4gKiBAcHJvcGVydHkgaW5mby5sYWJlbCAtIEEgZGlzcGxheSBuYW1lIG9mIHRoaXMgZGF0YXNldFxuICogQHByb3BlcnR5IGRhdGEgLSAqKipyZXF1aXJlZCoqIFRoZSBkYXRhIG9iamVjdCwgaW4gYSB0YWJ1bGFyIGZvcm1hdCB3aXRoIDIgcHJvcGVydGllcyBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKiBAcHJvcGVydHkgZGF0YS5maWVsZHMgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIGZpZWxkcyxcbiAqIEBwcm9wZXJ0eSBkYXRhLmZpZWxkcy5uYW1lIC0gKioqcmVxdWlyZWQqKiBOYW1lIG9mIHRoZSBmaWVsZCxcbiAqIEBwcm9wZXJ0eSBkYXRhLnJvd3MgLSAqKipyZXF1aXJlZCoqIEFycmF5IG9mIHJvd3MsIGluIGEgdGFidWxhciBmb3JtYXQgd2l0aCBgZmllbGRzYCBhbmQgYHJvd3NgXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgYWRkRGF0YVRvTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIHtwYXlsb2FkfToge3BheWxvYWQ6IEFkZERhdGFUb01hcFBheWxvYWR9XG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRzLCBjb25maWcsIGluZm99ID0gcGF5bG9hZDtcblxuICBjb25zdCBvcHRpb25zID0ge1xuICAgIC4uLmRlZmF1bHRBZGREYXRhVG9NYXBPcHRpb25zLFxuICAgIC4uLnBheWxvYWQub3B0aW9uc1xuICB9O1xuXG4gIC8vIGNoZWNrIGlmIHByb2dyZXNzaXZlIGxvYWRpbmcgZGF0YXNldCBieSBiYXRjaGVzLCBhbmQgdXBkYXRlIHZpc1N0YXRlIGRpcmVjdGx5XG4gIGNvbnN0IGlzUHJvZ3Jlc3NpdmVMb2FkaW5nID1cbiAgICBBcnJheS5pc0FycmF5KGRhdGFzZXRzKSAmJlxuICAgIGRhdGFzZXRzWzBdPy5pbmZvLmZvcm1hdCA9PT0gJ2Fycm93JyAmJlxuICAgIGRhdGFzZXRzWzBdPy5pbmZvLmlkICYmXG4gICAgZGF0YXNldHNbMF0/LmluZm8uaWQgaW4gc3RhdGUudmlzU3RhdGUuZGF0YXNldHM7XG4gIGlmIChpc1Byb2dyZXNzaXZlTG9hZGluZykge1xuICAgIHJldHVybiBjb21wb3NlXzxLZXBsZXJHbFN0YXRlPihbXG4gICAgICBwaWNrXygndmlzU3RhdGUnKShcbiAgICAgICAgYXBwbHlfPFZpc1N0YXRlLCBhbnk+KHZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIsIHtcbiAgICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGNvbmZpZ1xuICAgICAgICB9KVxuICAgICAgKVxuICAgIF0pKHN0YXRlKTtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgbGV0IHBhcnNlZENvbmZpZzogUGFyc2VkQ29uZmlnID0gY29uZmlnO1xuXG4gIGlmIChpc1ZhbGlkQ29uZmlnKGNvbmZpZykpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gc2F2ZWQgY29uZmlnXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHBhcnNlZENvbmZpZyA9IHN0YXRlLnZpc1N0YXRlLnNjaGVtYS5wYXJzZVNhdmVkQ29uZmlnKGNvbmZpZyk7XG4gIH1cbiAgY29uc3Qgb2xkTGF5ZXJzID0gc3RhdGUudmlzU3RhdGUubGF5ZXJzO1xuICBjb25zdCBmaWx0ZXJOZXdseUFkZGVkTGF5ZXJzID0gKGxheWVyczogTGF5ZXJbXSkgPT5cbiAgICBsYXllcnMuZmlsdGVyKG5sID0+ICFvbGRMYXllcnMuZmluZChvbCA9PiBvbCA9PT0gbmwpKTtcblxuICAvLyBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub3QgZm91bmQsIHRvIG1ha2UgdHlwZXNjcmlwdCBoYXBweVxuICBjb25zdCBmaW5kTWFwQm91bmRzSWZDZW50ZXJlZCA9IChsYXllcnM6IExheWVyW10pID0+IHtcbiAgICBjb25zdCBib3VuZHMgPSBvcHRpb25zLmNlbnRlck1hcCAmJiBmaW5kTWFwQm91bmRzKGxheWVycyk7XG4gICAgcmV0dXJuIGJvdW5kcyA/IGJvdW5kcyA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICByZXR1cm4gY29tcG9zZV88S2VwbGVyR2xTdGF0ZT4oW1xuICAgIHBpY2tfKCd2aXNTdGF0ZScpKFxuICAgICAgLy8gdGhpcyBwYXJ0IGNhbiBiZSBhc3luY1xuICAgICAgYXBwbHlfPFZpc1N0YXRlLCBhbnk+KHZpc1N0YXRlVXBkYXRlVmlzRGF0YVVwZGF0ZXIsIHtcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnXG4gICAgICB9KVxuICAgICksXG5cbiAgICBpZl8oQm9vbGVhbihpbmZvKSwgcGlja18oJ3Zpc1N0YXRlJykoYXBwbHlfPFZpc1N0YXRlLCBhbnk+KHNldE1hcEluZm9VcGRhdGVyLCB7aW5mb30pKSksXG4gICAgLy8gTm90ZSB0aGF0IGZpdCBib3VuZHMgaGVyZSB3b24ndCBiZSBjYWxsZWQgaW4gY2FzZSBkYXRhc2V0cyBhcmUgY3JlYXRlZCBpbiBUYXNrcy5cbiAgICAvLyBBIHNlcGFyYXRlIFRhc2sgdG8gdXBkYXRlIGJvdW5kcyBpcyBjcmVhdGVkIG9uY2UgdGhlIGRhdGFzZXRzIGFyZSByZWFkeS5cbiAgICB3aXRoXygoe3Zpc1N0YXRlfSkgPT5cbiAgICAgIHBpY2tfKCdtYXBTdGF0ZScpKFxuICAgICAgICBhcHBseV8oXG4gICAgICAgICAgc3RhdGVNYXBDb25maWdVcGRhdGVyLFxuICAgICAgICAgIHBheWxvYWRfKHtcbiAgICAgICAgICAgIGNvbmZpZzogcGFyc2VkQ29uZmlnLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGJvdW5kczogZmluZE1hcEJvdW5kc0lmQ2VudGVyZWQoZmlsdGVyTmV3bHlBZGRlZExheWVycyh2aXNTdGF0ZS5sYXllcnMpKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIHBpY2tfKCdtYXBTdHlsZScpKGFwcGx5XyhzdHlsZU1hcENvbmZpZ1VwZGF0ZXIsIHBheWxvYWRfKHtjb25maWc6IHBhcnNlZENvbmZpZywgb3B0aW9uc30pKSksXG4gICAgcGlja18oJ3VpU3RhdGUnKShcbiAgICAgIGFwcGx5Xyh1aVN0YXRlUmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIsIHBheWxvYWRfKHtjb25maWc6IHBhcnNlZENvbmZpZywgb3B0aW9uc30pKVxuICAgICksXG4gICAgcGlja18oJ3VpU3RhdGUnKShhcHBseV8odWlTdGF0ZUxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyLCBwYXlsb2FkXyhudWxsKSkpLFxuXG4gICAgcGlja18oJ3VpU3RhdGUnKShhcHBseV8odG9nZ2xlTW9kYWxVcGRhdGVyLCBwYXlsb2FkXyhudWxsKSkpLFxuICAgIHBpY2tfKCd1aVN0YXRlJykoXG4gICAgICBtZXJnZV8oXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAncmVhZE9ubHknKVxuICAgICAgICAgID8ge3JlYWRPbmx5OiBvcHRpb25zLnJlYWRPbmx5fVxuICAgICAgICAgIDoge31cbiAgICAgIClcbiAgICApXG4gIF0pKHN0YXRlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2FkRmlsZXNTdWNjZXNzVXBkYXRlciA9IChcbiAgc3RhdGU6IEtlcGxlckdsU3RhdGUsXG4gIGFjdGlvbjogbG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICAvLyBzdGlsbCBtb3JlIHRvIGxvYWRcbiAgY29uc3QgcGF5bG9hZHMgPSBmaWxlc1RvRGF0YVBheWxvYWQoYWN0aW9uLnJlc3VsdCk7XG4gIGNvbnN0IG5leHRTdGF0ZSA9IGNvbXBvc2VfKFtcbiAgICBwaWNrXygndmlzU3RhdGUnKShcbiAgICAgIG1lcmdlXyh7XG4gICAgICAgIGZpbGVMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZmlsZUxvYWRpbmdQcm9ncmVzczoge31cbiAgICAgIH0pXG4gICAgKVxuICBdKShzdGF0ZSk7XG4gIC8vIG1ha2UgbXVsdGlwbGUgYWRkIGRhdGEgdG8gbWFwIGNhbGxzXG4gIGNvbnN0IHN0YXRlV2l0aERhdGEgPSBjb21wb3NlXyhwYXlsb2Fkcy5tYXAocCA9PiBhcHBseV8oYWRkRGF0YVRvTWFwVXBkYXRlciwgcGF5bG9hZF8ocCkpKSkoXG4gICAgbmV4dFN0YXRlXG4gICk7XG4gIHJldHVybiBzdGF0ZVdpdGhEYXRhIGFzIEtlcGxlckdsU3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkRGF0YVRvTWFwQ29tcG9zZWQgPSBhZGREYXRhVG9NYXBVcGRhdGVyO1xuXG4vKipcbiAqIEhlbHBlciB3aGljaCB1cGRhdGVzIG1hcCBvdmVybGF5IGJsZW5kaW5nIG1vZGUgaW4gdmlzU3RhdGUsXG4gKiBidXQgb25seSBpZiBpdCdzIG5vdCBjdXJyZW50bHkgaW4gdGhlIGBub3JtYWxgIG1vZGUuXG4gKi9cbmNvbnN0IHVwZGF0ZU92ZXJsYXlCbGVuZGluZyA9IG92ZXJsYXlCbGVuZGluZyA9PiB2aXNTdGF0ZSA9PiB7XG4gIGlmICh2aXNTdGF0ZS5vdmVybGF5QmxlbmRpbmcgIT09IE9WRVJMQVlfQkxFTkRJTkdTLm5vcm1hbC52YWx1ZSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi52aXNTdGF0ZSxcbiAgICAgIG92ZXJsYXlCbGVuZGluZ1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIHZpc1N0YXRlO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgd2hpY2ggdXBkYXRlcyBgZGFya0Jhc2VNYXBFbmFibGVkYCBpbiBhbGwgdGhlIGxheWVycyBpbiB2aXNTdGF0ZSB3aGljaFxuICogaGF2ZSB0aGlzIGNvbmZpZyBzZXR0aW5nIChvciBpbiBvbmUgc3BlY2lmaWMgbGF5ZXIgaWYgdGhlIGBsYXllcklkYCBwYXJhbSBpcyBwcm92aWRlZCkuXG4gKi9cbmNvbnN0IHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzID1cbiAgKGRhcmtCYXNlTWFwRW5hYmxlZDogYm9vbGVhbiwgbGF5ZXJJZDogc3RyaW5nIHwgbnVsbCA9IG51bGwpID0+XG4gIHZpc1N0YXRlID0+ICh7XG4gICAgLi4udmlzU3RhdGUsXG4gICAgbGF5ZXJzOiB2aXNTdGF0ZS5sYXllcnMubWFwKGxheWVyID0+IHtcbiAgICAgIGlmICghbGF5ZXJJZCB8fCBsYXllci5pZCA9PT0gbGF5ZXJJZCkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGxheWVyLnZpc0NvbmZpZ1NldHRpbmdzLCAnZGFya0Jhc2VNYXBFbmFibGVkJykpIHtcbiAgICAgICAgICBjb25zdCB7dmlzQ29uZmlnfSA9IGxheWVyLmNvbmZpZztcbiAgICAgICAgICByZXR1cm4gbGF5ZXIudXBkYXRlTGF5ZXJDb25maWcoe1xuICAgICAgICAgICAgdmlzQ29uZmlnOiB7Li4udmlzQ29uZmlnLCBkYXJrQmFzZU1hcEVuYWJsZWR9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsYXllcjtcbiAgICB9KVxuICB9KTtcblxuLyoqXG4gKiBVcGRhdGVyIHRoYXQgY2hhbmdlcyB0aGUgbWFwIHN0eWxlIGJ5IGNhbGxpbmcgbWFwU3R5bGVDaGFuZ2VVcGRhdGVyIG9uIHZpc1N0YXRlLlxuICogSW4gYWRkaXRpb24gdG8gdGhhdCwgaXQgZG9lcyB0aGUgZm9sbG93aW5nOlxuICpcbiAqICAgMS4gVXBkYXRlIG1hcCBvdmVybGF5IGJsZW5kaW5nIG1vZGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb2xvck1vZGUgb2YgdGhlXG4gKiAgICAgIGJhc2UgbWFwLCBidXQgb25seSBpZiBpdCdzIG5vdCBpbiB0aGUgYG5vcm1hbGAgbW9kZS5cbiAqXG4gKiAgIDIuIFVwZGF0ZSBhbGwgdGhlIGxheWVycyB3aGljaCBoYXZlIHRoZSBgZGFya0Jhc2VNYXBFbmFibGVkYCBjb25maWcgc2V0dGluZ1xuICogICAgICBhZGp1c3RpbmcgaXQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb2xvck1vZGUgb2YgdGhlIGJhc2UgbWFwLlxuICpcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVkTWFwU3R5bGVDaGFuZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUNoYW5nZVVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCB7cGF5bG9hZH0gPSBhY3Rpb247XG4gIGNvbnN0IHttYXBTdHlsZX0gPSBzdGF0ZTtcbiAgY29uc3QgZ2V0Q29sb3JNb2RlID0ga2V5ID0+IG1hcFN0eWxlLm1hcFN0eWxlc1trZXldPy5jb2xvck1vZGU7XG4gIGNvbnN0IHByZXZDb2xvck1vZGUgPSBnZXRDb2xvck1vZGUobWFwU3R5bGUuc3R5bGVUeXBlKTtcbiAgY29uc3QgbmV4dENvbG9yTW9kZSA9IGdldENvbG9yTW9kZShwYXlsb2FkLnN0eWxlVHlwZSk7XG4gIGxldCB7dmlzU3RhdGUsIG1hcFN0YXRlfSA9IHN0YXRlO1xuICBpZiAobmV4dENvbG9yTW9kZSAhPT0gcHJldkNvbG9yTW9kZSkge1xuICAgIHN3aXRjaCAobmV4dENvbG9yTW9kZSkge1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5EQVJLOlxuICAgICAgICB2aXNTdGF0ZSA9IGNvbXBvc2VfKFtcbiAgICAgICAgICB1cGRhdGVPdmVybGF5QmxlbmRpbmcoT1ZFUkxBWV9CTEVORElOR1Muc2NyZWVuLnZhbHVlKSxcbiAgICAgICAgICB1cGRhdGVEYXJrQmFzZU1hcExheWVycyh0cnVlKVxuICAgICAgICBdKSh2aXNTdGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBCQVNFX01BUF9DT0xPUl9NT0RFUy5MSUdIVDpcbiAgICAgICAgdmlzU3RhdGUgPSBjb21wb3NlXyhbXG4gICAgICAgICAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nKE9WRVJMQVlfQkxFTkRJTkdTLmRhcmtlbi52YWx1ZSksXG4gICAgICAgICAgdXBkYXRlRGFya0Jhc2VNYXBMYXllcnMoZmFsc2UpXG4gICAgICAgIF0pKHZpc1N0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgLy8gZG8gbm90aGluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIFVwZGF0ZSBnbG9iZSBjb25maWcgY29sb3JzIHdoZW4gc3R5bGUgY2hhbmdlcyBhbmQgZ2xvYmUgaXMgZW5hYmxlZFxuICBpZiAobWFwU3RhdGUuZ2xvYmU/LmVuYWJsZWQpIHtcbiAgICAvLyBTd2l0Y2hpbmcgZnJvbSBcIk5vIEJhc2VtYXBcIiB0byBhIGJhc2VtYXAgLSByZXN0b3JlIGJhc2VtYXAgc3ViLXRvZ2dsZXNcbiAgICBpZiAocGF5bG9hZC5zdHlsZVR5cGUgIT09IE5PX01BUF9JRCAmJiBtYXBTdHlsZS5zdHlsZVR5cGUgPT09IE5PX01BUF9JRCkge1xuICAgICAgbWFwU3RhdGUgPSB7XG4gICAgICAgIC4uLm1hcFN0YXRlLFxuICAgICAgICBnbG9iZToge1xuICAgICAgICAgIC4uLm1hcFN0YXRlLmdsb2JlLFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgLi4ubWFwU3RhdGUuZ2xvYmUuY29uZmlnLFxuICAgICAgICAgICAgYmFzZW1hcDogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsczogdHJ1ZSxcbiAgICAgICAgICAgIGFkbWluTGluZXM6IHRydWUsXG4gICAgICAgICAgICB3YXRlcjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgbWFwU3RhdGUgPSBzeW5jR2xvYmVDb25maWdDb2xvcnNUb1N0eWxlKG1hcFN0YXRlLCBtYXBTdHlsZSwgcGF5bG9hZC5zdHlsZVR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZSxcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBTdHlsZTogbWFwU3R5bGVDaGFuZ2VVcGRhdGVyKG1hcFN0eWxlLCB7cGF5bG9hZDogey4uLnBheWxvYWR9fSlcbiAgfTtcbn07XG5cbi8qKlxuICogRGVyaXZlIGdsb2JlIGJhc2VtYXAgY29sb3JzIChzdXJmYWNlIC8gd2F0ZXIgLyBhZG1pbiBsaW5lcykgZnJvbSBhIG1hcCBzdHlsZSBhbmRcbiAqIHJldHVybiBhbiB1cGRhdGVkIG1hcFN0YXRlIHdpdGggdGhvc2UgY29sb3JzIHdyaXR0ZW4gaW50byBgZ2xvYmUuY29uZmlnYC4gVXNlZCBib3RoXG4gKiB3aGVuIHRoZSBiYXNlIG1hcCBzdHlsZSBjaGFuZ2VzIGFuZCB3aGVuIGVudGVyaW5nIGdsb2JlIG1vZGUsIHNvIHRoZSBnbG9iZSBhbHdheXNcbiAqIHJlZmxlY3RzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgYmFzZW1hcCBpbnN0ZWFkIG9mIHRoZSBzdGF0aWMgREVGQVVMVF9HTE9CRV9DT05GSUcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW5jR2xvYmVDb25maWdDb2xvcnNUb1N0eWxlKFxuICBtYXBTdGF0ZTogTWFwU3RhdGUsXG4gIG1hcFN0eWxlOiBNYXBTdHlsZSxcbiAgc3R5bGVUeXBlOiBzdHJpbmdcbik6IE1hcFN0YXRlIHtcbiAgaWYgKCFtYXBTdGF0ZS5nbG9iZT8uZW5hYmxlZCkge1xuICAgIHJldHVybiBtYXBTdGF0ZTtcbiAgfVxuXG4gIGNvbnN0IG5leHRTdHlsZU9iaiA9IG1hcFN0eWxlLm1hcFN0eWxlc1tzdHlsZVR5cGVdO1xuICBjb25zdCBuZXh0R2xvYmVDb25maWcgPSB7Li4ubWFwU3RhdGUuZ2xvYmUuY29uZmlnfTtcblxuICBpZiAoc3R5bGVUeXBlID09PSBOT19NQVBfSUQpIHtcbiAgICBuZXh0R2xvYmVDb25maWcuYmFzZW1hcCA9IGZhbHNlO1xuICAgIG5leHRHbG9iZUNvbmZpZy5sYWJlbHMgPSBmYWxzZTtcbiAgICBuZXh0R2xvYmVDb25maWcuYWRtaW5MaW5lcyA9IGZhbHNlO1xuICAgIG5leHRHbG9iZUNvbmZpZy53YXRlciA9IGZhbHNlO1xuICAgIG5leHRHbG9iZUNvbmZpZy5zdXJmYWNlQ29sb3IgPSBERUZBVUxUX0JBU0VNQVBfQ09MT1IuYmFja2dyb3VuZEZpbGxDb2xvcjtcbiAgICBuZXh0R2xvYmVDb25maWcud2F0ZXJDb2xvciA9IERFRkFVTFRfQkFTRU1BUF9DT0xPUi5iYXNlbWFwV2F0ZXJGaWxsQ29sb3I7XG4gICAgbmV4dEdsb2JlQ29uZmlnLmFkbWluTGluZXNDb2xvciA9IERFRkFVTFRfQkFTRU1BUF9DT0xPUi5iYXNlbWFwQWRtaW5MaW5lQ29sb3I7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYmFzZW1hcENvbG9ycyA9IG5leHRTdHlsZU9ialxuICAgICAgPyBnZXRCYXNlbWFwQ29sb3JzRm9yU3R5bGUoc3R5bGVUeXBlLCB7XG4gICAgICAgICAgc3R5bGU6IG5leHRTdHlsZU9iai5zdHlsZSxcbiAgICAgICAgICBsYXllckdyb3VwczogbmV4dFN0eWxlT2JqLmxheWVyR3JvdXBzXG4gICAgICAgIH0pXG4gICAgICA6IC8vIFN0eWxlIG9iamVjdCBub3QgeWV0IGxvYWRlZCAtIHVzZSBrbm93biBwcmVzZXRzIGJ5IHN0eWxlIHR5cGVcbiAgICAgICAgZ2V0QmFzZW1hcENvbG9yc0ZvclN0eWxlKHN0eWxlVHlwZSk7XG4gICAgbmV4dEdsb2JlQ29uZmlnLnN1cmZhY2VDb2xvciA9IGJhc2VtYXBDb2xvcnMuYmFja2dyb3VuZEZpbGxDb2xvcjtcbiAgICBuZXh0R2xvYmVDb25maWcud2F0ZXJDb2xvciA9IGJhc2VtYXBDb2xvcnMuYmFzZW1hcFdhdGVyRmlsbENvbG9yO1xuICAgIG5leHRHbG9iZUNvbmZpZy5hZG1pbkxpbmVzQ29sb3IgPSBiYXNlbWFwQ29sb3JzLmJhc2VtYXBBZG1pbkxpbmVDb2xvcjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ubWFwU3RhdGUsXG4gICAgZ2xvYmU6IHtcbiAgICAgIC4uLm1hcFN0YXRlLmdsb2JlLFxuICAgICAgY29uZmlnOiBuZXh0R2xvYmVDb25maWdcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVXBkYXRlciB0aGF0IHN3aXRjaGVzIHRoZSBtYXAgdmlldyBtb2RlICgyRCAvIDNEIC8gR2xvYmUpLiBSdW5zIHRoZSBiYXNlIG1hcC1zdGF0ZVxuICogdXBkYXRlciBhbmQsIHdoZW4gZW50ZXJpbmcgZ2xvYmUgbW9kZSwgc3luY3MgdGhlIGdsb2JlIGJhc2VtYXAgY29sb3JzIHRvIHRoZVxuICogY3VycmVudGx5IHNlbGVjdGVkIG1hcCBzdHlsZSBzbyB0aGUgZ2xvYmUgZG9lc24ndCBzaG93IHN0YWxlIGRlZmF1bHQgY29sb3JzLlxuICovXG5leHBvcnQgY29uc3QgY29tYmluZWRTZXRNYXBWaWV3TW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBLZXBsZXJHbFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRNYXBWaWV3TW9kZVVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBsZXQgbWFwU3RhdGUgPSBzZXRNYXBWaWV3TW9kZVVwZGF0ZXIoc3RhdGUubWFwU3RhdGUsIGFjdGlvbik7XG5cbiAgaWYgKG1hcFN0YXRlLmdsb2JlPy5lbmFibGVkKSB7XG4gICAgbWFwU3RhdGUgPSBzeW5jR2xvYmVDb25maWdDb2xvcnNUb1N0eWxlKG1hcFN0YXRlLCBzdGF0ZS5tYXBTdHlsZSwgc3RhdGUubWFwU3R5bGUuc3R5bGVUeXBlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwU3RhdGVcbiAgfTtcbn07XG5cbi8qKlxuICogVXBkYXRlciB0aGF0IGNoYW5nZXMgdGhlIGxheWVyIHR5cGUgYnkgY2FsbGluZyBgbGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcmAgb24gdmlzU3RhdGUuXG4gKiBJbiBhZGRpdGlvbiB0byB0aGF0LCBpZiB0aGUgbmV3IGxheWVyIHR5cGUgaGFzIHRoZSBgZGFya0Jhc2VNYXBFbmFibGVkYCBjb25maWdcbiAqIHNldHRpbmcsIHdlIGFkanVzdCBpdCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbG9yTW9kZSBvZiB0aGUgYmFzZSBtYXAuc1xuICovXG5leHBvcnQgY29uc3QgY29tYmluZWRMYXllclR5cGVDaGFuZ2VVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBMYXllclR5cGVDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgbGV0IHt2aXNTdGF0ZX0gPSBzdGF0ZTtcbiAgY29uc3Qgb2xkTGF5ZXJJbmRleCA9IHZpc1N0YXRlLmxheWVycy5maW5kSW5kZXgobGF5ZXIgPT4gbGF5ZXIgPT09IGFjdGlvbi5vbGRMYXllcik7XG4gIHZpc1N0YXRlID0gbGF5ZXJUeXBlQ2hhbmdlVXBkYXRlcih2aXNTdGF0ZSwgYWN0aW9uKTtcbiAgY29uc3QgbmV3TGF5ZXIgPSB2aXNTdGF0ZS5sYXllcnNbb2xkTGF5ZXJJbmRleF07XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmV3TGF5ZXI/LnZpc0NvbmZpZ1NldHRpbmdzLCAnZGFya0Jhc2VNYXBFbmFibGVkJykpIHtcbiAgICBjb25zdCB7bWFwU3R5bGV9ID0gc3RhdGU7XG4gICAgY29uc3Qge2NvbG9yTW9kZX0gPSBtYXBTdHlsZS5tYXBTdHlsZXNbbWFwU3R5bGUuc3R5bGVUeXBlXTtcbiAgICBjb25zdCB7ZGFya0Jhc2VNYXBFbmFibGVkfSA9IG5ld0xheWVyLmNvbmZpZy52aXNDb25maWc7XG4gICAgc3dpdGNoIChjb2xvck1vZGUpIHtcbiAgICAgIGNhc2UgQkFTRV9NQVBfQ09MT1JfTU9ERVMuREFSSzpcbiAgICAgICAgaWYgKCFkYXJrQmFzZU1hcEVuYWJsZWQpIHtcbiAgICAgICAgICB2aXNTdGF0ZSA9IHVwZGF0ZURhcmtCYXNlTWFwTGF5ZXJzKHRydWUsIG5ld0xheWVyLmlkKSh2aXNTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEJBU0VfTUFQX0NPTE9SX01PREVTLkxJR0hUOlxuICAgICAgICBpZiAoZGFya0Jhc2VNYXBFbmFibGVkKSB7XG4gICAgICAgICAgdmlzU3RhdGUgPSB1cGRhdGVEYXJrQmFzZU1hcExheWVycyhmYWxzZSwgbmV3TGF5ZXIuaWQpKHZpc1N0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdmlzU3RhdGVcbiAgfTtcbn07XG5cbi8qKlxuICogTWFrZSBtYXBMZWdlbmQgYWN0aXZlIHdoZW4gdG9nZ2xlU3BsaXRNYXAgYWN0aW9uIGlzIGNhbGxlZFxuICovXG5leHBvcnQgY29uc3QgdG9nZ2xlU3BsaXRNYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBUb2dnbGVTcGxpdE1hcFVwZGF0ZXJBY3Rpb25cbik6IEtlcGxlckdsU3RhdGUgPT4ge1xuICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAuLi5zdGF0ZSxcbiAgICB2aXNTdGF0ZTogdmlzU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUudmlzU3RhdGUsIGFjdGlvbiksXG4gICAgdWlTdGF0ZTogdWlTdGF0ZVRvZ2dsZVNwbGl0TWFwVXBkYXRlcihzdGF0ZS51aVN0YXRlKSxcbiAgICBtYXBTdGF0ZTogbWFwU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUubWFwU3RhdGUpXG4gIH07XG5cbiAgY29uc3QgaXNTcGxpdCA9IG5ld1N0YXRlLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggIT09IDA7XG4gIGNvbnN0IGlzTGVnZW5kQWN0aXZlID0gbmV3U3RhdGUudWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5hY3RpdmU7XG4gIGlmIChpc1NwbGl0ICYmICFpc0xlZ2VuZEFjdGl2ZSkge1xuICAgIG5ld1N0YXRlLnVpU3RhdGUgPSB0b2dnbGVNYXBDb250cm9sVXBkYXRlcihuZXdTdGF0ZS51aVN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7cGFuZWxJZDogJ21hcExlZ2VuZCcsIGluZGV4OiBhY3Rpb24ucGF5bG9hZH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogU2V0IG1hcCBzcGxpdCBtb2RlIHVwZGF0ZXIgLSBjb29yZGluYXRlcyBzdGF0ZSBjaGFuZ2VzIGFjcm9zcyB2aXNTdGF0ZSwgbWFwU3RhdGUsIGFuZCB1aVN0YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNYXBTcGxpdE1vZGVVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwU3BsaXRNb2RlVXBkYXRlckFjdGlvblxuKTogS2VwbGVyR2xTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBTcGxpdE1vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IHByZXZNb2RlID0gc3RhdGUubWFwU3RhdGUubWFwU3BsaXRNb2RlO1xuXG4gIGlmIChtYXBTcGxpdE1vZGUgPT09IHByZXZNb2RlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgbmV3TWFwU3RhdGUgPSBtYXBTdGF0ZVNldE1hcFNwbGl0TW9kZVVwZGF0ZXIoc3RhdGUubWFwU3RhdGUsIGFjdGlvbik7XG5cbiAgbGV0IG5ld1Zpc1N0YXRlID0gey4uLnN0YXRlLnZpc1N0YXRlfTtcblxuICBzd2l0Y2ggKG1hcFNwbGl0TW9kZSkge1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVA6XG4gICAgICBuZXdWaXNTdGF0ZSA9IHtcbiAgICAgICAgLi4ubmV3VmlzU3RhdGUsXG4gICAgICAgIHNwbGl0TWFwczogW11cbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5EVUFMX01BUDpcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFOlxuICAgICAgaWYgKHByZXZNb2RlID09PSBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCkge1xuICAgICAgICBuZXdWaXNTdGF0ZSA9IHtcbiAgICAgICAgICAuLi5uZXdWaXNTdGF0ZSxcbiAgICAgICAgICBzcGxpdE1hcHM6IGNvbXB1dGVTcGxpdE1hcExheWVycyhuZXdWaXNTdGF0ZS5sYXllcnMsIHtcbiAgICAgICAgICAgIGR1cGxpY2F0ZTogbWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRVxuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICBsZXQgbmV3VWlTdGF0ZSA9IHVpU3RhdGVUb2dnbGVTcGxpdE1hcFVwZGF0ZXIoc3RhdGUudWlTdGF0ZSk7XG5cbiAgY29uc3QgaXNTcGxpdCA9IG5ld1Zpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggIT09IDA7XG4gIGNvbnN0IGlzTGVnZW5kQWN0aXZlID0gbmV3VWlTdGF0ZS5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5hY3RpdmU7XG4gIGlmIChpc1NwbGl0ICYmICFpc0xlZ2VuZEFjdGl2ZSkge1xuICAgIG5ld1VpU3RhdGUgPSB0b2dnbGVNYXBDb250cm9sVXBkYXRlcihuZXdVaVN0YXRlLCB7XG4gICAgICBwYXlsb2FkOiB7cGFuZWxJZDogJ21hcExlZ2VuZCcsIGluZGV4OiAwfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYXBTdGF0ZTogbmV3TWFwU3RhdGUsXG4gICAgdmlzU3RhdGU6IG5ld1Zpc1N0YXRlLFxuICAgIHVpU3RhdGU6IG5ld1VpU3RhdGVcbiAgfTtcbn07XG5cbmNvbnN0IGRlZmF1bHRSZXBsYWNlRGF0YVRvTWFwT3B0aW9ucyA9IHtcbiAga2VlcEV4aXN0aW5nQ29uZmlnOiB0cnVlLFxuICBjZW50ZXJNYXA6IHRydWUsXG4gIGF1dG9DcmVhdGVMYXllcnM6IGZhbHNlXG59O1xuXG4vKipcbiAqIFVwZGF0ZXIgcmVwbGFjZSBhIGRhdGFzZXQgaW4gc3RhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcGxhY2VEYXRhSW5NYXBVcGRhdGVyID0gKFxuICBzdGF0ZTogS2VwbGVyR2xTdGF0ZSxcbiAge3BheWxvYWR9OiB7cGF5bG9hZDogUmVwbGFjZURhdGFJbk1hcFBheWxvYWR9XG4pOiBLZXBsZXJHbFN0YXRlID0+IHtcbiAgY29uc3Qge2RhdGFzZXRUb1JlcGxhY2VJZCwgZGF0YXNldFRvVXNlLCBvcHRpb25zID0ge319ID0gcGF5bG9hZDtcbiAgY29uc3QgYWRkRGF0YVRvTWFwT3B0aW9ucyA9IHsuLi5kZWZhdWx0UmVwbGFjZURhdGFUb01hcE9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuXG4gIC8vIGNoZWNrIGlmIGRhdGFzZXQgaXMgdGhlcmVcbiAgaWYgKCFzdGF0ZS52aXNTdGF0ZS5kYXRhc2V0c1tkYXRhc2V0VG9SZXBsYWNlSWRdKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG4gIC8vIGRhdGFzZXRUb1VzZSBpcyBQcm90b0RhdGFzZXRcbiAgY29uc3QgZGF0YUlkVG9Vc2UgPSBkYXRhc2V0VG9Vc2UuaW5mby5pZDtcbiAgaWYgKCFkYXRhSWRUb1VzZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICAvLyByZW1vdmUgZGF0YXNldCBhbmQgcHV0IGRlcGVuZGVuY2llcyBpbiB0b0JlTWVyZ2VkXG4gIGNvbnN0IHByZXBhcmVkU3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgdmlzU3RhdGU6IHByZXBhcmVTdGF0ZUZvckRhdGFzZXRSZXBsYWNlKHN0YXRlLnZpc1N0YXRlLCBkYXRhc2V0VG9SZXBsYWNlSWQsIGRhdGFJZFRvVXNlKVxuICB9O1xuXG4gIGNvbnN0IG5leHRTdGF0ZSA9IGFkZERhdGFUb01hcFVwZGF0ZXIoXG4gICAgcHJlcGFyZWRTdGF0ZSxcbiAgICBwYXlsb2FkXyh7XG4gICAgICBkYXRhc2V0czogZGF0YXNldFRvVXNlLFxuICAgICAgLy8gc2hvdWxkIHpvb20gdG8gbmV3IGRhdGFzZXRcbiAgICAgIG9wdGlvbnM6IGFkZERhdGFUb01hcE9wdGlvbnNcbiAgICB9KVxuICApO1xuXG4gIHJldHVybiBuZXh0U3RhdGU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQU9BLElBQUFDLGlCQUFB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
|
package/dist/composers.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare const actionHandler: {
|
|
|
8
8
|
payload: import("@kepler.gl/types").AddDataToMapPayload;
|
|
9
9
|
}) => combinedUpdaters.KeplerGlState;
|
|
10
10
|
"@@kepler.gl/MAP_STYLE_CHANGE": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").MapStyleChangeUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
11
|
+
"@@kepler.gl/SET_MAP_VIEW_MODE": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").SetMapViewModeUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
11
12
|
"@@kepler.gl/LAYER_TYPE_CHANGE": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").LayerTypeChangeUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
12
13
|
"@@kepler.gl/LOAD_FILES_SUCCESS": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").loadFilesSuccessUpdaterAction) => combinedUpdaters.KeplerGlState;
|
|
13
14
|
"@@kepler.gl/TOGGLE_SPLIT_MAP": (state: combinedUpdaters.KeplerGlState, action: import("@kepler.gl/actions").ToggleSplitMapUpdaterAction) => combinedUpdaters.KeplerGlState;
|
package/dist/composers.js
CHANGED
|
@@ -9,8 +9,7 @@ exports["default"] = void 0;
|
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _actions = require("@kepler.gl/actions");
|
|
11
11
|
var combinedUpdaters = _interopRequireWildcard(require("./combined-updaters"));
|
|
12
|
-
function
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
12
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
14
13
|
// SPDX-License-Identifier: MIT
|
|
15
14
|
// Copyright contributors to the kepler.gl project
|
|
16
15
|
|
|
@@ -18,6 +17,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
18
17
|
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
|
|
19
18
|
* It is used to generate documentation
|
|
20
19
|
*/
|
|
21
|
-
var actionHandler = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _actions.ActionTypes.ADD_DATA_TO_MAP, combinedUpdaters.addDataToMapUpdater), _actions.ActionTypes.MAP_STYLE_CHANGE, combinedUpdaters.combinedMapStyleChangeUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, combinedUpdaters.combinedLayerTypeChangeUpdater), _actions.ActionTypes.LOAD_FILES_SUCCESS, combinedUpdaters.loadFilesSuccessUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, combinedUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.SET_MAP_SPLIT_MODE, combinedUpdaters.setMapSplitModeUpdater), _actions.ActionTypes.REPLACE_DATA_IN_MAP, combinedUpdaters.replaceDataInMapUpdater);
|
|
20
|
+
var actionHandler = (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, _actions.ActionTypes.ADD_DATA_TO_MAP, combinedUpdaters.addDataToMapUpdater), _actions.ActionTypes.MAP_STYLE_CHANGE, combinedUpdaters.combinedMapStyleChangeUpdater), _actions.ActionTypes.SET_MAP_VIEW_MODE, combinedUpdaters.combinedSetMapViewModeUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, combinedUpdaters.combinedLayerTypeChangeUpdater), _actions.ActionTypes.LOAD_FILES_SUCCESS, combinedUpdaters.loadFilesSuccessUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, combinedUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.SET_MAP_SPLIT_MODE, combinedUpdaters.setMapSplitModeUpdater), _actions.ActionTypes.REPLACE_DATA_IN_MAP, combinedUpdaters.replaceDataInMapUpdater);
|
|
22
21
|
var _default = exports["default"] = actionHandler;
|
|
23
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJjb21iaW5lZFVwZGF0ZXJzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImFjdGlvbkhhbmRsZXIiLCJfZGVmaW5lUHJvcGVydHkyIiwiQWN0aW9uVHlwZXMiLCJBRERfREFUQV9UT19NQVAiLCJhZGREYXRhVG9NYXBVcGRhdGVyIiwiTUFQX1NUWUxFX0NIQU5HRSIsImNvbWJpbmVkTWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiU0VUX01BUF9WSUVXX01PREUiLCJjb21iaW5lZFNldE1hcFZpZXdNb2RlVXBkYXRlciIsIkxBWUVSX1RZUEVfQ0hBTkdFIiwiY29tYmluZWRMYXllclR5cGVDaGFuZ2VVcGRhdGVyIiwiTE9BRF9GSUxFU19TVUNDRVNTIiwibG9hZEZpbGVzU3VjY2Vzc1VwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiU0VUX01BUF9TUExJVF9NT0RFIiwic2V0TWFwU3BsaXRNb2RlVXBkYXRlciIsIlJFUExBQ0VfREFUQV9JTl9NQVAiLCJyZXBsYWNlRGF0YUluTWFwVXBkYXRlciIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb3NlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtBY3Rpb25UeXBlc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCAqIGFzIGNvbWJpbmVkVXBkYXRlcnMgZnJvbSAnLi9jb21iaW5lZC11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfREFUQV9UT19NQVBdOiBjb21iaW5lZFVwZGF0ZXJzLmFkZERhdGFUb01hcFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5NQVBfU1RZTEVfQ0hBTkdFXTogY29tYmluZWRVcGRhdGVycy5jb21iaW5lZE1hcFN0eWxlQ2hhbmdlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9NQVBfVklFV19NT0RFXTogY29tYmluZWRVcGRhdGVycy5jb21iaW5lZFNldE1hcFZpZXdNb2RlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogY29tYmluZWRVcGRhdGVycy5jb21iaW5lZExheWVyVHlwZUNoYW5nZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX1NVQ0NFU1NdOiBjb21iaW5lZFVwZGF0ZXJzLmxvYWRGaWxlc1N1Y2Nlc3NVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IGNvbWJpbmVkVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX01BUF9TUExJVF9NT0RFXTogY29tYmluZWRVcGRhdGVycy5zZXRNYXBTcGxpdE1vZGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVQTEFDRV9EQVRBX0lOX01BUF06IGNvbWJpbmVkVXBkYXRlcnMucmVwbGFjZURhdGFJbk1hcFVwZGF0ZXJcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFjdGlvbkhhbmRsZXI7XG4i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
|
package/dist/index.js
CHANGED
|
@@ -344,6 +344,5 @@ Object.keys(_layerUtils).forEach(function (key) {
|
|
|
344
344
|
});
|
|
345
345
|
});
|
|
346
346
|
var _middleware = require("./middleware");
|
|
347
|
-
function
|
|
348
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
349
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcm9vdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvcmUiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92aXNTdGF0ZSIsIl9tYXBTdGF0ZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl91aVN0YXRlIiwiX21hcFN0eWxlIiwiX3Byb3ZpZGVyU3RhdGUiLCJfdmlzU3RhdGVVcGRhdGVycyIsInZpc1N0YXRlVXBkYXRlcnMiLCJfbWFwU3RhdGVVcGRhdGVycyIsIm1hcFN0YXRlVXBkYXRlcnMiLCJfbWFwU3R5bGVVcGRhdGVycyIsIm1hcFN0eWxlVXBkYXRlcnMiLCJfdWlTdGF0ZVVwZGF0ZXJzIiwidWlTdGF0ZVVwZGF0ZXJzIiwiX2NvbWJpbmVVcGRhdGVycyIsIl9jb21iaW5lZFVwZGF0ZXJzIiwiY29tYmluZVVwZGF0ZXJzIiwiY29tYmluZWRVcGRhdGVycyIsIl92aXNTdGF0ZU1lcmdlcnMiLCJ2aXNTdGF0ZU1lcmdlcnMiLCJfdmlzU3RhdGVTZWxlY3RvcnMiLCJfcHJvdmlkZXJTdGF0ZVVwZGF0ZXJzIiwicHJvdmlkZXJTdGF0ZVVwZGF0ZXJzIiwiX2NvbXBvc2VySGVscGVycyIsIl9kYXRhVXRpbHMiLCJfZXhwb3J0VXRpbHMiLCJfaW50ZXJhY3Rpb25VdGlscyIsIl9sYXllclV0aWxzIiwiX21pZGRsZXdhcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJuIiwiX19wcm90b19fIiwiYSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJpIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIFRPRE86IFVubmVjZXNzYXJ5IHdoZW4gZXNsaW50LXBsdWdpbi1wcmV0dGllciBpcyB1cGdyYWRlZFxuLyogZXNsaW50LWRpc2FibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cblxuLy8gUm9vdCBSZWR1Y2VyLCB1c2VkIHRvIHJlZ2lzdGVyLCBhbmQgcmVtb3ZlIGNvcmUgcmVkdWNlcnMgb2YgZWFjaCBpbnN0YW5jZVxuZXhwb3J0IHtkZWZhdWx0fSBmcm9tICcuL3Jvb3QnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIGtlcGxlckdsUmVkdWNlcn0gZnJvbSAnLi9yb290JztcblxuLy8gQ29yZSBSZWR1Y2VyXG5leHBvcnQge1xuICBkZWZhdWx0IGFzIGtlcGxlckdsUmVkdWNlckNvcmUsXG4gIHZpc1N0YXRlTGVucyxcbiAgbWFwU3RhdGVMZW5zLFxuICB1aVN0YXRlTGVucyxcbiAgbWFwU3R5bGVMZW5zXG59IGZyb20gJy4vY29yZSc7XG5cbi8vIEVhY2ggaW5kaXZpZHVhbCByZWR1Y2VyXG5leHBvcnQge2RlZmF1bHQgYXMgdmlzU3RhdGVSZWR1Y2VyfSBmcm9tICcuL3Zpcy1zdGF0ZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgbWFwU3RhdGVSZWR1Y2VyfSBmcm9tICcuL21hcC1zdGF0ZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgdWlTdGF0ZVJlZHVjZXJ9IGZyb20gJy4vdWktc3RhdGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIG1hcFN0eWxlUmVkdWNlcn0gZnJvbSAnLi9tYXAtc3R5bGUnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIHByb3ZpZGVyUmVkdWNlcn0gZnJvbSAnLi9wcm92aWRlci1zdGF0ZSc7XG5cbi8vIHJlZHVjZXIgdXBkYXRlcnNcblxuZXhwb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5leHBvcnQgKiBhcyBtYXBTdGF0ZVVwZGF0ZXJzIGZyb20gJy4vbWFwLXN0YXRlLXVwZGF0ZXJzJztcbmV4cG9ydCAqIGFzIG1hcFN0eWxlVXBkYXRlcnMgZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuZXhwb3J0ICogYXMgdWlTdGF0ZVVwZGF0ZXJzIGZyb20gJy4vdWktc3RhdGUtdXBkYXRlcnMnO1xuXG4vLyBUaGlzIHdpbGwgYmUgZGVwcmVjYXRlZFxuZXhwb3J0ICogYXMgY29tYmluZVVwZGF0ZXJzIGZyb20gJy4vY29tYmluZWQtdXBkYXRlcnMnO1xuZXhwb3J0ICogYXMgY29tYmluZWRVcGRhdGVycyBmcm9tICcuL2NvbWJpbmVkLXVwZGF0ZXJzJztcbmV4cG9ydCB0eXBlIHtLZXBsZXJHbFN0YXRlfSBmcm9tICcuL2NvbWJpbmVkLXVwZGF0ZXJzJztcbmV4cG9ydCB7YWRkRGF0YVRvTWFwVXBkYXRlciwgcmVwbGFjZURhdGFJbk1hcFVwZGF0ZXJ9IGZyb20gJy4vY29tYmluZWQtdXBkYXRlcnMnO1xuXG4vLyByZWR1Y2VyIG1lcmdlc1xuZXhwb3J0ICogYXMgdmlzU3RhdGVNZXJnZXJzIGZyb20gJy4vdmlzLXN0YXRlLW1lcmdlcic7XG5leHBvcnQgKiBmcm9tICcuL3Zpcy1zdGF0ZS1zZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi92aXMtc3RhdGUtbWVyZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlci1zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL3VpLXN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwLXN0YXRlJztcbmV4cG9ydCB7Z2V0SW5pdGlhbElucHV0U3R5bGUsIGxvYWRNYXBTdHlsZXNVcGRhdGVyLCBJTklUSUFMX01BUF9TVFlMRX0gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuZXhwb3J0IHtcbiAgZml0Qm91bmRzVXBkYXRlcixcbiAgcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUsXG4gIElOSVRJQUxfTUFQX1NUQVRFXG59IGZyb20gJy4vbWFwLXN0YXRlLXVwZGF0ZXJzJztcblxuLy8gSGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb3Nlci1oZWxwZXJzJztcblxuLy8gZXhwb3J0IHR5cGVzXG5leHBvcnQgKiBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbmV4cG9ydCB7SU5JVElBTF9VSV9TVEFURX0gZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5cbmV4cG9ydCB7Z2V0RGVmYXVsdE1hcFN0eWxlc30gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuZXhwb3J0IHR5cGUge01hcGJveFN0eWxlVXJsLCBNYXBTdHlsZX0gZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQtdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmFjdGlvbi11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXV0aWxzJztcbmV4cG9ydCAqIGFzIHByb3ZpZGVyU3RhdGVVcGRhdGVycyBmcm9tICcuL3Byb3ZpZGVyLXN0YXRlLXVwZGF0ZXJzJztcblxuZXhwb3J0IHtlbmhhbmNlUmVkdXhNaWRkbGV3YXJlfSBmcm9tICcuL21pZGRsZXdhcmUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0EsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBSUEsSUFBQUMsS0FBQSxH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
|
|
347
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
348
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcm9vdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvcmUiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92aXNTdGF0ZSIsIl9tYXBTdGF0ZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2V4cG9ydE5hbWVzIiwiZXhwb3J0cyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl91aVN0YXRlIiwiX21hcFN0eWxlIiwiX3Byb3ZpZGVyU3RhdGUiLCJfdmlzU3RhdGVVcGRhdGVycyIsInZpc1N0YXRlVXBkYXRlcnMiLCJfbWFwU3RhdGVVcGRhdGVycyIsIm1hcFN0YXRlVXBkYXRlcnMiLCJfbWFwU3R5bGVVcGRhdGVycyIsIm1hcFN0eWxlVXBkYXRlcnMiLCJfdWlTdGF0ZVVwZGF0ZXJzIiwidWlTdGF0ZVVwZGF0ZXJzIiwiX2NvbWJpbmVVcGRhdGVycyIsIl9jb21iaW5lZFVwZGF0ZXJzIiwiY29tYmluZVVwZGF0ZXJzIiwiY29tYmluZWRVcGRhdGVycyIsIl92aXNTdGF0ZU1lcmdlcnMiLCJ2aXNTdGF0ZU1lcmdlcnMiLCJfdmlzU3RhdGVTZWxlY3RvcnMiLCJfcHJvdmlkZXJTdGF0ZVVwZGF0ZXJzIiwicHJvdmlkZXJTdGF0ZVVwZGF0ZXJzIiwiX2NvbXBvc2VySGVscGVycyIsIl9kYXRhVXRpbHMiLCJfZXhwb3J0VXRpbHMiLCJfaW50ZXJhY3Rpb25VdGlscyIsIl9sYXllclV0aWxzIiwiX21pZGRsZXdhcmUiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwic2V0IiwiX3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gVE9ETzogVW5uZWNlc3Nhcnkgd2hlbiBlc2xpbnQtcGx1Z2luLXByZXR0aWVyIGlzIHVwZ3JhZGVkXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuXG4vLyBSb290IFJlZHVjZXIsIHVzZWQgdG8gcmVnaXN0ZXIsIGFuZCByZW1vdmUgY29yZSByZWR1Y2VycyBvZiBlYWNoIGluc3RhbmNlXG5leHBvcnQge2RlZmF1bHR9IGZyb20gJy4vcm9vdCc7XG5leHBvcnQge2RlZmF1bHQgYXMga2VwbGVyR2xSZWR1Y2VyfSBmcm9tICcuL3Jvb3QnO1xuXG4vLyBDb3JlIFJlZHVjZXJcbmV4cG9ydCB7XG4gIGRlZmF1bHQgYXMga2VwbGVyR2xSZWR1Y2VyQ29yZSxcbiAgdmlzU3RhdGVMZW5zLFxuICBtYXBTdGF0ZUxlbnMsXG4gIHVpU3RhdGVMZW5zLFxuICBtYXBTdHlsZUxlbnNcbn0gZnJvbSAnLi9jb3JlJztcblxuLy8gRWFjaCBpbmRpdmlkdWFsIHJlZHVjZXJcbmV4cG9ydCB7ZGVmYXVsdCBhcyB2aXNTdGF0ZVJlZHVjZXJ9IGZyb20gJy4vdmlzLXN0YXRlJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBtYXBTdGF0ZVJlZHVjZXJ9IGZyb20gJy4vbWFwLXN0YXRlJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyB1aVN0YXRlUmVkdWNlcn0gZnJvbSAnLi91aS1zdGF0ZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgbWFwU3R5bGVSZWR1Y2VyfSBmcm9tICcuL21hcC1zdHlsZSc7XG5leHBvcnQge2RlZmF1bHQgYXMgcHJvdmlkZXJSZWR1Y2VyfSBmcm9tICcuL3Byb3ZpZGVyLXN0YXRlJztcblxuLy8gcmVkdWNlciB1cGRhdGVyc1xuXG5leHBvcnQgKiBhcyB2aXNTdGF0ZVVwZGF0ZXJzIGZyb20gJy4vdmlzLXN0YXRlLXVwZGF0ZXJzJztcbmV4cG9ydCAqIGFzIG1hcFN0YXRlVXBkYXRlcnMgZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuZXhwb3J0ICogYXMgbWFwU3R5bGVVcGRhdGVycyBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5leHBvcnQgKiBhcyB1aVN0YXRlVXBkYXRlcnMgZnJvbSAnLi91aS1zdGF0ZS11cGRhdGVycyc7XG5cbi8vIFRoaXMgd2lsbCBiZSBkZXByZWNhdGVkXG5leHBvcnQgKiBhcyBjb21iaW5lVXBkYXRlcnMgZnJvbSAnLi9jb21iaW5lZC11cGRhdGVycyc7XG5leHBvcnQgKiBhcyBjb21iaW5lZFVwZGF0ZXJzIGZyb20gJy4vY29tYmluZWQtdXBkYXRlcnMnO1xuZXhwb3J0IHR5cGUge0tlcGxlckdsU3RhdGV9IGZyb20gJy4vY29tYmluZWQtdXBkYXRlcnMnO1xuZXhwb3J0IHthZGREYXRhVG9NYXBVcGRhdGVyLCByZXBsYWNlRGF0YUluTWFwVXBkYXRlcn0gZnJvbSAnLi9jb21iaW5lZC11cGRhdGVycyc7XG5cbi8vIHJlZHVjZXIgbWVyZ2VzXG5leHBvcnQgKiBhcyB2aXNTdGF0ZU1lcmdlcnMgZnJvbSAnLi92aXMtc3RhdGUtbWVyZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzLXN0YXRlLXNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3Zpcy1zdGF0ZS1tZXJnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlci1zdGF0ZS11cGRhdGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVyLXN0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vdWktc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtc3RhdGUnO1xuZXhwb3J0IHtnZXRJbml0aWFsSW5wdXRTdHlsZSwgbG9hZE1hcFN0eWxlc1VwZGF0ZXIsIElOSVRJQUxfTUFQX1NUWUxFfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5leHBvcnQge1xuICBmaXRCb3VuZHNVcGRhdGVyLFxuICBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSxcbiAgSU5JVElBTF9NQVBfU1RBVEVcbn0gZnJvbSAnLi9tYXAtc3RhdGUtdXBkYXRlcnMnO1xuXG4vLyBIZWxwZXJzXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvc2VyLWhlbHBlcnMnO1xuXG4vLyBleHBvcnQgdHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vdmlzLXN0YXRlLXVwZGF0ZXJzJztcblxuZXhwb3J0IHtJTklUSUFMX1VJX1NUQVRFfSBmcm9tICcuL3VpLXN0YXRlLXVwZGF0ZXJzJztcblxuZXhwb3J0IHtnZXREZWZhdWx0TWFwU3R5bGVzfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5leHBvcnQgdHlwZSB7TWFwYm94U3R5bGVVcmwsIE1hcFN0eWxlfSBmcm9tICcuL21hcC1zdHlsZS11cGRhdGVycyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZGF0YS11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyYWN0aW9uLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItdXRpbHMnO1xuZXhwb3J0ICogYXMgcHJvdmlkZXJTdGF0ZVVwZGF0ZXJzIGZyb20gJy4vcHJvdmlkZXItc3RhdGUtdXBkYXRlcnMnO1xuXG5leHBvcnQge2VuaGFuY2VSZWR1eE1pZGRsZXdhcmV9IGZyb20gJy4vbWlkZGxld2FyZSc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFJQSxJQUFBQyxLQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFTQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFGLHVCQUFBLENBQUFGLE9BQUE7QUF5QkFLLE1BQUEsQ0FBQUMsSUFBQSxDQUFBRixTQUFBLEVBQUFHLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQUosU0FBQSxDQUFBSSxHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBWixTQUFBLENBQUFJLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUF4QkEsSUFBQVMsUUFBQSxHQUFBZix1QkFBQSxDQUFBRixPQUFBO0FBdUJBSyxNQUFBLENBQUFDLElBQUEsQ0FBQVcsUUFBQSxFQUFBVixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUFTLFFBQUEsQ0FBQVQsR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQUMsUUFBQSxDQUFBVCxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBdEJBLElBQUFVLFNBQUEsR0FBQW5CLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBakIsdUJBQUEsQ0FBQUYsT0FBQTtBQW9CQUssTUFBQSxDQUFBQyxJQUFBLENBQUFhLGNBQUEsRUFBQVosT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBVyxjQUFBLENBQUFYLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFHLGNBQUEsQ0FBQVgsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQWNBLElBQUFZLGlCQUFBLEdBQUFsQix1QkFBQSxDQUFBRixPQUFBO0FBQXFDYSxPQUFBLENBQUFRLGdCQUFBLEdBQUFELGlCQUFBO0FBQXJDZixNQUFBLENBQUFDLElBQUEsQ0FBQWMsaUJBQUEsRUFBQWIsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBWSxpQkFBQSxDQUFBWixHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBSSxpQkFBQSxDQUFBWixHQUFBO0lBQUE7RUFBQTtBQUFBO0FBVkEsSUFBQWMsaUJBQUEsR0FBQXBCLHVCQUFBLENBQUFGLE9BQUE7QUFJOEJhLE9BQUEsQ0FBQVUsZ0JBQUEsR0FBQUQsaUJBQUE7QUFMOUIsSUFBQUUsaUJBQUEsR0FBQXRCLHVCQUFBLENBQUFGLE9BQUE7QUFBbUdhLE9BQUEsQ0FBQVksZ0JBQUEsR0FBQUQsaUJBQUE7QUFhbkcsSUFBQUUsZ0JBQUEsR0FBQXhCLHVCQUFBLENBQUFGLE9BQUE7QUFBcURhLE9BQUEsQ0FBQWMsZUFBQSxHQUFBRCxnQkFBQTtBQXZCckQsSUFBQUUsZ0JBQUEsR0FBQTFCLHVCQUFBLENBQUFGLE9BQUE7QUFBaUYsSUFBQTZCLGlCQUFBLEdBQUFELGdCQUFBO0FBQUFmLE9BQUEsQ0FBQWlCLGVBQUEsR0FBQUYsZ0JBQUE7QUFBQWYsT0FBQSxDQUFBa0IsZ0JBQUEsR0FBQUgsZ0JBQUE7QUFLakYsSUFBQUksZ0JBQUEsR0FBQTlCLHVCQUFBLENBQUFGLE9BQUE7QUFBbUNhLE9BQUEsQ0FBQW9CLGVBQUEsR0FBQUQsZ0JBQUE7QUFBbkMzQixNQUFBLENBQUFDLElBQUEsQ0FBQTBCLGdCQUFBLEVBQUF6QixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUF3QixnQkFBQSxDQUFBeEIsR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQWdCLGdCQUFBLENBQUF4QixHQUFBO0lBQUE7RUFBQTtBQUFBO0FBREEsSUFBQTBCLGtCQUFBLEdBQUFsQyxPQUFBO0FBQUFLLE1BQUEsQ0FBQUMsSUFBQSxDQUFBNEIsa0JBQUEsRUFBQTNCLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFDLFlBQUEsRUFBQUosR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUssT0FBQSxJQUFBQSxPQUFBLENBQUFMLEdBQUEsTUFBQTBCLGtCQUFBLENBQUExQixHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBa0Isa0JBQUEsQ0FBQTFCLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFFQSxJQUFBMkIsc0JBQUEsR0FBQWpDLHVCQUFBLENBQUFGLE9BQUE7QUFBMENhLE9BQUEsQ0FBQXVCLHFCQUFBLEdBQUFELHNCQUFBO0FBQTFDOUIsTUFBQSxDQUFBQyxJQUFBLENBQUE2QixzQkFBQSxFQUFBNUIsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBMkIsc0JBQUEsQ0FBQTNCLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUFtQixzQkFBQSxDQUFBM0IsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQVlBLElBQUE2QixnQkFBQSxHQUFBckMsT0FBQTtBQUFBSyxNQUFBLENBQUFDLElBQUEsQ0FBQStCLGdCQUFBLEVBQUE5QixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUE2QixnQkFBQSxDQUFBN0IsR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQXFCLGdCQUFBLENBQUE3QixHQUFBO0lBQUE7RUFBQTtBQUFBO0FBVUEsSUFBQThCLFVBQUEsR0FBQXRDLE9BQUE7QUFBQUssTUFBQSxDQUFBQyxJQUFBLENBQUFnQyxVQUFBLEVBQUEvQixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBQyxZQUFBLEVBQUFKLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFLLE9BQUEsSUFBQUEsT0FBQSxDQUFBTCxHQUFBLE1BQUE4QixVQUFBLENBQUE5QixHQUFBO0VBQUFILE1BQUEsQ0FBQVMsY0FBQSxDQUFBRCxPQUFBLEVBQUFMLEdBQUE7SUFBQU8sVUFBQTtJQUFBQyxHQUFBLFdBQUFBLElBQUE7TUFBQSxPQUFBc0IsVUFBQSxDQUFBOUIsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUErQixZQUFBLEdBQUF2QyxPQUFBO0FBQUFLLE1BQUEsQ0FBQUMsSUFBQSxDQUFBaUMsWUFBQSxFQUFBaEMsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBK0IsWUFBQSxDQUFBL0IsR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQXVCLFlBQUEsQ0FBQS9CLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFDQSxJQUFBZ0MsaUJBQUEsR0FBQXhDLE9BQUE7QUFBQUssTUFBQSxDQUFBQyxJQUFBLENBQUFrQyxpQkFBQSxFQUFBakMsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBZ0MsaUJBQUEsQ0FBQWhDLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsSUFBQTtNQUFBLE9BQUF3QixpQkFBQSxDQUFBaEMsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFpQyxXQUFBLEdBQUF6QyxPQUFBO0FBQUFLLE1BQUEsQ0FBQUMsSUFBQSxDQUFBbUMsV0FBQSxFQUFBbEMsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBaUMsV0FBQSxDQUFBakMsR0FBQTtFQUFBSCxNQUFBLENBQUFTLGNBQUEsQ0FBQUQsT0FBQSxFQUFBTCxHQUFBO0lBQUFPLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxJQUFBO01BQUEsT0FBQXlCLFdBQUEsQ0FBQWpDLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFHQSxJQUFBa0MsV0FBQSxHQUFBMUMsT0FBQTtBQUFvRCxTQUFBRSx3QkFBQXlDLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUEzQyx1QkFBQSxZQUFBQSx3QkFBQXlDLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFqQyxHQUFBLENBQUEyQixDQUFBLEdBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEVBQUFRLENBQUEsY0FBQUssRUFBQSxJQUFBYixDQUFBLGdCQUFBYSxFQUFBLE9BQUE5QyxjQUFBLENBQUFDLElBQUEsQ0FBQWdDLENBQUEsRUFBQWEsRUFBQSxPQUFBTixDQUFBLElBQUFELENBQUEsR0FBQTVDLE1BQUEsQ0FBQVMsY0FBQSxLQUFBVCxNQUFBLENBQUFvRCx3QkFBQSxDQUFBZCxDQUFBLEVBQUFhLEVBQUEsT0FBQU4sQ0FBQSxDQUFBbEMsR0FBQSxJQUFBa0MsQ0FBQSxDQUFBSyxHQUFBLElBQUFOLENBQUEsQ0FBQUUsQ0FBQSxFQUFBSyxFQUFBLEVBQUFOLENBQUEsSUFBQUMsQ0FBQSxDQUFBSyxFQUFBLElBQUFiLENBQUEsQ0FBQWEsRUFBQSxXQUFBTCxDQUFBLEtBQUFSLENBQUEsRUFBQUMsQ0FBQSIsImlnbm9yZUxpc3QiOltdfQ==
|