@carto/kepler.gl 0.0.83 → 0.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/action-wrapper.d.ts +1 -6
- package/dist/actions/action-wrapper.js +3 -3
- package/dist/components/common/checkbox.js +4 -4
- package/dist/components/common/data-table/grid.js +3 -3
- package/dist/components/common/data-table/index.d.ts +1 -2
- package/dist/components/common/data-table/index.js +6 -6
- package/dist/components/common/item-selector/item-selector.js +3 -3
- package/dist/components/common/portaled.js +6 -6
- package/dist/components/common/time-range-slider.js +3 -3
- package/dist/components/container.js +4 -4
- package/dist/components/editor/editor.js +6 -6
- package/dist/components/editor/feature-styles.js +3 -3
- package/dist/components/editor/handle-style.js +3 -3
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +4 -4
- package/dist/components/modal-container.js +3 -3
- package/dist/components/modals/image-modal-container.js +4 -4
- package/dist/components/modals/load-data-modal.js +3 -3
- package/dist/components/plot-container.js +3 -3
- package/dist/components/side-panel/filter-panel/filter-panel.js +3 -3
- package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +1 -4
- package/dist/components/side-panel/layer-panel/color-range-selector.js +4 -4
- package/dist/components/side-panel.js +3 -3
- package/dist/constants/default-settings.js +2 -2
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +3 -3
- package/dist/layers/aggregation-layer.js +4 -4
- package/dist/layers/geojson-layer/geojson-layer.js +3 -3
- package/dist/layers/heatmap-layer/heatmap-layer.js +3 -3
- package/dist/layers/layer-text-label.js +1 -1
- package/dist/layers/trip-layer/trip-layer.js +5 -5
- package/dist/reducers/map-style-updaters.d.ts +1 -10
- package/dist/reducers/map-style-updaters.js +3 -3
- package/dist/reducers/vis-state-merger.js +6 -6
- package/dist/reducers/vis-state-updaters.js +13 -13
- package/dist/schemas/dataset-schema.d.ts +1 -1
- package/dist/schemas/dataset-schema.js +4 -4
- package/dist/schemas/vis-state-schema.js +7 -7
- package/dist/utils/dataset-utils.js +3 -3
- package/dist/utils/export-utils.js +3 -3
- package/dist/utils/filter-utils.js +7 -7
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +3 -18
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +6 -6
- package/dist/utils/observe-dimensions.js +3 -3
- package/dist/utils/split-map-utils.js +3 -3
- package/package.json +3 -26
- package/src/actions/action-wrapper.ts +1 -1
- package/src/components/common/checkbox.tsx +1 -1
- package/src/components/common/data-table/grid.tsx +1 -1
- package/src/components/common/data-table/index.tsx +2 -2
- package/src/components/common/item-selector/item-selector.tsx +1 -1
- package/src/components/common/portaled.tsx +2 -2
- package/src/components/common/time-range-slider.tsx +1 -1
- package/src/components/container.tsx +1 -1
- package/src/components/editor/editor.tsx +1 -1
- package/src/components/editor/feature-styles.ts +1 -1
- package/src/components/editor/handle-style.ts +1 -1
- package/src/components/filters/filter-panels/polygon-filter-panel.tsx +1 -1
- package/src/components/modal-container.tsx +1 -1
- package/src/components/modals/image-modal-container.tsx +1 -1
- package/src/components/modals/load-data-modal.tsx +1 -1
- package/src/components/plot-container.tsx +1 -1
- package/src/components/side-panel/filter-panel/filter-panel.tsx +1 -1
- package/src/components/side-panel/layer-panel/color-range-selector.tsx +1 -1
- package/src/components/side-panel.tsx +1 -1
- package/src/deckgl-layers/layer-utils/cluster-utils.ts +1 -1
- package/src/layers/aggregation-layer.ts +1 -1
- package/src/layers/geojson-layer/geojson-layer.ts +1 -1
- package/src/layers/heatmap-layer/heatmap-layer.ts +1 -1
- package/src/layers/layer-text-label.ts +1 -1
- package/src/layers/trip-layer/trip-layer.ts +2 -2
- package/src/reducers/map-style-updaters.ts +1 -1
- package/src/reducers/vis-state-merger.ts +3 -3
- package/src/reducers/vis-state-updaters.ts +4 -4
- package/src/schemas/dataset-schema.ts +1 -1
- package/src/schemas/vis-state-schema.ts +2 -2
- package/src/utils/dataset-utils.ts +1 -1
- package/src/utils/export-utils.ts +1 -1
- package/src/utils/filter-utils.ts +2 -2
- package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +2 -2
- package/src/utils/observe-dimensions.ts +1 -1
- package/src/utils/split-map-utils.ts +1 -1
|
@@ -13,7 +13,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
13
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
14
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
15
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
-
var
|
|
16
|
+
var _memoize = _interopRequireDefault(require("lodash/memoize"));
|
|
17
17
|
var _baseLayer = _interopRequireDefault(require("./base-layer"));
|
|
18
18
|
var _layerUtils = require("../utils/layer-utils");
|
|
19
19
|
var _colorUtils = require("../utils/color-utils");
|
|
@@ -97,8 +97,8 @@ var AggregationLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
|
|
|
97
97
|
_this.getPositionAccessor = function (dataContainer) {
|
|
98
98
|
return pointPosAccessor(_this.config.columns)(dataContainer);
|
|
99
99
|
};
|
|
100
|
-
_this.getColorRange = (0,
|
|
101
|
-
_this.getColorDomain = (0,
|
|
100
|
+
_this.getColorRange = (0, _memoize["default"])(getLayerColorRange);
|
|
101
|
+
_this.getColorDomain = (0, _memoize["default"])(getLayerColorDomain);
|
|
102
102
|
return _this;
|
|
103
103
|
}
|
|
104
104
|
(0, _inherits2["default"])(AggregationLayer, _Layer);
|
|
@@ -389,4 +389,4 @@ var AggregationLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
|
|
|
389
389
|
}
|
|
390
390
|
}]);
|
|
391
391
|
}(_baseLayer["default"]);
|
|
392
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYmFzZUxheWVyIiwiX2xheWVyVXRpbHMiLCJfY29sb3JVdGlscyIsIl9hZ2dyZWdhdGVVdGlscyIsIl9kZWZhdWx0U2V0dGluZ3MiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJwb2ludFBvc0FjY2Vzc29yIiwiZXhwb3J0cyIsIl9yZWYiLCJsYXQiLCJsbmciLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsInBvaW50UG9zUmVzb2x2ZXIiLCJfcmVmMiIsImNvbmNhdCIsImdldFZhbHVlQWdnckZ1bmMiLCJmaWVsZCIsImFnZ3JlZ2F0aW9uIiwicG9pbnRzIiwiYWdncmVnYXRlIiwibWFwIiwidmFsdWVBY2Nlc3NvciIsInNvdXJjZSIsImdldEZpbHRlckRhdGFGdW5jIiwiZmlsdGVyUmFuZ2UiLCJnZXRGaWx0ZXJWYWx1ZSIsInB0IiwiZXZlcnkiLCJ2YWwiLCJpIiwiZ2V0TGF5ZXJDb2xvclJhbmdlIiwiY29sb3JSYW5nZSIsImNvbG9yTWFwIiwiY01hcCIsImhleFRvUmdiIiwiY29sb3JzIiwiZ2V0TGF5ZXJDb2xvckRvbWFpbiIsImNvbG9yRG9tYWluIiwiYWdncmVnYXRlUmVxdWlyZWRDb2x1bW5zIiwiQWdncmVnYXRpb25MYXllciIsIl9MYXllciIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiZ2V0UG9zaXRpb25BY2Nlc3NvciIsImRhdGFDb250YWluZXIiLCJjb25maWciLCJjb2x1bW5zIiwiZ2V0Q29sb3JSYW5nZSIsIm1lbW9pemUiLCJnZXRDb2xvckRvbWFpbiIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiZ2V0IiwiZGVmYXVsdFBvaW50Q29sdW1uUGFpcnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiY29sb3IiLCJjaGFubmVsU2NhbGVUeXBlIiwiQ0hBTk5FTF9TQ0FMRVMiLCJjb2xvckFnZ3IiLCJkZWZhdWx0TWVhc3VyZSIsImRvbWFpbiIsInByb3BlcnR5IiwicmFuZ2UiLCJzY2FsZSIsInNpemUiLCJzaXplQWdnciIsImNvbmRpdGlvbiIsInZpc0NvbmZpZyIsImVuYWJsZTNkIiwidmFsdWUiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJjaGFubmVsIiwidmlzdWFsQ2hhbm5lbHMiLCJsYWJlbCIsIm1lYXN1cmUiLCJmaWVsZENvbmZpZyIsInZpc0NvbmZpZ1NldHRpbmdzIiwiZGlzcGxheU5hbWUiLCJuYW1lIiwiZ2V0SG92ZXJEYXRhIiwib2JqZWN0IiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwiX3JlZjMiLCJ2YWxpZGF0ZVZpc3VhbENoYW5uZWwiLCJ2YWxpZGF0ZUZpZWxkVHlwZSIsInZhbGlkYXRlQWdncmVnYXRpb25UeXBlIiwidmFsaWRhdGVTY2FsZSIsInZpc3VhbENoYW5uZWwiLCJhZ2dyZWdhdGlvbk9wdGlvbnMiLCJnZXRBZ2dyZWdhdGlvbk9wdGlvbnMiLCJ1cGRhdGVMYXllckNvbmZpZyIsImluY2x1ZGVzIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJGSUVMRF9PUFRTIiwidHlwZSIsIkRFRkFVTFRfQUdHUkVHQVRJT04iLCJnZXRTY2FsZU9wdGlvbnMiLCJhZ2dyZWdhdGlvblR5cGUiLCJ1cGRhdGVMYXllckRvbWFpbiIsImRhdGFzZXRzIiwibmV3RmlsdGVyIiwidXBkYXRlTGF5ZXJNZXRhIiwiZ2V0UG9zaXRpb24iLCJib3VuZHMiLCJnZXRQb2ludHNCb3VuZHMiLCJ1cGRhdGVNZXRhIiwiY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSIsIl9yZWY0IiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJwb3MiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImZvcm1hdExheWVyRGF0YSIsIm9sZExheWVyRGF0YSIsImRhdGFJZCIsIl9kYXRhc2V0cyR0aGlzJGNvbmZpZyIsImdwdUZpbHRlciIsImdldENvbG9yVmFsdWUiLCJjb2xvckZpZWxkIiwiY29sb3JBZ2dyZWdhdGlvbiIsImdldEVsZXZhdGlvblZhbHVlIiwic2l6ZUZpZWxkIiwic2l6ZUFnZ3JlZ2F0aW9uIiwiaGFzRmlsdGVyIiwidmFsdWVzIiwic29tZSIsImFyciIsInYiLCJmaWx0ZXJWYWx1ZUFjY2Vzc29yIiwiZmlsdGVyRGF0YSIsInVuZGVmaW5lZCIsIl90aGlzJHVwZGF0ZURhdGEiLCJ1cGRhdGVEYXRhIiwiX2ZpbHRlckRhdGEiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJvcHRzIiwiYmFzZVByb3AiLCJtYXNrRXh0ZW5zaW9uUHJvcHMiLCJnZXRNYXNrRXh0ZW5zaW9uUHJvcHMiLCJtYXNrUG9seWdvbiIsImhpZ2hsaWdodENvbG9yIiwiSElHSExJR0hfQ09MT1JfM0QiLCJleHRlbnNpb25zIiwiYXV0b0hpZ2hsaWdodCIsImdldERlZmF1bHRBZ2dyZWdhdGlvbkxheWVyUHJvcCIsIl9vcHRzJGxheWVyQ2FsbGJhY2tzIiwibGF5ZXJDYWxsYmFja3MiLCJ1cGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJjb3ZlcmFnZSIsImNvbG9yU2NhbGVUeXBlIiwiY29sb3JTY2FsZSIsInVwcGVyUGVyY2VudGlsZSIsInBlcmNlbnRpbGUiLCJsb3dlclBlcmNlbnRpbGUiLCJleHRydWRlZCIsImVsZXZhdGlvblNjYWxlIiwiZWxldmF0aW9uU2NhbGVUeXBlIiwic2l6ZVNjYWxlIiwiZWxldmF0aW9uUmFuZ2UiLCJzaXplUmFuZ2UiLCJlbGV2YXRpb25Mb3dlclBlcmNlbnRpbGUiLCJlbGV2YXRpb25QZXJjZW50aWxlIiwiZWxldmF0aW9uVXBwZXJQZXJjZW50aWxlIiwib25TZXRDb2xvckRvbWFpbiIsIm9uU2V0TGF5ZXJEb21haW4iLCJMYXllciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvYWdncmVnYXRpb24tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IG1lbW9pemUgZnJvbSAnbG9kYXNoLm1lbW9pemUnO1xuaW1wb3J0IExheWVyLCB7XG4gIExheWVyQmFzZUNvbmZpZyxcbiAgTGF5ZXJDb2xvckNvbmZpZyxcbiAgTGF5ZXJDb2x1bW4sXG4gIExheWVyU2l6ZUNvbmZpZyxcbiAgVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uLFxuICBWaXN1YWxDaGFubmVsc1xufSBmcm9tICcuL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtnZXRNYXNrRXh0ZW5zaW9uUHJvcHN9IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcbmltcG9ydCB7aGV4VG9SZ2J9IGZyb20gJy4uL3V0aWxzL2NvbG9yLXV0aWxzJztcbmltcG9ydCB7YWdncmVnYXRlfSBmcm9tICcuLi91dGlscy9hZ2dyZWdhdGUtdXRpbHMnO1xuaW1wb3J0IHtcbiAgSElHSExJR0hfQ09MT1JfM0QsXG4gIENIQU5ORUxfU0NBTEVTLFxuICBGSUVMRF9PUFRTLFxuICBERUZBVUxUX0FHR1JFR0FUSU9OXG59IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7RGF0YXNldHMsIE1lcmdlfSBmcm9tICcuLi9yZWR1Y2Vycyc7XG5pbXBvcnQge0NvbG9yUmFuZ2V9IGZyb20gJy4uL2NvbnN0YW50cy9jb2xvci1yYW5nZXMnO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnLi4vdXRpbHMnO1xuXG50eXBlIEFnZ3JlZ2F0aW9uTGF5ZXJDb2x1bW5zID0ge1xuICBsYXQ6IExheWVyQ29sdW1uO1xuICBsbmc6IExheWVyQ29sdW1uO1xufTtcblxuZXhwb3J0IHR5cGUgQWdncmVnYXRpb25MYXllckRhdGEgPSB7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRQb3NBY2Nlc3NvciA9ICh7bGF0LCBsbmd9OiBBZ2dyZWdhdGlvbkxheWVyQ29sdW1ucykgPT4gZGMgPT4gZCA9PiBbXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbG5nLmZpZWxkSWR4KSxcbiAgZGMudmFsdWVBdChkLmluZGV4LCBsYXQuZmllbGRJZHgpXG5dO1xuXG5leHBvcnQgY29uc3QgcG9pbnRQb3NSZXNvbHZlciA9ICh7bGF0LCBsbmd9OiBBZ2dyZWdhdGlvbkxheWVyQ29sdW1ucykgPT5cbiAgYCR7bGF0LmZpZWxkSWR4fS0ke2xuZy5maWVsZElkeH1gO1xuXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVBZ2dyRnVuYyA9IChmaWVsZCwgYWdncmVnYXRpb24pID0+IHtcbiAgcmV0dXJuIHBvaW50cyA9PiB7XG4gICAgcmV0dXJuIGZpZWxkXG4gICAgICA/IGFnZ3JlZ2F0ZShcbiAgICAgICAgICBwb2ludHMubWFwKHAgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnZhbHVlQWNjZXNzb3IocC5zb3VyY2UgPyBwLnNvdXJjZSA6IHApO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uXG4gICAgICAgIClcbiAgICAgIDogcG9pbnRzLmxlbmd0aDtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJEYXRhRnVuYyA9IChmaWx0ZXJSYW5nZSwgZ2V0RmlsdGVyVmFsdWUpID0+IHB0ID0+XG4gIGdldEZpbHRlclZhbHVlKHB0KS5ldmVyeSgodmFsLCBpKSA9PiB2YWwgPj0gZmlsdGVyUmFuZ2VbaV1bMF0gJiYgdmFsIDw9IGZpbHRlclJhbmdlW2ldWzFdKTtcblxuY29uc3QgZ2V0TGF5ZXJDb2xvclJhbmdlID0gKGNvbG9yUmFuZ2U6IENvbG9yUmFuZ2UpID0+IHtcbiAgY29uc3Qge2NvbG9yTWFwfSA9IGNvbG9yUmFuZ2U7XG5cbiAgaWYgKGNvbG9yTWFwKSB7XG4gICAgcmV0dXJuIGNvbG9yTWFwLm1hcChjTWFwID0+IGhleFRvUmdiKGNNYXBbMV0pKTtcbiAgfVxuICByZXR1cm4gY29sb3JSYW5nZS5jb2xvcnMubWFwKGhleFRvUmdiKTtcbn07XG5cbmNvbnN0IGdldExheWVyQ29sb3JEb21haW4gPSAoY29sb3JEb21haW46IENvbG9yUmFuZ2UpID0+IHtcbiAgY29uc3Qge2NvbG9yTWFwfSA9IGNvbG9yRG9tYWluO1xuXG4gIGlmIChjb2xvck1hcCkge1xuICAgIHJldHVybiBjb2xvck1hcC5tYXAoY01hcCA9PiBjTWFwWzBdKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZ2dyZWdhdGVSZXF1aXJlZENvbHVtbnM6IFsnbGF0JywgJ2xuZyddID0gWydsYXQnLCAnbG5nJ107XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnID0gTGF5ZXJDb2xvckNvbmZpZyAmIExheWVyU2l6ZUNvbmZpZztcbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uTGF5ZXJDb25maWcgPSBNZXJnZTxMYXllckJhc2VDb25maWcsIHtjb2x1bW5zOiBBZ2dyZWdhdGlvbkxheWVyQ29sdW1uc30+ICZcbiAgQWdncmVnYXRpb25MYXllclZpc3VhbENoYW5uZWxDb25maWc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZ2dyZWdhdGlvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBnZXRDb2xvclJhbmdlOiBhbnk7XG4gIGRlY2xhcmUgY29uZmlnOiBBZ2dyZWdhdGlvbkxheWVyQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3BzPzoge1xuICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgfSAmIFBhcnRpYWw8TGF5ZXJCYXNlQ29uZmlnPlxuICApIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IgPSBkYXRhQ29udGFpbmVyID0+XG4gICAgICBwb2ludFBvc0FjY2Vzc29yKHRoaXMuY29uZmlnLmNvbHVtbnMpKGRhdGFDb250YWluZXIpO1xuICAgIHRoaXMuZ2V0Q29sb3JSYW5nZSA9IG1lbW9pemUoZ2V0TGF5ZXJDb2xvclJhbmdlKTtcbiAgICAodGhpcyBhcyBhbnkpLmdldENvbG9yRG9tYWluID0gbWVtb2l6ZShnZXRMYXllckNvbG9yRG9tYWluKTtcbiAgfVxuXG4gIGdldCBpc0FnZ3JlZ2F0ZWQoKTogdHJ1ZSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGFnZ3JlZ2F0ZVJlcXVpcmVkQ29sdW1ucztcbiAgfVxuXG4gIGdldCBjb2x1bW5QYWlycygpIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9pbnRDb2x1bW5QYWlycztcbiAgfVxuXG4gIGdldCBub25lTGF5ZXJEYXRhQWZmZWN0aW5nUHJvcHMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLm5vbmVMYXllckRhdGFBZmZlY3RpbmdQcm9wcyxcbiAgICAgICdlbmFibGUzZCcsXG4gICAgICAnY29sb3JSYW5nZScsXG4gICAgICAnY29sb3JEb21haW4nLFxuICAgICAgJ3NpemVSYW5nZScsXG4gICAgICAnc2l6ZVNjYWxlJyxcbiAgICAgICdzaXplRG9tYWluJyxcbiAgICAgICdwZXJjZW50aWxlJyxcbiAgICAgICdjb3ZlcmFnZScsXG4gICAgICAnZWxldmF0aW9uUGVyY2VudGlsZScsXG4gICAgICAnZWxldmF0aW9uU2NhbGUnLFxuICAgICAgJ2VuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InXG4gICAgXTtcbiAgfVxuXG4gIGdldCB2aXN1YWxDaGFubmVscygpOiBWaXN1YWxDaGFubmVscyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIGFnZ3JlZ2F0aW9uOiAnY29sb3JBZ2dyZWdhdGlvbicsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncixcbiAgICAgICAgZGVmYXVsdE1lYXN1cmU6ICdwcm9wZXJ0eS5wb2ludENvdW50JyxcbiAgICAgICAgZG9tYWluOiAnY29sb3JEb21haW4nLFxuICAgICAgICBmaWVsZDogJ2NvbG9yRmllbGQnLFxuICAgICAgICBrZXk6ICdjb2xvcicsXG4gICAgICAgIHByb3BlcnR5OiAnY29sb3InLFxuICAgICAgICByYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICAgICAgICBzY2FsZTogJ2NvbG9yU2NhbGUnXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBhZ2dyZWdhdGlvbjogJ3NpemVBZ2dyZWdhdGlvbicsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLnNpemVBZ2dyLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLmVuYWJsZTNkLFxuICAgICAgICBkZWZhdWx0TWVhc3VyZTogJ3Byb3BlcnR5LnBvaW50Q291bnQnLFxuICAgICAgICBkb21haW46ICdzaXplRG9tYWluJyxcbiAgICAgICAgZmllbGQ6ICdzaXplRmllbGQnLFxuICAgICAgICBrZXk6ICdzaXplJyxcbiAgICAgICAgcHJvcGVydHk6ICdoZWlnaHQnLFxuICAgICAgICByYW5nZTogJ3NpemVSYW5nZScsXG4gICAgICAgIHNjYWxlOiAnc2l6ZVNjYWxlJ1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZXNjcmlwdGlvbiBvZiBhIHZpc3VhbENoYW5uZWwgY29uZmlnXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihrZXk6IHN0cmluZyk6IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgY2hhbm5lbCA9IHRoaXMudmlzdWFsQ2hhbm5lbHNba2V5XTtcbiAgICBpZiAoIWNoYW5uZWwpIHJldHVybiB7bGFiZWw6ICcnLCBtZWFzdXJlOiAnJ307XG4gICAgLy8gZS5nLiBsYWJlbDogQ29sb3IsIG1lYXN1cmU6IEF2ZXJhZ2Ugb2YgRVRBXG4gICAgY29uc3Qge3JhbmdlLCBmaWVsZCwgZGVmYXVsdE1lYXN1cmUsIGFnZ3JlZ2F0aW9ufSA9IGNoYW5uZWw7XG4gICAgY29uc3QgZmllbGRDb25maWcgPSB0aGlzLmNvbmZpZ1tmaWVsZF07XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnZpc0NvbmZpZ1NldHRpbmdzW3JhbmdlXS5sYWJlbDtcblxuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogdHlwZW9mIGxhYmVsID09PSAnZnVuY3Rpb24nID8gbGFiZWwodGhpcy5jb25maWcpIDogbGFiZWwsXG4gICAgICBtZWFzdXJlOlxuICAgICAgICBmaWVsZENvbmZpZyAmJiBhZ2dyZWdhdGlvblxuICAgICAgICAgID8gYCR7dGhpcy5jb25maWcudmlzQ29uZmlnW2FnZ3JlZ2F0aW9uXX0gb2YgJHtmaWVsZENvbmZpZy5kaXNwbGF5TmFtZSB8fFxuICAgICAgICAgICAgICBmaWVsZENvbmZpZy5uYW1lfWBcbiAgICAgICAgICA6IGRlZmF1bHRNZWFzdXJlXG4gICAgfTtcbiAgfVxuXG4gIGdldEhvdmVyRGF0YShvYmplY3QpIHtcbiAgICAvLyByZXR1cm4gYWdncmVnYXRlZCBvYmplY3RcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEFnZ3JlZ2F0aW9uIGxheWVyIGhhbmRsZXMgdmlzdWFsIGNoYW5uZWwgYWdncmVnYXRpb24gaW5zaWRlIGRlY2suZ2wgbGF5ZXJcbiAgICovXG4gIHVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbCh7ZGF0YUNvbnRhaW5lcn0sIGNoYW5uZWwpIHtcbiAgICB0aGlzLnZhbGlkYXRlVmlzdWFsQ2hhbm5lbChjaGFubmVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhZ2dyZWdhdGlvbiB0eXBlIG9uIHRvcCBvZiBiYXNpYyBsYXllciB2aXN1YWwgY2hhbm5lbCB2YWxpZGF0aW9uXG4gICAqIEBwYXJhbSBjaGFubmVsXG4gICAqL1xuICB2YWxpZGF0ZVZpc3VhbENoYW5uZWwoY2hhbm5lbCkge1xuICAgIC8vIGZpZWxkIHR5cGUgZGVjaWRlcyBhZ2dyZWdhdGlvbiB0eXBlIGRlY2lkZXMgc2NhbGUgdHlwZVxuICAgIHRoaXMudmFsaWRhdGVGaWVsZFR5cGUoY2hhbm5lbCk7XG4gICAgdGhpcy52YWxpZGF0ZUFnZ3JlZ2F0aW9uVHlwZShjaGFubmVsKTtcbiAgICB0aGlzLnZhbGlkYXRlU2NhbGUoY2hhbm5lbCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYWdncmVnYXRpb24gdHlwZSBiYXNlZCBvbiBzZWxlY3RlZCBmaWVsZFxuICAgKi9cbiAgdmFsaWRhdGVBZ2dyZWdhdGlvblR5cGUoY2hhbm5lbCkge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWwgPSB0aGlzLnZpc3VhbENoYW5uZWxzW2NoYW5uZWxdO1xuICAgIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb259ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBhZ2dyZWdhdGlvbk9wdGlvbnMgPSB0aGlzLmdldEFnZ3JlZ2F0aW9uT3B0aW9ucyhjaGFubmVsKTtcblxuICAgIGlmICghYWdncmVnYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWFnZ3JlZ2F0aW9uT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIGZpZWxkIGNhbm5vdCBiZSBhZ2dyZWdhdGVkLCBzZXQgZmllbGQgdG8gbnVsbFxuICAgICAgdGhpcy51cGRhdGVMYXllckNvbmZpZyh7W2ZpZWxkXTogbnVsbH0pO1xuICAgIH0gZWxzZSBpZiAoIWFnZ3JlZ2F0aW9uT3B0aW9ucy5pbmNsdWRlcyh0aGlzLmNvbmZpZy52aXNDb25maWdbYWdncmVnYXRpb25dKSkge1xuICAgICAgLy8gY3VycmVudCBhZ2dyZWdhdGlvbiB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBmaWVsZFxuICAgICAgLy8gc2V0IGFnZ3JlZ2F0aW9uIHRvIHRoZSBmaXJzdCBzdXBwb3J0ZWQgb3B0aW9uXG4gICAgICB0aGlzLnVwZGF0ZUxheWVyVmlzQ29uZmlnKHtbYWdncmVnYXRpb25dOiBhZ2dyZWdhdGlvbk9wdGlvbnNbMF19KTtcbiAgICB9XG4gIH1cblxuICBnZXRBZ2dyZWdhdGlvbk9wdGlvbnMoY2hhbm5lbCkge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWwgPSB0aGlzLnZpc3VhbENoYW5uZWxzW2NoYW5uZWxdO1xuICAgIGNvbnN0IHtmaWVsZCwgY2hhbm5lbFNjYWxlVHlwZX0gPSB2aXN1YWxDaGFubmVsO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFxuICAgICAgdGhpcy5jb25maWdbZmllbGRdXG4gICAgICAgID8gRklFTERfT1BUU1t0aGlzLmNvbmZpZ1tmaWVsZF0udHlwZV0uc2NhbGVbY2hhbm5lbFNjYWxlVHlwZV1cbiAgICAgICAgOiBERUZBVUxUX0FHR1JFR0FUSU9OW2NoYW5uZWxTY2FsZVR5cGVdXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2NhbGUgb3B0aW9ucyBiYXNlZCBvbiBjdXJyZW50IGZpZWxkIGFuZCBhZ2dyZWdhdGlvbiB0eXBlXG4gICAqIEBwYXJhbSBjaGFubmVsXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRTY2FsZU9wdGlvbnMoY2hhbm5lbDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWwgPSB0aGlzLnZpc3VhbENoYW5uZWxzW2NoYW5uZWxdO1xuICAgIGNvbnN0IHtmaWVsZCwgYWdncmVnYXRpb24sIGNoYW5uZWxTY2FsZVR5cGV9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBhZ2dyZWdhdGlvblR5cGUgPSBhZ2dyZWdhdGlvbiA/IHRoaXMuY29uZmlnLnZpc0NvbmZpZ1thZ2dyZWdhdGlvbl0gOiBudWxsO1xuXG4gICAgaWYgKCFhZ2dyZWdhdGlvblR5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWdbZmllbGRdXG4gICAgICA/IC8vIHNjYWxlIG9wdGlvbnMgYmFzZWQgb24gYWdncmVnYXRpb25cbiAgICAgICAgRklFTERfT1BUU1t0aGlzLmNvbmZpZ1tmaWVsZF0udHlwZV0uc2NhbGVbY2hhbm5lbFNjYWxlVHlwZV1bYWdncmVnYXRpb25UeXBlXVxuICAgICAgOiAvLyBkZWZhdWx0IHNjYWxlIG9wdGlvbnMgZm9yIHBvaW50IGNvdW50XG4gICAgICAgIERFRkFVTFRfQUdHUkVHQVRJT05bY2hhbm5lbFNjYWxlVHlwZV1bYWdncmVnYXRpb25UeXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ2dyZWdhdGlvbiBsYXllciBoYW5kbGVzIHZpc3VhbCBjaGFubmVsIGFnZ3JlZ2F0aW9uIGluc2lkZSBkZWNrLmdsIGxheWVyXG4gICAqL1xuICB1cGRhdGVMYXllckRvbWFpbihkYXRhc2V0cywgbmV3RmlsdGVyKTogQWdncmVnYXRpb25MYXllciB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lciwgZ2V0UG9zaXRpb24pIHtcbiAgICAvLyBnZXQgYm91bmRzIGZyb20gcG9pbnRzXG4gICAgY29uc3QgYm91bmRzID0gdGhpcy5nZXRQb2ludHNCb3VuZHMoZGF0YUNvbnRhaW5lciwgZ2V0UG9zaXRpb24pO1xuXG4gICAgdGhpcy51cGRhdGVNZXRhKHtib3VuZHN9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUoe2RhdGFDb250YWluZXIsIGZpbHRlcmVkSW5kZXh9OiBLZXBsZXJUYWJsZSwgZ2V0UG9zaXRpb24pIHtcbiAgICBjb25zdCBkYXRhOiBBZ2dyZWdhdGlvbkxheWVyRGF0YVtdID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbHRlcmVkSW5kZXgubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmlsdGVyZWRJbmRleFtpXTtcbiAgICAgIGNvbnN0IHBvcyA9IGdldFBvc2l0aW9uKHtpbmRleH0pO1xuXG4gICAgICAvLyBpZiBkb2Vzbid0IGhhdmUgcG9pbnQgbGF0IG9yIGxuZywgZG8gbm90IGFkZCB0aGUgcG9pbnRcbiAgICAgIC8vIGRlY2suZ2wgY2FuJ3QgaGFuZGxlIHBvc2l0aW9uID0gbnVsbFxuICAgICAgaWYgKHBvcy5ldmVyeShOdW1iZXIuaXNGaW5pdGUpKSB7XG4gICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgaW5kZXhcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBmb3JtYXRMYXllckRhdGEoZGF0YXNldHM6IERhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YUlkID09PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcblxuICAgIGNvbnN0IGdldENvbG9yVmFsdWUgPSBnZXRWYWx1ZUFnZ3JGdW5jKFxuICAgICAgdGhpcy5jb25maWcuY29sb3JGaWVsZCxcbiAgICAgIHRoaXMuY29uZmlnLnZpc0NvbmZpZy5jb2xvckFnZ3JlZ2F0aW9uXG4gICAgKTtcblxuICAgIGNvbnN0IGdldEVsZXZhdGlvblZhbHVlID0gZ2V0VmFsdWVBZ2dyRnVuYyhcbiAgICAgIHRoaXMuY29uZmlnLnNpemVGaWVsZCxcbiAgICAgIHRoaXMuY29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb25cbiAgICApO1xuICAgIGNvbnN0IGhhc0ZpbHRlciA9IE9iamVjdC52YWx1ZXMoZ3B1RmlsdGVyLmZpbHRlclJhbmdlKS5zb21lKGFyciA9PiBhcnIuc29tZSh2ID0+IHYgIT09IDApKTtcblxuICAgIGNvbnN0IGdldEZpbHRlclZhbHVlID0gZ3B1RmlsdGVyLmZpbHRlclZhbHVlQWNjZXNzb3IoZGF0YUNvbnRhaW5lcikoKTtcbiAgICBjb25zdCBmaWx0ZXJEYXRhID0gaGFzRmlsdGVyXG4gICAgICA/IGdldEZpbHRlckRhdGFGdW5jKGdwdUZpbHRlci5maWx0ZXJSYW5nZSwgZ2V0RmlsdGVyVmFsdWUpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMudXBkYXRlRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZ2V0UG9zaXRpb24sXG4gICAgICBfZmlsdGVyRGF0YTogZmlsdGVyRGF0YSxcbiAgICAgIC4uLihnZXRDb2xvclZhbHVlID8ge2dldENvbG9yVmFsdWV9IDoge30pLFxuICAgICAgLi4uKGdldEVsZXZhdGlvblZhbHVlID8ge2dldEVsZXZhdGlvblZhbHVlfSA6IHt9KVxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk6IGFueSB7XG4gICAgY29uc3QgYmFzZVByb3AgPSBzdXBlci5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgbWFza0V4dGVuc2lvblByb3BzID0gZ2V0TWFza0V4dGVuc2lvblByb3BzKG9wdHMubWFza1BvbHlnb24pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2VQcm9wLFxuICAgICAgLi4ubWFza0V4dGVuc2lvblByb3BzLFxuICAgICAgaGlnaGxpZ2h0Q29sb3I6IEhJR0hMSUdIX0NPTE9SXzNELFxuICAgICAgLy8gZ3B1IGRhdGEgZmlsdGVyaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYWdncmVnYXRpb24gbGF5ZXJcbiAgICAgIGV4dGVuc2lvbnM6IFsuLi5tYXNrRXh0ZW5zaW9uUHJvcHMuZXh0ZW5zaW9uc10sXG4gICAgICBhdXRvSGlnaGxpZ2h0OiB0aGlzLmNvbmZpZy52aXNDb25maWcuZW5hYmxlM2RcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdEFnZ3JlZ2F0aW9uTGF5ZXJQcm9wKG9wdHMpIHtcbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBsYXllckNhbGxiYWNrcyA9IHt9fSA9IG9wdHM7XG4gICAgY29uc3Qge3Zpc0NvbmZpZ30gPSB0aGlzLmNvbmZpZztcblxuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0ge1xuICAgICAgZ2V0Q29sb3JWYWx1ZToge1xuICAgICAgICBjb2xvckZpZWxkOiB0aGlzLmNvbmZpZy5jb2xvckZpZWxkLFxuICAgICAgICBjb2xvckFnZ3JlZ2F0aW9uOiB0aGlzLmNvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvblxuICAgICAgfSxcbiAgICAgIGdldEVsZXZhdGlvblZhbHVlOiB7XG4gICAgICAgIHNpemVGaWVsZDogdGhpcy5jb25maWcuc2l6ZUZpZWxkLFxuICAgICAgICBzaXplQWdncmVnYXRpb246IHRoaXMuY29uZmlnLnZpc0NvbmZpZy5zaXplQWdncmVnYXRpb25cbiAgICAgIH0sXG4gICAgICBfZmlsdGVyRGF0YToge1xuICAgICAgICBmaWx0ZXJSYW5nZTogZ3B1RmlsdGVyLmZpbHRlclJhbmdlLFxuICAgICAgICAuLi5ncHVGaWx0ZXIuZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2Vyc1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyksXG4gICAgICBjb3ZlcmFnZTogdmlzQ29uZmlnLmNvdmVyYWdlLFxuXG4gICAgICAvLyBjb2xvclxuICAgICAgY29sb3JSYW5nZTogdGhpcy5nZXRDb2xvclJhbmdlKHZpc0NvbmZpZy5jb2xvclJhbmdlKSxcbiAgICAgIGNvbG9yRG9tYWluOiAodGhpcyBhcyBhbnkpLmdldENvbG9yRG9tYWluKHZpc0NvbmZpZy5jb2xvclJhbmdlKSxcbiAgICAgIGNvbG9yU2NhbGVUeXBlOiB0aGlzLmNvbmZpZy5jb2xvclNjYWxlLFxuICAgICAgdXBwZXJQZXJjZW50aWxlOiB2aXNDb25maWcucGVyY2VudGlsZVsxXSxcbiAgICAgIGxvd2VyUGVyY2VudGlsZTogdmlzQ29uZmlnLnBlcmNlbnRpbGVbMF0sXG4gICAgICBjb2xvckFnZ3JlZ2F0aW9uOiB2aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvbixcblxuICAgICAgLy8gZWxldmF0aW9uXG4gICAgICBleHRydWRlZDogdmlzQ29uZmlnLmVuYWJsZTNkLFxuICAgICAgZWxldmF0aW9uU2NhbGU6IHZpc0NvbmZpZy5lbGV2YXRpb25TY2FsZSxcbiAgICAgIGVsZXZhdGlvblNjYWxlVHlwZTogdGhpcy5jb25maWcuc2l6ZVNjYWxlLFxuICAgICAgZWxldmF0aW9uUmFuZ2U6IHZpc0NvbmZpZy5zaXplUmFuZ2UsXG4gICAgICBlbGV2YXRpb25Mb3dlclBlcmNlbnRpbGU6IHZpc0NvbmZpZy5lbGV2YXRpb25QZXJjZW50aWxlWzBdLFxuICAgICAgZWxldmF0aW9uVXBwZXJQZXJjZW50aWxlOiB2aXNDb25maWcuZWxldmF0aW9uUGVyY2VudGlsZVsxXSxcblxuICAgICAgLy8gdXBkYXRlVHJpZ2dlcnNcbiAgICAgIHVwZGF0ZVRyaWdnZXJzLFxuXG4gICAgICAvLyBjYWxsYmFja3NcbiAgICAgIG9uU2V0Q29sb3JEb21haW46IGxheWVyQ2FsbGJhY2tzLm9uU2V0TGF5ZXJEb21haW5cbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFRQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxnQkFBQSxHQUFBTCxPQUFBO0FBS3VDLFNBQUFNLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFB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
|
|
392
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVtb2l6ZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2Jhc2VMYXllciIsIl9sYXllclV0aWxzIiwiX2NvbG9yVXRpbHMiLCJfYWdncmVnYXRlVXRpbHMiLCJfZGVmYXVsdFNldHRpbmdzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwicG9pbnRQb3NBY2Nlc3NvciIsImV4cG9ydHMiLCJfcmVmIiwibGF0IiwibG5nIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludFBvc1Jlc29sdmVyIiwiX3JlZjIiLCJjb25jYXQiLCJnZXRWYWx1ZUFnZ3JGdW5jIiwiZmllbGQiLCJhZ2dyZWdhdGlvbiIsInBvaW50cyIsImFnZ3JlZ2F0ZSIsIm1hcCIsInZhbHVlQWNjZXNzb3IiLCJzb3VyY2UiLCJnZXRGaWx0ZXJEYXRhRnVuYyIsImZpbHRlclJhbmdlIiwiZ2V0RmlsdGVyVmFsdWUiLCJwdCIsImV2ZXJ5IiwidmFsIiwiaSIsImdldExheWVyQ29sb3JSYW5nZSIsImNvbG9yUmFuZ2UiLCJjb2xvck1hcCIsImNNYXAiLCJoZXhUb1JnYiIsImNvbG9ycyIsImdldExheWVyQ29sb3JEb21haW4iLCJjb2xvckRvbWFpbiIsImFnZ3JlZ2F0ZVJlcXVpcmVkQ29sdW1ucyIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJfTGF5ZXIiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwiY29uZmlnIiwiY29sdW1ucyIsImdldENvbG9yUmFuZ2UiLCJtZW1vaXplIiwiZ2V0Q29sb3JEb21haW4iLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsImRlZmF1bHRQb2ludENvbHVtblBhaXJzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImNvbG9yIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiZGVmYXVsdE1lYXN1cmUiLCJkb21haW4iLCJwcm9wZXJ0eSIsInJhbmdlIiwic2NhbGUiLCJzaXplIiwic2l6ZUFnZ3IiLCJjb25kaXRpb24iLCJ2aXNDb25maWciLCJlbmFibGUzZCIsInZhbHVlIiwiZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uIiwiY2hhbm5lbCIsInZpc3VhbENoYW5uZWxzIiwibGFiZWwiLCJtZWFzdXJlIiwiZmllbGRDb25maWciLCJ2aXNDb25maWdTZXR0aW5ncyIsImRpc3BsYXlOYW1lIiwibmFtZSIsImdldEhvdmVyRGF0YSIsIm9iamVjdCIsInVwZGF0ZUxheWVyVmlzdWFsQ2hhbm5lbCIsIl9yZWYzIiwidmFsaWRhdGVWaXN1YWxDaGFubmVsIiwidmFsaWRhdGVGaWVsZFR5cGUiLCJ2YWxpZGF0ZUFnZ3JlZ2F0aW9uVHlwZSIsInZhbGlkYXRlU2NhbGUiLCJ2aXN1YWxDaGFubmVsIiwiYWdncmVnYXRpb25PcHRpb25zIiwiZ2V0QWdncmVnYXRpb25PcHRpb25zIiwidXBkYXRlTGF5ZXJDb25maWciLCJpbmNsdWRlcyIsInVwZGF0ZUxheWVyVmlzQ29uZmlnIiwiRklFTERfT1BUUyIsInR5cGUiLCJERUZBVUxUX0FHR1JFR0FUSU9OIiwiZ2V0U2NhbGVPcHRpb25zIiwiYWdncmVnYXRpb25UeXBlIiwidXBkYXRlTGF5ZXJEb21haW4iLCJkYXRhc2V0cyIsIm5ld0ZpbHRlciIsInVwZGF0ZUxheWVyTWV0YSIsImdldFBvc2l0aW9uIiwiYm91bmRzIiwiZ2V0UG9pbnRzQm91bmRzIiwidXBkYXRlTWV0YSIsImNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUiLCJfcmVmNCIsImZpbHRlcmVkSW5kZXgiLCJkYXRhIiwicG9zIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJmb3JtYXRMYXllckRhdGEiLCJvbGRMYXllckRhdGEiLCJkYXRhSWQiLCJfZGF0YXNldHMkdGhpcyRjb25maWciLCJncHVGaWx0ZXIiLCJnZXRDb2xvclZhbHVlIiwiY29sb3JGaWVsZCIsImNvbG9yQWdncmVnYXRpb24iLCJnZXRFbGV2YXRpb25WYWx1ZSIsInNpemVGaWVsZCIsInNpemVBZ2dyZWdhdGlvbiIsImhhc0ZpbHRlciIsInZhbHVlcyIsInNvbWUiLCJhcnIiLCJ2IiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsImZpbHRlckRhdGEiLCJ1bmRlZmluZWQiLCJfdGhpcyR1cGRhdGVEYXRhIiwidXBkYXRlRGF0YSIsIl9maWx0ZXJEYXRhIiwiZ2V0RGVmYXVsdERlY2tMYXllclByb3BzIiwib3B0cyIsImJhc2VQcm9wIiwibWFza0V4dGVuc2lvblByb3BzIiwiZ2V0TWFza0V4dGVuc2lvblByb3BzIiwibWFza1BvbHlnb24iLCJoaWdobGlnaHRDb2xvciIsIkhJR0hMSUdIX0NPTE9SXzNEIiwiZXh0ZW5zaW9ucyIsImF1dG9IaWdobGlnaHQiLCJnZXREZWZhdWx0QWdncmVnYXRpb25MYXllclByb3AiLCJfb3B0cyRsYXllckNhbGxiYWNrcyIsImxheWVyQ2FsbGJhY2tzIiwidXBkYXRlVHJpZ2dlcnMiLCJmaWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzIiwiY292ZXJhZ2UiLCJjb2xvclNjYWxlVHlwZSIsImNvbG9yU2NhbGUiLCJ1cHBlclBlcmNlbnRpbGUiLCJwZXJjZW50aWxlIiwibG93ZXJQZXJjZW50aWxlIiwiZXh0cnVkZWQiLCJlbGV2YXRpb25TY2FsZSIsImVsZXZhdGlvblNjYWxlVHlwZSIsInNpemVTY2FsZSIsImVsZXZhdGlvblJhbmdlIiwic2l6ZVJhbmdlIiwiZWxldmF0aW9uTG93ZXJQZXJjZW50aWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVsZXZhdGlvblVwcGVyUGVyY2VudGlsZSIsIm9uU2V0Q29sb3JEb21haW4iLCJvblNldExheWVyRG9tYWluIiwiTGF5ZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGF5ZXJzL2FnZ3JlZ2F0aW9uLWxheWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC9tZW1vaXplJztcbmltcG9ydCBMYXllciwge1xuICBMYXllckJhc2VDb25maWcsXG4gIExheWVyQ29sb3JDb25maWcsXG4gIExheWVyQ29sdW1uLFxuICBMYXllclNpemVDb25maWcsXG4gIFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbixcbiAgVmlzdWFsQ2hhbm5lbHNcbn0gZnJvbSAnLi9iYXNlLWxheWVyJztcbmltcG9ydCB7Z2V0TWFza0V4dGVuc2lvblByb3BzfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICcuLi91dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge2FnZ3JlZ2F0ZX0gZnJvbSAnLi4vdXRpbHMvYWdncmVnYXRlLXV0aWxzJztcbmltcG9ydCB7XG4gIEhJR0hMSUdIX0NPTE9SXzNELFxuICBDSEFOTkVMX1NDQUxFUyxcbiAgRklFTERfT1BUUyxcbiAgREVGQVVMVF9BR0dSRUdBVElPTlxufSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge0RhdGFzZXRzLCBNZXJnZX0gZnJvbSAnLi4vcmVkdWNlcnMnO1xuaW1wb3J0IHtDb2xvclJhbmdlfSBmcm9tICcuLi9jb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uL3V0aWxzJztcblxudHlwZSBBZ2dyZWdhdGlvbkxheWVyQ29sdW1ucyA9IHtcbiAgbGF0OiBMYXllckNvbHVtbjtcbiAgbG5nOiBMYXllckNvbHVtbjtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uTGF5ZXJEYXRhID0ge1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UG9zQWNjZXNzb3IgPSAoe2xhdCwgbG5nfTogQWdncmVnYXRpb25MYXllckNvbHVtbnMpID0+IGRjID0+IGQgPT4gW1xuICBkYy52YWx1ZUF0KGQuaW5kZXgsIGxuZy5maWVsZElkeCksXG4gIGRjLnZhbHVlQXQoZC5pbmRleCwgbGF0LmZpZWxkSWR4KVxuXTtcblxuZXhwb3J0IGNvbnN0IHBvaW50UG9zUmVzb2x2ZXIgPSAoe2xhdCwgbG5nfTogQWdncmVnYXRpb25MYXllckNvbHVtbnMpID0+XG4gIGAke2xhdC5maWVsZElkeH0tJHtsbmcuZmllbGRJZHh9YDtcblxuZXhwb3J0IGNvbnN0IGdldFZhbHVlQWdnckZ1bmMgPSAoZmllbGQsIGFnZ3JlZ2F0aW9uKSA9PiB7XG4gIHJldHVybiBwb2ludHMgPT4ge1xuICAgIHJldHVybiBmaWVsZFxuICAgICAgPyBhZ2dyZWdhdGUoXG4gICAgICAgICAgcG9pbnRzLm1hcChwID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZC52YWx1ZUFjY2Vzc29yKHAuc291cmNlID8gcC5zb3VyY2UgOiBwKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhZ2dyZWdhdGlvblxuICAgICAgICApXG4gICAgICA6IHBvaW50cy5sZW5ndGg7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyRGF0YUZ1bmMgPSAoZmlsdGVyUmFuZ2UsIGdldEZpbHRlclZhbHVlKSA9PiBwdCA9PlxuICBnZXRGaWx0ZXJWYWx1ZShwdCkuZXZlcnkoKHZhbCwgaSkgPT4gdmFsID49IGZpbHRlclJhbmdlW2ldWzBdICYmIHZhbCA8PSBmaWx0ZXJSYW5nZVtpXVsxXSk7XG5cbmNvbnN0IGdldExheWVyQ29sb3JSYW5nZSA9IChjb2xvclJhbmdlOiBDb2xvclJhbmdlKSA9PiB7XG4gIGNvbnN0IHtjb2xvck1hcH0gPSBjb2xvclJhbmdlO1xuXG4gIGlmIChjb2xvck1hcCkge1xuICAgIHJldHVybiBjb2xvck1hcC5tYXAoY01hcCA9PiBoZXhUb1JnYihjTWFwWzFdKSk7XG4gIH1cbiAgcmV0dXJuIGNvbG9yUmFuZ2UuY29sb3JzLm1hcChoZXhUb1JnYik7XG59O1xuXG5jb25zdCBnZXRMYXllckNvbG9yRG9tYWluID0gKGNvbG9yRG9tYWluOiBDb2xvclJhbmdlKSA9PiB7XG4gIGNvbnN0IHtjb2xvck1hcH0gPSBjb2xvckRvbWFpbjtcblxuICBpZiAoY29sb3JNYXApIHtcbiAgICByZXR1cm4gY29sb3JNYXAubWFwKGNNYXAgPT4gY01hcFswXSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgYWdncmVnYXRlUmVxdWlyZWRDb2x1bW5zOiBbJ2xhdCcsICdsbmcnXSA9IFsnbGF0JywgJ2xuZyddO1xuXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvbkxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyA9IExheWVyQ29sb3JDb25maWcgJiBMYXllclNpemVDb25maWc7XG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvbkxheWVyQ29uZmlnID0gTWVyZ2U8TGF5ZXJCYXNlQ29uZmlnLCB7Y29sdW1uczogQWdncmVnYXRpb25MYXllckNvbHVtbnN9PiAmXG4gIEFnZ3JlZ2F0aW9uTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWdncmVnYXRpb25MYXllciBleHRlbmRzIExheWVyIHtcbiAgZ2V0Q29sb3JSYW5nZTogYW55O1xuICBkZWNsYXJlIGNvbmZpZzogQWdncmVnYXRpb25MYXllckNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9wcz86IHtcbiAgICAgIGlkPzogc3RyaW5nO1xuICAgIH0gJiBQYXJ0aWFsPExheWVyQmFzZUNvbmZpZz5cbiAgKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gZGF0YUNvbnRhaW5lciA9PlxuICAgICAgcG9pbnRQb3NBY2Nlc3Nvcih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgICB0aGlzLmdldENvbG9yUmFuZ2UgPSBtZW1vaXplKGdldExheWVyQ29sb3JSYW5nZSk7XG4gICAgKHRoaXMgYXMgYW55KS5nZXRDb2xvckRvbWFpbiA9IG1lbW9pemUoZ2V0TGF5ZXJDb2xvckRvbWFpbik7XG4gIH1cblxuICBnZXQgaXNBZ2dyZWdhdGVkKCk6IHRydWUge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHJlcXVpcmVkTGF5ZXJDb2x1bW5zKCkge1xuICAgIHJldHVybiBhZ2dyZWdhdGVSZXF1aXJlZENvbHVtbnM7XG4gIH1cblxuICBnZXQgY29sdW1uUGFpcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvaW50Q29sdW1uUGFpcnM7XG4gIH1cblxuICBnZXQgbm9uZUxheWVyRGF0YUFmZmVjdGluZ1Byb3BzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5ub25lTGF5ZXJEYXRhQWZmZWN0aW5nUHJvcHMsXG4gICAgICAnZW5hYmxlM2QnLFxuICAgICAgJ2NvbG9yUmFuZ2UnLFxuICAgICAgJ2NvbG9yRG9tYWluJyxcbiAgICAgICdzaXplUmFuZ2UnLFxuICAgICAgJ3NpemVTY2FsZScsXG4gICAgICAnc2l6ZURvbWFpbicsXG4gICAgICAncGVyY2VudGlsZScsXG4gICAgICAnY292ZXJhZ2UnLFxuICAgICAgJ2VsZXZhdGlvblBlcmNlbnRpbGUnLFxuICAgICAgJ2VsZXZhdGlvblNjYWxlJyxcbiAgICAgICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJ1xuICAgIF07XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKTogVmlzdWFsQ2hhbm5lbHMge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjoge1xuICAgICAgICBhZ2dyZWdhdGlvbjogJ2NvbG9yQWdncmVnYXRpb24nLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3IsXG4gICAgICAgIGRlZmF1bHRNZWFzdXJlOiAncHJvcGVydHkucG9pbnRDb3VudCcsXG4gICAgICAgIGRvbWFpbjogJ2NvbG9yRG9tYWluJyxcbiAgICAgICAgZmllbGQ6ICdjb2xvckZpZWxkJyxcbiAgICAgICAga2V5OiAnY29sb3InLFxuICAgICAgICBwcm9wZXJ0eTogJ2NvbG9yJyxcbiAgICAgICAgcmFuZ2U6ICdjb2xvclJhbmdlJyxcbiAgICAgICAgc2NhbGU6ICdjb2xvclNjYWxlJ1xuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgYWdncmVnYXRpb246ICdzaXplQWdncmVnYXRpb24nLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5zaXplQWdncixcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5lbmFibGUzZCxcbiAgICAgICAgZGVmYXVsdE1lYXN1cmU6ICdwcm9wZXJ0eS5wb2ludENvdW50JyxcbiAgICAgICAgZG9tYWluOiAnc2l6ZURvbWFpbicsXG4gICAgICAgIGZpZWxkOiAnc2l6ZUZpZWxkJyxcbiAgICAgICAga2V5OiAnc2l6ZScsXG4gICAgICAgIHByb3BlcnR5OiAnaGVpZ2h0JyxcbiAgICAgICAgcmFuZ2U6ICdzaXplUmFuZ2UnLFxuICAgICAgICBzY2FsZTogJ3NpemVTY2FsZSdcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGVzY3JpcHRpb24gb2YgYSB2aXN1YWxDaGFubmVsIGNvbmZpZ1xuICAgKiBAcGFyYW0ga2V5XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oa2V5OiBzdHJpbmcpOiBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24ge1xuICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLnZpc3VhbENoYW5uZWxzW2tleV07XG4gICAgaWYgKCFjaGFubmVsKSByZXR1cm4ge2xhYmVsOiAnJywgbWVhc3VyZTogJyd9O1xuICAgIC8vIGUuZy4gbGFiZWw6IENvbG9yLCBtZWFzdXJlOiBBdmVyYWdlIG9mIEVUQVxuICAgIGNvbnN0IHtyYW5nZSwgZmllbGQsIGRlZmF1bHRNZWFzdXJlLCBhZ2dyZWdhdGlvbn0gPSBjaGFubmVsO1xuICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gdGhpcy5jb25maWdbZmllbGRdO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy52aXNDb25maWdTZXR0aW5nc1tyYW5nZV0ubGFiZWw7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFiZWw6IHR5cGVvZiBsYWJlbCA9PT0gJ2Z1bmN0aW9uJyA/IGxhYmVsKHRoaXMuY29uZmlnKSA6IGxhYmVsLFxuICAgICAgbWVhc3VyZTpcbiAgICAgICAgZmllbGRDb25maWcgJiYgYWdncmVnYXRpb25cbiAgICAgICAgICA/IGAke3RoaXMuY29uZmlnLnZpc0NvbmZpZ1thZ2dyZWdhdGlvbl19IG9mICR7ZmllbGRDb25maWcuZGlzcGxheU5hbWUgfHxcbiAgICAgICAgICAgICAgZmllbGRDb25maWcubmFtZX1gXG4gICAgICAgICAgOiBkZWZhdWx0TWVhc3VyZVxuICAgIH07XG4gIH1cblxuICBnZXRIb3ZlckRhdGEob2JqZWN0KSB7XG4gICAgLy8gcmV0dXJuIGFnZ3JlZ2F0ZWQgb2JqZWN0XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ2dyZWdhdGlvbiBsYXllciBoYW5kbGVzIHZpc3VhbCBjaGFubmVsIGFnZ3JlZ2F0aW9uIGluc2lkZSBkZWNrLmdsIGxheWVyXG4gICAqL1xuICB1cGRhdGVMYXllclZpc3VhbENoYW5uZWwoe2RhdGFDb250YWluZXJ9LCBjaGFubmVsKSB7XG4gICAgdGhpcy52YWxpZGF0ZVZpc3VhbENoYW5uZWwoY2hhbm5lbCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYWdncmVnYXRpb24gdHlwZSBvbiB0b3Agb2YgYmFzaWMgbGF5ZXIgdmlzdWFsIGNoYW5uZWwgdmFsaWRhdGlvblxuICAgKiBAcGFyYW0gY2hhbm5lbFxuICAgKi9cbiAgdmFsaWRhdGVWaXN1YWxDaGFubmVsKGNoYW5uZWwpIHtcbiAgICAvLyBmaWVsZCB0eXBlIGRlY2lkZXMgYWdncmVnYXRpb24gdHlwZSBkZWNpZGVzIHNjYWxlIHR5cGVcbiAgICB0aGlzLnZhbGlkYXRlRmllbGRUeXBlKGNoYW5uZWwpO1xuICAgIHRoaXMudmFsaWRhdGVBZ2dyZWdhdGlvblR5cGUoY2hhbm5lbCk7XG4gICAgdGhpcy52YWxpZGF0ZVNjYWxlKGNoYW5uZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGFnZ3JlZ2F0aW9uIHR5cGUgYmFzZWQgb24gc2VsZWN0ZWQgZmllbGRcbiAgICovXG4gIHZhbGlkYXRlQWdncmVnYXRpb25UeXBlKGNoYW5uZWwpIHtcbiAgICBjb25zdCB2aXN1YWxDaGFubmVsID0gdGhpcy52aXN1YWxDaGFubmVsc1tjaGFubmVsXTtcbiAgICBjb25zdCB7ZmllbGQsIGFnZ3JlZ2F0aW9ufSA9IHZpc3VhbENoYW5uZWw7XG4gICAgY29uc3QgYWdncmVnYXRpb25PcHRpb25zID0gdGhpcy5nZXRBZ2dyZWdhdGlvbk9wdGlvbnMoY2hhbm5lbCk7XG5cbiAgICBpZiAoIWFnZ3JlZ2F0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFhZ2dyZWdhdGlvbk9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAvLyBpZiBmaWVsZCBjYW5ub3QgYmUgYWdncmVnYXRlZCwgc2V0IGZpZWxkIHRvIG51bGxcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJDb25maWcoe1tmaWVsZF06IG51bGx9KTtcbiAgICB9IGVsc2UgaWYgKCFhZ2dyZWdhdGlvbk9wdGlvbnMuaW5jbHVkZXModGhpcy5jb25maWcudmlzQ29uZmlnW2FnZ3JlZ2F0aW9uXSkpIHtcbiAgICAgIC8vIGN1cnJlbnQgYWdncmVnYXRpb24gdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgZmllbGRcbiAgICAgIC8vIHNldCBhZ2dyZWdhdGlvbiB0byB0aGUgZmlyc3Qgc3VwcG9ydGVkIG9wdGlvblxuICAgICAgdGhpcy51cGRhdGVMYXllclZpc0NvbmZpZyh7W2FnZ3JlZ2F0aW9uXTogYWdncmVnYXRpb25PcHRpb25zWzBdfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWdncmVnYXRpb25PcHRpb25zKGNoYW5uZWwpIHtcbiAgICBjb25zdCB2aXN1YWxDaGFubmVsID0gdGhpcy52aXN1YWxDaGFubmVsc1tjaGFubmVsXTtcbiAgICBjb25zdCB7ZmllbGQsIGNoYW5uZWxTY2FsZVR5cGV9ID0gdmlzdWFsQ2hhbm5lbDtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhcbiAgICAgIHRoaXMuY29uZmlnW2ZpZWxkXVxuICAgICAgICA/IEZJRUxEX09QVFNbdGhpcy5jb25maWdbZmllbGRdLnR5cGVdLnNjYWxlW2NoYW5uZWxTY2FsZVR5cGVdXG4gICAgICAgIDogREVGQVVMVF9BR0dSRUdBVElPTltjaGFubmVsU2NhbGVUeXBlXVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHNjYWxlIG9wdGlvbnMgYmFzZWQgb24gY3VycmVudCBmaWVsZCBhbmQgYWdncmVnYXRpb24gdHlwZVxuICAgKiBAcGFyYW0gY2hhbm5lbFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0U2NhbGVPcHRpb25zKGNoYW5uZWw6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCB2aXN1YWxDaGFubmVsID0gdGhpcy52aXN1YWxDaGFubmVsc1tjaGFubmVsXTtcbiAgICBjb25zdCB7ZmllbGQsIGFnZ3JlZ2F0aW9uLCBjaGFubmVsU2NhbGVUeXBlfSA9IHZpc3VhbENoYW5uZWw7XG4gICAgY29uc3QgYWdncmVnYXRpb25UeXBlID0gYWdncmVnYXRpb24gPyB0aGlzLmNvbmZpZy52aXNDb25maWdbYWdncmVnYXRpb25dIDogbnVsbDtcblxuICAgIGlmICghYWdncmVnYXRpb25UeXBlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnW2ZpZWxkXVxuICAgICAgPyAvLyBzY2FsZSBvcHRpb25zIGJhc2VkIG9uIGFnZ3JlZ2F0aW9uXG4gICAgICAgIEZJRUxEX09QVFNbdGhpcy5jb25maWdbZmllbGRdLnR5cGVdLnNjYWxlW2NoYW5uZWxTY2FsZVR5cGVdW2FnZ3JlZ2F0aW9uVHlwZV1cbiAgICAgIDogLy8gZGVmYXVsdCBzY2FsZSBvcHRpb25zIGZvciBwb2ludCBjb3VudFxuICAgICAgICBERUZBVUxUX0FHR1JFR0FUSU9OW2NoYW5uZWxTY2FsZVR5cGVdW2FnZ3JlZ2F0aW9uVHlwZV07XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRpb24gbGF5ZXIgaGFuZGxlcyB2aXN1YWwgY2hhbm5lbCBhZ2dyZWdhdGlvbiBpbnNpZGUgZGVjay5nbCBsYXllclxuICAgKi9cbiAgdXBkYXRlTGF5ZXJEb21haW4oZGF0YXNldHMsIG5ld0ZpbHRlcik6IEFnZ3JlZ2F0aW9uTGF5ZXIge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdXBkYXRlTGF5ZXJNZXRhKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKSB7XG4gICAgLy8gZ2V0IGJvdW5kcyBmcm9tIHBvaW50c1xuICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0UG9pbnRzQm91bmRzKGRhdGFDb250YWluZXIsIGdldFBvc2l0aW9uKTtcblxuICAgIHRoaXMudXBkYXRlTWV0YSh7Ym91bmRzfSk7XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtkYXRhQ29udGFpbmVyLCBmaWx0ZXJlZEluZGV4fTogS2VwbGVyVGFibGUsIGdldFBvc2l0aW9uKSB7XG4gICAgY29uc3QgZGF0YTogQWdncmVnYXRpb25MYXllckRhdGFbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZEluZGV4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlcmVkSW5kZXhbaV07XG4gICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbih7aW5kZXh9KTtcblxuICAgICAgLy8gaWYgZG9lc24ndCBoYXZlIHBvaW50IGxhdCBvciBsbmcsIGRvIG5vdCBhZGQgdGhlIHBvaW50XG4gICAgICAvLyBkZWNrLmdsIGNhbid0IGhhbmRsZSBwb3NpdGlvbiA9IG51bGxcbiAgICAgIGlmIChwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIGluZGV4XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzOiBEYXRhc2V0cywgb2xkTGF5ZXJEYXRhKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFJZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBkYXRhQ29udGFpbmVyfSA9IGRhdGFzZXRzW3RoaXMuY29uZmlnLmRhdGFJZF07XG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG5cbiAgICBjb25zdCBnZXRDb2xvclZhbHVlID0gZ2V0VmFsdWVBZ2dyRnVuYyhcbiAgICAgIHRoaXMuY29uZmlnLmNvbG9yRmllbGQsXG4gICAgICB0aGlzLmNvbmZpZy52aXNDb25maWcuY29sb3JBZ2dyZWdhdGlvblxuICAgICk7XG5cbiAgICBjb25zdCBnZXRFbGV2YXRpb25WYWx1ZSA9IGdldFZhbHVlQWdnckZ1bmMoXG4gICAgICB0aGlzLmNvbmZpZy5zaXplRmllbGQsXG4gICAgICB0aGlzLmNvbmZpZy52aXNDb25maWcuc2l6ZUFnZ3JlZ2F0aW9uXG4gICAgKTtcbiAgICBjb25zdCBoYXNGaWx0ZXIgPSBPYmplY3QudmFsdWVzKGdwdUZpbHRlci5maWx0ZXJSYW5nZSkuc29tZShhcnIgPT4gYXJyLnNvbWUodiA9PiB2ICE9PSAwKSk7XG5cbiAgICBjb25zdCBnZXRGaWx0ZXJWYWx1ZSA9IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCk7XG4gICAgY29uc3QgZmlsdGVyRGF0YSA9IGhhc0ZpbHRlclxuICAgICAgPyBnZXRGaWx0ZXJEYXRhRnVuYyhncHVGaWx0ZXIuZmlsdGVyUmFuZ2UsIGdldEZpbHRlclZhbHVlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnVwZGF0ZURhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldFBvc2l0aW9uLFxuICAgICAgX2ZpbHRlckRhdGE6IGZpbHRlckRhdGEsXG4gICAgICAuLi4oZ2V0Q29sb3JWYWx1ZSA/IHtnZXRDb2xvclZhbHVlfSA6IHt9KSxcbiAgICAgIC4uLihnZXRFbGV2YXRpb25WYWx1ZSA/IHtnZXRFbGV2YXRpb25WYWx1ZX0gOiB7fSlcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdERlY2tMYXllclByb3BzKG9wdHMpOiBhbnkge1xuICAgIGNvbnN0IGJhc2VQcm9wID0gc3VwZXIuZ2V0RGVmYXVsdERlY2tMYXllclByb3BzKG9wdHMpO1xuICAgIGNvbnN0IG1hc2tFeHRlbnNpb25Qcm9wcyA9IGdldE1hc2tFeHRlbnNpb25Qcm9wcyhvcHRzLm1hc2tQb2x5Z29uKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iYXNlUHJvcCxcbiAgICAgIC4uLm1hc2tFeHRlbnNpb25Qcm9wcyxcbiAgICAgIGhpZ2hsaWdodENvbG9yOiBISUdITElHSF9DT0xPUl8zRCxcbiAgICAgIC8vIGdwdSBkYXRhIGZpbHRlcmluZyBpcyBub3Qgc3VwcG9ydGVkIGluIGFnZ3JlZ2F0aW9uIGxheWVyXG4gICAgICBleHRlbnNpb25zOiBbLi4ubWFza0V4dGVuc2lvblByb3BzLmV4dGVuc2lvbnNdLFxuICAgICAgYXV0b0hpZ2hsaWdodDogdGhpcy5jb25maWcudmlzQ29uZmlnLmVuYWJsZTNkXG4gICAgfTtcbiAgfVxuXG4gIGdldERlZmF1bHRBZ2dyZWdhdGlvbkxheWVyUHJvcChvcHRzKSB7XG4gICAgY29uc3Qge2dwdUZpbHRlciwgbGF5ZXJDYWxsYmFja3MgPSB7fX0gPSBvcHRzO1xuICAgIGNvbnN0IHt2aXNDb25maWd9ID0gdGhpcy5jb25maWc7XG5cbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIGdldENvbG9yVmFsdWU6IHtcbiAgICAgICAgY29sb3JGaWVsZDogdGhpcy5jb25maWcuY29sb3JGaWVsZCxcbiAgICAgICAgY29sb3JBZ2dyZWdhdGlvbjogdGhpcy5jb25maWcudmlzQ29uZmlnLmNvbG9yQWdncmVnYXRpb25cbiAgICAgIH0sXG4gICAgICBnZXRFbGV2YXRpb25WYWx1ZToge1xuICAgICAgICBzaXplRmllbGQ6IHRoaXMuY29uZmlnLnNpemVGaWVsZCxcbiAgICAgICAgc2l6ZUFnZ3JlZ2F0aW9uOiB0aGlzLmNvbmZpZy52aXNDb25maWcuc2l6ZUFnZ3JlZ2F0aW9uXG4gICAgICB9LFxuICAgICAgX2ZpbHRlckRhdGE6IHtcbiAgICAgICAgZmlsdGVyUmFuZ2U6IGdwdUZpbHRlci5maWx0ZXJSYW5nZSxcbiAgICAgICAgLi4uZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnNcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdERlY2tMYXllclByb3BzKG9wdHMpLFxuICAgICAgY292ZXJhZ2U6IHZpc0NvbmZpZy5jb3ZlcmFnZSxcblxuICAgICAgLy8gY29sb3JcbiAgICAgIGNvbG9yUmFuZ2U6IHRoaXMuZ2V0Q29sb3JSYW5nZSh2aXNDb25maWcuY29sb3JSYW5nZSksXG4gICAgICBjb2xvckRvbWFpbjogKHRoaXMgYXMgYW55KS5nZXRDb2xvckRvbWFpbih2aXNDb25maWcuY29sb3JSYW5nZSksXG4gICAgICBjb2xvclNjYWxlVHlwZTogdGhpcy5jb25maWcuY29sb3JTY2FsZSxcbiAgICAgIHVwcGVyUGVyY2VudGlsZTogdmlzQ29uZmlnLnBlcmNlbnRpbGVbMV0sXG4gICAgICBsb3dlclBlcmNlbnRpbGU6IHZpc0NvbmZpZy5wZXJjZW50aWxlWzBdLFxuICAgICAgY29sb3JBZ2dyZWdhdGlvbjogdmlzQ29uZmlnLmNvbG9yQWdncmVnYXRpb24sXG5cbiAgICAgIC8vIGVsZXZhdGlvblxuICAgICAgZXh0cnVkZWQ6IHZpc0NvbmZpZy5lbmFibGUzZCxcbiAgICAgIGVsZXZhdGlvblNjYWxlOiB2aXNDb25maWcuZWxldmF0aW9uU2NhbGUsXG4gICAgICBlbGV2YXRpb25TY2FsZVR5cGU6IHRoaXMuY29uZmlnLnNpemVTY2FsZSxcbiAgICAgIGVsZXZhdGlvblJhbmdlOiB2aXNDb25maWcuc2l6ZVJhbmdlLFxuICAgICAgZWxldmF0aW9uTG93ZXJQZXJjZW50aWxlOiB2aXNDb25maWcuZWxldmF0aW9uUGVyY2VudGlsZVswXSxcbiAgICAgIGVsZXZhdGlvblVwcGVyUGVyY2VudGlsZTogdmlzQ29uZmlnLmVsZXZhdGlvblBlcmNlbnRpbGVbMV0sXG5cbiAgICAgIC8vIHVwZGF0ZVRyaWdnZXJzXG4gICAgICB1cGRhdGVUcmlnZ2VycyxcblxuICAgICAgLy8gY2FsbGJhY2tzXG4gICAgICBvblNldENvbG9yRG9tYWluOiBsYXllckNhbGxiYWNrcy5vblNldExheWVyRG9tYWluXG4gICAgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBUUEsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUwsT0FBQTtBQUt1QyxTQUFBTSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FB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
|
|
@@ -14,7 +14,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
14
14
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
15
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var
|
|
17
|
+
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
18
18
|
var _typeAnalyzer = require("type-analyzer");
|
|
19
19
|
var _baseLayer = _interopRequireWildcard(require("../base-layer"));
|
|
20
20
|
var _layers = require("@deck.gl/layers");
|
|
@@ -400,7 +400,7 @@ var GeoJsonLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
|
|
|
400
400
|
return f.name;
|
|
401
401
|
});
|
|
402
402
|
var defaultColumns = {
|
|
403
|
-
geojson: (0,
|
|
403
|
+
geojson: (0, _uniq["default"])([].concat((0, _toConsumableArray2["default"])(_defaultSettings.GEOJSON_FIELDS.geojson), (0, _toConsumableArray2["default"])(geojsonColumns)))
|
|
404
404
|
};
|
|
405
405
|
var foundColumns = this.findDefaultColumnField(defaultColumns, fields);
|
|
406
406
|
if (!foundColumns || !foundColumns.length) {
|
|
@@ -420,4 +420,4 @@ var GeoJsonLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
|
|
|
420
420
|
}
|
|
421
421
|
}]);
|
|
422
422
|
}(_baseLayer["default"]);
|
|
423
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfdHlwZUFuYWx5emVyIiwiX2Jhc2VMYXllciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2xheWVycyIsIl9nZW9qc29uVXRpbHMiLCJfZ2VvanNvbkxheWVySWNvbiIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfbGF5ZXJGYWN0b3J5IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU1VQUE9SVEVEX0FOQUxZWkVSX1RZUEVTIiwiREFUQV9UWVBFUyIsIkdFT01FVFJZIiwiR0VPTUVUUllfRlJPTV9TVFJJTkciLCJnZW9qc29uVmlzQ29uZmlncyIsImV4cG9ydHMiLCJvcGFjaXR5Iiwic3Ryb2tlT3BhY2l0eSIsIkxBWUVSX1ZJU19DT05GSUdTIiwicHJvcGVydHkiLCJ0aGlja25lc3MiLCJkZWZhdWx0VmFsdWUiLCJzdHJva2VDb2xvciIsImNvbG9yUmFuZ2UiLCJzdHJva2VDb2xvclJhbmdlIiwicmFkaXVzIiwic2l6ZVJhbmdlIiwicmFkaXVzUmFuZ2UiLCJoZWlnaHRSYW5nZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsInN0cm9rZWQiLCJmaWxsZWQiLCJlbmFibGUzZCIsIndpcmVmcmFtZSIsImdlb0pzb25SZXF1aXJlZENvbHVtbnMiLCJmZWF0dXJlQWNjZXNzb3IiLCJfcmVmIiwiZ2VvanNvbiIsImRjIiwiZCIsInZhbHVlQXQiLCJpbmRleCIsImZpZWxkSWR4IiwiZGVmYXVsdEVsZXZhdGlvbiIsImRlZmF1bHRMaW5lV2lkdGgiLCJkZWZhdWx0UmFkaXVzIiwiR2VvSnNvbkxheWVyIiwiX0xheWVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJkYXRhVG9GZWF0dXJlIiwicmVnaXN0ZXJWaXNDb25maWciLCJnZXRQb3NpdGlvbkFjY2Vzc29yIiwiZGF0YUNvbnRhaW5lciIsImNvbmZpZyIsImNvbHVtbnMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInR5cGUiLCJHZW9qc29uTGF5ZXJJY29uIiwidmlzdWFsQ2hhbm5lbHMiLCJjb2xvciIsImFjY2Vzc29yIiwiY29uZGl0aW9uIiwidmlzQ29uZmlnIiwibnVsbFZhbHVlIiwiZ2V0QXR0cmlidXRlVmFsdWUiLCJwcm9wZXJ0aWVzIiwiZmlsbENvbG9yIiwiZmllbGQiLCJzY2FsZSIsImRvbWFpbiIsInJhbmdlIiwiY2hhbm5lbFNjYWxlVHlwZSIsIkNIQU5ORUxfU0NBTEVTIiwibGluZUNvbG9yIiwic2l6ZSIsImxpbmVXaWR0aCIsImhlaWdodCIsImVsZXZhdGlvbiIsInZhbHVlIiwiZ2V0RGVmYXVsdExheWVyQ29uZmlnIiwidW5kZWZpbmVkIiwiaGVpZ2h0RmllbGQiLCJoZWlnaHREb21haW4iLCJoZWlnaHRTY2FsZSIsInJhZGl1c0ZpZWxkIiwicmFkaXVzRG9tYWluIiwicmFkaXVzU2NhbGUiLCJzdHJva2VDb2xvckZpZWxkIiwic3Ryb2tlQ29sb3JEb21haW4iLCJzdHJva2VDb2xvclNjYWxlIiwiZ2V0SG92ZXJEYXRhIiwib2JqZWN0Iiwicm93IiwiY2FsY3VsYXRlRGF0YUF0dHJpYnV0ZSIsIl9yZWYyIiwiZ2V0UG9zaXRpb24iLCJfdGhpczIiLCJmaWx0ZXJlZEluZGV4IiwibWFwIiwiZm9ybWF0TGF5ZXJEYXRhIiwiZGF0YXNldHMiLCJvbGRMYXllckRhdGEiLCJkYXRhSWQiLCJfZGF0YXNldHMkdGhpcyRjb25maWciLCJncHVGaWx0ZXIiLCJfdGhpcyR1cGRhdGVEYXRhIiwidXBkYXRlRGF0YSIsImRhdGEiLCJjdXN0b21GaWx0ZXJWYWx1ZUFjY2Vzc29yIiwiZmllbGRJbmRleCIsImluZGV4QWNjZXNzb3IiLCJmIiwiZGF0YUFjY2Vzc29yIiwiYWNjZXNzb3JzIiwiZ2V0QXR0cmlidXRlQWNjZXNzb3JzIiwiZ2V0RmlsdGVyVmFsdWUiLCJmaWx0ZXJWYWx1ZUFjY2Vzc29yIiwidXBkYXRlTGF5ZXJNZXRhIiwiZ2V0RmVhdHVyZSIsImdldEdlb2pzb25EYXRhTWFwcyIsImJvdW5kcyIsImdldEdlb2pzb25Cb3VuZHMiLCJmZWF0dXJlVHlwZXMiLCJnZXRHZW9qc29uRmVhdHVyZVR5cGVzIiwidXBkYXRlTWV0YSIsInNldEluaXRpYWxMYXllckNvbmZpZyIsIl9yZWYzIiwibWV0YSIsInBvbHlnb24iLCJ1cGRhdGVMYXllclZpc0NvbmZpZyIsImNvbG9yTWFrZXIiLCJuZXh0IiwicG9pbnQiLCJyZW5kZXJMYXllciIsIm9wdHMiLCJvYmplY3RIb3ZlcmVkIiwiZ2V0UmFkaXVzU2NhbGUiLCJsYXllclByb3BzIiwibGluZVdpZHRoU2NhbGUiLCJwb2ludFJhZGl1c1NjYWxlIiwibGluZU1pdGVyTGltaXQiLCJ1cGRhdGVUcmlnZ2VycyIsImdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycyIsImZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnMiLCJkZWZhdWx0TGF5ZXJQcm9wcyIsImdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyIsIm9wYU92ZXJ3cml0ZSIsInBpY2thYmxlIiwiaGFzSW50ZXJhY3Rpdml0eSIsImhvdmVyZWRPYmplY3QiLCJoYXNIb3ZlcmVkT2JqZWN0IiwiRGVja0dMR2VvSnNvbkxheWVyIiwiaGlnaGxpZ2h0Q29sb3IiLCJISUdITElHSF9DT0xPUl8zRCIsImF1dG9IaWdobGlnaHQiLCJleHRydWRlZCIsIndyYXBMb25naXR1ZGUiLCJyb3VuZGVkIiwicmFkaXVzVW5pdHMiLCJsaW5lV2lkdGhVbml0cyIsIl9zdWJMYXllclByb3BzIiwibGluZSIsImxpbmVzdHJpbmdzIiwicG9pbnRzIiwibGluZU9wYWNpdHkiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImdldExpbmVXaWR0aCIsImdldFJhZGl1cyIsImdldEVsZXZhdGlvbiIsImdldExpbmVDb2xvciIsImdldEZpbGxDb2xvciIsImZpbmREZWZhdWx0TGF5ZXJQcm9wcyIsIl9yZWY0IiwiX3RoaXMzIiwibGFiZWwiLCJfcmVmNCRmaWVsZHMiLCJmaWVsZHMiLCJnZW9qc29uQ29sdW1ucyIsImFuYWx5emVyVHlwZSIsIm5hbWUiLCJkZWZhdWx0Q29sdW1ucyIsInVuaXEiLCJHRU9KU09OX0ZJRUxEUyIsImZvdW5kQ29sdW1ucyIsImZpbmREZWZhdWx0Q29sdW1uRmllbGQiLCJyZXBsYWNlIiwiaXNWaXNpYmxlIiwiTGF5ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXJzL2dlb2pzb24tbGF5ZXIvZ2VvanNvbi1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5pbXBvcnQge0RBVEFfVFlQRVN9IGZyb20gJ3R5cGUtYW5hbHl6ZXInO1xuXG5pbXBvcnQgTGF5ZXIsIHtcbiAgY29sb3JNYWtlcixcbiAgTGF5ZXJCYXNlQ29uZmlnLFxuICBMYXllckNvbG9yQ29uZmlnLFxuICBMYXllckNvbHVtbixcbiAgTGF5ZXJIZWlnaHRDb25maWcsXG4gIExheWVyUmFkaXVzQ29uZmlnLFxuICBMYXllclNpemVDb25maWcsXG4gIExheWVyU3Ryb2tlQ29sb3JDb25maWdcbn0gZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge0dlb0pzb25MYXllciBhcyBEZWNrR0xHZW9Kc29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1xuICBnZXRHZW9qc29uRGF0YU1hcHMsXG4gIGdldEdlb2pzb25Cb3VuZHMsXG4gIGdldEdlb2pzb25GZWF0dXJlVHlwZXMsXG4gIEdlb2pzb25EYXRhTWFwc1xufSBmcm9tICcuL2dlb2pzb24tdXRpbHMnO1xuaW1wb3J0IEdlb2pzb25MYXllckljb24gZnJvbSAnLi9nZW9qc29uLWxheWVyLWljb24nO1xuaW1wb3J0IHtHRU9KU09OX0ZJRUxEUywgSElHSExJR0hfQ09MT1JfM0QsIENIQU5ORUxfU0NBTEVTfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBMQVlFUl9WSVNfQ09ORklHUyxcbiAgVmlzQ29uZmlnTnVtYmVyLFxuICBWaXNDb25maWdDb2xvclNlbGVjdCxcbiAgVmlzQ29uZmlnQ29sb3JSYW5nZSxcbiAgVmlzQ29uZmlnUmFuZ2UsXG4gIFZpc0NvbmZpZ0Jvb2xlYW5cbn0gZnJvbSAnLi4vbGF5ZXItZmFjdG9yeSc7XG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxlLXV0aWxzL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5pbXBvcnQge01lcmdlLCBSR0JDb2xvcn0gZnJvbSAnLi4vLi4vcmVkdWNlcnMnO1xuaW1wb3J0IHtDb2xvclJhbmdlfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgU1VQUE9SVEVEX0FOQUxZWkVSX1RZUEVTID0ge1xuICBbREFUQV9UWVBFUy5HRU9NRVRSWV06IHRydWUsXG4gIFtEQVRBX1RZUEVTLkdFT01FVFJZX0ZST01fU1RSSU5HXTogdHJ1ZVxufTtcblxuZXhwb3J0IGNvbnN0IGdlb2pzb25WaXNDb25maWdzOiB7XG4gIG9wYWNpdHk6ICdvcGFjaXR5JztcbiAgc3Ryb2tlT3BhY2l0eTogVmlzQ29uZmlnTnVtYmVyO1xuICB0aGlja25lc3M6IFZpc0NvbmZpZ051bWJlcjtcbiAgc3Ryb2tlQ29sb3I6ICdzdHJva2VDb2xvcic7XG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJztcbiAgc3Ryb2tlQ29sb3JSYW5nZTogJ3N0cm9rZUNvbG9yUmFuZ2UnO1xuICByYWRpdXM6ICdyYWRpdXMnO1xuXG4gIHNpemVSYW5nZTogJ3N0cm9rZVdpZHRoUmFuZ2UnO1xuICByYWRpdXNSYW5nZTogJ3JhZGl1c1JhbmdlJztcbiAgaGVpZ2h0UmFuZ2U6ICdlbGV2YXRpb25SYW5nZSc7XG4gIGVsZXZhdGlvblNjYWxlOiAnZWxldmF0aW9uU2NhbGUnO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3Rvcic7XG4gIHN0cm9rZWQ6ICdzdHJva2VkJztcbiAgZmlsbGVkOiAnZmlsbGVkJztcbiAgZW5hYmxlM2Q6ICdlbmFibGUzZCc7XG4gIHdpcmVmcmFtZTogJ3dpcmVmcmFtZSc7XG59ID0ge1xuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIHN0cm9rZU9wYWNpdHk6IHtcbiAgICAuLi5MQVlFUl9WSVNfQ09ORklHUy5vcGFjaXR5LFxuICAgIHByb3BlcnR5OiAnc3Ryb2tlT3BhY2l0eSdcbiAgfSxcbiAgdGhpY2tuZXNzOiB7XG4gICAgLi4uTEFZRVJfVklTX0NPTkZJR1MudGhpY2tuZXNzLFxuICAgIGRlZmF1bHRWYWx1ZTogMVxuICB9LFxuICBzdHJva2VDb2xvcjogJ3N0cm9rZUNvbG9yJyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBzdHJva2VDb2xvclJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gIHJhZGl1czogJ3JhZGl1cycsXG5cbiAgc2l6ZVJhbmdlOiAnc3Ryb2tlV2lkdGhSYW5nZScsXG4gIHJhZGl1c1JhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICBoZWlnaHRSYW5nZTogJ2VsZXZhdGlvblJhbmdlJyxcbiAgZWxldmF0aW9uU2NhbGU6ICdlbGV2YXRpb25TY2FsZScsXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6ICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJyxcbiAgc3Ryb2tlZDogJ3N0cm9rZWQnLFxuICBmaWxsZWQ6ICdmaWxsZWQnLFxuICBlbmFibGUzZDogJ2VuYWJsZTNkJyxcbiAgd2lyZWZyYW1lOiAnd2lyZWZyYW1lJ1xufTtcblxuZXhwb3J0IHR5cGUgR2VvSnNvblZpc0NvbmZpZ1NldHRpbmdzID0ge1xuICBvcGFjaXR5OiBWaXNDb25maWdOdW1iZXI7XG4gIHN0cm9rZU9wYWNpdHk6IFZpc0NvbmZpZ051bWJlcjtcbiAgdGhpY2tuZXNzOiBWaXNDb25maWdOdW1iZXI7XG4gIHN0cm9rZUNvbG9yOiBWaXNDb25maWdDb2xvclNlbGVjdDtcbiAgY29sb3JSYW5nZTogVmlzQ29uZmlnQ29sb3JSYW5nZTtcbiAgc3Ryb2tlQ29sb3JSYW5nZTogVmlzQ29uZmlnQ29sb3JSYW5nZTtcbiAgcmFkaXVzOiBWaXNDb25maWdOdW1iZXI7XG5cbiAgc2l6ZVJhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgcmFkaXVzUmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICBoZWlnaHRSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIGVsZXZhdGlvblNjYWxlOiBWaXNDb25maWdOdW1iZXI7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIHN0cm9rZWQ6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIGZpbGxlZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgZW5hYmxlM2Q6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIHdpcmVmcmFtZTogVmlzQ29uZmlnQm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEdlb0pzb25MYXllckNvbHVtbnNDb25maWcgPSB7XG4gIGdlb2pzb246IExheWVyQ29sdW1uO1xufTtcblxuZXhwb3J0IHR5cGUgR2VvSnNvbkxheWVyVmlzQ29uZmlnID0ge1xuICBvcGFjaXR5OiBudW1iZXI7XG4gIHN0cm9rZU9wYWNpdHk6IG51bWJlcjtcbiAgdGhpY2tuZXNzOiBudW1iZXI7XG4gIHN0cm9rZUNvbG9yOiBSR0JDb2xvcjtcbiAgY29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgc3Ryb2tlQ29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgcmFkaXVzOiBudW1iZXI7XG5cbiAgc2l6ZVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICByYWRpdXNSYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgaGVpZ2h0UmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIGVsZXZhdGlvblNjYWxlOiBudW1iZXI7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IGJvb2xlYW47XG4gIHN0cm9rZWQ6IGJvb2xlYW47XG4gIGZpbGxlZDogYm9vbGVhbjtcbiAgZW5hYmxlM2Q6IGJvb2xlYW47XG4gIHdpcmVmcmFtZTogYm9vbGVhbjtcbn07XG5cbnR5cGUgR2VvSnNvbkxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZyA9IExheWVyQ29sb3JDb25maWcgJlxuICBMYXllclN0cm9rZUNvbG9yQ29uZmlnICZcbiAgTGF5ZXJTaXplQ29uZmlnICZcbiAgTGF5ZXJIZWlnaHRDb25maWcgJlxuICBMYXllclJhZGl1c0NvbmZpZztcbmV4cG9ydCB0eXBlIEdlb0pzb25MYXllckNvbmZpZyA9IE1lcmdlPFxuICBMYXllckJhc2VDb25maWcsXG4gIHtjb2x1bW5zOiBHZW9Kc29uTGF5ZXJDb2x1bW5zQ29uZmlnOyB2aXNDb25maWc6IEdlb0pzb25MYXllclZpc0NvbmZpZ31cbj4gJlxuICBHZW9Kc29uTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBHZW9Kc29uTGF5ZXJNZXRhID0ge1xuICBmZWF0dXJlVHlwZXM/OiB7cG9seWdvbjogYm9vbGVhbjsgcG9pbnQ6IGJvb2xlYW47IGxpbmU6IGJvb2xlYW59O1xuICBmaXhlZFJhZGl1cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZ2VvSnNvblJlcXVpcmVkQ29sdW1uczogWydnZW9qc29uJ10gPSBbJ2dlb2pzb24nXTtcbmV4cG9ydCBjb25zdCBmZWF0dXJlQWNjZXNzb3IgPSAoe2dlb2pzb259OiBHZW9Kc29uTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PiAoXG4gIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlXG4pID0+IGQgPT4gZGMudmFsdWVBdChkLmluZGV4LCBnZW9qc29uLmZpZWxkSWR4KTtcblxuLy8gYWNjZXNzIGZlYXR1cmUgcHJvcGVydGllcyBmcm9tIGdlb2pzb24gc3ViIGxheWVyXG5leHBvcnQgY29uc3QgZGVmYXVsdEVsZXZhdGlvbiA9IDUwMDtcbmV4cG9ydCBjb25zdCBkZWZhdWx0TGluZVdpZHRoID0gMTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0UmFkaXVzID0gMTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2VvSnNvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBkZWNsYXJlIGNvbmZpZzogR2VvSnNvbkxheWVyQ29uZmlnO1xuICBkZWNsYXJlIHZpc0NvbmZpZ1NldHRpbmdzOiBHZW9Kc29uVmlzQ29uZmlnU2V0dGluZ3M7XG4gIGRlY2xhcmUgbWV0YTogR2VvSnNvbkxheWVyTWV0YTtcbiAgZGF0YVRvRmVhdHVyZTogR2VvanNvbkRhdGFNYXBzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5kYXRhVG9GZWF0dXJlID0gW107XG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhnZW9qc29uVmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yID0gKGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UpID0+XG4gICAgICBmZWF0dXJlQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG4gIH1cblxuICBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gR2VvSnNvbkxheWVyLnR5cGU7XG4gIH1cbiAgc3RhdGljIGdldCB0eXBlKCk6ICdnZW9qc29uJyB7XG4gICAgcmV0dXJuICdnZW9qc29uJztcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdQb2x5Z29uJztcbiAgfVxuXG4gIGdldCBsYXllckljb24oKSB7XG4gICAgcmV0dXJuIEdlb2pzb25MYXllckljb247XG4gIH1cblxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGdlb0pzb25SZXF1aXJlZENvbHVtbnM7XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKSB7XG4gICAgY29uc3QgdmlzdWFsQ2hhbm5lbHMgPSBzdXBlci52aXN1YWxDaGFubmVscztcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHtcbiAgICAgICAgLi4udmlzdWFsQ2hhbm5lbHMuY29sb3IsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0RmlsbENvbG9yJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5maWxsZWQsXG4gICAgICAgIG51bGxWYWx1ZTogdmlzdWFsQ2hhbm5lbHMuY29sb3IubnVsbFZhbHVlLFxuICAgICAgICBnZXRBdHRyaWJ1dGVWYWx1ZTogY29uZmlnID0+IGQgPT4gZC5wcm9wZXJ0aWVzLmZpbGxDb2xvciB8fCBjb25maWcuY29sb3IsXG4gICAgICAgIC8vIHVzZWQgdGhpcyB0byBnZXQgdXBkYXRlVHJpZ2dlcnNcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBjb25maWcgPT4gY29uZmlnLmNvbG9yXG4gICAgICB9LFxuICAgICAgc3Ryb2tlQ29sb3I6IHtcbiAgICAgICAgcHJvcGVydHk6ICdzdHJva2VDb2xvcicsXG4gICAgICAgIGZpZWxkOiAnc3Ryb2tlQ29sb3JGaWVsZCcsXG4gICAgICAgIHNjYWxlOiAnc3Ryb2tlQ29sb3JTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ3N0cm9rZUNvbG9yRG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdzdHJva2VDb2xvclJhbmdlJyxcbiAgICAgICAga2V5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5jb2xvcixcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRMaW5lQ29sb3InLFxuICAgICAgICBjb25kaXRpb246IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLnN0cm9rZWQsXG4gICAgICAgIG51bGxWYWx1ZTogdmlzdWFsQ2hhbm5lbHMuY29sb3IubnVsbFZhbHVlLFxuICAgICAgICBnZXRBdHRyaWJ1dGVWYWx1ZTogY29uZmlnID0+IGQgPT5cbiAgICAgICAgICBkLnByb3BlcnRpZXMubGluZUNvbG9yIHx8IGNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3IgfHwgY29uZmlnLmNvbG9yLFxuICAgICAgICAvLyB1c2VkIHRoaXMgdG8gZ2V0IHVwZGF0ZVRyaWdnZXJzXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuc3Ryb2tlQ29sb3IgfHwgY29uZmlnLmNvbG9yXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICAuLi52aXN1YWxDaGFubmVscy5zaXplLFxuICAgICAgICBwcm9wZXJ0eTogJ3N0cm9rZScsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0TGluZVdpZHRoJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VkLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGdldEF0dHJpYnV0ZVZhbHVlOiAoKSA9PiBkID0+IGQucHJvcGVydGllcy5saW5lV2lkdGggfHwgZGVmYXVsdExpbmVXaWR0aFxuICAgICAgfSxcbiAgICAgIGhlaWdodDoge1xuICAgICAgICBwcm9wZXJ0eTogJ2hlaWdodCcsXG4gICAgICAgIGZpZWxkOiAnaGVpZ2h0RmllbGQnLFxuICAgICAgICBzY2FsZTogJ2hlaWdodFNjYWxlJyxcbiAgICAgICAgZG9tYWluOiAnaGVpZ2h0RG9tYWluJyxcbiAgICAgICAgcmFuZ2U6ICdoZWlnaHRSYW5nZScsXG4gICAgICAgIGtleTogJ2hlaWdodCcsXG4gICAgICAgIGNoYW5uZWxTY2FsZVR5cGU6IENIQU5ORUxfU0NBTEVTLnNpemUsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0RWxldmF0aW9uJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5lbmFibGUzZCxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBnZXRBdHRyaWJ1dGVWYWx1ZTogKCkgPT4gZCA9PiBkLnByb3BlcnRpZXMuZWxldmF0aW9uIHx8IGRlZmF1bHRFbGV2YXRpb25cbiAgICAgIH0sXG4gICAgICByYWRpdXM6IHtcbiAgICAgICAgcHJvcGVydHk6ICdyYWRpdXMnLFxuICAgICAgICBmaWVsZDogJ3JhZGl1c0ZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdyYWRpdXNTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ3JhZGl1c0RvbWFpbicsXG4gICAgICAgIHJhbmdlOiAncmFkaXVzUmFuZ2UnLFxuICAgICAgICBrZXk6ICdyYWRpdXMnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5yYWRpdXMsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0UmFkaXVzJyxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBnZXRBdHRyaWJ1dGVWYWx1ZTogKCkgPT4gZCA9PiBkLnByb3BlcnRpZXMucmFkaXVzIHx8IGRlZmF1bHRSYWRpdXNcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7bGFiZWwsIGZpZWxkcyA9IFtdfTogS2VwbGVyVGFibGUpIHtcbiAgICBjb25zdCBnZW9qc29uQ29sdW1ucyA9IGZpZWxkc1xuICAgICAgLmZpbHRlcihmID0+IGYudHlwZSA9PT0gJ2dlb2pzb24nICYmIFNVUFBPUlRFRF9BTkFMWVpFUl9UWVBFU1tmLmFuYWx5emVyVHlwZV0pXG4gICAgICAubWFwKGYgPT4gZi5uYW1lKTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb2x1bW5zID0ge1xuICAgICAgZ2VvanNvbjogdW5pcShbLi4uR0VPSlNPTl9GSUVMRFMuZ2VvanNvbiwgLi4uZ2VvanNvbkNvbHVtbnNdKVxuICAgIH07XG5cbiAgICBjb25zdCBmb3VuZENvbHVtbnMgPSB0aGlzLmZpbmREZWZhdWx0Q29sdW1uRmllbGQoZGVmYXVsdENvbHVtbnMsIGZpZWxkcyk7XG4gICAgaWYgKCFmb3VuZENvbHVtbnMgfHwgIWZvdW5kQ29sdW1ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7cHJvcHM6IFtdfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvcHM6IGZvdW5kQ29sdW1ucy5tYXAoY29sdW1ucyA9PiAoe1xuICAgICAgICBsYWJlbDogKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgJiYgbGFiZWwucmVwbGFjZSgvXFwuW14vLl0rJC8sICcnKSkgfHwgdGhpcy50eXBlLFxuICAgICAgICBjb2x1bW5zLFxuICAgICAgICBpc1Zpc2libGU6IHRydWVcbiAgICAgIH0pKVxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0TGF5ZXJDb25maWcocHJvcHMgPSB7fSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5nZXREZWZhdWx0TGF5ZXJDb25maWcocHJvcHMpLFxuXG4gICAgICAvLyBhZGQgaGVpZ2h0IHZpc3VhbCBjaGFubmVsXG4gICAgICBoZWlnaHRGaWVsZDogbnVsbCxcbiAgICAgIGhlaWdodERvbWFpbjogWzAsIDFdLFxuICAgICAgaGVpZ2h0U2NhbGU6ICdsaW5lYXInLFxuXG4gICAgICAvLyBhZGQgcmFkaXVzIHZpc3VhbCBjaGFubmVsXG4gICAgICByYWRpdXNGaWVsZDogbnVsbCxcbiAgICAgIHJhZGl1c0RvbWFpbjogWzAsIDFdLFxuICAgICAgcmFkaXVzU2NhbGU6ICdsaW5lYXInLFxuXG4gICAgICAvLyBhZGQgc3Ryb2tlIGNvbG9yIHZpc3VhbCBjaGFubmVsXG4gICAgICBzdHJva2VDb2xvckZpZWxkOiBudWxsLFxuICAgICAgc3Ryb2tlQ29sb3JEb21haW46IFswLCAxXSxcbiAgICAgIHN0cm9rZUNvbG9yU2NhbGU6ICdxdWFudGlsZSdcbiAgICB9O1xuICB9XG5cbiAgZ2V0SG92ZXJEYXRhKG9iamVjdCwgZGF0YUNvbnRhaW5lcikge1xuICAgIC8vIGluZGV4IG9mIGRhdGFDb250YWluZXIgaXMgc2F2ZWQgdG8gZmVhdHVyZS5wcm9wZXJ0aWVzXG4gICAgcmV0dXJuIGRhdGFDb250YWluZXIucm93KG9iamVjdC5wcm9wZXJ0aWVzLmluZGV4KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUoe2RhdGFDb250YWluZXIsIGZpbHRlcmVkSW5kZXh9LCBnZXRQb3NpdGlvbikge1xuICAgIHJldHVybiBmaWx0ZXJlZEluZGV4Lm1hcChpID0+IHRoaXMuZGF0YVRvRmVhdHVyZVtpXSkuZmlsdGVyKGQgPT4gZCk7XG4gIH1cblxuICBmb3JtYXRMYXllckRhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5kYXRhSWQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3Qge2dwdUZpbHRlciwgZGF0YUNvbnRhaW5lcn0gPSBkYXRhc2V0c1t0aGlzLmNvbmZpZy5kYXRhSWRdO1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMudXBkYXRlRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKTtcblxuICAgIGNvbnN0IGN1c3RvbUZpbHRlclZhbHVlQWNjZXNzb3IgPSAoZGMsIGQsIGZpZWxkSW5kZXgpID0+IHtcbiAgICAgIHJldHVybiBkYy52YWx1ZUF0KGQucHJvcGVydGllcy5pbmRleCwgZmllbGRJbmRleCk7XG4gICAgfTtcbiAgICBjb25zdCBpbmRleEFjY2Vzc29yID0gZiA9PiBmLnByb3BlcnRpZXMuaW5kZXg7XG5cbiAgICBjb25zdCBkYXRhQWNjZXNzb3IgPSBkYyA9PiBkID0+ICh7aW5kZXg6IGQucHJvcGVydGllcy5pbmRleH0pO1xuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQWNjZXNzb3IsIGRhdGFDb250YWluZXJ9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKFxuICAgICAgICBpbmRleEFjY2Vzc29yLFxuICAgICAgICBjdXN0b21GaWx0ZXJWYWx1ZUFjY2Vzc29yXG4gICAgICApLFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfTtcbiAgfVxuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyKSB7XG4gICAgY29uc3QgZ2V0RmVhdHVyZSA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICB0aGlzLmRhdGFUb0ZlYXR1cmUgPSBnZXRHZW9qc29uRGF0YU1hcHMoZGF0YUNvbnRhaW5lciwgZ2V0RmVhdHVyZSk7XG5cbiAgICAvLyBnZXQgYm91bmRzIGZyb20gZmVhdHVyZXNcbiAgICBjb25zdCBib3VuZHMgPSBnZXRHZW9qc29uQm91bmRzKHRoaXMuZGF0YVRvRmVhdHVyZSk7XG5cbiAgICAvLyBrZWVwIGEgcmVjb3JkIG9mIHdoYXQgdHlwZSBvZiBnZW9tZXRyeSB0aGUgY29sbGVjdGlvbiBoYXNcbiAgICBjb25zdCBmZWF0dXJlVHlwZXMgPSBnZXRHZW9qc29uRmVhdHVyZVR5cGVzKHRoaXMuZGF0YVRvRmVhdHVyZSk7XG5cbiAgICB0aGlzLnVwZGF0ZU1ldGEoe2JvdW5kcywgZmVhdHVyZVR5cGVzfSk7XG4gIH1cblxuICBzZXRJbml0aWFsTGF5ZXJDb25maWcoe2RhdGFDb250YWluZXJ9KSB7XG4gICAgdGhpcy51cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcik7XG5cbiAgICBjb25zdCB7ZmVhdHVyZVR5cGVzfSA9IHRoaXMubWV0YTtcbiAgICAvLyBkZWZhdWx0IHNldHRpbmdzIGlzIHN0cm9rZTogdHJ1ZSwgZmlsbGVkOiBmYWxzZVxuICAgIGlmIChmZWF0dXJlVHlwZXMgJiYgZmVhdHVyZVR5cGVzLnBvbHlnb24pIHtcbiAgICAgIC8vIHNldCBib3RoIGZpbGwgYW5kIHN0cm9rZSB0byB0cnVlXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVMYXllclZpc0NvbmZpZyh7XG4gICAgICAgIGZpbGxlZDogdHJ1ZSxcbiAgICAgICAgc3Ryb2tlZDogdHJ1ZSxcbiAgICAgICAgc3Ryb2tlQ29sb3I6IGNvbG9yTWFrZXIubmV4dCgpLnZhbHVlXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGZlYXR1cmVUeXBlcyAmJiBmZWF0dXJlVHlwZXMucG9pbnQpIHtcbiAgICAgIC8vIHNldCBmaWxsIHRvIHRydWUgaWYgZGV0ZWN0IHBvaW50XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVMYXllclZpc0NvbmZpZyh7ZmlsbGVkOiB0cnVlLCBzdHJva2VkOiBmYWxzZX0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXIob3B0cykge1xuICAgIGNvbnN0IHtkYXRhLCBncHVGaWx0ZXIsIG9iamVjdEhvdmVyZWR9ID0gb3B0cztcblxuICAgIGNvbnN0IHtmZWF0dXJlVHlwZXN9ID0gdGhpcy5tZXRhO1xuICAgIGNvbnN0IHJhZGl1c1NjYWxlID0gdGhpcy5nZXRSYWRpdXNTY2FsZSgpO1xuICAgIGNvbnN0IHt2aXNDb25maWd9ID0gdGhpcy5jb25maWc7XG5cbiAgICBjb25zdCBsYXllclByb3BzID0ge1xuICAgICAgbGluZVdpZHRoU2NhbGU6IHZpc0NvbmZpZy50aGlja25lc3MsXG4gICAgICBlbGV2YXRpb25TY2FsZTogdmlzQ29uZmlnLmVsZXZhdGlvblNjYWxlLFxuICAgICAgcG9pbnRSYWRpdXNTY2FsZTogcmFkaXVzU2NhbGUsXG4gICAgICBsaW5lTWl0ZXJMaW1pdDogNFxuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHtcbiAgICAgIC4uLnRoaXMuZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzKCksXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnNcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdExheWVyUHJvcHMgPSB0aGlzLmdldERlZmF1bHREZWNrTGF5ZXJQcm9wcyhvcHRzKTtcbiAgICBjb25zdCBvcGFPdmVyd3JpdGUgPSB7XG4gICAgICBvcGFjaXR5OiB2aXNDb25maWcuc3Ryb2tlT3BhY2l0eVxuICAgIH07XG5cbiAgICBjb25zdCBwaWNrYWJsZSA9IHRoaXMuaGFzSW50ZXJhY3Rpdml0eTtcbiAgICBjb25zdCBob3ZlcmVkT2JqZWN0ID0gdGhpcy5oYXNIb3ZlcmVkT2JqZWN0KG9iamVjdEhvdmVyZWQpO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBEZWNrR0xHZW9Kc29uTGF5ZXIoe1xuICAgICAgICAuLi5kZWZhdWx0TGF5ZXJQcm9wcyxcbiAgICAgICAgLi4ubGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgcGlja2FibGUsXG4gICAgICAgIGhpZ2hsaWdodENvbG9yOiBISUdITElHSF9DT0xPUl8zRCxcbiAgICAgICAgYXV0b0hpZ2hsaWdodDogdmlzQ29uZmlnLmVuYWJsZTNkICYmIHBpY2thYmxlLFxuICAgICAgICBzdHJva2VkOiB2aXNDb25maWcuc3Ryb2tlZCxcbiAgICAgICAgZmlsbGVkOiB2aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBleHRydWRlZDogdmlzQ29uZmlnLmVuYWJsZTNkLFxuICAgICAgICB3aXJlZnJhbWU6IHZpc0NvbmZpZy53aXJlZnJhbWUsXG4gICAgICAgIHdyYXBMb25naXR1ZGU6IGZhbHNlLFxuICAgICAgICBsaW5lTWl0ZXJMaW1pdDogMixcbiAgICAgICAgcm91bmRlZDogdHJ1ZSxcbiAgICAgICAgcmFkaXVzVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICBsaW5lV2lkdGhVbml0czogJ3BpeGVscycsXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzLFxuICAgICAgICBfc3ViTGF5ZXJQcm9wczoge1xuICAgICAgICAgIC4uLihmZWF0dXJlVHlwZXM/LnBvbHlnb24gPyB7J3BvbHlnb25zLXN0cm9rZSc6IG9wYU92ZXJ3cml0ZX0gOiB7fSksXG4gICAgICAgICAgLi4uKGZlYXR1cmVUeXBlcz8ubGluZSA/IHtsaW5lc3RyaW5nczogb3BhT3ZlcndyaXRlfSA6IHt9KSxcbiAgICAgICAgICAuLi4oZmVhdHVyZVR5cGVzPy5wb2ludFxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcG9pbnRzOiB7XG4gICAgICAgICAgICAgICAgICBsaW5lT3BhY2l0eTogdmlzQ29uZmlnLnN0cm9rZU9wYWNpdHlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDoge30pXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgLi4uKGhvdmVyZWRPYmplY3QgJiYgIXZpc0NvbmZpZy5lbmFibGUzZFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgIG5ldyBEZWNrR0xHZW9Kc29uTGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLi4ubGF5ZXJQcm9wcyxcbiAgICAgICAgICAgICAgd3JhcExvbmdpdHVkZTogZmFsc2UsXG4gICAgICAgICAgICAgIGRhdGE6IFtob3ZlcmVkT2JqZWN0XSxcbiAgICAgICAgICAgICAgZ2V0TGluZVdpZHRoOiBkYXRhLmdldExpbmVXaWR0aCxcbiAgICAgICAgICAgICAgZ2V0UmFkaXVzOiBkYXRhLmdldFJhZGl1cyxcbiAgICAgICAgICAgICAgZ2V0RWxldmF0aW9uOiBkYXRhLmdldEVsZXZhdGlvbixcbiAgICAgICAgICAgICAgZ2V0TGluZUNvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLmNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgLy8gYWx3YXlzIGRyYXcgb3V0bGluZVxuICAgICAgICAgICAgICBzdHJva2VkOiB0cnVlLFxuICAgICAgICAgICAgICBmaWxsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSlcbiAgICBdO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFB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
|
|
423
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdW5pcSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3R5cGVBbmFseXplciIsIl9iYXNlTGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sYXllcnMiLCJfZ2VvanNvblV0aWxzIiwiX2dlb2pzb25MYXllckljb24iLCJfZGVmYXVsdFNldHRpbmdzIiwiX2xheWVyRmFjdG9yeSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jYWxsU3VwZXIiLCJvIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiX3N1cGVyUHJvcEdldCIsInAiLCJfZ2V0MiIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlNVUFBPUlRFRF9BTkFMWVpFUl9UWVBFUyIsIkRBVEFfVFlQRVMiLCJHRU9NRVRSWSIsIkdFT01FVFJZX0ZST01fU1RSSU5HIiwiZ2VvanNvblZpc0NvbmZpZ3MiLCJleHBvcnRzIiwib3BhY2l0eSIsInN0cm9rZU9wYWNpdHkiLCJMQVlFUl9WSVNfQ09ORklHUyIsInByb3BlcnR5IiwidGhpY2tuZXNzIiwiZGVmYXVsdFZhbHVlIiwic3Ryb2tlQ29sb3IiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInJhZGl1cyIsInNpemVSYW5nZSIsInJhZGl1c1JhbmdlIiwiaGVpZ2h0UmFuZ2UiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJzdHJva2VkIiwiZmlsbGVkIiwiZW5hYmxlM2QiLCJ3aXJlZnJhbWUiLCJnZW9Kc29uUmVxdWlyZWRDb2x1bW5zIiwiZmVhdHVyZUFjY2Vzc29yIiwiX3JlZiIsImdlb2pzb24iLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsImRlZmF1bHRFbGV2YXRpb24iLCJkZWZhdWx0TGluZVdpZHRoIiwiZGVmYXVsdFJhZGl1cyIsIkdlb0pzb25MYXllciIsIl9MYXllciIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiZGF0YVRvRmVhdHVyZSIsInJlZ2lzdGVyVmlzQ29uZmlnIiwiZ2V0UG9zaXRpb25BY2Nlc3NvciIsImRhdGFDb250YWluZXIiLCJjb25maWciLCJjb2x1bW5zIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ0eXBlIiwiR2VvanNvbkxheWVySWNvbiIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJhY2Nlc3NvciIsImNvbmRpdGlvbiIsInZpc0NvbmZpZyIsIm51bGxWYWx1ZSIsImdldEF0dHJpYnV0ZVZhbHVlIiwicHJvcGVydGllcyIsImZpbGxDb2xvciIsImZpZWxkIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsImNoYW5uZWxTY2FsZVR5cGUiLCJDSEFOTkVMX1NDQUxFUyIsImxpbmVDb2xvciIsInNpemUiLCJsaW5lV2lkdGgiLCJoZWlnaHQiLCJlbGV2YXRpb24iLCJ2YWx1ZSIsImdldERlZmF1bHRMYXllckNvbmZpZyIsInVuZGVmaW5lZCIsImhlaWdodEZpZWxkIiwiaGVpZ2h0RG9tYWluIiwiaGVpZ2h0U2NhbGUiLCJyYWRpdXNGaWVsZCIsInJhZGl1c0RvbWFpbiIsInJhZGl1c1NjYWxlIiwic3Ryb2tlQ29sb3JGaWVsZCIsInN0cm9rZUNvbG9yRG9tYWluIiwic3Ryb2tlQ29sb3JTY2FsZSIsImdldEhvdmVyRGF0YSIsIm9iamVjdCIsInJvdyIsImNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUiLCJfcmVmMiIsImdldFBvc2l0aW9uIiwiX3RoaXMyIiwiZmlsdGVyZWRJbmRleCIsIm1hcCIsImZvcm1hdExheWVyRGF0YSIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwiZGF0YUlkIiwiX2RhdGFzZXRzJHRoaXMkY29uZmlnIiwiZ3B1RmlsdGVyIiwiX3RoaXMkdXBkYXRlRGF0YSIsInVwZGF0ZURhdGEiLCJkYXRhIiwiY3VzdG9tRmlsdGVyVmFsdWVBY2Nlc3NvciIsImZpZWxkSW5kZXgiLCJpbmRleEFjY2Vzc29yIiwiZiIsImRhdGFBY2Nlc3NvciIsImFjY2Vzc29ycyIsImdldEF0dHJpYnV0ZUFjY2Vzc29ycyIsImdldEZpbHRlclZhbHVlIiwiZmlsdGVyVmFsdWVBY2Nlc3NvciIsInVwZGF0ZUxheWVyTWV0YSIsImdldEZlYXR1cmUiLCJnZXRHZW9qc29uRGF0YU1hcHMiLCJib3VuZHMiLCJnZXRHZW9qc29uQm91bmRzIiwiZmVhdHVyZVR5cGVzIiwiZ2V0R2VvanNvbkZlYXR1cmVUeXBlcyIsInVwZGF0ZU1ldGEiLCJzZXRJbml0aWFsTGF5ZXJDb25maWciLCJfcmVmMyIsIm1ldGEiLCJwb2x5Z29uIiwidXBkYXRlTGF5ZXJWaXNDb25maWciLCJjb2xvck1ha2VyIiwibmV4dCIsInBvaW50IiwicmVuZGVyTGF5ZXIiLCJvcHRzIiwib2JqZWN0SG92ZXJlZCIsImdldFJhZGl1c1NjYWxlIiwibGF5ZXJQcm9wcyIsImxpbmVXaWR0aFNjYWxlIiwicG9pbnRSYWRpdXNTY2FsZSIsImxpbmVNaXRlckxpbWl0IiwidXBkYXRlVHJpZ2dlcnMiLCJnZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMiLCJmaWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJvcGFPdmVyd3JpdGUiLCJwaWNrYWJsZSIsImhhc0ludGVyYWN0aXZpdHkiLCJob3ZlcmVkT2JqZWN0IiwiaGFzSG92ZXJlZE9iamVjdCIsIkRlY2tHTEdlb0pzb25MYXllciIsImhpZ2hsaWdodENvbG9yIiwiSElHSExJR0hfQ09MT1JfM0QiLCJhdXRvSGlnaGxpZ2h0IiwiZXh0cnVkZWQiLCJ3cmFwTG9uZ2l0dWRlIiwicm91bmRlZCIsInJhZGl1c1VuaXRzIiwibGluZVdpZHRoVW5pdHMiLCJfc3ViTGF5ZXJQcm9wcyIsImxpbmUiLCJsaW5lc3RyaW5ncyIsInBvaW50cyIsImxpbmVPcGFjaXR5IiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMiLCJnZXRMaW5lV2lkdGgiLCJnZXRSYWRpdXMiLCJnZXRFbGV2YXRpb24iLCJnZXRMaW5lQ29sb3IiLCJnZXRGaWxsQ29sb3IiLCJmaW5kRGVmYXVsdExheWVyUHJvcHMiLCJfcmVmNCIsIl90aGlzMyIsImxhYmVsIiwiX3JlZjQkZmllbGRzIiwiZmllbGRzIiwiZ2VvanNvbkNvbHVtbnMiLCJhbmFseXplclR5cGUiLCJuYW1lIiwiZGVmYXVsdENvbHVtbnMiLCJ1bmlxIiwiR0VPSlNPTl9GSUVMRFMiLCJmb3VuZENvbHVtbnMiLCJmaW5kRGVmYXVsdENvbHVtbkZpZWxkIiwicmVwbGFjZSIsImlzVmlzaWJsZSIsIkxheWVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVycy9nZW9qc29uLWxheWVyL2dlb2pzb24tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHVuaXEgZnJvbSAnbG9kYXNoL3VuaXEnO1xuaW1wb3J0IHtEQVRBX1RZUEVTfSBmcm9tICd0eXBlLWFuYWx5emVyJztcblxuaW1wb3J0IExheWVyLCB7XG4gIGNvbG9yTWFrZXIsXG4gIExheWVyQmFzZUNvbmZpZyxcbiAgTGF5ZXJDb2xvckNvbmZpZyxcbiAgTGF5ZXJDb2x1bW4sXG4gIExheWVySGVpZ2h0Q29uZmlnLFxuICBMYXllclJhZGl1c0NvbmZpZyxcbiAgTGF5ZXJTaXplQ29uZmlnLFxuICBMYXllclN0cm9rZUNvbG9yQ29uZmlnXG59IGZyb20gJy4uL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtHZW9Kc29uTGF5ZXIgYXMgRGVja0dMR2VvSnNvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHtcbiAgZ2V0R2VvanNvbkRhdGFNYXBzLFxuICBnZXRHZW9qc29uQm91bmRzLFxuICBnZXRHZW9qc29uRmVhdHVyZVR5cGVzLFxuICBHZW9qc29uRGF0YU1hcHNcbn0gZnJvbSAnLi9nZW9qc29uLXV0aWxzJztcbmltcG9ydCBHZW9qc29uTGF5ZXJJY29uIGZyb20gJy4vZ2VvanNvbi1sYXllci1pY29uJztcbmltcG9ydCB7R0VPSlNPTl9GSUVMRFMsIEhJR0hMSUdIX0NPTE9SXzNELCBDSEFOTkVMX1NDQUxFU30gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtcbiAgTEFZRVJfVklTX0NPTkZJR1MsXG4gIFZpc0NvbmZpZ051bWJlcixcbiAgVmlzQ29uZmlnQ29sb3JTZWxlY3QsXG4gIFZpc0NvbmZpZ0NvbG9yUmFuZ2UsXG4gIFZpc0NvbmZpZ1JhbmdlLFxuICBWaXNDb25maWdCb29sZWFuXG59IGZyb20gJy4uL2xheWVyLWZhY3RvcnknO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICcuLi8uLi91dGlscy90YWJsZS11dGlscy9kYXRhLWNvbnRhaW5lci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtNZXJnZSwgUkdCQ29sb3J9IGZyb20gJy4uLy4uL3JlZHVjZXJzJztcbmltcG9ydCB7Q29sb3JSYW5nZX0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbG9yLXJhbmdlcyc7XG5pbXBvcnQge0tlcGxlclRhYmxlfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IFNVUFBPUlRFRF9BTkFMWVpFUl9UWVBFUyA9IHtcbiAgW0RBVEFfVFlQRVMuR0VPTUVUUlldOiB0cnVlLFxuICBbREFUQV9UWVBFUy5HRU9NRVRSWV9GUk9NX1NUUklOR106IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBnZW9qc29uVmlzQ29uZmlnczoge1xuICBvcGFjaXR5OiAnb3BhY2l0eSc7XG4gIHN0cm9rZU9wYWNpdHk6IFZpc0NvbmZpZ051bWJlcjtcbiAgdGhpY2tuZXNzOiBWaXNDb25maWdOdW1iZXI7XG4gIHN0cm9rZUNvbG9yOiAnc3Ryb2tlQ29sb3InO1xuICBjb2xvclJhbmdlOiAnY29sb3JSYW5nZSc7XG4gIHN0cm9rZUNvbG9yUmFuZ2U6ICdzdHJva2VDb2xvclJhbmdlJztcbiAgcmFkaXVzOiAncmFkaXVzJztcblxuICBzaXplUmFuZ2U6ICdzdHJva2VXaWR0aFJhbmdlJztcbiAgcmFkaXVzUmFuZ2U6ICdyYWRpdXNSYW5nZSc7XG4gIGhlaWdodFJhbmdlOiAnZWxldmF0aW9uUmFuZ2UnO1xuICBlbGV2YXRpb25TY2FsZTogJ2VsZXZhdGlvblNjYWxlJztcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcjogJ2VuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InO1xuICBzdHJva2VkOiAnc3Ryb2tlZCc7XG4gIGZpbGxlZDogJ2ZpbGxlZCc7XG4gIGVuYWJsZTNkOiAnZW5hYmxlM2QnO1xuICB3aXJlZnJhbWU6ICd3aXJlZnJhbWUnO1xufSA9IHtcbiAgb3BhY2l0eTogJ29wYWNpdHknLFxuICBzdHJva2VPcGFjaXR5OiB7XG4gICAgLi4uTEFZRVJfVklTX0NPTkZJR1Mub3BhY2l0eSxcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZU9wYWNpdHknXG4gIH0sXG4gIHRoaWNrbmVzczoge1xuICAgIC4uLkxBWUVSX1ZJU19DT05GSUdTLnRoaWNrbmVzcyxcbiAgICBkZWZhdWx0VmFsdWU6IDFcbiAgfSxcbiAgc3Ryb2tlQ29sb3I6ICdzdHJva2VDb2xvcicsXG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJyxcbiAgc3Ryb2tlQ29sb3JSYW5nZTogJ3N0cm9rZUNvbG9yUmFuZ2UnLFxuICByYWRpdXM6ICdyYWRpdXMnLFxuXG4gIHNpemVSYW5nZTogJ3N0cm9rZVdpZHRoUmFuZ2UnLFxuICByYWRpdXNSYW5nZTogJ3JhZGl1c1JhbmdlJyxcbiAgaGVpZ2h0UmFuZ2U6ICdlbGV2YXRpb25SYW5nZScsXG4gIGVsZXZhdGlvblNjYWxlOiAnZWxldmF0aW9uU2NhbGUnLFxuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gIHN0cm9rZWQ6ICdzdHJva2VkJyxcbiAgZmlsbGVkOiAnZmlsbGVkJyxcbiAgZW5hYmxlM2Q6ICdlbmFibGUzZCcsXG4gIHdpcmVmcmFtZTogJ3dpcmVmcmFtZSdcbn07XG5cbmV4cG9ydCB0eXBlIEdlb0pzb25WaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgb3BhY2l0eTogVmlzQ29uZmlnTnVtYmVyO1xuICBzdHJva2VPcGFjaXR5OiBWaXNDb25maWdOdW1iZXI7XG4gIHRoaWNrbmVzczogVmlzQ29uZmlnTnVtYmVyO1xuICBzdHJva2VDb2xvcjogVmlzQ29uZmlnQ29sb3JTZWxlY3Q7XG4gIGNvbG9yUmFuZ2U6IFZpc0NvbmZpZ0NvbG9yUmFuZ2U7XG4gIHN0cm9rZUNvbG9yUmFuZ2U6IFZpc0NvbmZpZ0NvbG9yUmFuZ2U7XG4gIHJhZGl1czogVmlzQ29uZmlnTnVtYmVyO1xuXG4gIHNpemVSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIHJhZGl1c1JhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgaGVpZ2h0UmFuZ2U6IFZpc0NvbmZpZ1JhbmdlO1xuICBlbGV2YXRpb25TY2FsZTogVmlzQ29uZmlnTnVtYmVyO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBWaXNDb25maWdCb29sZWFuO1xuICBzdHJva2VkOiBWaXNDb25maWdCb29sZWFuO1xuICBmaWxsZWQ6IFZpc0NvbmZpZ0Jvb2xlYW47XG4gIGVuYWJsZTNkOiBWaXNDb25maWdCb29sZWFuO1xuICB3aXJlZnJhbWU6IFZpc0NvbmZpZ0Jvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBHZW9Kc29uTGF5ZXJDb2x1bW5zQ29uZmlnID0ge1xuICBnZW9qc29uOiBMYXllckNvbHVtbjtcbn07XG5cbmV4cG9ydCB0eXBlIEdlb0pzb25MYXllclZpc0NvbmZpZyA9IHtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBzdHJva2VPcGFjaXR5OiBudW1iZXI7XG4gIHRoaWNrbmVzczogbnVtYmVyO1xuICBzdHJva2VDb2xvcjogUkdCQ29sb3I7XG4gIGNvbG9yUmFuZ2U6IENvbG9yUmFuZ2U7XG4gIHN0cm9rZUNvbG9yUmFuZ2U6IENvbG9yUmFuZ2U7XG4gIHJhZGl1czogbnVtYmVyO1xuXG4gIHNpemVSYW5nZTogW251bWJlciwgbnVtYmVyXTtcbiAgcmFkaXVzUmFuZ2U6IFtudW1iZXIsIG51bWJlcl07XG4gIGhlaWdodFJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBlbGV2YXRpb25TY2FsZTogbnVtYmVyO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBib29sZWFuO1xuICBzdHJva2VkOiBib29sZWFuO1xuICBmaWxsZWQ6IGJvb2xlYW47XG4gIGVuYWJsZTNkOiBib29sZWFuO1xuICB3aXJlZnJhbWU6IGJvb2xlYW47XG59O1xuXG50eXBlIEdlb0pzb25MYXllclZpc3VhbENoYW5uZWxDb25maWcgPSBMYXllckNvbG9yQ29uZmlnICZcbiAgTGF5ZXJTdHJva2VDb2xvckNvbmZpZyAmXG4gIExheWVyU2l6ZUNvbmZpZyAmXG4gIExheWVySGVpZ2h0Q29uZmlnICZcbiAgTGF5ZXJSYWRpdXNDb25maWc7XG5leHBvcnQgdHlwZSBHZW9Kc29uTGF5ZXJDb25maWcgPSBNZXJnZTxcbiAgTGF5ZXJCYXNlQ29uZmlnLFxuICB7Y29sdW1uczogR2VvSnNvbkxheWVyQ29sdW1uc0NvbmZpZzsgdmlzQ29uZmlnOiBHZW9Kc29uTGF5ZXJWaXNDb25maWd9XG4+ICZcbiAgR2VvSnNvbkxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZztcblxuZXhwb3J0IHR5cGUgR2VvSnNvbkxheWVyTWV0YSA9IHtcbiAgZmVhdHVyZVR5cGVzPzoge3BvbHlnb246IGJvb2xlYW47IHBvaW50OiBib29sZWFuOyBsaW5lOiBib29sZWFufTtcbiAgZml4ZWRSYWRpdXM/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlb0pzb25SZXF1aXJlZENvbHVtbnM6IFsnZ2VvanNvbiddID0gWydnZW9qc29uJ107XG5leHBvcnQgY29uc3QgZmVhdHVyZUFjY2Vzc29yID0gKHtnZW9qc29ufTogR2VvSnNvbkxheWVyQ29sdW1uc0NvbmZpZykgPT4gKFxuICBkYzogRGF0YUNvbnRhaW5lckludGVyZmFjZVxuKSA9PiBkID0+IGRjLnZhbHVlQXQoZC5pbmRleCwgZ2VvanNvbi5maWVsZElkeCk7XG5cbi8vIGFjY2VzcyBmZWF0dXJlIHByb3BlcnRpZXMgZnJvbSBnZW9qc29uIHN1YiBsYXllclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFbGV2YXRpb24gPSA1MDA7XG5leHBvcnQgY29uc3QgZGVmYXVsdExpbmVXaWR0aCA9IDE7XG5leHBvcnQgY29uc3QgZGVmYXVsdFJhZGl1cyA9IDE7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdlb0pzb25MYXllciBleHRlbmRzIExheWVyIHtcbiAgZGVjbGFyZSBjb25maWc6IEdlb0pzb25MYXllckNvbmZpZztcbiAgZGVjbGFyZSB2aXNDb25maWdTZXR0aW5nczogR2VvSnNvblZpc0NvbmZpZ1NldHRpbmdzO1xuICBkZWNsYXJlIG1ldGE6IEdlb0pzb25MYXllck1ldGE7XG4gIGRhdGFUb0ZlYXR1cmU6IEdlb2pzb25EYXRhTWFwcztcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuZGF0YVRvRmVhdHVyZSA9IFtdO1xuICAgIHRoaXMucmVnaXN0ZXJWaXNDb25maWcoZ2VvanNvblZpc0NvbmZpZ3MpO1xuICAgIHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvciA9IChkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlKSA9PlxuICAgICAgZmVhdHVyZUFjY2Vzc29yKHRoaXMuY29uZmlnLmNvbHVtbnMpKGRhdGFDb250YWluZXIpO1xuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIEdlb0pzb25MYXllci50eXBlO1xuICB9XG4gIHN0YXRpYyBnZXQgdHlwZSgpOiAnZ2VvanNvbicge1xuICAgIHJldHVybiAnZ2VvanNvbic7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnUG9seWdvbic7XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBHZW9qc29uTGF5ZXJJY29uO1xuICB9XG5cbiAgZ2V0IHJlcXVpcmVkTGF5ZXJDb2x1bW5zKCkge1xuICAgIHJldHVybiBnZW9Kc29uUmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IHZpc3VhbENoYW5uZWxzKCkge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gc3VwZXIudmlzdWFsQ2hhbm5lbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZmlsbGVkLFxuICAgICAgICBudWxsVmFsdWU6IHZpc3VhbENoYW5uZWxzLmNvbG9yLm51bGxWYWx1ZSxcbiAgICAgICAgZ2V0QXR0cmlidXRlVmFsdWU6IGNvbmZpZyA9PiBkID0+IGQucHJvcGVydGllcy5maWxsQ29sb3IgfHwgY29uZmlnLmNvbG9yLFxuICAgICAgICAvLyB1c2VkIHRoaXMgdG8gZ2V0IHVwZGF0ZVRyaWdnZXJzXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogY29uZmlnID0+IGNvbmZpZy5jb2xvclxuICAgICAgfSxcbiAgICAgIHN0cm9rZUNvbG9yOiB7XG4gICAgICAgIHByb3BlcnR5OiAnc3Ryb2tlQ29sb3InLFxuICAgICAgICBmaWVsZDogJ3N0cm9rZUNvbG9yRmllbGQnLFxuICAgICAgICBzY2FsZTogJ3N0cm9rZUNvbG9yU2NhbGUnLFxuICAgICAgICBkb21haW46ICdzdHJva2VDb2xvckRvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnc3Ryb2tlQ29sb3JSYW5nZScsXG4gICAgICAgIGtleTogJ3N0cm9rZUNvbG9yJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuY29sb3IsXG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0TGluZUNvbG9yJyxcbiAgICAgICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZy5zdHJva2VkLFxuICAgICAgICBudWxsVmFsdWU6IHZpc3VhbENoYW5uZWxzLmNvbG9yLm51bGxWYWx1ZSxcbiAgICAgICAgZ2V0QXR0cmlidXRlVmFsdWU6IGNvbmZpZyA9PiBkID0+XG4gICAgICAgICAgZC5wcm9wZXJ0aWVzLmxpbmVDb2xvciB8fCBjb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yIHx8IGNvbmZpZy5jb2xvcixcbiAgICAgICAgLy8gdXNlZCB0aGlzIHRvIGdldCB1cGRhdGVUcmlnZ2Vyc1xuICAgICAgICBkZWZhdWx0VmFsdWU6IGNvbmZpZyA9PiBjb25maWcudmlzQ29uZmlnLnN0cm9rZUNvbG9yIHx8IGNvbmZpZy5jb2xvclxuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgLi4udmlzdWFsQ2hhbm5lbHMuc2l6ZSxcbiAgICAgICAgcHJvcGVydHk6ICdzdHJva2UnLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldExpbmVXaWR0aCcsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuc3Ryb2tlZCxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBnZXRBdHRyaWJ1dGVWYWx1ZTogKCkgPT4gZCA9PiBkLnByb3BlcnRpZXMubGluZVdpZHRoIHx8IGRlZmF1bHRMaW5lV2lkdGhcbiAgICAgIH0sXG4gICAgICBoZWlnaHQ6IHtcbiAgICAgICAgcHJvcGVydHk6ICdoZWlnaHQnLFxuICAgICAgICBmaWVsZDogJ2hlaWdodEZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICdoZWlnaHRTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ2hlaWdodERvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnaGVpZ2h0UmFuZ2UnLFxuICAgICAgICBrZXk6ICdoZWlnaHQnLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5zaXplLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEVsZXZhdGlvbicsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QsXG4gICAgICAgIG51bGxWYWx1ZTogMCxcbiAgICAgICAgZ2V0QXR0cmlidXRlVmFsdWU6ICgpID0+IGQgPT4gZC5wcm9wZXJ0aWVzLmVsZXZhdGlvbiB8fCBkZWZhdWx0RWxldmF0aW9uXG4gICAgICB9LFxuICAgICAgcmFkaXVzOiB7XG4gICAgICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICAgICAgZmllbGQ6ICdyYWRpdXNGaWVsZCcsXG4gICAgICAgIHNjYWxlOiAncmFkaXVzU2NhbGUnLFxuICAgICAgICBkb21haW46ICdyYWRpdXNEb21haW4nLFxuICAgICAgICByYW5nZTogJ3JhZGl1c1JhbmdlJyxcbiAgICAgICAga2V5OiAncmFkaXVzJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMucmFkaXVzLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgICAgIG51bGxWYWx1ZTogMCxcbiAgICAgICAgZ2V0QXR0cmlidXRlVmFsdWU6ICgpID0+IGQgPT4gZC5wcm9wZXJ0aWVzLnJhZGl1cyB8fCBkZWZhdWx0UmFkaXVzXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmaW5kRGVmYXVsdExheWVyUHJvcHMoe2xhYmVsLCBmaWVsZHMgPSBbXX06IEtlcGxlclRhYmxlKSB7XG4gICAgY29uc3QgZ2VvanNvbkNvbHVtbnMgPSBmaWVsZHNcbiAgICAgIC5maWx0ZXIoZiA9PiBmLnR5cGUgPT09ICdnZW9qc29uJyAmJiBTVVBQT1JURURfQU5BTFlaRVJfVFlQRVNbZi5hbmFseXplclR5cGVdKVxuICAgICAgLm1hcChmID0+IGYubmFtZSk7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29sdW1ucyA9IHtcbiAgICAgIGdlb2pzb246IHVuaXEoWy4uLkdFT0pTT05fRklFTERTLmdlb2pzb24sIC4uLmdlb2pzb25Db2x1bW5zXSlcbiAgICB9O1xuXG4gICAgY29uc3QgZm91bmRDb2x1bW5zID0gdGhpcy5maW5kRGVmYXVsdENvbHVtbkZpZWxkKGRlZmF1bHRDb2x1bW5zLCBmaWVsZHMpO1xuICAgIGlmICghZm91bmRDb2x1bW5zIHx8ICFmb3VuZENvbHVtbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge3Byb3BzOiBbXX07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3BzOiBmb3VuZENvbHVtbnMubWFwKGNvbHVtbnMgPT4gKHtcbiAgICAgICAgbGFiZWw6ICh0eXBlb2YgbGFiZWwgPT09ICdzdHJpbmcnICYmIGxhYmVsLnJlcGxhY2UoL1xcLlteLy5dKyQvLCAnJykpIHx8IHRoaXMudHlwZSxcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgaXNWaXNpYmxlOiB0cnVlXG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzKSxcblxuICAgICAgLy8gYWRkIGhlaWdodCB2aXN1YWwgY2hhbm5lbFxuICAgICAgaGVpZ2h0RmllbGQ6IG51bGwsXG4gICAgICBoZWlnaHREb21haW46IFswLCAxXSxcbiAgICAgIGhlaWdodFNjYWxlOiAnbGluZWFyJyxcblxuICAgICAgLy8gYWRkIHJhZGl1cyB2aXN1YWwgY2hhbm5lbFxuICAgICAgcmFkaXVzRmllbGQ6IG51bGwsXG4gICAgICByYWRpdXNEb21haW46IFswLCAxXSxcbiAgICAgIHJhZGl1c1NjYWxlOiAnbGluZWFyJyxcblxuICAgICAgLy8gYWRkIHN0cm9rZSBjb2xvciB2aXN1YWwgY2hhbm5lbFxuICAgICAgc3Ryb2tlQ29sb3JGaWVsZDogbnVsbCxcbiAgICAgIHN0cm9rZUNvbG9yRG9tYWluOiBbMCwgMV0sXG4gICAgICBzdHJva2VDb2xvclNjYWxlOiAncXVhbnRpbGUnXG4gICAgfTtcbiAgfVxuXG4gIGdldEhvdmVyRGF0YShvYmplY3QsIGRhdGFDb250YWluZXIpIHtcbiAgICAvLyBpbmRleCBvZiBkYXRhQ29udGFpbmVyIGlzIHNhdmVkIHRvIGZlYXR1cmUucHJvcGVydGllc1xuICAgIHJldHVybiBkYXRhQ29udGFpbmVyLnJvdyhvYmplY3QucHJvcGVydGllcy5pbmRleCk7XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtkYXRhQ29udGFpbmVyLCBmaWx0ZXJlZEluZGV4fSwgZ2V0UG9zaXRpb24pIHtcbiAgICByZXR1cm4gZmlsdGVyZWRJbmRleC5tYXAoaSA9PiB0aGlzLmRhdGFUb0ZlYXR1cmVbaV0pLmZpbHRlcihkID0+IGQpO1xuICB9XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YUlkID09PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHtncHVGaWx0ZXIsIGRhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnVwZGF0ZURhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG5cbiAgICBjb25zdCBjdXN0b21GaWx0ZXJWYWx1ZUFjY2Vzc29yID0gKGRjLCBkLCBmaWVsZEluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gZGMudmFsdWVBdChkLnByb3BlcnRpZXMuaW5kZXgsIGZpZWxkSW5kZXgpO1xuICAgIH07XG4gICAgY29uc3QgaW5kZXhBY2Nlc3NvciA9IGYgPT4gZi5wcm9wZXJ0aWVzLmluZGV4O1xuXG4gICAgY29uc3QgZGF0YUFjY2Vzc29yID0gZGMgPT4gZCA9PiAoe2luZGV4OiBkLnByb3BlcnRpZXMuaW5kZXh9KTtcbiAgICBjb25zdCBhY2Nlc3NvcnMgPSB0aGlzLmdldEF0dHJpYnV0ZUFjY2Vzc29ycyh7ZGF0YUFjY2Vzc29yLCBkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldEZpbHRlclZhbHVlOiBncHVGaWx0ZXIuZmlsdGVyVmFsdWVBY2Nlc3NvcihkYXRhQ29udGFpbmVyKShcbiAgICAgICAgaW5kZXhBY2Nlc3NvcixcbiAgICAgICAgY3VzdG9tRmlsdGVyVmFsdWVBY2Nlc3NvclxuICAgICAgKSxcbiAgICAgIC4uLmFjY2Vzc29yc1xuICAgIH07XG4gIH1cblxuICB1cGRhdGVMYXllck1ldGEoZGF0YUNvbnRhaW5lcikge1xuICAgIGNvbnN0IGdldEZlYXR1cmUgPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgdGhpcy5kYXRhVG9GZWF0dXJlID0gZ2V0R2VvanNvbkRhdGFNYXBzKGRhdGFDb250YWluZXIsIGdldEZlYXR1cmUpO1xuXG4gICAgLy8gZ2V0IGJvdW5kcyBmcm9tIGZlYXR1cmVzXG4gICAgY29uc3QgYm91bmRzID0gZ2V0R2VvanNvbkJvdW5kcyh0aGlzLmRhdGFUb0ZlYXR1cmUpO1xuXG4gICAgLy8ga2VlcCBhIHJlY29yZCBvZiB3aGF0IHR5cGUgb2YgZ2VvbWV0cnkgdGhlIGNvbGxlY3Rpb24gaGFzXG4gICAgY29uc3QgZmVhdHVyZVR5cGVzID0gZ2V0R2VvanNvbkZlYXR1cmVUeXBlcyh0aGlzLmRhdGFUb0ZlYXR1cmUpO1xuXG4gICAgdGhpcy51cGRhdGVNZXRhKHtib3VuZHMsIGZlYXR1cmVUeXBlc30pO1xuICB9XG5cbiAgc2V0SW5pdGlhbExheWVyQ29uZmlnKHtkYXRhQ29udGFpbmVyfSkge1xuICAgIHRoaXMudXBkYXRlTGF5ZXJNZXRhKGRhdGFDb250YWluZXIpO1xuXG4gICAgY29uc3Qge2ZlYXR1cmVUeXBlc30gPSB0aGlzLm1ldGE7XG4gICAgLy8gZGVmYXVsdCBzZXR0aW5ncyBpcyBzdHJva2U6IHRydWUsIGZpbGxlZDogZmFsc2VcbiAgICBpZiAoZmVhdHVyZVR5cGVzICYmIGZlYXR1cmVUeXBlcy5wb2x5Z29uKSB7XG4gICAgICAvLyBzZXQgYm90aCBmaWxsIGFuZCBzdHJva2UgdG8gdHJ1ZVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTGF5ZXJWaXNDb25maWcoe1xuICAgICAgICBmaWxsZWQ6IHRydWUsXG4gICAgICAgIHN0cm9rZWQ6IHRydWUsXG4gICAgICAgIHN0cm9rZUNvbG9yOiBjb2xvck1ha2VyLm5leHQoKS52YWx1ZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChmZWF0dXJlVHlwZXMgJiYgZmVhdHVyZVR5cGVzLnBvaW50KSB7XG4gICAgICAvLyBzZXQgZmlsbCB0byB0cnVlIGlmIGRldGVjdCBwb2ludFxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTGF5ZXJWaXNDb25maWcoe2ZpbGxlZDogdHJ1ZSwgc3Ryb2tlZDogZmFsc2V9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlbmRlckxheWVyKG9wdHMpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ3B1RmlsdGVyLCBvYmplY3RIb3ZlcmVkfSA9IG9wdHM7XG5cbiAgICBjb25zdCB7ZmVhdHVyZVR5cGVzfSA9IHRoaXMubWV0YTtcbiAgICBjb25zdCByYWRpdXNTY2FsZSA9IHRoaXMuZ2V0UmFkaXVzU2NhbGUoKTtcbiAgICBjb25zdCB7dmlzQ29uZmlnfSA9IHRoaXMuY29uZmlnO1xuXG4gICAgY29uc3QgbGF5ZXJQcm9wcyA9IHtcbiAgICAgIGxpbmVXaWR0aFNjYWxlOiB2aXNDb25maWcudGhpY2tuZXNzLFxuICAgICAgZWxldmF0aW9uU2NhbGU6IHZpc0NvbmZpZy5lbGV2YXRpb25TY2FsZSxcbiAgICAgIHBvaW50UmFkaXVzU2NhbGU6IHJhZGl1c1NjYWxlLFxuICAgICAgbGluZU1pdGVyTGltaXQ6IDRcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlVHJpZ2dlcnMgPSB7XG4gICAgICAuLi50aGlzLmdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycygpLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3Qgb3BhT3ZlcndyaXRlID0ge1xuICAgICAgb3BhY2l0eTogdmlzQ29uZmlnLnN0cm9rZU9wYWNpdHlcbiAgICB9O1xuXG4gICAgY29uc3QgcGlja2FibGUgPSB0aGlzLmhhc0ludGVyYWN0aXZpdHk7XG4gICAgY29uc3QgaG92ZXJlZE9iamVjdCA9IHRoaXMuaGFzSG92ZXJlZE9iamVjdChvYmplY3RIb3ZlcmVkKTtcblxuICAgIHJldHVybiBbXG4gICAgICBuZXcgRGVja0dMR2VvSnNvbkxheWVyKHtcbiAgICAgICAgLi4uZGVmYXVsdExheWVyUHJvcHMsXG4gICAgICAgIC4uLmxheWVyUHJvcHMsXG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHBpY2thYmxlLFxuICAgICAgICBoaWdobGlnaHRDb2xvcjogSElHSExJR0hfQ09MT1JfM0QsXG4gICAgICAgIGF1dG9IaWdobGlnaHQ6IHZpc0NvbmZpZy5lbmFibGUzZCAmJiBwaWNrYWJsZSxcbiAgICAgICAgc3Ryb2tlZDogdmlzQ29uZmlnLnN0cm9rZWQsXG4gICAgICAgIGZpbGxlZDogdmlzQ29uZmlnLmZpbGxlZCxcbiAgICAgICAgZXh0cnVkZWQ6IHZpc0NvbmZpZy5lbmFibGUzZCxcbiAgICAgICAgd2lyZWZyYW1lOiB2aXNDb25maWcud2lyZWZyYW1lLFxuICAgICAgICB3cmFwTG9uZ2l0dWRlOiBmYWxzZSxcbiAgICAgICAgbGluZU1pdGVyTGltaXQ6IDIsXG4gICAgICAgIHJvdW5kZWQ6IHRydWUsXG4gICAgICAgIHJhZGl1c1VuaXRzOiAncGl4ZWxzJyxcbiAgICAgICAgbGluZVdpZHRoVW5pdHM6ICdwaXhlbHMnLFxuICAgICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgICAgX3N1YkxheWVyUHJvcHM6IHtcbiAgICAgICAgICAuLi4oZmVhdHVyZVR5cGVzPy5wb2x5Z29uID8geydwb2x5Z29ucy1zdHJva2UnOiBvcGFPdmVyd3JpdGV9IDoge30pLFxuICAgICAgICAgIC4uLihmZWF0dXJlVHlwZXM/LmxpbmUgPyB7bGluZXN0cmluZ3M6IG9wYU92ZXJ3cml0ZX0gOiB7fSksXG4gICAgICAgICAgLi4uKGZlYXR1cmVUeXBlcz8ucG9pbnRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIHBvaW50czoge1xuICAgICAgICAgICAgICAgICAgbGluZU9wYWNpdHk6IHZpc0NvbmZpZy5zdHJva2VPcGFjaXR5XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0ICYmICF2aXNDb25maWcuZW5hYmxlM2RcbiAgICAgICAgPyBbXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICBuZXcgRGVja0dMR2VvSnNvbkxheWVyKHtcbiAgICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0SG92ZXJMYXllclByb3BzKCksXG4gICAgICAgICAgICAgIC4uLmxheWVyUHJvcHMsXG4gICAgICAgICAgICAgIHdyYXBMb25naXR1ZGU6IGZhbHNlLFxuICAgICAgICAgICAgICBkYXRhOiBbaG92ZXJlZE9iamVjdF0sXG4gICAgICAgICAgICAgIGdldExpbmVXaWR0aDogZGF0YS5nZXRMaW5lV2lkdGgsXG4gICAgICAgICAgICAgIGdldFJhZGl1czogZGF0YS5nZXRSYWRpdXMsXG4gICAgICAgICAgICAgIGdldEVsZXZhdGlvbjogZGF0YS5nZXRFbGV2YXRpb24sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5jb25maWcuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICAgIC8vIGFsd2F5cyBkcmF3IG91dGxpbmVcbiAgICAgICAgICAgICAgc3Ryb2tlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgZmlsbGVkOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pXG4gICAgXTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtB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
|
|
@@ -15,7 +15,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
15
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
17
|
var _reselect = require("reselect");
|
|
18
|
-
var
|
|
18
|
+
var _memoize = _interopRequireDefault(require("lodash/memoize"));
|
|
19
19
|
var _defaultSettings = require("../../constants/default-settings");
|
|
20
20
|
var _colorUtils = require("../../utils/color-utils");
|
|
21
21
|
var _mapboxglLayer = _interopRequireDefault(require("../mapboxgl-layer"));
|
|
@@ -132,7 +132,7 @@ var HeatmapLayer = /*#__PURE__*/function (_MapboxGLLayer) {
|
|
|
132
132
|
} : {});
|
|
133
133
|
}));
|
|
134
134
|
_this.registerVisConfig(heatmapVisConfigs);
|
|
135
|
-
_this.getPosition = (0,
|
|
135
|
+
_this.getPosition = (0, _memoize["default"])(pointPosAccessor, pointColResolver);
|
|
136
136
|
return _this;
|
|
137
137
|
}
|
|
138
138
|
(0, _inherits2["default"])(HeatmapLayer, _MapboxGLLayer);
|
|
@@ -233,4 +233,4 @@ var HeatmapLayer = /*#__PURE__*/function (_MapboxGLLayer) {
|
|
|
233
233
|
}]);
|
|
234
234
|
}(_mapboxglLayer["default"]);
|
|
235
235
|
var _default = exports["default"] = HeatmapLayer;
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVzZWxlY3QiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2NvbG9yVXRpbHMiLCJfbWFwYm94Z2xMYXllciIsIl9oZWF0bWFwTGF5ZXJJY29uIiwiX2V4Y2x1ZGVkIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiTUFYX1pPT01fTEVWRUwiLCJleHBvcnRzIiwicG9pbnRQb3NBY2Nlc3NvciIsIl9yZWYiLCJsYXQiLCJsbmciLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsInBvaW50Q29sUmVzb2x2ZXIiLCJfcmVmMiIsImNvbmNhdCIsImhlYXRtYXBWaXNDb25maWdzIiwib3BhY2l0eSIsImNvbG9yUmFuZ2UiLCJyYWRpdXMiLCJoZWF0bWFwRGVuc2l0eSIsInNjYWxlRnVuY3Rpb24iLCJTQ0FMRV9GVU5DIiwicXVhbnRpemUiLCJjb2xvcnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsImNvbG9yRGVuc2l0eSIsInJlZHVjZSIsImJhbmRzIiwibGV2ZWwiLCJpbnZlcnQiLCJpbnZlcnRFeHRlbnQiLCJoZXhUb1JnYiIsImpvaW4iLCJIZWF0bWFwTGF5ZXIiLCJfTWFwYm94R0xMYXllciIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiY29uZmlnIiwiY29sdW1ucyIsInZpc0NvbmZpZyIsIndlaWdodEZpZWxkIiwibmFtZSIsIndlaWdodERvbWFpbiIsImNyZWF0ZVNlbGVjdG9yIiwidmlzQ29uZmlnU2VsZWN0b3IiLCJ3ZWlnaHRGaWVsZFNlbGVjdG9yIiwid2VpZ2h0RG9tYWluU2VsZWN0b3IiLCJzb3VyY2VTZWxlY3RvciIsImZpbHRlclNlbGVjdG9yIiwicGFpbnRTZWxlY3RvciIsInNvdXJjZSIsInBhaW50IiwidHlwZSIsImlkIiwibGF5b3V0IiwidmlzaWJpbGl0eSIsIm1heHpvb20iLCJpc1ZhbGlkRmlsdGVyIiwicmVnaXN0ZXJWaXNDb25maWciLCJnZXRQb3NpdGlvbiIsIm1lbW9pemUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsIndlaWdodCIsInByb3BlcnR5IiwiZmllbGQiLCJkZWZhdWx0TWVhc3VyZSIsInN1cHBvcnRlZEZpZWxkVHlwZXMiLCJBTExfRklFTERfVFlQRVMiLCJyZWFsIiwiaW50ZWdlciIsImNoYW5uZWxTY2FsZVR5cGUiLCJDSEFOTkVMX1NDQUxFUyIsInNpemUiLCJIZWF0bWFwTGF5ZXJJY29uIiwidmFsdWUiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJjaGFubmVsIiwibGFiZWwiLCJtZWFzdXJlIiwiZ2V0RGVmYXVsdExheWVyQ29uZmlnIiwidW5kZWZpbmVkIiwiX3N1cGVyUHJvcEdldCR3ZWlnaHRGIiwid2VpZ2h0U2NhbGUiLCJjb2xvckZpZWxkIiwiY29sb3JEb21haW4iLCJjb2xvclNjYWxlIiwibGF5ZXJDb25maWciLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiZ2V0UG9zaXRpb25BY2Nlc3NvciIsImRhdGFDb250YWluZXIiLCJ1cGRhdGVMYXllck1ldGEiLCJib3VuZHMiLCJnZXRQb2ludHNCb3VuZHMiLCJ1cGRhdGVNZXRhIiwiZm9ybWF0TGF5ZXJEYXRhIiwiZGF0YXNldHMiLCJvbGRMYXllckRhdGEiLCJkYXRhSWQiLCJfdGhpcyR1cGRhdGVEYXRhIiwidXBkYXRlRGF0YSIsImRhdGEiLCJuZXdDb25maWciLCJjb21wdXRlSGVhdG1hcENvbmZpZ3VyYXRpb24iLCJNYXBib3hHTExheWVyIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXJzL2hlYXRtYXAtbGF5ZXIvaGVhdG1hcC1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdsb2Rhc2gubWVtb2l6ZSc7XG5pbXBvcnQge0NIQU5ORUxfU0NBTEVTLCBTQ0FMRV9GVU5DLCBBTExfRklFTERfVFlQRVN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7aGV4VG9SZ2J9IGZyb20gJ3V0aWxzL2NvbG9yLXV0aWxzJztcbmltcG9ydCBNYXBib3hHTExheWVyLCB7TWFwYm94TGF5ZXJHTENvbmZpZ30gZnJvbSAnLi4vbWFwYm94Z2wtbGF5ZXInO1xuaW1wb3J0IEhlYXRtYXBMYXllckljb24gZnJvbSAnLi9oZWF0bWFwLWxheWVyLWljb24nO1xuaW1wb3J0IHtMYXllckNvbHVtbiwgTGF5ZXJXZWlnaHRDb25maWcsIFZpc3VhbENoYW5uZWxzfSBmcm9tICcuLi9iYXNlLWxheWVyJztcbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZX0gZnJvbSAndXRpbHMvdGFibGUtdXRpbHMvZGF0YS1jb250YWluZXItaW50ZXJmYWNlJztcbmltcG9ydCB7VmlzQ29uZmlnQ29sb3JSYW5nZSwgVmlzQ29uZmlnTnVtYmVyfSBmcm9tICcuLi9sYXllci1mYWN0b3J5JztcbmltcG9ydCB7Q29sb3JSYW5nZX0gZnJvbSAnY29uc3RhbnRzL2NvbG9yLXJhbmdlcyc7XG5pbXBvcnQge0hleENvbG9yLCBNZXJnZX0gZnJvbSAncmVkdWNlcnMnO1xuXG5leHBvcnQgdHlwZSBIZWF0bWFwTGF5ZXJWaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgb3BhY2l0eTogVmlzQ29uZmlnTnVtYmVyO1xuICBjb2xvclJhbmdlOiBWaXNDb25maWdDb2xvclJhbmdlO1xuICByYWRpdXM6IFZpc0NvbmZpZ051bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEhlYXRtYXBMYXllckNvbHVtbnNDb25maWcgPSB7bGF0OiBMYXllckNvbHVtbjsgbG5nOiBMYXllckNvbHVtbn07XG5cbmV4cG9ydCB0eXBlIEhlYXRtYXBMYXllclZpc0NvbmZpZyA9IHtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBjb2xvclJhbmdlOiBDb2xvclJhbmdlO1xuICByYWRpdXM6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEhlYXRtYXBMYXllclZpc3VhbENoYW5uZWxDb25maWcgPSBMYXllcldlaWdodENvbmZpZztcbmV4cG9ydCB0eXBlIEhlYXRtYXBMYXllckNvbmZpZyA9IE1lcmdlPFxuICBNYXBib3hMYXllckdMQ29uZmlnLFxuICB7Y29sdW1uczogSGVhdG1hcExheWVyQ29sdW1uc0NvbmZpZzsgdmlzQ29uZmlnOiBIZWF0bWFwTGF5ZXJWaXNDb25maWd9XG4+ICZcbiAgSGVhdG1hcExheWVyVmlzdWFsQ2hhbm5lbENvbmZpZztcblxuZXhwb3J0IGNvbnN0IE1BWF9aT09NX0xFVkVMID0gMTg7XG5cbmV4cG9ydCBjb25zdCBwb2ludFBvc0FjY2Vzc29yID0gKHtsYXQsIGxuZ306IEhlYXRtYXBMYXllckNvbHVtbnNDb25maWcpID0+IChcbiAgZGM6IERhdGFDb250YWluZXJJbnRlcmZhY2VcbikgPT4gZCA9PiBbZGMudmFsdWVBdChkLmluZGV4LCBsbmcuZmllbGRJZHgpLCBkYy52YWx1ZUF0KGQuaW5kZXgsIGxhdC5maWVsZElkeCldO1xuXG5leHBvcnQgY29uc3QgcG9pbnRDb2xSZXNvbHZlciA9ICh7bGF0LCBsbmd9OiBIZWF0bWFwTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PlxuICBgJHtsYXQuZmllbGRJZHh9LSR7bG5nLmZpZWxkSWR4fWA7XG5cbmV4cG9ydCBjb25zdCBoZWF0bWFwVmlzQ29uZmlnczoge1xuICBvcGFjaXR5OiAnb3BhY2l0eSc7XG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJztcbiAgcmFkaXVzOiAnaGVhdG1hcFJhZGl1cyc7XG59ID0ge1xuICBvcGFjaXR5OiAnb3BhY2l0eScsXG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJyxcbiAgcmFkaXVzOiAnaGVhdG1hcFJhZGl1cydcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBjb2xvclJhbmdlXG4gKiBAcmV0dXJuIFtcbiAqICAwLCBcInJnYmEoMzMsMTAyLDE3MiwwKVwiLFxuICogIDAuMiwgXCJyZ2IoMTAzLDE2OSwyMDcpXCIsXG4gKiAgMC40LCBcInJnYigyMDksMjI5LDI0MClcIixcbiAqICAwLjYsIFwicmdiKDI1MywyMTksMTk5KVwiLFxuICogIDAuOCwgXCJyZ2IoMjM5LDEzOCw5OClcIixcbiAqICAxLCBcInJnYigxNzgsMjQsNDMpXCJcbiAqIF1cbiAqL1xuY29uc3QgaGVhdG1hcERlbnNpdHkgPSAoY29sb3JSYW5nZTogQ29sb3JSYW5nZSk6IChzdHJpbmcgfCBudW1iZXIpW10gPT4ge1xuICBjb25zdCBzY2FsZUZ1bmN0aW9uID0gU0NBTEVfRlVOQy5xdWFudGl6ZTtcblxuICBjb25zdCBjb2xvcnM6IEhleENvbG9yW10gPSBbJyMwMDAwMDAnLCAuLi5jb2xvclJhbmdlLmNvbG9yc107XG5cbiAgY29uc3Qgc2NhbGUgPSBzY2FsZUZ1bmN0aW9uPEhleENvbG9yPigpXG4gICAgLmRvbWFpbihbMCwgMV0pXG4gICAgLnJhbmdlKGNvbG9ycyk7XG5cbiAgY29uc3QgY29sb3JEZW5zaXR5ID0gc2NhbGUucmFuZ2UoKS5yZWR1Y2UoKGJhbmRzOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCBsZXZlbCkgPT4ge1xuICAgIGNvbnN0IGludmVydCA9IHNjYWxlLmludmVydEV4dGVudChsZXZlbCk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmJhbmRzLFxuICAgICAgaW52ZXJ0WzBdLCAvLyBmaXJzdCB2YWx1ZSBpbiB0aGUgcmFuZ2VcbiAgICAgIGByZ2IoJHtoZXhUb1JnYihsZXZlbCkuam9pbignLCcpfSlgIC8vIGNvbG9yXG4gICAgXTtcbiAgfSwgW10pO1xuICBjb2xvckRlbnNpdHlbMV0gPSAncmdiYSgwLDAsMCwwKSc7XG4gIHJldHVybiBjb2xvckRlbnNpdHk7XG59O1xuXG5jbGFzcyBIZWF0bWFwTGF5ZXIgZXh0ZW5kcyBNYXBib3hHTExheWVyIHtcbiAgZGVjbGFyZSB2aXNDb25maWdTZXR0aW5nczogSGVhdG1hcExheWVyVmlzQ29uZmlnU2V0dGluZ3M7XG4gIGRlY2xhcmUgY29uZmlnOiBIZWF0bWFwTGF5ZXJDb25maWc7XG5cbiAgZ2V0UG9zaXRpb246IChjb25maWc6IEhlYXRtYXBMYXllckNvbHVtbnNDb25maWcpID0+IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLnJlZ2lzdGVyVmlzQ29uZmlnKGhlYXRtYXBWaXNDb25maWdzKTtcbiAgICB0aGlzLmdldFBvc2l0aW9uID0gbWVtb2l6ZShwb2ludFBvc0FjY2Vzc29yLCBwb2ludENvbFJlc29sdmVyKTtcbiAgfVxuXG4gIGdldCB0eXBlKCk6ICdoZWF0bWFwJyB7XG4gICAgcmV0dXJuICdoZWF0bWFwJztcbiAgfVxuXG4gIGdldCB2aXN1YWxDaGFubmVscygpOiBWaXN1YWxDaGFubmVscyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHdlaWdodDoge1xuICAgICAgICBwcm9wZXJ0eTogJ3dlaWdodCcsXG4gICAgICAgIGZpZWxkOiAnd2VpZ2h0RmllbGQnLFxuICAgICAgICBzY2FsZTogJ3dlaWdodFNjYWxlJyxcbiAgICAgICAgZG9tYWluOiAnd2VpZ2h0RG9tYWluJyxcbiAgICAgICAga2V5OiAnd2VpZ2h0JyxcbiAgICAgICAgLy8gc3VwcG9ydGVkRmllbGRUeXBlcyBjYW4gYmUgZGV0ZXJtaW5lZCBieSBjaGFubmVsU2NhbGVUeXBlXG4gICAgICAgIC8vIG9yIHNwZWNpZmllZCBoZXJlXG4gICAgICAgIGRlZmF1bHRNZWFzdXJlOiAncHJvcGVydHkuZGVuc2l0eScsXG4gICAgICAgIHN1cHBvcnRlZEZpZWxkVHlwZXM6IFtBTExfRklFTERfVFlQRVMucmVhbCwgQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdLFxuICAgICAgICBjaGFubmVsU2NhbGVUeXBlOiBDSEFOTkVMX1NDQUxFUy5zaXplXG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGdldCBsYXllckljb24oKSB7XG4gICAgcmV0dXJuIEhlYXRtYXBMYXllckljb247XG4gIH1cblxuICBnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oY2hhbm5lbCkge1xuICAgIHJldHVybiBjaGFubmVsID09PSAnY29sb3InXG4gICAgICA/IHtcbiAgICAgICAgICBsYWJlbDogJ3Byb3BlcnR5LmNvbG9yJyxcbiAgICAgICAgICBtZWFzdXJlOiAncHJvcGVydHkuZGVuc2l0eSdcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgbGFiZWw6ICdwcm9wZXJ0eS53ZWlnaHQnLFxuICAgICAgICAgIG1lYXN1cmU6IHRoaXMuY29uZmlnLndlaWdodEZpZWxkID8gdGhpcy5jb25maWcud2VpZ2h0RmllbGQubmFtZSA6ICdwcm9wZXJ0eS5kZW5zaXR5J1xuICAgICAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzID0ge30pOiBIZWF0bWFwTGF5ZXJDb25maWcge1xuICAgIC8vIG1hcGJveCBoZWF0bWFwIGxheWVyIGNvbG9yIGlzIGFsd2F5cyBiYXNlZCBvbiBkZW5zaXR5XG4gICAgLy8gbm8gbmVlZCB0byBzZXQgY29sb3JGaWVsZCwgY29sb3JEb21haW4gYW5kIGNvbG9yU2NhbGVcbiAgICBjb25zdCB7Y29sb3JGaWVsZCwgY29sb3JEb21haW4sIGNvbG9yU2NhbGUsIC4uLmxheWVyQ29uZmlnfSA9IHtcbiAgICAgIC4uLnN1cGVyLmdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyksXG5cbiAgICAgIHdlaWdodEZpZWxkOiBudWxsLFxuICAgICAgd2VpZ2h0RG9tYWluOiBbMCwgMV0sXG4gICAgICB3ZWlnaHRTY2FsZTogJ2xpbmVhcidcbiAgICB9O1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHJldHVybiBsYXllckNvbmZpZztcbiAgfVxuXG4gIGdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcikge1xuICAgIHJldHVybiB0aGlzLmdldFBvc2l0aW9uKHRoaXMuY29uZmlnLmNvbHVtbnMpKGRhdGFDb250YWluZXIpO1xuICB9XG5cbiAgdXBkYXRlTGF5ZXJNZXRhKGRhdGFDb250YWluZXIpIHtcbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICBjb25zdCBib3VuZHMgPSB0aGlzLmdldFBvaW50c0JvdW5kcyhkYXRhQ29udGFpbmVyLCBnZXRQb3NpdGlvbik7XG4gICAgdGhpcy51cGRhdGVNZXRhKHtib3VuZHN9KTtcbiAgfVxuXG4gIGNvbHVtbnNTZWxlY3RvciA9IGNvbmZpZyA9PiBwb2ludENvbFJlc29sdmVyKGNvbmZpZy5jb2x1bW5zKTtcbiAgdmlzQ29uZmlnU2VsZWN0b3IgPSBjb25maWcgPT4gY29uZmlnLnZpc0NvbmZpZztcbiAgd2VpZ2h0RmllbGRTZWxlY3RvciA9IGNvbmZpZyA9PiAoY29uZmlnLndlaWdodEZpZWxkID8gY29uZmlnLndlaWdodEZpZWxkLm5hbWUgOiBudWxsKTtcbiAgd2VpZ2h0RG9tYWluU2VsZWN0b3IgPSBjb25maWcgPT4gY29uZmlnLndlaWdodERvbWFpbjtcblxuICBwYWludFNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgdGhpcy52aXNDb25maWdTZWxlY3RvcixcbiAgICB0aGlzLndlaWdodEZpZWxkU2VsZWN0b3IsXG4gICAgdGhpcy53ZWlnaHREb21haW5TZWxlY3RvcixcbiAgICAodmlzQ29uZmlnLCB3ZWlnaHRGaWVsZCwgd2VpZ2h0RG9tYWluKSA9PiAoe1xuICAgICAgJ2hlYXRtYXAtd2VpZ2h0Jzogd2VpZ2h0RmllbGRcbiAgICAgICAgPyBbJ2ludGVycG9sYXRlJywgWydsaW5lYXInXSwgWydnZXQnLCB3ZWlnaHRGaWVsZF0sIHdlaWdodERvbWFpblswXSwgMCwgd2VpZ2h0RG9tYWluWzFdLCAxXVxuICAgICAgICA6IDEsXG4gICAgICAnaGVhdG1hcC1pbnRlbnNpdHknOiBbJ2ludGVycG9sYXRlJywgWydsaW5lYXInXSwgWyd6b29tJ10sIDAsIDEsIE1BWF9aT09NX0xFVkVMLCAzXSxcbiAgICAgICdoZWF0bWFwLWNvbG9yJzogW1xuICAgICAgICAnaW50ZXJwb2xhdGUnLFxuICAgICAgICBbJ2xpbmVhciddLFxuICAgICAgICBbJ2hlYXRtYXAtZGVuc2l0eSddLFxuICAgICAgICAuLi5oZWF0bWFwRGVuc2l0eSh2aXNDb25maWcuY29sb3JSYW5nZSlcbiAgICAgIF0sXG4gICAgICAnaGVhdG1hcC1yYWRpdXMnOiBbXG4gICAgICAgICdpbnRlcnBvbGF0ZScsXG4gICAgICAgIFsnbGluZWFyJ10sXG4gICAgICAgIFsnem9vbSddLFxuICAgICAgICAwLFxuICAgICAgICAyLFxuICAgICAgICBNQVhfWk9PTV9MRVZFTCxcbiAgICAgICAgdmlzQ29uZmlnLnJhZGl1cyAvLyByYWRpdXNcbiAgICAgIF0sXG4gICAgICAnaGVhdG1hcC1vcGFjaXR5JzogdmlzQ29uZmlnLm9wYWNpdHlcbiAgICB9KVxuICApO1xuXG4gIGNvbXB1dGVIZWF0bWFwQ29uZmlndXJhdGlvbiA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHRoaXMuc291cmNlU2VsZWN0b3IsXG4gICAgdGhpcy5maWx0ZXJTZWxlY3RvcixcbiAgICB0aGlzLnBhaW50U2VsZWN0b3IsXG4gICAgKHNvdXJjZSwgZmlsdGVyLCBwYWludCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2hlYXRtYXAnLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgc291cmNlLFxuICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZSdcbiAgICAgICAgfSxcbiAgICAgICAgbWF4em9vbTogTUFYX1pPT01fTEVWRUwsXG4gICAgICAgIHBhaW50LFxuICAgICAgICAuLi4odGhpcy5pc1ZhbGlkRmlsdGVyKGZpbHRlcikgPyB7ZmlsdGVyfSA6IHt9KVxuICAgICAgfTtcbiAgICB9XG4gICk7XG5cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpIHtcbiAgICBpZiAodGhpcy5jb25maWcuZGF0YUlkID09PSBudWxsKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHt3ZWlnaHRGaWVsZH0gPSB0aGlzLmNvbmZpZztcbiAgICBjb25zdCB7ZGF0YUNvbnRhaW5lcn0gPSBkYXRhc2V0c1t0aGlzLmNvbmZpZy5kYXRhSWRdO1xuICAgIGNvbnN0IGdldFBvc2l0aW9uID0gdGhpcy5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMudXBkYXRlRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKTtcblxuICAgIGNvbnN0IG5ld0NvbmZpZyA9IHRoaXMuY29tcHV0ZUhlYXRtYXBDb25maWd1cmF0aW9uKHRoaXMuY29uZmlnLCBkYXRhc2V0cyk7XG4gICAgbmV3Q29uZmlnLmlkID0gdGhpcy5pZDtcblxuICAgIHJldHVybiB7XG4gICAgICBjb2x1bW5zOiB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgICAgY29uZmlnOiBuZXdDb25maWcsXG4gICAgICBkYXRhLFxuICAgICAgd2VpZ2h0RmllbGQsXG4gICAgICBnZXRQb3NpdGlvblxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhdG1hcExheWVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQW9ELElBQUFPLFNBQUE7QUFBQSxTQUFBQyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEs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
|
|
236
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVzZWxlY3QiLCJyZXF1aXJlIiwiX21lbW9pemUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9jb2xvclV0aWxzIiwiX21hcGJveGdsTGF5ZXIiLCJfaGVhdG1hcExheWVySWNvbiIsIl9leGNsdWRlZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiX3N1cGVyUHJvcEdldCIsInAiLCJfZ2V0MiIsIk1BWF9aT09NX0xFVkVMIiwiZXhwb3J0cyIsInBvaW50UG9zQWNjZXNzb3IiLCJfcmVmIiwibGF0IiwibG5nIiwiZGMiLCJkIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJwb2ludENvbFJlc29sdmVyIiwiX3JlZjIiLCJjb25jYXQiLCJoZWF0bWFwVmlzQ29uZmlncyIsIm9wYWNpdHkiLCJjb2xvclJhbmdlIiwicmFkaXVzIiwiaGVhdG1hcERlbnNpdHkiLCJzY2FsZUZ1bmN0aW9uIiwiU0NBTEVfRlVOQyIsInF1YW50aXplIiwiY29sb3JzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInNjYWxlIiwiZG9tYWluIiwicmFuZ2UiLCJjb2xvckRlbnNpdHkiLCJyZWR1Y2UiLCJiYW5kcyIsImxldmVsIiwiaW52ZXJ0IiwiaW52ZXJ0RXh0ZW50IiwiaGV4VG9SZ2IiLCJqb2luIiwiSGVhdG1hcExheWVyIiwiX01hcGJveEdMTGF5ZXIiLCJwcm9wcyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsImNvbmZpZyIsImNvbHVtbnMiLCJ2aXNDb25maWciLCJ3ZWlnaHRGaWVsZCIsIm5hbWUiLCJ3ZWlnaHREb21haW4iLCJjcmVhdGVTZWxlY3RvciIsInZpc0NvbmZpZ1NlbGVjdG9yIiwid2VpZ2h0RmllbGRTZWxlY3RvciIsIndlaWdodERvbWFpblNlbGVjdG9yIiwic291cmNlU2VsZWN0b3IiLCJmaWx0ZXJTZWxlY3RvciIsInBhaW50U2VsZWN0b3IiLCJzb3VyY2UiLCJwYWludCIsInR5cGUiLCJpZCIsImxheW91dCIsInZpc2liaWxpdHkiLCJtYXh6b29tIiwiaXNWYWxpZEZpbHRlciIsInJlZ2lzdGVyVmlzQ29uZmlnIiwiZ2V0UG9zaXRpb24iLCJtZW1vaXplIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJnZXQiLCJ3ZWlnaHQiLCJwcm9wZXJ0eSIsImZpZWxkIiwiZGVmYXVsdE1lYXN1cmUiLCJzdXBwb3J0ZWRGaWVsZFR5cGVzIiwiQUxMX0ZJRUxEX1RZUEVTIiwicmVhbCIsImludGVnZXIiLCJjaGFubmVsU2NhbGVUeXBlIiwiQ0hBTk5FTF9TQ0FMRVMiLCJzaXplIiwiSGVhdG1hcExheWVySWNvbiIsInZhbHVlIiwiZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uIiwiY2hhbm5lbCIsImxhYmVsIiwibWVhc3VyZSIsImdldERlZmF1bHRMYXllckNvbmZpZyIsInVuZGVmaW5lZCIsIl9zdXBlclByb3BHZXQkd2VpZ2h0RiIsIndlaWdodFNjYWxlIiwiY29sb3JGaWVsZCIsImNvbG9yRG9tYWluIiwiY29sb3JTY2FsZSIsImxheWVyQ29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJkYXRhQ29udGFpbmVyIiwidXBkYXRlTGF5ZXJNZXRhIiwiYm91bmRzIiwiZ2V0UG9pbnRzQm91bmRzIiwidXBkYXRlTWV0YSIsImZvcm1hdExheWVyRGF0YSIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwiZGF0YUlkIiwiX3RoaXMkdXBkYXRlRGF0YSIsInVwZGF0ZURhdGEiLCJkYXRhIiwibmV3Q29uZmlnIiwiY29tcHV0ZUhlYXRtYXBDb25maWd1cmF0aW9uIiwiTWFwYm94R0xMYXllciIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVycy9oZWF0bWFwLWxheWVyL2hlYXRtYXAtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IG1lbW9pemUgZnJvbSAnbG9kYXNoL21lbW9pemUnO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgU0NBTEVfRlVOQywgQUxMX0ZJRUxEX1RZUEVTfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge2hleFRvUmdifSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQgTWFwYm94R0xMYXllciwge01hcGJveExheWVyR0xDb25maWd9IGZyb20gJy4uL21hcGJveGdsLWxheWVyJztcbmltcG9ydCBIZWF0bWFwTGF5ZXJJY29uIGZyb20gJy4vaGVhdG1hcC1sYXllci1pY29uJztcbmltcG9ydCB7TGF5ZXJDb2x1bW4sIExheWVyV2VpZ2h0Q29uZmlnLCBWaXN1YWxDaGFubmVsc30gZnJvbSAnLi4vYmFzZS1sYXllcic7XG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJ3V0aWxzL3RhYmxlLXV0aWxzL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5pbXBvcnQge1Zpc0NvbmZpZ0NvbG9yUmFuZ2UsIFZpc0NvbmZpZ051bWJlcn0gZnJvbSAnLi4vbGF5ZXItZmFjdG9yeSc7XG5pbXBvcnQge0NvbG9yUmFuZ2V9IGZyb20gJ2NvbnN0YW50cy9jb2xvci1yYW5nZXMnO1xuaW1wb3J0IHtIZXhDb2xvciwgTWVyZ2V9IGZyb20gJ3JlZHVjZXJzJztcblxuZXhwb3J0IHR5cGUgSGVhdG1hcExheWVyVmlzQ29uZmlnU2V0dGluZ3MgPSB7XG4gIG9wYWNpdHk6IFZpc0NvbmZpZ051bWJlcjtcbiAgY29sb3JSYW5nZTogVmlzQ29uZmlnQ29sb3JSYW5nZTtcbiAgcmFkaXVzOiBWaXNDb25maWdOdW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBIZWF0bWFwTGF5ZXJDb2x1bW5zQ29uZmlnID0ge2xhdDogTGF5ZXJDb2x1bW47IGxuZzogTGF5ZXJDb2x1bW59O1xuXG5leHBvcnQgdHlwZSBIZWF0bWFwTGF5ZXJWaXNDb25maWcgPSB7XG4gIG9wYWNpdHk6IG51bWJlcjtcbiAgY29sb3JSYW5nZTogQ29sb3JSYW5nZTtcbiAgcmFkaXVzOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBIZWF0bWFwTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnID0gTGF5ZXJXZWlnaHRDb25maWc7XG5leHBvcnQgdHlwZSBIZWF0bWFwTGF5ZXJDb25maWcgPSBNZXJnZTxcbiAgTWFwYm94TGF5ZXJHTENvbmZpZyxcbiAge2NvbHVtbnM6IEhlYXRtYXBMYXllckNvbHVtbnNDb25maWc7IHZpc0NvbmZpZzogSGVhdG1hcExheWVyVmlzQ29uZmlnfVxuPiAmXG4gIEhlYXRtYXBMYXllclZpc3VhbENoYW5uZWxDb25maWc7XG5cbmV4cG9ydCBjb25zdCBNQVhfWk9PTV9MRVZFTCA9IDE4O1xuXG5leHBvcnQgY29uc3QgcG9pbnRQb3NBY2Nlc3NvciA9ICh7bGF0LCBsbmd9OiBIZWF0bWFwTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PiAoXG4gIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlXG4pID0+IGQgPT4gW2RjLnZhbHVlQXQoZC5pbmRleCwgbG5nLmZpZWxkSWR4KSwgZGMudmFsdWVBdChkLmluZGV4LCBsYXQuZmllbGRJZHgpXTtcblxuZXhwb3J0IGNvbnN0IHBvaW50Q29sUmVzb2x2ZXIgPSAoe2xhdCwgbG5nfTogSGVhdG1hcExheWVyQ29sdW1uc0NvbmZpZykgPT5cbiAgYCR7bGF0LmZpZWxkSWR4fS0ke2xuZy5maWVsZElkeH1gO1xuXG5leHBvcnQgY29uc3QgaGVhdG1hcFZpc0NvbmZpZ3M6IHtcbiAgb3BhY2l0eTogJ29wYWNpdHknO1xuICBjb2xvclJhbmdlOiAnY29sb3JSYW5nZSc7XG4gIHJhZGl1czogJ2hlYXRtYXBSYWRpdXMnO1xufSA9IHtcbiAgb3BhY2l0eTogJ29wYWNpdHknLFxuICBjb2xvclJhbmdlOiAnY29sb3JSYW5nZScsXG4gIHJhZGl1czogJ2hlYXRtYXBSYWRpdXMnXG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gY29sb3JSYW5nZVxuICogQHJldHVybiBbXG4gKiAgMCwgXCJyZ2JhKDMzLDEwMiwxNzIsMClcIixcbiAqICAwLjIsIFwicmdiKDEwMywxNjksMjA3KVwiLFxuICogIDAuNCwgXCJyZ2IoMjA5LDIyOSwyNDApXCIsXG4gKiAgMC42LCBcInJnYigyNTMsMjE5LDE5OSlcIixcbiAqICAwLjgsIFwicmdiKDIzOSwxMzgsOTgpXCIsXG4gKiAgMSwgXCJyZ2IoMTc4LDI0LDQzKVwiXG4gKiBdXG4gKi9cbmNvbnN0IGhlYXRtYXBEZW5zaXR5ID0gKGNvbG9yUmFuZ2U6IENvbG9yUmFuZ2UpOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0+IHtcbiAgY29uc3Qgc2NhbGVGdW5jdGlvbiA9IFNDQUxFX0ZVTkMucXVhbnRpemU7XG5cbiAgY29uc3QgY29sb3JzOiBIZXhDb2xvcltdID0gWycjMDAwMDAwJywgLi4uY29sb3JSYW5nZS5jb2xvcnNdO1xuXG4gIGNvbnN0IHNjYWxlID0gc2NhbGVGdW5jdGlvbjxIZXhDb2xvcj4oKVxuICAgIC5kb21haW4oWzAsIDFdKVxuICAgIC5yYW5nZShjb2xvcnMpO1xuXG4gIGNvbnN0IGNvbG9yRGVuc2l0eSA9IHNjYWxlLnJhbmdlKCkucmVkdWNlKChiYW5kczogKHN0cmluZyB8IG51bWJlcilbXSwgbGV2ZWwpID0+IHtcbiAgICBjb25zdCBpbnZlcnQgPSBzY2FsZS5pbnZlcnRFeHRlbnQobGV2ZWwpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi5iYW5kcyxcbiAgICAgIGludmVydFswXSwgLy8gZmlyc3QgdmFsdWUgaW4gdGhlIHJhbmdlXG4gICAgICBgcmdiKCR7aGV4VG9SZ2IobGV2ZWwpLmpvaW4oJywnKX0pYCAvLyBjb2xvclxuICAgIF07XG4gIH0sIFtdKTtcbiAgY29sb3JEZW5zaXR5WzFdID0gJ3JnYmEoMCwwLDAsMCknO1xuICByZXR1cm4gY29sb3JEZW5zaXR5O1xufTtcblxuY2xhc3MgSGVhdG1hcExheWVyIGV4dGVuZHMgTWFwYm94R0xMYXllciB7XG4gIGRlY2xhcmUgdmlzQ29uZmlnU2V0dGluZ3M6IEhlYXRtYXBMYXllclZpc0NvbmZpZ1NldHRpbmdzO1xuICBkZWNsYXJlIGNvbmZpZzogSGVhdG1hcExheWVyQ29uZmlnO1xuXG4gIGdldFBvc2l0aW9uOiAoY29uZmlnOiBIZWF0bWFwTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhoZWF0bWFwVmlzQ29uZmlncyk7XG4gICAgdGhpcy5nZXRQb3NpdGlvbiA9IG1lbW9pemUocG9pbnRQb3NBY2Nlc3NvciwgcG9pbnRDb2xSZXNvbHZlcik7XG4gIH1cblxuICBnZXQgdHlwZSgpOiAnaGVhdG1hcCcge1xuICAgIHJldHVybiAnaGVhdG1hcCc7XG4gIH1cblxuICBnZXQgdmlzdWFsQ2hhbm5lbHMoKTogVmlzdWFsQ2hhbm5lbHMge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICB3ZWlnaHQ6IHtcbiAgICAgICAgcHJvcGVydHk6ICd3ZWlnaHQnLFxuICAgICAgICBmaWVsZDogJ3dlaWdodEZpZWxkJyxcbiAgICAgICAgc2NhbGU6ICd3ZWlnaHRTY2FsZScsXG4gICAgICAgIGRvbWFpbjogJ3dlaWdodERvbWFpbicsXG4gICAgICAgIGtleTogJ3dlaWdodCcsXG4gICAgICAgIC8vIHN1cHBvcnRlZEZpZWxkVHlwZXMgY2FuIGJlIGRldGVybWluZWQgYnkgY2hhbm5lbFNjYWxlVHlwZVxuICAgICAgICAvLyBvciBzcGVjaWZpZWQgaGVyZVxuICAgICAgICBkZWZhdWx0TWVhc3VyZTogJ3Byb3BlcnR5LmRlbnNpdHknLFxuICAgICAgICBzdXBwb3J0ZWRGaWVsZFR5cGVzOiBbQUxMX0ZJRUxEX1RZUEVTLnJlYWwsIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXSxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMuc2l6ZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBnZXQgbGF5ZXJJY29uKCkge1xuICAgIHJldHVybiBIZWF0bWFwTGF5ZXJJY29uO1xuICB9XG5cbiAgZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNoYW5uZWwpIHtcbiAgICByZXR1cm4gY2hhbm5lbCA9PT0gJ2NvbG9yJ1xuICAgICAgPyB7XG4gICAgICAgICAgbGFiZWw6ICdwcm9wZXJ0eS5jb2xvcicsXG4gICAgICAgICAgbWVhc3VyZTogJ3Byb3BlcnR5LmRlbnNpdHknXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIGxhYmVsOiAncHJvcGVydHkud2VpZ2h0JyxcbiAgICAgICAgICBtZWFzdXJlOiB0aGlzLmNvbmZpZy53ZWlnaHRGaWVsZCA/IHRoaXMuY29uZmlnLndlaWdodEZpZWxkLm5hbWUgOiAncHJvcGVydHkuZGVuc2l0eSdcbiAgICAgICAgfTtcbiAgfVxuXG4gIGdldERlZmF1bHRMYXllckNvbmZpZyhwcm9wcyA9IHt9KTogSGVhdG1hcExheWVyQ29uZmlnIHtcbiAgICAvLyBtYXBib3ggaGVhdG1hcCBsYXllciBjb2xvciBpcyBhbHdheXMgYmFzZWQgb24gZGVuc2l0eVxuICAgIC8vIG5vIG5lZWQgdG8gc2V0IGNvbG9yRmllbGQsIGNvbG9yRG9tYWluIGFuZCBjb2xvclNjYWxlXG4gICAgY29uc3Qge2NvbG9yRmllbGQsIGNvbG9yRG9tYWluLCBjb2xvclNjYWxlLCAuLi5sYXllckNvbmZpZ30gPSB7XG4gICAgICAuLi5zdXBlci5nZXREZWZhdWx0TGF5ZXJDb25maWcocHJvcHMpLFxuXG4gICAgICB3ZWlnaHRGaWVsZDogbnVsbCxcbiAgICAgIHdlaWdodERvbWFpbjogWzAsIDFdLFxuICAgICAgd2VpZ2h0U2NhbGU6ICdsaW5lYXInXG4gICAgfTtcblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICByZXR1cm4gbGF5ZXJDb25maWc7XG4gIH1cblxuICBnZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQb3NpdGlvbih0aGlzLmNvbmZpZy5jb2x1bW5zKShkYXRhQ29udGFpbmVyKTtcbiAgfVxuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyKSB7XG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3QgYm91bmRzID0gdGhpcy5nZXRQb2ludHNCb3VuZHMoZGF0YUNvbnRhaW5lciwgZ2V0UG9zaXRpb24pO1xuICAgIHRoaXMudXBkYXRlTWV0YSh7Ym91bmRzfSk7XG4gIH1cblxuICBjb2x1bW5zU2VsZWN0b3IgPSBjb25maWcgPT4gcG9pbnRDb2xSZXNvbHZlcihjb25maWcuY29sdW1ucyk7XG4gIHZpc0NvbmZpZ1NlbGVjdG9yID0gY29uZmlnID0+IGNvbmZpZy52aXNDb25maWc7XG4gIHdlaWdodEZpZWxkU2VsZWN0b3IgPSBjb25maWcgPT4gKGNvbmZpZy53ZWlnaHRGaWVsZCA/IGNvbmZpZy53ZWlnaHRGaWVsZC5uYW1lIDogbnVsbCk7XG4gIHdlaWdodERvbWFpblNlbGVjdG9yID0gY29uZmlnID0+IGNvbmZpZy53ZWlnaHREb21haW47XG5cbiAgcGFpbnRTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgIHRoaXMudmlzQ29uZmlnU2VsZWN0b3IsXG4gICAgdGhpcy53ZWlnaHRGaWVsZFNlbGVjdG9yLFxuICAgIHRoaXMud2VpZ2h0RG9tYWluU2VsZWN0b3IsXG4gICAgKHZpc0NvbmZpZywgd2VpZ2h0RmllbGQsIHdlaWdodERvbWFpbikgPT4gKHtcbiAgICAgICdoZWF0bWFwLXdlaWdodCc6IHdlaWdodEZpZWxkXG4gICAgICAgID8gWydpbnRlcnBvbGF0ZScsIFsnbGluZWFyJ10sIFsnZ2V0Jywgd2VpZ2h0RmllbGRdLCB3ZWlnaHREb21haW5bMF0sIDAsIHdlaWdodERvbWFpblsxXSwgMV1cbiAgICAgICAgOiAxLFxuICAgICAgJ2hlYXRtYXAtaW50ZW5zaXR5JzogWydpbnRlcnBvbGF0ZScsIFsnbGluZWFyJ10sIFsnem9vbSddLCAwLCAxLCBNQVhfWk9PTV9MRVZFTCwgM10sXG4gICAgICAnaGVhdG1hcC1jb2xvcic6IFtcbiAgICAgICAgJ2ludGVycG9sYXRlJyxcbiAgICAgICAgWydsaW5lYXInXSxcbiAgICAgICAgWydoZWF0bWFwLWRlbnNpdHknXSxcbiAgICAgICAgLi4uaGVhdG1hcERlbnNpdHkodmlzQ29uZmlnLmNvbG9yUmFuZ2UpXG4gICAgICBdLFxuICAgICAgJ2hlYXRtYXAtcmFkaXVzJzogW1xuICAgICAgICAnaW50ZXJwb2xhdGUnLFxuICAgICAgICBbJ2xpbmVhciddLFxuICAgICAgICBbJ3pvb20nXSxcbiAgICAgICAgMCxcbiAgICAgICAgMixcbiAgICAgICAgTUFYX1pPT01fTEVWRUwsXG4gICAgICAgIHZpc0NvbmZpZy5yYWRpdXMgLy8gcmFkaXVzXG4gICAgICBdLFxuICAgICAgJ2hlYXRtYXAtb3BhY2l0eSc6IHZpc0NvbmZpZy5vcGFjaXR5XG4gICAgfSlcbiAgKTtcblxuICBjb21wdXRlSGVhdG1hcENvbmZpZ3VyYXRpb24gPSBjcmVhdGVTZWxlY3RvcihcbiAgICB0aGlzLnNvdXJjZVNlbGVjdG9yLFxuICAgIHRoaXMuZmlsdGVyU2VsZWN0b3IsXG4gICAgdGhpcy5wYWludFNlbGVjdG9yLFxuICAgIChzb3VyY2UsIGZpbHRlciwgcGFpbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdoZWF0bWFwJyxcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgIH0sXG4gICAgICAgIG1heHpvb206IE1BWF9aT09NX0xFVkVMLFxuICAgICAgICBwYWludCxcbiAgICAgICAgLi4uKHRoaXMuaXNWYWxpZEZpbHRlcihmaWx0ZXIpID8ge2ZpbHRlcn0gOiB7fSlcbiAgICAgIH07XG4gICAgfVxuICApO1xuXG4gIGZvcm1hdExheWVyRGF0YShkYXRhc2V0cywgb2xkTGF5ZXJEYXRhKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFJZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB7d2VpZ2h0RmllbGR9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3Qge2RhdGFDb250YWluZXJ9ID0gZGF0YXNldHNbdGhpcy5jb25maWcuZGF0YUlkXTtcbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IHRoaXMuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnVwZGF0ZURhdGEoZGF0YXNldHMsIG9sZExheWVyRGF0YSk7XG5cbiAgICBjb25zdCBuZXdDb25maWcgPSB0aGlzLmNvbXB1dGVIZWF0bWFwQ29uZmlndXJhdGlvbih0aGlzLmNvbmZpZywgZGF0YXNldHMpO1xuICAgIG5ld0NvbmZpZy5pZCA9IHRoaXMuaWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uczogdGhpcy5jb25maWcuY29sdW1ucyxcbiAgICAgIGNvbmZpZzogbmV3Q29uZmlnLFxuICAgICAgZGF0YSxcbiAgICAgIHdlaWdodEZpZWxkLFxuICAgICAgZ2V0UG9zaXRpb25cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYXRtYXBMYXllcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxnQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUFvRCxJQUFBTyxTQUFBO0FBQUEsU0FBQUMsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFR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
|
|
@@ -57,4 +57,4 @@ var formatTextLabelData = exports.formatTextLabelData = function formatTextLabel
|
|
|
57
57
|
};
|
|
58
58
|
});
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0YVV0aWxzIiwicmVxdWlyZSIsImRlZmF1bHRQYWRkaW5nIiwiZXhwb3J0cyIsImdldFRleHRPZmZzZXRCeVJhZGl1cyIsInJhZGl1c1NjYWxlIiwiZ2V0UmFkaXVzIiwidGV4dExhYmVsIiwieE11bHQiLCJhbmNob3IiLCJ5TXVsdCIsImFsaWdubWVudCIsInNpemVPZmZzZXQiLCJzaXplIiwicGFkZGluZyIsImQiLCJ0ZXh0TGFiZWxBY2Nlc3NvciIsImRjIiwidmFsIiwiZmllbGQiLCJ2YWx1ZUFjY2Vzc29yIiwibm90TnVsbG9yVW5kZWZpbmVkIiwiU3RyaW5nIiwiZm9ybWF0VGV4dExhYmVsRGF0YSIsIl9yZWYiLCJkYXRhQ29udGFpbmVyIiwibWFwIiwidGwiLCJpIiwiZ2V0VGV4dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYXllcnMvbGF5ZXItdGV4dC1sYWJlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UGFkZGluZyA9IDIwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dE9mZnNldEJ5UmFkaXVzKHJhZGl1c1NjYWxlLCBnZXRSYWRpdXMpIHtcbiAgcmV0dXJuIHRleHRMYWJlbCA9PiB7XG4gICAgY29uc3QgeE11bHQgPSB0ZXh0TGFiZWwuYW5jaG9yID09PSAnbWlkZGxlJyA/IDAgOiB0ZXh0TGFiZWwuYW5jaG9yID09PSAnc3RhcnQnID8gMSA6IC0xO1xuICAgIGNvbnN0IHlNdWx0ID0gdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2NlbnRlcicgPyAwIDogdGV4dExhYmVsLmFsaWdubWVudCA9PT0gJ2JvdHRvbScgPyAxIDogLTE7XG5cbiAgICBjb25zdCBzaXplT2Zmc2V0ID1cbiAgICAgIHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdjZW50ZXInXG4gICAgICAgID8gMFxuICAgICAgICA6IHRleHRMYWJlbC5hbGlnbm1lbnQgPT09ICdib3R0b20nXG4gICAgICAgID8gdGV4dExhYmVsLnNpemVcbiAgICAgICAgOiB0ZXh0TGFiZWwuc2l6ZTtcblxuICAgIGNvbnN0IHBhZGRpbmcgPSBkZWZhdWx0UGFkZGluZztcblxuICAgIHJldHVybiB0eXBlb2YgZ2V0UmFkaXVzID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGQgPT4gW1xuICAgICAgICAgIHhNdWx0ICogKGdldFJhZGl1cyhkKSAqIHJhZGl1c1NjYWxlICsgcGFkZGluZyksXG4gICAgICAgICAgeU11bHQgKiAoZ2V0UmFkaXVzKGQpICogcmFkaXVzU2NhbGUgKyBwYWRkaW5nICsgc2l6ZU9mZnNldClcbiAgICAgICAgXVxuICAgICAgOiBbXG4gICAgICAgICAgeE11bHQgKiAoZ2V0UmFkaXVzICogcmFkaXVzU2NhbGUgKyBwYWRkaW5nKSxcbiAgICAgICAgICB5TXVsdCAqIChnZXRSYWRpdXMgKiByYWRpdXNTY2FsZSArIHBhZGRpbmcgKyBzaXplT2Zmc2V0KVxuICAgICAgICBdO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgdGV4dExhYmVsQWNjZXNzb3IgPSB0ZXh0TGFiZWwgPT4gZGMgPT4gZCA9PiB7XG4gIGNvbnN0IHZhbCA9IHRleHRMYWJlbC5maWVsZC52YWx1ZUFjY2Vzc29yKGQpO1xuICByZXR1cm4gbm90TnVsbG9yVW5kZWZpbmVkKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnO1xufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdFRleHRMYWJlbERhdGEgPSAoe3RleHRMYWJlbCwgZGF0YUNvbnRhaW5lcn0pID0+IHtcbiAgcmV0dXJuIHRleHRMYWJlbC5tYXAoKHRsLCBpKSA9PiB7XG4gICAgY29uc3QgZ2V0VGV4dCA9IHRsLmZpZWxkID8gdGV4dExhYmVsQWNjZXNzb3IodGwpKGRhdGFDb250YWluZXIpIDogbnVsbDtcbiAgICByZXR1cm4ge2dldFRleHR9O1xuICB9KTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0JBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQXBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFLTyxJQUFNQyxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxHQUFHLEVBQUU7QUFFekIsU0FBU0UscUJBQXFCQSxDQUFDQyxXQUFXLEVBQUVDLFNBQVMsRUFBRTtFQUM1RCxPQUFPLFVBQUFDLFNBQVMsRUFBSTtJQUNsQixJQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0UsTUFBTSxLQUFLLFFBQVEsR0FBRyxDQUFDLEdBQUdGLFNBQVMsQ0FBQ0UsTUFBTSxLQUFLLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZGLElBQU1DLEtBQUssR0FBR0gsU0FBUyxDQUFDSSxTQUFTLEtBQUssUUFBUSxHQUFHLENBQUMsR0FBR0osU0FBUyxDQUFDSSxTQUFTLEtBQUssUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUYsSUFBTUMsVUFBVSxHQUNkTCxTQUFTLENBQUNJLFNBQVMsS0FBSyxRQUFRLEdBQzVCLENBQUMsR0FDREosU0FBUyxDQUFDSSxTQUFTLEtBQUssUUFBUSxHQUNoQ0osU0FBUyxDQUFDTSxJQUFJLEdBQ2ROLFNBQVMsQ0FBQ00sSUFBSTtJQUVwQixJQUFNQyxPQUFPLEdBQUdaLGNBQWM7SUFFOUIsT0FBTyxPQUFPSSxTQUFTLEtBQUssVUFBVSxHQUNsQyxVQUFBUyxDQUFDO01BQUEsT0FBSSxDQUNIUCxLQUFLLElBQUlGLFNBQVMsQ0FBQ1MsQ0FBQyxDQUFDLEdBQUdWLFdBQVcsR0FBR1MsT0FBTyxDQUFDLEVBQzlDSixLQUFLLElBQUlKLFNBQVMsQ0FBQ1MsQ0FBQyxDQUFDLEdBQUdWLFdBQVcsR0FBR1MsT0FBTyxHQUFHRixVQUFVLENBQUMsQ0FDNUQ7SUFBQSxJQUNELENBQ0VKLEtBQUssSUFBSUYsU0FBUyxHQUFHRCxXQUFXLEdBQUdTLE9BQU8sQ0FBQyxFQUMzQ0osS0FBSyxJQUFJSixTQUFTLEdBQUdELFdBQVcsR0FBR1MsT0FBTyxHQUFHRixVQUFVLENBQUMsQ0FDekQ7RUFDUCxDQUFDO0FBQ0g7QUFFTyxJQUFNSSxpQkFBaUIsR0FBQWIsT0FBQSxDQUFBYSxpQkFBQSxHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUdULFNBQVM7RUFBQSxPQUFJLFVBQUFVLEVBQUU7SUFBQSxPQUFJLFVBQUFGLENBQUMsRUFBSTtNQUN2RCxJQUFNRyxHQUFHLEdBQUdYLFNBQVMsQ0FBQ1ksS0FBSyxDQUFDQyxhQUFhLENBQUNMLENBQUMsQ0FBQztNQUM1QyxPQUFPLElBQUFNLDZCQUFrQixFQUFDSCxHQUFHLENBQUMsR0FBR0ksTUFBTSxDQUFDSixHQUFHLENBQUMsR0FBRyxFQUFFO0lBQ25ELENBQUM7RUFBQTtBQUFBO0FBRU0sSUFBTUssbUJBQW1CLEdBQUFwQixPQUFBLENBQUFvQixtQkFBQSxHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUFDLElBQUEsRUFBbUM7RUFBQSxJQUE5QmpCLFNBQVMsR0FBQWlCLElBQUEsQ0FBVGpCLFNBQVM7SUFBRWtCLGFBQWEsR0FBQUQsSUFBQSxDQUFiQyxhQUFhO0VBQzNELE9BQU9sQixTQUFTLENBQUNtQixHQUFHLENBQUMsVUFBQ0MsRUFBRSxFQUFFQyxDQUFDLEVBQUs7SUFDOUIsSUFBTUMsT0FBTyxHQUFHRixFQUFFLENBQUNSLEtBQUssR0FBR0gsaUJBQWlCLENBQUNXLEVBQUUsQ0FBQyxDQUFDRixhQUFhLENBQUMsR0FBRyxJQUFJO0lBQ3RFLE9BQU87TUFBQ0ksT0FBTyxFQUFQQTtJQUFPLENBQUM7RUFDbEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|