@pie-element/multiple-choice 12.0.0-beta.0 → 12.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,17 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [11.4.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@11.4.2...@pie-element/multiple-choice@11.4.3) (2025-11-27)
7
-
8
-
9
- ### Bug Fixes
10
-
11
- * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
-
13
-
14
-
15
-
16
-
17
6
  ## [11.4.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@11.4.1...@pie-element/multiple-choice@11.4.2) (2025-10-22)
18
7
 
19
8
 
@@ -3,17 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [8.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@8.3.2...@pie-element/multiple-choice-configure@8.3.3) (2025-11-27)
7
-
8
-
9
- ### Bug Fixes
10
-
11
- * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
-
13
-
14
-
15
-
16
-
17
6
  ## [8.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@8.3.1...@pie-element/multiple-choice-configure@8.3.2) (2025-10-22)
18
7
 
19
8
 
@@ -8,7 +8,7 @@ var _main = require("../main");
8
8
  var _defaults = _interopRequireDefault(require("../defaults"));
9
9
  var _configUi = require("@pie-lib/config-ui");
10
10
  var _index = _interopRequireDefault(require("../index"));
11
- jest.mock('@pie-lib/editable-html', () => props => /*#__PURE__*/_react2.default.createElement("div", {
11
+ jest.mock('@pie-lib/editable-html-tip-tap', () => props => /*#__PURE__*/_react2.default.createElement("div", {
12
12
  "data-testid": "editable-html"
13
13
  }, props.markup));
14
14
  jest.mock('@pie-lib/config-ui', () => ({
@@ -283,4 +283,4 @@ describe('Main', () => {
283
283
  });
284
284
  });
285
285
  });
286
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFpbiIsIl9kZWZhdWx0cyIsIl9jb25maWdVaSIsIl9pbmRleCIsImplc3QiLCJtb2NrIiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIm1hcmt1cCIsImNob2ljZVV0aWxzIiwiZmlyc3RBdmFpbGFibGVJbmRleCIsImZuIiwibm9ybWFsaXplQ2hvaWNlcyIsIm1vZGVsIiwic2V0dGluZ3MiLCJQYW5lbCIsIl9leHRlbmRzMiIsInRvZ2dsZSIsInJhZGlvIiwiZHJvcGRvd24iLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJjaGlsZHJlbiIsIklucHV0Q29udGFpbmVyIiwiQ2hvaWNlQ29uZmlndXJhdGlvbiIsIm9uQ2xpY2siLCJvbkRlbGV0ZSIsIm9uQ2hhbmdlIiwiZGF0YSIsIkFsZXJ0RGlhbG9nIiwib3BlbiIsInRleHQiLCJleHRyYXMiLCJkZWZhdWx0cyIsInByb21wdCIsImNob2ljZU1vZGUiLCJjaG9pY2VzIiwiY29ycmVjdCIsInZhbHVlIiwibGFiZWwiLCJmZWVkYmFjayIsInR5cGUiLCJwYXJ0aWFsU2NvcmluZyIsImNvbmZpZ3VyZSIsImRlc2NyaWJlIiwib25Nb2RlbENoYW5nZWQiLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwiaW5pdGlhbE1vZGVsIiwid3JhcHBlciIsImRlZmF1bHRQcm9wcyIsImNsYXNzZXMiLCJjb25maWd1cmF0aW9uIiwicmVuZGVyIiwiTWFpbiIsImNyZWF0ZUluc3RhbmNlIiwiaW5zdGFuY2UiLCJzZXRTdGF0ZSIsInN0YXRlIiwiY2FsbGJhY2siLCJPYmplY3QiLCJhc3NpZ24iLCJiZWZvcmVFYWNoIiwiaXQiLCJvblJlbW92ZUNob2ljZSIsImV4cGVjdCIsInRvQmVDYWxsZWRXaXRoIiwic2xpY2UiLCJtIiwiTXVsdGlwbGVDaG9pY2UiLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJ2ZXJ0aWNhbE1vZGUiLCJjaG9pY2VzTGF5b3V0IiwidW5kZWZpbmVkIiwidG9FcXVhbCIsIm9uQWRkQ2hvaWNlIiwidXRpbHMiLCJtYXAiLCJjIiwibmV3Q2hvaWNlcyIsImNob2ljZSIsIm9uQ2hvaWNlQ2hhbmdlZCIsIm5ld01vZGVsIiwib25Qcm9tcHRDaGFuZ2VkIiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJleHBlY3RlZENob2ljZXMiLCJmb3JFYWNoIiwiZUMiLCJpbmRleCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcm9vdC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IE1haW4gfSBmcm9tICcuLi9tYWluJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cyc7XG5pbXBvcnQgeyBjaG9pY2VVdGlscyBhcyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgTXVsdGlwbGVDaG9pY2UgZnJvbSAnLi4vaW5kZXgnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwnLCAoKSA9PiAocHJvcHMpID0+IChcbiAgPGRpdiBkYXRhLXRlc3RpZD1cImVkaXRhYmxlLWh0bWxcIj57cHJvcHMubWFya3VwfTwvZGl2PlxuKSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgY2hvaWNlVXRpbHM6IHtcbiAgICBmaXJzdEF2YWlsYWJsZUluZGV4OiBqZXN0LmZuKCksXG4gICAgbm9ybWFsaXplQ2hvaWNlczogamVzdC5mbigobW9kZWwpID0+IG1vZGVsKSxcbiAgfSxcbiAgc2V0dGluZ3M6IHtcbiAgICBQYW5lbDogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwic2V0dGluZ3MtcGFuZWxcIiB7Li4ucHJvcHN9IC8+LFxuICAgIHRvZ2dsZTogamVzdC5mbigpLFxuICAgIHJhZGlvOiBqZXN0LmZuKCksXG4gICAgZHJvcGRvd246IGplc3QuZm4oKSxcbiAgfSxcbiAgbGF5b3V0OiB7XG4gICAgQ29uZmlnTGF5b3V0OiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJjb25maWctbGF5b3V0XCI+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgfSxcbiAgSW5wdXRDb250YWluZXI6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImlucHV0LWNvbnRhaW5lclwiIHsuLi5wcm9wc30+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgQ2hvaWNlQ29uZmlndXJhdGlvbjogKHByb3BzKSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cImNob2ljZS1jb25maWd1cmF0aW9uXCI+XG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHByb3BzLm9uRGVsZXRlKCl9PkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vbkNoYW5nZShwcm9wcy5kYXRhKX0+Q2hhbmdlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICksXG4gIEFsZXJ0RGlhbG9nOiAocHJvcHMpID0+IHByb3BzLm9wZW4gPyA8ZGl2IGRhdGEtdGVzdGlkPVwiYWxlcnQtZGlhbG9nXCI+e3Byb3BzLnRleHR9PC9kaXY+IDogbnVsbCxcbn0pKTtcblxuY29uc3QgbW9kZWwgPSAoZXh0cmFzKSA9PiAoe1xuICAuLi5kZWZhdWx0cy5tb2RlbCxcbiAgcHJvbXB0OiAnV2hpY2ggb2YgdGhlc2Ugbm9ydGhlcm4gRXVyb3BlYW4gY291bnRyaWVzIGFyZSBFVSBtZW1iZXJzPycsXG4gIGNob2ljZU1vZGU6ICdjaGVja2JveCcsXG4gIGNob2ljZXM6IFtcbiAgICB7XG4gICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgdmFsdWU6ICdzd2VkZW4nLFxuICAgICAgbGFiZWw6ICdTd2VkZW4nLFxuICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICB2YWx1ZTogJycsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgdmFsdWU6ICdpY2VsYW5kJyxcbiAgICAgIGxhYmVsOiAnSWNlbGFuZCcsXG4gICAgICBmZWVkYmFjazoge1xuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ25vcndheScsXG4gICAgICBsYWJlbDogJ05vcndheScsXG4gICAgICBmZWVkYmFjazoge1xuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgdmFsdWU6ICdmaW5sYW5kJyxcbiAgICAgIGxhYmVsOiAnRmlubGFuZCcsXG4gICAgICBmZWVkYmFjazoge1xuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbiAgcGFydGlhbFNjb3Jpbmc6IGZhbHNlLFxuICBjb25maWd1cmU6IHt9LFxuICAuLi5leHRyYXMsXG59KTtcblxuZGVzY3JpYmUoJ01haW4nLCAoKSA9PiB7XG4gIGxldCBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ29uZmlndXJhdGlvbkNoYW5nZWQgPSBqZXN0LmZuKCk7XG4gIGxldCBpbml0aWFsTW9kZWwgPSBtb2RlbCgpO1xuXG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgICAgb25Nb2RlbENoYW5nZWQsXG4gICAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLFxuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogbW9kZWwoKSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IGRlZmF1bHRzLmNvbmZpZ3VyYXRpb24sXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdFByb3BzLCAuLi5leHRyYXMgfTtcblxuICAgIHJldHVybiByZW5kZXIoPE1haW4gey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgY29uc3QgY3JlYXRlSW5zdGFuY2UgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICAgICAgb25Nb2RlbENoYW5nZWQsXG4gICAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLFxuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBtb2RlbDogbW9kZWwoKSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IGRlZmF1bHRzLmNvbmZpZ3VyYXRpb24sXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdFByb3BzLCAuLi5leHRyYXMgfTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBNYWluKHByb3BzKTtcbiAgICBpbnN0YW5jZS5zZXRTdGF0ZSA9IGplc3QuZm4oKHN0YXRlLCBjYWxsYmFjaykgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZS5zdGF0ZSwgdHlwZW9mIHN0YXRlID09PSAnZnVuY3Rpb24nID8gc3RhdGUoaW5zdGFuY2Uuc3RhdGUpIDogc3RhdGUpO1xuICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgIH0pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbk1vZGVsQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgICBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkID0gamVzdC5mbigpO1xuICAgIGluaXRpYWxNb2RlbCA9IG1vZGVsKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dpYycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnb25SZW1vdmVDaG9pY2UnLCAoKSA9PiB7XG4gICAgICBpdCgncmVtb3ZlcyBjaG9pY2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgICAgaW5zdGFuY2Uub25SZW1vdmVDaG9pY2UoMCk7XG5cbiAgICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLFxuICAgICAgICAgIGNob2ljZXM6IGluaXRpYWxNb2RlbC5jaG9pY2VzLnNsaWNlKDEpLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2NyZWF0ZURlZmF1bHRNb2RlbCcsICgpID0+IHtcbiAgICAgIGl0KCdzZXRzIGNob2ljZXNMYXlvdXQ6IGhvcml6b250YWwgaWYgdmVydGljYWxNb2RlOiBmYWxzZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgbSA9IE11bHRpcGxlQ2hvaWNlLmNyZWF0ZURlZmF1bHRNb2RlbChtb2RlbCh7IHZlcnRpY2FsTW9kZTogZmFsc2UsIGNob2ljZXNMYXlvdXQ6IHVuZGVmaW5lZCB9KSk7XG5cbiAgICAgICAgZXhwZWN0KG0uY2hvaWNlc0xheW91dCkudG9FcXVhbCgnaG9yaXpvbnRhbCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzZXRzIGNob2ljZXNMYXlvdXQ6IHZlcnRpY2FsIGlmIHZlcnRpY2FsTW9kZTogdHJ1ZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgbSA9IE11bHRpcGxlQ2hvaWNlLmNyZWF0ZURlZmF1bHRNb2RlbChtb2RlbCh7IHZlcnRpY2FsTW9kZTogdHJ1ZSwgY2hvaWNlc0xheW91dDogdW5kZWZpbmVkIH0pKTtcblxuICAgICAgICBleHBlY3QobS5jaG9pY2VzTGF5b3V0KS50b0VxdWFsKCd2ZXJ0aWNhbCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzZXRzIGNob2ljZXNMYXlvdXQ6IGdyaWQgaWYgdmVydGljYWxNb2RlOiB0cnVlICYmIGNob2ljZXNMYXlvdXQ6IGdyaWQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG0gPSBNdWx0aXBsZUNob2ljZS5jcmVhdGVEZWZhdWx0TW9kZWwobW9kZWwoeyB2ZXJ0aWNhbE1vZGU6IHRydWUsIGNob2ljZXNMYXlvdXQ6ICdncmlkJyB9KSk7XG5cbiAgICAgICAgZXhwZWN0KG0uY2hvaWNlc0xheW91dCkudG9FcXVhbCgnZ3JpZCcpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzZXRzIGNob2ljZXNMYXlvdXQ6IHZlcnRpY2FsJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBtID0gTXVsdGlwbGVDaG9pY2UuY3JlYXRlRGVmYXVsdE1vZGVsKG1vZGVsKCkpO1xuXG4gICAgICAgIGV4cGVjdChtLmNob2ljZXNMYXlvdXQpLnRvRXF1YWwoJ3ZlcnRpY2FsJyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvbkFkZENob2ljZScsICgpID0+IHtcbiAgICAgIGl0KCdhZGRzIGEgY2hvaWNlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICAgIGluc3RhbmNlLm9uQWRkQ2hvaWNlKCk7XG5cbiAgICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLFxuICAgICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICAgIC4uLmluaXRpYWxNb2RlbC5jaG9pY2VzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICAgIHZhbHVlOiB1dGlscy5maXJzdEF2YWlsYWJsZUluZGV4KFxuICAgICAgICAgICAgICAgIGluaXRpYWxNb2RlbC5jaG9pY2VzLm1hcCgoYykgPT4gYy52YWx1ZSksXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnb25DaG9pY2VDaGFuZ2VkJywgKCkgPT4ge1xuICAgICAgZGVzY3JpYmUoJ2NoZWNrYm94JywgKCkgPT4ge1xuICAgICAgICBpdCgnY2hhbmdlcyBjaG9pY2UgKHRoZXJlIGFyZSAyIHRydWUgdmFsdWVzKScsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICAgICAgY29uc3QgbmV3Q2hvaWNlcyA9IFsuLi5tb2RlbCgpLmNob2ljZXNdO1xuICAgICAgICAgIGxldCBjaG9pY2UgPSB7XG4gICAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6ICdpY2VsYW5kJyxcbiAgICAgICAgICAgIGxhYmVsOiAnSWNlbGFuZCcsXG4gICAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGluc3RhbmNlLm9uQ2hvaWNlQ2hhbmdlZCgxLCBjaG9pY2UpO1xuXG4gICAgICAgICAgbmV3Q2hvaWNlc1sxXS5jb3JyZWN0ID0gdHJ1ZTtcblxuICAgICAgICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLFxuICAgICAgICAgICAgY2hvaWNlczogbmV3Q2hvaWNlcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgZGVzY3JpYmUoJ3JhZGlvJywgKCkgPT4ge1xuICAgICAgICBpdCgnY2hhbmdlcyBjaG9pY2UgKHRoZXJlIGlzIG9ubHkgb25lIHRydWUgdmFsdWUpJywgKCkgPT4ge1xuICAgICAgICAgIGxldCBjaG9pY2UgPSB7XG4gICAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICAgICAgdmFsdWU6ICdpY2VsYW5kJyxcbiAgICAgICAgICAgIGxhYmVsOiAnSWNlbGFuZCcsXG4gICAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IG5ld01vZGVsID0geyAuLi5pbml0aWFsTW9kZWwsIGNob2ljZU1vZGU6ICdyYWRpbycsIGNob2ljZXM6IGluaXRpYWxNb2RlbC5jaG9pY2VzLnNsaWNlKDAsIDIpIH07XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7IG1vZGVsOiBuZXdNb2RlbCB9KTtcblxuICAgICAgICAgIGluc3RhbmNlLm9uQ2hvaWNlQ2hhbmdlZCgxLCBjaG9pY2UpO1xuXG4gICAgICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgICAuLi5uZXdNb2RlbCxcbiAgICAgICAgICAgIGNob2ljZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvcnJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnc3dlZGVuJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1N3ZWRlbicsXG4gICAgICAgICAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29ycmVjdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2ljZWxhbmQnLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnSWNlbGFuZCcsXG4gICAgICAgICAgICAgICAgZmVlZGJhY2s6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvblByb21wdENoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBpdCgnY2hhbmdlcyBwcm9tcHQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgICAgaW5zdGFuY2Uub25Qcm9tcHRDaGFuZ2VkKCdOZXcgUHJvbXB0Jyk7XG5cbiAgICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLFxuICAgICAgICAgIHByb21wdDogJ05ldyBQcm9tcHQnLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ29uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBpdCgnY2hhbmdlcyB0ZWFjaGVyIGluc3RydWN0aW9ucycsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgICBpbnN0YW5jZS5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkKCdOZXcgVGVhY2hlciBJbnN0cnVjdGlvbnMnKTtcblxuICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ05ldyBUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnb25Nb2RlbENoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBpdCgnY2hhbmdlcyBjaG9pY2UgYW5kIG1ha2VzIGluY29ycmVjdCBhbGwgb3RoZXIgY2hvaWNlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgICBpbnN0YW5jZS5vbk1vZGVsQ2hhbmdlZChcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgICBjaG9pY2VNb2RlOiAncmFkaW8nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ2Nob2ljZU1vZGUnLFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGV4cGVjdGVkQ2hvaWNlcyA9IG1vZGVsKCkuY2hvaWNlcztcblxuICAgICAgICBleHBlY3RlZENob2ljZXMuZm9yRWFjaCgoZUMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgZUMuY29ycmVjdCA9IGluZGV4ID09PSAwO1xuICAgICAgICB9KTtcblxuICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmluaXRpYWxNb2RlbCxcbiAgICAgICAgICAgIGNob2ljZU1vZGU6ICdyYWRpbycsXG4gICAgICAgICAgICBjaG9pY2VzOiBleHBlY3RlZENob2ljZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxLQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9B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
286
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFpbiIsIl9kZWZhdWx0cyIsIl9jb25maWdVaSIsIl9pbmRleCIsImplc3QiLCJtb2NrIiwicHJvcHMiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIm1hcmt1cCIsImNob2ljZVV0aWxzIiwiZmlyc3RBdmFpbGFibGVJbmRleCIsImZuIiwibm9ybWFsaXplQ2hvaWNlcyIsIm1vZGVsIiwic2V0dGluZ3MiLCJQYW5lbCIsIl9leHRlbmRzMiIsInRvZ2dsZSIsInJhZGlvIiwiZHJvcGRvd24iLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJjaGlsZHJlbiIsIklucHV0Q29udGFpbmVyIiwiQ2hvaWNlQ29uZmlndXJhdGlvbiIsIm9uQ2xpY2siLCJvbkRlbGV0ZSIsIm9uQ2hhbmdlIiwiZGF0YSIsIkFsZXJ0RGlhbG9nIiwib3BlbiIsInRleHQiLCJleHRyYXMiLCJkZWZhdWx0cyIsInByb21wdCIsImNob2ljZU1vZGUiLCJjaG9pY2VzIiwiY29ycmVjdCIsInZhbHVlIiwibGFiZWwiLCJmZWVkYmFjayIsInR5cGUiLCJwYXJ0aWFsU2NvcmluZyIsImNvbmZpZ3VyZSIsImRlc2NyaWJlIiwib25Nb2RlbENoYW5nZWQiLCJvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkIiwiaW5pdGlhbE1vZGVsIiwid3JhcHBlciIsImRlZmF1bHRQcm9wcyIsImNsYXNzZXMiLCJjb25maWd1cmF0aW9uIiwicmVuZGVyIiwiTWFpbiIsImNyZWF0ZUluc3RhbmNlIiwiaW5zdGFuY2UiLCJzZXRTdGF0ZSIsInN0YXRlIiwiY2FsbGJhY2siLCJPYmplY3QiLCJhc3NpZ24iLCJiZWZvcmVFYWNoIiwiaXQiLCJvblJlbW92ZUNob2ljZSIsImV4cGVjdCIsInRvQmVDYWxsZWRXaXRoIiwic2xpY2UiLCJtIiwiTXVsdGlwbGVDaG9pY2UiLCJjcmVhdGVEZWZhdWx0TW9kZWwiLCJ2ZXJ0aWNhbE1vZGUiLCJjaG9pY2VzTGF5b3V0IiwidW5kZWZpbmVkIiwidG9FcXVhbCIsIm9uQWRkQ2hvaWNlIiwidXRpbHMiLCJtYXAiLCJjIiwibmV3Q2hvaWNlcyIsImNob2ljZSIsIm9uQ2hvaWNlQ2hhbmdlZCIsIm5ld01vZGVsIiwib25Qcm9tcHRDaGFuZ2VkIiwib25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJleHBlY3RlZENob2ljZXMiLCJmb3JFYWNoIiwiZUMiLCJpbmRleCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vcm9vdC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IE1haW4gfSBmcm9tICcuLi9tYWluJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cyc7XG5pbXBvcnQgeyBjaG9pY2VVdGlscyBhcyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgTXVsdGlwbGVDaG9pY2UgZnJvbSAnLi4vaW5kZXgnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2VkaXRhYmxlLWh0bWwtdGlwLXRhcCcsICgpID0+IChwcm9wcykgPT4gKFxuICA8ZGl2IGRhdGEtdGVzdGlkPVwiZWRpdGFibGUtaHRtbFwiPntwcm9wcy5tYXJrdXB9PC9kaXY+XG4pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBjaG9pY2VVdGlsczoge1xuICAgIGZpcnN0QXZhaWxhYmxlSW5kZXg6IGplc3QuZm4oKSxcbiAgICBub3JtYWxpemVDaG9pY2VzOiBqZXN0LmZuKChtb2RlbCkgPT4gbW9kZWwpLFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIFBhbmVsOiAocHJvcHMpID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJzZXR0aW5ncy1wYW5lbFwiIHsuLi5wcm9wc30gLz4sXG4gICAgdG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgcmFkaW86IGplc3QuZm4oKSxcbiAgICBkcm9wZG93bjogamVzdC5mbigpLFxuICB9LFxuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdiBkYXRhLXRlc3RpZD1cImNvbmZpZy1sYXlvdXRcIj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICB9LFxuICBJbnB1dENvbnRhaW5lcjogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwiaW5wdXQtY29udGFpbmVyXCIgey4uLnByb3BzfT57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBDaG9pY2VDb25maWd1cmF0aW9uOiAocHJvcHMpID0+IChcbiAgICA8ZGl2IGRhdGEtdGVzdGlkPVwiY2hvaWNlLWNvbmZpZ3VyYXRpb25cIj5cbiAgICAgIDxidXR0b24gb25DbGljaz17KCkgPT4gcHJvcHMub25EZWxldGUoKX0+RGVsZXRlPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG9uQ2xpY2s9eygpID0+IHByb3BzLm9uQ2hhbmdlKHByb3BzLmRhdGEpfT5DaGFuZ2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgKSxcbiAgQWxlcnREaWFsb2c6IChwcm9wcykgPT4gcHJvcHMub3BlbiA/IDxkaXYgZGF0YS10ZXN0aWQ9XCJhbGVydC1kaWFsb2dcIj57cHJvcHMudGV4dH08L2Rpdj4gOiBudWxsLFxufSkpO1xuXG5jb25zdCBtb2RlbCA9IChleHRyYXMpID0+ICh7XG4gIC4uLmRlZmF1bHRzLm1vZGVsLFxuICBwcm9tcHQ6ICdXaGljaCBvZiB0aGVzZSBub3J0aGVybiBFdXJvcGVhbiBjb3VudHJpZXMgYXJlIEVVIG1lbWJlcnM/JyxcbiAgY2hvaWNlTW9kZTogJ2NoZWNrYm94JyxcbiAgY2hvaWNlczogW1xuICAgIHtcbiAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICB2YWx1ZTogJ3N3ZWRlbicsXG4gICAgICBsYWJlbDogJ1N3ZWRlbicsXG4gICAgICBmZWVkYmFjazoge1xuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ2ljZWxhbmQnLFxuICAgICAgbGFiZWw6ICdJY2VsYW5kJyxcbiAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhbHVlOiAnbm9yd2F5JyxcbiAgICAgIGxhYmVsOiAnTm9yd2F5JyxcbiAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICB2YWx1ZTogJ2ZpbmxhbmQnLFxuICAgICAgbGFiZWw6ICdGaW5sYW5kJyxcbiAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICBdLFxuICBwYXJ0aWFsU2NvcmluZzogZmFsc2UsXG4gIGNvbmZpZ3VyZToge30sXG4gIC4uLmV4dHJhcyxcbn0pO1xuXG5kZXNjcmliZSgnTWFpbicsICgpID0+IHtcbiAgbGV0IG9uTW9kZWxDaGFuZ2VkID0gamVzdC5mbigpO1xuICBsZXQgb25Db25maWd1cmF0aW9uQ2hhbmdlZCA9IGplc3QuZm4oKTtcbiAgbGV0IGluaXRpYWxNb2RlbCA9IG1vZGVsKCk7XG5cbiAgY29uc3Qgd3JhcHBlciA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBvbk1vZGVsQ2hhbmdlZCxcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQsXG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIG1vZGVsOiBtb2RlbCgpLFxuICAgICAgY29uZmlndXJhdGlvbjogZGVmYXVsdHMuY29uZmlndXJhdGlvbixcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0UHJvcHMsIC4uLmV4dHJhcyB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcig8TWFpbiB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBjb25zdCBjcmVhdGVJbnN0YW5jZSA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBvbk1vZGVsQ2hhbmdlZCxcbiAgICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQsXG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIG1vZGVsOiBtb2RlbCgpLFxuICAgICAgY29uZmlndXJhdGlvbjogZGVmYXVsdHMuY29uZmlndXJhdGlvbixcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0UHJvcHMsIC4uLmV4dHJhcyB9O1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IE1haW4ocHJvcHMpO1xuICAgIGluc3RhbmNlLnNldFN0YXRlID0gamVzdC5mbigoc3RhdGUsIGNhbGxiYWNrKSA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLnN0YXRlLCB0eXBlb2Ygc3RhdGUgPT09ICdmdW5jdGlvbicgPyBzdGF0ZShpbnN0YW5jZS5zdGF0ZSkgOiBzdGF0ZSk7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uTW9kZWxDaGFuZ2VkID0gamVzdC5mbigpO1xuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgaW5pdGlhbE1vZGVsID0gbW9kZWwoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGRlc2NyaWJlKCdvblJlbW92ZUNob2ljZScsICgpID0+IHtcbiAgICAgIGl0KCdyZW1vdmVzIGNob2ljZScsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgICBpbnN0YW5jZS5vblJlbW92ZUNob2ljZSgwKTtcblxuICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgY2hvaWNlczogaW5pdGlhbE1vZGVsLmNob2ljZXMuc2xpY2UoMSksXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnY3JlYXRlRGVmYXVsdE1vZGVsJywgKCkgPT4ge1xuICAgICAgaXQoJ3NldHMgY2hvaWNlc0xheW91dDogaG9yaXpvbnRhbCBpZiB2ZXJ0aWNhbE1vZGU6IGZhbHNlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBtID0gTXVsdGlwbGVDaG9pY2UuY3JlYXRlRGVmYXVsdE1vZGVsKG1vZGVsKHsgdmVydGljYWxNb2RlOiBmYWxzZSwgY2hvaWNlc0xheW91dDogdW5kZWZpbmVkIH0pKTtcblxuICAgICAgICBleHBlY3QobS5jaG9pY2VzTGF5b3V0KS50b0VxdWFsKCdob3Jpem9udGFsJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3NldHMgY2hvaWNlc0xheW91dDogdmVydGljYWwgaWYgdmVydGljYWxNb2RlOiB0cnVlJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBtID0gTXVsdGlwbGVDaG9pY2UuY3JlYXRlRGVmYXVsdE1vZGVsKG1vZGVsKHsgdmVydGljYWxNb2RlOiB0cnVlLCBjaG9pY2VzTGF5b3V0OiB1bmRlZmluZWQgfSkpO1xuXG4gICAgICAgIGV4cGVjdChtLmNob2ljZXNMYXlvdXQpLnRvRXF1YWwoJ3ZlcnRpY2FsJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3NldHMgY2hvaWNlc0xheW91dDogZ3JpZCBpZiB2ZXJ0aWNhbE1vZGU6IHRydWUgJiYgY2hvaWNlc0xheW91dDogZ3JpZCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgbSA9IE11bHRpcGxlQ2hvaWNlLmNyZWF0ZURlZmF1bHRNb2RlbChtb2RlbCh7IHZlcnRpY2FsTW9kZTogdHJ1ZSwgY2hvaWNlc0xheW91dDogJ2dyaWQnIH0pKTtcblxuICAgICAgICBleHBlY3QobS5jaG9pY2VzTGF5b3V0KS50b0VxdWFsKCdncmlkJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3NldHMgY2hvaWNlc0xheW91dDogdmVydGljYWwnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG0gPSBNdWx0aXBsZUNob2ljZS5jcmVhdGVEZWZhdWx0TW9kZWwobW9kZWwoKSk7XG5cbiAgICAgICAgZXhwZWN0KG0uY2hvaWNlc0xheW91dCkudG9FcXVhbCgndmVydGljYWwnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ29uQWRkQ2hvaWNlJywgKCkgPT4ge1xuICAgICAgaXQoJ2FkZHMgYSBjaG9pY2UnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgICAgaW5zdGFuY2Uub25BZGRDaG9pY2UoKTtcblxuICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLmNob2ljZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgICAgICAgdmFsdWU6IHV0aWxzLmZpcnN0QXZhaWxhYmxlSW5kZXgoXG4gICAgICAgICAgICAgICAgaW5pdGlhbE1vZGVsLmNob2ljZXMubWFwKChjKSA9PiBjLnZhbHVlKSxcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvbkNob2ljZUNoYW5nZWQnLCAoKSA9PiB7XG4gICAgICBkZXNjcmliZSgnY2hlY2tib3gnLCAoKSA9PiB7XG4gICAgICAgIGl0KCdjaGFuZ2VzIGNob2ljZSAodGhlcmUgYXJlIDIgdHJ1ZSB2YWx1ZXMpJywgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UoKTtcbiAgICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gWy4uLm1vZGVsKCkuY2hvaWNlc107XG4gICAgICAgICAgbGV0IGNob2ljZSA9IHtcbiAgICAgICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogJ2ljZWxhbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICdJY2VsYW5kJyxcbiAgICAgICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaW5zdGFuY2Uub25DaG9pY2VDaGFuZ2VkKDEsIGNob2ljZSk7XG5cbiAgICAgICAgICBuZXdDaG9pY2VzWzFdLmNvcnJlY3QgPSB0cnVlO1xuXG4gICAgICAgICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgICBjaG9pY2VzOiBuZXdDaG9pY2VzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBkZXNjcmliZSgncmFkaW8nLCAoKSA9PiB7XG4gICAgICAgIGl0KCdjaGFuZ2VzIGNob2ljZSAodGhlcmUgaXMgb25seSBvbmUgdHJ1ZSB2YWx1ZSknLCAoKSA9PiB7XG4gICAgICAgICAgbGV0IGNob2ljZSA9IHtcbiAgICAgICAgICAgIGNvcnJlY3Q6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogJ2ljZWxhbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICdJY2VsYW5kJyxcbiAgICAgICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3QgbmV3TW9kZWwgPSB7IC4uLmluaXRpYWxNb2RlbCwgY2hvaWNlTW9kZTogJ3JhZGlvJywgY2hvaWNlczogaW5pdGlhbE1vZGVsLmNob2ljZXMuc2xpY2UoMCwgMikgfTtcbiAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKHsgbW9kZWw6IG5ld01vZGVsIH0pO1xuXG4gICAgICAgICAgaW5zdGFuY2Uub25DaG9pY2VDaGFuZ2VkKDEsIGNob2ljZSk7XG5cbiAgICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAgIC4uLm5ld01vZGVsLFxuICAgICAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29ycmVjdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdzd2VkZW4nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnU3dlZGVuJyxcbiAgICAgICAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb3JyZWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnaWNlbGFuZCcsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdJY2VsYW5kJyxcbiAgICAgICAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ29uUHJvbXB0Q2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGl0KCdjaGFuZ2VzIHByb21wdCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuICAgICAgICBpbnN0YW5jZS5vblByb21wdENoYW5nZWQoJ05ldyBQcm9tcHQnKTtcblxuICAgICAgICBleHBlY3Qob25Nb2RlbENoYW5nZWQpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgICAgICAuLi5pbml0aWFsTW9kZWwsXG4gICAgICAgICAgcHJvbXB0OiAnTmV3IFByb21wdCcsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGl0KCdjaGFuZ2VzIHRlYWNoZXIgaW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICAgIGluc3RhbmNlLm9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQoJ05ldyBUZWFjaGVyIEluc3RydWN0aW9ucycpO1xuXG4gICAgICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoe1xuICAgICAgICAgIC4uLmluaXRpYWxNb2RlbCxcbiAgICAgICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiAnTmV3IFRlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdvbk1vZGVsQ2hhbmdlZCcsICgpID0+IHtcbiAgICAgIGl0KCdjaGFuZ2VzIGNob2ljZSBhbmQgbWFrZXMgaW5jb3JyZWN0IGFsbCBvdGhlciBjaG9pY2VzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG4gICAgICAgIGluc3RhbmNlLm9uTW9kZWxDaGFuZ2VkKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLmluaXRpYWxNb2RlbCxcbiAgICAgICAgICAgIGNob2ljZU1vZGU6ICdyYWRpbycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnY2hvaWNlTW9kZScsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZXhwZWN0ZWRDaG9pY2VzID0gbW9kZWwoKS5jaG9pY2VzO1xuXG4gICAgICAgIGV4cGVjdGVkQ2hvaWNlcy5mb3JFYWNoKChlQywgaW5kZXgpID0+IHtcbiAgICAgICAgICBlQy5jb3JyZWN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV4cGVjdChvbk1vZGVsQ2hhbmdlZCkudG9CZUNhbGxlZFdpdGgoXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4uaW5pdGlhbE1vZGVsLFxuICAgICAgICAgICAgY2hvaWNlTW9kZTogJ3JhZGlvJyxcbiAgICAgICAgICAgIGNob2ljZXM6IGV4cGVjdGVkQ2hvaWNlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUVBTyxJQUFJLENBQUNDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxNQUFPQyxLQUFLLGlCQUN0RFIsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7RUFBSyxlQUFZO0FBQWUsR0FBRUYsS0FBSyxDQUFDRyxNQUFZLENBQ3JELENBQUM7QUFFRkwsSUFBSSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsT0FBTztFQUNyQ0ssV0FBVyxFQUFFO0lBQ1hDLG1CQUFtQixFQUFFUCxJQUFJLENBQUNRLEVBQUUsQ0FBQyxDQUFDO0lBQzlCQyxnQkFBZ0IsRUFBRVQsSUFBSSxDQUFDUSxFQUFFLENBQUVFLEtBQUssSUFBS0EsS0FBSztFQUM1QyxDQUFDO0VBQ0RDLFFBQVEsRUFBRTtJQUNSQyxLQUFLLEVBQUdWLEtBQUssaUJBQUtSLE9BQUEsQ0FBQVMsT0FBQSxDQUFBQyxhQUFBLFlBQUFTLFNBQUEsQ0FBQVYsT0FBQTtNQUFLLGVBQVk7SUFBZ0IsR0FBS0QsS0FBSyxDQUFHLENBQUM7SUFDakVZLE1BQU0sRUFBRWQsSUFBSSxDQUFDUSxFQUFFLENBQUMsQ0FBQztJQUNqQk8sS0FBSyxFQUFFZixJQUFJLENBQUNRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCUSxRQUFRLEVBQUVoQixJQUFJLENBQUNRLEVBQUUsQ0FBQztFQUNwQixDQUFDO0VBQ0RTLE1BQU0sRUFBRTtJQUNOQyxZQUFZLEVBQUdoQixLQUFLLGlCQUFLUixPQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQTtNQUFLLGVBQVk7SUFBZSxHQUFFRixLQUFLLENBQUNpQixRQUFjO0VBQ2pGLENBQUM7RUFDREMsY0FBYyxFQUFHbEIsS0FBSyxpQkFBS1IsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsWUFBQVMsU0FBQSxDQUFBVixPQUFBO0lBQUssZUFBWTtFQUFpQixHQUFLRCxLQUFLLEdBQUdBLEtBQUssQ0FBQ2lCLFFBQWMsQ0FBQztFQUMvRkUsbUJBQW1CLEVBQUduQixLQUFLLGlCQUN6QlIsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBSyxlQUFZO0VBQXNCLGdCQUNyQ1YsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBUWtCLE9BQU8sRUFBRUEsQ0FBQSxLQUFNcEIsS0FBSyxDQUFDcUIsUUFBUSxDQUFDO0VBQUUsR0FBQyxRQUFjLENBQUMsZUFDeEQ3QixPQUFBLENBQUFTLE9BQUEsQ0FBQUMsYUFBQTtJQUFRa0IsT0FBTyxFQUFFQSxDQUFBLEtBQU1wQixLQUFLLENBQUNzQixRQUFRLENBQUN0QixLQUFLLENBQUN1QixJQUFJO0VBQUUsR0FBQyxRQUFjLENBQzlELENBQ047RUFDREMsV0FBVyxFQUFHeEIsS0FBSyxJQUFLQSxLQUFLLENBQUN5QixJQUFJLGdCQUFHakMsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUE7SUFBSyxlQUFZO0VBQWMsR0FBRUYsS0FBSyxDQUFDMEIsSUFBVSxDQUFDLEdBQUc7QUFDNUYsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNbEIsS0FBSyxHQUFJbUIsTUFBTSxLQUFNO0VBQ3pCLEdBQUdDLGlCQUFRLENBQUNwQixLQUFLO0VBQ2pCcUIsTUFBTSxFQUFFLDREQUE0RDtFQUNwRUMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLE9BQU8sRUFBRSxDQUNQO0lBQ0VDLE9BQU8sRUFBRSxJQUFJO0lBQ2JDLEtBQUssRUFBRSxRQUFRO0lBQ2ZDLEtBQUssRUFBRSxRQUFRO0lBQ2ZDLFFBQVEsRUFBRTtNQUNSQyxJQUFJLEVBQUUsTUFBTTtNQUNaSCxLQUFLLEVBQUU7SUFDVDtFQUNGLENBQUMsRUFDRDtJQUNFQSxLQUFLLEVBQUUsU0FBUztJQUNoQkMsS0FBSyxFQUFFLFNBQVM7SUFDaEJDLFFBQVEsRUFBRTtNQUNSQyxJQUFJLEVBQUUsTUFBTTtNQUNaSCxLQUFLLEVBQUU7SUFDVDtFQUNGLENBQUMsRUFDRDtJQUNFQSxLQUFLLEVBQUUsUUFBUTtJQUNmQyxLQUFLLEVBQUUsUUFBUTtJQUNmQyxRQUFRLEVBQUU7TUFDUkMsSUFBSSxFQUFFLE1BQU07TUFDWkgsS0FBSyxFQUFFO0lBQ1Q7RUFDRixDQUFDLEVBQ0Q7SUFDRUQsT0FBTyxFQUFFLElBQUk7SUFDYkMsS0FBSyxFQUFFLFNBQVM7SUFDaEJDLEtBQUssRUFBRSxTQUFTO0lBQ2hCQyxRQUFRLEVBQUU7TUFDUkMsSUFBSSxFQUFFLE1BQU07TUFDWkgsS0FBSyxFQUFFO0lBQ1Q7RUFDRixDQUFDLENBQ0Y7RUFDREksY0FBYyxFQUFFLEtBQUs7RUFDckJDLFNBQVMsRUFBRSxDQUFDLENBQUM7RUFDYixHQUFHWDtBQUNMLENBQUMsQ0FBQztBQUVGWSxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU07RUFDckIsSUFBSUMsY0FBYyxHQUFHMUMsSUFBSSxDQUFDUSxFQUFFLENBQUMsQ0FBQztFQUM5QixJQUFJbUMsc0JBQXNCLEdBQUczQyxJQUFJLENBQUNRLEVBQUUsQ0FBQyxDQUFDO0VBQ3RDLElBQUlvQyxZQUFZLEdBQUdsQyxLQUFLLENBQUMsQ0FBQztFQUUxQixNQUFNbUMsT0FBTyxHQUFJaEIsTUFBTSxJQUFLO0lBQzFCLE1BQU1pQixZQUFZLEdBQUc7TUFDbkJKLGNBQWM7TUFDZEMsc0JBQXNCO01BQ3RCSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hyQyxLQUFLLEVBQUVBLEtBQUssQ0FBQyxDQUFDO01BQ2RzQyxhQUFhLEVBQUVsQixpQkFBUSxDQUFDa0I7SUFDMUIsQ0FBQztJQUNELE1BQU05QyxLQUFLLEdBQUc7TUFBRSxHQUFHNEMsWUFBWTtNQUFFLEdBQUdqQjtJQUFPLENBQUM7SUFFNUMsT0FBTyxJQUFBb0IsYUFBTSxlQUFDdkQsT0FBQSxDQUFBUyxPQUFBLENBQUFDLGFBQUEsQ0FBQ1IsS0FBQSxDQUFBc0QsSUFBSSxFQUFLaEQsS0FBUSxDQUFDLENBQUM7RUFDcEMsQ0FBQztFQUVELE1BQU1pRCxjQUFjLEdBQUl0QixNQUFNLElBQUs7SUFDakMsTUFBTWlCLFlBQVksR0FBRztNQUNuQkosY0FBYztNQUNkQyxzQkFBc0I7TUFDdEJJLE9BQU8sRUFBRSxDQUFDLENBQUM7TUFDWHJDLEtBQUssRUFBRUEsS0FBSyxDQUFDLENBQUM7TUFDZHNDLGFBQWEsRUFBRWxCLGlCQUFRLENBQUNrQjtJQUMxQixDQUFDO0lBQ0QsTUFBTTlDLEtBQUssR0FBRztNQUFFLEdBQUc0QyxZQUFZO01BQUUsR0FBR2pCO0lBQU8sQ0FBQztJQUM1QyxNQUFNdUIsUUFBUSxHQUFHLElBQUlGLFVBQUksQ0FBQ2hELEtBQUssQ0FBQztJQUNoQ2tELFFBQVEsQ0FBQ0MsUUFBUSxHQUFHckQsSUFBSSxDQUFDUSxFQUFFLENBQUMsQ0FBQzhDLEtBQUssRUFBRUMsUUFBUSxLQUFLO01BQy9DQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0wsUUFBUSxDQUFDRSxLQUFLLEVBQUUsT0FBT0EsS0FBSyxLQUFLLFVBQVUsR0FBR0EsS0FBSyxDQUFDRixRQUFRLENBQUNFLEtBQUssQ0FBQyxHQUFHQSxLQUFLLENBQUM7TUFDMUYsSUFBSUMsUUFBUSxFQUFFQSxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFDRixPQUFPSCxRQUFRO0VBQ2pCLENBQUM7RUFFRE0sVUFBVSxDQUFDLE1BQU07SUFDZmhCLGNBQWMsR0FBRzFDLElBQUksQ0FBQ1EsRUFBRSxDQUFDLENBQUM7SUFDMUJtQyxzQkFBc0IsR0FBRzNDLElBQUksQ0FBQ1EsRUFBRSxDQUFDLENBQUM7SUFDbENvQyxZQUFZLEdBQUdsQyxLQUFLLENBQUMsQ0FBQztFQUN4QixDQUFDLENBQUM7RUFFRitCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTTtJQUN0QkEsUUFBUSxDQUFDLGdCQUFnQixFQUFFLE1BQU07TUFDL0JrQixFQUFFLENBQUMsZ0JBQWdCLEVBQUUsTUFBTTtRQUN6QixNQUFNUCxRQUFRLEdBQUdELGNBQWMsQ0FBQyxDQUFDO1FBQ2pDQyxRQUFRLENBQUNRLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFFMUJDLE1BQU0sQ0FBQ25CLGNBQWMsQ0FBQyxDQUFDb0IsY0FBYyxDQUFDO1VBQ3BDLEdBQUdsQixZQUFZO1VBQ2ZYLE9BQU8sRUFBRVcsWUFBWSxDQUFDWCxPQUFPLENBQUM4QixLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRnRCLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNO01BQ25Da0IsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLE1BQU07UUFDaEUsTUFBTUssQ0FBQyxHQUFHQyxjQUFjLENBQUNDLGtCQUFrQixDQUFDeEQsS0FBSyxDQUFDO1VBQUV5RCxZQUFZLEVBQUUsS0FBSztVQUFFQyxhQUFhLEVBQUVDO1FBQVUsQ0FBQyxDQUFDLENBQUM7UUFFckdSLE1BQU0sQ0FBQ0csQ0FBQyxDQUFDSSxhQUFhLENBQUMsQ0FBQ0UsT0FBTyxDQUFDLFlBQVksQ0FBQztNQUMvQyxDQUFDLENBQUM7TUFFRlgsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLE1BQU07UUFDN0QsTUFBTUssQ0FBQyxHQUFHQyxjQUFjLENBQUNDLGtCQUFrQixDQUFDeEQsS0FBSyxDQUFDO1VBQUV5RCxZQUFZLEVBQUUsSUFBSTtVQUFFQyxhQUFhLEVBQUVDO1FBQVUsQ0FBQyxDQUFDLENBQUM7UUFFcEdSLE1BQU0sQ0FBQ0csQ0FBQyxDQUFDSSxhQUFhLENBQUMsQ0FBQ0UsT0FBTyxDQUFDLFVBQVUsQ0FBQztNQUM3QyxDQUFDLENBQUM7TUFFRlgsRUFBRSxDQUFDLHVFQUF1RSxFQUFFLE1BQU07UUFDaEYsTUFBTUssQ0FBQyxHQUFHQyxjQUFjLENBQUNDLGtCQUFrQixDQUFDeEQsS0FBSyxDQUFDO1VBQUV5RCxZQUFZLEVBQUUsSUFBSTtVQUFFQyxhQUFhLEVBQUU7UUFBTyxDQUFDLENBQUMsQ0FBQztRQUVqR1AsTUFBTSxDQUFDRyxDQUFDLENBQUNJLGFBQWEsQ0FBQyxDQUFDRSxPQUFPLENBQUMsTUFBTSxDQUFDO01BQ3pDLENBQUMsQ0FBQztNQUVGWCxFQUFFLENBQUMsOEJBQThCLEVBQUUsTUFBTTtRQUN2QyxNQUFNSyxDQUFDLEdBQUdDLGNBQWMsQ0FBQ0Msa0JBQWtCLENBQUN4RCxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXBEbUQsTUFBTSxDQUFDRyxDQUFDLENBQUNJLGFBQWEsQ0FBQyxDQUFDRSxPQUFPLENBQUMsVUFBVSxDQUFDO01BQzdDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGN0IsUUFBUSxDQUFDLGFBQWEsRUFBRSxNQUFNO01BQzVCa0IsRUFBRSxDQUFDLGVBQWUsRUFBRSxNQUFNO1FBQ3hCLE1BQU1QLFFBQVEsR0FBR0QsY0FBYyxDQUFDLENBQUM7UUFDakNDLFFBQVEsQ0FBQ21CLFdBQVcsQ0FBQyxDQUFDO1FBRXRCVixNQUFNLENBQUNuQixjQUFjLENBQUMsQ0FBQ29CLGNBQWMsQ0FBQztVQUNwQyxHQUFHbEIsWUFBWTtVQUNmWCxPQUFPLEVBQUUsQ0FDUCxHQUFHVyxZQUFZLENBQUNYLE9BQU8sRUFDdkI7WUFDRUcsS0FBSyxFQUFFLEVBQUU7WUFDVEQsS0FBSyxFQUFFcUMscUJBQUssQ0FBQ2pFLG1CQUFtQixDQUM5QnFDLFlBQVksQ0FBQ1gsT0FBTyxDQUFDd0MsR0FBRyxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ3ZDLEtBQUssQ0FBQyxFQUN4QyxDQUNGLENBQUM7WUFDREUsUUFBUSxFQUFFO2NBQ1JDLElBQUksRUFBRTtZQUNSO1VBQ0YsQ0FBQztRQUVMLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGRyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTTtNQUNoQ0EsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNO1FBQ3pCa0IsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLE1BQU07VUFDbkQsTUFBTVAsUUFBUSxHQUFHRCxjQUFjLENBQUMsQ0FBQztVQUNqQyxNQUFNd0IsVUFBVSxHQUFHLENBQUMsR0FBR2pFLEtBQUssQ0FBQyxDQUFDLENBQUN1QixPQUFPLENBQUM7VUFDdkMsSUFBSTJDLE1BQU0sR0FBRztZQUNYMUMsT0FBTyxFQUFFLElBQUk7WUFDYkMsS0FBSyxFQUFFLFNBQVM7WUFDaEJDLEtBQUssRUFBRSxTQUFTO1lBQ2hCQyxRQUFRLEVBQUU7Y0FDUkMsSUFBSSxFQUFFLE1BQU07Y0FDWkgsS0FBSyxFQUFFO1lBQ1Q7VUFDRixDQUFDO1VBRURpQixRQUFRLENBQUN5QixlQUFlLENBQUMsQ0FBQyxFQUFFRCxNQUFNLENBQUM7VUFFbkNELFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQ3pDLE9BQU8sR0FBRyxJQUFJO1VBRTVCMkIsTUFBTSxDQUFDbkIsY0FBYyxDQUFDLENBQUNvQixjQUFjLENBQUM7WUFDcEMsR0FBR2xCLFlBQVk7WUFDZlgsT0FBTyxFQUFFMEM7VUFDWCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7TUFFRmxDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTTtRQUN0QmtCLEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxNQUFNO1VBQ3hELElBQUlpQixNQUFNLEdBQUc7WUFDWDFDLE9BQU8sRUFBRSxJQUFJO1lBQ2JDLEtBQUssRUFBRSxTQUFTO1lBQ2hCQyxLQUFLLEVBQUUsU0FBUztZQUNoQkMsUUFBUSxFQUFFO2NBQ1JDLElBQUksRUFBRSxNQUFNO2NBQ1pILEtBQUssRUFBRTtZQUNUO1VBQ0YsQ0FBQztVQUVELE1BQU0yQyxRQUFRLEdBQUc7WUFBRSxHQUFHbEMsWUFBWTtZQUFFWixVQUFVLEVBQUUsT0FBTztZQUFFQyxPQUFPLEVBQUVXLFlBQVksQ0FBQ1gsT0FBTyxDQUFDOEIsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1VBQUUsQ0FBQztVQUNwRyxNQUFNWCxRQUFRLEdBQUdELGNBQWMsQ0FBQztZQUFFekMsS0FBSyxFQUFFb0U7VUFBUyxDQUFDLENBQUM7VUFFcEQxQixRQUFRLENBQUN5QixlQUFlLENBQUMsQ0FBQyxFQUFFRCxNQUFNLENBQUM7VUFFbkNmLE1BQU0sQ0FBQ25CLGNBQWMsQ0FBQyxDQUFDb0IsY0FBYyxDQUFDO1lBQ3BDLEdBQUdnQixRQUFRO1lBQ1g3QyxPQUFPLEVBQUUsQ0FDUDtjQUNFQyxPQUFPLEVBQUUsS0FBSztjQUNkQyxLQUFLLEVBQUUsUUFBUTtjQUNmQyxLQUFLLEVBQUUsUUFBUTtjQUNmQyxRQUFRLEVBQUU7Z0JBQ1JDLElBQUksRUFBRSxNQUFNO2dCQUNaSCxLQUFLLEVBQUU7Y0FDVDtZQUNGLENBQUMsRUFDRDtjQUNFRCxPQUFPLEVBQUUsSUFBSTtjQUNiQyxLQUFLLEVBQUUsU0FBUztjQUNoQkMsS0FBSyxFQUFFLFNBQVM7Y0FDaEJDLFFBQVEsRUFBRTtnQkFDUkMsSUFBSSxFQUFFLE1BQU07Z0JBQ1pILEtBQUssRUFBRTtjQUNUO1lBQ0YsQ0FBQztVQUVMLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGTSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsTUFBTTtNQUNoQ2tCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNO1FBQ3pCLE1BQU1QLFFBQVEsR0FBR0QsY0FBYyxDQUFDLENBQUM7UUFDakNDLFFBQVEsQ0FBQzJCLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFFdENsQixNQUFNLENBQUNuQixjQUFjLENBQUMsQ0FBQ29CLGNBQWMsQ0FBQztVQUNwQyxHQUFHbEIsWUFBWTtVQUNmYixNQUFNLEVBQUU7UUFDVixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRlUsUUFBUSxDQUFDLDhCQUE4QixFQUFFLE1BQU07TUFDN0NrQixFQUFFLENBQUMsOEJBQThCLEVBQUUsTUFBTTtRQUN2QyxNQUFNUCxRQUFRLEdBQUdELGNBQWMsQ0FBQyxDQUFDO1FBQ2pDQyxRQUFRLENBQUM0Qiw0QkFBNEIsQ0FBQywwQkFBMEIsQ0FBQztRQUVqRW5CLE1BQU0sQ0FBQ25CLGNBQWMsQ0FBQyxDQUFDb0IsY0FBYyxDQUFDO1VBQ3BDLEdBQUdsQixZQUFZO1VBQ2ZxQyxtQkFBbUIsRUFBRTtRQUN2QixDQUFDLENBQUM7TUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRnhDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNO01BQy9Ca0IsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLE1BQU07UUFDL0QsTUFBTVAsUUFBUSxHQUFHRCxjQUFjLENBQUMsQ0FBQztRQUNqQ0MsUUFBUSxDQUFDVixjQUFjLENBQ3JCO1VBQ0UsR0FBR0UsWUFBWTtVQUNmWixVQUFVLEVBQUU7UUFDZCxDQUFDLEVBQ0QsWUFDRixDQUFDO1FBRUQsTUFBTWtELGVBQWUsR0FBR3hFLEtBQUssQ0FBQyxDQUFDLENBQUN1QixPQUFPO1FBRXZDaUQsZUFBZSxDQUFDQyxPQUFPLENBQUMsQ0FBQ0MsRUFBRSxFQUFFQyxLQUFLLEtBQUs7VUFDckNELEVBQUUsQ0FBQ2xELE9BQU8sR0FBR21ELEtBQUssS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQztRQUVGeEIsTUFBTSxDQUFDbkIsY0FBYyxDQUFDLENBQUNvQixjQUFjLENBQ25DO1VBQ0UsR0FBR2xCLFlBQVk7VUFDZlosVUFBVSxFQUFFLE9BQU87VUFDbkJDLE9BQU8sRUFBRWlEO1FBQ1gsQ0FBQyxFQUNELElBQ0YsQ0FBQztNQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -10,7 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _styles = require("@mui/material/styles");
13
- var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
13
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
14
14
  var _configUi = require("@pie-lib/config-ui");
15
15
  var _renderUi = require("@pie-lib/render-ui");
16
16
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
@@ -216,7 +216,7 @@ const Design = props => {
216
216
  })
217
217
  }, teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
218
218
  label: teacherInstructions.label
219
- }, /*#__PURE__*/_react.default.createElement(_editableHtml.default, {
219
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
220
220
  markup: model.teacherInstructions || '',
221
221
  onChange: onTeacherInstructionsChanged,
222
222
  imageSupport: imageSupport,
@@ -237,7 +237,7 @@ const Design = props => {
237
237
  mathMlOptions: mathMlOptions
238
238
  }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react.default.createElement(PromptHolder, {
239
239
  label: prompt.label
240
- }, /*#__PURE__*/_react.default.createElement(_editableHtml.default, {
240
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
241
241
  markup: model.prompt,
242
242
  onChange: onPromptChanged,
243
243
  imageSupport: imageSupport,
@@ -294,7 +294,7 @@ const Design = props => {
294
294
  }), rationaleEnabled && /*#__PURE__*/_react.default.createElement(RationaleHolder, {
295
295
  key: `rationale-${index}`,
296
296
  label: rationale.label
297
- }, /*#__PURE__*/_react.default.createElement(_editableHtml.default, {
297
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
298
298
  markup: choice.rationale || '',
299
299
  onChange: c => onChoiceChanged(index, {
300
300
  ...choice,
@@ -474,4 +474,4 @@ exports.Main = Main;
474
474
  })
475
475
  });
476
476
  var _default = exports.default = Main;
477
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX2VkaXRhYmxlSHRtbCIsIl9jb25maWdVaSIsIl9yZW5kZXJVaSIsIl9CdXR0b24iLCJfVG9vbHRpcCIsIl9UeXBvZ3JhcGh5IiwiX0JveCIsIl9JbmZvIiwiX21lcmdlIiwiX3V0aWxzIiwiUGFuZWwiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwic2V0dGluZ3MiLCJNQVhfQ0hPSUNFUyIsIlByb21wdEhvbGRlciIsInN0eWxlZCIsIklucHV0Q29udGFpbmVyIiwidGhlbWUiLCJ3aWR0aCIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwibWFyZ2luQm90dG9tIiwiUmF0aW9uYWxlSG9sZGVyIiwiZmxleCIsIm1hcmdpblRvcCIsIm1hcmdpbkxlZnQiLCJDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJBZGRCdXR0b24iLCJCdXR0b24iLCJmbG9hdCIsIkRpc2FibGVCdXR0b24iLCJjdXJzb3IiLCJwb2ludGVyRXZlbnRzIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkaXNhYmxlZCIsIkZsZXhDb250YWluZXIiLCJCb3giLCJhbGlnbkl0ZW1zIiwiVGl0bGVUZXh0IiwiVHlwb2dyYXBoeSIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsIm1hcmdpblJpZ2h0IiwiU3R5bGVkVG9vbHRpcCIsIlRvb2x0aXAiLCJ3aGl0ZVNwYWNlIiwibWF4V2lkdGgiLCJFcnJvclRleHQiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiRGVzaWduIiwicHJvcHMiLCJtb2RlbCIsImNvbmZpZ3VyYXRpb24iLCJvblByb21wdENoYW5nZWQiLCJvbkNob2ljZUNoYW5nZWQiLCJvblJlbW92ZUNob2ljZSIsIm9uQWRkQ2hvaWNlIiwiaW1hZ2VTdXBwb3J0IiwidXBsb2FkU291bmRTdXBwb3J0Iiwib25DaGFuZ2VNb2RlbCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkIiwiYWRkQ2hvaWNlQnV0dG9uIiwiY29udGVudERpbWVuc2lvbnMiLCJmZWVkYmFjayIsImRlbGV0ZUNob2ljZSIsImNob2ljZU1vZGUiLCJjaG9pY2VQcmVmaXgiLCJwYXJ0aWFsU2NvcmluZyIsImxvY2tDaG9pY2VPcmRlciIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwicmF0aW9uYWxlIiwic2NvcmluZ1R5cGUiLCJzZXF1ZW50aWFsQ2hvaWNlTGFiZWxzIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwiY2hvaWNlc0xheW91dCIsInNwZWxsQ2hlY2siLCJncmlkQ29sdW1ucyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsInByb21wdCIsIndpdGhSdWJyaWMiLCJtYXRoTWxPcHRpb25zIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZUNob2ljZXMiLCJtYXhBbnN3ZXJDaG9pY2VzIiwibGltaXRDaG9pY2VzTnVtYmVyIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiY2hvaWNlcyIsImVycm9ycyIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsImV4dHJhQ1NTUnVsZXMiLCJhbnN3ZXJDaG9pY2VzIiwiYW5zd2VyQ2hvaWNlc0Vycm9yIiwiY2hvaWNlc0Vycm9ycyIsImNvcnJlY3RSZXNwb25zZSIsImNvcnJlY3RSZXNwb25zZUVycm9yIiwicHJvbXB0RXJyb3IiLCJyYXRpb25hbGVFcnJvcnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IiLCJuck9mQ29sdW1uc0F2YWlsYWJsZSIsImxlbmd0aCIsIkFycmF5IiwiZnJvbSIsIl8iLCJpIiwiYmFzZUlucHV0Q29uZmlndXJhdGlvbiIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJnZXRQbHVnaW5Qcm9wcyIsInZhbGlkYXRpb25NZXNzYWdlIiwiZ2VuZXJhdGVWYWxpZGF0aW9uTWVzc2FnZSIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwiYWRkQ2hvaWNlQnV0dG9uVG9vbHRpcCIsInBhbmVsU2V0dGluZ3MiLCJsYWJlbCIsImVuYWJsZWQiLCJvcHRpb25zIiwicGFuZWxQcm9wZXJ0aWVzIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJydWJyaWNFbmFibGVkIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJkaW1lbnNpb25zIiwiaGlkZVNldHRpbmdzIiwiY2xhc3NlcyIsIm9uQ2hhbmdlQ29uZmlndXJhdGlvbiIsImdyb3VwcyIsIlNldHRpbmdzIiwiUHJvcGVydGllcyIsIm1hcmt1cCIsIm9uQ2hhbmdlIiwibm9uRW1wdHkiLCJkaXNhYmxlVW5kZXJsaW5lIiwicGx1Z2luUHJvcHMiLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcyIsImNvbXBvbmVudCIsImRpc2FibGVGb2N1c0xpc3RlbmVyIiwiZGlzYWJsZVRvdWNoTGlzdGVuZXIiLCJwbGFjZW1lbnQiLCJ0aXRsZSIsIm1hcCIsImNob2ljZSIsImluZGV4Iiwia2V5IiwiQ2hvaWNlQ29uZmlndXJhdGlvbiIsInVzZUxldHRlck9yZGVyaW5nIiwibW9kZSIsImRhdGEiLCJkZWZhdWx0RmVlZGJhY2siLCJkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zIiwib25EZWxldGUiLCJjIiwiYWxsb3dGZWVkQmFjayIsImFsbG93RGVsZXRlIiwibm9MYWJlbHMiLCJwbHVnaW5PcHRzIiwidmFsdWUiLCJub0NvcnJlY3RBbnN3ZXJFcnJvciIsInZhcmlhbnQiLCJvbkNsaWNrIiwiTWFpbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsInNob3dXYXJuaW5nIiwib25Nb2RlbENoYW5nZWQiLCJtaW5BbnN3ZXJDaG9pY2VzIiwic2V0U3RhdGUiLCJzcGxpY2UiLCJwdXNoIiwidXRpbHMiLCJmaXJzdEF2YWlsYWJsZUluZGV4IiwidHlwZSIsImNvcnJlY3QiLCJtZXJnZSIsImNvcnJlY3RGb3VuZCIsInJlbmRlciIsInN0YXRlIiwiRnJhZ21lbnQiLCJBbGVydERpYWxvZyIsIm9wZW4iLCJ0ZXh0Iiwib25Db25maXJtIiwiX2V4dGVuZHMyIiwiZXhwb3J0cyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJkaXNhYmxlU2lkZVBhbmVsIiwiYm9vbCIsImZ1bmMiLCJzaGFwZSIsImFkZCIsImRlbGV0ZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL21haW4uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sJztcbmltcG9ydCB7XG4gIEFsZXJ0RGlhbG9nLFxuICBJbnB1dENvbnRhaW5lcixcbiAgQ2hvaWNlQ29uZmlndXJhdGlvbixcbiAgc2V0dGluZ3MsXG4gIGxheW91dCxcbiAgY2hvaWNlVXRpbHMgYXMgdXRpbHMsXG59IGZyb20gJ0BwaWUtbGliL2NvbmZpZy11aSc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQnV0dG9uJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVG9vbHRpcCc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbXVpL21hdGVyaWFsL1R5cG9ncmFwaHknO1xuaW1wb3J0IEJveCBmcm9tICdAbXVpL21hdGVyaWFsL0JveCc7XG5pbXBvcnQgSW5mbyBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0luZm8nO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZVZhbGlkYXRpb25NZXNzYWdlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IHsgUGFuZWwsIHRvZ2dsZSwgcmFkaW8sIGRyb3Bkb3duIH0gPSBzZXR0aW5ncztcblxuY29uc3QgTUFYX0NIT0lDRVMgPSA5O1xuXG5jb25zdCBQcm9tcHRIb2xkZXIgPSBzdHlsZWQoSW5wdXRDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIHdpZHRoOiAnMTAwJScsXG4gIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcoMiksXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygyKSxcbn0pKTtcblxuY29uc3QgUmF0aW9uYWxlSG9sZGVyID0gc3R5bGVkKElucHV0Q29udGFpbmVyKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmbGV4OiAxLFxuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMS41KSxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygyKSxcbiAgbWFyZ2luTGVmdDogdGhlbWUuc3BhY2luZygzLjUpLFxufSkpO1xuXG5jb25zdCBDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyID0gc3R5bGVkKElucHV0Q29udGFpbmVyKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcoMSksXG4gIHdpZHRoOiAnMTAwJScsXG59KSk7XG5cblxuY29uc3QgQWRkQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDEpLFxuICBmbG9hdDogJ3JpZ2h0Jyxcbn0pKTtcblxuY29uc3QgRGlzYWJsZUJ1dHRvbiA9IHN0eWxlZChBZGRCdXR0b24pKHtcbiAgY3Vyc29yOiAnbm90LWFsbG93ZWQnLFxuICBwb2ludGVyRXZlbnRzOiAnYWxsJyxcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5kaXNhYmxlZCgpLFxuICAnJjpob3Zlcic6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRpc2FibGVkKCksXG4gIH0sXG4gICcmOmZvY3VzJzoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuZGlzYWJsZWQoKSxcbiAgfSxcbn0pO1xuXG5jb25zdCBGbGV4Q29udGFpbmVyID0gc3R5bGVkKEJveCkoe1xuICBkaXNwbGF5OiAnZmxleCcsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxufSk7XG5cbmNvbnN0IFRpdGxlVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSArIDIsXG4gIG1hcmdpblJpZ2h0OiB0aGVtZS5zcGFjaW5nKDEpLFxufSkpO1xuXG5jb25zdCBTdHlsZWRUb29sdGlwID0gc3R5bGVkKFRvb2x0aXApKCh7IHRoZW1lIH0pID0+ICh7XG4gICcmIC5NdWlUb29sdGlwLXRvb2x0aXAnOiB7XG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICAgIHdoaXRlU3BhY2U6ICdwcmUnLFxuICAgIG1heFdpZHRoOiAnNTAwcHgnLFxuICB9LFxufSkpO1xuXG5jb25zdCBFcnJvclRleHQgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIC0gMixcbiAgY29sb3I6IHRoZW1lLnBhbGV0dGUuZXJyb3IubWFpbixcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygxKSxcbn0pKTtcblxuY29uc3QgRGVzaWduID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBtb2RlbCxcbiAgICBjb25maWd1cmF0aW9uLFxuICAgIG9uUHJvbXB0Q2hhbmdlZCxcbiAgICBvbkNob2ljZUNoYW5nZWQsXG4gICAgb25SZW1vdmVDaG9pY2UsXG4gICAgb25BZGRDaG9pY2UsXG4gICAgaW1hZ2VTdXBwb3J0LFxuICAgIHVwbG9hZFNvdW5kU3VwcG9ydCxcbiAgICBvbkNoYW5nZU1vZGVsLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQsXG4gICAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHtcbiAgICBhZGRDaG9pY2VCdXR0b24gPSB7fSxcbiAgICBjb250ZW50RGltZW5zaW9ucyA9IHt9LFxuICAgIGZlZWRiYWNrID0ge30sXG4gICAgZGVsZXRlQ2hvaWNlID0ge30sXG4gICAgY2hvaWNlTW9kZSA9IHt9LFxuICAgIGNob2ljZVByZWZpeCA9IHt9LFxuICAgIHBhcnRpYWxTY29yaW5nID0ge30sXG4gICAgbG9ja0Nob2ljZU9yZGVyID0ge30sXG4gICAgdGVhY2hlckluc3RydWN0aW9ucyA9IHt9LFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnMgPSB7fSxcbiAgICByYXRpb25hbGUgPSB7fSxcbiAgICBzY29yaW5nVHlwZSA9IHt9LFxuICAgIHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMgPSB7fSxcbiAgICBzZXR0aW5nc1BhbmVsRGlzYWJsZWQsXG4gICAgY2hvaWNlc0xheW91dCxcbiAgICBzcGVsbENoZWNrID0ge30sXG4gICAgZ3JpZENvbHVtbnMsXG4gICAgbWF4SW1hZ2VXaWR0aCA9IHt9LFxuICAgIG1heEltYWdlSGVpZ2h0ID0ge30sXG4gICAgcHJvbXB0ID0ge30sXG4gICAgd2l0aFJ1YnJpYyA9IHt9LFxuICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICBsYW5ndWFnZSA9IHt9LFxuICAgIGxhbmd1YWdlQ2hvaWNlcyA9IHt9LFxuICB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgbGV0IHsgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgY29uc3Qge1xuICAgIGxpbWl0Q2hvaWNlc051bWJlcixcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCxcbiAgICByYXRpb25hbGVFbmFibGVkLFxuICAgIGZlZWRiYWNrRW5hYmxlZCxcbiAgICBwcm9tcHRFbmFibGVkLFxuICAgIHNwZWxsQ2hlY2tFbmFibGVkLFxuICAgIGNob2ljZXMsXG4gICAgZXJyb3JzLFxuICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbixcbiAgICBleHRyYUNTU1J1bGVzLFxuICB9ID0gbW9kZWwgfHwge307XG5cbiAgY29uc3Qge1xuICAgIGFuc3dlckNob2ljZXM6IGFuc3dlckNob2ljZXNFcnJvcixcbiAgICBjaG9pY2VzOiBjaG9pY2VzRXJyb3JzLFxuICAgIGNvcnJlY3RSZXNwb25zZTogY29ycmVjdFJlc3BvbnNlRXJyb3IsXG4gICAgcHJvbXB0OiBwcm9tcHRFcnJvcixcbiAgICByYXRpb25hbGU6IHJhdGlvbmFsZUVycm9ycyxcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IsXG4gIH0gPSBlcnJvcnMgfHwge307XG4gIGNvbnN0IG5yT2ZDb2x1bW5zQXZhaWxhYmxlID0gY2hvaWNlcz8ubGVuZ3RoID8gQXJyYXkuZnJvbSh7IGxlbmd0aDogY2hvaWNlcy5sZW5ndGggfSwgKF8sIGkpID0+IGAke2kgKyAxfWApIDogW107XG5cbiAgY29uc3QgeyBiYXNlSW5wdXRDb25maWd1cmF0aW9uID0ge30gfSA9IGNvbmZpZ3VyYXRpb247XG4gIGNvbnN0IHRvb2xiYXJPcHRzID0ge1xuICAgIHBvc2l0aW9uOiB0b29sYmFyRWRpdG9yUG9zaXRpb24gPT09ICd0b3AnID8gJ3RvcCcgOiAnYm90dG9tJyxcbiAgfTtcblxuICAvLyBpZiBvbGQgcHJvcGVydHkgaXMgdXNlZCwgc2V0IG1heEFuc3dlckNob2ljZXMgdG8gOVxuICBpZiAobGltaXRDaG9pY2VzTnVtYmVyKSB7XG4gICAgbWF4QW5zd2VyQ2hvaWNlcyA9IE1BWF9DSE9JQ0VTO1xuICB9XG5cbiAgY29uc3QgZ2V0UGx1Z2luUHJvcHMgPSAocHJvcHMgPSB7fSkgPT4gKHtcbiAgICAuLi5iYXNlSW5wdXRDb25maWd1cmF0aW9uLFxuICAgIC4uLnByb3BzLFxuICB9KTtcblxuICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZSA9IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UoY29uZmlndXJhdGlvbik7XG4gIGNvbnN0IGRlZmF1bHRJbWFnZU1heFdpZHRoID0gbWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnByb21wdDtcbiAgY29uc3QgZGVmYXVsdEltYWdlTWF4SGVpZ2h0ID0gbWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQucHJvbXB0O1xuICBjb25zdCBhZGRDaG9pY2VCdXR0b25Ub29sdGlwID1cbiAgICBtYXhBbnN3ZXJDaG9pY2VzICYmIGNob2ljZXM/Lmxlbmd0aCA+PSBtYXhBbnN3ZXJDaG9pY2VzID8gYE9ubHkgJHttYXhBbnN3ZXJDaG9pY2VzfSBhbGxvd2VkIG1heGltdW1gIDogJyc7XG5cbiAgY29uc3QgcGFuZWxTZXR0aW5ncyA9IHtcbiAgICBjaG9pY2VNb2RlOiBjaG9pY2VNb2RlLnNldHRpbmdzICYmIHJhZGlvKGNob2ljZU1vZGUubGFiZWwsIFsnY2hlY2tib3gnLCAncmFkaW8nXSksXG4gICAgJ3NlcXVlbnRpYWxDaG9pY2VMYWJlbHMuZW5hYmxlZCc6IHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMuc2V0dGluZ3MgJiYgdG9nZ2xlKHNlcXVlbnRpYWxDaG9pY2VMYWJlbHMubGFiZWwsIHRydWUpLFxuICAgIGNob2ljZVByZWZpeDogY2hvaWNlUHJlZml4LnNldHRpbmdzICYmIHJhZGlvKGNob2ljZVByZWZpeC5sYWJlbCwgWydudW1iZXJzJywgJ2xldHRlcnMnXSksXG4gICAgcGFydGlhbFNjb3Jpbmc6IHBhcnRpYWxTY29yaW5nLnNldHRpbmdzICYmIHRvZ2dsZShwYXJ0aWFsU2NvcmluZy5sYWJlbCksXG4gICAgbG9ja0Nob2ljZU9yZGVyOiBsb2NrQ2hvaWNlT3JkZXIuc2V0dGluZ3MgJiYgdG9nZ2xlKGxvY2tDaG9pY2VPcmRlci5sYWJlbCksXG4gICAgZmVlZGJhY2tFbmFibGVkOiBmZWVkYmFjay5zZXR0aW5ncyAmJiB0b2dnbGUoZmVlZGJhY2subGFiZWwpLFxuICAgIGNob2ljZXNMYXlvdXQ6IGNob2ljZXNMYXlvdXQuc2V0dGluZ3MgJiYgZHJvcGRvd24oY2hvaWNlc0xheW91dC5sYWJlbCwgWyd2ZXJ0aWNhbCcsICdncmlkJywgJ2hvcml6b250YWwnXSksXG4gICAgZ3JpZENvbHVtbnM6XG4gICAgICBjaG9pY2VzTGF5b3V0LnNldHRpbmdzICYmXG4gICAgICBtb2RlbC5jaG9pY2VzTGF5b3V0ID09PSAnZ3JpZCcgJiZcbiAgICAgIG5yT2ZDb2x1bW5zQXZhaWxhYmxlLmxlbmd0aCA+IDAgJiZcbiAgICAgIGRyb3Bkb3duKGdyaWRDb2x1bW5zLmxhYmVsLCBuck9mQ29sdW1uc0F2YWlsYWJsZSksXG4gICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgIGxhbmd1YWdlOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiBsYW5ndWFnZS5lbmFibGVkICYmIGRyb3Bkb3duKGxhbmd1YWdlQ2hvaWNlcy5sYWJlbCwgbGFuZ3VhZ2VDaG9pY2VzLm9wdGlvbnMpLFxuICB9O1xuXG4gIGNvbnN0IHBhbmVsUHJvcGVydGllcyA9IHtcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUodGVhY2hlckluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgc3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQ6IHN0dWRlbnRJbnN0cnVjdGlvbnMuc2V0dGluZ3MgJiYgdG9nZ2xlKHN0dWRlbnRJbnN0cnVjdGlvbnMubGFiZWwpLFxuICAgIHByb21wdEVuYWJsZWQ6IHByb21wdC5zZXR0aW5ncyAmJiB0b2dnbGUocHJvbXB0LmxhYmVsKSxcbiAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgc3BlbGxDaGVja0VuYWJsZWQ6IHNwZWxsQ2hlY2suc2V0dGluZ3MgJiYgdG9nZ2xlKHNwZWxsQ2hlY2subGFiZWwpLFxuICAgIHNjb3JpbmdUeXBlOiBzY29yaW5nVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhzY29yaW5nVHlwZS5sYWJlbCwgWydhdXRvJywgJ3J1YnJpYyddKSxcbiAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGxheW91dC5Db25maWdMYXlvdXRcbiAgICAgIGRpbWVuc2lvbnM9e2NvbnRlbnREaW1lbnNpb25zfVxuICAgICAgaGlkZVNldHRpbmdzPXtzZXR0aW5nc1BhbmVsRGlzYWJsZWR9XG4gICAgICBleHRyYUNTU1J1bGVzPXtleHRyYUNTU1J1bGVzfVxuICAgICAgY2xhc3Nlcz17e319XG4gICAgICBzZXR0aW5ncz17XG4gICAgICAgIDxQYW5lbFxuICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICBvbkNoYW5nZU1vZGVsPXtvbkNoYW5nZU1vZGVsfVxuICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgb25DaGFuZ2VDb25maWd1cmF0aW9uPXtvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkfVxuICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgU2V0dGluZ3M6IHBhbmVsU2V0dGluZ3MsXG4gICAgICAgICAgICBQcm9wZXJ0aWVzOiBwYW5lbFByb3BlcnRpZXMsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICB7dGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQgJiYgKFxuICAgICAgICA8UHJvbXB0SG9sZGVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZH1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgICAgICAgICAgICBlcnJvcj17dGVhY2hlckluc3RydWN0aW9uc0Vycm9yfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhjb25maWd1cmF0aW9uPy50ZWFjaGVySW5zdHJ1Y3Rpb25zPy5pbnB1dENvbmZpZ3VyYXRpb24pfVxuICAgICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC50ZWFjaGVySW5zdHJ1Y3Rpb25zKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvciAmJiA8RXJyb3JUZXh0Pnt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9PC9FcnJvclRleHQ+fVxuICAgICAgICA8L1Byb21wdEhvbGRlcj5cbiAgICAgICl9XG5cbiAgICAgIHtwcm9tcHRFbmFibGVkICYmIChcbiAgICAgICAgPFByb21wdEhvbGRlciBsYWJlbD17cHJvbXB0LmxhYmVsfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC5wcm9tcHR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblByb21wdENoYW5nZWR9XG4gICAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgICBub25FbXB0eT17ZmFsc2V9XG4gICAgICAgICAgICAgIGRpc2FibGVVbmRlcmxpbmVcbiAgICAgICAgICAgICAgZXJyb3I9e3Byb21wdEVycm9yfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHBsdWdpblByb3BzPXtnZXRQbHVnaW5Qcm9wcyhjb25maWd1cmF0aW9uPy5wcm9tcHQ/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXttYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0fVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17bWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQucHJvbXB0fVxuICAgICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIHtwcm9tcHRFcnJvciAmJiA8RXJyb3JUZXh0Pntwcm9tcHRFcnJvcn08L0Vycm9yVGV4dD59XG4gICAgICAgIDwvUHJvbXB0SG9sZGVyPlxuICAgICAgKX1cblxuICAgICAgPEZsZXhDb250YWluZXI+XG4gICAgICAgIDxUaXRsZVRleHQgY29tcG9uZW50PXsnZGl2J30+XG4gICAgICAgICAgQ2hvaWNlc1xuICAgICAgICA8L1RpdGxlVGV4dD5cbiAgICAgICAgPFN0eWxlZFRvb2x0aXBcbiAgICAgICAgICBkaXNhYmxlRm9jdXNMaXN0ZW5lclxuICAgICAgICAgIGRpc2FibGVUb3VjaExpc3RlbmVyXG4gICAgICAgICAgcGxhY2VtZW50PXsncmlnaHQnfVxuICAgICAgICAgIHRpdGxlPXt2YWxpZGF0aW9uTWVzc2FnZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxJbmZvIGZvbnRTaXplPXsnc21hbGwnfSBjb2xvcj17J3ByaW1hcnknfSAvPlxuICAgICAgICA8L1N0eWxlZFRvb2x0aXA+XG4gICAgICA8L0ZsZXhDb250YWluZXI+XG5cbiAgICAgIHtjaG9pY2VzLm1hcCgoY2hvaWNlLCBpbmRleCkgPT4gKFxuICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvbkhvbGRlciBrZXk9e2BjaG9pY2UtJHtpbmRleH1gfT5cbiAgICAgICAgICA8Q2hvaWNlQ29uZmlndXJhdGlvblxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleCArIDF9XG4gICAgICAgICAgICB1c2VMZXR0ZXJPcmRlcmluZz17bW9kZWwuY2hvaWNlUHJlZml4ID09PSAnbGV0dGVycyd9XG4gICAgICAgICAgICBtb2RlPXttb2RlbC5jaG9pY2VNb2RlfVxuICAgICAgICAgICAgZGF0YT17Y2hvaWNlfVxuICAgICAgICAgICAgZGVmYXVsdEZlZWRiYWNrPXt7fX1cbiAgICAgICAgICAgIGltYWdlU3VwcG9ydD17aW1hZ2VTdXBwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucz17dHJ1ZX1cbiAgICAgICAgICAgIG9uRGVsZXRlPXsoKSA9PiBvblJlbW92ZUNob2ljZShpbmRleCl9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGMpID0+IG9uQ2hvaWNlQ2hhbmdlZChpbmRleCwgYyl9XG4gICAgICAgICAgICBhbGxvd0ZlZWRCYWNrPXtmZWVkYmFja0VuYWJsZWR9XG4gICAgICAgICAgICBhbGxvd0RlbGV0ZT17ZGVsZXRlQ2hvaWNlLnNldHRpbmdzfVxuICAgICAgICAgICAgbm9MYWJlbHNcbiAgICAgICAgICAgIHBsdWdpbk9wdHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LmNob2ljZXM/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgICAgIGVycm9yPXtjaG9pY2VzRXJyb3JzPy5bY2hvaWNlLnZhbHVlXSB8fCBudWxsfVxuICAgICAgICAgICAgbm9Db3JyZWN0QW5zd2VyRXJyb3I9e2NvcnJlY3RSZXNwb25zZUVycm9yfVxuICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC5jaG9pY2VzKSB8fCBkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0PXsobWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQuY2hvaWNlcykgfHwgZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7cmF0aW9uYWxlRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICA8UmF0aW9uYWxlSG9sZGVyIGtleT17YHJhdGlvbmFsZS0ke2luZGV4fWB9IGxhYmVsPXtyYXRpb25hbGUubGFiZWx9PlxuICAgICAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgICAgIG1hcmt1cD17Y2hvaWNlLnJhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoYykgPT4gb25DaG9pY2VDaGFuZ2VkKGluZGV4LCB7IC4uLmNob2ljZSwgcmF0aW9uYWxlOiBjIH0pfVxuICAgICAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgICAgICBlcnJvcj17cmF0aW9uYWxlRXJyb3JzPy5bY2hvaWNlLnZhbHVlXSB8fCBudWxsfVxuICAgICAgICAgICAgICAgICAgdG9vbGJhck9wdHM9e3Rvb2xiYXJPcHRzfVxuICAgICAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LnJhdGlvbmFsZT8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgbWF4SW1hZ2VXaWR0aD17KG1heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5yYXRpb25hbGUpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2VDaGFyYWN0ZXJzUHJvcHM9e1t7IGxhbmd1YWdlOiAnc3BhbmlzaCcgfSwgeyBsYW5ndWFnZTogJ3NwZWNpYWwnIH1dfVxuICAgICAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtyYXRpb25hbGVFcnJvcnM/LltjaG9pY2UudmFsdWVdICYmIChcbiAgICAgICAgICAgICAgICAgIDxFcnJvclRleHQ+e3JhdGlvbmFsZUVycm9ycz8uW2Nob2ljZS52YWx1ZV19PC9FcnJvclRleHQ+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUmF0aW9uYWxlSG9sZGVyPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvQ2hvaWNlQ29uZmlndXJhdGlvbkhvbGRlcj5cbiAgICAgICkpfVxuXG4gICAgICB7Y29ycmVjdFJlc3BvbnNlRXJyb3IgJiYgPEVycm9yVGV4dD57Y29ycmVjdFJlc3BvbnNlRXJyb3J9PC9FcnJvclRleHQ+fVxuICAgICAge2Fuc3dlckNob2ljZXNFcnJvciAmJiA8RXJyb3JUZXh0PnthbnN3ZXJDaG9pY2VzRXJyb3J9PC9FcnJvclRleHQ+fVxuXG4gICAgICB7YWRkQ2hvaWNlQnV0dG9uLnNldHRpbmdzICYmIChcbiAgICAgICAgPFN0eWxlZFRvb2x0aXAgdGl0bGU9e2FkZENob2ljZUJ1dHRvblRvb2x0aXB9PlxuICAgICAgICAgIHttYXhBbnN3ZXJDaG9pY2VzICYmIGNob2ljZXM/Lmxlbmd0aCA+PSBtYXhBbnN3ZXJDaG9pY2VzID8gKFxuICAgICAgICAgICAgPERpc2FibGVCdXR0b25cbiAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uQWRkQ2hvaWNlfVxuICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YWRkQ2hvaWNlQnV0dG9uLmxhYmVsfVxuICAgICAgICAgICAgPC9EaXNhYmxlQnV0dG9uPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8QWRkQnV0dG9uXG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXtvbkFkZENob2ljZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2FkZENob2ljZUJ1dHRvbi5sYWJlbH1cbiAgICAgICAgICAgIDwvQWRkQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU3R5bGVkVG9vbHRpcD5cbiAgICAgICl9XG4gICAgPC9sYXlvdXQuQ29uZmlnTGF5b3V0PlxuICApO1xufTtcblxuZXhwb3J0IGNsYXNzIE1haW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG1vZGVsOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY29uZmlndXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGRpc2FibGVTaWRlUGFuZWw6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uTW9kZWxDaGFuZ2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgYWRkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgZGVsZXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICB9O1xuXG4gIHN0YXRlID0geyBzaG93V2FybmluZzogZmFsc2UgfTtcblxuICBvblJlbW92ZUNob2ljZSA9IChpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwsIGNvbmZpZ3VyYXRpb24sIG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgbWluQW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcblxuICAgIGlmIChtaW5BbnN3ZXJDaG9pY2VzICYmIG1vZGVsLmNob2ljZXMubGVuZ3RoID09PSBtaW5BbnN3ZXJDaG9pY2VzKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc2hvd1dhcm5pbmc6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtb2RlbC5jaG9pY2VzLnNwbGljZShpbmRleCwgMSk7XG4gICAgb25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICB9O1xuXG4gIG9uQWRkQ2hvaWNlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwsIGNvbmZpZ3VyYXRpb24sIG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7IG1heEFuc3dlckNob2ljZXMgfSA9IGNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgY29uc3QgeyBsaW1pdENob2ljZXNOdW1iZXIgfSA9IG1vZGVsIHx8IHt9O1xuXG4gICAgLy8gaWYgb2xkIHByb3BlcnR5IGlzIHVzZWQsIHNldCBtYXhBbnN3ZXJDaG9pY2VzIHRvIDlcbiAgICBpZiAobGltaXRDaG9pY2VzTnVtYmVyKSB7XG4gICAgICBtYXhBbnN3ZXJDaG9pY2VzID0gTUFYX0NIT0lDRVM7XG4gICAgfVxuXG4gICAgaWYgKG1heEFuc3dlckNob2ljZXMgJiYgbW9kZWwuY2hvaWNlcy5sZW5ndGggPj0gbWF4QW5zd2VyQ2hvaWNlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vZGVsLmNob2ljZXMucHVzaCh7XG4gICAgICBsYWJlbDogJycsXG4gICAgICB2YWx1ZTogdXRpbHMuZmlyc3RBdmFpbGFibGVJbmRleChcbiAgICAgICAgbW9kZWwuY2hvaWNlcy5tYXAoKGMpID0+IGMudmFsdWUpLFxuICAgICAgICAwLFxuICAgICAgKSxcbiAgICAgIGZlZWRiYWNrOiB7IHR5cGU6ICdub25lJyB9LFxuICAgIH0pO1xuXG4gICAgb25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICB9O1xuXG4gIG9uQ2hvaWNlQ2hhbmdlZCA9IChpbmRleCwgY2hvaWNlKSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoY2hvaWNlLmNvcnJlY3QgJiYgbW9kZWwuY2hvaWNlTW9kZSA9PT0gJ3JhZGlvJykge1xuICAgICAgbW9kZWwuY2hvaWNlcyA9IG1vZGVsLmNob2ljZXMubWFwKChjKSA9PiBtZXJnZSh7fSwgYywgeyBjb3JyZWN0OiBmYWxzZSB9KSk7XG4gICAgfVxuXG4gICAgbW9kZWwuY2hvaWNlcy5zcGxpY2UoaW5kZXgsIDEsIGNob2ljZSk7XG4gICAgb25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICB9O1xuXG4gIG9uUHJvbXB0Q2hhbmdlZCA9IChwcm9tcHQpID0+IHtcbiAgICB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLnRoaXMucHJvcHMubW9kZWwsXG4gICAgICBwcm9tcHQsXG4gICAgfSk7XG4gIH07XG5cbiAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZCA9ICh0ZWFjaGVySW5zdHJ1Y3Rpb25zKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5vbk1vZGVsQ2hhbmdlZCh7XG4gICAgICAuLi50aGlzLnByb3BzLm1vZGVsLFxuICAgICAgdGVhY2hlckluc3RydWN0aW9ucyxcbiAgICB9KTtcbiAgfTtcblxuICBvbk1vZGVsQ2hhbmdlZCA9IChtb2RlbCwga2V5KSA9PiB7XG4gICAgY29uc3QgeyBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdjaG9pY2VNb2RlJzoge1xuICAgICAgICBsZXQgdmFsdWUgPSBtb2RlbC5jaG9pY2VNb2RlO1xuXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJ3JhZGlvJykge1xuICAgICAgICAgIGxldCBjb3JyZWN0Rm91bmQgPSBmYWxzZTtcblxuICAgICAgICAgIG1vZGVsLmNob2ljZXMgPSBtb2RlbC5jaG9pY2VzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgaWYgKGNvcnJlY3RGb3VuZCkge1xuICAgICAgICAgICAgICBjLmNvcnJlY3QgPSBmYWxzZTtcblxuICAgICAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGMuY29ycmVjdCkge1xuICAgICAgICAgICAgICBjb3JyZWN0Rm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkKG1vZGVsLCB0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG9uTW9kZWxDaGFuZ2VkKG1vZGVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb246IHsgbWluQW5zd2VyQ2hvaWNlcyB9ID0ge30gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBzaG93V2FybmluZyB9ID0gdGhpcy5zdGF0ZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIDxBbGVydERpYWxvZ1xuICAgICAgICAgIG9wZW49e3Nob3dXYXJuaW5nfVxuICAgICAgICAgIHRpdGxlPVwiV2FybmluZ1wiXG4gICAgICAgICAgdGV4dD17YFRoZXJlIGNhbid0IGJlIGxlc3MgdGhhbiAke21pbkFuc3dlckNob2ljZXMgfHwgMH0gY2hvaWNlcy5gfVxuICAgICAgICAgIG9uQ29uZmlybT17KCkgPT4gdGhpcy5zZXRTdGF0ZSh7IHNob3dXYXJuaW5nOiBmYWxzZSB9KX1cbiAgICAgICAgLz5cbiAgICAgICAgPERlc2lnblxuICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgIG9uQ2hhbmdlTW9kZWw9e3RoaXMub25Nb2RlbENoYW5nZWR9XG4gICAgICAgICAgb25SZW1vdmVDaG9pY2U9e3RoaXMub25SZW1vdmVDaG9pY2V9XG4gICAgICAgICAgb25DaG9pY2VDaGFuZ2VkPXt0aGlzLm9uQ2hvaWNlQ2hhbmdlZH1cbiAgICAgICAgICBvbkFkZENob2ljZT17dGhpcy5vbkFkZENob2ljZX1cbiAgICAgICAgICBvblByb21wdENoYW5nZWQ9e3RoaXMub25Qcm9tcHRDaGFuZ2VkfVxuICAgICAgICAgIG9uVGVhY2hlckluc3RydWN0aW9uc0NoYW5nZWQ9e3RoaXMub25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZH1cbiAgICAgICAgLz5cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYWluO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFRQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxJQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFFQSxNQUFNO0VBQUVhLEtBQUs7RUFBRUMsTUFBTTtFQUFFQyxLQUFLO0VBQUVDO0FBQVMsQ0FBQyxHQUFHQyxrQkFBUTtBQUVuRCxNQUFNQyxXQUFXLEdBQUcsQ0FBQztBQUVyQixNQUFNQyxZQUFZLEdBQUcsSUFBQUMsY0FBTSxFQUFDQyx3QkFBYyxDQUFDLENBQUMsQ0FBQztFQUFFQztBQUFNLENBQUMsTUFBTTtFQUMxREMsS0FBSyxFQUFFLE1BQU07RUFDYkMsVUFBVSxFQUFFRixLQUFLLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDNUJDLFlBQVksRUFBRUosS0FBSyxDQUFDRyxPQUFPLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1FLGVBQWUsR0FBRyxJQUFBUCxjQUFNLEVBQUNDLHdCQUFjLENBQUMsQ0FBQyxDQUFDO0VBQUVDO0FBQU0sQ0FBQyxNQUFNO0VBQzdETSxJQUFJLEVBQUUsQ0FBQztFQUNQQyxTQUFTLEVBQUVQLEtBQUssQ0FBQ0csT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUM3QkQsVUFBVSxFQUFFRixLQUFLLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDNUJLLFVBQVUsRUFBRVIsS0FBSyxDQUFDRyxPQUFPLENBQUMsR0FBRztBQUMvQixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1NLHlCQUF5QixHQUFHLElBQUFYLGNBQU0sRUFBQ0Msd0JBQWMsQ0FBQyxDQUFDLENBQUM7RUFBRUM7QUFBTSxDQUFDLE1BQU07RUFDdkVVLE9BQU8sRUFBRSxNQUFNO0VBQ2ZDLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCUCxZQUFZLEVBQUVKLEtBQUssQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQztFQUM5QkYsS0FBSyxFQUFFO0FBQ1QsQ0FBQyxDQUFDLENBQUM7QUFHSCxNQUFNVyxTQUFTLEdBQUcsSUFBQWQsY0FBTSxFQUFDZSxlQUFNLENBQUMsQ0FBQyxDQUFDO0VBQUViO0FBQU0sQ0FBQyxNQUFNO0VBQy9DTyxTQUFTLEVBQUVQLEtBQUssQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQztFQUMzQlcsS0FBSyxFQUFFO0FBQ1QsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNQyxhQUFhLEdBQUcsSUFBQWpCLGNBQU0sRUFBQ2MsU0FBUyxDQUFDLENBQUM7RUFDdENJLE1BQU0sRUFBRSxhQUFhO0VBQ3JCQyxhQUFhLEVBQUUsS0FBSztFQUNwQkMsZUFBZSxFQUFFQyxlQUFLLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0VBQ2pDLFNBQVMsRUFBRTtJQUNURixlQUFlLEVBQUVDLGVBQUssQ0FBQ0MsUUFBUSxDQUFDO0VBQ2xDLENBQUM7RUFDRCxTQUFTLEVBQUU7SUFDVEYsZUFBZSxFQUFFQyxlQUFLLENBQUNDLFFBQVEsQ0FBQztFQUNsQztBQUNGLENBQUMsQ0FBQztBQUVGLE1BQU1DLGFBQWEsR0FBRyxJQUFBdkIsY0FBTSxFQUFDd0IsWUFBRyxDQUFDLENBQUM7RUFDaENaLE9BQU8sRUFBRSxNQUFNO0VBQ2ZhLFVBQVUsRUFBRTtBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU1DLFNBQVMsR0FBRyxJQUFBMUIsY0FBTSxFQUFDMkIsbUJBQVUsQ0FBQyxDQUFDLENBQUM7RUFBRXpCO0FBQU0sQ0FBQyxNQUFNO0VBQ25EMEIsUUFBUSxFQUFFMUIsS0FBSyxDQUFDMkIsVUFBVSxDQUFDRCxRQUFRLEdBQUcsQ0FBQztFQUN2Q0UsV0FBVyxFQUFFNUIsS0FBSyxDQUFDRyxPQUFPLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0wQixhQUFhLEdBQUcsSUFBQS9CLGNBQU0sRUFBQ2dDLGdCQUFPLENBQUMsQ0FBQyxDQUFDO0VBQUU5QjtBQUFNLENBQUMsTUFBTTtFQUNwRCx1QkFBdUIsRUFBRTtJQUN2QjBCLFFBQVEsRUFBRTFCLEtBQUssQ0FBQzJCLFVBQVUsQ0FBQ0QsUUFBUSxHQUFHLENBQUM7SUFDdkNLLFVBQVUsRUFBRSxLQUFLO0lBQ2pCQyxRQUFRLEVBQUU7RUFDWjtBQUNGLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsU0FBUyxHQUFHLElBQUFuQyxjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztFQUFFRTtBQUFNLENBQUMsTUFBTTtFQUM5QzBCLFFBQVEsRUFBRTFCLEtBQUssQ0FBQzJCLFVBQVUsQ0FBQ0QsUUFBUSxHQUFHLENBQUM7RUFDdkNQLEtBQUssRUFBRW5CLEtBQUssQ0FBQ2tDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDQyxJQUFJO0VBQy9CbEMsVUFBVSxFQUFFRixLQUFLLENBQUNHLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTWtDLE1BQU0sR0FBSUMsS0FBSyxJQUFLO0VBQ3hCLE1BQU07SUFDSkMsS0FBSztJQUNMQyxhQUFhO0lBQ2JDLGVBQWU7SUFDZkMsZUFBZTtJQUNmQyxjQUFjO0lBQ2RDLFdBQVc7SUFDWEMsWUFBWTtJQUNaQyxrQkFBa0I7SUFDbEJDLGFBQWE7SUFDYkMsc0JBQXNCO0lBQ3RCQztFQUNGLENBQUMsR0FBR1gsS0FBSztFQUVULE1BQU07SUFDSlksZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQkMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2JDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakJDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDZkMsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQkMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQkMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQkMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7SUFDeEJDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZEMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNoQkMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO0lBQzNCQyxxQkFBcUI7SUFDckJDLGFBQWE7SUFDYkMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmQyxXQUFXO0lBQ1hDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDbEJDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkJDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDWEMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2JDLGVBQWUsR0FBRyxDQUFDO0VBQ3JCLENBQUMsR0FBR2pDLGFBQWEsSUFBSSxDQUFDLENBQUM7RUFDdkIsSUFBSTtJQUFFa0M7RUFBaUIsQ0FBQyxHQUFHbEMsYUFBYSxJQUFJLENBQUMsQ0FBQztFQUM5QyxNQUFNO0lBQ0ptQyxrQkFBa0I7SUFDbEJDLDBCQUEwQjtJQUMxQkMsZ0JBQWdCO0lBQ2hCQyxlQUFlO0lBQ2ZDLGFBQWE7SUFDYkMsaUJBQWlCO0lBQ2pCQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMscUJBQXFCO0lBQ3JCQztFQUNGLENBQUMsR0FBRzdDLEtBQUssSUFBSSxDQUFDLENBQUM7RUFFZixNQUFNO0lBQ0o4QyxhQUFhLEVBQUVDLGtCQUFrQjtJQUNqQ0wsT0FBTyxFQUFFTSxhQUFhO0lBQ3RCQyxlQUFlLEVBQUVDLG9CQUFvQjtJQUNyQ3BCLE1BQU0sRUFBRXFCLFdBQVc7SUFDbkI5QixTQUFTLEVBQUUrQixlQUFlO0lBQzFCakMsbUJBQW1CLEVBQUVrQztFQUN2QixDQUFDLEdBQUdWLE1BQU0sSUFBSSxDQUFDLENBQUM7RUFDaEIsTUFBTVcsb0JBQW9CLEdBQUdaLE9BQU8sRUFBRWEsTUFBTSxHQUFHQyxLQUFLLENBQUNDLElBQUksQ0FBQztJQUFFRixNQUFNLEVBQUViLE9BQU8sQ0FBQ2E7RUFBTyxDQUFDLEVBQUUsQ0FBQ0csQ0FBQyxFQUFFQyxDQUFDLEtBQUssR0FBR0EsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRTtFQUVoSCxNQUFNO0lBQUVDLHNCQUFzQixHQUFHLENBQUM7RUFBRSxDQUFDLEdBQUczRCxhQUFhO0VBQ3JELE1BQU00RCxXQUFXLEdBQUc7SUFDbEJDLFFBQVEsRUFBRWxCLHFCQUFxQixLQUFLLEtBQUssR0FBRyxLQUFLLEdBQUc7RUFDdEQsQ0FBQzs7RUFFRDtFQUNBLElBQUlSLGtCQUFrQixFQUFFO0lBQ3RCRCxnQkFBZ0IsR0FBRzlFLFdBQVc7RUFDaEM7RUFFQSxNQUFNMEcsY0FBYyxHQUFHQSxDQUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNO0lBQ3RDLEdBQUc2RCxzQkFBc0I7SUFDekIsR0FBRzdEO0VBQ0wsQ0FBQyxDQUFDO0VBRUYsTUFBTWlFLGlCQUFpQixHQUFHLElBQUFDLGdDQUF5QixFQUFDaEUsYUFBYSxDQUFDO0VBQ2xFLE1BQU1pRSxvQkFBb0IsR0FBR3RDLGFBQWEsSUFBSUEsYUFBYSxDQUFDRSxNQUFNO0VBQ2xFLE1BQU1xQyxxQkFBcUIsR0FBR3RDLGNBQWMsSUFBSUEsY0FBYyxDQUFDQyxNQUFNO0VBQ3JFLE1BQU1zQyxzQkFBc0IsR0FDMUJqQyxnQkFBZ0IsSUFBSU8sT0FBTyxFQUFFYSxNQUFNLElBQUlwQixnQkFBZ0IsR0FBRyxRQUFRQSxnQkFBZ0Isa0JBQWtCLEdBQUcsRUFBRTtFQUUzRyxNQUFNa0MsYUFBYSxHQUFHO0lBQ3BCdEQsVUFBVSxFQUFFQSxVQUFVLENBQUMzRCxRQUFRLElBQUlGLEtBQUssQ0FBQzZELFVBQVUsQ0FBQ3VELEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRixnQ0FBZ0MsRUFBRS9DLHNCQUFzQixDQUFDbkUsUUFBUSxJQUFJSCxNQUFNLENBQUNzRSxzQkFBc0IsQ0FBQytDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDL0d0RCxZQUFZLEVBQUVBLFlBQVksQ0FBQzVELFFBQVEsSUFBSUYsS0FBSyxDQUFDOEQsWUFBWSxDQUFDc0QsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hGckQsY0FBYyxFQUFFQSxjQUFjLENBQUM3RCxRQUFRLElBQUlILE1BQU0sQ0FBQ2dFLGNBQWMsQ0FBQ3FELEtBQUssQ0FBQztJQUN2RXBELGVBQWUsRUFBRUEsZUFBZSxDQUFDOUQsUUFBUSxJQUFJSCxNQUFNLENBQUNpRSxlQUFlLENBQUNvRCxLQUFLLENBQUM7SUFDMUUvQixlQUFlLEVBQUUxQixRQUFRLENBQUN6RCxRQUFRLElBQUlILE1BQU0sQ0FBQzRELFFBQVEsQ0FBQ3lELEtBQUssQ0FBQztJQUM1RDdDLGFBQWEsRUFBRUEsYUFBYSxDQUFDckUsUUFBUSxJQUFJRCxRQUFRLENBQUNzRSxhQUFhLENBQUM2QyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFHM0MsV0FBVyxFQUNURixhQUFhLENBQUNyRSxRQUFRLElBQ3RCNEMsS0FBSyxDQUFDeUIsYUFBYSxLQUFLLE1BQU0sSUFDOUI2QixvQkFBb0IsQ0FBQ0MsTUFBTSxHQUFHLENBQUMsSUFDL0JwRyxRQUFRLENBQUN3RSxXQUFXLENBQUMyQyxLQUFLLEVBQUVoQixvQkFBb0IsQ0FBQztJQUNuRCxrQkFBa0IsRUFBRXJCLFFBQVEsQ0FBQzdFLFFBQVEsSUFBSUgsTUFBTSxDQUFDZ0YsUUFBUSxDQUFDcUMsS0FBSyxFQUFFLElBQUksQ0FBQztJQUNyRXJDLFFBQVEsRUFBRUEsUUFBUSxDQUFDN0UsUUFBUSxJQUFJNkUsUUFBUSxDQUFDc0MsT0FBTyxJQUFJcEgsUUFBUSxDQUFDK0UsZUFBZSxDQUFDb0MsS0FBSyxFQUFFcEMsZUFBZSxDQUFDc0MsT0FBTztFQUM1RyxDQUFDO0VBRUQsTUFBTUMsZUFBZSxHQUFHO0lBQ3RCcEMsMEJBQTBCLEVBQUVsQixtQkFBbUIsQ0FBQy9ELFFBQVEsSUFBSUgsTUFBTSxDQUFDa0UsbUJBQW1CLENBQUNtRCxLQUFLLENBQUM7SUFDN0ZJLDBCQUEwQixFQUFFdEQsbUJBQW1CLENBQUNoRSxRQUFRLElBQUlILE1BQU0sQ0FBQ21FLG1CQUFtQixDQUFDa0QsS0FBSyxDQUFDO0lBQzdGOUIsYUFBYSxFQUFFVixNQUFNLENBQUMxRSxRQUFRLElBQUlILE1BQU0sQ0FBQzZFLE1BQU0sQ0FBQ3dDLEtBQUssQ0FBQztJQUN0RGhDLGdCQUFnQixFQUFFakIsU0FBUyxDQUFDakUsUUFBUSxJQUFJSCxNQUFNLENBQUNvRSxTQUFTLENBQUNpRCxLQUFLLENBQUM7SUFDL0Q3QixpQkFBaUIsRUFBRWYsVUFBVSxDQUFDdEUsUUFBUSxJQUFJSCxNQUFNLENBQUN5RSxVQUFVLENBQUM0QyxLQUFLLENBQUM7SUFDbEVoRCxXQUFXLEVBQUVBLFdBQVcsQ0FBQ2xFLFFBQVEsSUFBSUYsS0FBSyxDQUFDb0UsV0FBVyxDQUFDZ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGSyxhQUFhLEVBQUU1QyxVQUFVLEVBQUUzRSxRQUFRLElBQUlILE1BQU0sQ0FBQzhFLFVBQVUsRUFBRXVDLEtBQUs7RUFDakUsQ0FBQztFQUVELG9CQUNFckksTUFBQSxDQUFBMkksT0FBQSxDQUFBQyxhQUFBLENBQUN0SSxTQUFBLENBQUF1SSxNQUFNLENBQUNDLFlBQVk7SUFDbEJDLFVBQVUsRUFBRXBFLGlCQUFrQjtJQUM5QnFFLFlBQVksRUFBRXpELHFCQUFzQjtJQUNwQ3FCLGFBQWEsRUFBRUEsYUFBYztJQUM3QnFDLE9BQU8sRUFBRSxDQUFDLENBQUU7SUFDWjlILFFBQVEsZUFDTm5CLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDN0gsS0FBSztNQUNKZ0QsS0FBSyxFQUFFQSxLQUFNO01BQ2JRLGFBQWEsRUFBRUEsYUFBYztNQUM3QlAsYUFBYSxFQUFFQSxhQUFjO01BQzdCa0YscUJBQXFCLEVBQUUxRSxzQkFBdUI7TUFDOUMyRSxNQUFNLEVBQUU7UUFDTkMsUUFBUSxFQUFFaEIsYUFBYTtRQUN2QmlCLFVBQVUsRUFBRWI7TUFDZDtJQUFFLENBQ0g7RUFDRixHQUVBcEMsMEJBQTBCLGlCQUN6QnBHLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkgsWUFBWTtJQUFDZ0gsS0FBSyxFQUFFbkQsbUJBQW1CLENBQUNtRDtFQUFNLGdCQUMzQ3JJLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkksYUFBQSxDQUFBc0ksT0FBWTtJQUNYVyxNQUFNLEVBQUV2RixLQUFLLENBQUNtQixtQkFBbUIsSUFBSSxFQUFHO0lBQ3hDcUUsUUFBUSxFQUFFOUUsNEJBQTZCO0lBQ3ZDSixZQUFZLEVBQUVBLFlBQWE7SUFDM0JtRixRQUFRLEVBQUUsS0FBTTtJQUNoQkMsZ0JBQWdCO0lBQ2hCOUYsS0FBSyxFQUFFeUQsd0JBQXlCO0lBQ2hDUSxXQUFXLEVBQUVBLFdBQVk7SUFDekI4QixXQUFXLEVBQUU1QixjQUFjLENBQUM5RCxhQUFhLEVBQUVrQixtQkFBbUIsRUFBRXlFLGtCQUFrQixDQUFFO0lBQ3BGbEUsVUFBVSxFQUFFZSxpQkFBa0I7SUFDOUJiLGFBQWEsRUFBR0EsYUFBYSxJQUFJQSxhQUFhLENBQUNULG1CQUFtQixJQUFLK0Msb0JBQXFCO0lBQzVGckMsY0FBYyxFQUFHQSxjQUFjLElBQUlBLGNBQWMsQ0FBQ1YsbUJBQW1CLElBQUtnRCxxQkFBc0I7SUFDaEc1RCxrQkFBa0IsRUFBRUEsa0JBQW1CO0lBQ3ZDc0YsdUJBQXVCLEVBQUUsQ0FBQztNQUFFNUQsUUFBUSxFQUFFO0lBQVUsQ0FBQyxFQUFFO01BQUVBLFFBQVEsRUFBRTtJQUFVLENBQUMsQ0FBRTtJQUM1RUQsYUFBYSxFQUFFQTtFQUFjLENBQzlCLENBQUMsRUFDRHFCLHdCQUF3QixpQkFBSXBILE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbkYsU0FBUyxRQUFFMkQsd0JBQW9DLENBQ25FLENBQ2YsRUFFQWIsYUFBYSxpQkFDWnZHLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkgsWUFBWTtJQUFDZ0gsS0FBSyxFQUFFeEMsTUFBTSxDQUFDd0M7RUFBTSxnQkFDOUJySSxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ3ZJLGFBQUEsQ0FBQXNJLE9BQVk7SUFDWFcsTUFBTSxFQUFFdkYsS0FBSyxDQUFDOEIsTUFBTztJQUNyQjBELFFBQVEsRUFBRXRGLGVBQWdCO0lBQzFCSSxZQUFZLEVBQUVBLFlBQWE7SUFDM0JtRixRQUFRLEVBQUUsS0FBTTtJQUNoQkMsZ0JBQWdCO0lBQ2hCOUYsS0FBSyxFQUFFdUQsV0FBWTtJQUNuQlUsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCOEIsV0FBVyxFQUFFNUIsY0FBYyxDQUFDOUQsYUFBYSxFQUFFNkIsTUFBTSxFQUFFOEQsa0JBQWtCLENBQUU7SUFDdkVsRSxVQUFVLEVBQUVlLGlCQUFrQjtJQUM5QmIsYUFBYSxFQUFFQSxhQUFhLElBQUlBLGFBQWEsQ0FBQ0UsTUFBTztJQUNyREQsY0FBYyxFQUFFQSxjQUFjLElBQUlBLGNBQWMsQ0FBQ0MsTUFBTztJQUN4RHZCLGtCQUFrQixFQUFFQSxrQkFBbUI7SUFDdkNzRix1QkFBdUIsRUFBRSxDQUFDO01BQUU1RCxRQUFRLEVBQUU7SUFBVSxDQUFDLEVBQUU7TUFBRUEsUUFBUSxFQUFFO0lBQVUsQ0FBQyxDQUFFO0lBQzVFRCxhQUFhLEVBQUVBO0VBQWMsQ0FDOUIsQ0FBQyxFQUNEbUIsV0FBVyxpQkFBSWxILE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbkYsU0FBUyxRQUFFeUQsV0FBdUIsQ0FDekMsQ0FDZixlQUVEbEgsTUFBQSxDQUFBMkksT0FBQSxDQUFBQyxhQUFBLENBQUMvRixhQUFhLHFCQUNaN0MsTUFBQSxDQUFBMkksT0FBQSxDQUFBQyxhQUFBLENBQUM1RixTQUFTO0lBQUM2RyxTQUFTLEVBQUU7RUFBTSxHQUFDLFNBRWxCLENBQUMsZUFDWjdKLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkYsYUFBYTtJQUNaeUcsb0JBQW9CO0lBQ3BCQyxvQkFBb0I7SUFDcEJDLFNBQVMsRUFBRSxPQUFRO0lBQ25CQyxLQUFLLEVBQUVsQztFQUFrQixnQkFFekIvSCxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ2hJLEtBQUEsQ0FBQStILE9BQUk7SUFBQ3pGLFFBQVEsRUFBRSxPQUFRO0lBQUNQLEtBQUssRUFBRTtFQUFVLENBQUUsQ0FDL0IsQ0FDRixDQUFDLEVBRWY4RCxPQUFPLENBQUN5RCxHQUFHLENBQUMsQ0FBQ0MsTUFBTSxFQUFFQyxLQUFLLGtCQUN6QnBLLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDM0cseUJBQXlCO0lBQUNvSSxHQUFHLEVBQUUsVUFBVUQsS0FBSztFQUFHLGdCQUNoRHBLLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdEksU0FBQSxDQUFBZ0ssbUJBQW1CO0lBQ2xCRCxHQUFHLEVBQUVELEtBQU07SUFDWEEsS0FBSyxFQUFFQSxLQUFLLEdBQUcsQ0FBRTtJQUNqQkcsaUJBQWlCLEVBQUV4RyxLQUFLLENBQUNnQixZQUFZLEtBQUssU0FBVTtJQUNwRHlGLElBQUksRUFBRXpHLEtBQUssQ0FBQ2UsVUFBVztJQUN2QjJGLElBQUksRUFBRU4sTUFBTztJQUNiTyxlQUFlLEVBQUUsQ0FBQyxDQUFFO0lBQ3BCckcsWUFBWSxFQUFFQSxZQUFhO0lBQzNCc0csNEJBQTRCLEVBQUUsSUFBSztJQUNuQ0MsUUFBUSxFQUFFQSxDQUFBLEtBQU16RyxjQUFjLENBQUNpRyxLQUFLLENBQUU7SUFDdENiLFFBQVEsRUFBR3NCLENBQUMsSUFBSzNHLGVBQWUsQ0FBQ2tHLEtBQUssRUFBRVMsQ0FBQyxDQUFFO0lBQzNDQyxhQUFhLEVBQUV4RSxlQUFnQjtJQUMvQnlFLFdBQVcsRUFBRWxHLFlBQVksQ0FBQzFELFFBQVM7SUFDbkM2SixRQUFRO0lBQ1JDLFVBQVUsRUFBRW5ELGNBQWMsQ0FBQzlELGFBQWEsRUFBRXlDLE9BQU8sRUFBRWtELGtCQUFrQixDQUFFO0lBQ3ZFL0IsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCbkMsVUFBVSxFQUFFZSxpQkFBa0I7SUFDOUI3QyxLQUFLLEVBQUVvRCxhQUFhLEdBQUdvRCxNQUFNLENBQUNlLEtBQUssQ0FBQyxJQUFJLElBQUs7SUFDN0NDLG9CQUFvQixFQUFFbEUsb0JBQXFCO0lBQzNDdEIsYUFBYSxFQUFHQSxhQUFhLElBQUlBLGFBQWEsQ0FBQ2MsT0FBTyxJQUFLd0Isb0JBQXFCO0lBQ2hGckMsY0FBYyxFQUFHQSxjQUFjLElBQUlBLGNBQWMsQ0FBQ2EsT0FBTyxJQUFLeUIscUJBQXNCO0lBQ3BGNUQsa0JBQWtCLEVBQUVBLGtCQUFtQjtJQUN2Q3lCLGFBQWEsRUFBRUE7RUFBYyxDQUM5QixDQUFDLEVBRURNLGdCQUFnQixpQkFDZnJHLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDL0csZUFBZTtJQUFDd0ksR0FBRyxFQUFFLGFBQWFELEtBQUssRUFBRztJQUFDL0IsS0FBSyxFQUFFakQsU0FBUyxDQUFDaUQ7RUFBTSxnQkFDL0RySSxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ3ZJLGFBQUEsQ0FBQXNJLE9BQVk7SUFDWFcsTUFBTSxFQUFFYSxNQUFNLENBQUMvRSxTQUFTLElBQUksRUFBRztJQUMvQm1FLFFBQVEsRUFBR3NCLENBQUMsSUFBSzNHLGVBQWUsQ0FBQ2tHLEtBQUssRUFBRTtNQUFFLEdBQUdELE1BQU07TUFBRS9FLFNBQVMsRUFBRXlGO0lBQUUsQ0FBQyxDQUFFO0lBQ3JFeEcsWUFBWSxFQUFFQSxZQUFhO0lBQzNCVixLQUFLLEVBQUV3RCxlQUFlLEdBQUdnRCxNQUFNLENBQUNlLEtBQUssQ0FBQyxJQUFJLElBQUs7SUFDL0N0RCxXQUFXLEVBQUVBLFdBQVk7SUFDekI4QixXQUFXLEVBQUU1QixjQUFjLENBQUM5RCxhQUFhLEVBQUVvQixTQUFTLEVBQUV1RSxrQkFBa0IsQ0FBRTtJQUMxRWxFLFVBQVUsRUFBRWUsaUJBQWtCO0lBQzlCYixhQUFhLEVBQUdBLGFBQWEsSUFBSUEsYUFBYSxDQUFDUCxTQUFTLElBQUs2QyxvQkFBcUI7SUFDbEZyQyxjQUFjLEVBQUdBLGNBQWMsSUFBSUEsY0FBYyxDQUFDUixTQUFTLElBQUs4QyxxQkFBc0I7SUFDdEY1RCxrQkFBa0IsRUFBRUEsa0JBQW1CO0lBQ3ZDc0YsdUJBQXVCLEVBQUUsQ0FBQztNQUFFNUQsUUFBUSxFQUFFO0lBQVUsQ0FBQyxFQUFFO01BQUVBLFFBQVEsRUFBRTtJQUFVLENBQUMsQ0FBRTtJQUM1RUQsYUFBYSxFQUFFQTtFQUFjLENBQzlCLENBQUMsRUFDRG9CLGVBQWUsR0FBR2dELE1BQU0sQ0FBQ2UsS0FBSyxDQUFDLGlCQUM5QmxMLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDbkYsU0FBUyxRQUFFMEQsZUFBZSxHQUFHZ0QsTUFBTSxDQUFDZSxLQUFLLENBQWEsQ0FFNUMsQ0FFTSxDQUM1QixDQUFDLEVBRURqRSxvQkFBb0IsaUJBQUlqSCxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ25GLFNBQVMsUUFBRXdELG9CQUFnQyxDQUFDLEVBQ3JFSCxrQkFBa0IsaUJBQUk5RyxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ25GLFNBQVMsUUFBRXFELGtCQUE4QixDQUFDLEVBRWpFcEMsZUFBZSxDQUFDdkQsUUFBUSxpQkFDdkJuQixNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQ3ZGLGFBQWE7SUFBQzRHLEtBQUssRUFBRTlCO0VBQXVCLEdBQzFDakMsZ0JBQWdCLElBQUlPLE9BQU8sRUFBRWEsTUFBTSxJQUFJcEIsZ0JBQWdCLGdCQUN0RGxHLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDckcsYUFBYTtJQUNaNkksT0FBTyxFQUFDLFdBQVc7SUFDbkJ6SSxLQUFLLEVBQUMsU0FBUztJQUNmMEksT0FBTyxFQUFFakgsV0FBWTtJQUNyQnhCLFFBQVE7RUFBQSxHQUVQOEIsZUFBZSxDQUFDMkQsS0FDSixDQUFDLGdCQUVoQnJJLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDeEcsU0FBUztJQUNSZ0osT0FBTyxFQUFDLFdBQVc7SUFDbkJ6SSxLQUFLLEVBQUMsU0FBUztJQUNmMEksT0FBTyxFQUFFakg7RUFBWSxHQUVwQk0sZUFBZSxDQUFDMkQsS0FDUixDQUVBLENBRUUsQ0FBQztBQUUxQixDQUFDO0FBRU0sTUFBTWlELElBQUksU0FBU0MsY0FBSyxDQUFDQyxTQUFTLENBQUM7RUFBQUMsWUFBQSxHQUFBQyxJQUFBO0lBQUEsU0FBQUEsSUFBQTtJQUFBLElBQUFDLGdCQUFBLENBQUFoRCxPQUFBLGlCQWFoQztNQUFFaUQsV0FBVyxFQUFFO0lBQU0sQ0FBQztJQUFBLElBQUFELGdCQUFBLENBQUFoRCxPQUFBLDBCQUVaeUIsS0FBSyxJQUFLO01BQzFCLE1BQU07UUFBRXJHLEtBQUs7UUFBRUMsYUFBYTtRQUFFNkg7TUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDL0gsS0FBSztNQUMzRCxNQUFNO1FBQUVnSTtNQUFpQixDQUFDLEdBQUc5SCxhQUFhLElBQUksQ0FBQyxDQUFDO01BRWhELElBQUk4SCxnQkFBZ0IsSUFBSS9ILEtBQUssQ0FBQzBDLE9BQU8sQ0FBQ2EsTUFBTSxLQUFLd0UsZ0JBQWdCLEVBQUU7UUFDakUsSUFBSSxDQUFDQyxRQUFRLENBQUM7VUFBRUgsV0FBVyxFQUFFO1FBQUssQ0FBQyxDQUFDO1FBRXBDO01BQ0Y7TUFFQTdILEtBQUssQ0FBQzBDLE9BQU8sQ0FBQ3VGLE1BQU0sQ0FBQzVCLEtBQUssRUFBRSxDQUFDLENBQUM7TUFDOUJ5QixjQUFjLENBQUM5SCxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUFBLElBQUE0SCxnQkFBQSxDQUFBaEQsT0FBQSx1QkFFYSxNQUFNO01BQ2xCLE1BQU07UUFBRTVFLEtBQUs7UUFBRUMsYUFBYTtRQUFFNkg7TUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDL0gsS0FBSztNQUMzRCxJQUFJO1FBQUVvQztNQUFpQixDQUFDLEdBQUdsQyxhQUFhLElBQUksQ0FBQyxDQUFDO01BQzlDLE1BQU07UUFBRW1DO01BQW1CLENBQUMsR0FBR3BDLEtBQUssSUFBSSxDQUFDLENBQUM7O01BRTFDO01BQ0EsSUFBSW9DLGtCQUFrQixFQUFFO1FBQ3RCRCxnQkFBZ0IsR0FBRzlFLFdBQVc7TUFDaEM7TUFFQSxJQUFJOEUsZ0JBQWdCLElBQUluQyxLQUFLLENBQUMwQyxPQUFPLENBQUNhLE1BQU0sSUFBSXBCLGdCQUFnQixFQUFFO1FBQ2hFO01BQ0Y7TUFFQW5DLEtBQUssQ0FBQzBDLE9BQU8sQ0FBQ3dGLElBQUksQ0FBQztRQUNqQjVELEtBQUssRUFBRSxFQUFFO1FBQ1Q2QyxLQUFLLEVBQUVnQixxQkFBSyxDQUFDQyxtQkFBbUIsQ0FDOUJwSSxLQUFLLENBQUMwQyxPQUFPLENBQUN5RCxHQUFHLENBQUVXLENBQUMsSUFBS0EsQ0FBQyxDQUFDSyxLQUFLLENBQUMsRUFDakMsQ0FDRixDQUFDO1FBQ0R0RyxRQUFRLEVBQUU7VUFBRXdILElBQUksRUFBRTtRQUFPO01BQzNCLENBQUMsQ0FBQztNQUVGUCxjQUFjLENBQUM5SCxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUFBLElBQUE0SCxnQkFBQSxDQUFBaEQsT0FBQSwyQkFFaUIsQ0FBQ3lCLEtBQUssRUFBRUQsTUFBTSxLQUFLO01BQ25DLE1BQU07UUFBRXBHLEtBQUs7UUFBRThIO01BQWUsQ0FBQyxHQUFHLElBQUksQ0FBQy9ILEtBQUs7TUFFNUMsSUFBSXFHLE1BQU0sQ0FBQ2tDLE9BQU8sSUFBSXRJLEtBQUssQ0FBQ2UsVUFBVSxLQUFLLE9BQU8sRUFBRTtRQUNsRGYsS0FBSyxDQUFDMEMsT0FBTyxHQUFHMUMsS0FBSyxDQUFDMEMsT0FBTyxDQUFDeUQsR0FBRyxDQUFFVyxDQUFDLElBQUssSUFBQXlCLGNBQUssRUFBQyxDQUFDLENBQUMsRUFBRXpCLENBQUMsRUFBRTtVQUFFd0IsT0FBTyxFQUFFO1FBQU0sQ0FBQyxDQUFDLENBQUM7TUFDNUU7TUFFQXRJLEtBQUssQ0FBQzBDLE9BQU8sQ0FBQ3VGLE1BQU0sQ0FBQzVCLEtBQUssRUFBRSxDQUFDLEVBQUVELE1BQU0sQ0FBQztNQUN0QzBCLGNBQWMsQ0FBQzlILEtBQUssQ0FBQztJQUN2QixDQUFDO0lBQUEsSUFBQTRILGdCQUFBLENBQUFoRCxPQUFBLDJCQUVrQjlDLE1BQU0sSUFBSztNQUM1QixJQUFJLENBQUMvQixLQUFLLENBQUMrSCxjQUFjLENBQUM7UUFDeEIsR0FBRyxJQUFJLENBQUMvSCxLQUFLLENBQUNDLEtBQUs7UUFDbkI4QjtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUM7SUFBQSxJQUFBOEYsZ0JBQUEsQ0FBQWhELE9BQUEsd0NBRStCekQsbUJBQW1CLElBQUs7TUFDdEQsSUFBSSxDQUFDcEIsS0FBSyxDQUFDK0gsY0FBYyxDQUFDO1FBQ3hCLEdBQUcsSUFBSSxDQUFDL0gsS0FBSyxDQUFDQyxLQUFLO1FBQ25CbUI7TUFDRixDQUFDLENBQUM7SUFDSixDQUFDO0lBQUEsSUFBQXlHLGdCQUFBLENBQUFoRCxPQUFBLDBCQUVnQixDQUFDNUUsS0FBSyxFQUFFc0csR0FBRyxLQUFLO01BQy9CLE1BQU07UUFBRXdCO01BQWUsQ0FBQyxHQUFHLElBQUksQ0FBQy9ILEtBQUs7TUFFckMsUUFBUXVHLEdBQUc7UUFDVCxLQUFLLFlBQVk7VUFBRTtZQUNqQixJQUFJYSxLQUFLLEdBQUduSCxLQUFLLENBQUNlLFVBQVU7WUFFNUIsSUFBSW9HLEtBQUssS0FBSyxPQUFPLEVBQUU7Y0FDckIsSUFBSXFCLFlBQVksR0FBRyxLQUFLO2NBRXhCeEksS0FBSyxDQUFDMEMsT0FBTyxHQUFHMUMsS0FBSyxDQUFDMEMsT0FBTyxDQUFDeUQsR0FBRyxDQUFFVyxDQUFDLElBQUs7Z0JBQ3ZDLElBQUkwQixZQUFZLEVBQUU7a0JBQ2hCMUIsQ0FBQyxDQUFDd0IsT0FBTyxHQUFHLEtBQUs7a0JBRWpCLE9BQU94QixDQUFDO2dCQUNWO2dCQUVBLElBQUlBLENBQUMsQ0FBQ3dCLE9BQU8sRUFBRTtrQkFDYkUsWUFBWSxHQUFHLElBQUk7Z0JBQ3JCO2dCQUVBLE9BQU8xQixDQUFDO2NBQ1YsQ0FBQyxDQUFDO1lBQ0o7WUFFQWdCLGNBQWMsQ0FBQzlILEtBQUssRUFBRSxJQUFJLENBQUM7WUFDM0I7VUFDRjtRQUVBO1VBQ0U4SCxjQUFjLENBQUM5SCxLQUFLLENBQUM7VUFDckI7TUFDSjtJQUNGLENBQUM7RUFBQTtFQUVEeUksTUFBTUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTTtNQUFFeEksYUFBYSxFQUFFO1FBQUU4SDtNQUFpQixDQUFDLEdBQUcsQ0FBQztJQUFFLENBQUMsR0FBRyxJQUFJLENBQUNoSSxLQUFLO0lBQy9ELE1BQU07TUFBRThIO0lBQVksQ0FBQyxHQUFHLElBQUksQ0FBQ2EsS0FBSztJQUVsQyxvQkFDRXpNLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDNUksTUFBQSxDQUFBMkksT0FBSyxDQUFDK0QsUUFBUSxxQkFDYjFNLE1BQUEsQ0FBQTJJLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdEksU0FBQSxDQUFBcU0sV0FBVztNQUNWQyxJQUFJLEVBQUVoQixXQUFZO01BQ2xCM0IsS0FBSyxFQUFDLFNBQVM7TUFDZjRDLElBQUksRUFBRSw0QkFBNEJmLGdCQUFnQixJQUFJLENBQUMsV0FBWTtNQUNuRWdCLFNBQVMsRUFBRUEsQ0FBQSxLQUFNLElBQUksQ0FBQ2YsUUFBUSxDQUFDO1FBQUVILFdBQVcsRUFBRTtNQUFNLENBQUM7SUFBRSxDQUN4RCxDQUFDLGVBQ0Y1TCxNQUFBLENBQUEySSxPQUFBLENBQUFDLGFBQUEsQ0FBQy9FLE1BQU0sTUFBQWtKLFNBQUEsQ0FBQXBFLE9BQUEsTUFDRCxJQUFJLENBQUM3RSxLQUFLO01BQ2RTLGFBQWEsRUFBRSxJQUFJLENBQUNzSCxjQUFlO01BQ25DMUgsY0FBYyxFQUFFLElBQUksQ0FBQ0EsY0FBZTtNQUNwQ0QsZUFBZSxFQUFFLElBQUksQ0FBQ0EsZUFBZ0I7TUFDdENFLFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVk7TUFDOUJILGVBQWUsRUFBRSxJQUFJLENBQUNBLGVBQWdCO01BQ3RDUSw0QkFBNEIsRUFBRSxJQUFJLENBQUNBO0lBQTZCLEVBQ2pFLENBQ2EsQ0FBQztFQUVyQjtBQUNGO0FBQUN1SSxPQUFBLENBQUExQixJQUFBLEdBQUFBLElBQUE7QUFBQSxJQUFBSyxnQkFBQSxDQUFBaEQsT0FBQSxFQTNJWTJDLElBQUksZUFDSTtFQUNqQnZILEtBQUssRUFBRWtKLGtCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUNsQ25KLGFBQWEsRUFBRWlKLGtCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUMxQ0MsZ0JBQWdCLEVBQUVILGtCQUFTLENBQUNJLElBQUk7RUFDaEN4QixjQUFjLEVBQUVvQixrQkFBUyxDQUFDSyxJQUFJLENBQUNILFVBQVU7RUFDekMzSSxzQkFBc0IsRUFBRXlJLGtCQUFTLENBQUNLLElBQUksQ0FBQ0gsVUFBVTtFQUNqRDlJLFlBQVksRUFBRTRJLGtCQUFTLENBQUNNLEtBQUssQ0FBQztJQUM1QkMsR0FBRyxFQUFFUCxrQkFBUyxDQUFDSyxJQUFJLENBQUNILFVBQVU7SUFDOUJNLE1BQU0sRUFBRVIsa0JBQVMsQ0FBQ0ssSUFBSSxDQUFDSDtFQUN6QixDQUFDO0FBQ0gsQ0FBQztBQUFBLElBQUFPLFFBQUEsR0FBQVYsT0FBQSxDQUFBckUsT0FBQSxHQWtJWTJDLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
477
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX2VkaXRhYmxlSHRtbFRpcFRhcCIsIl9jb25maWdVaSIsIl9yZW5kZXJVaSIsIl9CdXR0b24iLCJfVG9vbHRpcCIsIl9UeXBvZ3JhcGh5IiwiX0JveCIsIl9JbmZvIiwiX21lcmdlIiwiX3V0aWxzIiwiUGFuZWwiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwic2V0dGluZ3MiLCJNQVhfQ0hPSUNFUyIsIlByb21wdEhvbGRlciIsInN0eWxlZCIsIklucHV0Q29udGFpbmVyIiwidGhlbWUiLCJ3aWR0aCIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwibWFyZ2luQm90dG9tIiwiUmF0aW9uYWxlSG9sZGVyIiwiZmxleCIsIm1hcmdpblRvcCIsIm1hcmdpbkxlZnQiLCJDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJBZGRCdXR0b24iLCJCdXR0b24iLCJmbG9hdCIsIkRpc2FibGVCdXR0b24iLCJjdXJzb3IiLCJwb2ludGVyRXZlbnRzIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkaXNhYmxlZCIsIkZsZXhDb250YWluZXIiLCJCb3giLCJhbGlnbkl0ZW1zIiwiVGl0bGVUZXh0IiwiVHlwb2dyYXBoeSIsImZvbnRTaXplIiwidHlwb2dyYXBoeSIsIm1hcmdpblJpZ2h0IiwiU3R5bGVkVG9vbHRpcCIsIlRvb2x0aXAiLCJ3aGl0ZVNwYWNlIiwibWF4V2lkdGgiLCJFcnJvclRleHQiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwiRGVzaWduIiwicHJvcHMiLCJtb2RlbCIsImNvbmZpZ3VyYXRpb24iLCJvblByb21wdENoYW5nZWQiLCJvbkNob2ljZUNoYW5nZWQiLCJvblJlbW92ZUNob2ljZSIsIm9uQWRkQ2hvaWNlIiwiaW1hZ2VTdXBwb3J0IiwidXBsb2FkU291bmRTdXBwb3J0Iiwib25DaGFuZ2VNb2RlbCIsIm9uQ29uZmlndXJhdGlvbkNoYW5nZWQiLCJvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkIiwiYWRkQ2hvaWNlQnV0dG9uIiwiY29udGVudERpbWVuc2lvbnMiLCJmZWVkYmFjayIsImRlbGV0ZUNob2ljZSIsImNob2ljZU1vZGUiLCJjaG9pY2VQcmVmaXgiLCJwYXJ0aWFsU2NvcmluZyIsImxvY2tDaG9pY2VPcmRlciIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwicmF0aW9uYWxlIiwic2NvcmluZ1R5cGUiLCJzZXF1ZW50aWFsQ2hvaWNlTGFiZWxzIiwic2V0dGluZ3NQYW5lbERpc2FibGVkIiwiY2hvaWNlc0xheW91dCIsInNwZWxsQ2hlY2siLCJncmlkQ29sdW1ucyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsInByb21wdCIsIndpdGhSdWJyaWMiLCJtYXRoTWxPcHRpb25zIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZUNob2ljZXMiLCJtYXhBbnN3ZXJDaG9pY2VzIiwibGltaXRDaG9pY2VzTnVtYmVyIiwidGVhY2hlckluc3RydWN0aW9uc0VuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwiZmVlZGJhY2tFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInNwZWxsQ2hlY2tFbmFibGVkIiwiY2hvaWNlcyIsImVycm9ycyIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsImV4dHJhQ1NTUnVsZXMiLCJhbnN3ZXJDaG9pY2VzIiwiYW5zd2VyQ2hvaWNlc0Vycm9yIiwiY2hvaWNlc0Vycm9ycyIsImNvcnJlY3RSZXNwb25zZSIsImNvcnJlY3RSZXNwb25zZUVycm9yIiwicHJvbXB0RXJyb3IiLCJyYXRpb25hbGVFcnJvcnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3IiLCJuck9mQ29sdW1uc0F2YWlsYWJsZSIsImxlbmd0aCIsIkFycmF5IiwiZnJvbSIsIl8iLCJpIiwiYmFzZUlucHV0Q29uZmlndXJhdGlvbiIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJnZXRQbHVnaW5Qcm9wcyIsInZhbGlkYXRpb25NZXNzYWdlIiwiZ2VuZXJhdGVWYWxpZGF0aW9uTWVzc2FnZSIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwiYWRkQ2hvaWNlQnV0dG9uVG9vbHRpcCIsInBhbmVsU2V0dGluZ3MiLCJsYWJlbCIsImVuYWJsZWQiLCJvcHRpb25zIiwicGFuZWxQcm9wZXJ0aWVzIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJydWJyaWNFbmFibGVkIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJkaW1lbnNpb25zIiwiaGlkZVNldHRpbmdzIiwiY2xhc3NlcyIsIm9uQ2hhbmdlQ29uZmlndXJhdGlvbiIsImdyb3VwcyIsIlNldHRpbmdzIiwiUHJvcGVydGllcyIsIm1hcmt1cCIsIm9uQ2hhbmdlIiwibm9uRW1wdHkiLCJkaXNhYmxlVW5kZXJsaW5lIiwicGx1Z2luUHJvcHMiLCJpbnB1dENvbmZpZ3VyYXRpb24iLCJsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcyIsImNvbXBvbmVudCIsImRpc2FibGVGb2N1c0xpc3RlbmVyIiwiZGlzYWJsZVRvdWNoTGlzdGVuZXIiLCJwbGFjZW1lbnQiLCJ0aXRsZSIsIm1hcCIsImNob2ljZSIsImluZGV4Iiwia2V5IiwiQ2hvaWNlQ29uZmlndXJhdGlvbiIsInVzZUxldHRlck9yZGVyaW5nIiwibW9kZSIsImRhdGEiLCJkZWZhdWx0RmVlZGJhY2siLCJkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zIiwib25EZWxldGUiLCJjIiwiYWxsb3dGZWVkQmFjayIsImFsbG93RGVsZXRlIiwibm9MYWJlbHMiLCJwbHVnaW5PcHRzIiwidmFsdWUiLCJub0NvcnJlY3RBbnN3ZXJFcnJvciIsInZhcmlhbnQiLCJvbkNsaWNrIiwiTWFpbiIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmdzIiwiX2RlZmluZVByb3BlcnR5MiIsInNob3dXYXJuaW5nIiwib25Nb2RlbENoYW5nZWQiLCJtaW5BbnN3ZXJDaG9pY2VzIiwic2V0U3RhdGUiLCJzcGxpY2UiLCJwdXNoIiwidXRpbHMiLCJmaXJzdEF2YWlsYWJsZUluZGV4IiwidHlwZSIsImNvcnJlY3QiLCJtZXJnZSIsImNvcnJlY3RGb3VuZCIsInJlbmRlciIsInN0YXRlIiwiRnJhZ21lbnQiLCJBbGVydERpYWxvZyIsIm9wZW4iLCJ0ZXh0Iiwib25Db25maXJtIiwiX2V4dGVuZHMyIiwiZXhwb3J0cyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJkaXNhYmxlU2lkZVBhbmVsIiwiYm9vbCIsImZ1bmMiLCJzaGFwZSIsImFkZCIsImRlbGV0ZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL21haW4uanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEVkaXRhYmxlSHRtbCBmcm9tICdAcGllLWxpYi9lZGl0YWJsZS1odG1sLXRpcC10YXAnO1xuaW1wb3J0IHtcbiAgQWxlcnREaWFsb2csXG4gIElucHV0Q29udGFpbmVyLFxuICBDaG9pY2VDb25maWd1cmF0aW9uLFxuICBzZXR0aW5ncyxcbiAgbGF5b3V0LFxuICBjaG9pY2VVdGlscyBhcyB1dGlscyxcbn0gZnJvbSAnQHBpZS1saWIvY29uZmlnLXVpJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG11aS9tYXRlcmlhbC9Ub29sdGlwJztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0BtdWkvbWF0ZXJpYWwvVHlwb2dyYXBoeSc7XG5pbXBvcnQgQm94IGZyb20gJ0BtdWkvbWF0ZXJpYWwvQm94JztcbmltcG9ydCBJbmZvIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvSW5mbyc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnbG9kYXNoL21lcmdlJztcbmltcG9ydCB7IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgeyBQYW5lbCwgdG9nZ2xlLCByYWRpbywgZHJvcGRvd24gfSA9IHNldHRpbmdzO1xuXG5jb25zdCBNQVhfQ0hPSUNFUyA9IDk7XG5cbmNvbnN0IFByb21wdEhvbGRlciA9IHN0eWxlZChJbnB1dENvbnRhaW5lcikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgd2lkdGg6ICcxMDAlJyxcbiAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZygyKSxcbiAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxufSkpO1xuXG5jb25zdCBSYXRpb25hbGVIb2xkZXIgPSBzdHlsZWQoSW5wdXRDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZsZXg6IDEsXG4gIG1hcmdpblRvcDogdGhlbWUuc3BhY2luZygxLjUpLFxuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDIpLFxuICBtYXJnaW5MZWZ0OiB0aGVtZS5zcGFjaW5nKDMuNSksXG59KSk7XG5cbmNvbnN0IENob2ljZUNvbmZpZ3VyYXRpb25Ib2xkZXIgPSBzdHlsZWQoSW5wdXRDb250YWluZXIpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZygxKSxcbiAgd2lkdGg6ICcxMDAlJyxcbn0pKTtcblxuXG5jb25zdCBBZGRCdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBtYXJnaW5Ub3A6IHRoZW1lLnNwYWNpbmcoMSksXG4gIGZsb2F0OiAncmlnaHQnLFxufSkpO1xuXG5jb25zdCBEaXNhYmxlQnV0dG9uID0gc3R5bGVkKEFkZEJ1dHRvbikoe1xuICBjdXJzb3I6ICdub3QtYWxsb3dlZCcsXG4gIHBvaW50ZXJFdmVudHM6ICdhbGwnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRpc2FibGVkKCksXG4gICcmOmhvdmVyJzoge1xuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IuZGlzYWJsZWQoKSxcbiAgfSxcbiAgJyY6Zm9jdXMnOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5kaXNhYmxlZCgpLFxuICB9LFxufSk7XG5cbmNvbnN0IEZsZXhDb250YWluZXIgPSBzdHlsZWQoQm94KSh7XG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG59KTtcblxuY29uc3QgVGl0bGVUZXh0ID0gc3R5bGVkKFR5cG9ncmFwaHkpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplICsgMixcbiAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRvb2x0aXAgPSBzdHlsZWQoVG9vbHRpcCkoKHsgdGhlbWUgfSkgPT4gKHtcbiAgJyYgLk11aVRvb2x0aXAtdG9vbHRpcCc6IHtcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSAtIDIsXG4gICAgd2hpdGVTcGFjZTogJ3ByZScsXG4gICAgbWF4V2lkdGg6ICc1MDBweCcsXG4gIH0sXG59KSk7XG5cbmNvbnN0IEVycm9yVGV4dCA9IHN0eWxlZCgnZGl2JykoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDEpLFxufSkpO1xuXG5jb25zdCBEZXNpZ24gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIG1vZGVsLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgb25Qcm9tcHRDaGFuZ2VkLFxuICAgIG9uQ2hvaWNlQ2hhbmdlZCxcbiAgICBvblJlbW92ZUNob2ljZSxcbiAgICBvbkFkZENob2ljZSxcbiAgICBpbWFnZVN1cHBvcnQsXG4gICAgdXBsb2FkU291bmRTdXBwb3J0LFxuICAgIG9uQ2hhbmdlTW9kZWwsXG4gICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZCxcbiAgICBvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3Qge1xuICAgIGFkZENob2ljZUJ1dHRvbiA9IHt9LFxuICAgIGNvbnRlbnREaW1lbnNpb25zID0ge30sXG4gICAgZmVlZGJhY2sgPSB7fSxcbiAgICBkZWxldGVDaG9pY2UgPSB7fSxcbiAgICBjaG9pY2VNb2RlID0ge30sXG4gICAgY2hvaWNlUHJlZml4ID0ge30sXG4gICAgcGFydGlhbFNjb3JpbmcgPSB7fSxcbiAgICBsb2NrQ2hvaWNlT3JkZXIgPSB7fSxcbiAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgc3R1ZGVudEluc3RydWN0aW9ucyA9IHt9LFxuICAgIHJhdGlvbmFsZSA9IHt9LFxuICAgIHNjb3JpbmdUeXBlID0ge30sXG4gICAgc2VxdWVudGlhbENob2ljZUxhYmVscyA9IHt9LFxuICAgIHNldHRpbmdzUGFuZWxEaXNhYmxlZCxcbiAgICBjaG9pY2VzTGF5b3V0LFxuICAgIHNwZWxsQ2hlY2sgPSB7fSxcbiAgICBncmlkQ29sdW1ucyxcbiAgICBtYXhJbWFnZVdpZHRoID0ge30sXG4gICAgbWF4SW1hZ2VIZWlnaHQgPSB7fSxcbiAgICBwcm9tcHQgPSB7fSxcbiAgICB3aXRoUnVicmljID0ge30sXG4gICAgbWF0aE1sT3B0aW9ucyA9IHt9LFxuICAgIGxhbmd1YWdlID0ge30sXG4gICAgbGFuZ3VhZ2VDaG9pY2VzID0ge30sXG4gIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICBsZXQgeyBtYXhBbnN3ZXJDaG9pY2VzIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuICBjb25zdCB7XG4gICAgbGltaXRDaG9pY2VzTnVtYmVyLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkLFxuICAgIHJhdGlvbmFsZUVuYWJsZWQsXG4gICAgZmVlZGJhY2tFbmFibGVkLFxuICAgIHByb21wdEVuYWJsZWQsXG4gICAgc3BlbGxDaGVja0VuYWJsZWQsXG4gICAgY2hvaWNlcyxcbiAgICBlcnJvcnMsXG4gICAgdG9vbGJhckVkaXRvclBvc2l0aW9uLFxuICAgIGV4dHJhQ1NTUnVsZXMsXG4gIH0gPSBtb2RlbCB8fCB7fTtcblxuICBjb25zdCB7XG4gICAgYW5zd2VyQ2hvaWNlczogYW5zd2VyQ2hvaWNlc0Vycm9yLFxuICAgIGNob2ljZXM6IGNob2ljZXNFcnJvcnMsXG4gICAgY29ycmVjdFJlc3BvbnNlOiBjb3JyZWN0UmVzcG9uc2VFcnJvcixcbiAgICBwcm9tcHQ6IHByb21wdEVycm9yLFxuICAgIHJhdGlvbmFsZTogcmF0aW9uYWxlRXJyb3JzLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHRlYWNoZXJJbnN0cnVjdGlvbnNFcnJvcixcbiAgfSA9IGVycm9ycyB8fCB7fTtcbiAgY29uc3QgbnJPZkNvbHVtbnNBdmFpbGFibGUgPSBjaG9pY2VzPy5sZW5ndGggPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjaG9pY2VzLmxlbmd0aCB9LCAoXywgaSkgPT4gYCR7aSArIDF9YCkgOiBbXTtcblxuICBjb25zdCB7IGJhc2VJbnB1dENvbmZpZ3VyYXRpb24gPSB7fSB9ID0gY29uZmlndXJhdGlvbjtcbiAgY29uc3QgdG9vbGJhck9wdHMgPSB7XG4gICAgcG9zaXRpb246IHRvb2xiYXJFZGl0b3JQb3NpdGlvbiA9PT0gJ3RvcCcgPyAndG9wJyA6ICdib3R0b20nLFxuICB9O1xuXG4gIC8vIGlmIG9sZCBwcm9wZXJ0eSBpcyB1c2VkLCBzZXQgbWF4QW5zd2VyQ2hvaWNlcyB0byA5XG4gIGlmIChsaW1pdENob2ljZXNOdW1iZXIpIHtcbiAgICBtYXhBbnN3ZXJDaG9pY2VzID0gTUFYX0NIT0lDRVM7XG4gIH1cblxuICBjb25zdCBnZXRQbHVnaW5Qcm9wcyA9IChwcm9wcyA9IHt9KSA9PiAoe1xuICAgIC4uLmJhc2VJbnB1dENvbmZpZ3VyYXRpb24sXG4gICAgLi4ucHJvcHMsXG4gIH0pO1xuXG4gIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gZ2VuZXJhdGVWYWxpZGF0aW9uTWVzc2FnZShjb25maWd1cmF0aW9uKTtcbiAgY29uc3QgZGVmYXVsdEltYWdlTWF4V2lkdGggPSBtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0O1xuICBjb25zdCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHQgPSBtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5wcm9tcHQ7XG4gIGNvbnN0IGFkZENob2ljZUJ1dHRvblRvb2x0aXAgPVxuICAgIG1heEFuc3dlckNob2ljZXMgJiYgY2hvaWNlcz8ubGVuZ3RoID49IG1heEFuc3dlckNob2ljZXMgPyBgT25seSAke21heEFuc3dlckNob2ljZXN9IGFsbG93ZWQgbWF4aW11bWAgOiAnJztcblxuICBjb25zdCBwYW5lbFNldHRpbmdzID0ge1xuICAgIGNob2ljZU1vZGU6IGNob2ljZU1vZGUuc2V0dGluZ3MgJiYgcmFkaW8oY2hvaWNlTW9kZS5sYWJlbCwgWydjaGVja2JveCcsICdyYWRpbyddKSxcbiAgICAnc2VxdWVudGlhbENob2ljZUxhYmVscy5lbmFibGVkJzogc2VxdWVudGlhbENob2ljZUxhYmVscy5zZXR0aW5ncyAmJiB0b2dnbGUoc2VxdWVudGlhbENob2ljZUxhYmVscy5sYWJlbCwgdHJ1ZSksXG4gICAgY2hvaWNlUHJlZml4OiBjaG9pY2VQcmVmaXguc2V0dGluZ3MgJiYgcmFkaW8oY2hvaWNlUHJlZml4LmxhYmVsLCBbJ251bWJlcnMnLCAnbGV0dGVycyddKSxcbiAgICBwYXJ0aWFsU2NvcmluZzogcGFydGlhbFNjb3Jpbmcuc2V0dGluZ3MgJiYgdG9nZ2xlKHBhcnRpYWxTY29yaW5nLmxhYmVsKSxcbiAgICBsb2NrQ2hvaWNlT3JkZXI6IGxvY2tDaG9pY2VPcmRlci5zZXR0aW5ncyAmJiB0b2dnbGUobG9ja0Nob2ljZU9yZGVyLmxhYmVsKSxcbiAgICBmZWVkYmFja0VuYWJsZWQ6IGZlZWRiYWNrLnNldHRpbmdzICYmIHRvZ2dsZShmZWVkYmFjay5sYWJlbCksXG4gICAgY2hvaWNlc0xheW91dDogY2hvaWNlc0xheW91dC5zZXR0aW5ncyAmJiBkcm9wZG93bihjaG9pY2VzTGF5b3V0LmxhYmVsLCBbJ3ZlcnRpY2FsJywgJ2dyaWQnLCAnaG9yaXpvbnRhbCddKSxcbiAgICBncmlkQ29sdW1uczpcbiAgICAgIGNob2ljZXNMYXlvdXQuc2V0dGluZ3MgJiZcbiAgICAgIG1vZGVsLmNob2ljZXNMYXlvdXQgPT09ICdncmlkJyAmJlxuICAgICAgbnJPZkNvbHVtbnNBdmFpbGFibGUubGVuZ3RoID4gMCAmJlxuICAgICAgZHJvcGRvd24oZ3JpZENvbHVtbnMubGFiZWwsIG5yT2ZDb2x1bW5zQXZhaWxhYmxlKSxcbiAgICAnbGFuZ3VhZ2UuZW5hYmxlZCc6IGxhbmd1YWdlLnNldHRpbmdzICYmIHRvZ2dsZShsYW5ndWFnZS5sYWJlbCwgdHJ1ZSksXG4gICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLnNldHRpbmdzICYmIGxhbmd1YWdlLmVuYWJsZWQgJiYgZHJvcGRvd24obGFuZ3VhZ2VDaG9pY2VzLmxhYmVsLCBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyksXG4gIH07XG5cbiAgY29uc3QgcGFuZWxQcm9wZXJ0aWVzID0ge1xuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0ZWFjaGVySW5zdHJ1Y3Rpb25zLnNldHRpbmdzICYmIHRvZ2dsZSh0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsKSxcbiAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUoc3R1ZGVudEluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgcHJvbXB0RW5hYmxlZDogcHJvbXB0LnNldHRpbmdzICYmIHRvZ2dsZShwcm9tcHQubGFiZWwpLFxuICAgIHJhdGlvbmFsZUVuYWJsZWQ6IHJhdGlvbmFsZS5zZXR0aW5ncyAmJiB0b2dnbGUocmF0aW9uYWxlLmxhYmVsKSxcbiAgICBzcGVsbENoZWNrRW5hYmxlZDogc3BlbGxDaGVjay5zZXR0aW5ncyAmJiB0b2dnbGUoc3BlbGxDaGVjay5sYWJlbCksXG4gICAgc2NvcmluZ1R5cGU6IHNjb3JpbmdUeXBlLnNldHRpbmdzICYmIHJhZGlvKHNjb3JpbmdUeXBlLmxhYmVsLCBbJ2F1dG8nLCAncnVicmljJ10pLFxuICAgIHJ1YnJpY0VuYWJsZWQ6IHdpdGhSdWJyaWM/LnNldHRpbmdzICYmIHRvZ2dsZSh3aXRoUnVicmljPy5sYWJlbCksXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8bGF5b3V0LkNvbmZpZ0xheW91dFxuICAgICAgZGltZW5zaW9ucz17Y29udGVudERpbWVuc2lvbnN9XG4gICAgICBoaWRlU2V0dGluZ3M9e3NldHRpbmdzUGFuZWxEaXNhYmxlZH1cbiAgICAgIGV4dHJhQ1NTUnVsZXM9e2V4dHJhQ1NTUnVsZXN9XG4gICAgICBjbGFzc2VzPXt7fX1cbiAgICAgIHNldHRpbmdzPXtcbiAgICAgICAgPFBhbmVsXG4gICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgIG9uQ2hhbmdlTW9kZWw9e29uQ2hhbmdlTW9kZWx9XG4gICAgICAgICAgY29uZmlndXJhdGlvbj17Y29uZmlndXJhdGlvbn1cbiAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249e29uQ29uZmlndXJhdGlvbkNoYW5nZWR9XG4gICAgICAgICAgZ3JvdXBzPXt7XG4gICAgICAgICAgICBTZXR0aW5nczogcGFuZWxTZXR0aW5ncyxcbiAgICAgICAgICAgIFByb3BlcnRpZXM6IHBhbmVsUHJvcGVydGllcyxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgfVxuICAgID5cbiAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgIDxQcm9tcHRIb2xkZXIgbGFiZWw9e3RlYWNoZXJJbnN0cnVjdGlvbnMubGFiZWx9PlxuICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnRlYWNoZXJJbnN0cnVjdGlvbnMgfHwgJyd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICBkaXNhYmxlVW5kZXJsaW5lXG4gICAgICAgICAgICAgIGVycm9yPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zRXJyb3J9XG4gICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LnRlYWNoZXJJbnN0cnVjdGlvbnM/LmlucHV0Q29uZmlndXJhdGlvbil9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17KG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7dGVhY2hlckluc3RydWN0aW9uc0Vycm9yICYmIDxFcnJvclRleHQ+e3RlYWNoZXJJbnN0cnVjdGlvbnNFcnJvcn08L0Vycm9yVGV4dD59XG4gICAgICAgIDwvUHJvbXB0SG9sZGVyPlxuICAgICAgKX1cblxuICAgICAge3Byb21wdEVuYWJsZWQgJiYgKFxuICAgICAgICA8UHJvbXB0SG9sZGVyIGxhYmVsPXtwcm9tcHQubGFiZWx9PlxuICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICBtYXJrdXA9e21vZGVsLnByb21wdH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uUHJvbXB0Q2hhbmdlZH1cbiAgICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICAgIG5vbkVtcHR5PXtmYWxzZX1cbiAgICAgICAgICAgICAgZGlzYWJsZVVuZGVybGluZVxuICAgICAgICAgICAgICBlcnJvcj17cHJvbXB0RXJyb3J9XG4gICAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e2dldFBsdWdpblByb3BzKGNvbmZpZ3VyYXRpb24/LnByb21wdD8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgIG1heEltYWdlV2lkdGg9e21heEltYWdlV2lkdGggJiYgbWF4SW1hZ2VXaWR0aC5wcm9tcHR9XG4gICAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0PXttYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5wcm9tcHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3Byb21wdEVycm9yICYmIDxFcnJvclRleHQ+e3Byb21wdEVycm9yfTwvRXJyb3JUZXh0Pn1cbiAgICAgICAgPC9Qcm9tcHRIb2xkZXI+XG4gICAgICApfVxuXG4gICAgICA8RmxleENvbnRhaW5lcj5cbiAgICAgICAgPFRpdGxlVGV4dCBjb21wb25lbnQ9eydkaXYnfT5cbiAgICAgICAgICBDaG9pY2VzXG4gICAgICAgIDwvVGl0bGVUZXh0PlxuICAgICAgICA8U3R5bGVkVG9vbHRpcFxuICAgICAgICAgIGRpc2FibGVGb2N1c0xpc3RlbmVyXG4gICAgICAgICAgZGlzYWJsZVRvdWNoTGlzdGVuZXJcbiAgICAgICAgICBwbGFjZW1lbnQ9eydyaWdodCd9XG4gICAgICAgICAgdGl0bGU9e3ZhbGlkYXRpb25NZXNzYWdlfVxuICAgICAgICA+XG4gICAgICAgICAgPEluZm8gZm9udFNpemU9eydzbWFsbCd9IGNvbG9yPXsncHJpbWFyeSd9IC8+XG4gICAgICAgIDwvU3R5bGVkVG9vbHRpcD5cbiAgICAgIDwvRmxleENvbnRhaW5lcj5cblxuICAgICAge2Nob2ljZXMubWFwKChjaG9pY2UsIGluZGV4KSA9PiAoXG4gICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyIGtleT17YGNob2ljZS0ke2luZGV4fWB9PlxuICAgICAgICAgIDxDaG9pY2VDb25maWd1cmF0aW9uXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4ICsgMX1cbiAgICAgICAgICAgIHVzZUxldHRlck9yZGVyaW5nPXttb2RlbC5jaG9pY2VQcmVmaXggPT09ICdsZXR0ZXJzJ31cbiAgICAgICAgICAgIG1vZGU9e21vZGVsLmNob2ljZU1vZGV9XG4gICAgICAgICAgICBkYXRhPXtjaG9pY2V9XG4gICAgICAgICAgICBkZWZhdWx0RmVlZGJhY2s9e3t9fVxuICAgICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXt0cnVlfVxuICAgICAgICAgICAgb25EZWxldGU9eygpID0+IG9uUmVtb3ZlQ2hvaWNlKGluZGV4KX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoYykgPT4gb25DaG9pY2VDaGFuZ2VkKGluZGV4LCBjKX1cbiAgICAgICAgICAgIGFsbG93RmVlZEJhY2s9e2ZlZWRiYWNrRW5hYmxlZH1cbiAgICAgICAgICAgIGFsbG93RGVsZXRlPXtkZWxldGVDaG9pY2Uuc2V0dGluZ3N9XG4gICAgICAgICAgICBub0xhYmVsc1xuICAgICAgICAgICAgcGx1Z2luT3B0cz17Z2V0UGx1Z2luUHJvcHMoY29uZmlndXJhdGlvbj8uY2hvaWNlcz8uaW5wdXRDb25maWd1cmF0aW9uKX1cbiAgICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgZXJyb3I9e2Nob2ljZXNFcnJvcnM/LltjaG9pY2UudmFsdWVdIHx8IG51bGx9XG4gICAgICAgICAgICBub0NvcnJlY3RBbnN3ZXJFcnJvcj17Y29ycmVjdFJlc3BvbnNlRXJyb3J9XG4gICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLmNob2ljZXMpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9eyhtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5jaG9pY2VzKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICB1cGxvYWRTb3VuZFN1cHBvcnQ9e3VwbG9hZFNvdW5kU3VwcG9ydH1cbiAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICAgIDxSYXRpb25hbGVIb2xkZXIga2V5PXtgcmF0aW9uYWxlLSR7aW5kZXh9YH0gbGFiZWw9e3JhdGlvbmFsZS5sYWJlbH0+XG4gICAgICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICAgICAgbWFya3VwPXtjaG9pY2UucmF0aW9uYWxlIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhjKSA9PiBvbkNob2ljZUNoYW5nZWQoaW5kZXgsIHsgLi4uY2hvaWNlLCByYXRpb25hbGU6IGMgfSl9XG4gICAgICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgICAgIGVycm9yPXtyYXRpb25hbGVFcnJvcnM/LltjaG9pY2UudmFsdWVdIHx8IG51bGx9XG4gICAgICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgICAgICBwbHVnaW5Qcm9wcz17Z2V0UGx1Z2luUHJvcHMoY29uZmlndXJhdGlvbj8ucmF0aW9uYWxlPy5pbnB1dENvbmZpZ3VyYXRpb24pfVxuICAgICAgICAgICAgICAgICAgc3BlbGxDaGVjaz17c3BlbGxDaGVja0VuYWJsZWR9XG4gICAgICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnJhdGlvbmFsZSkgfHwgZGVmYXVsdEltYWdlTWF4V2lkdGh9XG4gICAgICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17KG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnJhdGlvbmFsZSkgfHwgZGVmYXVsdEltYWdlTWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgICAgICBtYXRoTWxPcHRpb25zPXttYXRoTWxPcHRpb25zfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge3JhdGlvbmFsZUVycm9ycz8uW2Nob2ljZS52YWx1ZV0gJiYgKFxuICAgICAgICAgICAgICAgICAgPEVycm9yVGV4dD57cmF0aW9uYWxlRXJyb3JzPy5bY2hvaWNlLnZhbHVlXX08L0Vycm9yVGV4dD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9SYXRpb25hbGVIb2xkZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9DaG9pY2VDb25maWd1cmF0aW9uSG9sZGVyPlxuICAgICAgKSl9XG5cbiAgICAgIHtjb3JyZWN0UmVzcG9uc2VFcnJvciAmJiA8RXJyb3JUZXh0Pntjb3JyZWN0UmVzcG9uc2VFcnJvcn08L0Vycm9yVGV4dD59XG4gICAgICB7YW5zd2VyQ2hvaWNlc0Vycm9yICYmIDxFcnJvclRleHQ+e2Fuc3dlckNob2ljZXNFcnJvcn08L0Vycm9yVGV4dD59XG5cbiAgICAgIHthZGRDaG9pY2VCdXR0b24uc2V0dGluZ3MgJiYgKFxuICAgICAgICA8U3R5bGVkVG9vbHRpcCB0aXRsZT17YWRkQ2hvaWNlQnV0dG9uVG9vbHRpcH0+XG4gICAgICAgICAge21heEFuc3dlckNob2ljZXMgJiYgY2hvaWNlcz8ubGVuZ3RoID49IG1heEFuc3dlckNob2ljZXMgPyAoXG4gICAgICAgICAgICA8RGlzYWJsZUJ1dHRvblxuICAgICAgICAgICAgICB2YXJpYW50PVwiY29udGFpbmVkXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgb25DbGljaz17b25BZGRDaG9pY2V9XG4gICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHthZGRDaG9pY2VCdXR0b24ubGFiZWx9XG4gICAgICAgICAgICA8L0Rpc2FibGVCdXR0b24+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxBZGRCdXR0b25cbiAgICAgICAgICAgICAgdmFyaWFudD1cImNvbnRhaW5lZFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uQWRkQ2hvaWNlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YWRkQ2hvaWNlQnV0dG9uLmxhYmVsfVxuICAgICAgICAgICAgPC9BZGRCdXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRUb29sdGlwPlxuICAgICAgKX1cbiAgICA8L2xheW91dC5Db25maWdMYXlvdXQ+XG4gICk7XG59O1xuXG5leHBvcnQgY2xhc3MgTWFpbiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgZGlzYWJsZVNpZGVQYW5lbDogUHJvcFR5cGVzLmJvb2wsXG4gICAgb25Nb2RlbENoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb25Db25maWd1cmF0aW9uQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBpbWFnZVN1cHBvcnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBhZGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBkZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfSksXG4gIH07XG5cbiAgc3RhdGUgPSB7IHNob3dXYXJuaW5nOiBmYWxzZSB9O1xuXG4gIG9uUmVtb3ZlQ2hvaWNlID0gKGluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgY29uZmlndXJhdGlvbiwgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBtaW5BbnN3ZXJDaG9pY2VzIH0gPSBjb25maWd1cmF0aW9uIHx8IHt9O1xuXG4gICAgaWYgKG1pbkFuc3dlckNob2ljZXMgJiYgbW9kZWwuY2hvaWNlcy5sZW5ndGggPT09IG1pbkFuc3dlckNob2ljZXMpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93V2FybmluZzogdHJ1ZSB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vZGVsLmNob2ljZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBvbk1vZGVsQ2hhbmdlZChtb2RlbCk7XG4gIH07XG5cbiAgb25BZGRDaG9pY2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgY29uZmlndXJhdGlvbiwgb25Nb2RlbENoYW5nZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgbGV0IHsgbWF4QW5zd2VyQ2hvaWNlcyB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICBjb25zdCB7IGxpbWl0Q2hvaWNlc051bWJlciB9ID0gbW9kZWwgfHwge307XG5cbiAgICAvLyBpZiBvbGQgcHJvcGVydHkgaXMgdXNlZCwgc2V0IG1heEFuc3dlckNob2ljZXMgdG8gOVxuICAgIGlmIChsaW1pdENob2ljZXNOdW1iZXIpIHtcbiAgICAgIG1heEFuc3dlckNob2ljZXMgPSBNQVhfQ0hPSUNFUztcbiAgICB9XG5cbiAgICBpZiAobWF4QW5zd2VyQ2hvaWNlcyAmJiBtb2RlbC5jaG9pY2VzLmxlbmd0aCA+PSBtYXhBbnN3ZXJDaG9pY2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW9kZWwuY2hvaWNlcy5wdXNoKHtcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIHZhbHVlOiB1dGlscy5maXJzdEF2YWlsYWJsZUluZGV4KFxuICAgICAgICBtb2RlbC5jaG9pY2VzLm1hcCgoYykgPT4gYy52YWx1ZSksXG4gICAgICAgIDAsXG4gICAgICApLFxuICAgICAgZmVlZGJhY2s6IHsgdHlwZTogJ25vbmUnIH0sXG4gICAgfSk7XG5cbiAgICBvbk1vZGVsQ2hhbmdlZChtb2RlbCk7XG4gIH07XG5cbiAgb25DaG9pY2VDaGFuZ2VkID0gKGluZGV4LCBjaG9pY2UpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbk1vZGVsQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChjaG9pY2UuY29ycmVjdCAmJiBtb2RlbC5jaG9pY2VNb2RlID09PSAncmFkaW8nKSB7XG4gICAgICBtb2RlbC5jaG9pY2VzID0gbW9kZWwuY2hvaWNlcy5tYXAoKGMpID0+IG1lcmdlKHt9LCBjLCB7IGNvcnJlY3Q6IGZhbHNlIH0pKTtcbiAgICB9XG5cbiAgICBtb2RlbC5jaG9pY2VzLnNwbGljZShpbmRleCwgMSwgY2hvaWNlKTtcbiAgICBvbk1vZGVsQ2hhbmdlZChtb2RlbCk7XG4gIH07XG5cbiAgb25Qcm9tcHRDaGFuZ2VkID0gKHByb21wdCkgPT4ge1xuICAgIHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoe1xuICAgICAgLi4udGhpcy5wcm9wcy5tb2RlbCxcbiAgICAgIHByb21wdCxcbiAgICB9KTtcbiAgfTtcblxuICBvblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkID0gKHRlYWNoZXJJbnN0cnVjdGlvbnMpID0+IHtcbiAgICB0aGlzLnByb3BzLm9uTW9kZWxDaGFuZ2VkKHtcbiAgICAgIC4uLnRoaXMucHJvcHMubW9kZWwsXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zLFxuICAgIH0pO1xuICB9O1xuXG4gIG9uTW9kZWxDaGFuZ2VkID0gKG1vZGVsLCBrZXkpID0+IHtcbiAgICBjb25zdCB7IG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgc3dpdGNoIChrZXkpIHtcbiAgICAgIGNhc2UgJ2Nob2ljZU1vZGUnOiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG1vZGVsLmNob2ljZU1vZGU7XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSAncmFkaW8nKSB7XG4gICAgICAgICAgbGV0IGNvcnJlY3RGb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgbW9kZWwuY2hvaWNlcyA9IG1vZGVsLmNob2ljZXMubWFwKChjKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29ycmVjdEZvdW5kKSB7XG4gICAgICAgICAgICAgIGMuY29ycmVjdCA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYy5jb3JyZWN0KSB7XG4gICAgICAgICAgICAgIGNvcnJlY3RGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgb25Nb2RlbENoYW5nZWQobW9kZWwsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgb25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbjogeyBtaW5BbnN3ZXJDaG9pY2VzIH0gPSB7fSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNob3dXYXJuaW5nIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPEFsZXJ0RGlhbG9nXG4gICAgICAgICAgb3Blbj17c2hvd1dhcm5pbmd9XG4gICAgICAgICAgdGl0bGU9XCJXYXJuaW5nXCJcbiAgICAgICAgICB0ZXh0PXtgVGhlcmUgY2FuJ3QgYmUgbGVzcyB0aGFuICR7bWluQW5zd2VyQ2hvaWNlcyB8fCAwfSBjaG9pY2VzLmB9XG4gICAgICAgICAgb25Db25maXJtPXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgc2hvd1dhcm5pbmc6IGZhbHNlIH0pfVxuICAgICAgICAvPlxuICAgICAgICA8RGVzaWduXG4gICAgICAgICAgey4uLnRoaXMucHJvcHN9XG4gICAgICAgICAgb25DaGFuZ2VNb2RlbD17dGhpcy5vbk1vZGVsQ2hhbmdlZH1cbiAgICAgICAgICBvblJlbW92ZUNob2ljZT17dGhpcy5vblJlbW92ZUNob2ljZX1cbiAgICAgICAgICBvbkNob2ljZUNoYW5nZWQ9e3RoaXMub25DaG9pY2VDaGFuZ2VkfVxuICAgICAgICAgIG9uQWRkQ2hvaWNlPXt0aGlzLm9uQWRkQ2hvaWNlfVxuICAgICAgICAgIG9uUHJvbXB0Q2hhbmdlZD17dGhpcy5vblByb21wdENoYW5nZWR9XG4gICAgICAgICAgb25UZWFjaGVySW5zdHJ1Y3Rpb25zQ2hhbmdlZD17dGhpcy5vblRlYWNoZXJJbnN0cnVjdGlvbnNDaGFuZ2VkfVxuICAgICAgICAvPlxuICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1haW47XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG1CQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFKLE9BQUE7QUFRQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxJQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_editableHtml","_configUi","_renderUi","_Button","_Tooltip","_Typography","_Box","_Info","_merge","_utils","Panel","toggle","radio","dropdown","settings","MAX_CHOICES","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","RationaleHolder","flex","marginTop","marginLeft","ChoiceConfigurationHolder","display","flexDirection","AddButton","Button","float","DisableButton","cursor","pointerEvents","backgroundColor","color","disabled","FlexContainer","Box","alignItems","TitleText","Typography","fontSize","typography","marginRight","StyledTooltip","Tooltip","whiteSpace","maxWidth","ErrorText","palette","error","main","Design","props","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","addChoiceButton","contentDimensions","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","prompt","withRubric","mathMlOptions","language","languageChoices","maxAnswerChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","extraCSSRules","answerChoices","answerChoicesError","choicesErrors","correctResponse","correctResponseError","promptError","rationaleErrors","teacherInstructionsError","nrOfColumnsAvailable","length","Array","from","_","i","baseInputConfiguration","toolbarOpts","position","getPluginProps","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","default","createElement","layout","ConfigLayout","dimensions","hideSettings","classes","onChangeConfiguration","groups","Settings","Properties","markup","onChange","nonEmpty","disableUnderline","pluginProps","inputConfiguration","languageCharactersProps","component","disableFocusListener","disableTouchListener","placement","title","map","choice","index","key","ChoiceConfiguration","useLetterOrdering","mode","data","defaultFeedback","disableImageAlignmentButtons","onDelete","c","allowFeedBack","allowDelete","noLabels","pluginOpts","value","noCorrectAnswerError","variant","onClick","Main","React","Component","constructor","args","_defineProperty2","showWarning","onModelChanged","minAnswerChoices","setState","splice","push","utils","firstAvailableIndex","type","correct","merge","correctFound","render","state","Fragment","AlertDialog","open","text","onConfirm","_extends2","exports","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html';\nimport {\n AlertDialog,\n InputContainer,\n ChoiceConfiguration,\n settings,\n layout,\n choiceUtils as utils,\n} from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\nimport Button from '@mui/material/Button';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport Info from '@mui/icons-material/Info';\nimport merge from 'lodash/merge';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst MAX_CHOICES = 9;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst RationaleHolder = styled(InputContainer)(({ theme }) => ({\n flex: 1,\n marginTop: theme.spacing(1.5),\n paddingTop: theme.spacing(2),\n marginLeft: theme.spacing(3.5),\n}));\n\nconst ChoiceConfigurationHolder = styled(InputContainer)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n width: '100%',\n}));\n\n\nconst AddButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1),\n float: 'right',\n}));\n\nconst DisableButton = styled(AddButton)({\n cursor: 'not-allowed',\n pointerEvents: 'all',\n backgroundColor: color.disabled(),\n '&:hover': {\n backgroundColor: color.disabled(),\n },\n '&:focus': {\n backgroundColor: color.disabled(),\n },\n});\n\nconst FlexContainer = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n});\n\nconst TitleText = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst Design = (props) => {\n const {\n model,\n configuration,\n onPromptChanged,\n onChoiceChanged,\n onRemoveChoice,\n onAddChoice,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n\n const {\n addChoiceButton = {},\n contentDimensions = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n\n const {\n answerChoices: answerChoicesError,\n choices: choicesErrors,\n correctResponse: correctResponseError,\n prompt: promptError,\n rationale: rationaleErrors,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const { baseInputConfiguration = {} } = configuration;\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const validationMessage = generateValidationMessage(configuration);\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n const panelSettings = {\n choiceMode: choiceMode.settings && radio(choiceMode.label, ['checkbox', 'radio']),\n 'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),\n choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),\n gridColumns:\n choicesLayout.settings &&\n model.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.length > 0 &&\n dropdown(gridColumns.label, nrOfColumnsAvailable),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n extraCSSRules={extraCSSRules}\n classes={{}}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <FlexContainer>\n <TitleText component={'div'}>\n Choices\n </TitleText>\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </FlexContainer>\n\n {choices.map((choice, index) => (\n <ChoiceConfigurationHolder key={`choice-${index}`}>\n <ChoiceConfiguration\n key={index}\n index={index + 1}\n useLetterOrdering={model.choicePrefix === 'letters'}\n mode={model.choiceMode}\n data={choice}\n defaultFeedback={{}}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onDelete={() => onRemoveChoice(index)}\n onChange={(c) => onChoiceChanged(index, c)}\n allowFeedBack={feedbackEnabled}\n allowDelete={deleteChoice.settings}\n noLabels\n pluginOpts={getPluginProps(configuration?.choices?.inputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n error={choicesErrors?.[choice.value] || null}\n noCorrectAnswerError={correctResponseError}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <RationaleHolder key={`rationale-${index}`} label={rationale.label}>\n <EditableHtml\n markup={choice.rationale || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n error={rationaleErrors?.[choice.value] || null}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleErrors?.[choice.value] && (\n <ErrorText>{rationaleErrors?.[choice.value]}</ErrorText>\n )}\n </RationaleHolder>\n )}\n </ChoiceConfigurationHolder>\n ))}\n\n {correctResponseError && <ErrorText>{correctResponseError}</ErrorText>}\n {answerChoicesError && <ErrorText>{answerChoicesError}</ErrorText>}\n\n {addChoiceButton.settings && (\n <StyledTooltip title={addChoiceButtonTooltip}>\n {maxAnswerChoices && choices?.length >= maxAnswerChoices ? (\n <DisableButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n disabled\n >\n {addChoiceButton.label}\n </DisableButton>\n ) : (\n <AddButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n >\n {addChoiceButton.label}\n </AddButton>\n )}\n </StyledTooltip>\n )}\n </layout.ConfigLayout>\n );\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = { showWarning: false };\n\n onRemoveChoice = (index) => {\n const { model, configuration, onModelChanged } = this.props;\n const { minAnswerChoices } = configuration || {};\n\n if (minAnswerChoices && model.choices.length === minAnswerChoices) {\n this.setState({ showWarning: true });\n\n return;\n }\n\n model.choices.splice(index, 1);\n onModelChanged(model);\n };\n\n onAddChoice = () => {\n const { model, configuration, onModelChanged } = this.props;\n let { maxAnswerChoices } = configuration || {};\n const { limitChoicesNumber } = model || {};\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n if (maxAnswerChoices && model.choices.length >= maxAnswerChoices) {\n return;\n }\n\n model.choices.push({\n label: '',\n value: utils.firstAvailableIndex(\n model.choices.map((c) => c.value),\n 0,\n ),\n feedback: { type: 'none' },\n });\n\n onModelChanged(model);\n };\n\n onChoiceChanged = (index, choice) => {\n const { model, onModelChanged } = this.props;\n\n if (choice.correct && model.choiceMode === 'radio') {\n model.choices = model.choices.map((c) => merge({}, c, { correct: false }));\n }\n\n model.choices.splice(index, 1, choice);\n onModelChanged(model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n switch (key) {\n case 'choiceMode': {\n let value = model.choiceMode;\n\n if (value === 'radio') {\n let correctFound = false;\n\n model.choices = model.choices.map((c) => {\n if (correctFound) {\n c.correct = false;\n\n return c;\n }\n\n if (c.correct) {\n correctFound = true;\n }\n\n return c;\n });\n }\n\n onModelChanged(model, true);\n break;\n }\n\n default:\n onModelChanged(model);\n break;\n }\n };\n\n render() {\n const { configuration: { minAnswerChoices } = {} } = this.props;\n const { showWarning } = this.state;\n\n return (\n <React.Fragment>\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text={`There can't be less than ${minAnswerChoices || 0} choices.`}\n onConfirm={() => this.setState({ showWarning: false })}\n />\n <Design\n {...this.props}\n onChangeModel={this.onModelChanged}\n onRemoveChoice={this.onRemoveChoice}\n onChoiceChanged={this.onChoiceChanged}\n onAddChoice={this.onAddChoice}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_editableHtmlTipTap","_configUi","_renderUi","_Button","_Tooltip","_Typography","_Box","_Info","_merge","_utils","Panel","toggle","radio","dropdown","settings","MAX_CHOICES","PromptHolder","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","RationaleHolder","flex","marginTop","marginLeft","ChoiceConfigurationHolder","display","flexDirection","AddButton","Button","float","DisableButton","cursor","pointerEvents","backgroundColor","color","disabled","FlexContainer","Box","alignItems","TitleText","Typography","fontSize","typography","marginRight","StyledTooltip","Tooltip","whiteSpace","maxWidth","ErrorText","palette","error","main","Design","props","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","addChoiceButton","contentDimensions","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","prompt","withRubric","mathMlOptions","language","languageChoices","maxAnswerChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","extraCSSRules","answerChoices","answerChoicesError","choicesErrors","correctResponse","correctResponseError","promptError","rationaleErrors","teacherInstructionsError","nrOfColumnsAvailable","length","Array","from","_","i","baseInputConfiguration","toolbarOpts","position","getPluginProps","validationMessage","generateValidationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","default","createElement","layout","ConfigLayout","dimensions","hideSettings","classes","onChangeConfiguration","groups","Settings","Properties","markup","onChange","nonEmpty","disableUnderline","pluginProps","inputConfiguration","languageCharactersProps","component","disableFocusListener","disableTouchListener","placement","title","map","choice","index","key","ChoiceConfiguration","useLetterOrdering","mode","data","defaultFeedback","disableImageAlignmentButtons","onDelete","c","allowFeedBack","allowDelete","noLabels","pluginOpts","value","noCorrectAnswerError","variant","onClick","Main","React","Component","constructor","args","_defineProperty2","showWarning","onModelChanged","minAnswerChoices","setState","splice","push","utils","firstAvailableIndex","type","correct","merge","correctFound","render","state","Fragment","AlertDialog","open","text","onConfirm","_extends2","exports","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport {\n AlertDialog,\n InputContainer,\n ChoiceConfiguration,\n settings,\n layout,\n choiceUtils as utils,\n} from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\nimport Button from '@mui/material/Button';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport Info from '@mui/icons-material/Info';\nimport merge from 'lodash/merge';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst MAX_CHOICES = 9;\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst RationaleHolder = styled(InputContainer)(({ theme }) => ({\n flex: 1,\n marginTop: theme.spacing(1.5),\n paddingTop: theme.spacing(2),\n marginLeft: theme.spacing(3.5),\n}));\n\nconst ChoiceConfigurationHolder = styled(InputContainer)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing(1),\n width: '100%',\n}));\n\n\nconst AddButton = styled(Button)(({ theme }) => ({\n marginTop: theme.spacing(1),\n float: 'right',\n}));\n\nconst DisableButton = styled(AddButton)({\n cursor: 'not-allowed',\n pointerEvents: 'all',\n backgroundColor: color.disabled(),\n '&:hover': {\n backgroundColor: color.disabled(),\n },\n '&:focus': {\n backgroundColor: color.disabled(),\n },\n});\n\nconst FlexContainer = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n});\n\nconst TitleText = styled(Typography)(({ theme }) => ({\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing(1),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst Design = (props) => {\n const {\n model,\n configuration,\n onPromptChanged,\n onChoiceChanged,\n onRemoveChoice,\n onAddChoice,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n\n const {\n addChoiceButton = {},\n contentDimensions = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n\n const {\n answerChoices: answerChoicesError,\n choices: choicesErrors,\n correctResponse: correctResponseError,\n prompt: promptError,\n rationale: rationaleErrors,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const { baseInputConfiguration = {} } = configuration;\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const validationMessage = generateValidationMessage(configuration);\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n const panelSettings = {\n choiceMode: choiceMode.settings && radio(choiceMode.label, ['checkbox', 'radio']),\n 'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),\n choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),\n gridColumns:\n choicesLayout.settings &&\n model.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.length > 0 &&\n dropdown(gridColumns.label, nrOfColumnsAvailable),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n extraCSSRules={extraCSSRules}\n classes={{}}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <PromptHolder label={teacherInstructions.label}>\n <EditableHtml\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.teacherInstructions?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </PromptHolder>\n )}\n\n {promptEnabled && (\n <PromptHolder label={prompt.label}>\n <EditableHtml\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n <FlexContainer>\n <TitleText component={'div'}>\n Choices\n </TitleText>\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </StyledTooltip>\n </FlexContainer>\n\n {choices.map((choice, index) => (\n <ChoiceConfigurationHolder key={`choice-${index}`}>\n <ChoiceConfiguration\n key={index}\n index={index + 1}\n useLetterOrdering={model.choicePrefix === 'letters'}\n mode={model.choiceMode}\n data={choice}\n defaultFeedback={{}}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onDelete={() => onRemoveChoice(index)}\n onChange={(c) => onChoiceChanged(index, c)}\n allowFeedBack={feedbackEnabled}\n allowDelete={deleteChoice.settings}\n noLabels\n pluginOpts={getPluginProps(configuration?.choices?.inputConfiguration)}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n error={choicesErrors?.[choice.value] || null}\n noCorrectAnswerError={correctResponseError}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n mathMlOptions={mathMlOptions}\n />\n\n {rationaleEnabled && (\n <RationaleHolder key={`rationale-${index}`} label={rationale.label}>\n <EditableHtml\n markup={choice.rationale || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n error={rationaleErrors?.[choice.value] || null}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.rationale?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleErrors?.[choice.value] && (\n <ErrorText>{rationaleErrors?.[choice.value]}</ErrorText>\n )}\n </RationaleHolder>\n )}\n </ChoiceConfigurationHolder>\n ))}\n\n {correctResponseError && <ErrorText>{correctResponseError}</ErrorText>}\n {answerChoicesError && <ErrorText>{answerChoicesError}</ErrorText>}\n\n {addChoiceButton.settings && (\n <StyledTooltip title={addChoiceButtonTooltip}>\n {maxAnswerChoices && choices?.length >= maxAnswerChoices ? (\n <DisableButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n disabled\n >\n {addChoiceButton.label}\n </DisableButton>\n ) : (\n <AddButton\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n >\n {addChoiceButton.label}\n </AddButton>\n )}\n </StyledTooltip>\n )}\n </layout.ConfigLayout>\n );\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = { showWarning: false };\n\n onRemoveChoice = (index) => {\n const { model, configuration, onModelChanged } = this.props;\n const { minAnswerChoices } = configuration || {};\n\n if (minAnswerChoices && model.choices.length === minAnswerChoices) {\n this.setState({ showWarning: true });\n\n return;\n }\n\n model.choices.splice(index, 1);\n onModelChanged(model);\n };\n\n onAddChoice = () => {\n const { model, configuration, onModelChanged } = this.props;\n let { maxAnswerChoices } = configuration || {};\n const { limitChoicesNumber } = model || {};\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n if (maxAnswerChoices && model.choices.length >= maxAnswerChoices) {\n return;\n }\n\n model.choices.push({\n label: '',\n value: utils.firstAvailableIndex(\n model.choices.map((c) => c.value),\n 0,\n ),\n feedback: { type: 'none' },\n });\n\n onModelChanged(model);\n };\n\n onChoiceChanged = (index, choice) => {\n const { model, onModelChanged } = this.props;\n\n if (choice.correct && model.choiceMode === 'radio') {\n model.choices = model.choices.map((c) => merge({}, c, { correct: false }));\n }\n\n model.choices.splice(index, 1, choice);\n onModelChanged(model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n switch (key) {\n case 'choiceMode': {\n let value = model.choiceMode;\n\n if (value === 'radio') {\n let correctFound = false;\n\n model.choices = model.choices.map((c) => {\n if (correctFound) {\n c.correct = false;\n\n return c;\n }\n\n if (c.correct) {\n correctFound = true;\n }\n\n return c;\n });\n }\n\n onModelChanged(model, true);\n break;\n }\n\n default:\n onModelChanged(model);\n break;\n }\n };\n\n render() {\n const { configuration: { minAnswerChoices } = {} } = this.props;\n const { showWarning } = this.state;\n\n return (\n <React.Fragment>\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text={`There can't be less than ${minAnswerChoices || 0} choices.`}\n onConfirm={() => this.setState({ showWarning: false })}\n />\n <Design\n {...this.props}\n onChangeModel={this.onModelChanged}\n onRemoveChoice={this.onRemoveChoice}\n onChoiceChanged={this.onChoiceChanged}\n onAddChoice={this.onAddChoice}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n </React.Fragment>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-configure",
3
- "version": "9.0.0-beta.0",
3
+ "version": "9.0.0-beta.1",
4
4
  "private": true,
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -10,9 +10,9 @@
10
10
  "@mui/icons-material": "^7.3.4",
11
11
  "@mui/material": "^7.3.4",
12
12
  "@pie-framework/pie-configure-events": "^1.3.0",
13
- "@pie-lib/config-ui": "11.30.4-next.0",
14
- "@pie-lib/editable-html": "11.21.4-next.0",
15
- "@pie-lib/render-ui": "4.35.4-next.0",
13
+ "@pie-lib/config-ui": "12.1.0-next.5",
14
+ "@pie-lib/editable-html-tip-tap": "1.1.0-next.5",
15
+ "@pie-lib/render-ui": "5.1.0-next.5",
16
16
  "debug": "^3.1.0",
17
17
  "lodash": "^4.17.15",
18
18
  "prop-types": "^15.6.2",
@@ -3,17 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [6.3.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@6.3.2...@pie-element/multiple-choice-controller@6.3.3) (2025-11-27)
7
-
8
-
9
- ### Bug Fixes
10
-
11
- * bump libs PD-5274, PD-5211, PD-5248 ([7610b25](https://github.com/pie-framework/pie-elements/commit/7610b25423956b6492f33322513b3430051fca77))
12
-
13
-
14
-
15
-
16
-
17
6
  ## [6.3.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@6.3.1...@pie-element/multiple-choice-controller@6.3.2) (2025-10-22)
18
7
 
19
8
 
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-controller",
3
3
  "private": true,
4
- "version": "7.0.0-beta.0",
4
+ "version": "7.0.0-beta.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
8
8
  "author": "",
9
9
  "license": "ISC",
10
10
  "dependencies": {
11
- "@pie-lib/controller-utils": "0.22.4-next.0",
11
+ "@pie-lib/controller-utils": "1.1.0-next.4",
12
12
  "debug": "^3.1.0",
13
13
  "lodash": "^4.17.15"
14
14
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "12.0.0-beta.0",
4
+ "version": "12.0.0-beta.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -11,10 +11,10 @@
11
11
  "@mui/icons-material": "^7.3.4",
12
12
  "@mui/material": "^7.3.4",
13
13
  "@pie-framework/pie-player-events": "^0.1.0",
14
- "@pie-lib/correct-answer-toggle": "2.25.4-next.0",
15
- "@pie-lib/math-rendering": "3.22.3-next.0",
16
- "@pie-lib/render-ui": "4.35.4-next.0",
17
- "@pie-lib/translator": "2.23.3-next.0",
14
+ "@pie-lib/correct-answer-toggle": "3.1.0-next.5",
15
+ "@pie-lib/math-rendering": "4.1.0-next.4",
16
+ "@pie-lib/render-ui": "5.1.0-next.5",
17
+ "@pie-lib/translator": "3.1.0-next.4",
18
18
  "classnames": "^2.2.5",
19
19
  "debug": "^4.1.1",
20
20
  "lodash": "^4.17.10",
@@ -23,7 +23,7 @@
23
23
  "react-dom": "18.2.0",
24
24
  "react-transition-group": "^2.3.1"
25
25
  },
26
- "gitHead": "7879a67078db250e4b7e8fdc869638024600411d",
26
+ "gitHead": "a15dd0ea81626703eb753bc0ab4c81bb2a96d58d",
27
27
  "scripts": {
28
28
  "postpublish": "../../scripts/postpublish"
29
29
  },