speechrecorderng 2.23.0 → 2.23.1

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.
@@ -5,7 +5,6 @@ import { AudioContextProvider } from "../../../audio/context";
5
5
  import { AudioClip } from "../../../audio/persistor";
6
6
  import { Selection } from "../../../audio/persistor";
7
7
  import { Action } from "../../../action/action";
8
- import { SprRecordingFile } from "../../recording";
9
8
  import { RecordingFileUtil } from "./recording-file";
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "./recordingfile-service";
@@ -114,7 +113,7 @@ export class RecordingFileViewComponent extends AudioDisplayPlayer {
114
113
  let cRfs = this.availRecFiles[this.posInList];
115
114
  let availVersionCnt = cRfs.length;
116
115
  for (let cRf of cRfs) {
117
- if (cRf instanceof SprRecordingFile) {
116
+ if (cRf.version != null) {
118
117
  if (cRf.version === version) {
119
118
  toRfId = cRf.recordingFileId;
120
119
  break;
@@ -141,11 +140,14 @@ export class RecordingFileViewComponent extends AudioDisplayPlayer {
141
140
  positionInList() {
142
141
  if (this.availRecFiles && this.recordingFile) {
143
142
  let cic = this.recordingFile.itemCode;
143
+ if (!cic && this.recordingFile.recording && this.recordingFile.recording.itemcode) {
144
+ cic = this.recordingFile.recording.itemcode;
145
+ }
144
146
  if (cic) {
145
147
  let itemCnt = this.availRecFiles.length;
146
148
  for (let rfdi = 0; rfdi < itemCnt; rfdi++) {
147
149
  let arRf = this.availRecFiles[rfdi][0];
148
- if (arRf instanceof SprRecordingFile) {
150
+ if (arRf.recording) {
149
151
  let ar = arRf.recording;
150
152
  if (cic === ar.itemcode) {
151
153
  return rfdi;
@@ -175,7 +177,7 @@ export class RecordingFileViewComponent extends AudioDisplayPlayer {
175
177
  if (arfs) {
176
178
  this.versions = new Array();
177
179
  for (let arf of arfs) {
178
- if (arf instanceof SprRecordingFile) {
180
+ if (arf.recording?.itemcode) {
179
181
  this.versions.push(arf.version);
180
182
  }
181
183
  }
@@ -412,4 +414,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
412
414
  type: ViewChild,
413
415
  args: [AudioDisplayScrollPane]
414
416
  }] } });
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBUXRCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFDLE1BQU0sRUFBYyxNQUFNLHdCQUF3QixDQUFDO0FBRzNELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFHbkQsTUFBTSxPQUFPLGFBQWE7Q0FFekI7QUFpREQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGtCQUFrQjtJQTJCaEUsWUFBc0Isb0JBQTBDLEVBQVksZ0JBQWtDLEVBQVksY0FBOEIsRUFBWSxNQUFhLEVBQVcsS0FBcUIsRUFBWSxHQUFzQixFQUFZLElBQWdCLEVBQVksTUFBaUI7UUFDMVMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFESCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQVkscUJBQWdC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Q0FBQTtvQkFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBQyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDRjtJQUNMLENBQUM7O3VIQXhWVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrR0FnQjFCLHNCQUFzQix1RUEzRHZCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDsyRkEwQlUsMEJBQTBCO2tCQS9DdEMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsd0JBQXdCO29CQUVsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO29CQUNELE1BQU0sRUFBRTt3QkFDTjs7Ozs7Ozs7OztNQVVFLEVBQUM7Ozs7OztLQU1GLEVBQUM7Ozs7O0tBS0Q7cUJBQUM7aUJBRUw7MFNBa0JTLEVBQUU7c0JBRFQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuXHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuXHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVNlcnZpY2V9IGZyb20gXCIuL3JlY29yZGluZ2ZpbGUtc2VydmljZVwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVBsYXllcn0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL2F1ZGlvX3BsYXllclwiO1xyXG5cclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vdWkvYXVkaW9fZGlzcGxheV9zY3JvbGxfcGFuZVwiO1xyXG5pbXBvcnQge0F1ZGlvQ29udGV4dFByb3ZpZGVyfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vY29udGV4dFwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL3BlcnNpc3RvclwiO1xyXG5pbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL3BlcnNpc3RvclwiO1xyXG5cclxuaW1wb3J0IHtBY3Rpb24sIEFjdGlvbkV2ZW50fSBmcm9tIFwiLi4vLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVVdGlsfSBmcm9tIFwiLi9yZWNvcmRpbmctZmlsZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBJdGVtY29kZUluZGV4e1xyXG4gIFtpdGVtY29kZTogc3RyaW5nXTogQXJyYXk8U3ByUmVjb3JkaW5nRmlsZT47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpb2Rpc3BsYXlwbGF5ZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lICNhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lPjwvYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZT5cclxuICAgIDxkaXYgY2xhc3M9XCJjdHJsdmlld1wiPlxyXG4gICAgICA8YXBwLXJlY29yZGluZy1maWxlLW1ldGEgW3Nlc3Npb25JZF09XCJzZXNzaW9uSWRcIiBbcmVjb3JkaW5nRmlsZV09XCJyZWNvcmRpbmdGaWxlXCI+PC9hcHAtcmVjb3JkaW5nLWZpbGUtbWV0YT5cclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1jb250cm9sIFthdWRpb0NsaXBdPVwiYXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdG9wQWN0aW9uXT1cInBsYXlTdG9wQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhcD8uYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21JbkFjdGlvbl09XCJ6b29tSW5BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tT3V0QWN0aW9uXT1cInpvb21PdXRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tU2VsZWN0ZWRBY3Rpb25dPVwiem9vbVNlbGVjdGVkQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+XHJcbiAgICAgIDxhcHAtcmVjb3JkaW5nLWZpbGUtbmF2aSBbaXRlbXNdPVwiYXZhaWxSZWNGaWxlcz8ubGVuZ3RoXCIgW2l0ZW1Qb3NdPVwicG9zSW5MaXN0XCIgW3ZlcnNpb25dPVwicmVjb3JkaW5nRmlsZVZlcnNpb25cIiBbdmVyc2lvbnNdPVwidmVyc2lvbnNcIiBbZmlyc3RBY3Rpb25dPVwiZmlyc3RBY3Rpb25cIiBbcHJldkFjdGlvbl09XCJwcmV2QWN0aW9uXCIgW25leHRBY3Rpb25dPVwibmV4dEFjdGlvblwiIFtsYXN0QWN0aW9uXT1cImxhc3RBY3Rpb25cIiBbc2VsZWN0VmVyc2lvbl09XCJ0b1ZlcnNpb25BY3Rpb25cIiBbbmF2aUluZm9Mb2FkaW5nXT1cIm5hdmlJbmZvTG9hZGluZ1wiPjwvYXBwLXJlY29yZGluZy1maWxlLW5hdmk+XHJcbiAgICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgOmhvc3Qge1xyXG4gICAgICAgICAgZmxleDogMjtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgbWluLWhlaWdodDowO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB9YCxgXHJcbiAgICAgICAgLmN0cmx2aWV3e1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gICAgICAgIH1cclxuICAgIGAsYFxyXG4gICAgICBhdWRpby1kaXNwbGF5LWNvbnRyb2x7XHJcblxyXG4gICAgICAgIGZsZXg6IDM7XHJcbiAgICAgIH1cclxuICAgIGBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBdWRpb0Rpc3BsYXlQbGF5ZXIgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIC8vcHJvdGVjdGVkIF9yZWNvcmRpbmdGaWxlSWQ6IHN0cmluZyB8IG51bWJlciA9IG51bGw7XHJcblxyXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbD0gbnVsbDtcclxuICBzZXNzaW9uSWRGcm9tUm91dGU6c3RyaW5nfG51bGw9bnVsbDtcclxuXHJcbiAgYXZhaWxSZWNGaWxlcyE6IEFycmF5PEFycmF5PFNwclJlY29yZGluZ0ZpbGU+PjtcclxuICB2ZXJzaW9uczogQXJyYXk8bnVtYmVyPnxudWxsPW51bGw7XHJcblxyXG4gIHJlY29yZGluZ0ZpbGU6IFNwclJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG4gIHJlY29yZGluZ0ZpbGVWZXJzaW9uOm51bWJlcnxudWxsPW51bGw7XHJcbiAgcHJpdmF0ZSByb3V0ZWRCeVF1ZXJ5UGFyYW09ZmFsc2U7XHJcbiAgcG9zSW5MaXN0OiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lKVxyXG4gIHByaXZhdGUgYWMhOiBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lO1xyXG5cclxuICBmaXJzdEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHByZXZBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBuZXh0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgbGFzdEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHRvVmVyc2lvbkFjdGlvbjogQWN0aW9uPG51bWJlcj47XHJcblxyXG4gIG5hdmlJbmZvTG9hZGluZz1mYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlY29yZGluZ0ZpbGVTZXJ2aWNlOiBSZWNvcmRpbmdGaWxlU2VydmljZSwgcHJvdGVjdGVkIHJlY29yZGluZ1NlcnZpY2U6IFJlY29yZGluZ1NlcnZpY2UsIHByb3RlY3RlZCBzZXNzaW9uU2VydmljZTogU2Vzc2lvblNlcnZpY2UsIHByb3RlY3RlZCByb3V0ZXI6Um91dGVyLHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgZVJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgICBzdXBlcihyb3V0ZSwgcmVmLCBlUmVmKVxyXG4gICAgdGhpcy5wYXJlbnRFID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLmZpcnN0QWN0aW9uID0gbmV3IEFjdGlvbjx2b2lkPignRmlyc3QnKTtcclxuICAgIHRoaXMuZmlyc3RBY3Rpb24ub25BY3Rpb249ICgpPT57XHJcbiAgICAgIHRoaXMucG9zSW5MaXN0PTA7XHJcbiAgICAgIHRoaXMubmF2aWdhdGVUb1JlY29yZGluZ0ZpbGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMucHJldkFjdGlvbiA9IG5ldyBBY3Rpb248dm9pZD4oJ1ByZXZpb3VzJyk7XHJcbiAgICB0aGlzLnByZXZBY3Rpb24ub25BY3Rpb249ICgpPT50aGlzLnByZXZGaWxlKCk7XHJcbiAgICB0aGlzLm5leHRBY3Rpb24gPSBuZXcgQWN0aW9uPHZvaWQ+KCdOZXh0Jyk7XHJcbiAgICB0aGlzLm5leHRBY3Rpb24ub25BY3Rpb249ICgpPT50aGlzLm5leHRGaWxlKCk7XHJcbiAgICB0aGlzLmxhc3RBY3Rpb24gPSBuZXcgQWN0aW9uPHZvaWQ+KCdMYXN0Jyk7XHJcbiAgICB0aGlzLmxhc3RBY3Rpb24ub25BY3Rpb249ICgpPT57XHJcbiAgICAgIGlmKHRoaXMuYXZhaWxSZWNGaWxlcykge1xyXG4gICAgICAgIHRoaXMucG9zSW5MaXN0ID0gdGhpcy5hdmFpbFJlY0ZpbGVzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUmVjb3JkaW5nRmlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50b1ZlcnNpb25BY3Rpb249bmV3IEFjdGlvbjxudW1iZXI+KCdUbyB2ZXJzaW9uJyk7XHJcbiAgICB0aGlzLnRvVmVyc2lvbkFjdGlvbi5vbkFjdGlvbj0gKGFlKT0+dGhpcy50b1ZlcnNpb24oYWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpXHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgbGV0IHJmSWRQID0gcGFyYW1zWydyZWNvcmRpbmdGaWxlSWQnXTtcclxuICAgICAgbGV0IHNJZFAgPSBwYXJhbXNbJ3Nlc3Npb25JZCddO1xyXG4gICAgICBpZiAoc0lkUCkge1xyXG4gICAgICAgdGhpcy5zZXNzaW9uSWRGcm9tUm91dGU9c0lkUDtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmZJZFApIHtcclxuICAgICAgICB0aGlzLnJvdXRlZEJ5UXVlcnlQYXJhbT10cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZFJlY0ZpbGUocmZJZFApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgbGV0IHJmSWRQID0gcGFyYW1zWydyZWNvcmRpbmdGaWxlSWQnXTtcclxuICAgICAgbGV0IHNJZFAgPSBwYXJhbXNbJ3Nlc3Npb25JZCddO1xyXG4gICAgICBpZiAoc0lkUCkge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbklkRnJvbVJvdXRlPXNJZFA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJmSWRQKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZWRCeVF1ZXJ5UGFyYW09ZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sb2FkUmVjRmlsZShyZklkUCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gaWYodGhpcy5zZXNzaW9uSWQpe1xyXG4gICAgLy8gICAgIHRoaXMubG9hZFNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0lkKHJmSWQ6bnVtYmVyfCBzdHJpbmcpe1xyXG5cclxuICAgIGlmKHRoaXMucm91dGVkQnlRdWVyeVBhcmFtKXtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBxdWVyeVBhcmFtczp7J3JlY29yZGluZ0ZpbGVJZCc6cmZJZH19KVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLycgKyByZklkXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb1JlY29yZGluZ0ZpbGUoKXtcclxuICAgIGlmKHRoaXMucG9zSW5MaXN0IT1udWxsKSB7XHJcbiAgICAgIGxldCBsYXRlc3ROZXh0UmYgPSB0aGlzLmF2YWlsUmVjRmlsZXNbdGhpcy5wb3NJbkxpc3RdWzBdO1xyXG4gICAgICBsZXQgbG5SZklkID0gbGF0ZXN0TmV4dFJmLnJlY29yZGluZ0ZpbGVJZDtcclxuICAgICAgaWYobG5SZklkKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvSWQobG5SZklkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9WZXJzaW9uKGFlOiBBY3Rpb25FdmVudDxudW1iZXI+KSB7XHJcbiAgICBsZXQgdG9SZklkID0gbnVsbDtcclxuICAgIGxldCB2ZXJzaW9uID0gYWUudmFsdWU7XHJcbiAgICBpZih0aGlzLnBvc0luTGlzdCE9bnVsbCkge1xyXG4gICAgICBsZXQgY1JmcyA9IHRoaXMuYXZhaWxSZWNGaWxlc1t0aGlzLnBvc0luTGlzdF07XHJcbiAgICAgIGxldCBhdmFpbFZlcnNpb25DbnQgPSBjUmZzLmxlbmd0aDtcclxuICAgICAgZm9yIChsZXQgY1JmIG9mIGNSZnMpIHtcclxuICAgICAgICBpZihjUmYgaW5zdGFuY2VvZiBTcHJSZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgICAgICBpZiAoY1JmLnZlcnNpb24gPT09IHZlcnNpb24pIHtcclxuICAgICAgICAgICAgdG9SZklkID0gY1JmLnJlY29yZGluZ0ZpbGVJZDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodG9SZklkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0ZVRvSWQodG9SZklkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcmV2RmlsZSgpIHtcclxuICAgIGlmKHRoaXMucG9zSW5MaXN0IT1udWxsKSB7XHJcbiAgICAgIHRoaXMucG9zSW5MaXN0LS07XHJcbiAgICB9XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9SZWNvcmRpbmdGaWxlKClcclxuICB9XHJcbiAgbmV4dEZpbGUoKSB7XHJcbiAgICBpZih0aGlzLnBvc0luTGlzdCE9bnVsbCkge1xyXG4gICAgICB0aGlzLnBvc0luTGlzdCsrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZpZ2F0ZVRvUmVjb3JkaW5nRmlsZSgpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBvc2l0aW9uSW5MaXN0KCk6bnVtYmVyIHwgbnVsbHtcclxuICAgIGlmICh0aGlzLmF2YWlsUmVjRmlsZXMgJiYgdGhpcy5yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgIGxldCBjaWM9dGhpcy5yZWNvcmRpbmdGaWxlLml0ZW1Db2RlO1xyXG4gICAgICBpZiAoY2ljKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1DbnQgPSB0aGlzLmF2YWlsUmVjRmlsZXMubGVuZ3RoXHJcbiAgICAgICAgZm9yIChsZXQgcmZkaSA9IDA7IHJmZGkgPCBpdGVtQ250OyByZmRpKyspIHtcclxuICAgICAgICAgIGxldCBhclJmID0gdGhpcy5hdmFpbFJlY0ZpbGVzW3JmZGldWzBdO1xyXG4gICAgICAgICAgaWYgKGFyUmYgaW5zdGFuY2VvZiBTcHJSZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgICAgICAgIGxldCBhciA9IGFyUmYucmVjb3JkaW5nO1xyXG4gICAgICAgICAgICBpZiAoY2ljID09PSBhci5pdGVtY29kZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZmRpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgaXRlbUNudCA9IHRoaXMuYXZhaWxSZWNGaWxlcy5sZW5ndGhcclxuICAgICAgICBmb3IgKGxldCByZmRpID0gMDsgcmZkaSA8IGl0ZW1DbnQ7IHJmZGkrKykge1xyXG4gICAgICAgICAgbGV0IGFyUmYgPSB0aGlzLmF2YWlsUmVjRmlsZXNbcmZkaV1bMF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZGluZ0ZpbGUudXVpZCA9PT0gYXJSZi51dWlkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJmZGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBvcygpe1xyXG4gICAgdGhpcy5wb3NJbkxpc3Q9dGhpcy5wb3NpdGlvbkluTGlzdCgpO1xyXG4gICAgdGhpcy50b1ZlcnNpb25BY3Rpb24uZGlzYWJsZWQ9dHJ1ZTtcclxuICAgIGlmKHRoaXMuYXZhaWxSZWNGaWxlcyl7XHJcbiAgICAgIGxldCBhdlJmc0xlbj10aGlzLmF2YWlsUmVjRmlsZXMubGVuZ3RoO1xyXG4gICAgICBpZih0aGlzLnBvc0luTGlzdCAhPW51bGwgJiYgYXZSZnNMZW4+dGhpcy5wb3NJbkxpc3QpIHtcclxuICAgICAgICBsZXQgYXJmcyA9IHRoaXMuYXZhaWxSZWNGaWxlc1t0aGlzLnBvc0luTGlzdF07XHJcbiAgICAgICAgaWYgKGFyZnMpIHtcclxuICAgICAgICAgIHRoaXMudmVyc2lvbnMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xyXG4gICAgICAgICAgZm9yIChsZXQgYXJmIG9mIGFyZnMpIHtcclxuICAgICAgICAgICAgaWYoYXJmIGluc3RhbmNlb2YgU3ByUmVjb3JkaW5nRmlsZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmVyc2lvbnMucHVzaChhcmYudmVyc2lvbilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50b1ZlcnNpb25BY3Rpb24uZGlzYWJsZWQ9KHRoaXMudmVyc2lvbnMubGVuZ3RoPDIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVBY3Rpb25zKClcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBsb2FkUmVjRmlsZShyZklkOm51bWJlciB8IHN0cmluZykge1xyXG4gICAgdGhpcy5hcD8uc3RvcCgpO1xyXG4gICAgdGhpcy5hdWRpb0NsaXAgPW51bGw7XHJcbiAgICB0aGlzLnJlY29yZGluZ0ZpbGU9bnVsbDtcclxuICAgIHRoaXMucG9zSW5MaXN0PW51bGw7XHJcbiAgICB0aGlzLnVwZGF0ZUFjdGlvbnMoKTtcclxuICAgIGxldCBhdWRpb0NvbnRleHQgPSBBdWRpb0NvbnRleHRQcm92aWRlci5hdWRpb0NvbnRleHRJbnN0YW5jZSgpO1xyXG4gICAgaWYoYXVkaW9Db250ZXh0KSB7XHJcbiAgICAgIHRoaXMucmVjb3JkaW5nRmlsZVNlcnZpY2UuZmV0Y2hTcHJSZWNvcmRpbmdGaWxlKGF1ZGlvQ29udGV4dCwgcmZJZCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9ICdBdWRpbyBmaWxlIGxvYWRlZC4nO1xyXG4gICAgICAgIGxldCBjbGlwID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJlY29yZGluZ0ZpbGUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5yZWNvcmRpbmdGaWxlKSB7XHJcbiAgICAgICAgICBsZXQgYWIgPSB0aGlzLnJlY29yZGluZ0ZpbGUuYXVkaW9CdWZmZXI7XHJcbiAgICAgICAgICBpZiAoYWIpIHtcclxuICAgICAgICAgICAgY2xpcCA9IG5ldyBBdWRpb0NsaXAoYWIpO1xyXG5cclxuICAgICAgICAgICAgbGV0IGVzZmZzciA9IG51bGw7XHJcbiAgICAgICAgICAgIGxldCBlZWZmc3IgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgZXNyID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmIChjbGlwLmJ1ZmZlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgZXNyID0gYWIuc2FtcGxlUmF0ZTtcclxuICAgICAgICAgICAgICBpZiAoZXNyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGVzZmZzciA9IFJlY29yZGluZ0ZpbGVVdGlsLmVkaXRTdGFydEZyYW1lRm9yU2FtcGxlUmF0ZSh0aGlzLnJlY29yZGluZ0ZpbGUsIGVzcik7XHJcbiAgICAgICAgICAgICAgICBlZWZmc3IgPSBSZWNvcmRpbmdGaWxlVXRpbC5lZGl0RW5kRnJhbWVGb3JTYW1wbGVSYXRlKHRoaXMucmVjb3JkaW5nRmlsZSwgZXNyKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IHNlbDogU2VsZWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgaWYgKGVzZmZzciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWVmZnNyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgc2VsID0gbmV3IFNlbGVjdGlvbihhYi5zYW1wbGVSYXRlLCBlc2Zmc3IsIGVlZmZzcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgY2gwID0gYWIuZ2V0Q2hhbm5lbERhdGEoMCk7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBmcmFtZUxlbmd0aCA9IGNoMC5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgIHNlbCA9IG5ldyBTZWxlY3Rpb24oZXNyLCBlc2Zmc3IsIGZyYW1lTGVuZ3RoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVlZmZzciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBzZWwgPSBuZXcgU2VsZWN0aW9uKGVzciwgMCwgZWVmZnNyKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgY2xpcC5zZWxlY3Rpb24gPSBzZWxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmF1ZGlvQ2xpcCA9IGNsaXBcclxuICAgICAgICB0aGlzLmxvYWRlZFJlY2ZpbGUoKTtcclxuXHJcbiAgICAgIH0sIGVycm9yMSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAnRXJyb3IgbG9hZGluZyBhdWRpbyBmaWxlISc7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxvYWRlZFJlY2ZpbGUoKSB7XHJcbiAgICBpZih0aGlzLnJlY29yZGluZ0ZpbGUgJiYgIXRoaXMuc2Vzc2lvbklkKSB7XHJcbiAgICAgIGxldCBzSWQ9dGhpcy5yZWNvcmRpbmdGaWxlLnNlc3Npb25cclxuICAgICAgaWYoIXNJZCl7XHJcbiAgICAgICAgc0lkPXRoaXMuc2Vzc2lvbklkRnJvbVJvdXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzSWQpIHtcclxuICAgICAgICB0aGlzLmxvYWRTZXNzaW9uKHNJZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZVBvcygpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVBY3Rpb25zKCl7XHJcbiAgICBsZXQgaXRlbUNudDpudW1iZXJ8bnVsbD1udWxsO1xyXG4gICAgaWYodGhpcy5hdmFpbFJlY0ZpbGVzKSB7XHJcbiAgICAgIGl0ZW1DbnQgPSB0aGlzLmF2YWlsUmVjRmlsZXMubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maXJzdEFjdGlvbi5kaXNhYmxlZD0odGhpcy5wb3NJbkxpc3Q9PW51bGwgfHwgdGhpcy5wb3NJbkxpc3QgPT0gMCk7XHJcbiAgICB0aGlzLnByZXZBY3Rpb24uZGlzYWJsZWQ9KHRoaXMucG9zSW5MaXN0PT1udWxsIHx8IHRoaXMucG9zSW5MaXN0ID09IDApO1xyXG4gICAgdGhpcy5uZXh0QWN0aW9uLmRpc2FibGVkPSh0aGlzLnBvc0luTGlzdD09bnVsbCB8fCBpdGVtQ250PT1udWxsIHx8IHRoaXMucG9zSW5MaXN0ID49IGl0ZW1DbnQgLSAxKTtcclxuICAgIHRoaXMubGFzdEFjdGlvbi5kaXNhYmxlZD0odGhpcy5wb3NJbkxpc3Q9PW51bGwgfHwgaXRlbUNudD09bnVsbCB8fCB0aGlzLnBvc0luTGlzdCA+PSBpdGVtQ250IC0gMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRTZXNzaW9uKHNlc3Npb25JZDogc3RyaW5nfCBudW1iZXIpIHtcclxuICAgIC8vIGxvYWQgc2Vzc2lvbiBhbmQgcmVjb3JkaW5nIGZpbGUgbWV0YSBkYXRhIG9ubHkgd2hlbiBvbiBpbml0IGFuZCB3aGVuIHNlc3Npb24gY2hhbmdlc1xyXG4gICAgaWYgKDxzdHJpbmc+c2Vzc2lvbklkICE9IDxzdHJpbmc+dGhpcy5zZXNzaW9uSWQpIHtcclxuICAgICAgLy8gdGVsbCBVSSB0aGF0IHdlIGFyZSB3b3JraW5nLi4uXHJcbiAgICAgIHRoaXMubmF2aUluZm9Mb2FkaW5nPXRydWU7XHJcbiAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2Vzc2lvbk9ic2VydmVyKDxzdHJpbmc+c2Vzc2lvbklkKS5zdWJzY3JpYmUoKHMpID0+IHtcclxuICAgICAgICAvLyByZWNlaXZlZCBzZXNzaW9uIGRhdGFcclxuICAgICAgICB0aGlzLnNlc3Npb25JZCA9IHMuc2Vzc2lvbklkO1xyXG4gICAgICAgIC8vIGZldGNoIHJlY29yZGluZyBmaWxlIG1ldGEgZGF0YSBsaXN0XHJcbiAgICAgICAgdGhpcy5yZWNvcmRpbmdTZXJ2aWNlLnNwclJlY29yZGluZ0ZpbGVMaXN0KHMucHJvamVjdCwgcy5zZXNzaW9uSWQpLnN1YnNjcmliZSgocmZkcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hdmFpbFJlY0ZpbGVzID0gbmV3IEFycmF5PEFycmF5PFNwclJlY29yZGluZ0ZpbGU+PigpO1xyXG4gICAgICAgICAgLy8gYnVpbGQgc3RydWN0dXJlIGluZGV4ZWQgYnkgaXRlbWNvZGVcclxuICAgICAgICAgIGxldCBpY0lkeCA9IG5ldyBJdGVtY29kZUluZGV4KCk7XHJcbiAgICAgICAgICBmb3IgKGxldCByZmRpID0gMDsgcmZkaSA8IHJmZHMubGVuZ3RoOyByZmRpKyspIHtcclxuICAgICAgICAgICAgbGV0IHJmZCA9IHJmZHNbcmZkaV07XHJcbiAgICAgICAgICAgIGlmIChyZmQuZGF0ZSkge1xyXG4gICAgICAgICAgICAgIC8vIGNvbnZlcnQgZGF0ZSBzdHJpbmcgZm9yIGZhc3RlciBzb3J0aW5nIGxhdGVyXHJcbiAgICAgICAgICAgICAgbGV0IHJmZGQgPSBuZXcgRGF0ZShyZmQuZGF0ZSk7XHJcbiAgICAgICAgICAgICAgcmZkLl9kYXRlQXNEYXRlT2JqID0gcmZkZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgaWMgPSByZmQuaXRlbUNvZGU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWljKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHIgPSByZmQucmVjb3JkaW5nO1xyXG4gICAgICAgICAgICAgIGlmIChyICYmIHIuaXRlbWNvZGUpIHtcclxuICAgICAgICAgICAgICAgIGljID0gci5pdGVtY29kZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGljKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGV4UmZzRm9ySWMgPSBpY0lkeFtpY107XHJcbiAgICAgICAgICAgICAgaWYgKGV4UmZzRm9ySWMgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgLy8gaXRlbWNvZGUgbm90IHlldCBzdG9yZWRcclxuICAgICAgICAgICAgICAgIGxldCBhcmZkID0gbmV3IEFycmF5PFNwclJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgICAgICAgICAgICAgICBhcmZkLnB1c2gocmZkKTtcclxuICAgICAgICAgICAgICAgIGljSWR4W2ljXSA9IGFyZmQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF2YWlsUmVjRmlsZXMucHVzaChhcmZkKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gcmVjIGZpbGUgd2l0aCBpdGVtY29kZSBhbHJlYWR5IGV4aXN0cywgYWRkIChwdXNoKSB0aGlzIHZlcnNpb24gLi4uXHJcbiAgICAgICAgICAgICAgICBleFJmc0ZvckljLnB1c2gocmZkKTtcclxuICAgICAgICAgICAgICAgIC8vIC4uIGFuZCBzb3J0IGxhdGVzdCB2ZXJzaW9uIChoaWdoZXN0IHZlcnNpb24gbnVtYmVyKSB0byBsb3dlc3QgaW5kZXhcclxuICAgICAgICAgICAgICAgIGV4UmZzRm9ySWMuc29ydCgocmZkMSwgcmZkMikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmZkMi52ZXJzaW9uIC0gcmZkMS52ZXJzaW9uO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBhcmZkID0gbmV3IEFycmF5PFNwclJlY29yZGluZ0ZpbGU+KCk7XHJcbiAgICAgICAgICAgICAgYXJmZC5wdXNoKHJmZCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5hdmFpbFJlY0ZpbGVzLnB1c2goYXJmZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGhhdmUgdW5zb3J0ZWQgaXRlbWNvZGUgaW5kZXhlZCByZWNvcmRpbmcgZmlsZXMgaGVyZVxyXG4gICAgICAgICAgLy8gc29ydCB0aGVtIG9yZGVyZWQgYnkgZGF0ZSBvZiBsYXRlc3QgdmVyc2lvbiBhc2NlbmRpbmdcclxuICAgICAgICAgIHRoaXMuYXZhaWxSZWNGaWxlcy5zb3J0KChyZnMxLCByZnMyKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBkMSA9IHJmczJbMF0uX2RhdGVBc0RhdGVPYmo7XHJcbiAgICAgICAgICAgIGxldCBkMiA9IHJmczFbMF0uX2RhdGVBc0RhdGVPYmo7XHJcbiAgICAgICAgICAgIGlmIChkMSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGQyID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBTb3J0IGVudHJpZXMgd2hvc2UgZGF0ZXMgYXJlIG5vdCBzZXQgdG8gdGhlIGVuZFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoZDIgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgLy8gU29ydCBlbnRyaWVzIHdob3NlIGRhdGVzIGFyZSBub3Qgc2V0IHRvIHRoZSBlbmRcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBDb21wYXJlIGRhdGUgYnkgdGltZSBpbiBtaWxsaXNlY29uZHMgdmFsdWVcclxuICAgICAgICAgICAgICAgIHJldHVybiBkMi5nZXRUaW1lKCkgLSBkMS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlUG9zKClcclxuICAgICAgICAgIHRoaXMubmF2aUluZm9Mb2FkaW5nPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgfVxyXG4gIH1cclxufVxyXG5cclxuIl19
417
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLWZpbGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVlY2hyZWNvcmRlcm5nL3NyYy9saWIvc3BlZWNocmVjb3JkZXIvc2Vzc2lvbi9yZWNvcmRpbmdmaWxlL3JlY29yZGluZy1maWxlLXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFBO0FBUXRCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFDLE1BQU0sRUFBYyxNQUFNLHdCQUF3QixDQUFDO0FBSTNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7OztBQUduRCxNQUFNLE9BQU8sYUFBYTtDQUV6QjtBQWlERCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsa0JBQWtCO0lBMkJoRSxZQUFzQixvQkFBMEMsRUFBWSxnQkFBa0MsRUFBWSxjQUE4QixFQUFZLE1BQWEsRUFBVyxLQUFxQixFQUFZLEdBQXNCLEVBQVksSUFBZ0IsRUFBWSxNQUFpQjtRQUMxUyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQURILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFBWSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUFXLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBVztRQXpCNVMscURBQXFEO1FBRXJELGNBQVMsR0FBMEIsSUFBSSxDQUFDO1FBQ3hDLHVCQUFrQixHQUFhLElBQUksQ0FBQztRQUdwQyxhQUFRLEdBQXFCLElBQUksQ0FBQztRQUVsQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFDMUMseUJBQW9CLEdBQWEsSUFBSSxDQUFDO1FBQzlCLHVCQUFrQixHQUFDLEtBQUssQ0FBQztRQUNqQyxjQUFTLEdBQWMsSUFBSSxDQUFDO1FBWTVCLG9CQUFlLEdBQUMsS0FBSyxDQUFDO1FBSXBCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBTyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRSxHQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRSxHQUFFLEVBQUUsQ0FBQSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBTyxNQUFNLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRSxHQUFFLEVBQUUsQ0FBQSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBTyxNQUFNLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRSxHQUFFLEVBQUU7WUFDNUIsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFDLElBQUksTUFBTSxDQUFTLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFFLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFRCxlQUFlO1FBQ2IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2xELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3RDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMvQixJQUFJLElBQUksRUFBRTtnQkFDVCxJQUFJLENBQUMsa0JBQWtCLEdBQUMsSUFBSSxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxrQkFBa0IsR0FBQyxJQUFJLENBQUM7YUFDOUI7WUFDRCxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsa0JBQWtCLEdBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxzQkFBc0I7UUFDdEIsd0NBQXdDO1FBQ3hDLElBQUk7SUFDTixDQUFDO0lBR08sWUFBWSxDQUFDLElBQW1CO1FBRXRDLElBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBQyxFQUFDLGlCQUFpQixFQUFDLElBQUksRUFBQyxFQUFDLENBQUMsQ0FBQTtTQUN6RjthQUFLO1lBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBRSxJQUFJLEVBQUU7WUFDdkIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztZQUMxQyxJQUFHLE1BQU0sRUFBRTtnQkFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQXVCO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBRSxJQUFJLEVBQUU7WUFDdkIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNsQyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsSUFBRyxHQUFHLENBQUMsT0FBTyxJQUFHLElBQUksRUFBRTtvQkFDckIsSUFBSSxHQUFHLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRTt3QkFDM0IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQzdCLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUcsSUFBSSxDQUFDLFNBQVMsSUFBRSxJQUFJLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFHLElBQUksQ0FBQyxTQUFTLElBQUUsSUFBSSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtRQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzVDLElBQUksR0FBRyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQ3BDLElBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFDO2dCQUMvRSxHQUFHLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUE7Z0JBQ3ZDLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ3pDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDbEIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDeEIsSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRTs0QkFDdkIsT0FBTyxJQUFJLENBQUM7eUJBQ2I7cUJBQ0Y7aUJBQ0Y7YUFDRjtpQkFBSTtnQkFDSCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQTtnQkFDdkMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtvQkFDekMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO3dCQUN6QyxPQUFPLElBQUksQ0FBQztxQkFDYjtpQkFDRjthQUNKO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQztZQUNwQixJQUFJLFFBQVEsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxJQUFHLElBQUksQ0FBQyxTQUFTLElBQUcsSUFBSSxJQUFJLFFBQVEsR0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO29CQUNwQyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTt3QkFDcEIsSUFBRyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRTs0QkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO3lCQUNoQztxQkFDRjtvQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN4RDthQUNGO1NBQ0Y7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFvQjtRQUN4QyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUUsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9ELElBQUcsWUFBWSxFQUFFO1lBQ2YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxNQUFNLEdBQUcsb0JBQW9CLENBQUM7Z0JBQ25DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDdEIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7b0JBQ3hDLElBQUksRUFBRSxFQUFFO3dCQUNOLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFFekIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO3dCQUNsQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ2xCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQzt3QkFFZixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFOzRCQUN2QixHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQzs0QkFDcEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO2dDQUNmLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dDQUNoRixNQUFNLEdBQUcsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQzs2QkFDL0U7NEJBQ0QsSUFBSSxHQUFHLEdBQXFCLElBQUksQ0FBQzs0QkFDakMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO2dDQUNsQixJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7b0NBQ2xCLEdBQUcsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztpQ0FDcEQ7cUNBQU07b0NBQ0wsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQ0FDL0IsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztvQ0FDN0IsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7aUNBQy9DOzZCQUNGO2lDQUFNLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtnQ0FDekIsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7NkJBQ3JDOzRCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFBO3lCQUNyQjtxQkFDRjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtnQkFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXZCLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLDJCQUEyQixDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRVMsYUFBYTtRQUNyQixJQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3hDLElBQUksR0FBRyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFBO1lBQ2xDLElBQUcsQ0FBQyxHQUFHLEVBQUM7Z0JBQ04sR0FBRyxHQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQzthQUM3QjtZQUNELElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkI7U0FDRjtRQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksT0FBTyxHQUFhLElBQUksQ0FBQztRQUM3QixJQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFFLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUUsSUFBSSxJQUFJLE9BQU8sSUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFFLElBQUksSUFBSSxPQUFPLElBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTyxXQUFXLENBQUMsU0FBeUI7UUFDM0MsdUZBQXVGO1FBQ3ZGLElBQVksU0FBUyxJQUFZLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDL0MsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUMsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNyRSx3QkFBd0I7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDN0Isc0NBQXNDO2dCQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxLQUFLLEVBQTJCLENBQUM7b0JBQzFELHNDQUFzQztvQkFDdEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDaEMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7d0JBQzdDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDckIsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFOzRCQUNaLCtDQUErQzs0QkFDL0MsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUM5QixHQUFHLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQzt5QkFDM0I7d0JBQ0QsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQzt3QkFFdEIsSUFBSSxDQUFDLEVBQUUsRUFBRTs0QkFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDOzRCQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO2dDQUNuQixFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQzs2QkFDakI7eUJBQ0Y7d0JBQ0QsSUFBSSxFQUFFLEVBQUU7NEJBQ04sSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUMzQixJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0NBQ3RCLDBCQUEwQjtnQ0FDMUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7Z0NBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0NBQ2YsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztnQ0FDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7NkJBQy9CO2lDQUFNO2dDQUNMLHFFQUFxRTtnQ0FDckUsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQ0FDckIsc0VBQXNFO2dDQUN0RSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO29DQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQ0FDckMsQ0FBQyxDQUFDLENBQUE7NkJBQ0g7eUJBRUY7NkJBQU07NEJBQ0wsSUFBSSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQW9CLENBQUM7NEJBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQy9CO3FCQUNGO29CQUNELHNEQUFzRDtvQkFDdEQsd0RBQXdEO29CQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQzt3QkFDaEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQzt3QkFDaEMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFOzRCQUNkLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtnQ0FDZCxPQUFPLENBQUMsQ0FBQzs2QkFDVjtpQ0FBTTtnQ0FDTCxrREFBa0Q7Z0NBQ2xELE9BQU8sQ0FBQyxDQUFDLENBQUM7NkJBQ1g7eUJBQ0Y7NkJBQU07NEJBQ0wsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO2dDQUNkLGtEQUFrRDtnQ0FDbEQsT0FBTyxDQUFDLENBQUM7NkJBQ1Y7aUNBQU07Z0NBQ0wsNkNBQTZDO2dDQUM3QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7NkJBQ3BDO3lCQUNGO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtvQkFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBQyxLQUFLLENBQUM7b0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDRjtJQUNMLENBQUM7O3VIQTNWVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrR0FnQjFCLHNCQUFzQix1RUEzRHZCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDsyRkEwQlUsMEJBQTBCO2tCQS9DdEMsU0FBUzttQkFBQztvQkFFVCxRQUFRLEVBQUUsd0JBQXdCO29CQUVsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO29CQUNELE1BQU0sRUFBRTt3QkFDTjs7Ozs7Ozs7OztNQVVFLEVBQUM7Ozs7OztLQU1GLEVBQUM7Ozs7O0tBS0Q7cUJBQUM7aUJBRUw7MFNBa0JTLEVBQUU7c0JBRFQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuXHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuXHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZVNlcnZpY2V9IGZyb20gXCIuL3JlY29yZGluZ2ZpbGUtc2VydmljZVwiO1xyXG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0F1ZGlvRGlzcGxheVBsYXllcn0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL2F1ZGlvX3BsYXllclwiO1xyXG5cclxuaW1wb3J0IHtBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vdWkvYXVkaW9fZGlzcGxheV9zY3JvbGxfcGFuZVwiO1xyXG5pbXBvcnQge0F1ZGlvQ29udGV4dFByb3ZpZGVyfSBmcm9tIFwiLi4vLi4vLi4vYXVkaW8vY29udGV4dFwiO1xyXG5pbXBvcnQge0F1ZGlvQ2xpcH0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL3BlcnNpc3RvclwiO1xyXG5pbXBvcnQge1NlbGVjdGlvbn0gZnJvbSBcIi4uLy4uLy4uL2F1ZGlvL3BlcnNpc3RvclwiO1xyXG5cclxuaW1wb3J0IHtBY3Rpb24sIEFjdGlvbkV2ZW50fSBmcm9tIFwiLi4vLi4vLi4vYWN0aW9uL2FjdGlvblwiO1xyXG5pbXBvcnQge1Nlc3Npb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ3MvcmVjb3JkaW5ncy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVjb3JkaW5nRmlsZSwgU3ByUmVjb3JkaW5nRmlsZX0gZnJvbSBcIi4uLy4uL3JlY29yZGluZ1wiO1xyXG5pbXBvcnQge1JlY29yZGluZ0ZpbGVVdGlsfSBmcm9tIFwiLi9yZWNvcmRpbmctZmlsZVwiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBJdGVtY29kZUluZGV4e1xyXG4gIFtpdGVtY29kZTogc3RyaW5nXTogQXJyYXk8U3ByUmVjb3JkaW5nRmlsZT47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cclxuICBzZWxlY3RvcjogJ2FwcC1hdWRpb2Rpc3BsYXlwbGF5ZXInLFxyXG5cclxuICB0ZW1wbGF0ZTogYFxyXG5cclxuICAgIDxhdWRpby1kaXNwbGF5LXNjcm9sbC1wYW5lICNhdWRpb0Rpc3BsYXlTY3JvbGxQYW5lPjwvYXVkaW8tZGlzcGxheS1zY3JvbGwtcGFuZT5cclxuICAgIDxkaXYgY2xhc3M9XCJjdHJsdmlld1wiPlxyXG4gICAgICA8YXBwLXJlY29yZGluZy1maWxlLW1ldGEgW3Nlc3Npb25JZF09XCJzZXNzaW9uSWRcIiBbcmVjb3JkaW5nRmlsZV09XCJyZWNvcmRpbmdGaWxlXCI+PC9hcHAtcmVjb3JkaW5nLWZpbGUtbWV0YT5cclxuXHJcbiAgICA8YXVkaW8tZGlzcGxheS1jb250cm9sIFthdWRpb0NsaXBdPVwiYXVkaW9DbGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxheVN0YXJ0QWN0aW9uXT1cInBsYXlTdGFydEFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTZWxlY3Rpb25BY3Rpb25dPVwicGxheVNlbGVjdGlvbkFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYXlTdG9wQWN0aW9uXT1cInBsYXlTdG9wQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvbl09XCJhcD8uYXV0b1BsYXlPblNlbGVjdFRvZ2dsZUFjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21JbkFjdGlvbl09XCJ6b29tSW5BY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tT3V0QWN0aW9uXT1cInpvb21PdXRBY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt6b29tU2VsZWN0ZWRBY3Rpb25dPVwiem9vbVNlbGVjdGVkQWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21GaXRUb1BhbmVsQWN0aW9uXT1cInpvb21GaXRUb1BhbmVsQWN0aW9uXCI+PC9hdWRpby1kaXNwbGF5LWNvbnRyb2w+XHJcbiAgICAgIDxhcHAtcmVjb3JkaW5nLWZpbGUtbmF2aSBbaXRlbXNdPVwiYXZhaWxSZWNGaWxlcz8ubGVuZ3RoXCIgW2l0ZW1Qb3NdPVwicG9zSW5MaXN0XCIgW3ZlcnNpb25dPVwicmVjb3JkaW5nRmlsZVZlcnNpb25cIiBbdmVyc2lvbnNdPVwidmVyc2lvbnNcIiBbZmlyc3RBY3Rpb25dPVwiZmlyc3RBY3Rpb25cIiBbcHJldkFjdGlvbl09XCJwcmV2QWN0aW9uXCIgW25leHRBY3Rpb25dPVwibmV4dEFjdGlvblwiIFtsYXN0QWN0aW9uXT1cImxhc3RBY3Rpb25cIiBbc2VsZWN0VmVyc2lvbl09XCJ0b1ZlcnNpb25BY3Rpb25cIiBbbmF2aUluZm9Mb2FkaW5nXT1cIm5hdmlJbmZvTG9hZGluZ1wiPjwvYXBwLXJlY29yZGluZy1maWxlLW5hdmk+XHJcbiAgICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgOmhvc3Qge1xyXG4gICAgICAgICAgZmxleDogMjtcclxuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgbWluLWhlaWdodDowO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgei1pbmRleDogNTtcclxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICB9YCxgXHJcbiAgICAgICAgLmN0cmx2aWV3e1xyXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblxyXG4gICAgICAgIH1cclxuICAgIGAsYFxyXG4gICAgICBhdWRpby1kaXNwbGF5LWNvbnRyb2x7XHJcblxyXG4gICAgICAgIGZsZXg6IDM7XHJcbiAgICAgIH1cclxuICAgIGBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVjb3JkaW5nRmlsZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBdWRpb0Rpc3BsYXlQbGF5ZXIgaW1wbGVtZW50cyBPbkluaXQsQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIC8vcHJvdGVjdGVkIF9yZWNvcmRpbmdGaWxlSWQ6IHN0cmluZyB8IG51bWJlciA9IG51bGw7XHJcblxyXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbD0gbnVsbDtcclxuICBzZXNzaW9uSWRGcm9tUm91dGU6c3RyaW5nfG51bGw9bnVsbDtcclxuXHJcbiAgYXZhaWxSZWNGaWxlcyE6IEFycmF5PEFycmF5PFNwclJlY29yZGluZ0ZpbGU+PjtcclxuICB2ZXJzaW9uczogQXJyYXk8bnVtYmVyPnxudWxsPW51bGw7XHJcblxyXG4gIHJlY29yZGluZ0ZpbGU6IFNwclJlY29yZGluZ0ZpbGV8bnVsbD1udWxsO1xyXG4gIHJlY29yZGluZ0ZpbGVWZXJzaW9uOm51bWJlcnxudWxsPW51bGw7XHJcbiAgcHJpdmF0ZSByb3V0ZWRCeVF1ZXJ5UGFyYW09ZmFsc2U7XHJcbiAgcG9zSW5MaXN0OiBudW1iZXJ8bnVsbD1udWxsO1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZChBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lKVxyXG4gIHByaXZhdGUgYWMhOiBBdWRpb0Rpc3BsYXlTY3JvbGxQYW5lO1xyXG5cclxuICBmaXJzdEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHByZXZBY3Rpb246IEFjdGlvbjx2b2lkPjtcclxuICBuZXh0QWN0aW9uOiBBY3Rpb248dm9pZD47XHJcbiAgbGFzdEFjdGlvbjogQWN0aW9uPHZvaWQ+O1xyXG4gIHRvVmVyc2lvbkFjdGlvbjogQWN0aW9uPG51bWJlcj47XHJcblxyXG4gIG5hdmlJbmZvTG9hZGluZz1mYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlY29yZGluZ0ZpbGVTZXJ2aWNlOiBSZWNvcmRpbmdGaWxlU2VydmljZSwgcHJvdGVjdGVkIHJlY29yZGluZ1NlcnZpY2U6IFJlY29yZGluZ1NlcnZpY2UsIHByb3RlY3RlZCBzZXNzaW9uU2VydmljZTogU2Vzc2lvblNlcnZpY2UsIHByb3RlY3RlZCByb3V0ZXI6Um91dGVyLHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgZVJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgICBzdXBlcihyb3V0ZSwgcmVmLCBlUmVmKVxyXG4gICAgdGhpcy5wYXJlbnRFID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLmZpcnN0QWN0aW9uID0gbmV3IEFjdGlvbjx2b2lkPignRmlyc3QnKTtcclxuICAgIHRoaXMuZmlyc3RBY3Rpb24ub25BY3Rpb249ICgpPT57XHJcbiAgICAgIHRoaXMucG9zSW5MaXN0PTA7XHJcbiAgICAgIHRoaXMubmF2aWdhdGVUb1JlY29yZGluZ0ZpbGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMucHJldkFjdGlvbiA9IG5ldyBBY3Rpb248dm9pZD4oJ1ByZXZpb3VzJyk7XHJcbiAgICB0aGlzLnByZXZBY3Rpb24ub25BY3Rpb249ICgpPT50aGlzLnByZXZGaWxlKCk7XHJcbiAgICB0aGlzLm5leHRBY3Rpb24gPSBuZXcgQWN0aW9uPHZvaWQ+KCdOZXh0Jyk7XHJcbiAgICB0aGlzLm5leHRBY3Rpb24ub25BY3Rpb249ICgpPT50aGlzLm5leHRGaWxlKCk7XHJcbiAgICB0aGlzLmxhc3RBY3Rpb24gPSBuZXcgQWN0aW9uPHZvaWQ+KCdMYXN0Jyk7XHJcbiAgICB0aGlzLmxhc3RBY3Rpb24ub25BY3Rpb249ICgpPT57XHJcbiAgICAgIGlmKHRoaXMuYXZhaWxSZWNGaWxlcykge1xyXG4gICAgICAgIHRoaXMucG9zSW5MaXN0ID0gdGhpcy5hdmFpbFJlY0ZpbGVzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUmVjb3JkaW5nRmlsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50b1ZlcnNpb25BY3Rpb249bmV3IEFjdGlvbjxudW1iZXI+KCdUbyB2ZXJzaW9uJyk7XHJcbiAgICB0aGlzLnRvVmVyc2lvbkFjdGlvbi5vbkFjdGlvbj0gKGFlKT0+dGhpcy50b1ZlcnNpb24oYWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpXHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgbGV0IHJmSWRQID0gcGFyYW1zWydyZWNvcmRpbmdGaWxlSWQnXTtcclxuICAgICAgbGV0IHNJZFAgPSBwYXJhbXNbJ3Nlc3Npb25JZCddO1xyXG4gICAgICBpZiAoc0lkUCkge1xyXG4gICAgICAgdGhpcy5zZXNzaW9uSWRGcm9tUm91dGU9c0lkUDtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmZJZFApIHtcclxuICAgICAgICB0aGlzLnJvdXRlZEJ5UXVlcnlQYXJhbT10cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZFJlY0ZpbGUocmZJZFApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcclxuICAgICAgbGV0IHJmSWRQID0gcGFyYW1zWydyZWNvcmRpbmdGaWxlSWQnXTtcclxuICAgICAgbGV0IHNJZFAgPSBwYXJhbXNbJ3Nlc3Npb25JZCddO1xyXG4gICAgICBpZiAoc0lkUCkge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbklkRnJvbVJvdXRlPXNJZFA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJmSWRQKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZWRCeVF1ZXJ5UGFyYW09ZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sb2FkUmVjRmlsZShyZklkUCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gaWYodGhpcy5zZXNzaW9uSWQpe1xyXG4gICAgLy8gICAgIHRoaXMubG9hZFNlc3Npb24odGhpcy5zZXNzaW9uSWQpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb0lkKHJmSWQ6bnVtYmVyfCBzdHJpbmcpe1xyXG5cclxuICAgIGlmKHRoaXMucm91dGVkQnlRdWVyeVBhcmFtKXtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBxdWVyeVBhcmFtczp7J3JlY29yZGluZ0ZpbGVJZCc6cmZJZH19KVxyXG4gICAgfWVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uLycgKyByZklkXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGVUb1JlY29yZGluZ0ZpbGUoKXtcclxuICAgIGlmKHRoaXMucG9zSW5MaXN0IT1udWxsKSB7XHJcbiAgICAgIGxldCBsYXRlc3ROZXh0UmYgPSB0aGlzLmF2YWlsUmVjRmlsZXNbdGhpcy5wb3NJbkxpc3RdWzBdO1xyXG4gICAgICBsZXQgbG5SZklkID0gbGF0ZXN0TmV4dFJmLnJlY29yZGluZ0ZpbGVJZDtcclxuICAgICAgaWYobG5SZklkKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvSWQobG5SZklkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9WZXJzaW9uKGFlOiBBY3Rpb25FdmVudDxudW1iZXI+KSB7XHJcbiAgICBsZXQgdG9SZklkID0gbnVsbDtcclxuICAgIGxldCB2ZXJzaW9uID0gYWUudmFsdWU7XHJcbiAgICBpZih0aGlzLnBvc0luTGlzdCE9bnVsbCkge1xyXG4gICAgICBsZXQgY1JmcyA9IHRoaXMuYXZhaWxSZWNGaWxlc1t0aGlzLnBvc0luTGlzdF07XHJcbiAgICAgIGxldCBhdmFpbFZlcnNpb25DbnQgPSBjUmZzLmxlbmd0aDtcclxuICAgICAgZm9yIChsZXQgY1JmIG9mIGNSZnMpIHtcclxuICAgICAgICBpZihjUmYudmVyc2lvbiAhPW51bGwpIHtcclxuICAgICAgICAgIGlmIChjUmYudmVyc2lvbiA9PT0gdmVyc2lvbikge1xyXG4gICAgICAgICAgICB0b1JmSWQgPSBjUmYucmVjb3JkaW5nRmlsZUlkO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0b1JmSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRlVG9JZCh0b1JmSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHByZXZGaWxlKCkge1xyXG4gICAgaWYodGhpcy5wb3NJbkxpc3QhPW51bGwpIHtcclxuICAgICAgdGhpcy5wb3NJbkxpc3QtLTtcclxuICAgIH1cclxuICAgIHRoaXMubmF2aWdhdGVUb1JlY29yZGluZ0ZpbGUoKVxyXG4gIH1cclxuICBuZXh0RmlsZSgpIHtcclxuICAgIGlmKHRoaXMucG9zSW5MaXN0IT1udWxsKSB7XHJcbiAgICAgIHRoaXMucG9zSW5MaXN0Kys7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9SZWNvcmRpbmdGaWxlKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcG9zaXRpb25Jbkxpc3QoKTpudW1iZXIgfCBudWxse1xyXG4gICAgaWYgKHRoaXMuYXZhaWxSZWNGaWxlcyAmJiB0aGlzLnJlY29yZGluZ0ZpbGUpIHtcclxuICAgICAgbGV0IGNpYz10aGlzLnJlY29yZGluZ0ZpbGUuaXRlbUNvZGU7XHJcbiAgICAgIGlmKCFjaWMgJiYgdGhpcy5yZWNvcmRpbmdGaWxlLnJlY29yZGluZyAmJiB0aGlzLnJlY29yZGluZ0ZpbGUucmVjb3JkaW5nLml0ZW1jb2RlKXtcclxuICAgICAgICBjaWM9dGhpcy5yZWNvcmRpbmdGaWxlLnJlY29yZGluZy5pdGVtY29kZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY2ljKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1DbnQgPSB0aGlzLmF2YWlsUmVjRmlsZXMubGVuZ3RoXHJcbiAgICAgICAgZm9yIChsZXQgcmZkaSA9IDA7IHJmZGkgPCBpdGVtQ250OyByZmRpKyspIHtcclxuICAgICAgICAgIGxldCBhclJmID0gdGhpcy5hdmFpbFJlY0ZpbGVzW3JmZGldWzBdO1xyXG4gICAgICAgICAgaWYgKGFyUmYucmVjb3JkaW5nKSB7XHJcbiAgICAgICAgICAgIGxldCBhciA9IGFyUmYucmVjb3JkaW5nO1xyXG4gICAgICAgICAgICBpZiAoY2ljID09PSBhci5pdGVtY29kZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZmRpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBsZXQgaXRlbUNudCA9IHRoaXMuYXZhaWxSZWNGaWxlcy5sZW5ndGhcclxuICAgICAgICBmb3IgKGxldCByZmRpID0gMDsgcmZkaSA8IGl0ZW1DbnQ7IHJmZGkrKykge1xyXG4gICAgICAgICAgbGV0IGFyUmYgPSB0aGlzLmF2YWlsUmVjRmlsZXNbcmZkaV1bMF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlY29yZGluZ0ZpbGUudXVpZCA9PT0gYXJSZi51dWlkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJmZGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBvcygpe1xyXG4gICAgdGhpcy5wb3NJbkxpc3Q9dGhpcy5wb3NpdGlvbkluTGlzdCgpO1xyXG4gICAgdGhpcy50b1ZlcnNpb25BY3Rpb24uZGlzYWJsZWQ9dHJ1ZTtcclxuICAgIGlmKHRoaXMuYXZhaWxSZWNGaWxlcyl7XHJcbiAgICAgIGxldCBhdlJmc0xlbj10aGlzLmF2YWlsUmVjRmlsZXMubGVuZ3RoO1xyXG4gICAgICBpZih0aGlzLnBvc0luTGlzdCAhPW51bGwgJiYgYXZSZnNMZW4+dGhpcy5wb3NJbkxpc3QpIHtcclxuICAgICAgICBsZXQgYXJmcyA9IHRoaXMuYXZhaWxSZWNGaWxlc1t0aGlzLnBvc0luTGlzdF07XHJcbiAgICAgICAgaWYgKGFyZnMpIHtcclxuICAgICAgICAgIHRoaXMudmVyc2lvbnMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xyXG4gICAgICAgICAgZm9yIChsZXQgYXJmIG9mIGFyZnMpIHtcclxuICAgICAgICAgICAgaWYoYXJmLnJlY29yZGluZz8uaXRlbWNvZGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnZlcnNpb25zLnB1c2goYXJmLnZlcnNpb24pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudG9WZXJzaW9uQWN0aW9uLmRpc2FibGVkPSh0aGlzLnZlcnNpb25zLmxlbmd0aDwyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlQWN0aW9ucygpXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbG9hZFJlY0ZpbGUocmZJZDpudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuYXA/LnN0b3AoKTtcclxuICAgIHRoaXMuYXVkaW9DbGlwID1udWxsO1xyXG4gICAgdGhpcy5yZWNvcmRpbmdGaWxlPW51bGw7XHJcbiAgICB0aGlzLnBvc0luTGlzdD1udWxsO1xyXG4gICAgdGhpcy51cGRhdGVBY3Rpb25zKCk7XHJcbiAgICBsZXQgYXVkaW9Db250ZXh0ID0gQXVkaW9Db250ZXh0UHJvdmlkZXIuYXVkaW9Db250ZXh0SW5zdGFuY2UoKTtcclxuICAgIGlmKGF1ZGlvQ29udGV4dCkge1xyXG4gICAgICB0aGlzLnJlY29yZGluZ0ZpbGVTZXJ2aWNlLmZldGNoU3ByUmVjb3JkaW5nRmlsZShhdWRpb0NvbnRleHQsIHJmSWQpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAnQXVkaW8gZmlsZSBsb2FkZWQuJztcclxuICAgICAgICBsZXQgY2xpcCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRpbmdGaWxlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMucmVjb3JkaW5nRmlsZSkge1xyXG4gICAgICAgICAgbGV0IGFiID0gdGhpcy5yZWNvcmRpbmdGaWxlLmF1ZGlvQnVmZmVyO1xyXG4gICAgICAgICAgaWYgKGFiKSB7XHJcbiAgICAgICAgICAgIGNsaXAgPSBuZXcgQXVkaW9DbGlwKGFiKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBlc2Zmc3IgPSBudWxsO1xyXG4gICAgICAgICAgICBsZXQgZWVmZnNyID0gbnVsbDtcclxuICAgICAgICAgICAgbGV0IGVzciA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2xpcC5idWZmZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGVzciA9IGFiLnNhbXBsZVJhdGU7XHJcbiAgICAgICAgICAgICAgaWYgKGVzciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBlc2Zmc3IgPSBSZWNvcmRpbmdGaWxlVXRpbC5lZGl0U3RhcnRGcmFtZUZvclNhbXBsZVJhdGUodGhpcy5yZWNvcmRpbmdGaWxlLCBlc3IpO1xyXG4gICAgICAgICAgICAgICAgZWVmZnNyID0gUmVjb3JkaW5nRmlsZVV0aWwuZWRpdEVuZEZyYW1lRm9yU2FtcGxlUmF0ZSh0aGlzLnJlY29yZGluZ0ZpbGUsIGVzcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGxldCBzZWw6IFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgICAgICAgIGlmIChlc2Zmc3IgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVlZmZzciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNlbCA9IG5ldyBTZWxlY3Rpb24oYWIuc2FtcGxlUmF0ZSwgZXNmZnNyLCBlZWZmc3IpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGNoMCA9IGFiLmdldENoYW5uZWxEYXRhKDApO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgZnJhbWVMZW5ndGggPSBjaDAubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICBzZWwgPSBuZXcgU2VsZWN0aW9uKGVzciwgZXNmZnNyLCBmcmFtZUxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChlZWZmc3IgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgc2VsID0gbmV3IFNlbGVjdGlvbihlc3IsIDAsIGVlZmZzcik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNsaXAuc2VsZWN0aW9uID0gc2VsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdWRpb0NsaXAgPSBjbGlwXHJcbiAgICAgICAgdGhpcy5sb2FkZWRSZWNmaWxlKCk7XHJcblxyXG4gICAgICB9LCBlcnJvcjEgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gJ0Vycm9yIGxvYWRpbmcgYXVkaW8gZmlsZSEnO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBsb2FkZWRSZWNmaWxlKCkge1xyXG4gICAgaWYodGhpcy5yZWNvcmRpbmdGaWxlICYmICF0aGlzLnNlc3Npb25JZCkge1xyXG4gICAgICBsZXQgc0lkPXRoaXMucmVjb3JkaW5nRmlsZS5zZXNzaW9uXHJcbiAgICAgIGlmKCFzSWQpe1xyXG4gICAgICAgIHNJZD10aGlzLnNlc3Npb25JZEZyb21Sb3V0ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoc0lkKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkU2Vzc2lvbihzSWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVQb3MoKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQWN0aW9ucygpe1xyXG4gICAgbGV0IGl0ZW1DbnQ6bnVtYmVyfG51bGw9bnVsbDtcclxuICAgIGlmKHRoaXMuYXZhaWxSZWNGaWxlcykge1xyXG4gICAgICBpdGVtQ250ID0gdGhpcy5hdmFpbFJlY0ZpbGVzLmxlbmd0aDtcclxuICAgIH1cclxuICAgIHRoaXMuZmlyc3RBY3Rpb24uZGlzYWJsZWQ9KHRoaXMucG9zSW5MaXN0PT1udWxsIHx8IHRoaXMucG9zSW5MaXN0ID09IDApO1xyXG4gICAgdGhpcy5wcmV2QWN0aW9uLmRpc2FibGVkPSh0aGlzLnBvc0luTGlzdD09bnVsbCB8fCB0aGlzLnBvc0luTGlzdCA9PSAwKTtcclxuICAgIHRoaXMubmV4dEFjdGlvbi5kaXNhYmxlZD0odGhpcy5wb3NJbkxpc3Q9PW51bGwgfHwgaXRlbUNudD09bnVsbCB8fCB0aGlzLnBvc0luTGlzdCA+PSBpdGVtQ250IC0gMSk7XHJcbiAgICB0aGlzLmxhc3RBY3Rpb24uZGlzYWJsZWQ9KHRoaXMucG9zSW5MaXN0PT1udWxsIHx8IGl0ZW1DbnQ9PW51bGwgfHwgdGhpcy5wb3NJbkxpc3QgPj0gaXRlbUNudCAtIDEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkU2Vzc2lvbihzZXNzaW9uSWQ6IHN0cmluZ3wgbnVtYmVyKSB7XHJcbiAgICAvLyBsb2FkIHNlc3Npb24gYW5kIHJlY29yZGluZyBmaWxlIG1ldGEgZGF0YSBvbmx5IHdoZW4gb24gaW5pdCBhbmQgd2hlbiBzZXNzaW9uIGNoYW5nZXNcclxuICAgIGlmICg8c3RyaW5nPnNlc3Npb25JZCAhPSA8c3RyaW5nPnRoaXMuc2Vzc2lvbklkKSB7XHJcbiAgICAgIC8vIHRlbGwgVUkgdGhhdCB3ZSBhcmUgd29ya2luZy4uLlxyXG4gICAgICB0aGlzLm5hdmlJbmZvTG9hZGluZz10cnVlO1xyXG4gICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNlc3Npb25PYnNlcnZlcig8c3RyaW5nPnNlc3Npb25JZCkuc3Vic2NyaWJlKChzKSA9PiB7XHJcbiAgICAgICAgLy8gcmVjZWl2ZWQgc2Vzc2lvbiBkYXRhXHJcbiAgICAgICAgdGhpcy5zZXNzaW9uSWQgPSBzLnNlc3Npb25JZDtcclxuICAgICAgICAvLyBmZXRjaCByZWNvcmRpbmcgZmlsZSBtZXRhIGRhdGEgbGlzdFxyXG4gICAgICAgIHRoaXMucmVjb3JkaW5nU2VydmljZS5zcHJSZWNvcmRpbmdGaWxlTGlzdChzLnByb2plY3QsIHMuc2Vzc2lvbklkKS5zdWJzY3JpYmUoKHJmZHMpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXZhaWxSZWNGaWxlcyA9IG5ldyBBcnJheTxBcnJheTxTcHJSZWNvcmRpbmdGaWxlPj4oKTtcclxuICAgICAgICAgIC8vIGJ1aWxkIHN0cnVjdHVyZSBpbmRleGVkIGJ5IGl0ZW1jb2RlXHJcbiAgICAgICAgICBsZXQgaWNJZHggPSBuZXcgSXRlbWNvZGVJbmRleCgpO1xyXG4gICAgICAgICAgZm9yIChsZXQgcmZkaSA9IDA7IHJmZGkgPCByZmRzLmxlbmd0aDsgcmZkaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCByZmQgPSByZmRzW3JmZGldO1xyXG4gICAgICAgICAgICBpZiAocmZkLmRhdGUpIHtcclxuICAgICAgICAgICAgICAvLyBjb252ZXJ0IGRhdGUgc3RyaW5nIGZvciBmYXN0ZXIgc29ydGluZyBsYXRlclxyXG4gICAgICAgICAgICAgIGxldCByZmRkID0gbmV3IERhdGUocmZkLmRhdGUpO1xyXG4gICAgICAgICAgICAgIHJmZC5fZGF0ZUFzRGF0ZU9iaiA9IHJmZGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGljID0gcmZkLml0ZW1Db2RlO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFpYykge1xyXG4gICAgICAgICAgICAgIGxldCByID0gcmZkLnJlY29yZGluZztcclxuICAgICAgICAgICAgICBpZiAociAmJiByLml0ZW1jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICBpYyA9IHIuaXRlbWNvZGU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpYykge1xyXG4gICAgICAgICAgICAgIGxldCBleFJmc0ZvckljID0gaWNJZHhbaWNdO1xyXG4gICAgICAgICAgICAgIGlmIChleFJmc0ZvckljID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIGl0ZW1jb2RlIG5vdCB5ZXQgc3RvcmVkXHJcbiAgICAgICAgICAgICAgICBsZXQgYXJmZCA9IG5ldyBBcnJheTxTcHJSZWNvcmRpbmdGaWxlPigpO1xyXG4gICAgICAgICAgICAgICAgYXJmZC5wdXNoKHJmZCk7XHJcbiAgICAgICAgICAgICAgICBpY0lkeFtpY10gPSBhcmZkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdmFpbFJlY0ZpbGVzLnB1c2goYXJmZCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHJlYyBmaWxlIHdpdGggaXRlbWNvZGUgYWxyZWFkeSBleGlzdHMsIGFkZCAocHVzaCkgdGhpcyB2ZXJzaW9uIC4uLlxyXG4gICAgICAgICAgICAgICAgZXhSZnNGb3JJYy5wdXNoKHJmZCk7XHJcbiAgICAgICAgICAgICAgICAvLyAuLiBhbmQgc29ydCBsYXRlc3QgdmVyc2lvbiAoaGlnaGVzdCB2ZXJzaW9uIG51bWJlcikgdG8gbG93ZXN0IGluZGV4XHJcbiAgICAgICAgICAgICAgICBleFJmc0ZvckljLnNvcnQoKHJmZDEsIHJmZDIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJmZDIudmVyc2lvbiAtIHJmZDEudmVyc2lvbjtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBsZXQgYXJmZCA9IG5ldyBBcnJheTxTcHJSZWNvcmRpbmdGaWxlPigpO1xyXG4gICAgICAgICAgICAgIGFyZmQucHVzaChyZmQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuYXZhaWxSZWNGaWxlcy5wdXNoKGFyZmQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBoYXZlIHVuc29ydGVkIGl0ZW1jb2RlIGluZGV4ZWQgcmVjb3JkaW5nIGZpbGVzIGhlcmVcclxuICAgICAgICAgIC8vIHNvcnQgdGhlbSBvcmRlcmVkIGJ5IGRhdGUgb2YgbGF0ZXN0IHZlcnNpb24gYXNjZW5kaW5nXHJcbiAgICAgICAgICB0aGlzLmF2YWlsUmVjRmlsZXMuc29ydCgocmZzMSwgcmZzMikgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZDEgPSByZnMyWzBdLl9kYXRlQXNEYXRlT2JqO1xyXG4gICAgICAgICAgICBsZXQgZDIgPSByZnMxWzBdLl9kYXRlQXNEYXRlT2JqO1xyXG4gICAgICAgICAgICBpZiAoZDEgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGlmIChkMiA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gU29ydCBlbnRyaWVzIHdob3NlIGRhdGVzIGFyZSBub3Qgc2V0IHRvIHRoZSBlbmRcclxuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKGQyID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIC8vIFNvcnQgZW50cmllcyB3aG9zZSBkYXRlcyBhcmUgbm90IHNldCB0byB0aGUgZW5kXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gQ29tcGFyZSBkYXRlIGJ5IHRpbWUgaW4gbWlsbGlzZWNvbmRzIHZhbHVlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZDIuZ2V0VGltZSgpIC0gZDEuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVBvcygpXHJcbiAgICAgICAgICB0aGlzLm5hdmlJbmZvTG9hZGluZz1mYWxzZTtcclxuICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export const VERSION = '2.23.0';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzIuMjMuMCciXX0=
1
+ export const VERSION = '2.23.1';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByLm1vZHVsZS52ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BlZWNocmVjb3JkZXJuZy9zcmMvbGliL3Nwci5tb2R1bGUudmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT049JzIuMjMuMSciXX0=
@@ -10218,7 +10218,7 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
10218
10218
  let cRfs = this.availRecFiles[this.posInList];
10219
10219
  let availVersionCnt = cRfs.length;
10220
10220
  for (let cRf of cRfs) {
10221
- if (cRf instanceof SprRecordingFile) {
10221
+ if (cRf.version != null) {
10222
10222
  if (cRf.version === version) {
10223
10223
  toRfId = cRf.recordingFileId;
10224
10224
  break;
@@ -10245,11 +10245,14 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
10245
10245
  positionInList() {
10246
10246
  if (this.availRecFiles && this.recordingFile) {
10247
10247
  let cic = this.recordingFile.itemCode;
10248
+ if (!cic && this.recordingFile.recording && this.recordingFile.recording.itemcode) {
10249
+ cic = this.recordingFile.recording.itemcode;
10250
+ }
10248
10251
  if (cic) {
10249
10252
  let itemCnt = this.availRecFiles.length;
10250
10253
  for (let rfdi = 0; rfdi < itemCnt; rfdi++) {
10251
10254
  let arRf = this.availRecFiles[rfdi][0];
10252
- if (arRf instanceof SprRecordingFile) {
10255
+ if (arRf.recording) {
10253
10256
  let ar = arRf.recording;
10254
10257
  if (cic === ar.itemcode) {
10255
10258
  return rfdi;
@@ -10270,6 +10273,7 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
10270
10273
  return null;
10271
10274
  }
10272
10275
  updatePos() {
10276
+ var _a;
10273
10277
  this.posInList = this.positionInList();
10274
10278
  this.toVersionAction.disabled = true;
10275
10279
  if (this.availRecFiles) {
@@ -10279,7 +10283,7 @@ class RecordingFileViewComponent extends AudioDisplayPlayer {
10279
10283
  if (arfs) {
10280
10284
  this.versions = new Array();
10281
10285
  for (let arf of arfs) {
10282
- if (arf instanceof SprRecordingFile) {
10286
+ if ((_a = arf.recording) === null || _a === void 0 ? void 0 : _a.itemcode) {
10283
10287
  this.versions.push(arf.version);
10284
10288
  }
10285
10289
  }
@@ -11804,7 +11808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImpor
11804
11808
  }]
11805
11809
  }] });
11806
11810
 
11807
- const VERSION = '2.23.0';
11811
+ const VERSION = '2.23.1';
11808
11812
 
11809
11813
  /*
11810
11814
  * Public API Surface of speechrecorderng