@kepler.gl/localization 3.3.0-alpha.4 → 3.3.0-alpha.6

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.
@@ -0,0 +1,20 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright contributors to the kepler.gl project
4
+
5
+ import React from 'react';
6
+ import { FormattedMessage } from 'react-intl';
7
+ var EnhancedFormattedMessage = function EnhancedFormattedMessage(props) {
8
+ var _props$values;
9
+ return /*#__PURE__*/React.createElement(FormattedMessage
10
+ // Use id as default Message to prevent error being thrown
11
+ , _extends({
12
+ defaultMessage: props.defaultMessage || props.id,
13
+ id: props.id,
14
+ values: (_props$values = props.values) !== null && _props$values !== void 0 ? _props$values : undefined
15
+ }, props.children ? {
16
+ children: props.children
17
+ } : {}));
18
+ };
19
+ export default EnhancedFormattedMessage;
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJFbmhhbmNlZEZvcm1hdHRlZE1lc3NhZ2UiLCJwcm9wcyIsIl9wcm9wcyR2YWx1ZXMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJkZWZhdWx0TWVzc2FnZSIsImlkIiwidmFsdWVzIiwidW5kZWZpbmVkIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZm9ybWF0dGVkLW1lc3NhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ3JlYWN0LWludGwnO1xuXG50eXBlIEVuaGFuY2VkRm9ybWF0dGVkTWVzc2FnZVByb3BzID0ge1xuICBpZDogc3RyaW5nO1xuICBkZWZhdWx0TWVzc2FnZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICB2YWx1ZXM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgfTtcbiAgY2hpbGRyZW4/OiAoY2h1bmtzOiBSZWFjdC5SZWFjdE5vZGVbXSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50O1xufTtcblxuY29uc3QgRW5oYW5jZWRGb3JtYXR0ZWRNZXNzYWdlOiBSZWFjdC5GQzxFbmhhbmNlZEZvcm1hdHRlZE1lc3NhZ2VQcm9wcz4gPSBwcm9wcyA9PiAoXG4gIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgLy8gVXNlIGlkIGFzIGRlZmF1bHQgTWVzc2FnZSB0byBwcmV2ZW50IGVycm9yIGJlaW5nIHRocm93blxuICAgIGRlZmF1bHRNZXNzYWdlPXtwcm9wcy5kZWZhdWx0TWVzc2FnZSB8fCBwcm9wcy5pZH1cbiAgICBpZD17cHJvcHMuaWR9XG4gICAgdmFsdWVzPXtwcm9wcy52YWx1ZXMgPz8gdW5kZWZpbmVkfVxuICAgIHsuLi4ocHJvcHMuY2hpbGRyZW4gPyB7Y2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIGFzIGFueX0gOiB7fSl9XG4gIC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBFbmhhbmNlZEZvcm1hdHRlZE1lc3NhZ2U7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVFDLGdCQUFnQixRQUFPLFlBQVk7QUFZM0MsSUFBTUMsd0JBQWlFLEdBQUcsU0FBcEVBLHdCQUFpRUEsQ0FBR0MsS0FBSztFQUFBLElBQUFDLGFBQUE7RUFBQSxvQkFDN0VKLEtBQUEsQ0FBQUssYUFBQSxDQUFDSjtFQUNDO0VBQUEsRUFBQUssUUFBQTtJQUNBQyxjQUFjLEVBQUVKLEtBQUssQ0FBQ0ksY0FBYyxJQUFJSixLQUFLLENBQUNLLEVBQUc7SUFDakRBLEVBQUUsRUFBRUwsS0FBSyxDQUFDSyxFQUFHO0lBQ2JDLE1BQU0sR0FBQUwsYUFBQSxHQUFFRCxLQUFLLENBQUNNLE1BQU0sY0FBQUwsYUFBQSxjQUFBQSxhQUFBLEdBQUlNO0VBQVUsR0FDN0JQLEtBQUssQ0FBQ1EsUUFBUSxHQUFHO0lBQUNBLFFBQVEsRUFBRVIsS0FBSyxDQUFDUTtFQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztBQUFBLENBQ0g7QUFFRCxlQUFlVCx3QkFBd0IiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,7 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Copyright contributors to the kepler.gl project
3
+
4
+ export { messages } from './messages';
5
+ export { LOCALE_CODES, LOCALES } from './locales';
6
+ export { default as FormattedMessage } from './formatted-message';
7
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZXNzYWdlcyIsIkxPQ0FMRV9DT0RFUyIsIkxPQ0FMRVMiLCJkZWZhdWx0IiwiRm9ybWF0dGVkTWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5leHBvcnQge21lc3NhZ2VzfSBmcm9tICcuL21lc3NhZ2VzJztcbmV4cG9ydCB7TE9DQUxFX0NPREVTLCBMT0NBTEVTfSBmcm9tICcuL2xvY2FsZXMnO1xuZXhwb3J0IHtkZWZhdWx0IGFzIEZvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJy4vZm9ybWF0dGVkLW1lc3NhZ2UnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBOztBQUVBLFNBQVFBLFFBQVEsUUFBTyxZQUFZO0FBQ25DLFNBQVFDLFlBQVksRUFBRUMsT0FBTyxRQUFPLFdBQVc7QUFDL0MsU0FBUUMsT0FBTyxJQUFJQyxnQkFBZ0IsUUFBTyxxQkFBcUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,42 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ // SPDX-License-Identifier: MIT
5
+ // Copyright contributors to the kepler.gl project
6
+
7
+ export var LOCALES = {
8
+ en: 'English',
9
+ fi: 'Suomi',
10
+ pt: 'Português',
11
+ es: 'Español',
12
+ ca: 'Català',
13
+ ja: '日本語',
14
+ cn: '简体中文',
15
+ ru: 'Русский'
16
+ };
17
+
18
+ /**
19
+ * Localization can be passed to `KeplerGl` via uiState `locale`.
20
+ * Available languages are `en` and `fi`. Default language is `en`
21
+ * @constant
22
+ * @public
23
+ * @example
24
+ * ```js
25
+ * import {combineReducers} from 'redux';
26
+ * import {LOCALE_CODES} from '@kepler.gl/localization';
27
+ *
28
+ * const customizedKeplerGlReducer = keplerGlReducer
29
+ * .initialState({
30
+ * uiState: {
31
+ * // use Finnish locale
32
+ * locale: LOCALE_CODES.fi
33
+ * }
34
+ * });
35
+ *
36
+ * ```
37
+ */
38
+
39
+ export var LOCALE_CODES = Object.keys(LOCALES).reduce(function (acc, key) {
40
+ return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, key));
41
+ }, {});
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMT0NBTEVTIiwiZW4iLCJmaSIsInB0IiwiZXMiLCJjYSIsImphIiwiY24iLCJydSIsIkxPQ0FMRV9DT0RFUyIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJhY2MiLCJrZXkiLCJfb2JqZWN0U3ByZWFkIiwiX2RlZmluZVByb3BlcnR5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0IGNvbnN0IExPQ0FMRVMgPSB7XG4gIGVuOiAnRW5nbGlzaCcsXG4gIGZpOiAnU3VvbWknLFxuICBwdDogJ1BvcnR1Z3XDqnMnLFxuICBlczogJ0VzcGHDsW9sJyxcbiAgY2E6ICdDYXRhbMOgJyxcbiAgamE6ICfml6XmnKzoqp4nLFxuICBjbjogJ+eugOS9k+S4reaWhycsXG4gIHJ1OiAn0KDRg9GB0YHQutC40LknXG59O1xuXG4vKipcbiAqIExvY2FsaXphdGlvbiBjYW4gYmUgcGFzc2VkIHRvIGBLZXBsZXJHbGAgdmlhIHVpU3RhdGUgYGxvY2FsZWAuXG4gKiBBdmFpbGFibGUgbGFuZ3VhZ2VzIGFyZSBgZW5gIGFuZCBgZmlgLiBEZWZhdWx0IGxhbmd1YWdlIGlzIGBlbmBcbiAqIEBjb25zdGFudFxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBpbXBvcnQge2NvbWJpbmVSZWR1Y2Vyc30gZnJvbSAncmVkdXgnO1xuICogaW1wb3J0IHtMT0NBTEVfQ09ERVN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbiAqXG4gKiBjb25zdCBjdXN0b21pemVkS2VwbGVyR2xSZWR1Y2VyID0ga2VwbGVyR2xSZWR1Y2VyXG4gKiAgIC5pbml0aWFsU3RhdGUoe1xuICogICAgIHVpU3RhdGU6IHtcbiAqICAgICAgIC8vIHVzZSBGaW5uaXNoIGxvY2FsZVxuICogICAgICAgbG9jYWxlOiBMT0NBTEVfQ09ERVMuZmlcbiAqICAgICB9XG4gKiAgIH0pO1xuICpcbiAqIGBgYFxuICovXG5cbmV4cG9ydCB0eXBlIExvY2FsZUNvZGVzVHlwZSA9IHtcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IExPQ0FMRV9DT0RFUzogTG9jYWxlQ29kZXNUeXBlID0gT2JqZWN0LmtleXMoTE9DQUxFUykucmVkdWNlKFxuICAoYWNjLCBrZXkpID0+ICh7Li4uYWNjLCBba2V5XToga2V5fSksXG4gIHt9XG4pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBOztBQUVBLE9BQU8sSUFBTUEsT0FBTyxHQUFHO0VBQ3JCQyxFQUFFLEVBQUUsU0FBUztFQUNiQyxFQUFFLEVBQUUsT0FBTztFQUNYQyxFQUFFLEVBQUUsV0FBVztFQUNmQyxFQUFFLEVBQUUsU0FBUztFQUNiQyxFQUFFLEVBQUUsUUFBUTtFQUNaQyxFQUFFLEVBQUUsS0FBSztFQUNUQyxFQUFFLEVBQUUsTUFBTTtFQUNWQyxFQUFFLEVBQUU7QUFDTixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBTUEsT0FBTyxJQUFNQyxZQUE2QixHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ1gsT0FBTyxDQUFDLENBQUNZLE1BQU0sQ0FDdEUsVUFBQ0MsR0FBRyxFQUFFQyxHQUFHO0VBQUEsT0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQVVGLEdBQUcsT0FBQUcsZUFBQSxLQUFHRixHQUFHLEVBQUdBLEdBQUc7QUFBQSxDQUFFLEVBQ3BDLENBQUMsQ0FDSCxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,43 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ // SPDX-License-Identifier: MIT
5
+ // Copyright contributors to the kepler.gl project
6
+
7
+ import en from './translations/en';
8
+ import fi from './translations/fi';
9
+ import pt from './translations/pt';
10
+ import es from './translations/es';
11
+ import ca from './translations/ca';
12
+ import cn from './translations/cn';
13
+ import ja from './translations/ja';
14
+ import ru from './translations/ru';
15
+
16
+ // Flat messages since react-intl does not seem to support nested structures
17
+ // Adapted from https://medium.com/siren-apparel-press/internationalization-and-localization-of-sirenapparel-eu-sirenapparel-us-and-sirenapparel-asia-ddee266066a2
18
+ var _flattenMessages = function flattenMessages(nestedMessages) {
19
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
20
+ return Object.keys(nestedMessages).reduce(function (messages, key) {
21
+ var value = nestedMessages[key];
22
+ var prefixedKey = prefix ? "".concat(prefix, ".").concat(key) : key;
23
+ if (typeof value === 'string') {
24
+ messages[prefixedKey] = value;
25
+ } else {
26
+ Object.assign(messages, _flattenMessages(value, prefixedKey));
27
+ }
28
+ return messages;
29
+ }, {});
30
+ };
31
+ export { _flattenMessages as flattenMessages };
32
+ var enFlat = _flattenMessages(en);
33
+ export var messages = {};
34
+ messages.en = enFlat;
35
+ messages.fi = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(fi));
36
+ messages.pt = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(pt));
37
+ messages.es = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(es));
38
+ messages.ca = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(ca));
39
+ messages.cn = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(cn));
40
+ messages.ja = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(ja));
41
+ messages.ru = _objectSpread(_objectSpread({}, enFlat), _flattenMessages(ru));
42
+ export default messages;
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbiIsImZpIiwicHQiLCJlcyIsImNhIiwiY24iLCJqYSIsInJ1IiwiZmxhdHRlbk1lc3NhZ2VzIiwibmVzdGVkTWVzc2FnZXMiLCJwcmVmaXgiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwibWVzc2FnZXMiLCJrZXkiLCJ2YWx1ZSIsInByZWZpeGVkS2V5IiwiY29uY2F0IiwiYXNzaWduIiwiX2ZsYXR0ZW5NZXNzYWdlcyIsImVuRmxhdCIsIl9vYmplY3RTcHJlYWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGVuIGZyb20gJy4vdHJhbnNsYXRpb25zL2VuJztcbmltcG9ydCBmaSBmcm9tICcuL3RyYW5zbGF0aW9ucy9maSc7XG5pbXBvcnQgcHQgZnJvbSAnLi90cmFuc2xhdGlvbnMvcHQnO1xuaW1wb3J0IGVzIGZyb20gJy4vdHJhbnNsYXRpb25zL2VzJztcbmltcG9ydCBjYSBmcm9tICcuL3RyYW5zbGF0aW9ucy9jYSc7XG5pbXBvcnQgY24gZnJvbSAnLi90cmFuc2xhdGlvbnMvY24nO1xuaW1wb3J0IGphIGZyb20gJy4vdHJhbnNsYXRpb25zL2phJztcbmltcG9ydCBydSBmcm9tICcuL3RyYW5zbGF0aW9ucy9ydSc7XG5cbi8vIEZsYXQgbWVzc2FnZXMgc2luY2UgcmVhY3QtaW50bCBkb2VzIG5vdCBzZWVtIHRvIHN1cHBvcnQgbmVzdGVkIHN0cnVjdHVyZXNcbi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL21lZGl1bS5jb20vc2lyZW4tYXBwYXJlbC1wcmVzcy9pbnRlcm5hdGlvbmFsaXphdGlvbi1hbmQtbG9jYWxpemF0aW9uLW9mLXNpcmVuYXBwYXJlbC1ldS1zaXJlbmFwcGFyZWwtdXMtYW5kLXNpcmVuYXBwYXJlbC1hc2lhLWRkZWUyNjYwNjZhMlxuZXhwb3J0IGNvbnN0IGZsYXR0ZW5NZXNzYWdlcyA9IChcbiAgbmVzdGVkTWVzc2FnZXMsXG4gIHByZWZpeCA9ICcnXG4pOiB7XG4gIFtrZXk6IHN0cmluZ106IHN0cmluZztcbn0gPT4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMobmVzdGVkTWVzc2FnZXMpLnJlZHVjZSgobWVzc2FnZXMsIGtleSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gbmVzdGVkTWVzc2FnZXNba2V5XTtcbiAgICBjb25zdCBwcmVmaXhlZEtleSA9IHByZWZpeCA/IGAke3ByZWZpeH0uJHtrZXl9YCA6IGtleTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgbWVzc2FnZXNbcHJlZml4ZWRLZXldID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obWVzc2FnZXMsIGZsYXR0ZW5NZXNzYWdlcyh2YWx1ZSwgcHJlZml4ZWRLZXkpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICB9LCB7fSk7XG59O1xuXG5jb25zdCBlbkZsYXQgPSBmbGF0dGVuTWVzc2FnZXMoZW4pO1xuXG5leHBvcnQgY29uc3QgbWVzc2FnZXM6IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn0gPSB7fTtcblxubWVzc2FnZXMuZW4gPSBlbkZsYXQ7XG5tZXNzYWdlcy5maSA9IHsuLi5lbkZsYXQsIC4uLmZsYXR0ZW5NZXNzYWdlcyhmaSl9O1xubWVzc2FnZXMucHQgPSB7Li4uZW5GbGF0LCAuLi5mbGF0dGVuTWVzc2FnZXMocHQpfTtcbm1lc3NhZ2VzLmVzID0gey4uLmVuRmxhdCwgLi4uZmxhdHRlbk1lc3NhZ2VzKGVzKX07XG5tZXNzYWdlcy5jYSA9IHsuLi5lbkZsYXQsIC4uLmZsYXR0ZW5NZXNzYWdlcyhjYSl9O1xubWVzc2FnZXMuY24gPSB7Li4uZW5GbGF0LCAuLi5mbGF0dGVuTWVzc2FnZXMoY24pfTtcbm1lc3NhZ2VzLmphID0gey4uLmVuRmxhdCwgLi4uZmxhdHRlbk1lc3NhZ2VzKGphKX07XG5tZXNzYWdlcy5ydSA9IHsuLi5lbkZsYXQsIC4uLmZsYXR0ZW5NZXNzYWdlcyhydSl9O1xuXG5leHBvcnQgZGVmYXVsdCBtZXNzYWdlcztcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxFQUFFLE1BQU0sbUJBQW1CO0FBQ2xDLE9BQU9DLEVBQUUsTUFBTSxtQkFBbUI7QUFDbEMsT0FBT0MsRUFBRSxNQUFNLG1CQUFtQjtBQUNsQyxPQUFPQyxFQUFFLE1BQU0sbUJBQW1CO0FBQ2xDLE9BQU9DLEVBQUUsTUFBTSxtQkFBbUI7QUFDbEMsT0FBT0MsRUFBRSxNQUFNLG1CQUFtQjtBQUNsQyxPQUFPQyxFQUFFLE1BQU0sbUJBQW1CO0FBQ2xDLE9BQU9DLEVBQUUsTUFBTSxtQkFBbUI7O0FBRWxDO0FBQ0E7QUFDTyxJQUFNQyxnQkFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUMxQkMsY0FBYyxFQUlYO0VBQUEsSUFISEMsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO0VBSVgsT0FBT0csTUFBTSxDQUFDQyxJQUFJLENBQUNOLGNBQWMsQ0FBQyxDQUFDTyxNQUFNLENBQUMsVUFBQ0MsUUFBUSxFQUFFQyxHQUFHLEVBQUs7SUFDM0QsSUFBTUMsS0FBSyxHQUFHVixjQUFjLENBQUNTLEdBQUcsQ0FBQztJQUNqQyxJQUFNRSxXQUFXLEdBQUdWLE1BQU0sTUFBQVcsTUFBQSxDQUFNWCxNQUFNLE9BQUFXLE1BQUEsQ0FBSUgsR0FBRyxJQUFLQSxHQUFHO0lBQ3JELElBQUksT0FBT0MsS0FBSyxLQUFLLFFBQVEsRUFBRTtNQUM3QkYsUUFBUSxDQUFDRyxXQUFXLENBQUMsR0FBR0QsS0FBSztJQUMvQixDQUFDLE1BQU07TUFDTEwsTUFBTSxDQUFDUSxNQUFNLENBQUNMLFFBQVEsRUFBRVQsZ0JBQWUsQ0FBQ1csS0FBSyxFQUFFQyxXQUFXLENBQUMsQ0FBQztJQUM5RDtJQUNBLE9BQU9ILFFBQVE7RUFDakIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQUFDLFNBQUFNLGdCQUFBLElBQUFmLGVBQUE7QUFFRixJQUFNZ0IsTUFBTSxHQUFHaEIsZ0JBQWUsQ0FBQ1IsRUFBRSxDQUFDO0FBRWxDLE9BQU8sSUFBTWlCLFFBSVosR0FBRyxDQUFDLENBQUM7QUFFTkEsUUFBUSxDQUFDakIsRUFBRSxHQUFHd0IsTUFBTTtBQUNwQlAsUUFBUSxDQUFDaEIsRUFBRSxHQUFBd0IsYUFBQSxDQUFBQSxhQUFBLEtBQU9ELE1BQU0sR0FBS2hCLGdCQUFlLENBQUNQLEVBQUUsQ0FBQyxDQUFDO0FBQ2pEZ0IsUUFBUSxDQUFDZixFQUFFLEdBQUF1QixhQUFBLENBQUFBLGFBQUEsS0FBT0QsTUFBTSxHQUFLaEIsZ0JBQWUsQ0FBQ04sRUFBRSxDQUFDLENBQUM7QUFDakRlLFFBQVEsQ0FBQ2QsRUFBRSxHQUFBc0IsYUFBQSxDQUFBQSxhQUFBLEtBQU9ELE1BQU0sR0FBS2hCLGdCQUFlLENBQUNMLEVBQUUsQ0FBQyxDQUFDO0FBQ2pEYyxRQUFRLENBQUNiLEVBQUUsR0FBQXFCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPRCxNQUFNLEdBQUtoQixnQkFBZSxDQUFDSixFQUFFLENBQUMsQ0FBQztBQUNqRGEsUUFBUSxDQUFDWixFQUFFLEdBQUFvQixhQUFBLENBQUFBLGFBQUEsS0FBT0QsTUFBTSxHQUFLaEIsZ0JBQWUsQ0FBQ0gsRUFBRSxDQUFDLENBQUM7QUFDakRZLFFBQVEsQ0FBQ1gsRUFBRSxHQUFBbUIsYUFBQSxDQUFBQSxhQUFBLEtBQU9ELE1BQU0sR0FBS2hCLGdCQUFlLENBQUNGLEVBQUUsQ0FBQyxDQUFDO0FBQ2pEVyxRQUFRLENBQUNWLEVBQUUsR0FBQWtCLGFBQUEsQ0FBQUEsYUFBQSxLQUFPRCxNQUFNLEdBQUtoQixnQkFBZSxDQUFDRCxFQUFFLENBQUMsQ0FBQztBQUVqRCxlQUFlVSxRQUFRIiwiaWdub3JlTGlzdCI6W119