speechrecorderng 2.21.4 → 2.22.0

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 (111) hide show
  1. package/{esm2015/lib/action/action.js → esm2020/lib/action/action.mjs} +0 -0
  2. package/{esm2015/lib/audio/audio_display.js → esm2020/lib/audio/audio_display.mjs} +5 -5
  3. package/esm2020/lib/audio/audio_player.mjs +276 -0
  4. package/esm2020/lib/audio/capture/capture.mjs +547 -0
  5. package/{esm2015/lib/audio/context.js → esm2020/lib/audio/context.mjs} +0 -0
  6. package/esm2020/lib/audio/dsp/level_measure.mjs +351 -0
  7. package/{esm2015/lib/audio/format.js → esm2020/lib/audio/format.mjs} +0 -0
  8. package/{esm2015/lib/audio/impl/wavformat.js → esm2020/lib/audio/impl/wavformat.mjs} +0 -0
  9. package/{esm2015/lib/audio/impl/wavwriter.js → esm2020/lib/audio/impl/wavwriter.mjs} +0 -0
  10. package/{esm2015/lib/audio/io/stream.js → esm2020/lib/audio/io/stream.mjs} +0 -0
  11. package/{esm2015/lib/audio/persistor.js → esm2020/lib/audio/persistor.mjs} +0 -0
  12. package/{esm2015/lib/audio/playback/player.js → esm2020/lib/audio/playback/player.mjs} +0 -0
  13. package/esm2020/lib/audio/ui/audio_canvas_layer_comp.mjs +376 -0
  14. package/{esm2015/lib/audio/ui/audio_display_control.js → esm2020/lib/audio/ui/audio_display_control.mjs} +5 -5
  15. package/{esm2015/lib/audio/ui/audio_display_scroll_pane.js → esm2020/lib/audio/ui/audio_display_scroll_pane.mjs} +5 -5
  16. package/{esm2015/lib/audio/ui/audiosignal.js → esm2020/lib/audio/ui/audiosignal.mjs} +5 -5
  17. package/{esm2015/lib/audio/ui/common.js → esm2020/lib/audio/ui/common.mjs} +0 -0
  18. package/esm2020/lib/audio/ui/container.mjs +431 -0
  19. package/{esm2015/lib/audio/ui/livelevel.js → esm2020/lib/audio/ui/livelevel.mjs} +5 -5
  20. package/{esm2015/lib/audio/ui/scroll_pane_horizontal.js → esm2020/lib/audio/ui/scroll_pane_horizontal.mjs} +4 -4
  21. package/{esm2015/lib/audio/ui/sonagram.js → esm2020/lib/audio/ui/sonagram.mjs} +5 -5
  22. package/{esm2015/lib/dsp/utils.js → esm2020/lib/dsp/utils.mjs} +0 -0
  23. package/{esm2015/lib/io/BinaryWriter.js → esm2020/lib/io/BinaryWriter.mjs} +0 -0
  24. package/{esm2015/lib/io/stream.js → esm2020/lib/io/stream.mjs} +0 -0
  25. package/{esm2015/lib/math/2d/geometry.js → esm2020/lib/math/2d/geometry.mjs} +0 -0
  26. package/{esm2015/lib/math/complex.js → esm2020/lib/math/complex.mjs} +0 -0
  27. package/{esm2015/lib/math/dft.js → esm2020/lib/math/dft.mjs} +0 -0
  28. package/{esm2015/lib/math/utils.js → esm2020/lib/math/utils.mjs} +0 -0
  29. package/esm2020/lib/media/utils.mjs +14 -0
  30. package/esm2020/lib/net/uploader.mjs +246 -0
  31. package/{esm2015/lib/speechrecorder/project/project.js → esm2020/lib/speechrecorder/project/project.mjs} +0 -0
  32. package/{esm2015/lib/speechrecorder/project/project.service.js → esm2020/lib/speechrecorder/project/project.service.mjs} +4 -4
  33. package/esm2020/lib/speechrecorder/recording.mjs +54 -0
  34. package/esm2020/lib/speechrecorder/recordings/recordings.service.mjs +246 -0
  35. package/{esm2015/lib/speechrecorder/script/script.js → esm2020/lib/speechrecorder/script/script.mjs} +2 -2
  36. package/{esm2015/lib/speechrecorder/script/script.service.js → esm2020/lib/speechrecorder/script/script.service.mjs} +4 -4
  37. package/esm2020/lib/speechrecorder/session/audiorecorder.mjs +1144 -0
  38. package/esm2020/lib/speechrecorder/session/controlpanel.mjs +449 -0
  39. package/{esm2015/lib/speechrecorder/session/item.js → esm2020/lib/speechrecorder/session/item.mjs} +1 -1
  40. package/{esm2015/lib/speechrecorder/session/progress.js → esm2020/lib/speechrecorder/session/progress.mjs} +5 -5
  41. package/{esm2015/lib/speechrecorder/session/prompting.js → esm2020/lib/speechrecorder/session/prompting.mjs} +21 -21
  42. package/esm2020/lib/speechrecorder/session/recorder_combi_pane.mjs +75 -0
  43. package/esm2020/lib/speechrecorder/session/recording_list.mjs +109 -0
  44. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +126 -0
  45. package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file-navi.component.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs} +5 -5
  46. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +168 -0
  47. package/esm2020/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +415 -0
  48. package/{esm2015/lib/speechrecorder/session/recordingfile/recording-file.js → esm2020/lib/speechrecorder/session/recordingfile/recording-file.mjs} +1 -1
  49. package/esm2020/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +251 -0
  50. package/{esm2015/lib/speechrecorder/session/session.js → esm2020/lib/speechrecorder/session/session.mjs} +0 -0
  51. package/{esm2015/lib/speechrecorder/session/session.service.js → esm2020/lib/speechrecorder/session/session.service.mjs} +4 -4
  52. package/{esm2015/lib/speechrecorder/session/session_finished_dialog.js → esm2020/lib/speechrecorder/session/session_finished_dialog.mjs} +4 -4
  53. package/esm2020/lib/speechrecorder/session/sessionmanager.mjs +1274 -0
  54. package/{esm2015/lib/speechrecorder/session/warning_bar.js → esm2020/lib/speechrecorder/session/warning_bar.mjs} +5 -5
  55. package/{esm2015/lib/speechrecorder/spruploader.js → esm2020/lib/speechrecorder/spruploader.mjs} +4 -4
  56. package/{esm2015/lib/speechrecorder/startstopsignal/startstopsignal.js → esm2020/lib/speechrecorder/startstopsignal/startstopsignal.mjs} +0 -0
  57. package/{esm2015/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.js → esm2020/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs} +5 -5
  58. package/esm2020/lib/speechrecorderng.component.mjs +427 -0
  59. package/{esm2015/lib/speechrecorderng.module.js → esm2020/lib/speechrecorderng.module.mjs} +12 -11
  60. package/{esm2015/lib/spr.config.js → esm2020/lib/spr.config.mjs} +4 -4
  61. package/{esm2015/lib/spr.module.version.js → esm2020/lib/spr.module.version.mjs} +2 -2
  62. package/{esm2015/lib/ui/canvas_layer_comp.js → esm2020/lib/ui/canvas_layer_comp.mjs} +4 -4
  63. package/{esm2015/lib/ui/message_dialog.js → esm2020/lib/ui/message_dialog.mjs} +4 -4
  64. package/{esm2015/lib/ui/recordingitem_display.js → esm2020/lib/ui/recordingitem_display.mjs} +9 -9
  65. package/{esm2015/lib/utils/css_utils.js → esm2020/lib/utils/css_utils.mjs} +0 -0
  66. package/{esm2015/lib/utils/scrollIntoViewToBottom.js → esm2020/lib/utils/scrollIntoViewToBottom.mjs} +4 -4
  67. package/{esm2015/lib/utils/ua-parser.js → esm2020/lib/utils/ua-parser.mjs} +0 -0
  68. package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +0 -0
  69. package/esm2020/public-api.mjs +31 -0
  70. package/{esm2015/speechrecorderng.js → esm2020/speechrecorderng.mjs} +0 -0
  71. package/fesm2015/speechrecorderng.mjs +11991 -0
  72. package/fesm2015/speechrecorderng.mjs.map +1 -0
  73. package/{fesm2015/speechrecorderng.js → fesm2020/speechrecorderng.mjs} +1863 -285
  74. package/fesm2020/speechrecorderng.mjs.map +1 -0
  75. package/lib/media/utils.d.ts +3 -0
  76. package/lib/net/uploader.d.ts +4 -2
  77. package/lib/speechrecorder/recording.d.ts +14 -3
  78. package/lib/speechrecorder/recordings/recordings.service.d.ts +12 -5
  79. package/lib/speechrecorder/session/audiorecorder.d.ts +150 -0
  80. package/lib/speechrecorder/session/controlpanel.d.ts +2 -1
  81. package/lib/speechrecorder/session/item.d.ts +2 -2
  82. package/lib/speechrecorder/session/recorder_combi_pane.d.ts +26 -0
  83. package/lib/speechrecorder/session/recording_list.d.ts +19 -0
  84. package/lib/speechrecorder/session/recordingfile/recording-file-meta.component.d.ts +6 -2
  85. package/lib/speechrecorder/session/recordingfile/recording-file-view.component.d.ts +5 -4
  86. package/lib/speechrecorder/session/recordingfile/recording-file.d.ts +2 -2
  87. package/lib/speechrecorder/session/recordingfile/recordingfile-service.d.ts +5 -3
  88. package/lib/speechrecorder/session/sessionmanager.d.ts +5 -5
  89. package/lib/speechrecorderng.module.d.ts +31 -28
  90. package/lib/spr.module.version.d.ts +1 -1
  91. package/package.json +33 -20
  92. package/public-api.d.ts +2 -1
  93. package/bundles/speechrecorderng.umd.js +0 -10146
  94. package/bundles/speechrecorderng.umd.js.map +0 -1
  95. package/esm2015/lib/audio/audio_player.js +0 -274
  96. package/esm2015/lib/audio/capture/capture.js +0 -544
  97. package/esm2015/lib/audio/dsp/level_measure.js +0 -356
  98. package/esm2015/lib/audio/ui/audio_canvas_layer_comp.js +0 -364
  99. package/esm2015/lib/audio/ui/container.js +0 -412
  100. package/esm2015/lib/net/uploader.js +0 -220
  101. package/esm2015/lib/speechrecorder/recording.js +0 -38
  102. package/esm2015/lib/speechrecorder/recordings/recordings.service.js +0 -173
  103. package/esm2015/lib/speechrecorder/session/controlpanel.js +0 -446
  104. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-meta.component.js +0 -83
  105. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.js +0 -163
  106. package/esm2015/lib/speechrecorder/session/recordingfile/recording-file-view.component.js +0 -386
  107. package/esm2015/lib/speechrecorder/session/recordingfile/recordingfile-service.js +0 -191
  108. package/esm2015/lib/speechrecorder/session/sessionmanager.js +0 -1271
  109. package/esm2015/lib/speechrecorderng.component.js +0 -423
  110. package/esm2015/public-api.js +0 -30
  111. package/fesm2015/speechrecorderng.js.map +0 -1
@@ -0,0 +1,376 @@
1
+ import { CanvasLayerComponent } from "../../ui/canvas_layer_comp";
2
+ import { Selection } from '../persistor';
3
+ import { EventEmitter, HostListener, Input, Output, ViewChild, Directive } from "@angular/core";
4
+ import { Marker } from "./common";
5
+ import * as i0 from "@angular/core";
6
+ export class ViewSelection {
7
+ constructor(_startX, _endX) {
8
+ this._startX = _startX;
9
+ this._endX = _endX;
10
+ }
11
+ get startX() {
12
+ return this._startX;
13
+ }
14
+ get endX() {
15
+ return this._endX;
16
+ }
17
+ width() {
18
+ return this._endX - this._startX;
19
+ }
20
+ }
21
+ export class BasicAudioCanvasLayerComponent extends CanvasLayerComponent {
22
+ constructor() {
23
+ super(...arguments);
24
+ this._audioData = null;
25
+ this._bgColor = 'white';
26
+ this._selectColor = 'rgba(0%,0%,100%,25%)';
27
+ }
28
+ /**
29
+ * Returns pixel position depending on current zoom setting.
30
+ * @param framePos audio frame (sample) position
31
+ */
32
+ frameToXPixelPosition(framePos) {
33
+ let pixelPos = null;
34
+ if (this._audioData && this._audioData.numberOfChannels > 0) {
35
+ let ch0 = this._audioData.getChannelData(0);
36
+ let frameLength = ch0.length;
37
+ let vw;
38
+ if (this.bounds) {
39
+ vw = this.bounds.dimension.width;
40
+ }
41
+ if (this.virtualDimension) {
42
+ vw = this.virtualDimension.width;
43
+ }
44
+ if (vw !== undefined) {
45
+ pixelPos = framePos * vw / frameLength;
46
+ }
47
+ }
48
+ return pixelPos;
49
+ }
50
+ /**
51
+ * Returns pixel position in view port (visible window of scroll pane).
52
+ * @param framePos audio frame (sample) position
53
+ */
54
+ frameToViewPortXPixelPosition(framePos) {
55
+ let pixelPos = this.frameToXPixelPosition(framePos);
56
+ if (pixelPos != null) {
57
+ let vPixelPos = this.toXViewPortPixelPosition(pixelPos);
58
+ return vPixelPos;
59
+ }
60
+ else {
61
+ return null;
62
+ }
63
+ }
64
+ viewPortXPixelToFramePosition(xViewPortPixelPos) {
65
+ let vpXramePos = null;
66
+ if (this._audioData && this._audioData.numberOfChannels > 0) {
67
+ let ch0 = this._audioData.getChannelData(0);
68
+ let frameLength = ch0.length;
69
+ let vw;
70
+ if (this.bounds) {
71
+ vw = this.bounds.dimension.width;
72
+ }
73
+ if (this.virtualDimension) {
74
+ vw = this.virtualDimension.width;
75
+ }
76
+ if (vw !== undefined) {
77
+ let xVirtualPixelPos = this.toXVirtualPixelPosition(xViewPortPixelPos);
78
+ let framesPerPixel = frameLength / vw;
79
+ let framePos = framesPerPixel * xVirtualPixelPos;
80
+ if (framePos < 0) {
81
+ framePos = 0;
82
+ }
83
+ if (framePos >= frameLength) {
84
+ framePos = frameLength - 1;
85
+ }
86
+ vpXramePos = Math.round(framePos);
87
+ }
88
+ }
89
+ return vpXramePos;
90
+ }
91
+ layoutBounds(bounds, virtualDimension, redraw) {
92
+ this.bounds = bounds;
93
+ this.virtualDimension = virtualDimension;
94
+ //this.canvasLayers.forEach(cl=>{
95
+ for (let ci = 0; ci < this.canvasLayers.length; ci++) {
96
+ let cl = this.canvasLayers[ci];
97
+ const leftStyle = bounds.position.left + 'px';
98
+ if (cl.style.left != leftStyle) {
99
+ cl.style.left = leftStyle;
100
+ }
101
+ const topStyle = bounds.position.top + 'px';
102
+ if (cl.style.top != topStyle) {
103
+ cl.style.top = topStyle;
104
+ }
105
+ }
106
+ if (bounds.dimension.width) {
107
+ let intW = Math.floor(bounds.dimension.width);
108
+ if (redraw) {
109
+ // Do not set width of background canvas (causes flicker on start render)
110
+ for (let ci = 1; ci < this.canvasLayers.length; ci++) {
111
+ let cl = this.canvasLayers[ci];
112
+ if (cl.width != intW) {
113
+ cl.width = intW;
114
+ }
115
+ }
116
+ }
117
+ let wStr = intW.toString() + 'px';
118
+ for (let ci = 0; ci < this.canvasLayers.length; ci++) {
119
+ let cl = this.canvasLayers[ci];
120
+ if (cl.style.width != wStr) {
121
+ cl.style.width = wStr;
122
+ }
123
+ }
124
+ }
125
+ if (bounds.dimension.height) {
126
+ let intH = Math.floor(bounds.dimension.height);
127
+ if (redraw) {
128
+ // Do not set height of background canvas (causes flicker on start render)
129
+ for (let ci = 1; ci < this.canvasLayers.length; ci++) {
130
+ let cl = this.canvasLayers[ci];
131
+ if (cl.height != intH) {
132
+ cl.height = intH;
133
+ }
134
+ }
135
+ }
136
+ let hStr = intH + 'px';
137
+ for (let ci = 0; ci < this.canvasLayers.length; ci++) {
138
+ let cl = this.canvasLayers[ci];
139
+ if (cl.style.height != hStr) {
140
+ cl.style.height = hStr;
141
+ }
142
+ }
143
+ }
144
+ //});
145
+ }
146
+ }
147
+ BasicAudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: BasicAudioCanvasLayerComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
148
+ BasicAudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: BasicAudioCanvasLayerComponent, usesInheritance: true, ngImport: i0 });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: BasicAudioCanvasLayerComponent, decorators: [{
150
+ type: Directive
151
+ }] });
152
+ export class AudioCanvasLayerComponent extends BasicAudioCanvasLayerComponent {
153
+ constructor() {
154
+ super(...arguments);
155
+ this._pointerPosition = null;
156
+ this.selectStartX = null;
157
+ this._selecting = null;
158
+ this._selection = null;
159
+ this.pointerPositionEventEmitter = new EventEmitter();
160
+ this.selectingEventEmitter = new EventEmitter();
161
+ this.selectedEventEmitter = new EventEmitter();
162
+ }
163
+ onMouseup(me) {
164
+ this.selectionCommit(me);
165
+ }
166
+ layoutBounds(bounds, virtualDimension, redraw, clear = true) {
167
+ super.layoutBounds(bounds, virtualDimension, redraw);
168
+ if (redraw) {
169
+ this.startDraw(clear);
170
+ }
171
+ }
172
+ set pointerPosition(pointerPosition) {
173
+ this._pointerPosition = pointerPosition;
174
+ this.drawCursorLayer();
175
+ }
176
+ set selecting(selecting) {
177
+ this._selecting = selecting;
178
+ this.drawBg();
179
+ this.drawCursorLayer();
180
+ }
181
+ get selecting() {
182
+ return this._selecting;
183
+ }
184
+ set selection(selection) {
185
+ this._selection = selection;
186
+ this.selecting = null;
187
+ this.drawBg();
188
+ this.drawCursorLayer();
189
+ }
190
+ get selection() {
191
+ return this._selection;
192
+ }
193
+ selectionStart(me) {
194
+ this.selectStartX = me.offsetX;
195
+ }
196
+ selectionCommit(me) {
197
+ let vs = null;
198
+ if (this.selectStartX != null) {
199
+ vs = new ViewSelection(this.selectStartX, me.offsetX);
200
+ this.selectStartX = null;
201
+ this.select(vs);
202
+ }
203
+ }
204
+ updateCursorCanvas(me, showCursorPosition = true) {
205
+ if (this.cursorCanvas) {
206
+ let w = this.cursorCanvas.width;
207
+ let h = this.cursorCanvas.height;
208
+ let g = this.cursorCanvas.getContext("2d");
209
+ // if (!showCursorPosition) {
210
+ // this.selectStartX = null
211
+ // this.selectingChange(null)
212
+ // }
213
+ if (me) {
214
+ if (this.selectStartX) {
215
+ this.pointerPositionChanged(null);
216
+ this.selectingChange(new ViewSelection(this.selectStartX, me.offsetX));
217
+ }
218
+ else {
219
+ if (showCursorPosition) {
220
+ this.pointerPositionChanged(me.offsetX);
221
+ }
222
+ else {
223
+ this.pointerPositionChanged(null);
224
+ }
225
+ }
226
+ }
227
+ }
228
+ }
229
+ pointerPositionChanged(xPosition) {
230
+ let pointerPosition = undefined;
231
+ if (xPosition) {
232
+ pointerPosition = new Marker();
233
+ let vpXPos = this.viewPortXPixelToFramePosition(xPosition);
234
+ if (vpXPos != null) {
235
+ pointerPosition.framePosition = vpXPos;
236
+ }
237
+ }
238
+ this.pointerPositionEventEmitter.emit(pointerPosition);
239
+ }
240
+ selectingChange(viewSel) {
241
+ let ns = undefined;
242
+ if (viewSel) {
243
+ let frameStart = this.viewPortXPixelToFramePosition(viewSel.startX);
244
+ let frameEnd = this.viewPortXPixelToFramePosition(viewSel.endX);
245
+ if (this._audioData && frameStart != null && frameEnd != null) {
246
+ ns = new Selection(this._audioData.sampleRate, frameStart, frameEnd);
247
+ }
248
+ }
249
+ this.selectingEventEmitter.emit(ns);
250
+ }
251
+ select(viewSel) {
252
+ let ns = undefined;
253
+ if (viewSel) {
254
+ let frameStart = this.viewPortXPixelToFramePosition(viewSel.startX);
255
+ let frameEnd = this.viewPortXPixelToFramePosition(viewSel.endX);
256
+ if (this._audioData && frameStart != null && frameEnd != null) {
257
+ ns = new Selection(this._audioData.sampleRate, frameStart, frameEnd);
258
+ }
259
+ }
260
+ this.selectedEventEmitter.emit(ns);
261
+ }
262
+ viewSelection() {
263
+ let vs = null;
264
+ let s = null;
265
+ if (this._selecting) {
266
+ s = this._selecting;
267
+ }
268
+ else if (this._selection) {
269
+ s = this._selection;
270
+ }
271
+ if (s) {
272
+ let sf = s.startFrame;
273
+ let ef = s.endFrame;
274
+ let xs = this.frameToViewPortXPixelPosition(sf);
275
+ let xe = this.frameToViewPortXPixelPosition(ef);
276
+ if (xs != null && xe != null) {
277
+ vs = new ViewSelection(xs, xe);
278
+ }
279
+ }
280
+ return vs;
281
+ }
282
+ drawBg() {
283
+ if (this.bgCanvas && this.bounds) {
284
+ this.bgCanvas.style.left = Math.round(this.bounds.position.left).toString() + 'px';
285
+ this.bgCanvas.width = Math.round(this.bounds.dimension.width);
286
+ this.bgCanvas.height = Math.round(this.bounds.dimension.height);
287
+ let g1 = this.bgCanvas.getContext("2d");
288
+ if (g1) {
289
+ let w = this.bgCanvas.width;
290
+ let h = this.bgCanvas.height;
291
+ g1.clearRect(0, 0, w, h);
292
+ if (this._bgColor) {
293
+ g1.fillStyle = this._bgColor;
294
+ g1.fillRect(0, 0, w, h);
295
+ }
296
+ let vs = this.viewSelection();
297
+ if (vs) {
298
+ g1.fillStyle = this._selectColor;
299
+ g1.fillRect(vs.startX, 0, vs.width(), h);
300
+ }
301
+ }
302
+ }
303
+ }
304
+ drawCursorLayer() {
305
+ if (this.cursorCanvas) {
306
+ let w = this.cursorCanvas.width;
307
+ let h = this.cursorCanvas.height;
308
+ let g = this.cursorCanvas.getContext("2d");
309
+ if (g) {
310
+ g.clearRect(0, 0, w, h);
311
+ // let s:Selection=null;
312
+ // if(this._selecting){
313
+ // s=this._selecting
314
+ // }else if(this._selection){
315
+ // s=this._selection
316
+ // }
317
+ // if(s){
318
+ // let sf=s.startFrame
319
+ // let ef=s.endFrame
320
+ // let xs=this.frameToViewPortXPixelPosition(sf)
321
+ // let xe=this.frameToViewPortXPixelPosition(ef)
322
+ // let sw=xe-xs
323
+ // g.fillStyle = 'rgba(0%,0%,100%,25%)';
324
+ // g.fillRect(xs,0,sw,h);
325
+ // }
326
+ if (this._pointerPosition) {
327
+ let framePos = this._pointerPosition.framePosition;
328
+ if (framePos) {
329
+ let xViewPortPixelpos = this.frameToViewPortXPixelPosition(framePos);
330
+ if (xViewPortPixelpos) {
331
+ g.fillStyle = 'yellow';
332
+ g.strokeStyle = 'yellow';
333
+ g.beginPath();
334
+ g.moveTo(xViewPortPixelpos, 0);
335
+ g.lineTo(xViewPortPixelpos, h);
336
+ g.closePath();
337
+ g.stroke();
338
+ if (this._audioData) {
339
+ g.font = '14px sans-serif';
340
+ g.fillStyle = 'yellow';
341
+ g.fillText(framePos.toString(), xViewPortPixelpos + 2, 50);
342
+ }
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ AudioCanvasLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioCanvasLayerComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
351
+ AudioCanvasLayerComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.1", type: AudioCanvasLayerComponent, inputs: { pointerPosition: "pointerPosition", selecting: "selecting", selection: "selection" }, outputs: { pointerPositionEventEmitter: "pointerPositionEventEmitter", selectingEventEmitter: "selectingEventEmitter", selectedEventEmitter: "selectedEventEmitter" }, host: { listeners: { "document:mouseup": "onMouseup($event)" } }, viewQueries: [{ propertyName: "bgCanvasRef", first: true, predicate: ["bg"], descendants: true, static: true }, { propertyName: "cursorCanvasRef", first: true, predicate: ["cursor"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioCanvasLayerComponent, decorators: [{
353
+ type: Directive
354
+ }], propDecorators: { bgCanvasRef: [{
355
+ type: ViewChild,
356
+ args: ['bg', { static: true }]
357
+ }], cursorCanvasRef: [{
358
+ type: ViewChild,
359
+ args: ['cursor', { static: true }]
360
+ }], onMouseup: [{
361
+ type: HostListener,
362
+ args: ['document:mouseup', ['$event']]
363
+ }], pointerPosition: [{
364
+ type: Input
365
+ }], selecting: [{
366
+ type: Input
367
+ }], selection: [{
368
+ type: Input
369
+ }], pointerPositionEventEmitter: [{
370
+ type: Output
371
+ }], selectingEventEmitter: [{
372
+ type: Output
373
+ }], selectedEventEmitter: [{
374
+ type: Output
375
+ }] } });
376
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fY2FudmFzX2xheWVyX2NvbXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvYXVkaW8vdWkvYXVkaW9fY2FudmFzX2xheWVyX2NvbXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQzs7QUFJaEMsTUFBTSxPQUFPLGFBQWE7SUFheEIsWUFBb0IsT0FBYyxFQUFVLEtBQVk7UUFBcEMsWUFBTyxHQUFQLE9BQU8sQ0FBTztRQUFVLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRSxDQUFDO0lBWjNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDaEMsQ0FBQztDQUdGO0FBR0QsTUFBTSxPQUFnQiw4QkFBK0IsU0FBUSxvQkFBb0I7SUFEakY7O1FBRVksZUFBVSxHQUFtQixJQUFJLENBQUM7UUFDbEMsYUFBUSxHQUFhLE9BQU8sQ0FBQztRQUM3QixpQkFBWSxHQUFDLHNCQUFzQixDQUFDO0tBNkgvQztJQTNIQzs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNsQyxJQUFJLFFBQVEsR0FBQyxJQUFJLENB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SSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHTSxlQUFlO3NCQUFyRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZN0IsZUFBZTtzQkFBM0IsS0FBSztnQkFNTyxTQUFTO3NCQUFyQixLQUFLO2dCQVdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBcURJLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDYW52YXNMYXllckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3VpL2NhbnZhc19sYXllcl9jb21wXCI7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tICcuLi9wZXJzaXN0b3InXHJcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7TWFya2VyfSBmcm9tIFwiLi9jb21tb25cIjtcclxuaW1wb3J0IHtEaW1lbnNpb24sIFJlY3RhbmdsZX0gZnJvbSBcIi4uLy4uL21hdGgvMmQvZ2VvbWV0cnlcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVmlld1NlbGVjdGlvbntcclxuICBnZXQgc3RhcnRYKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRYO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZFgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmRYO1xyXG4gIH1cclxuXHJcbiAgd2lkdGgoKTpudW1iZXJ7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5kWC10aGlzLl9zdGFydFhcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N0YXJ0WDpudW1iZXIsIHByaXZhdGUgX2VuZFg6bnVtYmVyKXt9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzaWNBdWRpb0NhbnZhc0xheWVyQ29tcG9uZW50IGV4dGVuZHMgQ2FudmFzTGF5ZXJDb21wb25lbnQge1xyXG4gIHByb3RlY3RlZCBfYXVkaW9EYXRhOiBBdWRpb0J1ZmZlcnxudWxsPW51bGw7XHJcbiAgcHJvdGVjdGVkIF9iZ0NvbG9yOnN0cmluZ3xudWxsPSd3aGl0ZSc7XHJcbiAgcHJvdGVjdGVkIF9zZWxlY3RDb2xvcj0ncmdiYSgwJSwwJSwxMDAlLDI1JSknO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHBpeGVsIHBvc2l0aW9uIGRlcGVuZGluZyBvbiBjdXJyZW50IHpvb20gc2V0dGluZy5cclxuICAgKiBAcGFyYW0gZnJhbWVQb3MgYXVkaW8gZnJhbWUgKHNhbXBsZSkgcG9zaXRpb25cclxuICAgKi9cclxuICBmcmFtZVRvWFBpeGVsUG9zaXRpb24oZnJhbWVQb3M6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xyXG4gICAgICBsZXQgcGl4ZWxQb3M9bnVsbDtcclxuICAgICAgaWYgKHRoaXMuX2F1ZGlvRGF0YSAmJiB0aGlzLl9hdWRpb0RhdGEubnVtYmVyT2ZDaGFubmVscyA+IDApIHtcclxuICAgICAgICAgIGxldCBjaDAgPSB0aGlzLl9hdWRpb0RhdGEuZ2V0Q2hhbm5lbERhdGEoMCk7XHJcbiAgICAgICAgICBsZXQgZnJhbWVMZW5ndGggPSBjaDAubGVuZ3RoO1xyXG4gICAgICAgICAgbGV0IHZ3O1xyXG4gICAgICAgICAgaWYodGhpcy5ib3VuZHMpIHtcclxuICAgICAgICAgICAgICB2dyA9IHRoaXMuYm91bmRzLmRpbWVuc2lvbi53aWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnZpcnR1YWxEaW1lbnNpb24pIHtcclxuICAgICAgICAgICAgICB2dyA9IHRoaXMudmlydHVhbERpbWVuc2lvbi53aWR0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHZ3ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICBwaXhlbFBvcyA9IGZyYW1lUG9zICogdncgLyBmcmFtZUxlbmd0aDtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgcmV0dXJuIHBpeGVsUG9zO1xyXG59XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgcGl4ZWwgcG9zaXRpb24gaW4gdmlldyBwb3J0ICh2aXNpYmxlIHdpbmRvdyBvZiBzY3JvbGwgcGFuZSkuXHJcbiAgICogQHBhcmFtIGZyYW1lUG9zIGF1ZGlvIGZyYW1lIChzYW1wbGUpIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgZnJhbWVUb1ZpZXdQb3J0WFBpeGVsUG9zaXRpb24oZnJhbWVQb3M6IG51bWJlcik6IG51bWJlciB8IG51bGwge1xyXG4gICAgbGV0IHBpeGVsUG9zPXRoaXMuZnJhbWVUb1hQaXhlbFBvc2l0aW9uKGZyYW1lUG9zKTtcclxuICAgIGlmKHBpeGVsUG9zIT1udWxsKXtcclxuICAgICAgbGV0IHZQaXhlbFBvcyA9IHRoaXMudG9YVmlld1BvcnRQaXhlbFBvc2l0aW9uKHBpeGVsUG9zKTtcclxuICAgICAgcmV0dXJuIHZQaXhlbFBvcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgICB2aWV3UG9ydFhQaXhlbFRvRnJhbWVQb3NpdGlvbih4Vmlld1BvcnRQaXhlbFBvczogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IHZwWHJhbWVQb3M9bnVsbDtcclxuICAgICAgICBpZiAodGhpcy5fYXVkaW9EYXRhICYmIHRoaXMuX2F1ZGlvRGF0YS5udW1iZXJPZkNoYW5uZWxzID4gMCkge1xyXG4gICAgICAgICAgICBsZXQgY2gwID0gdGhpcy5fYXVkaW9EYXRhLmdldENoYW5uZWxEYXRhKDApO1xyXG4gICAgICAgICAgICBsZXQgZnJhbWVMZW5ndGggPSBjaDAubGVuZ3RoO1xyXG4gICAgICAgICAgICBsZXQgdnc7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJvdW5kcykge1xyXG4gICAgICAgICAgICAgICAgdnc9IHRoaXMuYm91bmRzLmRpbWVuc2lvbi53aWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy52aXJ0dWFsRGltZW5zaW9uKSB7XHJcbiAgICAgICAgICAgICAgICB2dyA9IHRoaXMudmlydHVhbERpbWVuc2lvbi53aWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZih2dyE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGxldCB4VmlydHVhbFBpeGVsUG9zID0gdGhpcy50b1hWaXJ0dWFsUGl4ZWxQb3NpdGlvbih4Vmlld1BvcnRQaXhlbFBvcylcclxuICAgICAgICAgICAgICAgIGxldCBmcmFtZXNQZXJQaXhlbCA9IGZyYW1lTGVuZ3RoIC8gdnc7XHJcbiAgICAgICAgICAgICAgICBsZXQgZnJhbWVQb3MgPSBmcmFtZXNQZXJQaXhlbCAqIHhWaXJ0dWFsUGl4ZWxQb3M7XHJcbiAgICAgICAgICAgICAgICBpZiAoZnJhbWVQb3MgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJhbWVQb3MgPSAwXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZnJhbWVQb3MgPj0gZnJhbWVMZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZVBvcyA9IGZyYW1lTGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdnBYcmFtZVBvcyA9IE1hdGgucm91bmQoZnJhbWVQb3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2cFhyYW1lUG9zO1xyXG4gICAgfVxyXG5cclxuICAgIGxheW91dEJvdW5kcyhib3VuZHM6UmVjdGFuZ2xlLCB2aXJ0dWFsRGltZW5zaW9uOkRpbWVuc2lvbixyZWRyYXc6IGJvb2xlYW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5ib3VuZHM9Ym91bmRzO1xyXG4gICAgICAgIHRoaXMudmlydHVhbERpbWVuc2lvbj12aXJ0dWFsRGltZW5zaW9uO1xyXG4gICAgICAgIC8vdGhpcy5jYW52YXNMYXllcnMuZm9yRWFjaChjbD0+e1xyXG4gICAgICAgIGZvcihsZXQgY2k9MDtjaTx0aGlzLmNhbnZhc0xheWVycy5sZW5ndGg7Y2krKykge1xyXG4gICAgICAgICAgICBsZXQgY2wgPSB0aGlzLmNhbnZhc0xheWVyc1tjaV07XHJcbiAgICAgICAgICAgIGNvbnN0IGxlZnRTdHlsZT1ib3VuZHMucG9zaXRpb24ubGVmdCsgJ3B4JztcclxuICAgICAgICAgICAgaWYoY2wuc3R5bGUubGVmdCE9bGVmdFN0eWxlKSB7XHJcbiAgICAgICAgICAgICAgY2wuc3R5bGUubGVmdCA9IGxlZnRTdHlsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB0b3BTdHlsZT1ib3VuZHMucG9zaXRpb24udG9wICsgJ3B4JztcclxuICAgICAgICAgICAgaWYoY2wuc3R5bGUudG9wIT10b3BTdHlsZSkge1xyXG4gICAgICAgICAgICAgIGNsLnN0eWxlLnRvcCA9IHRvcFN0eWxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChib3VuZHMuZGltZW5zaW9uLndpZHRoKSB7XHJcbiAgICAgICAgICAgIGxldCBpbnRXPU1hdGguZmxvb3IoYm91bmRzLmRpbWVuc2lvbi53aWR0aCk7XHJcbiAgICAgICAgICAgIGlmIChyZWRyYXcpIHtcclxuICAgICAgICAgICAgICAgIC8vIERvIG5vdCBzZXQgd2lkdGggb2YgYmFja2dyb3VuZCBjYW52YXMgKGNhdXNlcyBmbGlja2VyIG9uIHN0YXJ0IHJlbmRlcilcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgY2k9MTtjaTx0aGlzLmNhbnZhc0xheWVycy5sZW5ndGg7Y2krKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjbCA9IHRoaXMuY2FudmFzTGF5ZXJzW2NpXTtcclxuICAgICAgICAgICAgICAgICAgICBpZihjbC53aWR0aCE9aW50Vykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2wud2lkdGggPSBpbnRXO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgd1N0ciA9IGludFcudG9TdHJpbmcoKSArICdweCc7XHJcbiAgICAgICAgICAgIGZvcihsZXQgY2k9MDtjaTx0aGlzLmNhbnZhc0xheWVycy5sZW5ndGg7Y2krKykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGNsID0gdGhpcy5jYW52YXNMYXllcnNbY2ldO1xyXG4gICAgICAgICAgICAgICAgaWYoY2wuc3R5bGUud2lkdGghPXdTdHIpIHtcclxuICAgICAgICAgICAgICAgICAgY2wuc3R5bGUud2lkdGggPSB3U3RyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChib3VuZHMuZGltZW5zaW9uLmhlaWdodCkge1xyXG4gICAgICAgICAgICBsZXQgaW50SD1NYXRoLmZsb29yKGJvdW5kcy5kaW1lbnNpb24uaGVpZ2h0KVxyXG4gICAgICAgICAgICBpZiAocmVkcmF3KSB7XHJcbiAgICAgICAgICAgICAgICAvLyBEbyBub3Qgc2V0IGhlaWdodCBvZiBiYWNrZ3JvdW5kIGNhbnZhcyAoY2F1c2VzIGZsaWNrZXIgb24gc3RhcnQgcmVuZGVyKVxyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBjaT0xO2NpPHRoaXMuY2FudmFzTGF5ZXJzLmxlbmd0aDtjaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsID0gdGhpcy5jYW52YXNMYXllcnNbY2ldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGNsLmhlaWdodCE9aW50SCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY2wuaGVpZ2h0ID0gaW50SDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGhTdHIgPSBpbnRIICsgJ3B4JztcclxuICAgICAgICAgICAgZm9yKGxldCBjaT0wO2NpPHRoaXMuY2FudmFzTGF5ZXJzLmxlbmd0aDtjaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2wgPSB0aGlzLmNhbnZhc0xheWVyc1tjaV07XHJcbiAgICAgICAgICAgICAgICBpZihjbC5zdHlsZS5oZWlnaHQhPWhTdHIpe1xyXG4gICAgICAgICAgICAgICAgICBjbC5zdHlsZS5oZWlnaHQgPSBoU3RyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vfSk7XHJcblxyXG5cclxuICAgIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdWRpb0NhbnZhc0xheWVyQ29tcG9uZW50IGV4dGVuZHMgQmFzaWNBdWRpb0NhbnZhc0xheWVyQ29tcG9uZW50IHtcclxuICAgIF9wb2ludGVyUG9zaXRpb246TWFya2VyfG51bGw9bnVsbDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgc2VsZWN0U3RhcnRYOm51bWJlcnxudWxsPW51bGw7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYmcnLCB7IHN0YXRpYzogdHJ1ZSB9KSBiZ0NhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgICBiZ0NhbnZhcyE6IEhUTUxDYW52YXNFbGVtZW50O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2N1cnNvcicsIHsgc3RhdGljOiB0cnVlIH0pIGN1cnNvckNhbnZhc1JlZiE6IEVsZW1lbnRSZWY7XHJcbiAgICBjdXJzb3JDYW52YXMhOiBIVE1MQ2FudmFzRWxlbWVudDtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZXVwKG1lOiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNvbW1pdChtZSlcclxuICB9XHJcblxyXG4gICAgbGF5b3V0Qm91bmRzKGJvdW5kczpSZWN0YW5nbGUsIHZpcnR1YWxEaW1lbnNpb246RGltZW5zaW9uLHJlZHJhdzogYm9vbGVhbixjbGVhcjpib29sZWFuPXRydWUpIHtcclxuICAgICAgICBzdXBlci5sYXlvdXRCb3VuZHMoYm91bmRzLHZpcnR1YWxEaW1lbnNpb24scmVkcmF3KVxyXG4gICAgICAgIGlmIChyZWRyYXcpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydERyYXcoY2xlYXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBzZXQgcG9pbnRlclBvc2l0aW9uKHBvaW50ZXJQb3NpdGlvbjpNYXJrZXJ8bnVsbCl7XHJcbiAgICAgICAgdGhpcy5fcG9pbnRlclBvc2l0aW9uPXBvaW50ZXJQb3NpdGlvblxyXG4gICAgICAgIHRoaXMuZHJhd0N1cnNvckxheWVyKClcclxuICAgIH1cclxuXHJcbiAgICBfc2VsZWN0aW5nOiBTZWxlY3Rpb258bnVsbCA9bnVsbDtcclxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3Rpbmcoc2VsZWN0aW5nOlNlbGVjdGlvbnwgbnVsbCl7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW5nPXNlbGVjdGluZ1xyXG4gICAgICAgIHRoaXMuZHJhd0JnKClcclxuICAgICAgICB0aGlzLmRyYXdDdXJzb3JMYXllcigpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlbGVjdGluZygpOlNlbGVjdGlvbnxudWxse1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RpbmdcclxuICAgIH1cclxuXHJcbiAgICBfc2VsZWN0aW9uOiBTZWxlY3Rpb258bnVsbCA9bnVsbFxyXG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGlvbihzZWxlY3Rpb246U2VsZWN0aW9ufG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbj1zZWxlY3Rpb247XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpbmc9bnVsbDtcclxuICAgICAgICB0aGlzLmRyYXdCZygpXHJcbiAgICAgICAgdGhpcy5kcmF3Q3Vyc29yTGF5ZXIoKVxyXG4gICAgfVxyXG5cclxuICAgIGdldCBzZWxlY3Rpb24oKTpTZWxlY3Rpb258bnVsbHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uXHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0aW9uU3RhcnQobWU6TW91c2VFdmVudCl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RTdGFydFg9bWUub2Zmc2V0WDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3Rpb25Db21taXQobWU6TW91c2VFdmVudCl7XHJcbiAgICAgICAgbGV0IHZzOlZpZXdTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0U3RhcnRYIT1udWxsKSB7XHJcbiAgICAgICAgICB2cz1uZXcgVmlld1NlbGVjdGlvbih0aGlzLnNlbGVjdFN0YXJ0WCxtZS5vZmZzZXRYKVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RTdGFydFg9bnVsbDtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0KHZzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWJzdHJhY3Qgc3RhcnREcmF3KGNsZWFyOmJvb2xlYW4pOnZvaWQ7XHJcblxyXG4gICAgdXBkYXRlQ3Vyc29yQ2FudmFzKG1lOk1vdXNlRXZlbnQsc2hvd0N1cnNvclBvc2l0aW9uPXRydWUpe1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JDYW52YXMpIHtcclxuXHJcbiAgICAgICAgICAgIGxldCB3ID0gdGhpcy5jdXJzb3JDYW52YXMud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCBoID0gdGhpcy5jdXJzb3JDYW52YXMuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgZyA9IHRoaXMuY3Vyc29yQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGlmICghc2hvd0N1cnNvclBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnNlbGVjdFN0YXJ0WCA9IG51bGxcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0aW5nQ2hhbmdlKG51bGwpXHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgaWYgKG1lKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RTdGFydFgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJQb3NpdGlvbkNoYW5nZWQobnVsbClcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGluZ0NoYW5nZShuZXcgVmlld1NlbGVjdGlvbih0aGlzLnNlbGVjdFN0YXJ0WCwgbWUub2Zmc2V0WCkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2hvd0N1cnNvclBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9pbnRlclBvc2l0aW9uQ2hhbmdlZChtZS5vZmZzZXRYKVxyXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJQb3NpdGlvbkNoYW5nZWQobnVsbClcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpIHBvaW50ZXJQb3NpdGlvbkV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8TWFya2VyPigpO1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGluZ0V2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uPigpO1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGVkRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb24+KCk7XHJcblxyXG5cclxuICAgIHBvaW50ZXJQb3NpdGlvbkNoYW5nZWQoeFBvc2l0aW9uOm51bWJlcnwgbnVsbCl7XHJcbiAgICAgICAgbGV0IHBvaW50ZXJQb3NpdGlvbjpNYXJrZXJ8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICAgICAgICBpZih4UG9zaXRpb24pe1xyXG4gICAgICAgICAgICBwb2ludGVyUG9zaXRpb249bmV3IE1hcmtlcigpO1xyXG4gICAgICAgICAgICBsZXQgdnBYUG9zPXRoaXMudmlld1BvcnRYUGl4ZWxUb0ZyYW1lUG9zaXRpb24oeFBvc2l0aW9uKTtcclxuICAgICAgICAgICAgaWYodnBYUG9zIT1udWxsKSB7XHJcbiAgICAgICAgICAgICAgICBwb2ludGVyUG9zaXRpb24uZnJhbWVQb3NpdGlvbiA9dnBYUG9zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucG9pbnRlclBvc2l0aW9uRXZlbnRFbWl0dGVyLmVtaXQocG9pbnRlclBvc2l0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RpbmdDaGFuZ2Uodmlld1NlbDpWaWV3U2VsZWN0aW9ufCBudWxsKXtcclxuICAgICAgICBsZXQgbnM6U2VsZWN0aW9ufHVuZGVmaW5lZD11bmRlZmluZWQ7XHJcbiAgICAgICAgaWYodmlld1NlbCkge1xyXG4gICAgICAgICAgICBsZXQgZnJhbWVTdGFydCA9IHRoaXMudmlld1BvcnRYUGl4ZWxUb0ZyYW1lUG9zaXRpb24odmlld1NlbC5zdGFydFgpXHJcbiAgICAgICAgICAgIGxldCBmcmFtZUVuZCA9IHRoaXMudmlld1BvcnRYUGl4ZWxUb0ZyYW1lUG9zaXRpb24odmlld1NlbC5lbmRYKVxyXG4gICAgICAgICAgICBpZih0aGlzLl9hdWRpb0RhdGEgJiYgZnJhbWVTdGFydCE9bnVsbCAmJiBmcmFtZUVuZCE9bnVsbCkge1xyXG4gICAgICAgICAgICAgICAgbnMgPSBuZXcgU2VsZWN0aW9uKHRoaXMuX2F1ZGlvRGF0YS5zYW1wbGVSYXRlLCBmcmFtZVN0YXJ0LCBmcmFtZUVuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RpbmdFdmVudEVtaXR0ZXIuZW1pdChucylcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3Qodmlld1NlbDpWaWV3U2VsZWN0aW9ufCBudWxsKXtcclxuICAgICAgICBsZXQgbnM6U2VsZWN0aW9ufHVuZGVmaW5lZD11bmRlZmluZWQ7XHJcbiAgICAgICAgaWYodmlld1NlbCkge1xyXG4gICAgICAgICAgbGV0IGZyYW1lU3RhcnQgPSB0aGlzLnZpZXdQb3J0WFBpeGVsVG9GcmFtZVBvc2l0aW9uKHZpZXdTZWwuc3RhcnRYKVxyXG4gICAgICAgICAgbGV0IGZyYW1lRW5kID0gdGhpcy52aWV3UG9ydFhQaXhlbFRvRnJhbWVQb3NpdGlvbih2aWV3U2VsLmVuZFgpXHJcbiAgICAgICAgICAgIGlmKHRoaXMuX2F1ZGlvRGF0YSAmJiBmcmFtZVN0YXJ0IT1udWxsICYmIGZyYW1lRW5kIT1udWxsKSB7XHJcbiAgICAgICAgICAgICAgICBucyA9IG5ldyBTZWxlY3Rpb24odGhpcy5fYXVkaW9EYXRhLnNhbXBsZVJhdGUsIGZyYW1lU3RhcnQsIGZyYW1lRW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXZlbnRFbWl0dGVyLmVtaXQobnMpXHJcbiAgICB9XHJcblxyXG4gICAgdmlld1NlbGVjdGlvbigpOlZpZXdTZWxlY3Rpb258bnVsbHtcclxuICAgICAgbGV0IHZzOlZpZXdTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgICBsZXQgczpTZWxlY3Rpb258bnVsbD1udWxsO1xyXG4gICAgICBpZih0aGlzLl9zZWxlY3Rpbmcpe1xyXG4gICAgICAgIHM9dGhpcy5fc2VsZWN0aW5nXHJcbiAgICAgIH1lbHNlIGlmKHRoaXMuX3NlbGVjdGlvbil7XHJcbiAgICAgICAgcz10aGlzLl9zZWxlY3Rpb25cclxuICAgICAgfVxyXG4gICAgICBpZihzKXtcclxuICAgICAgICBsZXQgc2Y9cy5zdGFydEZyYW1lO1xyXG4gICAgICAgIGxldCBlZj1zLmVuZEZyYW1lO1xyXG4gICAgICAgIGxldCB4cz10aGlzLmZyYW1lVG9WaWV3UG9ydFhQaXhlbFBvc2l0aW9uKHNmKVxyXG4gICAgICAgIGxldCB4ZT10aGlzLmZyYW1lVG9WaWV3UG9ydFhQaXhlbFBvc2l0aW9uKGVmKVxyXG4gICAgICAgICAgaWYoeHMhPW51bGwgJiYgeGUhPW51bGwpIHtcclxuICAgICAgICAgICAgICB2cyA9IG5ldyBWaWV3U2VsZWN0aW9uKHhzLCB4ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdnM7XHJcbiAgICB9XHJcblxyXG5cclxuICBkcmF3QmcoKXtcclxuICAgICAgaWYodGhpcy5iZ0NhbnZhcyAmJiB0aGlzLmJvdW5kcykge1xyXG4gICAgICAgICAgdGhpcy5iZ0NhbnZhcy5zdHlsZS5sZWZ0ID0gTWF0aC5yb3VuZCh0aGlzLmJvdW5kcy5wb3NpdGlvbi5sZWZ0KS50b1N0cmluZygpICsgJ3B4JztcclxuICAgICAgICAgIHRoaXMuYmdDYW52YXMud2lkdGggPSBNYXRoLnJvdW5kKHRoaXMuYm91bmRzLmRpbWVuc2lvbi53aWR0aCk7XHJcbiAgICAgICAgICB0aGlzLmJnQ2FudmFzLmhlaWdodCA9IE1hdGgucm91bmQodGhpcy5ib3VuZHMuZGltZW5zaW9uLmhlaWdodCk7XHJcbiAgICAgICAgbGV0IGcxID0gdGhpcy5iZ0NhbnZhcy5nZXRDb250ZXh0KFwiMmRcIik7XHJcbiAgICAgICAgaWYgKGcxKSB7XHJcbiAgICAgICAgICBsZXQgdyA9IHRoaXMuYmdDYW52YXMud2lkdGg7XHJcbiAgICAgICAgICBsZXQgaCA9IHRoaXMuYmdDYW52YXMuaGVpZ2h0O1xyXG4gICAgICAgICAgZzEuY2xlYXJSZWN0KDAsIDAsIHcsIGgpO1xyXG4gICAgICAgICAgaWYodGhpcy5fYmdDb2xvcikge1xyXG4gICAgICAgICAgICBnMS5maWxsU3R5bGUgPSB0aGlzLl9iZ0NvbG9yO1xyXG4gICAgICAgICAgICBnMS5maWxsUmVjdCgwLCAwLCB3LCBoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCB2cyA9IHRoaXMudmlld1NlbGVjdGlvbigpXHJcbiAgICAgICAgICBpZiAodnMpIHtcclxuICAgICAgICAgICAgZzEuZmlsbFN0eWxlID0gdGhpcy5fc2VsZWN0Q29sb3I7XHJcbiAgICAgICAgICAgIGcxLmZpbGxSZWN0KHZzLnN0YXJ0WCwgMCwgdnMud2lkdGgoKSwgaCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfVxyXG4gICAgZHJhd0N1cnNvckxheWVyKCl7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yQ2FudmFzKSB7XHJcbiAgICAgICAgICAgIGxldCB3ID0gdGhpcy5jdXJzb3JDYW52YXMud2lkdGg7XHJcbiAgICAgICAgICAgIGxldCBoID0gdGhpcy5jdXJzb3JDYW52YXMuaGVpZ2h0O1xyXG4gICAgICAgICAgICBsZXQgZyA9IHRoaXMuY3Vyc29yQ2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcclxuICAgICAgICAgICAgaWYoZykge1xyXG4gICAgICAgICAgICAgICAgZy5jbGVhclJlY3QoMCwgMCwgdywgaCk7XHJcbiAgICAgICAgICAgICAgICAvLyBsZXQgczpTZWxlY3Rpb249bnVsbDtcclxuICAgICAgICAgICAgICAgIC8vIGlmKHRoaXMuX3NlbGVjdGluZyl7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgcz10aGlzLl9zZWxlY3RpbmdcclxuICAgICAgICAgICAgICAgIC8vIH1lbHNlIGlmKHRoaXMuX3NlbGVjdGlvbil7XHJcbiAgICAgICAgICAgICAgICAvLyAgICAgcz10aGlzLl9zZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAgIC8vIGlmKHMpe1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCBzZj1zLnN0YXJ0RnJhbWVcclxuICAgICAgICAgICAgICAgIC8vICAgICBsZXQgZWY9cy5lbmRGcmFtZVxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCB4cz10aGlzLmZyYW1lVG9WaWV3UG9ydFhQaXhlbFBvc2l0aW9uKHNmKVxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCB4ZT10aGlzLmZyYW1lVG9WaWV3UG9ydFhQaXhlbFBvc2l0aW9uKGVmKVxyXG4gICAgICAgICAgICAgICAgLy8gICAgIGxldCBzdz14ZS14c1xyXG4gICAgICAgICAgICAgICAgLy8gICAgIGcuZmlsbFN0eWxlID0gJ3JnYmEoMCUsMCUsMTAwJSwyNSUpJztcclxuICAgICAgICAgICAgICAgIC8vICAgICBnLmZpbGxSZWN0KHhzLDAsc3csaCk7XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5fcG9pbnRlclBvc2l0aW9uKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZyYW1lUG9zPXRoaXMuX3BvaW50ZXJQb3NpdGlvbi5mcmFtZVBvc2l0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZnJhbWVQb3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHhWaWV3UG9ydFBpeGVscG9zID0gdGhpcy5mcmFtZVRvVmlld1BvcnRYUGl4ZWxQb3NpdGlvbihmcmFtZVBvcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHhWaWV3UG9ydFBpeGVscG9zKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZy5maWxsU3R5bGUgPSAneWVsbG93JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuc3Ryb2tlU3R5bGUgPSAneWVsbG93JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLm1vdmVUbyh4Vmlld1BvcnRQaXhlbHBvcywgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLmxpbmVUbyh4Vmlld1BvcnRQaXhlbHBvcywgaCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnLmNsb3NlUGF0aCgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuc3Ryb2tlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2F1ZGlvRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuZm9udCA9ICcxNHB4IHNhbnMtc2VyaWYnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gJ3llbGxvdyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZy5maWxsVGV4dChmcmFtZVBvcy50b1N0cmluZygpLCB4Vmlld1BvcnRQaXhlbHBvcyArIDIsIDUwKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuIl19
@@ -37,8 +37,8 @@ export class AudioDisplayControl {
37
37
  this.status = 'ERROR';
38
38
  }
39
39
  }
40
- AudioDisplayControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AudioDisplayControl, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
41
- AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AudioDisplayControl, selector: "audio-display-control", inputs: { audioClip: "audioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", playStopAction: "playStopAction", zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomFitToPanelAction: "zoomFitToPanelAction", zoomSelectedAction: "zoomSelectedAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction" }, viewQueries: [{ propertyName: "autoplaySelectedCheckbox", first: true, predicate: MatCheckbox, descendants: true, static: true }], ngImport: i0, template: `
40
+ AudioDisplayControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayControl, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
41
+ AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AudioDisplayControl, selector: "audio-display-control", inputs: { audioClip: "audioClip", playStartAction: "playStartAction", playSelectionAction: "playSelectionAction", playStopAction: "playStopAction", zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomFitToPanelAction: "zoomFitToPanelAction", zoomSelectedAction: "zoomSelectedAction", autoPlayOnSelectToggleAction: "autoPlayOnSelectToggleAction" }, viewQueries: [{ propertyName: "autoplaySelectedCheckbox", first: true, predicate: MatCheckbox, descendants: true, static: true }], ngImport: i0, template: `
42
42
  <div #controlPanel style="display:flex;flex-direction: row;">
43
43
  <fieldset>
44
44
 
@@ -81,8 +81,8 @@ AudioDisplayControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
81
81
  </button>
82
82
 
83
83
  </fieldset>
84
- </div>`, isInline: true, styles: [":host {\n flex: 0;\n\n }"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AudioDisplayControl, decorators: [{
84
+ </div>`, isInline: true, styles: [":host{flex:0}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayControl, decorators: [{
86
86
  type: Component,
87
87
  args: [{
88
88
  selector: 'audio-display-control',
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
159
159
  }], autoPlayOnSelectToggleAction: [{
160
160
  type: Input
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheV9jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2F1ZGlvX2Rpc3BsYXlfY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF1QyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFBO0FBRTlGLE9BQU8sRUFBQyxXQUFXLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQTJEekUsTUFBTSxPQUFPLG1CQUFtQjtJQWtCL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQi9CLGNBQVMsR0FBaUIsSUFBSSxDQUFDO1FBR2hDLDZCQUF3QixHQUFtQixJQUFJLENBQUM7UUFJL0MsaUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBQ3JDLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUkvQyxXQUFNLEdBQWEsSUFBSSxDQUFDO0lBTTFCLENBQUM7SUFFQyxrQkFBa0I7SUFFcEIsQ0FBQztJQUVDLGNBQWM7UUFDVixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUUsSUFBSSxFQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQTtTQUNoQztJQUNMLENBQUM7SUFFQyxZQUFZO1FBQ1IsSUFBSSxFQUFFLEdBQUMsS0FBSyxDQUFDO1FBQ2IsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFDO1lBQ2QsRUFBRSxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUUsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFSCx1QkFBdUIsQ0FBQyxFQUFxQjtRQUN6QyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNuQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUN4RDtJQUNMLENBQUM7SUFFSCxLQUFLO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDdkIsQ0FBQzs7aUhBaERXLG1CQUFtQjtxR0FBbkIsbUJBQW1CLGllQUlsQixXQUFXLDhEQXZEWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQTJDQzs0RkFRRCxtQkFBbUI7a0JBdkQ5QixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSx1QkFBdUI7b0JBRWpDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQTJDQztvQkFDWCxNQUFNLEVBQUU7d0JBQ0o7OztRQUdBO3FCQUFDO2lCQUVOO3dHQUdVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0Usd0JBQXdCO3NCQUQvQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRS9CLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdG9yUmVmLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5cclxuXHJcbiAgQENvbXBvbmVudCh7XHJcblxyXG4gICAgc2VsZWN0b3I6ICdhdWRpby1kaXNwbGF5LWNvbnRyb2wnLFxyXG5cclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiAjY29udHJvbFBhbmVsIHN0eWxlPVwiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7XCI+XHJcbiAgICAgICAgICAgIDxmaWVsZHNldD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGVnZW5kPlBsYXk8L2xlZ2VuZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U3RhcnRBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJwbGF5U3RhcnRBY3Rpb24/LmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCIgbWF0VG9vbHRpcD1cIlBsYXkgYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBsYXlfYXJyb3c8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U2VsZWN0aW9uQWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwicGxheVNlbGVjdGlvbkFjdGlvbj8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwicGxheVNlbGVjdGlvbkFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCIgbWF0VG9vbHRpcD1cIlBsYXkgc2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBsYXlfY2lyY2xlX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U3RvcEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJwbGF5U3RvcEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAneWVsbG93J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5zdG9wPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAjYXV0b3BsYXlTZWxlY3Rpb25DaGVja2JveCAoY2hhbmdlKT1cImF1dG9QbGF5U2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5BdXRvcGxheSBvbiBzZWxlY3RcclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxlZ2VuZD5ab29tPC9sZWdlbmQ+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ6b29tRml0VG9QYW5lbEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uPy5kaXNhYmxlZFwiPnt7em9vbUZpdFRvUGFuZWxBY3Rpb24/Lm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiem9vbU91dEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21PdXRBY3Rpb24/LmRpc2FibGVkXCI+e3t6b29tT3V0QWN0aW9uPy5uYW1lfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInpvb21JbkFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21JbkFjdGlvbj8uZGlzYWJsZWRcIj57e3pvb21JbkFjdGlvbj8ubmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ6b29tU2VsZWN0ZWRBY3Rpb24/LnBlcmZvcm0oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ6b29tU2VsZWN0ZWRBY3Rpb24/LmRpc2FibGVkXCI+e3t6b29tU2VsZWN0ZWRBY3Rpb24/Lm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgICA8bGVnZW5kPlNlbGVjdGlvbjwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgICAge3thdWRpb0NsaXA/LnNlbGVjdGlvbj8ubGVmdEZyYW1lfX0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF1ZGlvQ2xpcD8uc2VsZWN0aW9uXCI+dG88L3NwYW4+IHt7YXVkaW9DbGlwPy5zZWxlY3Rpb24/LnJpZ2h0RnJhbWV9fVxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiIFtkaXNhYmxlZF09XCJhdWRpb0NsaXA/LnNlbGVjdGlvbj09bnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJoYXNTZWxlY3Rpb24oKSA/ICdyZWQnIDogJ2dyZXknXCIgbWF0VG9vbHRpcD1cIkNsZWFyIHNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgPC9kaXY+YCxcclxuICAgIHN0eWxlczogW1xyXG4gICAgICAgIGA6aG9zdCB7XHJcbiAgICAgICAgZmxleDogMDtcclxuXHJcbiAgICAgIH1gXVxyXG5cclxuICB9KVxyXG5cdGV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlDb250cm9sIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgYXVkaW9DbGlwOiBBdWRpb0NsaXB8bnVsbD1udWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTWF0Q2hlY2tib3gsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwcml2YXRlIGF1dG9wbGF5U2VsZWN0ZWRDaGVja2JveDogTWF0Q2hlY2tib3h8bnVsbD1udWxsO1xyXG4gICAgQElucHV0KCkgcGxheVN0YXJ0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcGxheVNlbGVjdGlvbkFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgem9vbUluQWN0aW9uOiBBY3Rpb248dm9pZD58bnVsbD1udWxsO1xyXG4gICAgQElucHV0KCkgem9vbU91dEFjdGlvbjogQWN0aW9uPHZvaWQ+fG51bGw9bnVsbDtcclxuICAgIEBJbnB1dCgpIHpvb21GaXRUb1BhbmVsQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgem9vbVNlbGVjdGVkQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbjogQWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuXHQgICBzdGF0dXM6c3RyaW5nfG51bGw9bnVsbDtcclxuXHJcblx0XHRhdWRpbzphbnk7XHJcblxyXG5cdFx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG5cdFx0fVxyXG5cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuXHJcblx0XHR9XHJcblxyXG4gICAgY2xlYXJTZWxlY3Rpb24oKXtcclxuICAgICAgICBpZih0aGlzLmF1ZGlvQ2xpcCE9bnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9DbGlwLnNlbGVjdGlvbj1udWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICAgaGFzU2VsZWN0aW9uKCk6Ym9vbGVhbntcclxuICAgICAgICAgIGxldCBocz1mYWxzZTtcclxuICAgICAgICAgIGlmKHRoaXMuYXVkaW9DbGlwKXtcclxuICAgICAgICAgICAgICBocz0odGhpcy5hdWRpb0NsaXAuc2VsZWN0aW9uIT1udWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBocztcclxuICAgICAgfVxyXG5cclxuICAgIGF1dG9QbGF5U2VsZWN0aW9uQ2hhbmdlKGNoOiBNYXRDaGVja2JveENoYW5nZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uLnBlcmZvcm0oY2guY2hlY2tlZClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cdFx0ZXJyb3IoKXtcclxuXHRcdFx0dGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG5cdFx0fVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheV9jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL2F1ZGlvL3VpL2F1ZGlvX2Rpc3BsYXlfY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF1QyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFBO0FBRTlGLE9BQU8sRUFBQyxXQUFXLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQTJEekUsTUFBTSxPQUFPLG1CQUFtQjtJQWtCL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQi9CLGNBQVMsR0FBaUIsSUFBSSxDQUFDO1FBR2hDLDZCQUF3QixHQUFtQixJQUFJLENBQUM7UUFJL0MsaUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBQ3JDLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUkvQyxXQUFNLEdBQWEsSUFBSSxDQUFDO0lBTTFCLENBQUM7SUFFQyxrQkFBa0I7SUFFcEIsQ0FBQztJQUVDLGNBQWM7UUFDVixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUUsSUFBSSxFQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQTtTQUNoQztJQUNMLENBQUM7SUFFQyxZQUFZO1FBQ1IsSUFBSSxFQUFFLEdBQUMsS0FBSyxDQUFDO1FBQ2IsSUFBRyxJQUFJLENBQUMsU0FBUyxFQUFDO1lBQ2QsRUFBRSxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUUsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFSCx1QkFBdUIsQ0FBQyxFQUFxQjtRQUN6QyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNuQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUN4RDtJQUNMLENBQUM7SUFFSCxLQUFLO1FBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDdkIsQ0FBQzs7Z0hBaERXLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGllQUlsQixXQUFXLDhEQXZEWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQTJDQzsyRkFRRCxtQkFBbUI7a0JBdkQ5QixTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSx1QkFBdUI7b0JBRWpDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztlQTJDQztvQkFDWCxNQUFNLEVBQUU7d0JBQ0o7OztRQUdBO3FCQUFDO2lCQUVOO3dHQUdVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0Usd0JBQXdCO3NCQUQvQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRS9CLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdG9yUmVmLCBJbnB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtNYXRDaGVja2JveCwgTWF0Q2hlY2tib3hDaGFuZ2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5cclxuXHJcbiAgQENvbXBvbmVudCh7XHJcblxyXG4gICAgc2VsZWN0b3I6ICdhdWRpby1kaXNwbGF5LWNvbnRyb2wnLFxyXG5cclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiAjY29udHJvbFBhbmVsIHN0eWxlPVwiZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiByb3c7XCI+XHJcbiAgICAgICAgICAgIDxmaWVsZHNldD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGVnZW5kPlBsYXk8L2xlZ2VuZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U3RhcnRBY3Rpb24/LnBlcmZvcm0oKVwiIFtkaXNhYmxlZF09XCJwbGF5U3RhcnRBY3Rpb24/LmRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCIgbWF0VG9vbHRpcD1cIlBsYXkgYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBsYXlfYXJyb3c8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U2VsZWN0aW9uQWN0aW9uPy5wZXJmb3JtKClcIiBbZGlzYWJsZWRdPVwicGxheVNlbGVjdGlvbkFjdGlvbj8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwicGxheVNlbGVjdGlvbkFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCIgbWF0VG9vbHRpcD1cIlBsYXkgc2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBsYXlfY2lyY2xlX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJwbGF5U3RvcEFjdGlvbj8ucGVyZm9ybSgpXCIgW2Rpc2FibGVkXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJwbGF5U3RvcEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAneWVsbG93J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5zdG9wPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAjYXV0b3BsYXlTZWxlY3Rpb25DaGVja2JveCAoY2hhbmdlKT1cImF1dG9QbGF5U2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5BdXRvcGxheSBvbiBzZWxlY3RcclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxlZ2VuZD5ab29tPC9sZWdlbmQ+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ6b29tRml0VG9QYW5lbEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uPy5kaXNhYmxlZFwiPnt7em9vbUZpdFRvUGFuZWxBY3Rpb24/Lm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiem9vbU91dEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21PdXRBY3Rpb24/LmRpc2FibGVkXCI+e3t6b29tT3V0QWN0aW9uPy5uYW1lfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInpvb21JbkFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21JbkFjdGlvbj8uZGlzYWJsZWRcIj57e3pvb21JbkFjdGlvbj8ubmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ6b29tU2VsZWN0ZWRBY3Rpb24/LnBlcmZvcm0oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ6b29tU2VsZWN0ZWRBY3Rpb24/LmRpc2FibGVkXCI+e3t6b29tU2VsZWN0ZWRBY3Rpb24/Lm5hbWV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2ZpZWxkc2V0PlxyXG4gICAgICAgICAgICA8ZmllbGRzZXQ+XHJcbiAgICAgICAgICAgICAgICA8bGVnZW5kPlNlbGVjdGlvbjwvbGVnZW5kPlxyXG4gICAgICAgICAgICAgICAge3thdWRpb0NsaXA/LnNlbGVjdGlvbj8ubGVmdEZyYW1lfX0gPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImF1ZGlvQ2xpcD8uc2VsZWN0aW9uXCI+dG88L3NwYW4+IHt7YXVkaW9DbGlwPy5zZWxlY3Rpb24/LnJpZ2h0RnJhbWV9fVxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiIFtkaXNhYmxlZF09XCJhdWRpb0NsaXA/LnNlbGVjdGlvbj09bnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJoYXNTZWxlY3Rpb24oKSA/ICdyZWQnIDogJ2dyZXknXCIgbWF0VG9vbHRpcD1cIkNsZWFyIHNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgPC9kaXY+YCxcclxuICAgIHN0eWxlczogW1xyXG4gICAgICAgIGA6aG9zdCB7XHJcbiAgICAgICAgZmxleDogMDtcclxuXHJcbiAgICAgIH1gXVxyXG5cclxuICB9KVxyXG5cdGV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlDb250cm9sIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG4gICAgQElucHV0KCkgYXVkaW9DbGlwOiBBdWRpb0NsaXB8bnVsbD1udWxsO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTWF0Q2hlY2tib3gsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBwcml2YXRlIGF1dG9wbGF5U2VsZWN0ZWRDaGVja2JveDogTWF0Q2hlY2tib3h8bnVsbD1udWxsO1xyXG4gICAgQElucHV0KCkgcGxheVN0YXJ0QWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcGxheVNlbGVjdGlvbkFjdGlvbjogQWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgem9vbUluQWN0aW9uOiBBY3Rpb248dm9pZD58bnVsbD1udWxsO1xyXG4gICAgQElucHV0KCkgem9vbU91dEFjdGlvbjogQWN0aW9uPHZvaWQ+fG51bGw9bnVsbDtcclxuICAgIEBJbnB1dCgpIHpvb21GaXRUb1BhbmVsQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgem9vbVNlbGVjdGVkQWN0aW9uOiBBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbjogQWN0aW9uPGJvb2xlYW4+fHVuZGVmaW5lZDtcclxuXHQgICBzdGF0dXM6c3RyaW5nfG51bGw9bnVsbDtcclxuXHJcblx0XHRhdWRpbzphbnk7XHJcblxyXG5cdFx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG5cdFx0fVxyXG5cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuXHJcblx0XHR9XHJcblxyXG4gICAgY2xlYXJTZWxlY3Rpb24oKXtcclxuICAgICAgICBpZih0aGlzLmF1ZGlvQ2xpcCE9bnVsbCl7XHJcbiAgICAgICAgICAgIHRoaXMuYXVkaW9DbGlwLnNlbGVjdGlvbj1udWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICAgaGFzU2VsZWN0aW9uKCk6Ym9vbGVhbntcclxuICAgICAgICAgIGxldCBocz1mYWxzZTtcclxuICAgICAgICAgIGlmKHRoaXMuYXVkaW9DbGlwKXtcclxuICAgICAgICAgICAgICBocz0odGhpcy5hdWRpb0NsaXAuc2VsZWN0aW9uIT1udWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBocztcclxuICAgICAgfVxyXG5cclxuICAgIGF1dG9QbGF5U2VsZWN0aW9uQ2hhbmdlKGNoOiBNYXRDaGVja2JveENoYW5nZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9QbGF5T25TZWxlY3RUb2dnbGVBY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvUGxheU9uU2VsZWN0VG9nZ2xlQWN0aW9uLnBlcmZvcm0oY2guY2hlY2tlZClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cdFx0ZXJyb3IoKXtcclxuXHRcdFx0dGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG5cdFx0fVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4iXX0=
@@ -114,13 +114,13 @@ export class AudioDisplayScrollPane {
114
114
  this.ac.playFramePosition = framePos;
115
115
  }
116
116
  }
117
- AudioDisplayScrollPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AudioDisplayScrollPane, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
118
- AudioDisplayScrollPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: { audioClip: "audioClip" }, outputs: { zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomSelectedAction: "zoomSelectedAction", zoomFitToPanelAction: "zoomFitToPanelAction" }, host: { listeners: { "scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "ac", first: true, predicate: AudioClipUIContainer, descendants: true, static: true }], ngImport: i0, template: `
117
+ AudioDisplayScrollPane.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayScrollPane, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
118
+ AudioDisplayScrollPane.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.1", type: AudioDisplayScrollPane, selector: "audio-display-scroll-pane", inputs: { audioClip: "audioClip" }, outputs: { zoomInAction: "zoomInAction", zoomOutAction: "zoomOutAction", zoomSelectedAction: "zoomSelectedAction", zoomFitToPanelAction: "zoomFitToPanelAction" }, host: { listeners: { "scroll": "onScroll($event)", "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "ac", first: true, predicate: AudioClipUIContainer, descendants: true, static: true }], ngImport: i0, template: `
119
119
 
120
120
  <app-audio #audioSignalContainer (selectionEventEmitter)="selectionChanged($event)"></app-audio>
121
121
 
122
- `, isInline: true, styles: [":host {\n flex: 2;\n width: 100%;\n background: darkgray;\n box-sizing: border-box;\n height: 100%;\n position: relative;\n overflow-x: scroll;\n overflow-y: auto;\n }", "app-audio {\n\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /*position: absolute;*/\n box-sizing: border-box;\n }"], components: [{ type: i1.AudioClipUIContainer, selector: "app-audio", inputs: ["audioData", "audioClip"], outputs: ["selectionEventEmitter"] }] });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AudioDisplayScrollPane, decorators: [{
122
+ `, isInline: true, styles: [":host{flex:2;width:100%;background:darkgray;box-sizing:border-box;height:100%;position:relative;overflow-x:scroll;overflow-y:auto}\n", "app-audio{margin:0;padding:0;top:0;left:0;width:100%;height:100%;box-sizing:border-box}\n"], components: [{ type: i1.AudioClipUIContainer, selector: "app-audio", inputs: ["audioData", "audioClip"], outputs: ["selectionEventEmitter"] }] });
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: AudioDisplayScrollPane, decorators: [{
124
124
  type: Component,
125
125
  args: [{
126
126
  selector: 'audio-display-scroll-pane',
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
174
174
  }], audioClip: [{
175
175
  type: Input
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheV9zY3JvbGxfcGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFBYyxNQUFNLEVBQUUsS0FBSyxHQUN4QyxNQUFNLGVBQWUsQ0FBQTtBQUd0QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQXFDckUsTUFBTSxPQUFPLHNCQUFzQjtJQWdCakMsWUFBcUIsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFaMUIsaUJBQVksR0FBYyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFjLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLHVCQUFrQixHQUFjLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELHlCQUFvQixHQUFjLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLDRCQUF1QixHQUFjLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFTaEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtZQUM3QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQ3JDLElBQUcsUUFBUSxLQUFLLElBQUksRUFBQztnQkFDakIsT0FBTzthQUNWO1lBQ0QsSUFBSSxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFFekIsSUFBSSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDL0ksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsR0FBQyxLQUFLLENBQUE7UUFDNUMsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7WUFDN0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM5SyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFBO1lBQ3JDLElBQUcsUUFBUSxLQUFLLElBQUksRUFBQztnQkFDakIsT0FBTzthQUNWO1lBQ0QsSUFBSSxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFFekIsSUFBSSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDL0ksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsR0FBQyxLQUFLLENBQUE7UUFDNUMsQ0FBQyxDQUFBO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBRXZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFBO1lBRXZDLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQztZQUVsRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFBO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JDLDhCQUE4QjtZQUU5QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQTtZQUN6QixJQUFJLENBQUMsRUFBRTtnQkFDSCwrQkFBK0I7Z0JBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtnQkFFN0Isd0NBQXdDO2dCQUN4QyxJQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFO29CQUNsQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7b0JBQ3RDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztvQkFDekMsSUFBSSxZQUFZLEdBQUcsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFDakMsc0NBQXNDO29CQUN0QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUE7b0JBQ25ELGNBQWM7b0JBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFBO29CQUV4QixrQ0FBa0M7b0JBQ2xDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNyRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO3FCQUM3QjtpQkFDSjtnQkFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtnQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7YUFDN0M7UUFDTCxDQUFDLENBQUE7SUFFTCxDQUFDO0lBR0QsZ0JBQWdCO1FBQ2QsSUFBSSxHQUFHLEdBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0ksSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUdELFFBQVEsQ0FBQyxFQUFTO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUdELFFBQVEsQ0FBQyxLQUFZO1FBQ25CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0UsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBaUI7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsSUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRUgsSUFBSSxTQUFTLENBQUMsU0FBNkI7UUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUMsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVILElBQ0ksU0FBUyxDQUFDLFNBQTJCO1FBRXZDLElBQUksU0FBUyxHQUFrQixJQUFJLENBQUM7UUFDcEMsSUFBSSxHQUFHLEdBQWdCLElBQUksQ0FBQztRQUM1QixJQUFHLFNBQVMsRUFBQztZQUNYLFNBQVMsR0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQzNCLEdBQUcsR0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN6RCxDQUFDLENBQUMsQ0FBQTtTQUNIO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFDLFNBQVMsQ0FBQTtRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHRCxJQUFJLGlCQUFpQixDQUFDLFFBQWU7UUFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsR0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQzs7b0hBaEpVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHdZQVd0QixvQkFBb0IsOERBekNyQjs7OztHQUlUOzRGQTBCVSxzQkFBc0I7a0JBbENsQyxTQUFTO21CQUFDO29CQUVULFFBQVEsRUFBRSwyQkFBMkI7b0JBRXJDLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELE1BQU0sRUFBRTt3QkFDTjs7Ozs7Ozs7O01BU0U7d0JBQ0Y7Ozs7Ozs7Ozs7O0lBV0E7cUJBQUM7aUJBRUo7aUdBS1csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBS0MsRUFBRTtzQkFEVCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFxRmpELFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTWxDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0JyQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPdXRwdXQsIElucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5cclxuaW1wb3J0IHtBdWRpb0NsaXBVSUNvbnRhaW5lcn0gZnJvbSAnLi4vdWkvY29udGFpbmVyJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtQb3NpdGlvbixEaW1lbnNpb24sIFJlY3RhbmdsZX0gZnJvbSBcIi4uLy4uL21hdGgvMmQvZ2VvbWV0cnlcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXAsIFNlbGVjdGlvbn0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGFwcC1hdWRpbyAjYXVkaW9TaWduYWxDb250YWluZXIgKHNlbGVjdGlvbkV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2FwcC1hdWRpbz5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgIGZsZXg6IDI7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIH1gLFxyXG4gICAgYGFwcC1hdWRpbyB7XHJcblxyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTsqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lIHtcclxuXHJcbiAgcHJpdmF0ZSBzcEVsITpIVE1MRWxlbWVudDtcclxuXHJcbiAgQE91dHB1dCgpIHpvb21JbkFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbignKycpO1xyXG4gIEBPdXRwdXQoKSB6b29tT3V0QWN0aW9uOkFjdGlvbjx2b2lkPj1uZXcgQWN0aW9uKCctJyk7XHJcbiAgQE91dHB1dCgpIHpvb21TZWxlY3RlZEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIlNlbGVjdGVkXCIpO1xyXG4gIEBPdXRwdXQoKSB6b29tRml0VG9QYW5lbEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIkZpdCB0byBwYW5lbFwiKTtcclxuICB6b29tRml4Rml0VG9QYW5lbEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIkZpeCBmaXQgdG8gcGFuZWxcIik7XHJcblxyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgYWMhOiBBdWRpb0NsaXBVSUNvbnRhaW5lcjtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zcEVsID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIHRoaXMuem9vbUluQWN0aW9uLm9uQWN0aW9uID0gKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWMuZml4Rml0VG9QYW5lbCA9IGZhbHNlXHJcbiAgICAgICAgICBsZXQgb2xkWFpvb20gPSB0aGlzLmFjLmN1cnJlbnRYWm9vbSgpXHJcbiAgICAgICAgICBpZihvbGRYWm9vbSA9PT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IG5ld1h6b29tID0gb2xkWFpvb20gKiAyO1xyXG4gICAgICAgICAgdGhpcy5hYy54Wm9vbSA9IG5ld1h6b29tO1xyXG5cclxuICAgICAgICAgIGxldCBjYnIgPSBuZXcgUmVjdGFuZ2xlKG5ldyBQb3NpdGlvbih0aGlzLnNwRWwuc2Nyb2xsTGVmdCwgdGhpcy5zcEVsLnNjcm9sbFRvcCksIG5ldyBEaW1lbnNpb24odGhpcy5zcEVsLmNsaWVudFdpZHRoLCB0aGlzLnNwRWwuY2xpZW50SGVpZ2h0KSk7XHJcbiAgICAgICAgICB0aGlzLmFjLmNsaXBCb3VuZHMoY2JyKTtcclxuICAgICAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24uZGlzYWJsZWQ9ZmFsc2VcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnpvb21PdXRBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hYy5maXhGaXRUb1BhbmVsID0gZmFsc2VcclxuICAgICAgICAgIGxldCBjYnIxID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24oKHRoaXMuc3BFbC5zY3JvbGxMZWZ0IC8gMikgLSB0aGlzLnNwRWwuY2xpZW50V2lkdGgsIHRoaXMuc3BFbC5zY3JvbGxUb3ApLCBuZXcgRGltZW5zaW9uKHRoaXMuc3BFbC5jbGllbnRXaWR0aCwgdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgICAgICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicjEpO1xyXG4gICAgICAgICAgbGV0IG9sZFhab29tID0gdGhpcy5hYy5jdXJyZW50WFpvb20oKVxyXG4gICAgICAgICAgaWYob2xkWFpvb20gPT09IG51bGwpe1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBuZXdYem9vbSA9IG9sZFhab29tIC8gMjtcclxuICAgICAgICAgIHRoaXMuYWMueFpvb20gPSBuZXdYem9vbTtcclxuXHJcbiAgICAgICAgICBsZXQgY2JyID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24odGhpcy5zcEVsLnNjcm9sbExlZnQsIHRoaXMuc3BFbC5zY3JvbGxUb3ApLCBuZXcgRGltZW5zaW9uKHRoaXMuc3BFbC5jbGllbnRXaWR0aCwgdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgICAgICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicik7XHJcbiAgICAgICAgICB0aGlzLnpvb21GaXRUb1BhbmVsQWN0aW9uLmRpc2FibGVkPWZhbHNlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG5cclxuICAgICAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24uZGlzYWJsZWQ9dHJ1ZVxyXG5cclxuICAgICAgICAgIC8vIHNldCBjb250YWluZXIgZGl2IHdpZHRoIHRvIHRoaXMgKHZpZXdwb3J0KSB3aWR0aFxyXG4gICAgICAgICAgdGhpcy5hYy5jZS5zdHlsZS53aWR0aD10aGlzLnNwRWwub2Zmc2V0V2lkdGgrJ3B4JztcclxuXHJcbiAgICAgICAgICB0aGlzLmFjLmZpeEZpdFRvUGFuZWw9dHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy56b29tU2VsZWN0ZWRBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG4gICAgICAgICAgLy9hbGVydChcIm5vdCBpbXBsZW1lbnRlZCB5ZXRcIilcclxuXHJcbiAgICAgICAgICBsZXQgcyA9IHRoaXMuYWMuc2VsZWN0aW9uXHJcbiAgICAgICAgICBpZiAocykge1xyXG4gICAgICAgICAgICAgIC8vIHJlc2V0IGF1dG8gZml0IHRvIHBhbmVsIG1vZGVcclxuICAgICAgICAgICAgICB0aGlzLmFjLmZpeEZpdFRvUGFuZWwgPSBmYWxzZVxyXG5cclxuICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgc2VsZWN0aW9uIGxlbmd0aCBpbiBzZWNvbmRzXHJcbiAgICAgICAgICAgICAgaWYodGhpcy5hYy5hdWRpb0RhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNyID0gdGhpcy5hYy5hdWRpb0RhdGEuc2FtcGxlUmF0ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNlbEZyTGVuID0gcy5lbmRGcmFtZSAtIHMuc3RhcnRGcmFtZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNlbExlbkluU2VjcyA9IHNlbEZyTGVuIC8gc3I7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBjb3JyZXNwb25kaW5nIHhab29tIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgIGxldCBuZXdYWm9vbSA9IHRoaXMuc3BFbC5jbGllbnRXaWR0aCAvIHNlbExlbkluU2Vjc1xyXG4gICAgICAgICAgICAgICAgICAvLyBhcHBseSB4Wm9vbVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjLnhab29tID0gbmV3WFpvb21cclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdmlld3BvcnQgdG8gc2hvdyBzZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgbGV0IHgxID0gdGhpcy5hYy5mcmFtZVRvWFBpeGVsUG9zaXRpb24ocy5zdGFydEZyYW1lKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHgxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNwRWwuc2Nyb2xsTGVmdCA9IHgxO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgICAgICAgICAgICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdXBkYXRlQ2xpcEJvdW5kcygpe1xyXG4gICAgbGV0IGNicj1uZXcgUmVjdGFuZ2xlKG5ldyBQb3NpdGlvbih0aGlzLnNwRWwuc2Nyb2xsTGVmdCx0aGlzLnNwRWwuc2Nyb2xsVG9wKSwgbmV3IERpbWVuc2lvbih0aGlzLnNwRWwuY2xpZW50V2lkdGgsdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicik7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdzY3JvbGwnLCBbJyRldmVudCddKVxyXG4gIG9uU2Nyb2xsKHNlOiBFdmVudCkge1xyXG4gICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgfVxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgICAgICAgIHRoaXMuYWMubGF5b3V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0aW9uQ2hhbmdlZChzOlNlbGVjdGlvbnwgbnVsbCl7XHJcbiAgICAgIHRoaXMuem9vbVNlbGVjdGVkQWN0aW9uLmRpc2FibGVkPShzPT1udWxsKVxyXG4gICAgfVxyXG5cclxuICBzZXQgYXVkaW9EYXRhKGF1ZGlvRGF0YTogQXVkaW9CdWZmZXIgfCBudWxsKSB7XHJcbiAgICB0aGlzLmFjLmF1ZGlvRGF0YT1hdWRpb0RhdGE7XHJcbiAgICAgIHRoaXMuem9vbU91dEFjdGlvbi5kaXNhYmxlZD0oIWF1ZGlvRGF0YSlcclxuICAgICAgdGhpcy56b29tSW5BY3Rpb24uZGlzYWJsZWQ9KCFhdWRpb0RhdGEpXHJcbiAgICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvQ2xpcChhdWRpb0NsaXA6IEF1ZGlvQ2xpcCB8IG51bGwpIHtcclxuXHJcbiAgICBsZXQgYXVkaW9EYXRhOkF1ZGlvQnVmZmVyfG51bGw9bnVsbDtcclxuICAgIGxldCBzZWw6U2VsZWN0aW9ufG51bGw9bnVsbDtcclxuICAgIGlmKGF1ZGlvQ2xpcCl7XHJcbiAgICAgIGF1ZGlvRGF0YT1hdWRpb0NsaXAuYnVmZmVyO1xyXG4gICAgICBzZWw9YXVkaW9DbGlwLnNlbGVjdGlvbjtcclxuICAgICAgYXVkaW9DbGlwLmFkZFNlbGVjdGlvbk9ic2VydmVyKChjbGlwKT0+e1xyXG4gICAgICAgIHRoaXMuem9vbVNlbGVjdGVkQWN0aW9uLmRpc2FibGVkPShjbGlwLnNlbGVjdGlvbj09bnVsbClcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQoc2VsKVxyXG4gICAgdGhpcy5hYy5hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICB0aGlzLnpvb21PdXRBY3Rpb24uZGlzYWJsZWQ9KCFhdWRpb0RhdGEpXHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbi5kaXNhYmxlZD0oIWF1ZGlvRGF0YSlcclxuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKGZyYW1lUG9zOm51bWJlcil7XHJcbiAgICB0aGlzLmFjLnBsYXlGcmFtZVBvc2l0aW9uPWZyYW1lUG9zO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZGlzcGxheV9zY3JvbGxfcGFuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi9hdWRpby91aS9hdWRpb19kaXNwbGF5X3Njcm9sbF9wYW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFBYyxNQUFNLEVBQUUsS0FBSyxHQUN4QyxNQUFNLGVBQWUsQ0FBQTtBQUd0QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQXFDckUsTUFBTSxPQUFPLHNCQUFzQjtJQWdCakMsWUFBcUIsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFaMUIsaUJBQVksR0FBYyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFjLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLHVCQUFrQixHQUFjLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELHlCQUFvQixHQUFjLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLDRCQUF1QixHQUFjLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFTaEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUVuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtZQUM3QixJ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Q0FBQyxRQUFRLENBQUM7Z0JBb0JyQyxTQUFTO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPdXRwdXQsIElucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcblxyXG5cclxuaW1wb3J0IHtBdWRpb0NsaXBVSUNvbnRhaW5lcn0gZnJvbSAnLi4vdWkvY29udGFpbmVyJ1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uLy4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtQb3NpdGlvbixEaW1lbnNpb24sIFJlY3RhbmdsZX0gZnJvbSBcIi4uLy4uL21hdGgvMmQvZ2VvbWV0cnlcIjtcclxuaW1wb3J0IHtBdWRpb0NsaXAsIFNlbGVjdGlvbn0gZnJvbSBcIi4uL3BlcnNpc3RvclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblxyXG4gIHNlbGVjdG9yOiAnYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZScsXHJcblxyXG4gIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgPGFwcC1hdWRpbyAjYXVkaW9TaWduYWxDb250YWluZXIgKHNlbGVjdGlvbkV2ZW50RW1pdHRlcik9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj48L2FwcC1hdWRpbz5cclxuXHJcbiAgYCxcclxuICBzdHlsZXM6IFtcclxuICAgIGA6aG9zdCB7XHJcbiAgICAgIGZsZXg6IDI7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIH1gLFxyXG4gICAgYGFwcC1hdWRpbyB7XHJcblxyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAvKnBvc2l0aW9uOiBhYnNvbHV0ZTsqL1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lIHtcclxuXHJcbiAgcHJpdmF0ZSBzcEVsITpIVE1MRWxlbWVudDtcclxuXHJcbiAgQE91dHB1dCgpIHpvb21JbkFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbignKycpO1xyXG4gIEBPdXRwdXQoKSB6b29tT3V0QWN0aW9uOkFjdGlvbjx2b2lkPj1uZXcgQWN0aW9uKCctJyk7XHJcbiAgQE91dHB1dCgpIHpvb21TZWxlY3RlZEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIlNlbGVjdGVkXCIpO1xyXG4gIEBPdXRwdXQoKSB6b29tRml0VG9QYW5lbEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIkZpdCB0byBwYW5lbFwiKTtcclxuICB6b29tRml4Rml0VG9QYW5lbEFjdGlvbjpBY3Rpb248dm9pZD49bmV3IEFjdGlvbihcIkZpeCBmaXQgdG8gcGFuZWxcIik7XHJcblxyXG5cclxuICBAVmlld0NoaWxkKEF1ZGlvQ2xpcFVJQ29udGFpbmVyLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgYWMhOiBBdWRpb0NsaXBVSUNvbnRhaW5lcjtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zcEVsID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIHRoaXMuem9vbUluQWN0aW9uLm9uQWN0aW9uID0gKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWMuZml4Rml0VG9QYW5lbCA9IGZhbHNlXHJcbiAgICAgICAgICBsZXQgb2xkWFpvb20gPSB0aGlzLmFjLmN1cnJlbnRYWm9vbSgpXHJcbiAgICAgICAgICBpZihvbGRYWm9vbSA9PT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IG5ld1h6b29tID0gb2xkWFpvb20gKiAyO1xyXG4gICAgICAgICAgdGhpcy5hYy54Wm9vbSA9IG5ld1h6b29tO1xyXG5cclxuICAgICAgICAgIGxldCBjYnIgPSBuZXcgUmVjdGFuZ2xlKG5ldyBQb3NpdGlvbih0aGlzLnNwRWwuc2Nyb2xsTGVmdCwgdGhpcy5zcEVsLnNjcm9sbFRvcCksIG5ldyBEaW1lbnNpb24odGhpcy5zcEVsLmNsaWVudFdpZHRoLCB0aGlzLnNwRWwuY2xpZW50SGVpZ2h0KSk7XHJcbiAgICAgICAgICB0aGlzLmFjLmNsaXBCb3VuZHMoY2JyKTtcclxuICAgICAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24uZGlzYWJsZWQ9ZmFsc2VcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnpvb21PdXRBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hYy5maXhGaXRUb1BhbmVsID0gZmFsc2VcclxuICAgICAgICAgIGxldCBjYnIxID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24oKHRoaXMuc3BFbC5zY3JvbGxMZWZ0IC8gMikgLSB0aGlzLnNwRWwuY2xpZW50V2lkdGgsIHRoaXMuc3BFbC5zY3JvbGxUb3ApLCBuZXcgRGltZW5zaW9uKHRoaXMuc3BFbC5jbGllbnRXaWR0aCwgdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgICAgICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicjEpO1xyXG4gICAgICAgICAgbGV0IG9sZFhab29tID0gdGhpcy5hYy5jdXJyZW50WFpvb20oKVxyXG4gICAgICAgICAgaWYob2xkWFpvb20gPT09IG51bGwpe1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGxldCBuZXdYem9vbSA9IG9sZFhab29tIC8gMjtcclxuICAgICAgICAgIHRoaXMuYWMueFpvb20gPSBuZXdYem9vbTtcclxuXHJcbiAgICAgICAgICBsZXQgY2JyID0gbmV3IFJlY3RhbmdsZShuZXcgUG9zaXRpb24odGhpcy5zcEVsLnNjcm9sbExlZnQsIHRoaXMuc3BFbC5zY3JvbGxUb3ApLCBuZXcgRGltZW5zaW9uKHRoaXMuc3BFbC5jbGllbnRXaWR0aCwgdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgICAgICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicik7XHJcbiAgICAgICAgICB0aGlzLnpvb21GaXRUb1BhbmVsQWN0aW9uLmRpc2FibGVkPWZhbHNlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG5cclxuICAgICAgICAgIHRoaXMuem9vbUZpdFRvUGFuZWxBY3Rpb24uZGlzYWJsZWQ9dHJ1ZVxyXG5cclxuICAgICAgICAgIC8vIHNldCBjb250YWluZXIgZGl2IHdpZHRoIHRvIHRoaXMgKHZpZXdwb3J0KSB3aWR0aFxyXG4gICAgICAgICAgdGhpcy5hYy5jZS5zdHlsZS53aWR0aD10aGlzLnNwRWwub2Zmc2V0V2lkdGgrJ3B4JztcclxuXHJcbiAgICAgICAgICB0aGlzLmFjLmZpeEZpdFRvUGFuZWw9dHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy56b29tU2VsZWN0ZWRBY3Rpb24ub25BY3Rpb24gPSAoZSkgPT4ge1xyXG4gICAgICAgICAgLy9hbGVydChcIm5vdCBpbXBsZW1lbnRlZCB5ZXRcIilcclxuXHJcbiAgICAgICAgICBsZXQgcyA9IHRoaXMuYWMuc2VsZWN0aW9uXHJcbiAgICAgICAgICBpZiAocykge1xyXG4gICAgICAgICAgICAgIC8vIHJlc2V0IGF1dG8gZml0IHRvIHBhbmVsIG1vZGVcclxuICAgICAgICAgICAgICB0aGlzLmFjLmZpeEZpdFRvUGFuZWwgPSBmYWxzZVxyXG5cclxuICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgc2VsZWN0aW9uIGxlbmd0aCBpbiBzZWNvbmRzXHJcbiAgICAgICAgICAgICAgaWYodGhpcy5hYy5hdWRpb0RhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNyID0gdGhpcy5hYy5hdWRpb0RhdGEuc2FtcGxlUmF0ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNlbEZyTGVuID0gcy5lbmRGcmFtZSAtIHMuc3RhcnRGcmFtZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHNlbExlbkluU2VjcyA9IHNlbEZyTGVuIC8gc3I7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBjb3JyZXNwb25kaW5nIHhab29tIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgIGxldCBuZXdYWm9vbSA9IHRoaXMuc3BFbC5jbGllbnRXaWR0aCAvIHNlbExlbkluU2Vjc1xyXG4gICAgICAgICAgICAgICAgICAvLyBhcHBseSB4Wm9vbVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjLnhab29tID0gbmV3WFpvb21cclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdmlld3BvcnQgdG8gc2hvdyBzZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgbGV0IHgxID0gdGhpcy5hYy5mcmFtZVRvWFBpeGVsUG9zaXRpb24ocy5zdGFydEZyYW1lKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHgxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNwRWwuc2Nyb2xsTGVmdCA9IHgxO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgICAgICAgICAgICAgdGhpcy56b29tRml0VG9QYW5lbEFjdGlvbi5kaXNhYmxlZCA9IGZhbHNlXHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgdXBkYXRlQ2xpcEJvdW5kcygpe1xyXG4gICAgbGV0IGNicj1uZXcgUmVjdGFuZ2xlKG5ldyBQb3NpdGlvbih0aGlzLnNwRWwuc2Nyb2xsTGVmdCx0aGlzLnNwRWwuc2Nyb2xsVG9wKSwgbmV3IERpbWVuc2lvbih0aGlzLnNwRWwuY2xpZW50V2lkdGgsdGhpcy5zcEVsLmNsaWVudEhlaWdodCkpO1xyXG4gICAgdGhpcy5hYy5jbGlwQm91bmRzKGNicik7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdzY3JvbGwnLCBbJyRldmVudCddKVxyXG4gIG9uU2Nyb2xsKHNlOiBFdmVudCkge1xyXG4gICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ2xpcEJvdW5kcygpXHJcbiAgfVxyXG5cclxuICBsYXlvdXQoKXtcclxuICAgICAgICAgIHRoaXMuYWMubGF5b3V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0aW9uQ2hhbmdlZChzOlNlbGVjdGlvbnwgbnVsbCl7XHJcbiAgICAgIHRoaXMuem9vbVNlbGVjdGVkQWN0aW9uLmRpc2FibGVkPShzPT1udWxsKVxyXG4gICAgfVxyXG5cclxuICBzZXQgYXVkaW9EYXRhKGF1ZGlvRGF0YTogQXVkaW9CdWZmZXIgfCBudWxsKSB7XHJcbiAgICB0aGlzLmFjLmF1ZGlvRGF0YT1hdWRpb0RhdGE7XHJcbiAgICAgIHRoaXMuem9vbU91dEFjdGlvbi5kaXNhYmxlZD0oIWF1ZGlvRGF0YSlcclxuICAgICAgdGhpcy56b29tSW5BY3Rpb24uZGlzYWJsZWQ9KCFhdWRpb0RhdGEpXHJcbiAgICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGF1ZGlvQ2xpcChhdWRpb0NsaXA6IEF1ZGlvQ2xpcCB8IG51bGwpIHtcclxuXHJcbiAgICBsZXQgYXVkaW9EYXRhOkF1ZGlvQnVmZmVyfG51bGw9bnVsbDtcclxuICAgIGxldCBzZWw6U2VsZWN0aW9ufG51bGw9bnVsbDtcclxuICAgIGlmKGF1ZGlvQ2xpcCl7XHJcbiAgICAgIGF1ZGlvRGF0YT1hdWRpb0NsaXAuYnVmZmVyO1xyXG4gICAgICBzZWw9YXVkaW9DbGlwLnNlbGVjdGlvbjtcclxuICAgICAgYXVkaW9DbGlwLmFkZFNlbGVjdGlvbk9ic2VydmVyKChjbGlwKT0+e1xyXG4gICAgICAgIHRoaXMuem9vbVNlbGVjdGVkQWN0aW9uLmRpc2FibGVkPShjbGlwLnNlbGVjdGlvbj09bnVsbClcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQoc2VsKVxyXG4gICAgdGhpcy5hYy5hdWRpb0NsaXA9YXVkaW9DbGlwXHJcbiAgICB0aGlzLnpvb21PdXRBY3Rpb24uZGlzYWJsZWQ9KCFhdWRpb0RhdGEpXHJcbiAgICB0aGlzLnpvb21JbkFjdGlvbi5kaXNhYmxlZD0oIWF1ZGlvRGF0YSlcclxuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgIHRoaXMubGF5b3V0KCk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0IHBsYXlGcmFtZVBvc2l0aW9uKGZyYW1lUG9zOm51bWJlcil7XHJcbiAgICB0aGlzLmFjLnBsYXlGcmFtZVBvc2l0aW9uPWZyYW1lUG9zO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG4iXX0=