@energycap/components 0.39.11-ECAP-24439-Bill-Capture-Tour.20240321-1525 → 0.39.11-ECAP-24439-Bill-Capture-Tour.20240325-1440

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.
@@ -45,13 +45,17 @@ export class TourComponent {
45
45
  }
46
46
  }
47
47
  else if (event.tourAction === 'append') {
48
+ let visibleTours = event.tours;
49
+ // If this was triggered via auto start then we need to remove any tours that have been completed
50
+ if (event.isAutoStart) {
51
+ visibleTours = this.removeCompletedTours(visibleTours);
52
+ }
53
+ // If there is already a current tour, then we need to append the new tours to the current tour
48
54
  if (this.currentTour) {
49
- if (event.isAutoStart) {
50
- this.tours = this.removeCompletedTours(event.tours);
51
- }
52
- this.tours = this.tours.concat(event.tours);
55
+ this.tours = this.tours.concat(visibleTours);
53
56
  }
54
57
  else {
58
+ // There is not a current tour, so treat this as a start event
55
59
  await this.setupTourComponent(event);
56
60
  }
57
61
  }
@@ -391,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
391
395
  type: ViewChild,
392
396
  args: ['tourTooltip']
393
397
  }] } });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDaEIsUUFBa0I7UUFOcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS3ZDLHFFQUFxRTtRQUM3RCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDRIQUE0SDtRQUNwSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FB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YW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvdXIsIFRvdXJBbmNob3IsIFRvdXJDYWNoZUVudHJ5LCBUb3VyRXZlbnQsIFRvdXJTdGVwIH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuaW1wb3J0IHsgVG91clNlcnZpY2UgfSBmcm9tICcuL3RvdXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvdXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBDdXJyZW50IHRvdXIgc3RlcCBiZWluZyBzaG93biB0byB0aGUgdXNlci4gVGhlIGN1c3RvbSBjb250ZW50IGluIHRoZSB0ZW1wbGF0ZSBpcyBib3VuZCB0byBwcm9wZXJ0aWVzIG9uIHRoaXMgYW5kIHRoZXJlZm9yIG5lZWRzIHRvIGJlXHJcbiAgKiAgaXRzIG93biBwcm9wZXJ0eS4gVGhlIGV4aXRTdGVwIGlzIGEgdG91ciBzdGVwIGFuZCB0aGlzIHdpbGwgaG9sZCB0aGF0IHN0ZXAgYXQgdGhlIGVuZCBvZiB0aGUgdG91ci5cclxuICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50VG91clN0ZXA/OiBUb3VyU3RlcDtcclxuXHJcbiAgLyoqIFVzZWQgdG8gdGVsbCB0aGUgVUkgdGhhdCB0aGUgc3RlcCBiZWluZyBzaG93biBpcyBhbiBleGl0IHN0ZXAuIFRoaXMgd2lsbCBjaGFuZ2UgdGhlXHJcbiAgICogIGxpbmsgdGV4dCBhbmQgdGhlIGFjdGlvbiB3aGVuIGNsaWNrZWRcclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0RvbmVCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgdG9vbHRpcCB1c2VkIGZvciB0aGUgdG91ciBzdGVwcyAqL1xyXG4gIHB1YmxpYyB0b29sdGlwPzogVG9vbHRpcENvbXBvbmVudDtcclxuXHJcbiAgLyoqIEFycmF5IG9mIHRvdXJzIHByb3ZpZGVkIHdoZW4gdGhlIHN0YXJ0IHRvdXIgZXZlbnQgd2FzIGRldGVjdGVkICovXHJcbiAgcHJpdmF0ZSB0b3VyczogVG91cltdID0gW107XHJcblxyXG4gIC8vIENvdXBsZSBpbmRleGVzIGZvciB0aGUgY3VycmVudCB0b3VyL3N0ZXAgc3RvcmVkIGZvciBlYXNpZXIgcmVmZXJlbmNlIHdoZW4ga25vd2luZyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgc3RlcHMvdG91cnNcclxuICBwcml2YXRlIGN1cnJlbnRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgY3VycmVudFRvdXJJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gIC8qKiBVc2VkIHRvIGtub3cgaWYgdGhlIHJlc3RvcmUgc3RlcCBzaG91bGQgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHRvdXIgaXMgZGlzbWlzc2VkICovXHJcbiAgcHJpdmF0ZSBpc0F1dG9TdGFydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RvdXJUb29sdGlwJykgcHVibGljIGN1c3RvbSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b3VyU2VydmljZTogVG91clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG91clNlcnZpY2UuZXZlbnRzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcclxuICAgICkuc3Vic2NyaWJlKGFzeW5jIGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdzdGFydCcpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQudG91ckFjdGlvbiA9PT0gJ2VuZCcpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdhcHBlbmQnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXIpIHtcclxuICAgICAgICAgIGlmIChldmVudC5pc0F1dG9TdGFydCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvdXJzID0gdGhpcy5yZW1vdmVDb21wbGV0ZWRUb3VycyhldmVudC50b3Vycyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRvdXJzID0gdGhpcy50b3Vycy5jb25jYXQoZXZlbnQudG91cnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgcmVzdG9yZSBzdGVwIGhhcyBiZWVuIGNvbXBsZXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBkb25lKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodGhpcy5jdXJyZW50VG91cik7XHJcbiAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgdG91ciBiZWdpbnMgYW5kIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG5leHQgb24gdGhlIGN1cnJlbnQgdG91ciBzdGVwLiBJdCB3aWxsIGhhbmRsZSBhbnkgYWZ0ZXIgY2xpY2sgYWN0aW9ucyBhbmQgdGhlblxyXG4gICAqIGZpbmQgdGhlIG5leHQgc3RlcCBhbmQgcHJlc2VudCBpdCB0byB0aGUgdXNlciBhbmQgdHJhbnNpdGlvbiB0byBhIHJlc3RvcmUgc3RlcCBvciBuZXcgdG91ciBpZiBuZWVkZWQuXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIHNob3dOZXh0U3RlcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgc3RlcCwgbWFrZSBzdXJlIHRoZSBjdXJyZW50IHN0ZXAgZG9lcyBub3QgaGF2ZSBhIGNsaWNrIGFmdGVyIGRlZmluZWQuIFRoaXMgY291bGQgYmUgaGlkaW5nIGEgbWVudVxyXG4gICAgLy8gdGhhdCB3YXMgb3BlbmVkIGZvciB0aGUgc29vbiB0byBiZSBwcmV2aW91cyBzdGVwLlxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91cyB0b29sdGlwc1xyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgLy8gR2V0IG91ciBuZXh0IHN0ZXAgaW5kZXggdG8gZGlzcGxheSB0byB0aGUgdXNlclxyXG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlU3RlcEluZGV4KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudFN0ZXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgLy8gTm8gbW9yZSBzdGVwcyBmb3VuZCwgd2UgZWl0aGVyIG5lZWQgdG8gY2hlY2sgZm9yIHRoZSBleGl0IHN0ZXAgaWYgdGhpcyBpcyB0aGUgbGFzdCB0b3VyXHJcbiAgICAgIC8vIGluIHRoZSB0b3VycyBhcnJheSBvciBhZHZhbmNlIHRvIHRoZSBuZXh0IHRvdXJcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXJJbmRleCA9PT0gdGhpcy50b3Vycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFdyaXRlIHRoZSBjb21wbGV0aW9uIGtleSBmb3IgdGhlIGN1cnJlbnQgdG91ciBiZWZvcmUgd2UgbW92ZSB0byB0aGUgbmV4dFxyXG4gICAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRoaXMuY3VycmVudFRvdXIpO1xyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXgrKztcclxuICAgICAgICBhd2FpdCB0aGlzLnNob3dOZXh0VG91cigpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW3RoaXMuY3VycmVudFN0ZXBJbmRleF07XHJcblxyXG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIG91ciBjdXJyZW50IHN0ZXAgaW5kZXgsIHRha2UgY2FyZSBvZiBhbnkgY2xpY2sgYmVmb3JlIGVsZW1lbnRzIGJlZm9yZSBzaG93aW5nIHRoZVxyXG4gICAgICAvLyB0b29sdGlwLiBUaGlzIGNvdWxkIGJlIG9wZW5pbmcgYSBtZW51IHRvIGdldCB0aGUgdG9vbHRpcCBlbGVtZW50IHZpc2libGUuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgIC8vIENsaWNrIGJlZm9yZXMgYXJlIGRvbmUsIG5vdyBsZXQncyBzaG93IHRoZSB0b29sdGlwIGRlZmluZWQgaW4gdGhlIHRvdXIgc3RlcFxyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuc2hvd1N0ZXBUb29sdGlwLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXR1cFRvdXJDb21wb25lbnQoZXZlbnQ6IFRvdXJFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gRW5kIGFueSB0b3VycyB0aGF0IG1heSBoYXZlIGJlZW4gaW4gcHJvZ3Jlc3MgaWYgdGhlIHVzZXIga2lja3Mgb2ZmIGEgbmV3IG9uZVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXIpIHtcclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1N0YXJ0ID0gZXZlbnQuaXNBdXRvU3RhcnQ7XHJcblxyXG4gICAgaWYgKGV2ZW50LmlzQXV0b1N0YXJ0KSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSB0aGlzLnJlbW92ZUNvbXBsZXRlZFRvdXJzKGV2ZW50LnRvdXJzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSBldmVudC50b3VycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zaG93RG9uZUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gUHJpbWUgdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgdG91clxyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSAwO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5zaG93TmV4dFRvdXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGEgdG91ciBhbmQgZW1pdHMgYW4gZXZlbnQgdGhhdCBpdCB3YXMgc3RhcnRlZFxyXG4gICAqIEBwYXJhbSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzaG93TmV4dFRvdXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBUcmFjayBhIHRvdXIgc3RhcnRlZCBldmVudCBpZiB0aGUgY29uc3VtZXIgb2YgdGhlIGxpYnJhcnkgaGFzIHRlbGVtZXRyeSBjb25maWd1cmVkXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgnVG91clN0YXJ0ZWQnLCB7IHRvdXJJZDogdGhpcy5jdXJyZW50VG91ciEuaWQgfSk7XHJcblxyXG4gICAgbGV0IGNvbnRpbnVlVG91cjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBdXRvU3RhcnQgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4ID09PSAwICYmIHRoaXMuY3VycmVudFRvdXI/LmludHJvRGlhbG9nKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLmNvbnRlbnQhLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuc2l6ZSA/PyAnc21hbGwnLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuY29udGV4dCA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5vcHRpb25zID8/IHVuZGVmaW5lZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmICghcmVzdWx0LnNhdmUpIHtcclxuICAgICAgICBjb250aW51ZVRvdXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbnRpbnVlVG91cikge1xyXG4gICAgICB0aGlzLnNob3dOZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBlbmRUb3VyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gSGFuZGxlIGFueSBjbGljayBhZnRlcnMgZm9yIHRoZSBhY3RpdmUgc3RlcCBzaG93biBiZWZvcmUgc2h1dHRpbmcgaXQgZG93blxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRvdXJzID0gW107XHJcblxyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5cyBhIHRvb2x0aXAgZm9yIHRoZSBjdXJyZW50IHRvdXIgc3RlcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2hvd1N0ZXBUb29sdGlwKCkge1xyXG4gICAgLy8gVHJhY2sgYW4gZXZlbnQgaWYgdGhlIGNvbnN1bWVyIG9mIHRoZSBsaWJyYXJ5IGhhcyB0ZWxlbWV0cnkgY29uZmlndXJlZFxyXG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRyYWNrRXZlbnQoJ1RvdXJTdGVwQ2hhbmdlJywgeyB0b3VySWQ6IHRoaXMuY3VycmVudFRvdXIhLmlkLCB0b3VyU3RlcElkOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWQgfSk7XHJcblxyXG4gICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jdXJyZW50VG91clN0ZXAhLmFuY2hvciEuc2VsZWN0b3IpO1xyXG5cclxuICAgIGlmICh0b29sdGlwRWxlbWVudCkge1xyXG4gICAgICAvLyBEZWZhdWx0IHdpZHRoIGlmIG5vbmUgcHJvdmlkZWRcclxuICAgICAgbGV0IHN0ZXBXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkID0gNDMyO1xyXG5cclxuICAgICAgLy8gQ2hlY2sgdGhlIGN1cnJlbnQgdG91ciBzdGVwIHdpZHRoIGFuZCBkZWNpZGUgaWYgaXQgbmVlZHMgdG8gY2hhbmdlIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVcclxuICAgICAgLy8gYmFzZWQgb24gd2hldGhlciB0aGUgc3RlcCBkZWZpbmVkIGl0IG9yIG5vdFxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91clN0ZXA/LndpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgc3RlcFdpZHRoID0gdGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGg7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aCA9PT0gJ2F1dG8nKSB7XHJcbiAgICAgICAgICBzdGVwV2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zOiBUb29sdGlwT3B0aW9ucyA9IHtcclxuICAgICAgICBpZDogYCR7dGhpcy5jdXJyZW50VG91cj8uaWR9XyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfWAsXHJcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5jdXJyZW50VG91clN0ZXAhLnRleHQpLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUpIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIGN1c3RvbUNvbnRlbnQ6IHRoaXMuY3VzdG9tLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiB0cnVlLFxyXG4gICAgICAgIG1heFdpZHRoOiB0aGlzLmN1cnJlbnRUb3VyU3RlcD8ubWF4V2lkdGgsXHJcbiAgICAgICAgd2lkdGg6IHN0ZXBXaWR0aCxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1lYy1iYWNrZ3JvdW5kLWNvbG9yLXRvdXIpJyxcclxuICAgICAgICB0aXRsZUNvbG9yOiAndmFyKC0tZWMtY29sb3ItdG91ci10aXRsZSknXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNob3codG9vbHRpcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMuY3VycmVudFRvdXJTdGVwIS5hbmNob3I/LnBvc2l0aW9uLCBvcHRpb25zKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmZvY3VzT25OZXh0T3JEb25lQnV0dG9uLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgdG9vbHRpcHMgb25IaWRlIGV2ZW50IGVtaXR0ZXIgYW5kIHJlYWN0cyBpZiB0aGUgdXNlciBkaXNtaXNzZXMgdGhlIHRvb2x0aXBcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB0b29sdGlwU3Vic2NyaXB0aW9uID0gdGhpcy50b29sdGlwPy5vbkhpZGUucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICB0b29sdGlwU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAvLyBJZiB0aGlzIGlzIGRpc21pc3NlZCBkdXJpbmcgYW4gYXV0byBzdGFydCB0b3VyIHRoZW4gaGFuZGxlIHRoZSBleGl0IHN0ZXBcclxuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZG9uZSBidXR0b24gaXMgc2hvd24gYXMgd2VsbCwgaWYgdGhlIGRvbmUgaXMgc2hvd24gdGhlbiB3ZSdyZSBpbiB0aGUgZXhpdCBzdGVwXHJcbiAgICAgIC8vIGFuZCBkaXNtaXNzaW5nIHNob3VsZCBqdXN0IGVuZCB0aGUgdG91clxyXG4gICAgICBpZiAodGhpcy5pc0F1dG9TdGFydCAmJiAhdGhpcy5zaG93RG9uZUJ1dHRvbikge1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXhpdFN0ZXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBjdXJyZW50IHRvdXIgc3RlcHMgc3RhcnRpbmcgYWZ0ZXIgdGhlIGN1cnJlbnQgc3RlcCBpbmRleC4gSXQgd2lsbCB0cnkgdG8gZmluZCBhIHZpc2libGVcclxuICAgKiBzZWxlY3RvciBhbmQgaWYgc28gcmV0dXJuIHRoZSBpbmRleC5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dEF2YWlsYWJsZVN0ZXBJbmRleCgpOiBudW1iZXIge1xyXG4gICAgbGV0IG5leHRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIC8vIExvb2sgdGhyb3VnaCB0aGUgc3RlcHMgc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudCBpbmRleCBhbmQgZmluZCB0aGUgbmV4dCB0aGF0IGlzIGF2YWlhYmxlXHJcbiAgICAvLyBmb3IgdGhlIHVzZXIuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXggKyAxOyBpIDwgdGhpcy5jdXJyZW50VG91ciEuc3RlcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW2ldLmFuY2hvciAmJiB0aGlzLnN0ZXBFbGVtZW50Rm91bmQodGhpcy5jdXJyZW50VG91ciEuc3RlcHNbaV0uYW5jaG9yISkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0U3RlcEluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJ5IHRvIGZpbmQgdGhlIHRvdXIgc3RlcCBlbGVtZW50IHRvIGtub3cgaWYgaXQgaXMgdmlzaWJsZSBmb3IgdGhlIHVzZXIuIENoZWNrIGZvciB0aGUgY2xpY2tCZWZvcmUgZmlyc3QgaWYgZGVmaW5lZFxyXG4gICAqIEBwYXJhbSBhbmNob3JcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RlcEVsZW1lbnRGb3VuZChhbmNob3I6IFRvdXJBbmNob3IpOiBib29sZWFuIHtcclxuICAgIGlmIChhbmNob3IuY2xpY2tCZWZvcmUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3IuY2xpY2tCZWZvcmUpICE9PSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3Iuc2VsZWN0b3IpICE9PSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29tZSB0b3VyIHN0ZXBzIG1heSBoYXZlIGEgY2xpY2sgYWZ0ZXIgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQWZ0ZXIoKTogdm9pZCB7XHJcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLmN1cnJlbnRUb3VyU3RlcD8uYW5jaG9yPy5jbGlja0FmdGVyO1xyXG4gICAgaWYgKHNlbGVjdG9yKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb21lIHRvdXIgc3RlcHMgbWF5IGhhdmUgYSBjbGljayBiZWZvcmUgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQmVmb3JlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwPy5hbmNob3I/LmNsaWNrQmVmb3JlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZCh0aGlzLmN1cnJlbnRUb3VyU3RlcC5hbmNob3I/LmNsaWNrQmVmb3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQ2hlY2tzIGZvciBhbiBleGl0IHN0ZXAgb24gdGhlIGN1cnJlbnQgdG91ciBhbmQgaWYgZm91bmQgZGlzcGxheXMgdGhlIHN0ZXBcclxuICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXhpdFN0ZXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91cj8uZXhpdFN0ZXApIHtcclxuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgICB0aGlzLnNob3dEb25lQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB0aGlzLmN1cnJlbnRUb3VyPy5leGl0U3RlcDtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLnNob3dTdGVwVG9vbHRpcC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBmaW5kIHRoZSBlbGVtZW50IHdpdGggdGhlIHNlbGVjdG9yIHByb3ZpZGVkIGFuZCBpZiBzbyBjbGljayBpdC4gVGhpcyBpcyBob3cgdG91ciBzdGVwcyB3aWxsIG9wZW4vY2xvc2UgbWVudXMgdG9cclxuICAgKiBnaXZlIGEgdG91ciB0byB0aGUgdXNlclxyXG4gICAqIEBwYXJhbSBzZWxlY3RvclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoc2VsZWN0b3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAoZWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhdXRvIHN0YXJ0aW5nIHRvdXJzIHdlIHdpbGwgd2FudCB0byByZW1vdmUgYW55IHRoYXQgaGF2ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXkgd3JpdHRlbiBhcyBjb21wbGV0ZWQgc29cclxuICAgKiB0aGV5IGFyZSBub3QgcHJlc2VudGVkIHRvIHRoZSB1c2VyIGFnYWluLlxyXG4gICAqIEBwYXJhbSB0b3Vyc1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVDb21wbGV0ZWRUb3Vycyh0b3VyczogVG91cltdKTogVG91cltdIHtcclxuICAgIHJldHVybiB0b3Vycy5maWx0ZXIodG91ciA9PiB7XHJcbiAgICAgIGxldCBjYWNoZVZhbHVlID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0SXRlbTxUb3VyQ2FjaGVFbnRyeT4odGhpcy5tYWtlQ2FjaGVLZXkodG91cikpO1xyXG4gICAgICBpZiAoY2FjaGVWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiAhY2FjaGVWYWx1ZS5jb21wbGV0ZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIGEga2V5IHRvIGxvY2FsIHN0b3JhZ2Ugc28gdGhlIHRvdXIgd2lsbCBub3QgYmUgc2hvd24gYWdhaW4gYXV0b21hdGljYWxseVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd3JpdGVDb21wbGV0aW9uS2V5KHRvdXI6IFRvdXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICh0b3VyKSB7XHJcbiAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldEl0ZW0odGhpcy5tYWtlQ2FjaGVLZXkodG91ciksIDxUb3VyQ2FjaGVFbnRyeT57IGNvbXBsZXRlZDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZGlzbWlzc2luZyBhIHRvdXIgb3Igb25lIGJlaW5nIGRpc21pc3NlZCB2aWEgYSBuYXZpZ2F0aW9uIGV2ZW50LCBldGMgd2Ugd2lsbCB3YW50IHRvIG1hcmtcclxuICAgKiBldmVyeSB0b3VyIGluIHRoZSBhcnJheSBhcyBjb21wbGV0ZWQgc28gaXQgZG9lc24ndCByZXN1cmZhY2UgdW5sZXNzIHRoZSB1c2VyIHJlcXVlc3RzIHRoZSB0b3VyLlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBsb29wIG92ZXIgYWxsIGFuZCB3cml0ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXlcclxuICAgKi9cclxuICBwcml2YXRlIHdyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3Vycy5mb3JFYWNoKHRvdXIgPT4ge1xyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0b3VyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUga2V5IHVzZWQgdG8gc2V0L2dldCB0aGUgY29tcGxldGlvbiBzdGF0dXMgb2YgYSB0b3VyXHJcbiAgICogQHBhcmFtIHRvdXJcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFrZUNhY2hlS2V5KHRvdXI6IFRvdXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudG91clNlcnZpY2UuZ2V0Q2FjaGVLZXkodG91cik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgdG9vbHRpcCBmcm9tIHRoZSB2aWV3LCB1c2VkIHdoZW4gc3dpdGNoaW5nIHRvdXIgc3RlcHMgYW5kIGNsb3NpbmcgYSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b29sdGlwPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0b3VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IGluZGV4XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgY3VycmVudFRvdXIoKTogVG91ciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91ckluZGV4ID4gLTEgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4IDwgdGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG91cnNbdGhpcy5jdXJyZW50VG91ckluZGV4XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgY2xpY2sgYmVmb3JlL2FmdGVyIGFuZCBzaG93IHRvb2x0aXAgZnVuY3Rpb25zIG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBzZXRUaW1lb3V0IGZvciB0aGUgVUlcclxuICAgKiB0byBvcGVyYXRlIGNvcnJlY3RseSBidXQgc2V0VGltZW91dCBpcyBhbiBhY3Rpb24gd2UgY2Fubm90IGF3YWl0IHNvIHdlJ3JlIHdyYXBwaW5nIGl0IGluIGEgcHJvbWlzZSB0byByZXR1cm5cclxuICAgKiBzbyB0aGUgZnVuY3Rpb24gY2FsbHMgY2FuIGF3YWl0IHRoZSBhY3Rpb25cclxuICAgKiBAcGFyYW0gZm5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgd2FpdEZvclRpbWVvdXQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgZm4oKTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBcIm5leHRcIiBvciBcImRvbmVcIiBidXR0b24gYW5kIGZvY3VzIG9uIGl0LlxyXG4gICAqXHJcbiAgICogVGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCBzbyBpZiB3ZSBjYW5ub3QgZmluZCB0aGUgbmV4dCBidXR0b25cclxuICAgKiB3ZSBsb29rIGZvciB0aGUgZG9uZSBidXR0b24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uTmV4dE9yRG9uZUJ1dHRvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9uZXh0QnV0dG9uYCkpIHtcclxuICAgICAgdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9kb25lQnV0dG9uYClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgYW4gZWxlbWVudCB3aXRoIGdpdmVuIHNlbGVjdG9yIGFuZCBmb2N1cyBvbiBpdC5cclxuICAgKiBSZXR1cm4gZmFsc2UgaWYgZWxlbWVudCBub3QgZm91bmQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uRWxlbWVudChzZWxlY3Rvcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICN0b3VyVG9vbHRpcD5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/Lm1lZGlhXCJcclxuICAgICAgICAgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPGltZyBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfbWVkaWEnfX1cIlxyXG4gICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7XCJcclxuICAgICAgICAgICAgIHNyYz1cInt7Y3VycmVudFRvdXJTdGVwPy5tZWRpYX19XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb250LWNvbG9yLXByaW1hcnktbGlnaHQgcHgtMyBtYi0zXCJcclxuICAgICAgICAgW2lubmVySHRtbF09XCJjdXJyZW50VG91clN0ZXA/LnRleHQgfCB0cmFuc2xhdGVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/LmhlbHBMaW5rXCIgaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX2hlbHBMaW5rJ319XCIgY2xhc3M9XCJkLWJsb2NrIG1iLTMgcHgtM1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaGVscExpbmt9fVwiIHRyYW5zbGF0ZT5MZWFybk1vcmVfU0M8L2E+XHJcbiAgICA8Zm9vdGVyIGNsYXNzPVwicHgtMyBtdC0zIGQtZmxleFwiPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX25leHRCdXR0b24nfX1cIiAqbmdJZj1cIiFzaG93RG9uZUJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byB0b3VyQWN0aW9uXCIgZWNMaW5rQnV0dG9uIChjbGljayk9XCJzaG93TmV4dFN0ZXAoKVwiIHRyYW5zbGF0ZT5OZXh0X1RDPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfZG9uZUJ1dHRvbid9fVwiICpuZ0lmPVwic2hvd0RvbmVCdXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gdG91ckFjdGlvblwiIGVjTGlua0J1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCIgdHJhbnNsYXRlPkRvbmVfVEM8L2J1dHRvbj5cclxuICAgIDwvZm9vdGVyPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
398
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b3VyL3RvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBZTNDLE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUNVLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxZQUEwQixFQUMxQixhQUE0QixFQUM1QixnQkFBa0MsRUFDaEIsUUFBa0I7UUFOcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBN0I5Qzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS3ZDLHFFQUFxRTtRQUM3RCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCLDRIQUE0SDtRQUNwSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FB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QyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucyB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvdXIsIFRvdXJBbmNob3IsIFRvdXJDYWNoZUVudHJ5LCBUb3VyRXZlbnQsIFRvdXJTdGVwIH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuaW1wb3J0IHsgVG91clNlcnZpY2UgfSBmcm9tICcuL3RvdXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvdXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b3VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90b3VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBDdXJyZW50IHRvdXIgc3RlcCBiZWluZyBzaG93biB0byB0aGUgdXNlci4gVGhlIGN1c3RvbSBjb250ZW50IGluIHRoZSB0ZW1wbGF0ZSBpcyBib3VuZCB0byBwcm9wZXJ0aWVzIG9uIHRoaXMgYW5kIHRoZXJlZm9yIG5lZWRzIHRvIGJlXHJcbiAgKiAgaXRzIG93biBwcm9wZXJ0eS4gVGhlIGV4aXRTdGVwIGlzIGEgdG91ciBzdGVwIGFuZCB0aGlzIHdpbGwgaG9sZCB0aGF0IHN0ZXAgYXQgdGhlIGVuZCBvZiB0aGUgdG91ci5cclxuICAqL1xyXG4gIHB1YmxpYyBjdXJyZW50VG91clN0ZXA/OiBUb3VyU3RlcDtcclxuXHJcbiAgLyoqIFVzZWQgdG8gdGVsbCB0aGUgVUkgdGhhdCB0aGUgc3RlcCBiZWluZyBzaG93biBpcyBhbiBleGl0IHN0ZXAuIFRoaXMgd2lsbCBjaGFuZ2UgdGhlXHJcbiAgICogIGxpbmsgdGV4dCBhbmQgdGhlIGFjdGlvbiB3aGVuIGNsaWNrZWRcclxuICAgKi9cclxuICBwdWJsaWMgc2hvd0RvbmVCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgdG9vbHRpcCB1c2VkIGZvciB0aGUgdG91ciBzdGVwcyAqL1xyXG4gIHB1YmxpYyB0b29sdGlwPzogVG9vbHRpcENvbXBvbmVudDtcclxuXHJcbiAgLyoqIEFycmF5IG9mIHRvdXJzIHByb3ZpZGVkIHdoZW4gdGhlIHN0YXJ0IHRvdXIgZXZlbnQgd2FzIGRldGVjdGVkICovXHJcbiAgcHJpdmF0ZSB0b3VyczogVG91cltdID0gW107XHJcblxyXG4gIC8vIENvdXBsZSBpbmRleGVzIGZvciB0aGUgY3VycmVudCB0b3VyL3N0ZXAgc3RvcmVkIGZvciBlYXNpZXIgcmVmZXJlbmNlIHdoZW4ga25vd2luZyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgc3RlcHMvdG91cnNcclxuICBwcml2YXRlIGN1cnJlbnRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHByaXZhdGUgY3VycmVudFRvdXJJbmRleDogbnVtYmVyID0gLTE7XHJcblxyXG4gIC8qKiBVc2VkIHRvIGtub3cgaWYgdGhlIHJlc3RvcmUgc3RlcCBzaG91bGQgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlIHRvdXIgaXMgZGlzbWlzc2VkICovXHJcbiAgcHJpdmF0ZSBpc0F1dG9TdGFydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RvdXJUb29sdGlwJykgcHVibGljIGN1c3RvbSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b3VyU2VydmljZTogVG91clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG91clNlcnZpY2UuZXZlbnRzLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcclxuICAgICkuc3Vic2NyaWJlKGFzeW5jIGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdzdGFydCcpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQudG91ckFjdGlvbiA9PT0gJ2VuZCcpIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5lbmRUb3VyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LnRvdXJBY3Rpb24gPT09ICdhcHBlbmQnKSB7XHJcbiAgICAgICAgbGV0IHZpc2libGVUb3VyczogVG91cltdID0gZXZlbnQudG91cnM7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gSWYgdGhpcyB3YXMgdHJpZ2dlcmVkIHZpYSBhdXRvIHN0YXJ0IHRoZW4gd2UgbmVlZCB0byByZW1vdmUgYW55IHRvdXJzIHRoYXQgaGF2ZSBiZWVuIGNvbXBsZXRlZFxyXG4gICAgICAgIGlmIChldmVudC5pc0F1dG9TdGFydCkge1xyXG4gICAgICAgICAgdmlzaWJsZVRvdXJzID0gdGhpcy5yZW1vdmVDb21wbGV0ZWRUb3Vycyh2aXNpYmxlVG91cnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIGN1cnJlbnQgdG91ciwgdGhlbiB3ZSBuZWVkIHRvIGFwcGVuZCB0aGUgbmV3IHRvdXJzIHRvIHRoZSBjdXJyZW50IHRvdXJcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50VG91cikge1xyXG4gICAgICAgICAgdGhpcy50b3VycyA9IHRoaXMudG91cnMuY29uY2F0KHZpc2libGVUb3Vycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vdCBhIGN1cnJlbnQgdG91ciwgc28gdHJlYXQgdGhpcyBhcyBhIHN0YXJ0IGV2ZW50XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldHVwVG91ckNvbXBvbmVudChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgcmVzdG9yZSBzdGVwIGhhcyBiZWVuIGNvbXBsZXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBkb25lKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXkodGhpcy5jdXJyZW50VG91cik7XHJcbiAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGEgdG91ciBiZWdpbnMgYW5kIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG5leHQgb24gdGhlIGN1cnJlbnQgdG91ciBzdGVwLiBJdCB3aWxsIGhhbmRsZSBhbnkgYWZ0ZXIgY2xpY2sgYWN0aW9ucyBhbmQgdGhlblxyXG4gICAqIGZpbmQgdGhlIG5leHQgc3RlcCBhbmQgcHJlc2VudCBpdCB0byB0aGUgdXNlciBhbmQgdHJhbnNpdGlvbiB0byBhIHJlc3RvcmUgc3RlcCBvciBuZXcgdG91ciBpZiBuZWVkZWQuXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIHNob3dOZXh0U3RlcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIEJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgc3RlcCwgbWFrZSBzdXJlIHRoZSBjdXJyZW50IHN0ZXAgZG9lcyBub3QgaGF2ZSBhIGNsaWNrIGFmdGVyIGRlZmluZWQuIFRoaXMgY291bGQgYmUgaGlkaW5nIGEgbWVudVxyXG4gICAgLy8gdGhhdCB3YXMgb3BlbmVkIGZvciB0aGUgc29vbiB0byBiZSBwcmV2aW91cyBzdGVwLlxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgLy8gUmVtb3ZlIGFueSBwcmV2aW91cyB0b29sdGlwc1xyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgLy8gR2V0IG91ciBuZXh0IHN0ZXAgaW5kZXggdG8gZGlzcGxheSB0byB0aGUgdXNlclxyXG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gdGhpcy5nZXROZXh0QXZhaWxhYmxlU3RlcEluZGV4KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudFN0ZXBJbmRleCA9PT0gLTEpIHtcclxuICAgICAgLy8gTm8gbW9yZSBzdGVwcyBmb3VuZCwgd2UgZWl0aGVyIG5lZWQgdG8gY2hlY2sgZm9yIHRoZSBleGl0IHN0ZXAgaWYgdGhpcyBpcyB0aGUgbGFzdCB0b3VyXHJcbiAgICAgIC8vIGluIHRoZSB0b3VycyBhcnJheSBvciBhZHZhbmNlIHRvIHRoZSBuZXh0IHRvdXJcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXJJbmRleCA9PT0gdGhpcy50b3Vycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFdyaXRlIHRoZSBjb21wbGV0aW9uIGtleSBmb3IgdGhlIGN1cnJlbnQgdG91ciBiZWZvcmUgd2UgbW92ZSB0byB0aGUgbmV4dFxyXG4gICAgICAgIHRoaXMud3JpdGVDb21wbGV0aW9uS2V5KHRoaXMuY3VycmVudFRvdXIpO1xyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXgrKztcclxuICAgICAgICBhd2FpdCB0aGlzLnNob3dOZXh0VG91cigpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VyU3RlcCA9IHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW3RoaXMuY3VycmVudFN0ZXBJbmRleF07XHJcblxyXG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIG91ciBjdXJyZW50IHN0ZXAgaW5kZXgsIHRha2UgY2FyZSBvZiBhbnkgY2xpY2sgYmVmb3JlIGVsZW1lbnRzIGJlZm9yZSBzaG93aW5nIHRoZVxyXG4gICAgICAvLyB0b29sdGlwLiBUaGlzIGNvdWxkIGJlIG9wZW5pbmcgYSBtZW51IHRvIGdldCB0aGUgdG9vbHRpcCBlbGVtZW50IHZpc2libGUuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgIC8vIENsaWNrIGJlZm9yZXMgYXJlIGRvbmUsIG5vdyBsZXQncyBzaG93IHRoZSB0b29sdGlwIGRlZmluZWQgaW4gdGhlIHRvdXIgc3RlcFxyXG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JUaW1lb3V0KHRoaXMuc2hvd1N0ZXBUb29sdGlwLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXR1cFRvdXJDb21wb25lbnQoZXZlbnQ6IFRvdXJFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gRW5kIGFueSB0b3VycyB0aGF0IG1heSBoYXZlIGJlZW4gaW4gcHJvZ3Jlc3MgaWYgdGhlIHVzZXIga2lja3Mgb2ZmIGEgbmV3IG9uZVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXIpIHtcclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzQXV0b1N0YXJ0ID0gZXZlbnQuaXNBdXRvU3RhcnQ7XHJcblxyXG4gICAgaWYgKGV2ZW50LmlzQXV0b1N0YXJ0KSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSB0aGlzLnJlbW92ZUNvbXBsZXRlZFRvdXJzKGV2ZW50LnRvdXJzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG91cnMgPSBldmVudC50b3VycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zaG93RG9uZUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gUHJpbWUgdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgdG91clxyXG4gICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSAwO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5zaG93TmV4dFRvdXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIGEgdG91ciBhbmQgZW1pdHMgYW4gZXZlbnQgdGhhdCBpdCB3YXMgc3RhcnRlZFxyXG4gICAqIEBwYXJhbSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhc3luYyBzaG93TmV4dFRvdXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBUcmFjayBhIHRvdXIgc3RhcnRlZCBldmVudCBpZiB0aGUgY29uc3VtZXIgb2YgdGhlIGxpYnJhcnkgaGFzIHRlbGVtZXRyeSBjb25maWd1cmVkXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudCgnVG91clN0YXJ0ZWQnLCB7IHRvdXJJZDogdGhpcy5jdXJyZW50VG91ciEuaWQgfSk7XHJcblxyXG4gICAgbGV0IGNvbnRpbnVlVG91cjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNBdXRvU3RhcnQgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4ID09PSAwICYmIHRoaXMuY3VycmVudFRvdXI/LmludHJvRGlhbG9nKSB7XHJcbiAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VyLmludHJvRGlhbG9nLmNvbnRlbnQhLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuc2l6ZSA/PyAnc21hbGwnLFxyXG4gICAgICAgIHRoaXMuY3VycmVudFRvdXIuaW50cm9EaWFsb2cuY29udGV4dCA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VG91ci5pbnRyb0RpYWxvZy5vcHRpb25zID8/IHVuZGVmaW5lZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgIGlmICghcmVzdWx0LnNhdmUpIHtcclxuICAgICAgICBjb250aW51ZVRvdXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5oYW5kbGVFeGl0U3RlcCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbnRpbnVlVG91cikge1xyXG4gICAgICB0aGlzLnNob3dOZXh0U3RlcCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBlbmRUb3VyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gSGFuZGxlIGFueSBjbGljayBhZnRlcnMgZm9yIHRoZSBhY3RpdmUgc3RlcCBzaG93biBiZWZvcmUgc2h1dHRpbmcgaXQgZG93blxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmhhbmRsZUNsaWNrQWZ0ZXIuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRvdXJzID0gW107XHJcblxyXG4gICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5cyBhIHRvb2x0aXAgZm9yIHRoZSBjdXJyZW50IHRvdXIgc3RlcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgc2hvd1N0ZXBUb29sdGlwKCkge1xyXG4gICAgLy8gVHJhY2sgYW4gZXZlbnQgaWYgdGhlIGNvbnN1bWVyIG9mIHRoZSBsaWJyYXJ5IGhhcyB0ZWxlbWV0cnkgY29uZmlndXJlZFxyXG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRyYWNrRXZlbnQoJ1RvdXJTdGVwQ2hhbmdlJywgeyB0b3VySWQ6IHRoaXMuY3VycmVudFRvdXIhLmlkLCB0b3VyU3RlcElkOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEuaWQgfSk7XHJcblxyXG4gICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jdXJyZW50VG91clN0ZXAhLmFuY2hvciEuc2VsZWN0b3IpO1xyXG5cclxuICAgIGlmICh0b29sdGlwRWxlbWVudCkge1xyXG4gICAgICAvLyBEZWZhdWx0IHdpZHRoIGlmIG5vbmUgcHJvdmlkZWRcclxuICAgICAgbGV0IHN0ZXBXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkID0gNDMyO1xyXG5cclxuICAgICAgLy8gQ2hlY2sgdGhlIGN1cnJlbnQgdG91ciBzdGVwIHdpZHRoIGFuZCBkZWNpZGUgaWYgaXQgbmVlZHMgdG8gY2hhbmdlIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVcclxuICAgICAgLy8gYmFzZWQgb24gd2hldGhlciB0aGUgc3RlcCBkZWZpbmVkIGl0IG9yIG5vdFxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50VG91clN0ZXA/LndpZHRoICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VycmVudFRvdXJTdGVwLndpZHRoID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgc3RlcFdpZHRoID0gdGhpcy5jdXJyZW50VG91clN0ZXAud2lkdGg7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRUb3VyU3RlcC53aWR0aCA9PT0gJ2F1dG8nKSB7XHJcbiAgICAgICAgICBzdGVwV2lkdGggPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBvcHRpb25zOiBUb29sdGlwT3B0aW9ucyA9IHtcclxuICAgICAgICBpZDogYCR7dGhpcy5jdXJyZW50VG91cj8uaWR9XyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfWAsXHJcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5jdXJyZW50VG91clN0ZXAhLnRleHQpLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLmN1cnJlbnRUb3VyU3RlcCEudGl0bGUpIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIGN1c3RvbUNvbnRlbnQ6IHRoaXMuY3VzdG9tLFxyXG4gICAgICAgIGRpc21pc3NpYmxlOiB0cnVlLFxyXG4gICAgICAgIG1heFdpZHRoOiB0aGlzLmN1cnJlbnRUb3VyU3RlcD8ubWF4V2lkdGgsXHJcbiAgICAgICAgd2lkdGg6IHN0ZXBXaWR0aCxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1lYy1iYWNrZ3JvdW5kLWNvbG9yLXRvdXIpJyxcclxuICAgICAgICB0aXRsZUNvbG9yOiAndmFyKC0tZWMtY29sb3ItdG91ci10aXRsZSknXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNob3codG9vbHRpcEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMuY3VycmVudFRvdXJTdGVwIS5hbmNob3I/LnBvc2l0aW9uLCBvcHRpb25zKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLmZvY3VzT25OZXh0T3JEb25lQnV0dG9uLmJpbmQodGhpcykpO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgdG9vbHRpcHMgb25IaWRlIGV2ZW50IGVtaXR0ZXIgYW5kIHJlYWN0cyBpZiB0aGUgdXNlciBkaXNtaXNzZXMgdGhlIHRvb2x0aXBcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHN1YnNjcmliZVRvVG9vbHRpcE9uSGlkZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCB0b29sdGlwU3Vic2NyaXB0aW9uID0gdGhpcy50b29sdGlwPy5vbkhpZGUucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICB0b29sdGlwU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgdGhpcy53cml0ZUNvbXBsZXRpb25LZXlGb3JBbGxUb3VycygpO1xyXG4gICAgICAvLyBJZiB0aGlzIGlzIGRpc21pc3NlZCBkdXJpbmcgYW4gYXV0byBzdGFydCB0b3VyIHRoZW4gaGFuZGxlIHRoZSBleGl0IHN0ZXBcclxuICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZG9uZSBidXR0b24gaXMgc2hvd24gYXMgd2VsbCwgaWYgdGhlIGRvbmUgaXMgc2hvd24gdGhlbiB3ZSdyZSBpbiB0aGUgZXhpdCBzdGVwXHJcbiAgICAgIC8vIGFuZCBkaXNtaXNzaW5nIHNob3VsZCBqdXN0IGVuZCB0aGUgdG91clxyXG4gICAgICBpZiAodGhpcy5pc0F1dG9TdGFydCAmJiAhdGhpcy5zaG93RG9uZUJ1dHRvbikge1xyXG4gICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIGxhc3QgdG91ciBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZm9yIGl0cyBleGl0IHN0ZXBcclxuICAgICAgICB0aGlzLmN1cnJlbnRUb3VySW5kZXggPSB0aGlzLnRvdXJzLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlRXhpdFN0ZXAoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmVuZFRvdXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb29wcyB0aHJvdWdoIHRoZSBjdXJyZW50IHRvdXIgc3RlcHMgc3RhcnRpbmcgYWZ0ZXIgdGhlIGN1cnJlbnQgc3RlcCBpbmRleC4gSXQgd2lsbCB0cnkgdG8gZmluZCBhIHZpc2libGVcclxuICAgKiBzZWxlY3RvciBhbmQgaWYgc28gcmV0dXJuIHRoZSBpbmRleC5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dEF2YWlsYWJsZVN0ZXBJbmRleCgpOiBudW1iZXIge1xyXG4gICAgbGV0IG5leHRTdGVwSW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAgIC8vIExvb2sgdGhyb3VnaCB0aGUgc3RlcHMgc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudCBpbmRleCBhbmQgZmluZCB0aGUgbmV4dCB0aGF0IGlzIGF2YWlhYmxlXHJcbiAgICAvLyBmb3IgdGhlIHVzZXIuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXggKyAxOyBpIDwgdGhpcy5jdXJyZW50VG91ciEuc3RlcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFRvdXI/LnN0ZXBzW2ldLmFuY2hvciAmJiB0aGlzLnN0ZXBFbGVtZW50Rm91bmQodGhpcy5jdXJyZW50VG91ciEuc3RlcHNbaV0uYW5jaG9yISkpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0U3RlcEluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJ5IHRvIGZpbmQgdGhlIHRvdXIgc3RlcCBlbGVtZW50IHRvIGtub3cgaWYgaXQgaXMgdmlzaWJsZSBmb3IgdGhlIHVzZXIuIENoZWNrIGZvciB0aGUgY2xpY2tCZWZvcmUgZmlyc3QgaWYgZGVmaW5lZFxyXG4gICAqIEBwYXJhbSBhbmNob3JcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RlcEVsZW1lbnRGb3VuZChhbmNob3I6IFRvdXJBbmNob3IpOiBib29sZWFuIHtcclxuICAgIGlmIChhbmNob3IuY2xpY2tCZWZvcmUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3IuY2xpY2tCZWZvcmUpICE9PSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhbmNob3Iuc2VsZWN0b3IpICE9PSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29tZSB0b3VyIHN0ZXBzIG1heSBoYXZlIGEgY2xpY2sgYWZ0ZXIgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQWZ0ZXIoKTogdm9pZCB7XHJcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLmN1cnJlbnRUb3VyU3RlcD8uYW5jaG9yPy5jbGlja0FmdGVyO1xyXG4gICAgaWYgKHNlbGVjdG9yKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb21lIHRvdXIgc3RlcHMgbWF5IGhhdmUgYSBjbGljayBiZWZvcmUgZGVmaW5lZC4gSWYgc28gY2FsbCB0aGUgY2xpY2sgbWV0aG9kIG9uIHRoZSBodG1sIGVsZW1lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGhhbmRsZUNsaWNrQmVmb3JlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRvdXJTdGVwPy5hbmNob3I/LmNsaWNrQmVmb3JlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFbGVtZW50SWZGb3VuZCh0aGlzLmN1cnJlbnRUb3VyU3RlcC5hbmNob3I/LmNsaWNrQmVmb3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQ2hlY2tzIGZvciBhbiBleGl0IHN0ZXAgb24gdGhlIGN1cnJlbnQgdG91ciBhbmQgaWYgZm91bmQgZGlzcGxheXMgdGhlIHN0ZXBcclxuICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlRXhpdFN0ZXAoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91cj8uZXhpdFN0ZXApIHtcclxuICAgICAgdGhpcy5yZW1vdmVUb29sdGlwKCk7XHJcblxyXG4gICAgICB0aGlzLnNob3dEb25lQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jdXJyZW50VG91clN0ZXAgPSB0aGlzLmN1cnJlbnRUb3VyPy5leGl0U3RlcDtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMud2FpdEZvclRpbWVvdXQodGhpcy5oYW5kbGVDbGlja0JlZm9yZS5iaW5kKHRoaXMpKTtcclxuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yVGltZW91dCh0aGlzLnNob3dTdGVwVG9vbHRpcC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBmaW5kIHRoZSBlbGVtZW50IHdpdGggdGhlIHNlbGVjdG9yIHByb3ZpZGVkIGFuZCBpZiBzbyBjbGljayBpdC4gVGhpcyBpcyBob3cgdG91ciBzdGVwcyB3aWxsIG9wZW4vY2xvc2UgbWVudXMgdG9cclxuICAgKiBnaXZlIGEgdG91ciB0byB0aGUgdXNlclxyXG4gICAqIEBwYXJhbSBzZWxlY3RvclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xpY2tFbGVtZW50SWZGb3VuZChzZWxlY3Rvcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoc2VsZWN0b3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAoZWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhdXRvIHN0YXJ0aW5nIHRvdXJzIHdlIHdpbGwgd2FudCB0byByZW1vdmUgYW55IHRoYXQgaGF2ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXkgd3JpdHRlbiBhcyBjb21wbGV0ZWQgc29cclxuICAgKiB0aGV5IGFyZSBub3QgcHJlc2VudGVkIHRvIHRoZSB1c2VyIGFnYWluLlxyXG4gICAqIEBwYXJhbSB0b3Vyc1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVDb21wbGV0ZWRUb3Vycyh0b3VyczogVG91cltdKTogVG91cltdIHtcclxuICAgIHJldHVybiB0b3Vycy5maWx0ZXIodG91ciA9PiB7XHJcbiAgICAgIGxldCBjYWNoZVZhbHVlID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0SXRlbTxUb3VyQ2FjaGVFbnRyeT4odGhpcy5tYWtlQ2FjaGVLZXkodG91cikpO1xyXG4gICAgICBpZiAoY2FjaGVWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiAhY2FjaGVWYWx1ZS5jb21wbGV0ZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV3JpdGVzIGEga2V5IHRvIGxvY2FsIHN0b3JhZ2Ugc28gdGhlIHRvdXIgd2lsbCBub3QgYmUgc2hvd24gYWdhaW4gYXV0b21hdGljYWxseVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd3JpdGVDb21wbGV0aW9uS2V5KHRvdXI6IFRvdXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIGlmICh0b3VyKSB7XHJcbiAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLnNldEl0ZW0odGhpcy5tYWtlQ2FjaGVLZXkodG91ciksIDxUb3VyQ2FjaGVFbnRyeT57IGNvbXBsZXRlZDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZGlzbWlzc2luZyBhIHRvdXIgb3Igb25lIGJlaW5nIGRpc21pc3NlZCB2aWEgYSBuYXZpZ2F0aW9uIGV2ZW50LCBldGMgd2Ugd2lsbCB3YW50IHRvIG1hcmtcclxuICAgKiBldmVyeSB0b3VyIGluIHRoZSBhcnJheSBhcyBjb21wbGV0ZWQgc28gaXQgZG9lc24ndCByZXN1cmZhY2UgdW5sZXNzIHRoZSB1c2VyIHJlcXVlc3RzIHRoZSB0b3VyLlxyXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBsb29wIG92ZXIgYWxsIGFuZCB3cml0ZSB0aGUgbG9jYWwgc3RvcmFnZSBrZXlcclxuICAgKi9cclxuICBwcml2YXRlIHdyaXRlQ29tcGxldGlvbktleUZvckFsbFRvdXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3Vycy5mb3JFYWNoKHRvdXIgPT4ge1xyXG4gICAgICB0aGlzLndyaXRlQ29tcGxldGlvbktleSh0b3VyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUga2V5IHVzZWQgdG8gc2V0L2dldCB0aGUgY29tcGxldGlvbiBzdGF0dXMgb2YgYSB0b3VyXHJcbiAgICogQHBhcmFtIHRvdXJcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFrZUNhY2hlS2V5KHRvdXI6IFRvdXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudG91clNlcnZpY2UuZ2V0Q2FjaGVLZXkodG91cik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgdG9vbHRpcCBmcm9tIHRoZSB2aWV3LCB1c2VkIHdoZW4gc3dpdGNoaW5nIHRvdXIgc3RlcHMgYW5kIGNsb3NpbmcgYSB0b3VyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b29sdGlwPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSB0b3VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IGluZGV4XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgY3VycmVudFRvdXIoKTogVG91ciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VG91ckluZGV4ID4gLTEgJiYgdGhpcy5jdXJyZW50VG91ckluZGV4IDwgdGhpcy50b3Vycy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG91cnNbdGhpcy5jdXJyZW50VG91ckluZGV4XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgY2xpY2sgYmVmb3JlL2FmdGVyIGFuZCBzaG93IHRvb2x0aXAgZnVuY3Rpb25zIG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBzZXRUaW1lb3V0IGZvciB0aGUgVUlcclxuICAgKiB0byBvcGVyYXRlIGNvcnJlY3RseSBidXQgc2V0VGltZW91dCBpcyBhbiBhY3Rpb24gd2UgY2Fubm90IGF3YWl0IHNvIHdlJ3JlIHdyYXBwaW5nIGl0IGluIGEgcHJvbWlzZSB0byByZXR1cm5cclxuICAgKiBzbyB0aGUgZnVuY3Rpb24gY2FsbHMgY2FuIGF3YWl0IHRoZSBhY3Rpb25cclxuICAgKiBAcGFyYW0gZm5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgd2FpdEZvclRpbWVvdXQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgZm4oKTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIHRoZSBcIm5leHRcIiBvciBcImRvbmVcIiBidXR0b24gYW5kIGZvY3VzIG9uIGl0LlxyXG4gICAqXHJcbiAgICogVGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLCBzbyBpZiB3ZSBjYW5ub3QgZmluZCB0aGUgbmV4dCBidXR0b25cclxuICAgKiB3ZSBsb29rIGZvciB0aGUgZG9uZSBidXR0b24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uTmV4dE9yRG9uZUJ1dHRvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9uZXh0QnV0dG9uYCkpIHtcclxuICAgICAgdGhpcy5mb2N1c09uRWxlbWVudChgIyR7dGhpcy5jdXJyZW50VG91clN0ZXAhLmlkfV9kb25lQnV0dG9uYClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmQgYW4gZWxlbWVudCB3aXRoIGdpdmVuIHNlbGVjdG9yIGFuZCBmb2N1cyBvbiBpdC5cclxuICAgKiBSZXR1cm4gZmFsc2UgaWYgZWxlbWVudCBub3QgZm91bmQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmb2N1c09uRWxlbWVudChzZWxlY3Rvcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlICN0b3VyVG9vbHRpcD5cclxuICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/Lm1lZGlhXCJcclxuICAgICAgICAgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgPGltZyBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfbWVkaWEnfX1cIlxyXG4gICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7XCJcclxuICAgICAgICAgICAgIHNyYz1cInt7Y3VycmVudFRvdXJTdGVwPy5tZWRpYX19XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb250LWNvbG9yLXByaW1hcnktbGlnaHQgcHgtMyBtYi0zXCJcclxuICAgICAgICAgW2lubmVySHRtbF09XCJjdXJyZW50VG91clN0ZXA/LnRleHQgfCB0cmFuc2xhdGVcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGEgKm5nSWY9XCJjdXJyZW50VG91clN0ZXA/LmhlbHBMaW5rXCIgaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX2hlbHBMaW5rJ319XCIgY2xhc3M9XCJkLWJsb2NrIG1iLTMgcHgtM1wiIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaGVscExpbmt9fVwiIHRyYW5zbGF0ZT5MZWFybk1vcmVfU0M8L2E+XHJcbiAgICA8Zm9vdGVyIGNsYXNzPVwicHgtMyBtdC0zIGQtZmxleFwiPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJ7e2N1cnJlbnRUb3VyU3RlcD8uaWQgKyAnX25leHRCdXR0b24nfX1cIiAqbmdJZj1cIiFzaG93RG9uZUJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byB0b3VyQWN0aW9uXCIgZWNMaW5rQnV0dG9uIChjbGljayk9XCJzaG93TmV4dFN0ZXAoKVwiIHRyYW5zbGF0ZT5OZXh0X1RDPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInt7Y3VycmVudFRvdXJTdGVwPy5pZCArICdfZG9uZUJ1dHRvbid9fVwiICpuZ0lmPVwic2hvd0RvbmVCdXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gdG91ckFjdGlvblwiIGVjTGlua0J1dHRvbiAoY2xpY2spPVwiZG9uZSgpXCIgdHJhbnNsYXRlPkRvbmVfVEM8L2J1dHRvbj5cclxuICAgIDwvZm9vdGVyPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -9404,13 +9404,17 @@ class TourComponent {
9404
9404
  }
9405
9405
  }
9406
9406
  else if (event.tourAction === 'append') {
9407
+ let visibleTours = event.tours;
9408
+ // If this was triggered via auto start then we need to remove any tours that have been completed
9409
+ if (event.isAutoStart) {
9410
+ visibleTours = this.removeCompletedTours(visibleTours);
9411
+ }
9412
+ // If there is already a current tour, then we need to append the new tours to the current tour
9407
9413
  if (this.currentTour) {
9408
- if (event.isAutoStart) {
9409
- this.tours = this.removeCompletedTours(event.tours);
9410
- }
9411
- this.tours = this.tours.concat(event.tours);
9414
+ this.tours = this.tours.concat(visibleTours);
9412
9415
  }
9413
9416
  else {
9417
+ // There is not a current tour, so treat this as a start event
9414
9418
  yield this.setupTourComponent(event);
9415
9419
  }
9416
9420
  }