kepler.gl.geoiq
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
146 lines (109 loc) • 15.4 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.FeatureActionPanel = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireWildcard(require("react"));
var _actionPanel = _interopRequireWildcard(require("../common/action-panel"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _reactOnclickoutside = _interopRequireDefault(require("react-onclickoutside"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _icons = require("../common/icons");
var _templateObject;
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var LAYOVER_OFFSET = 4;
var StyledActionsLayer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n"])));
var FeatureActionPanel = exports.FeatureActionPanel = /*#__PURE__*/function (_PureComponent) {
(0, _inherits2["default"])(FeatureActionPanel, _PureComponent);
var _super = _createSuper(FeatureActionPanel);
function FeatureActionPanel() {
var _this;
(0, _classCallCheck2["default"])(this, FeatureActionPanel);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _super.call.apply(_super, [this].concat(args));
// Used by onClickOutside
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClickOutside", function (e) {
e.preventDefault();
e.stopPropagation();
_this.props.onClose();
});
return _this;
}
(0, _createClass2["default"])(FeatureActionPanel, [{
key: "render",
value: function render() {
var _this$props = this.props,
className = _this$props.className,
datasets = _this$props.datasets,
position = _this$props.position,
layers = _this$props.layers,
currentFilter = _this$props.currentFilter,
onToggleLayer = _this$props.onToggleLayer,
onDeleteFeature = _this$props.onDeleteFeature;
var _ref = currentFilter || {},
_ref$layerId = _ref.layerId,
layerId = _ref$layerId === void 0 ? [] : _ref$layerId;
return (/*#__PURE__*/_react["default"].createElement(StyledActionsLayer, {
className: (0, _classnames["default"])('feature-action-panel', className),
style: {
top: "".concat(position.y + LAYOVER_OFFSET, "px"),
left: "".concat(position.x + LAYOVER_OFFSET, "px")
}
}, /*#__PURE__*/_react["default"].createElement(_actionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
className: "editor-layers-list",
label: "layers",
Icon: _icons.Layers
}, layers.map(function (layer, index) {
return (/*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
key: index,
label: layer.config.label,
color: datasets[layer.config.dataId].color,
isSelection: true,
isActive: layerId.includes(layer.id),
onClick: function onClick() {
return onToggleLayer(layer);
},
className: "layer-panel-item"
})
);
})), /*#__PURE__*/_react["default"].createElement(_actionPanel.ActionPanelItem, {
label: "delete",
className: "delete-panel-item",
Icon: _icons.Trash,
onClick: onDeleteFeature
})))
);
}
}]);
return FeatureActionPanel;
}(_react.PureComponent);
(0, _defineProperty2["default"])(FeatureActionPanel, "propTypes", {
className: _propTypes["default"].string,
datasets: _propTypes["default"].object.isRequired,
position: _propTypes["default"].object.isRequired,
layers: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired,
currentFilter: _propTypes["default"].object,
onClose: _propTypes["default"].func.isRequired,
onDeleteFeature: _propTypes["default"].func.isRequired
});
(0, _defineProperty2["default"])(FeatureActionPanel, "defaultProps", {
position: {}
});
var _default = exports["default"] = (0, _reactOnclickoutside["default"])(FeatureActionPanel);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2VkaXRvci9mZWF0dXJlLWFjdGlvbi1wYW5lbC5qcyJdLCJuYW1lcyI6WyJMQVlPVkVSX09GRlNFVCIsIlN0eWxlZEFjdGlvbnNMYXllciIsInN0eWxlZCIsImRpdiIsIkZlYXR1cmVBY3Rpb25QYW5lbCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsInByb3BzIiwib25DbG9zZSIsImNsYXNzTmFtZSIsImRhdGFzZXRzIiwicG9zaXRpb24iLCJsYXllcnMiLCJjdXJyZW50RmlsdGVyIiwib25Ub2dnbGVMYXllciIsIm9uRGVsZXRlRmVhdHVyZSIsImxheWVySWQiLCJ0b3AiLCJ5IiwibGVmdCIsIngiLCJMYXllcnMiLCJtYXAiLCJsYXllciIsImluZGV4IiwiY29uZmlnIiwibGFiZWwiLCJkYXRhSWQiLCJjb2xvciIsImluY2x1ZGVzIiwiaWQiLCJUcmFzaCIsIlB1cmVDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiYXJyYXlPZiIsImZ1bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsY0FBYyxHQUFHLENBQXZCOztBQUVBLElBQU1DLGtCQUFrQixHQUFHQyw2QkFBT0MsR0FBViwrR0FBeEI7O0lBSWFDLGtCOzs7Ozs7Ozs7Ozs7Ozs7QUFlWDsyR0FDcUIsVUFBQUMsQ0FBQyxFQUFJO0FBQ3hCQSxNQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQUQsTUFBQUEsQ0FBQyxDQUFDRSxlQUFGOztBQUNBLFlBQUtDLEtBQUwsQ0FBV0MsT0FBWDtBQUNELEs7Ozs7OztXQUVELGtCQUFTO0FBQ1Asd0JBUUksS0FBS0QsS0FSVDtBQUFBLFVBQ0VFLFNBREYsZUFDRUEsU0FERjtBQUFBLFVBRUVDLFFBRkYsZUFFRUEsUUFGRjtBQUFBLFVBR0VDLFFBSEYsZUFHRUEsUUFIRjtBQUFBLFVBSUVDLE1BSkYsZUFJRUEsTUFKRjtBQUFBLFVBS0VDLGFBTEYsZUFLRUEsYUFMRjtBQUFBLFVBTUVDLGFBTkYsZUFNRUEsYUFORjtBQUFBLFVBT0VDLGVBUEYsZUFPRUEsZUFQRjs7QUFVQSxpQkFBdUJGLGFBQWEsSUFBSSxFQUF4QztBQUFBLDhCQUFPRyxPQUFQO0FBQUEsVUFBT0EsT0FBUCw2QkFBaUIsRUFBakI7O0FBRUEsMkJBQ0UsZ0NBQUMsa0JBQUQ7QUFDRSxVQUFBLFNBQVMsRUFBRSw0QkFBVyxzQkFBWCxFQUFtQ1AsU0FBbkMsQ0FEYjtBQUVFLFVBQUEsS0FBSyxFQUFFO0FBQ0xRLFlBQUFBLEdBQUcsWUFBS04sUUFBUSxDQUFDTyxDQUFULEdBQWFuQixjQUFsQixPQURFO0FBRUxvQixZQUFBQSxJQUFJLFlBQUtSLFFBQVEsQ0FBQ1MsQ0FBVCxHQUFhckIsY0FBbEI7QUFGQztBQUZULHdCQU9FLGdDQUFDLHVCQUFELHFCQUNFLGdDQUFDLDRCQUFEO0FBQ0UsVUFBQSxTQUFTLEVBQUMsb0JBRFo7QUFFRSxVQUFBLEtBQUssRUFBQyxRQUZSO0FBR0UsVUFBQSxJQUFJLEVBQUVzQjtBQUhSLFdBS0dULE1BQU0sQ0FBQ1UsR0FBUCxDQUFXLFVBQUNDLEtBQUQsRUFBUUMsS0FBUjtBQUFBLCtCQUNWLGdDQUFDLDRCQUFEO0FBQ0UsY0FBQSxHQUFHLEVBQUVBLEtBRFA7QUFFRSxjQUFBLEtBQUssRUFBRUQsS0FBSyxDQUFDRSxNQUFOLENBQWFDLEtBRnRCO0FBR0UsY0FBQSxLQUFLLEVBQUVoQixRQUFRLENBQUNhLEtBQUssQ0FBQ0UsTUFBTixDQUFhRSxNQUFkLENBQVIsQ0FBOEJDLEtBSHZDO0FBSUUsY0FBQSxXQUFXLEVBQUUsSUFKZjtBQUtFLGNBQUEsUUFBUSxFQUFFWixPQUFPLENBQUNhLFFBQVIsQ0FBaUJOLEtBQUssQ0FBQ08sRUFBdkIsQ0FMWjtBQU1FLGNBQUEsT0FBTyxFQUFFO0FBQUEsdUJBQU1oQixhQUFhLENBQUNTLEtBQUQsQ0FBbkI7QUFBQSxlQU5YO0FBT0UsY0FBQSxTQUFTLEVBQUM7QUFQWjtBQURVO0FBQUEsU0FBWCxDQUxILENBREYsZUFrQkUsZ0NBQUMsNEJBQUQ7QUFDRSxVQUFBLEtBQUssRUFBQyxRQURSO0FBRUUsVUFBQSxTQUFTLEVBQUMsbUJBRlo7QUFHRSxVQUFBLElBQUksRUFBRVEsWUFIUjtBQUlFLFVBQUEsT0FBTyxFQUFFaEI7QUFKWCxVQWxCRixDQVBGO0FBREY7QUFtQ0Q7OztFQXRFcUNpQixvQjs7aUNBQTNCN0Isa0IsZUFDUTtBQUNqQk0sRUFBQUEsU0FBUyxFQUFFd0Isc0JBQVVDLE1BREo7QUFFakJ4QixFQUFBQSxRQUFRLEVBQUV1QixzQkFBVUUsTUFBVixDQUFpQkMsVUFGVjtBQUdqQnpCLEVBQUFBLFFBQVEsRUFBRXNCLHNCQUFVRSxNQUFWLENBQWlCQyxVQUhWO0FBSWpCeEIsRUFBQUEsTUFBTSxFQUFFcUIsc0JBQVVJLE9BQVYsQ0FBa0JKLHNCQUFVRSxNQUE1QixFQUFvQ0MsVUFKM0I7QUFLakJ2QixFQUFBQSxhQUFhLEVBQUVvQixzQkFBVUUsTUFMUjtBQU1qQjNCLEVBQUFBLE9BQU8sRUFBRXlCLHNCQUFVSyxJQUFWLENBQWVGLFVBTlA7QUFPakJyQixFQUFBQSxlQUFlLEVBQUVrQixzQkFBVUssSUFBVixDQUFlRjtBQVBmLEM7aUNBRFJqQyxrQixrQkFXVztBQUNwQlEsRUFBQUEsUUFBUSxFQUFFO0FBRFUsQzs7b0NBOERULHFDQUFlUixrQkFBZixDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7UHVyZUNvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEFjdGlvblBhbmVsLCB7QWN0aW9uUGFuZWxJdGVtfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9hY3Rpb24tcGFuZWwnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgb25DbGlja091dHNpZGUgZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtUcmFzaCwgTGF5ZXJzfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5cbmNvbnN0IExBWU9WRVJfT0ZGU0VUID0gNDtcblxuY29uc3QgU3R5bGVkQWN0aW9uc0xheWVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuYDtcblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVBY3Rpb25QYW5lbCBleHRlbmRzIFB1cmVDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHBvc2l0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMub2JqZWN0KS5pc1JlcXVpcmVkLFxuICAgIGN1cnJlbnRGaWx0ZXI6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkRlbGV0ZUZlYXR1cmU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHBvc2l0aW9uOiB7fVxuICB9O1xuXG4gIC8vIFVzZWQgYnkgb25DbGlja091dHNpZGVcbiAgaGFuZGxlQ2xpY2tPdXRzaWRlID0gZSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5wcm9wcy5vbkNsb3NlKCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGRhdGFzZXRzLFxuICAgICAgcG9zaXRpb24sXG4gICAgICBsYXllcnMsXG4gICAgICBjdXJyZW50RmlsdGVyLFxuICAgICAgb25Ub2dnbGVMYXllcixcbiAgICAgIG9uRGVsZXRlRmVhdHVyZVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3Qge2xheWVySWQgPSBbXX0gPSBjdXJyZW50RmlsdGVyIHx8IHt9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRBY3Rpb25zTGF5ZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdmZWF0dXJlLWFjdGlvbi1wYW5lbCcsIGNsYXNzTmFtZSl9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgdG9wOiBgJHtwb3NpdGlvbi55ICsgTEFZT1ZFUl9PRkZTRVR9cHhgLFxuICAgICAgICAgIGxlZnQ6IGAke3Bvc2l0aW9uLnggKyBMQVlPVkVSX09GRlNFVH1weGBcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPEFjdGlvblBhbmVsPlxuICAgICAgICAgIDxBY3Rpb25QYW5lbEl0ZW1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXRvci1sYXllcnMtbGlzdFwiXG4gICAgICAgICAgICBsYWJlbD1cImxheWVyc1wiXG4gICAgICAgICAgICBJY29uPXtMYXllcnN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2xheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBsYWJlbD17bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICAgICAgICAgIGNvbG9yPXtkYXRhc2V0c1tsYXllci5jb25maWcuZGF0YUlkXS5jb2xvcn1cbiAgICAgICAgICAgICAgICBpc1NlbGVjdGlvbj17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc0FjdGl2ZT17bGF5ZXJJZC5pbmNsdWRlcyhsYXllci5pZCl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25Ub2dnbGVMYXllcihsYXllcil9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXItcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0FjdGlvblBhbmVsSXRlbT5cbiAgICAgICAgICA8QWN0aW9uUGFuZWxJdGVtXG4gICAgICAgICAgICBsYWJlbD1cImRlbGV0ZVwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkZWxldGUtcGFuZWwtaXRlbVwiXG4gICAgICAgICAgICBJY29uPXtUcmFzaH1cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRGVsZXRlRmVhdHVyZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FjdGlvblBhbmVsPlxuICAgICAgPC9TdHlsZWRBY3Rpb25zTGF5ZXI+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBvbkNsaWNrT3V0c2lkZShGZWF0dXJlQWN0aW9uUGFuZWwpO1xuIl19