kepler.gl 3.1.9 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -21
- package/dist/src/components/src/common/link-renderer.d.ts +6 -2
- package/dist/src/components/src/index.d.ts +1 -0
- package/dist/src/components/src/map-container.d.ts +1 -0
- package/dist/src/components/src/plot-container.d.ts +1 -0
- package/dist/src/components/src/side-panel/layer-manager.d.ts +1 -0
- package/dist/src/duckdb/src/index.d.ts +1 -0
- package/dist/src/duckdb/src/processors/data-processor.d.ts +8 -0
- package/dist/src/utils/src/data-utils.d.ts +1 -0
- package/package.json +2 -2
- package/src/actions/package.json +8 -8
- package/src/ai-assistant/package.json +7 -7
- package/src/cloud-providers/package.json +2 -2
- package/src/common-utils/package.json +3 -3
- package/src/components/dist/common/link-renderer.d.ts +6 -2
- package/src/components/dist/common/link-renderer.js +1 -1
- package/src/components/dist/index.d.ts +1 -0
- package/src/components/dist/index.js +44 -1
- package/src/components/dist/map-container.d.ts +1 -0
- package/src/components/dist/map-container.js +2 -1
- package/src/components/dist/modal-container.js +3 -3
- package/src/components/dist/modals/tilesets-modals/tileset-raster-form.js +38 -9
- package/src/components/dist/plot-container.d.ts +1 -0
- package/src/components/dist/plot-container.js +7 -4
- package/src/components/dist/side-panel/layer-manager.d.ts +1 -0
- package/src/components/dist/side-panel/layer-manager.js +5 -3
- package/src/components/dist/side-panel/layer-panel/color-scale-selector.js +16 -9
- package/src/components/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +3 -3
- package/src/components/package.json +16 -16
- package/src/components/src/common/link-renderer.tsx +7 -2
- package/src/components/src/index.ts +8 -0
- package/src/components/src/map-container.tsx +4 -0
- package/src/components/src/modal-container.tsx +6 -2
- package/src/components/src/modals/tilesets-modals/tileset-raster-form.tsx +60 -4
- package/src/components/src/plot-container.tsx +9 -3
- package/src/components/src/side-panel/layer-manager.tsx +4 -2
- package/src/components/src/side-panel/layer-panel/color-scale-selector.tsx +22 -9
- package/src/components/src/side-panel/layer-panel/raster-tile-layer-configurator.tsx +2 -1
- package/src/constants/dist/default-settings.js +1 -1
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/56/48/71c2c5381c01c063c164e15fa04b4b1f3faae02e6727f2f2daf483e15205feca68334bad721af0c6f31abb20b56d60504623838127764aab6883912e7f71 +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/e4/a7/04d0f645deb094cab21e70c2457f3b87750bee1dfea9b3ad1d4f746ae10ff013d960af8a46b1f87a10409989d6a352c21e29a8784a161a84f83a310955e2 +1 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/b2/5f/6daa692cacd1234803d6a5abefef0c49aae2d1403e4d8e53140088950a04 +2 -0
- package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/bf/88/ea60c7619185516464a4ae21f51394966047bfdf190a5463de651c61931c +2 -0
- package/src/constants/package.json +2 -2
- package/src/constants/umd/keplergl.min.js +1 -1
- package/src/deckgl-arrow-layers/package.json +2 -2
- package/src/deckgl-layers/package.json +4 -4
- package/src/duckdb/dist/index.d.ts +1 -0
- package/src/duckdb/dist/index.js +24 -2
- package/src/duckdb/dist/processors/data-processor.d.ts +8 -0
- package/src/duckdb/dist/processors/data-processor.js +23 -1
- package/src/duckdb/package.json +6 -6
- package/src/duckdb/src/index.ts +5 -0
- package/src/duckdb/src/processors/data-processor.ts +25 -1
- package/src/effects/package.json +5 -5
- package/src/layers/dist/raster-tile/gpu-utils.d.ts +11 -10
- package/src/layers/dist/raster-tile/gpu-utils.js +7 -6
- package/src/layers/dist/raster-tile/image.d.ts +4 -0
- package/src/layers/dist/raster-tile/image.js +30 -16
- package/src/layers/dist/raster-tile/raster-tile-layer.d.ts +4 -0
- package/src/layers/dist/raster-tile/raster-tile-layer.js +18 -6
- package/src/layers/dist/raster-tile/request-throttle.d.ts +1 -1
- package/src/layers/dist/raster-tile/request-throttle.js +17 -16
- package/src/layers/dist/raster-tile/types.d.ts +16 -0
- package/src/layers/dist/raster-tile/types.js +1 -1
- package/src/layers/dist/raster-tile/url.d.ts +1 -1
- package/src/layers/dist/raster-tile/url.js +5 -4
- package/src/layers/package.json +9 -9
- package/src/layers/src/raster-tile/gpu-utils.ts +96 -78
- package/src/layers/src/raster-tile/image.ts +35 -9
- package/src/layers/src/raster-tile/raster-tile-layer.ts +23 -5
- package/src/layers/src/raster-tile/request-throttle.ts +10 -5
- package/src/layers/src/raster-tile/types.ts +19 -1
- package/src/layers/src/raster-tile/url.ts +10 -3
- package/src/localization/package.json +1 -1
- package/src/processors/package.json +7 -7
- package/src/reducers/package.json +16 -16
- package/src/schemas/package.json +7 -7
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/21/4a/50f77069dbf70c6792dd82d4e149375a888e25ddddd3209e2db013be62091f79082291fa06eb518cccb111b09a778e2946c1fb7a27bb6e32f72da0ccf250 +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/41/e3/d873c0efff87c4438d34d09be942ff6877947926c2309949e1eea8a58722c9ebf1e9451b44f62996d3590f398318e2fd17f19613445810226c8354b7d746 +1 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/9d/95/efc8c9f0bdd09b105646cf5e34b067e621726ceeb296771ff7da9e2e03b4 +2 -0
- package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/c5/b6/9c4bdb089acc30ac8a16a6b9b93898757537f7017b2f725ddb832b4614d6 +2 -0
- package/src/styles/package.json +2 -2
- package/src/styles/umd/keplergl.min.js +1 -1
- package/src/table/dist/tileset/vector-tile-utils.js +9 -5
- package/src/table/package.json +5 -5
- package/src/table/src/tileset/vector-tile-utils.ts +9 -6
- package/src/tasks/package.json +2 -2
- package/src/types/package.json +1 -1
- package/src/utils/dist/application-config.js +5 -5
- package/src/utils/dist/data-scale-utils.js +35 -16
- package/src/utils/dist/data-utils.d.ts +1 -0
- package/src/utils/dist/data-utils.js +2 -1
- package/src/utils/package.json +4 -4
- package/src/utils/src/application-config.ts +4 -6
- package/src/utils/src/data-scale-utils.ts +34 -21
- package/src/utils/src/data-utils.ts +1 -0
- package/umd/keplergl.min.js +1240 -1220
|
@@ -58,7 +58,8 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
58
58
|
setExportImageDataUri = _ref.setExportImageDataUri,
|
|
59
59
|
setExportImageError = _ref.setExportImageError,
|
|
60
60
|
addNotification = _ref.addNotification,
|
|
61
|
-
enableErrorNotification = _ref.enableErrorNotification
|
|
61
|
+
enableErrorNotification = _ref.enableErrorNotification,
|
|
62
|
+
logoComponent = _ref.logoComponent;
|
|
62
63
|
var plottingAreaRef = (0, _react.useRef)(null);
|
|
63
64
|
var _useState = (0, _react.useState)(function () {
|
|
64
65
|
return mapFields.visState.effects.map(function (effect) {
|
|
@@ -203,9 +204,11 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
203
204
|
}),
|
|
204
205
|
visState: _objectSpread(_objectSpread({}, mapFields.visState), {}, {
|
|
205
206
|
effects: plotEffects
|
|
206
|
-
})
|
|
207
|
+
}),
|
|
208
|
+
// allow overriding the legend panel logo in export
|
|
209
|
+
logoComponent: logoComponent
|
|
207
210
|
});
|
|
208
|
-
}, [mapFields, scaledMapStyle, newMapState, legend, onMapRender, plotEffects]);
|
|
211
|
+
}, [mapFields, scaledMapStyle, newMapState, legend, onMapRender, plotEffects, logoComponent]);
|
|
209
212
|
var isSplit = splitMaps.length > 1;
|
|
210
213
|
var mapContainers = !isSplit ? /*#__PURE__*/_react["default"].createElement(MapContainer, (0, _extends2["default"])({
|
|
211
214
|
index: 0,
|
|
@@ -232,4 +235,4 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
|
|
|
232
235
|
}
|
|
233
236
|
return /*#__PURE__*/_react["default"].memo(PlotContainer);
|
|
234
237
|
}
|
|
235
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJwbG90dGluZ0FyZWFSZWYiLCJ1c2VSZWYiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsInZpc1N0YXRlIiwiZWZmZWN0cyIsIm1hcCIsImVmZmVjdCIsImNsb25lIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBsb3RFZmZlY3RzIiwibWFwU3RhdGUiLCJzY2FsZSIsInVzZU1lbW8iLCJjYWxjdWxhdGVkU2NhbGUiLCJnZXRTY2FsZUZyb21JbWFnZVNpemUiLCJpbWFnZVciLCJpbWFnZUgiLCJpc1NwbGl0Iiwic2NhbGVkTWFwU3R5bGUiLCJtYXBTdHlsZSIsImJvdHRvbU1hcFN0eWxlIiwic2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbiIsInRvcE1hcFN0eWxlIiwiZGVib3VuY2VkU2NyZWVuc2hvdCIsImRlYm91bmNlIiwiY3VycmVudCIsImNvbnZlcnRUb1BuZyIsInRoZW4iLCJlcnIiLCJleHBvcnRJbWFnZUVycm9yIiwicmV0cmlldmVOZXdTY3JlZW5zaG90IiwidXNlQ2FsbGJhY2siLCJkZWJvdW5jZWRNYXBSZW5kZXIiLCJpc1N0eWxlTG9hZGVkIiwib25NYXBSZW5kZXIiLCJ1c2VFZmZlY3QiLCJwcm9jZXNzaW5nIiwidW5kZWZpbmVkIiwiX3VzZU1lbW8iLCJzaXplIiwibmV3TWFwU3RhdGUiLCJiYXNlTWFwU3RhdGUiLCJ6b29tIiwiTWF0aCIsImxvZzIiLCJyZW5kZXJlZExheWVycyIsImxheWVycyIsImxheWVyIiwiaWR4IiwiaWQiLCJHRU9DT0RFUl9MQVlFUl9JRCIsInNob3VsZFJlbmRlckxheWVyIiwibGF5ZXJEYXRhIiwiYm91bmRzIiwiZmluZE1hcEJvdW5kcyIsImNlbnRlckFuZFpvb20iLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsIk51bWJlciIsImlzRmluaXRlIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJtYXBQcm9wcyIsIm1hcENvbnRyb2xzIiwibWFwTGVnZW5kIiwic2hvdyIsIkJvb2xlYW4iLCJhY3RpdmUiLCJNYXBDb21wb25lbnQiLCJNYXAiLCJpc0V4cG9ydCIsImRlY2tHbFByb3BzIiwiZ2xPcHRpb25zIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidXNlRGV2aWNlUGl4ZWxzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJpbmRleCIsInByaW1hcnkiLCJzZXR0aW5ncyIsImtleSIsInJlZiIsIk1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciIsIlJlYWN0IiwibWVtbyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9wbG90LWNvbnRhaW5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHt1c2VSZWYsIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7TWFwfSBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IGRlYm91bmNlIGZyb20gJ2xvZGFzaC9kZWJvdW5jZSc7XG5pbXBvcnQge1xuICBleHBvcnRJbWFnZUVycm9yLFxuICBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uLFxuICBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyxcbiAgY29udmVydFRvUG5nLFxuICBnZXRTY2FsZUZyb21JbWFnZVNpemVcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2ZpbmRNYXBCb3VuZHN9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IE1hcENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udGFpbmVyJztcbmltcG9ydCBNYXBzTGF5b3V0RmFjdG9yeSBmcm9tICcuL21hcHMtbGF5b3V0JztcbmltcG9ydCB7TWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyfSBmcm9tICcuL21hcC12aWV3LXN0YXRlLWNvbnRleHQnO1xuXG5pbXBvcnQge0dFT0NPREVSX0xBWUVSX0lEfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0VmZmVjdCwgU3BsaXRNYXAsIEV4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIEFjdGlvbkhhbmRsZXIsXG4gIGFkZE5vdGlmaWNhdGlvbixcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICBzZXRFeHBvcnRJbWFnZUVycm9yLFxuICBzZXRFeHBvcnRJbWFnZVNldHRpbmdcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7bWFwRmllbGRzU2VsZWN0b3J9IGZyb20gJy4va2VwbGVyLWdsJztcblxuY29uc3QgQ0xBU1NfRklMVEVSID0gW1xuICAnbWFwbGlicmVnbC1jb250cm9sLWNvbnRhaW5lcicsXG4gICdtYXBib3hnbC1jb250cm9sLWNvbnRhaW5lcicsXG4gICdhdHRyaXRpb24tbGluaycsXG4gICdhdHRyaXRpb24tbG9nbycsXG4gICdtYXAtY29udHJvbF9fcGFuZWwtc3BsaXQtdmlld3BvcnQtdG9vbHMnXG5dO1xuY29uc3QgRE9NX0ZJTFRFUl9GVU5DID0gbm9kZSA9PiAhQ0xBU1NfRklMVEVSLmluY2x1ZGVzKG5vZGUuY2xhc3NOYW1lKTtcbmNvbnN0IE9VVF9PRl9TQ1JFRU5fUE9TSVRJT04gPSAtOTk5OTtcblxuUGxvdENvbnRhaW5lckZhY3RvcnkuZGVwcyA9IFtNYXBDb250YWluZXJGYWN0b3J5LCBNYXBzTGF5b3V0RmFjdG9yeV07XG5cbi8vIFJlbW92ZSBtYXBib3ggbG9nbyBpbiBleHBvcnRlZCBtYXAsIGJlY2F1c2UgaXQgY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnNcbi8vIFJlbW92ZSBzcGxpdCB2aWV3cG9ydCBVSSBjb250cm9scyBmcm9tIGV4cG9ydGVkIGltYWdlcyB3aGVuIHRoZSBsZWdlbmQgaXMgc2hvd25cbmNvbnN0IFN0eWxlZFBsb3RDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwbGlicmVnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGxpYnJlLWF0dHJpYnV0aW9uLWNvbnRhaW5lcixcbiAgLm1hcGJveGdsLWN0cmwtYm90dG9tLWxlZnQsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1yaWdodCxcbiAgLm1hcGJveC1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXAtY29udHJvbF9fcGFuZWwtc3BsaXQtdmlld3BvcnQtdG9vbHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuICBsZWZ0OiAke09VVF9PRl9TQ1JFRU5fUE9TSVRJT059cHg7XG5gO1xuXG5pbnRlcmZhY2UgU3R5bGVkTWFwQ29udGFpbmVyUHJvcHMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xufVxuXG5jb25zdCBTdHlsZWRNYXBDb250YWluZXIgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRhaW5lclByb3BzPmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5pbnRlcmZhY2UgUGxvdENvbnRhaW5lclByb3BzIHtcbiAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gIHJhdGlvPzogc3RyaW5nO1xuICByZXNvbHV0aW9uPzogc3RyaW5nO1xuICBsZWdlbmQ/OiBib29sZWFuO1xuICBjZW50ZXI/OiBib29sZWFuO1xuICBpbWFnZVNpemU6IEV4cG9ydEltYWdlWydpbWFnZVNpemUnXTtcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrPzogYm9vbGVhbjtcblxuICAvLyBNYXAgc2V0dGluZ3NcbiAgbWFwRmllbGRzOiBSZXR1cm5UeXBlPHR5cGVvZiBtYXBGaWVsZHNTZWxlY3Rvcj47XG4gIHNwbGl0TWFwcz86IFNwbGl0TWFwW107XG5cbiAgLy8gQ2FsbGJhY2tzXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogdHlwZW9mIHNldEV4cG9ydEltYWdlU2V0dGluZztcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VEYXRhVXJpO1xuICBzZXRFeHBvcnRJbWFnZUVycm9yOiB0eXBlb2Ygc2V0RXhwb3J0SW1hZ2VFcnJvcjtcbiAgYWRkTm90aWZpY2F0aW9uOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBhZGROb3RpZmljYXRpb24+O1xuXG4gIC8vIEZsYWdzXG4gIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGxvdENvbnRhaW5lckZhY3RvcnkoXG4gIE1hcENvbnRhaW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udGFpbmVyRmFjdG9yeT4sXG4gIE1hcHNMYXlvdXQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcHNMYXlvdXRGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxQbG90Q29udGFpbmVyUHJvcHM+IHtcbiAgZnVuY3Rpb24gUGxvdENvbnRhaW5lcih7XG4gICAgLy8gSW1hZ2UgZXhwb3J0IHNldHRpbmdzXG4gICAgcmF0aW8sXG4gICAgcmVzb2x1dGlvbixcbiAgICBsZWdlbmQgPSBmYWxzZSxcbiAgICBjZW50ZXIsXG4gICAgaW1hZ2VTaXplLFxuICAgIGVzY2FwZVhodG1sRm9yV2VicGFjayxcblxuICAgIC8vIE1hcCBzZXR0aW5nc1xuICAgIG1hcEZpZWxkcyxcbiAgICBzcGxpdE1hcHMgPSBbXSxcblxuICAgIC8vIENhbGxiYWNrc1xuICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgICBhZGROb3RpZmljYXRpb24sXG5cbiAgICAvLyBGbGFnc1xuICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uXG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBNYXBDb21wb25lbnQ6IE1hcCxcbiAgICAgICAgb25NYXBSZW5kZXIsXG4gICAgICAgIGlzRXhwb3J0OiB0cnVlLFxuICAgICAgICBkZWNrR2xQcm9wczoge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy5kZWNrR2xQcm9wcyxcbiAgICAgICAgICBnbE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZURldmljZVBpeGVsczogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpc1N0YXRlOiB7XG4gICAgICAgICAgLi4ubWFwRmllbGRzLnZpc1N0YXRlLFxuICAgICAgICAgIGVmZmVjdHM6IHBsb3RFZmZlY3RzXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgW21hcEZpZWxkcywgc2NhbGVkTWFwU3R5bGUsIG5ld01hcFN0YXRlLCBsZWdlbmQsIG9uTWFwUmVuZGVyLCBwbG90RWZmZWN0c11cbiAgICApO1xuXG4gICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgIGNvbnN0IG1hcENvbnRhaW5lcnMgPSAhaXNTcGxpdCA/IChcbiAgICAgIDxNYXBDb250YWluZXIgaW5kZXg9ezB9IHByaW1hcnk9e3RydWV9IHsuLi5tYXBQcm9wc30gLz5cbiAgICApIDogKFxuICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwicGxvdC1jb250YWluZXItbWFwc1wiIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgIHtzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICA8TWFwQ29udGFpbmVyIGtleT17aW5kZXh9IGluZGV4PXtpbmRleH0gcHJpbWFyeT17aW5kZXggPT09IDF9IHsuLi5tYXBQcm9wc30gLz5cbiAgICAgICAgKSl9XG4gICAgICA8L01hcHNMYXlvdXQ+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkUGxvdENvbnRhaW5lciBjbGFzc05hbWU9XCJleHBvcnQtbWFwLWluc3RhbmNlXCI+XG4gICAgICAgIDxTdHlsZWRNYXBDb250YWluZXIgcmVmPXtwbG90dGluZ0FyZWFSZWZ9IHdpZHRoPXtzaXplLndpZHRofSBoZWlnaHQ9e3NpemUuaGVpZ2h0fT5cbiAgICAgICAgICA8TWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyIG1hcFN0YXRlPXtuZXdNYXBTdGF0ZX0+XG4gICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICA8L01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcj5cbiAgICAgICAgPC9TdHlsZWRNYXBDb250YWluZXI+XG4gICAgICA8L1N0eWxlZFBsb3RDb250YWluZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdC5tZW1vKFBsb3RDb250YWluZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFJQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBT0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsb0JBQUEsR0FBQVQsT0FBQTtBQUVBLElBQUFVLFVBQUEsR0FBQVYsT0FBQTtBQUF1RCxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBcEJ2RDtBQUNBO0FBRUE7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWYsd0JBQUFlLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FB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
|
|
238
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsIk1hdGgiLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwiTWFwQ29tcG9uZW50IiwiTWFwIiwiaXNFeHBvcnQiLCJkZWNrR2xQcm9wcyIsImdsT3B0aW9ucyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsInVzZURldmljZVBpeGVscyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiaW5kZXgiLCJwcmltYXJ5Iiwic2V0dGluZ3MiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cblBsb3RDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwQ29udGFpbmVyRmFjdG9yeSwgTWFwc0xheW91dEZhY3RvcnldO1xuXG4vLyBSZW1vdmUgbWFwYm94IGxvZ28gaW4gZXhwb3J0ZWQgbWFwLCBiZWNhdXNlIGl0IGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzXG4vLyBSZW1vdmUgc3BsaXQgdmlld3BvcnQgVUkgY29udHJvbHMgZnJvbSBleHBvcnRlZCBpbWFnZXMgd2hlbiB0aGUgbGVnZW5kIGlzIHNob3duXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tbGVmdCxcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwYm94Z2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyLFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7T1VUX09GX1NDUkVFTl9QT1NJVElPTn1weDtcbiAgbGVmdDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRhaW5lclByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuaW50ZXJmYWNlIFBsb3RDb250YWluZXJQcm9wcyB7XG4gIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICByYXRpbz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGVnZW5kPzogYm9vbGVhbjtcbiAgY2VudGVyPzogYm9vbGVhbjtcbiAgaW1hZ2VTaXplOiBFeHBvcnRJbWFnZVsnaW1hZ2VTaXplJ107XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG5cbiAgLy8gTWFwIHNldHRpbmdzXG4gIG1hcEZpZWxkczogUmV0dXJuVHlwZTx0eXBlb2YgbWFwRmllbGRzU2VsZWN0b3I+O1xuICBzcGxpdE1hcHM/OiBTcGxpdE1hcFtdO1xuXG4gIC8vIENhbGxiYWNrc1xuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHR5cGVvZiBzZXRFeHBvcnRJbWFnZVNldHRpbmc7XG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogdHlwZW9mIHNldEV4cG9ydEltYWdlRGF0YVVyaTtcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogdHlwZW9mIHNldEV4cG9ydEltYWdlRXJyb3I7XG4gIGFkZE5vdGlmaWNhdGlvbjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgYWRkTm90aWZpY2F0aW9uPjtcblxuICAvLyBGbGFnc1xuICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gT3B0aW9uYWw6IG92ZXJyaWRlIGxlZ2VuZCBoZWFkZXIgbG9nbyBkdXJpbmcgZXhwb3J0XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsb3RDb250YWluZXJGYWN0b3J5KFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGxvdENvbnRhaW5lclByb3BzPiB7XG4gIGZ1bmN0aW9uIFBsb3RDb250YWluZXIoe1xuICAgIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICAgIHJhdGlvLFxuICAgIHJlc29sdXRpb24sXG4gICAgbGVnZW5kID0gZmFsc2UsXG4gICAgY2VudGVyLFxuICAgIGltYWdlU2l6ZSxcbiAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgICAvLyBNYXAgc2V0dGluZ3NcbiAgICBtYXBGaWVsZHMsXG4gICAgc3BsaXRNYXBzID0gW10sXG5cbiAgICAvLyBDYWxsYmFja3NcbiAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgYWRkTm90aWZpY2F0aW9uLFxuXG4gICAgLy8gRmxhZ3NcbiAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICBsb2dvQ29tcG9uZW50XG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBNYXBDb21wb25lbnQ6IE1hcCxcbiAgICAgICAgb25NYXBSZW5kZXIsXG4gICAgICAgIGlzRXhwb3J0OiB0cnVlLFxuICAgICAgICBkZWNrR2xQcm9wczoge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy5kZWNrR2xQcm9wcyxcbiAgICAgICAgICBnbE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZURldmljZVBpeGVsczogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpc1N0YXRlOiB7XG4gICAgICAgICAgLi4ubWFwRmllbGRzLnZpc1N0YXRlLFxuICAgICAgICAgIGVmZmVjdHM6IHBsb3RFZmZlY3RzXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGFsbG93IG92ZXJyaWRpbmcgdGhlIGxlZ2VuZCBwYW5lbCBsb2dvIGluIGV4cG9ydFxuICAgICAgICBsb2dvQ29tcG9uZW50XG4gICAgICB9KSxcbiAgICAgIFttYXBGaWVsZHMsIHNjYWxlZE1hcFN0eWxlLCBuZXdNYXBTdGF0ZSwgbGVnZW5kLCBvbk1hcFJlbmRlciwgcGxvdEVmZmVjdHMsIGxvZ29Db21wb25lbnRdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU3BsaXQgPSBzcGxpdE1hcHMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXQgPyAoXG4gICAgICA8TWFwQ29udGFpbmVyIGluZGV4PXswfSBwcmltYXJ5PXt0cnVlfSB7Li4ubWFwUHJvcHN9IC8+XG4gICAgKSA6IChcbiAgICAgIDxNYXBzTGF5b3V0IGNsYXNzTmFtZT1cInBsb3QtY29udGFpbmVyLW1hcHNcIiBtYXBTdGF0ZT17bmV3TWFwU3RhdGV9PlxuICAgICAgICB7c3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgPE1hcENvbnRhaW5lciBrZXk9e2luZGV4fSBpbmRleD17aW5kZXh9IHByaW1hcnk9e2luZGV4ID09PSAxfSB7Li4ubWFwUHJvcHN9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9NYXBzTGF5b3V0PlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFBsb3RDb250YWluZXIgY2xhc3NOYW1lPVwiZXhwb3J0LW1hcC1pbnN0YW5jZVwiPlxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17cGxvdHRpbmdBcmVhUmVmfSB3aWR0aD17c2l6ZS53aWR0aH0gaGVpZ2h0PXtzaXplLmhlaWdodH0+XG4gICAgICAgICAgPE1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciBtYXBTdGF0ZT17bmV3TWFwU3RhdGV9PlxuICAgICAgICAgICAge21hcENvbnRhaW5lcnN9XG4gICAgICAgICAgPC9NYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgPC9TdHlsZWRQbG90Q29udGFpbmVyPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gUmVhY3QubWVtbyhQbG90Q29udGFpbmVyKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQU9BLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFFQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFBdUQsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQXBCdkQ7QUFDQTtBQUVBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9B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
|
|
@@ -33,6 +33,7 @@ declare type LayerManagerProps = {
|
|
|
33
33
|
updateTableColor: ActionHandler<typeof VisStateActions.updateTableColor>;
|
|
34
34
|
panelListView: PanelListView;
|
|
35
35
|
panelMetadata: SidePanelItem;
|
|
36
|
+
showDeleteDataset?: boolean;
|
|
36
37
|
} & WrappedComponentProps;
|
|
37
38
|
export declare const LayerBlendingSelector: React.MemoExoticComponent<({ layerBlending, updateLayerBlending, intl, className }: LayerBlendingSelectorProps) => React.JSX.Element>;
|
|
38
39
|
declare function LayerManagerFactory(LayerList: ReturnType<typeof LayerListFactory>, DatasetLayerGroup: ReturnType<typeof DatasetLayerGroupFactory>, PanelViewListToggle: ReturnType<typeof PanelViewListToggleFactory>, PanelTitle: ReturnType<typeof PanelTitleFactory>, DatasetSection: ReturnType<typeof DatasetSectionFactory>, AddLayerButton: ReturnType<typeof AddLayerButtonFactory>, InfoHelper: ReturnType<typeof InfoHelperFactory>): React.FC<import("react-intl").WithIntlProps<LayerManagerProps>> & {
|
|
@@ -101,6 +101,8 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
101
101
|
layerBlending = _ref3.layerBlending,
|
|
102
102
|
overlayBlending = _ref3.overlayBlending,
|
|
103
103
|
showAddDataModal = _ref3.showAddDataModal,
|
|
104
|
+
_ref3$showDeleteDatas = _ref3.showDeleteDataset,
|
|
105
|
+
showDeleteDataset = _ref3$showDeleteDatas === void 0 ? true : _ref3$showDeleteDatas,
|
|
104
106
|
updateTableColor = _ref3.updateTableColor,
|
|
105
107
|
showDatasetTable = _ref3.showDatasetTable,
|
|
106
108
|
removeDataset = _ref3.removeDataset,
|
|
@@ -149,7 +151,7 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
149
151
|
showDatasetTable: showDatasetTable,
|
|
150
152
|
updateTableColor: updateTableColor,
|
|
151
153
|
removeDataset: removeDataset,
|
|
152
|
-
showDeleteDataset:
|
|
154
|
+
showDeleteDataset: showDeleteDataset,
|
|
153
155
|
showDatasetList: !isSortByDatasetMode,
|
|
154
156
|
showAddDataModal: showAddDataModal
|
|
155
157
|
}), /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelDivider, null), /*#__PURE__*/_react["default"].createElement(_styledComponents2.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(PanelTitle, {
|
|
@@ -171,7 +173,7 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
171
173
|
uiStateActions: uiStateActions,
|
|
172
174
|
visStateActions: visStateActions,
|
|
173
175
|
mapStateActions: mapStateActions,
|
|
174
|
-
showDeleteDataset:
|
|
176
|
+
showDeleteDataset: showDeleteDataset
|
|
175
177
|
}) : /*#__PURE__*/_react["default"].createElement(LayerList, {
|
|
176
178
|
layers: layers,
|
|
177
179
|
datasets: datasets,
|
|
@@ -197,4 +199,4 @@ function LayerManagerFactory(LayerList, DatasetLayerGroup, PanelViewListToggle,
|
|
|
197
199
|
return (0, _reactIntl.injectIntl)(LayerManager);
|
|
198
200
|
}
|
|
199
201
|
var _default = exports["default"] = LayerManagerFactory;
|
|
200
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiTGF5ZXJCbGVuZGluZ1NlbGVjdG9yIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJsYXllckJsZW5kaW5nIiwidXBkYXRlTGF5ZXJCbGVuZGluZyIsImludGwiLCJjbGFzc05hbWUiLCJsYWJlbGVkTGF5ZXJCbGVuZGluZ3MiLCJMQVlFUl9CTEVORElOR1MiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwiZm9ybWF0TWVzc2FnZSIsImlkIiwibGFiZWwiLCJvbkNoYW5nZSIsInVzZUNhbGxiYWNrIiwiYmxlbmRpbmciLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJkaXNwbGF5TmFtZSIsIkluZm9IZWxwZXJXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93IiwiT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IiLCJfcmVmMiIsIm92ZXJsYXlCbGVuZGluZyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZyIsImluZm9IZWxwZXIiLCJsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyIsIk9WRVJMQVlfQkxFTkRJTkdTIiwiTGF5ZXJNYW5hZ2VyRmFjdG9yeSIsImRlcHMiLCJMYXllckxpc3RGYWN0b3J5IiwiRGF0YXNldExheWVyR3JvdXBGYWN0b3J5IiwiUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnkiLCJQYW5lbFRpdGxlRmFjdG9yeSIsIkRhdGFzZXRTZWN0aW9uRmFjdG9yeSIsIkFkZExheWVyQnV0dG9uRmFjdG9yeSIsIkluZm9IZWxwZXJGYWN0b3J5IiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyR3JvdXAiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlIiwiUGFuZWxUaXRsZSIsIkRhdGFzZXRTZWN0aW9uIiwiQWRkTGF5ZXJCdXR0b24iLCJJbmZvSGVscGVyIiwiTGF5ZXJNYW5hZ2VyIiwiX3JlZjMiLCJsYXllcnMiLCJkYXRhc2V0cyIsImxheWVyT3JkZXIiLCJwYW5lbExpc3RWaWV3IiwicGFuZWxNZXRhZGF0YSIsImxheWVyQ2xhc3NlcyIsInNob3dBZGREYXRhTW9kYWwiLCJ1cGRhdGVUYWJsZUNvbG9yIiwic2hvd0RhdGFzZXRUYWJsZSIsInJlbW92ZURhdGFzZXQiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImFkZExheWVyIiwidG9nZ2xlUGFuZWxMaXN0VmlldyIsIm9uQWRkTGF5ZXIiLCJkYXRhc2V0IiwidW5kZWZpbmVkIiwib25Ub2dnbGVQYW5lbExpc3RWaWV3IiwibGlzdFZpZXciLCJwYW5lbElkIiwiaXNTb3J0QnlEYXRhc2V0TW9kZSIsIlBBTkVMX1ZJRVdfVE9HR0xFUyIsImJ5RGF0YXNldCIsImVuYWJsZVJhc3RlclRpbGVMYXllciIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZW5hYmxlV01TTGF5ZXIiLCJmaWx0ZXJlZExheWVyQ2xhc3NlcyIsInVzZU1lbW8iLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJtb2RlIiwic2hvd0RlbGV0ZURhdGFzZXQiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1BhbmVsTGlzdFZpZXd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICB1cGRhdGVMYXllckJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZU92ZXJsYXlCbGVuZGluZzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZz47XG4gIGluZm9IZWxwZXI6IFJlYWN0LlJlYWN0Tm9kZTtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgTGF5ZXJNYW5hZ2VyUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBzdHJpbmdbXTtcbiAgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlO1xuICBsYXllckJsZW5kaW5nOiBzdHJpbmc7XG4gIG92ZXJsYXlCbGVuZGluZzogc3RyaW5nO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgc2hvd0FkZERhdGFNb2RhbDogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgc2hvd0RhdGFzZXRUYWJsZTogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGU+O1xuICB1cGRhdGVUYWJsZUNvbG9yOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlVGFibGVDb2xvcj47XG4gIHBhbmVsTGlzdFZpZXc6IFBhbmVsTGlzdFZpZXc7XG4gIHBhbmVsTWV0YWRhdGE6IFNpZGVQYW5lbEl0ZW07XG59ICYgV3JhcHBlZENvbXBvbmVudFByb3BzO1xuXG5leHBvcnQgY29uc3QgTGF5ZXJCbGVuZGluZ1NlbGVjdG9yID0gUmVhY3QubWVtbyhcbiAgKHtsYXllckJsZW5kaW5nLCB1cGRhdGVMYXllckJsZW5kaW5nLCBpbnRsLCBjbGFzc05hbWV9OiBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcykgPT4ge1xuICAgIGNvbnN0IGxhYmVsZWRMYXllckJsZW5kaW5ncyA9IE9iamVjdC5rZXlzKExBWUVSX0JMRU5ESU5HUykucmVkdWNlKFxuICAgICAgKGFjYywgY3VycmVudCkgPT4gKHtcbiAgICAgICAgLi4uYWNjLFxuICAgICAgICBbaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogTEFZRVJfQkxFTkRJTkdTW2N1cnJlbnRdLmxhYmVsfSldOiBjdXJyZW50XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICBibGVuZGluZyA9PiB1cGRhdGVMYXllckJsZW5kaW5nKGxhYmVsZWRMYXllckJsZW5kaW5nc1tibGVuZGluZ10pLFxuICAgICAgW3VwZGF0ZUxheWVyQmxlbmRpbmcsIGxhYmVsZWRMYXllckJsZW5kaW5nc11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJsYXllckJsZW5kaW5nLnRpdGxlXCIgLz5cbiAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogTEFZRVJfQkxFTkRJTkdTW2xheWVyQmxlbmRpbmddLmxhYmVsfSl9XG4gICAgICAgICAgb3B0aW9ucz17T2JqZWN0LmtleXMobGFiZWxlZExheWVyQmxlbmRpbmdzKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbik7XG5MYXllckJsZW5kaW5nU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnTGF5ZXJCbGVuZGluZ1NlbGVjdG9yJztcblxuY29uc3QgSW5mb0hlbHBlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbG9hdDogcmlnaHQ7XG5gO1xuXG5jb25zdCBPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yID0gUmVhY3QubWVtbyhcbiAgKHtvdmVybGF5QmxlbmRpbmcsIHVwZGF0ZU92ZXJsYXlCbGVuZGluZywgaW50bCwgaW5mb0hlbHBlcn06IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yUHJvcHMpID0+IHtcbiAgICBjb25zdCBsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyA9IE9iamVjdC5rZXlzKE9WRVJMQVlfQkxFTkRJTkdTKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBPVkVSTEFZX0JMRU5ESU5HU1tjdXJyZW50XS5sYWJlbH0pXTogY3VycmVudFxuICAgICAgfSksXG4gICAgICB7fVxuICAgICk7XG5cbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgYmxlbmRpbmcgPT4gdXBkYXRlT3ZlcmxheUJsZW5kaW5nKGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzW2JsZW5kaW5nXSksXG4gICAgICBbdXBkYXRlT3ZlcmxheUJsZW5kaW5nLCBsYWJlbGVkT3ZlcmxheUJsZW5kaW5nc11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8T3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdz5cbiAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPVwib3ZlcmxheUJsZW5kaW5nLnRpdGxlXCIgLz5cbiAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgPEluZm9IZWxwZXJXcmFwcGVyPntpbmZvSGVscGVyfTwvSW5mb0hlbHBlcldyYXBwZXI+XG4gICAgICAgIDwvT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JUaXRsZVJvdz5cbiAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IE9WRVJMQVlfQkxFTkRJTkdTW292ZXJsYXlCbGVuZGluZ10ubGFiZWx9KX1cbiAgICAgICAgICBvcHRpb25zPXtPYmplY3Qua2V5cyhsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICApO1xuICB9XG4pO1xuT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3InO1xuXG5MYXllck1hbmFnZXJGYWN0b3J5LmRlcHMgPSBbXG4gIExheWVyTGlzdEZhY3RvcnksXG4gIERhdGFzZXRMYXllckdyb3VwRmFjdG9yeSxcbiAgUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnksXG4gIFBhbmVsVGl0bGVGYWN0b3J5LFxuICBEYXRhc2V0U2VjdGlvbkZhY3RvcnksXG4gIEFkZExheWVyQnV0dG9uRmFjdG9yeSxcbiAgSW5mb0hlbHBlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIExheWVyTWFuYWdlckZhY3RvcnkoXG4gIExheWVyTGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMaXN0RmFjdG9yeT4sXG4gIERhdGFzZXRMYXllckdyb3VwOiBSZXR1cm5UeXBlPHR5cGVvZiBEYXRhc2V0TGF5ZXJHcm91cEZhY3Rvcnk+LFxuICBQYW5lbFZpZXdMaXN0VG9nZ2xlOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeT4sXG4gIFBhbmVsVGl0bGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVGl0bGVGYWN0b3J5PixcbiAgRGF0YXNldFNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRTZWN0aW9uRmFjdG9yeT4sXG4gIEFkZExheWVyQnV0dG9uOiBSZXR1cm5UeXBlPHR5cGVvZiBBZGRMYXllckJ1dHRvbkZhY3Rvcnk+LFxuICBJbmZvSGVscGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBJbmZvSGVscGVyRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllck1hbmFnZXI6IFJlYWN0LkZDPExheWVyTWFuYWdlclByb3BzPiA9ICh7XG4gICAgbGF5ZXJzLFxuICAgIGRhdGFzZXRzLFxuICAgIGludGwsXG4gICAgbGF5ZXJPcmRlcixcbiAgICBwYW5lbExpc3RWaWV3LFxuICAgIHBhbmVsTWV0YWRhdGEsXG4gICAgbGF5ZXJDbGFzc2VzLFxuICAgIGxheWVyQmxlbmRpbmcsXG4gICAgb3ZlcmxheUJsZW5kaW5nLFxuICAgIHNob3dBZGREYXRhTW9kYWwsXG4gICAgdXBkYXRlVGFibGVDb2xvcixcbiAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgIHJlbW92ZURhdGFzZXQsXG4gICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgIG1hcFN0YXRlQWN0aW9uc1xuICB9KSA9PiB7XG4gICAgY29uc3Qge2FkZExheWVyfSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCB7dG9nZ2xlUGFuZWxMaXN0Vmlld30gPSB1aVN0YXRlQWN0aW9ucztcbiAgICBjb25zdCBvbkFkZExheWVyID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZGF0YXNldDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGFkZExheWVyKHVuZGVmaW5lZCwgZGF0YXNldCk7XG4gICAgICB9LFxuICAgICAgW2FkZExheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVBhbmVsTGlzdFZpZXcgPSB1c2VDYWxsYmFjayhcbiAgICAgIChsaXN0Vmlldzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRvZ2dsZVBhbmVsTGlzdFZpZXcoe3BhbmVsSWQ6ICdsYXllcicsIGxpc3RWaWV3fSk7XG4gICAgICB9LFxuICAgICAgW3RvZ2dsZVBhbmVsTGlzdFZpZXddXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU29ydEJ5RGF0YXNldE1vZGUgPSBwYW5lbExpc3RWaWV3ID09PSBQQU5FTF9WSUVXX1RPR0dMRVMuYnlEYXRhc2V0O1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBmaWx0ZXJlZExheWVyQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGZpbHRlcmVkQ2xhc3NlcyA9IGxheWVyQ2xhc3NlcztcbiAgICAgIGlmICghZW5hYmxlUmFzdGVyVGlsZUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHtyYXN0ZXJUaWxlOiBfcmFzdGVyVGlsZSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlV01TTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3dtczogX3dtcywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJlZENsYXNzZXMgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICB9LCBbZW5hYmxlUmFzdGVyVGlsZUxheWVyLCBlbmFibGVXTVNMYXllciwgbGF5ZXJDbGFzc2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci1tYW5hZ2VyXCI+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxQYW5lbFZpZXdMaXN0VG9nZ2xlIHRvZ2dsZVBhbmVsTGlzdFZpZXc9e29uVG9nZ2xlUGFuZWxMaXN0Vmlld30gbW9kZT17cGFuZWxMaXN0Vmlld30gLz5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8RGF0YXNldFNlY3Rpb25cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXRcbiAgICAgICAgICBzaG93RGF0YXNldExpc3Q9eyFpc1NvcnRCeURhdGFzZXRNb2RlfVxuICAgICAgICAgIHNob3dBZGREYXRhTW9kYWw9e3Nob3dBZGREYXRhTW9kYWx9XG4gICAgICAgIC8+XG4gICAgICAgIDxTaWRlUGFuZWxEaXZpZGVyIC8+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxQYW5lbFRpdGxlXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1tYW5hZ2VyLXRpdGxlXCJcbiAgICAgICAgICAgIHRpdGxlPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBwYW5lbE1ldGFkYXRhLmxhYmVsfSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEFkZExheWVyQnV0dG9uIGRhdGFzZXRzPXtkYXRhc2V0c30gb25BZGQ9e29uQWRkTGF5ZXJ9IC8+XG4gICAgICAgICAgPC9QYW5lbFRpdGxlPlxuICAgICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIHtpc1NvcnRCeURhdGFzZXRNb2RlID8gKFxuICAgICAgICAgICAgPERhdGFzZXRMYXllckdyb3VwXG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgICAgIGxheWVyT3JkZXI9e2xheWVyT3JkZXJ9XG4gICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17ZmlsdGVyZWRMYXllckNsYXNzZXN9XG4gICAgICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgdmlzU3RhdGVBY3Rpb25zPXt2aXNTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucz17bWFwU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPExheWVyTGlzdFxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBsYXllck9yZGVyPXtsYXllck9yZGVyfVxuICAgICAgICAgICAgICB1aVN0YXRlQWN0aW9ucz17dWlTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIHZpc1N0YXRlQWN0aW9ucz17dmlzU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICBtYXBTdGF0ZUFjdGlvbnM9e21hcFN0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8TGF5ZXJCbGVuZGluZ1NlbGVjdG9yXG4gICAgICAgICAgbGF5ZXJCbGVuZGluZz17bGF5ZXJCbGVuZGluZ31cbiAgICAgICAgICB1cGRhdGVMYXllckJsZW5kaW5nPXt2aXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZ31cbiAgICAgICAgICBpbnRsPXtpbnRsfVxuICAgICAgICAvPlxuICAgICAgICA8T3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JcbiAgICAgICAgICBvdmVybGF5QmxlbmRpbmc9e292ZXJsYXlCbGVuZGluZ31cbiAgICAgICAgICB1cGRhdGVPdmVybGF5QmxlbmRpbmc9e3Zpc1N0YXRlQWN0aW9ucy51cGRhdGVPdmVybGF5QmxlbmRpbmd9XG4gICAgICAgICAgaW50bD17aW50bH1cbiAgICAgICAgICBpbmZvSGVscGVyPXtcbiAgICAgICAgICAgIDxJbmZvSGVscGVyXG4gICAgICAgICAgICAgIGlkPXtgb3ZlcmxheUJsZW5kaW5nLWRlc2NyaXB0aW9uYH1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249eydvdmVybGF5QmxlbmRpbmcuZGVzY3JpcHRpb24nfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBpbmplY3RJbnRsKExheWVyTWFuYWdlcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyTWFuYWdlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVMs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
|
|
202
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvY2FsaXphdGlvbiIsIl9sYXllckxpc3QiLCJfZGF0YXNldExheWVyR3JvdXAiLCJfcGFuZWxWaWV3TGlzdFRvZ2dsZSIsIl9wYW5lbFRpdGxlIiwiX2RhdGFzZXRTZWN0aW9uIiwiX2FkZExheWVyQnV0dG9uIiwiX2l0ZW1TZWxlY3RvciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pbmZvSGVscGVyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiTGF5ZXJCbGVuZGluZ1NlbGVjdG9yIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsIl9yZWYiLCJsYXllckJsZW5kaW5nIiwidXBkYXRlTGF5ZXJCbGVuZGluZyIsImludGwiLCJjbGFzc05hbWUiLCJsYWJlbGVkTGF5ZXJCbGVuZGluZ3MiLCJMQVlFUl9CTEVORElOR1MiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwiZm9ybWF0TWVzc2FnZSIsImlkIiwibGFiZWwiLCJvbkNoYW5nZSIsInVzZUNhbGxiYWNrIiwiYmxlbmRpbmciLCJjcmVhdGVFbGVtZW50IiwiU2lkZVBhbmVsU2VjdGlvbiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwic2VsZWN0ZWRJdGVtcyIsIm9wdGlvbnMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJkaXNwbGF5TmFtZSIsIkluZm9IZWxwZXJXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93IiwiT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IiLCJfcmVmMiIsIm92ZXJsYXlCbGVuZGluZyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZyIsImluZm9IZWxwZXIiLCJsYWJlbGVkT3ZlcmxheUJsZW5kaW5ncyIsIk9WRVJMQVlfQkxFTkRJTkdTIiwiTGF5ZXJNYW5hZ2VyRmFjdG9yeSIsImRlcHMiLCJMYXllckxpc3RGYWN0b3J5IiwiRGF0YXNldExheWVyR3JvdXBGYWN0b3J5IiwiUGFuZWxWaWV3TGlzdFRvZ2dsZUZhY3RvcnkiLCJQYW5lbFRpdGxlRmFjdG9yeSIsIkRhdGFzZXRTZWN0aW9uRmFjdG9yeSIsIkFkZExheWVyQnV0dG9uRmFjdG9yeSIsIkluZm9IZWxwZXJGYWN0b3J5IiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyR3JvdXAiLCJQYW5lbFZpZXdMaXN0VG9nZ2xlIiwiUGFuZWxUaXRsZSIsIkRhdGFzZXRTZWN0aW9uIiwiQWRkTGF5ZXJCdXR0b24iLCJJbmZvSGVscGVyIiwiTGF5ZXJNYW5hZ2VyIiwiX3JlZjMiLCJsYXllcnMiLCJkYXRhc2V0cyIsImxheWVyT3JkZXIiLCJwYW5lbExpc3RWaWV3IiwicGFuZWxNZXRhZGF0YSIsImxheWVyQ2xhc3NlcyIsInNob3dBZGREYXRhTW9kYWwiLCJfcmVmMyRzaG93RGVsZXRlRGF0YXMiLCJzaG93RGVsZXRlRGF0YXNldCIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGF0YXNldFRhYmxlIiwicmVtb3ZlRGF0YXNldCIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwiYWRkTGF5ZXIiLCJ0b2dnbGVQYW5lbExpc3RWaWV3Iiwib25BZGRMYXllciIsImRhdGFzZXQiLCJ1bmRlZmluZWQiLCJvblRvZ2dsZVBhbmVsTGlzdFZpZXciLCJsaXN0VmlldyIsInBhbmVsSWQiLCJpc1NvcnRCeURhdGFzZXRNb2RlIiwiUEFORUxfVklFV19UT0dHTEVTIiwiYnlEYXRhc2V0IiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVXTVNMYXllciIsImZpbHRlcmVkTGF5ZXJDbGFzc2VzIiwidXNlTWVtbyIsImZpbHRlcmVkQ2xhc3NlcyIsIl9maWx0ZXJlZENsYXNzZXMiLCJfcmFzdGVyVGlsZSIsInJhc3RlclRpbGUiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIl9maWx0ZXJlZENsYXNzZXMyIiwiX3dtcyIsIndtcyIsIm1vZGUiLCJzaG93RGF0YXNldExpc3QiLCJTaWRlUGFuZWxEaXZpZGVyIiwidGl0bGUiLCJvbkFkZCIsImRlc2NyaXB0aW9uIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItbWFuYWdlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtpbmplY3RJbnRsLCBXcmFwcGVkQ29tcG9uZW50UHJvcHN9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuaW1wb3J0IExheWVyTGlzdEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9sYXllci1saXN0JztcbmltcG9ydCBEYXRhc2V0TGF5ZXJHcm91cEZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLWdyb3VwJztcbmltcG9ydCBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSBmcm9tICcuL3BhbmVsLXZpZXctbGlzdC10b2dnbGUnO1xuaW1wb3J0IFBhbmVsVGl0bGVGYWN0b3J5IGZyb20gJy4vcGFuZWwtdGl0bGUnO1xuaW1wb3J0IERhdGFzZXRTZWN0aW9uRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2RhdGFzZXQtc2VjdGlvbic7XG5pbXBvcnQgQWRkTGF5ZXJCdXR0b25GYWN0b3J5IGZyb20gJy4vbGF5ZXItcGFuZWwvYWRkLWxheWVyLWJ1dHRvbic7XG5cbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge1BhbmVsTGFiZWwsIFNpZGVQYW5lbERpdmlkZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW5mb0hlbHBlckZhY3RvcnkgZnJvbSAnLi4vY29tbW9uL2luZm8taGVscGVyJztcblxuaW1wb3J0IHtMQVlFUl9CTEVORElOR1MsIE9WRVJMQVlfQkxFTkRJTkdTLCBQQU5FTF9WSUVXX1RPR0dMRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtTaWRlUGFuZWxJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1BhbmVsTGlzdFZpZXd9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge2dldEFwcGxpY2F0aW9uQ29uZmlnfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBMYXllckJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICB1cGRhdGVMYXllckJsZW5kaW5nOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlTGF5ZXJCbGVuZGluZz47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcyA9IHtcbiAgb3ZlcmxheUJsZW5kaW5nOiBzdHJpbmc7XG4gIHVwZGF0ZU92ZXJsYXlCbGVuZGluZzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZU92ZXJsYXlCbGVuZGluZz47XG4gIGluZm9IZWxwZXI6IFJlYWN0LlJlYWN0Tm9kZTtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbnR5cGUgTGF5ZXJNYW5hZ2VyUHJvcHMgPSB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBsYXllck9yZGVyOiBzdHJpbmdbXTtcbiAgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlO1xuICBsYXllckJsZW5kaW5nOiBzdHJpbmc7XG4gIG92ZXJsYXlCbGVuZGluZzogc3RyaW5nO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgc2hvd0FkZERhdGFNb2RhbDogKCkgPT4gdm9pZDtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVUlTdGF0ZUFjdGlvbnMub3BlbkRlbGV0ZU1vZGFsPjtcbiAgc2hvd0RhdGFzZXRUYWJsZTogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnNob3dEYXRhc2V0VGFibGU+O1xuICB1cGRhdGVUYWJsZUNvbG9yOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnMudXBkYXRlVGFibGVDb2xvcj47XG4gIHBhbmVsTGlzdFZpZXc6IFBhbmVsTGlzdFZpZXc7XG4gIHBhbmVsTWV0YWRhdGE6IFNpZGVQYW5lbEl0ZW07XG4gIHNob3dEZWxldGVEYXRhc2V0PzogYm9vbGVhbjtcbn0gJiBXcmFwcGVkQ29tcG9uZW50UHJvcHM7XG5cbmV4cG9ydCBjb25zdCBMYXllckJsZW5kaW5nU2VsZWN0b3IgPSBSZWFjdC5tZW1vKFxuICAoe2xheWVyQmxlbmRpbmcsIHVwZGF0ZUxheWVyQmxlbmRpbmcsIGludGwsIGNsYXNzTmFtZX06IExheWVyQmxlbmRpbmdTZWxlY3RvclByb3BzKSA9PiB7XG4gICAgY29uc3QgbGFiZWxlZExheWVyQmxlbmRpbmdzID0gT2JqZWN0LmtleXMoTEFZRVJfQkxFTkRJTkdTKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBjdXJyZW50KSA9PiAoe1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBMQVlFUl9CTEVORElOR1NbY3VycmVudF0ubGFiZWx9KV06IGN1cnJlbnRcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIGJsZW5kaW5nID0+IHVwZGF0ZUxheWVyQmxlbmRpbmcobGFiZWxlZExheWVyQmxlbmRpbmdzW2JsZW5kaW5nXSksXG4gICAgICBbdXBkYXRlTGF5ZXJCbGVuZGluZywgbGFiZWxlZExheWVyQmxlbmRpbmdzXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVQYW5lbFNlY3Rpb24gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImxheWVyQmxlbmRpbmcudGl0bGVcIiAvPlxuICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgIDxJdGVtU2VsZWN0b3JcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBMQVlFUl9CTEVORElOR1NbbGF5ZXJCbGVuZGluZ10ubGFiZWx9KX1cbiAgICAgICAgICBvcHRpb25zPXtPYmplY3Qua2V5cyhsYWJlbGVkTGF5ZXJCbGVuZGluZ3MpfVxuICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIC8+XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfVxuKTtcbkxheWVyQmxlbmRpbmdTZWxlY3Rvci5kaXNwbGF5TmFtZSA9ICdMYXllckJsZW5kaW5nU2VsZWN0b3InO1xuXG5jb25zdCBJbmZvSGVscGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGZsb2F0OiByaWdodDtcbmA7XG5cbmNvbnN0IE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yVGl0bGVSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuYDtcblxuY29uc3QgT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3IgPSBSZWFjdC5tZW1vKFxuICAoe292ZXJsYXlCbGVuZGluZywgdXBkYXRlT3ZlcmxheUJsZW5kaW5nLCBpbnRsLCBpbmZvSGVscGVyfTogT3ZlcmxheUJsZW5kaW5nU2VsZWN0b3JQcm9wcykgPT4ge1xuICAgIGNvbnN0IGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzID0gT2JqZWN0LmtleXMoT1ZFUkxBWV9CTEVORElOR1MpLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnJlbnQpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IE9WRVJMQVlfQkxFTkRJTkdTW2N1cnJlbnRdLmxhYmVsfSldOiBjdXJyZW50XG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICBibGVuZGluZyA9PiB1cGRhdGVPdmVybGF5QmxlbmRpbmcobGFiZWxlZE92ZXJsYXlCbGVuZGluZ3NbYmxlbmRpbmddKSxcbiAgICAgIFt1cGRhdGVPdmVybGF5QmxlbmRpbmcsIGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgIDxPdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93PlxuICAgICAgICAgIDxQYW5lbExhYmVsPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJvdmVybGF5QmxlbmRpbmcudGl0bGVcIiAvPlxuICAgICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAgICA8SW5mb0hlbHBlcldyYXBwZXI+e2luZm9IZWxwZXJ9PC9JbmZvSGVscGVyV3JhcHBlcj5cbiAgICAgICAgPC9PdmVybGF5QmxlbmRpbmdTZWxlY3RvclRpdGxlUm93PlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcz17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogT1ZFUkxBWV9CTEVORElOR1Nbb3ZlcmxheUJsZW5kaW5nXS5sYWJlbH0pfVxuICAgICAgICAgIG9wdGlvbnM9e09iamVjdC5rZXlzKGxhYmVsZWRPdmVybGF5QmxlbmRpbmdzKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbik7XG5PdmVybGF5QmxlbmRpbmdTZWxlY3Rvci5kaXNwbGF5TmFtZSA9ICdPdmVybGF5QmxlbmRpbmdTZWxlY3Rvcic7XG5cbkxheWVyTWFuYWdlckZhY3RvcnkuZGVwcyA9IFtcbiAgTGF5ZXJMaXN0RmFjdG9yeSxcbiAgRGF0YXNldExheWVyR3JvdXBGYWN0b3J5LFxuICBQYW5lbFZpZXdMaXN0VG9nZ2xlRmFjdG9yeSxcbiAgUGFuZWxUaXRsZUZhY3RvcnksXG4gIERhdGFzZXRTZWN0aW9uRmFjdG9yeSxcbiAgQWRkTGF5ZXJCdXR0b25GYWN0b3J5LFxuICBJbmZvSGVscGVyRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gTGF5ZXJNYW5hZ2VyRmFjdG9yeShcbiAgTGF5ZXJMaXN0OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxpc3RGYWN0b3J5PixcbiAgRGF0YXNldExheWVyR3JvdXA6IFJldHVyblR5cGU8dHlwZW9mIERhdGFzZXRMYXllckdyb3VwRmFjdG9yeT4sXG4gIFBhbmVsVmlld0xpc3RUb2dnbGU6IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsVmlld0xpc3RUb2dnbGVGYWN0b3J5PixcbiAgUGFuZWxUaXRsZTogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxUaXRsZUZhY3Rvcnk+LFxuICBEYXRhc2V0U2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgRGF0YXNldFNlY3Rpb25GYWN0b3J5PixcbiAgQWRkTGF5ZXJCdXR0b246IFJldHVyblR5cGU8dHlwZW9mIEFkZExheWVyQnV0dG9uRmFjdG9yeT4sXG4gIEluZm9IZWxwZXI6IFJldHVyblR5cGU8dHlwZW9mIEluZm9IZWxwZXJGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTWFuYWdlcjogUmVhY3QuRkM8TGF5ZXJNYW5hZ2VyUHJvcHM+ID0gKHtcbiAgICBsYXllcnMsXG4gICAgZGF0YXNldHMsXG4gICAgaW50bCxcbiAgICBsYXllck9yZGVyLFxuICAgIHBhbmVsTGlzdFZpZXcsXG4gICAgcGFuZWxNZXRhZGF0YSxcbiAgICBsYXllckNsYXNzZXMsXG4gICAgbGF5ZXJCbGVuZGluZyxcbiAgICBvdmVybGF5QmxlbmRpbmcsXG4gICAgc2hvd0FkZERhdGFNb2RhbCxcbiAgICBzaG93RGVsZXRlRGF0YXNldCA9IHRydWUsXG4gICAgdXBkYXRlVGFibGVDb2xvcixcbiAgICBzaG93RGF0YXNldFRhYmxlLFxuICAgIHJlbW92ZURhdGFzZXQsXG4gICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgIG1hcFN0YXRlQWN0aW9uc1xuICB9KSA9PiB7XG4gICAgY29uc3Qge2FkZExheWVyfSA9IHZpc1N0YXRlQWN0aW9ucztcbiAgICBjb25zdCB7dG9nZ2xlUGFuZWxMaXN0Vmlld30gPSB1aVN0YXRlQWN0aW9ucztcbiAgICBjb25zdCBvbkFkZExheWVyID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZGF0YXNldDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGFkZExheWVyKHVuZGVmaW5lZCwgZGF0YXNldCk7XG4gICAgICB9LFxuICAgICAgW2FkZExheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVBhbmVsTGlzdFZpZXcgPSB1c2VDYWxsYmFjayhcbiAgICAgIChsaXN0Vmlldzogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRvZ2dsZVBhbmVsTGlzdFZpZXcoe3BhbmVsSWQ6ICdsYXllcicsIGxpc3RWaWV3fSk7XG4gICAgICB9LFxuICAgICAgW3RvZ2dsZVBhbmVsTGlzdFZpZXddXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU29ydEJ5RGF0YXNldE1vZGUgPSBwYW5lbExpc3RWaWV3ID09PSBQQU5FTF9WSUVXX1RPR0dMRVMuYnlEYXRhc2V0O1xuXG4gICAgLy8gdGVtcCBwYXRjaCB0byBoaWRlIGxheWVycyB0aGF0IGFyZSBpbiBkZXZlbG9wbWVudFxuICAgIGNvbnN0IGVuYWJsZVJhc3RlclRpbGVMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlUmFzdGVyVGlsZUxheWVyO1xuICAgIGNvbnN0IGVuYWJsZVdNU0xheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVXTVNMYXllcjtcbiAgICBjb25zdCBmaWx0ZXJlZExheWVyQ2xhc3NlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgbGV0IGZpbHRlcmVkQ2xhc3NlcyA9IGxheWVyQ2xhc3NlcztcbiAgICAgIGlmICghZW5hYmxlUmFzdGVyVGlsZUxheWVyKSB7XG4gICAgICAgIGNvbnN0IHtyYXN0ZXJUaWxlOiBfcmFzdGVyVGlsZSwgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIGlmICghZW5hYmxlV01TTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3dtczogX3dtcywgLi4ucmVzdH0gPSBmaWx0ZXJlZENsYXNzZXM7XG4gICAgICAgIGZpbHRlcmVkQ2xhc3NlcyA9IHJlc3QgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXJlZENsYXNzZXMgYXMgTGF5ZXJDbGFzc2VzVHlwZTtcbiAgICB9LCBbZW5hYmxlUmFzdGVyVGlsZUxheWVyLCBlbmFibGVXTVNMYXllciwgbGF5ZXJDbGFzc2VzXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllci1tYW5hZ2VyXCI+XG4gICAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICAgIDxQYW5lbFZpZXdMaXN0VG9nZ2xlIHRvZ2dsZVBhbmVsTGlzdFZpZXc9e29uVG9nZ2xlUGFuZWxMaXN0Vmlld30gbW9kZT17cGFuZWxMaXN0Vmlld30gLz5cbiAgICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8RGF0YXNldFNlY3Rpb25cbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgc2hvd0RhdGFzZXRUYWJsZT17c2hvd0RhdGFzZXRUYWJsZX1cbiAgICAgICAgICB1cGRhdGVUYWJsZUNvbG9yPXt1cGRhdGVUYWJsZUNvbG9yfVxuICAgICAgICAgIHJlbW92ZURhdGFzZXQ9e3JlbW92ZURhdGFzZXR9XG4gICAgICAgICAgc2hvd0RlbGV0ZURhdGFzZXQ9e3Nob3dEZWxldGVEYXRhc2V0fVxuICAgICAgICAgIHNob3dEYXRhc2V0TGlzdD17IWlzU29ydEJ5RGF0YXNldE1vZGV9XG4gICAgICAgICAgc2hvd0FkZERhdGFNb2RhbD17c2hvd0FkZERhdGFNb2RhbH1cbiAgICAgICAgLz5cbiAgICAgICAgPFNpZGVQYW5lbERpdmlkZXIgLz5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAgPFBhbmVsVGl0bGVcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLW1hbmFnZXItdGl0bGVcIlxuICAgICAgICAgICAgdGl0bGU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IHBhbmVsTWV0YWRhdGEubGFiZWx9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QWRkTGF5ZXJCdXR0b24gZGF0YXNldHM9e2RhdGFzZXRzfSBvbkFkZD17b25BZGRMYXllcn0gLz5cbiAgICAgICAgICA8L1BhbmVsVGl0bGU+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPFNpZGVQYW5lbFNlY3Rpb24+XG4gICAgICAgICAge2lzU29ydEJ5RGF0YXNldE1vZGUgPyAoXG4gICAgICAgICAgICA8RGF0YXNldExheWVyR3JvdXBcbiAgICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgdXBkYXRlVGFibGVDb2xvcj17dXBkYXRlVGFibGVDb2xvcn1cbiAgICAgICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgbGF5ZXJDbGFzc2VzPXtmaWx0ZXJlZExheWVyQ2xhc3Nlc31cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIHNob3dEZWxldGVEYXRhc2V0PXtzaG93RGVsZXRlRGF0YXNldH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxMYXllckxpc3RcbiAgICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICAgICAgdWlTdGF0ZUFjdGlvbnM9e3VpU3RhdGVBY3Rpb25zfVxuICAgICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICAgICAgbWFwU3RhdGVBY3Rpb25zPXttYXBTdGF0ZUFjdGlvbnN9XG4gICAgICAgICAgICAgIGxheWVyQ2xhc3Nlcz17ZmlsdGVyZWRMYXllckNsYXNzZXN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPExheWVyQmxlbmRpbmdTZWxlY3RvclxuICAgICAgICAgIGxheWVyQmxlbmRpbmc9e2xheWVyQmxlbmRpbmd9XG4gICAgICAgICAgdXBkYXRlTGF5ZXJCbGVuZGluZz17dmlzU3RhdGVBY3Rpb25zLnVwZGF0ZUxheWVyQmxlbmRpbmd9XG4gICAgICAgICAgaW50bD17aW50bH1cbiAgICAgICAgLz5cbiAgICAgICAgPE92ZXJsYXlCbGVuZGluZ1NlbGVjdG9yXG4gICAgICAgICAgb3ZlcmxheUJsZW5kaW5nPXtvdmVybGF5QmxlbmRpbmd9XG4gICAgICAgICAgdXBkYXRlT3ZlcmxheUJsZW5kaW5nPXt2aXNTdGF0ZUFjdGlvbnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nfVxuICAgICAgICAgIGludGw9e2ludGx9XG4gICAgICAgICAgaW5mb0hlbHBlcj17XG4gICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICBpZD17YG92ZXJsYXlCbGVuZGluZy1kZXNjcmlwdGlvbmB9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXsnb3ZlcmxheUJsZW5kaW5nLmRlc2NyaXB0aW9uJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChMYXllck1hbmFnZXIpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYXllck1hbmFnZXJGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxVQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFD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
|
|
@@ -111,9 +111,16 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
111
111
|
return dataset.dataContainer.rowAsArray(idx);
|
|
112
112
|
};
|
|
113
113
|
}, [dataset, field]);
|
|
114
|
+
var ordinalDomain = (0, _react.useMemo)(function () {
|
|
115
|
+
return layer.config[layer.visualChannels[channelKey].domain] || [];
|
|
116
|
+
}, [channelKey, layer.config, layer.visualChannels]);
|
|
114
117
|
|
|
115
118
|
// aggregatedBins should be the raw data
|
|
116
119
|
var allBins = (0, _react.useMemo)(function () {
|
|
120
|
+
if ((field === null || field === void 0 ? void 0 : field.type) === _constants.ALL_FIELD_TYPES.string) {
|
|
121
|
+
// Use ordinal bins for string columns, as d3 could potentially generate invalid numeric bins, and crash
|
|
122
|
+
return (0, _utils.histogramFromOrdinal)(ordinalDomain, dataset.allIndexes, fieldValueAccessor);
|
|
123
|
+
}
|
|
117
124
|
if (aggregatedBins) {
|
|
118
125
|
return (0, _utils.histogramFromValues)(Object.values(aggregatedBins).map(function (bin) {
|
|
119
126
|
return bin.i;
|
|
@@ -122,7 +129,7 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
122
129
|
});
|
|
123
130
|
}
|
|
124
131
|
return columnStats !== null && columnStats !== void 0 && columnStats.bins ? columnStats === null || columnStats === void 0 ? void 0 : columnStats.bins : (0, _utils.histogramFromValues)(dataset.allIndexes, HISTOGRAM_BINS, fieldValueAccessor);
|
|
125
|
-
}, [aggregatedBins, columnStats, dataset, fieldValueAccessor]);
|
|
132
|
+
}, [aggregatedBins, columnStats, dataset, fieldValueAccessor, field === null || field === void 0 ? void 0 : field.type, ordinalDomain]);
|
|
126
133
|
var histogramDomain = (0, _react.useMemo)(function () {
|
|
127
134
|
return (0, _utils.getHistogramDomain)({
|
|
128
135
|
aggregatedBins: aggregatedBins,
|
|
@@ -131,9 +138,6 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
131
138
|
fieldValueAccessor: fieldValueAccessor
|
|
132
139
|
});
|
|
133
140
|
}, [dataset, fieldValueAccessor, aggregatedBins, columnStats]);
|
|
134
|
-
var ordinalDomain = (0, _react.useMemo)(function () {
|
|
135
|
-
return layer.config[layer.visualChannels[channelKey].domain] || [];
|
|
136
|
-
}, [channelKey, layer.config, layer.visualChannels]);
|
|
137
141
|
var isFiltered = aggregatedBins ? false : dataset.filteredIndexForDomain.length !== dataset.allIndexes.length;
|
|
138
142
|
|
|
139
143
|
// get filteredBins (not apply to aggregate layer)
|
|
@@ -141,13 +145,16 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
141
145
|
if (!isFiltered) {
|
|
142
146
|
return allBins;
|
|
143
147
|
}
|
|
144
|
-
|
|
148
|
+
if ((field === null || field === void 0 ? void 0 : field.type) === _constants.ALL_FIELD_TYPES.string) {
|
|
149
|
+
return (0, _utils.histogramFromOrdinal)(ordinalDomain, dataset.filteredIndexForDomain, fieldValueAccessor);
|
|
150
|
+
}
|
|
151
|
+
// numeric thresholds
|
|
145
152
|
var filterEmptyBins = false;
|
|
146
|
-
var
|
|
153
|
+
var thresholds = allBins.map(function (b) {
|
|
147
154
|
return b.x0;
|
|
148
155
|
});
|
|
149
|
-
return (0, _utils.histogramFromThreshold)(
|
|
150
|
-
}, [dataset, fieldValueAccessor, allBins, isFiltered]);
|
|
156
|
+
return (0, _utils.histogramFromThreshold)(thresholds, dataset.filteredIndexForDomain, fieldValueAccessor, filterEmptyBins);
|
|
157
|
+
}, [dataset, fieldValueAccessor, allBins, isFiltered, field === null || field === void 0 ? void 0 : field.type, ordinalDomain]);
|
|
151
158
|
var onSelectScale = (0, _react.useCallback)(function (val) {
|
|
152
159
|
// highlight selected option
|
|
153
160
|
if (!val || isEditingColorBreaks) return;
|
|
@@ -233,4 +240,4 @@ function ColorScaleSelectorFactory(ColorBreaksPanel) {
|
|
|
233
240
|
return ColorScaleSelector;
|
|
234
241
|
}
|
|
235
242
|
var _default = exports["default"] = ColorScaleSelectorFactory;
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2NvbG9yQnJlYWtzUGFuZWwiLCJfZHJvcGRvd25TZWxlY3QiLCJfYWNjZXNzb3IiLCJfZHJvcGRvd25MaXN0IiwiX2xhenlUaXBweSIsIl90eXBlYWhlYWQiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiSElTVE9HUkFNX0JJTlMiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJfZmllbGQkZmlsdGVyUHJvcHMiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwiYWdncmVnYXRlZEJpbnMiLCJyYW5nZSIsInNldENvbG9yVUkiLCJjb2xvclVJQ29uZmlnIiwiY2hhbm5lbEtleSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJfZmllbGQkdHlwZSIsImdldExlZ2VuZE9mU2NhbGUiLCJzY2FsZSIsImJ5Wm9vbSIsImxlbmd0aCIsImZpZWxkVHlwZSIsInR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiY29sdW1uU3RhdHMiLCJmaWx0ZXJQcm9wcyIsImZpZWxkVmFsdWVBY2Nlc3NvciIsImlkeCIsImdldFZhbHVlIiwiZGF0YUNvbnRhaW5lciIsInJvd0FzQXJyYXkiLCJhbGxCaW5zIiwiaGlzdG9ncmFtRnJvbVZhbHVlcyIsInZhbHVlcyIsIm1hcCIsImJpbiIsInZhbHVlIiwiYmlucyIsImFsbEluZGV4ZXMiLCJoaXN0b2dyYW1Eb21haW4iLCJnZXRIaXN0b2dyYW1Eb21haW4iLCJvcmRpbmFsRG9tYWluIiwiY29uZmlnIiwidmlzdWFsQ2hhbm5lbHMiLCJpc0ZpbHRlcmVkIiwiZmlsdGVyZWRJbmRleEZvckRvbWFpbiIsImZpbHRlcmVkQmlucyIsImZpbHRlckVtcHR5QmlucyIsInRocmVob2xkcyIsImIiLCJ4MCIsImhpc3RvZ3JhbUZyb21UaHJlc2hvbGQiLCJvblNlbGVjdFNjYWxlIiwidXNlQ2FsbGJhY2siLCJ2YWwiLCJzZWxlY3RlZFNjYWxlIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlIiwic2hvd0NvbG9yQ2hhcnQiLCJoYXNDb2xvck1hcCIsImN1c3RvbU9yZGluYWwiLCJfIiwiY29sb3JNYXAiLCJuZXdSYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImlzQ3VzdG9tQnJlYWtzIiwiUHJvdmlkZXIiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTLCBTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGVkQmluLCBMYXllciwgVmlzdWFsQ2hhbm5lbERvbWFpbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlLFxuICBoaXN0b2dyYW1Gcm9tVmFsdWVzLFxuICBoaXN0b2dyYW1Gcm9tVGhyZXNob2xkLFxuICBnZXRIaXN0b2dyYW1Eb21haW4sXG4gIGhhc0NvbG9yTWFwXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQgQ29sb3JCcmVha3NQYW5lbEZhY3RvcnksIHtDb2xvckJyZWFrc1BhbmVsUHJvcHN9IGZyb20gJy4vY29sb3ItYnJlYWtzLXBhbmVsJztcbmltcG9ydCB7U2V0Q29sb3JVSUZ1bmN9IGZyb20gJy4vY3VzdG9tLXBhbGV0dGUnO1xuaW1wb3J0IERyb3Bkb3duU2VsZWN0IGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLXNlbGVjdCc7XG5pbXBvcnQgQWNjZXNzb3IgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvYWNjZXNzb3InO1xuaW1wb3J0IERyb3Bkb3duTGlzdCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1saXN0JztcbmltcG9ydCBMYXp5VGlwcHkgZnJvbSAnLi4vLi4vbWFwL2xhenktdGlwcHknO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQnO1xuXG50eXBlIFRpcHB5SW5zdGFuY2UgPSBhbnk7IC8vICd0aXBweS1qcydcblxuY29uc3QgSElTVE9HUkFNX0JJTlMgPSAzMDtcblxuZXhwb3J0IHR5cGUgU2NhbGVPcHRpb24gPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgT25TZWxlY3RGdW5jID0gKHY6IHN0cmluZywgdmlzQ29uZmc/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBDb250ZXh0UHJvcHMgPSBDb2xvckJyZWFrc1BhbmVsUHJvcHM7XG5cbmV4cG9ydCB0eXBlIENvbG9yU2NhbGVTZWxlY3RvclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGZpZWxkOiBGaWVsZDtcbiAgZGF0YXNldDogS2VwbGVyVGFibGU7XG4gIHNjYWxlVHlwZTogc3RyaW5nO1xuICBkb21haW46IFZpc3VhbENoYW5uZWxEb21haW47XG4gIHJhbmdlOiBDb2xvclJhbmdlO1xuICBvblNlbGVjdDogT25TZWxlY3RGdW5jO1xuICBzZXRDb2xvclVJOiBTZXRDb2xvclVJRnVuYztcbiAgY29sb3JVSUNvbmZpZzogQ29sb3JVSTtcbiAgb3B0aW9uczogU2NhbGVPcHRpb25bXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBzZWxlY3RlZEl0ZW1zOiBTY2FsZU9wdGlvbltdO1xuICBtdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbjogc3RyaW5nO1xuICBnZXRPcHRpb25WYWx1ZTogc3RyaW5nO1xuICBhZ2dyZWdhdGVkQmlucz86IEFnZ3JlZ2F0ZWRCaW5bXTtcbiAgY2hhbm5lbEtleTogc3RyaW5nO1xufTtcblxuY29uc3QgRHJvcGRvd25Qcm9wQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe30pO1xuY29uc3QgUE9QUEVSX09QVElPTlMgPSB7XG4gIG1vZGlmaWVyczogW1xuICAgIC8vIHplcm8gb2Zmc2V0cyBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5IGFkZGVkIGluIFZlcnRpY2FsVG9vbGJhclxuICAgIHtuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczoge29mZnNldDogWzAsIDBdfX1cbiAgXVxufTtcblxuY29uc3QgRHJvcGRvd25Cb3R0b20gPSBzdHlsZWQuZGl2PHtsaWdodD86IGJvb2xlYW59PmBcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG5gO1xuXG5jb25zdCBTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duID0gc3R5bGVkLmRpdmBcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RTaGFkb3d9O1xuICAubGlzdC1zZWxlY3RvciB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG4gIC5saXN0X19pdGVtIHtcbiAgICBwYWRkaW5nOiA0cHggOXB4O1xuICB9XG5gO1xuY29uc3QgRHJvcGRvd25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAudHlwZWFoZWFkIHtcbiAgICAvLyBhZGRzIHBhZGRpbmcgdG8gYm90dG9tIG9mIGRyb3Bkb3duXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuICBbZGF0YS10aXBweS1yb290XSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmA7XG5cbmZ1bmN0aW9uIGhpZGVUaXBweSh0aXBweUluc3RhbmNlKSB7XG4gIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gIH1cbn1cbkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkuZGVwcyA9IFtDb2xvckJyZWFrc1BhbmVsRmFjdG9yeV07XG5cbmZ1bmN0aW9uIENvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkoXG4gIENvbG9yQnJlYWtzUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5PlxuKTogUmVhY3QuRkM8Q29sb3JTY2FsZVNlbGVjdG9yUHJvcHM+IHtcbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duID0gcHJvcHMgPT4gKFxuICAgIDxTdHlsZWRTY2FsZVNlbGVjdERyb3Bkb3duPlxuICAgICAgPERyb3Bkb3duTGlzdCB7Li4ucHJvcHN9IC8+XG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgeyhjb250ZXh0OiBhbnkpID0+IChcbiAgICAgICAgICA8RHJvcGRvd25Cb3R0b20+XG4gICAgICAgICAgICA8Q29sb3JCcmVha3NQYW5lbCB7Li4uY29udGV4dH0gLz5cbiAgICAgICAgICA8L0Ryb3Bkb3duQm90dG9tPlxuICAgICAgICApfVxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LkNvbnN1bWVyPlxuICAgIDwvU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgKTtcblxuICBjb25zdCBDb2xvclNjYWxlU2VsZWN0b3I6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgZmllbGQsXG4gICAgZGF0YXNldCxcbiAgICBvblNlbGVjdCxcbiAgICBzY2FsZVR5cGUsXG4gICAgZG9tYWluLFxuICAgIGFnZ3JlZ2F0ZWRCaW5zLFxuICAgIHJhbmdlLFxuICAgIHNldENvbG9yVUksXG4gICAgY29sb3JVSUNvbmZpZyxcbiAgICBjaGFubmVsS2V5LFxuICAgIC4uLmRyb3Bkb3duU2VsZWN0UHJvcHNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGRpc3BsYXlPcHRpb24gPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKGRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzcGxheU9wdGlvbik7XG4gICAgY29uc3QgZ2V0T3B0aW9uVmFsdWUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmdldE9wdGlvblZhbHVlKSxcbiAgICAgIFtkcm9wZG93blNlbGVjdFByb3BzLmdldE9wdGlvblZhbHVlXVxuICAgICk7XG4gICAgY29uc3QgW3RpcHB5SW5zdGFuY2UsIHNldFRpcHB5SW5zdGFuY2VdID0gdXNlU3RhdGU8VGlwcHlJbnN0YW5jZT4oKTtcbiAgICBjb25zdCBpc0VkaXRpbmdDb2xvckJyZWFrcyA9IGNvbG9yVUlDb25maWc/LmNvbG9yUmFuZ2VDb25maWc/LmN1c3RvbUJyZWFrcztcbiAgICBjb25zdCBjb2xvclNjYWxlID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGdldExheWVyQ29sb3JTY2FsZSh7XG4gICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgZG9tYWluLFxuICAgICAgICAgIHNjYWxlVHlwZSxcbiAgICAgICAgICBsYXllclxuICAgICAgICB9KSxcbiAgICAgIFtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGxheWVyXVxuICAgICk7XG5cbiAgICBjb25zdCBjb2xvckJyZWFrcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGNvbG9yU2NhbGVcbiAgICAgICAgPyBnZXRMZWdlbmRPZlNjYWxlKHtcbiAgICAgICAgICAgIHNjYWxlOiBjb2xvclNjYWxlLmJ5Wm9vbSAmJiBkb21haW4gPyBjb2xvclNjYWxlKGRvbWFpbj8ubGVuZ3RoIC0gMSkgOiBjb2xvclNjYWxlLFxuICAgICAgICAgICAgc2NhbGVUeXBlLFxuICAgICAgICAgICAgZmllbGRUeXBlOiBmaWVsZD8udHlwZSA/PyBBTExfRklFTERfVFlQRVMucmVhbFxuICAgICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICB9LCBbY29sb3JTY2FsZSwgc2NhbGVUeXBlLCBmaWVsZD8udHlwZSwgZG9tYWluXSk7XG5cbiAgICBjb25zdCBjb2x1bW5TdGF0cyA9IGZpZWxkPy5maWx0ZXJQcm9wcz8uY29sdW1uU3RhdHM7XG5cbiAgICBjb25zdCBmaWVsZFZhbHVlQWNjZXNzb3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICA/IGlkeCA9PiBkYXRhc2V0LmdldFZhbHVlKGZpZWxkLm5hbWUsIGlkeClcbiAgICAgICAgOiBpZHggPT4gZGF0YXNldC5kYXRhQ29udGFpbmVyLnJvd0FzQXJyYXkoaWR4KTtcbiAgICB9LCBbZGF0YXNldCwgZmllbGRdKTtcblxuICAgIC8vIGFnZ3JlZ2F0ZWRCaW5zIHNob3VsZCBiZSB0aGUgcmF3IGRhdGFcbiAgICBjb25zdCBhbGxCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoYWdncmVnYXRlZEJpbnMpIHtcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21WYWx1ZXMoXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhhZ2dyZWdhdGVkQmlucykubWFwKGJpbiA9PiBiaW4uaSksXG4gICAgICAgICAgSElTVE9HUkFNX0JJTlMsXG4gICAgICAgICAgaWR4ID0+IGFnZ3JlZ2F0ZWRCaW5zW2lkeF0udmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2x1bW5TdGF0cz8uYmluc1xuICAgICAgICA/IGNvbHVtblN0YXRzPy5iaW5zXG4gICAgICAgIDogaGlzdG9ncmFtRnJvbVZhbHVlcyhkYXRhc2V0LmFsbEluZGV4ZXMsIEhJU1RPR1JBTV9CSU5TLCBmaWVsZFZhbHVlQWNjZXNzb3IpO1xuICAgIH0sIFthZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHMsIGRhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3Nvcl0pO1xuXG4gICAgY29uc3QgaGlzdG9ncmFtRG9tYWluID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0SGlzdG9ncmFtRG9tYWluKHthZ2dyZWdhdGVkQmlucywgY29sdW1uU3RhdHMsIGRhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3Nvcn0pO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFnZ3JlZ2F0ZWRCaW5zLCBjb2x1bW5TdGF0c10pO1xuXG4gICAgY29uc3Qgb3JkaW5hbERvbWFpbiA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIGxheWVyLmNvbmZpZ1tsYXllci52aXN1YWxDaGFubmVsc1tjaGFubmVsS2V5XS5kb21haW5dIHx8IFtdO1xuICAgIH0sIFtjaGFubmVsS2V5LCBsYXllci5jb25maWcsIGxheWVyLnZpc3VhbENoYW5uZWxzXSk7XG5cbiAgICBjb25zdCBpc0ZpbHRlcmVkID0gYWdncmVnYXRlZEJpbnNcbiAgICAgID8gZmFsc2VcbiAgICAgIDogZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLmxlbmd0aCAhPT0gZGF0YXNldC5hbGxJbmRleGVzLmxlbmd0aDtcblxuICAgIC8vIGdldCBmaWx0ZXJlZEJpbnMgKG5vdCBhcHBseSB0byBhZ2dyZWdhdGUgbGF5ZXIpXG4gICAgY29uc3QgZmlsdGVyZWRCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWlzRmlsdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuIGFsbEJpbnM7XG4gICAgICB9XG4gICAgICAvLyBnZXQgdGhyZWhvbGRzXG4gICAgICBjb25zdCBmaWx0ZXJFbXB0eUJpbnMgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHRocmVob2xkcyA9IGFsbEJpbnMubWFwKGIgPT4gYi54MCk7XG4gICAgICByZXR1cm4gaGlzdG9ncmFtRnJvbVRocmVzaG9sZChcbiAgICAgICAgdGhyZWhvbGRzLFxuICAgICAgICBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4sXG4gICAgICAgIGZpZWxkVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgZmlsdGVyRW1wdHlCaW5zXG4gICAgICApO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFsbEJpbnMsIGlzRmlsdGVyZWRdKTtcblxuICAgIGNvbnN0IG9uU2VsZWN0U2NhbGUgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBvcHRpb25cbiAgICAgICAgaWYgKCF2YWwgfHwgaXNFZGl0aW5nQ29sb3JCcmVha3MpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRTY2FsZSA9IGdldE9wdGlvblZhbHVlKHZhbCk7XG4gICAgICAgIGlmIChzZWxlY3RlZFNjYWxlID09PSBTQ0FMRV9UWVBFUy5jdXN0b20pIHtcbiAgICAgICAgICBjb25zdCBjdXN0b21QYWxldHRlID0gaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlKHtcbiAgICAgICAgICAgIHNjYWxlOiBzZWxlY3RlZFNjYWxlLFxuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICByYW5nZSxcbiAgICAgICAgICAgIGNvbG9yQnJlYWtzXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0Q29sb3JVSSh7XG4gICAgICAgICAgICBzaG93Q29sb3JDaGFydDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICAgICAgICAgICAgY3VzdG9tQnJlYWtzOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUsIGN1c3RvbVBhbGV0dGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhc0NvbG9yTWFwKHJhbmdlKSAmJiBzZWxlY3RlZFNjYWxlICE9PSBTQ0FMRV9UWVBFUy5jdXN0b21PcmRpbmFsKSB7XG4gICAgICAgICAgLy8gbm90IGN1c3RvbVxuICAgICAgICAgIC8vIHJlbW92ZSBjb2xvck1hcFxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgICAgIGNvbnN0IHtjb2xvck1hcDogXywgLi4ubmV3UmFuZ2V9ID0gcmFuZ2U7XG4gICAgICAgICAgb25TZWxlY3Qoc2VsZWN0ZWRTY2FsZSwgbmV3UmFuZ2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2lzRWRpdGluZ0NvbG9yQnJlYWtzLCBmaWVsZCwgc2V0Q29sb3JVSSwgb25TZWxlY3QsIHJhbmdlLCBnZXRPcHRpb25WYWx1ZSwgY29sb3JCcmVha3NdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQXBwbHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblNlbGVjdChzY2FsZVR5cGUsIGNvbG9yVUlDb25maWcuY3VzdG9tUGFsZXR0ZSk7XG4gICAgICBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSk7XG4gICAgfSwgW29uU2VsZWN0LCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUsIHRpcHB5SW5zdGFuY2UsIHNjYWxlVHlwZV0pO1xuXG4gICAgY29uc3Qgb25DYW5jZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSk7XG4gICAgfSwgW3RpcHB5SW5zdGFuY2VdKTtcblxuICAgIGNvbnN0IGlzQ3VzdG9tQnJlYWtzID1cbiAgICAgIHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tIHx8IHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbDtcblxuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25Qcm9wQ29udGV4dC5Qcm92aWRlclxuICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgIHNldENvbG9yVUksXG4gICAgICAgICAgY29sb3JGaWVsZDogZmllbGQsXG4gICAgICAgICAgZGF0YXNldCxcbiAgICAgICAgICBjb2xvclVJQ29uZmlnLFxuICAgICAgICAgIGNvbG9yQnJlYWtzLFxuICAgICAgICAgIGlzQ3VzdG9tQnJlYWtzLFxuICAgICAgICAgIGFsbEJpbnMsXG4gICAgICAgICAgZmlsdGVyZWRCaW5zLFxuICAgICAgICAgIGlzRmlsdGVyZWQsXG4gICAgICAgICAgaGlzdG9ncmFtRG9tYWluLFxuICAgICAgICAgIG9yZGluYWxEb21haW4sXG4gICAgICAgICAgb25TY2FsZUNoYW5nZTogb25TZWxlY3QsXG4gICAgICAgICAgb25BcHBseSxcbiAgICAgICAgICBvbkNhbmNlbFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yPlxuICAgICAgICAgIDxMYXp5VGlwcHlcbiAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tc3RhcnRcIlxuICAgICAgICAgICAgYXBwZW5kVG89XCJwYXJlbnRcIlxuICAgICAgICAgICAgaW50ZXJhY3RpdmU9e3RydWV9XG4gICAgICAgICAgICBoaWRlT25DbGljaz17IWlzRWRpdGluZ0NvbG9yQnJlYWtzfVxuICAgICAgICAgICAgb25DcmVhdGU9e3NldFRpcHB5SW5zdGFuY2V9XG4gICAgICAgICAgICBwb3BwZXJPcHRpb25zPXtQT1BQRVJfT1BUSU9OU31cbiAgICAgICAgICAgIHJlbmRlcj17YXR0cnMgPT4gKFxuICAgICAgICAgICAgICA8RHJvcGRvd25XcmFwcGVyIHsuLi5hdHRyc30+XG4gICAgICAgICAgICAgICAgey8qIEB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgICB7IWRyb3Bkb3duU2VsZWN0UHJvcHMuZGlzYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgICAgICBnZXRPcHRpb25WYWx1ZT17Z2V0T3B0aW9uVmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uU2VsZWN0U2NhbGV9XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e0NvbG9yU2NhbGVTZWxlY3REcm9wZG93bn1cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25XcmFwcGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLXNlbGVjdFwiPlxuICAgICAgICAgICAgICB7LyogQHRzLWlnbm9yZSovfVxuICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RcbiAgICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgICAgIHZhbHVlPXtkcm9wZG93blNlbGVjdFByb3BzLnNlbGVjdGVkSXRlbXNbMF19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0xhenlUaXBweT5cbiAgICAgICAgPC9TdHlsZWRDb2xvclNjYWxlU2VsZWN0b3I+XG4gICAgICA8L0Ryb3Bkb3duUHJvcENvbnRleHQuUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIENvbG9yU2NhbGVTZWxlY3Rvcjtcbn1cbmV4cG9ydCBkZWZhdWx0IENvbG9yU2NhbGVTZWxlY3RvckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFJQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFVQSxJQUFBSyxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQU0sZUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQTZELElBQUFXLFNBQUE7RUFBQUMsVUFBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUExQjdEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFB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
|
|
243
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX2NvbG9yQnJlYWtzUGFuZWwiLCJfZHJvcGRvd25TZWxlY3QiLCJfYWNjZXNzb3IiLCJfZHJvcGRvd25MaXN0IiwiX2xhenlUaXBweSIsIl90eXBlYWhlYWQiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiSElTVE9HUkFNX0JJTlMiLCJEcm9wZG93blByb3BDb250ZXh0IiwiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwiUE9QUEVSX09QVElPTlMiLCJtb2RpZmllcnMiLCJuYW1lIiwib3B0aW9ucyIsIm9mZnNldCIsIkRyb3Bkb3duQm90dG9tIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsIlN0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24iLCJkcm9wZG93bkxpc3RTaGFkb3ciLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJTdHlsZWRDb2xvclNjYWxlU2VsZWN0b3IiLCJoaWRlVGlwcHkiLCJ0aXBweUluc3RhbmNlIiwiaGlkZSIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiQ29sb3JCcmVha3NQYW5lbEZhY3RvcnkiLCJDb2xvckJyZWFrc1BhbmVsIiwiQ29sb3JTY2FsZVNlbGVjdERyb3Bkb3duIiwiY3JlYXRlRWxlbWVudCIsIkNvbnN1bWVyIiwiY29udGV4dCIsIkNvbG9yU2NhbGVTZWxlY3RvciIsIl9yZWYiLCJfY29sb3JVSUNvbmZpZyRjb2xvclIiLCJfZmllbGQkZmlsdGVyUHJvcHMiLCJsYXllciIsImZpZWxkIiwiZGF0YXNldCIsIm9uU2VsZWN0Iiwic2NhbGVUeXBlIiwiZG9tYWluIiwiYWdncmVnYXRlZEJpbnMiLCJyYW5nZSIsInNldENvbG9yVUkiLCJjb2xvclVJQ29uZmlnIiwiY2hhbm5lbEtleSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwidXNlTWVtbyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldFRpcHB5SW5zdGFuY2UiLCJpc0VkaXRpbmdDb2xvckJyZWFrcyIsImNvbG9yUmFuZ2VDb25maWciLCJjdXN0b21CcmVha3MiLCJjb2xvclNjYWxlIiwiZ2V0TGF5ZXJDb2xvclNjYWxlIiwiY29sb3JCcmVha3MiLCJfZmllbGQkdHlwZSIsImdldExlZ2VuZE9mU2NhbGUiLCJzY2FsZSIsImJ5Wm9vbSIsImxlbmd0aCIsImZpZWxkVHlwZSIsInR5cGUiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiY29sdW1uU3RhdHMiLCJmaWx0ZXJQcm9wcyIsImZpZWxkVmFsdWVBY2Nlc3NvciIsImlkeCIsImdldFZhbHVlIiwiZGF0YUNvbnRhaW5lciIsInJvd0FzQXJyYXkiLCJvcmRpbmFsRG9tYWluIiwiY29uZmlnIiwidmlzdWFsQ2hhbm5lbHMiLCJhbGxCaW5zIiwic3RyaW5nIiwiaGlzdG9ncmFtRnJvbU9yZGluYWwiLCJhbGxJbmRleGVzIiwiaGlzdG9ncmFtRnJvbVZhbHVlcyIsInZhbHVlcyIsIm1hcCIsImJpbiIsInZhbHVlIiwiYmlucyIsImhpc3RvZ3JhbURvbWFpbiIsImdldEhpc3RvZ3JhbURvbWFpbiIsImlzRmlsdGVyZWQiLCJmaWx0ZXJlZEluZGV4Rm9yRG9tYWluIiwiZmlsdGVyZWRCaW5zIiwiZmlsdGVyRW1wdHlCaW5zIiwidGhyZXNob2xkcyIsImIiLCJ4MCIsImhpc3RvZ3JhbUZyb21UaHJlc2hvbGQiLCJvblNlbGVjdFNjYWxlIiwidXNlQ2FsbGJhY2siLCJ2YWwiLCJzZWxlY3RlZFNjYWxlIiwiU0NBTEVfVFlQRVMiLCJjdXN0b20iLCJjdXN0b21QYWxldHRlIiwiaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlIiwic2hvd0NvbG9yQ2hhcnQiLCJoYXNDb2xvck1hcCIsImN1c3RvbU9yZGluYWwiLCJfIiwiY29sb3JNYXAiLCJuZXdSYW5nZSIsIm9uQXBwbHkiLCJvbkNhbmNlbCIsImlzQ3VzdG9tQnJlYWtzIiwiUHJvdmlkZXIiLCJjb2xvckZpZWxkIiwib25TY2FsZUNoYW5nZSIsInRyaWdnZXIiLCJwbGFjZW1lbnQiLCJhcHBlbmRUbyIsImludGVyYWN0aXZlIiwiaGlkZU9uQ2xpY2siLCJvbkNyZWF0ZSIsInBvcHBlck9wdGlvbnMiLCJyZW5kZXIiLCJhdHRycyIsImRpc2FibGVkIiwiX2V4dGVuZHMyIiwib25PcHRpb25TZWxlY3RlZCIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJjbGFzc05hbWUiLCJzZWxlY3RlZEl0ZW1zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3Itc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTLCBTQ0FMRV9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBZ2dyZWdhdGVkQmluLCBMYXllciwgVmlzdWFsQ2hhbm5lbERvbWFpbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIENvbG9yVUksIEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgaW5pdEN1c3RvbVBhbGV0dGVCeUN1c3RvbVNjYWxlLFxuICBoaXN0b2dyYW1Gcm9tVmFsdWVzLFxuICBoaXN0b2dyYW1Gcm9tT3JkaW5hbCxcbiAgaGlzdG9ncmFtRnJvbVRocmVzaG9sZCxcbiAgZ2V0SGlzdG9ncmFtRG9tYWluLFxuICBoYXNDb2xvck1hcFxufSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuaW1wb3J0IENvbG9yQnJlYWtzUGFuZWxGYWN0b3J5LCB7Q29sb3JCcmVha3NQYW5lbFByb3BzfSBmcm9tICcuL2NvbG9yLWJyZWFrcy1wYW5lbCc7XG5pbXBvcnQge1NldENvbG9yVUlGdW5jfSBmcm9tICcuL2N1c3RvbS1wYWxldHRlJztcbmltcG9ydCBEcm9wZG93blNlbGVjdCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9kcm9wZG93bi1zZWxlY3QnO1xuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQgTGF6eVRpcHB5IGZyb20gJy4uLy4uL21hcC9sYXp5LXRpcHB5JztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvdHlwZWFoZWFkJztcblxudHlwZSBUaXBweUluc3RhbmNlID0gYW55OyAvLyAndGlwcHktanMnXG5cbmNvbnN0IEhJU1RPR1JBTV9CSU5TID0gMzA7XG5cbmV4cG9ydCB0eXBlIFNjYWxlT3B0aW9uID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIE9uU2VsZWN0RnVuYyA9ICh2OiBzdHJpbmcsIHZpc0NvbmZnPzogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgQ29udGV4dFByb3BzID0gQ29sb3JCcmVha3NQYW5lbFByb3BzO1xuXG5leHBvcnQgdHlwZSBDb2xvclNjYWxlU2VsZWN0b3JQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBmaWVsZDogRmllbGQ7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBzY2FsZVR5cGU6IHN0cmluZztcbiAgZG9tYWluOiBWaXN1YWxDaGFubmVsRG9tYWluO1xuICByYW5nZTogQ29sb3JSYW5nZTtcbiAgb25TZWxlY3Q6IE9uU2VsZWN0RnVuYztcbiAgc2V0Q29sb3JVSTogU2V0Q29sb3JVSUZ1bmM7XG4gIGNvbG9yVUlDb25maWc6IENvbG9yVUk7XG4gIG9wdGlvbnM6IFNjYWxlT3B0aW9uW107XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRJdGVtczogU2NhbGVPcHRpb25bXTtcbiAgbXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb246IHN0cmluZztcbiAgZ2V0T3B0aW9uVmFsdWU6IHN0cmluZztcbiAgYWdncmVnYXRlZEJpbnM/OiBBZ2dyZWdhdGVkQmluW107XG4gIGNoYW5uZWxLZXk6IHN0cmluZztcbn07XG5cbmNvbnN0IERyb3Bkb3duUHJvcENvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHt9KTtcbmNvbnN0IFBPUFBFUl9PUFRJT05TID0ge1xuICBtb2RpZmllcnM6IFtcbiAgICAvLyB6ZXJvIG9mZnNldHMgc2luY2UgdGhleSBhcmUgYWxyZWFkeSBhZGRlZCBpbiBWZXJ0aWNhbFRvb2xiYXJcbiAgICB7bmFtZTogJ29mZnNldCcsIG9wdGlvbnM6IHtvZmZzZXQ6IFswLCAwXX19XG4gIF1cbn07XG5cbmNvbnN0IERyb3Bkb3duQm90dG9tID0gc3R5bGVkLmRpdjx7bGlnaHQ/OiBib29sZWFufT5gXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZFxuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3B9O1xuYDtcblxuY29uc3QgU3R5bGVkU2NhbGVTZWxlY3REcm9wZG93biA9IHN0eWxlZC5kaXZgXG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcbiAgLmxpc3Qtc2VsZWN0b3Ige1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICAubGlzdF9faXRlbSB7XG4gICAgcGFkZGluZzogNHB4IDlweDtcbiAgfVxuYDtcbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weDtcbmA7XG5cbmNvbnN0IFN0eWxlZENvbG9yU2NhbGVTZWxlY3RvciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLnR5cGVhaGVhZCB7XG4gICAgLy8gYWRkcyBwYWRkaW5nIHRvIGJvdHRvbSBvZiBkcm9wZG93blxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cbiAgW2RhdGEtdGlwcHktcm9vdF0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5gO1xuXG5mdW5jdGlvbiBoaWRlVGlwcHkodGlwcHlJbnN0YW5jZSkge1xuICBpZiAodGlwcHlJbnN0YW5jZSkge1xuICAgIHRpcHB5SW5zdGFuY2UuaGlkZSgpO1xuICB9XG59XG5Db2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbQ29sb3JCcmVha3NQYW5lbEZhY3RvcnldO1xuXG5mdW5jdGlvbiBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5KFxuICBDb2xvckJyZWFrc1BhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckJyZWFrc1BhbmVsRmFjdG9yeT5cbik6IFJlYWN0LkZDPENvbG9yU2NhbGVTZWxlY3RvclByb3BzPiB7XG4gIGNvbnN0IENvbG9yU2NhbGVTZWxlY3REcm9wZG93biA9IHByb3BzID0+IChcbiAgICA8U3R5bGVkU2NhbGVTZWxlY3REcm9wZG93bj5cbiAgICAgIDxEcm9wZG93bkxpc3Qgey4uLnByb3BzfSAvPlxuICAgICAgPERyb3Bkb3duUHJvcENvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgIHsoY29udGV4dDogYW55KSA9PiAoXG4gICAgICAgICAgPERyb3Bkb3duQm90dG9tPlxuICAgICAgICAgICAgPENvbG9yQnJlYWtzUGFuZWwgey4uLmNvbnRleHR9IC8+XG4gICAgICAgICAgPC9Ecm9wZG93bkJvdHRvbT5cbiAgICAgICAgKX1cbiAgICAgIDwvRHJvcGRvd25Qcm9wQ29udGV4dC5Db25zdW1lcj5cbiAgICA8L1N0eWxlZFNjYWxlU2VsZWN0RHJvcGRvd24+XG4gICk7XG5cbiAgY29uc3QgQ29sb3JTY2FsZVNlbGVjdG9yOiBSZWFjdC5GQzxDb2xvclNjYWxlU2VsZWN0b3JQcm9wcz4gPSAoe1xuICAgIGxheWVyLFxuICAgIGZpZWxkLFxuICAgIGRhdGFzZXQsXG4gICAgb25TZWxlY3QsXG4gICAgc2NhbGVUeXBlLFxuICAgIGRvbWFpbixcbiAgICBhZ2dyZWdhdGVkQmlucyxcbiAgICByYW5nZSxcbiAgICBzZXRDb2xvclVJLFxuICAgIGNvbG9yVUlDb25maWcsXG4gICAgY2hhbm5lbEtleSxcbiAgICAuLi5kcm9wZG93blNlbGVjdFByb3BzXG4gIH0pID0+IHtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcihkcm9wZG93blNlbGVjdFByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IGdldE9wdGlvblZhbHVlID0gdXNlTWVtbyhcbiAgICAgICgpID0+IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZSksXG4gICAgICBbZHJvcGRvd25TZWxlY3RQcm9wcy5nZXRPcHRpb25WYWx1ZV1cbiAgICApO1xuICAgIGNvbnN0IFt0aXBweUluc3RhbmNlLCBzZXRUaXBweUluc3RhbmNlXSA9IHVzZVN0YXRlPFRpcHB5SW5zdGFuY2U+KCk7XG4gICAgY29uc3QgaXNFZGl0aW5nQ29sb3JCcmVha3MgPSBjb2xvclVJQ29uZmlnPy5jb2xvclJhbmdlQ29uZmlnPy5jdXN0b21CcmVha3M7XG4gICAgY29uc3QgY29sb3JTY2FsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBnZXRMYXllckNvbG9yU2NhbGUoe1xuICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBzY2FsZVR5cGUsXG4gICAgICAgICAgbGF5ZXJcbiAgICAgICAgfSksXG4gICAgICBbcmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBsYXllcl1cbiAgICApO1xuXG4gICAgY29uc3QgY29sb3JCcmVha3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBjb2xvclNjYWxlXG4gICAgICAgID8gZ2V0TGVnZW5kT2ZTY2FsZSh7XG4gICAgICAgICAgICBzY2FsZTogY29sb3JTY2FsZS5ieVpvb20gJiYgZG9tYWluID8gY29sb3JTY2FsZShkb21haW4/Lmxlbmd0aCAtIDEpIDogY29sb3JTY2FsZSxcbiAgICAgICAgICAgIHNjYWxlVHlwZSxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogZmllbGQ/LnR5cGUgPz8gQUxMX0ZJRUxEX1RZUEVTLnJlYWxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgfSwgW2NvbG9yU2NhbGUsIHNjYWxlVHlwZSwgZmllbGQ/LnR5cGUsIGRvbWFpbl0pO1xuXG4gICAgY29uc3QgY29sdW1uU3RhdHMgPSBmaWVsZD8uZmlsdGVyUHJvcHM/LmNvbHVtblN0YXRzO1xuXG4gICAgY29uc3QgZmllbGRWYWx1ZUFjY2Vzc29yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZmllbGRcbiAgICAgICAgPyBpZHggPT4gZGF0YXNldC5nZXRWYWx1ZShmaWVsZC5uYW1lLCBpZHgpXG4gICAgICAgIDogaWR4ID0+IGRhdGFzZXQuZGF0YUNvbnRhaW5lci5yb3dBc0FycmF5KGlkeCk7XG4gICAgfSwgW2RhdGFzZXQsIGZpZWxkXSk7XG5cbiAgICBjb25zdCBvcmRpbmFsRG9tYWluID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gbGF5ZXIuY29uZmlnW2xheWVyLnZpc3VhbENoYW5uZWxzW2NoYW5uZWxLZXldLmRvbWFpbl0gfHwgW107XG4gICAgfSwgW2NoYW5uZWxLZXksIGxheWVyLmNvbmZpZywgbGF5ZXIudmlzdWFsQ2hhbm5lbHNdKTtcblxuICAgIC8vIGFnZ3JlZ2F0ZWRCaW5zIHNob3VsZCBiZSB0aGUgcmF3IGRhdGFcbiAgICBjb25zdCBhbGxCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoZmllbGQ/LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgICAgLy8gVXNlIG9yZGluYWwgYmlucyBmb3Igc3RyaW5nIGNvbHVtbnMsIGFzIGQzIGNvdWxkIHBvdGVudGlhbGx5IGdlbmVyYXRlIGludmFsaWQgbnVtZXJpYyBiaW5zLCBhbmQgY3Jhc2hcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21PcmRpbmFsKG9yZGluYWxEb21haW4sIGRhdGFzZXQuYWxsSW5kZXhlcywgZmllbGRWYWx1ZUFjY2Vzc29yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFnZ3JlZ2F0ZWRCaW5zKSB7XG4gICAgICAgIHJldHVybiBoaXN0b2dyYW1Gcm9tVmFsdWVzKFxuICAgICAgICAgIE9iamVjdC52YWx1ZXMoYWdncmVnYXRlZEJpbnMpLm1hcChiaW4gPT4gYmluLmkpLFxuICAgICAgICAgIEhJU1RPR1JBTV9CSU5TLFxuICAgICAgICAgIGlkeCA9PiBhZ2dyZWdhdGVkQmluc1tpZHhdLnZhbHVlXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29sdW1uU3RhdHM/LmJpbnNcbiAgICAgICAgPyBjb2x1bW5TdGF0cz8uYmluc1xuICAgICAgICA6IGhpc3RvZ3JhbUZyb21WYWx1ZXMoZGF0YXNldC5hbGxJbmRleGVzLCBISVNUT0dSQU1fQklOUywgZmllbGRWYWx1ZUFjY2Vzc29yKTtcbiAgICB9LCBbYWdncmVnYXRlZEJpbnMsIGNvbHVtblN0YXRzLCBkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGZpZWxkPy50eXBlLCBvcmRpbmFsRG9tYWluXSk7XG5cbiAgICBjb25zdCBoaXN0b2dyYW1Eb21haW4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBnZXRIaXN0b2dyYW1Eb21haW4oe2FnZ3JlZ2F0ZWRCaW5zLCBjb2x1bW5TdGF0cywgZGF0YXNldCwgZmllbGRWYWx1ZUFjY2Vzc29yfSk7XG4gICAgfSwgW2RhdGFzZXQsIGZpZWxkVmFsdWVBY2Nlc3NvciwgYWdncmVnYXRlZEJpbnMsIGNvbHVtblN0YXRzXSk7XG5cbiAgICBjb25zdCBpc0ZpbHRlcmVkID0gYWdncmVnYXRlZEJpbnNcbiAgICAgID8gZmFsc2VcbiAgICAgIDogZGF0YXNldC5maWx0ZXJlZEluZGV4Rm9yRG9tYWluLmxlbmd0aCAhPT0gZGF0YXNldC5hbGxJbmRleGVzLmxlbmd0aDtcblxuICAgIC8vIGdldCBmaWx0ZXJlZEJpbnMgKG5vdCBhcHBseSB0byBhZ2dyZWdhdGUgbGF5ZXIpXG4gICAgY29uc3QgZmlsdGVyZWRCaW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBpZiAoIWlzRmlsdGVyZWQpIHtcbiAgICAgICAgcmV0dXJuIGFsbEJpbnM7XG4gICAgICB9XG4gICAgICBpZiAoZmllbGQ/LnR5cGUgPT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGhpc3RvZ3JhbUZyb21PcmRpbmFsKFxuICAgICAgICAgIG9yZGluYWxEb21haW4gYXMgYW55LFxuICAgICAgICAgIGRhdGFzZXQuZmlsdGVyZWRJbmRleEZvckRvbWFpbixcbiAgICAgICAgICBmaWVsZFZhbHVlQWNjZXNzb3JcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIG51bWVyaWMgdGhyZXNob2xkc1xuICAgICAgY29uc3QgZmlsdGVyRW1wdHlCaW5zID0gZmFsc2U7XG4gICAgICBjb25zdCB0aHJlc2hvbGRzID0gYWxsQmlucy5tYXAoYiA9PiBiLngwKTtcbiAgICAgIHJldHVybiBoaXN0b2dyYW1Gcm9tVGhyZXNob2xkKFxuICAgICAgICB0aHJlc2hvbGRzLFxuICAgICAgICBkYXRhc2V0LmZpbHRlcmVkSW5kZXhGb3JEb21haW4sXG4gICAgICAgIGZpZWxkVmFsdWVBY2Nlc3NvcixcbiAgICAgICAgZmlsdGVyRW1wdHlCaW5zXG4gICAgICApO1xuICAgIH0sIFtkYXRhc2V0LCBmaWVsZFZhbHVlQWNjZXNzb3IsIGFsbEJpbnMsIGlzRmlsdGVyZWQsIGZpZWxkPy50eXBlLCBvcmRpbmFsRG9tYWluXSk7XG5cbiAgICBjb25zdCBvblNlbGVjdFNjYWxlID0gdXNlQ2FsbGJhY2soXG4gICAgICB2YWwgPT4ge1xuICAgICAgICAvLyBoaWdobGlnaHQgc2VsZWN0ZWQgb3B0aW9uXG4gICAgICAgIGlmICghdmFsIHx8IGlzRWRpdGluZ0NvbG9yQnJlYWtzKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkU2NhbGUgPSBnZXRPcHRpb25WYWx1ZSh2YWwpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRTY2FsZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tKSB7XG4gICAgICAgICAgY29uc3QgY3VzdG9tUGFsZXR0ZSA9IGluaXRDdXN0b21QYWxldHRlQnlDdXN0b21TY2FsZSh7XG4gICAgICAgICAgICBzY2FsZTogc2VsZWN0ZWRTY2FsZSxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICBjb2xvckJyZWFrc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHNldENvbG9yVUkoe1xuICAgICAgICAgICAgc2hvd0NvbG9yQ2hhcnQ6IHRydWUsXG4gICAgICAgICAgICBjb2xvclJhbmdlQ29uZmlnOiB7XG4gICAgICAgICAgICAgIGN1c3RvbUJyZWFrczogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlLCBjdXN0b21QYWxldHRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXNDb2xvck1hcChyYW5nZSkgJiYgc2VsZWN0ZWRTY2FsZSAhPT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCkge1xuICAgICAgICAgIC8vIG5vdCBjdXN0b21cbiAgICAgICAgICAvLyByZW1vdmUgY29sb3JNYXBcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICBjb25zdCB7Y29sb3JNYXA6IF8sIC4uLm5ld1JhbmdlfSA9IHJhbmdlO1xuICAgICAgICAgIG9uU2VsZWN0KHNlbGVjdGVkU2NhbGUsIG5ld1JhbmdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvblNlbGVjdChzZWxlY3RlZFNjYWxlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtpc0VkaXRpbmdDb2xvckJyZWFrcywgZmllbGQsIHNldENvbG9yVUksIG9uU2VsZWN0LCByYW5nZSwgZ2V0T3B0aW9uVmFsdWUsIGNvbG9yQnJlYWtzXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFwcGx5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25TZWxlY3Qoc2NhbGVUeXBlLCBjb2xvclVJQ29uZmlnLmN1c3RvbVBhbGV0dGUpO1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFtvblNlbGVjdCwgY29sb3JVSUNvbmZpZy5jdXN0b21QYWxldHRlLCB0aXBweUluc3RhbmNlLCBzY2FsZVR5cGVdKTtcblxuICAgIGNvbnN0IG9uQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaGlkZVRpcHB5KHRpcHB5SW5zdGFuY2UpO1xuICAgIH0sIFt0aXBweUluc3RhbmNlXSk7XG5cbiAgICBjb25zdCBpc0N1c3RvbUJyZWFrcyA9XG4gICAgICBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbSB8fCBzY2FsZVR5cGUgPT09IFNDQUxFX1RZUEVTLmN1c3RvbU9yZGluYWw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duUHJvcENvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICBzZXRDb2xvclVJLFxuICAgICAgICAgIGNvbG9yRmllbGQ6IGZpZWxkLFxuICAgICAgICAgIGRhdGFzZXQsXG4gICAgICAgICAgY29sb3JVSUNvbmZpZyxcbiAgICAgICAgICBjb2xvckJyZWFrcyxcbiAgICAgICAgICBpc0N1c3RvbUJyZWFrcyxcbiAgICAgICAgICBhbGxCaW5zLFxuICAgICAgICAgIGZpbHRlcmVkQmlucyxcbiAgICAgICAgICBpc0ZpbHRlcmVkLFxuICAgICAgICAgIGhpc3RvZ3JhbURvbWFpbixcbiAgICAgICAgICBvcmRpbmFsRG9tYWluLFxuICAgICAgICAgIG9uU2NhbGVDaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgICAgIG9uQXBwbHksXG4gICAgICAgICAgb25DYW5jZWxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZENvbG9yU2NhbGVTZWxlY3Rvcj5cbiAgICAgICAgICA8TGF6eVRpcHB5XG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwicGFyZW50XCJcbiAgICAgICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAgICAgaGlkZU9uQ2xpY2s9eyFpc0VkaXRpbmdDb2xvckJyZWFrc31cbiAgICAgICAgICAgIG9uQ3JlYXRlPXtzZXRUaXBweUluc3RhbmNlfVxuICAgICAgICAgICAgcG9wcGVyT3B0aW9ucz17UE9QUEVSX09QVElPTlN9XG4gICAgICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICAgICAgPERyb3Bkb3duV3JhcHBlciB7Li4uYXR0cnN9PlxuICAgICAgICAgICAgICAgIHsvKiBAdHMtaWdub3JlKi99XG4gICAgICAgICAgICAgICAgeyFkcm9wZG93blNlbGVjdFByb3BzLmRpc2FibGVkICYmIChcbiAgICAgICAgICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9e2dldE9wdGlvblZhbHVlfVxuICAgICAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXtvblNlbGVjdFNjYWxlfVxuICAgICAgICAgICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXtDb2xvclNjYWxlU2VsZWN0RHJvcGRvd259XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duV3JhcHBlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93bi1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgey8qIEB0cy1pZ25vcmUqL31cbiAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0XG4gICAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17ZGlzcGxheU9wdGlvbn1cbiAgICAgICAgICAgICAgICB2YWx1ZT17ZHJvcGRvd25TZWxlY3RQcm9wcy5zZWxlY3RlZEl0ZW1zWzBdfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9MYXp5VGlwcHk+XG4gICAgICAgIDwvU3R5bGVkQ29sb3JTY2FsZVNlbGVjdG9yPlxuICAgICAgPC9Ecm9wZG93blByb3BDb250ZXh0LlByb3ZpZGVyPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBDb2xvclNjYWxlU2VsZWN0b3I7XG59XG5leHBvcnQgZGVmYXVsdCBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBSUEsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBV0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUE2RCxJQUFBVyxTQUFBO0VBQUFDLFVBQUE7QUFBQSxJQUFBQyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBM0I3RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFuQix3QkFBQW1CLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFB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
|