@pie-lib/graphing-solution-set 3.2.0-next.0 → 3.2.0-next.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.
Files changed (74) hide show
  1. package/lib/__tests__/bg.test.js +282 -0
  2. package/lib/__tests__/coordinates-label.test.js +276 -0
  3. package/lib/__tests__/graph-with-controls.test.js +256 -0
  4. package/lib/__tests__/graph.test.js +113 -0
  5. package/lib/__tests__/grid-setup.test.js +729 -0
  6. package/lib/__tests__/grid.test.js +29 -0
  7. package/lib/__tests__/labels.test.js +45 -0
  8. package/lib/__tests__/mark-label.test.js +133 -0
  9. package/lib/__tests__/toggle-bar.test.js +146 -0
  10. package/lib/__tests__/tool-menu.test.js +540 -0
  11. package/lib/__tests__/undo-redo.test.js +31 -0
  12. package/lib/__tests__/use-debounce.test.js +24 -0
  13. package/lib/__tests__/utils.js +70 -0
  14. package/lib/__tests__/utils.test.js +123 -0
  15. package/lib/axis/__tests__/arrow.test.js +60 -0
  16. package/lib/axis/__tests__/axes.test.js +160 -0
  17. package/lib/axis/arrow.js +1 -1
  18. package/lib/axis/axes.js +1 -1
  19. package/lib/axis/index.js +1 -1
  20. package/lib/bg.js +1 -1
  21. package/lib/container/__tests__/actions.test.js +108 -0
  22. package/lib/container/__tests__/index.test.js +346 -0
  23. package/lib/container/__tests__/marks.test.js +259 -0
  24. package/lib/container/__tests__/middleware.test.js +244 -0
  25. package/lib/container/__tests__/reducer.test.js +450 -0
  26. package/lib/container/actions.js +1 -1
  27. package/lib/container/index.js +1 -1
  28. package/lib/container/marks.js +1 -1
  29. package/lib/container/middleware.js +1 -1
  30. package/lib/container/reducer.js +1 -1
  31. package/lib/coordinates-label.js +1 -1
  32. package/lib/graph-with-controls.js +1 -1
  33. package/lib/graph.js +1 -1
  34. package/lib/grid-setup.js +1 -1
  35. package/lib/grid.js +1 -1
  36. package/lib/index.js +1 -1
  37. package/lib/labels.js +1 -1
  38. package/lib/mark-label.js +1 -1
  39. package/lib/toggle-bar.js +1 -1
  40. package/lib/tool-menu.js +1 -1
  41. package/lib/tools/index.js +1 -1
  42. package/lib/tools/line/__tests__/component.test.js +45 -0
  43. package/lib/tools/line/component.js +1 -1
  44. package/lib/tools/line/index.js +1 -1
  45. package/lib/tools/polygon/__tests__/component.test.js +501 -0
  46. package/lib/tools/polygon/__tests__/index.test.js +92 -0
  47. package/lib/tools/polygon/__tests__/line.test.js +30 -0
  48. package/lib/tools/polygon/__tests__/polygon.test.js +61 -0
  49. package/lib/tools/polygon/component.js +1 -1
  50. package/lib/tools/polygon/index.js +1 -1
  51. package/lib/tools/polygon/line.js +1 -1
  52. package/lib/tools/polygon/polygon.js +1 -1
  53. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  54. package/lib/tools/shared/arrow-head.js +1 -1
  55. package/lib/tools/shared/line/__tests__/index.test.js +725 -0
  56. package/lib/tools/shared/line/__tests__/line-path.test.js +64 -0
  57. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +618 -0
  58. package/lib/tools/shared/line/index.js +1 -1
  59. package/lib/tools/shared/line/line-path.js +1 -1
  60. package/lib/tools/shared/line/with-root-edge.js +1 -1
  61. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  62. package/lib/tools/shared/point/__tests__/arrow.test.js +619 -0
  63. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  64. package/lib/tools/shared/point/arrow-point.js +1 -1
  65. package/lib/tools/shared/point/arrow.js +1 -1
  66. package/lib/tools/shared/point/base-point.js +1 -1
  67. package/lib/tools/shared/point/index.js +1 -1
  68. package/lib/tools/shared/styles.js +1 -1
  69. package/lib/tools/shared/types.js +1 -1
  70. package/lib/undo-redo.js +1 -1
  71. package/lib/use-debounce.js +1 -1
  72. package/lib/utils.js +1 -1
  73. package/package.json +10 -13
  74. package/LICENSE.md +0 -5
@@ -0,0 +1,450 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
+ var _reducer = _interopRequireDefault(require("../reducer"));
6
+ var _actions = require("../actions");
7
+ describe('container reducer', function () {
8
+ describe('reducer creation', function () {
9
+ it('creates a reducer function', function () {
10
+ var rootReducer = (0, _reducer["default"])();
11
+ expect((0, _typeof2["default"])(rootReducer)).toBe('function');
12
+ });
13
+ it('returns an object with marks property', function () {
14
+ var rootReducer = (0, _reducer["default"])();
15
+ var state = rootReducer(undefined, {
16
+ type: 'INIT'
17
+ });
18
+ expect(state).toHaveProperty('marks');
19
+ });
20
+ it('wraps marks reducer with undoable', function () {
21
+ var rootReducer = (0, _reducer["default"])();
22
+ var state = rootReducer(undefined, {
23
+ type: 'INIT'
24
+ });
25
+ expect(state.marks).toHaveProperty('past');
26
+ expect(state.marks).toHaveProperty('present');
27
+ expect(state.marks).toHaveProperty('future');
28
+ });
29
+ });
30
+ describe('initial state', function () {
31
+ it('initializes with empty past', function () {
32
+ var rootReducer = (0, _reducer["default"])();
33
+ var state = rootReducer(undefined, {
34
+ type: 'INIT'
35
+ });
36
+ expect(state.marks.past).toEqual([]);
37
+ });
38
+ it('initializes with empty present', function () {
39
+ var rootReducer = (0, _reducer["default"])();
40
+ var state = rootReducer(undefined, {
41
+ type: 'INIT'
42
+ });
43
+ expect(state.marks.present).toEqual([]);
44
+ });
45
+ it('initializes with empty future', function () {
46
+ var rootReducer = (0, _reducer["default"])();
47
+ var state = rootReducer(undefined, {
48
+ type: 'INIT'
49
+ });
50
+ expect(state.marks.future).toEqual([]);
51
+ });
52
+ });
53
+ describe('CHANGE_MARKS action', function () {
54
+ it('updates present with new marks', function () {
55
+ var rootReducer = (0, _reducer["default"])();
56
+ var newMarks = [{
57
+ id: 1,
58
+ type: 'point',
59
+ x: 5,
60
+ y: 10
61
+ }];
62
+ var action = (0, _actions.changeMarks)(newMarks);
63
+ var state = rootReducer(undefined, {
64
+ type: '@@INIT'
65
+ });
66
+ state = rootReducer(state, action);
67
+ expect(state.marks.present).toEqual(newMarks);
68
+ });
69
+ it('adds previous state to past', function () {
70
+ var rootReducer = (0, _reducer["default"])();
71
+ var firstMarks = [{
72
+ id: 1,
73
+ type: 'point'
74
+ }];
75
+ var secondMarks = [{
76
+ id: 2,
77
+ type: 'line'
78
+ }];
79
+ var state = rootReducer(undefined, {
80
+ type: '@@INIT'
81
+ });
82
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
83
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
84
+ expect(state.marks.past.length).toBeGreaterThan(0);
85
+ expect(state.marks.present).toEqual(secondMarks);
86
+ });
87
+ it('clears future on new action', function () {
88
+ var rootReducer = (0, _reducer["default"])();
89
+ var firstMarks = [{
90
+ id: 1,
91
+ type: 'point'
92
+ }];
93
+ var secondMarks = [{
94
+ id: 2,
95
+ type: 'line'
96
+ }];
97
+ var thirdMarks = [{
98
+ id: 3,
99
+ type: 'circle'
100
+ }];
101
+ var state = rootReducer(undefined, {
102
+ type: '@@INIT'
103
+ });
104
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
105
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
106
+ state = rootReducer(state, {
107
+ type: '@@redux-undo/UNDO'
108
+ });
109
+ expect(state.marks.future.length).toBeGreaterThan(0);
110
+ state = rootReducer(state, (0, _actions.changeMarks)(thirdMarks));
111
+ expect(state.marks.future).toEqual([]);
112
+ });
113
+ it('handles empty marks array', function () {
114
+ var rootReducer = (0, _reducer["default"])();
115
+ var action = (0, _actions.changeMarks)([]);
116
+ var state = rootReducer(undefined, {
117
+ type: '@@INIT'
118
+ });
119
+ state = rootReducer(state, action);
120
+ expect(state.marks.present).toEqual([]);
121
+ });
122
+ it('handles multiple marks', function () {
123
+ var rootReducer = (0, _reducer["default"])();
124
+ var marks = [{
125
+ id: 1,
126
+ type: 'point',
127
+ x: 1,
128
+ y: 2
129
+ }, {
130
+ id: 2,
131
+ type: 'line',
132
+ from: {
133
+ x: 0,
134
+ y: 0
135
+ },
136
+ to: {
137
+ x: 5,
138
+ y: 5
139
+ }
140
+ }, {
141
+ id: 3,
142
+ type: 'circle',
143
+ center: {
144
+ x: 3,
145
+ y: 3
146
+ },
147
+ radius: 2
148
+ }];
149
+ var action = (0, _actions.changeMarks)(marks);
150
+ var state = rootReducer(undefined, {
151
+ type: '@@INIT'
152
+ });
153
+ state = rootReducer(state, action);
154
+ expect(state.marks.present).toEqual(marks);
155
+ expect(state.marks.present.length).toBe(3);
156
+ });
157
+ });
158
+ describe('undo functionality', function () {
159
+ it('supports undo action', function () {
160
+ var rootReducer = (0, _reducer["default"])();
161
+ var firstMarks = [{
162
+ id: 1,
163
+ type: 'point'
164
+ }];
165
+ var secondMarks = [{
166
+ id: 2,
167
+ type: 'line'
168
+ }];
169
+ var state = rootReducer(undefined, {
170
+ type: '@@INIT'
171
+ });
172
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
173
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
174
+ state = rootReducer(state, {
175
+ type: '@@redux-undo/UNDO'
176
+ });
177
+ expect(state.marks.present).toEqual(firstMarks);
178
+ });
179
+ it('moves present to future on undo', function () {
180
+ var rootReducer = (0, _reducer["default"])();
181
+ var firstMarks = [{
182
+ id: 1,
183
+ type: 'point'
184
+ }];
185
+ var secondMarks = [{
186
+ id: 2,
187
+ type: 'line'
188
+ }];
189
+ var state = rootReducer(undefined, {
190
+ type: '@@INIT'
191
+ });
192
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
193
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
194
+ state = rootReducer(state, {
195
+ type: '@@redux-undo/UNDO'
196
+ });
197
+ expect(state.marks.future.length).toBeGreaterThan(0);
198
+ });
199
+ it('handles multiple undos', function () {
200
+ var rootReducer = (0, _reducer["default"])();
201
+ var marks1 = [{
202
+ id: 1
203
+ }];
204
+ var marks2 = [{
205
+ id: 2
206
+ }];
207
+ var marks3 = [{
208
+ id: 3
209
+ }];
210
+ var state = rootReducer(undefined, {
211
+ type: '@@INIT'
212
+ });
213
+ state = rootReducer(state, (0, _actions.changeMarks)(marks1));
214
+ state = rootReducer(state, (0, _actions.changeMarks)(marks2));
215
+ state = rootReducer(state, (0, _actions.changeMarks)(marks3));
216
+ state = rootReducer(state, {
217
+ type: '@@redux-undo/UNDO'
218
+ });
219
+ state = rootReducer(state, {
220
+ type: '@@redux-undo/UNDO'
221
+ });
222
+ expect(state.marks.present).toEqual(marks1);
223
+ });
224
+ it('does not undo beyond initial state', function () {
225
+ var rootReducer = (0, _reducer["default"])();
226
+ var marks = [{
227
+ id: 1,
228
+ type: 'point'
229
+ }];
230
+ var state = rootReducer(undefined, {
231
+ type: '@@INIT'
232
+ });
233
+ state = rootReducer(state, (0, _actions.changeMarks)(marks));
234
+ state = rootReducer(state, {
235
+ type: '@@redux-undo/UNDO'
236
+ });
237
+ state = rootReducer(state, {
238
+ type: '@@redux-undo/UNDO'
239
+ });
240
+ state = rootReducer(state, {
241
+ type: '@@redux-undo/UNDO'
242
+ });
243
+ expect(state.marks.present).toEqual([]);
244
+ expect(state.marks.past).toEqual([]);
245
+ });
246
+ });
247
+ describe('redo functionality', function () {
248
+ it('supports redo action', function () {
249
+ var rootReducer = (0, _reducer["default"])();
250
+ var firstMarks = [{
251
+ id: 1,
252
+ type: 'point'
253
+ }];
254
+ var secondMarks = [{
255
+ id: 2,
256
+ type: 'line'
257
+ }];
258
+ var state = rootReducer(undefined, {
259
+ type: '@@INIT'
260
+ });
261
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
262
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
263
+ state = rootReducer(state, {
264
+ type: '@@redux-undo/UNDO'
265
+ });
266
+
267
+ // Redo
268
+ state = rootReducer(state, {
269
+ type: '@@redux-undo/REDO'
270
+ });
271
+ expect(state.marks.present).toEqual(secondMarks);
272
+ });
273
+ it('moves future to past on redo', function () {
274
+ var rootReducer = (0, _reducer["default"])();
275
+ var firstMarks = [{
276
+ id: 1,
277
+ type: 'point'
278
+ }];
279
+ var secondMarks = [{
280
+ id: 2,
281
+ type: 'line'
282
+ }];
283
+ var state = rootReducer(undefined, {
284
+ type: '@@INIT'
285
+ });
286
+ state = rootReducer(state, (0, _actions.changeMarks)(firstMarks));
287
+ state = rootReducer(state, (0, _actions.changeMarks)(secondMarks));
288
+ state = rootReducer(state, {
289
+ type: '@@redux-undo/UNDO'
290
+ });
291
+ var futureBeforeRedo = state.marks.future.length;
292
+ state = rootReducer(state, {
293
+ type: '@@redux-undo/REDO'
294
+ });
295
+ expect(state.marks.future.length).toBe(futureBeforeRedo - 1);
296
+ });
297
+ it('handles multiple redos', function () {
298
+ var rootReducer = (0, _reducer["default"])();
299
+ var marks1 = [{
300
+ id: 1
301
+ }];
302
+ var marks2 = [{
303
+ id: 2
304
+ }];
305
+ var marks3 = [{
306
+ id: 3
307
+ }];
308
+ var state = rootReducer(undefined, {
309
+ type: '@@INIT'
310
+ });
311
+ state = rootReducer(state, (0, _actions.changeMarks)(marks1));
312
+ state = rootReducer(state, (0, _actions.changeMarks)(marks2));
313
+ state = rootReducer(state, (0, _actions.changeMarks)(marks3));
314
+
315
+ // undo twice, then redo twice
316
+ state = rootReducer(state, {
317
+ type: '@@redux-undo/UNDO'
318
+ });
319
+ state = rootReducer(state, {
320
+ type: '@@redux-undo/UNDO'
321
+ });
322
+ state = rootReducer(state, {
323
+ type: '@@redux-undo/REDO'
324
+ });
325
+ state = rootReducer(state, {
326
+ type: '@@redux-undo/REDO'
327
+ });
328
+ expect(state.marks.present).toEqual(marks3);
329
+ });
330
+ it('does not redo beyond last state', function () {
331
+ var rootReducer = (0, _reducer["default"])();
332
+ var marks = [{
333
+ id: 1,
334
+ type: 'point'
335
+ }];
336
+ var state = rootReducer(undefined, {
337
+ type: '@@INIT'
338
+ });
339
+ state = rootReducer(state, (0, _actions.changeMarks)(marks));
340
+ state = rootReducer(state, {
341
+ type: '@@redux-undo/UNDO'
342
+ });
343
+ state = rootReducer(state, {
344
+ type: '@@redux-undo/REDO'
345
+ });
346
+
347
+ // try to redo beyond the end
348
+ state = rootReducer(state, {
349
+ type: '@@redux-undo/REDO'
350
+ });
351
+ state = rootReducer(state, {
352
+ type: '@@redux-undo/REDO'
353
+ });
354
+ expect(state.marks.present).toEqual(marks);
355
+ expect(state.marks.future).toEqual([]);
356
+ });
357
+ });
358
+ describe('state structure', function () {
359
+ it('maintains correct undoable structure', function () {
360
+ var rootReducer = (0, _reducer["default"])();
361
+ var state = rootReducer(undefined, {
362
+ type: 'INIT'
363
+ });
364
+ expect(state.marks).toHaveProperty('past');
365
+ expect(state.marks).toHaveProperty('present');
366
+ expect(state.marks).toHaveProperty('future');
367
+ expect(Array.isArray(state.marks.past)).toBe(true);
368
+ expect(Array.isArray(state.marks.future)).toBe(true);
369
+ });
370
+ it('preserves mark properties through undo/redo', function () {
371
+ var rootReducer = (0, _reducer["default"])();
372
+ var marks = [{
373
+ id: 1,
374
+ type: 'point',
375
+ x: 10,
376
+ y: 20,
377
+ label: 'A',
378
+ correctness: {
379
+ value: 'correct'
380
+ }
381
+ }];
382
+ var state = rootReducer(undefined, {
383
+ type: 'INIT'
384
+ });
385
+ state = rootReducer(state, (0, _actions.changeMarks)(marks));
386
+ state = rootReducer(state, (0, _actions.changeMarks)([]));
387
+ state = rootReducer(state, {
388
+ type: '@@redux-undo/UNDO'
389
+ });
390
+ expect(state.marks.present).toEqual(marks);
391
+ expect(state.marks.present[0]).toBeDefined();
392
+ if (state.marks.present[0]) {
393
+ expect(state.marks.present[0]).toEqual(marks[0]);
394
+ expect(state.marks.present[0].correctness).toBeDefined();
395
+ }
396
+ });
397
+ });
398
+ describe('integration', function () {
399
+ it('handles complex undo/redo sequences', function () {
400
+ var rootReducer = (0, _reducer["default"])();
401
+ var marks1 = [{
402
+ id: 1
403
+ }];
404
+ var marks2 = [{
405
+ id: 2
406
+ }];
407
+ var marks3 = [{
408
+ id: 3
409
+ }];
410
+ var marks4 = [{
411
+ id: 4
412
+ }];
413
+ var state = rootReducer(undefined, {
414
+ type: '@@INIT'
415
+ });
416
+ state = rootReducer(state, (0, _actions.changeMarks)(marks1));
417
+ state = rootReducer(state, (0, _actions.changeMarks)(marks2));
418
+ state = rootReducer(state, (0, _actions.changeMarks)(marks3));
419
+ state = rootReducer(state, {
420
+ type: '@@redux-undo/UNDO'
421
+ }); // back to marks2
422
+ state = rootReducer(state, {
423
+ type: '@@redux-undo/UNDO'
424
+ }); // back to marks1
425
+ state = rootReducer(state, {
426
+ type: '@@redux-undo/REDO'
427
+ }); // forward to marks2
428
+ state = rootReducer(state, (0, _actions.changeMarks)(marks4));
429
+ expect(state.marks.present).toEqual(marks4);
430
+ expect(state.marks.future).toEqual([]);
431
+ });
432
+ it('works with empty state transitions', function () {
433
+ var rootReducer = (0, _reducer["default"])();
434
+ var marks = [{
435
+ id: 1
436
+ }];
437
+ var state = rootReducer(undefined, {
438
+ type: '@@INIT'
439
+ });
440
+ state = rootReducer(state, (0, _actions.changeMarks)([]));
441
+ state = rootReducer(state, (0, _actions.changeMarks)(marks));
442
+ state = rootReducer(state, (0, _actions.changeMarks)([]));
443
+ state = rootReducer(state, {
444
+ type: '@@redux-undo/UNDO'
445
+ });
446
+ expect(state.marks.present).toEqual(marks);
447
+ });
448
+ });
449
+ });
450
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdWNlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJkZXNjcmliZSIsIml0Iiwicm9vdFJlZHVjZXIiLCJyZWR1Y2VyIiwiZXhwZWN0IiwiX3R5cGVvZjIiLCJ0b0JlIiwic3RhdGUiLCJ1bmRlZmluZWQiLCJ0eXBlIiwidG9IYXZlUHJvcGVydHkiLCJtYXJrcyIsInBhc3QiLCJ0b0VxdWFsIiwicHJlc2VudCIsImZ1dHVyZSIsIm5ld01hcmtzIiwiaWQiLCJ4IiwieSIsImFjdGlvbiIsImNoYW5nZU1hcmtzIiwiZmlyc3RNYXJrcyIsInNlY29uZE1hcmtzIiwibGVuZ3RoIiwidG9CZUdyZWF0ZXJUaGFuIiwidGhpcmRNYXJrcyIsImZyb20iLCJ0byIsImNlbnRlciIsInJhZGl1cyIsIm1hcmtzMSIsIm1hcmtzMiIsIm1hcmtzMyIsImZ1dHVyZUJlZm9yZVJlZG8iLCJBcnJheSIsImlzQXJyYXkiLCJsYWJlbCIsImNvcnJlY3RuZXNzIiwidmFsdWUiLCJ0b0JlRGVmaW5lZCIsIm1hcmtzNCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250YWluZXIvX190ZXN0c19fL3JlZHVjZXIudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVkdWNlciBmcm9tICcuLi9yZWR1Y2VyJztcbmltcG9ydCB7IGNoYW5nZU1hcmtzIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5cbmRlc2NyaWJlKCdjb250YWluZXIgcmVkdWNlcicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3JlZHVjZXIgY3JlYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2NyZWF0ZXMgYSByZWR1Y2VyIGZ1bmN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBleHBlY3QodHlwZW9mIHJvb3RSZWR1Y2VyKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgYW4gb2JqZWN0IHdpdGggbWFya3MgcHJvcGVydHknLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdJTklUJyB9KTtcbiAgICAgIGV4cGVjdChzdGF0ZSkudG9IYXZlUHJvcGVydHkoJ21hcmtzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnd3JhcHMgbWFya3MgcmVkdWNlciB3aXRoIHVuZG9hYmxlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnSU5JVCcgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcykudG9IYXZlUHJvcGVydHkoJ3Bhc3QnKTtcbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcykudG9IYXZlUHJvcGVydHkoJ3ByZXNlbnQnKTtcbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcykudG9IYXZlUHJvcGVydHkoJ2Z1dHVyZScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaW5pdGlhbCBzdGF0ZScsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbGl6ZXMgd2l0aCBlbXB0eSBwYXN0JywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnSU5JVCcgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wYXN0KS50b0VxdWFsKFtdKTtcbiAgICB9KTtcblxuICAgIGl0KCdpbml0aWFsaXplcyB3aXRoIGVtcHR5IHByZXNlbnQnLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdJTklUJyB9KTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luaXRpYWxpemVzIHdpdGggZW1wdHkgZnV0dXJlJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnSU5JVCcgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5mdXR1cmUpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQ0hBTkdFX01BUktTIGFjdGlvbicsICgpID0+IHtcbiAgICBpdCgndXBkYXRlcyBwcmVzZW50IHdpdGggbmV3IG1hcmtzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBuZXdNYXJrcyA9IFt7IGlkOiAxLCB0eXBlOiAncG9pbnQnLCB4OiA1LCB5OiAxMCB9XTtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IGNoYW5nZU1hcmtzKG5ld01hcmtzKTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwobmV3TWFya3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FkZHMgcHJldmlvdXMgc3RhdGUgdG8gcGFzdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgZmlyc3RNYXJrcyA9IFt7IGlkOiAxLCB0eXBlOiAncG9pbnQnIH1dO1xuICAgICAgY29uc3Qgc2Vjb25kTWFya3MgPSBbeyBpZDogMiwgdHlwZTogJ2xpbmUnIH1dO1xuXG4gICAgICBsZXQgc3RhdGUgPSByb290UmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogJ0BASU5JVCcgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhmaXJzdE1hcmtzKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhzZWNvbmRNYXJrcykpO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucGFzdC5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wcmVzZW50KS50b0VxdWFsKHNlY29uZE1hcmtzKTtcbiAgICB9KTtcblxuICAgIGl0KCdjbGVhcnMgZnV0dXJlIG9uIG5ldyBhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IGZpcnN0TWFya3MgPSBbeyBpZDogMSwgdHlwZTogJ3BvaW50JyB9XTtcbiAgICAgIGNvbnN0IHNlY29uZE1hcmtzID0gW3sgaWQ6IDIsIHR5cGU6ICdsaW5lJyB9XTtcbiAgICAgIGNvbnN0IHRoaXJkTWFya3MgPSBbeyBpZDogMywgdHlwZTogJ2NpcmNsZScgfV07XG5cbiAgICAgIGxldCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnQEBJTklUJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKGZpcnN0TWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKHNlY29uZE1hcmtzKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5mdXR1cmUubGVuZ3RoKS50b0JlR3JlYXRlclRoYW4oMCk7XG5cbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKHRoaXJkTWFya3MpKTtcbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5mdXR1cmUpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgZW1wdHkgbWFya3MgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IGNoYW5nZU1hcmtzKFtdKTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwoW10pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbXVsdGlwbGUgbWFya3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IG1hcmtzID0gW1xuICAgICAgICB7IGlkOiAxLCB0eXBlOiAncG9pbnQnLCB4OiAxLCB5OiAyIH0sXG4gICAgICAgIHsgaWQ6IDIsIHR5cGU6ICdsaW5lJywgZnJvbTogeyB4OiAwLCB5OiAwIH0sIHRvOiB7IHg6IDUsIHk6IDUgfSB9LFxuICAgICAgICB7IGlkOiAzLCB0eXBlOiAnY2lyY2xlJywgY2VudGVyOiB7IHg6IDMsIHk6IDMgfSwgcmFkaXVzOiAyIH0sXG4gICAgICBdO1xuICAgICAgY29uc3QgYWN0aW9uID0gY2hhbmdlTWFya3MobWFya3MpO1xuXG4gICAgICBsZXQgc3RhdGUgPSByb290UmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogJ0BASU5JVCcgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudCkudG9FcXVhbChtYXJrcyk7XG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudC5sZW5ndGgpLnRvQmUoMyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd1bmRvIGZ1bmN0aW9uYWxpdHknLCAoKSA9PiB7XG4gICAgaXQoJ3N1cHBvcnRzIHVuZG8gYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBmaXJzdE1hcmtzID0gW3sgaWQ6IDEsIHR5cGU6ICdwb2ludCcgfV07XG4gICAgICBjb25zdCBzZWNvbmRNYXJrcyA9IFt7IGlkOiAyLCB0eXBlOiAnbGluZScgfV07XG5cbiAgICAgIGxldCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnQEBJTklUJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKGZpcnN0TWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKHNlY29uZE1hcmtzKSk7XG5cbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9VTkRPJyB9KTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwoZmlyc3RNYXJrcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnbW92ZXMgcHJlc2VudCB0byBmdXR1cmUgb24gdW5kbycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgZmlyc3RNYXJrcyA9IFt7IGlkOiAxLCB0eXBlOiAncG9pbnQnIH1dO1xuICAgICAgY29uc3Qgc2Vjb25kTWFya3MgPSBbeyBpZDogMiwgdHlwZTogJ2xpbmUnIH1dO1xuXG4gICAgICBsZXQgc3RhdGUgPSByb290UmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogJ0BASU5JVCcgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhmaXJzdE1hcmtzKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhzZWNvbmRNYXJrcykpO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgeyB0eXBlOiAnQEByZWR1eC11bmRvL1VORE8nIH0pO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MuZnV0dXJlLmxlbmd0aCkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbXVsdGlwbGUgdW5kb3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IG1hcmtzMSA9IFt7IGlkOiAxIH1dO1xuICAgICAgY29uc3QgbWFya3MyID0gW3sgaWQ6IDIgfV07XG4gICAgICBjb25zdCBtYXJrczMgPSBbeyBpZDogMyB9XTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MxKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhtYXJrczIpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKG1hcmtzMykpO1xuXG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wcmVzZW50KS50b0VxdWFsKG1hcmtzMSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgdW5kbyBiZXlvbmQgaW5pdGlhbCBzdGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgbWFya3MgPSBbeyBpZDogMSwgdHlwZTogJ3BvaW50JyB9XTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MpKTtcblxuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgeyB0eXBlOiAnQEByZWR1eC11bmRvL1VORE8nIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgeyB0eXBlOiAnQEByZWR1eC11bmRvL1VORE8nIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgeyB0eXBlOiAnQEByZWR1eC11bmRvL1VORE8nIH0pO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudCkudG9FcXVhbChbXSk7XG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucGFzdCkudG9FcXVhbChbXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZWRvIGZ1bmN0aW9uYWxpdHknLCAoKSA9PiB7XG4gICAgaXQoJ3N1cHBvcnRzIHJlZG8gYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBmaXJzdE1hcmtzID0gW3sgaWQ6IDEsIHR5cGU6ICdwb2ludCcgfV07XG4gICAgICBjb25zdCBzZWNvbmRNYXJrcyA9IFt7IGlkOiAyLCB0eXBlOiAnbGluZScgfV07XG5cbiAgICAgIGxldCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnQEBJTklUJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKGZpcnN0TWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKHNlY29uZE1hcmtzKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG5cbiAgICAgIC8vIFJlZG9cbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9SRURPJyB9KTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwoc2Vjb25kTWFya3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ21vdmVzIGZ1dHVyZSB0byBwYXN0IG9uIHJlZG8nLCAoKSA9PiB7XG4gICAgICBjb25zdCByb290UmVkdWNlciA9IHJlZHVjZXIoKTtcbiAgICAgIGNvbnN0IGZpcnN0TWFya3MgPSBbeyBpZDogMSwgdHlwZTogJ3BvaW50JyB9XTtcbiAgICAgIGNvbnN0IHNlY29uZE1hcmtzID0gW3sgaWQ6IDIsIHR5cGU6ICdsaW5lJyB9XTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MoZmlyc3RNYXJrcykpO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3Moc2Vjb25kTWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9VTkRPJyB9KTtcblxuICAgICAgY29uc3QgZnV0dXJlQmVmb3JlUmVkbyA9IHN0YXRlLm1hcmtzLmZ1dHVyZS5sZW5ndGg7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vUkVETycgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5mdXR1cmUubGVuZ3RoKS50b0JlKGZ1dHVyZUJlZm9yZVJlZG8gLSAxKTtcbiAgICB9KTtcblxuICAgIGl0KCdoYW5kbGVzIG11bHRpcGxlIHJlZG9zJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBtYXJrczEgPSBbeyBpZDogMSB9XTtcbiAgICAgIGNvbnN0IG1hcmtzMiA9IFt7IGlkOiAyIH1dO1xuICAgICAgY29uc3QgbWFya3MzID0gW3sgaWQ6IDMgfV07XG5cbiAgICAgIGxldCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnQEBJTklUJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKG1hcmtzMSkpO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MyKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhtYXJrczMpKTtcblxuICAgICAgLy8gdW5kbyB0d2ljZSwgdGhlbiByZWRvIHR3aWNlXG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vUkVETycgfSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vUkVETycgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wcmVzZW50KS50b0VxdWFsKG1hcmtzMyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgcmVkbyBiZXlvbmQgbGFzdCBzdGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgbWFya3MgPSBbeyBpZDogMSwgdHlwZTogJ3BvaW50JyB9XTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9VTkRPJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9SRURPJyB9KTtcblxuICAgICAgLy8gdHJ5IHRvIHJlZG8gYmV5b25kIHRoZSBlbmRcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9SRURPJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9SRURPJyB9KTtcblxuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnQpLnRvRXF1YWwobWFya3MpO1xuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLmZ1dHVyZSkudG9FcXVhbChbXSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzdGF0ZSBzdHJ1Y3R1cmUnLCAoKSA9PiB7XG4gICAgaXQoJ21haW50YWlucyBjb3JyZWN0IHVuZG9hYmxlIHN0cnVjdHVyZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3Qgc3RhdGUgPSByb290UmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogJ0lOSVQnIH0pO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MpLnRvSGF2ZVByb3BlcnR5KCdwYXN0Jyk7XG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MpLnRvSGF2ZVByb3BlcnR5KCdwcmVzZW50Jyk7XG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MpLnRvSGF2ZVByb3BlcnR5KCdmdXR1cmUnKTtcbiAgICAgIGV4cGVjdChBcnJheS5pc0FycmF5KHN0YXRlLm1hcmtzLnBhc3QpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KEFycmF5LmlzQXJyYXkoc3RhdGUubWFya3MuZnV0dXJlKSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdwcmVzZXJ2ZXMgbWFyayBwcm9wZXJ0aWVzIHRocm91Z2ggdW5kby9yZWRvJywgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdFJlZHVjZXIgPSByZWR1Y2VyKCk7XG4gICAgICBjb25zdCBtYXJrcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgIHR5cGU6ICdwb2ludCcsXG4gICAgICAgICAgeDogMTAsXG4gICAgICAgICAgeTogMjAsXG4gICAgICAgICAgbGFiZWw6ICdBJyxcbiAgICAgICAgICBjb3JyZWN0bmVzczogeyB2YWx1ZTogJ2NvcnJlY3QnIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBsZXQgc3RhdGUgPSByb290UmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogJ0lOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKFtdKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCB7IHR5cGU6ICdAQHJlZHV4LXVuZG8vVU5ETycgfSk7XG5cbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wcmVzZW50KS50b0VxdWFsKG1hcmtzKTtcbiAgICAgIGV4cGVjdChzdGF0ZS5tYXJrcy5wcmVzZW50WzBdKS50b0JlRGVmaW5lZCgpO1xuICAgICAgaWYgKHN0YXRlLm1hcmtzLnByZXNlbnRbMF0pIHtcbiAgICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLnByZXNlbnRbMF0pLnRvRXF1YWwobWFya3NbMF0pO1xuICAgICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudFswXS5jb3JyZWN0bmVzcykudG9CZURlZmluZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ludGVncmF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdoYW5kbGVzIGNvbXBsZXggdW5kby9yZWRvIHNlcXVlbmNlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgbWFya3MxID0gW3sgaWQ6IDEgfV07XG4gICAgICBjb25zdCBtYXJrczIgPSBbeyBpZDogMiB9XTtcbiAgICAgIGNvbnN0IG1hcmtzMyA9IFt7IGlkOiAzIH1dO1xuICAgICAgY29uc3QgbWFya3M0ID0gW3sgaWQ6IDQgfV07XG5cbiAgICAgIGxldCBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiAnQEBJTklUJyB9KTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKG1hcmtzMSkpO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MobWFya3MyKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhtYXJrczMpKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9VTkRPJyB9KTsgLy8gYmFjayB0byBtYXJrczJcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9VTkRPJyB9KTsgLy8gYmFjayB0byBtYXJrczFcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIHsgdHlwZTogJ0BAcmVkdXgtdW5kby9SRURPJyB9KTsgLy8gZm9yd2FyZCB0byBtYXJrczJcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKG1hcmtzNCkpO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudCkudG9FcXVhbChtYXJrczQpO1xuICAgICAgZXhwZWN0KHN0YXRlLm1hcmtzLmZ1dHVyZSkudG9FcXVhbChbXSk7XG4gICAgfSk7XG5cbiAgICBpdCgnd29ya3Mgd2l0aCBlbXB0eSBzdGF0ZSB0cmFuc2l0aW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWR1Y2VyID0gcmVkdWNlcigpO1xuICAgICAgY29uc3QgbWFya3MgPSBbeyBpZDogMSB9XTtcblxuICAgICAgbGV0IHN0YXRlID0gcm9vdFJlZHVjZXIodW5kZWZpbmVkLCB7IHR5cGU6ICdAQElOSVQnIH0pO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgY2hhbmdlTWFya3MoW10pKTtcbiAgICAgIHN0YXRlID0gcm9vdFJlZHVjZXIoc3RhdGUsIGNoYW5nZU1hcmtzKG1hcmtzKSk7XG4gICAgICBzdGF0ZSA9IHJvb3RSZWR1Y2VyKHN0YXRlLCBjaGFuZ2VNYXJrcyhbXSkpO1xuICAgICAgc3RhdGUgPSByb290UmVkdWNlcihzdGF0ZSwgeyB0eXBlOiAnQEByZWR1eC11bmRvL1VORE8nIH0pO1xuXG4gICAgICBleHBlY3Qoc3RhdGUubWFya3MucHJlc2VudCkudG9FcXVhbChtYXJrcyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFFQUUsUUFBUSxDQUFDLG1CQUFtQixFQUFFLFlBQU07RUFDbENBLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxZQUFNO0lBQ2pDQyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsWUFBTTtNQUNyQyxJQUFNQyxXQUFXLEdBQUcsSUFBQUMsbUJBQU8sRUFBQyxDQUFDO01BQzdCQyxNQUFNLEtBQUFDLFFBQUEsYUFBUUgsV0FB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
@@ -15,4 +15,4 @@ var changeMarks = exports.changeMarks = function changeMarks(marks) {
15
15
  marks: marks
16
16
  };
17
17
  };
18
- //# sourceMappingURL=actions.js.map
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhZGRNYXJrIiwiZXhwb3J0cyIsInR5cGUiLCJjaGFuZ2VNYXJrcyIsIm1hcmtzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRhaW5lci9hY3Rpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBhZGRNYXJrID0gKCkgPT4gKHtcbiAgdHlwZTogJ0FERF9NQVJLJyxcbn0pO1xuXG5leHBvcnQgY29uc3QgY2hhbmdlTWFya3MgPSAobWFya3MpID0+ICh7XG4gIHR5cGU6ICdDSEFOR0VfTUFSS1MnLFxuICBtYXJrcyxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxPQUFPLEdBQUFDLE9BQUEsQ0FBQUQsT0FBQSxHQUFHLFNBQVZBLE9BQU9BLENBQUE7RUFBQSxPQUFVO0lBQzVCRSxJQUFJLEVBQUU7RUFDUixDQUFDO0FBQUEsQ0FBQztBQUVLLElBQU1DLFdBQVcsR0FBQUYsT0FBQSxDQUFBRSxXQUFBLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsS0FBSztFQUFBLE9BQU07SUFDckNGLElBQUksRUFBRSxjQUFjO0lBQ3BCRSxLQUFLLEVBQUxBO0VBQ0YsQ0FBQztBQUFBLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -117,4 +117,4 @@ var Root = /*#__PURE__*/function (_React$Component) {
117
117
  marks: _propTypes["default"].array
118
118
  });
119
119
  var _default = exports["default"] = Root;
120
- //# sourceMappingURL=index.js.map
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlZHV4IiwiX3JlZHVjZXIiLCJfYWN0aW9ucyIsIl9wcm9wVHlwZXMiLCJfbG9kYXNoRXMiLCJfcmVkdXhVbmRvIiwiX2dyYXBoV2l0aENvbnRyb2xzIiwiX21pZGRsZXdhcmUiLCJfZXhjbHVkZWQiLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIm1hcFN0YXRlVG9Qcm9wcyIsInMiLCJtYXJrcyIsInByZXNlbnQiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJkaXNwYXRjaCIsIm9uQ2hhbmdlTWFya3MiLCJtIiwiY2hhbmdlTWFya3MiLCJvblVuZG8iLCJBY3Rpb25DcmVhdG9ycyIsInVuZG8iLCJvblJlZG8iLCJyZWRvIiwib25SZXNldCIsIkdyYXBoQ29udGFpbmVyIiwiZXhwb3J0cyIsImNvbm5lY3QiLCJHcmFwaFdpdGhDb250cm9scyIsIlJvb3QiLCJfUmVhY3QkQ29tcG9uZW50IiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiX3RoaXMkcHJvcHMiLCJzdG9yZVN0YXRlIiwic3RvcmUiLCJnZXRTdGF0ZSIsImxhc3RBY3Rpb24iLCJnZXRMYXN0QWN0aW9uIiwiaXNVbmRvT3BlcmF0aW9uIiwidHlwZSIsImluY2x1ZGVzIiwiaXNFcXVhbCIsInIiLCJyZWR1Y2VyIiwiY3JlYXRlU3RvcmUiLCJhcHBseU1pZGRsZXdhcmUiLCJsYXN0QWN0aW9uTWlkZGxld2FyZSIsInN1YnNjcmliZSIsIm9uU3RvcmVDaGFuZ2UiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMyIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJjb3JyZWN0bmVzc1NldCIsImZpbmQiLCJjb3JyZWN0bmVzcyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJkaXNhYmxlZCIsIlByb3ZpZGVyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwiYXJyYXkiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250YWluZXIvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbm5lY3QsIFByb3ZpZGVyIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFwcGx5TWlkZGxld2FyZSwgY3JlYXRlU3RvcmUgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL3JlZHVjZXInO1xuaW1wb3J0IHsgY2hhbmdlTWFya3MgfSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eC11bmRvJztcbmltcG9ydCBHcmFwaFdpdGhDb250cm9scyBmcm9tICcuLi9ncmFwaC13aXRoLWNvbnRyb2xzJztcbmltcG9ydCB7IGdldExhc3RBY3Rpb24sIGxhc3RBY3Rpb25NaWRkbGV3YXJlIH0gZnJvbSAnLi9taWRkbGV3YXJlJztcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHMpID0+ICh7XG4gIG1hcmtzOiBzLm1hcmtzLnByZXNlbnQsXG59KTtcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoKSA9PiAoe1xuICBvbkNoYW5nZU1hcmtzOiAobSkgPT4gZGlzcGF0Y2goY2hhbmdlTWFya3MobSkpLFxuICBvblVuZG86ICgpID0+IGRpc3BhdGNoKEFjdGlvbkNyZWF0b3JzLnVuZG8oKSksXG4gIG9uUmVkbzogKCkgPT4gZGlzcGF0Y2goQWN0aW9uQ3JlYXRvcnMucmVkbygpKSxcbiAgb25SZXNldDogKCkgPT4gZGlzcGF0Y2goY2hhbmdlTWFya3MoW10pKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgR3JhcGhDb250YWluZXIgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShHcmFwaFdpdGhDb250cm9scyk7XG5cbi8qKlxuICogVGhlIGdyYXBoIGNvbXBvbmVudCBlbnRyeSBwb2ludCB3aXRoIHVuZG8vcmVkb1xuICogUmVkdXggaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLCBoaWRlIGl0IGluIHRoZSByZWFjdCBjb21wb25lbnQuXG4gKi9cbmNsYXNzIFJvb3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uQ2hhbmdlTWFya3M6IFByb3BUeXBlcy5mdW5jLFxuICAgIG1hcmtzOiBQcm9wVHlwZXMuYXJyYXksXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBjb25zdCByID0gcmVkdWNlcigpO1xuICAgIHRoaXMuc3RvcmUgPSBjcmVhdGVTdG9yZShyLCB7IG1hcmtzOiBwcm9wcy5tYXJrcyB9LCBhcHBseU1pZGRsZXdhcmUobGFzdEFjdGlvbk1pZGRsZXdhcmUpKTtcblxuICAgIHRoaXMuc3RvcmUuc3Vic2NyaWJlKHRoaXMub25TdG9yZUNoYW5nZSk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgeyBtYXJrcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBzdG9yZVN0YXRlID0gdGhpcy5zdG9yZS5nZXRTdGF0ZSgpO1xuXG4gICAgaWYgKGlzRXF1YWwoc3RvcmVTdGF0ZS5tYXJrcy5wcmVzZW50LCBtYXJrcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwocHJldlByb3BzLm1hcmtzLCBtYXJrcykpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goY2hhbmdlTWFya3MobWFya3MpKTtcbiAgICB9XG4gIH1cblxuICBvblN0b3JlQ2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbWFya3MsIG9uQ2hhbmdlTWFya3MgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgc3RvcmVTdGF0ZSA9IHRoaXMuc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICBjb25zdCBsYXN0QWN0aW9uID0gZ2V0TGFzdEFjdGlvbigpO1xuICAgIGNvbnN0IGlzVW5kb09wZXJhdGlvbiA9IGxhc3RBY3Rpb24udHlwZS5pbmNsdWRlcygnVU5ETycpIHx8IGxhc3RBY3Rpb24udHlwZS5pbmNsdWRlcygnUkVETycpO1xuXG4gICAgaWYgKCFpc0VxdWFsKHN0b3JlU3RhdGUubWFya3MucHJlc2VudCwgbWFya3MpKSB7XG4gICAgICBvbkNoYW5nZU1hcmtzKHN0b3JlU3RhdGUubWFya3MucHJlc2VudCwgaXNVbmRvT3BlcmF0aW9uKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IHsgb25DaGFuZ2VNYXJrcywgbWFya3MsIC4uLnJlc3QgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgY29ycmVjdG5lc3NTZXQgPSBtYXJrcyAmJiBtYXJrcy5maW5kKChtKSA9PiBtLmNvcnJlY3RuZXNzKTtcblxuICAgIGlmIChjb3JyZWN0bmVzc1NldCkge1xuICAgICAgcmV0dXJuIDxHcmFwaFdpdGhDb250cm9scyB7Li4ucmVzdH0gbWFya3M9e21hcmtzfSBkaXNhYmxlZD17Y29ycmVjdG5lc3NTZXR9IC8+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8UHJvdmlkZXIgc3RvcmU9e3RoaXMuc3RvcmV9PlxuICAgICAgICA8R3JhcGhDb250YWluZXIgey4uLnJlc3R9IC8+XG4gICAgICA8L1Byb3ZpZGVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUm9vdDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsa0JBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVYsT0FBQTtBQUFtRSxJQUFBVyxTQUFBO0FBQUEsU0FBQUMsV0FBQUMsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsV0FBQUQsQ0FBQSxPQUFBRSxnQkFBQSxhQUFBRixDQUFBLE9BQUFHLDJCQUFBLGFBQUFKLENBQUEsRUFBQUsseUJBQUEsS0FBQUMsT0FBQSxDQUFBQyxTQUFBLENBQUFOLENBQUEsRUFBQUMsQ0FBQSxZQUFBQyxnQkFBQSxhQUFBSCxDQUFBLEVBQUFRLFdBQUEsSUFBQVAsQ0FBQSxDQUFBUSxLQUFBLENBQUFULENBQUEsRUFBQUUsQ0FBQTtBQUFBLFNBQUFHLDBCQUFBLGNBQUFMLENBQUEsSUFBQVUsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQUMsSUFBQSxDQUFBUCxPQUFBLENBQUFDLFNBQUEsQ0FBQUcsT0FBQSxpQ0FBQVYsQ0FBQSxhQUFB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
@@ -19,4 +19,4 @@ var marks = function marks() {
19
19
  }
20
20
  };
21
21
  var _default = exports["default"] = marks;
22
- //# sourceMappingURL=marks.js.map
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYXJrcyIsInN0YXRlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiYWN0aW9uIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsIkVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRhaW5lci9tYXJrcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtYXJrcyA9IChzdGF0ZSA9IFtdLCBhY3Rpb24pID0+IHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ0NIQU5HRV9NQVJLUyc6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhY3Rpb24ubWFya3MpKSB7XG4gICAgICAgIHJldHVybiBhY3Rpb24ubWFya3M7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcmtzIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBtYXJrcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsS0FBSyxHQUFHLFNBQVJBLEtBQUtBLENBQUEsRUFBMkI7RUFBQSxJQUF2QkMsS0FBSyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxFQUFFO0VBQUEsSUFBRUcsTUFBTSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsT0FBQUQsU0FBQSxNQUFBRSxTQUFBO0VBQy9CLFFBQVFDLE1BQU0sQ0FBQ0MsSUFBSTtJQUNqQixLQUFLLGNBQWM7TUFDakIsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNILE1BQU0sQ0FBQ0wsS0FBSyxDQUFDLEVBQUU7UUFDL0IsT0FBT0ssTUFBTSxDQUFDTCxLQUFLO01BQ3JCLENBQUMsTUFBTTtRQUNMLE1BQU0sSUFBSVMsS0FBSyxDQUFDLHdCQUF3QixDQUFDO01BQzNDO0lBQ0Y7TUFDRSxPQUFPUixLQUFLO0VBQ2hCO0FBQ0YsQ0FBQztBQUFDLElBQUFTLFFBQUEsR0FBQUMsT0FBQSxjQUVhWCxLQUFLIiwiaWdub3JlTGlzdCI6W119
@@ -16,4 +16,4 @@ var lastActionMiddleware = exports.lastActionMiddleware = function lastActionMid
16
16
  };
17
17
  };
18
18
  };
19
- //# sourceMappingURL=middleware.js.map
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsYXN0QWN0aW9uIiwiZ2V0TGFzdEFjdGlvbiIsImV4cG9ydHMiLCJsYXN0QWN0aW9uTWlkZGxld2FyZSIsIm5leHQiLCJhY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGFpbmVyL21pZGRsZXdhcmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGxhc3RBY3Rpb24gPSBudWxsO1xuZXhwb3J0IGNvbnN0IGdldExhc3RBY3Rpb24gPSAoKSA9PiBsYXN0QWN0aW9uO1xuXG5leHBvcnQgY29uc3QgbGFzdEFjdGlvbk1pZGRsZXdhcmUgPSAoKSA9PiAobmV4dCkgPT4gKGFjdGlvbikgPT4ge1xuICBsYXN0QWN0aW9uID0gYWN0aW9uO1xuICByZXR1cm4gbmV4dChhY3Rpb24pO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsVUFBVSxHQUFHLElBQUk7QUFDZCxJQUFNQyxhQUFhLEdBQUFDLE9BQUEsQ0FBQUQsYUFBQSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBO0VBQUEsT0FBU0QsVUFBVTtBQUFBO0FBRXRDLElBQU1HLG9CQUFvQixHQUFBRCxPQUFBLENBQUFDLG9CQUFBLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBQTtFQUFBLE9BQVMsVUFBQ0MsSUFBSTtJQUFBLE9BQUssVUFBQ0MsTUFBTSxFQUFLO01BQzlETCxVQUFVLEdBQUdLLE1BQU07TUFDbkIsT0FBT0QsSUFBSSxDQUFDQyxNQUFNLENBQUM7SUFDckIsQ0FBQztFQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -15,4 +15,4 @@ var _default = exports["default"] = function _default() {
15
15
  })
16
16
  });
17
17
  };
18
- //# sourceMappingURL=reducer.js.map
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkdXgiLCJyZXF1aXJlIiwiX21hcmtzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWR1eFVuZG8iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJjb21iaW5lUmVkdWNlcnMiLCJtYXJrcyIsInVuZG9hYmxlIiwiZGVidWciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGFpbmVyL3JlZHVjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZVJlZHVjZXJzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IG1hcmtzIGZyb20gJy4vbWFya3MnO1xuaW1wb3J0IHVuZG9hYmxlIGZyb20gJ3JlZHV4LXVuZG8nO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiBjb21iaW5lUmVkdWNlcnMoeyBtYXJrczogdW5kb2FibGUobWFya3MsIHsgZGVidWc6IGZhbHNlIH0pIH0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQWtDLElBQUFJLFFBQUEsR0FBQUMsT0FBQSxjQUVuQixTQUFBRCxTQUFBO0VBQUEsT0FBTSxJQUFBRSxzQkFBZSxFQUFDO0lBQUVDLEtBQUssRUFBRSxJQUFBQyxxQkFBUSxFQUFDRCxpQkFBSyxFQUFFO01BQUVFLEtBQUssRUFBRTtJQUFNLENBQUM7RUFBRSxDQUFDLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -74,4 +74,4 @@ CoordinatesLabel.propTypes = {
74
74
  y: _propTypes["default"].number
75
75
  };
76
76
  var _default = exports["default"] = CoordinatesLabel;
77
- //# sourceMappingURL=coordinates-label.js.map
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfcGxvdCIsIl9yZW5kZXJVaSIsIl9zdHlsZXMiLCJfSW5wdXRCYXNlIiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJTdHlsZWRJbnB1dEJhc2UiLCJzdHlsZWQiLCJJbnB1dEJhc2UiLCJfcmVmIiwidGhlbWUiLCJmb250RmFtaWx5IiwidHlwb2dyYXBoeSIsImZvbnRTaXplIiwiYm9yZGVyUmFkaXVzIiwiYmFja2dyb3VuZCIsInBhbGV0dGUiLCJjb21tb24iLCJ3aGl0ZSIsImNvbG9yIiwiZGVmYXVsdHMiLCJCTEFDSyIsInBhZGRpbmciLCJnZXRMYWJlbFBvc2l0aW9uIiwiZXhwb3J0cyIsImdyYXBoUHJvcHMiLCJ4IiwieSIsImxhYmVsTGVuZ3RoIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsInRvcFNoaWZ0IiwibWluIiwibWF4IiwibGVmdFNoaWZ0IiwicmlnaHRFZGdlIiwibGVmdCIsInRvcCIsIkNvb3JkaW5hdGVzTGFiZWwiLCJfcmVmMiIsImxhYmVsIiwiY29uY2F0Iiwicm91bmROdW1iZXIiLCJsYWJlbFBvc2l0aW9uIiwic3R5bGUiLCJwb3NpdGlvbiIsInBvaW50ZXJFdmVudHMiLCJ3aWR0aCIsImNyZWF0ZUVsZW1lbnQiLCJ2YWx1ZSIsImlucHV0UHJvcHMiLCJhcmlhTGFiZWwiLCJwcm9wVHlwZXMiLCJ0eXBlcyIsIkdyYXBoUHJvcHNUeXBlIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvY29vcmRpbmF0ZXMtbGFiZWwuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCBJbnB1dEJhc2UgZnJvbSAnQG11aS9tYXRlcmlhbC9JbnB1dEJhc2UnO1xuaW1wb3J0IHsgcm91bmROdW1iZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgU3R5bGVkSW5wdXRCYXNlID0gc3R5bGVkKElucHV0QmFzZSkoKHsgdGhlbWUgfSkgPT4gKHtcbiAgZm9udEZhbWlseTogdGhlbWUudHlwb2dyYXBoeS5mb250RmFtaWx5LFxuICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgYm9yZGVyUmFkaXVzOiAnOHB4JyxcbiAgYmFja2dyb3VuZDogdGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGUsXG4gIGNvbG9yOiBjb2xvci5kZWZhdWx0cy5CTEFDSyxcbiAgJyYgLk11aUlucHV0QmFzZS1pbnB1dCc6IHtcbiAgICBwYWRkaW5nOiAwLFxuICB9LFxufSkpO1xuXG5leHBvcnQgY29uc3QgZ2V0TGFiZWxQb3NpdGlvbiA9IChncmFwaFByb3BzLCB4LCB5LCBsYWJlbExlbmd0aCkgPT4ge1xuICBjb25zdCB7IHNjYWxlLCBkb21haW4sIHJhbmdlIH0gPSBncmFwaFByb3BzO1xuICAvLyB0cmVhdCBjb3JuZXIgY2FzZXMgZm9yIG1heGltdW0gYW5kIG1pbmltdW1cbiAgY29uc3QgdG9wU2hpZnQgPSB5ID09PSByYW5nZS5taW4gPyAxNiA6IHkgPT09IHJhbmdlLm1heCA/IDAgOiA4O1xuICBjb25zdCBsZWZ0U2hpZnQgPSAxMDtcbiAgY29uc3QgcmlnaHRFZGdlID0gc2NhbGUueCh4KSArIGxhYmVsTGVuZ3RoICsgbGVmdFNoaWZ0O1xuXG4gIGlmIChyaWdodEVkZ2UgPj0gc2NhbGUueChkb21haW4ubWF4KSkge1xuICAgIHJldHVybiB7XG4gICAgICBsZWZ0OiBzY2FsZS54KHgpIC0gbGVmdFNoaWZ0IC0gbGFiZWxMZW5ndGgsXG4gICAgICB0b3A6IHNjYWxlLnkoeSkgLSB0b3BTaGlmdCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiBzY2FsZS54KHgpICsgbGVmdFNoaWZ0LFxuICAgIHRvcDogc2NhbGUueSh5KSAtIHRvcFNoaWZ0LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IENvb3JkaW5hdGVzTGFiZWwgPSAoeyB4LCB5LCBncmFwaFByb3BzIH0pID0+IHtcbiAgY29uc3QgbGFiZWwgPSBgKCR7cm91bmROdW1iZXIoeCl9LCAke3JvdW5kTnVtYmVyKHkpfSlgO1xuICBjb25zdCBsYWJlbExlbmd0aCA9IChsYWJlbC5sZW5ndGggfHwgMCkgKiA2O1xuICBjb25zdCBsYWJlbFBvc2l0aW9uID0gZ2V0TGFiZWxQb3NpdGlvbihncmFwaFByb3BzLCB4LCB5LCBsYWJlbExlbmd0aCk7XG5cbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICAgIHdpZHRoOiBsYWJlbExlbmd0aCxcbiAgICBwYWRkaW5nOiAwLFxuICAgIC4uLmxhYmVsUG9zaXRpb24sXG4gIH07XG5cbiAgcmV0dXJuIDxTdHlsZWRJbnB1dEJhc2Ugc3R5bGU9e3N0eWxlfSB2YWx1ZT17bGFiZWx9IGlucHV0UHJvcHM9e3sgYXJpYUxhYmVsOiAnbmFrZWQnIH19IC8+O1xufTtcblxuQ29vcmRpbmF0ZXNMYWJlbC5wcm9wVHlwZXMgPSB7XG4gIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLFxuICB4OiBQcm9wVHlwZXMubnVtYmVyLFxuICB5OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29vcmRpbmF0ZXNMYWJlbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFBc0MsU0FBQU8sUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQs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