@pie-element/math-inline 12.2.2-beta.4 → 12.2.3

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.
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
- var React = _interopRequireWildcard(require("react"));
6
- var _react2 = require("@testing-library/react");
7
- var _mathInputMathlive = require("@pie-lib/math-input-mathlive");
8
- var _mathToolbar = require("@pie-lib/math-toolbar");
9
- var _simpleQuestionBlock = _interopRequireDefault(require("../simple-question-block"));
10
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- jest.mock('@pie-lib/math-input-mathlive', () => ({
12
- mq: {
13
- Static: props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
14
- "data-testid": "mq-static"
15
- }, props))
16
- }
17
- }));
18
- jest.mock('@pie-lib/math-toolbar', () => ({
19
- MathToolbar: props => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
20
- "data-testid": "math-toolbar"
21
- }, props))
22
- }));
23
- describe('SimpleQuestionBlock', () => {
24
- const defaultProps = {
25
- model: {
26
- config: {
27
- mode: 'advanced',
28
- feedback: {
29
- correct: {
30
- default: 'Correct',
31
- type: 'none'
32
- },
33
- incorrect: {
34
- default: 'Incorrect',
35
- type: 'none'
36
- },
37
- partial: {
38
- default: 'Nearly',
39
- type: 'none'
40
- }
41
- },
42
- equationEditor: 'miscellaneous',
43
- expression: 'n = {\\embed{answerBlock}[answerBlock1]}',
44
- question: '<p>The binomial <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>x</mi><mo>&#8722;</mo><mn>2</mn> </math> is a factor of the polynomial below.</p><p><span class="equation-block"><math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><msup> <mi>x</mi> <mn>3</mn> </msup> <mo>+</mo><msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo><mi>n</mi><mi>x</mi><mo>+</mo><mn>10</mn> </math> </span></p><p>What is the value of <span class="variable">n</span>? Use the on-screen keyboard&#160;to type the correct answer in the box.</p>',
45
- 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.',
46
- responses: [{
47
- answer: 'n=-11',
48
- id: 'answerBlock1',
49
- alternates: {},
50
- validation: 'literal'
51
- }],
52
- response: {
53
- answer: 'n=-11',
54
- id: 'answerBlock1',
55
- alternates: {},
56
- validation: 'literal'
57
- }
58
- }
59
- },
60
- correctness: {},
61
- showCorrect: false,
62
- session: {
63
- response: 'sessionResponse'
64
- },
65
- onSimpleResponseChange: jest.fn(),
66
- onSubFieldFocus: jest.fn(),
67
- showKeypad: true
68
- };
69
- const wrapper = (props = {}) => {
70
- return (0, _react2.render)(/*#__PURE__*/React.createElement(_simpleQuestionBlock.default, (0, _extends2.default)({}, defaultProps, props)));
71
- };
72
- const createInstance = (props = {}) => {
73
- const instanceProps = {
74
- ...defaultProps,
75
- ...props
76
- };
77
- const instance = new _simpleQuestionBlock.default(instanceProps);
78
- instance.setState = jest.fn(state => {
79
- Object.assign(instance.state, typeof state === 'function' ? state(instance.state) : state);
80
- });
81
- return instance;
82
- };
83
- it('renders correctly for not showing correct mode', () => {
84
- const {
85
- queryByTestId
86
- } = wrapper();
87
- expect(queryByTestId('mq-static')).not.toBeInTheDocument();
88
- expect(queryByTestId('math-toolbar')).toBeInTheDocument();
89
- });
90
- it('renders correctly for showing correct mode', () => {
91
- const {
92
- queryByTestId
93
- } = wrapper({
94
- showCorrect: true
95
- });
96
- expect(queryByTestId('mq-static')).toBeInTheDocument();
97
- expect(queryByTestId('math-toolbar')).not.toBeInTheDocument();
98
- });
99
- it('correctly keeps the keypad open', () => {
100
- const instance = createInstance();
101
- instance.onFocus();
102
- expect(defaultProps.onSubFieldFocus).toHaveBeenCalledWith(instance.mathToolBarId);
103
- expect(instance.props.showKeypad).toEqual(true);
104
- instance.mathToolBarContainsTarget = () => true;
105
- instance.handleClick();
106
- expect(instance.props.showKeypad).toEqual(true);
107
- });
108
- it('correctly hides the keypad', () => {
109
- const instance = createInstance();
110
- instance.onFocus();
111
- expect(defaultProps.onSubFieldFocus).toHaveBeenCalledWith(instance.mathToolBarId);
112
- expect(instance.props.showKeypad).toEqual(true);
113
-
114
- // Simulate clicking outside the toolbar (to hide the keypad)
115
- instance.mathToolBarContainsTarget = () => false;
116
- instance.handleClick();
117
-
118
- // Create new instance with showKeypad: false to simulate parent component reaction
119
- const newInstance = createInstance({
120
- showKeypad: false
121
- });
122
- expect(newInstance.props.showKeypad).toEqual(false);
123
- });
124
- it('does not call session change on render', () => {
125
- wrapper();
126
- expect(defaultProps.onSimpleResponseChange).not.toHaveBeenCalled();
127
- });
128
- });
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfbWF0aElucHV0TWF0aGxpdmUiLCJfbWF0aFRvb2xiYXIiLCJfc2ltcGxlUXVlc3Rpb25CbG9jayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsIm1xIiwiU3RhdGljIiwicHJvcHMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiTWF0aFRvb2xiYXIiLCJkZXNjcmliZSIsImRlZmF1bHRQcm9wcyIsIm1vZGVsIiwiY29uZmlnIiwibW9kZSIsImZlZWRiYWNrIiwiY29ycmVjdCIsInR5cGUiLCJpbmNvcnJlY3QiLCJwYXJ0aWFsIiwiZXF1YXRpb25FZGl0b3IiLCJleHByZXNzaW9uIiwicXVlc3Rpb24iLCJub3RlIiwicmVzcG9uc2VzIiwiYW5zd2VyIiwiaWQiLCJhbHRlcm5hdGVzIiwidmFsaWRhdGlvbiIsInJlc3BvbnNlIiwiY29ycmVjdG5lc3MiLCJzaG93Q29ycmVjdCIsInNlc3Npb24iLCJvblNpbXBsZVJlc3BvbnNlQ2hhbmdlIiwiZm4iLCJvblN1YkZpZWxkRm9jdXMiLCJzaG93S2V5cGFkIiwid3JhcHBlciIsInJlbmRlciIsImNyZWF0ZUluc3RhbmNlIiwiaW5zdGFuY2VQcm9wcyIsImluc3RhbmNlIiwiU2ltcGxlUXVlc3Rpb25CbG9jayIsInNldFN0YXRlIiwic3RhdGUiLCJhc3NpZ24iLCJpdCIsInF1ZXJ5QnlUZXN0SWQiLCJleHBlY3QiLCJub3QiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIm9uRm9jdXMiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsIm1hdGhUb29sQmFySWQiLCJ0b0VxdWFsIiwibWF0aFRvb2xCYXJDb250YWluc1RhcmdldCIsImhhbmRsZUNsaWNrIiwibmV3SW5zdGFuY2UiLCJ0b0hhdmVCZWVuQ2FsbGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9zaW1wbGUtcXVlc3Rpb24tYmxvY2sudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IG1xIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1pbnB1dC1tYXRobGl2ZSc7XG5pbXBvcnQgeyBNYXRoVG9vbGJhciB9IGZyb20gJ0BwaWUtbGliL21hdGgtdG9vbGJhcic7XG5pbXBvcnQgU2ltcGxlUXVlc3Rpb25CbG9jayBmcm9tICcuLi9zaW1wbGUtcXVlc3Rpb24tYmxvY2snO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL21hdGgtaW5wdXQtbWF0aGxpdmUnLCAoKSA9PiAoe1xuICBtcToge1xuICAgIFN0YXRpYzogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwibXEtc3RhdGljXCIgey4uLnByb3BzfSAvPixcbiAgfSxcbn0pKTtcblxuamVzdC5tb2NrKCdAcGllLWxpYi9tYXRoLXRvb2xiYXInLCAoKSA9PiAoe1xuICBNYXRoVG9vbGJhcjogKHByb3BzKSA9PiA8ZGl2IGRhdGEtdGVzdGlkPVwibWF0aC10b29sYmFyXCIgey4uLnByb3BzfSAvPixcbn0pKTtcblxuZGVzY3JpYmUoJ1NpbXBsZVF1ZXN0aW9uQmxvY2snLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtb2RlbDoge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIG1vZGU6ICdhZHZhbmNlZCcsXG4gICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgZGVmYXVsdDogJ0NvcnJlY3QnLFxuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5jb3JyZWN0OiB7XG4gICAgICAgICAgICBkZWZhdWx0OiAnSW5jb3JyZWN0JyxcbiAgICAgICAgICAgIHR5cGU6ICdub25lJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcnRpYWw6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6ICdOZWFybHknLFxuICAgICAgICAgICAgdHlwZTogJ25vbmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGVxdWF0aW9uRWRpdG9yOiAnbWlzY2VsbGFuZW91cycsXG4gICAgICAgIGV4cHJlc3Npb246ICduID0ge1xcXFxlbWJlZHthbnN3ZXJCbG9ja31bYW5zd2VyQmxvY2sxXX0nLFxuICAgICAgICBxdWVzdGlvbjpcbiAgICAgICAgICAnPHA+VGhlIGJpbm9taWFsIDxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiPiA8bWk+eDwvbWk+PG1vPiYjODcyMjs8L21vPjxtbj4yPC9tbj4gPC9tYXRoPiBpcyBhIGZhY3RvciBvZiB0aGUgcG9seW5vbWlhbCBiZWxvdy48L3A+PHA+PHNwYW4gY2xhc3M9XCJlcXVhdGlvbi1ibG9ja1wiPjxtYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiPiA8bWk+ZjwvbWk+PG1vIHN0cmV0Y2h5PVwiZmFsc2VcIj4oPC9tbz48bWk+eDwvbWk+PG1vIHN0cmV0Y2h5PVwiZmFsc2VcIj4pPC9tbz48bW8+PTwvbW8+PG1zdXA+IDxtaT54PC9taT4gPG1uPjM8L21uPiA8L21zdXA+IDxtbz4rPC9tbz48bXN1cD4gPG1pPng8L21pPiA8bW4+MjwvbW4+IDwvbXN1cD4gPG1vPis8L21vPjxtaT5uPC9taT48bWk+eDwvbWk+PG1vPis8L21vPjxtbj4xMDwvbW4+IDwvbWF0aD4gPC9zcGFuPjwvcD48cD5XaGF0IGlzIHRoZSB2YWx1ZSBvZiA8c3BhbiBjbGFzcz1cInZhcmlhYmxlXCI+bjwvc3Bhbj4/IFVzZSB0aGUgb24tc2NyZWVuIGtleWJvYXJkJiMxNjA7dG8gdHlwZSB0aGUgY29ycmVjdCBhbnN3ZXIgaW4gdGhlIGJveC48L3A+JyxcbiAgICAgICAgbm90ZTogJ1RoZSBhbnN3ZXIgc2hvd24gYWJvdmUgaXMgdGhlIHByaW1hcnkgY29ycmVjdCBhbnN3ZXIgc3BlY2lmaWVkIGJ5IHRoZSBhdXRob3IgZm9yIHRoaXMgaXRlbSwgYnV0IG90aGVyIGFuc3dlcnMgbWF5IGFsc28gYmUgcmVjb2duaXplZCBhcyBjb3JyZWN0LicsXG4gICAgICAgIHJlc3BvbnNlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFuc3dlcjogJ249LTExJyxcbiAgICAgICAgICAgIGlkOiAnYW5zd2VyQmxvY2sxJyxcbiAgICAgICAgICAgIGFsdGVybmF0ZXM6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdGlvbjogJ2xpdGVyYWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgICAgYW5zd2VyOiAnbj0tMTEnLFxuICAgICAgICAgIGlkOiAnYW5zd2VyQmxvY2sxJyxcbiAgICAgICAgICBhbHRlcm5hdGVzOiB7fSxcbiAgICAgICAgICB2YWxpZGF0aW9uOiAnbGl0ZXJhbCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgY29ycmVjdG5lc3M6IHt9LFxuICAgIHNob3dDb3JyZWN0OiBmYWxzZSxcbiAgICBzZXNzaW9uOiB7XG4gICAgICByZXNwb25zZTogJ3Nlc3Npb25SZXNwb25zZScsXG4gICAgfSxcbiAgICBvblNpbXBsZVJlc3BvbnNlQ2hhbmdlOiBqZXN0LmZuKCksXG4gICAgb25TdWJGaWVsZEZvY3VzOiBqZXN0LmZuKCksXG4gICAgc2hvd0tleXBhZDogdHJ1ZSxcbiAgfTtcblxuICBjb25zdCB3cmFwcGVyID0gKHByb3BzID0ge30pID0+IHtcbiAgICByZXR1cm4gcmVuZGVyKDxTaW1wbGVRdWVzdGlvbkJsb2NrIHsuLi5kZWZhdWx0UHJvcHN9IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGNvbnN0IGNyZWF0ZUluc3RhbmNlID0gKHByb3BzID0ge30pID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZVByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTaW1wbGVRdWVzdGlvbkJsb2NrKGluc3RhbmNlUHJvcHMpO1xuICAgIGluc3RhbmNlLnNldFN0YXRlID0gamVzdC5mbigoc3RhdGUpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2Uuc3RhdGUsIHR5cGVvZiBzdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0YXRlKGluc3RhbmNlLnN0YXRlKSA6IHN0YXRlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH07XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IGZvciBub3Qgc2hvd2luZyBjb3JyZWN0IG1vZGUnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBxdWVyeUJ5VGVzdElkIH0gPSB3cmFwcGVyKCk7XG5cbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbXEtc3RhdGljJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtYXRoLXRvb2xiYXInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlbmRlcnMgY29ycmVjdGx5IGZvciBzaG93aW5nIGNvcnJlY3QgbW9kZScsICgpID0+IHtcbiAgICBjb25zdCB7IHF1ZXJ5QnlUZXN0SWQgfSA9IHdyYXBwZXIoeyBzaG93Q29ycmVjdDogdHJ1ZSB9KTtcblxuICAgIGV4cGVjdChxdWVyeUJ5VGVzdElkKCdtcS1zdGF0aWMnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICBleHBlY3QocXVlcnlCeVRlc3RJZCgnbWF0aC10b29sYmFyJykpLm5vdC50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICBpdCgnY29ycmVjdGx5IGtlZXBzIHRoZSBrZXlwYWQgb3BlbicsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNyZWF0ZUluc3RhbmNlKCk7XG5cbiAgICBpbnN0YW5jZS5vbkZvY3VzKCk7XG4gICAgZXhwZWN0KGRlZmF1bHRQcm9wcy5vblN1YkZpZWxkRm9jdXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGluc3RhbmNlLm1hdGhUb29sQmFySWQpO1xuICAgIGV4cGVjdChpbnN0YW5jZS5wcm9wcy5zaG93S2V5cGFkKS50b0VxdWFsKHRydWUpO1xuXG4gICAgaW5zdGFuY2UubWF0aFRvb2xCYXJDb250YWluc1RhcmdldCA9ICgpID0+IHRydWU7XG4gICAgaW5zdGFuY2UuaGFuZGxlQ2xpY2soKTtcblxuICAgIGV4cGVjdChpbnN0YW5jZS5wcm9wcy5zaG93S2V5cGFkKS50b0VxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgnY29ycmVjdGx5IGhpZGVzIHRoZSBrZXlwYWQnLCAoKSA9PiB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSgpO1xuXG4gICAgaW5zdGFuY2Uub25Gb2N1cygpO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMub25TdWJGaWVsZEZvY3VzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChpbnN0YW5jZS5tYXRoVG9vbEJhcklkKTtcbiAgICBleHBlY3QoaW5zdGFuY2UucHJvcHMuc2hvd0tleXBhZCkudG9FcXVhbCh0cnVlKTtcblxuICAgIC8vIFNpbXVsYXRlIGNsaWNraW5nIG91dHNpZGUgdGhlIHRvb2xiYXIgKHRvIGhpZGUgdGhlIGtleXBhZClcbiAgICBpbnN0YW5jZS5tYXRoVG9vbEJhckNvbnRhaW5zVGFyZ2V0ID0gKCkgPT4gZmFsc2U7XG4gICAgaW5zdGFuY2UuaGFuZGxlQ2xpY2soKTtcblxuICAgIC8vIENyZWF0ZSBuZXcgaW5zdGFuY2Ugd2l0aCBzaG93S2V5cGFkOiBmYWxzZSB0byBzaW11bGF0ZSBwYXJlbnQgY29tcG9uZW50IHJlYWN0aW9uXG4gICAgY29uc3QgbmV3SW5zdGFuY2UgPSBjcmVhdGVJbnN0YW5jZSh7IHNob3dLZXlwYWQ6IGZhbHNlIH0pO1xuXG4gICAgZXhwZWN0KG5ld0luc3RhbmNlLnByb3BzLnNob3dLZXlwYWQpLnRvRXF1YWwoZmFsc2UpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgY2FsbCBzZXNzaW9uIGNoYW5nZSBvbiByZW5kZXInLCAoKSA9PiB7XG4gICAgd3JhcHBlcigpO1xuICAgIGV4cGVjdChkZWZhdWx0UHJvcHMub25TaW1wbGVSZXNwb25zZUNoYW5nZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGtCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQTJELFNBQUFELHdCQUFBTyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBVCx1QkFBQSxZQUFBQSxDQUFBTyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFL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