@pie-element/explicit-constructed-response 11.2.2-beta.2 → 11.2.2

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,62 +0,0 @@
1
- "use strict";
2
-
3
- var _markupUtils = require("../markupUtils");
4
- describe('processMarkup', () => {
5
- const assertProcessMarkup = (markup, expected, should) => {
6
- it(should || `returns processed markup: ${expected}`, () => {
7
- expect((0, _markupUtils.processMarkup)(markup)).toEqual(expected);
8
- });
9
- };
10
- assertProcessMarkup('<p>The <span data-type="explicit_constructed_response" data-index="0" data-value="cow"></span> jumped <span data-type="explicit_constructed_response" data-index="1" data-value="over"></span> the <span data-type="explicit_constructed_response" data-index="2" data-value="moon"></span></p>', '<p>The {{0}} jumped {{1}} the {{2}}</p>');
11
- assertProcessMarkup('<p>This is a <span data-type="explicit_constructed_response" data-index="0" data-value="test"></span>.</p>', '<p>This is a {{0}}.</p>');
12
- assertProcessMarkup('<p>This is another test.</p>', '<p>This is another test.</p>');
13
- assertProcessMarkup('', '');
14
- assertProcessMarkup(undefined, '');
15
- assertProcessMarkup(null, '');
16
- assertProcessMarkup('<div> \\tfoo\\nbar </div>', '<div> foobar </div>', 'should remove \t, \n from the string');
17
- assertProcessMarkup('<div> "foobar" </div>', '<div> "foobar" </div>', 'should replace " with " in the string');
18
- assertProcessMarkup('<div> /foobar </div>', '<div> /foobar </div>', 'should replace / with / in the string');
19
- });
20
- describe('createSlateMarkup', () => {
21
- const choices = {
22
- 0: [{
23
- label: 'cow',
24
- value: '0'
25
- }, {
26
- label: 'cattle',
27
- value: '1'
28
- }, {
29
- label: 'calf',
30
- value: '2'
31
- }],
32
- 1: [{
33
- label: 'over',
34
- value: '0'
35
- }, {
36
- label: 'past',
37
- value: '1'
38
- }, {
39
- label: 'beyond',
40
- value: '2'
41
- }],
42
- 2: [{
43
- label: 'moon',
44
- value: '0'
45
- }]
46
- };
47
- const assertCreateSlateMarkup = (markup, expected, should) => {
48
- it(should || `returns slate markup: ${expected}`, () => {
49
- expect((0, _markupUtils.createSlateMarkup)(markup, choices)).toEqual(expected);
50
- });
51
- };
52
- assertCreateSlateMarkup('<p>The {{0}} jumped {{1}} the {{2}}</p>', '<p>The <span data-type="explicit_constructed_response" data-index="0" data-value="cow"></span> jumped <span data-type="explicit_constructed_response" data-index="1" data-value="over"></span> the <span data-type="explicit_constructed_response" data-index="2" data-value="moon"></span></p>');
53
- assertCreateSlateMarkup('<p>This is a {{0}}.</p>', '<p>This is a <span data-type="explicit_constructed_response" data-index="0" data-value="cow"></span>.</p>');
54
- assertCreateSlateMarkup('<p>This is another test.</p>', '<p>This is another test.</p>');
55
- assertCreateSlateMarkup('', '');
56
- assertCreateSlateMarkup(undefined, '');
57
- assertCreateSlateMarkup(null, '');
58
- assertCreateSlateMarkup('<div> \\tfoo\\nbar </div>', '<div> foobar </div>', 'should remove \t, \n from the string');
59
- assertCreateSlateMarkup('<div> "foobar" </div>', '<div> "foobar" </div>', 'should replace " with " in the string');
60
- assertCreateSlateMarkup('<div> /foobar </div>', '<div> /foobar </div>', 'should replace / with / in the string');
61
- });
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWFya3VwVXRpbHMiLCJyZXF1aXJlIiwiZGVzY3JpYmUiLCJhc3NlcnRQcm9jZXNzTWFya3VwIiwibWFya3VwIiwiZXhwZWN0ZWQiLCJzaG91bGQiLCJpdCIsImV4cGVjdCIsInByb2Nlc3NNYXJrdXAiLCJ0b0VxdWFsIiwidW5kZWZpbmVkIiwiY2hvaWNlcyIsImxhYmVsIiwidmFsdWUiLCJhc3NlcnRDcmVhdGVTbGF0ZU1hcmt1cCIsImNyZWF0ZVNsYXRlTWFya3VwIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91dGlscy50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb2Nlc3NNYXJrdXAsIGNyZWF0ZVNsYXRlTWFya3VwIH0gZnJvbSAnLi4vbWFya3VwVXRpbHMnO1xuXG5kZXNjcmliZSgncHJvY2Vzc01hcmt1cCcsICgpID0+IHtcbiAgY29uc3QgYXNzZXJ0UHJvY2Vzc01hcmt1cCA9IChtYXJrdXAsIGV4cGVjdGVkLCBzaG91bGQpID0+IHtcbiAgICBpdChzaG91bGQgfHwgYHJldHVybnMgcHJvY2Vzc2VkIG1hcmt1cDogJHtleHBlY3RlZH1gLCAoKSA9PiB7XG4gICAgICBleHBlY3QocHJvY2Vzc01hcmt1cChtYXJrdXApKS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICB9KTtcbiAgfTtcblxuICBhc3NlcnRQcm9jZXNzTWFya3VwKFxuICAgICc8cD5UaGUgPHNwYW4gZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIiBkYXRhLWluZGV4PVwiMFwiIGRhdGEtdmFsdWU9XCJjb3dcIj48L3NwYW4+IGp1bXBlZCA8c3BhbiBkYXRhLXR5cGU9XCJleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZVwiIGRhdGEtaW5kZXg9XCIxXCIgZGF0YS12YWx1ZT1cIm92ZXJcIj48L3NwYW4+IHRoZSA8c3BhbiBkYXRhLXR5cGU9XCJleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZVwiIGRhdGEtaW5kZXg9XCIyXCIgZGF0YS12YWx1ZT1cIm1vb25cIj48L3NwYW4+PC9wPicsXG4gICAgJzxwPlRoZSB7ezB9fSBqdW1wZWQge3sxfX0gdGhlIHt7Mn19PC9wPicsXG4gICk7XG5cbiAgYXNzZXJ0UHJvY2Vzc01hcmt1cChcbiAgICAnPHA+VGhpcyBpcyBhIDxzcGFuIGRhdGEtdHlwZT1cImV4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLXZhbHVlPVwidGVzdFwiPjwvc3Bhbj4uPC9wPicsXG4gICAgJzxwPlRoaXMgaXMgYSB7ezB9fS48L3A+JyxcbiAgKTtcblxuICBhc3NlcnRQcm9jZXNzTWFya3VwKCc8cD5UaGlzIGlzIGFub3RoZXIgdGVzdC48L3A+JywgJzxwPlRoaXMgaXMgYW5vdGhlciB0ZXN0LjwvcD4nKTtcblxuICBhc3NlcnRQcm9jZXNzTWFya3VwKCcnLCAnJyk7XG5cbiAgYXNzZXJ0UHJvY2Vzc01hcmt1cCh1bmRlZmluZWQsICcnKTtcblxuICBhc3NlcnRQcm9jZXNzTWFya3VwKG51bGwsICcnKTtcblxuICBhc3NlcnRQcm9jZXNzTWFya3VwKCc8ZGl2PiBcXFxcdGZvb1xcXFxuYmFyIDwvZGl2PicsICc8ZGl2PiBmb29iYXIgPC9kaXY+JywgJ3Nob3VsZCByZW1vdmUgXFx0LCBcXG4gZnJvbSB0aGUgc3RyaW5nJyk7XG5cbiAgYXNzZXJ0UHJvY2Vzc01hcmt1cCgnPGRpdj4gXCJmb29iYXJcIiA8L2Rpdj4nLCAnPGRpdj4gXCJmb29iYXJcIiA8L2Rpdj4nLCAnc2hvdWxkIHJlcGxhY2UgXCIgd2l0aCBcIiBpbiB0aGUgc3RyaW5nJyk7XG5cbiAgYXNzZXJ0UHJvY2Vzc01hcmt1cCgnPGRpdj4gL2Zvb2JhciA8L2Rpdj4nLCAnPGRpdj4gL2Zvb2JhciA8L2Rpdj4nLCAnc2hvdWxkIHJlcGxhY2UgLyB3aXRoIC8gaW4gdGhlIHN0cmluZycpO1xufSk7XG5cbmRlc2NyaWJlKCdjcmVhdGVTbGF0ZU1hcmt1cCcsICgpID0+IHtcbiAgY29uc3QgY2hvaWNlcyA9IHtcbiAgICAwOiBbXG4gICAgICB7IGxhYmVsOiAnY293JywgdmFsdWU6ICcwJyB9LFxuICAgICAgeyBsYWJlbDogJ2NhdHRsZScsIHZhbHVlOiAnMScgfSxcbiAgICAgIHsgbGFiZWw6ICdjYWxmJywgdmFsdWU6ICcyJyB9LFxuICAgIF0sXG4gICAgMTogW1xuICAgICAgeyBsYWJlbDogJ292ZXInLCB2YWx1ZTogJzAnIH0sXG4gICAgICB7IGxhYmVsOiAncGFzdCcsIHZhbHVlOiAnMScgfSxcbiAgICAgIHsgbGFiZWw6ICdiZXlvbmQnLCB2YWx1ZTogJzInIH0sXG4gICAgXSxcbiAgICAyOiBbeyBsYWJlbDogJ21vb24nLCB2YWx1ZTogJzAnIH1dLFxuICB9O1xuXG4gIGNvbnN0IGFzc2VydENyZWF0ZVNsYXRlTWFya3VwID0gKG1hcmt1cCwgZXhwZWN0ZWQsIHNob3VsZCkgPT4ge1xuICAgIGl0KHNob3VsZCB8fCBgcmV0dXJucyBzbGF0ZSBtYXJrdXA6ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgZXhwZWN0KGNyZWF0ZVNsYXRlTWFya3VwKG1hcmt1cCwgY2hvaWNlcykpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydENyZWF0ZVNsYXRlTWFya3VwKFxuICAgICc8cD5UaGUge3swfX0ganVtcGVkIHt7MX19IHRoZSB7ezJ9fTwvcD4nLFxuICAgICc8cD5UaGUgPHNwYW4gZGF0YS10eXBlPVwiZXhwbGljaXRfY29uc3RydWN0ZWRfcmVzcG9uc2VcIiBkYXRhLWluZGV4PVwiMFwiIGRhdGEtdmFsdWU9XCJjb3dcIj48L3NwYW4+IGp1bXBlZCA8c3BhbiBkYXRhLXR5cGU9XCJleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZVwiIGRhdGEtaW5kZXg9XCIxXCIgZGF0YS12YWx1ZT1cIm92ZXJcIj48L3NwYW4+IHRoZSA8c3BhbiBkYXRhLXR5cGU9XCJleHBsaWNpdF9jb25zdHJ1Y3RlZF9yZXNwb25zZVwiIGRhdGEtaW5kZXg9XCIyXCIgZGF0YS12YWx1ZT1cIm1vb25cIj48L3NwYW4+PC9wPicsXG4gICk7XG5cbiAgYXNzZXJ0Q3JlYXRlU2xhdGVNYXJrdXAoXG4gICAgJzxwPlRoaXMgaXMgYSB7ezB9fS48L3A+JyxcbiAgICAnPHA+VGhpcyBpcyBhIDxzcGFuIGRhdGEtdHlwZT1cImV4cGxpY2l0X2NvbnN0cnVjdGVkX3Jlc3BvbnNlXCIgZGF0YS1pbmRleD1cIjBcIiBkYXRhLXZhbHVlPVwiY293XCI+PC9zcGFuPi48L3A+JyxcbiAgKTtcblxuICBhc3NlcnRDcmVhdGVTbGF0ZU1hcmt1cCgnPHA+VGhpcyBpcyBhbm90aGVyIHRlc3QuPC9wPicsICc8cD5UaGlzIGlzIGFub3RoZXIgdGVzdC48L3A+Jyk7XG5cbiAgYXNzZXJ0Q3JlYXRlU2xhdGVNYXJrdXAoJycsICcnKTtcblxuICBhc3NlcnRDcmVhdGVTbGF0ZU1hcmt1cCh1bmRlZmluZWQsICcnKTtcblxuICBhc3NlcnRDcmVhdGVTbGF0ZU1hcmt1cChudWxsLCAnJyk7XG5cbiAgYXNzZXJ0Q3JlYXRlU2xhdGVNYXJrdXAoJzxkaXY+IFxcXFx0Zm9vXFxcXG5iYXIgPC9kaXY+JywgJzxkaXY+IGZvb2JhciA8L2Rpdj4nLCAnc2hvdWxkIHJlbW92ZSBcXHQsIFxcbiBmcm9tIHRoZSBzdHJpbmcnKTtcblxuICBhc3NlcnRDcmVhdGVTbGF0ZU1hcmt1cCgnPGRpdj4gXCJmb29iYXJcIiA8L2Rpdj4nLCAnPGRpdj4gXCJmb29iYXJcIiA8L2Rpdj4nLCAnc2hvdWxkIHJlcGxhY2UgXCIgd2l0aCBcIiBpbiB0aGUgc3RyaW5nJyk7XG5cbiAgYXNzZXJ0Q3JlYXRlU2xhdGVNYXJrdXAoJzxkaXY+IC9mb29iYXIgPC9kaXY+JywgJzxkaXY+IC9mb29iYXIgPC9kaXY+JywgJ3Nob3VsZCByZXBsYWNlIC8gd2l0aCAvIGluIHRoZSBzdHJpbmcnKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUVBQyxRQUFRLENBQUMsZUFBZSxFQUFFLE1B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
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- var _index = require("../index");
4
- const choice = (l, v) => ({
5
- label: l,
6
- value: v
7
- });
8
- const d = {
9
- prompt: '',
10
- teacherInstructions: true,
11
- studentInstructions: false,
12
- choices: {
13
- 0: [choice('A', '0'), choice('B', '1')]
14
- },
15
- markup: '<p>\n <strong>Esta cuadrícula de coordenadas representa el diseño del salón de matemáticas de Valerie. Cada unidad en la cuadricula representa 1 pie cuadrado.&nbsp;</strong>\n</p>\n<p>\n <strong>* El escritorio de Valeria se encuentra en (-3,-4)</strong>\n</p>\n<p>\n <strong>* El escritorio de la maestra se encuentra en (5,-4)</strong>\n</p>\n<p>\n <strong>* El cuarto de materiales se encuentra&nbsp; en (-3,-7)</strong>\n</p>\n<p>\n <strong><img src="https://storage.googleapis.com/pie-staging-221718-assets/image/180d28b2-0376-428e-b415-de96e158b7e7" alt=""></strong>\n</p>\n<p>\n &nbsp;\n</p>\n<p>\n <strong>Anota la distancia, en pies, desde el escritorio de Valerie al cuarto de materiales.</strong>\n</p>\n<p>\n {{0}} <strong>pies</strong>\n</p>',
16
- id: '2422330',
17
- rubric: '',
18
- element: 'explicit-constructed-response-element',
19
- autoScoring: 'partial',
20
- rationale: ''
21
- };
22
- describe('edge cases', () => {
23
- it('does not throw an error if the session has no value', async () => {
24
- const result = (0, _index.model)(d, {}, {
25
- mode: 'evaluate'
26
- });
27
- expect(result).toBeDefined();
28
- });
29
- });
30
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW5kZXgiLCJyZXF1aXJlIiwiY2hvaWNlIiwibCIsInYiLCJsYWJlbCIsInZhbHVlIiwiZCIsInByb21wdCIsInRlYWNoZXJJbnN0cnVjdGlvbnMiLCJzdHVkZW50SW5zdHJ1Y3Rpb25zIiwiY2hvaWNlcyIsIm1hcmt1cCIsImlkIiwicnVicmljIiwiZWxlbWVudCIsImF1dG9TY29yaW5nIiwicmF0aW9uYWxlIiwiZGVzY3JpYmUiLCJpdCIsInJlc3VsdCIsIm1vZGVsIiwibW9kZSIsImV4cGVjdCIsInRvQmVEZWZpbmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9pbmRleC5zcGVjLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vZGVsIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5jb25zdCBjaG9pY2UgPSAobCwgdikgPT4gKHsgbGFiZWw6IGwsIHZhbHVlOiB2IH0pO1xuXG5jb25zdCBkID0ge1xuICBwcm9tcHQ6ICcnLFxuICB0ZWFjaGVySW5zdHJ1Y3Rpb25zOiB0cnVlLFxuICBzdHVkZW50SW5zdHJ1Y3Rpb25zOiBmYWxzZSxcbiAgY2hvaWNlczoge1xuICAgIDA6IFtjaG9pY2UoJ0EnLCAnMCcpLCBjaG9pY2UoJ0InLCAnMScpXSxcbiAgfSxcbiAgbWFya3VwOlxuICAgICc8cD5cXG4gIDxzdHJvbmc+RXN0YSBjdWFkcsOtY3VsYSBkZSBjb29yZGVuYWRhcyByZXByZXNlbnRhIGVsIGRpc2XDsW8gZGVsIHNhbMOzbiBkZSBtYXRlbcOhdGljYXMgZGUgVmFsZXJpZS4gQ2FkYSB1bmlkYWQgZW4gbGEgY3VhZHJpY3VsYSByZXByZXNlbnRhIDEgcGllIGN1YWRyYWRvLiZuYnNwOzwvc3Ryb25nPlxcbjwvcD5cXG48cD5cXG4gIDxzdHJvbmc+KiBFbCBlc2NyaXRvcmlvIGRlIFZhbGVyaWEgc2UgZW5jdWVudHJhIGVuICgtMywtNCk8L3N0cm9uZz5cXG48L3A+XFxuPHA+XFxuICA8c3Ryb25nPiogRWwgZXNjcml0b3JpbyBkZSBsYSBtYWVzdHJhIHNlIGVuY3VlbnRyYSBlbiAoNSwtNCk8L3N0cm9uZz5cXG48L3A+XFxuPHA+XFxuICA8c3Ryb25nPiogRWwgY3VhcnRvIGRlIG1hdGVyaWFsZXMgc2UgZW5jdWVudHJhJm5ic3A7IGVuICgtMywtNyk8L3N0cm9uZz5cXG48L3A+XFxuPHA+XFxuICA8c3Ryb25nPjxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3BpZS1zdGFnaW5nLTIyMTcxOC1hc3NldHMvaW1hZ2UvMTgwZDI4YjItMDM3Ni00MjhlLWI0MTUtZGU5NmUxNThiN2U3XCIgYWx0PVwiXCI+PC9zdHJvbmc+XFxuPC9wPlxcbjxwPlxcbiAgJm5ic3A7XFxuPC9wPlxcbjxwPlxcbiAgPHN0cm9uZz5Bbm90YSBsYSBkaXN0YW5jaWEsIGVuIHBpZXMsIGRlc2RlIGVsIGVzY3JpdG9yaW8gZGUgVmFsZXJpZSBhbCBjdWFydG8gZGUgbWF0ZXJpYWxlcy48L3N0cm9uZz5cXG48L3A+XFxuPHA+XFxuICB7ezB9fSA8c3Ryb25nPnBpZXM8L3N0cm9uZz5cXG48L3A+JyxcbiAgaWQ6ICcyNDIyMzMwJyxcbiAgcnVicmljOiAnJyxcbiAgZWxlbWVudDogJ2V4cGxpY2l0LWNvbnN0cnVjdGVkLXJlc3BvbnNlLWVsZW1lbnQnLFxuICBhdXRvU2NvcmluZzogJ3BhcnRpYWwnLFxuICByYXRpb25hbGU6ICcnLFxufTtcblxuZGVzY3JpYmUoJ2VkZ2UgY2FzZXMnLCAoKSA9PiB7XG4gIGl0KCdkb2VzIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiBoYXMgbm8gdmFsdWUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbW9kZWwoZCwge30sIHsgbW9kZTogJ2V2YWx1YXRlJyB9KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLE1BQU0sR0FBR0EsQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLE1BQU07RUFBRUMsS0FBSyxFQUFFRixDQUFDO0VBQUVHLEtBQUssRUFBRUY7QUFBRSxDQUFDLENBQUM7QUFFakQsTUFBTUcsQ0FBQyxHQUFHO0VBQ1JDLE1BQU0sRUFBRSxFQUFFO0VBQ1ZDLG1CQUFtQixFQUFFLElBQUk7RUFDekJDLG1CQUFtQixFQUFFLEtBQUs7RUFDMUJDLE9BQU8sRUFBRTtJQUNQLENBQUMsRUFBRSxDQUFDVCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFQSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztFQUN4QyxDQUFDO0VBQ0RVLE1BQU0sRUFDSiw0dkJBQTR2QjtFQUM5dkJDLEVBQUUsRUFBRSxTQUFTO0VBQ2JDLE1BQU0sRUFBRSxFQUFFO0VBQ1ZDLE9BQU8sRUFBRSx1Q0FBdUM7RUFDaERDLFdBQVcsRUFBRSxTQUFTO0VBQ3RCQyxTQUFTLEVBQUU7QUFDYixDQUFDO0FBRURDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTTtFQUMzQkMsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLFlBQVk7SUFDcEUsTUFBTUMsTUFBTSxHQUFHLElBQUFDLFlBQUssRUFBQ2QsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO01BQUVlLElBQUksRUFBRTtJQUFXLENBQUMsQ0FBQztJQUNqREMsTUFBTSxDQUFDSCxNQUFNLENBQUMsQ0FBQ0ksV0FBVyxDQUFDLENBQUM7RUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119