@pie-lib/editable-html 11.1.1 → 11.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -4
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/editor.test.js +470 -0
- package/lib/__tests__/serialization.test.js +246 -0
- package/lib/__tests__/utils.js +106 -0
- package/lib/block-tags.js +25 -0
- package/lib/constants.js +16 -0
- package/lib/editor.js +349 -88
- package/lib/index.js +26 -10
- package/lib/parse-html.js +1 -1
- package/lib/plugins/characters/custom-popper.js +1 -1
- package/lib/plugins/characters/index.js +9 -4
- package/lib/plugins/characters/utils.js +13 -13
- package/lib/plugins/css/icons/index.js +37 -0
- package/lib/plugins/css/index.js +397 -0
- package/lib/plugins/customPlugin/index.js +114 -0
- package/lib/plugins/html/icons/index.js +1 -1
- package/lib/plugins/html/index.js +12 -8
- package/lib/plugins/image/__tests__/component.test.js +51 -0
- package/lib/plugins/image/__tests__/image-toolbar-logic.test.js +56 -0
- package/lib/plugins/image/__tests__/image-toolbar.test.js +26 -0
- package/lib/plugins/image/__tests__/index.test.js +98 -0
- package/lib/plugins/image/__tests__/insert-image-handler.test.js +125 -0
- package/lib/plugins/image/__tests__/mock-change.js +25 -0
- package/lib/plugins/image/alt-dialog.js +1 -1
- package/lib/plugins/image/component.js +1 -1
- package/lib/plugins/image/image-toolbar.js +1 -1
- package/lib/plugins/image/index.js +3 -2
- package/lib/plugins/image/insert-image-handler.js +14 -5
- package/lib/plugins/index.js +271 -12
- package/lib/plugins/list/__tests__/index.test.js +79 -0
- package/lib/plugins/list/index.js +131 -1
- package/lib/plugins/math/__tests__/index.test.js +300 -0
- package/lib/plugins/math/index.js +92 -57
- package/lib/plugins/media/__tests__/index.test.js +71 -0
- package/lib/plugins/media/index.js +6 -3
- package/lib/plugins/media/media-dialog.js +99 -58
- package/lib/plugins/media/media-toolbar.js +1 -1
- package/lib/plugins/media/media-wrapper.js +1 -1
- package/lib/plugins/rendering/index.js +46 -0
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +6 -3
- package/lib/plugins/respArea/drag-in-the-blank/index.js +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +12 -10
- package/lib/plugins/respArea/icons/index.js +1 -1
- package/lib/plugins/respArea/index.js +70 -22
- package/lib/plugins/respArea/inline-dropdown/index.js +11 -6
- package/lib/plugins/respArea/math-templated/index.js +130 -0
- package/lib/plugins/respArea/utils.js +17 -2
- package/lib/plugins/table/CustomTablePlugin.js +133 -0
- package/lib/plugins/table/__tests__/index.test.js +442 -0
- package/lib/plugins/table/__tests__/table-toolbar.test.js +54 -0
- package/lib/plugins/table/icons/index.js +1 -1
- package/lib/plugins/table/index.js +44 -60
- package/lib/plugins/table/table-toolbar.js +34 -5
- package/lib/plugins/textAlign/icons/index.js +226 -0
- package/lib/plugins/textAlign/index.js +34 -0
- package/lib/plugins/toolbar/__tests__/default-toolbar.test.js +128 -0
- package/lib/plugins/toolbar/__tests__/editor-and-toolbar.test.js +51 -0
- package/lib/plugins/toolbar/__tests__/toolbar-buttons.test.js +54 -0
- package/lib/plugins/toolbar/__tests__/toolbar.test.js +120 -0
- package/lib/plugins/toolbar/default-toolbar.js +83 -28
- package/lib/plugins/toolbar/done-button.js +6 -3
- package/lib/plugins/toolbar/editor-and-toolbar.js +19 -20
- package/lib/plugins/toolbar/index.js +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +45 -12
- package/lib/plugins/toolbar/toolbar.js +36 -12
- package/lib/plugins/utils.js +1 -1
- package/lib/serialization.js +234 -45
- package/lib/theme.js +1 -1
- package/package.json +6 -6
- package/src/__tests__/editor.test.jsx +363 -0
- package/src/__tests__/serialization.test.js +291 -0
- package/src/__tests__/utils.js +36 -0
- package/src/block-tags.js +17 -0
- package/src/constants.js +7 -0
- package/src/editor.jsx +303 -49
- package/src/index.jsx +19 -10
- package/src/plugins/characters/index.jsx +11 -3
- package/src/plugins/characters/utils.js +12 -12
- package/src/plugins/css/icons/index.jsx +17 -0
- package/src/plugins/css/index.jsx +346 -0
- package/src/plugins/customPlugin/index.jsx +85 -0
- package/src/plugins/html/index.jsx +9 -6
- package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +51 -0
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +27 -0
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +44 -0
- package/src/plugins/image/__tests__/component.test.jsx +41 -0
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +42 -0
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +11 -0
- package/src/plugins/image/__tests__/index.test.js +95 -0
- package/src/plugins/image/__tests__/insert-image-handler.test.js +113 -0
- package/src/plugins/image/__tests__/mock-change.js +15 -0
- package/src/plugins/image/index.jsx +2 -1
- package/src/plugins/image/insert-image-handler.js +13 -6
- package/src/plugins/index.jsx +248 -5
- package/src/plugins/list/__tests__/index.test.js +54 -0
- package/src/plugins/list/index.jsx +130 -0
- package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +48 -0
- package/src/plugins/math/__tests__/index.test.jsx +245 -0
- package/src/plugins/math/index.jsx +87 -56
- package/src/plugins/media/__tests__/index.test.js +75 -0
- package/src/plugins/media/index.jsx +3 -2
- package/src/plugins/media/media-dialog.js +106 -57
- package/src/plugins/rendering/index.js +31 -0
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +4 -1
- package/src/plugins/respArea/explicit-constructed-response/index.jsx +10 -8
- package/src/plugins/respArea/index.jsx +53 -7
- package/src/plugins/respArea/inline-dropdown/index.jsx +13 -6
- package/src/plugins/respArea/math-templated/index.jsx +104 -0
- package/src/plugins/respArea/utils.jsx +11 -0
- package/src/plugins/table/CustomTablePlugin.js +113 -0
- package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +44 -0
- package/src/plugins/table/__tests__/index.test.jsx +401 -0
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +42 -0
- package/src/plugins/table/index.jsx +46 -59
- package/src/plugins/table/table-toolbar.jsx +39 -2
- package/src/plugins/textAlign/icons/index.jsx +139 -0
- package/src/plugins/textAlign/index.jsx +23 -0
- package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +923 -0
- package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +20 -0
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +36 -0
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +46 -0
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +94 -0
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +37 -0
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +51 -0
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +106 -0
- package/src/plugins/toolbar/default-toolbar.jsx +80 -20
- package/src/plugins/toolbar/done-button.jsx +3 -1
- package/src/plugins/toolbar/editor-and-toolbar.jsx +18 -13
- package/src/plugins/toolbar/toolbar-buttons.jsx +52 -11
- package/src/plugins/toolbar/toolbar.jsx +31 -8
- package/src/serialization.jsx +213 -38
- package/README.md +0 -45
- package/deploy.sh +0 -16
- package/lib/editor.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/parse-html.js.map +0 -1
- package/lib/plugins/characters/custom-popper.js.map +0 -1
- package/lib/plugins/characters/index.js.map +0 -1
- package/lib/plugins/characters/utils.js.map +0 -1
- package/lib/plugins/html/icons/index.js.map +0 -1
- package/lib/plugins/html/index.js.map +0 -1
- package/lib/plugins/image/alt-dialog.js.map +0 -1
- package/lib/plugins/image/component.js.map +0 -1
- package/lib/plugins/image/image-toolbar.js.map +0 -1
- package/lib/plugins/image/index.js.map +0 -1
- package/lib/plugins/image/insert-image-handler.js.map +0 -1
- package/lib/plugins/index.js.map +0 -1
- package/lib/plugins/list/index.js.map +0 -1
- package/lib/plugins/math/index.js.map +0 -1
- package/lib/plugins/media/index.js.map +0 -1
- package/lib/plugins/media/media-dialog.js.map +0 -1
- package/lib/plugins/media/media-toolbar.js.map +0 -1
- package/lib/plugins/media/media-wrapper.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
- package/lib/plugins/respArea/icons/index.js.map +0 -1
- package/lib/plugins/respArea/index.js.map +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
- package/lib/plugins/respArea/utils.js.map +0 -1
- package/lib/plugins/table/icons/index.js.map +0 -1
- package/lib/plugins/table/index.js.map +0 -1
- package/lib/plugins/table/table-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/done-button.js.map +0 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/index.js.map +0 -1
- package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
- package/lib/plugins/toolbar/toolbar.js.map +0 -1
- package/lib/plugins/utils.js.map +0 -1
- package/lib/serialization.js.map +0 -1
- package/lib/theme.js.map +0 -1
- package/playground/image/data.js +0 -59
- package/playground/image/index.html +0 -22
- package/playground/image/index.jsx +0 -81
- package/playground/index.html +0 -25
- package/playground/mathquill/index.html +0 -22
- package/playground/mathquill/index.jsx +0 -155
- package/playground/package.json +0 -15
- package/playground/prod-test/index.html +0 -22
- package/playground/prod-test/index.jsx +0 -28
- package/playground/schema-override/data.js +0 -29
- package/playground/schema-override/image-plugin.jsx +0 -41
- package/playground/schema-override/index.html +0 -21
- package/playground/schema-override/index.jsx +0 -97
- package/playground/serialization/data.js +0 -29
- package/playground/serialization/image-plugin.jsx +0 -41
- package/playground/serialization/index.html +0 -22
- package/playground/serialization/index.jsx +0 -12
- package/playground/static.json +0 -3
- package/playground/table-examples.html +0 -70
- package/playground/webpack.config.js +0 -42
- package/static.json +0 -1
|
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
|
|
16
|
-
var _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
|
|
17
|
-
|
|
18
16
|
var _slate = require("slate");
|
|
19
17
|
|
|
20
18
|
var _debug = _interopRequireDefault(require("debug"));
|
|
@@ -33,6 +31,8 @@ var _reactAttrConverter = _interopRequireDefault(require("react-attr-converter")
|
|
|
33
31
|
|
|
34
32
|
var _toStyle = require("to-style");
|
|
35
33
|
|
|
34
|
+
var _CustomTablePlugin = _interopRequireDefault(require("./CustomTablePlugin"));
|
|
35
|
+
|
|
36
36
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
37
|
|
|
38
38
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -114,9 +114,7 @@ exports.moveFocusToBeginningOfTable = moveFocusToBeginningOfTable;
|
|
|
114
114
|
var _default = function _default(opts, toolbarPlugins
|
|
115
115
|
/* : {toolbar: {}}[] */
|
|
116
116
|
) {
|
|
117
|
-
var core = (0,
|
|
118
|
-
typeContent: 'div'
|
|
119
|
-
}); // fix outdated schema
|
|
117
|
+
var core = (0, _CustomTablePlugin["default"])(opts); // fix outdated schema
|
|
120
118
|
|
|
121
119
|
if (core.schema && core.schema.blocks) {
|
|
122
120
|
Object.keys(core.schema.blocks).forEach(function (key) {
|
|
@@ -163,7 +161,9 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
163
161
|
};
|
|
164
162
|
|
|
165
163
|
core.toolbar = {
|
|
164
|
+
type: 'table',
|
|
166
165
|
icon: /*#__PURE__*/_react["default"].createElement(_GridOn["default"], null),
|
|
166
|
+
ariaLabel: 'Insert Table',
|
|
167
167
|
onClick: function onClick(value, onChange) {
|
|
168
168
|
log('insert table');
|
|
169
169
|
var change = value.change();
|
|
@@ -184,7 +184,7 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
184
184
|
/**
|
|
185
185
|
* Note - the node may not be a table node - it may be a node inside a table.
|
|
186
186
|
*/
|
|
187
|
-
customToolbar: function customToolbar(node, value, onToolbarDone) {
|
|
187
|
+
customToolbar: function customToolbar(node, value, onToolbarDone, getFocusedValue) {
|
|
188
188
|
log('[customToolbar] node.data: ', node.data);
|
|
189
189
|
var tableBlock = core.utils.getTableBlock(value.document, node === null || node === void 0 ? void 0 : node.key);
|
|
190
190
|
log('[customToolbar] tableBlock: ', tableBlock);
|
|
@@ -235,6 +235,7 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
235
235
|
|
|
236
236
|
var Tb = function Tb() {
|
|
237
237
|
return /*#__PURE__*/_react["default"].createElement(_tableToolbar["default"], {
|
|
238
|
+
getFocusedValue: getFocusedValue,
|
|
238
239
|
plugins: toolbarPlugins,
|
|
239
240
|
onChange: function onChange(c) {
|
|
240
241
|
return onToolbarDone(c, false);
|
|
@@ -282,73 +283,56 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
282
283
|
};
|
|
283
284
|
|
|
284
285
|
core.normalizeNode = function (node) {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
286
|
+
var addNodeBeforeArray = [];
|
|
287
|
+
if (node.object !== 'document') return;
|
|
288
|
+
node.findDescendant(function (d) {
|
|
289
|
+
if (d.type === 'table') {
|
|
290
|
+
var tablePath = node.getPath(d.key);
|
|
291
|
+
var prevNode = node.getPreviousNode(tablePath);
|
|
292
|
+
var nextNode = node.getNextNode(tablePath);
|
|
293
|
+
|
|
294
|
+
if (!prevNode || !nextNode) {
|
|
295
|
+
addNodeBeforeArray.push({
|
|
296
|
+
node: d,
|
|
297
|
+
prevNode: prevNode,
|
|
298
|
+
nextNode: nextNode
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
}
|
|
291
302
|
});
|
|
292
303
|
|
|
293
|
-
if (!
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
var nodeToSearch = node.getParent(tableAdded.key) || node;
|
|
298
|
-
var shouldAddTextAfterNode = false;
|
|
299
|
-
var indexToNotHaveTableOn = nodeToSearch.nodes.size - 1;
|
|
300
|
-
var indexOfLastTable = nodeToSearch.nodes.findLastIndex(function (d) {
|
|
301
|
-
return d.type === 'table';
|
|
302
|
-
}); // if the last table in the document is of type table, we need to do the change
|
|
303
|
-
|
|
304
|
-
if (indexOfLastTable === indexToNotHaveTableOn) {
|
|
305
|
-
shouldAddTextAfterNode = true;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
if (!shouldAddTextAfterNode) {
|
|
304
|
+
if (!addNodeBeforeArray.length) {
|
|
309
305
|
return;
|
|
310
306
|
}
|
|
311
307
|
|
|
312
308
|
return function (change) {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
var newBlock = _slate.Block.create({
|
|
320
|
-
object: 'block',
|
|
321
|
-
type: 'div'
|
|
322
|
-
}); // we add an empty block but that it's going to be normalized
|
|
323
|
-
// because it will add the empty text to it like it should
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
change.insertBlock(newBlock);
|
|
327
|
-
change.withoutNormalization(function () {
|
|
328
|
-
// we do these changes without normalization
|
|
329
|
-
// we get the text previous to the new block added
|
|
330
|
-
var prevText = change.value.document.getPreviousText(newBlock.key);
|
|
309
|
+
var newBlock = {
|
|
310
|
+
object: 'block',
|
|
311
|
+
type: 'div'
|
|
312
|
+
};
|
|
313
|
+
addNodeBeforeArray.forEach(function (n) {
|
|
314
|
+
var tablePath = change.value.document.getPath(n.node.key).toJSON(); // removing tableIndex
|
|
331
315
|
|
|
332
|
-
|
|
333
|
-
var _prevText$text, _prevText$text2;
|
|
316
|
+
var indexToAdd = tablePath.splice(-1)[0];
|
|
334
317
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
318
|
+
if (!n.prevNode) {
|
|
319
|
+
// inserting block key before table
|
|
320
|
+
change.insertNodeByPath(tablePath, indexToAdd, newBlock); // this will trigger another normalization, which will figure out if there's not
|
|
321
|
+
// a block after the table and add it, so we exit for now
|
|
338
322
|
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
339
325
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
moveFocusToBeginningOfTable(change);
|
|
346
|
-
});
|
|
347
|
-
}
|
|
326
|
+
if (!n.nextNode) {
|
|
327
|
+
// inserting block key after table
|
|
328
|
+
change.insertNodeByPath(tablePath, indexToAdd + 1, newBlock);
|
|
329
|
+
}
|
|
330
|
+
});
|
|
348
331
|
};
|
|
349
332
|
};
|
|
350
333
|
|
|
351
334
|
core.renderNode = Node;
|
|
335
|
+
core.name = 'table';
|
|
352
336
|
return core;
|
|
353
337
|
};
|
|
354
338
|
|
|
@@ -496,4 +480,4 @@ var serialization = {
|
|
|
496
480
|
}
|
|
497
481
|
};
|
|
498
482
|
exports.serialization = serialization;
|
|
499
|
-
//# sourceMappingURL=index.js.map
|
|
483
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3RhYmxlL2luZGV4LmpzeCJdLCJuYW1lcyI6WyJsb2ciLCJUYWJsZSIsInRhYmxlIiwicHJvcHMiLCJub2RlQXR0cmlidXRlcyIsImRhdGFUb0F0dHJpYnV0ZXMiLCJub2RlIiwiZGF0YSIsImNsYXNzZXMiLCJhdHRyaWJ1dGVzIiwib25Gb2N1cyIsIm9uQmx1ciIsImNoaWxkcmVuIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiZnVuYyIsIlNsYXRlUHJvcFR5cGVzIiwib25lT2ZUeXBlIiwiYXJyYXlPZiIsImlzUmVxdWlyZWQiLCJUYWJsZVJvdyIsIlRhYmxlQ2VsbCIsInRkIiwibWluV2lkdGgiLCJUYWciLCJnZXQiLCJoZWFkZXIiLCJtb3ZlRm9jdXNUb0JlZ2lubmluZ09mVGFibGUiLCJjaGFuZ2UiLCJhZGRlZFRhYmxlIiwidmFsdWUiLCJkb2N1bWVudCIsImZpbmREZXNjZW5kYW50IiwiZCIsImNvbGxhcHNlVG9TdGFydE9mIiwidXBkYXRlIiwicmVtb3ZlIiwic2V0Tm9kZUJ5S2V5Iiwia2V5Iiwib3B0cyIsInRvb2xiYXJQbHVnaW5zIiwiY29yZSIsInNjaGVtYSIsImJsb2NrcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiYmxvY2siLCJwYXJlbnQiLCJub2RlcyIsInR5cGVzIiwidHlwZSIsIm9iamVjdHMiLCJ1dGlscyIsImdldFRhYmxlQmxvY2siLCJjb250YWluZXJOb2RlIiwiZ2V0RGVzY2VuZGFudCIsImFuY2VzdG9ycyIsImdldEFuY2VzdG9ycyIsInB1c2giLCJmaW5kTGFzdCIsInAiLCJjcmVhdGVUYWJsZVdpdGhPcHRpb25zIiwicm93IiwiY29sdW1ucyIsImV4dHJhIiwiY3JlYXRlZFRhYmxlIiwiY3JlYXRlVGFibGUiLCJuZXdUYWJsZSIsIkJsb2NrIiwiY3JlYXRlIiwidG9KU09OIiwidG9vbGJhciIsImljb24iLCJhcmlhTGFiZWwiLCJvbkNsaWNrIiwib25DaGFuZ2UiLCJib3JkZXIiLCJpbnNlcnRCbG9jayIsInN1cHBvcnRzIiwiaXNTZWxlY3Rpb25JblRhYmxlIiwiY3VzdG9tVG9vbGJhciIsIm9uVG9vbGJhckRvbmUiLCJnZXRGb2N1c2VkVmFsdWUiLCJ0YWJsZUJsb2NrIiwiaGFzQm9yZGVyIiwiYWRkUm93IiwiY2hhbmdlcyIsImluc2VydFJvdyIsImFkZENvbHVtbiIsImluc2VydENvbHVtbiIsInJlbW92ZVJvdyIsInJlbW92ZUNvbHVtbiIsInJlbW92ZVRhYmxlIiwidG9nZ2xlQm9yZGVyIiwic2V0Iiwib25Eb25lIiwiVGIiLCJjIiwiTm9kZSIsIm5vcm1hbGl6ZU5vZGUiLCJhZGROb2RlQmVmb3JlQXJyYXkiLCJ0YWJsZVBhdGgiLCJnZXRQYXRoIiwicHJldk5vZGUiLCJnZXRQcmV2aW91c05vZGUiLCJuZXh0Tm9kZSIsImdldE5leHROb2RlIiwibGVuZ3RoIiwibmV3QmxvY2siLCJuIiwiaW5kZXhUb0FkZCIsInNwbGljZSIsImluc2VydE5vZGVCeVBhdGgiLCJyZW5kZXJOb2RlIiwibmFtZSIsInBhcnNlU3R5bGVTdHJpbmciLCJzIiwicmVnZXgiLCJtYXRjaCIsInJlc3VsdCIsImV4ZWMiLCJ0cmltIiwicmVhY3RBdHRyaWJ1dGVzIiwibyIsImNhbWVsaXplIiwiYWRkVW5pdHMiLCJhdHRyaWJ1dGVzVG9NYXAiLCJlbCIsImFjYyIsImF0dHJpYnV0ZSIsImdldEF0dHJpYnV0ZSIsInN0eWxlU3RyaW5nIiwicmVhY3RTdHlsZU9iamVjdCIsInJlZHVjZSIsInYiLCJjZWxsQXR0cmlidXRlcyIsInNlcmlhbGl6YXRpb24iLCJkZXNlcmlhbGl6ZSIsIm5leHQiLCJ0YWciLCJ0YWdOYW1lIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImZyb20iLCJjaGlsZE5vZGVzIiwic2VyaWFsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxzQ0FBTixDQUFaO0FBRUEsSUFBTUMsS0FBSyxHQUFHLHdCQUFXO0FBQUEsU0FBTztBQUM5QkMsSUFBQUEsS0FBSyxFQUFFO0FBRHVCLEdBQVA7QUFBQSxDQUFYLEVBRVYsVUFBQ0MsS0FBRCxFQUFXO0FBQ2IsTUFBTUMsY0FBYyxHQUFHQyxnQkFBZ0IsQ0FBQ0YsS0FBSyxDQUFDRyxJQUFOLENBQVdDLElBQVosQ0FBdkM7QUFFQSxzQkFDRTtBQUNFLElBQUEsU0FBUyxFQUFFSixLQUFLLENBQUNLLE9BQU4sQ0FBY047QUFEM0IsS0FFTUMsS0FBSyxDQUFDTSxVQUZaLEVBR01MLGNBSE47QUFJRSxJQUFBLE9BQU8sRUFBRUQsS0FBSyxDQUFDTyxPQUpqQjtBQUtFLElBQUEsTUFBTSxFQUFFUCxLQUFLLENBQUNRO0FBTGhCLG1CQU9FLCtDQUFRUixLQUFLLENBQUNTLFFBQWQsQ0FQRixDQURGO0FBV0QsQ0FoQmEsQ0FBZDtBQWtCQVgsS0FBSyxDQUFDWSxTQUFOLEdBQWtCO0FBQ2hCSixFQUFBQSxVQUFVLEVBQUVLLHNCQUFVQyxNQUROO0FBRWhCTCxFQUFBQSxPQUFPLEVBQUVJLHNCQUFVRSxJQUZIO0FBR2hCTCxFQUFBQSxNQUFNLEVBQUVHLHNCQUFVRSxJQUhGO0FBSWhCVixFQUFBQSxJQUFJLEVBQUVXLDJCQUFlWCxJQUpMO0FBS2hCTSxFQUFBQSxRQUFRLEVBQUVFLHNCQUFVSSxTQUFWLENBQW9CLENBQUNKLHNCQUFVSyxPQUFWLENBQWtCTCxzQkFBVVIsSUFBNUIsQ0FBRCxFQUFvQ1Esc0JBQVVSLElBQTlDLENBQXBCLEVBQXlFYztBQUxuRSxDQUFsQjs7QUFRQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDbEIsS0FBRDtBQUFBLHNCQUFXLHNDQUFRQSxLQUFLLENBQUNNLFVBQWQsRUFBMkJOLEtBQUssQ0FBQ1MsUUFBakMsQ0FBWDtBQUFBLENBQWpCOztBQUVBUyxRQUFRLENBQUNSLFNBQVQsR0FBcUI7QUFDbkJKLEVBQUFBLFVBQVUsRUFBRUssc0JBQVVDLE1BREg7QUFFbkJMLEVBQUFBLE9BQU8sRUFBRUksc0JBQVVFLElBRkE7QUFHbkJMLEVBQUFBLE1BQU0sRUFBRUcsc0JBQVVFLElBSEM7QUFJbkJKLEVBQUFBLFFBQVEsRUFBRUUsc0JBQVVJLFNBQVYsQ0FBb0IsQ0FBQ0osc0JBQVVLLE9BQVYsQ0FBa0JMLHNCQUFVUixJQUE1QixDQUFELEVBQW9DUSxzQkFBVVIsSUFBOUMsQ0FBcEIsRUFBeUVjO0FBSmhFLENBQXJCO0FBT0EsSUFBTUUsU0FBUyxHQUFHLHdCQUFXO0FBQUEsU0FBTztBQUNsQ0MsSUFBQUEsRUFBRSxFQUFFO0FBQ0ZDLE1BQUFBLFFBQVEsRUFBRTtBQURSO0FBRDhCLEdBQVA7QUFBQSxDQUFYLEVBSWQsVUFBQ3JCLEtBQUQsRUFBVztBQUNiLE1BQU1zQixHQUFHLEdBQUd0QixLQUFLLENBQUNHLElBQU4sQ0FBV0MsSUFBWCxDQUFnQm1CLEdBQWhCLENBQW9CLFFBQXBCLElBQWdDLElBQWhDLEdBQXVDLElBQW5EO0FBRUEsTUFBTXRCLGNBQWMsR0FBR0MsZ0JBQWdCLENBQUNGLEtBQUssQ0FBQ0csSUFBTixDQUFXQyxJQUFaLENBQXZDO0FBQ0EsU0FBT0gsY0FBYyxDQUFDdUIsTUFBdEI7QUFFQSxzQkFDRSxnQ0FBQyxHQUFELGdDQUNNeEIsS0FBSyxDQUFDTSxVQURaLEVBRU1MLGNBRk47QUFHRSxJQUFBLE9BQU8sRUFBRUQsS0FBSyxDQUFDRyxJQUFOLENBQVdDLElBQVgsQ0FBZ0JtQixHQUFoQixDQUFvQixTQUFwQixDQUhYO0FBSUUsSUFBQSxTQUFTLEVBQUV2QixLQUFLLENBQUNLLE9BQU4sQ0FBY2lCLEdBQWQsQ0FKYjtBQUtFLElBQUEsT0FBTyxFQUFFdEIsS0FBSyxDQUFDTyxPQUxqQjtBQU1FLElBQUEsTUFBTSxFQUFFUCxLQUFLLENBQUNRO0FBTmhCLE1BUUdSLEtBQUssQ0FBQ1MsUUFSVCxDQURGO0FBWUQsQ0F0QmlCLENBQWxCO0FBd0JBVSxTQUFTLENBQUNULFNBQVYsR0FBc0I7QUFDcEJKLEVBQUFBLFVBQVUsRUFBRUssc0JBQVVDLE1BREY7QUFFcEJMLEVBQUFBLE9BQU8sRUFBRUksc0JBQVVFLElBRkM7QUFHcEJMLEVBQUFBLE1BQU0sRUFBRUcsc0JBQVVFLElBSEU7QUFJcEJKLEVBQUFBLFFBQVEsRUFBRUUsc0JBQVVJLFNBQVYsQ0FBb0IsQ0FBQ0osc0JBQVVLLE9BQVYsQ0FBa0JMLHNCQUFVUixJQUE1QixDQUFELEVBQW9DUSxzQkFBVVIsSUFBOUMsQ0FBcEIsRUFBeUVjO0FBSi9ELENBQXRCOztBQU9PLElBQU1RLDJCQUEyQixHQUFHLFNBQTlCQSwyQkFBOEIsQ0FBQ0MsTUFBRCxFQUFZO0FBQ3JELE1BQU1DLFVBQVUsR0FBR0QsTUFBTSxDQUFDRSxLQUFQLENBQWFDLFFBQWIsQ0FBc0JDLGNBQXRCLENBQXFDLFVBQUNDLENBQUQ7QUFBQSxXQUFPLENBQUMsQ0FBQ0EsQ0FBQyxDQUFDM0IsSUFBSixJQUFZLENBQUMsQ0FBQzJCLENBQUMsQ0FBQzNCLElBQUYsQ0FBT21CLEdBQVAsQ0FBVyxVQUFYLENBQXJCO0FBQUEsR0FBckMsQ0FBbkI7O0FBRUEsTUFBSSxDQUFDSSxVQUFMLEVBQWlCO0FBQ2Y7QUFDRDs7QUFFREQsRUFBQUEsTUFBTSxDQUFDTSxpQkFBUCxDQUF5QkwsVUFBekI7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLFVBQVUsQ0FBQ3ZCLElBQVgsQ0FBZ0I4QixNQUFoQixDQUF1QixVQUF2QixDQUFmO0FBRUFSLEVBQUFBLE1BQU0sQ0FBQ1MsWUFBUCxDQUFvQlIsVUFBVSxDQUFDUyxHQUEvQixFQUFvQztBQUFFaEMsSUFBQUEsSUFBSSxFQUFFNkI7QUFBUixHQUFwQztBQUNELENBWk07Ozs7ZUFjUSxrQkFBQ0ksSUFBRCxFQUFPQztBQUFlO0FBQXRCLEVBQW1EO0FBQ2hFLE1BQU1DLElBQUksR0FBRyxtQ0FBa0JGLElBQWxCLENBQWIsQ0FEZ0UsQ0FHaEU7O0FBRUEsTUFBSUUsSUFBSSxDQUFDQyxNQUFMLElBQWVELElBQUksQ0FBQ0MsTUFBTCxDQUFZQyxNQUEvQixFQUF1QztBQUNyQ0MsSUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlKLElBQUksQ0FBQ0MsTUFBTCxDQUFZQyxNQUF4QixFQUFnQ0csT0FBaEMsQ0FBd0MsVUFBQ1IsR0FBRCxFQUFTO0FBQy9DLFVBQU1TLEtBQUssR0FBR04sSUFBSSxDQUFDQyxNQUFMLENBQVlDLE1BQVosQ0FBbUJMLEdBQW5CLENBQWQ7O0FBRUEsVUFBSVMsS0FBSyxDQUFDQyxNQUFWLEVBQWtCO0FBQ2hCLFlBQUlELEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosRUFBZUMsS0FBbkIsRUFBMEI7QUFDeEJILFVBQUFBLEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosSUFBaUI7QUFDZkUsWUFBQUEsSUFBSSxFQUFFSixLQUFLLENBQUNFLEtBQU4sQ0FBWSxDQUFaLEVBQWVDLEtBQWYsQ0FBcUIsQ0FBckI7QUFEUyxXQUFqQjtBQUdEOztBQUVELFlBQUlILEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosRUFBZUcsT0FBbkIsRUFBNEI7QUFDMUJMLFVBQUFBLEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosSUFBaUI7QUFDZm5DLFlBQUFBLE1BQU0sRUFBRWlDLEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosRUFBZUcsT0FBZixDQUF1QixDQUF2QjtBQURPLFdBQWpCO0FBR0Q7O0FBRURMLFFBQUFBLEtBQUssQ0FBQ0MsTUFBTixHQUFlO0FBQ2JHLFVBQUFBLElBQUksRUFBRUosS0FBSyxDQUFDQyxNQUFOLENBQWFFLEtBQWIsQ0FBbUIsQ0FBbkI7QUFETyxTQUFmO0FBR0QsT0FoQkQsTUFnQk87QUFDTEgsUUFBQUEsS0FBSyxDQUFDRSxLQUFOLENBQVksQ0FBWixJQUFpQjtBQUFFRSxVQUFBQSxJQUFJLEVBQUVKLEtBQUssQ0FBQ0UsS0FBTixDQUFZLENBQVosRUFBZUMsS0FBZixDQUFxQixDQUFyQjtBQUFSLFNBQWpCO0FBQ0Q7QUFDRixLQXRCRDtBQXVCRDs7QUFFRFQsRUFBQUEsSUFBSSxDQUFDWSxLQUFMLENBQVdDLGFBQVgsR0FBMkIsVUFBQ0MsYUFBRCxFQUFnQmpCLEdBQWhCLEVBQXdCO0FBQ2pELFFBQU1qQyxJQUFJLEdBQUdrRCxhQUFhLENBQUNDLGFBQWQsQ0FBNEJsQixHQUE1QixDQUFiO0FBQ0EsUUFBTW1CLFNBQVMsR0FBR0YsYUFBYSxDQUFDRyxZQUFkLENBQTJCcEIsR0FBM0IsRUFBZ0NxQixJQUFoQyxDQUFxQ3RELElBQXJDLENBQWxCO0FBQ0EsV0FBT29ELFNBQVMsQ0FBQ0csUUFBVixDQUFtQixVQUFDQyxDQUFEO0FBQUEsYUFBT0EsQ0FBQyxDQUFDVixJQUFGLEtBQVcsT0FBbEI7QUFBQSxLQUFuQixDQUFQO0FBQ0QsR0FKRDs7QUFNQVYsRUFBQUEsSUFBSSxDQUFDWSxLQUFMLENBQVdTLHNCQUFYLEdBQW9DLFVBQUNDLEdBQUQsRUFBTUMsT0FBTixFQUFlQyxLQUFmLEVBQXlCO0FBQzNELFFBQU1DLFlBQVksR0FBR3pCLElBQUksQ0FBQ1ksS0FBTCxDQUFXYyxXQUFYLENBQXVCSixHQUF2QixFQUE0QkMsT0FBNUIsQ0FBckI7O0FBQ0EsUUFBTUksUUFBUSxHQUFHQyxhQUFNQyxNQUFOLGlDQUNaSixZQUFZLENBQUNLLE1BQWIsRUFEWSxHQUVaTixLQUZZLEVBQWpCOztBQUtBLFdBQU9HLFFBQVA7QUFDRCxHQVJEOztBQVVBM0IsRUFBQUEsSUFBSSxDQUFDK0IsT0FBTCxHQUFlO0FBQ2JyQixJQUFBQSxJQUFJLEVBQUUsT0FETztBQUVic0IsSUFBQUEsSUFBSSxlQUFFLGdDQUFDLGtCQUFELE9BRk87QUFHYkMsSUFBQUEsU0FBUyxFQUFFLGNBSEU7QUFJYkMsSUFBQUEsT0FBTyxFQUFFLGlCQUFDN0MsS0FBRCxFQUFROEMsUUFBUixFQUFxQjtBQUM1QjdFLE1BQUFBLEdBQUcsQ0FBQyxjQUFELENBQUg7QUFDQSxVQUFNNkIsTUFBTSxHQUFHRSxLQUFLLENBQUNGLE1BQU4sRUFBZjtBQUNBLFVBQU13QyxRQUFRLEdBQUczQixJQUFJLENBQUNZLEtBQUwsQ0FBV1Msc0JBQVgsQ0FBa0MsQ0FBbEMsRUFBcUMsQ0FBckMsRUFBd0M7QUFDdkR4RCxRQUFBQSxJQUFJLEVBQUU7QUFDSnVFLFVBQUFBLE1BQU0sRUFBRSxHQURKO0FBRUpULFVBQUFBLFFBQVEsRUFBRTtBQUZOO0FBRGlELE9BQXhDLENBQWpCO0FBT0F4QyxNQUFBQSxNQUFNLENBQUNrRCxXQUFQLENBQW1CVixRQUFuQjtBQUVBekMsTUFBQUEsMkJBQTJCLENBQUNDLE1BQUQsQ0FBM0I7QUFDQWdELE1BQUFBLFFBQVEsQ0FBQ2hELE1BQUQsQ0FBUjtBQUNELEtBbEJZO0FBbUJibUQsSUFBQUEsUUFBUSxFQUFFLGtCQUFDMUUsSUFBRCxFQUFPeUIsS0FBUDtBQUFBLGFBQWlCekIsSUFBSSxJQUFJQSxJQUFJLENBQUNTLE1BQUwsS0FBZ0IsT0FBeEIsSUFBbUMyQixJQUFJLENBQUNZLEtBQUwsQ0FBVzJCLGtCQUFYLENBQThCbEQsS0FBOUIsQ0FBcEQ7QUFBQSxLQW5CRzs7QUFvQmI7QUFDSjtBQUNBO0FBQ0ltRCxJQUFBQSxhQUFhLEVBQUUsdUJBQUM1RSxJQUFELEVBQU95QixLQUFQLEVBQWNvRCxhQUFkLEVBQTZCQyxlQUE3QixFQUFpRDtBQUM5RHBGLE1BQUFBLEdBQUcsQ0FBQyw2QkFBRCxFQUFnQ00sSUFBSSxDQUFDQyxJQUFyQyxDQUFIO0FBRUEsVUFBTThFLFVBQVUsR0FBRzNDLElBQUksQ0FBQ1ksS0FBTCxDQUFXQyxhQUFYLENBQXlCeEIsS0FBSyxDQUFDQyxRQUEvQixFQUF5QzFCLElBQXpDLGFBQXlDQSxJQUF6Qyx1QkFBeUNBLElBQUksQ0FBRWlDLEdBQS9DLENBQW5CO0FBQ0F2QyxNQUFBQSxHQUFHLENBQUMsOEJBQUQsRUFBaUNxRixVQUFqQyxDQUFIOztBQUVBLFVBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZO0FBQUEsZUFBTUQsVUFBVSxDQUFDOUUsSUFBWCxDQUFnQm1CLEdBQWhCLENBQW9CLFFBQXBCLEtBQWlDMkQsVUFBVSxDQUFDOUUsSUFBWCxDQUFnQm1CLEdBQWhCLENBQW9CLFFBQXBCLE1BQWtDLEdBQXpFO0FBQUEsT0FBbEI7O0FBQ0EsVUFBTTZELE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFDbkIsWUFBTTFELE1BQU0sR0FBR2EsSUFBSSxDQUFDOEMsT0FBTCxDQUFhQyxTQUFiLENBQXVCMUQsS0FBSyxDQUFDRixNQUFOLEVBQXZCLENBQWY7QUFDQXNELFFBQUFBLGFBQWEsQ0FBQ3RELE1BQUQsRUFBUyxLQUFULENBQWI7QUFDRCxPQUhEOztBQUtBLFVBQU02RCxTQUFTLEdBQUcsU0FBWkEsU0FBWSxHQUFNO0FBQ3RCLFlBQU03RCxNQUFNLEdBQUdhLElBQUksQ0FBQzhDLE9BQUwsQ0FBYUcsWUFBYixDQUEwQjVELEtBQUssQ0FBQ0YsTUFBTixFQUExQixDQUFmO0FBQ0FzRCxRQUFBQSxhQUFhLENBQUN0RCxNQUFELEVBQVMsS0FBVCxDQUFiO0FBQ0QsT0FIRDs7QUFLQSxVQUFNK0QsU0FBUyxHQUFHLFNBQVpBLFNBQVksR0FBTTtBQUN0QixZQUFNL0QsTUFBTSxHQUFHYSxJQUFJLENBQUM4QyxPQUFMLENBQWFJLFNBQWIsQ0FBdUI3RCxLQUFLLENBQUNGLE1BQU4sRUFBdkIsQ0FBZjtBQUNBc0QsUUFBQUEsYUFBYSxDQUFDdEQsTUFBRCxFQUFTLEtBQVQsQ0FBYjtBQUNELE9BSEQ7O0FBS0EsVUFBTWdFLFlBQVksR0FBRyxTQUFmQSxZQUFlLEdBQU07QUFDekIsWUFBTWhFLE1BQU0sR0FBR2EsSUFBSSxDQUFDOEMsT0FBTCxDQUFhSyxZQUFiLENBQTBCOUQsS0FBSyxDQUFDRixNQUFOLEVBQTFCLENBQWY7QUFDQXNELFFBQUFBLGFBQWEsQ0FBQ3RELE1BQUQsRUFBUyxLQUFULENBQWI7QUFDRCxPQUhEOztBQUtBLFVBQU1pRSxXQUFXLEdBQUcsU0FBZEEsV0FBYyxHQUFNO0FBQ3hCLFlBQU1qRSxNQUFNLEdBQUdhLElBQUksQ0FBQzhDLE9BQUwsQ0FBYU0sV0FBYixDQUF5Qi9ELEtBQUssQ0FBQ0YsTUFBTixFQUF6QixDQUFmO0FBQ0FzRCxRQUFBQSxhQUFhLENBQUN0RCxNQUFELEVBQVMsS0FBVCxDQUFiO0FBQ0QsT0FIRDs7QUFLQSxVQUFNa0UsWUFBWSxHQUFHLFNBQWZBLFlBQWUsR0FBTTtBQUN6QixZQUFReEYsSUFBUixHQUFpQjhFLFVBQWpCLENBQVE5RSxJQUFSO0FBQ0EsWUFBTTZCLE1BQU0sR0FBRzdCLElBQUksQ0FBQ3lGLEdBQUwsQ0FBUyxRQUFULEVBQW1CVixTQUFTLEtBQUssR0FBTCxHQUFXLEdBQXZDLENBQWY7QUFDQXRGLFFBQUFBLEdBQUcsQ0FBQyx5QkFBRCxFQUE0Qm9DLE1BQTVCLENBQUg7QUFDQSxZQUFNUCxNQUFNLEdBQUdFLEtBQUssQ0FBQ0YsTUFBTixHQUFlUyxZQUFmLENBQTRCK0MsVUFBVSxDQUFDOUMsR0FBdkMsRUFBNEM7QUFBRWhDLFVBQUFBLElBQUksRUFBRTZCO0FBQVIsU0FBNUMsQ0FBZjtBQUNBK0MsUUFBQUEsYUFBYSxDQUFDdEQsTUFBRCxFQUFTLEtBQVQsQ0FBYjtBQUNELE9BTkQ7O0FBUUEsVUFBTW9FLE1BQU0sR0FBRyxTQUFUQSxNQUFTLEdBQU07QUFDbkJqRyxRQUFBQSxHQUFHLENBQUMsZ0NBQUQsQ0FBSDtBQUNBbUYsUUFBQUEsYUFBYSxDQUFDLElBQUQsRUFBTyxJQUFQLENBQWI7QUFDRCxPQUhEOztBQUtBLFVBQU1lLEVBQUUsR0FBRyxTQUFMQSxFQUFLO0FBQUEsNEJBQ1QsZ0NBQUMsd0JBQUQ7QUFDRSxVQUFBLGVBQWUsRUFBRWQsZUFEbkI7QUFFRSxVQUFBLE9BQU8sRUFBRTNDLGNBRlg7QUFHRSxVQUFBLFFBQVEsRUFBRSxrQkFBQzBELENBQUQ7QUFBQSxtQkFBT2hCLGFBQWEsQ0FBQ2dCLENBQUQsRUFBSSxLQUFKLENBQXBCO0FBQUEsV0FIWjtBQUlFLFVBQUEsS0FBSyxFQUFFcEUsS0FKVDtBQUtFLFVBQUEsUUFBUSxFQUFFd0QsTUFMWjtBQU1FLFVBQUEsV0FBVyxFQUFFSyxTQU5mO0FBT0UsVUFBQSxXQUFXLEVBQUVGLFNBUGY7QUFRRSxVQUFBLGNBQWMsRUFBRUcsWUFSbEI7QUFTRSxVQUFBLGFBQWEsRUFBRUMsV0FUakI7QUFVRSxVQUFBLFNBQVMsRUFBRVIsU0FBUyxFQVZ0QjtBQVdFLFVBQUEsY0FBYyxFQUFFUyxZQVhsQjtBQVlFLFVBQUEsTUFBTSxFQUFFRTtBQVpWLFVBRFM7QUFBQSxPQUFYOztBQWlCQSxhQUFPQyxFQUFQO0FBQ0Q7QUF0RlksR0FBZjs7QUF5RkEsTUFBTUUsSUFBSSxHQUFHLFNBQVBBLElBQU8sQ0FBQ2pHLEtBQUQsRUFBVztBQUN0QixZQUFRQSxLQUFLLENBQUNHLElBQU4sQ0FBVzhDLElBQW5CO0FBQ0UsV0FBSyxPQUFMO0FBQ0UsNEJBQU8sZ0NBQUMsS0FBRCxnQ0FBV2pELEtBQVg7QUFBa0IsVUFBQSxPQUFPLEVBQUVxQyxJQUFJLENBQUM5QixPQUFoQztBQUF5QyxVQUFBLE1BQU0sRUFBRThCLElBQUksQ0FBQzdCO0FBQXRELFdBQVA7O0FBQ0YsV0FBSyxXQUFMO0FBQ0UsNEJBQU8sZ0NBQUMsUUFBRCxFQUFjUixLQUFkLENBQVA7O0FBQ0YsV0FBSyxZQUFMO0FBQ0UsNEJBQU8sZ0NBQUMsU0FBRCxnQ0FBZUEsS0FBZjtBQUFzQixVQUFBLE9BQU8sRUFBRXFDLElBQUksQ0FBQzlCLE9BQXBDO0FBQTZDLFVBQUEsTUFBTSxFQUFFOEIsSUFBSSxDQUFDN0I7QUFBMUQsV0FBUDs7QUFDRjtBQUNFLGVBQU8sSUFBUDtBQVJKO0FBVUQsR0FYRDs7QUFZQXlGLEVBQUFBLElBQUksQ0FBQ3ZGLFNBQUwsR0FBaUI7QUFDZlAsSUFBQUEsSUFBSSxFQUFFUSxzQkFBVUM7QUFERCxHQUFqQjs7QUFJQTJCLEVBQUFBLElBQUksQ0FBQzJELGFBQUwsR0FBcUIsVUFBQy9GLElBQUQsRUFBVTtBQUM3QixRQUFNZ0csa0JBQWtCLEdBQUcsRUFBM0I7QUFFQSxRQUFJaEcsSUFBSSxDQUFDUyxNQUFMLEtBQWdCLFVBQXBCLEVBQWdDO0FBRWhDVCxJQUFBQSxJQUFJLENBQUMyQixjQUFMLENBQW9CLFVBQUNDLENBQUQsRUFBTztBQUN6QixVQUFJQSxDQUFDLENBQUNrQixJQUFGLEtBQVcsT0FBZixFQUF3QjtBQUN0QixZQUFNbUQsU0FBUyxHQUFHakcsSUFBSSxDQUFDa0csT0FBTCxDQUFhdEUsQ0FBQyxDQUFDSyxHQUFmLENBQWxCO0FBQ0EsWUFBTWtFLFFBQVEsR0FBR25HLElBQUksQ0FBQ29HLGVBQUwsQ0FBcUJILFNBQXJCLENBQWpCO0FBQ0EsWUFBTUksUUFBUSxHQUFHckcsSUFBSSxDQUFDc0csV0FBTCxDQUFpQkwsU0FBakIsQ0FBakI7O0FBRUEsWUFBSSxDQUFDRSxRQUFELElBQWEsQ0FBQ0UsUUFBbEIsRUFBNEI7QUFDMUJMLFVBQUFBLGtCQUFrQixDQUFDMUMsSUFBbkIsQ0FBd0I7QUFDdEJ0RCxZQUFBQSxJQUFJLEVBQUU0QixDQURnQjtBQUV0QnVFLFlBQUFBLFFBQVEsRUFBUkEsUUFGc0I7QUFHdEJFLFlBQUFBLFFBQVEsRUFBUkE7QUFIc0IsV0FBeEI7QUFLRDtBQUNGO0FBQ0YsS0FkRDs7QUFnQkEsUUFBSSxDQUFDTCxrQkFBa0IsQ0FBQ08sTUFBeEIsRUFBZ0M7QUFDOUI7QUFDRDs7QUFFRCxXQUFPLFVBQUNoRixNQUFELEVBQVk7QUFDakIsVUFBTWlGLFFBQVEsR0FBRztBQUNmL0YsUUFBQUEsTUFBTSxFQUFFLE9BRE87QUFFZnFDLFFBQUFBLElBQUksRUFBRTtBQUZTLE9BQWpCO0FBS0FrRCxNQUFBQSxrQkFBa0IsQ0FBQ3ZELE9BQW5CLENBQTJCLFVBQUNnRSxDQUFELEVBQU87QUFDaEMsWUFBTVIsU0FBUyxHQUFHMUUsTUFBTSxDQUFDRSxLQUFQLENBQWFDLFFBQWIsQ0FBc0J3RSxPQUF0QixDQUE4Qk8sQ0FBQyxDQUFDekcsSUFBRixDQUFPaUMsR0FBckMsRUFBMENpQyxNQUExQyxFQUFsQixDQURnQyxDQUVoQzs7QUFDQSxZQUFJd0MsVUFBVSxHQUFHVCxTQUFTLENBQUNVLE1BQVYsQ0FBaUIsQ0FBQyxDQUFsQixFQUFxQixDQUFyQixDQUFqQjs7QUFFQSxZQUFJLENBQUNGLENBQUMsQ0FBQ04sUUFBUCxFQUFpQjtBQUNmO0FBQ0E1RSxVQUFBQSxNQUFNLENBQUNxRixnQkFBUCxDQUF3QlgsU0FBeEIsRUFBbUNTLFVBQW5DLEVBQStDRixRQUEvQyxFQUZlLENBR2Y7QUFDQTs7QUFDQTtBQUNEOztBQUVELFlBQUksQ0FBQ0MsQ0FBQyxDQUFDSixRQUFQLEVBQWlCO0FBQ2Y7QUFDQTlFLFVBQUFBLE1BQU0sQ0FBQ3FGLGdCQUFQLENBQXdCWCxTQUF4QixFQUFtQ1MsVUFBVSxHQUFHLENBQWhELEVBQW1ERixRQUFuRDtBQUNEO0FBQ0YsT0FqQkQ7QUFrQkQsS0F4QkQ7QUF5QkQsR0FsREQ7O0FBb0RBcEUsRUFBQUEsSUFBSSxDQUFDeUUsVUFBTCxHQUFrQmYsSUFBbEI7QUFDQTFELEVBQUFBLElBQUksQ0FBQzBFLElBQUwsR0FBWSxPQUFaO0FBRUEsU0FBTzFFLElBQVA7QUFDRCxDOzs7O0FBRU0sSUFBTTJFLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQ0MsQ0FBRCxFQUFPO0FBQ3JDLE1BQU1DLEtBQUssR0FBRyx5QkFBZDtBQUNBLE1BQUlDLEtBQUo7QUFDQSxNQUFNQyxNQUFNLEdBQUcsRUFBZjs7QUFDQSxTQUFRRCxLQUFLLEdBQUdELEtBQUssQ0FBQ0csSUFBTixDQUFXSixDQUFYLENBQWhCLEVBQWdDO0FBQzlCRyxJQUFBQSxNQUFNLENBQUNELEtBQUssQ0FBQyxDQUFELENBQU4sQ0FBTixHQUFtQkEsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTRyxJQUFULEVBQW5CO0FBQ0Q7O0FBQ0QsU0FBT0YsTUFBUDtBQUNELENBUk07Ozs7QUFVQSxJQUFNRyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLENBQUQ7QUFBQSxTQUFPLHFCQUFjQSxDQUFkLEVBQWlCO0FBQUVDLElBQUFBLFFBQVEsRUFBRSxJQUFaO0FBQWtCQyxJQUFBQSxRQUFRLEVBQUU7QUFBNUIsR0FBakIsQ0FBUDtBQUFBLENBQXhCOzs7O0FBRVAsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDQyxFQUFEO0FBQUEsU0FBUSxVQUFDQyxHQUFELEVBQU1DLFNBQU4sRUFBb0I7QUFDbEQsUUFBTXBHLEtBQUssR0FBR2tHLEVBQUUsQ0FBQ0csWUFBSCxDQUFnQkQsU0FBaEIsQ0FBZDs7QUFDQSxRQUFJcEcsS0FBSixFQUFXO0FBQ1QsVUFBSW9HLFNBQVMsS0FBSyxPQUFsQixFQUEyQjtBQUN6QixZQUFNRSxXQUFXLEdBQUdKLEVBQUUsQ0FBQ0csWUFBSCxDQUFnQkQsU0FBaEIsQ0FBcEI7QUFDQSxZQUFNRyxnQkFBZ0IsR0FBR1YsZUFBZSxDQUFDUCxnQkFBZ0IsQ0FBQ2dCLFdBQUQsQ0FBakIsQ0FBeEM7QUFDQUgsUUFBQUEsR0FBRyxDQUFDLE9BQUQsQ0FBSCxHQUFlSSxnQkFBZjtBQUNELE9BSkQsTUFJTztBQUNMSixRQUFBQSxHQUFHLENBQUNDLFNBQUQsQ0FBSCxHQUFpQkYsRUFBRSxDQUFDRyxZQUFILENBQWdCRCxTQUFoQixDQUFqQjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT0QsR0FBUDtBQUNELEdBWnVCO0FBQUEsQ0FBeEI7O0FBY0EsSUFBTTdILGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQ0UsSUFBRCxFQUFVO0FBQ2pDLE1BQUksQ0FBQ0EsSUFBRCxJQUFTLENBQUNBLElBQUksQ0FBQ21CLEdBQW5CLEVBQXdCO0FBQ3RCLFdBQU8sRUFBUDtBQUNEOztBQUVELFNBQU9uQixJQUFJLENBQUNnSSxNQUFMLENBQVksVUFBQ0wsR0FBRCxFQUFNTSxDQUFOLEVBQVNwQixJQUFULEVBQWtCO0FBQ25DLFFBQUlvQixDQUFKLEVBQU87QUFDTE4sTUFBQUEsR0FBRyxDQUFDLG9DQUFRZCxJQUFSLENBQUQsQ0FBSCxHQUFxQm9CLENBQXJCO0FBQ0Q7O0FBQ0QsV0FBT04sR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRCxDQVhEOztBQWFBLElBQU16SCxVQUFVLEdBQUcsQ0FBQyxRQUFELEVBQVcsYUFBWCxFQUEwQixhQUExQixFQUF5QyxPQUF6QyxFQUFrRCxPQUFsRCxDQUFuQjtBQUVBLElBQU1nSSxjQUFjLEdBQUcsQ0FBQyxTQUFELEVBQVksU0FBWixFQUF1QixPQUF2QixFQUFnQyxPQUFoQyxDQUF2QjtBQUVPLElBQU1DLGFBQWEsR0FBRztBQUMzQkMsRUFBQUEsV0FEMkIsdUJBQ2ZWLEVBRGUsRUFDWFcsSUFEVyxFQUNMO0FBQ3BCLFFBQU1DLEdBQUcsR0FBR1osRUFBRSxDQUFDYSxPQUFILENBQVdDLFdBQVgsRUFBWjs7QUFFQSxZQUFRRixHQUFSO0FBQ0UsV0FBSyxPQUFMO0FBQWM7QUFDWixjQUFNakksUUFBUSxHQUNacUgsRUFBRSxDQUFDckgsUUFBSCxDQUFZaUcsTUFBWixLQUF1QixDQUF2QixJQUE0Qm9CLEVBQUUsQ0FBQ3JILFFBQUgsQ0FBWSxDQUFaLEVBQWVrSSxPQUFmLENBQXVCQyxXQUF2QixPQUF5QyxPQUFyRSxHQUNJZCxFQUFFLENBQUNySCxRQUFILENBQVksQ0FBWixFQUFlQSxRQURuQixHQUVJcUgsRUFBRSxDQUFDckgsUUFIVDtBQUlBLGNBQU11RixDQUFDLEdBQUc2QyxLQUFLLENBQUNDLElBQU4sQ0FBV3JJLFFBQVgsQ0FBVjtBQUVBLGlCQUFPO0FBQ0xHLFlBQUFBLE1BQU0sRUFBRSxPQURIO0FBRUxxQyxZQUFBQSxJQUFJLEVBQUUsT0FGRDtBQUdMRixZQUFBQSxLQUFLLEVBQUUwRixJQUFJLENBQUN6QyxDQUFELENBSE47QUFJTDVGLFlBQUFBLElBQUksRUFBRUUsVUFBVSxDQUFDOEgsTUFBWCxDQUFrQlAsZUFBZSxDQUFDQyxFQUFELENBQWpDLEVBQXVDLEVBQXZDO0FBSkQsV0FBUDtBQU1EOztBQUVELFdBQUssSUFBTDtBQUFXO0FBQ1QsaUJBQU87QUFDTGxILFlBQUFBLE1BQU0sRUFBRSxPQURIO0FBRUxxQyxZQUFBQSxJQUFJLEVBQUUsWUFGRDtBQUdMRixZQUFBQSxLQUFLLEVBQUUwRixJQUFJLENBQUNYLEVBQUUsQ0FBQ2lCLFVBQUosQ0FITjtBQUlMM0ksWUFBQUEsSUFBSSxFQUFFa0ksY0FBYyxDQUFDRixNQUFmLENBQXNCUCxlQUFlLENBQUNDLEVBQUQsQ0FBckMsRUFBMkM7QUFBRXRHLGNBQUFBLE1BQU0sRUFBRTtBQUFWLGFBQTNDO0FBSkQsV0FBUDtBQU1EOztBQUVELFdBQUssSUFBTDtBQUFXO0FBQ1QsaUJBQU87QUFDTFosWUFBQUEsTUFBTSxFQUFFLE9BREg7QUFFTHFDLFlBQUFBLElBQUksRUFBRSxXQUZEO0FBR0xGLFlBQUFBLEtBQUssRUFBRTBGLElBQUksQ0FBQ0ksS0FBSyxDQUFDQyxJQUFOLENBQVdoQixFQUFFLENBQUNySCxRQUFkLENBQUQ7QUFITixXQUFQO0FBS0Q7O0FBRUQsV0FBSyxJQUFMO0FBQVc7QUFDVCxpQkFBTztBQUNMRyxZQUFBQSxNQUFNLEVBQUUsT0FESDtBQUVMcUMsWUFBQUEsSUFBSSxFQUFFLFlBRkQ7QUFHTEYsWUFBQUEsS0FBSyxFQUFFMEYsSUFBSSxDQUFDSSxLQUFLLENBQUNDLElBQU4sQ0FBV2hCLEVBQUUsQ0FBQ2lCLFVBQWQsQ0FBRCxDQUhOO0FBSUwzSSxZQUFBQSxJQUFJLEVBQUVrSSxjQUFjLENBQUNGLE1BQWYsQ0FBc0JQLGVBQWUsQ0FBQ0MsRUFBRCxDQUFyQyxFQUEyQztBQUFFdEcsY0FBQUEsTUFBTSxFQUFFO0FBQVYsYUFBM0M7QUFKRCxXQUFQO0FBTUQ7QUF4Q0g7QUEwQ0QsR0E5QzBCO0FBK0MzQndILEVBQUFBLFNBL0MyQixxQkErQ2pCcEksTUEvQ2lCLEVBK0NUSCxRQS9DUyxFQStDQztBQUMxQixRQUFJRyxNQUFNLENBQUNBLE1BQVAsS0FBa0IsT0FBdEIsRUFBK0I7QUFDN0I7QUFDRDs7QUFFRCxZQUFRQSxNQUFNLENBQUNxQyxJQUFmO0FBQ0UsV0FBSyxPQUFMO0FBQWM7QUFDWixjQUFNM0MsV0FBVSxHQUFHSixnQkFBZ0IsQ0FBQ1UsTUFBTSxDQUFDUixJQUFSLENBQW5DOztBQUVBLDhCQUNFLHlDQUFXRSxXQUFYLGVBQ0UsK0NBQVFHLFFBQVIsQ0FERixDQURGO0FBS0Q7O0FBRUQsV0FBSyxXQUFMO0FBQWtCO0FBQ2hCLDhCQUFPLDRDQUFLQSxRQUFMLENBQVA7QUFDRDs7QUFFRCxXQUFLLFlBQUw7QUFBbUI7QUFDakIsY0FBTUgsWUFBVSxHQUFHSixnQkFBZ0IsQ0FBQ1UsTUFBTSxDQUFDUixJQUFSLENBQW5DOztBQUNBLGlCQUFPRSxZQUFVLENBQUNrQixNQUFsQjs7QUFFQSxjQUFJWixNQUFNLENBQUNSLElBQVAsQ0FBWW1CLEdBQVosQ0FBZ0IsUUFBaEIsQ0FBSixFQUErQjtBQUM3QixnQ0FBTyxzQ0FBUWpCLFlBQVIsRUFBcUJHLFFBQXJCLENBQVA7QUFDRCxXQUZELE1BRU87QUFDTCxnQ0FBTyxzQ0FBUUgsWUFBUixFQUFxQkcsUUFBckIsQ0FBUDtBQUNEO0FBQ0Y7QUF4Qkg7QUEwQkQ7QUE5RTBCLENBQXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJsb2NrIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBHcmlkT24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0dyaWRPbic7XG5pbXBvcnQgVGFibGVUb29sYmFyIGZyb20gJy4vdGFibGUtdG9vbGJhcic7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFNsYXRlUHJvcFR5cGVzIGZyb20gJ3NsYXRlLXByb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgY29udmVydCBmcm9tICdyZWFjdC1hdHRyLWNvbnZlcnRlcic7XG5pbXBvcnQgeyBvYmplY3QgYXMgdG9TdHlsZU9iamVjdCB9IGZyb20gJ3RvLXN0eWxlJztcbmltcG9ydCBDdXN0b21UYWJsZVBsdWdpbiBmcm9tICcuL0N1c3RvbVRhYmxlUGx1Z2luJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczp0YWJsZScpO1xuXG5jb25zdCBUYWJsZSA9IHdpdGhTdHlsZXMoKCkgPT4gKHtcbiAgdGFibGU6IHt9LFxufSkpKChwcm9wcykgPT4ge1xuICBjb25zdCBub2RlQXR0cmlidXRlcyA9IGRhdGFUb0F0dHJpYnV0ZXMocHJvcHMubm9kZS5kYXRhKTtcblxuICByZXR1cm4gKFxuICAgIDx0YWJsZVxuICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc2VzLnRhYmxlfVxuICAgICAgey4uLnByb3BzLmF0dHJpYnV0ZXN9XG4gICAgICB7Li4ubm9kZUF0dHJpYnV0ZXN9XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbkZvY3VzfVxuICAgICAgb25CbHVyPXtwcm9wcy5vbkJsdXJ9XG4gICAgPlxuICAgICAgPHRib2R5Pntwcm9wcy5jaGlsZHJlbn08L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICk7XG59KTtcblxuVGFibGUucHJvcFR5cGVzID0ge1xuICBhdHRyaWJ1dGVzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBvbkZvY3VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgbm9kZTogU2xhdGVQcm9wVHlwZXMubm9kZSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGVdKS5pc1JlcXVpcmVkLFxufTtcblxuY29uc3QgVGFibGVSb3cgPSAocHJvcHMpID0+IDx0ciB7Li4ucHJvcHMuYXR0cmlidXRlc30+e3Byb3BzLmNoaWxkcmVufTwvdHI+O1xuXG5UYWJsZVJvdy5wcm9wVHlwZXMgPSB7XG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLCBQcm9wVHlwZXMubm9kZV0pLmlzUmVxdWlyZWQsXG59O1xuXG5jb25zdCBUYWJsZUNlbGwgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIHRkOiB7XG4gICAgbWluV2lkdGg6ICcyNXB4JyxcbiAgfSxcbn0pKSgocHJvcHMpID0+IHtcbiAgY29uc3QgVGFnID0gcHJvcHMubm9kZS5kYXRhLmdldCgnaGVhZGVyJykgPyAndGgnIDogJ3RkJztcblxuICBjb25zdCBub2RlQXR0cmlidXRlcyA9IGRhdGFUb0F0dHJpYnV0ZXMocHJvcHMubm9kZS5kYXRhKTtcbiAgZGVsZXRlIG5vZGVBdHRyaWJ1dGVzLmhlYWRlcjtcblxuICByZXR1cm4gKFxuICAgIDxUYWdcbiAgICAgIHsuLi5wcm9wcy5hdHRyaWJ1dGVzfVxuICAgICAgey4uLm5vZGVBdHRyaWJ1dGVzfVxuICAgICAgY29sU3Bhbj17cHJvcHMubm9kZS5kYXRhLmdldCgnY29sc3BhbicpfVxuICAgICAgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc2VzW1RhZ119XG4gICAgICBvbkZvY3VzPXtwcm9wcy5vbkZvY3VzfVxuICAgICAgb25CbHVyPXtwcm9wcy5vbkJsdXJ9XG4gICAgPlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgIDwvVGFnPlxuICApO1xufSk7XG5cblRhYmxlQ2VsbC5wcm9wVHlwZXMgPSB7XG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLCBQcm9wVHlwZXMubm9kZV0pLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgY29uc3QgbW92ZUZvY3VzVG9CZWdpbm5pbmdPZlRhYmxlID0gKGNoYW5nZSkgPT4ge1xuICBjb25zdCBhZGRlZFRhYmxlID0gY2hhbmdlLnZhbHVlLmRvY3VtZW50LmZpbmREZXNjZW5kYW50KChkKSA9PiAhIWQuZGF0YSAmJiAhIWQuZGF0YS5nZXQoJ25ld1RhYmxlJykpO1xuXG4gIGlmICghYWRkZWRUYWJsZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNoYW5nZS5jb2xsYXBzZVRvU3RhcnRPZihhZGRlZFRhYmxlKTtcblxuICBjb25zdCB1cGRhdGUgPSBhZGRlZFRhYmxlLmRhdGEucmVtb3ZlKCduZXdUYWJsZScpO1xuXG4gIGNoYW5nZS5zZXROb2RlQnlLZXkoYWRkZWRUYWJsZS5rZXksIHsgZGF0YTogdXBkYXRlIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKG9wdHMsIHRvb2xiYXJQbHVnaW5zIC8qIDogIHt0b29sYmFyOiB7fX1bXSAqLykgPT4ge1xuICBjb25zdCBjb3JlID0gQ3VzdG9tVGFibGVQbHVnaW4ob3B0cyk7XG5cbiAgLy8gZml4IG91dGRhdGVkIHNjaGVtYVxuXG4gIGlmIChjb3JlLnNjaGVtYSAmJiBjb3JlLnNjaGVtYS5ibG9ja3MpIHtcbiAgICBPYmplY3Qua2V5cyhjb3JlLnNjaGVtYS5ibG9ja3MpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgYmxvY2sgPSBjb3JlLnNjaGVtYS5ibG9ja3Nba2V5XTtcblxuICAgICAgaWYgKGJsb2NrLnBhcmVudCkge1xuICAgICAgICBpZiAoYmxvY2subm9kZXNbMF0udHlwZXMpIHtcbiAgICAgICAgICBibG9jay5ub2Rlc1swXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IGJsb2NrLm5vZGVzWzBdLnR5cGVzWzBdLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYmxvY2subm9kZXNbMF0ub2JqZWN0cykge1xuICAgICAgICAgIGJsb2NrLm5vZGVzWzBdID0ge1xuICAgICAgICAgICAgb2JqZWN0OiBibG9jay5ub2Rlc1swXS5vYmplY3RzWzBdLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBibG9jay5wYXJlbnQgPSB7XG4gICAgICAgICAgdHlwZTogYmxvY2sucGFyZW50LnR5cGVzWzBdLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmxvY2subm9kZXNbMF0gPSB7IHR5cGU6IGJsb2NrLm5vZGVzWzBdLnR5cGVzWzBdIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb3JlLnV0aWxzLmdldFRhYmxlQmxvY2sgPSAoY29udGFpbmVyTm9kZSwga2V5KSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbnRhaW5lck5vZGUuZ2V0RGVzY2VuZGFudChrZXkpO1xuICAgIGNvbnN0IGFuY2VzdG9ycyA9IGNvbnRhaW5lck5vZGUuZ2V0QW5jZXN0b3JzKGtleSkucHVzaChub2RlKTtcbiAgICByZXR1cm4gYW5jZXN0b3JzLmZpbmRMYXN0KChwKSA9PiBwLnR5cGUgPT09ICd0YWJsZScpO1xuICB9O1xuXG4gIGNvcmUudXRpbHMuY3JlYXRlVGFibGVXaXRoT3B0aW9ucyA9IChyb3csIGNvbHVtbnMsIGV4dHJhKSA9PiB7XG4gICAgY29uc3QgY3JlYXRlZFRhYmxlID0gY29yZS51dGlscy5jcmVhdGVUYWJsZShyb3csIGNvbHVtbnMpO1xuICAgIGNvbnN0IG5ld1RhYmxlID0gQmxvY2suY3JlYXRlKHtcbiAgICAgIC4uLmNyZWF0ZWRUYWJsZS50b0pTT04oKSxcbiAgICAgIC4uLmV4dHJhLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ld1RhYmxlO1xuICB9O1xuXG4gIGNvcmUudG9vbGJhciA9IHtcbiAgICB0eXBlOiAndGFibGUnLFxuICAgIGljb246IDxHcmlkT24gLz4sXG4gICAgYXJpYUxhYmVsOiAnSW5zZXJ0IFRhYmxlJyxcbiAgICBvbkNsaWNrOiAodmFsdWUsIG9uQ2hhbmdlKSA9PiB7XG4gICAgICBsb2coJ2luc2VydCB0YWJsZScpO1xuICAgICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCk7XG4gICAgICBjb25zdCBuZXdUYWJsZSA9IGNvcmUudXRpbHMuY3JlYXRlVGFibGVXaXRoT3B0aW9ucygyLCAyLCB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBib3JkZXI6ICcxJyxcbiAgICAgICAgICBuZXdUYWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjaGFuZ2UuaW5zZXJ0QmxvY2sobmV3VGFibGUpO1xuXG4gICAgICBtb3ZlRm9jdXNUb0JlZ2lubmluZ09mVGFibGUoY2hhbmdlKTtcbiAgICAgIG9uQ2hhbmdlKGNoYW5nZSk7XG4gICAgfSxcbiAgICBzdXBwb3J0czogKG5vZGUsIHZhbHVlKSA9PiBub2RlICYmIG5vZGUub2JqZWN0ID09PSAnYmxvY2snICYmIGNvcmUudXRpbHMuaXNTZWxlY3Rpb25JblRhYmxlKHZhbHVlKSxcbiAgICAvKipcbiAgICAgKiBOb3RlIC0gdGhlIG5vZGUgbWF5IG5vdCBiZSBhIHRhYmxlIG5vZGUgLSBpdCBtYXkgYmUgYSBub2RlIGluc2lkZSBhIHRhYmxlLlxuICAgICAqL1xuICAgIGN1c3RvbVRvb2xiYXI6IChub2RlLCB2YWx1ZSwgb25Ub29sYmFyRG9uZSwgZ2V0Rm9jdXNlZFZhbHVlKSA9PiB7XG4gICAgICBsb2coJ1tjdXN0b21Ub29sYmFyXSBub2RlLmRhdGE6ICcsIG5vZGUuZGF0YSk7XG5cbiAgICAgIGNvbnN0IHRhYmxlQmxvY2sgPSBjb3JlLnV0aWxzLmdldFRhYmxlQmxvY2sodmFsdWUuZG9jdW1lbnQsIG5vZGU/LmtleSk7XG4gICAgICBsb2coJ1tjdXN0b21Ub29sYmFyXSB0YWJsZUJsb2NrOiAnLCB0YWJsZUJsb2NrKTtcblxuICAgICAgY29uc3QgaGFzQm9yZGVyID0gKCkgPT4gdGFibGVCbG9jay5kYXRhLmdldCgnYm9yZGVyJykgJiYgdGFibGVCbG9jay5kYXRhLmdldCgnYm9yZGVyJykgIT09ICcwJztcbiAgICAgIGNvbnN0IGFkZFJvdyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gY29yZS5jaGFuZ2VzLmluc2VydFJvdyh2YWx1ZS5jaGFuZ2UoKSk7XG4gICAgICAgIG9uVG9vbGJhckRvbmUoY2hhbmdlLCBmYWxzZSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBhZGRDb2x1bW4gPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IGNvcmUuY2hhbmdlcy5pbnNlcnRDb2x1bW4odmFsdWUuY2hhbmdlKCkpO1xuICAgICAgICBvblRvb2xiYXJEb25lKGNoYW5nZSwgZmFsc2UpO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVtb3ZlUm93ID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSBjb3JlLmNoYW5nZXMucmVtb3ZlUm93KHZhbHVlLmNoYW5nZSgpKTtcbiAgICAgICAgb25Ub29sYmFyRG9uZShjaGFuZ2UsIGZhbHNlKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlbW92ZUNvbHVtbiA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gY29yZS5jaGFuZ2VzLnJlbW92ZUNvbHVtbih2YWx1ZS5jaGFuZ2UoKSk7XG4gICAgICAgIG9uVG9vbGJhckRvbmUoY2hhbmdlLCBmYWxzZSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZW1vdmVUYWJsZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gY29yZS5jaGFuZ2VzLnJlbW92ZVRhYmxlKHZhbHVlLmNoYW5nZSgpKTtcbiAgICAgICAgb25Ub29sYmFyRG9uZShjaGFuZ2UsIGZhbHNlKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRvZ2dsZUJvcmRlciA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB0YWJsZUJsb2NrO1xuICAgICAgICBjb25zdCB1cGRhdGUgPSBkYXRhLnNldCgnYm9yZGVyJywgaGFzQm9yZGVyKCkgPyAnMCcgOiAnMScpO1xuICAgICAgICBsb2coJ1t0b2dnbGVCb3JkZXJdIHVwZGF0ZTogJywgdXBkYXRlKTtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdmFsdWUuY2hhbmdlKCkuc2V0Tm9kZUJ5S2V5KHRhYmxlQmxvY2sua2V5LCB7IGRhdGE6IHVwZGF0ZSB9KTtcbiAgICAgICAgb25Ub29sYmFyRG9uZShjaGFuZ2UsIGZhbHNlKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uRG9uZSA9ICgpID0+IHtcbiAgICAgICAgbG9nKCdbb25Eb25lXSBjYWxsIG9uVG9vbGJhckRvbmUuLi4nKTtcbiAgICAgICAgb25Ub29sYmFyRG9uZShudWxsLCB0cnVlKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IFRiID0gKCkgPT4gKFxuICAgICAgICA8VGFibGVUb29sYmFyXG4gICAgICAgICAgZ2V0Rm9jdXNlZFZhbHVlPXtnZXRGb2N1c2VkVmFsdWV9XG4gICAgICAgICAgcGx1Z2lucz17dG9vbGJhclBsdWdpbnN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhjKSA9PiBvblRvb2xiYXJEb25lKGMsIGZhbHNlKX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgb25BZGRSb3c9e2FkZFJvd31cbiAgICAgICAgICBvblJlbW92ZVJvdz17cmVtb3ZlUm93fVxuICAgICAgICAgIG9uQWRkQ29sdW1uPXthZGRDb2x1bW59XG4gICAgICAgICAgb25SZW1vdmVDb2x1bW49e3JlbW92ZUNvbHVtbn1cbiAgICAgICAgICBvblJlbW92ZVRhYmxlPXtyZW1vdmVUYWJsZX1cbiAgICAgICAgICBoYXNCb3JkZXI9e2hhc0JvcmRlcigpfVxuICAgICAgICAgIG9uVG9nZ2xlQm9yZGVyPXt0b2dnbGVCb3JkZXJ9XG4gICAgICAgICAgb25Eb25lPXtvbkRvbmV9XG4gICAgICAgIC8+XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gVGI7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBOb2RlID0gKHByb3BzKSA9PiB7XG4gICAgc3dpdGNoIChwcm9wcy5ub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgICAgcmV0dXJuIDxUYWJsZSB7Li4ucHJvcHN9IG9uRm9jdXM9e29wdHMub25Gb2N1c30gb25CbHVyPXtvcHRzLm9uQmx1cn0gLz47XG4gICAgICBjYXNlICd0YWJsZV9yb3cnOlxuICAgICAgICByZXR1cm4gPFRhYmxlUm93IHsuLi5wcm9wc30gLz47XG4gICAgICBjYXNlICd0YWJsZV9jZWxsJzpcbiAgICAgICAgcmV0dXJuIDxUYWJsZUNlbGwgey4uLnByb3BzfSBvbkZvY3VzPXtvcHRzLm9uRm9jdXN9IG9uQmx1cj17b3B0cy5vbkJsdXJ9IC8+O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9O1xuICBOb2RlLnByb3BUeXBlcyA9IHtcbiAgICBub2RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9O1xuXG4gIGNvcmUubm9ybWFsaXplTm9kZSA9IChub2RlKSA9PiB7XG4gICAgY29uc3QgYWRkTm9kZUJlZm9yZUFycmF5ID0gW107XG5cbiAgICBpZiAobm9kZS5vYmplY3QgIT09ICdkb2N1bWVudCcpIHJldHVybjtcblxuICAgIG5vZGUuZmluZERlc2NlbmRhbnQoKGQpID0+IHtcbiAgICAgIGlmIChkLnR5cGUgPT09ICd0YWJsZScpIHtcbiAgICAgICAgY29uc3QgdGFibGVQYXRoID0gbm9kZS5nZXRQYXRoKGQua2V5KTtcbiAgICAgICAgY29uc3QgcHJldk5vZGUgPSBub2RlLmdldFByZXZpb3VzTm9kZSh0YWJsZVBhdGgpO1xuICAgICAgICBjb25zdCBuZXh0Tm9kZSA9IG5vZGUuZ2V0TmV4dE5vZGUodGFibGVQYXRoKTtcblxuICAgICAgICBpZiAoIXByZXZOb2RlIHx8ICFuZXh0Tm9kZSkge1xuICAgICAgICAgIGFkZE5vZGVCZWZvcmVBcnJheS5wdXNoKHtcbiAgICAgICAgICAgIG5vZGU6IGQsXG4gICAgICAgICAgICBwcmV2Tm9kZSxcbiAgICAgICAgICAgIG5leHROb2RlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWFkZE5vZGVCZWZvcmVBcnJheS5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gKGNoYW5nZSkgPT4ge1xuICAgICAgY29uc3QgbmV3QmxvY2sgPSB7XG4gICAgICAgIG9iamVjdDogJ2Jsb2NrJyxcbiAgICAgICAgdHlwZTogJ2RpdicsXG4gICAgICB9O1xuXG4gICAgICBhZGROb2RlQmVmb3JlQXJyYXkuZm9yRWFjaCgobikgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVBhdGggPSBjaGFuZ2UudmFsdWUuZG9jdW1lbnQuZ2V0UGF0aChuLm5vZGUua2V5KS50b0pTT04oKTtcbiAgICAgICAgLy8gcmVtb3ZpbmcgdGFibGVJbmRleFxuICAgICAgICBsZXQgaW5kZXhUb0FkZCA9IHRhYmxlUGF0aC5zcGxpY2UoLTEpWzBdO1xuXG4gICAgICAgIGlmICghbi5wcmV2Tm9kZSkge1xuICAgICAgICAgIC8vIGluc2VydGluZyBibG9jayBrZXkgYmVmb3JlIHRhYmxlXG4gICAgICAgICAgY2hhbmdlLmluc2VydE5vZGVCeVBhdGgodGFibGVQYXRoLCBpbmRleFRvQWRkLCBuZXdCbG9jayk7XG4gICAgICAgICAgLy8gdGhpcyB3aWxsIHRyaWdnZXIgYW5vdGhlciBub3JtYWxpemF0aW9uLCB3aGljaCB3aWxsIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBub3RcbiAgICAgICAgICAvLyBhIGJsb2NrIGFmdGVyIHRoZSB0YWJsZSBhbmQgYWRkIGl0LCBzbyB3ZSBleGl0IGZvciBub3dcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW4ubmV4dE5vZGUpIHtcbiAgICAgICAgICAvLyBpbnNlcnRpbmcgYmxvY2sga2V5IGFmdGVyIHRhYmxlXG4gICAgICAgICAgY2hhbmdlLmluc2VydE5vZGVCeVBhdGgodGFibGVQYXRoLCBpbmRleFRvQWRkICsgMSwgbmV3QmxvY2spO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xuXG4gIGNvcmUucmVuZGVyTm9kZSA9IE5vZGU7XG4gIGNvcmUubmFtZSA9ICd0YWJsZSc7XG5cbiAgcmV0dXJuIGNvcmU7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VTdHlsZVN0cmluZyA9IChzKSA9PiB7XG4gIGNvbnN0IHJlZ2V4ID0gLyhbXFx3LV0qKVxccyo6XFxzKihbXjtdKikvZztcbiAgbGV0IG1hdGNoO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMocykpKSB7XG4gICAgcmVzdWx0W21hdGNoWzFdXSA9IG1hdGNoWzJdLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlYWN0QXR0cmlidXRlcyA9IChvKSA9PiB0b1N0eWxlT2JqZWN0KG8sIHsgY2FtZWxpemU6IHRydWUsIGFkZFVuaXRzOiBmYWxzZSB9KTtcblxuY29uc3QgYXR0cmlidXRlc1RvTWFwID0gKGVsKSA9PiAoYWNjLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgaWYgKGF0dHJpYnV0ZSA9PT0gJ3N0eWxlJykge1xuICAgICAgY29uc3Qgc3R5bGVTdHJpbmcgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgIGNvbnN0IHJlYWN0U3R5bGVPYmplY3QgPSByZWFjdEF0dHJpYnV0ZXMocGFyc2VTdHlsZVN0cmluZyhzdHlsZVN0cmluZykpO1xuICAgICAgYWNjWydzdHlsZSddID0gcmVhY3RTdHlsZU9iamVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW2F0dHJpYnV0ZV0gPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFjYztcbn07XG5cbmNvbnN0IGRhdGFUb0F0dHJpYnV0ZXMgPSAoZGF0YSkgPT4ge1xuICBpZiAoIWRhdGEgfHwgIWRhdGEuZ2V0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIGRhdGEucmVkdWNlKChhY2MsIHYsIG5hbWUpID0+IHtcbiAgICBpZiAodikge1xuICAgICAgYWNjW2NvbnZlcnQobmFtZSldID0gdjtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcblxuY29uc3QgYXR0cmlidXRlcyA9IFsnYm9yZGVyJywgJ2NlbGxwYWRkaW5nJywgJ2NlbGxzcGFjaW5nJywgJ2NsYXNzJywgJ3N0eWxlJ107XG5cbmNvbnN0IGNlbGxBdHRyaWJ1dGVzID0gWydjb2xzcGFuJywgJ3Jvd3NwYW4nLCAnY2xhc3MnLCAnc3R5bGUnXTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6YXRpb24gPSB7XG4gIGRlc2VyaWFsaXplKGVsLCBuZXh0KSB7XG4gICAgY29uc3QgdGFnID0gZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgJ3RhYmxlJzoge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9XG4gICAgICAgICAgZWwuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIGVsLmNoaWxkcmVuWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3Rib2R5J1xuICAgICAgICAgICAgPyBlbC5jaGlsZHJlblswXS5jaGlsZHJlblxuICAgICAgICAgICAgOiBlbC5jaGlsZHJlbjtcbiAgICAgICAgY29uc3QgYyA9IEFycmF5LmZyb20oY2hpbGRyZW4pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb2JqZWN0OiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICAgICAgbm9kZXM6IG5leHQoYyksXG4gICAgICAgICAgZGF0YTogYXR0cmlidXRlcy5yZWR1Y2UoYXR0cmlidXRlc1RvTWFwKGVsKSwge30pLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjYXNlICd0aCc6IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvYmplY3Q6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ3RhYmxlX2NlbGwnLFxuICAgICAgICAgIG5vZGVzOiBuZXh0KGVsLmNoaWxkTm9kZXMpLFxuICAgICAgICAgIGRhdGE6IGNlbGxBdHRyaWJ1dGVzLnJlZHVjZShhdHRyaWJ1dGVzVG9NYXAoZWwpLCB7IGhlYWRlcjogdHJ1ZSB9KSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndHInOiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb2JqZWN0OiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICd0YWJsZV9yb3cnLFxuICAgICAgICAgIG5vZGVzOiBuZXh0KEFycmF5LmZyb20oZWwuY2hpbGRyZW4pKSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY2FzZSAndGQnOiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb2JqZWN0OiAnYmxvY2snLFxuICAgICAgICAgIHR5cGU6ICd0YWJsZV9jZWxsJyxcbiAgICAgICAgICBub2RlczogbmV4dChBcnJheS5mcm9tKGVsLmNoaWxkTm9kZXMpKSxcbiAgICAgICAgICBkYXRhOiBjZWxsQXR0cmlidXRlcy5yZWR1Y2UoYXR0cmlidXRlc1RvTWFwKGVsKSwgeyBoZWFkZXI6IGZhbHNlIH0pLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgc2VyaWFsaXplKG9iamVjdCwgY2hpbGRyZW4pIHtcbiAgICBpZiAob2JqZWN0Lm9iamVjdCAhPT0gJ2Jsb2NrJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAob2JqZWN0LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RhYmxlJzoge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gZGF0YVRvQXR0cmlidXRlcyhvYmplY3QuZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8dGFibGUgey4uLmF0dHJpYnV0ZXN9PlxuICAgICAgICAgICAgPHRib2R5PntjaGlsZHJlbn08L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYmxlX3Jvdyc6IHtcbiAgICAgICAgcmV0dXJuIDx0cj57Y2hpbGRyZW59PC90cj47XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3RhYmxlX2NlbGwnOiB7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBkYXRhVG9BdHRyaWJ1dGVzKG9iamVjdC5kYXRhKTtcbiAgICAgICAgZGVsZXRlIGF0dHJpYnV0ZXMuaGVhZGVyO1xuXG4gICAgICAgIGlmIChvYmplY3QuZGF0YS5nZXQoJ2hlYWRlcicpKSB7XG4gICAgICAgICAgcmV0dXJuIDx0aCB7Li4uYXR0cmlidXRlc30+e2NoaWxkcmVufTwvdGg+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiA8dGQgey4uLmF0dHJpYnV0ZXN9PntjaGlsZHJlbn08L3RkPjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG4iXX0=
|
|
@@ -9,6 +9,8 @@ exports["default"] = exports.TableToolbar = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -41,6 +43,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
41
43
|
|
|
42
44
|
var _debug = _interopRequireDefault(require("debug"));
|
|
43
45
|
|
|
46
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
47
|
+
|
|
48
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
|
+
|
|
44
50
|
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); }; }
|
|
45
51
|
|
|
46
52
|
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; } }
|
|
@@ -74,6 +80,7 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
74
80
|
key: "render",
|
|
75
81
|
value: function render() {
|
|
76
82
|
var _this$props = this.props,
|
|
83
|
+
getFocusedValue = _this$props.getFocusedValue,
|
|
77
84
|
plugins = _this$props.plugins,
|
|
78
85
|
value = _this$props.value,
|
|
79
86
|
onChange = _this$props.onChange,
|
|
@@ -85,7 +92,22 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
85
92
|
onToggleBorder = _this$props.onToggleBorder,
|
|
86
93
|
hasBorder = _this$props.hasBorder,
|
|
87
94
|
classes = _this$props.classes;
|
|
88
|
-
log('[render] hasBorder:', hasBorder);
|
|
95
|
+
log('[render] hasBorder:', hasBorder); // we're separating the response area plugin because we want to display it next to the done button
|
|
96
|
+
|
|
97
|
+
var filteredPlugins = (plugins || []).reduce(function (acc, plugin) {
|
|
98
|
+
if (plugin.name === 'response_area') {
|
|
99
|
+
return _objectSpread(_objectSpread({}, acc), {}, {
|
|
100
|
+
respAreaPlugin: plugin
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return _objectSpread(_objectSpread({}, acc), {}, {
|
|
105
|
+
otherPlugins: [].concat((0, _toConsumableArray2["default"])(acc.otherPlugins), [plugin])
|
|
106
|
+
});
|
|
107
|
+
}, {
|
|
108
|
+
respAreaPlugin: null,
|
|
109
|
+
otherPlugins: []
|
|
110
|
+
});
|
|
89
111
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
90
112
|
className: classes.tableToolbar
|
|
91
113
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -100,17 +122,24 @@ var TableToolbar = /*#__PURE__*/function (_React$Component) {
|
|
|
100
122
|
onClick: onRemoveColumn
|
|
101
123
|
}, /*#__PURE__*/_react["default"].createElement(_icons.RemoveColumn, null)), /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
|
|
102
124
|
onClick: onRemoveTable
|
|
103
|
-
}, /*#__PURE__*/_react["default"].createElement(_icons.RemoveTable, null)),
|
|
125
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons.RemoveTable, null)), (filteredPlugins.otherPlugins || []).map(function (p, index) {
|
|
104
126
|
return /*#__PURE__*/_react["default"].createElement(_defaultToolbar.ToolbarButton, (0, _extends2["default"])({
|
|
105
127
|
key: "plugin-".concat(index)
|
|
106
128
|
}, p.toolbar, {
|
|
107
129
|
value: value,
|
|
108
|
-
onChange: onChange
|
|
130
|
+
onChange: onChange,
|
|
131
|
+
getFocusedValue: getFocusedValue
|
|
109
132
|
}));
|
|
110
133
|
}), /*#__PURE__*/_react["default"].createElement(_toolbarButtons.Button, {
|
|
111
134
|
onClick: onToggleBorder,
|
|
112
135
|
active: hasBorder
|
|
113
|
-
}, /*#__PURE__*/_react["default"].createElement(_BorderAll["default"], null))), /*#__PURE__*/_react["default"].createElement(
|
|
136
|
+
}, /*#__PURE__*/_react["default"].createElement(_BorderAll["default"], null))), filteredPlugins.respAreaPlugin && /*#__PURE__*/_react["default"].createElement(_defaultToolbar.ToolbarButton, (0, _extends2["default"])({
|
|
137
|
+
key: 'plugin-response-area'
|
|
138
|
+
}, filteredPlugins.respAreaPlugin.toolbar, {
|
|
139
|
+
value: value,
|
|
140
|
+
onChange: onChange,
|
|
141
|
+
getFocusedValue: getFocusedValue
|
|
142
|
+
})), /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
|
|
114
143
|
onClick: this.onDone
|
|
115
144
|
}));
|
|
116
145
|
}
|
|
@@ -155,4 +184,4 @@ var styles = function styles() {
|
|
|
155
184
|
var _default = (0, _styles.withStyles)(styles)(TableToolbar);
|
|
156
185
|
|
|
157
186
|
exports["default"] = _default;
|
|
158
|
-
//# sourceMappingURL=table-toolbar.js.map
|
|
187
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW5zL3RhYmxlL3RhYmxlLXRvb2xiYXIuanN4Il0sIm5hbWVzIjpbImxvZyIsIlRhYmxlVG9vbGJhciIsImUiLCJvbkRvbmUiLCJwcm9wcyIsInByZXZlbnREZWZhdWx0IiwiZ2V0Rm9jdXNlZFZhbHVlIiwicGx1Z2lucyIsInZhbHVlIiwib25DaGFuZ2UiLCJvbkFkZFJvdyIsIm9uUmVtb3ZlUm93Iiwib25BZGRDb2x1bW4iLCJvblJlbW92ZUNvbHVtbiIsIm9uUmVtb3ZlVGFibGUiLCJvblRvZ2dsZUJvcmRlciIsImhhc0JvcmRlciIsImNsYXNzZXMiLCJmaWx0ZXJlZFBsdWdpbnMiLCJyZWR1Y2UiLCJhY2MiLCJwbHVnaW4iLCJuYW1lIiwicmVzcEFyZWFQbHVnaW4iLCJvdGhlclBsdWdpbnMiLCJ0YWJsZVRvb2xiYXIiLCJ0b29sYmFyQnV0dG9ucyIsIm1hcCIsInAiLCJpbmRleCIsInRvb2xiYXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImFycmF5IiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsImZ1bmMiLCJib29sIiwic3R5bGVzIiwid2lkdGgiLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLDhDQUFOLENBQVo7O0lBRWFDLFk7Ozs7Ozs7Ozs7Ozs7OzsrRkFzQkYsVUFBQ0MsQ0FBRCxFQUFPO0FBQ2QsVUFBUUMsTUFBUixHQUFtQixNQUFLQyxLQUF4QixDQUFRRCxNQUFSO0FBQ0FELE1BQUFBLENBQUMsQ0FBQ0csY0FBRjtBQUNBRixNQUFBQSxNQUFNO0FBQ1AsSzs7Ozs7O1dBRUQsa0JBQVM7QUFDUCx3QkFhSSxLQUFLQyxLQWJUO0FBQUEsVUFDRUUsZUFERixlQUNF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QUFFO0FBQ2RlLE1BQUFBLE9BQU8sRUFBRTtBQURLO0FBTkksR0FBUDtBQUFBLENBQWY7O2VBVWUsd0JBQVdGLE1BQVgsRUFBbUJ0QyxZQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vdG9vbGJhci90b29sYmFyLWJ1dHRvbnMnO1xuaW1wb3J0IHsgRG9uZUJ1dHRvbiB9IGZyb20gJy4uL3Rvb2xiYXIvZG9uZS1idXR0b24nO1xuaW1wb3J0IEJvcmRlckFsbCBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQm9yZGVyQWxsJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b24gfSBmcm9tICcuLi90b29sYmFyL2RlZmF1bHQtdG9vbGJhcic7XG5cbmltcG9ydCB7IEFkZFJvdywgQWRkQ29sdW1uLCBSZW1vdmVDb2x1bW4sIFJlbW92ZVJvdywgUmVtb3ZlVGFibGUgfSBmcm9tICcuL2ljb25zJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6ZWRpdGFibGUtaHRtbDpwbHVnaW5zOnRhYmxlLXRvb2xiYXInKTtcblxuZXhwb3J0IGNsYXNzIFRhYmxlVG9vbGJhciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcGx1Z2luczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkFkZFJvdzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlbW92ZVJvdzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvbkFkZENvbHVtbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlbW92ZUNvbHVtbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBvblJlbW92ZVRhYmxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uVG9nZ2xlQm9yZGVyOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGhhc0JvcmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25Eb25lOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHBsdWdpbnM6IFtdLFxuICAgIHZhbHVlOiB7fSxcbiAgICBvbkNoYW5nZTogKCkgPT4ge30sXG4gIH07XG5cbiAgb25Eb25lID0gKGUpID0+IHtcbiAgICBjb25zdCB7IG9uRG9uZSB9ID0gdGhpcy5wcm9wcztcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgb25Eb25lKCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGdldEZvY3VzZWRWYWx1ZSxcbiAgICAgIHBsdWdpbnMsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25BZGRSb3csXG4gICAgICBvblJlbW92ZVJvdyxcbiAgICAgIG9uQWRkQ29sdW1uLFxuICAgICAgb25SZW1vdmVDb2x1bW4sXG4gICAgICBvblJlbW92ZVRhYmxlLFxuICAgICAgb25Ub2dnbGVCb3JkZXIsXG4gICAgICBoYXNCb3JkZXIsXG4gICAgICBjbGFzc2VzLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGxvZygnW3JlbmRlcl0gaGFzQm9yZGVyOicsIGhhc0JvcmRlcik7XG5cbiAgICAvLyB3ZSdyZSBzZXBhcmF0aW5nIHRoZSByZXNwb25zZSBhcmVhIHBsdWdpbiBiZWNhdXNlIHdlIHdhbnQgdG8gZGlzcGxheSBpdCBuZXh0IHRvIHRoZSBkb25lIGJ1dHRvblxuICAgIGNvbnN0IGZpbHRlcmVkUGx1Z2lucyA9IChwbHVnaW5zIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBwbHVnaW4pID0+IHtcbiAgICAgICAgaWYgKHBsdWdpbi5uYW1lID09PSAncmVzcG9uc2VfYXJlYScpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgcmVzcEFyZWFQbHVnaW46IHBsdWdpbixcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgb3RoZXJQbHVnaW5zOiBbLi4uYWNjLm90aGVyUGx1Z2lucywgcGx1Z2luXSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJlc3BBcmVhUGx1Z2luOiBudWxsLFxuICAgICAgICBvdGhlclBsdWdpbnM6IFtdLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnRhYmxlVG9vbGJhcn0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnRvb2xiYXJCdXR0b25zfT5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uQWRkUm93fT5cbiAgICAgICAgICAgIDxBZGRSb3cgLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uUmVtb3ZlUm93fT5cbiAgICAgICAgICAgIDxSZW1vdmVSb3cgLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uQWRkQ29sdW1ufT5cbiAgICAgICAgICAgIDxBZGRDb2x1bW4gLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uUmVtb3ZlQ29sdW1ufT5cbiAgICAgICAgICAgIDxSZW1vdmVDb2x1bW4gLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e29uUmVtb3ZlVGFibGV9PlxuICAgICAgICAgICAgPFJlbW92ZVRhYmxlIC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgeyhmaWx0ZXJlZFBsdWdpbnMub3RoZXJQbHVnaW5zIHx8IFtdKS5tYXAoKHAsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8VG9vbGJhckJ1dHRvblxuICAgICAgICAgICAgICBrZXk9e2BwbHVnaW4tJHtpbmRleH1gfVxuICAgICAgICAgICAgICB7Li4ucC50b29sYmFyfVxuICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgZ2V0Rm9jdXNlZFZhbHVlPXtnZXRGb2N1c2VkVmFsdWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17b25Ub2dnbGVCb3JkZXJ9IGFjdGl2ZT17aGFzQm9yZGVyfT5cbiAgICAgICAgICAgIDxCb3JkZXJBbGwgLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtmaWx0ZXJlZFBsdWdpbnMucmVzcEFyZWFQbHVnaW4gJiYgKFxuICAgICAgICAgIDxUb29sYmFyQnV0dG9uXG4gICAgICAgICAgICBrZXk9eydwbHVnaW4tcmVzcG9uc2UtYXJlYSd9XG4gICAgICAgICAgICB7Li4uZmlsdGVyZWRQbHVnaW5zLnJlc3BBcmVhUGx1Z2luLnRvb2xiYXJ9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICBnZXRGb2N1c2VkVmFsdWU9e2dldEZvY3VzZWRWYWx1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8RG9uZUJ1dHRvbiBvbkNsaWNrPXt0aGlzLm9uRG9uZX0gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3Qgc3R5bGVzID0gKCkgPT4gKHtcbiAgdGFibGVUb29sYmFyOiB7XG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgfSxcbiAgdG9vbGJhckJ1dHRvbnM6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gIH0sXG59KTtcbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShUYWJsZVRvb2xiYXIpO1xuIl19
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = exports.AlignRight = exports.AlignLeft = exports.AlignJustify = exports.AlignCenter = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _Collapse = _interopRequireDefault(require("@material-ui/core/Collapse"));
|
|
19
|
+
|
|
20
|
+
var _List = _interopRequireDefault(require("@material-ui/core/List"));
|
|
21
|
+
|
|
22
|
+
var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
|
|
23
|
+
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
|
+
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
|
+
|
|
32
|
+
var AlignLeft = function AlignLeft() {
|
|
33
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
34
|
+
width: "20",
|
|
35
|
+
height: "20",
|
|
36
|
+
viewBox: "0 0 66 66",
|
|
37
|
+
fill: "none",
|
|
38
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
39
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
40
|
+
d: "M42.1875 4.75C42.1875 7.38672 39.9902 9.4375 37.5 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H37.5C39.9902 0.0625 42.1875 2.25977 42.1875 4.75ZM42.1875 42.25C42.1875 44.8867 39.9902 46.9375 37.5 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H37.5C39.9902 37.5625 42.1875 39.7598 42.1875 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
|
|
41
|
+
fill: "currentColor"
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.AlignLeft = AlignLeft;
|
|
46
|
+
|
|
47
|
+
var AlignRight = function AlignRight() {
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
49
|
+
width: "20",
|
|
50
|
+
height: "20",
|
|
51
|
+
viewBox: "0 0 66 66",
|
|
52
|
+
fill: "none",
|
|
53
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
54
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
55
|
+
d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H28.125C25.4883 9.4375 23.4375 7.38672 23.4375 4.75C23.4375 2.25977 25.4883 0.0625 28.125 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H28.125C25.4883 46.9375 23.4375 44.8867 23.4375 42.25C23.4375 39.7598 25.4883 37.5625 28.125 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
|
|
56
|
+
fill: "currentColor"
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.AlignRight = AlignRight;
|
|
61
|
+
|
|
62
|
+
var AlignCenter = function AlignCenter() {
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
64
|
+
width: "20",
|
|
65
|
+
height: "20",
|
|
66
|
+
viewBox: "0 0 66 66",
|
|
67
|
+
fill: "none",
|
|
68
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
69
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
70
|
+
d: "M51.5625 4.75C51.5625 7.38672 49.3652 9.4375 46.875 9.4375H18.75C16.1133 9.4375 14.0625 7.38672 14.0625 4.75C14.0625 2.25977 16.1133 0.0625 18.75 0.0625H46.875C49.3652 0.0625 51.5625 2.25977 51.5625 4.75ZM65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5ZM0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61ZM51.5625 42.25C51.5625 44.8867 49.3652 46.9375 46.875 46.9375H18.75C16.1133 46.9375 14.0625 44.8867 14.0625 42.25C14.0625 39.7598 16.1133 37.5625 18.75 37.5625H46.875C49.3652 37.5625 51.5625 39.7598 51.5625 42.25Z",
|
|
71
|
+
fill: "currentColor"
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.AlignCenter = AlignCenter;
|
|
76
|
+
|
|
77
|
+
var AlignJustify = function AlignJustify() {
|
|
78
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
79
|
+
width: "20",
|
|
80
|
+
height: "20",
|
|
81
|
+
viewBox: "0 0 66 66",
|
|
82
|
+
fill: "none",
|
|
83
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
84
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
85
|
+
d: "M65.625 4.75C65.625 7.38672 63.4277 9.4375 60.9375 9.4375H4.6875C2.05078 9.4375 0 7.38672 0 4.75C0 2.25977 2.05078 0.0625 4.6875 0.0625H60.9375C63.4277 0.0625 65.625 2.25977 65.625 4.75ZM65.625 42.25C65.625 44.8867 63.4277 46.9375 60.9375 46.9375H4.6875C2.05078 46.9375 0 44.8867 0 42.25C0 39.7598 2.05078 37.5625 4.6875 37.5625H60.9375C63.4277 37.5625 65.625 39.7598 65.625 42.25ZM0 23.5C0 21.0098 2.05078 18.8125 4.6875 18.8125H60.9375C63.4277 18.8125 65.625 21.0098 65.625 23.5C65.625 26.1367 63.4277 28.1875 60.9375 28.1875H4.6875C2.05078 28.1875 0 26.1367 0 23.5ZM65.625 61C65.625 63.6367 63.4277 65.6875 60.9375 65.6875H4.6875C2.05078 65.6875 0 63.6367 0 61C0 58.5098 2.05078 56.3125 4.6875 56.3125H60.9375C63.4277 56.3125 65.625 58.5098 65.625 61Z",
|
|
86
|
+
fill: "currentColor"
|
|
87
|
+
}));
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
exports.AlignJustify = AlignJustify;
|
|
91
|
+
|
|
92
|
+
var _default = function _default(_ref) {
|
|
93
|
+
var getValue = _ref.getValue,
|
|
94
|
+
onChange = _ref.onChange;
|
|
95
|
+
|
|
96
|
+
var _useState = (0, _react.useState)(false),
|
|
97
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
98
|
+
open = _useState2[0],
|
|
99
|
+
setOpen = _useState2[1];
|
|
100
|
+
|
|
101
|
+
var value = getValue();
|
|
102
|
+
var text = value.texts.get(0);
|
|
103
|
+
var type;
|
|
104
|
+
|
|
105
|
+
if (text) {
|
|
106
|
+
var _data$attributes;
|
|
107
|
+
|
|
108
|
+
var blockParent = value.document.getParent(text.key);
|
|
109
|
+
var data = blockParent.data.toJSON();
|
|
110
|
+
|
|
111
|
+
if (data !== null && data !== void 0 && (_data$attributes = data.attributes) !== null && _data$attributes !== void 0 && _data$attributes.align) {
|
|
112
|
+
var _data$attributes2;
|
|
113
|
+
|
|
114
|
+
type = data === null || data === void 0 ? void 0 : (_data$attributes2 = data.attributes) === null || _data$attributes2 === void 0 ? void 0 : _data$attributes2.align;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
var icon;
|
|
119
|
+
|
|
120
|
+
switch (type) {
|
|
121
|
+
case 'right':
|
|
122
|
+
icon = /*#__PURE__*/_react["default"].createElement(AlignRight, null);
|
|
123
|
+
break;
|
|
124
|
+
|
|
125
|
+
case 'center':
|
|
126
|
+
icon = /*#__PURE__*/_react["default"].createElement(AlignCenter, null);
|
|
127
|
+
break;
|
|
128
|
+
|
|
129
|
+
case 'justify':
|
|
130
|
+
icon = /*#__PURE__*/_react["default"].createElement(AlignJustify, null);
|
|
131
|
+
break;
|
|
132
|
+
|
|
133
|
+
default:
|
|
134
|
+
icon = /*#__PURE__*/_react["default"].createElement(AlignLeft, null);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var applyAlignment = function applyAlignment(event) {
|
|
139
|
+
if (value.texts.size) {
|
|
140
|
+
var _event$target, _event$target$closest;
|
|
141
|
+
|
|
142
|
+
var alignType = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : (_event$target$closest = _event$target.closest('div')) === null || _event$target$closest === void 0 ? void 0 : _event$target$closest.getAttribute('value');
|
|
143
|
+
|
|
144
|
+
if (alignType) {
|
|
145
|
+
var c = value.change();
|
|
146
|
+
value.texts.forEach(function (text) {
|
|
147
|
+
var _blockParent$data;
|
|
148
|
+
|
|
149
|
+
var blockParent = value.document.getParent(text.key);
|
|
150
|
+
c = c.setNodeByKey(blockParent.key, {
|
|
151
|
+
data: _objectSpread(_objectSpread({}, blockParent.data), {}, {
|
|
152
|
+
attributes: _objectSpread(_objectSpread({}, (_blockParent$data = blockParent.data) === null || _blockParent$data === void 0 ? void 0 : _blockParent$data.attributes), {}, {
|
|
153
|
+
align: alignType
|
|
154
|
+
})
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
onChange(c);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
setOpen(false);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
var onMouseDown = function onMouseDown(event) {
|
|
166
|
+
event.preventDefault();
|
|
167
|
+
event.stopPropagation();
|
|
168
|
+
setOpen(!open);
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
172
|
+
style: {
|
|
173
|
+
display: 'flex',
|
|
174
|
+
alignItems: 'center'
|
|
175
|
+
},
|
|
176
|
+
onClick: onMouseDown
|
|
177
|
+
}, icon, /*#__PURE__*/_react["default"].createElement("span", {
|
|
178
|
+
style: {
|
|
179
|
+
marginLeft: '5px',
|
|
180
|
+
fontSize: '8px'
|
|
181
|
+
}
|
|
182
|
+
}, "\u25BC")), /*#__PURE__*/_react["default"].createElement(_Collapse["default"], {
|
|
183
|
+
"in": open,
|
|
184
|
+
timeout: "auto",
|
|
185
|
+
unmountOnExit: true,
|
|
186
|
+
style: {
|
|
187
|
+
position: 'absolute'
|
|
188
|
+
}
|
|
189
|
+
}, /*#__PURE__*/_react["default"].createElement(_List["default"], {
|
|
190
|
+
component: "div",
|
|
191
|
+
disablePadding: true,
|
|
192
|
+
style: {
|
|
193
|
+
background: '#fff',
|
|
194
|
+
display: 'flex',
|
|
195
|
+
flexDirection: 'row',
|
|
196
|
+
padding: 0
|
|
197
|
+
}
|
|
198
|
+
}, /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
199
|
+
button: true,
|
|
200
|
+
type: "submit",
|
|
201
|
+
value: "left",
|
|
202
|
+
"aria-label": "Align text left",
|
|
203
|
+
onClick: applyAlignment
|
|
204
|
+
}, /*#__PURE__*/_react["default"].createElement(AlignLeft, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
205
|
+
button: true,
|
|
206
|
+
type: "submit",
|
|
207
|
+
value: "center",
|
|
208
|
+
"aria-label": "Align text center",
|
|
209
|
+
onClick: applyAlignment
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement(AlignCenter, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
211
|
+
button: true,
|
|
212
|
+
type: "submit",
|
|
213
|
+
value: "right",
|
|
214
|
+
"aria-label": "Align text right",
|
|
215
|
+
onClick: applyAlignment
|
|
216
|
+
}, /*#__PURE__*/_react["default"].createElement(AlignRight, null)), /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
|
|
217
|
+
button: true,
|
|
218
|
+
type: "submit",
|
|
219
|
+
value: "justify",
|
|
220
|
+
"aria-label": "Justify text",
|
|
221
|
+
onClick: applyAlignment
|
|
222
|
+
}, /*#__PURE__*/_react["default"].createElement(AlignJustify, null)))));
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
exports["default"] = _default;
|
|
226
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW5zL3RleHRBbGlnbi9pY29ucy9pbmRleC5qc3giXSwibmFtZXMiOlsiQWxpZ25MZWZ0IiwiQWxpZ25SaWdodCIsIkFsaWduQ2VudGVyIiwiQWxpZ25KdXN0aWZ5IiwiZ2V0VmFsdWUiLCJvbkNoYW5nZSIsIm9wZW4iLCJzZXRPcGVuIiwidmFsdWUiLCJ0ZXh0IiwidGV4dHMiLCJnZXQiLCJ0eXBlIiwiYmxvY2tQYXJlbnQiLCJkb2N1bWVudCIsImdldFBhcmVudCIsImtleSIsImRhdGEiLCJ0b0pTT04iLCJhdHRyaWJ1dGVzIiwiYWxpZ24iLCJpY29uIiwiYXBwbHlBbGlnbm1lbnQiLCJldmVudCIsInNpemUiLCJhbGlnblR5cGUiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiZ2V0QXR0cmlidXRlIiwiYyIsImNoYW5nZSIsImZvckVhY2giLCJzZXROb2RlQnlLZXkiLCJvbk1vdXNlRG93biIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiLCJwb3NpdGlvbiIsImJhY2tncm91bmQiLCJmbGV4RGlyZWN0aW9uIiwicGFkZGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUcsU0FBWkEsU0FBWTtBQUFBLHNCQUN2QjtBQUFLLElBQUEsS0FBSyxFQUFDLElBQVg7QUFBZ0IsSUFBQSxNQUFNLEVBQUMsSUFBdkI7QUFBNEIsSUFBQSxPQUFPLEVBQUMsV0FBcEM7QUFBZ0QsSUFBQSxJQUFJLEVBQUMsTUFBckQ7QUFBNEQsSUFBQSxLQUFLLEVBQUM7QUFBbEUsa0JBQ0U7QUFDRSxJQUFBLENBQUMsRUFBQyxndkJBREo7QUFFRSxJQUFBLElBQUksRUFBQztBQUZQLElBREYsQ0FEdUI7QUFBQSxDQUFsQjs7OztBQVNBLElBQU1DLFVBQVUs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QUQsT0FERixDQWxCRixlQXNCRSxnQ0FBQyxvQkFBRDtBQUFVLElBQUEsTUFBTSxNQUFoQjtBQUFpQixJQUFBLElBQUksRUFBQyxRQUF0QjtBQUErQixJQUFBLEtBQUssRUFBQyxTQUFyQztBQUErQyxrQkFBVyxjQUExRDtBQUF5RSxJQUFBLE9BQU8sRUFBRUE7QUFBbEYsa0JBQ0UsZ0NBQUMsWUFBRCxPQURGLENBdEJGLENBREYsQ0FMRixDQURGO0FBb0NELEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29sbGFwc2UgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQ29sbGFwc2UnO1xuaW1wb3J0IExpc3QgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTGlzdCc7XG5pbXBvcnQgTGlzdEl0ZW0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTGlzdEl0ZW0nO1xuXG5leHBvcnQgY29uc3QgQWxpZ25MZWZ0ID0gKCkgPT4gKFxuICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjYgNjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk00Mi4xODc1IDQuNzVDNDIuMTg3NSA3LjM4NjcyIDM5Ljk5MDIgOS40Mzc1IDM3LjUgOS40Mzc1SDQuNjg3NUMyLjA1MDc4IDkuNDM3NSAwIDcuMzg2NzIgMCA0Ljc1QzAgMi4yNTk3NyAyLjA1MDc4IDAuMDYyNSA0LjY4NzUgMC4wNjI1SDM3LjVDMzkuOTkwMiAwLjA2MjUgNDIuMTg3NSAyLjI1OTc3IDQyLjE4NzUgNC43NVpNNDIuMTg3NSA0Mi4yNUM0Mi4xODc1IDQ0Ljg4NjcgMzkuOTkwMiA0Ni45Mzc1IDM3LjUgNDYuOTM3NUg0LjY4NzVDMi4wNTA3OCA0Ni45Mzc1IDAgNDQuODg2NyAwIDQyLjI1QzAgMzkuNzU5OCAyLjA1MDc4IDM3LjU2MjUgNC42ODc1IDM3LjU2MjVIMzcuNUMzOS45OTAyIDM3LjU2MjUgNDIuMTg3NSAzOS43NTk4IDQyLjE4NzUgNDIuMjVaTTAgMjMuNUMwIDIxLjAwOTggMi4wNTA3OCAxOC44MTI1IDQuNjg3NSAxOC44MTI1SDYwLjkzNzVDNjMuNDI3NyAxOC44MTI1IDY1LjYyNSAyMS4wMDk4IDY1LjYyNSAyMy41QzY1LjYyNSAyNi4xMzY3IDYzLjQyNzcgMjguMTg3NSA2MC45Mzc1IDI4LjE4NzVINC42ODc1QzIuMDUwNzggMjguMTg3NSAwIDI2LjEzNjcgMCAyMy41Wk02NS42MjUgNjFDNjUuNjI1IDYzLjYzNjcgNjMuNDI3NyA2NS42ODc1IDYwLjkzNzUgNjUuNjg3NUg0LjY4NzVDMi4wNTA3OCA2NS42ODc1IDAgNjMuNjM2NyAwIDYxQzAgNTguNTA5OCAyLjA1MDc4IDU2LjMxMjUgNC42ODc1IDU2LjMxMjVINjAuOTM3NUM2My40Mjc3IDU2LjMxMjUgNjUuNjI1IDU4LjUwOTggNjUuNjI1IDYxWlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBBbGlnblJpZ2h0ID0gKCkgPT4gKFxuICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNjYgNjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICA8cGF0aFxuICAgICAgZD1cIk02NS42MjUgNC43NUM2NS42MjUgNy4zODY3MiA2My40Mjc3IDkuNDM3NSA2MC45Mzc1IDkuNDM3NUgyOC4xMjVDMjUuNDg4MyA5LjQzNzUgMjMuNDM3NSA3LjM4NjcyIDIzLjQzNzUgNC43NUMyMy40Mzc1IDIuMjU5NzcgMjUuNDg4MyAwLjA2MjUgMjguMTI1IDAuMDYyNUg2MC45Mzc1QzYzLjQyNzcgMC4wNjI1IDY1LjYyNSAyLjI1OTc3IDY1LjYyNSA0Ljc1Wk02NS42MjUgNDIuMjVDNjUuNjI1IDQ0Ljg4NjcgNjMuNDI3NyA0Ni45Mzc1IDYwLjkzNzUgNDYuOTM3NUgyOC4xMjVDMjUuNDg4MyA0Ni45Mzc1IDIzLjQzNzUgNDQuODg2NyAyMy40Mzc1IDQyLjI1QzIzLjQzNzUgMzkuNzU5OCAyNS40ODgzIDM3LjU2MjUgMjguMTI1IDM3LjU2MjVINjAuOTM3NUM2My40Mjc3IDM3LjU2MjUgNjUuNjI1IDM5Ljc1OTggNjUuNjI1IDQyLjI1Wk0wIDIzLjVDMCAyMS4wMDk4IDIuMDUwNzggMTguODEyNSA0LjY4NzUgMTguODEyNUg2MC45Mzc1QzYzLjQyNzcgMTguODEyNSA2NS42MjUgMjEuMDA5OCA2NS42MjUgMjMuNUM2NS42MjUgMjYuMTM2NyA2My40Mjc3IDI4LjE4NzUgNjAuOTM3NSAyOC4xODc1SDQuNjg3NUMyLjA1MDc4IDI4LjE4NzUgMCAyNi4xMzY3IDAgMjMuNVpNNjUuNjI1IDYxQzY1LjYyNSA2My42MzY3IDYzLjQyNzcgNjUuNjg3NSA2MC45Mzc1IDY1LjY4NzVINC42ODc1QzIuMDUwNzggNjUuNjg3NSAwIDYzLjYzNjcgMCA2MUMwIDU4LjUwOTggMi4wNTA3OCA1Ni4zMTI1IDQuNjg3NSA1Ni4zMTI1SDYwLjkzNzVDNjMuNDI3NyA1Ni4zMTI1IDY1LjYyNSA1OC41MDk4IDY1LjYyNSA2MVpcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgLz5cbiAgPC9zdmc+XG4pO1xuXG5leHBvcnQgY29uc3QgQWxpZ25DZW50ZXIgPSAoKSA9PiAoXG4gIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA2NiA2NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTUxLjU2MjUgNC43NUM1MS41NjI1IDcuMzg2NzIgNDkuMzY1MiA5LjQzNzUgNDYuODc1IDkuNDM3NUgxOC43NUMxNi4xMTMzIDkuNDM3NSAxNC4wNjI1IDcuMzg2NzIgMTQuMDYyNSA0Ljc1QzE0LjA2MjUgMi4yNTk3NyAxNi4xMTMzIDAuMDYyNSAxOC43NSAwLjA2MjVINDYuODc1QzQ5LjM2NTIgMC4wNjI1IDUxLjU2MjUgMi4yNTk3NyA1MS41NjI1IDQuNzVaTTY1LjYyNSAyMy41QzY1LjYyNSAyNi4xMzY3IDYzLjQyNzcgMjguMTg3NSA2MC45Mzc1IDI4LjE4NzVINC42ODc1QzIuMDUwNzggMjguMTg3NSAwIDI2LjEzNjcgMCAyMy41QzAgMjEuMDA5OCAyLjA1MDc4IDE4LjgxMjUgNC42ODc1IDE4LjgxMjVINjAuOTM3NUM2My40Mjc3IDE4LjgxMjUgNjUuNjI1IDIxLjAwOTggNjUuNjI1IDIzLjVaTTAgNjFDMCA1OC41MDk4IDIuMDUwNzggNTYuMzEyNSA0LjY4NzUgNTYuMzEyNUg2MC45Mzc1QzYzLjQyNzcgNTYuMzEyNSA2NS42MjUgNTguNTA5OCA2NS42MjUgNjFDNjUuNjI1IDYzLjYzNjcgNjMuNDI3NyA2NS42ODc1IDYwLjkzNzUgNjUuNjg3NUg0LjY4NzVDMi4wNTA3OCA2NS42ODc1IDAgNjMuNjM2NyAwIDYxWk01MS41NjI1IDQyLjI1QzUxLjU2MjUgNDQuODg2NyA0OS4zNjUyIDQ2LjkzNzUgNDYuODc1IDQ2LjkzNzVIMTguNzVDMTYuMTEzMyA0Ni45Mzc1IDE0LjA2MjUgNDQuODg2NyAxNC4wNjI1IDQyLjI1QzE0LjA2MjUgMzkuNzU5OCAxNi4xMTMzIDM3LjU2MjUgMTguNzUgMzcuNTYyNUg0Ni44NzVDNDkuMzY1MiAzNy41NjI1IDUxLjU2MjUgMzkuNzU5OCA1MS41NjI1IDQyLjI1WlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBjb25zdCBBbGlnbkp1c3RpZnkgPSAoKSA9PiAoXG4gIDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA2NiA2NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTY1LjYyNSA0Ljc1QzY1LjYyNSA3LjM4NjcyIDYzLjQyNzcgOS40Mzc1IDYwLjkzNzUgOS40Mzc1SDQuNjg3NUMyLjA1MDc4IDkuNDM3NSAwIDcuMzg2NzIgMCA0Ljc1QzAgMi4yNTk3NyAyLjA1MDc4IDAuMDYyNSA0LjY4NzUgMC4wNjI1SDYwLjkzNzVDNjMuNDI3NyAwLjA2MjUgNjUuNjI1IDIuMjU5NzcgNjUuNjI1IDQuNzVaTTY1LjYyNSA0Mi4yNUM2NS42MjUgNDQuODg2NyA2My40Mjc3IDQ2LjkzNzUgNjAuOTM3NSA0Ni45Mzc1SDQuNjg3NUMyLjA1MDc4IDQ2LjkzNzUgMCA0NC44ODY3IDAgNDIuMjVDMCAzOS43NTk4IDIuMDUwNzggMzcuNTYyNSA0LjY4NzUgMzcuNTYyNUg2MC45Mzc1QzYzLjQyNzcgMzcuNTYyNSA2NS42MjUgMzkuNzU5OCA2NS42MjUgNDIuMjVaTTAgMjMuNUMwIDIxLjAwOTggMi4wNTA3OCAxOC44MTI1IDQuNjg3NSAxOC44MTI1SDYwLjkzNzVDNjMuNDI3NyAxOC44MTI1IDY1LjYyNSAyMS4wMDk4IDY1LjYyNSAyMy41QzY1LjYyNSAyNi4xMzY3IDYzLjQyNzcgMjguMTg3NSA2MC45Mzc1IDI4LjE4NzVINC42ODc1QzIuMDUwNzggMjguMTg3NSAwIDI2LjEzNjcgMCAyMy41Wk02NS42MjUgNjFDNjUuNjI1IDYzLjYzNjcgNjMuNDI3NyA2NS42ODc1IDYwLjkzNzUgNjUuNjg3NUg0LjY4NzVDMi4wNTA3OCA2NS42ODc1IDAgNjMuNjM2NyAwIDYxQzAgNTguNTA5OCAyLjA1MDc4IDU2LjMxMjUgNC42ODc1IDU2LjMxMjVINjAuOTM3NUM2My40Mjc3IDU2LjMxMjUgNjUuNjI1IDU4LjUwOTggNjUuNjI1IDYxWlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAvPlxuICA8L3N2Zz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0ICh7IGdldFZhbHVlLCBvbkNoYW5nZSB9KSA9PiB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgdmFsdWUgPSBnZXRWYWx1ZSgpO1xuICBjb25zdCB0ZXh0ID0gdmFsdWUudGV4dHMuZ2V0KDApO1xuXG4gIGxldCB0eXBlO1xuXG4gIGlmICh0ZXh0KSB7XG4gICAgY29uc3QgYmxvY2tQYXJlbnQgPSB2YWx1ZS5kb2N1bWVudC5nZXRQYXJlbnQodGV4dC5rZXkpO1xuICAgIGNvbnN0IGRhdGEgPSBibG9ja1BhcmVudC5kYXRhLnRvSlNPTigpO1xuXG4gICAgaWYgKGRhdGE/LmF0dHJpYnV0ZXM/LmFsaWduKSB7XG4gICAgICB0eXBlID0gZGF0YT8uYXR0cmlidXRlcz8uYWxpZ247XG4gICAgfVxuICB9XG5cbiAgbGV0IGljb247XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgaWNvbiA9IDxBbGlnblJpZ2h0IC8+O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIGljb24gPSA8QWxpZ25DZW50ZXIgLz47XG4gICAgICBicmVhaztcbiAgICBjYXNlICdqdXN0aWZ5JzpcbiAgICAgIGljb24gPSA8QWxpZ25KdXN0aWZ5IC8+O1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGljb24gPSA8QWxpZ25MZWZ0IC8+O1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBhcHBseUFsaWdubWVudCA9IChldmVudCkgPT4ge1xuICAgIGlmICh2YWx1ZS50ZXh0cy5zaXplKSB7XG4gICAgICBjb25zdCBhbGlnblR5cGUgPSBldmVudC50YXJnZXQ/LmNsb3Nlc3QoJ2RpdicpPy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG5cbiAgICAgIGlmIChhbGlnblR5cGUpIHtcbiAgICAgICAgbGV0IGMgPSB2YWx1ZS5jaGFuZ2UoKTtcblxuICAgICAgICB2YWx1ZS50ZXh0cy5mb3JFYWNoKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2tQYXJlbnQgPSB2YWx1ZS5kb2N1bWVudC5nZXRQYXJlbnQodGV4dC5rZXkpO1xuXG4gICAgICAgICAgYyA9IGMuc2V0Tm9kZUJ5S2V5KGJsb2NrUGFyZW50LmtleSwge1xuICAgICAgICAgICAgZGF0YTogeyAuLi5ibG9ja1BhcmVudC5kYXRhLCBhdHRyaWJ1dGVzOiB7IC4uLmJsb2NrUGFyZW50LmRhdGE/LmF0dHJpYnV0ZXMsIGFsaWduOiBhbGlnblR5cGUgfSB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBvbkNoYW5nZShjKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBvbk1vdXNlRG93biA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgc2V0T3Blbighb3Blbik7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19IG9uQ2xpY2s9e29uTW91c2VEb3dufT5cbiAgICAgICAge2ljb259XG4gICAgICAgIDxzcGFuIHN0eWxlPXt7IG1hcmdpbkxlZnQ6ICc1cHgnLCBmb250U2l6ZTogJzhweCcgfX0+JiM5NjYwOzwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPENvbGxhcHNlIGluPXtvcGVufSB0aW1lb3V0PVwiYXV0b1wiIHVubW91bnRPbkV4aXQgc3R5bGU9e3sgcG9zaXRpb246ICdhYnNvbHV0ZScgfX0+XG4gICAgICAgIDxMaXN0XG4gICAgICAgICAgY29tcG9uZW50PVwiZGl2XCJcbiAgICAgICAgICBkaXNhYmxlUGFkZGluZ1xuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxMaXN0SXRlbSBidXR0b24gdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwibGVmdFwiIGFyaWEtbGFiZWw9XCJBbGlnbiB0ZXh0IGxlZnRcIiBvbkNsaWNrPXthcHBseUFsaWdubWVudH0+XG4gICAgICAgICAgICA8QWxpZ25MZWZ0IC8+XG4gICAgICAgICAgPC9MaXN0SXRlbT5cblxuICAgICAgICAgIDxMaXN0SXRlbSBidXR0b24gdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiY2VudGVyXCIgYXJpYS1sYWJlbD1cIkFsaWduIHRleHQgY2VudGVyXCIgb25DbGljaz17YXBwbHlBbGlnbm1lbnR9PlxuICAgICAgICAgICAgPEFsaWduQ2VudGVyIC8+XG4gICAgICAgICAgPC9MaXN0SXRlbT5cblxuICAgICAgICAgIDxMaXN0SXRlbSBidXR0b24gdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwicmlnaHRcIiBhcmlhLWxhYmVsPVwiQWxpZ24gdGV4dCByaWdodFwiIG9uQ2xpY2s9e2FwcGx5QWxpZ25tZW50fT5cbiAgICAgICAgICAgIDxBbGlnblJpZ2h0IC8+XG4gICAgICAgICAgPC9MaXN0SXRlbT5cblxuICAgICAgICAgIDxMaXN0SXRlbSBidXR0b24gdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwianVzdGlmeVwiIGFyaWEtbGFiZWw9XCJKdXN0aWZ5IHRleHRcIiBvbkNsaWNrPXthcHBseUFsaWdubWVudH0+XG4gICAgICAgICAgICA8QWxpZ25KdXN0aWZ5IC8+XG4gICAgICAgICAgPC9MaXN0SXRlbT5cbiAgICAgICAgPC9MaXN0PlxuICAgICAgPC9Db2xsYXBzZT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXX0=
|