@pie-element/math-inline 7.0.4-next.72 → 7.1.0-next.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,6 +3,23 @@
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
+ # [7.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.0.3...@pie-element/math-inline@7.1.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+
13
+
14
+ ### Features
15
+
16
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
17
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [7.0.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline@7.0.2...@pie-element/math-inline@7.0.3) (2023-11-27)
7
24
 
8
25
 
@@ -3,6 +3,23 @@
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
+ # [7.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.0.3...@pie-element/math-inline-configure@7.1.0) (2023-12-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-lib/pie-toolbox PD-2068 ([34eccd5](https://github.com/pie-framework/pie-elements/commit/34eccd52c44259eddf3e2b816b00b82f83bc2bf8))
12
+
13
+
14
+ ### Features
15
+
16
+ * update pie-lib/pie-toolbox PD-2555 ([86d4fd9](https://github.com/pie-framework/pie-elements/commit/86d4fd909180dd1fcbc446bd8b29c23af21a1c69))
17
+ * update pie-lib/pie-toolbox PD-3307, PD-2067, PD-3271, PD-3041, PD-2068 ([2eabcbd](https://github.com/pie-framework/pie-elements/commit/2eabcbd036e318bb24552f4140ca7384ad865951))
18
+
19
+
20
+
21
+
22
+
6
23
  ## [7.0.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-configure@7.0.2...@pie-element/math-inline-configure@7.0.3) (2023-11-27)
7
24
 
8
25
 
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
+
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+
11
+ var React = _interopRequireWildcard(require("react"));
12
+
13
+ var _configure = _interopRequireWildcard(require("../configure"));
14
+
15
+ var _generalConfigBlock = _interopRequireDefault(require("../general-config-block"));
16
+
17
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
18
+
19
+ var _testUtils = require("@pie-lib/pie-toolbox/test-utils");
20
+
21
+ var _response = _interopRequireDefault(require("../response"));
22
+
23
+ var _mathToolbar = require("@pie-lib/pie-toolbox/math-toolbar");
24
+
25
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
26
+
27
+ var _enzyme = require("enzyme");
28
+
29
+ var _defaults = _interopRequireDefault(require("../defaults"));
30
+
31
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
+
33
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
34
+
35
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
36
+
37
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
38
+
39
+ jest.mock('@pie-lib/pie-toolbox/config-ui', function () {
40
+ return {
41
+ InputContainer: function InputContainer(props) {
42
+ return /*#__PURE__*/React.createElement("div", null, props.children);
43
+ },
44
+ InputCheckbox: function InputCheckbox(props) {
45
+ return /*#__PURE__*/React.createElement("div", null, props.children);
46
+ },
47
+ FeedbackConfig: function FeedbackConfig(props) {
48
+ return /*#__PURE__*/React.createElement("div", null, props.children);
49
+ },
50
+ layout: {
51
+ ConfigLayout: function ConfigLayout(props) {
52
+ return /*#__PURE__*/React.createElement("div", null, props.children);
53
+ }
54
+ },
55
+ settings: {
56
+ Panel: function Panel(props) {
57
+ return /*#__PURE__*/React.createElement("div", {
58
+ onChange: props.onChange
59
+ });
60
+ },
61
+ toggle: jest.fn(),
62
+ radio: jest.fn()
63
+ }
64
+ };
65
+ });
66
+ jest.mock('@pie-lib/pie-toolbox/math-toolbar', function () {
67
+ return {
68
+ MathToolbar: function MathToolbar() {
69
+ return /*#__PURE__*/React.createElement("div", null);
70
+ }
71
+ };
72
+ });
73
+ jest.mock('@pie-framework/mathquill', function () {
74
+ return {
75
+ StaticMath: jest.fn().mockReturnValue({
76
+ latex: jest.fn()
77
+ }),
78
+ registerEmbed: jest.fn(),
79
+ getInterface: jest.fn().mockReturnThis()
80
+ };
81
+ });
82
+
83
+ var Mathquill = require('@pie-framework/mathquill');
84
+
85
+ var defaultProps = {
86
+ model: {
87
+ id: '1',
88
+ promptEnabled: true,
89
+ feedbackEnabled: true,
90
+ element: 'math-inline',
91
+ responseType: 'Advanced Multi',
92
+ feedback: {
93
+ correct: {
94
+ "default": 'Correct',
95
+ type: 'none'
96
+ },
97
+ incorrect: {
98
+ "default": 'Incorrect',
99
+ type: 'none'
100
+ },
101
+ partial: {
102
+ "default": 'Nearly',
103
+ type: 'none'
104
+ }
105
+ },
106
+ equationEditor: '3',
107
+ expression: '{{response}} = {{response}} \\text{eggs}',
108
+ question: '<p>Sam sells baskets of eggs at his farm stand. He sold 12 baskets and wrote the number sentence below to show how many eggs he sold in all.</p><p><span class="equation-block"><math xmlns="http://www.w3.org/1998/Math/MathML" >\n <mrow>\n <mn>12</mn><mo>&#x00D7;</mo><mo>&#x25A1;</mo><mo>=</mo><mn>72</mn>\n </mrow>\n</math> </span></p><p>What <span class="relative-emphasis">division</span> number sentence can be used to show how many eggs were in each basket?</p><p>Use the on-screen keyboard to type your number sentence and answer in the box.</p>',
109
+ response: {
110
+ answer: '72\\div12=6\\text{eggs}',
111
+ alternates: {
112
+ 1: '6=72\\div12\\text{eggs}',
113
+ 2: '\\frac{72}{12}=6\\text{eggs}',
114
+ 3: '6=\\frac{72}{12}\\text{eggs}'
115
+ },
116
+ validation: 'literal'
117
+ },
118
+ responses: [{
119
+ id: '1',
120
+ answer: '72\\div12=6\\text{eggs}',
121
+ alternates: {
122
+ 1: '6=72\\div12\\text{eggs}',
123
+ 2: '\\frac{72}{12}=6\\text{eggs}',
124
+ 3: '6=\\frac{72}{12}\\text{eggs}'
125
+ },
126
+ validation: 'literal'
127
+ }],
128
+ note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
129
+ customKeys: ['\\left(\\right)', '\\frac{}{}', 'x\\frac{}{}'],
130
+ configure: _defaults["default"].configure
131
+ },
132
+ configuration: _defaults["default"].configuration
133
+ };
134
+ describe('Configure', function () {
135
+ var wrapper;
136
+ var component;
137
+ beforeEach(function () {
138
+ wrapper = (0, _testUtils.shallowChild)(_configure["default"], defaultProps, 2);
139
+ });
140
+ it('renders correctly', function () {
141
+ component = wrapper();
142
+ expect(component.find(_generalConfigBlock["default"]).length).toEqual(1);
143
+ expect(component.find(_configUi.FeedbackConfig).length).toEqual(1);
144
+ });
145
+ it('renders correctly with snapshot', function () {
146
+ component = wrapper();
147
+ expect(component).toMatchSnapshot();
148
+ });
149
+ it('changeTeacherInstructions calls onModelChange', function () {
150
+ var onModelChanged = jest.fn();
151
+ var component = (0, _enzyme.shallow)( /*#__PURE__*/React.createElement(_configure.Configure, (0, _extends2["default"])({
152
+ onModelChanged: onModelChanged,
153
+ classes: {}
154
+ }, _defaults["default"])));
155
+ component.instance().changeTeacherInstructions('Teacher Instructions');
156
+ expect(onModelChanged).toBeCalledWith(expect.objectContaining({
157
+ teacherInstructions: 'Teacher Instructions'
158
+ }));
159
+ });
160
+ });
161
+ describe('GeneralConfigBlock', function () {
162
+ var wrapper;
163
+ var props;
164
+ var component;
165
+ beforeEach(function () {
166
+ props = {
167
+ model: defaultProps.model,
168
+ promptEnabled: true,
169
+ configuration: _defaults["default"].configuration,
170
+ onChange: jest.fn(),
171
+ imageSupport: {},
172
+ uploadSoundSupport: {}
173
+ };
174
+ wrapper = (0, _testUtils.shallowChild)(_generalConfigBlock["default"], props, 1);
175
+ });
176
+ it('renders correctly', function () {
177
+ component = wrapper();
178
+ expect(component.find(_configUi.InputContainer).length).toBeGreaterThan(1);
179
+ expect(component.find(_response["default"]).length).toEqual(1);
180
+ expect(component.find(_mathToolbar.MathToolbar).length).toEqual(1);
181
+ expect(component.find(_editableHtml.EditableHtml).length).toEqual(1);
182
+ expect(Mathquill.getInterface().registerEmbed).toHaveBeenCalled();
183
+ component = wrapper({
184
+ model: _objectSpread(_objectSpread({}, props.model), {}, {
185
+ responseType: 'Simple'
186
+ })
187
+ });
188
+ expect(component.find(_configUi.InputContainer).length).toBeGreaterThan(1);
189
+ expect(component.find(_response["default"]).length).toEqual(1);
190
+ expect(component.find(_editableHtml.EditableHtml).length).toEqual(1);
191
+ expect(component.find(_mathToolbar.MathToolbar).length).toEqual(0);
192
+ });
193
+ it('renders correctly with snapshot', function () {
194
+ component = wrapper();
195
+ expect(component).toMatchSnapshot();
196
+ });
197
+ it('updates advanced model correctly', function () {
198
+ var onChange = jest.fn();
199
+ var component = wrapper(_objectSpread(_objectSpread({}, props), {}, {
200
+ onChange: onChange
201
+ }));
202
+ component.instance().onResponseChange({
203
+ answer: 'something',
204
+ id: 'r1'
205
+ }, 0);
206
+ expect(onChange).toBeCalledWith(_objectSpread(_objectSpread({}, props.model), {}, {
207
+ responses: [{
208
+ id: 'r1',
209
+ answer: 'something'
210
+ }]
211
+ }));
212
+ });
213
+ it('builds out internal state correctly based on expression provided', function () {
214
+ component = wrapper();
215
+ expect(component.state()).toEqual({
216
+ showKeypad: false,
217
+ responseIdCounter: 2,
218
+ responseAreas: {
219
+ r1: {
220
+ value: ''
221
+ },
222
+ r2: {
223
+ value: ''
224
+ }
225
+ }
226
+ });
227
+ component = wrapper(_objectSpread(_objectSpread({}, props), {}, {
228
+ model: _objectSpread(_objectSpread({}, props.model), {}, {
229
+ expression: props.model.expression + ' {{response}} '
230
+ })
231
+ }));
232
+ expect(component.state()).toEqual({
233
+ showKeypad: false,
234
+ responseIdCounter: 3,
235
+ responseAreas: {
236
+ r1: {
237
+ value: ''
238
+ },
239
+ r2: {
240
+ value: ''
241
+ },
242
+ r3: {
243
+ value: ''
244
+ }
245
+ }
246
+ });
247
+ });
248
+ });
249
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vY29uZmlndXJlLnRlc3QuanMiXSwibmFtZXMiOlsiamVzdCIsIm1vY2siLCJJbnB1dENvbnRhaW5lciIsInByb3BzIiwiY2hpbGRyZW4iLCJJbnB1dENoZWNrYm94IiwiRmVlZGJhY2tDb25maWciLCJsYXlvdXQiLCJDb25maWdMYXlvdXQiLCJzZXR0aW5ncyIsIlBhbmVsIiwib25DaGFuZ2UiLCJ0b2dnbGUiLCJmbiIsInJhZGlvIiwiTWF0aFRvb2xiYXIiLCJTdGF0aWNNYXRoIiwibW9ja1JldHVyblZhbHVlIiwibGF0ZXgiLCJyZWdpc3RlckVtYmVkIiwiZ2V0SW50ZXJmYWNlIiwibW9ja1JldHVyblRoaXMiLCJNYXRocXVpbGwiLCJyZXF1aXJlIiwiZGVmYXVsdFByb3BzIiwibW9kZWwiLCJpZCIsInByb21wdEVuYWJsZWQiLCJmZWVkYmFja0VuYWJsZWQiLCJlbGVtZW50IiwicmVzcG9uc2VUeXBlIiwiZmVlZGJhY2siLCJjb3JyZWN0IiwidHlwZSIsImluY29ycmVjdCIsInBhcnRpYWwiLCJlcXVhdGlvbkVkaXRvciIsImV4cHJlc3Npb24iLCJxdWVzdGlvbiIsInJlc3BvbnNlIiwiYW5zd2VyIiwiYWx0ZXJuYXRlcyIsInZhbGlkYXRpb24iLCJyZXNwb25zZXMiLCJub3RlIiwiY3VzdG9tS2V5cyIsImNvbmZpZ3VyZSIsImRlZmF1bHRWYWx1ZXMiLCJjb25maWd1cmF0aW9uIiwiZGVzY3JpYmUiLCJ3cmFwcGVyIiwiY29tcG9uZW50IiwiYmVmb3JlRWFjaCIsIkNvbmZpZ3VyZSIsIml0IiwiZXhwZWN0IiwiZmluZCIsIkdlbmVyYWxDb25maWdCbG9jayIsImxlbmd0aCIsInRvRXF1YWwiLCJ0b01hdGNoU25hcHNob3QiLCJvbk1vZGVsQ2hhbmdlZCIsImluc3RhbmNlIiwiY2hhbmdlVGVhY2hlckluc3RydWN0aW9ucyIsInRvQmVDYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJpbWFnZVN1cHBvcnQiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJ0b0JlR3JlYXRlclRoYW4iLCJSZXNwb25zZSIsIkVkaXRhYmxlSHRtbCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJvblJlc3BvbnNlQ2hhbmdlIiwic3RhdGUiLCJzaG93S2V5cGFkIiwicmVzcG9uc2VJZENvdW50ZXIiLCJyZXNwb25zZUFyZWFzIiwicjEiLCJ2YWx1ZSIsInIyIiwicjMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7Ozs7Ozs7OztBQUVBQSxJQUFJLENBQUNDLElBQUwsQ0FBVSxnQ0FBVixFQUE0QztBQUFBLFNBQU87QUFDakRDLElBQUFBLGNBQWMsRUFBRSx3QkFBQ0MsS0FBRDtBQUFBLDBCQUFXLGlDQUFNQSxLQUFLLENBQUNDLFFBQVosQ0FBWDtBQUFBLEtBRGlDO0FBRWpEQyxJQUFBQSxhQUFhLEVBQUUsdUJBQUNGLEtBQUQ7QUFBQSwwQkFBVyxpQ0FBTUEsS0FBSyxDQUFDQyxRQUFaLENBQVg7QUFBQSxLQUZrQztBQUdqREUsSUFBQUEsY0FBYyxFQUFFLHdCQUFDSCxLQUFEO0FBQUEsMEJBQVcsaUNBQU1BLEtBQUssQ0FBQ0MsUUFBWixDQUFYO0FBQUEsS0FIaUM7QUFJakRHLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxZQUFZLEVBQUUsc0JBQUNMLEtBQUQ7QUFBQSw0QkFBVyxpQ0FBTUEsS0FBSyxDQUFDQyxRQUFaLENBQVg7QUFBQTtBQURSLEtBSnlDO0FBT2pESyxJQUFBQSxRQUFRLEVBQUU7QUFDUkMsTUFBQUEsS0FBSyxFQUFFLGVBQUNQLEtBQUQ7QUFBQSw0QkFBVztBQUFLLFVBQUEsUUFBUSxFQUFFQSxLQUFLLENBQUNRO0FBQXJCLFVBQVg7QUFBQSxPQURDO0FBRVJDLE1BQUFBLE1BQU0sRUFBRVosSUFBSSxDQUFDYSxFQUFMLEVBRkE7QUFHUkMsTUFBQUEsS0FBSyxFQUFFZCxJ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O0FBQ0ZGLFVBQUFBLEtBQUssRUFBRTtBQURMO0FBUFM7QUFIaUIsS0FBbEM7QUFlRCxHQXZDQyxDQUFGO0FBd0NELENBckdPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uZmlndXJlLCB7IENvbmZpZ3VyZSBhcyBDb25maWd1cmVOb3RTdHlsZWQgfSBmcm9tICcuLi9jb25maWd1cmUnO1xuaW1wb3J0IEdlbmVyYWxDb25maWdCbG9jayBmcm9tICcuLi9nZW5lcmFsLWNvbmZpZy1ibG9jayc7XG5pbXBvcnQgeyBJbnB1dENvbnRhaW5lciwgSW5wdXRDaGVja2JveCB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L2NvbmZpZy11aSc7XG5pbXBvcnQgeyBzaGFsbG93Q2hpbGQgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC90ZXN0LXV0aWxzJztcbmltcG9ydCBSZXNwb25zZSBmcm9tICcuLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBNYXRoVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L21hdGgtdG9vbGJhcic7XG5pbXBvcnQge0VkaXRhYmxlSHRtbH0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvZWRpdGFibGUtaHRtbCc7XG5pbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcblxuaW1wb3J0IHsgRmVlZGJhY2tDb25maWcsIGxheW91dCwgc2V0dGluZ3MgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9jb25maWctdWknO1xuXG5pbXBvcnQgZGVmYXVsdFZhbHVlcyBmcm9tICcuLi9kZWZhdWx0cyc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvcGllLXRvb2xib3gvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgSW5wdXRDb250YWluZXI6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBJbnB1dENoZWNrYm94OiAocHJvcHMpID0+IDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PixcbiAgRmVlZGJhY2tDb25maWc6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICBsYXlvdXQ6IHtcbiAgICBDb25maWdMYXlvdXQ6IChwcm9wcykgPT4gPGRpdj57cHJvcHMuY2hpbGRyZW59PC9kaXY+LFxuICB9LFxuICBzZXR0aW5nczoge1xuICAgIFBhbmVsOiAocHJvcHMpID0+IDxkaXYgb25DaGFuZ2U9e3Byb3BzLm9uQ2hhbmdlfSAvPixcbiAgICB0b2dnbGU6IGplc3QuZm4oKSxcbiAgICByYWRpbzogamVzdC5mbigpLFxuICB9LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3BpZS10b29sYm94L21hdGgtdG9vbGJhcicsICgpID0+ICh7XG4gIE1hdGhUb29sYmFyOiAoKSA9PiA8ZGl2IC8+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtZnJhbWV3b3JrL21hdGhxdWlsbCcsICgpID0+ICh7XG4gIFN0YXRpY01hdGg6IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgIGxhdGV4OiBqZXN0LmZuKCksXG4gIH0pLFxuICByZWdpc3RlckVtYmVkOiBqZXN0LmZuKCksXG4gIGdldEludGVyZmFjZTogamVzdC5mbigpLm1vY2tSZXR1cm5UaGlzKCksXG59KSk7XG5jb25zdCBNYXRocXVpbGwgPSByZXF1aXJlKCdAcGllLWZyYW1ld29yay9tYXRocXVpbGwnKTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBtb2RlbDoge1xuICAgIGlkOiAnMScsXG4gICAgcHJvbXB0RW5hYmxlZDogdHJ1ZSxcbiAgICBmZWVkYmFja0VuYWJsZWQ6IHRydWUsXG4gICAgZWxlbWVudDogJ21hdGgtaW5saW5lJyxcbiAgICByZXNwb25zZVR5cGU6ICdBZHZhbmNlZCBNdWx0aScsXG4gICAgZmVlZGJhY2s6IHtcbiAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgZGVmYXVsdDogJ0NvcnJlY3QnLFxuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICB9LFxuICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgIGRlZmF1bHQ6ICdJbmNvcnJlY3QnLFxuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICB9LFxuICAgICAgcGFydGlhbDoge1xuICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVxdWF0aW9uRWRpdG9yOiAnMycsXG4gICAgZXhwcmVzc2lvbjogJ3t7cmVzcG9uc2V9fSA9IHt7cmVzcG9uc2V9fSBcXFxcdGV4dHtlZ2dzfScsXG4gICAgcXVlc3Rpb246XG4gICAgICAnPHA+U2FtIHNlbGxzIGJhc2tldHMgb2YgZWdncyBhdCBoaXMgZmFybSBzdGFuZC4gSGUgc29sZCAxMiBiYXNrZXRzIGFuZCB3cm90ZSB0aGUgbnVtYmVyIHNlbnRlbmNlIGJlbG93IHRvIHNob3cgaG93IG1hbnkgZWdncyBoZSBzb2xkIGluIGFsbC48L3A+PHA+PHNwYW4gY2xhc3M9XCJlcXVhdGlvbi1ibG9ja1wiPjxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiID5cXG4gPG1yb3c+XFxuICA8bW4+MTI8L21uPjxtbz4mI3gwMEQ3OzwvbW8+PG1vPiYjeDI1QTE7PC9tbz48bW8+PTwvbW8+PG1uPjcyPC9tbj5cXG4gPC9tcm93PlxcbjwvbWF0aD4gPC9zcGFuPjwvcD48cD5XaGF0IDxzcGFuIGNsYXNzPVwicmVsYXRpdmUtZW1waGFzaXNcIj5kaXZpc2lvbjwvc3Bhbj4gbnVtYmVyIHNlbnRlbmNlIGNhbiBiZSB1c2VkIHRvIHNob3cgaG93IG1hbnkgZWdncyB3ZXJlIGluIGVhY2ggYmFza2V0PzwvcD48cD5Vc2UgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCB0byB0eXBlIHlvdXIgbnVtYmVyIHNlbnRlbmNlIGFuZCBhbnN3ZXIgaW4gdGhlIGJveC48L3A+JyxcbiAgICByZXNwb25zZToge1xuICAgICAgYW5zd2VyOiAnNzJcXFxcZGl2MTI9NlxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgIGFsdGVybmF0ZXM6IHtcbiAgICAgICAgMTogJzY9NzJcXFxcZGl2MTJcXFxcdGV4dHtlZ2dzfScsXG4gICAgICAgIDI6ICdcXFxcZnJhY3s3Mn17MTJ9PTZcXFxcdGV4dHtlZ2dzfScsXG4gICAgICAgIDM6ICc2PVxcXFxmcmFjezcyfXsxMn1cXFxcdGV4dHtlZ2dzfScsXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgIH0sXG4gICAgcmVzcG9uc2VzOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIGFuc3dlcjogJzcyXFxcXGRpdjEyPTZcXFxcdGV4dHtlZ2dzfScsXG4gICAgICAgIGFsdGVybmF0ZXM6IHtcbiAgICAgICAgICAxOiAnNj03MlxcXFxkaXYxMlxcXFx0ZXh0e2VnZ3N9JyxcbiAgICAgICAgICAyOiAnXFxcXGZyYWN7NzJ9ezEyfT02XFxcXHRleHR7ZWdnc30nLFxuICAgICAgICAgIDM6ICc2PVxcXFxmcmFjezcyfXsxMn1cXFxcdGV4dHtlZ2dzfScsXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb246ICdsaXRlcmFsJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBub3RlOiAnVGhlIGFuc3dlciBzaG93biBhYm92ZSBpcyB0aGUgcHJpbWFyeSBjb3JyZWN0IGFuc3dlciBzcGVjaWZpZWQgYnkgdGhlIGF1dGhvciBmb3IgdGhpcyBpdGVtLCBidXQgb3RoZXIgYW5zd2VycyBtYXkgYWxzbyBiZSByZWNvZ25pemVkIGFzIGNvcnJlY3QuJyxcbiAgICBjdXN0b21LZXlzOiBbJ1xcXFxsZWZ0KFxcXFxyaWdodCknLCAnXFxcXGZyYWN7fXt9JywgJ3hcXFxcZnJhY3t9e30nXSxcbiAgICBjb25maWd1cmU6IGRlZmF1bHRWYWx1ZXMuY29uZmlndXJlLFxuICB9LFxuICBjb25maWd1cmF0aW9uOiBkZWZhdWx0VmFsdWVzLmNvbmZpZ3VyYXRpb24sXG59O1xuXG5kZXNjcmliZSgnQ29uZmlndXJlJywgKCkgPT4ge1xuICBsZXQgd3JhcHBlcjtcbiAgbGV0IGNvbXBvbmVudDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB3cmFwcGVyID0gc2hhbGxvd0NoaWxkKENvbmZpZ3VyZSwgZGVmYXVsdFByb3BzLCAyKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbXBvbmVudCA9IHdyYXBwZXIoKTtcblxuICAgIGV4cGVjdChjb21wb25lbnQuZmluZChHZW5lcmFsQ29uZmlnQmxvY2spLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICBleHBlY3QoY29tcG9uZW50LmZpbmQoRmVlZGJhY2tDb25maWcpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggc25hcHNob3QnLCAoKSA9PiB7XG4gICAgY29tcG9uZW50ID0gd3JhcHBlcigpO1xuXG4gICAgZXhwZWN0KGNvbXBvbmVudCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KCdjaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zIGNhbGxzIG9uTW9kZWxDaGFuZ2UnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25Nb2RlbENoYW5nZWQgPSBqZXN0LmZuKCk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gc2hhbGxvdyg8Q29uZmlndXJlTm90U3R5bGVkIG9uTW9kZWxDaGFuZ2VkPXtvbk1vZGVsQ2hhbmdlZH0gY2xhc3Nlcz17e319IHsuLi5kZWZhdWx0VmFsdWVzfSAvPik7XG5cbiAgICBjb21wb25lbnQuaW5zdGFuY2UoKS5jaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zKCdUZWFjaGVyIEluc3RydWN0aW9ucycpO1xuXG4gICAgZXhwZWN0KG9uTW9kZWxDaGFuZ2VkKS50b0JlQ2FsbGVkV2l0aChcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgdGVhY2hlckluc3RydWN0aW9uczogJ1RlYWNoZXIgSW5zdHJ1Y3Rpb25zJyxcbiAgICAgIH0pLFxuICAgICk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdHZW5lcmFsQ29uZmlnQmxvY2snLCAoKSA9PiB7XG4gIGxldCB3cmFwcGVyO1xuICBsZXQgcHJvcHM7XG4gIGxldCBjb21wb25lbnQ7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcHJvcHMgPSB7XG4gICAgICBtb2RlbDogZGVmYXVsdFByb3BzLm1vZGVsLFxuICAgICAgcHJvbXB0RW5hYmxlZDogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYXRpb246IGRlZmF1bHRWYWx1ZXMuY29uZmlndXJhdGlvbixcbiAgICAgIG9uQ2hhbmdlOiBqZXN0LmZuKCksXG4gICAgICBpbWFnZVN1cHBvcnQ6IHt9LFxuICAgICAgdXBsb2FkU291bmRTdXBwb3J0OiB7fSxcbiAgICB9O1xuXG4gICAgd3JhcHBlciA9IHNoYWxsb3dDaGlsZChHZW5lcmFsQ29uZmlnQmxvY2ssIHByb3BzLCAxKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgIGNvbXBvbmVudCA9IHdyYXBwZXIoKTtcblxuICAgIGV4cGVjdChjb21wb25lbnQuZmluZChJbnB1dENvbnRhaW5lcikubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMSk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5maW5kKFJlc3BvbnNlKS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5maW5kKE1hdGhUb29sYmFyKS5sZW5ndGgpLnRvRXF1YWwoMSk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5maW5kKEVkaXRhYmxlSHRtbCkubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgIGV4cGVjdChNYXRocXVpbGwuZ2V0SW50ZXJmYWNlKCkucmVnaXN0ZXJFbWJlZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuXG4gICAgY29tcG9uZW50ID0gd3JhcHBlcih7IG1vZGVsOiB7IC4uLnByb3BzLm1vZGVsLCByZXNwb25zZVR5cGU6ICdTaW1wbGUnIH0gfSk7XG5cbiAgICBleHBlY3QoY29tcG9uZW50LmZpbmQoSW5wdXRDb250YWluZXIpLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDEpO1xuICAgIGV4cGVjdChjb21wb25lbnQuZmluZChSZXNwb25zZSkubGVuZ3RoKS50b0VxdWFsKDEpO1xuICAgIGV4cGVjdChjb21wb25lbnQuZmluZChFZGl0YWJsZUh0bWwpLmxlbmd0aCkudG9FcXVhbCgxKTtcbiAgICBleHBlY3QoY29tcG9uZW50LmZpbmQoTWF0aFRvb2xiYXIpLmxlbmd0aCkudG9FcXVhbCgwKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IHdpdGggc25hcHNob3QnLCAoKSA9PiB7XG4gICAgY29tcG9uZW50ID0gd3JhcHBlcigpO1xuXG4gICAgZXhwZWN0KGNvbXBvbmVudCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KCd1cGRhdGVzIGFkdmFuY2VkIG1vZGVsIGNvcnJlY3RseScsICgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB3cmFwcGVyKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgb25DaGFuZ2UsXG4gICAgfSk7XG5cbiAgICBjb21wb25lbnQuaW5zdGFuY2UoKS5vblJlc3BvbnNlQ2hhbmdlKHsgYW5zd2VyOiAnc29tZXRoaW5nJywgaWQ6ICdyMScgfSwgMCk7XG5cbiAgICBleHBlY3Qob25DaGFuZ2UpLnRvQmVDYWxsZWRXaXRoKHtcbiAgICAgIC4uLnByb3BzLm1vZGVsLFxuICAgICAgcmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ3IxJyxcbiAgICAgICAgICBhbnN3ZXI6ICdzb21ldGhpbmcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ2J1aWxkcyBvdXQgaW50ZXJuYWwgc3RhdGUgY29ycmVjdGx5IGJhc2VkIG9uIGV4cHJlc3Npb24gcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgY29tcG9uZW50ID0gd3JhcHBlcigpO1xuXG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZSgpKS50b0VxdWFsKHtcbiAgICAgIHNob3dLZXlwYWQ6IGZhbHNlLFxuICAgICAgcmVzcG9uc2VJZENvdW50ZXI6IDIsXG4gICAgICByZXNwb25zZUFyZWFzOiB7XG4gICAgICAgIHIxOiB7XG4gICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9LFxuICAgICAgICByMjoge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb21wb25lbnQgPSB3cmFwcGVyKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbW9kZWw6IHtcbiAgICAgICAgLi4ucHJvcHMubW9kZWwsXG4gICAgICAgIGV4cHJlc3Npb246IHByb3BzLm1vZGVsLmV4cHJlc3Npb24gKyAnIHt7cmVzcG9uc2V9fSAnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChjb21wb25lbnQuc3RhdGUoKSkudG9FcXVhbCh7XG4gICAgICBzaG93S2V5cGFkOiBmYWxzZSxcbiAgICAgIHJlc3BvbnNlSWRDb3VudGVyOiAzLFxuICAgICAgcmVzcG9uc2VBcmVhczoge1xuICAgICAgICByMToge1xuICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgcjI6IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH0sXG4gICAgICAgIHIzOiB7XG4gICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -31,7 +31,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
32
  var _debug = _interopRequireDefault(require("debug"));
33
33
 
34
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
34
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
35
35
 
36
36
  var _generalConfigBlock = _interopRequireDefault(require("./general-config-block"));
37
37
 
@@ -194,7 +194,7 @@ var Configure = /*#__PURE__*/function (_React$Component) {
194
194
  }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
195
195
  label: teacherInstructions.label,
196
196
  className: classes.promptHolder
197
- }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
197
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
198
198
  className: classes.prompt,
199
199
  markup: model.teacherInstructions || '',
200
200
  onChange: this.changeTeacherInstructions,
@@ -245,4 +245,4 @@ exports.Configure = Configure;
245
245
  var _default = (0, _styles.withStyles)(styles)(Configure);
246
246
 
247
247
  exports["default"] = _default;
248
- //# sourceMappingURL=configure.js.map
248
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmUuanN4Il0sIm5hbWVzIjpbImxvZyIsIlBhbmVsIiwic2V0dGluZ3MiLCJ0b2dnbGUiLCJyYWRpbyIsImRyb3Bkb3duIiwic3R5bGVzIiwidGhlbWUiLCJwcm9tcHRIb2xkZXIiLCJ3aWR0aCIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwidW5pdCIsIm1hcmdpbkJvdHRvbSIsIkNvbmZpZ3VyZSIsIm1vZGVsIiwicHJvcHMiLCJvbk1vZGVsQ2hhbmdlZCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJmZWVkYmFjayIsImNsYXNzZXMiLCJpbWFnZVN1cHBvcnQiLCJjb25maWd1cmF0aW9uIiwib25Db25maWd1cmF0aW9uQ2hhbmdlZCIsInVwbG9hZFNvdW5kU3VwcG9ydCIsImFsbG93VHJhaWxpbmdaZXJvcyIsImNvbnRlbnREaW1lbnNpb25zIiwiaWdub3JlT3JkZXIiLCJtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VIZWlnaHQiLCJwcm9tcHQiLCJyYXRpb25hbGUiLCJyZXNwb25zZVR5cGUiLCJzY29yaW5nVHlwZSIsInNldHRpbmdzUGFuZWxEaXNhYmxlZCIsInNwZWxsQ2hlY2siLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwid2l0aFJ1YnJpYyIsIm1hdGhNbE9wdGlvbnMiLCJsYW5ndWFnZSIsImxhbmd1YWdlQ2hvaWNlcyIsImZlZWRiYWNrRW5hYmxlZCIsInByb21wdEVuYWJsZWQiLCJyYXRpb25hbGVFbmFibGVkIiwic3BlbGxDaGVja0VuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInRvb2xiYXJFZGl0b3JQb3NpdGlvbiIsInRvb2xiYXJPcHRzIiwicG9zaXRpb24iLCJkZWZhdWx0SW1hZ2VNYXhXaWR0aCIsImRlZmF1bHRJbWFnZU1heEhlaWdodCIsInBhbmVsU2V0dGluZ3MiLCJsYWJlbCIsIlJlc3BvbnNlVHlwZXMiLCJzaW1wbGUiLCJhZHZhbmNlZCIsImVuYWJsZWQiLCJvcHRpb25zIiwicGFuZWxQcm9wZXJ0aWVzIiwic3R1ZGVudEluc3RydWN0aW9uc0VuYWJsZWQiLCJydWJyaWNFbmFibGVkIiwiY29uZmlnIiwiU2V0dGluZ3MiLCJQcm9wZXJ0aWVzIiwiY2hhbmdlVGVhY2hlckluc3RydWN0aW9ucyIsIm9uQ2hhbmdlIiwib25GZWVkYmFja0NoYW5nZSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiZnVuYyIsIm9iamVjdCIsImlzUmVxdWlyZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sb0NBQU4sQ0FBWjtBQUNBLElBQVFDLEtBQVIsR0FBMkNDLGtCQUEzQyxDQUFRRCxLQUFSO0FBQUEsSUFBZUUsTUFBZixHQUEyQ0Qsa0JBQTNDLENBQWVDLE1BQWY7QUFBQSxJQUF1QkMsS0FBdkIsR0FBMkNGLGtCQUEzQyxDQUF1QkUsS0FBdkI7QUFBQSxJQUE4QkMsUUFBOUIsR0FBMkNILGtCQUEzQyxDQUE4QkcsUUFBOUI7O0FBRUEsSUFBTUMsTUFBTSxHQUFHLFNBQVRBLE1BQVMsQ0FBQ0MsS0FBRDtBQUFBLFNBQVk7QUFDekJDLElBQUFBLFlBQVksRUFBRTtBQUNaQyxNQUFBQSxLQUFLLEVBQUUsTUFESztBQUVaQyxNQUFBQSxVQUFVLEVBQUVILEtBQUssQ0FBQ0ksT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRnJCO0FBR1pDLE1BQUFBLFlBQVksRUFBRU4sS0FBSyxDQUFDSSxPQUFOLENBQWNDLElBQWQsR0FBcUI7QUFIdkI7QUFEVyxHQUFaO0FBQUEsQ0FBZjs7SUFRYUUsUzs7Ozs7Ozs7Ozs7Ozs7O2lHQVdBLFVBQUNDLEtBQUQsRUFBVztBQUNwQixZQUFLQyxLQUFMLENBQVdDLGNBQVgsQ0FBMEJGLEtBQTFCO0FBQ0QsSztrSEFFMkIsVUFBQ0csbUJBQUQsRUFBeUI7QUFDbkQsWUFBS0YsS0FBTCxDQUFXQyxj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QUFTRSxRQUFBLFVBQVUsRUFBRUg7QUFUZCxRQW5DRixFQStDR0gsZUFBZSxpQkFDZCxnQ0FBQyx3QkFBRDtBQUFnQixRQUFBLFFBQVEsRUFBRTFCLEtBQUssQ0FBQ0ksUUFBaEM7QUFBMEMsUUFBQSxRQUFRLEVBQUUsS0FBSytDLGdCQUF6RDtBQUEyRSxRQUFBLFdBQVcsRUFBRW5CO0FBQXhGLFFBaERKLENBREY7QUFxREQ7OztFQTVJNEJvQixrQkFBTUMsUzs7O2lDQUF4QnRELFMsZUFDUTtBQUNqQkcsRUFBQUEsY0FBYyxFQUFFb0Qsc0JBQVVDLElBRFQ7QUFFakIvQyxFQUFBQSxzQkFBc0IsRUFBRThDLHNCQUFVQyxJQUZqQjtBQUdqQmxELEVBQUFBLE9BQU8sRUFBRWlELHNCQUFVRSxNQUhGO0FBSWpCeEQsRUFBQUEsS0FBSyxFQUFFc0Qsc0JBQVVFLE1BQVYsQ0FBaUJDLFVBSlA7QUFLakJsRCxFQUFBQSxhQUFhLEVBQUUrQyxzQkFBVUUsTUFBVixDQUFpQkMsVUFMZjtBQU1qQm5ELEVBQUFBLFlBQVksRUFBRWdELHNCQUFVRSxNQU5QO0FBT2pCL0MsRUFBQUEsa0JBQWtCLEVBQUU2QyxzQkFBVUU7QUFQYixDOztlQThJTix3QkFBV2pFLE1BQVgsRUFBbUJRLFNBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBGZWVkYmFja0NvbmZpZywgc2V0dGluZ3MsIGxheW91dCwgSW5wdXRDb250YWluZXIgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9jb25maWctdWknO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge0VkaXRhYmxlSHRtbH0gZnJvbSAnQHBpZS1saWIvcGllLXRvb2xib3gvZWRpdGFibGUtaHRtbCc7XG5pbXBvcnQgR2VuZXJhbENvbmZpZ0Jsb2NrIGZyb20gJy4vZ2VuZXJhbC1jb25maWctYmxvY2snO1xuaW1wb3J0IHsgUmVzcG9uc2VUeXBlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1lbGVtZW50Om1hdGgtaW5saW5lOmNvbmZpZ3VyZScpO1xuY29uc3QgeyBQYW5lbCwgdG9nZ2xlLCByYWRpbywgZHJvcGRvd24gfSA9IHNldHRpbmdzO1xuXG5jb25zdCBzdHlsZXMgPSAodGhlbWUpID0+ICh7XG4gIHByb21wdEhvbGRlcjoge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgcGFkZGluZ1RvcDogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICBtYXJnaW5Cb3R0b206IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25Nb2RlbENoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbW9kZWw6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBjb25maWd1cmF0aW9uOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgaW1hZ2VTdXBwb3J0OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHVwbG9hZFNvdW5kU3VwcG9ydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICBvbkNoYW5nZSA9IChtb2RlbCkgPT4ge1xuICAgIHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICB9O1xuXG4gIGNoYW5nZVRlYWNoZXJJbnN0cnVjdGlvbnMgPSAodGVhY2hlckluc3RydWN0aW9ucykgPT4ge1xuICAgIHRoaXMucHJvcHMub25Nb2RlbENoYW5nZWQoe1xuICAgICAgLi4udGhpcy5wcm9wcy5tb2RlbCxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnMsXG4gICAgfSk7XG4gIH07XG5cbiAgb25GZWVkYmFja0NoYW5nZSA9IChmZWVkYmFjaykgPT4ge1xuICAgIGNvbnN0IHsgbW9kZWwsIG9uTW9kZWxDaGFuZ2VkIH0gPSB0aGlzLnByb3BzO1xuICAgIG1vZGVsLmZlZWRiYWNrID0gZmVlZGJhY2s7XG4gICAgb25Nb2RlbENoYW5nZWQobW9kZWwpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGNsYXNzZXMsIG1vZGVsLCBpbWFnZVN1cHBvcnQsIG9uTW9kZWxDaGFuZ2VkLCBjb25maWd1cmF0aW9uLCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkLCB1cGxvYWRTb3VuZFN1cHBvcnQgfSA9XG4gICAgICB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtcbiAgICAgIGFsbG93VHJhaWxpbmdaZXJvcyA9IHt9LFxuICAgICAgY29udGVudERpbWVuc2lvbnMgPSB7fSxcbiAgICAgIGZlZWRiYWNrID0ge30sXG4gICAgICBpZ25vcmVPcmRlciA9IHt9LFxuICAgICAgbWF4SW1hZ2VXaWR0aCA9IHt9LFxuICAgICAgbWF4SW1hZ2VIZWlnaHQgPSB7fSxcbiAgICAgIHByb21wdCA9IHt9LFxuICAgICAgcmF0aW9uYWxlID0ge30sXG4gICAgICByZXNwb25zZVR5cGUgPSB7fSxcbiAgICAgIHNjb3JpbmdUeXBlID0ge30sXG4gICAgICBzZXR0aW5nc1BhbmVsRGlzYWJsZWQsXG4gICAgICBzcGVsbENoZWNrID0ge30sXG4gICAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zID0ge30sXG4gICAgICB3aXRoUnVicmljID0ge30sXG4gICAgICBtYXRoTWxPcHRpb25zID0ge30sXG4gICAgICBsYW5ndWFnZSA9IHt9LFxuICAgICAgbGFuZ3VhZ2VDaG9pY2VzID0ge30sXG4gICAgfSA9IGNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgY29uc3Qge1xuICAgICAgZmVlZGJhY2tFbmFibGVkLFxuICAgICAgcHJvbXB0RW5hYmxlZCxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQsXG4gICAgICBzcGVsbENoZWNrRW5hYmxlZCxcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkLFxuICAgICAgdG9vbGJhckVkaXRvclBvc2l0aW9uLFxuICAgIH0gPSBtb2RlbCB8fCB7fTtcblxuICAgIGxvZygnW3JlbmRlcl0gbW9kZWwnLCBtb2RlbCk7XG5cbiAgICBjb25zdCB0b29sYmFyT3B0cyA9IHtcbiAgICAgIHBvc2l0aW9uOiB0b29sYmFyRWRpdG9yUG9zaXRpb24gPT09ICd0b3AnID8gJ3RvcCcgOiAnYm90dG9tJyxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdEltYWdlTWF4V2lkdGggPSBtYXhJbWFnZVdpZHRoICYmIG1heEltYWdlV2lkdGgucHJvbXB0O1xuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heEhlaWdodCA9IG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnByb21wdDtcblxuICAgIGNvbnN0IHBhbmVsU2V0dGluZ3MgPSB7XG4gICAgICByZXNwb25zZVR5cGU6IHJlc3BvbnNlVHlwZS5zZXR0aW5ncyAmJiByYWRpbyhyZXNwb25zZVR5cGUubGFiZWwsIFtSZXNwb25zZVR5cGVzLnNpbXBsZSwgUmVzcG9uc2VUeXBlcy5hZHZhbmNlZF0pLFxuICAgICAgZmVlZGJhY2tFbmFibGVkOiBmZWVkYmFjay5zZXR0aW5ncyAmJiB0b2dnbGUoZmVlZGJhY2subGFiZWwpLFxuICAgICAgcHJvbXB0RW5hYmxlZDogcHJvbXB0LnNldHRpbmdzICYmIHRvZ2dsZShwcm9tcHQubGFiZWwpLFxuICAgICAgJ2xhbmd1YWdlLmVuYWJsZWQnOiBsYW5ndWFnZS5zZXR0aW5ncyAmJiB0b2dnbGUobGFuZ3VhZ2UubGFiZWwsIHRydWUpLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLnNldHRpbmdzICYmIGxhbmd1YWdlLmVuYWJsZWQgJiYgZHJvcGRvd24obGFuZ3VhZ2VDaG9pY2VzLmxhYmVsLCBsYW5ndWFnZUNob2ljZXMub3B0aW9ucyksXG4gICAgfTtcbiAgICBjb25zdCBwYW5lbFByb3BlcnRpZXMgPSB7XG4gICAgICB0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZDogdGVhY2hlckluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUodGVhY2hlckluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zRW5hYmxlZDogc3R1ZGVudEluc3RydWN0aW9ucy5zZXR0aW5ncyAmJiB0b2dnbGUoc3R1ZGVudEluc3RydWN0aW9ucy5sYWJlbCksXG4gICAgICByYXRpb25hbGVFbmFibGVkOiByYXRpb25hbGUuc2V0dGluZ3MgJiYgdG9nZ2xlKHJhdGlvbmFsZS5sYWJlbCksXG4gICAgICBzcGVsbENoZWNrRW5hYmxlZDogc3BlbGxDaGVjay5zZXR0aW5ncyAmJiB0b2dnbGUoc3BlbGxDaGVjay5sYWJlbCksXG4gICAgICBzY29yaW5nVHlwZTogc2NvcmluZ1R5cGUuc2V0dGluZ3MgJiYgcmFkaW8oc2NvcmluZ1R5cGUubGFiZWwsIFsnYXV0bycsICdydWJyaWMnXSksXG4gICAgICAnaWdub3JlT3JkZXIuZW5hYmxlZCc6IGlnbm9yZU9yZGVyLnNldHRpbmdzICYmIHRvZ2dsZShpZ25vcmVPcmRlci5sYWJlbCksXG4gICAgICAnYWxsb3dUcmFpbGluZ1plcm9zLmVuYWJsZWQnOiBhbGxvd1RyYWlsaW5nWmVyb3Muc2V0dGluZ3MgJiYgdG9nZ2xlKGFsbG93VHJhaWxpbmdaZXJvcy5sYWJlbCksXG4gICAgICBydWJyaWNFbmFibGVkOiB3aXRoUnVicmljPy5zZXR0aW5ncyAmJiB0b2dnbGUod2l0aFJ1YnJpYz8ubGFiZWwpLFxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGxheW91dC5Db25maWdMYXlvdXRcbiAgICAgICAgZGltZW5zaW9ucz17Y29udGVudERpbWVuc2lvbnN9XG4gICAgICAgIGhpZGVTZXR0aW5ncz17c2V0dGluZ3NQYW5lbERpc2FibGVkfVxuICAgICAgICBzZXR0aW5ncz17XG4gICAgICAgICAgPFBhbmVsXG4gICAgICAgICAgICBtb2RlbD17bW9kZWx9XG4gICAgICAgICAgICBjb25maWd1cmF0aW9uPXtjb25maWd1cmF0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2VNb2RlbD17KG1vZGVsKSA9PiBvbk1vZGVsQ2hhbmdlZChtb2RlbCl9XG4gICAgICAgICAgICBvbkNoYW5nZUNvbmZpZ3VyYXRpb249eyhjb25maWcpID0+IG9uQ29uZmlndXJhdGlvbkNoYW5nZWQoY29uZmlnKX1cbiAgICAgICAgICAgIGdyb3Vwcz17e1xuICAgICAgICAgICAgICBTZXR0aW5nczogcGFuZWxTZXR0aW5ncyxcbiAgICAgICAgICAgICAgUHJvcGVydGllczogcGFuZWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHt0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXt0ZWFjaGVySW5zdHJ1Y3Rpb25zLmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnByb21wdH1cbiAgICAgICAgICAgICAgbWFya3VwPXttb2RlbC50ZWFjaGVySW5zdHJ1Y3Rpb25zIHx8ICcnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5jaGFuZ2VUZWFjaGVySW5zdHJ1Y3Rpb25zfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heFdpZHRofVxuICAgICAgICAgICAgICBtYXhJbWFnZUhlaWdodD17KG1heEltYWdlSGVpZ2h0ICYmIG1heEltYWdlSGVpZ2h0LnRlYWNoZXJJbnN0cnVjdGlvbnMpIHx8IGRlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICA8R2VuZXJhbENvbmZpZ0Jsb2NrXG4gICAgICAgICAgaW1hZ2VTdXBwb3J0PXtpbWFnZVN1cHBvcnR9XG4gICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgIGNvbmZpZ3VyYXRpb249e2NvbmZpZ3VyYXRpb259XG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9XG4gICAgICAgICAgcmF0aW9uYWxlRW5hYmxlZD17cmF0aW9uYWxlRW5hYmxlZH1cbiAgICAgICAgICBwcm9tcHRFbmFibGVkPXtwcm9tcHRFbmFibGVkfVxuICAgICAgICAgIHRvb2xiYXJPcHRzPXt0b29sYmFyT3B0c31cbiAgICAgICAgICBzcGVsbENoZWNrPXtzcGVsbENoZWNrRW5hYmxlZH1cbiAgICAgICAgLz5cblxuICAgICAgICB7ZmVlZGJhY2tFbmFibGVkICYmIChcbiAgICAgICAgICA8RmVlZGJhY2tDb25maWcgZmVlZGJhY2s9e21vZGVsLmZlZWRiYWNrfSBvbkNoYW5nZT17dGhpcy5vbkZlZWRiYWNrQ2hhbmdlfSB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9IC8+XG4gICAgICAgICl9XG4gICAgICA8L2xheW91dC5Db25maWdMYXlvdXQ+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoQ29uZmlndXJlKTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","uploadSoundSupport","allowTrailingZeros","contentDimensions","ignoreOrder","maxImageWidth","maxImageHeight","prompt","rationale","responseType","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","ResponseTypes","simple","advanced","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","config","Settings","Properties","changeTeacherInstructions","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, settings, layout, InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport EditableHtml from '@pie-lib/pie-toolbox/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n };\n\n onChange = (model) => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onFeedbackChange = (feedback) => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n allowTrailingZeros = {},\n contentDimensions = {},\n feedback = {},\n ignoreOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n responseType = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n log('[render] model', model);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n responseType: responseType.settings && radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.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 'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\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 </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
1
+ {"version":3,"sources":["../src/configure.jsx"],"names":["log","Panel","settings","toggle","radio","dropdown","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","Configure","model","props","onModelChanged","teacherInstructions","feedback","classes","imageSupport","configuration","onConfigurationChanged","uploadSoundSupport","allowTrailingZeros","contentDimensions","ignoreOrder","maxImageWidth","maxImageHeight","prompt","rationale","responseType","scoringType","settingsPanelDisabled","spellCheck","studentInstructions","withRubric","mathMlOptions","language","languageChoices","feedbackEnabled","promptEnabled","rationaleEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","toolbarOpts","position","defaultImageMaxWidth","defaultImageMaxHeight","panelSettings","label","ResponseTypes","simple","advanced","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","config","Settings","Properties","changeTeacherInstructions","onChange","onFeedbackChange","React","Component","PropTypes","func","object","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FeedbackConfig, settings, layout, InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport {EditableHtml} from '@pie-lib/pie-toolbox/editable-html';\nimport GeneralConfigBlock from './general-config-block';\nimport { ResponseTypes } from './utils';\n\nconst log = debug('@pie-element:math-inline:configure');\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport class Configure extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n };\n\n onChange = (model) => {\n this.props.onModelChanged(model);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onFeedbackChange = (feedback) => {\n const { model, onModelChanged } = this.props;\n model.feedback = feedback;\n onModelChanged(model);\n };\n\n render() {\n const { classes, model, imageSupport, onModelChanged, configuration, onConfigurationChanged, uploadSoundSupport } =\n this.props;\n const {\n allowTrailingZeros = {},\n contentDimensions = {},\n feedback = {},\n ignoreOrder = {},\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n rationale = {},\n responseType = {},\n scoringType = {},\n settingsPanelDisabled,\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n const {\n feedbackEnabled,\n promptEnabled,\n rationaleEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n\n log('[render] model', model);\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n responseType: responseType.settings && radio(responseType.label, [ResponseTypes.simple, ResponseTypes.advanced]),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.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 'ignoreOrder.enabled': ignoreOrder.settings && toggle(ignoreOrder.label),\n 'allowTrailingZeros.enabled': allowTrailingZeros.settings && toggle(allowTrailingZeros.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\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 </InputContainer>\n )}\n\n <GeneralConfigBlock\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n model={model}\n configuration={configuration}\n onChange={this.onChange}\n rationaleEnabled={rationaleEnabled}\n promptEnabled={promptEnabled}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n />\n\n {feedbackEnabled && (\n <FeedbackConfig feedback={model.feedback} onChange={this.onFeedbackChange} toolbarOpts={toolbarOpts} />\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Configure);\n"],"file":"configure.js"}
@@ -126,4 +126,4 @@ var _default = {
126
126
  }
127
127
  };
128
128
  exports["default"] = _default;
129
- //# sourceMappingURL=defaults.js.map
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJuYW1lcyI6WyJtb2RlbCIsInBhcnRpYWxTY29yaW5nIiwicmVzcG9uc2VUeXBlIiwiUmVzcG9uc2VUeXBlcyIsImFkdmFuY2VkIiwiZWxlbWVudCIsImZlZWRiYWNrIiwiY29ycmVjdCIsInR5cGUiLCJpbmNvcnJlY3QiLCJwYXJ0aWFsIiwiZXF1YXRpb25FZGl0b3IiLCJleHByZXNzaW9uIiwicmF0aW9uYWxlIiwicHJvbXB0IiwicmVzcG9uc2VzIiwiY3VzdG9tS2V5cyIsInNjb3JpbmdUeXBlIiwiZmVlZGJhY2tFbmFibGVkIiwicHJvbXB0RW5hYmxlZCIsInJhdGlvbmFsZUVuYWJsZWQiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zRW5hYmxlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkIiwidG9vbGJhckVkaXRvclBvc2l0aW9uIiwidmFsaWRhdGlvbkRlZmF1bHQiLCJpZ25vcmVPcmRlckRlZmF1bHQiLCJhbGxvd1RyYWlsaW5nWmVyb3NEZWZhdWx0IiwiY29uZmlndXJhdGlvbiIsInNldHRpbmdzIiwibGFiZWwiLCJzZXR0aW5nc1BhbmVsRGlzYWJsZWQiLCJzcGVsbENoZWNrIiwiZW5hYmxlZCIsInN0dWRlbnRJbnN0cnVjdGlvbnMiLCJ0ZWFjaGVySW5zdHJ1Y3Rpb25zIiwiaWdub3JlT3JkZXIiLCJhbGxvd1RyYWlsaW5nWmVyb3MiLCJtYXhJbWFnZVdpZHRoIiwibWF4SW1hZ2VIZWlnaHQiLCJ3aXRoUnVicmljIiwibWF0aE1sT3B0aW9ucyIsIm1tbE91dHB1dCIsIm1tbEVkaXRpbmciLCJsYW5ndWFnZSIsImxhbmd1YWdlQ2hvaWNlcyIsIm9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtlQUVlO0FBQ2JBLEVBQUFBLEtBQUssRUFBRTtBQUNMQyxJQUFBQSxjQUFjLEVBQUUsSUFEWDtBQUVMQyxJQUFBQSxZQUFZLEVBQUVDLHFCQUFjQyxRQUZ2QjtB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O0FBSFMsS0E1Q1A7QUFpRGJLLElBQUFBLGFBQWEsRUFBRTtBQUNiSCxNQUFBQSxtQkFBbUIsRUFBRSxHQURSO0FBRWJwQixNQUFBQSxNQUFNLEVBQUUsR0FGSztBQUdiRCxNQUFBQSxTQUFTLEVBQUU7QUFIRSxLQWpERjtBQXNEYnlCLElBQUFBLGNBQWMsRUFBRTtBQUNkSixNQUFBQSxtQkFBbUIsRUFBRSxHQURQO0FBRWRwQixNQUFBQSxNQUFNLEVBQUUsR0FGTTtBQUdkRCxNQUFBQSxTQUFTLEVBQUU7QUFIRyxLQXRESDtBQTJEYjBCLElBQUFBLFVBQVUsRUFBRTtBQUNWWCxNQUFBQSxRQUFRLEVBQUUsS0FEQTtBQUVWQyxNQUFBQSxLQUFLLEVBQUU7QUFGRyxLQTNEQztBQStEYlcsSUFBQUEsYUFBYSxFQUFFO0FBQ2JDLE1BQUFBLFNBQVMsRUFBRSxLQURFO0FBRWJDLE1BQUFBLFVBQVUsRUFBRTtBQUZDLEtBL0RGO0FBbUViQyxJQUFBQSxRQUFRLEVBQUU7QUFDUmYsTUFBQUEsUUFBUSxFQUFFLEtBREY7QUFFUkMsTUFBQUEsS0FBSyxFQUFFLGtCQUZDO0FBR1JHLE1BQUFBLE9BQU8sRUFBRTtBQUhELEtBbkVHO0FBd0ViWSxJQUFBQSxlQUFlLEVBQUU7QUFDZmYsTUFBQUEsS0FBSyxFQUFFLGtCQURRO0FBRWZnQixNQUFBQSxPQUFPLEVBQUU7QUFGTTtBQXhFSjtBQXBDRixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzcG9uc2VUeXBlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG4vKiogTk9URTogdGVhY2hlckluc3RydWN0aW9ucywgc3R1ZGVudEluc3RydWN0aW9ucywgcmF0aW9uYWxlICYgc2NvcmluZ1R5cGVcbiAqIGZ1bmN0aW9uYWxpdGllcyBhcmUgbm90IGRlZmluZWQgeWV0IC0gdGhlIHZhbHVlIGZvciB0aG9zZSBjYW4gYmVsb25nIHRvXG4gKiBtb2RlbCBvciB0byBjb25maWd1cmVcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG1vZGVsOiB7XG4gICAgcGFydGlhbFNjb3Jpbmc6IHRydWUsXG4gICAgcmVzcG9uc2VUeXBlOiBSZXNwb25zZVR5cGVzLmFkdmFuY2VkLFxuICAgIGVsZW1lbnQ6ICdtYXRoLWlubGluZScsXG4gICAgZmVlZGJhY2s6IHtcbiAgICAgIGNvcnJlY3Q6IHtcbiAgICAgICAgZGVmYXVsdDogJ0NvcnJlY3QnLFxuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICB9LFxuICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgIGRlZmF1bHQ6ICdJbmNvcnJlY3QnLFxuICAgICAgICB0eXBlOiAnbm9uZScsXG4gICAgICB9LFxuICAgICAgcGFydGlhbDoge1xuICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGVxdWF0aW9uRWRpdG9yOiAnOCcsXG4gICAgZXhwcmVzc2lvbjogJycsXG4gICAgcmF0aW9uYWxlOiAnUmF0aW9uYWxlIGdvZXMgaGVyZS4nLFxuICAgIHByb21wdDogJycsXG4gICAgcmVzcG9uc2VzOiBbXSxcbiAgICBjdXN0b21LZXlzOiBbXSxcbiAgICBzY29yaW5nVHlwZTogJ2F1dG8nLFxuICAgIGZlZWRiYWNrRW5hYmxlZDogZmFsc2UsXG4gICAgcHJvbXB0RW5hYmxlZDogdHJ1ZSxcbiAgICByYXRpb25hbGVFbmFibGVkOiB0cnVlLFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHN0dWRlbnRJbnN0cnVjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgIHRvb2xiYXJFZGl0b3JQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgdmFsaWRhdGlvbkRlZmF1bHQ6ICdsaXRlcmFsJyxcbiAgICBpZ25vcmVPcmRlckRlZmF1bHQ6IGZhbHNlLFxuICAgIGFsbG93VHJhaWxpbmdaZXJvc0RlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBjb25maWd1cmF0aW9uOiB7XG4gICAgcHJvbXB0OiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUHJvbXB0JyxcbiAgICB9LFxuICAgIGZlZWRiYWNrOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnRmVlZGJhY2snLFxuICAgIH0sXG4gICAgcmVzcG9uc2VUeXBlOiB7XG4gICAgICBzZXR0aW5nczogdHJ1ZSxcbiAgICAgIGxhYmVsOiAnUmVzcG9uc2UgdHlwZScsXG4gICAgfSxcbiAgICByYXRpb25hbGU6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdSYXRpb25hbGUnLFxuICAgIH0sXG4gICAgc2V0dGluZ3NQYW5lbERpc2FibGVkOiBmYWxzZSxcbiAgICBzcGVsbENoZWNrOiB7XG4gICAgICBsYWJlbDogJ1NwZWxsY2hlY2snLFxuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHNjb3JpbmdUeXBlOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ1Njb3JpbmcgVHlwZScsXG4gICAgfSxcbiAgICBzdHVkZW50SW5zdHJ1Y3Rpb25zOiB7XG4gICAgICBzZXR0aW5nczogZmFsc2UsXG4gICAgICBsYWJlbDogJ1N0dWRlbnQgSW5zdHJ1Y3Rpb25zJyxcbiAgICB9LFxuICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IHtcbiAgICAgIHNldHRpbmdzOiB0cnVlLFxuICAgICAgbGFiZWw6ICdUZWFjaGVyIEluc3RydWN0aW9ucycsXG4gICAgfSxcbiAgICBwYXJ0aWFsU2NvcmluZzoge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdBbGxvdyBQYXJ0aWFsIFNjb3JpbmcnLFxuICAgIH0sXG4gICAgaWdub3JlT3JkZXI6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnSWdub3JlIE9yZGVyJyxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhbGxvd1RyYWlsaW5nWmVyb3M6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWxsb3cgVHJhaWxpbmcgWmVyb3MnLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9LFxuICAgIG1heEltYWdlV2lkdGg6IHtcbiAgICAgIHRlYWNoZXJJbnN0cnVjdGlvbnM6IDMwMCxcbiAgICAgIHByb21wdDogMzAwLFxuICAgICAgcmF0aW9uYWxlOiAzMDAsXG4gICAgfSxcbiAgICBtYXhJbWFnZUhlaWdodDoge1xuICAgICAgdGVhY2hlckluc3RydWN0aW9uczogMzAwLFxuICAgICAgcHJvbXB0OiAzMDAsXG4gICAgICByYXRpb25hbGU6IDMwMCxcbiAgICB9LFxuICAgIHdpdGhSdWJyaWM6IHtcbiAgICAgIHNldHRpbmdzOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnQWRkIFJ1YnJpYycsXG4gICAgfSxcbiAgICBtYXRoTWxPcHRpb25zOiB7XG4gICAgICBtbWxPdXRwdXQ6IGZhbHNlLFxuICAgICAgbW1sRWRpdGluZzogZmFsc2UsXG4gICAgfSxcbiAgICBsYW5ndWFnZToge1xuICAgICAgc2V0dGluZ3M6IGZhbHNlLFxuICAgICAgbGFiZWw6ICdTcGVjaWZ5IExhbmd1YWdlJyxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgbGFuZ3VhZ2VDaG9pY2VzOiB7XG4gICAgICBsYWJlbDogJ0xhbmd1YWdlIENob2ljZXMnLFxuICAgICAgb3B0aW9uczogW10sXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
@@ -31,7 +31,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
32
  var _classnames = _interopRequireDefault(require("classnames"));
33
33
 
34
- var _editableHtml = _interopRequireDefault(require("@pie-lib/pie-toolbox/editable-html"));
34
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
35
35
 
36
36
  var _configUi = require("@pie-lib/pie-toolbox/config-ui");
37
37
 
@@ -465,7 +465,7 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
465
465
  }, promptEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
466
466
  label: cPrompt.label,
467
467
  className: classes.promptHolder
468
- }, /*#__PURE__*/React.createElement(_editableHtml["default"], {
468
+ }, /*#__PURE__*/React.createElement(_editableHtml.EditableHtml, {
469
469
  onFocus: this.onPromptFocus,
470
470
  className: classes.prompt,
471
471
  markup: prompt || '',
@@ -596,7 +596,7 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
596
596
  }), rationaleEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
597
597
  label: cRationale.label,
598
598
  className: classes.promptHolder
599
- }, /*#__PURE__*/React.createElement(_editableHtml["default"], {
599
+ }, /*#__PURE__*/React.createElement(_editableHtml.EditableHtml, {
600
600
  className: classes.prompt,
601
601
  markup: rationale || '',
602
602
  pluginProps: {
@@ -639,4 +639,4 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
639
639
  var _default = (0, _styles.withStyles)(styles)(GeneralConfigBlock);
640
640
 
641
641
  exports["default"] = _default;
642
- //# sourceMappingURL=general-config-block.js.map
642
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9nZW5lcmFsLWNvbmZpZy1ibG9jay5qc3giXSwibmFtZXMiOlsicmVnaXN0ZXJlZCIsInN0eWxlcyIsInRoZW1lIiwiY29udGFpbmVyIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJ0ZW1wbGF0ZVRpdGxlIiwiZm9udFNpemUiLCJ0aXRsZSIsImFkZFJlc3BvbnNlQnV0dG9uIiwiYm9yZGVyIiwicGFsZXR0ZSIsImdyZXkiLCJ3aWR0aCIsImZsZXhDb250YWluZXIiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJzZWxlY3RDb250YWluZXIiLCJmbGV4IiwibWFyZ2luVG9wIiwic3BhY2luZyIsInVuaXQiLCJtYXJnaW5Cb3R0b20iLCJyZXNwb25zZVRlbXBsYXRlIiwicmVzcG9uc2VFZGl0b3IiLCJtYXhXaWR0aCIsImhlaWdodCIsIm1pbkhlaWdodCIsInRleHRBbGlnbiIsInBhZGRpbmciLCJwcm9tcHRIb2xkZXIiLCJwYWRkaW5nVG9wIiwiYmxvY2tDb250YWluZXIiLCJtYXJnaW4iLCJibG9ja0NvbnRhaW5lckdlbmVyaWMiLCJibG9ja1Jlc3BvbnNlIiwiZm9udEZhbWlseSIsImNvbG9yIiwiYmFja2dyb3VuZCIsImJvcmRlclJpZ2h0IiwiYmxvY2tSZXNwb25zZUdlbmVyaWMiLCJibG9ja01hdGgiLCJ0b29sdGlwIiwidHlwb2dyYXBoeSIsIndoaXRlU3BhY2UiLCJlcnJvclRleHQiLCJlcnJvciIsIm1haW4iLCJhZHZhbmNlZFJlc3BvbnNlIiwiUkVHRVgiLCJURU1QT1JBUllfUkVTUE9OU0VfRklFTEQiLCJBTlNXRVJfQkxPQ0tfUkVHRVgiLCJORVdMSU5FX0JMT0NLIiwiTkVXTElORV9MQVRFWCIsInByZXBhcmVGb3JTdGF0aWMiLCJleHByZXNzaW9uIiwiYW5zd2VyQmxvY2tzIiwicmVwbGFjZSIsInByZXBhcmVGb3JNb2RlbCIsIkdlbmVyYWxDb25maWdCbG9jayIsInByb3BzIiwibmFtZSIsImV2dE9yVmFsdWUiLCJtb2RlbCIsIm9uQ2hhbmdlIiwibmV3TW9kZWwiLCJ0YXJnZXQiLCJ2YWx1ZSIsInNldFN0YXRlIiwic2hvd0tleXBhZCIsInJlc3BvbnNlQXJlYXMiLCJzdGF0ZSIsInJvb3QiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZm9yRWFjaCIsInJlc3BvbnNlSWQiLCJpZHgiLCJlbCIsInF1ZXJ5U2VsZWN0b3IiLCJpbmRleEVsIiwiTVEiLCJNYXRoUXVpbGwiLCJnZXRJbnRlcmZhY2UiLCJTdGF0aWNNYXRoIiwidGV4dENvbnRlbnQiLCJyZXNwb25zZUlkQ291bnRlciIsIm5ld0NvdW50ZXIiLCJyZXNwb25zZXMiLCJmaW5kIiwicmVzcG9uc2UiLCJpZCIsInZhbGlkYXRpb24iLCJhbnN3ZXIiLCJhbHRlcm5hdGVzIiwiY29uY2F0IiwiaW5kZXgiLCJjbGFzc2VzIiwid2luZG93IiwicmVnaXN0ZXJFbWJlZCIsImRhdGEiLCJnZW5lcmljQW5zd2VyQmxvY2siLCJodG1sU3RyaW5nIiwidGV4dCIsImxhdGV4IiwiaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUiLCJpbWFnZVN1cHBvcnQiLCJ1cGxvYWRTb3VuZFN1cHBvcnQiLCJjb25maWd1cmF0aW9uIiwicHJvbXB0RW5hYmxlZCIsInJhdGlvbmFsZUVuYWJsZWQiLCJ0b29sYmFyT3B0cyIsInByb21wdCIsImVxdWF0aW9uRWRpdG9yIiwicHJvbXB0RXF1YXRpb25FZGl0b3IiLCJyZXNwb25zZVR5cGUiLCJyYXRpb25hbGUiLCJzcGVsbENoZWNrRW5hYmxlZCIsImVycm9ycyIsImNSYXRpb25hbGUiLCJjUHJvbXB0IiwiaWdub3JlT3JkZXIiLCJjSWdub3JlT3JkZXIiLCJhbGxvd1RyYWlsaW5nWmVyb3MiLCJjQWxsb3dUcmFpbGluZ1plcm9zIiwibWF4UmVzcG9uc2VBcmVhcyIsIm1heEltYWdlV2lkdGgiLCJtYXhJbWFnZUhlaWdodCIsIm1hdGhNbE9wdGlvbnMiLCJ2YWxpZGF0aW9uTWVzc2FnZSIsInJlc3BvbnNlc0Vycm9ycyIsInJlc3BvbnNlQXJlYXNFcnJvciIsImRlZmF1bHRJbWFnZU1heFdpZHRoIiwiZGVmYXVsdEltYWdlTWF4SGVpZ2h0IiwiY2xhc3NOYW1lcyIsImVkaXRvciIsIm1hdGhUb29sYmFyIiwicmVzcG9uc2VzVG9Vc2UiLCJSZXNwb25zZVR5cGVzIiwiYWR2YW5jZWQiLCJzbGljZSIsInZhbGlkYXRpb25Ub29sdGlwIiwibWFyZ2luTGVmdCIsInIiLCJsYWJlbCIsIm9uUHJvbXB0Rm9jdXMiLCJsYW5ndWFnZSIsInNlbGVjdCIsIm9uRm9jdXMiLCJvbkRvbmUiLCJzaW1wbGUiLCJtYXAiLCJvblJlc3BvbnNlQ2hhbmdlIiwibWF0aCIsImNvbnRyb2xsZWRLZXlwYWRNb2RlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwiZnVuYyIsImJvb2wiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVBLElBQUlBLFVBQVUsR0FBRyxLQUFqQjs7QUFFQSxJQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUN6QkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RDLE1BQUFBLE9BQU8sRUFBRSxNQURBO0FBRVRDLE1BQUFBLGFBQWEsRUFBRTtBQUZOLEtBRGM7QUFLekJDLElBQUFBLGFBQWEsRUFBRTtBQUNiQyxNQUFBQSxRQUFRLEVBQUU7QUFERyxLQUxVO0FBUXpCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEQsTUFBQUEsUUFBUSxFQUFFO0FBREwsS0FSa0I7QUFXekJFLElBQUFBLGlCQUFpQixFQUFFO0FBQ2pCQyxNQUFBQSxNQUFNLHNCQUFlUixLQUFLLENBQUNTLE9BQU4sQ0FBY0MsSUFBZCxDQUFtQixNQUFuQixDQUFmLENB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QkFBdUIsRUFBRSxDQUFDO0FBQUV1QyxVQUFBQSxRQUFRLEVBQUU7QUFBWixTQUFELEVBQTBCO0FBQUVBLFVBQUFBLFFBQVEsRUFBRTtBQUFaLFNBQTFCLENBaEIzQjtBQWlCRSxRQUFBLGFBQWEsRUFBRWxCO0FBakJqQixRQURGLENBL0dKLENBREY7QUF3SUQ7OztFQXhYOEIyQixLQUFLLENBQUNDLFM7O2lDQUFqQ2xHLGtCLGVBQ2U7QUFDakJ1QyxFQUFBQSxPQUFPLEVBQUU0RCxzQkFBVUMsTUFBVixDQUFpQkMsVUFEVDtBQUVqQmpHLEVBQUFBLEtBQUssRUFBRStGLHNCQUFVQyxNQUFWLENBQWlCQyxVQUZQO0FBR2pCckQsRUFBQUEsWUFBWSxFQUFFbUQsc0JBQVVDLE1BSFA7QUFJakJuRCxFQUFBQSxrQkFBa0IsRUFBRWtELHNCQUFVQyxNQUpiO0FBS2pCbEQsRUFBQUEsYUFBYSxFQUFFaUQsc0JBQVVDLE1BTFI7QUFNakIvRixFQUFBQSxRQUFRLEVBQUU4RixzQkFBVUcsSUFBVixDQUFlRCxVQU5SO0FBT2pCbEQsRUFBQUEsYUFBYSxFQUFFZ0Qsc0JBQVVJLElBUFI7QUFRakJuRCxFQUFBQSxnQkFBZ0IsRUFBRStDLHNCQUFVSSxJQVJYO0FBU2pCbEQsRUFBQUEsV0FBVyxFQUFFOEMsc0JBQVVDO0FBVE4sQzs7ZUEwWE4sd0JBQVc5SixNQUFYLEVBQW1CMEQsa0JBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtFZGl0YWJsZUh0bWx9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L2VkaXRhYmxlLWh0bWwnO1xuaW1wb3J0IHsgSW5wdXRDb250YWluZXIgfSBmcm9tICdAcGllLWxpYi9waWUtdG9vbGJveC9jb25maWctdWknO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgSW5wdXRMYWJlbCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JbnB1dExhYmVsJztcbmltcG9ydCBTZWxlY3QgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvU2VsZWN0JztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgUmVzcG9uc2UgZnJvbSAnLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBNYXRoVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL3BpZS10b29sYm94L21hdGgtdG9vbGJhcic7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgeyBSZXNwb25zZVR5cGVzLCBnZW5lcmF0ZVZhbGlkYXRpb25NZXNzYWdlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgTWF0aFF1aWxsIGZyb20gJ0BwaWUtZnJhbWV3b3JrL21hdGhxdWlsbCc7XG5pbXBvcnQgSW5mbyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvSW5mbyc7XG5pbXBvcnQgVG9vbHRpcCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Ub29sdGlwJztcblxubGV0IHJlZ2lzdGVyZWQgPSBmYWxzZTtcblxuY29uc3Qgc3R5bGVzID0gKHRoZW1lKSA9PiAoe1xuICBjb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gIH0sXG4gIHRlbXBsYXRlVGl0bGU6IHtcbiAgICBmb250U2l6ZTogJzAuODVyZW0nLFxuICB9LFxuICB0aXRsZToge1xuICAgIGZvbnRTaXplOiAnMS4xcmVtJyxcbiAgfSxcbiAgYWRkUmVzcG9uc2VCdXR0b246IHtcbiAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5wYWxldHRlLmdyZXlbJ0ExMDAnXX1gLFxuICAgIGZsb2F0OiAncmlnaHQnLFxuICAgIHdpZHRoOiAnMTUwcHgnLFxuICB9LFxuICBmbGV4Q29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gIH0sXG4gIHNlbGVjdENvbnRhaW5lcjoge1xuICAgIGZsZXg6ICdpbml0aWFsJyxcbiAgICB3aWR0aDogJzQwJScsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgfSxcbiAgcmVzcG9uc2VUZW1wbGF0ZToge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgfSxcbiAgcmVzcG9uc2VFZGl0b3I6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgLy8gbWluV2lkdGg6ICc1MDBweCcsXG4gICAgbWF4V2lkdGg6ICdpbmhlcml0JyxcbiAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICBtaW5IZWlnaHQ6ICcxMzBweCcsXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0LFxuICB9LFxuICBwcm9tcHRIb2xkZXI6IHtcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDIsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLFxuICB9LFxuICBibG9ja0NvbnRhaW5lcjoge1xuICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZy51bml0LFxuICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsXG4gICAgYm9yZGVyOiAnMnB4IHNvbGlkIGdyZXknLFxuICB9LFxuICBibG9ja0NvbnRhaW5lckdlbmVyaWM6IHtcbiAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcudW5pdCAvIDIsXG4gIH0sXG4gIGJsb2NrUmVzcG9uc2U6IHtcbiAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnLFxuICAgIGZsZXg6IDIsXG4gICAgY29sb3I6ICdncmV5JyxcbiAgICBiYWNrZ3JvdW5kOiB0aGVtZS5wYWxldHRlLmdyZXlbJ0ExMDAnXSxcbiAgICBmb250U2l6ZTogJzAuOHJlbScsXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0IC8gMixcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGJvcmRlclJpZ2h0OiAnMnB4IHNvbGlkIGdyZXknLFxuICB9LFxuICBibG9ja1Jlc3BvbnNlR2VuZXJpYzoge1xuICAgIGJvcmRlclJpZ2h0OiAwLFxuICB9LFxuICBibG9ja01hdGg6IHtcbiAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5ncmV5WzQwMF0sXG4gICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0IC8gMixcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGZsZXg6IDgsXG4gICAgJyYgPiAubXEtbWF0aC1tb2RlJzoge1xuICAgICAgJyYgPiAubXEtaGFzQ3Vyc29yJzoge1xuICAgICAgICAnJiA+IC5tcS1jdXJzb3InOiB7XG4gICAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICB0b29sdGlwOiB7XG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgLSAyLFxuICAgIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gIH0sXG4gIGVycm9yVGV4dDoge1xuICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIC0gMixcbiAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLFxuICAgIHBhZGRpbmdUb3A6IHRoZW1lLnNwYWNpbmcudW5pdCxcbiAgfSxcbiAgYWR2YW5jZWRSZXNwb25zZToge1xuICAgIG1hcmdpbkJvdHRvbTogdGhlbWUuc3BhY2luZy51bml0ICogMi41LFxuICB9LFxufSk7XG5cbmNvbnN0IFJFR0VYID0gL3t7cmVzcG9uc2V9fS9nbTtcbmNvbnN0IFRFTVBPUkFSWV9SRVNQT05TRV9GSUVMRCA9IC9cXFxcJXJlc3BvbnNlXFxcXCUvZ207XG5jb25zdCBBTlNXRVJfQkxPQ0tfUkVHRVggPSAvXFxcXGVtYmVkXFx7YW5zd2VyQmxvY2tcXH1cXFtyXFxkKlxcXS9nO1xuY29uc3QgTkVXTElORV9CTE9DSyA9IC9cXFxcZW1iZWRcXHtuZXdMaW5lXFx9XFxbXFxdL2c7XG5jb25zdCBORVdMSU5FX0xBVEVYID0gL1xcXFxuZXdsaW5lL2c7XG5cbmZ1bmN0aW9uIHByZXBhcmVGb3JTdGF0aWMoZXhwcmVzc2lvbikge1xuICBpZiAoZXhwcmVzc2lvbikge1xuICAgIGxldCBhbnN3ZXJCbG9ja3MgPSAxOyAvLyBhc3N1bWUgb25lIGF0IGxlYXN0XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvblxuICAgICAgLnJlcGxhY2UoUkVHRVgsICgpID0+IGBcXFxcZW1iZWR7YW5zd2VyQmxvY2t9W3Ike2Fuc3dlckJsb2NrcysrfV1gKVxuICAgICAgLnJlcGxhY2UoTkVXTElORV9MQVRFWCwgJ1xcXFxlbWJlZHtuZXdMaW5lfVtdJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcGFyZUZvck1vZGVsKGV4cHJlc3Npb24pIHtcbiAgaWYgKGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvblxuICAgICAgLnJlcGxhY2UoQU5TV0VSX0JMT0NLX1JFR0VYLCAoKSA9PiAne3tyZXNwb25zZX19JylcbiAgICAgIC5yZXBsYWNlKFRFTVBPUkFSWV9SRVNQT05TRV9GSUVMRCwgKCkgPT4gJ3t7cmVzcG9uc2V9fScpXG4gICAgICAucmVwbGFjZShORVdMSU5FX0JMT0NLLCAoKSA9PiAnXFxcXG5ld2xpbmUnKTtcbiAgfVxufVxuXG5jbGFzcyBHZW5lcmFsQ29uZmlnQmxvY2sgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBtb2RlbDogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGltYWdlU3VwcG9ydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB1cGxvYWRTb3VuZFN1cHBvcnQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY29uZmlndXJhdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBwcm9tcHRFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICByYXRpb25hbGVFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0b29sYmFyT3B0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlQXJlYXMgPSB7fTtcblxuICAgIGlmIChwcm9wcy5tb2RlbCAmJiBwcm9wcy5tb2RlbC5leHByZXNzaW9uKSB7XG4gICAgICBsZXQgYW5zd2VyQmxvY2tzID0gMTsgLy8gYXNzdW1lIG9uZSBhdCBsZWFzdFxuICAgICAgLy8gYnVpbGQgb3V0IGxvY2FsIHN0YXRlIG1vZGVsIHVzaW5nIHJlc3BvbnNlcyBkZWNsYXJlZCBpbiBleHByZXNzaW9uXG5cbiAgICAgIHByb3BzLm1vZGVsLmV4cHJlc3Npb24ucmVwbGFjZShSRUdFWCwgKCkgPT4ge1xuICAgICAgICByZXNwb25zZUFyZWFzW2ByJHthbnN3ZXJCbG9ja3MrK31gXSA9IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc2hvd0tleXBhZDogZmFsc2UsXG4gICAgICByZXNwb25zZUFyZWFzLFxuICAgICAgcmVzcG9uc2VJZENvdW50ZXI6IE9iamVjdC5rZXlzKHJlc3BvbnNlQXJlYXMpLmxlbmd0aCxcbiAgICB9O1xuICB9XG5cbiAgb25DaGFuZ2UgPSAobmFtZSkgPT4gKGV2dE9yVmFsdWUpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBuZXdNb2RlbCA9IHsgLi4ubW9kZWwgfTtcblxuICAgIGlmICh0eXBlb2YgZXZ0T3JWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG5ld01vZGVsW25hbWVdID0gZXZ0T3JWYWx1ZS50YXJnZXQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld01vZGVsW25hbWVdID0gZXZ0T3JWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAobmFtZSA9PT0gJ2V4cHJlc3Npb24nKSB7XG4gICAgICBuZXdNb2RlbFtuYW1lXSA9IHByZXBhcmVGb3JNb2RlbChldnRPclZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZShuZXdNb2RlbCk7XG4gIH07XG5cbiAgb25Eb25lID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93S2V5cGFkOiBmYWxzZSB9KTtcbiAgfTtcblxuICBvbkZvY3VzID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBzaG93S2V5cGFkOiB0cnVlIH0pO1xuICB9O1xuXG4gIG9uUHJvbXB0Rm9jdXMgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dLZXlwYWQ6IGZhbHNlIH0pO1xuICB9O1xuXG4gIFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgY29uc3QgeyBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBjb25zdCBNYXRoUXVpbGwgPSByZXF1aXJlKCdAcGllLWZyYW1ld29yay9tYXRocXVpbGwnKTtcbiAgICAgIGxldCBNUSA9IE1hdGhRdWlsbC5nZXRJbnRlcmZhY2UoMik7XG5cbiAgICAgIGlmICghcmVnaXN0ZXJlZCkge1xuICAgICAgICBNUS5yZWdpc3RlckVtYmVkKCdhbnN3ZXJCbG9jaycsIChkYXRhKSA9PiB7XG4gICAgICAgICAgLy8gbm90IHVzZWQgdW50aWwgd2UgaW1wbGVtZW50IGluZGl2aWR1YWwgYW5zd2VyIHRyYWNraW5nXG4gICAgICAgICAgLy8gY29uc3QgaW5kaXZpZHVhbEFuc3dlckJsb2NrID0gYDxkaXYgY2xhc3M9XCIke2NsYXNzZXMuYmxvY2tDb250YWluZXJ9XCI+XG4gICAgICAgICAgLy8gICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzZXMuYmxvY2tSZXNwb25zZX1cIiBpZD1cIiR7ZGF0YX1JbmRleFwiPlI8L2Rpdj5cbiAgICAgICAgICAvLyAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3Nlcy5ibG9ja01hdGh9XCI+XG4gICAgICAgICAgLy8gICAgICAgIDxzcGFuIGlkPVwiJHtkYXRhfVwiPjwvc3Bhbj5cbiAgICAgICAgICAvLyAgICAgIDwvZGl2PlxuICAgICAgICAgIC8vICAgPC9kaXY+YDtcblxuICAgICAgICAgIGNvbnN0IGdlbmVyaWNBbnN3ZXJCbG9jayA9IGA8ZGl2IGNsYXNzPVwiJHtjeChjbGFzc2VzLmJsb2NrQ29udGFpbmVyLCBjbGFzc2VzLmJsb2NrQ29udGFpbmVyR2VuZXJpYyl9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y3goY2xhc3Nlcy5ibG9ja1Jlc3BvbnNlLCBjbGFzc2VzLmJsb2NrUmVzcG9uc2VHZW5lcmljKX1cIiBpZD1cIiR7ZGF0YX1JbmRleFwiPlJlc3BvbnNlPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaHRtbFN0cmluZzogZ2VuZXJpY0Fuc3dlckJsb2NrLFxuICAgICAgICAgICAgdGV4dDogKCkgPT4gJ3RleHQnLFxuICAgICAgICAgICAgbGF0ZXg6ICgpID0+IGBcXFxcZW1iZWR7YW5zd2VyQmxvY2t9WyR7ZGF0YX1dYCxcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZWdpc3RlcmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmhhbmRsZUFuc3dlckJsb2NrRG9tVXBkYXRlKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgdGhpcy5oYW5kbGVBbnN3ZXJCbG9ja0RvbVVwZGF0ZSgpO1xuICB9XG5cbiAgaGFuZGxlQW5zd2VyQmxvY2tEb21VcGRhdGUgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHJlc3BvbnNlQXJlYXMgPSB7fTtcblxuICAgIGlmIChtb2RlbCAmJiBtb2RlbC5leHByZXNzaW9uKSB7XG4gICAgICBsZXQgYW5zd2VyQmxvY2tzID0gMTsgLy8gYXNzdW1lIG9uZSBhdCBsZWFzdFxuICAgICAgLy8gYnVpbGQgb3V0IGxvY2FsIHN0YXRlIG1vZGVsIHVzaW5nIHJlc3BvbnNlcyBkZWNsYXJlZCBpbiBleHByZXNzaW9uXG5cbiAgICAgIG1vZGVsLmV4cHJlc3Npb24ucmVwbGFjZShSRUdFWCwgKCkgPT4ge1xuICAgICAgICByZXNwb25zZUFyZWFzW2ByJHthbnN3ZXJCbG9ja3MrK31gXSA9IHtcbiAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwocmVzcG9uc2VBcmVhcywgdGhpcy5zdGF0ZS5yZXNwb25zZUFyZWFzKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAge1xuICAgICAgICAgIHJlc3BvbnNlQXJlYXMsXG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5yb290ICYmIE9iamVjdC5rZXlzKHJlc3BvbnNlQXJlYXMpLmxlbmd0aCkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzcG9uc2VBcmVhcykuZm9yRWFjaCgocmVzcG9uc2VJZCwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5yb290LnF1ZXJ5U2VsZWN0b3IoYCMke3Jlc3BvbnNlSWR9YCk7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4RWwgPSB0aGlzLnJvb3QucXVlcnlTZWxlY3RvcihgIyR7cmVzcG9uc2VJZH1JbmRleGApO1xuXG4gICAgICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IE1hdGhRdWlsbCA9IHJlcXVpcmUoJ0BwaWUtZnJhbWV3b3JrL21hdGhxdWlsbCcpO1xuICAgICAgICAgICAgICAgIGxldCBNUSA9IE1hdGhRdWlsbC5nZXRJbnRlcmZhY2UoMik7XG4gICAgICAgICAgICAgICAgLy8gV2Ugbm8gbG9uZ2VyIGhhdmUgaW5kaXZpZHVhbCBhbnN3ZXJzLCBzbyB3ZSBjYW5ub3Qgc2V0IHRleHQgY29udGVudCBvZiBibG9ja3NcbiAgICAgICAgICAgICAgICAvLyBlbC50ZXh0Q29udGVudCA9IHJlc3BvbnNlLmFuc3dlcjtcbiAgICAgICAgICAgICAgICBNUS5TdGF0aWNNYXRoKGVsKTtcbiAgICAgICAgICAgICAgICBpbmRleEVsLnRleHRDb250ZW50ID0gYFIke2lkeCArIDF9YDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgb25BZGRSZXNwb25zZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IG1vZGVsLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHJlc3BvbnNlSWRDb3VudGVyIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IG5ld01vZGVsID0geyAuLi5tb2RlbCB9O1xuXG4gICAgbGV0IG5ld0NvdW50ZXIgPSByZXNwb25zZUlkQ291bnRlcjtcblxuICAgIHdoaWxlIChtb2RlbC5yZXNwb25zZXMuZmluZCgocmVzcG9uc2UpID0+IHJlc3BvbnNlLmlkID09PSBuZXdDb3VudGVyKSkge1xuICAgICAgbmV3Q291bnRlcisrO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0ge1xuICAgICAgaWQ6IG5ld0NvdW50ZXIsXG4gICAgICB2YWxpZGF0aW9uOiAnbGl0ZXJhbCcsXG4gICAgICBhbnN3ZXI6ICcnLFxuICAgICAgYWx0ZXJuYXRlczoge30sXG4gICAgfTtcblxuICAgIG5ld01vZGVsLnJlc3BvbnNlcyA9IG5ld01vZGVsLnJlc3BvbnNlcy5jb25jYXQocmVzcG9uc2UpO1xuICAgIG9uQ2hhbmdlKG5ld01vZGVsKTtcblxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgcmVzcG9uc2VJZENvdW50ZXI6IHJlc3BvbnNlLmlkLFxuICAgIH0pO1xuICB9O1xuXG4gIG9uUmVzcG9uc2VDaGFuZ2UgPSAocmVzcG9uc2UsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgeyBtb2RlbCwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgbmV3TW9kZWwgPSB7IC4uLm1vZGVsIH07XG5cbiAgICBuZXdNb2RlbC5yZXNwb25zZXNbaW5kZXhdID0gcmVzcG9uc2U7XG4gICAgb25DaGFuZ2UobmV3TW9kZWwpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjbGFzc2VzLFxuICAgICAgbW9kZWwsXG4gICAgICBpbWFnZVN1cHBvcnQsXG4gICAgICB1cGxvYWRTb3VuZFN1cHBvcnQsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgICAgcHJvbXB0RW5hYmxlZCxcbiAgICAgIHJhdGlvbmFsZUVuYWJsZWQsXG4gICAgICB0b29sYmFyT3B0cyxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNob3dLZXlwYWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qge1xuICAgICAgcHJvbXB0LFxuICAgICAgZXhwcmVzc2lvbixcbiAgICAgIGVxdWF0aW9uRWRpdG9yLFxuICAgICAgcHJvbXB0RXF1YXRpb25FZGl0b3IgPSAnOCcsXG4gICAgICByZXNwb25zZXMsXG4gICAgICByZXNwb25zZVR5cGUsXG4gICAgICByYXRpb25hbGUsXG4gICAgICBzcGVsbENoZWNrRW5hYmxlZCxcbiAgICAgIGVycm9ycyA9IHt9LFxuICAgIH0gPSBtb2RlbDtcbiAgICBjb25zdCB7XG4gICAgICByYXRpb25hbGU6IGNSYXRpb25hbGUgPSB7fSxcbiAgICAgIHByb21wdDogY1Byb21wdCA9IHt9LFxuICAgICAgaWdub3JlT3JkZXI6IGNJZ25vcmVPcmRlciA9IHt9LFxuICAgICAgYWxsb3dUcmFpbGluZ1plcm9zOiBjQWxsb3dUcmFpbGluZ1plcm9zID0ge30sXG4gICAgICBtYXhSZXNwb25zZUFyZWFzLFxuICAgICAgbWF4SW1hZ2VXaWR0aCA9IHt9LFxuICAgICAgbWF4SW1hZ2VIZWlnaHQgPSB7fSxcbiAgICAgIG1hdGhNbE9wdGlvbnMgPSB7fSxcbiAgICB9ID0gY29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZSA9IGdlbmVyYXRlVmFsaWRhdGlvbk1lc3NhZ2UoY29uZmlndXJhdGlvbiwgbW9kZWwpO1xuICAgIGNvbnN0IHsgcmVzcG9uc2VzRXJyb3JzLCByZXNwb25zZUFyZWFzRXJyb3IgfSA9IGVycm9ycztcblxuICAgIGNvbnN0IGRlZmF1bHRJbWFnZU1heFdpZHRoID0gbWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnByb21wdDtcbiAgICBjb25zdCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHQgPSBtYXhJbWFnZUhlaWdodCAmJiBtYXhJbWFnZUhlaWdodC5wcm9tcHQ7XG5cbiAgICBjb25zdCBjbGFzc05hbWVzID0ge1xuICAgICAgZWRpdG9yOiBjbGFzc2VzLnJlc3BvbnNlRWRpdG9yLFxuICAgICAgbWF0aFRvb2xiYXI6IGNsYXNzZXMubWF0aFRvb2xiYXIsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlc1RvVXNlID0gcmVzcG9uc2VUeXBlID09PSBSZXNwb25zZVR5cGVzLmFkdmFuY2VkID8gcmVzcG9uc2VzIDogcmVzcG9uc2VzLnNsaWNlKDAsIDEpO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvblRvb2x0aXAgPSAoXG4gICAgICA8VG9vbHRpcFxuICAgICAgICBjbGFzc2VzPXt7IHRvb2x0aXA6IGNsYXNzZXMudG9vbHRpcCB9fVxuICAgICAgICBkaXNhYmxlRm9jdXNMaXN0ZW5lclxuICAgICAgICBkaXNhYmxlVG91Y2hMaXN0ZW5lclxuICAgICAgICBwbGFjZW1lbnQ9eydyaWdodCd9XG4gICAgICAgIHRpdGxlPXt2YWxpZGF0aW9uTWVzc2FnZX1cbiAgICAgID5cbiAgICAgICAgPEluZm8gZm9udFNpemU9eydzbWFsbCd9IGNvbG9yPXsncHJpbWFyeSd9IHN0eWxlPXt7IG1hcmdpbkxlZnQ6ICc1cHgnIH19IC8+XG4gICAgICA8L1Rvb2x0aXA+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHJlZj17KHIpID0+ICh0aGlzLnJvb3QgPSByIHx8IHRoaXMucm9vdCl9IGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250YWluZXJ9PlxuICAgICAgICB7cHJvbXB0RW5hYmxlZCAmJiAoXG4gICAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPXtjUHJvbXB0LmxhYmVsfSBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0SG9sZGVyfT5cbiAgICAgICAgICAgIDxFZGl0YWJsZUh0bWxcbiAgICAgICAgICAgICAgb25Gb2N1cz17dGhpcy5vblByb21wdEZvY3VzfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICBtYXJrdXA9e3Byb21wdCB8fCAnJ31cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UoJ3Byb21wdCcpfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXtkZWZhdWx0SW1hZ2VNYXhXaWR0aH1cbiAgICAgICAgICAgICAgbWF4SW1hZ2VIZWlnaHQ9e2RlZmF1bHRJbWFnZU1heEhlaWdodH1cbiAgICAgICAgICAgICAgdXBsb2FkU291bmRTdXBwb3J0PXt1cGxvYWRTb3VuZFN1cHBvcnR9XG4gICAgICAgICAgICAgIGxhbmd1YWdlQ2hhcmFjdGVyc1Byb3BzPXtbeyBsYW5ndWFnZTogJ3NwYW5pc2gnIH0sIHsgbGFuZ3VhZ2U6ICdzcGVjaWFsJyB9XX1cbiAgICAgICAgICAgICAgbWF0aE1sT3B0aW9ucz17bWF0aE1sT3B0aW9uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cbiAgICAgICAgKX1cblxuICAgICAgICB7cmVzcG9uc2VUeXBlID09PSBSZXNwb25zZVR5cGVzLmFkdmFuY2VkICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5hZHZhbmNlZFJlc3BvbnNlfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmZsZXhDb250YWluZXJ9IHN0eWxlPXt7IGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcgfX0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLnRpdGxlfT5EZWZpbmUgUmVzcG9uc2U8L2Rpdj5cbiAgICAgICAgICAgICAge3ZhbGlkYXRpb25Ub29sdGlwfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lclxuICAgICAgICAgICAgICBrZXk9XCJ0ZW1wbGF0ZUVkaXRvclR5cGVcIlxuICAgICAgICAgICAgICBsYWJlbD1cIlJlc3BvbnNlIFRlbXBsYXRlIEVxdWF0aW9uIEVkaXRvclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3RDb250YWluZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuc2VsZWN0fVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlKCdwcm9tcHRFcXVhdGlvbkVkaXRvcicpfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwcm9tcHRFcXVhdGlvbkVkaXRvcn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cIm5vbi1uZWdhdGl2ZS1pbnRlZ2Vyc1wiPk51bWVyaWMgLSBOb24tTmVnYXRpdmUgSW50ZWdlcnM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cImludGVnZXJzXCI+TnVtZXJpYyAtIEludGVnZXJzPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9XCJkZWNpbWFsc1wiPk51bWVyaWMgLSBEZWNpbWFsczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiZnJhY3Rpb25zXCI+TnVtZXJpYyAtIEZyYWN0aW9uczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXsxfT5HcmFkZSAxIC0gMjwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXszfT5HcmFkZSAzIC0gNTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXs2fT5HcmFkZSA2IC0gNzwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXs4fT5HcmFkZSA4IC0gSFM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2dlb21ldHJ5J30+R2VvbWV0cnk8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2FkdmFuY2VkLWFsZ2VicmEnfT5BZHZhbmNlZCBBbGdlYnJhPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9eydzdGF0aXN0aWNzJ30+U3RhdGlzdGljczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXsnaXRlbS1hdXRob3JpbmcnfT5JdGVtIEF1dGhvcmluZzwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgICAgPC9JbnB1dENvbnRhaW5lcj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMucmVzcG9uc2VUZW1wbGF0ZX0ga2V5PVwidGVtcGxhdGVIb2xkZXJcIj5cbiAgICAgICAgICAgICAgPElucHV0TGFiZWwgY2xhc3NOYW1lPXtjbGFzc2VzLnRlbXBsYXRlVGl0bGV9PlJFU1BPTlNFIFRFTVBMQVRFPC9JbnB1dExhYmVsPlxuICAgICAgICAgICAgICA8TWF0aFRvb2xiYXJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzPXtjbGFzc05hbWVzfVxuICAgICAgICAgICAgICAgIGFsbG93QW5zd2VyQmxvY2tcbiAgICAgICAgICAgICAgICBrZXlwYWRNb2RlPXtwcm9tcHRFcXVhdGlvbkVkaXRvcn1cbiAgICAgICAgICAgICAgICBjb250cm9sbGVkS2V5cGFkXG4gICAgICAgICAgICAgICAgc2hvd0tleXBhZD17c2hvd0tleXBhZH1cbiAgICAgICAgICAgICAgICBsYXRleD17cHJlcGFyZUZvclN0YXRpYyhleHByZXNzaW9uKSB8fCAnJ31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZSgnZXhwcmVzc2lvbicpfVxuICAgICAgICAgICAgICAgIG9uRm9jdXM9e3RoaXMub25Gb2N1c31cbiAgICAgICAgICAgICAgICBvbkRvbmU9e3RoaXMub25Eb25lfVxuICAgICAgICAgICAgICAgIG1heFJlc3BvbnNlQXJlYXM9e21heFJlc3BvbnNlQXJlYXN9XG4gICAgICAgICAgICAgICAgZXJyb3I9e3Jlc3BvbnNlQXJlYXNFcnJvcn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7cmVzcG9uc2VBcmVhc0Vycm9yICYmIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yVGV4dH0+e3Jlc3BvbnNlQXJlYXNFcnJvcn08L2Rpdj59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuZmxleENvbnRhaW5lcn0gc3R5bGU9e3sganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyB9fT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy50aXRsZX0+RGVmaW5lIENvcnJlY3QgUmVzcG9uc2U8L2Rpdj5cbiAgICAgICAgICB7cmVzcG9uc2VUeXBlID09PSBSZXNwb25zZVR5cGVzLnNpbXBsZSA/IHZhbGlkYXRpb25Ub29sdGlwIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPElucHV0Q29udGFpbmVyIGxhYmVsPVwiRXF1YXRpb24gRWRpdG9yXCIgY2xhc3NOYW1lPXtjbGFzc2VzLnNlbGVjdENvbnRhaW5lcn0+XG4gICAgICAgICAgPFNlbGVjdCBjbGFzc05hbWU9e2NsYXNzZXMuc2VsZWN0fSBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZSgnZXF1YXRpb25FZGl0b3InKX0gdmFsdWU9e2VxdWF0aW9uRWRpdG9yfT5cbiAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cIm5vbi1uZWdhdGl2ZS1pbnRlZ2Vyc1wiPk51bWVyaWMgLSBOb24tTmVnYXRpdmUgSW50ZWdlcnM8L01lbnVJdGVtPlxuICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiaW50ZWdlcnNcIj5OdW1lcmljIC0gSW50ZWdlcnM8L01lbnVJdGVtPlxuICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiZGVjaW1hbHNcIj5OdW1lcmljIC0gRGVjaW1hbHM8L01lbnVJdGVtPlxuICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiZnJhY3Rpb25zXCI+TnVtZXJpYyAtIEZyYWN0aW9uczwvTWVudUl0ZW0+XG4gICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9ezF9PkdyYWRlIDEgLSAyPC9NZW51SXRlbT5cbiAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17M30+R3JhZGUgMyAtIDU8L01lbnVJdGVtPlxuICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXs2fT5HcmFkZSA2IC0gNzwvTWVudUl0ZW0+XG4gICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9ezh9PkdyYWRlIDggLSBIUzwvTWVudUl0ZW0+XG4gICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9eydnZW9tZXRyeSd9Pkdlb21ldHJ5PC9NZW51SXRlbT5cbiAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2FkdmFuY2VkLWFsZ2VicmEnfT5BZHZhbmNlZCBBbGdlYnJhPC9NZW51SXRlbT5cbiAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J3N0YXRpc3RpY3MnfT5TdGF0aXN0aWNzPC9NZW51SXRlbT5cbiAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2l0ZW0tYXV0aG9yaW5nJ30+SXRlbSBBdXRob3Jpbmc8L01lbnVJdGVtPlxuICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICA8L0lucHV0Q29udGFpbmVyPlxuXG4gICAgICAgIHtyZXNwb25zZXNUb1VzZS5tYXAoKHJlc3BvbnNlLCBpZHgpID0+IChcbiAgICAgICAgICA8UmVzcG9uc2VcbiAgICAgICAgICAgIGtleT17cmVzcG9uc2UuaWR9XG4gICAgICAgICAgICBtb2RlPXtlcXVhdGlvbkVkaXRvcn1cbiAgICAgICAgICAgIHJlc3BvbnNlPXtyZXNwb25zZX1cbiAgICAgICAgICAgIGRlZmF1bHRSZXNwb25zZT17cmVzcG9uc2VUeXBlID09PSBSZXNwb25zZVR5cGVzLnNpbXBsZX1cbiAgICAgICAgICAgIG9uUmVzcG9uc2VDaGFuZ2U9e3RoaXMub25SZXNwb25zZUNoYW5nZX1cbiAgICAgICAgICAgIGluZGV4PXtpZHh9XG4gICAgICAgICAgICBjSWdub3JlT3JkZXI9e2NJZ25vcmVPcmRlcn1cbiAgICAgICAgICAgIGNBbGxvd1RyYWlsaW5nWmVyb3M9e2NBbGxvd1RyYWlsaW5nWmVyb3N9XG4gICAgICAgICAgICBlcnJvcj17cmVzcG9uc2VzRXJyb3JzICYmIHJlc3BvbnNlc0Vycm9yc1tpZHhdfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuXG4gICAgICAgIHtyYXRpb25hbGVFbmFibGVkICYmIChcbiAgICAgICAgICA8SW5wdXRDb250YWluZXIgbGFiZWw9e2NSYXRpb25hbGUubGFiZWx9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wcm9tcHRIb2xkZXJ9PlxuICAgICAgICAgICAgPEVkaXRhYmxlSHRtbFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucHJvbXB0fVxuICAgICAgICAgICAgICBtYXJrdXA9e3JhdGlvbmFsZSB8fCAnJ31cbiAgICAgICAgICAgICAgcGx1Z2luUHJvcHM9e3tcbiAgICAgICAgICAgICAgICBtYXRoOiB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sbGVkS2V5cGFkTW9kZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UoJ3JhdGlvbmFsZScpfVxuICAgICAgICAgICAgICBpbWFnZVN1cHBvcnQ9e2ltYWdlU3VwcG9ydH1cbiAgICAgICAgICAgICAgbm9uRW1wdHk9e2ZhbHNlfVxuICAgICAgICAgICAgICB0b29sYmFyT3B0cz17dG9vbGJhck9wdHN9XG4gICAgICAgICAgICAgIHNwZWxsQ2hlY2s9e3NwZWxsQ2hlY2tFbmFibGVkfVxuICAgICAgICAgICAgICBtYXhJbWFnZVdpZHRoPXsobWF4SW1hZ2VXaWR0aCAmJiBtYXhJbWFnZVdpZHRoLnJhdGlvbmFsZSkgfHwgZGVmYXVsdEltYWdlTWF4V2lkdGh9XG4gICAgICAgICAgICAgIG1heEltYWdlSGVpZ2h0PXsobWF4SW1hZ2VIZWlnaHQgJiYgbWF4SW1hZ2VIZWlnaHQucmF0aW9uYWxlKSB8fCBkZWZhdWx0SW1hZ2VNYXhIZWlnaHR9XG4gICAgICAgICAgICAgIHVwbG9hZFNvdW5kU3VwcG9ydD17dXBsb2FkU291bmRTdXBwb3J0fVxuICAgICAgICAgICAgICBsYW5ndWFnZUNoYXJhY3RlcnNQcm9wcz17W3sgbGFuZ3VhZ2U6ICdzcGFuaXNoJyB9LCB7IGxhbmd1YWdlOiAnc3BlY2lhbCcgfV19XG4gICAgICAgICAgICAgIG1hdGhNbE9wdGlvbnM9e21hdGhNbE9wdGlvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShHZW5lcmFsQ29uZmlnQmxvY2spO1xuIl19