kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
104 lines (88 loc) • 17.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.uiStateReducerFactory = exports.INITIAL_UI_STATE = exports.DEFAULT_NOTIFICATIONS = exports.DEFAULT_EXPORT_DATA = exports.DEFAULT_EXPORT_IMAGE = exports.DEFAULT_MAP_CONTROLS = exports.DEFAULT_MODAL = exports.DEFAULT_ACTIVE_SIDE_PANEL = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _reduxActions = require("redux-actions");
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
var _defaultSettings = require("../constants/default-settings");
var _uiStateUpdaters = require("./ui-state-updaters");
var _actionHandler;
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var DEFAULT_ACTIVE_SIDE_PANEL = 'layer';
exports.DEFAULT_ACTIVE_SIDE_PANEL = DEFAULT_ACTIVE_SIDE_PANEL;
var DEFAULT_MODAL = _defaultSettings.ADD_DATA_ID;
exports.DEFAULT_MODAL = DEFAULT_MODAL;
var DEFAULT_MAP_CONTROLS = {
visibleLayers: {
show: true,
active: false
},
mapLegend: {
show: true,
active: false
},
toggle3d: {
show: true
},
splitMap: {
show: true
},
searchMap: {
show: true,
active: false
}
};
exports.DEFAULT_MAP_CONTROLS = DEFAULT_MAP_CONTROLS;
var DEFAULT_EXPORT_IMAGE = {
// user options
ratio: _defaultSettings.RATIOS.SCREEN,
resolution: _defaultSettings.RESOLUTIONS.ONE_X,
legend: false,
// exporting state
imageDataUri: '',
exporting: false
};
exports.DEFAULT_EXPORT_IMAGE = DEFAULT_EXPORT_IMAGE;
var DEFAULT_EXPORT_DATA = {
selectedDataset: '',
dataType: _defaultSettings.EXPORT_DATA_TYPE.CSV,
filtered: true,
config: false,
// no longer used, since we removed the option to export config from modal data export
data: false // this is used in modal config export
};
exports.DEFAULT_EXPORT_DATA = DEFAULT_EXPORT_DATA;
var DEFAULT_NOTIFICATIONS = [];
exports.DEFAULT_NOTIFICATIONS = DEFAULT_NOTIFICATIONS;
var INITIAL_UI_STATE = {
readOnly: false,
activeSidePanel: DEFAULT_ACTIVE_SIDE_PANEL,
currentModal: DEFAULT_MODAL,
datasetKeyToRemove: null,
visibleDropdown: null,
// export image modal ui
exportImage: DEFAULT_EXPORT_IMAGE,
// export data modal ui
exportData: DEFAULT_EXPORT_DATA,
// map control panels
mapControls: DEFAULT_MAP_CONTROLS,
// ui notifications
notifications: DEFAULT_NOTIFICATIONS
};
exports.INITIAL_UI_STATE = INITIAL_UI_STATE;
var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_SIDE_PANEL, _uiStateUpdaters.toggleSidePanelUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_MODAL, _uiStateUpdaters.toggleModalUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SHOW_EXPORT_DROPDOWN, _uiStateUpdaters.showExportDropdownUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].HIDE_EXPORT_DROPDOWN, _uiStateUpdaters.hideExportDropdownUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].OPEN_DELETE_MODAL, _uiStateUpdaters.openDeleteModalUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_MAP_CONTROL, _uiStateUpdaters.toggleMapControlUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].ADD_NOTIFICATION, _uiStateUpdaters.addNotificationUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].REMOVE_NOTIFICATION, _uiStateUpdaters.removeNotificationUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_RATIO, _uiStateUpdaters.setRatioUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_RESOLUTION, _uiStateUpdaters.setResolutionUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].TOGGLE_LEGEND, _uiStateUpdaters.toggleLegendUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].START_EXPORTING_IMAGE, _uiStateUpdaters.startExportingImage), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_IMAGE_DATA_URI, _uiStateUpdaters.setExportImageDataUri), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].CLEANUP_EXPORT_IMAGE, _uiStateUpdaters.cleanupExportImage), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_SELECTED_DATASET, _uiStateUpdaters.setExportSelectedDatasetUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_DATA_TYPE, _uiStateUpdaters.setExportDataTypeUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_FILTERED, _uiStateUpdaters.setExportFilteredUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_CONFIG, _uiStateUpdaters.setExportConfigUpdater), (0, _defineProperty2["default"])(_actionHandler, _actionTypes["default"].SET_EXPORT_DATA, _uiStateUpdaters.setExportDataUpdater), _actionHandler);
/* Reducer */
var uiStateReducerFactory = function uiStateReducerFactory() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _reduxActions.handleActions)(actionHandler, _objectSpread({}, INITIAL_UI_STATE, {}, initialState, {
initialState: initialState
}));
};
exports.uiStateReducerFactory = uiStateReducerFactory;
var _default = uiStateReducerFactory();
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy91aS1zdGF0ZS5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMIiwiREVGQVVMVF9NT0RBTCIsIkFERF9EQVRBX0lEIiwiREVGQVVMVF9NQVBfQ09OVFJPTFMiLCJ2aXNpYmxlTGF5ZXJzIiwic2hvdyIsImFjdGl2ZSIsIm1hcExlZ2VuZCIsInRvZ2dsZTNkIiwic3BsaXRNYXAiLCJzZWFyY2hNYXAiLCJERUZBVUxUX0VYUE9SVF9JTUFHRSIsInJhdGlvIiwiUkFUSU9TIiwiU0NSRUVOIiwicmVzb2x1dGlvbiIsIlJFU09MVVRJT05TIiwiT05FX1giLCJsZWdlbmQiLCJpbWFnZURhdGFVcmkiLCJleHBvcnRpbmciLCJERUZBVUxUX0VYUE9SVF9EQVRBIiwic2VsZWN0ZWREYXRhc2V0IiwiZGF0YVR5cGUiLCJFWFBPUlRfREFUQV9UWVBFIiwiQ1NWIiwiZmlsdGVyZWQiLCJjb25maWciLCJkYXRhIiwiREVGQVVMVF9OT1RJRklDQVRJT05TIiwiSU5JVElBTF9VSV9TVEFURSIsInJlYWRPbmx5IiwiYWN0aXZlU2lkZVBhbmVsIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwidmlzaWJsZURyb3Bkb3duIiwiZXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwibWFwQ29udHJvbHMiLCJub3RpZmljYXRpb25zIiwiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiVE9HR0xFX1NJREVfUEFORUwiLCJ0b2dnbGVTaWRlUGFuZWxVcGRhdGVyIiwiVE9HR0xFX01PREFMIiwidG9nZ2xlTW9kYWxVcGRhdGVyIiwiU0hPV19FWFBPUlRfRFJPUERPV04iLCJzaG93RXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiSElERV9FWFBPUlRfRFJPUERPV04iLCJoaWRlRXhwb3J0RHJvcGRvd25VcGRhdGVyIiwiT1BFTl9ERUxFVEVfTU9EQUwiLCJvcGVuRGVsZXRlTW9kYWxVcGRhdGVyIiwiVE9HR0xFX01BUF9DT05UUk9MIiwidG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIiLCJBRERfTk9USUZJQ0FUSU9OIiwiYWRkTm90aWZpY2F0aW9uVXBkYXRlciIsIlJFTU9WRV9OT1RJRklDQVRJT04iLCJyZW1vdmVOb3RpZmljYXRpb25VcGRhdGVyIiwiU0VUX1JBVElPIiwic2V0UmF0aW9VcGRhdGVyIiwiU0VUX1JFU09MVVRJT04iLCJzZXRSZXNvbHV0aW9uVXBkYXRlciIsIlRPR0dMRV9MRUdFTkQiLCJ0b2dnbGVMZWdlbmRVcGRhdGVyIiwiU1RBUlRfRVhQT1JUSU5HX0lNQUdFIiwic3RhcnRFeHBvcnRpbmdJbWFnZSIsIlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkkiLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJDTEVBTlVQX0VYUE9SVF9JTUFHRSIsImNsZWFudXBFeHBvcnRJbWFnZSIsIlNFVF9FWFBPUlRfU0VMRUNURURfREFUQVNFVCIsInNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXIiLCJTRVRfRVhQT1JUX0RBVEFfVFlQRSIsInNldEV4cG9ydERhdGFUeXBlVXBkYXRlciIsIlNFVF9FWFBPUlRfRklMVEVSRUQiLCJzZXRFeHBvcnRGaWx0ZXJlZFVwZGF0ZXIiLCJTRVRfRVhQT1JUX0NPTkZJRyIsInNldEV4cG9ydENvbmZpZ1VwZGF0ZXIiLCJTRVRfRVhQT1JUX0RBVEEiLCJzZXRFeHBvcnREYXRhVXBkYXRlciIsInVpU3RhdGVSZWR1Y2VyRmFjdG9yeSIsImluaXRpYWxTdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBTUE7Ozs7Ozs7O0FBMEJPLElBQU1BLHlCQUF5QixHQUFHLE9BQWxDOztBQUNBLElBQU1DLGFBQWEsR0FBR0MsNEJBQXRCOztBQUVBLElBQU1DLG9CQUFvQixHQUFHO0FBQ2xDQyxFQUFBQSxhQUFhLEVBQUU7QUFDYkMsSUFBQUEsSUFBSSxFQUFFLElBRE87QUFFYkMsSUFBQUEsTUFBTSxFQUFFO0FBRkssR0FEbUI7QUFLbENDLEVB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TUFBQ0MsWUFBRCx1RUFBZ0IsRUFBaEI7QUFBQSxTQUNuQyxpQ0FBY3pDLGFBQWQsb0JBQ0tWLGdCQURMLE1BRUttRCxZQUZMO0FBR0VBLElBQUFBLFlBQVksRUFBWkE7QUFIRixLQURtQztBQUFBLENBQTlCOzs7O2VBT1FELHFCQUFxQixFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCBBY3Rpb25UeXBlcyBmcm9tICdjb25zdGFudHMvYWN0aW9uLXR5cGVzJztcbmltcG9ydCB7XG4gIEFERF9EQVRBX0lELFxuICBFWFBPUlRfREFUQV9UWVBFLFxuICBSQVRJT1MsXG4gIFJFU09MVVRJT05TXG59IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7XG4gIG9wZW5EZWxldGVNb2RhbFVwZGF0ZXIsXG4gIHRvZ2dsZU1vZGFsVXBkYXRlcixcbiAgc2hvd0V4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgaGlkZUV4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgdG9nZ2xlU2lkZVBhbmVsVXBkYXRlcixcbiAgdG9nZ2xlTWFwQ29udHJvbFVwZGF0ZXIsXG4gIGFkZE5vdGlmaWNhdGlvblVwZGF0ZXIsXG4gIHJlbW92ZU5vdGlmaWNhdGlvblVwZGF0ZXIsXG5cbiAgLy8gZXhwb3J0IGltYWdlXG4gIGNsZWFudXBFeHBvcnRJbWFnZSxcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICBzZXRSYXRpb1VwZGF0ZXIsXG4gIHNldFJlc29sdXRpb25VcGRhdGVyLFxuICBzdGFydEV4cG9ydGluZ0ltYWdlLFxuICB0b2dnbGVMZWdlbmRVcGRhdGVyLFxuXG4gIC8vIGV4cG9ydCBkYXRhXG4gIHNldEV4cG9ydFNlbGVjdGVkRGF0YXNldFVwZGF0ZXIsXG4gIHNldEV4cG9ydERhdGFUeXBlVXBkYXRlcixcbiAgc2V0RXhwb3J0RmlsdGVyZWRVcGRhdGVyLFxuICBzZXRFeHBvcnRDb25maWdVcGRhdGVyLFxuICBzZXRFeHBvcnREYXRhVXBkYXRlclxufSBmcm9tICcuL3VpLXN0YXRlLXVwZGF0ZXJzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUNUSVZFX1NJREVfUEFORUwgPSAnbGF5ZXInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTU9EQUwgPSBBRERfREFUQV9JRDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFQX0NPTlRST0xTID0ge1xuICB2aXNpYmxlTGF5ZXJzOiB7XG4gICAgc2hvdzogdHJ1ZSxcbiAgICBhY3RpdmU6IGZhbHNlXG4gIH0sXG4gIG1hcExlZ2VuZDoge1xuICAgIHNob3c6IHRydWUsXG4gICAgYWN0aXZlOiBmYWxzZVxuICB9LFxuICB0b2dnbGUzZDoge1xuICAgIHNob3c6IHRydWVcbiAgfSxcbiAgc3BsaXRNYXA6IHtcbiAgICBzaG93OiB0cnVlXG4gIH0sXG4gIHNlYXJjaE1hcDoge1xuICAgIHNob3c6IHRydWUsXG4gICAgYWN0aXZlOiBmYWxzZVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfSU1BR0UgPSB7XG4gIC8vIHVzZXIgb3B0aW9uc1xuICByYXRpbzogUkFUSU9TLlNDUkVFTixcbiAgcmVzb2x1dGlvbjogUkVTT0xVVElPTlMuT05FX1gsXG4gIGxlZ2VuZDogZmFsc2UsXG4gIC8vIGV4cG9ydGluZyBzdGF0ZVxuICBpbWFnZURhdGFVcmk6ICcnLFxuICBleHBvcnRpbmc6IGZhbHNlXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FWFBPUlRfREFUQSA9IHtcbiAgc2VsZWN0ZWREYXRhc2V0OiAnJyxcbiAgZGF0YVR5cGU6IEVYUE9SVF9EQVRBX1RZUEUuQ1NWLFxuICBmaWx0ZXJlZDogdHJ1ZSxcbiAgY29uZmlnOiBmYWxzZSwgLy8gbm8gbG9uZ2VyIHVzZWQsIHNpbmNlIHdlIHJlbW92ZWQgdGhlIG9wdGlvbiB0byBleHBvcnQgY29uZmlnIGZyb20gbW9kYWwgZGF0YSBleHBvcnRcbiAgZGF0YTogZmFsc2UgLy8gdGhpcyBpcyB1c2VkIGluIG1vZGFsIGNvbmZpZyBleHBvcnRcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTlMgPSBbXTtcblxuZXhwb3J0IGNvbnN0IElOSVRJQUxfVUlfU1RBVEUgPSB7XG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgYWN0aXZlU2lkZVBhbmVsOiBERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMLFxuICBjdXJyZW50TW9kYWw6IERFRkFVTFRfTU9EQUwsXG4gIGRhdGFzZXRLZXlUb1JlbW92ZTogbnVsbCxcbiAgdmlzaWJsZURyb3Bkb3duOiBudWxsLFxuICAvLyBleHBvcnQgaW1hZ2UgbW9kYWwgdWlcbiAgZXhwb3J0SW1hZ2U6IERFRkFVTFRfRVhQT1JUX0lNQUdFLFxuICAvLyBleHBvcnQgZGF0YSBtb2RhbCB1aVxuICBleHBvcnREYXRhOiBERUZBVUxUX0VYUE9SVF9EQVRBLFxuICAvLyBtYXAgY29udHJvbCBwYW5lbHNcbiAgbWFwQ29udHJvbHM6IERFRkFVTFRfTUFQX0NPTlRST0xTLFxuICAvLyB1aSBub3RpZmljYXRpb25zXG4gIG5vdGlmaWNhdGlvbnM6IERFRkFVTFRfTk9USUZJQ0FUSU9OU1xufTtcblxuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TSURFX1BBTkVMXTogdG9nZ2xlU2lkZVBhbmVsVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9NT0RBTF06IHRvZ2dsZU1vZGFsVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNIT1dfRVhQT1JUX0RST1BET1dOXTogc2hvd0V4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkhJREVfRVhQT1JUX0RST1BET1dOXTogaGlkZUV4cG9ydERyb3Bkb3duVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLk9QRU5fREVMRVRFX01PREFMXTogb3BlbkRlbGV0ZU1vZGFsVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9NQVBfQ09OVFJPTF06IHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuQUREX05PVElGSUNBVElPTl06IGFkZE5vdGlmaWNhdGlvblVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTk9USUZJQ0FUSU9OXTogcmVtb3ZlTm90aWZpY2F0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1JBVElPXTogc2V0UmF0aW9VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX1JFU09MVVRJT05dOiBzZXRSZXNvbHV0aW9uVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MRUdFTkRdOiB0b2dnbGVMZWdlbmRVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU1RBUlRfRVhQT1JUSU5HX0lNQUdFXTogc3RhcnRFeHBvcnRpbmdJbWFnZSxcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkldOiBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gIFtBY3Rpb25UeXBlcy5DTEVBTlVQX0VYUE9SVF9JTUFHRV06IGNsZWFudXBFeHBvcnRJbWFnZSxcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUXTogc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV9UWVBFXTogc2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9GSUxURVJFRF06IHNldEV4cG9ydEZpbHRlcmVkVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfQ09ORklHXTogc2V0RXhwb3J0Q29uZmlnVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV06IHNldEV4cG9ydERhdGFVcGRhdGVyXG59O1xuXG4vKiBSZWR1Y2VyICovXG5leHBvcnQgY29uc3QgdWlTdGF0ZVJlZHVjZXJGYWN0b3J5ID0gKGluaXRpYWxTdGF0ZSA9IHt9KSA9PlxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi5JTklUSUFMX1VJX1NUQVRFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICBpbml0aWFsU3RhdGVcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHVpU3RhdGVSZWR1Y2VyRmFjdG9yeSgpO1xuIl19