@pie-lib/editable-html-tip-tap 2.1.20-beta.14 → 2.1.20-beta.15

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.
@@ -5,6 +5,10 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
5
5
  var _react = _interopRequireDefault(require("react"));
6
6
  var _react2 = require("@testing-library/react");
7
7
  var _MenuBar = _interopRequireDefault(require("../MenuBar"));
8
+ // flipped to false by the accessibility tests to render the toolbar in its disabled state
9
+ var mockCanRunCommands = true;
10
+ // node/mark types the accessibility tests want the editor state to report as active
11
+ var mockActiveTypes = [];
8
12
  jest.mock('@tiptap/react', function () {
9
13
  return {
10
14
  EditorContent: function EditorContent(_ref) {
@@ -15,70 +19,29 @@ jest.mock('@tiptap/react', function () {
15
19
  },
16
20
  useEditorState: function useEditorState(_ref2) {
17
21
  var selector = _ref2.selector;
22
+ var can = function can() {
23
+ return {
24
+ run: jest.fn(function () {
25
+ return mockCanRunCommands;
26
+ })
27
+ };
28
+ };
18
29
  var mockEditor = {
19
- isActive: jest.fn(function () {
20
- return false;
30
+ isActive: jest.fn(function (name) {
31
+ return mockActiveTypes.includes(name);
21
32
  }),
22
33
  can: jest.fn(function () {
23
34
  return {
24
35
  chain: jest.fn(function () {
25
36
  return {
26
- toggleBold: jest.fn(function () {
27
- return {
28
- run: jest.fn(function () {
29
- return true;
30
- })
31
- };
32
- }),
33
- insertTable: jest.fn(function () {
34
- return {
35
- run: jest.fn(function () {
36
- return true;
37
- })
38
- };
39
- }),
40
- toggleItalic: jest.fn(function () {
41
- return {
42
- run: jest.fn(function () {
43
- return true;
44
- })
45
- };
46
- }),
47
- toggleStrike: jest.fn(function () {
48
- return {
49
- run: jest.fn(function () {
50
- return true;
51
- })
52
- };
53
- }),
54
- toggleCode: jest.fn(function () {
55
- return {
56
- run: jest.fn(function () {
57
- return true;
58
- })
59
- };
60
- }),
61
- unsetAllMarks: jest.fn(function () {
62
- return {
63
- run: jest.fn(function () {
64
- return true;
65
- })
66
- };
67
- }),
68
- undo: jest.fn(function () {
69
- return {
70
- run: jest.fn(function () {
71
- return true;
72
- })
73
- };
74
- }),
75
- redo: jest.fn(function () {
76
- return {
77
- run: jest.fn(function () {
78
- return true;
79
- })
80
- };
81
- })
37
+ toggleBold: can,
38
+ insertTable: can,
39
+ toggleItalic: can,
40
+ toggleStrike: can,
41
+ toggleCode: can,
42
+ unsetAllMarks: can,
43
+ undo: can,
44
+ redo: can
82
45
  };
83
46
  })
84
47
  };
@@ -498,5 +461,74 @@ describe('StyledMenuBar', function () {
498
461
  container = _render18.container;
499
462
  expect(container).toBeInTheDocument();
500
463
  });
464
+ describe('accessible names', function () {
465
+ var allPlugins = ['table', 'bold', 'italic', 'strikethrough', 'code', 'underline', 'subscript', 'superscript', 'image', 'video', 'audio', 'css', 'blockquote', 'h3', 'math', 'languageCharacters', 'bulleted-list', 'numbered-list', 'undo', 'redo', 'responseArea'];
466
+ var accessibleName = function accessibleName(button) {
467
+ return button.getAttribute('aria-label') || button.textContent.trim();
468
+ };
469
+ afterEach(function () {
470
+ mockCanRunCommands = true;
471
+ mockActiveTypes = [];
472
+ });
473
+ it('gives every toolbar button an accessible name', function () {
474
+ var _render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
475
+ activePlugins: allPlugins
476
+ }))),
477
+ container = _render19.container;
478
+ var buttons = Array.from(container.querySelectorAll('button'));
479
+ expect(buttons.length).toBeGreaterThan(0);
480
+ buttons.forEach(function (button) {
481
+ return expect(accessibleName(button)).not.toEqual('');
482
+ });
483
+ });
484
+ it('keeps accessible names on disabled buttons', function () {
485
+ mockCanRunCommands = false;
486
+ var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
487
+ activePlugins: allPlugins
488
+ }))),
489
+ container = _render20.container;
490
+ var disabled = Array.from(container.querySelectorAll('button[disabled]'));
491
+ expect(disabled.length).toBeGreaterThan(0);
492
+ disabled.forEach(function (button) {
493
+ return expect(accessibleName(button)).not.toEqual('');
494
+ });
495
+ });
496
+ it('labels the formatting and history buttons', function () {
497
+ var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
498
+ activePlugins: allPlugins
499
+ }))),
500
+ getByLabelText = _render21.getByLabelText;
501
+ ['Bold', 'Italic', 'Underline', 'Insert table', 'Undo', 'Redo'].forEach(function (label) {
502
+ return expect(getByLabelText(label)).toBeInTheDocument();
503
+ });
504
+ });
505
+ it('labels the table buttons', function () {
506
+ mockActiveTypes = ['table'];
507
+ var _render22 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
508
+ activePlugins: allPlugins
509
+ }))),
510
+ getByLabelText = _render22.getByLabelText;
511
+ ['Add table row', 'Remove table row', 'Add table column', 'Remove table column', 'Remove table'].forEach(function (label) {
512
+ return expect(getByLabelText(label)).toBeInTheDocument();
513
+ });
514
+ expect(getByLabelText('Table borders')).toHaveAttribute('aria-pressed', 'true');
515
+ });
516
+ it('labels the response area insert button', function () {
517
+ var _render23 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
518
+ activePlugins: ['responseArea']
519
+ }))),
520
+ getByLabelText = _render23.getByLabelText;
521
+ expect(getByLabelText('Insert response area')).toBeInTheDocument();
522
+ });
523
+ it('exposes toggle state via aria-pressed on mark buttons', function () {
524
+ var _render24 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MenuBar["default"], (0, _extends2["default"])({}, defaultProps, {
525
+ activePlugins: allPlugins
526
+ }))),
527
+ getByLabelText = _render24.getByLabelText;
528
+ expect(getByLabelText('Bold')).toHaveAttribute('aria-pressed', 'false');
529
+ // one-shot actions are not toggles, so they must not report a pressed state
530
+ expect(getByLabelText('Undo')).not.toHaveAttribute('aria-pressed');
531
+ });
532
+ });
501
533
  });
502
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWVudUJhciIsImplc3QiLCJtb2NrIiwiRWRpdG9yQ29udGVudCIsIl9yZWYiLCJlZGl0b3IiLCJjcmVhdGVFbGVtZW50IiwidXNlRWRpdG9yU3RhdGUiLCJfcmVmMiIsInNlbGVjdG9yIiwibW9ja0VkaXRvciIsImlzQWN0aXZlIiwiZm4iLCJjYW4iLCJjaGFpbiIsInRvZ2dsZUJvbGQiLCJydW4iLCJpbnNlcnRUYWJsZSIsInRvZ2dsZUl0YWxpYyIsInRvZ2dsZVN0cmlrZSIsInRvZ2dsZUNvZGUiLCJ1bnNldEFsbE1hcmtzIiwidW5kbyIsInJlZG8iLCJnZXRBdHRyaWJ1dGVzIiwiYm9yZGVyIiwiY29tbWFuZE1hbmFnZXIiLCJpc0ZvY3VzZWQiLCJzdGF0ZSIsInNlbGVjdGlvbiIsIk5vZGVTZWxlY3Rpb24iLCJDaGFyYWN0ZXJJY29uIiwiX3JlZjMiLCJsZXR0ZXIiLCJDaGFyYWN0ZXJQaWNrZXIiLCJfcmVmNCIsIm9uQ2xvc2UiLCJvbkNsaWNrIiwiRG9uZUJ1dHRvbiIsIl9yZWY1IiwiZGVzY3JpYmUiLCJmb2N1cyIsInRvZ2dsZVVuZGVybGluZSIsInRvZ2dsZVN1YnNjcmlwdCIsInRvZ2dsZVN1cGVyc2NyaXB0Iiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiaW5zZXJ0TWVkaWEiLCJ0b2dnbGVIZWFkaW5nIiwiaW5zZXJ0TWF0aCIsInRvZ2dsZUJ1bGxldExpc3QiLCJ0b2dnbGVPcmRlcmVkTGlzdCIsImFkZFJvd0FmdGVyIiwiZGVsZXRlUm93IiwiYWRkQ29sdW1uQWZ0ZXIiLCJkZWxldGVDb2x1bW4iLCJkZWxldGVUYWJsZSIsImluc2VydFJlc3BvbnNlQXJlYSIsIm5hbWUiLCJnZXRIVE1MIiwiY29tbWFuZHMiLCJibHVyIiwib3BlbkNTU0NsYXNzRGlhbG9nIiwidXBkYXRlQXR0cmlidXRlcyIsIl90b29sYmFyT3BlbmVkIiwiZGVmYXVsdFByb3BzIiwiYWN0aXZlUGx1Z2lucyIsInRvb2xiYXJPcHRzIiwicmVzcG9uc2VBcmVhUHJvcHMiLCJ0eXBlIiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXIyIiwiYnV0dG9ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJ0b0JlR3JlYXRlclRoYW4iLCJfcmVuZGVyMyIsIl9yZW5kZXI0IiwiX2V4dGVuZHMyIiwiX3JlbmRlcjUiLCJfcmVuZGVyNiIsImJ1dHRvbiIsInF1ZXJ5U2VsZWN0b3IiLCJmaXJlRXZlbnQiLCJjbGljayIsIl9yZW5kZXI3Iiwic2hvd0RvbmUiLCJvbkNoYW5nZSIsImdldEJ5VGVzdElkIiwiX3JlbmRlcjgiLCJxdWVyeUJ5VGVzdElkIiwibm90IiwiX3JlbmRlcjkiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJfcmVuZGVyMCIsIm1pbldpZHRoIiwidG9vbGJhciIsInRvSGF2ZVN0eWxlIiwiX3JlbmRlcjEiLCJpc0hpZGRlbiIsInRvSGF2ZUNsYXNzIiwiX3JlbmRlcjEwIiwiX3JlbmRlcjExIiwiYWx3YXlzVmlzaWJsZSIsIl9yZW5kZXIxMiIsIl9yZW5kZXIxMyIsImV2ZW50IiwiTW91c2VFdmVudCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwicHJldmVudERlZmF1bHRTcHkiLCJzcHlPbiIsImRpc3BhdGNoRXZlbnQiLCJfcmVuZGVyMTQiLCJfcmVuZGVyMTUiLCJfcmVuZGVyMTYiLCJfcmVuZGVyMTciLCJfcmVuZGVyMTgiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9fX3Rlc3RzX18vTWVudUJhci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCBTdHlsZWRNZW51QmFyIGZyb20gJy4uL01lbnVCYXInO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBFZGl0b3JDb250ZW50OiAoeyBlZGl0b3IgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImVkaXRvci1jb250ZW50XCIgLz4sXG4gIHVzZUVkaXRvclN0YXRlOiAoeyBzZWxlY3RvciB9KSA9PiB7XG4gICAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICAgIGlzQWN0aXZlOiBqZXN0LmZuKCgpID0+IGZhbHNlKSxcbiAgICAgIGNhbjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgICBjaGFpbjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgICAgIHRvZ2dsZUJvbGQ6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICBpbnNlcnRUYWJsZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICAgIHRvZ2dsZUl0YWxpYzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICAgIHRvZ2dsZVN0cmlrZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICAgIHRvZ2dsZUNvZGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgICB1bnNldEFsbE1hcmtzOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgICAgdW5kbzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICAgIHJlZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgfSkpLFxuICAgICAgfSkpLFxuICAgICAgZ2V0QXR0cmlidXRlczogamVzdC5mbigoKSA9PiAoeyBib3JkZXI6ICcxJyB9KSksXG4gICAgICBjb21tYW5kTWFuYWdlcjoge30sXG4gICAgICBpc0ZvY3VzZWQ6IHRydWUsXG4gICAgICBzdGF0ZToge1xuICAgICAgICBzZWxlY3Rpb246IHt9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNlbGVjdG9yKHsgZWRpdG9yOiBtb2NrRWRpdG9yIH0pO1xuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ3Byb3NlbWlycm9yLXN0YXRlJywgKCkgPT4gKHtcbiAgTm9kZVNlbGVjdGlvbjogamVzdC5mbigpLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uL0NoYXJhY3RlclBpY2tlcicsICgpID0+ICh7XG4gIENoYXJhY3Rlckljb246ICh7IGxldHRlciB9KSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiY2hhcmFjdGVyLWljb25cIj57bGV0dGVyfTwvZGl2PixcbiAgQ2hhcmFjdGVyUGlja2VyOiAoeyBvbkNsb3NlIH0pID0+IChcbiAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiY2hhcmFjdGVyLXBpY2tlclwiPlxuICAgICAgPGJ1dHRvbiBvbkNsaWNrPXtvbkNsb3NlfSBkYXRhLXRlc3RpZD1cImNsb3NlLXBpY2tlclwiPlxuICAgICAgICBDbG9zZVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICksXG59KSk7XG5cbmplc3QubW9jaygnLi4vY29tbW9uL2RvbmUtYnV0dG9uJywgKCkgPT4gKHtcbiAgRG9uZUJ1dHRvbjogKHsgb25DbGljayB9KSA9PiAoXG4gICAgPGJ1dHRvbiBvbkNsaWNrPXtvbkNsaWNrfSBkYXRhLXRlc3RpZD1cImRvbmUtYnV0dG9uXCI+XG4gICAgICBEb25lXG4gICAgPC9idXR0b24+XG4gICksXG59KSk7XG5cbmRlc2NyaWJlKCdTdHlsZWRNZW51QmFyJywgKCkgPT4ge1xuICBjb25zdCBtb2NrRWRpdG9yID0ge1xuICAgIGNoYWluOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICBmb2N1czogamVzdC5mbigoKSA9PiAoe1xuICAgICAgICBpbnNlcnRUYWJsZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZUJvbGQ6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVJdGFsaWM6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVTdHJpa2U6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVDb2RlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlVW5kZXJsaW5lOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlU3Vic2NyaXB0OiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlU3VwZXJzY3JpcHQ6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBzZXRJbWFnZVVwbG9hZE5vZGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBpbnNlcnRNZWRpYTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZUhlYWRpbmc6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBpbnNlcnRNYXRoOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlQnVsbGV0TGlzdDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZU9yZGVyZWRMaXN0OiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdW5kbzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHJlZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBhZGRSb3dBZnRlcjogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGRlbGV0ZVJvdzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGFkZENvbHVtbkFmdGVyOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgZGVsZXRlQ29sdW1uOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgZGVsZXRlVGFibGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBpbnNlcnRSZXNwb25zZUFyZWE6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgfSkpLFxuICAgIH0pKSxcbiAgICBjYW46IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgIGNoYWluOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICAgIHRvZ2dsZUJvbGQ6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgaW5zZXJ0VGFibGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgICAgdW5kbzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICByZWRvOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICB9KSksXG4gICAgfSkpLFxuICAgIGlzQWN0aXZlOiBqZXN0LmZuKChuYW1lKSA9PiB7XG4gICAgICBpZiAobmFtZSA9PT0gJ2JvbGQnKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmIChuYW1lID09PSAnaXRhbGljJykgcmV0dXJuIGZhbHNlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pLFxuICAgIGdldEF0dHJpYnV0ZXM6IGplc3QuZm4oKCkgPT4gKHsgYm9yZGVyOiAnMScgfSkpLFxuICAgIGdldEhUTUw6IGplc3QuZm4oKCkgPT4gJzxwPlRlc3Q8L3A+JyksXG4gICAgY29tbWFuZHM6IHtcbiAgICAgIGJsdXI6IGplc3QuZm4oKSxcbiAgICAgIG9wZW5DU1NDbGFzc0RpYWxvZzogamVzdC5mbigpLFxuICAgICAgdXBkYXRlQXR0cmlidXRlczogamVzdC5mbigpLFxuICAgIH0sXG4gICAgaXNGb2N1c2VkOiB0cnVlLFxuICAgIHN0YXRlOiB7XG4gICAgICBzZWxlY3Rpb246IHt9LFxuICAgIH0sXG4gICAgX3Rvb2xiYXJPcGVuZWQ6IGZhbHNlLFxuICB9O1xuXG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBlZGl0b3I6IG1vY2tFZGl0b3IsXG4gICAgYWN0aXZlUGx1Z2luczogWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAndGFibGUnXSxcbiAgICB0b29sYmFyT3B0czoge30sXG4gICAgcmVzcG9uc2VBcmVhUHJvcHM6IHsgdHlwZTogJ2V4cGxpY2l0LWNvbnN0cnVjdGVkLXJlc3BvbnNlJyB9LFxuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QuY2xlYXJBbGxNb2NrcygpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIHRvb2xiYXIgd2l0aCBidXR0b25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IGJ1dHRvbnMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJyk7XG4gICAgZXhwZWN0KGJ1dHRvbnMubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyBib2xkIGJ1dHRvbiB3aGVuIGJvbGQgcGx1Z2luIGlzIGFjdGl2ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGlkZXMgYnV0dG9ucyB3aGVuIGlzVGFibGUgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyB0YWJsZSBidXR0b25zIHdoZW4gaW4gdGFibGUgY29udGV4dCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYW5kbGVzIGJ1dHRvbiBjbGlja3MnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3QgYnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpO1xuICAgIGlmIChidXR0b24pIHtcbiAgICAgIGZpcmVFdmVudC5jbGljayhidXR0b24pO1xuICAgIH1cbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgZG9uZSBidXR0b24gd2hlbiB0b29sYmFyT3B0cy5zaG93RG9uZSBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcihcbiAgICAgIDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IHNob3dEb25lOiB0cnVlIH19IG9uQ2hhbmdlPXtqZXN0LmZuKCl9IC8+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5VGVzdElkKCdkb25lLWJ1dHRvbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgc2hvdyBkb25lIGJ1dHRvbiB3aGVuIHRvb2xiYXJPcHRzLnNob3dEb25lIGlzIGZhbHNlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcXVlcnlCeVRlc3RJZCB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IHNob3dEb25lOiBmYWxzZSB9fSAvPik7XG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBkb25lIGJ1dHRvbiBjbGljaycsICgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICA8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBzaG93RG9uZTogdHJ1ZSB9fSBvbkNoYW5nZT17b25DaGFuZ2V9IC8+LFxuICAgICk7XG4gICAgZmlyZUV2ZW50LmNsaWNrKGdldEJ5VGVzdElkKCdkb25lLWJ1dHRvbicpKTtcbiAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCc8cD5UZXN0PC9wPicpO1xuICAgIGV4cGVjdChtb2NrRWRpdG9yLmNvbW1hbmRzLmJsdXIpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgY3VzdG9tIG1pbldpZHRoIGZyb20gdG9vbGJhck9wdHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBtaW5XaWR0aDogNTAwIH19IC8+KTtcbiAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyJyk7XG4gICAgZXhwZWN0KHRvb2xiYXIpLnRvSGF2ZVN0eWxlKHsgbWluV2lkdGg6ICc1MDBweCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGhpZGRlbiBjbGFzcyB3aGVuIHRvb2xiYXJPcHRzLmlzSGlkZGVuIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBpc0hpZGRlbjogdHJ1ZSB9fSAvPik7XG4gICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpO1xuICAgIGV4cGVjdCh0b29sYmFyKS50b0hhdmVDbGFzcygnaGlkZGVuJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyBjaGFyYWN0ZXIgcGlja2VyIHdoZW4gbGFuZ3VhZ2UgY2hhcmFjdGVyIGJ1dHRvbiBpcyBjbGlja2VkJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyLCBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoXG4gICAgICA8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ2xhbmd1YWdlQ2hhcmFjdGVycyddfSAvPixcbiAgICApO1xuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdjaGFyYWN0ZXItcGlja2VyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBmb2N1c2VkIGNsYXNzIHdoZW4gZWRpdG9yIGlzIGZvY3VzZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSB0b29sYmFyT3B0cz17eyBhbHdheXNWaXNpYmxlOiBmYWxzZSB9fSAvPik7XG4gICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpO1xuICAgIGV4cGVjdCh0b29sYmFyKS50b0hhdmVDbGFzcygnZm9jdXNlZCcpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgcmVzcG9uc2UgYXJlYSBidXR0b24gd2hlbiByZXNwb25zZUFyZWEgcGx1Z2luIGlzIGFjdGl2ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sncmVzcG9uc2VBcmVhJ119IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncHJldmVudHMgZGVmYXVsdCBvbiBtb3VzZSBkb3duJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHRvb2xiYXIgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdtb3VzZWRvd24nLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSk7XG4gICAgY29uc3QgcHJldmVudERlZmF1bHRTcHkgPSBqZXN0LnNweU9uKGV2ZW50LCAncHJldmVudERlZmF1bHQnKTtcbiAgICB0b29sYmFyPy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHRTcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGN1bGF0ZXMgaGFzVGV4dFNlbGVjdGlvbkluVGFibGUgY29ycmVjdGx5IHdoZW4gc2VsZWN0aW9uIGlzIG5vdCBlbXB0eSBpbiB0YWJsZScsICgpID0+IHtcbiAgICAvLyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGhhc1RleHRTZWxlY3Rpb25JblRhYmxlIHN0YXRlIGNvbXB1dGF0aW9uXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ3RhYmxlJywgJ2JvbGQnLCAnaXRhbGljJ119IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGlkZXMgdGFibGUgbWFuaXB1bGF0aW9uIGJ1dHRvbnMgd2hlbiB0ZXh0IGlzIHNlbGVjdGVkIGluIHRhYmxlJywgKCkgPT4ge1xuICAgIC8vIFdoZW4gaGFzVGV4dFNlbGVjdGlvbkluVGFibGUgaXMgdHJ1ZSwgdGFibGUgcm93L2NvbHVtbiBidXR0b25zIHNob3VsZCBiZSBoaWRkZW5cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnXX0gLz4pO1xuICAgIC8vIFRoZSBjb21wb25lbnQgc2hvdWxkIHJlbmRlciBidXQgdGFibGUgbWFuaXB1bGF0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIGNvbmRpdGlvbmFsXG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHRhYmxlIG1hbmlwdWxhdGlvbiBidXR0b25zIHdoZW4gbm8gdGV4dCBpcyBzZWxlY3RlZCBpbiB0YWJsZScsICgpID0+IHtcbiAgICAvLyBXaGVuIGhhc1RleHRTZWxlY3Rpb25JblRhYmxlIGlzIGZhbHNlLCB0YWJsZSByb3cvY29sdW1uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGVcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyB0ZXh0IGZvcm1hdHRpbmcgYnV0dG9ucyByZWdhcmRsZXNzIG9mIHRhYmxlIHN0YXRlJywgKCkgPT4ge1xuICAgIC8vIEJvbGQsIGl0YWxpYywgZXRjLiBzaG91bGQgYWx3YXlzIGJlIHZpc2libGUgd2hlbiB0aGVpciBwbHVnaW4gaXMgYWN0aXZlXG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZSddfSAvPik7XG4gICAgY29uc3QgYnV0dG9ucyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcbiAgICBleHBlY3QoYnV0dG9ucy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGhpZGUgdGV4dCBmb3JtYXR0aW5nIGJ1dHRvbnMgd2hlbiBpbiB0YWJsZScsICgpID0+IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcmVtb3ZhbCBvZiBcInx8IHN0YXRlLmlzVGFibGVcIiBjb25kaXRpb24gd29ya3MgY29ycmVjdGx5XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXtbJ3RhYmxlJywgJ2JvbGQnLCAnaXRhbGljJ119IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGVBQWUsRUFBRTtFQUFBLE9BQU87SUFDaENDLGFBQWEsRUFBRSxTQUFmQSxhQUFhQSxDQUFBQyxJQUFBO01BQUEsSUFBS0MsTUFBTSxHQUFBRCxJQUFBLENBQU5DLE1BQU07TUFBQSxvQkFBT1QsTUFBQSxZQUFBVSxhQUFBO1FBQUssZUFBWTtNQUFnQixDQUFFLENBQUM7SUFBQTtJQUNuRUMsY0FBYyxFQUFFLFNBQWhCQSxjQUFjQSxDQUFBQyxLQUFBLEVBQW9CO01BQUEsSUFBZkMsUUFBUSxHQUFBRCxLQUFBLENBQVJDLFFBQVE7TUFDekIsSUFBTUMsVUFBVSxHQUFHO1FBQ2pCQyxRQUFRLEVBQUVWLElBQUksQ0FBQ1csRUFBRSxDQUFDO1VBQUEsT0FBTSxLQUFLO1FBQUEsRUFBQztRQUM5QkMsR0FBRyxFQUFFWixJQUFJLENBQUNXLEVBQUUsQ0FBQztVQUFBLE9BQU87WUFDbEJFLEtBQUssRUFBRWIsSUFBSSxDQUFDVyxFQUFFLENBQUM7Y0FBQSxPQUFPO2dCQUNwQkcsVUFBVSxFQUFFZCxJQUFJLENBQUNXLEVBQUUsQ0FBQztrQkFBQSxPQUFPO29CQUFFSSxHQUFHLEVBQUVmLElBQUksQ0FBQ1csRUFBRSxDQUFDO3NCQUFBLE9BQU0s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
534
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWVudUJhciIsIm1vY2tDYW5SdW5Db21tYW5kcyIsIm1vY2tBY3RpdmVUeXBlcyIsImplc3QiLCJtb2NrIiwiRWRpdG9yQ29udGVudCIsIl9yZWYiLCJlZGl0b3IiLCJjcmVhdGVFbGVtZW50IiwidXNlRWRpdG9yU3RhdGUiLCJfcmVmMiIsInNlbGVjdG9yIiwiY2FuIiwicnVuIiwiZm4iLCJtb2NrRWRpdG9yIiwiaXNBY3RpdmUiLCJuYW1lIiwiaW5jbHVkZXMiLCJjaGFpbiIsInRvZ2dsZUJvbGQiLCJpbnNlcnRUYWJsZSIsInRvZ2dsZUl0YWxpYyIsInRvZ2dsZVN0cmlrZSIsInRvZ2dsZUNvZGUiLCJ1bnNldEFsbE1hcmtzIiwidW5kbyIsInJlZG8iLCJnZXRBdHRyaWJ1dGVzIiwiYm9yZGVyIiwiY29tbWFuZE1hbmFnZXIiLCJpc0ZvY3VzZWQiLCJzdGF0ZSIsInNlbGVjdGlvbiIsIk5vZGVTZWxlY3Rpb24iLCJDaGFyYWN0ZXJJY29uIiwiX3JlZjMiLCJsZXR0ZXIiLCJDaGFyYWN0ZXJQaWNrZXIiLCJfcmVmNCIsIm9uQ2xvc2UiLCJvbkNsaWNrIiwiRG9uZUJ1dHRvbiIsIl9yZWY1IiwiZGVzY3JpYmUiLCJmb2N1cyIsInRvZ2dsZVVuZGVybGluZSIsInRvZ2dsZVN1YnNjcmlwdCIsInRvZ2dsZVN1cGVyc2NyaXB0Iiwic2V0SW1hZ2VVcGxvYWROb2RlIiwiaW5zZXJ0TWVkaWEiLCJ0b2dnbGVIZWFkaW5nIiwiaW5zZXJ0TWF0aCIsInRvZ2dsZUJ1bGxldExpc3QiLCJ0b2dnbGVPcmRlcmVkTGlzdCIsImFkZFJvd0FmdGVyIiwiZGVsZXRlUm93IiwiYWRkQ29sdW1uQWZ0ZXIiLCJkZWxldGVDb2x1bW4iLCJkZWxldGVUYWJsZSIsImluc2VydFJlc3BvbnNlQXJlYSIsImdldEhUTUwiLCJjb21tYW5kcyIsImJsdXIiLCJvcGVuQ1NTQ2xhc3NEaWFsb2ciLCJ1cGRhdGVBdHRyaWJ1dGVzIiwiX3Rvb2xiYXJPcGVuZWQiLCJkZWZhdWx0UHJvcHMiLCJhY3RpdmVQbHVnaW5zIiwidG9vbGJhck9wdHMiLCJyZXNwb25zZUFyZWFQcm9wcyIsInR5cGUiLCJiZWZvcmVFYWNoIiwiY2xlYXJBbGxNb2NrcyIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJidXR0b25zIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsInRvQmVHcmVhdGVyVGhhbiIsIl9yZW5kZXIzIiwiX3JlbmRlcjQiLCJfZXh0ZW5kczIiLCJfcmVuZGVyNSIsIl9yZW5kZXI2IiwiYnV0dG9uIiwicXVlcnlTZWxlY3RvciIsImZpcmVFdmVudCIsImNsaWNrIiwiX3JlbmRlcjciLCJzaG93RG9uZSIsIm9uQ2hhbmdlIiwiZ2V0QnlUZXN0SWQiLCJfcmVuZGVyOCIsInF1ZXJ5QnlUZXN0SWQiLCJub3QiLCJfcmVuZGVyOSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwidG9IYXZlQmVlbkNhbGxlZCIsIl9yZW5kZXIwIiwibWluV2lkdGgiLCJ0b29sYmFyIiwidG9IYXZlU3R5bGUiLCJfcmVuZGVyMSIsImlzSGlkZGVuIiwidG9IYXZlQ2xhc3MiLCJfcmVuZGVyMTAiLCJfcmVuZGVyMTEiLCJhbHdheXNWaXNpYmxlIiwiX3JlbmRlcjEyIiwiX3JlbmRlcjEzIiwiZXZlbnQiLCJNb3VzZUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJwcmV2ZW50RGVmYXVsdFNweSIsInNweU9uIiwiZGlzcGF0Y2hFdmVudCIsIl9yZW5kZXIxNCIsIl9yZW5kZXIxNSIsIl9yZW5kZXIxNiIsIl9yZW5kZXIxNyIsIl9yZW5kZXIxOCIsImFsbFBsdWdpbnMiLCJhY2Nlc3NpYmxlTmFtZSIsImdldEF0dHJpYnV0ZSIsInRleHRDb250ZW50IiwidHJpbSIsImFmdGVyRWFjaCIsIl9yZW5kZXIxOSIsIkFycmF5IiwiZnJvbSIsImZvckVhY2giLCJ0b0VxdWFsIiwiX3JlbmRlcjIwIiwiZGlzYWJsZWQiLCJfcmVuZGVyMjEiLCJnZXRCeUxhYmVsVGV4dCIsImxhYmVsIiwiX3JlbmRlcjIyIiwidG9IYXZlQXR0cmlidXRlIiwiX3JlbmRlcjIzIiwiX3JlbmRlcjI0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL01lbnVCYXIudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGZpcmVFdmVudCwgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgU3R5bGVkTWVudUJhciBmcm9tICcuLi9NZW51QmFyJztcblxuLy8gZmxpcHBlZCB0byBmYWxzZSBieSB0aGUgYWNjZXNzaWJpbGl0eSB0ZXN0cyB0byByZW5kZXIgdGhlIHRvb2xiYXIgaW4gaXRzIGRpc2FibGVkIHN0YXRlXG5sZXQgbW9ja0NhblJ1bkNvbW1hbmRzID0gdHJ1ZTtcbi8vIG5vZGUvbWFyayB0eXBlcyB0aGUgYWNjZXNzaWJpbGl0eSB0ZXN0cyB3YW50IHRoZSBlZGl0b3Igc3RhdGUgdG8gcmVwb3J0IGFzIGFjdGl2ZVxubGV0IG1vY2tBY3RpdmVUeXBlcyA9IFtdO1xuXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBFZGl0b3JDb250ZW50OiAoeyBlZGl0b3IgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImVkaXRvci1jb250ZW50XCIgLz4sXG4gIHVzZUVkaXRvclN0YXRlOiAoeyBzZWxlY3RvciB9KSA9PiB7XG4gICAgY29uc3QgY2FuID0gKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IG1vY2tDYW5SdW5Db21tYW5kcykgfSk7XG4gICAgY29uc3QgbW9ja0VkaXRvciA9IHtcbiAgICAgIGlzQWN0aXZlOiBqZXN0LmZuKChuYW1lKSA9PiBtb2NrQWN0aXZlVHlwZXMuaW5jbHVkZXMobmFtZSkpLFxuICAgICAgY2FuOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICAgIGNoYWluOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICAgICAgdG9nZ2xlQm9sZDogY2FuLFxuICAgICAgICAgIGluc2VydFRhYmxlOiBjYW4sXG4gICAgICAgICAgdG9nZ2xlSXRhbGljOiBjYW4sXG4gICAgICAgICAgdG9nZ2xlU3RyaWtlOiBjYW4sXG4gICAgICAgICAgdG9nZ2xlQ29kZTogY2FuLFxuICAgICAgICAgIHVuc2V0QWxsTWFya3M6IGNhbixcbiAgICAgICAgICB1bmRvOiBjYW4sXG4gICAgICAgICAgcmVkbzogY2FuLFxuICAgICAgICB9KSksXG4gICAgICB9KSksXG4gICAgICBnZXRBdHRyaWJ1dGVzOiBqZXN0LmZuKCgpID0+ICh7IGJvcmRlcjogJzEnIH0pKSxcbiAgICAgIGNvbW1hbmRNYW5hZ2VyOiB7fSxcbiAgICAgIGlzRm9jdXNlZDogdHJ1ZSxcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIHNlbGVjdGlvbjoge30sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gc2VsZWN0b3IoeyBlZGl0b3I6IG1vY2tFZGl0b3IgfSk7XG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygncHJvc2VtaXJyb3Itc3RhdGUnLCAoKSA9PiAoe1xuICBOb2RlU2VsZWN0aW9uOiBqZXN0LmZuKCksXG59KSk7XG5cbmplc3QubW9jaygnLi4vQ2hhcmFjdGVyUGlja2VyJywgKCkgPT4gKHtcbiAgQ2hhcmFjdGVySWNvbjogKHsgbGV0dGVyIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJjaGFyYWN0ZXItaWNvblwiPntsZXR0ZXJ9PC9kaXY+LFxuICBDaGFyYWN0ZXJQaWNrZXI6ICh7IG9uQ2xvc2UgfSkgPT4gKFxuICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJjaGFyYWN0ZXItcGlja2VyXCI+XG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xvc2V9IGRhdGEtdGVzdGlkPVwiY2xvc2UtcGlja2VyXCI+XG4gICAgICAgIENsb3NlXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9jb21tb24vZG9uZS1idXR0b24nLCAoKSA9PiAoe1xuICBEb25lQnV0dG9uOiAoeyBvbkNsaWNrIH0pID0+IChcbiAgICA8YnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9IGRhdGEtdGVzdGlkPVwiZG9uZS1idXR0b25cIj5cbiAgICAgIERvbmVcbiAgICA8L2J1dHRvbj5cbiAgKSxcbn0pKTtcblxuZGVzY3JpYmUoJ1N0eWxlZE1lbnVCYXInLCAoKSA9PiB7XG4gIGNvbnN0IG1vY2tFZGl0b3IgPSB7XG4gICAgY2hhaW46IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgIGZvY3VzOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgICAgIGluc2VydFRhYmxlOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlQm9sZDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZUl0YWxpYzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZVN0cmlrZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHRvZ2dsZUNvZGU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVVbmRlcmxpbmU6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVTdWJzY3JpcHQ6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVTdXBlcnNjcmlwdDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIHNldEltYWdlVXBsb2FkTm9kZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGluc2VydE1lZGlhOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlSGVhZGluZzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGluc2VydE1hdGg6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB0b2dnbGVCdWxsZXRMaXN0OiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgdG9nZ2xlT3JkZXJlZExpc3Q6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICB1bmRvOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgcmVkbzogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGFkZFJvd0FmdGVyOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgZGVsZXRlUm93OiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigpIH0pKSxcbiAgICAgICAgYWRkQ29sdW1uQWZ0ZXI6IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBkZWxldGVDb2x1bW46IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCkgfSkpLFxuICAgICAgICBkZWxldGVUYWJsZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICAgIGluc2VydFJlc3BvbnNlQXJlYTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKSB9KSksXG4gICAgICB9KSksXG4gICAgfSkpLFxuICAgIGNhbjogamVzdC5mbigoKSA9PiAoe1xuICAgICAgY2hhaW46IGplc3QuZm4oKCkgPT4gKHtcbiAgICAgICAgdG9nZ2xlQm9sZDogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICBpbnNlcnRUYWJsZTogamVzdC5mbigoKSA9PiAoeyBydW46IGplc3QuZm4oKCkgPT4gdHJ1ZSkgfSkpLFxuICAgICAgICB1bmRvOiBqZXN0LmZuKCgpID0+ICh7IHJ1bjogamVzdC5mbigoKSA9PiB0cnVlKSB9KSksXG4gICAgICAgIHJlZG86IGplc3QuZm4oKCkgPT4gKHsgcnVuOiBqZXN0LmZuKCgpID0+IHRydWUpIH0pKSxcbiAgICAgIH0pKSxcbiAgICB9KSksXG4gICAgaXNBY3RpdmU6IGplc3QuZm4oKG5hbWUpID0+IHtcbiAgICAgIGlmIChuYW1lID09PSAnYm9sZCcpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKG5hbWUgPT09ICdpdGFsaWMnKSByZXR1cm4gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSksXG4gICAgZ2V0QXR0cmlidXRlczogamVzdC5mbigoKSA9PiAoeyBib3JkZXI6ICcxJyB9KSksXG4gICAgZ2V0SFRNTDogamVzdC5mbigoKSA9PiAnPHA+VGVzdDwvcD4nKSxcbiAgICBjb21tYW5kczoge1xuICAgICAgYmx1cjogamVzdC5mbigpLFxuICAgICAgb3BlbkNTU0NsYXNzRGlhbG9nOiBqZXN0LmZuKCksXG4gICAgICB1cGRhdGVBdHRyaWJ1dGVzOiBqZXN0LmZuKCksXG4gICAgfSxcbiAgICBpc0ZvY3VzZWQ6IHRydWUsXG4gICAgc3RhdGU6IHtcbiAgICAgIHNlbGVjdGlvbjoge30sXG4gICAgfSxcbiAgICBfdG9vbGJhck9wZW5lZDogZmFsc2UsXG4gIH07XG5cbiAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgIGVkaXRvcjogbW9ja0VkaXRvcixcbiAgICBhY3RpdmVQbHVnaW5zOiBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICd0YWJsZSddLFxuICAgIHRvb2xiYXJPcHRzOiB7fSxcbiAgICByZXNwb25zZUFyZWFQcm9wczogeyB0eXBlOiAnZXhwbGljaXQtY29uc3RydWN0ZWQtcmVzcG9uc2UnIH0sXG4gIH07XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgdG9vbGJhciB3aXRoIGJ1dHRvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3QgYnV0dG9ucyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKTtcbiAgICBleHBlY3QoYnV0dG9ucy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIGJvbGQgYnV0dG9uIHdoZW4gYm9sZCBwbHVnaW4gaXMgYWN0aXZlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoaWRlcyBidXR0b25zIHdoZW4gaXNUYWJsZSBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17Wyd0YWJsZSddfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHRhYmxlIGJ1dHRvbnMgd2hlbiBpbiB0YWJsZSBjb250ZXh0JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17Wyd0YWJsZSddfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgYnV0dG9uIGNsaWNrcycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBidXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignYnV0dG9uJyk7XG4gICAgaWYgKGJ1dHRvbikge1xuICAgICAgZmlyZUV2ZW50LmNsaWNrKGJ1dHRvbik7XG4gICAgfVxuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyBkb25lIGJ1dHRvbiB3aGVuIHRvb2xiYXJPcHRzLnNob3dEb25lIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKFxuICAgICAgPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgc2hvd0RvbmU6IHRydWUgfX0gb25DaGFuZ2U9e2plc3QuZm4oKX0gLz4sXG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBzaG93IGRvbmUgYnV0dG9uIHdoZW4gdG9vbGJhck9wdHMuc2hvd0RvbmUgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gdG9vbGJhck9wdHM9e3sgc2hvd0RvbmU6IGZhbHNlIH19IC8+KTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnZG9uZS1idXR0b24nKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYW5kbGVzIGRvbmUgYnV0dG9uIGNsaWNrJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcihcbiAgICAgIDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IHNob3dEb25lOiB0cnVlIH19IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz4sXG4gICAgKTtcbiAgICBmaXJlRXZlbnQuY2xpY2soZ2V0QnlUZXN0SWQoJ2RvbmUtYnV0dG9uJykpO1xuICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJzxwPlRlc3Q8L3A+Jyk7XG4gICAgZXhwZWN0KG1vY2tFZGl0b3IuY29tbWFuZHMuYmx1cikudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBjdXN0b20gbWluV2lkdGggZnJvbSB0b29sYmFyT3B0cycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IG1pbldpZHRoOiA1MDAgfX0gLz4pO1xuICAgIGNvbnN0IHRvb2xiYXIgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKTtcbiAgICBleHBlY3QodG9vbGJhcikudG9IYXZlU3R5bGUoeyBtaW5XaWR0aDogJzUwMHB4JyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgaGlkZGVuIGNsYXNzIHdoZW4gdG9vbGJhck9wdHMuaXNIaWRkZW4gaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IGlzSGlkZGVuOiB0cnVlIH19IC8+KTtcbiAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyJyk7XG4gICAgZXhwZWN0KHRvb2xiYXIpLnRvSGF2ZUNsYXNzKCdoaWRkZW4nKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIGNoYXJhY3RlciBwaWNrZXIgd2hlbiBsYW5ndWFnZSBjaGFyYWN0ZXIgYnV0dG9uIGlzIGNsaWNrZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIHF1ZXJ5QnlUZXN0SWQgfSA9IHJlbmRlcihcbiAgICAgIDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1snbGFuZ3VhZ2VDaGFyYWN0ZXJzJ119IC8+LFxuICAgICk7XG4gICAgZXhwZWN0KHF1ZXJ5QnlUZXN0SWQoJ2NoYXJhY3Rlci1waWNrZXInKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGZvY3VzZWQgY2xhc3Mgd2hlbiBlZGl0b3IgaXMgZm9jdXNlZCcsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IHRvb2xiYXJPcHRzPXt7IGFsd2F5c1Zpc2libGU6IGZhbHNlIH19IC8+KTtcbiAgICBjb25zdCB0b29sYmFyID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy50b29sYmFyJyk7XG4gICAgZXhwZWN0KHRvb2xiYXIpLnRvSGF2ZUNsYXNzKCdmb2N1c2VkJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG93cyByZXNwb25zZSBhcmVhIGJ1dHRvbiB3aGVuIHJlc3BvbnNlQXJlYSBwbHVnaW4gaXMgYWN0aXZlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17WydyZXNwb25zZUFyZWEnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdwcmV2ZW50cyBkZWZhdWx0IG9uIG1vdXNlIGRvd24nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3QgdG9vbGJhciA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpO1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICBjb25zdCBwcmV2ZW50RGVmYXVsdFNweSA9IGplc3Quc3B5T24oZXZlbnQsICdwcmV2ZW50RGVmYXVsdCcpO1xuICAgIHRvb2xiYXI/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIGV4cGVjdChwcmV2ZW50RGVmYXVsdFNweSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnY2FsY3VsYXRlcyBoYXNUZXh0U2VsZWN0aW9uSW5UYWJsZSBjb3JyZWN0bHkgd2hlbiBzZWxlY3Rpb24gaXMgbm90IGVtcHR5IGluIHRhYmxlJywgKCkgPT4ge1xuICAgIC8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgaGFzVGV4dFNlbGVjdGlvbkluVGFibGUgc3RhdGUgY29tcHV0YXRpb25cbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnLCAnYm9sZCcsICdpdGFsaWMnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoaWRlcyB0YWJsZSBtYW5pcHVsYXRpb24gYnV0dG9ucyB3aGVuIHRleHQgaXMgc2VsZWN0ZWQgaW4gdGFibGUnLCAoKSA9PiB7XG4gICAgLy8gV2hlbiBoYXNUZXh0U2VsZWN0aW9uSW5UYWJsZSBpcyB0cnVlLCB0YWJsZSByb3cvY29sdW1uIGJ1dHRvbnMgc2hvdWxkIGJlIGhpZGRlblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17Wyd0YWJsZSddfSAvPik7XG4gICAgLy8gVGhlIGNvbXBvbmVudCBzaG91bGQgcmVuZGVyIGJ1dCB0YWJsZSBtYW5pcHVsYXRpb24gYnV0dG9ucyBzaG91bGQgYmUgY29uZGl0aW9uYWxcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnc2hvd3MgdGFibGUgbWFuaXB1bGF0aW9uIGJ1dHRvbnMgd2hlbiBubyB0ZXh0IGlzIHNlbGVjdGVkIGluIHRhYmxlJywgKCkgPT4ge1xuICAgIC8vIFdoZW4gaGFzVGV4dFNlbGVjdGlvbkluVGFibGUgaXMgZmFsc2UsIHRhYmxlIHJvdy9jb2x1bW4gYnV0dG9ucyBzaG91bGQgYmUgdmlzaWJsZVxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17Wyd0YWJsZSddfSAvPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHRleHQgZm9ybWF0dGluZyBidXR0b25zIHJlZ2FyZGxlc3Mgb2YgdGFibGUgc3RhdGUnLCAoKSA9PiB7XG4gICAgLy8gQm9sZCwgaXRhbGljLCBldGMuIHNob3VsZCBhbHdheXMgYmUgdmlzaWJsZSB3aGVuIHRoZWlyIHBsdWdpbiBpcyBhY3RpdmVcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1snYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJ119IC8+KTtcbiAgICBjb25zdCBidXR0b25zID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbicpO1xuICAgIGV4cGVjdChidXR0b25zLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgaGlkZSB0ZXh0IGZvcm1hdHRpbmcgYnV0dG9ucyB3aGVuIGluIHRhYmxlJywgKCkgPT4ge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSByZW1vdmFsIG9mIFwifHwgc3RhdGUuaXNUYWJsZVwiIGNvbmRpdGlvbiB3b3JrcyBjb3JyZWN0bHlcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e1sndGFibGUnLCAnYm9sZCcsICdpdGFsaWMnXX0gLz4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuICBkZXNjcmliZSgnYWNjZXNzaWJsZSBuYW1lcycsICgpID0+IHtcbiAgICBjb25zdCBhbGxQbHVnaW5zID0gW1xuICAgICAgJ3RhYmxlJyxcbiAgICAgICdib2xkJyxcbiAgICAgICdpdGFsaWMnLFxuICAgICAgJ3N0cmlrZXRocm91Z2gnLFxuICAgICAgJ2NvZGUnLFxuICAgICAgJ3VuZGVybGluZScsXG4gICAgICAnc3Vic2NyaXB0JyxcbiAgICAgICdzdXBlcnNjcmlwdCcsXG4gICAgICAnaW1hZ2UnLFxuICAgICAgJ3ZpZGVvJyxcbiAgICAgICdhdWRpbycsXG4gICAgICAnY3NzJyxcbiAgICAgICdibG9ja3F1b3RlJyxcbiAgICAgICdoMycsXG4gICAgICAnbWF0aCcsXG4gICAgICAnbGFuZ3VhZ2VDaGFyYWN0ZXJzJyxcbiAgICAgICdidWxsZXRlZC1saXN0JyxcbiAgICAgICdudW1iZXJlZC1saXN0JyxcbiAgICAgICd1bmRvJyxcbiAgICAgICdyZWRvJyxcbiAgICAgICdyZXNwb25zZUFyZWEnLFxuICAgIF07XG5cbiAgICBjb25zdCBhY2Nlc3NpYmxlTmFtZSA9IChidXR0b24pID0+IGJ1dHRvbi5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSB8fCBidXR0b24udGV4dENvbnRlbnQudHJpbSgpO1xuXG4gICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgIG1vY2tDYW5SdW5Db21tYW5kcyA9IHRydWU7XG4gICAgICBtb2NrQWN0aXZlVHlwZXMgPSBbXTtcbiAgICB9KTtcblxuICAgIGl0KCdnaXZlcyBldmVyeSB0b29sYmFyIGJ1dHRvbiBhbiBhY2Nlc3NpYmxlIG5hbWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e2FsbFBsdWdpbnN9IC8+KTtcbiAgICAgIGNvbnN0IGJ1dHRvbnMgPSBBcnJheS5mcm9tKGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24nKSk7XG5cbiAgICAgIGV4cGVjdChidXR0b25zLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgICAgYnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IGV4cGVjdChhY2Nlc3NpYmxlTmFtZShidXR0b24pKS5ub3QudG9FcXVhbCgnJykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2tlZXBzIGFjY2Vzc2libGUgbmFtZXMgb24gZGlzYWJsZWQgYnV0dG9ucycsICgpID0+IHtcbiAgICAgIG1vY2tDYW5SdW5Db21tYW5kcyA9IGZhbHNlO1xuXG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e2FsbFBsdWdpbnN9IC8+KTtcbiAgICAgIGNvbnN0IGRpc2FibGVkID0gQXJyYXkuZnJvbShjb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uW2Rpc2FibGVkXScpKTtcblxuICAgICAgZXhwZWN0KGRpc2FibGVkLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgICAgZGlzYWJsZWQuZm9yRWFjaCgoYnV0dG9uKSA9PiBleHBlY3QoYWNjZXNzaWJsZU5hbWUoYnV0dG9uKSkubm90LnRvRXF1YWwoJycpKTtcbiAgICB9KTtcblxuICAgIGl0KCdsYWJlbHMgdGhlIGZvcm1hdHRpbmcgYW5kIGhpc3RvcnkgYnV0dG9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcig8U3R5bGVkTWVudUJhciB7Li4uZGVmYXVsdFByb3BzfSBhY3RpdmVQbHVnaW5zPXthbGxQbHVnaW5zfSAvPik7XG5cbiAgICAgIFsnQm9sZCcsICdJdGFsaWMnLCAnVW5kZXJsaW5lJywgJ0luc2VydCB0YWJsZScsICdVbmRvJywgJ1JlZG8nXS5mb3JFYWNoKChsYWJlbCkgPT5cbiAgICAgICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KGxhYmVsKSkudG9CZUluVGhlRG9jdW1lbnQoKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnbGFiZWxzIHRoZSB0YWJsZSBidXR0b25zJywgKCkgPT4ge1xuICAgICAgbW9ja0FjdGl2ZVR5cGVzID0gWyd0YWJsZSddO1xuXG4gICAgICBjb25zdCB7IGdldEJ5TGFiZWxUZXh0IH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17YWxsUGx1Z2luc30gLz4pO1xuXG4gICAgICBbJ0FkZCB0YWJsZSByb3cnLCAnUmVtb3ZlIHRhYmxlIHJvdycsICdBZGQgdGFibGUgY29sdW1uJywgJ1JlbW92ZSB0YWJsZSBjb2x1bW4nLCAnUmVtb3ZlIHRhYmxlJ10uZm9yRWFjaChcbiAgICAgICAgKGxhYmVsKSA9PiBleHBlY3QoZ2V0QnlMYWJlbFRleHQobGFiZWwpKS50b0JlSW5UaGVEb2N1bWVudCgpLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChnZXRCeUxhYmVsVGV4dCgnVGFibGUgYm9yZGVycycpKS50b0hhdmVBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsICd0cnVlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnbGFiZWxzIHRoZSByZXNwb25zZSBhcmVhIGluc2VydCBidXR0b24nLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdldEJ5TGFiZWxUZXh0IH0gPSByZW5kZXIoPFN0eWxlZE1lbnVCYXIgey4uLmRlZmF1bHRQcm9wc30gYWN0aXZlUGx1Z2lucz17WydyZXNwb25zZUFyZWEnXX0gLz4pO1xuICAgICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KCdJbnNlcnQgcmVzcG9uc2UgYXJlYScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2V4cG9zZXMgdG9nZ2xlIHN0YXRlIHZpYSBhcmlhLXByZXNzZWQgb24gbWFyayBidXR0b25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBnZXRCeUxhYmVsVGV4dCB9ID0gcmVuZGVyKDxTdHlsZWRNZW51QmFyIHsuLi5kZWZhdWx0UHJvcHN9IGFjdGl2ZVBsdWdpbnM9e2FsbFBsdWdpbnN9IC8+KTtcblxuICAgICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KCdCb2xkJykpLnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ2ZhbHNlJyk7XG4gICAgICAvLyBvbmUtc2hvdCBhY3Rpb25zIGFyZSBub3QgdG9nZ2xlcywgc28gdGhleSBtdXN0IG5vdCByZXBvcnQgYSBwcmVzc2VkIHN0YXRlXG4gICAgICBleHBlY3QoZ2V0QnlMYWJlbFRleHQoJ1VuZG8nKSkubm90LnRvSGF2ZUF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7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
@@ -3,7 +3,27 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _react = _interopRequireDefault(require("react"));
5
5
  var _react2 = require("@testing-library/react");
6
+ var _renderUi = require("@pie-lib/render-ui");
6
7
  var _toolbarButtons = require("../common/toolbar-buttons");
8
+ /*
9
+ * jsdom does not resolve custom properties, so toHaveStyle() normalises `var(--x, y)`
10
+ * to the empty string and cannot compare it. These buttons now take their ink from
11
+ * `--pie-text`, so assert against the rule emotion emitted for the element's class.
12
+ */
13
+ var declaredColor = function declaredColor(el) {
14
+ return Array.from(document.querySelectorAll('style')).flatMap(function (tag) {
15
+ var _tag$sheet;
16
+ return Array.from(((_tag$sheet = tag.sheet) === null || _tag$sheet === void 0 ? void 0 : _tag$sheet.cssRules) || []);
17
+ }).filter(function (rule) {
18
+ return Array.from(el.classList).some(function (c) {
19
+ var _rule$selectorText;
20
+ return (_rule$selectorText = rule.selectorText) === null || _rule$selectorText === void 0 ? void 0 : _rule$selectorText.includes(".".concat(c));
21
+ });
22
+ }).map(function (rule) {
23
+ var _rule$style;
24
+ return (_rule$style = rule.style) === null || _rule$style === void 0 ? void 0 : _rule$style.color;
25
+ }).find(Boolean);
26
+ };
7
27
  describe('RawButton', function () {
8
28
  it('renders without crashing', function () {
9
29
  var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_toolbarButtons.RawButton, {
@@ -83,9 +103,7 @@ describe('RawButton', function () {
83
103
  }, "Active")),
84
104
  getByText = _render8.getByText;
85
105
  var button = getByText('Active');
86
- expect(button).toHaveStyle({
87
- color: 'black'
88
- });
106
+ expect(declaredColor(button)).toBe(_renderUi.color.text());
89
107
  });
90
108
  it('applies disabled style when disabled is true', function () {
91
109
  var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_toolbarButtons.RawButton, {
@@ -236,9 +254,7 @@ describe('RawMarkButton', function () {
236
254
  }, "B")),
237
255
  getByText = _render19.getByText;
238
256
  var button = getByText('B');
239
- expect(button).toHaveStyle({
240
- color: 'black'
241
- });
257
+ expect(declaredColor(button)).toBe(_renderUi.color.text());
242
258
  });
243
259
  it('has aria-label from label prop', function () {
244
260
  var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_toolbarButtons.RawMarkButton, {
@@ -274,4 +290,4 @@ describe('MarkButton', function () {
274
290
  expect(_toolbarButtons.MarkButton).toBe(_toolbarButtons.RawMarkButton);
275
291
  });
276
292
  });
277
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdG9vbGJhckJ1dHRvbnMiLCJkZXNjcmliZSIsIml0IiwiX3JlbmRlciIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJSYXdCdXR0b24iLCJvbkNsaWNrIiwiamVzdCIsImZuIiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImdldEJ5VGV4dCIsIl9yZW5kZXIzIiwiZmlyZUV2ZW50IiwibW91c2VEb3duIiwidG9IYXZlQmVlbkNhbGxlZCIsIl9yZW5kZXI0IiwiYnV0dG9uIiwiZXZlbnQiLCJNb3VzZUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJwcmV2ZW50RGVmYXVsdFNweSIsInNweU9uIiwiZGlzcGF0Y2hFdmVudCIsIl9yZW5kZXI1Iiwia2V5RG93biIsImtleSIsIl9yZW5kZXI2IiwiX3JlbmRlcjciLCJub3QiLCJfcmVuZGVyOCIsImFjdGl2ZSIsInRvSGF2ZVN0eWxlIiwiY29sb3IiLCJfcmVuZGVyOSIsImRpc2FibGVkIiwiY3Vyc29yIiwiZXh0cmFTdHlsZXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJfcmVuZGVyMCIsIl9yZW5kZXIxIiwiYXJpYUxhYmVsIiwiZ2V0QnlMYWJlbFRleHQiLCJfcmVuZGVyMTAiLCJ0b0hhdmVBdHRyaWJ1dGUiLCJfcmVuZGVyMTEiLCJCdXR0b24iLCJ0b0JlIiwiX3JlbmRlcjEyIiwiUmF3TWFya0J1dHRvbiIsIm9uVG9nZ2xlIiwibWFyayIsImxhYmVsIiwiX3JlbmRlcjEzIiwiX3JlbmRlcjE0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJfcmVuZGVyMTUiLCJfcmVuZGVyMTYiLCJfcmVuZGVyMTciLCJfcmVuZGVyMTgiLCJfcmVuZGVyMTkiLCJfcmVuZGVyMjAiLCJfcmVuZGVyMjEiLCJfcmVuZGVyMjIiLCJNYXJrQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL3Rvb2xiYXItYnV0dG9ucy50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgTWFya0J1dHRvbiwgUmF3QnV0dG9uLCBSYXdNYXJrQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uL3Rvb2xiYXItYnV0dG9ucyc7XG5cbmRlc2NyaWJlKCdSYXdCdXR0b24nLCAoKSA9PiB7XG4gIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0+Q2xpY2sgbWU8L1Jhd0J1dHRvbj4pO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPFJhd0J1dHRvbiBvbkNsaWNrPXtqZXN0LmZuKCl9PlRlc3QgQnV0dG9uPC9SYXdCdXR0b24+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdUZXN0IEJ1dHRvbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnY2FsbHMgb25DbGljayBvbiBtb3VzZSBkb3duJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9PkNsaWNrPC9SYXdCdXR0b24+KTtcbiAgICBmaXJlRXZlbnQubW91c2VEb3duKGdldEJ5VGV4dCgnQ2xpY2snKSk7XG4gICAgZXhwZWN0KG9uQ2xpY2spLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXZlbnRzIGRlZmF1bHQgb24gbW91c2UgZG93bicsICgpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPFJhd0J1dHRvbiBvbkNsaWNrPXtvbkNsaWNrfT5DbGljazwvUmF3QnV0dG9uPik7XG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnlUZXh0KCdDbGljaycpO1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlZG93bicsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICBjb25zdCBwcmV2ZW50RGVmYXVsdFNweSA9IGplc3Quc3B5T24oZXZlbnQsICdwcmV2ZW50RGVmYXVsdCcpO1xuICAgIGJ1dHRvbi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICBleHBlY3QocHJldmVudERlZmF1bHRTcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIG9uQ2xpY2sgb24gRW50ZXIga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9PkNsaWNrPC9SYXdCdXR0b24+KTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ0NsaWNrJyksIHsga2V5OiAnRW50ZXInIH0pO1xuICAgIGV4cGVjdChvbkNsaWNrKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvbkNsaWNrIG9uIFNwYWNlIGtleSBwcmVzcycsICgpID0+IHtcbiAgICBjb25zdCBvbkNsaWNrID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPFJhd0J1dHRvbiBvbkNsaWNrPXtvbkNsaWNrfT5DbGljazwvUmF3QnV0dG9uPik7XG4gICAgZmlyZUV2ZW50LmtleURvd24oZ2V0QnlUZXh0KCdDbGljaycpLCB7IGtleTogJyAnIH0pO1xuICAgIGV4cGVjdChvbkNsaWNrKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBjYWxsIG9uQ2xpY2sgb24gb3RoZXIga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9PkNsaWNrPC9SYXdCdXR0b24+KTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ0NsaWNrJyksIHsga2V5OiAnYScgfSk7XG4gICAgZXhwZWN0KG9uQ2xpY2spLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGFjdGl2ZSBzdHlsZSB3aGVuIGFjdGl2ZSBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0gYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgQWN0aXZlXG4gICAgICA8L1Jhd0J1dHRvbj4sXG4gICAgKTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ0FjdGl2ZScpO1xuICAgIGV4cGVjdChidXR0b24pLnRvSGF2ZVN0eWxlKHsgY29sb3I6ICdibGFjaycgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGRpc2FibGVkIHN0eWxlIHdoZW4gZGlzYWJsZWQgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd0J1dHRvbiBvbkNsaWNrPXtqZXN0LmZuKCl9IGRpc2FibGVkPXt0cnVlfT5cbiAgICAgICAgRGlzYWJsZWRcbiAgICAgIDwvUmF3QnV0dG9uPixcbiAgICApO1xuICAgIGNvbnN0IGJ1dHRvbiA9IGdldEJ5VGV4dCgnRGlzYWJsZWQnKTtcbiAgICBleHBlY3QoYnV0dG9uKS50b0hhdmVTdHlsZSh7IGN1cnNvcjogJ25vdC1hbGxvd2VkJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgZXh0cmFTdHlsZXMgd2hlbiBwcm92aWRlZCcsICgpID0+IHtcbiAgICBjb25zdCBleHRyYVN0eWxlcyA9IHsgYmFja2dyb3VuZENvbG9yOiAncmVkJyB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0gZXh0cmFTdHlsZXM9e2V4dHJhU3R5bGVzfT5cbiAgICAgICAgU3R5bGVkXG4gICAgICA8L1Jhd0J1dHRvbj4sXG4gICAgKTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ1N0eWxlZCcpO1xuICAgIGV4cGVjdChidXR0b24pLnRvSGF2ZVN0eWxlKHsgYmFja2dyb3VuZENvbG9yOiAncmVkJyB9KTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBhcmlhLWxhYmVsIHdoZW4gcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeUxhYmVsVGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd0J1dHRvbiBvbkNsaWNrPXtqZXN0LmZuKCl9IGFyaWFMYWJlbD1cIlRlc3QgQnV0dG9uXCI+XG4gICAgICAgIEJ1dHRvblxuICAgICAgPC9SYXdCdXR0b24+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KCdUZXN0IEJ1dHRvbicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfSBhY3RpdmU9e3RydWV9PlxuICAgICAgICBCdXR0b25cbiAgICAgIDwvUmF3QnV0dG9uPixcbiAgICApO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ0J1dHRvbicpKS50b0hhdmVBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsICd0cnVlJyk7XG4gIH0pO1xuXG4gIGl0KCdpcyBmb2N1c2FibGUgd2l0aCB0YWJJbmRleCcsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfT5CdXR0b248L1Jhd0J1dHRvbj4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ0J1dHRvbicpKS50b0hhdmVBdHRyaWJ1dGUoJ3RhYkluZGV4JywgJzAnKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0J1dHRvbicsICgpID0+IHtcbiAgaXQoJ2lzIHRoZSBzYW1lIGFzIFJhd0J1dHRvbicsICgpID0+IHtcbiAgICBleHBlY3QoQnV0dG9uKS50b0JlKFJhd0J1dHRvbik7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSYXdNYXJrQnV0dG9uJywgKCkgPT4ge1xuICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17amVzdC5mbigpfSBtYXJrPVwiYm9sZFwiIGxhYmVsPVwiQm9sZFwiPlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY2hpbGRyZW4nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCI+XG4gICAgICAgIEJvbGRcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdCb2xkJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvblRvZ2dsZSB3aXRoIG1hcmsgb24gbW91c2UgZG93bicsICgpID0+IHtcbiAgICBjb25zdCBvblRvZ2dsZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd01hcmtCdXR0b24gb25Ub2dnbGU9e29uVG9nZ2xlfSBtYXJrPVwiaXRhbGljXCIgbGFiZWw9XCJJdGFsaWNcIj5cbiAgICAgICAgSVxuICAgICAgPC9SYXdNYXJrQnV0dG9uPixcbiAgICApO1xuICAgIGZpcmVFdmVudC5tb3VzZURvd24oZ2V0QnlUZXh0KCdJJykpO1xuICAgIGV4cGVjdChvblRvZ2dsZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2l0YWxpYycpO1xuICB9KTtcblxuICBpdCgncHJldmVudHMgZGVmYXVsdCBvbiBtb3VzZSBkb3duJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17b25Ub2dnbGV9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCI+XG4gICAgICAgIEJcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ0InKTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdtb3VzZWRvd24nLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSk7XG4gICAgY29uc3QgcHJldmVudERlZmF1bHRTcHkgPSBqZXN0LnNweU9uKGV2ZW50LCAncHJldmVudERlZmF1bHQnKTtcbiAgICBidXR0b24uZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgZXhwZWN0KHByZXZlbnREZWZhdWx0U3B5KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvblRvZ2dsZSBvbiBFbnRlciBrZXkgcHJlc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25Ub2dnbGUgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtvblRvZ2dsZX0gbWFyaz1cInVuZGVybGluZVwiIGxhYmVsPVwiVW5kZXJsaW5lXCI+XG4gICAgICAgIFVcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ1UnKSwgeyBrZXk6ICdFbnRlcicgfSk7XG4gICAgZXhwZWN0KG9uVG9nZ2xlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgndW5kZXJsaW5lJyk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvblRvZ2dsZSBvbiBTcGFjZSBrZXkgcHJlc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25Ub2dnbGUgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtvblRvZ2dsZX0gbWFyaz1cInN0cmlrZVwiIGxhYmVsPVwiU3RyaWtlXCI+XG4gICAgICAgIFNcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ1MnKSwgeyBrZXk6ICcgJyB9KTtcbiAgICBleHBlY3Qob25Ub2dnbGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdzdHJpa2UnKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGNhbGwgb25Ub2dnbGUgb24gb3RoZXIga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17b25Ub2dnbGV9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCI+XG4gICAgICAgIEJcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ0InKSwgeyBrZXk6ICdhJyB9KTtcbiAgICBleHBlY3Qob25Ub2dnbGUpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGFjdGl2ZSBzdHlsZSB3aGVuIGFjdGl2ZSBpcyB0cnVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17amVzdC5mbigpfSBtYXJrPVwiYm9sZFwiIGxhYmVsPVwiQm9sZFwiIGFjdGl2ZT17dHJ1ZX0+XG4gICAgICAgIEJcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ0InKTtcbiAgICBleHBlY3QoYnV0dG9uKS50b0hhdmVTdHlsZSh7IGNvbG9yOiAnYmxhY2snIH0pO1xuICB9KTtcblxuICBpdCgnaGFzIGFyaWEtbGFiZWwgZnJvbSBsYWJlbCBwcm9wJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJUb2dnbGUgQm9sZFwiPlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KCdUb2dnbGUgQm9sZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCIgYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgQlxuICAgICAgPC9SYXdNYXJrQnV0dG9uPixcbiAgICApO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ0InKSkudG9IYXZlQXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICB9KTtcblxuICBpdCgnaXMgZm9jdXNhYmxlIHdpdGggdGFiSW5kZXgnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCI+XG4gICAgICAgIEJcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdCJykpLnRvSGF2ZUF0dHJpYnV0ZSgndGFiSW5kZXgnLCAnMCcpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnTWFya0J1dHRvbicsICgpID0+IHtcbiAgaXQoJ2lzIHRoZSBzYW1lIGFzIFJhd01hcmtCdXR0b24nLCAoKSA9PiB7XG4gICAgZXhwZWN0KE1hcmtCdXR0b24pLnRvQmUoUmF3TWFya0J1dHRvbik7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGVBQUEsR0FBQUYsT0FBQTtBQUVBRyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07RUFDMUJDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO0lBQ25DLElBQUFDLE9BQUEsR0FBc0IsSUFBQUMsY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxHQUFDLFVBQW1CLENBQUMsQ0FBQztNQUF6RUMsU0FBUyxHQUFBUCxPQUFBLENBQVRPLFNBQVM7SUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0VBRUZWLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQzNCLElBQUFXLFFBQUEsR0FBc0IsSUFBQVQsY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxHQUFDLGFBQXNCLENBQUMsQ0FBQztNQUE1RUssU0FBUyxHQUFBRCxRQUFBLENBQVRDLFNBQVM7SUFDakJILE1BQU0sQ0FBQ0csU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDdEQsQ0FBQyxDQUFDO0VBRUZWLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxZQUFNO0lBQ3RDLElBQU1LLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUN6QixJQUFBTSxRQUFBLEdBQXNCLElBQUFYLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQU0sU0FBUztRQUFDQyxPQUFPLEVBQUVBO01BQVEsR0FBQyxPQUFnQixDQUFDLENBQUM7TUFBcEVPLFNBQVMsR0FBQUMsUUFBQSxDQUFURCxTQUFTO0lBQ2pCRSxpQkFBUyxDQUFDQyxTQUFTLENBQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2Q0gsTUFBTSxDQUFDSixPQUFPLENBQUMsQ0FBQ1csZ0JBQWdCLENBQUMsQ0FBQztFQUNwQyxDQUFDLENBQUM7RUFFRmhCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxZQUFNO0lBQ3pDLElBQU1LLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztJQUN6QixJQUFBVSxRQUFBLEdBQXNCLElBQUFmLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQU0sU0FBUztRQUFDQyxPQUFPLEVBQUVBO01BQVEsR0FBQyxPQUFnQixDQUFDLENBQUM7TUFBcEVPLFNBQVMsR0FBQUssUUFBQSxDQUFUTCxTQUFTO0lBQ2pCLElBQU1NLE1BQU0sR0FBR04sU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxJQUFNTyxLQUFLLEdBQUcsSUFBSUMsVUFBVSxDQUFDLFdBQVcsRUFBRTtNQUFFQyxPQUFPLEVBQUUsSUFBSTtNQUFFQyxVQUFVLEVBQUU7SUFBSyxDQUFDLENBQUM7SUFDOUUsSUFBTUMsaUJBQWlCLEdBQUdqQixJQUFJLENBQUNrQixLQUFLLENBQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztJQUM3REQsTUFBTSxDQUFDTyxhQUFhLENBQUNOLEtBQUssQ0FBQztJQUMzQlYsTUFBTSxDQUFDYyxpQkFBaUIsQ0FBQyxDQUFDUCxnQkFBZ0IsQ0FBQyxDQUFDO0VBQzlDLENBQUMsQ0FBQztFQUVGaEIsRUFBRSxDQUFDLGtDQUFrQyxFQUFFLFlBQU07SUFDM0MsSUFBTUssT0FBTyxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLElBQUFtQixRQUFBLEdBQXNCLElBQUF4QixjQUFNLGVBQUNSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxlQUFBLENBQUFNLFNBQVM7UUFBQ0MsT0FBTyxFQUFFQTtNQUFRLEdBQUMsT0FBZ0IsQ0FBQyxDQUFDO01BQXBFTyxTQUFTLEdBQUFjLFFBQUEsQ0FBVGQsU0FBUztJQUNqQkUsaUJBQVMsQ0FBQ2EsT0FBTyxDQUFDZixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7TUFBRWdCLEdBQUcsRUFBRTtJQUFRLENBQUMsQ0FBQztJQUN2RG5CLE1BQU0sQ0FBQ0osT0FBTyxDQUFDLENBQUNXLGdCQUFnQixDQUFDLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0VBRUZoQixFQUFFLENBQUMsa0NBQWtDLEVBQUUsWUFBTTtJQUMzQyxJQUFNSyxPQUFPLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDekIsSUFBQXNCLFFBQUEsR0FBc0IsSUFBQTNCLGNBQU0sZUFBQ1IsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQU0sU0FBUztRQUFDQyxPQUFPLEVBQUVBO01BQVEsR0FBQyxPQUFnQixDQUFDLENBQUM7TUFBcEVPLFNBQVMsR0FBQWlCLFFBQUEsQ0FBVGpCLFNBQVM7SUFDakJFLGlCQUFTLENBQUNhLE9BQU8sQ0FBQ2YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO01BQUVnQixHQUFHLEVBQUU7SUFBSSxDQUFDLENBQUM7SUFDbkRuQixNQUFNLENBQUNKLE9BQU8sQ0FBQyxDQUFDVyxnQkFBZ0IsQ0FBQyxDQUFDO0VBQ3BDLENBQUMsQ0FBQztFQUVGaEIsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLFlBQU07SUFDbkQsSUFBTUssT0FBTyxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLElBQUF1QixRQUFBLEdBQXNCLElBQUE1QixjQUFNLGVBQUNSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxlQUFBLENBQUFNLFNBQVM7UUFBQ0MsT0FBTyxFQUFFQTtNQUFRLEdBQUMsT0FBZ0IsQ0FBQyxDQUFDO01BQXBFTyxTQUFTLEdBQUFrQixRQUFBLENBQVRsQixTQUFTO0lBQ2pCRSxpQkFBUyxDQUFDYSxPQUFPLENBQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtNQUFFZ0IsR0FBRyxFQUFFO0lBQUksQ0FBQyxDQUFDO0lBQ25EbkIsTUFBTSxDQUFDSixPQUFPLENBQUMsQ0FBQzBCLEdBQUcsQ0FBQ2YsZ0JBQWdCLENBQUMsQ0FBQztFQUN4QyxDQUFDLENBQUM7RUFFRmhCLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxZQUFNO0lBQ25ELElBQUFnQyxRQUFBLEdBQXNCLElBQUE5QixjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBRTtRQUFDMEIsTUFBTSxFQUFFO01BQUssR0FBQyxRQUVsQyxDQUNiLENBQUM7TUFKT3JCLFNBQVMsR0FBQW9CLFFBQUEsQ0FBVHBCLFNBQVM7SUFLakIsSUFBTU0sTUFBTSxHQUFHTixTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2xDSCxNQUFNLENBQUNTLE1BQU0sQ0FBQyxDQUFDZ0IsV0FBVyxDQUFDO01BQUVDLEtBQUssRUFBRTtJQUFRLENBQUMsQ0FBQztFQUNoRCxDQUFDLENBQUM7RUFFRm5DLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxZQUFNO0lBQ3ZELElBQUFvQyxRQUFBLEdBQXNCLElBQUFsQyxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBRTtRQUFDOEIsUUFBUSxFQUFFO01BQUssR0FBQyxVQUVwQyxDQUNiLENBQUM7TUFKT3pCLFNBQVMsR0FBQXdCLFFBQUEsQ0FBVHhCLFNBQVM7SUFLakIsSUFBTU0sTUFBTSxHQUFHTixTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3BDSCxNQUFNLENBQUNTLE1BQU0sQ0FBQyxDQUFDZ0IsV0FBVyxDQUFDO01BQUVJLE1BQU0sRUFBRTtJQUFjLENBQUMsQ0FBQztFQUN2RCxDQUFDLENBQUM7RUFFRnRDLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxZQUFNO0lBQzVDLElBQU11QyxXQUFXLEdBQUc7TUFBRUMsZUFBZSxFQUFFO0lBQU0sQ0FBQztJQUM5QyxJQUFBQyxRQUFBLEdBQXNCLElBQUF2QyxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBRTtRQUFDZ0MsV0FBVyxFQUFFQTtNQUFZLEdBQUMsUUFFOUMsQ0FDYixDQUFDO01BSk8zQixTQUFTLEdBQUE2QixRQUFBLENBQVQ3QixTQUFTO0lBS2pCLElBQU1NLE1BQU0sR0FBR04sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUNsQ0gsTUFBTSxDQUFDUyxNQUFNLENBQUMsQ0FBQ2dCLFdBQVcsQ0FBQztNQUFFTSxlQUFlLEVBQUU7SUFBTSxDQUFDLENBQUM7RUFDeEQsQ0FBQyxDQUFDO0VBRUZ4QyxFQUFFLENBQUMsOEJBQThCLEVBQUUsWUFBTTtJQUN2QyxJQUFBMEMsUUFBQSxHQUEyQixJQUFBeEMsY0FBTSxlQUMvQlIsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQU0sU0FBUztRQUFDQyxPQUFPLEVBQUVDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUU7UUFBQ29DLFNBQVMsRUFBQztNQUFhLEdBQUMsUUFFNUMsQ0FDYixDQUFDO01BSk9DLGNBQWMsR0FBQUYsUUFBQSxDQUFkRSxjQUFjO0lBS3RCbkMsTUFBTSxDQUFDbUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUNsQyxpQkFBaUIsQ0FBQyxDQUFDO0VBQzNELENBQUMsQ0FBQztFQUVGVixFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUNyQyxJQUFBNkMsU0FBQSxHQUFzQixJQUFBM0MsY0FBTSxlQUMxQlIsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQU0sU0FBUztRQUFDQyxPQUFPLEVBQUVDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUU7UUFBQzBCLE1BQU0sRUFBRTtNQUFLLEdBQUMsUUFFbEMsQ0FDYixDQUFDO01BSk9yQixTQUFTLEdBQUFpQyxTQUFBLENBQVRqQyxTQUFTO0lBS2pCSCxNQUFNLENBQUNHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDa0MsZUFBZSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUM7RUFDckUsQ0FBQyxDQUFDO0VBRUY5QyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUNyQyxJQUFBK0MsU0FBQSxHQUFzQixJQUFBN0MsY0FBTSxlQUFDUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBTSxTQUFTO1FBQUNDLE9BQU8sRUFBRUMsSUFBSSxDQUFDQyxFQUFFLENBQUM7TUFBRSxHQUFDLFFBQWlCLENBQUMsQ0FBQztNQUF2RUssU0FBUyxHQUFBbUMsU0FBQSxDQUFUbkMsU0FBUztJQUNqQkgsTUFBTSxDQUFDRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ2tDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO0VBQzlELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGL0MsUUFBUSxDQUFDLFFBQVEsRUFBRSxZQUFNO0VBQ3ZCQyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtJQUNuQ1MsTUFBTSxDQUFDdUMsc0JBQU0sQ0FBQyxDQUFDQyxJQUFJLENBQUM3Qyx5QkFBUyxDQUFDO0VBQ2hDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGTCxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQU07RUFDOUJDLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO0lBQ25DLElBQUFrRCxTQUFBLEdBQXNCLElBQUFoRCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUU5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFFO1FBQUM4QyxJQUFJLEVBQUMsTUFBTTtRQUFDQyxLQUFLLEVBQUM7TUFBTSxHQUFDLEdBRTlDLENBQ2pCLENBQUM7TUFKTzlDLFNBQVMsR0FBQTBDLFNBQUEsQ0FBVDFDLFNBQVM7SUFLakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7RUFDdkMsQ0FBQyxDQUFDO0VBRUZWLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQzNCLElBQUF1RCxTQUFBLEdBQXNCLElBQUFyRCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUU5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFFO1FBQUM4QyxJQUFJLEVBQUMsTUFBTTtRQUFDQyxLQUFLLEVBQUM7TUFBTSxHQUFDLE1BRTlDLENBQ2pCLENBQUM7TUFKTzFDLFNBQVMsR0FBQTJDLFNBQUEsQ0FBVDNDLFNBQVM7SUFLakJILE1BQU0sQ0FBQ0csU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7RUFDL0MsQ0FBQyxDQUFDO0VBRUZWLEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxZQUFNO0lBQ2pELElBQU1vRCxRQUFRLEdBQUc5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLElBQUFpRCxTQUFBLEdBQXNCLElBQUF0RCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUVBLFFBQVM7UUFBQ0MsSUFBSSxFQUFDLFFBQVE7UUFBQ0MsS0FBSyxFQUFDO01BQVEsR0FBQyxHQUVqRCxDQUNqQixDQUFDO01BSk8xQyxTQUFTLEdBQUE0QyxTQUFBLENBQVQ1QyxTQUFTO0lBS2pCRSxpQkFBUyxDQUFDQyxTQUFTLENBQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQ0gsTUFBTSxDQUFDMkMsUUFBUSxDQUFDLENBQUNLLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztFQUNqRCxDQUFDLENBQUM7RUFFRnpELEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxZQUFNO0lBQ3pDLElBQU1vRCxRQUFRLEdBQUc5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLElBQUFtRCxTQUFBLEdBQXNCLElBQUF4RCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUVBLFFBQVM7UUFBQ0MsSUFBSSxFQUFDLE1BQU07UUFBQ0MsS0FBSyxFQUFDO01BQU0sR0FBQyxHQUU3QyxDQUNqQixDQUFDO01BSk8xQyxTQUFTLEdBQUE4QyxTQUFBLENBQVQ5QyxTQUFTO0lBS2pCLElBQU1NLE1BQU0sR0FBR04sU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUM3QixJQUFNTyxLQUFLLEdBQUcsSUFBSUMsVUFBVSxDQUFDLFdBQVcsRUFBRTtNQUFFQyxPQUFPLEVBQUUsSUFBSTtNQUFFQyxVQUFVLEVBQUU7SUFBSyxDQUFDLENBQUM7SUFDOUUsSUFBTUMsaUJBQWlCLEdBQUdqQixJQUFJLENBQUNrQixLQUFLLENBQUNMLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztJQUM3REQsTUFBTSxDQUFDTyxhQUFhLENBQUNOLEtBQUssQ0FBQztJQUMzQlYsTUFBTSxDQUFDYyxpQkFBaUIsQ0FBQyxDQUFDUCxnQkFBZ0IsQ0FBQyxDQUFDO0VBQzlDLENBQUMsQ0FBQztFQUVGaEIsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLFlBQU07SUFDNUMsSUFBTW9ELFFBQVEsR0FBRzlDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDMUIsSUFBQW9ELFNBQUEsR0FBc0IsSUFBQXpELGNBQU0sZUFDMUJSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxlQUFBLENBQUFxRCxhQUFhO1FBQUNDLFFBQVEsRUFBRUEsUUFBUztRQUFDQyxJQUFJLEVBQUMsV0FBVztRQUFDQyxLQUFLLEVBQUM7TUFBVyxHQUFDLEdBRXZELENBQ2pCLENBQUM7TUFKTzFDLFNBQVMsR0FBQStDLFNBQUEsQ0FBVC9DLFNBQVM7SUFLakJFLGlCQUFTLENBQUNhLE9BQU8sQ0FBQ2YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQUVnQixHQUFHLEVBQUU7SUFBUSxDQUFDLENBQUM7SUFDbkRuQixNQUFNLENBQUMyQyxRQUFRLENBQUMsQ0FBQ0ssb0JBQW9CLENBQUMsV0FBVyxDQUFDO0VBQ3BELENBQUMsQ0FBQztFQUVGekQsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLFlBQU07SUFDNUMsSUFBTW9ELFFBQVEsR0FBRzlDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDMUIsSUFBQXFELFNBQUEsR0FBc0IsSUFBQTFELGNBQU0sZUFDMUJSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxlQUFBLENBQUFxRCxhQUFhO1FBQUNDLFFBQVEsRUFBRUEsUUFBUztRQUFDQyxJQUFJLEVBQUMsUUFBUTtRQUFDQyxLQUFLLEVBQUM7TUFBUSxHQUFDLEdBRWpELENBQ2pCLENBQUM7TUFKTzFDLFNBQVMsR0FBQWdELFNBQUEsQ0FBVGhELFNBQVM7SUFLakJFLGlCQUFTLENBQUNhLE9BQU8sQ0FBQ2YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQUVnQixHQUFHLEVBQUU7SUFBSSxDQUFDLENBQUM7SUFDL0NuQixNQUFNLENBQUMyQyxRQUFRLENBQUMsQ0FBQ0ssb0JBQW9CLENBQUMsUUFBUSxDQUFDO0VBQ2pELENBQUMsQ0FBQztFQUVGekQsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLFlBQU07SUFDcEQsSUFBTW9ELFFBQVEsR0FBRzlDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7SUFDMUIsSUFBQXNELFNBQUEsR0FBc0IsSUFBQTNELGNBQU0sZUFDMUJSLE1BQUEsWUFBQVMsYUFBQSxDQUFDTCxlQUFBLENBQUFxRCxhQUFhO1FBQUNDLFFBQVEsRUFBRUEsUUFBUztRQUFDQyxJQUFJLEVBQUMsTUFBTTtRQUFDQyxLQUFLLEVBQUM7TUFBTSxHQUFDLEdBRTdDLENBQ2pCLENBQUM7TUFKTzFDLFNBQVMsR0FBQWlELFNBQUEsQ0FBVGpELFNBQVM7SUFLakJFLGlCQUFTLENBQUNhLE9BQU8sQ0FBQ2YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQUVnQixHQUFHLEVBQUU7SUFBSSxDQUFDLENBQUM7SUFDL0NuQixNQUFNLENBQUMyQyxRQUFRLENBQUMsQ0FBQ3JCLEdBQUcsQ0FBQ2YsZ0JBQWdCLENBQUMsQ0FBQztFQUN6QyxDQUFDLENBQUM7RUFFRmhCLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxZQUFNO0lBQ25ELElBQUE4RCxTQUFBLEdBQXNCLElBQUE1RCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUU5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFFO1FBQUM4QyxJQUFJLEVBQUMsTUFBTTtRQUFDQyxLQUFLLEVBQUMsTUFBTTtRQUFDckIsTUFBTSxFQUFFO01BQUssR0FBQyxHQUU1RCxDQUNqQixDQUFDO01BSk9yQixTQUFTLEdBQUFrRCxTQUFBLENBQVRsRCxTQUFTO0lBS2pCLElBQU1NLE1BQU0sR0FBR04sU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUM3QkgsTUFBTSxDQUFDUyxNQUFNLENBQUMsQ0FBQ2dCLFdBQVcsQ0FBQztNQUFFQyxLQUFLLEVBQUU7SUFBUSxDQUFDLENBQUM7RUFDaEQsQ0FBQyxDQUFDO0VBRUZuQyxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsWUFBTTtJQUN6QyxJQUFBK0QsU0FBQSxHQUEyQixJQUFBN0QsY0FBTSxlQUMvQlIsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQXFELGFBQWE7UUFBQ0MsUUFBUSxFQUFFOUMsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBRTtRQUFDOEMsSUFBSSxFQUFDLE1BQU07UUFBQ0MsS0FBSyxFQUFDO01BQWEsR0FBQyxHQUVyRCxDQUNqQixDQUFDO01BSk9WLGNBQWMsR0FBQW1CLFNBQUEsQ0FBZG5CLGNBQWM7SUFLdEJuQyxNQUFNLENBQUNtQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQ2xDLGlCQUFpQixDQUFDLENBQUM7RUFDM0QsQ0FBQyxDQUFDO0VBRUZWLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxZQUFNO0lBQ3JDLElBQUFnRSxTQUFBLEdBQXNCLElBQUE5RCxjQUFNLGVBQzFCUixNQUFBLFlBQUFTLGFBQUEsQ0FBQ0wsZUFBQSxDQUFBcUQsYUFBYTtRQUFDQyxRQUFRLEVBQUU5QyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFFO1FBQUM4QyxJQUFJLEVBQUMsTUFBTTtRQUFDQyxLQUFLLEVBQUMsTUFBTTtRQUFDckIsTUFBTSxFQUFFO01BQUssR0FBQyxHQUU1RCxDQUNqQixDQUFDO01BSk9yQixTQUFTLEdBQUFvRCxTQUFBLENBQVRwRCxTQUFTO0lBS2pCSCxNQUFNLENBQUNHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDa0MsZUFBZSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUM7RUFDaEUsQ0FBQyxDQUFDO0VBRUY5QyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtJQUNyQyxJQUFBaUUsU0FBQSxHQUFzQixJQUFBL0QsY0FBTSxlQUMxQlIsTUFBQSxZQUFBUyxhQUFBLENBQUNMLGVBQUEsQ0FBQXFELGFBQWE7UUFBQ0MsUUFBUSxFQUFFOUMsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBRTtRQUFDOEMsSUFBSSxFQUFDLE1BQU07UUFBQ0MsS0FBSyxFQUFDO01BQU0sR0FBQyxHQUU5QyxDQUNqQixDQUFDO01BSk8xQyxTQUFTLEdBQUFxRCxTQUFBLENBQVRyRCxTQUFTO0lBS2pCSCxNQUFNLENBQUNHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDa0MsZUFBZSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUM7RUFDekQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYvQyxRQUFRLENBQUMsWUFBWSxFQUFFLFlBQU07RUFDM0JDLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxZQUFNO0lBQ3ZDUyxNQUFNLENBQUN5RCwwQkFBVSxDQUFDLENBQUNqQixJQUFJLENBQUNFLDZCQUFhLENBQUM7RUFDeEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
293
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfcmVuZGVyVWkiLCJfdG9vbGJhckJ1dHRvbnMiLCJkZWNsYXJlZENvbG9yIiwiZWwiLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmbGF0TWFwIiwidGFnIiwiX3RhZyRzaGVldCIsInNoZWV0IiwiY3NzUnVsZXMiLCJmaWx0ZXIiLCJydWxlIiwiY2xhc3NMaXN0Iiwic29tZSIsImMiLCJfcnVsZSRzZWxlY3RvclRleHQiLCJzZWxlY3RvclRleHQiLCJpbmNsdWRlcyIsImNvbmNhdCIsIm1hcCIsIl9ydWxlJHN0eWxlIiwic3R5bGUiLCJjb2xvciIsImZpbmQiLCJCb29sZWFuIiwiZGVzY3JpYmUiLCJpdCIsIl9yZW5kZXIiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiUmF3QnV0dG9uIiwib25DbGljayIsImplc3QiLCJmbiIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlcjIiLCJnZXRCeVRleHQiLCJfcmVuZGVyMyIsImZpcmVFdmVudCIsIm1vdXNlRG93biIsInRvSGF2ZUJlZW5DYWxsZWQiLCJfcmVuZGVyNCIsImJ1dHRvbiIsImV2ZW50IiwiTW91c2VFdmVudCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwicHJldmVudERlZmF1bHRTcHkiLCJzcHlPbiIsImRpc3BhdGNoRXZlbnQiLCJfcmVuZGVyNSIsImtleURvd24iLCJrZXkiLCJfcmVuZGVyNiIsIl9yZW5kZXI3Iiwibm90IiwiX3JlbmRlcjgiLCJhY3RpdmUiLCJ0b0JlIiwidGV4dCIsIl9yZW5kZXI5IiwiZGlzYWJsZWQiLCJ0b0hhdmVTdHlsZSIsImN1cnNvciIsImV4dHJhU3R5bGVzIiwiYmFja2dyb3VuZENvbG9yIiwiX3JlbmRlcjAiLCJfcmVuZGVyMSIsImFyaWFMYWJlbCIsImdldEJ5TGFiZWxUZXh0IiwiX3JlbmRlcjEwIiwidG9IYXZlQXR0cmlidXRlIiwiX3JlbmRlcjExIiwiQnV0dG9uIiwiX3JlbmRlcjEyIiwiUmF3TWFya0J1dHRvbiIsIm9uVG9nZ2xlIiwibWFyayIsImxhYmVsIiwiX3JlbmRlcjEzIiwiX3JlbmRlcjE0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJfcmVuZGVyMTUiLCJfcmVuZGVyMTYiLCJfcmVuZGVyMTciLCJfcmVuZGVyMTgiLCJfcmVuZGVyMTkiLCJfcmVuZGVyMjAiLCJfcmVuZGVyMjEiLCJfcmVuZGVyMjIiLCJNYXJrQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvX190ZXN0c19fL3Rvb2xiYXItYnV0dG9ucy50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IEJ1dHRvbiwgTWFya0J1dHRvbiwgUmF3QnV0dG9uLCBSYXdNYXJrQnV0dG9uIH0gZnJvbSAnLi4vY29tbW9uL3Rvb2xiYXItYnV0dG9ucyc7XG5cbi8qXG4gKiBqc2RvbSBkb2VzIG5vdCByZXNvbHZlIGN1c3RvbSBwcm9wZXJ0aWVzLCBzbyB0b0hhdmVTdHlsZSgpIG5vcm1hbGlzZXMgYHZhcigtLXgsIHkpYFxuICogdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgY2Fubm90IGNvbXBhcmUgaXQuIFRoZXNlIGJ1dHRvbnMgbm93IHRha2UgdGhlaXIgaW5rIGZyb21cbiAqIGAtLXBpZS10ZXh0YCwgc28gYXNzZXJ0IGFnYWluc3QgdGhlIHJ1bGUgZW1vdGlvbiBlbWl0dGVkIGZvciB0aGUgZWxlbWVudCdzIGNsYXNzLlxuICovXG5jb25zdCBkZWNsYXJlZENvbG9yID0gKGVsKSA9PlxuICBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykpXG4gICAgLmZsYXRNYXAoKHRhZykgPT4gQXJyYXkuZnJvbSh0YWcuc2hlZXQ/LmNzc1J1bGVzIHx8IFtdKSlcbiAgICAuZmlsdGVyKChydWxlKSA9PiBBcnJheS5mcm9tKGVsLmNsYXNzTGlzdCkuc29tZSgoYykgPT4gcnVsZS5zZWxlY3RvclRleHQ/LmluY2x1ZGVzKGAuJHtjfWApKSlcbiAgICAubWFwKChydWxlKSA9PiBydWxlLnN0eWxlPy5jb2xvcilcbiAgICAuZmluZChCb29sZWFuKTtcblxuZGVzY3JpYmUoJ1Jhd0J1dHRvbicsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfT5DbGljayBtZTwvUmF3QnV0dG9uPik7XG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY2hpbGRyZW4nLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0+VGVzdCBCdXR0b248L1Jhd0J1dHRvbj4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1Rlc3QgQnV0dG9uJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBvbkNsaWNrIG9uIG1vdXNlIGRvd24nLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxSYXdCdXR0b24gb25DbGljaz17b25DbGlja30+Q2xpY2s8L1Jhd0J1dHRvbj4pO1xuICAgIGZpcmVFdmVudC5tb3VzZURvd24oZ2V0QnlUZXh0KCdDbGljaycpKTtcbiAgICBleHBlY3Qob25DbGljaykudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgncHJldmVudHMgZGVmYXVsdCBvbiBtb3VzZSBkb3duJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9PkNsaWNrPC9SYXdCdXR0b24+KTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ0NsaWNrJyk7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0U3B5ID0gamVzdC5zcHlPbihldmVudCwgJ3ByZXZlbnREZWZhdWx0Jyk7XG4gICAgYnV0dG9uLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIGV4cGVjdChwcmV2ZW50RGVmYXVsdFNweSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnY2FsbHMgb25DbGljayBvbiBFbnRlciBrZXkgcHJlc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxSYXdCdXR0b24gb25DbGljaz17b25DbGlja30+Q2xpY2s8L1Jhd0J1dHRvbj4pO1xuICAgIGZpcmVFdmVudC5rZXlEb3duKGdldEJ5VGV4dCgnQ2xpY2snKSwgeyBrZXk6ICdFbnRlcicgfSk7XG4gICAgZXhwZWN0KG9uQ2xpY2spLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIG9uQ2xpY2sgb24gU3BhY2Uga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uQ2xpY2sgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2t9PkNsaWNrPC9SYXdCdXR0b24+KTtcbiAgICBmaXJlRXZlbnQua2V5RG93bihnZXRCeVRleHQoJ0NsaWNrJyksIHsga2V5OiAnICcgfSk7XG4gICAgZXhwZWN0KG9uQ2xpY2spLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IGNhbGwgb25DbGljayBvbiBvdGhlciBrZXkgcHJlc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25DbGljayA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxSYXdCdXR0b24gb25DbGljaz17b25DbGlja30+Q2xpY2s8L1Jhd0J1dHRvbj4pO1xuICAgIGZpcmVFdmVudC5rZXlEb3duKGdldEJ5VGV4dCgnQ2xpY2snKSwgeyBrZXk6ICdhJyB9KTtcbiAgICBleHBlY3Qob25DbGljaykubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgYWN0aXZlIHN0eWxlIHdoZW4gYWN0aXZlIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfSBhY3RpdmU9e3RydWV9PlxuICAgICAgICBBY3RpdmVcbiAgICAgIDwvUmF3QnV0dG9uPixcbiAgICApO1xuICAgIGNvbnN0IGJ1dHRvbiA9IGdldEJ5VGV4dCgnQWN0aXZlJyk7XG4gICAgZXhwZWN0KGRlY2xhcmVkQ29sb3IoYnV0dG9uKSkudG9CZShjb2xvci50ZXh0KCkpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBkaXNhYmxlZCBzdHlsZSB3aGVuIGRpc2FibGVkIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfSBkaXNhYmxlZD17dHJ1ZX0+XG4gICAgICAgIERpc2FibGVkXG4gICAgICA8L1Jhd0J1dHRvbj4sXG4gICAgKTtcbiAgICBjb25zdCBidXR0b24gPSBnZXRCeVRleHQoJ0Rpc2FibGVkJyk7XG4gICAgZXhwZWN0KGJ1dHRvbikudG9IYXZlU3R5bGUoeyBjdXJzb3I6ICdub3QtYWxsb3dlZCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdhcHBsaWVzIGV4dHJhU3R5bGVzIHdoZW4gcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgZXh0cmFTdHlsZXMgPSB7IGJhY2tncm91bmRDb2xvcjogJ3JlZCcgfTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd0J1dHRvbiBvbkNsaWNrPXtqZXN0LmZuKCl9IGV4dHJhU3R5bGVzPXtleHRyYVN0eWxlc30+XG4gICAgICAgIFN0eWxlZFxuICAgICAgPC9SYXdCdXR0b24+LFxuICAgICk7XG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnlUZXh0KCdTdHlsZWQnKTtcbiAgICBleHBlY3QoYnV0dG9uKS50b0hhdmVTdHlsZSh7IGJhY2tncm91bmRDb2xvcjogJ3JlZCcgfSk7XG4gIH0pO1xuXG4gIGl0KCdoYXMgYXJpYS1sYWJlbCB3aGVuIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdCdXR0b24gb25DbGljaz17amVzdC5mbigpfSBhcmlhTGFiZWw9XCJUZXN0IEJ1dHRvblwiPlxuICAgICAgICBCdXR0b25cbiAgICAgIDwvUmF3QnV0dG9uPixcbiAgICApO1xuICAgIGV4cGVjdChnZXRCeUxhYmVsVGV4dCgnVGVzdCBCdXR0b24nKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhcyBhcmlhLXByZXNzZWQgYXR0cmlidXRlJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0gYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgQnV0dG9uXG4gICAgICA8L1Jhd0J1dHRvbj4sXG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdCdXR0b24nKSkudG9IYXZlQXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICB9KTtcblxuICBpdCgnaXMgZm9jdXNhYmxlIHdpdGggdGFiSW5kZXgnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8UmF3QnV0dG9uIG9uQ2xpY2s9e2plc3QuZm4oKX0+QnV0dG9uPC9SYXdCdXR0b24+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdCdXR0b24nKSkudG9IYXZlQXR0cmlidXRlKCd0YWJJbmRleCcsICcwJyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdCdXR0b24nLCAoKSA9PiB7XG4gIGl0KCdpcyB0aGUgc2FtZSBhcyBSYXdCdXR0b24nLCAoKSA9PiB7XG4gICAgZXhwZWN0KEJ1dHRvbikudG9CZShSYXdCdXR0b24pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnUmF3TWFya0J1dHRvbicsICgpID0+IHtcbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKFxuICAgICAgPFJhd01hcmtCdXR0b24gb25Ub2dnbGU9e2plc3QuZm4oKX0gbWFyaz1cImJvbGRcIiBsYWJlbD1cIkJvbGRcIj5cbiAgICAgICAgQlxuICAgICAgPC9SYXdNYXJrQnV0dG9uPixcbiAgICApO1xuICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdyZW5kZXJzIGNoaWxkcmVuJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17amVzdC5mbigpfSBtYXJrPVwiYm9sZFwiIGxhYmVsPVwiQm9sZFwiPlxuICAgICAgICBCb2xkXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnQm9sZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnY2FsbHMgb25Ub2dnbGUgd2l0aCBtYXJrIG9uIG1vdXNlIGRvd24nLCAoKSA9PiB7XG4gICAgY29uc3Qgb25Ub2dnbGUgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtvblRvZ2dsZX0gbWFyaz1cIml0YWxpY1wiIGxhYmVsPVwiSXRhbGljXCI+XG4gICAgICAgIElcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBmaXJlRXZlbnQubW91c2VEb3duKGdldEJ5VGV4dCgnSScpKTtcbiAgICBleHBlY3Qob25Ub2dnbGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdpdGFsaWMnKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZXZlbnRzIGRlZmF1bHQgb24gbW91c2UgZG93bicsICgpID0+IHtcbiAgICBjb25zdCBvblRvZ2dsZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd01hcmtCdXR0b24gb25Ub2dnbGU9e29uVG9nZ2xlfSBtYXJrPVwiYm9sZFwiIGxhYmVsPVwiQm9sZFwiPlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnlUZXh0KCdCJyk7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnbW91c2Vkb3duJywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xuICAgIGNvbnN0IHByZXZlbnREZWZhdWx0U3B5ID0gamVzdC5zcHlPbihldmVudCwgJ3ByZXZlbnREZWZhdWx0Jyk7XG4gICAgYnV0dG9uLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIGV4cGVjdChwcmV2ZW50RGVmYXVsdFNweSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnY2FsbHMgb25Ub2dnbGUgb24gRW50ZXIga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17b25Ub2dnbGV9IG1hcms9XCJ1bmRlcmxpbmVcIiBsYWJlbD1cIlVuZGVybGluZVwiPlxuICAgICAgICBVXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZmlyZUV2ZW50LmtleURvd24oZ2V0QnlUZXh0KCdVJyksIHsga2V5OiAnRW50ZXInIH0pO1xuICAgIGV4cGVjdChvblRvZ2dsZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3VuZGVybGluZScpO1xuICB9KTtcblxuICBpdCgnY2FsbHMgb25Ub2dnbGUgb24gU3BhY2Uga2V5IHByZXNzJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uVG9nZ2xlID0gamVzdC5mbigpO1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoXG4gICAgICA8UmF3TWFya0J1dHRvbiBvblRvZ2dsZT17b25Ub2dnbGV9IG1hcms9XCJzdHJpa2VcIiBsYWJlbD1cIlN0cmlrZVwiPlxuICAgICAgICBTXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZmlyZUV2ZW50LmtleURvd24oZ2V0QnlUZXh0KCdTJyksIHsga2V5OiAnICcgfSk7XG4gICAgZXhwZWN0KG9uVG9nZ2xlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnc3RyaWtlJyk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCBjYWxsIG9uVG9nZ2xlIG9uIG90aGVyIGtleSBwcmVzcycsICgpID0+IHtcbiAgICBjb25zdCBvblRvZ2dsZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd01hcmtCdXR0b24gb25Ub2dnbGU9e29uVG9nZ2xlfSBtYXJrPVwiYm9sZFwiIGxhYmVsPVwiQm9sZFwiPlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZmlyZUV2ZW50LmtleURvd24oZ2V0QnlUZXh0KCdCJyksIHsga2V5OiAnYScgfSk7XG4gICAgZXhwZWN0KG9uVG9nZ2xlKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnYXBwbGllcyBhY3RpdmUgc3R5bGUgd2hlbiBhY3RpdmUgaXMgdHJ1ZScsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKFxuICAgICAgPFJhd01hcmtCdXR0b24gb25Ub2dnbGU9e2plc3QuZm4oKX0gbWFyaz1cImJvbGRcIiBsYWJlbD1cIkJvbGRcIiBhY3RpdmU9e3RydWV9PlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgY29uc3QgYnV0dG9uID0gZ2V0QnlUZXh0KCdCJyk7XG4gICAgZXhwZWN0KGRlY2xhcmVkQ29sb3IoYnV0dG9uKSkudG9CZShjb2xvci50ZXh0KCkpO1xuICB9KTtcblxuICBpdCgnaGFzIGFyaWEtbGFiZWwgZnJvbSBsYWJlbCBwcm9wJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlMYWJlbFRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJUb2dnbGUgQm9sZFwiPlxuICAgICAgICBCXG4gICAgICA8L1Jhd01hcmtCdXR0b24+LFxuICAgICk7XG4gICAgZXhwZWN0KGdldEJ5TGFiZWxUZXh0KCdUb2dnbGUgQm9sZCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFzIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCIgYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgQlxuICAgICAgPC9SYXdNYXJrQnV0dG9uPixcbiAgICApO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ0InKSkudG9IYXZlQXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCAndHJ1ZScpO1xuICB9KTtcblxuICBpdCgnaXMgZm9jdXNhYmxlIHdpdGggdGFiSW5kZXgnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcihcbiAgICAgIDxSYXdNYXJrQnV0dG9uIG9uVG9nZ2xlPXtqZXN0LmZuKCl9IG1hcms9XCJib2xkXCIgbGFiZWw9XCJCb2xkXCI+XG4gICAgICAgIEJcbiAgICAgIDwvUmF3TWFya0J1dHRvbj4sXG4gICAgKTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdCJykpLnRvSGF2ZUF0dHJpYnV0ZSgndGFiSW5kZXgnLCAnMCcpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnTWFya0J1dHRvbicsICgpID0+IHtcbiAgaXQoJ2lzIHRoZSBzYW1lIGFzIFJhd01hcmtCdXR0b24nLCAoKSA9PiB7XG4gICAgZXhwZWN0KE1hcmtCdXR0b24pLnRvQmUoUmF3TWFya0J1dHRvbik7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUgsT0FBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNSSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlDLEVBQUU7RUFBQSxPQUN2QkMsS0FBSyxDQUFDQyxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDM0NDLE9BQU8sQ0FBQyxV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
@@ -22,7 +22,7 @@ jest.mock('@tiptap/react', function () {
22
22
  }
23
23
  };
24
24
  });
25
- jest.mock('@pie-lib/math-input-mathlive', function () {
25
+ jest.mock('@pie-lib/math-input', function () {
26
26
  return {
27
27
  mq: {
28
28
  Static: function Static(_ref2) {
@@ -214,4 +214,4 @@ describe('MathTemplated', function () {
214
214
  expect(mqStatic).toHaveAttribute('data-latex', '\\sqrt{x^2 + y^2}');
215
215
  });
216
216
  });
217
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWF0aFRlbXBsYXRlZCIsIl9leGNsdWRlZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJOb2RlVmlld1dyYXBwZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwibXEiLCJTdGF0aWMiLCJfcmVmMiIsImxhdGV4IiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJub2RlIiwiYXR0cnMiLCJ2YWx1ZSIsImluZGV4Iiwib3B0aW9ucyIsInNlbGVjdGVkIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImdldEJ5VGVzdElkIiwid3JhcHBlciIsInRvSGF2ZUNsYXNzIiwiX3JlbmRlcjMiLCJnZXRCeVRleHQiLCJfcmVuZGVyNCIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiLCJtcVN0YXRpYyIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9yZW5kZXI3IiwiX3JlbmRlcjgiLCJfcmVuZGVyOSIsIl9yZW5kZXIwIiwidG9IYXZlU3R5bGUiLCJkaXNwbGF5IiwibWluSGVpZ2h0IiwibWluV2lkdGgiLCJjdXJzb3IiLCJfcmVuZGVyMSIsIl9yZW5kZXIxMCIsIl9yZW5kZXIxMSIsInF1ZXJ5U2VsZWN0b3IiLCJfcmVuZGVyMTIiLCJfcmVuZGVyMTMiLCJfcmVuZGVyMTQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZXNwQXJlYS9fX3Rlc3RzX18vTWF0aFRlbXBsYXRlZC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgTWF0aFRlbXBsYXRlZCBmcm9tICcuLi9NYXRoVGVtcGxhdGVkJztcblxuLy8gTW9jayB0aGUgZGVwZW5kZW5jaWVzXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBOb2RlVmlld1dyYXBwZXI6ICh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCIgey4uLnByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLWlucHV0LW1hdGhsaXZlJywgKCkgPT4gKHtcbiAgbXE6IHtcbiAgICBTdGF0aWM6ICh7IGxhdGV4IH0pID0+IChcbiAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJtcS1zdGF0aWNcIiBkYXRhLWxhdGV4PXtsYXRleH0+XG4gICAgICAgIHtsYXRleH1cbiAgICAgIDwvZGl2PlxuICAgICksXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdNYXRoVGVtcGxhdGVkJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbm9kZToge1xuICAgICAgYXR0cnM6IHtcbiAgICAgICAgdmFsdWU6ICd4XjIgKyB5XjIgPSByXjInLFxuICAgICAgICBpbmRleDogMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpb25zOiB7fSxcbiAgICBzZWxlY3RlZDogZmFsc2UsXG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBOb2RlVmlld1dyYXBwZXIgd2l0aCBjb3JyZWN0IGNsYXNzTmFtZScsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHdyYXBwZXIgPSBnZXRCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKTtcbiAgICBleHBlY3Qod3JhcHBlcikudG9IYXZlQ2xhc3MoJ21hdGgtdGVtcGxhdGVkJyk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBjb3JyZWN0IHJlc3BvbnNlIGtleSBmb3IgaW5kZXggMCcsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2Rpc3BsYXlzIGNvcnJlY3QgcmVzcG9uc2Uga2V5IGZvciBpbmRleCAxJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAnYSArIGInLFxuICAgICAgICAgIGluZGV4OiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnUiAyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBjb3JyZWN0IHJlc3BvbnNlIGtleSBmb3IgaW5kZXggNScsICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG5vZGU6IHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICB2YWx1ZTogJ2MgPSBkJyxcbiAgICAgICAgICBpbmRleDogNSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1IgNicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBMYVRlWCB2YWx1ZSBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBtcVN0YXRpYyA9IGdldEJ5VGVzdElkKCdtcS1zdGF0aWMnKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvSGF2ZUF0dHJpYnV0ZSgnZGF0YS1sYXRleCcsICd4XjIgKyB5XjIgPSByXjInKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgZGlmZmVyZW50IExhVGVYIHZhbHVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAnXFxcXGZyYWN7YX17Yn0nLFxuICAgICAgICAgIGluZGV4OiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4ucHJvcHN9IC8+KTtcbiAgICBjb25zdCBtcVN0YXRpYyA9IGdldEJ5VGVzdElkKCdtcS1zdGF0aWMnKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvSGF2ZUF0dHJpYnV0ZSgnZGF0YS1sYXRleCcsICdcXFxcZnJhY3thfXtifScpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIHNlbGVjdGVkIHByb3AgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIGZhbHNlIHNlbGVjdGVkIHByb3AgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtc2VsZWN0ZWQnLCAnZmFsc2UnKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgY29ycmVjdCBpbmxpbmUgc3R5bGVzIHRvIE5vZGVWaWV3V3JhcHBlcicsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHdyYXBwZXIgPSBnZXRCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKTtcbiAgICBleHBlY3Qod3JhcHBlcikudG9IYXZlU3R5bGUoe1xuICAgICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICAgIG1pbkhlaWdodDogJzM2cHgnLFxuICAgICAgbWluV2lkdGg6ICc1MHB4JyxcbiAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBzdHJpbmcgaW5kZXggY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAndGVzdCcsXG4gICAgICAgICAgaW5kZXg6ICczJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1IgNCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBlbXB0eSB2YWx1ZScsICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG5vZGU6IHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGNvbnN0IG1xU3RhdGljID0gZ2V0QnlUZXN0SWQoJ21xLXN0YXRpYycpO1xuICAgIGV4cGVjdChtcVN0YXRpYykudG9IYXZlQXR0cmlidXRlKCdkYXRhLWxhdGV4JywgJycpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBhbGwgc3R5bGVkIGNvbXBvbmVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgIC8vIENoZWNrIGZvciByZXNwb25zZSBib3hcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgIC8vIENoZWNrIGZvciBtYXRoIGJsb2NrIHdpdGggTGFUZVhcbiAgICBjb25zdCBtcVN0YXRpYyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJtcS1zdGF0aWNcIl0nKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYW5kbGVzIHplcm8gaW5kZXgnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBub2RlOiB7XG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgdmFsdWU6ICd4ID0gMCcsXG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4ucHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgbGFyZ2UgaW5kZXggdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAneCA9IDEwMCcsXG4gICAgICAgICAgaW5kZXg6IDk5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnUiAxMDAnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBjb21wbGV4IExhVGVYIGV4cHJlc3Npb24nLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBub2RlOiB7XG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgdmFsdWU6ICdcXFxcc3FydHt4XjIgKyB5XjJ9JyxcbiAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgY29uc3QgbXFTdGF0aWMgPSBnZXRCeVRlc3RJZCgnbXEtc3RhdGljJyk7XG4gICAgZXhwZWN0KG1xU3RhdGljKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtbGF0ZXgnLCAnXFxcXHNxcnR7eF4yICsgeV4yfScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBNkMsSUFBQUcsU0FBQTtBQUFBLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFB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
217
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfTWF0aFRlbXBsYXRlZCIsIl9leGNsdWRlZCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJOb2RlVmlld1dyYXBwZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwibXEiLCJTdGF0aWMiLCJfcmVmMiIsImxhdGV4IiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJub2RlIiwiYXR0cnMiLCJ2YWx1ZSIsImluZGV4Iiwib3B0aW9ucyIsInNlbGVjdGVkIiwiaXQiLCJfcmVuZGVyIiwicmVuZGVyIiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJfcmVuZGVyMiIsImdldEJ5VGVzdElkIiwid3JhcHBlciIsInRvSGF2ZUNsYXNzIiwiX3JlbmRlcjMiLCJnZXRCeVRleHQiLCJfcmVuZGVyNCIsIl9yZW5kZXI1IiwiX3JlbmRlcjYiLCJtcVN0YXRpYyIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9yZW5kZXI3IiwiX3JlbmRlcjgiLCJfcmVuZGVyOSIsIl9yZW5kZXIwIiwidG9IYXZlU3R5bGUiLCJkaXNwbGF5IiwibWluSGVpZ2h0IiwibWluV2lkdGgiLCJjdXJzb3IiLCJfcmVuZGVyMSIsIl9yZW5kZXIxMCIsIl9yZW5kZXIxMSIsInF1ZXJ5U2VsZWN0b3IiLCJfcmVuZGVyMTIiLCJfcmVuZGVyMTMiLCJfcmVuZGVyMTQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9yZXNwQXJlYS9fX3Rlc3RzX18vTWF0aFRlbXBsYXRlZC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgTWF0aFRlbXBsYXRlZCBmcm9tICcuLi9NYXRoVGVtcGxhdGVkJztcblxuLy8gTW9jayB0aGUgZGVwZW5kZW5jaWVzXG5qZXN0Lm1vY2soJ0B0aXB0YXAvcmVhY3QnLCAoKSA9PiAoe1xuICBOb2RlVmlld1dyYXBwZXI6ICh7IGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cIm5vZGUtdmlldy13cmFwcGVyXCIgey4uLnByb3BzfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLWlucHV0JywgKCkgPT4gKHtcbiAgbXE6IHtcbiAgICBTdGF0aWM6ICh7IGxhdGV4IH0pID0+IChcbiAgICAgIDxkaXYgZGF0YS10ZXN0aWQ9XCJtcS1zdGF0aWNcIiBkYXRhLWxhdGV4PXtsYXRleH0+XG4gICAgICAgIHtsYXRleH1cbiAgICAgIDwvZGl2PlxuICAgICksXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdNYXRoVGVtcGxhdGVkJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbm9kZToge1xuICAgICAgYXR0cnM6IHtcbiAgICAgICAgdmFsdWU6ICd4XjIgKyB5XjIgPSByXjInLFxuICAgICAgICBpbmRleDogMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpb25zOiB7fSxcbiAgICBzZWxlY3RlZDogZmFsc2UsXG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBOb2RlVmlld1dyYXBwZXIgd2l0aCBjb3JyZWN0IGNsYXNzTmFtZScsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHdyYXBwZXIgPSBnZXRCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKTtcbiAgICBleHBlY3Qod3JhcHBlcikudG9IYXZlQ2xhc3MoJ21hdGgtdGVtcGxhdGVkJyk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBjb3JyZWN0IHJlc3BvbnNlIGtleSBmb3IgaW5kZXggMCcsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2Rpc3BsYXlzIGNvcnJlY3QgcmVzcG9uc2Uga2V5IGZvciBpbmRleCAxJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAnYSArIGInLFxuICAgICAgICAgIGluZGV4OiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnUiAyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdkaXNwbGF5cyBjb3JyZWN0IHJlc3BvbnNlIGtleSBmb3IgaW5kZXggNScsICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG5vZGU6IHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICB2YWx1ZTogJ2MgPSBkJyxcbiAgICAgICAgICBpbmRleDogNSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1IgNicpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBMYVRlWCB2YWx1ZSBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICBjb25zdCBtcVN0YXRpYyA9IGdldEJ5VGVzdElkKCdtcS1zdGF0aWMnKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvSGF2ZUF0dHJpYnV0ZSgnZGF0YS1sYXRleCcsICd4XjIgKyB5XjIgPSByXjInKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgZGlmZmVyZW50IExhVGVYIHZhbHVlJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAnXFxcXGZyYWN7YX17Yn0nLFxuICAgICAgICAgIGluZGV4OiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4ucHJvcHN9IC8+KTtcbiAgICBjb25zdCBtcVN0YXRpYyA9IGdldEJ5VGVzdElkKCdtcS1zdGF0aWMnKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvSGF2ZUF0dHJpYnV0ZSgnZGF0YS1sYXRleCcsICdcXFxcZnJhY3thfXtifScpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIHNlbGVjdGVkIHByb3AgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtc2VsZWN0ZWQnLCAndHJ1ZScpO1xuICB9KTtcblxuICBpdCgncGFzc2VzIGZhbHNlIHNlbGVjdGVkIHByb3AgdG8gTm9kZVZpZXdXcmFwcGVyJywgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2V0QnlUZXN0SWQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgY29uc3Qgd3JhcHBlciA9IGdldEJ5VGVzdElkKCdub2RlLXZpZXctd3JhcHBlcicpO1xuICAgIGV4cGVjdCh3cmFwcGVyKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtc2VsZWN0ZWQnLCAnZmFsc2UnKTtcbiAgfSk7XG5cbiAgaXQoJ2FwcGxpZXMgY29ycmVjdCBpbmxpbmUgc3R5bGVzIHRvIE5vZGVWaWV3V3JhcHBlcicsICgpID0+IHtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLmRlZmF1bHRQcm9wc30gLz4pO1xuICAgIGNvbnN0IHdyYXBwZXIgPSBnZXRCeVRlc3RJZCgnbm9kZS12aWV3LXdyYXBwZXInKTtcbiAgICBleHBlY3Qod3JhcHBlcikudG9IYXZlU3R5bGUoe1xuICAgICAgZGlzcGxheTogJ2lubGluZS1mbGV4JyxcbiAgICAgIG1pbkhlaWdodDogJzM2cHgnLFxuICAgICAgbWluV2lkdGg6ICc1MHB4JyxcbiAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBzdHJpbmcgaW5kZXggY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAndGVzdCcsXG4gICAgICAgICAgaW5kZXg6ICczJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGV4cGVjdChnZXRCeVRleHQoJ1IgNCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnaGFuZGxlcyBlbXB0eSB2YWx1ZScsICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG5vZGU6IHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgeyBnZXRCeVRlc3RJZCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5wcm9wc30gLz4pO1xuICAgIGNvbnN0IG1xU3RhdGljID0gZ2V0QnlUZXN0SWQoJ21xLXN0YXRpYycpO1xuICAgIGV4cGVjdChtcVN0YXRpYykudG9IYXZlQXR0cmlidXRlKCdkYXRhLWxhdGV4JywgJycpO1xuICB9KTtcblxuICBpdCgncmVuZGVycyBhbGwgc3R5bGVkIGNvbXBvbmVudHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBjb250YWluZXIsIGdldEJ5VGV4dCB9ID0gcmVuZGVyKDxNYXRoVGVtcGxhdGVkIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcblxuICAgIC8vIENoZWNrIGZvciByZXNwb25zZSBib3hcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcblxuICAgIC8vIENoZWNrIGZvciBtYXRoIGJsb2NrIHdpdGggTGFUZVhcbiAgICBjb25zdCBtcVN0YXRpYyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10ZXN0aWQ9XCJtcS1zdGF0aWNcIl0nKTtcbiAgICBleHBlY3QobXFTdGF0aWMpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gIH0pO1xuXG4gIGl0KCdoYW5kbGVzIHplcm8gaW5kZXgnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBub2RlOiB7XG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgdmFsdWU6ICd4ID0gMCcsXG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgeyBnZXRCeVRleHQgfSA9IHJlbmRlcig8TWF0aFRlbXBsYXRlZCB7Li4ucHJvcHN9IC8+KTtcbiAgICBleHBlY3QoZ2V0QnlUZXh0KCdSIDEnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ2hhbmRsZXMgbGFyZ2UgaW5kZXggdmFsdWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgbm9kZToge1xuICAgICAgICBhdHRyczoge1xuICAgICAgICAgIHZhbHVlOiAneCA9IDEwMCcsXG4gICAgICAgICAgaW5kZXg6IDk5LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHsgZ2V0QnlUZXh0IH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgZXhwZWN0KGdldEJ5VGV4dCgnUiAxMDAnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgd2l0aCBjb21wbGV4IExhVGVYIGV4cHJlc3Npb24nLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICBub2RlOiB7XG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgdmFsdWU6ICdcXFxcc3FydHt4XjIgKyB5XjJ9JyxcbiAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCB7IGdldEJ5VGVzdElkIH0gPSByZW5kZXIoPE1hdGhUZW1wbGF0ZWQgey4uLnByb3BzfSAvPik7XG4gICAgY29uc3QgbXFTdGF0aWMgPSBnZXRCeVRlc3RJZCgnbXEtc3RhdGljJyk7XG4gICAgZXhwZWN0KG1xU3RhdGljKS50b0hhdmVBdHRyaWJ1dGUoJ2RhdGEtbGF0ZXgnLCAnXFxcXHNxcnR7eF4yICsgeV4yfScpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFBNkMsSUFBQUcsU0FBQTtBQUFBLFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FB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