speechrecorderng 3.9.7 → 3.9.9

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 (85) hide show
  1. package/README.md +478 -12
  2. package/esm2022/lib/action/action.mjs +1 -1
  3. package/esm2022/lib/audio/array_audio_buffer.mjs +1 -1
  4. package/esm2022/lib/audio/array_audio_buffer_input_stream.mjs +1 -1
  5. package/esm2022/lib/audio/audio_data_holder.mjs +1 -1
  6. package/esm2022/lib/audio/audio_display.mjs +4 -4
  7. package/esm2022/lib/audio/audio_player.mjs +4 -4
  8. package/esm2022/lib/audio/capture/capture.mjs +1 -1
  9. package/esm2022/lib/audio/context.mjs +1 -1
  10. package/esm2022/lib/audio/dsp/level_measure.mjs +5 -4
  11. package/esm2022/lib/audio/impl/wavreader.mjs +1 -1
  12. package/esm2022/lib/audio/impl/wavwriter.mjs +1 -1
  13. package/esm2022/lib/audio/inddb_audio_buffer.mjs +1 -1
  14. package/esm2022/lib/audio/io/stream.mjs +1 -1
  15. package/esm2022/lib/audio/net_audio_buffer.mjs +1 -1
  16. package/esm2022/lib/audio/persistor.mjs +1 -1
  17. package/esm2022/lib/audio/playback/array_audio_buffer_source_node.mjs +1 -1
  18. package/esm2022/lib/audio/playback/audio_source_node.mjs +1 -1
  19. package/esm2022/lib/audio/playback/audio_source_worklet_module_loader.mjs +1 -1
  20. package/esm2022/lib/audio/playback/inddb_audio_buffer_source_node.mjs +1 -1
  21. package/esm2022/lib/audio/playback/net_audio_buffer_source_node.mjs +1 -1
  22. package/esm2022/lib/audio/playback/player.mjs +1 -1
  23. package/esm2022/lib/audio/ui/audio_canvas_layer_comp.mjs +7 -7
  24. package/esm2022/lib/audio/ui/audio_display_control.mjs +4 -4
  25. package/esm2022/lib/audio/ui/audio_display_scroll_pane.mjs +4 -4
  26. package/esm2022/lib/audio/ui/audiosignal.mjs +4 -4
  27. package/esm2022/lib/audio/ui/container.mjs +4 -4
  28. package/esm2022/lib/audio/ui/livelevel.mjs +4 -4
  29. package/esm2022/lib/audio/ui/scroll_pane_horizontal.mjs +3 -3
  30. package/esm2022/lib/audio/ui/sonagram.mjs +4 -4
  31. package/esm2022/lib/db/inddb.mjs +4 -4
  32. package/esm2022/lib/dsp/utils.mjs +1 -1
  33. package/esm2022/lib/io/BinaryReader.mjs +1 -1
  34. package/esm2022/lib/io/BinaryWriter.mjs +1 -1
  35. package/esm2022/lib/io/stream.mjs +1 -1
  36. package/esm2022/lib/math/complex.mjs +1 -1
  37. package/esm2022/lib/math/dft.mjs +1 -1
  38. package/esm2022/lib/net/uploader.mjs +1 -1
  39. package/esm2022/lib/recorder_component.mjs +1 -1
  40. package/esm2022/lib/speechrecorder/project/project.mjs +1 -1
  41. package/esm2022/lib/speechrecorder/project/project.service.mjs +4 -4
  42. package/esm2022/lib/speechrecorder/recording.mjs +1 -1
  43. package/esm2022/lib/speechrecorder/recordings/basic_recording.service.mjs +1 -1
  44. package/esm2022/lib/speechrecorder/recordings/recordings.service.mjs +4 -4
  45. package/esm2022/lib/speechrecorder/script/script.mjs +1 -1
  46. package/esm2022/lib/speechrecorder/script/script.service.mjs +4 -4
  47. package/esm2022/lib/speechrecorder/session/audiorecorder.mjs +7 -7
  48. package/esm2022/lib/speechrecorder/session/basicrecorder.mjs +1 -1
  49. package/esm2022/lib/speechrecorder/session/controlpanel.mjs +22 -22
  50. package/esm2022/lib/speechrecorder/session/item.mjs +1 -1
  51. package/esm2022/lib/speechrecorder/session/progress.mjs +4 -4
  52. package/esm2022/lib/speechrecorder/session/prompting.mjs +16 -16
  53. package/esm2022/lib/speechrecorder/session/recorder_combi_pane.mjs +3 -3
  54. package/esm2022/lib/speechrecorder/session/recording_file_cache.mjs +1 -1
  55. package/esm2022/lib/speechrecorder/session/recording_list.mjs +4 -4
  56. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-meta.component.mjs +4 -4
  57. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-navi.component.mjs +4 -4
  58. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-u-i.component.mjs +4 -4
  59. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file-view.component.mjs +4 -4
  60. package/esm2022/lib/speechrecorder/session/recordingfile/recording-file.mjs +1 -1
  61. package/esm2022/lib/speechrecorder/session/recordingfile/recordingfile-service.mjs +4 -4
  62. package/esm2022/lib/speechrecorder/session/session.service.mjs +4 -4
  63. package/esm2022/lib/speechrecorder/session/session_finished_dialog.mjs +3 -3
  64. package/esm2022/lib/speechrecorder/session/sessionmanager.mjs +4 -4
  65. package/esm2022/lib/speechrecorder/session/warning_bar.mjs +4 -4
  66. package/esm2022/lib/speechrecorder/spruploader.mjs +4 -4
  67. package/esm2022/lib/speechrecorder/startstopsignal/ui/simpletrafficlight.mjs +4 -4
  68. package/esm2022/lib/speechrecorderng.component.mjs +4 -4
  69. package/esm2022/lib/speechrecorderng.module.mjs +9 -13
  70. package/esm2022/lib/spr.config.mjs +3 -3
  71. package/esm2022/lib/spr.module.version.mjs +2 -2
  72. package/esm2022/lib/ui/canvas_layer_comp.mjs +4 -4
  73. package/esm2022/lib/ui/intersection-observer.directive.mjs +4 -4
  74. package/esm2022/lib/ui/message_dialog.mjs +3 -3
  75. package/esm2022/lib/ui/recordingitem_display.mjs +7 -7
  76. package/esm2022/lib/ui/responsive_component.mjs +3 -3
  77. package/esm2022/lib/utils/scrollIntoViewToBottom.mjs +4 -4
  78. package/esm2022/lib/utils/ua-parser.mjs +1 -1
  79. package/esm2022/lib/utils/utils.mjs +1 -1
  80. package/esm2022/lib/utils/wake_lock.mjs +1 -1
  81. package/fesm2022/speechrecorderng.mjs +171 -174
  82. package/fesm2022/speechrecorderng.mjs.map +1 -1
  83. package/lib/speechrecorderng.module.d.ts +11 -12
  84. package/lib/spr.module.version.d.ts +1 -1
  85. package/package.json +13 -13
@@ -64,8 +64,8 @@ export class RecordingItemControls extends ResponsiveComponent {
64
64
  error() {
65
65
  // this.status = 'ERROR';
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: RecordingItemControls, deps: [{ token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: { audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", peakDbLvl: "peakDbLvl", agc: "agc", disableAudioDetails: "disableAudioDetails", audioLoaded: "audioLoaded", playStartAction: "playStartAction", playStopAction: "playStopAction", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, usesInheritance: true, ngImport: i0, template: `
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RecordingItemControls, deps: [{ token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: { audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", peakDbLvl: "peakDbLvl", agc: "agc", disableAudioDetails: "disableAudioDetails", audioLoaded: "audioLoaded", playStartAction: "playStartAction", playStopAction: "playStopAction", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, usesInheritance: true, ngImport: i0, template: `
69
69
  <button matTooltip="Start playback" (click)="playStartAction?.perform()"
70
70
  [disabled]="playStartAction?playStartAction.disabled:true"
71
71
  [style.color]="playStartAction?.disabled ? 'grey' : 'green'">
@@ -89,7 +89,7 @@ export class RecordingItemControls extends ResponsiveComponent {
89
89
  <tr *ngIf="_agc"><td>AGC:</td><td><span matTooltip="Auto gain control">{{agcString}}</span></td></tr></table></div>
90
90
  `, isInline: true, styles: [":host{flex:0;width:100%;background:#a9a9a9;padding:4px;box-sizing:border-box;height:100%;display:flex;flex-direction:row;flex-wrap:nowrap}\n", "span{flex:0;font-weight:700;display:inline-block;white-space:nowrap;box-sizing:border-box}\n", "button{touch-action:manipulation}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }] }); }
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: RecordingItemControls, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RecordingItemControls, decorators: [{
93
93
  type: Component,
94
94
  args: [{ selector: 'spr-recordingitemcontrols', template: `
95
95
  <button matTooltip="Start playback" (click)="playStartAction?.perform()"
@@ -210,15 +210,15 @@ export class RecordingItemDisplay extends ResponsiveComponent {
210
210
  this.peakDbLvl = MIN_DB_LEVEL;
211
211
  this.changeDetectorRef.detectChanges();
212
212
  }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: RecordingItemDisplay, deps: [{ token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
214
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: RecordingItemDisplay, selector: "spr-recordingitemdisplay", inputs: { streamingMode: "streamingMode", audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", agc: "agc", playStartAction: "playStartAction", playStopAction: "playStopAction", displayAudioBuffer: "displayAudioBuffer", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, viewQueries: [{ propertyName: "liveLevel", first: true, predicate: LevelBar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RecordingItemDisplay, deps: [{ token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
214
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: RecordingItemDisplay, selector: "spr-recordingitemdisplay", inputs: { streamingMode: "streamingMode", audioSignalCollapsed: "audioSignalCollapsed", enableDownload: "enableDownload", agc: "agc", playStartAction: "playStartAction", playStopAction: "playStopAction", displayAudioBuffer: "displayAudioBuffer", displayLevelInfos: "displayLevelInfos" }, outputs: { onShowRecordingDetails: "onShowRecordingDetails", onDownloadRecording: "onDownloadRecording" }, viewQueries: [{ propertyName: "liveLevel", first: true, predicate: LevelBar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
215
215
  <div [class]="{audioStatusDisplay:!screenXs,audioStatusDisplayXs:screenXs}">
216
216
  <audio-levelbar style="flex:1 0 1%" [streamingMode]="streamingMode" [displayLevelInfos]="_displayLevelInfos"></audio-levelbar>
217
217
  <spr-recordingitemcontrols style="flex:0 0 0px" [audioLoaded]="displayAudioBuffer!==null" [playStartAction]="playStartAction" [playStopAction]="playStopAction" [peakDbLvl]="peakDbLvl" [agc]="_agc" (onShowRecordingDetails)="onShowRecordingDetails.emit()"></spr-recordingitemcontrols>
218
218
  </div>
219
219
  `, isInline: true, styles: ["div{width:100%;background:#a9a9a9;padding:4px;box-sizing:border-box;flex-wrap:nowrap}\n", "audio-levelbar{box-sizing:border-box}\n", ".audioStatusDisplay{display:flex;flex-direction:row;height:100px;min-height:100px}\n", ".audioStatusDisplayXs{display:flex;flex-direction:column;height:125px;min-height:125px}\n"], dependencies: [{ kind: "component", type: i5.LevelBar, selector: "audio-levelbar", inputs: ["streamingMode", "displayLevelInfos", "state"] }, { kind: "component", type: RecordingItemControls, selector: "spr-recordingitemcontrols", inputs: ["audioSignalCollapsed", "enableDownload", "peakDbLvl", "agc", "disableAudioDetails", "audioLoaded", "playStartAction", "playStopAction", "displayLevelInfos"], outputs: ["onShowRecordingDetails", "onDownloadRecording"] }] }); }
220
220
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: RecordingItemDisplay, decorators: [{
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: RecordingItemDisplay, decorators: [{
222
222
  type: Component,
223
223
  args: [{ selector: 'spr-recordingitemdisplay', template: `
224
224
  <div [class]="{audioStatusDisplay:!screenXs,audioStatusDisplayXs:screenXs}">
@@ -250,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
250
250
  }], displayLevelInfos: [{
251
251
  type: Input
252
252
  }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5naXRlbV9kaXNwbGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3VpL3JlY29yZGluZ2l0ZW1fZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFDaEYsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQUkzRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFrRHhDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7SUFjNUQsSUFBYSxHQUFHLENBQUMsR0FBMEI7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBQyxHQUFHLENBQUM7UUFDZCxJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUcsSUFBSSxFQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUMsS0FBSyxDQUFDO1NBQ3RCO2FBQUk7WUFDSCxJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUcsSUFBSSxFQUFDO2dCQUNsQixJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQzthQUNyQjtpQkFBSTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQWtCRCxZQUFzQixHQUFzQixFQUFTLEdBQWUsRUFBVSxpQkFBb0M7UUFDaEgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRFMsUUFBRyxHQUFILEdBQUcs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QkFBaUI7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXHJcbmltcG9ydCB7TGV2ZWxJbmZvLCBMZXZlbEluZm9zLCBMZXZlbExpc3RlbmVyfSBmcm9tIFwiLi4vYXVkaW8vZHNwL2xldmVsX21lYXN1cmVcIjtcclxuaW1wb3J0IHtMZXZlbEJhcn0gZnJvbSBcIi4uL2F1ZGlvL3VpL2xpdmVsZXZlbFwiO1xyXG5pbXBvcnQge0FjdGlvbn0gZnJvbSBcIi4uL2FjdGlvbi9hY3Rpb25cIjtcclxuaW1wb3J0IHtSZXNwb25zaXZlQ29tcG9uZW50fSBmcm9tIFwiLi9yZXNwb25zaXZlX2NvbXBvbmVudFwiO1xyXG5pbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlcn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9sYXlvdXRcIjtcclxuXHJcblxyXG5leHBvcnQgY29uc3QgTUlOX0RCX0xFVkVMID0gLTQwLjA7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dBUk5fREJfTEVWRUwgPSAtMjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3ByLXJlY29yZGluZ2l0ZW1jb250cm9scycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJTdGFydCBwbGF5YmFja1wiIChjbGljayk9XCJwbGF5U3RhcnRBY3Rpb24/LnBlcmZvcm0oKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGxheVN0YXJ0QWN0aW9uP3BsYXlTdGFydEFjdGlvbi5kaXNhYmxlZDp0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJwbGF5U3RhcnRBY3Rpb24/LmRpc2FibGVkID8gJ2dyZXknIDogJ2dyZWVuJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+cGxheV9hcnJvdzwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwiU3RvcCBwbGF5YmFja1wiIChjbGljayk9XCJwbGF5U3RvcEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwbGF5U3RvcEFjdGlvbj8uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZCA/ICdncmV5JyA6ICd5ZWxsb3cnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5zdG9wPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIXNjcmVlblhzXCIgbWF0VG9vbHRpcD1cIlRvZ2dsZSBkZXRhaWxlZCBhdWRpbyBkaXNwbGF5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVBdWRpb0RldGFpbHMgfHwgIWF1ZGlvTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93UmVjb3JkaW5nRGV0YWlscygpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj57eyhhdWRpb1NpZ25hbENvbGxhcHNlZCkgPyBcImV4cGFuZF9sZXNzXCIgOiBcImV4cGFuZF9tb3JlXCJ9fTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXRUb29sdGlwPVwiRG93bmxvYWQgY3VycmVudCByZWNvcmRpbmdcIiAqbmdJZj1cImVuYWJsZURvd25sb2FkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVBdWRpb0RldGFpbHMgfHwgIWF1ZGlvTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZFJlY29yZGluZygpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWluLXdpZHRoOiAxNGNoO3BhZGRpbmc6MnB4XCI+PHRhYmxlIHN0eWxlPVwiYm9yZGVyLXN0eWxlOiBub25lXCI+PHRyPjx0ZD5QZWFrOjwvdGQ+PHRkPjxzcGFuIG1hdFRvb2x0aXA9XCJQZWFrIGxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIihwZWFrRGJMdmwgPiB3YXJuRGJMZXZlbCk/J3JlZCc6J2JsYWNrJ1wiPnt7cGVha0RiTHZsIHwgbnVtYmVyOicxLjEtMSd9fSBkQiA8L3NwYW4+PC90ZD48L3RyPlxyXG4gICAgICAgICAgPHRyICpuZ0lmPVwiX2FnY1wiPjx0ZD5BR0M6PC90ZD48dGQ+PHNwYW4gbWF0VG9vbHRpcD1cIkF1dG8gZ2FpbiBjb250cm9sXCI+e3thZ2NTdHJpbmd9fTwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj5cclxuICAgIGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0IHtcclxuICAgICAgICBmbGV4OiAwOyAvKiBvbmx5IHJlcXVpcmVkIHZlcnRpY2FsIHNwYWNlICovXHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZDogZGFya2dyYXk7XHJcbiAgICAgICAgcGFkZGluZzogNHB4O1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG5cclxuICAgICAgICBkaXNwbGF5OiBmbGV4OyAvKiBmbGV4IGNvbnRhaW5lcjogbGVmdCBsZXZlbCBiYXIsIHJpZ2h0IGRlY2ltYWwgcGVhayBsZXZlbCB2YWx1ZSAqL1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IC8qIHdyYXAgY291bGQgY29tcGxldGVseSBkZXN0cm95IHRoZSBsYXlvdXQgKi9cclxuICAgIH1gLCBgc3BhbiB7XHJcbiAgICAgICAgZmxleDogMDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfWAsYFxyXG4gICAgIGJ1dHRvbiB7XHJcbiAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcclxuICAgICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdJdGVtQ29udHJvbHMgZXh0ZW5kcyBSZXNwb25zaXZlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgY2U6IEhUTUxEaXZFbGVtZW50fG51bGw9bnVsbDtcclxuICBASW5wdXQoKSBhdWRpb1NpZ25hbENvbGxhcHNlZDogYm9vbGVhbj10cnVlO1xyXG4gIHByaXZhdGUgX2Rpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBlbmFibGVEb3dubG9hZDogYm9vbGVhbj1mYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcGVha0RiTHZsID0gTUlOX0RCX0xFVkVMO1xyXG5cclxuICBfZGlzcGxheUxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsPW51bGw7XHJcblxyXG4gIF9hZ2M6Ym9vbGVhbnxudWxsfHVuZGVmaW5lZD11bmRlZmluZWQ7XHJcbiAgYWdjU3RyaW5nPSduL2EnO1xyXG5cclxuICBASW5wdXQoKSBzZXQgYWdjKGFnYzpib29sZWFufG51bGx8dW5kZWZpbmVkKXtcclxuICAgIHRoaXMuX2FnYz1hZ2M7XHJcbiAgICBpZih0aGlzLl9hZ2M9PT11bmRlZmluZWQgfHwgdGhpcy5fYWdjPT09bnVsbCl7XHJcbiAgICAgIHRoaXMuYWdjU3RyaW5nPSduL2EnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGlmKHRoaXMuX2FnYz09PXRydWUpe1xyXG4gICAgICAgIHRoaXMuYWdjU3RyaW5nPSdPbic7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuYWdjU3RyaW5nPSdPZmYnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgb25TaG93UmVjb3JkaW5nRGV0YWlsczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvbkRvd25sb2FkUmVjb3JkaW5nOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVBdWRpb0RldGFpbHM9dHJ1ZTtcclxuICBASW5wdXQoKSBhdWRpb0xvYWRlZD1mYWxzZTtcclxuICAvL0BJbnB1dCgpIGNvbnRyb2xBdWRpb1BsYXllcjogQXVkaW9QbGF5ZXI7XHJcbiAgQElucHV0KCkgcGxheVN0YXJ0QWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcGxheVN0b3BBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBwbGF5U3RhcnRFbmFibGVkID0gZmFsc2U7XHJcbiAgcGxheVN0b3BFbmFibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSB1cGRhdGVUaW1lcklkOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IGZhbHNlO1xyXG5cclxuICB3YXJuRGJMZXZlbCA9IERFRkFVTFRfV0FSTl9EQl9MRVZFTDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIscHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihicG8pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzaG93UmVjb3JkaW5nRGV0YWlscygpIHtcclxuICAgIHRoaXMub25TaG93UmVjb3JkaW5nRGV0YWlscy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFJlY29yZGluZygpIHtcclxuICAgIHRoaXMub25Eb3dubG9hZFJlY29yZGluZy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNlID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGRpc3BsYXlMZXZlbEluZm9zKGxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9kaXNwbGF5TGV2ZWxJbmZvcyA9IGxldmVsSW5mb3M7XHJcbiAgfVxyXG5cclxuICBlcnJvcigpIHtcclxuICAgIC8vIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Nwci1yZWNvcmRpbmdpdGVtZGlzcGxheScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IFtjbGFzc109XCJ7YXVkaW9TdGF0dXNEaXNwbGF5OiFzY3JlZW5YcyxhdWRpb1N0YXR1c0Rpc3BsYXlYczpzY3JlZW5Yc31cIj5cclxuICAgICAgICA8YXVkaW8tbGV2ZWxiYXIgc3R5bGU9XCJmbGV4OjEgMCAxJVwiIFtzdHJlYW1pbmdNb2RlXT1cInN0cmVhbWluZ01vZGVcIiBbZGlzcGxheUxldmVsSW5mb3NdPVwiX2Rpc3BsYXlMZXZlbEluZm9zXCI+PC9hdWRpby1sZXZlbGJhcj5cclxuICAgICAgICA8c3ByLXJlY29yZGluZ2l0ZW1jb250cm9scyBzdHlsZT1cImZsZXg6MCAwIDBweFwiIFthdWRpb0xvYWRlZF09XCJkaXNwbGF5QXVkaW9CdWZmZXIhPT1udWxsXCIgW3BsYXlTdGFydEFjdGlvbl09XCJwbGF5U3RhcnRBY3Rpb25cIiBbcGxheVN0b3BBY3Rpb25dPVwicGxheVN0b3BBY3Rpb25cIiBbcGVha0RiTHZsXT1cInBlYWtEYkx2bFwiIFthZ2NdPVwiX2FnY1wiIChvblNob3dSZWNvcmRpbmdEZXRhaWxzKT1cIm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpXCI+PC9zcHItcmVjb3JkaW5naXRlbWNvbnRyb2xzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBzdHlsZXM6IFtgZGl2IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgLyogd3JhcCBjb3VsZCBjb21wbGV0ZWx5IGRlc3Ryb3kgdGhlIGxheW91dCAqL1xyXG4gICAgfWAsIGBhdWRpby1sZXZlbGJhciB7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIH1gLGAuYXVkaW9TdGF0dXNEaXNwbGF5e1xyXG4gICAgZGlzcGxheTpmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGhlaWdodDoxMDBweDtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIH1gLGAuYXVkaW9TdGF0dXNEaXNwbGF5WHN7XHJcbiAgICBkaXNwbGF5OmZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgaGVpZ2h0OjEyNXB4O1xyXG4gICAgbWluLWhlaWdodDogMTI1cHg7XHJcbiAgfWBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nSXRlbURpc3BsYXkgZXh0ZW5kcyBSZXNwb25zaXZlQ29tcG9uZW50IGltcGxlbWVudHMgTGV2ZWxMaXN0ZW5lciwgT25EZXN0cm95IHtcclxuXHJcbiAgICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gICAgQFZpZXdDaGlsZChMZXZlbEJhciwgeyBzdGF0aWM6IHRydWUgfSkgbGl2ZUxldmVsITogTGV2ZWxCYXI7XHJcbiAgICBASW5wdXQoKSBzdHJlYW1pbmdNb2RlOiBib29sZWFuPWZhbHNlO1xyXG4gICAgQElucHV0KCkgYXVkaW9TaWduYWxDb2xsYXBzZWQ6IGJvb2xlYW49dHJ1ZTtcclxuICAgIHByaXZhdGUgX2Rpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICAgIHBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuXHJcbiAgICBfZGlzcGxheUxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsPW51bGw7XHJcblxyXG4gICAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICAgIGFnY1N0cmluZz0nbi9hJztcclxuXHJcbiAgICBASW5wdXQoKSBzZXQgYWdjKGFnYzpib29sZWFufG51bGx8dW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5fYWdjPWFnYztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgb25TaG93UmVjb3JkaW5nRGV0YWlsczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvL0BJbnB1dCgpIGNvbnRyb2xBdWRpb1BsYXllcjogQXVkaW9QbGF5ZXI7XHJcbiAgICBASW5wdXQoKSBwbGF5U3RhcnRBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIHBsYXlTdG9wQWN0aW9uOkFjdGlvbjx2b2lkPnx1bmRlZmluZWQ7XHJcbiAgICBwbGF5U3RhcnRFbmFibGVkID0gZmFsc2U7XHJcbiAgICBwbGF5U3RvcEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgdXBkYXRlVGltZXJJZDogbnVtYmVyfG51bGw9bnVsbDtcclxuXHJcbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IGZhbHNlO1xyXG5cclxuICAgIHdhcm5EYkxldmVsID0gREVGQVVMVF9XQVJOX0RCX0xFVkVMO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBicG86QnJlYWtwb2ludE9ic2VydmVyLHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKGJwbyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGRpc3BsYXlBdWRpb0J1ZmZlcihkaXNwbGF5QXVkaW9CdWZmZXI6IEF1ZGlvQnVmZmVyIHwgbnVsbHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzcGxheUF1ZGlvQnVmZmVyID0gZGlzcGxheUF1ZGlvQnVmZmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaXNwbGF5QXVkaW9CdWZmZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlBdWRpb0J1ZmZlcjtcclxuICAgIH1cclxuXHJcbiAgICBzaG93UmVjb3JkaW5nRGV0YWlscygpIHtcclxuICAgICAgICB0aGlzLm9uU2hvd1JlY29yZGluZ0RldGFpbHMuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRvd25sb2FkUmVjb3JkaW5nKCkge1xyXG4gICAgICAgIHRoaXMub25Eb3dubG9hZFJlY29yZGluZy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuY2UgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIC8vdGhpcy5jb250cm9sQXVkaW9QbGF5ZXIubGlzdGVuZXI9dGhpcztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGRpc3BsYXlMZXZlbEluZm9zKGxldmVsSW5mb3M6IExldmVsSW5mb3MgfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzcGxheUxldmVsSW5mb3MgPSBsZXZlbEluZm9zO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjaGFubmVsQ291bnQoY2hhbm5lbENvdW50OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5saXZlTGV2ZWwuY2hhbm5lbENvdW50ID0gY2hhbm5lbENvdW50O1xyXG4gICAgfVxyXG5cclxuICBzZXQgcGxheUZyYW1lUG9zaXRpb24ocGxheUZyYW1lUG9zaXRpb246IG51bWJlcikge1xyXG4gICAgdGhpcy5saXZlTGV2ZWwucGxheUZyYW1lUG9zaXRpb249cGxheUZyYW1lUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICAgIHVwZGF0ZShsZXZlbEluZm86IExldmVsSW5mbywgcGVha0xldmVsSW5mbzogTGV2ZWxJbmZvKSB7XHJcbiAgICAgICAgbGV0IHBlYWtEQlZhbCA9IGxldmVsSW5mby5wb3dlckxldmVsREIoKTtcclxuICAgICAgICBpZiAodGhpcy5wZWFrRGJMdmwgPCBwZWFrREJWYWwpIHtcclxuICAgICAgICAgICAgdGhpcy5wZWFrRGJMdmwgPSBwZWFrREJWYWw7XHJcbiAgICAgICAgICAgIC8vIHRoZSBldmVudCBjb21lcyBmcm9tIG91dHNpZGUgYW4gQW5ndWxhciB6b25lXHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC51cGRhdGUobGV2ZWxJbmZvKTtcclxuICAgIH1cclxuXHJcbiAgICBlcnJvcigpIHtcclxuICAgICAgICAvLyB0aGlzLnN0YXR1cyA9ICdFUlJPUic7XHJcbiAgICB9XHJcblxyXG4gICAgc3RyZWFtRmluaXNoZWQoKSB7XHJcbiAgICAgICAgdGhpcy5saXZlTGV2ZWwuc3RyZWFtRmluaXNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNldCgpIHtcclxuICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IE1JTl9EQl9MRVZFTDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5naXRlbV9kaXNwbGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3VpL3JlY29yZGluZ2l0ZW1fZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ2dCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFDaEYsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7OztBQUkzRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFrRHhDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7SUFjNUQsSUFBYSxHQUFHLENBQUMsR0FBMEI7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBQyxHQUFHLENBQUM7UUFDZCxJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUcsSUFBSSxFQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBQyxLQUFLLENBQUM7UUFDdkIsQ0FBQzthQUFJLENBQUM7WUFDSixJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUcsSUFBSSxFQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDO1lBQ3RCLENBQUM7aUJBQUksQ0FBQztnQkFDSixJQUFJLENBQUMsU0FBUyxHQUFDLEtBQUssQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFrQkQsWUFBc0IsR0FBc0IsRUFBUyxHQUFlLEVBQVUsaUJBQW9DO1FBQ2hILEtBQUss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QUFjO3NCQUF0QixLQUFLO2dCQW1CRixrQkFBa0I7c0JBRHJCLEtBQUs7Z0JBdUJGLGlCQUFpQjtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcclxuaW1wb3J0IHtMZXZlbEluZm8sIExldmVsSW5mb3MsIExldmVsTGlzdGVuZXJ9IGZyb20gXCIuLi9hdWRpby9kc3AvbGV2ZWxfbWVhc3VyZVwiO1xyXG5pbXBvcnQge0xldmVsQmFyfSBmcm9tIFwiLi4vYXVkaW8vdWkvbGl2ZWxldmVsXCI7XHJcbmltcG9ydCB7QWN0aW9ufSBmcm9tIFwiLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge1Jlc3BvbnNpdmVDb21wb25lbnR9IGZyb20gXCIuL3Jlc3BvbnNpdmVfY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2xheW91dFwiO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBNSU5fREJfTEVWRUwgPSAtNDAuMDtcclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0FSTl9EQl9MRVZFTCA9IC0yO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcHItcmVjb3JkaW5naXRlbWNvbnRyb2xzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxidXR0b24gbWF0VG9vbHRpcD1cIlN0YXJ0IHBsYXliYWNrXCIgKGNsaWNrKT1cInBsYXlTdGFydEFjdGlvbj8ucGVyZm9ybSgpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwbGF5U3RhcnRBY3Rpb24/cGxheVN0YXJ0QWN0aW9uLmRpc2FibGVkOnRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInBsYXlTdGFydEFjdGlvbj8uZGlzYWJsZWQgPyAnZ3JleScgOiAnZ3JlZW4nXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5wbGF5X2Fycm93PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJTdG9wIHBsYXliYWNrXCIgKGNsaWNrKT1cInBsYXlTdG9wQWN0aW9uPy5wZXJmb3JtKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBsYXlTdG9wQWN0aW9uPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwicGxheVN0b3BBY3Rpb24/LmRpc2FibGVkID8gJ2dyZXknIDogJ3llbGxvdydcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnN0b3A8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc2NyZWVuWHNcIiBtYXRUb29sdGlwPVwiVG9nZ2xlIGRldGFpbGVkIGF1ZGlvIGRpc3BsYXlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUF1ZGlvRGV0YWlscyB8fCAhYXVkaW9Mb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dSZWNvcmRpbmdEZXRhaWxzKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7KGF1ZGlvU2lnbmFsQ29sbGFwc2VkKSA/IFwiZXhwYW5kX2xlc3NcIiA6IFwiZXhwYW5kX21vcmVcIn19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdFRvb2x0aXA9XCJEb3dubG9hZCBjdXJyZW50IHJlY29yZGluZ1wiICpuZ0lmPVwiZW5hYmxlRG93bmxvYWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUF1ZGlvRGV0YWlscyB8fCAhYXVkaW9Mb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkUmVjb3JkaW5nKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtaW4td2lkdGg6IDE0Y2g7cGFkZGluZzoycHhcIj48dGFibGUgc3R5bGU9XCJib3JkZXItc3R5bGU6IG5vbmVcIj48dHI+PHRkPlBlYWs6PC90ZD48dGQ+PHNwYW4gbWF0VG9vbHRpcD1cIlBlYWsgbGV2ZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiKHBlYWtEYkx2bCA+IHdhcm5EYkxldmVsKT8ncmVkJzonYmxhY2snXCI+e3twZWFrRGJMdmwgfCBudW1iZXI6JzEuMS0xJ319IGRCIDwvc3Bhbj48L3RkPjwvdHI+XHJcbiAgICAgICAgICA8dHIgKm5nSWY9XCJfYWdjXCI+PHRkPkFHQzo8L3RkPjx0ZD48c3BhbiBtYXRUb29sdGlwPVwiQXV0byBnYWluIGNvbnRyb2xcIj57e2FnY1N0cmluZ319PC9zcGFuPjwvdGQ+PC90cj48L3RhYmxlPjwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgOmhvc3Qge1xyXG4gICAgICAgIGZsZXg6IDA7IC8qIG9ubHkgcmVxdWlyZWQgdmVydGljYWwgc3BhY2UgKi9cclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZ3JheTtcclxuICAgICAgICBwYWRkaW5nOiA0cHg7XHJcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcblxyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IC8qIGZsZXggY29udGFpbmVyOiBsZWZ0IGxldmVsIGJhciwgcmlnaHQgZGVjaW1hbCBwZWFrIGxldmVsIHZhbHVlICovXHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgLyogd3JhcCBjb3VsZCBjb21wbGV0ZWx5IGRlc3Ryb3kgdGhlIGxheW91dCAqL1xyXG4gICAgfWAsIGBzcGFuIHtcclxuICAgICAgICBmbGV4OiAwO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICB9YCxgXHJcbiAgICAgYnV0dG9uIHtcclxuICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xyXG4gICAgIH1gXVxyXG5cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlY29yZGluZ0l0ZW1Db250cm9scyBleHRlbmRzIFJlc3BvbnNpdmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBjZTogSFRNTERpdkVsZW1lbnR8bnVsbD1udWxsO1xyXG4gIEBJbnB1dCgpIGF1ZGlvU2lnbmFsQ29sbGFwc2VkOiBib29sZWFuPXRydWU7XHJcbiAgcHJpdmF0ZSBfZGlzcGxheUF1ZGlvQnVmZmVyOiBBdWRpb0J1ZmZlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGVuYWJsZURvd25sb2FkOiBib29sZWFuPWZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwZWFrRGJMdmwgPSBNSU5fREJfTEVWRUw7XHJcblxyXG4gIF9kaXNwbGF5TGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGw9bnVsbDtcclxuXHJcbiAgX2FnYzpib29sZWFufG51bGx8dW5kZWZpbmVkPXVuZGVmaW5lZDtcclxuICBhZ2NTdHJpbmc9J24vYSc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBhZ2MoYWdjOmJvb2xlYW58bnVsbHx1bmRlZmluZWQpe1xyXG4gICAgdGhpcy5fYWdjPWFnYztcclxuICAgIGlmKHRoaXMuX2FnYz09PXVuZGVmaW5lZCB8fCB0aGlzLl9hZ2M9PT1udWxsKXtcclxuICAgICAgdGhpcy5hZ2NTdHJpbmc9J24vYSc7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgaWYodGhpcy5fYWdjPT09dHJ1ZSl7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09uJztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5hZ2NTdHJpbmc9J09mZic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvblNob3dSZWNvcmRpbmdEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uRG93bmxvYWRSZWNvcmRpbmc6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZUF1ZGlvRGV0YWlscz10cnVlO1xyXG4gIEBJbnB1dCgpIGF1ZGlvTG9hZGVkPWZhbHNlO1xyXG4gIC8vQElucHV0KCkgY29udHJvbEF1ZGlvUGxheWVyOiBBdWRpb1BsYXllcjtcclxuICBASW5wdXQoKSBwbGF5U3RhcnRBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwbGF5U3RvcEFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gIHBsYXlTdGFydEVuYWJsZWQgPSBmYWxzZTtcclxuICBwbGF5U3RvcEVuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHVwZGF0ZVRpbWVySWQ6IG51bWJlcnxudWxsPW51bGw7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gZmFsc2U7XHJcblxyXG4gIHdhcm5EYkxldmVsID0gREVGQVVMVF9XQVJOX0RCX0xFVkVMO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYnBvOkJyZWFrcG9pbnRPYnNlcnZlcixwcml2YXRlIHJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGJwbyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNob3dSZWNvcmRpbmdEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5vblNob3dSZWNvcmRpbmdEZXRhaWxzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkUmVjb3JkaW5nKCkge1xyXG4gICAgdGhpcy5vbkRvd25sb2FkUmVjb3JkaW5nLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2UgPSB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgIHRoaXMuX2Rpc3BsYXlMZXZlbEluZm9zID0gbGV2ZWxJbmZvcztcclxuICB9XHJcblxyXG4gIGVycm9yKCkge1xyXG4gICAgLy8gdGhpcy5zdGF0dXMgPSAnRVJST1InO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3ByLXJlY29yZGluZ2l0ZW1kaXNwbGF5JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgW2NsYXNzXT1cInthdWRpb1N0YXR1c0Rpc3BsYXk6IXNjcmVlblhzLGF1ZGlvU3RhdHVzRGlzcGxheVhzOnNjcmVlblhzfVwiPlxyXG4gICAgICAgIDxhdWRpby1sZXZlbGJhciBzdHlsZT1cImZsZXg6MSAwIDElXCIgW3N0cmVhbWluZ01vZGVdPVwic3RyZWFtaW5nTW9kZVwiIFtkaXNwbGF5TGV2ZWxJbmZvc109XCJfZGlzcGxheUxldmVsSW5mb3NcIj48L2F1ZGlvLWxldmVsYmFyPlxyXG4gICAgICAgIDxzcHItcmVjb3JkaW5naXRlbWNvbnRyb2xzIHN0eWxlPVwiZmxleDowIDAgMHB4XCIgW2F1ZGlvTG9hZGVkXT1cImRpc3BsYXlBdWRpb0J1ZmZlciE9PW51bGxcIiBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiIFtwbGF5U3RvcEFjdGlvbl09XCJwbGF5U3RvcEFjdGlvblwiIFtwZWFrRGJMdmxdPVwicGVha0RiTHZsXCIgW2FnY109XCJfYWdjXCIgKG9uU2hvd1JlY29yZGluZ0RldGFpbHMpPVwib25TaG93UmVjb3JkaW5nRGV0YWlscy5lbWl0KClcIj48L3Nwci1yZWNvcmRpbmdpdGVtY29udHJvbHM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHN0eWxlczogW2BkaXYge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtncmF5O1xyXG4gICAgICAgIHBhZGRpbmc6IDRweDtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyAvKiB3cmFwIGNvdWxkIGNvbXBsZXRlbHkgZGVzdHJveSB0aGUgbGF5b3V0ICovXHJcbiAgICB9YCwgYGF1ZGlvLWxldmVsYmFyIHtcclxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgfWAsYC5hdWRpb1N0YXR1c0Rpc3BsYXl7XHJcbiAgICBkaXNwbGF5OmZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgaGVpZ2h0OjEwMHB4O1xyXG4gICAgbWluLWhlaWdodDogMTAwcHg7XHJcbiAgfWAsYC5hdWRpb1N0YXR1c0Rpc3BsYXlYc3tcclxuICAgIGRpc3BsYXk6ZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBoZWlnaHQ6MTI1cHg7XHJcbiAgICBtaW4taGVpZ2h0OiAxMjVweDtcclxuICB9YF1cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWNvcmRpbmdJdGVtRGlzcGxheSBleHRlbmRzIFJlc3BvbnNpdmVDb21wb25lbnQgaW1wbGVtZW50cyBMZXZlbExpc3RlbmVyLCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIGNlOiBIVE1MRGl2RWxlbWVudHxudWxsPW51bGw7XHJcbiAgICBAVmlld0NoaWxkKExldmVsQmFyLCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXZlTGV2ZWwhOiBMZXZlbEJhcjtcclxuICAgIEBJbnB1dCgpIHN0cmVhbWluZ01vZGU6IGJvb2xlYW49ZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhdWRpb1NpZ25hbENvbGxhcHNlZDogYm9vbGVhbj10cnVlO1xyXG4gICAgcHJpdmF0ZSBfZGlzcGxheUF1ZGlvQnVmZmVyOiBBdWRpb0J1ZmZlciB8IG51bGx8dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgZW5hYmxlRG93bmxvYWQ6IGJvb2xlYW49ZmFsc2U7XHJcblxyXG4gICAgcGVha0RiTHZsID0gTUlOX0RCX0xFVkVMO1xyXG5cclxuICAgIF9kaXNwbGF5TGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGw9bnVsbDtcclxuXHJcbiAgICBfYWdjOmJvb2xlYW58bnVsbHx1bmRlZmluZWQ9dW5kZWZpbmVkO1xyXG4gICAgYWdjU3RyaW5nPSduL2EnO1xyXG5cclxuICAgIEBJbnB1dCgpIHNldCBhZ2MoYWdjOmJvb2xlYW58bnVsbHx1bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLl9hZ2M9YWdjO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBvblNob3dSZWNvcmRpbmdEZXRhaWxzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25Eb3dubG9hZFJlY29yZGluZzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8vQElucHV0KCkgY29udHJvbEF1ZGlvUGxheWVyOiBBdWRpb1BsYXllcjtcclxuICAgIEBJbnB1dCgpIHBsYXlTdGFydEFjdGlvbjpBY3Rpb248dm9pZD58dW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgcGxheVN0b3BBY3Rpb246QWN0aW9uPHZvaWQ+fHVuZGVmaW5lZDtcclxuICAgIHBsYXlTdGFydEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHBsYXlTdG9wRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVUaW1lcklkOiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuICAgIHByaXZhdGUgZGVzdHJveWVkID0gZmFsc2U7XHJcblxyXG4gICAgd2FybkRiTGV2ZWwgPSBERUZBVUxUX1dBUk5fREJfTEVWRUw7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJwbzpCcmVha3BvaW50T2JzZXJ2ZXIscHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoYnBvKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUF1ZGlvQnVmZmVyKGRpc3BsYXlBdWRpb0J1ZmZlcjogQXVkaW9CdWZmZXIgfCBudWxsfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5QXVkaW9CdWZmZXIgPSBkaXNwbGF5QXVkaW9CdWZmZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpc3BsYXlBdWRpb0J1ZmZlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheUF1ZGlvQnVmZmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dSZWNvcmRpbmdEZXRhaWxzKCkge1xyXG4gICAgICAgIHRoaXMub25TaG93UmVjb3JkaW5nRGV0YWlscy5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWRSZWNvcmRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5vbkRvd25sb2FkUmVjb3JkaW5nLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jZSA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgLy90aGlzLmNvbnRyb2xBdWRpb1BsYXllci5saXN0ZW5lcj10aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlzcGxheUxldmVsSW5mb3MobGV2ZWxJbmZvczogTGV2ZWxJbmZvcyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5TGV2ZWxJbmZvcyA9IGxldmVsSW5mb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNoYW5uZWxDb3VudChjaGFubmVsQ291bnQ6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5jaGFubmVsQ291bnQgPSBjaGFubmVsQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gIHNldCBwbGF5RnJhbWVQb3NpdGlvbihwbGF5RnJhbWVQb3NpdGlvbjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmxpdmVMZXZlbC5wbGF5RnJhbWVQb3NpdGlvbj1wbGF5RnJhbWVQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gICAgdXBkYXRlKGxldmVsSW5mbzogTGV2ZWxJbmZvLCBwZWFrTGV2ZWxJbmZvOiBMZXZlbEluZm8pIHtcclxuICAgICAgICBsZXQgcGVha0RCVmFsID0gbGV2ZWxJbmZvLnBvd2VyTGV2ZWxEQigpO1xyXG4gICAgICAgIGlmICh0aGlzLnBlYWtEYkx2bCA8IHBlYWtEQlZhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnBlYWtEYkx2bCA9IHBlYWtEQlZhbDtcclxuICAgICAgICAgICAgLy8gdGhlIGV2ZW50IGNvbWVzIGZyb20gb3V0c2lkZSBhbiBBbmd1bGFyIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGl2ZUxldmVsLnVwZGF0ZShsZXZlbEluZm8pO1xyXG4gICAgfVxyXG5cclxuICAgIGVycm9yKCkge1xyXG4gICAgICAgIC8vIHRoaXMuc3RhdHVzID0gJ0VSUk9SJztcclxuICAgIH1cclxuXHJcbiAgICBzdHJlYW1GaW5pc2hlZCgpIHtcclxuICAgICAgICB0aGlzLmxpdmVMZXZlbC5zdHJlYW1GaW5pc2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMucGVha0RiTHZsID0gTUlOX0RCX0xFVkVMO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuIl19
@@ -15,10 +15,10 @@ export class ResponsiveComponent {
15
15
  //console.debug("Screen XS: "+this.screenXs);
16
16
  });
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ResponsiveComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ResponsiveComponent, ngImport: i0 }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ResponsiveComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ResponsiveComponent, ngImport: i0 }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ResponsiveComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ResponsiveComponent, decorators: [{
22
22
  type: Directive
23
23
  }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZV9jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvdWkvcmVzcG9uc2l2ZV9jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFHeEMsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFzQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUY1RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2Ysa0JBQWtCO2FBQ2YsT0FBTyxDQUFDO1lBQ1AsV0FBVyxDQUFDLE1BQU07U0FDbkIsQ0FBQzthQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLDZDQUE2QztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBYlUsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHN9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XHJcbmltcG9ydCB7RGlyZWN0aXZlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQ29tcG9uZW50IHtcclxuXHJcbiAgc2NyZWVuWHMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XHJcbiAgICBicmVha3BvaW50T2JzZXJ2ZXJcclxuICAgICAgLm9ic2VydmUoW1xyXG4gICAgICAgIEJyZWFrcG9pbnRzLlhTbWFsbFxyXG4gICAgICBdKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5zY3JlZW5YcyA9IChyZXN1bHQubWF0Y2hlcyk7XHJcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiU2NyZWVuIFhTOiBcIit0aGlzLnNjcmVlblhzKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -9,10 +9,10 @@ export class ScrollIntoViewDirective {
9
9
  this.elRef.nativeElement.scrollIntoView(false);
10
10
  }
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: { scrollIntoViewToBottom: "scrollIntoViewToBottom" }, ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.2", type: ScrollIntoViewDirective, selector: "[scrollIntoViewToBottom]", inputs: { scrollIntoViewToBottom: "scrollIntoViewToBottom" }, ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: "[scrollIntoViewToBottom]"
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
20
20
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { scrollIntoViewToBottom: [{
21
21
  type: Input
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsSW50b1ZpZXdUb0JvdHRvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi91dGlscy9zY3JvbGxJbnRvVmlld1RvQm90dG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUkzRCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQW9CLEtBQWdCO1FBQWhCLFVBQUssR0FBTCxLQUFLLENBQVc7SUFBRSxDQUFDO0lBQ3ZDLElBQ0ksc0JBQXNCLENBQUMsR0FBVztRQUNsQyxJQUFHLEdBQUcsRUFBQztZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7OEdBUlUsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtpQkFDckM7K0VBS0ssc0JBQXNCO3NCQUR6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIltzY3JvbGxJbnRvVmlld1RvQm90dG9tXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZXtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjpFbGVtZW50UmVmKXt9XHJcbiAgQElucHV0KClcclxuICBzZXQgc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbShzaXY6Ym9vbGVhbil7XHJcbiAgICAgIGlmKHNpdil7XHJcbiAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsSW50b1ZpZXdUb0JvdHRvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWVjaHJlY29yZGVybmcvc3JjL2xpYi91dGlscy9zY3JvbGxJbnRvVmlld1RvQm90dG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUkzRCxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQW9CLEtBQWdCO1FBQWhCLFVBQUssR0FBTCxLQUFLLENBQVc7SUFBRSxDQUFDO0lBQ3ZDLElBQ0ksc0JBQXNCLENBQUMsR0FBVztRQUNsQyxJQUFHLEdBQUcsRUFBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDOzhHQVJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3JDOytFQUtLLHNCQUFzQjtzQkFEekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbc2Nyb2xsSW50b1ZpZXdUb0JvdHRvbV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmV7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6RWxlbWVudFJlZil7fVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNjcm9sbEludG9WaWV3VG9Cb3R0b20oc2l2OmJvb2xlYW4pe1xyXG4gICAgICBpZihzaXYpe1xyXG4gICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyhmYWxzZSk7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -187,4 +187,4 @@ export class UserAgentBuilder {
187
187
  return this.instance.userAgent;
188
188
  }
189
189
  }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWEtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3V0aWxzL3VhLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW1CLElBQVcsRUFBUSxPQUFtQixFQUFRLE9BQWU7UUFBN0QsU0FBSSxHQUFKLElBQUksQ0FBTztRQUFRLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUSxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBRWhGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQztZQUNkLENBQUMsR0FBQyxDQUFDLEdBQUMsSUFBSSxHQUFDLElBQUksQ0FBQyxPQUFPLEdBQUMsR0FBRyxDQUFDO1NBQzNCO1FBQ0QsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFDO1lBQ2QsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxHQUFHLENBQUM7U0FDM0I7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRjtBQUNELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBQyxTQUFTLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFDLFFBQVEsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUMsUUFBUSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBQyxNQUFNLENBQUM7QUFJOUIsTUFBTSxDQUFOLElBQVksT0FBdUU7QUFBbkYsV0FBWSxPQUFPO0lBQUUsOEJBQWlCLENBQUE7SUFBQyw0QkFBZSxDQUFBO0lBQUMsNEJBQWUsQ0FBQTtJQUFDLHdCQUFXLENBQUE7QUFBQSxDQUFDLEVBQXZFLE9B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LEVBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFFbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBVc2VyQWdlbnRDb21wb25lbnR7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG5hbWU6c3RyaW5nLHB1YmxpYyB2ZXJzaW9uOnN0cmluZ3xudWxsLHB1YmxpYyBjb21tZW50PzpzdHJpbmcpIHtcclxuXHJcbiAgfVxyXG5cclxuICB0b1N0cmluZygpOnN0cmluZ3tcclxuICAgIGxldCBzPSdbJyt0aGlzLm5hbWUrJ10nO1xyXG4gICAgaWYodGhpcy52ZXJzaW9uKXtcclxuICAgICAgcz1zKycgWycrdGhpcy52ZXJzaW9uKyddJztcclxuICAgIH1cclxuICAgIGlmKHRoaXMuY29tbWVudCl7XHJcbiAgICAgIHM9cysnIFsnK3RoaXMuY29tbWVudCsnXSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcztcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IE5BTUVfRklSRUZPWD0nRmlyZWZveCc7XHJcbmV4cG9ydCBjb25zdCBOQU1FX0NIUk9NRT0nQ2hyb21lJztcclxuZXhwb3J0IGNvbnN0IE5BTUVfU0FGQVJJPSdTYWZhcmknO1xyXG5leHBvcnQgY29uc3QgTkFNRV9FREdFPSdFZGdlJztcclxuXHJcblxyXG5cclxuZXhwb3J0IGVudW0gQnJvd3NlciB7RmlyZWZveD0nRmlyZWZveCcsQ2hyb21lPSdDaHJvbWUnLFNhZmFyaT0nU2FmYXJpJyxFZGdlPSdFZGdlJ31cclxuXHJcbmV4cG9ydCBjb25zdCBPU19XSU5ET1dTPSdXaW5kb3dzJztcclxuZXhwb3J0IGNvbnN0IE9TX0FORFJPSUQ9J0FuZHJvaWQnO1xyXG5cclxuZXhwb3J0IGVudW0gUGxhdGZvcm0ge1dpbmRvd3M9J1dpbmRvd3MnLEFuZHJvaWQ9J0FuZHJvaWQnLG1hY09TPSdNQUMgT1MgWCd9XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckFnZW50e1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGV0ZWN0ZWRQbGF0Zm9ybTpQbGF0Zm9ybXxudWxsLHByaXZhdGUgX2RldGVjdGVkQnJvd3NlcjpCcm93c2VyfG51bGwscHJpdmF0ZSBfZGV0ZWN0ZWRCcm93c2VyVmVyc2lvbjpzdHJpbmd8bnVsbD1udWxsKSB7XHJcbiAgfVxyXG5cclxuICBnZXQgZGV0ZWN0ZWRCcm93c2VyKCk6IEJyb3dzZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXRlY3RlZEJyb3dzZXI7XHJcbiAgfVxyXG5cclxuICBnZXQgZGV0ZWN0ZWRCcm93c2VyVmVyc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXRlY3RlZEJyb3dzZXJWZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRldGVjdGVkUGxhdGZvcm0oKTogUGxhdGZvcm0gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXRlY3RlZFBsYXRmb3JtO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VyQWdlbnRCdWlsZGVyIHtcclxuICBzdGF0aWMgaW5zdGFuY2U6VXNlckFnZW50QnVpbGRlcnx1bmRlZmluZWQ9dW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgY29tcHM6QXJyYXk8VXNlckFnZW50Q29tcG9uZW50Pj1uZXcgQXJyYXk8VXNlckFnZW50Q29tcG9uZW50PigpO1xyXG4gIHByaXZhdGUgdXNlckFnZW50ITpVc2VyQWdlbnQ7XHJcblxyXG4gIHByaXZhdGUgYnVpbGQoKSB7XHJcblxyXG4gICAgLy8gLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gaWYobmF2aWdhdG9yLnVzZXJBZ2VudERhdGEpe1xyXG4gICAgLy8gICAvLyBtYXliZSB3ZSBjYW4gdXNlIHRoaXMgaW4gIHRoZSBmdXR1cmVcclxuICAgIC8vICAgY29uc29sZS5pbmZvKFwiQnJvd3NlciBwcm92aWRlcyB1c2VyQWdlbnREYXRhOlwiKTtcclxuICAgIC8vXHJcbiAgICAvLyAgIGNvbnNvbGUuaW5mbyhcIkJyYW5kczpcIik7XHJcbiAgICAvLyAgIC8vIEB0cy1pZ25vcmVcclxuICAgIC8vICAgbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEuYnJhbmRzLmZvckVhY2goKGJyPT57XHJcbiAgICAvLyAgICAgY29uc29sZS5pbmZvKGJyLmJyYW5kICtcIiBcIitici52ZXJzaW9uKTtcclxuICAgIC8vICAgfSkpXHJcbiAgICAvLyAgIC8vIEB0cy1pZ25vcmVcclxuICAgIC8vICAgY29uc29sZS5pbmZvKFwiUGxhdGZvcm06IFwiK25hdmlnYXRvci51c2VyQWdlbnREYXRhLnBsYXRmb3JtKTtcclxuICAgIC8vICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gICBjb25zb2xlLmluZm8oXCJNb2JpbGU6XCIrbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEubW9iaWxlKTtcclxuICAgIC8vICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gICAvL2NvbnNvbGUuaW5mbyhuYXZpZ2F0b3IudXNlckFnZW50RGF0YS50b0pTT04oKSk7XHJcbiAgICAvLyB9ZWxzZSB7XHJcbiAgICAvLyAgIGNvbnNvbGUuaW5mbyhcIkJyb3dzZXIgZG9lcyBub3QgcHJvdmlkZSB1c2VyQWdlbnREYXRhLlwiKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBsZXQgdWE9bmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgIGNvbnNvbGUuZGVidWcoXCJVc2VyIGFnZW50OiBcIit1YSk7XHJcbiAgICB0aGlzLmNvbXBzID0gbmV3IEFycmF5PFVzZXJBZ2VudENvbXBvbmVudD4oKTtcclxuXHJcbiAgICBsZXQgcHAgPSAwO1xyXG4gICAgd2hpbGUgKHBwIDwgdWEubGVuZ3RoKSB7XHJcbiAgICAgIC8vcGFyc2UgbmFtZS92ZXJzaW9uXHJcbiAgICAgIGxldCBuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxyXG4gICAgICBsZXQgdmVyc2lvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICAgIGxldCBjb21tZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgICBsZXQgYmxQb3MgPSB1YS5pbmRleE9mKCcgJywgcHApO1xyXG4gICAgICBsZXQgcHJ0OiBzdHJpbmc7XHJcbiAgICAgIC8vIFRPRE8gUmVwbGFjZSBzdWJzdHIgd2l0aCBzdWJzdHJpbmcgKD8pXHJcbiAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzUyNjQwMjcxL3doeS1pcy1zdHJpbmctcHJvdG90eXBlLXN1YnN0ci1kZXByZWNhdGVkXHJcbiAgICAgIGlmIChibFBvcyA9PSAtMSkge1xyXG4gICAgICAgIHBydCA9IHVhLnN1YnN0cihwcCk7XHJcbiAgICAgICAgcHAgKz0gcHJ0Lmxlbmd0aDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwcnQgPSB1YS5zdWJzdHIocHAsIGJsUG9zIC0gcHApO1xyXG4gICAgICAgIHBwID0gYmxQb3MgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBzZXBQb3MgPSBwcnQuaW5kZXhPZignLycpO1xyXG4gICAgICBpZiAoc2VwUG9zID4gMCkge1xyXG4gICAgICAgIG5hbWUgPSBwcnQuc3Vic3RyKDAsIHNlcFBvcyk7XHJcbiAgICAgICAgdmVyc2lvbiA9IHBydC5zdWJzdHIoc2VwUG9zICsgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmFtZSA9IHBydDtcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAodWFbcHBdID09PSAnICcgJiYgcHAgPCB1YS5sZW5ndGgpIHtcclxuICAgICAgICBwcCsrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh1YVtwcF0gPT09ICcoJykge1xyXG4gICAgICAgIHBwKys7XHJcbiAgICAgICAgbGV0IGNvbW1FbmQgPSB1YS5pbmRleE9mKCcpJywgcHApO1xyXG4gICAgICAgIGNvbW1lbnQgPSB1YS5zdWJzdHIocHAsIGNvbW1FbmQgLSBwcCk7XHJcbiAgICAgICAgcHAgPSBjb21tRW5kICsgMTtcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAodWFbcHBdID09PSAnICcgJiYgcHAgPCB1YS5sZW5ndGgpIHtcclxuICAgICAgICBwcCsrO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHVhYz1uZXcgVXNlckFnZW50Q29tcG9uZW50KG5hbWUsIHZlcnNpb24sIGNvbW1lbnQpO1xyXG4gICAgICBjb25zb2xlLmRlYnVnKFwidXNlciBhZ2VudCBjb21wOiBcIit1YWMpO1xyXG4gICAgICB0aGlzLmNvbXBzLnB1c2godWFjKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGV0UGxhdGY6UGxhdGZvcm18bnVsbD1udWxsO1xyXG4gICAgaWYodGhpcy5ydW5zT25PUyhQbGF0Zm9ybS5BbmRyb2lkKSl7XHJcbiAgICAgIGRldFBsYXRmPVBsYXRmb3JtLkFuZHJvaWQ7XHJcbiAgICB9ZWxzZSBpZih0aGlzLnJ1bnNPbk9TKFBsYXRmb3JtLldpbmRvd3MpKXtcclxuICAgICAgZGV0UGxhdGY9UGxhdGZvcm0uV2luZG93cztcclxuICAgIH1lbHNlIGlmKHRoaXMucnVuc09uT1MoUGxhdGZvcm0ubWFjT1MpKXtcclxuICAgICAgZGV0UGxhdGY9UGxhdGZvcm0ubWFjT1M7XHJcbiAgICB9XHJcblxyXG5cclxuICBsZXQgZGV0QnI6QnJvd3NlcnxudWxsPW51bGw7XHJcbiAgICBpZih0aGlzLm1hdGNoZXNCcm93c2VyKEJyb3dzZXIuRmlyZWZveCkpe1xyXG4gICAgICBkZXRCcj1Ccm93c2VyLkZpcmVmb3g7XHJcbiAgICB9ZWxzZSBpZih0aGlzLm1hdGNoZXNCcm93c2VyKEJyb3dzZXIuQ2hyb21lKSl7XHJcbiAgICAgIGRldEJyPUJyb3dzZXIuQ2hyb21lO1xyXG4gICAgfWVsc2UgaWYodGhpcy5tYXRjaGVzQnJvd3NlcihCcm93c2VyLlNhZmFyaSkpe1xyXG4gICAgICBkZXRCcj1Ccm93c2VyLlNhZmFyaTtcclxuICAgIH1cclxuICAgIGxldCBkZXRCclZlcnMgPW51bGw7XHJcbiAgICBpZihkZXRCcikge1xyXG4gICAgIGRldEJyVmVycz10aGlzLmJyb3dzZXJWZXJzaW9uKGRldEJyKTtcclxuICAgIH1cclxuICAgIHRoaXMudXNlckFnZW50PW5ldyBVc2VyQWdlbnQoZGV0UGxhdGYsZGV0QnIsZGV0QnJWZXJzKTtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hdGNoZXNCcm93c2VyKGJyb3dzZXJOYW1lOnN0cmluZyl7XHJcbiAgICBmb3IobGV0IGNpPTA7Y2k8dGhpcy5jb21wcy5sZW5ndGg7Y2krKyl7XHJcbiAgICAgIGxldCBibj10aGlzLmNvbXBzW2NpXS5uYW1lXHJcbiAgICAgIGxldCBiblJlPW5ldyBSZWdFeHAoYnJvd3Nlck5hbWUsJ2knKTtcclxuICAgICAgaWYoYm4ubWF0Y2goYm5SZSkpe1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJyb3dzZXJWZXJzaW9uKGJyb3dzZXJOYW1lOnN0cmluZyk6c3RyaW5nfG51bGx7XHJcbiAgICBmb3IobGV0IGNpPTA7Y2k8dGhpcy5jb21wcy5sZW5ndGg7Y2krKyl7XHJcbiAgICAgIGNvbnN0IGNvbXA9dGhpcy5jb21wc1tjaV07XHJcbiAgICAgIGNvbnN0IGJuPWNvbXAubmFtZTtcclxuICAgICAgY29uc3QgYm5SZT1uZXcgUmVnRXhwKGJyb3dzZXJOYW1lLCdpJyk7XHJcbiAgICAgIGlmKGJuLm1hdGNoKGJuUmUpKXtcclxuICAgICAgICByZXR1cm4gY29tcC52ZXJzaW9uO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcnVuc09uT1Mob3M6c3RyaW5nKTpib29sZWFue1xyXG4gICAgZm9yKGxldCBjaT0wO2NpPHRoaXMuY29tcHMubGVuZ3RoO2NpKyspe1xyXG4gICAgICBsZXQgY2M9dGhpcy5jb21wc1tjaV0uY29tbWVudFxyXG4gICAgICBpZihjYyl7XHJcbiAgICAgICAgdmFyIG9zUmUgPSBuZXcgUmVnRXhwKG9zLCdpJyk7XHJcbiAgICAgICAgaWYoY2MubWF0Y2gob3NSZSkpe1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdXNlckFnZW50KCk6VXNlckFnZW50e1xyXG4gICAgICBpZighdGhpcy5pbnN0YW5jZSl7XHJcbiAgICAgICAgdGhpcy5pbnN0YW5jZT1uZXcgVXNlckFnZW50QnVpbGRlcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYnVpbGQoKTtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UudXNlckFnZW50O1xyXG5cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWEtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3V0aWxzL3VhLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW1CLElBQVcsRUFBUSxPQUFtQixFQUFRLE9BQWU7UUFBN0QsU0FBSSxHQUFKLElBQUksQ0FBTztRQUFRLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUSxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBRWhGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUMsR0FBRyxHQUFDLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDO1lBQ2YsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxHQUFHLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUcsSUFBSSxDQUFDLE9BQU8sRUFBQyxDQUFDO1lBQ2YsQ0FBQyxHQUFDLENBQUMsR0FBQyxJQUFJLEdBQUMsSUFBSSxDQUFDLE9BQU8sR0FBQyxHQUFHLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGO0FBQ0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFDLFNBQVMsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUMsUUFBUSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBQyxRQUFRLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFDLE1BQU0sQ0FBQztBQUk5QixNQUFNLENBQU4sSUFBWSxPQUF1RTtBQUFuRixXQUFZLE9BQU87SUFBRSw4QkFBaUIsQ0FBQTtJQUFDLDRCQUFlLENBQUE7SUFBQyw0QkFBZSxDQUFBO0lBQUMsd0JBQVcsQ0FB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TCxJQUFJLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLEVBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO29CQUNqQixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNaLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUVuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVzZXJBZ2VudENvbXBvbmVudHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTpzdHJpbmcscHVibGljIHZlcnNpb246c3RyaW5nfG51bGwscHVibGljIGNvbW1lbnQ/OnN0cmluZykge1xyXG5cclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6c3RyaW5ne1xyXG4gICAgbGV0IHM9J1snK3RoaXMubmFtZSsnXSc7XHJcbiAgICBpZih0aGlzLnZlcnNpb24pe1xyXG4gICAgICBzPXMrJyBbJyt0aGlzLnZlcnNpb24rJ10nO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5jb21tZW50KXtcclxuICAgICAgcz1zKycgWycrdGhpcy5jb21tZW50KyddJztcclxuICAgIH1cclxuICAgIHJldHVybiBzO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY29uc3QgTkFNRV9GSVJFRk9YPSdGaXJlZm94JztcclxuZXhwb3J0IGNvbnN0IE5BTUVfQ0hST01FPSdDaHJvbWUnO1xyXG5leHBvcnQgY29uc3QgTkFNRV9TQUZBUkk9J1NhZmFyaSc7XHJcbmV4cG9ydCBjb25zdCBOQU1FX0VER0U9J0VkZ2UnO1xyXG5cclxuXHJcblxyXG5leHBvcnQgZW51bSBCcm93c2VyIHtGaXJlZm94PSdGaXJlZm94JyxDaHJvbWU9J0Nocm9tZScsU2FmYXJpPSdTYWZhcmknLEVkZ2U9J0VkZ2UnfVxyXG5cclxuZXhwb3J0IGNvbnN0IE9TX1dJTkRPV1M9J1dpbmRvd3MnO1xyXG5leHBvcnQgY29uc3QgT1NfQU5EUk9JRD0nQW5kcm9pZCc7XHJcblxyXG5leHBvcnQgZW51bSBQbGF0Zm9ybSB7V2luZG93cz0nV2luZG93cycsQW5kcm9pZD0nQW5kcm9pZCcsbWFjT1M9J01BQyBPUyBYJ31cclxuXHJcbmV4cG9ydCBjbGFzcyBVc2VyQWdlbnR7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kZXRlY3RlZFBsYXRmb3JtOlBsYXRmb3JtfG51bGwscHJpdmF0ZSBfZGV0ZWN0ZWRCcm93c2VyOkJyb3dzZXJ8bnVsbCxwcml2YXRlIF9kZXRlY3RlZEJyb3dzZXJWZXJzaW9uOnN0cmluZ3xudWxsPW51bGwpIHtcclxuICB9XHJcblxyXG4gIGdldCBkZXRlY3RlZEJyb3dzZXIoKTogQnJvd3NlciB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RldGVjdGVkQnJvd3NlcjtcclxuICB9XHJcblxyXG4gIGdldCBkZXRlY3RlZEJyb3dzZXJWZXJzaW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RldGVjdGVkQnJvd3NlclZlcnNpb247XHJcbiAgfVxyXG5cclxuICBnZXQgZGV0ZWN0ZWRQbGF0Zm9ybSgpOiBQbGF0Zm9ybSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RldGVjdGVkUGxhdGZvcm07XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJBZ2VudEJ1aWxkZXIge1xyXG4gIHN0YXRpYyBpbnN0YW5jZTpVc2VyQWdlbnRCdWlsZGVyfHVuZGVmaW5lZD11bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBjb21wczpBcnJheTxVc2VyQWdlbnRDb21wb25lbnQ+PW5ldyBBcnJheTxVc2VyQWdlbnRDb21wb25lbnQ+KCk7XHJcbiAgcHJpdmF0ZSB1c2VyQWdlbnQhOlVzZXJBZ2VudDtcclxuXHJcbiAgcHJpdmF0ZSBidWlsZCgpIHtcclxuXHJcbiAgICAvLyAvLyBAdHMtaWdub3JlXHJcbiAgICAvLyBpZihuYXZpZ2F0b3IudXNlckFnZW50RGF0YSl7XHJcbiAgICAvLyAgIC8vIG1heWJlIHdlIGNhbiB1c2UgdGhpcyBpbiAgdGhlIGZ1dHVyZVxyXG4gICAgLy8gICBjb25zb2xlLmluZm8oXCJCcm93c2VyIHByb3ZpZGVzIHVzZXJBZ2VudERhdGE6XCIpO1xyXG4gICAgLy9cclxuICAgIC8vICAgY29uc29sZS5pbmZvKFwiQnJhbmRzOlwiKTtcclxuICAgIC8vICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gICBuYXZpZ2F0b3IudXNlckFnZW50RGF0YS5icmFuZHMuZm9yRWFjaCgoYnI9PntcclxuICAgIC8vICAgICBjb25zb2xlLmluZm8oYnIuYnJhbmQgK1wiIFwiK2JyLnZlcnNpb24pO1xyXG4gICAgLy8gICB9KSlcclxuICAgIC8vICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgLy8gICBjb25zb2xlLmluZm8oXCJQbGF0Zm9ybTogXCIrbmF2aWdhdG9yLnVzZXJBZ2VudERhdGEucGxhdGZvcm0pO1xyXG4gICAgLy8gICAvLyBAdHMtaWdub3JlXHJcbiAgICAvLyAgIGNvbnNvbGUuaW5mbyhcIk1vYmlsZTpcIituYXZpZ2F0b3IudXNlckFnZW50RGF0YS5tb2JpbGUpO1xyXG4gICAgLy8gICAvLyBAdHMtaWdub3JlXHJcbiAgICAvLyAgIC8vY29uc29sZS5pbmZvKG5hdmlnYXRvci51c2VyQWdlbnREYXRhLnRvSlNPTigpKTtcclxuICAgIC8vIH1lbHNlIHtcclxuICAgIC8vICAgY29uc29sZS5pbmZvKFwiQnJvd3NlciBkb2VzIG5vdCBwcm92aWRlIHVzZXJBZ2VudERhdGEuXCIpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGxldCB1YT1uYXZpZ2F0b3IudXNlckFnZW50O1xyXG4gICAgY29uc29sZS5kZWJ1ZyhcIlVzZXIgYWdlbnQ6IFwiK3VhKTtcclxuICAgIHRoaXMuY29tcHMgPSBuZXcgQXJyYXk8VXNlckFnZW50Q29tcG9uZW50PigpO1xyXG5cclxuICAgIGxldCBwcCA9IDA7XHJcbiAgICB3aGlsZSAocHAgPCB1YS5sZW5ndGgpIHtcclxuICAgICAgLy9wYXJzZSBuYW1lL3ZlcnNpb25cclxuICAgICAgbGV0IG5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXHJcbiAgICAgIGxldCB2ZXJzaW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgICAgbGV0IGNvbW1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIGxldCBibFBvcyA9IHVhLmluZGV4T2YoJyAnLCBwcCk7XHJcbiAgICAgIGxldCBwcnQ6IHN0cmluZztcclxuICAgICAgLy8gVE9ETyBSZXBsYWNlIHN1YnN0ciB3aXRoIHN1YnN0cmluZyAoPylcclxuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTI2NDAyNzEvd2h5LWlzLXN0cmluZy1wcm90b3R5cGUtc3Vic3RyLWRlcHJlY2F0ZWRcclxuICAgICAgaWYgKGJsUG9zID09IC0xKSB7XHJcbiAgICAgICAgcHJ0ID0gdWEuc3Vic3RyKHBwKTtcclxuICAgICAgICBwcCArPSBwcnQubGVuZ3RoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBydCA9IHVhLnN1YnN0cihwcCwgYmxQb3MgLSBwcCk7XHJcbiAgICAgICAgcHAgPSBibFBvcyArIDE7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHNlcFBvcyA9IHBydC5pbmRleE9mKCcvJyk7XHJcbiAgICAgIGlmIChzZXBQb3MgPiAwKSB7XHJcbiAgICAgICAgbmFtZSA9IHBydC5zdWJzdHIoMCwgc2VwUG9zKTtcclxuICAgICAgICB2ZXJzaW9uID0gcHJ0LnN1YnN0cihzZXBQb3MgKyAxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuYW1lID0gcHJ0O1xyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlICh1YVtwcF0gPT09ICcgJyAmJiBwcCA8IHVhLmxlbmd0aCkge1xyXG4gICAgICAgIHBwKys7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHVhW3BwXSA9PT0gJygnKSB7XHJcbiAgICAgICAgcHArKztcclxuICAgICAgICBsZXQgY29tbUVuZCA9IHVhLmluZGV4T2YoJyknLCBwcCk7XHJcbiAgICAgICAgY29tbWVudCA9IHVhLnN1YnN0cihwcCwgY29tbUVuZCAtIHBwKTtcclxuICAgICAgICBwcCA9IGNvbW1FbmQgKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlICh1YVtwcF0gPT09ICcgJyAmJiBwcCA8IHVhLmxlbmd0aCkge1xyXG4gICAgICAgIHBwKys7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdWFjPW5ldyBVc2VyQWdlbnRDb21wb25lbnQobmFtZSwgdmVyc2lvbiwgY29tbWVudCk7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJ1c2VyIGFnZW50IGNvbXA6IFwiK3VhYyk7XHJcbiAgICAgIHRoaXMuY29tcHMucHVzaCh1YWMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkZXRQbGF0ZjpQbGF0Zm9ybXxudWxsPW51bGw7XHJcbiAgICBpZih0aGlzLnJ1bnNPbk9TKFBsYXRmb3JtLkFuZHJvaWQpKXtcclxuICAgICAgZGV0UGxhdGY9UGxhdGZvcm0uQW5kcm9pZDtcclxuICAgIH1lbHNlIGlmKHRoaXMucnVuc09uT1MoUGxhdGZvcm0uV2luZG93cykpe1xyXG4gICAgICBkZXRQbGF0Zj1QbGF0Zm9ybS5XaW5kb3dzO1xyXG4gICAgfWVsc2UgaWYodGhpcy5ydW5zT25PUyhQbGF0Zm9ybS5tYWNPUykpe1xyXG4gICAgICBkZXRQbGF0Zj1QbGF0Zm9ybS5tYWNPUztcclxuICAgIH1cclxuXHJcblxyXG4gIGxldCBkZXRCcjpCcm93c2VyfG51bGw9bnVsbDtcclxuICAgIGlmKHRoaXMubWF0Y2hlc0Jyb3dzZXIoQnJvd3Nlci5GaXJlZm94KSl7XHJcbiAgICAgIGRldEJyPUJyb3dzZXIuRmlyZWZveDtcclxuICAgIH1lbHNlIGlmKHRoaXMubWF0Y2hlc0Jyb3dzZXIoQnJvd3Nlci5DaHJvbWUpKXtcclxuICAgICAgZGV0QnI9QnJvd3Nlci5DaHJvbWU7XHJcbiAgICB9ZWxzZSBpZih0aGlzLm1hdGNoZXNCcm93c2VyKEJyb3dzZXIuU2FmYXJpKSl7XHJcbiAgICAgIGRldEJyPUJyb3dzZXIuU2FmYXJpO1xyXG4gICAgfVxyXG4gICAgbGV0IGRldEJyVmVycyA9bnVsbDtcclxuICAgIGlmKGRldEJyKSB7XHJcbiAgICAgZGV0QnJWZXJzPXRoaXMuYnJvd3NlclZlcnNpb24oZGV0QnIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51c2VyQWdlbnQ9bmV3IFVzZXJBZ2VudChkZXRQbGF0ZixkZXRCcixkZXRCclZlcnMpO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWF0Y2hlc0Jyb3dzZXIoYnJvd3Nlck5hbWU6c3RyaW5nKXtcclxuICAgIGZvcihsZXQgY2k9MDtjaTx0aGlzLmNvbXBzLmxlbmd0aDtjaSsrKXtcclxuICAgICAgbGV0IGJuPXRoaXMuY29tcHNbY2ldLm5hbWVcclxuICAgICAgbGV0IGJuUmU9bmV3IFJlZ0V4cChicm93c2VyTmFtZSwnaScpO1xyXG4gICAgICBpZihibi5tYXRjaChiblJlKSl7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnJvd3NlclZlcnNpb24oYnJvd3Nlck5hbWU6c3RyaW5nKTpzdHJpbmd8bnVsbHtcclxuICAgIGZvcihsZXQgY2k9MDtjaTx0aGlzLmNvbXBzLmxlbmd0aDtjaSsrKXtcclxuICAgICAgY29uc3QgY29tcD10aGlzLmNvbXBzW2NpXTtcclxuICAgICAgY29uc3QgYm49Y29tcC5uYW1lO1xyXG4gICAgICBjb25zdCBiblJlPW5ldyBSZWdFeHAoYnJvd3Nlck5hbWUsJ2knKTtcclxuICAgICAgaWYoYm4ubWF0Y2goYm5SZSkpe1xyXG4gICAgICAgIHJldHVybiBjb21wLnZlcnNpb247XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBydW5zT25PUyhvczpzdHJpbmcpOmJvb2xlYW57XHJcbiAgICBmb3IobGV0IGNpPTA7Y2k8dGhpcy5jb21wcy5sZW5ndGg7Y2krKyl7XHJcbiAgICAgIGxldCBjYz10aGlzLmNvbXBzW2NpXS5jb21tZW50XHJcbiAgICAgIGlmKGNjKXtcclxuICAgICAgICB2YXIgb3NSZSA9IG5ldyBSZWdFeHAob3MsJ2knKTtcclxuICAgICAgICBpZihjYy5tYXRjaChvc1JlKSl7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB1c2VyQWdlbnQoKTpVc2VyQWdlbnR7XHJcbiAgICAgIGlmKCF0aGlzLmluc3RhbmNlKXtcclxuICAgICAgICB0aGlzLmluc3RhbmNlPW5ldyBVc2VyQWdlbnRCdWlsZGVyKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnN0YW5jZS5idWlsZCgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZS51c2VyQWdlbnQ7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -102,4 +102,4 @@ export class WorkerHelper {
102
102
  return workerBlobUrl;
103
103
  }
104
104
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsTUFBTSxPQUFPLElBQUk7SUFFZixNQUFNLENBQUMsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRztZQUNwRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFUyxNQUFNLENBQUMsRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzdDLFFBQVEsQ0FBQyxFQUFFLENBQUM7YUFDWixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNBO0FBRUQsTUFBTSxPQUFPLFFBQVE7YUFDSixpQkFBWSxHQUFDLENBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQy9FLHVCQUFrQixHQUFRLElBQUksQ0FBQzthQUMvQiwyQkFBc0IsR0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRW5GLE1BQU0sQ0FBQyx3QkFBd0Is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QUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1NBQzNCO1FBQ0Qsd0JBQXdCO1FBQ3hCLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO1FBRW5ELElBQUksYUFBYSxHQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICBleHBvcnQgY2xhc3MgVVVJRCB7XHJcblxyXG4gICAgc3RhdGljIGdlbmVyYXRlKCk6c3RyaW5nIHtcclxuICAgIHJldHVybiBVVUlELnM0KCkgKyBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyAnLScgK1xyXG4gICAgICBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyBVVUlELnM0KCkgKyBVVUlELnM0KCk7XHJcbiAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIHM0KCkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApXHJcbiAgICAgIC50b1N0cmluZygxNilcclxuICAgICAgLnN1YnN0cmluZygxKTtcclxuICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgY2xhc3MgRGF0YVNpemV7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVFM9WydCJywnS2lCJywnTWlCJywnR2lCJywnVGlCJywnUGlCJywnRWlCJywnWmlCJywnWWlCJywnUmlCJywnUWlCJ107XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVF9GQUNUT1I6bnVtYmVyPTEwMjQ7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVF9GQUNUT1JfTE9HOm51bWJlcj1NYXRoLmxvZyhEYXRhU2l6ZS5CSU5BUllfVU5JVF9GQUNUT1IpO1xyXG5cclxuICAgIHN0YXRpYyBmb3JtYXRCeXRlc1RvQmluYXJ5VW5pdHMoYnl0ZXM6bnVtYmVyLGRlY2ltYWxzOm51bWJlcj0yKTpzdHJpbmd7XHJcblxyXG4gICAgICBsZXQgYmluYXJ5VW5pdElkeD0wO1xyXG4gICAgICBsZXQgZGl2aXNvcj0xO1xyXG4gICAgICBpZihieXRlcz4wKSB7XHJcbiAgICAgICAgY29uc3QgYnl0ZXNMb2cgPSBNYXRoLmxvZyhieXRlcyk7XHJcbiAgICAgICAgYmluYXJ5VW5pdElkeCA9IE1hdGguZmxvb3IoYnl0ZXNMb2cgLyB0aGlzLkJJTkFSWV9VTklUX0ZBQ1RPUl9MT0cpO1xyXG4gICAgICAgIGlmIChiaW5hcnlVbml0SWR4ID49IHRoaXMuQklOQVJZX1VOSVRTLmxlbmd0aCkge1xyXG4gICAgICAgICAgLy8gZmFsbGJhY2sgdG8gYnl0ZXNcclxuICAgICAgICAgIGJpbmFyeVVuaXRJZHggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaXZpc29yID0gTWF0aC5wb3codGhpcy5CSU5BUllfVU5JVF9GQUNUT1IsIGJpbmFyeVVuaXRJZHgpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkZWNpbWFsc1VuaXRWYWx1ZTpzdHJpbmc7XHJcbiAgICAgIGlmKGJpbmFyeVVuaXRJZHg9PT0wKXtcclxuICAgICAgICBkZWNpbWFsc1VuaXRWYWx1ZT1ieXRlcy50b1N0cmluZygpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdW5pdFZhbHVlID0gYnl0ZXMgLyBkaXZpc29yO1xyXG4gICAgICAgIGRlY2ltYWxzVW5pdFZhbHVlPXVuaXRWYWx1ZS50b0ZpeGVkKGRlY2ltYWxzKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBiaW5hcnlVbml0U3RyID0gZGVjaW1hbHNVbml0VmFsdWUgKyAnICcgKyB0aGlzLkJJTkFSWV9VTklUU1tiaW5hcnlVbml0SWR4XTtcclxuXHJcbiAgICAgIHJldHVybiBiaW5hcnlVbml0U3RyO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGV4cG9ydCBjbGFzcyBBcnJheXMge1xyXG5cclxuICAgIHN0YXRpYyBjbG9uZU51bWJlckFycmF5KG51bWJlckFycmF5OiBBcnJheTxudW1iZXI+KTogQXJyYXk8bnVtYmVyPiB7XHJcbiAgICAgIGxldCBsZW4gPSBudW1iZXJBcnJheS5sZW5ndGg7XHJcbiAgICAgIGxldCBjbG9uZUFyciA9IG5ldyBBcnJheTxudW1iZXI+KGxlbik7XHJcbiAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgbnVtYmVyQXJyYXkubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICBjbG9uZUFycltjXSA9IG51bWJlckFycmF5W2NdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbG9uZUFycjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc3dhcDxUPihpdGVtczpBcnJheTxUPiwgaTpudW1iZXIsIGo6bnVtYmVyKSB7XHJcbiAgICAgIGxldCB0bXAgPSBpdGVtc1tpXTtcclxuICAgICAgaXRlbXNbaV0gPSBpdGVtc1tqXTtcclxuICAgICAgaXRlbXNbal0gPSB0bXA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNodWZmbGVBcnJheTxUPihvcmdBcnJheTpBcnJheTxUPik6QXJyYXk8VD57XHJcbiAgICAgICAgbGV0IHNodWZmbGVkQXJyYXkgPSBbLi4ub3JnQXJyYXldO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBzaHVmZmxlZEFycmF5Lmxlbmd0aDsgaSA+IDE7IGktLSkge1xyXG4gICAgICAgICAgbGV0IHJuZD1NYXRoLnJhbmRvbSgpO1xyXG4gICAgICAgICAgbGV0IHJuZEFycklkeD1NYXRoLmZsb29yKHJuZCppKTtcclxuICAgICAgICAgIEFycmF5cy5zd2FwKHNodWZmbGVkQXJyYXksIGkgLSAxLCBybmRBcnJJZHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2h1ZmZsZWRBcnJheTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGNsYXNzIFdvcmtlckhlbHBlciB7XHJcblxyXG4gICAgc3RhdGljIERFQlVHPWZhbHNlO1xyXG4gICAgc3RhdGljIGJ1aWxkV29ya2VyQmxvYlVSTCh3b3JrZXJGY3Q6IEZ1bmN0aW9uKTogc3RyaW5nIHtcclxuXHJcbiAgICAgIGlmKCEgKHdvcmtlckZjdCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgJ1BhcmFtZXRlciB3b3JrZXJGY3QgaXMgbm90IGEgZnVuY3Rpb24hIChYU1MgYXR0YWNrPykuJ1xyXG4gICAgICAgIClcclxuICAgICAgfVxyXG4gICAgICBsZXQgIHdvRmN0Tm0gPSB3b3JrZXJGY3QubmFtZVxyXG4gICAgICBpZiAoV29ya2VySGVscGVyLkRFQlVHKSB7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiV29ya2VyIG1ldGhvZCBuYW1lOiBcIiArIHdvRmN0Tm0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB3b0ZjdFN0ciA9IHdvcmtlckZjdC50b1N0cmluZygpXHJcbiAgICAgIGlmIChXb3JrZXJIZWxwZXIuREVCVUcpIHtcclxuICAgICAgICBjb25zb2xlLmluZm8oXCJXb3JrZXIgbWV0aG9kIHN0cmluZzpcIilcclxuICAgICAgICBjb25zb2xlLmluZm8od29GY3RTdHIpXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICAvLyBNYWtlIHN1cmUgY29kZSBzdGFydHMgd2l0aCBcImZ1bmN0aW9uKClcIlxyXG5cclxuICAgICAgLy8gQ2hyb21lLCBGaXJlZm94OiBcIlt3b2ZjdE5tXSgpey4uLn1cIiwgU2FmYXJpOiBcImZ1bmN0aW9uIFt3b2ZjdE5tXSgpey4uLn1cIlxyXG4gICAgICAvLyB3ZSBuZWVkIGFuIGFub255bW91cyBmdW5jdGlvbjogXCJmdW5jdGlvbigpIHsuLi59XCJcclxuICAgICAgbGV0IHBpV29GY3RTdHIgPSB3b0ZjdFN0ci5yZXBsYWNlKC9eZnVuY3Rpb24gKy8sICcnKTtcclxuXHJcbiAgICAgIGlmKFdvcmtlckhlbHBlci5ERUJVRyl7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiV29ya2VyIHBsYXRmb3JtIGluZGVwZW5kZW50IGZ1bmN0aW9uIHN0cmluZzpcIilcclxuICAgICAgICBjb25zb2xlLmluZm8ocGlXb0ZjdFN0cilcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ29udmVydCB0byBhbm9ueW1vdXMgZnVuY3Rpb25cclxuICAgICAgbGV0IGFub25Xb0ZjdFN0ciA9IHBpV29GY3RTdHIucmVwbGFjZSh3b0ZjdE5tICsgJygpJywgJ2Z1bmN0aW9uKCknKVxyXG4gICAgICBpZihXb3JrZXJIZWxwZXIuREVCVUcpe1xyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIldvcmtlciBhbm9ueW1vdXMgZnVuY3Rpb24gc3RyaW5nOlwiKVxyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhwaVdvRmN0U3RyKVxyXG4gICAgICB9XHJcbiAgICAgIC8vIFNlbGYgZXhlY3V0aW5nXHJcbiAgICAgIGxldCB3cyA9ICcoJyArIGFub25Xb0ZjdFN0ciArICcpKCk7J1xyXG4gICAgICBpZihXb3JrZXJIZWxwZXIuREVCVUcpe1xyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIldvcmtlciBzZWxmIGV4ZWN1dGluZyBhbm9ueW1vdXMgZnVuY3Rpb24gc3RyaW5nOlwiKVxyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhhbm9uV29GY3RTdHIpXHJcbiAgICAgIH1cclxuICAgICAgLy8gQnVpbGQgdGhlIHdvcmtlciBibG9iXHJcbiAgICAgIGxldCB3YiA9IG5ldyBCbG9iKFt3c10sIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xyXG5cclxuICAgICAgbGV0IHdvcmtlckJsb2JVcmw9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwod2IpO1xyXG4gICAgICByZXR1cm4gd29ya2VyQmxvYlVybDtcclxuICAgIH1cclxuICB9XHJcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0UsTUFBTSxPQUFPLElBQUk7SUFFZixNQUFNLENBQUMsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRztZQUNwRSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFUyxNQUFNLENBQUMsRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQzdDLFFBQVEsQ0FBQyxFQUFFLENBQUM7YUFDWixTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNBO0FBRUQsTUFBTSxPQUFPLFFBQVE7YUFDSixpQkFBWSxHQUFDLENBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO2FBQy9FLHVCQUFrQixHQUFRLElBQUksQ0FBQzthQUMvQiwyQkFBc0IsR0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRW5GLE1BQU0sQ0FBQyx3QkFBd0Is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QUcsWUFBWSxHQUFHLE1BQU0sQ0FBQTtRQUNwQyxJQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLGtEQUFrRCxDQUFDLENBQUE7WUFDaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM1QixDQUFDO1FBQ0Qsd0JBQXdCO1FBQ3hCLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO1FBRW5ELElBQUksYUFBYSxHQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuICBleHBvcnQgY2xhc3MgVVVJRCB7XHJcblxyXG4gICAgc3RhdGljIGdlbmVyYXRlKCk6c3RyaW5nIHtcclxuICAgIHJldHVybiBVVUlELnM0KCkgKyBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyAnLScgK1xyXG4gICAgICBVVUlELnM0KCkgKyAnLScgKyBVVUlELnM0KCkgKyBVVUlELnM0KCkgKyBVVUlELnM0KCk7XHJcbiAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIHM0KCkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApXHJcbiAgICAgIC50b1N0cmluZygxNilcclxuICAgICAgLnN1YnN0cmluZygxKTtcclxuICB9XHJcbiAgfVxyXG5cclxuICBleHBvcnQgY2xhc3MgRGF0YVNpemV7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVFM9WydCJywnS2lCJywnTWlCJywnR2lCJywnVGlCJywnUGlCJywnRWlCJywnWmlCJywnWWlCJywnUmlCJywnUWlCJ107XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVF9GQUNUT1I6bnVtYmVyPTEwMjQ7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBCSU5BUllfVU5JVF9GQUNUT1JfTE9HOm51bWJlcj1NYXRoLmxvZyhEYXRhU2l6ZS5CSU5BUllfVU5JVF9GQUNUT1IpO1xyXG5cclxuICAgIHN0YXRpYyBmb3JtYXRCeXRlc1RvQmluYXJ5VW5pdHMoYnl0ZXM6bnVtYmVyLGRlY2ltYWxzOm51bWJlcj0yKTpzdHJpbmd7XHJcblxyXG4gICAgICBsZXQgYmluYXJ5VW5pdElkeD0wO1xyXG4gICAgICBsZXQgZGl2aXNvcj0xO1xyXG4gICAgICBpZihieXRlcz4wKSB7XHJcbiAgICAgICAgY29uc3QgYnl0ZXNMb2cgPSBNYXRoLmxvZyhieXRlcyk7XHJcbiAgICAgICAgYmluYXJ5VW5pdElkeCA9IE1hdGguZmxvb3IoYnl0ZXNMb2cgLyB0aGlzLkJJTkFSWV9VTklUX0ZBQ1RPUl9MT0cpO1xyXG4gICAgICAgIGlmIChiaW5hcnlVbml0SWR4ID49IHRoaXMuQklOQVJZX1VOSVRTLmxlbmd0aCkge1xyXG4gICAgICAgICAgLy8gZmFsbGJhY2sgdG8gYnl0ZXNcclxuICAgICAgICAgIGJpbmFyeVVuaXRJZHggPSAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkaXZpc29yID0gTWF0aC5wb3codGhpcy5CSU5BUllfVU5JVF9GQUNUT1IsIGJpbmFyeVVuaXRJZHgpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkZWNpbWFsc1VuaXRWYWx1ZTpzdHJpbmc7XHJcbiAgICAgIGlmKGJpbmFyeVVuaXRJZHg9PT0wKXtcclxuICAgICAgICBkZWNpbWFsc1VuaXRWYWx1ZT1ieXRlcy50b1N0cmluZygpO1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgY29uc3QgdW5pdFZhbHVlID0gYnl0ZXMgLyBkaXZpc29yO1xyXG4gICAgICAgIGRlY2ltYWxzVW5pdFZhbHVlPXVuaXRWYWx1ZS50b0ZpeGVkKGRlY2ltYWxzKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBiaW5hcnlVbml0U3RyID0gZGVjaW1hbHNVbml0VmFsdWUgKyAnICcgKyB0aGlzLkJJTkFSWV9VTklUU1tiaW5hcnlVbml0SWR4XTtcclxuXHJcbiAgICAgIHJldHVybiBiaW5hcnlVbml0U3RyO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGV4cG9ydCBjbGFzcyBBcnJheXMge1xyXG5cclxuICAgIHN0YXRpYyBjbG9uZU51bWJlckFycmF5KG51bWJlckFycmF5OiBBcnJheTxudW1iZXI+KTogQXJyYXk8bnVtYmVyPiB7XHJcbiAgICAgIGxldCBsZW4gPSBudW1iZXJBcnJheS5sZW5ndGg7XHJcbiAgICAgIGxldCBjbG9uZUFyciA9IG5ldyBBcnJheTxudW1iZXI+KGxlbik7XHJcbiAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgbnVtYmVyQXJyYXkubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICBjbG9uZUFycltjXSA9IG51bWJlckFycmF5W2NdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjbG9uZUFycjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc3dhcDxUPihpdGVtczpBcnJheTxUPiwgaTpudW1iZXIsIGo6bnVtYmVyKSB7XHJcbiAgICAgIGxldCB0bXAgPSBpdGVtc1tpXTtcclxuICAgICAgaXRlbXNbaV0gPSBpdGVtc1tqXTtcclxuICAgICAgaXRlbXNbal0gPSB0bXA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNodWZmbGVBcnJheTxUPihvcmdBcnJheTpBcnJheTxUPik6QXJyYXk8VD57XHJcbiAgICAgICAgbGV0IHNodWZmbGVkQXJyYXkgPSBbLi4ub3JnQXJyYXldO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBzaHVmZmxlZEFycmF5Lmxlbmd0aDsgaSA+IDE7IGktLSkge1xyXG4gICAgICAgICAgbGV0IHJuZD1NYXRoLnJhbmRvbSgpO1xyXG4gICAgICAgICAgbGV0IHJuZEFycklkeD1NYXRoLmZsb29yKHJuZCppKTtcclxuICAgICAgICAgIEFycmF5cy5zd2FwKHNodWZmbGVkQXJyYXksIGkgLSAxLCBybmRBcnJJZHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2h1ZmZsZWRBcnJheTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGNsYXNzIFdvcmtlckhlbHBlciB7XHJcblxyXG4gICAgc3RhdGljIERFQlVHPWZhbHNlO1xyXG4gICAgc3RhdGljIGJ1aWxkV29ya2VyQmxvYlVSTCh3b3JrZXJGY3Q6IEZ1bmN0aW9uKTogc3RyaW5nIHtcclxuXHJcbiAgICAgIGlmKCEgKHdvcmtlckZjdCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgJ1BhcmFtZXRlciB3b3JrZXJGY3QgaXMgbm90IGEgZnVuY3Rpb24hIChYU1MgYXR0YWNrPykuJ1xyXG4gICAgICAgIClcclxuICAgICAgfVxyXG4gICAgICBsZXQgIHdvRmN0Tm0gPSB3b3JrZXJGY3QubmFtZVxyXG4gICAgICBpZiAoV29ya2VySGVscGVyLkRFQlVHKSB7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiV29ya2VyIG1ldGhvZCBuYW1lOiBcIiArIHdvRmN0Tm0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB3b0ZjdFN0ciA9IHdvcmtlckZjdC50b1N0cmluZygpXHJcbiAgICAgIGlmIChXb3JrZXJIZWxwZXIuREVCVUcpIHtcclxuICAgICAgICBjb25zb2xlLmluZm8oXCJXb3JrZXIgbWV0aG9kIHN0cmluZzpcIilcclxuICAgICAgICBjb25zb2xlLmluZm8od29GY3RTdHIpXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICAvLyBNYWtlIHN1cmUgY29kZSBzdGFydHMgd2l0aCBcImZ1bmN0aW9uKClcIlxyXG5cclxuICAgICAgLy8gQ2hyb21lLCBGaXJlZm94OiBcIlt3b2ZjdE5tXSgpey4uLn1cIiwgU2FmYXJpOiBcImZ1bmN0aW9uIFt3b2ZjdE5tXSgpey4uLn1cIlxyXG4gICAgICAvLyB3ZSBuZWVkIGFuIGFub255bW91cyBmdW5jdGlvbjogXCJmdW5jdGlvbigpIHsuLi59XCJcclxuICAgICAgbGV0IHBpV29GY3RTdHIgPSB3b0ZjdFN0ci5yZXBsYWNlKC9eZnVuY3Rpb24gKy8sICcnKTtcclxuXHJcbiAgICAgIGlmKFdvcmtlckhlbHBlci5ERUJVRyl7XHJcbiAgICAgICAgY29uc29sZS5pbmZvKFwiV29ya2VyIHBsYXRmb3JtIGluZGVwZW5kZW50IGZ1bmN0aW9uIHN0cmluZzpcIilcclxuICAgICAgICBjb25zb2xlLmluZm8ocGlXb0ZjdFN0cilcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ29udmVydCB0byBhbm9ueW1vdXMgZnVuY3Rpb25cclxuICAgICAgbGV0IGFub25Xb0ZjdFN0ciA9IHBpV29GY3RTdHIucmVwbGFjZSh3b0ZjdE5tICsgJygpJywgJ2Z1bmN0aW9uKCknKVxyXG4gICAgICBpZihXb3JrZXJIZWxwZXIuREVCVUcpe1xyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIldvcmtlciBhbm9ueW1vdXMgZnVuY3Rpb24gc3RyaW5nOlwiKVxyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhwaVdvRmN0U3RyKVxyXG4gICAgICB9XHJcbiAgICAgIC8vIFNlbGYgZXhlY3V0aW5nXHJcbiAgICAgIGxldCB3cyA9ICcoJyArIGFub25Xb0ZjdFN0ciArICcpKCk7J1xyXG4gICAgICBpZihXb3JrZXJIZWxwZXIuREVCVUcpe1xyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhcIldvcmtlciBzZWxmIGV4ZWN1dGluZyBhbm9ueW1vdXMgZnVuY3Rpb24gc3RyaW5nOlwiKVxyXG4gICAgICAgIGNvbnNvbGUuaW5mbyhhbm9uV29GY3RTdHIpXHJcbiAgICAgIH1cclxuICAgICAgLy8gQnVpbGQgdGhlIHdvcmtlciBibG9iXHJcbiAgICAgIGxldCB3YiA9IG5ldyBCbG9iKFt3c10sIHt0eXBlOiAndGV4dC9qYXZhc2NyaXB0J30pO1xyXG5cclxuICAgICAgbGV0IHdvcmtlckJsb2JVcmw9d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwod2IpO1xyXG4gICAgICByZXR1cm4gd29ya2VyQmxvYlVybDtcclxuICAgIH1cclxuICB9XHJcbiJdfQ==
@@ -111,4 +111,4 @@ export class WakeLockManager {
111
111
  }
112
112
  }
113
113
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FrZV9sb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3V0aWxzL3dha2VfbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQWEsZ0JBQWdCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFakU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFjRDtRQVRRLHlCQUFvQixHQUFDLEtBQUssQ0FBQztRQUMzQix1QkFBa0IsR0FBQyxDQUFDLENBQUM7UUFFckIsdUJBQWtCLEdBQUMsS0FBSyxDQUFDO1FBRXpCLHFCQUFnQixHQUEwQixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVyRSxpQkFBWSxHQUFDLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsb0JBQW9CLEdBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsU0FBUyxHQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxLQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzFCLFlBQVk7WUFDWixTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUMsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFDLEdBQUcsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFDLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQVUsRUFBQyxFQUFFO2dCQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXRDLENBQUMsQ0FBQyxDQUFDO1NBRU47YUFBSztZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXZELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBRXhDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxHQUFDLHVCQUF1QixDQUFDO2dCQUVqRCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFBO2dCQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtvQkFFcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQTtnQkFDRixJQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBQztvQkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTt3QkFDekQsSUFBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTs0QkFDbEQsSUFBSSxhQUFhLEdBQUMsSUFBSSxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUM7NEJBQ3ZDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsYUFBYSxHQUFDLENBQUMsRUFBRTtnQ0FDbkQsSUFBSSxNQUFNLEdBQUMsQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0NBQ3pDLHdEQUF3RDtnQ0FDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUMsTUFBTSxDQUFDOzZCQUN6Qzt5QkFDSjtvQkFDSCxDQUFDLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO29CQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixHQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxDQUFBO2dCQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVLLGtCQUFrQjtRQUN4QixJQUFHLElBQUksQ0FBQyxlQUFlLEVBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsa0JBQWtCLEdBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxFQUFFO29CQUMvQixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDckIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7d0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBQ25FLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7aUJBQ1Q7cUJBQUk7b0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUM3RDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBR0QsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRSxFQUFFO2dCQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBVSxFQUFDLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLEdBQUMsTUFBTSxDQUFDLENBQUE7Z0JBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFLO1lBQ0osSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzlCO1NBQ0Y7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtXQUtFX0xPQ0tfVklERU9fTVA0X1VSSX0gZnJvbSBcIi4vd2FrZV9sb2NrX21lZGlhXCI7XHJcbmltcG9ydCB7QnJvd3NlciwgVXNlckFnZW50LCBVc2VyQWdlbnRCdWlsZGVyfSBmcm9tIFwiLi91YS1wYXJzZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IHRvIHByZXZlbnQgZGV2aWNlcyBmcm9tIHNjcmVlbiBsb2NrLlxyXG4gKiBJZiBzdXBwb3J0ZWQgdXNlcyB0aGUgSFRNTDUgd2FrZSBsb2NrIEFQSSwgaWYgbm90LCBwbGF5cyBhbiBpbnZpc2libGUgdmlkZW8uXHJcbiAqXHJcbiAqIE5vdGU6IEkndmUgdXNlZCB0aGUgR2l0SHViIHByb2plY3QgcmljaHRyL25vc2xlZXAuanMgZm9yIHRoYXQuIFRoZSB3b3JrZWQgaW4gbW9zdCBjYXNlcywgYnV0IGZhaWxlZCBzb21ldGltZXMgb24gYW5cclxuICogICBBbmRyb2lkIHNtYXJ0cGhvbmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV2FrZUxvY2tNYW5hZ2VyIHtcclxuICBnZXQgYmVoYXZpb3JTdWJqZWN0KCk6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3JTdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIHByaXZhdGUgd2FrZUxvY2tTZW50aW5lbDpXYWtlTG9ja1NlbnRpbmVsO1xyXG4gIHByaXZhdGUgbXA0VmlkZW9FbGVtZW50PzpIVE1MVmlkZW9FbGVtZW50O1xyXG4gIHByaXZhdGUgd2FrZUxvY2tBcGlTdXBwb3J0ZWQ9ZmFsc2U7XHJcbiAgcHJpdmF0ZSB3YWtlTG9ja1JldHJ5Q291bnQ9MDtcclxuICBwcml2YXRlIHVzZXJBZ2VudD86VXNlckFnZW50O1xyXG4gIHByaXZhdGUgcmFuZG9tU2Vla1JlcXVpcmVkPWZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9iZWhhdmlvclN1YmplY3Q6QmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PW5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IFZJREVPX0xFTkdUSD0xMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndha2VMb2NrQXBpU3VwcG9ydGVkPSgnd2FrZUxvY2snIGluIG5hdmlnYXRvcik7XHJcbiAgICBjb25zb2xlLmRlYnVnKFwiV2FrZSBsb2NrIEFQSSBzdXBwb3J0ZWQ6IFwiK3RoaXMud2FrZUxvY2tBcGlTdXBwb3J0ZWQpO1xyXG4gICAgdGhpcy51c2VyQWdlbnQ9VXNlckFnZW50QnVpbGRlci51c2VyQWdlbnQoKTtcclxuICAgIHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkPSh0aGlzLnVzZXJBZ2VudD8uZGV0ZWN0ZWRCcm93c2VyPT09QnJvd3Nlci5TYWZhcmkpO1xyXG4gIH1cclxuXHJcbiAgZW5hYmxlV2FrZUxvY2soKXtcclxuICAgICAgaWYodGhpcy53YWtlTG9ja0FwaVN1cHBvcnRlZCkge1xyXG4gICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICBuYXZpZ2F0b3Iud2FrZUxvY2sucmVxdWVzdCgnc2NyZWVuJykudGhlbigod2xzKT0+e1xyXG4gICAgICAgICAgICB0aGlzLndha2VMb2NrU2VudGluZWw9d2xzO1xyXG4gICAgICAgICAgICB0aGlzLndha2VMb2NrUmV0cnlDb3VudD0wO1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdXYWtlIGxvY2sgc2NyZWVuIHJlcXVlc3Qgc3VjY2Vzc2Z1bC4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9KS5jYXRjaCgocmVhc29uOmFueSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2FrZWxvY2sgZmFpbGVkOiAnK3JlYXNvbilcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0LmVycm9yKHJlYXNvbik7XHJcblxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1wNFZpZGVvRWxlbWVudCkge1xyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xyXG5cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50Lmxvb3AgPSAhdGhpcy5yYW5kb21TZWVrUmVxdWlyZWQ7XHJcbiAgICAgICAgICB0aGlzLm1wNFZpZGVvRWxlbWVudC5wbGF5c0lubGluZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuc3JjPVdBS0VfTE9DS19WSURFT19NUDRfVVJJO1xyXG5cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BsYXknLCAoZXYpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHZpZGVvIHBsYXlpbmcuLi4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZW5kZWQnLCAoZXYpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHZpZGVvIGVuZGVkLicpO1xyXG4gICAgICAgICAgICB0aGlzLl9iZWhhdmlvclN1YmplY3QubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGF1c2UnLCAoZXYpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1dha2UgbG9jayB2aWRlbyBwYXVzZS4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmKHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkKXtcclxuICAgICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsIChldikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkICYmIHRoaXMubXA0VmlkZW9FbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGhpcmRWaWRlb0xlbj10aGlzLlZJREVPX0xFTkdUSC8zO1xyXG4gICAgICAgICAgICAgICBpZiAodGhpcy5tcDRWaWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPiB0aGlyZFZpZGVvTGVuKjIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbmV3UG9zPSh0aGlyZFZpZGVvTGVuKk1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHJhbmRvbSBzZWVrIHRvICcrbmV3UG9zKydzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuY3VycmVudFRpbWU9bmV3UG9zO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGV2KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1dha2UgbG9jayB2aWRlbyBlcnJvcjogJytldi5tZXNzYWdlKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0LmVycm9yKGV2LmVycm9yKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdBZGRlZCBsaXN0ZW5lcnMgdG8gd2FrZSBsb2NrIHZpZGVvLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0V2FrZUxvY2tWaWRlbygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnRXYWtlTG9ja1ZpZGVvKCl7XHJcbiAgICBpZih0aGlzLm1wNFZpZGVvRWxlbWVudCl7XHJcbiAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LnBsYXkoKS50aGVuKCgpPT57XHJcbiAgICAgICAgdGhpcy53YWtlTG9ja1JldHJ5Q291bnQ9MDtcclxuICAgICAgfSkuY2F0Y2goKGVycik9PiB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnRmFpbGVkIHN0YXJ0aW5nIHdha2UgbG9jayB2aWRlbyEnKTtcclxuICAgICAgICBpZiAodGhpcy53YWtlTG9ja1JldHJ5Q291bnQgPCAxKSB7XHJcbiAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMud2FrZUxvY2tSZXRyeUNvdW50Kys7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1JldHJ5IHdha2UgbG9jayB2aWRlbyAjJyArIHRoaXMud2FrZUxvY2tSZXRyeUNvdW50KTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFdha2VMb2NrVmlkZW8oKTtcclxuICAgICAgICAgIH0sIDQwMDApXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdHaXZpbmcgdXAgdG8gdHJ5IHRvIHN0YXJ0IHdha2UgbG9jayB2aWRlby4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGRpc2FibGVXYWtlTG9jaygpe1xyXG4gICAgaWYodGhpcy53YWtlTG9ja0FwaVN1cHBvcnRlZCkge1xyXG4gICAgICAgIHRoaXMud2FrZUxvY2tTZW50aW5lbC5yZWxlYXNlKCkudGhlbigoKT0+e1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHJlbGVhc2Ugc3VjY2Vzc2Z1bC4nKTtcclxuICAgICAgICAgIHRoaXMuX2JlaGF2aW9yU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9KS5jYXRjaCgocmVhc29uOmFueSk9PntcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dha2Vsb2NrIHJlbGVhc2UgZmFpbGVkOiAnK3JlYXNvbilcclxuICAgICAgICAgIHRoaXMuX2JlaGF2aW9yU3ViamVjdC5lcnJvcihyZWFzb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tcDRWaWRlb0VsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLm1wNFZpZGVvRWxlbWVudC5wYXVzZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FrZV9sb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3V0aWxzL3dha2VfbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBQyxPQUFPLEVBQWEsZ0JBQWdCLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFakU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFjRDtRQVRRLHlCQUFvQixHQUFDLEtBQUssQ0FBQztRQUMzQix1QkFBa0IsR0FBQyxDQUFDLENBQUM7UUFFckIsdUJBQWtCLEdBQUMsS0FBSyxDQUFDO1FBRXpCLHFCQUFnQixHQUEwQixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVyRSxpQkFBWSxHQUFDLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsb0JBQW9CLEdBQUMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsU0FBUyxHQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxLQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDM0IsWUFBWTtZQUNaLFNBQVMsQ0FB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QUFDLG9CQUFvQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFFLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFVLEVBQUMsRUFBRTtnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBSyxDQUFDO1lBQ0wsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtXQUtFX0xPQ0tfVklERU9fTVA0X1VSSX0gZnJvbSBcIi4vd2FrZV9sb2NrX21lZGlhXCI7XHJcbmltcG9ydCB7QnJvd3NlciwgVXNlckFnZW50LCBVc2VyQWdlbnRCdWlsZGVyfSBmcm9tIFwiLi91YS1wYXJzZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IHRvIHByZXZlbnQgZGV2aWNlcyBmcm9tIHNjcmVlbiBsb2NrLlxyXG4gKiBJZiBzdXBwb3J0ZWQgdXNlcyB0aGUgSFRNTDUgd2FrZSBsb2NrIEFQSSwgaWYgbm90LCBwbGF5cyBhbiBpbnZpc2libGUgdmlkZW8uXHJcbiAqXHJcbiAqIE5vdGU6IEkndmUgdXNlZCB0aGUgR2l0SHViIHByb2plY3QgcmljaHRyL25vc2xlZXAuanMgZm9yIHRoYXQuIFRoZSB3b3JrZWQgaW4gbW9zdCBjYXNlcywgYnV0IGZhaWxlZCBzb21ldGltZXMgb24gYW5cclxuICogICBBbmRyb2lkIHNtYXJ0cGhvbmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV2FrZUxvY2tNYW5hZ2VyIHtcclxuICBnZXQgYmVoYXZpb3JTdWJqZWN0KCk6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmVoYXZpb3JTdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgLy8gQHRzLWlnbm9yZVxyXG4gIHByaXZhdGUgd2FrZUxvY2tTZW50aW5lbDpXYWtlTG9ja1NlbnRpbmVsO1xyXG4gIHByaXZhdGUgbXA0VmlkZW9FbGVtZW50PzpIVE1MVmlkZW9FbGVtZW50O1xyXG4gIHByaXZhdGUgd2FrZUxvY2tBcGlTdXBwb3J0ZWQ9ZmFsc2U7XHJcbiAgcHJpdmF0ZSB3YWtlTG9ja1JldHJ5Q291bnQ9MDtcclxuICBwcml2YXRlIHVzZXJBZ2VudD86VXNlckFnZW50O1xyXG4gIHByaXZhdGUgcmFuZG9tU2Vla1JlcXVpcmVkPWZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9iZWhhdmlvclN1YmplY3Q6QmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+PW5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IFZJREVPX0xFTkdUSD0xMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndha2VMb2NrQXBpU3VwcG9ydGVkPSgnd2FrZUxvY2snIGluIG5hdmlnYXRvcik7XHJcbiAgICBjb25zb2xlLmRlYnVnKFwiV2FrZSBsb2NrIEFQSSBzdXBwb3J0ZWQ6IFwiK3RoaXMud2FrZUxvY2tBcGlTdXBwb3J0ZWQpO1xyXG4gICAgdGhpcy51c2VyQWdlbnQ9VXNlckFnZW50QnVpbGRlci51c2VyQWdlbnQoKTtcclxuICAgIHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkPSh0aGlzLnVzZXJBZ2VudD8uZGV0ZWN0ZWRCcm93c2VyPT09QnJvd3Nlci5TYWZhcmkpO1xyXG4gIH1cclxuXHJcbiAgZW5hYmxlV2FrZUxvY2soKXtcclxuICAgICAgaWYodGhpcy53YWtlTG9ja0FwaVN1cHBvcnRlZCkge1xyXG4gICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICBuYXZpZ2F0b3Iud2FrZUxvY2sucmVxdWVzdCgnc2NyZWVuJykudGhlbigod2xzKT0+e1xyXG4gICAgICAgICAgICB0aGlzLndha2VMb2NrU2VudGluZWw9d2xzO1xyXG4gICAgICAgICAgICB0aGlzLndha2VMb2NrUmV0cnlDb3VudD0wO1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdXYWtlIGxvY2sgc2NyZWVuIHJlcXVlc3Qgc3VjY2Vzc2Z1bC4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9KS5jYXRjaCgocmVhc29uOmFueSk9PntcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2FrZWxvY2sgZmFpbGVkOiAnK3JlYXNvbilcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0LmVycm9yKHJlYXNvbik7XHJcblxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1wNFZpZGVvRWxlbWVudCkge1xyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xyXG5cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50Lmxvb3AgPSAhdGhpcy5yYW5kb21TZWVrUmVxdWlyZWQ7XHJcbiAgICAgICAgICB0aGlzLm1wNFZpZGVvRWxlbWVudC5wbGF5c0lubGluZSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuc3JjPVdBS0VfTE9DS19WSURFT19NUDRfVVJJO1xyXG5cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BsYXknLCAoZXYpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHZpZGVvIHBsYXlpbmcuLi4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZW5kZWQnLCAoZXYpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHZpZGVvIGVuZGVkLicpO1xyXG4gICAgICAgICAgICB0aGlzLl9iZWhhdmlvclN1YmplY3QubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGF1c2UnLCAoZXYpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1dha2UgbG9jayB2aWRlbyBwYXVzZS4nKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmKHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkKXtcclxuICAgICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsIChldikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMucmFuZG9tU2Vla1JlcXVpcmVkICYmIHRoaXMubXA0VmlkZW9FbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdGhpcmRWaWRlb0xlbj10aGlzLlZJREVPX0xFTkdUSC8zO1xyXG4gICAgICAgICAgICAgICBpZiAodGhpcy5tcDRWaWRlb0VsZW1lbnQuY3VycmVudFRpbWUgPiB0aGlyZFZpZGVvTGVuKjIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbmV3UG9zPSh0aGlyZFZpZGVvTGVuKk1hdGgucmFuZG9tKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHJhbmRvbSBzZWVrIHRvICcrbmV3UG9zKydzJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tcDRWaWRlb0VsZW1lbnQuY3VycmVudFRpbWU9bmV3UG9zO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKGV2KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1dha2UgbG9jayB2aWRlbyBlcnJvcjogJytldi5tZXNzYWdlKTtcclxuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JTdWJqZWN0LmVycm9yKGV2LmVycm9yKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdBZGRlZCBsaXN0ZW5lcnMgdG8gd2FrZSBsb2NrIHZpZGVvLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0YXJ0V2FrZUxvY2tWaWRlbygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnRXYWtlTG9ja1ZpZGVvKCl7XHJcbiAgICBpZih0aGlzLm1wNFZpZGVvRWxlbWVudCl7XHJcbiAgICAgIHRoaXMubXA0VmlkZW9FbGVtZW50LnBsYXkoKS50aGVuKCgpPT57XHJcbiAgICAgICAgdGhpcy53YWtlTG9ja1JldHJ5Q291bnQ9MDtcclxuICAgICAgfSkuY2F0Y2goKGVycik9PiB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZygnRmFpbGVkIHN0YXJ0aW5nIHdha2UgbG9jayB2aWRlbyEnKTtcclxuICAgICAgICBpZiAodGhpcy53YWtlTG9ja1JldHJ5Q291bnQgPCAxKSB7XHJcbiAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMud2FrZUxvY2tSZXRyeUNvdW50Kys7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1JldHJ5IHdha2UgbG9jayB2aWRlbyAjJyArIHRoaXMud2FrZUxvY2tSZXRyeUNvdW50KTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFdha2VMb2NrVmlkZW8oKTtcclxuICAgICAgICAgIH0sIDQwMDApXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKCdHaXZpbmcgdXAgdG8gdHJ5IHRvIHN0YXJ0IHdha2UgbG9jayB2aWRlby4nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGRpc2FibGVXYWtlTG9jaygpe1xyXG4gICAgaWYodGhpcy53YWtlTG9ja0FwaVN1cHBvcnRlZCkge1xyXG4gICAgICAgIHRoaXMud2FrZUxvY2tTZW50aW5lbC5yZWxlYXNlKCkudGhlbigoKT0+e1xyXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnV2FrZSBsb2NrIHJlbGVhc2Ugc3VjY2Vzc2Z1bC4nKTtcclxuICAgICAgICAgIHRoaXMuX2JlaGF2aW9yU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9KS5jYXRjaCgocmVhc29uOmFueSk9PntcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dha2Vsb2NrIHJlbGVhc2UgZmFpbGVkOiAnK3JlYXNvbilcclxuICAgICAgICAgIHRoaXMuX2JlaGF2aW9yU3ViamVjdC5lcnJvcihyZWFzb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfWVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tcDRWaWRlb0VsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLm1wNFZpZGVvRWxlbWVudC5wYXVzZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=