@fundamental-ngx/cdk 0.52.2-rc.9 → 0.52.3

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.
@@ -3,7 +3,7 @@ import { Directive, ElementRef, EventEmitter, Input, NgZone, Output, inject } fr
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { fromEvent, map, switchMap } from 'rxjs';
5
5
  import { first } from 'rxjs/operators';
6
- import { KeyUtil } from '../../functions';
6
+ import { KeyUtil } from '../../functions/key-util';
7
7
  import * as i0 from "@angular/core";
8
8
  export class AutoCompleteDirective {
9
9
  /** @hidden */
@@ -25,8 +25,6 @@ export class AutoCompleteDirective {
25
25
  /** @hidden */
26
26
  this._stopKeys = [BACKSPACE, DELETE, ESCAPE];
27
27
  /** @hidden */
28
- this._isComposing = false;
29
- /** @hidden */
30
28
  this._elementRef = inject(ElementRef);
31
29
  this._zone = inject(NgZone);
32
30
  /** Matcher function for testing the str for a search term */
@@ -38,23 +36,14 @@ export class AutoCompleteDirective {
38
36
  */
39
37
  this._zone.runOutsideAngular(() => {
40
38
  const keyupEvent = fromEvent(this._elementRef.nativeElement, 'keyup');
41
- const compositionStartEvent = fromEvent(this._elementRef.nativeElement, 'compositionstart');
42
- const compositionEndEvent = fromEvent(this._elementRef.nativeElement, 'compositionend');
43
39
  keyupEvent
44
40
  .pipe(switchMap((evt) => this._zone.onStable.pipe(first(), map(() => evt))), takeUntilDestroyed())
45
41
  .subscribe((evt) => this._handleKeyboardEvent(evt));
46
- compositionStartEvent.pipe(takeUntilDestroyed()).subscribe(() => {
47
- this._isComposing = true;
48
- });
49
- compositionEndEvent.pipe(takeUntilDestroyed()).subscribe(() => {
50
- this._isComposing = false;
51
- this.inputText = this._elementRef.nativeElement.value;
52
- });
53
42
  });
54
43
  }
55
44
  /** @hidden */
56
45
  _handleKeyboardEvent(event) {
57
- if (this.enable && !this._isComposing) {
46
+ if (this.enable) {
58
47
  if (KeyUtil.isKeyCode(event, this._stopKeys)) {
59
48
  this._elementRef.nativeElement.value = this.inputText;
60
49
  }
@@ -66,6 +55,7 @@ export class AutoCompleteDirective {
66
55
  this._sendCompleteEvent(false);
67
56
  }
68
57
  else if (!this._isControlKey(event) && this.inputText) {
58
+ /** Prevention from triggering typeahead, when having crtl/cmd + keys */
69
59
  if (!this._triggerTypeAhead()) {
70
60
  return;
71
61
  }
@@ -132,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
132
122
  }], matcher: [{
133
123
  type: Input
134
124
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVzFDLE1BQU0sT0FBTyxxQkFBcUI7SUFtRDlCLGNBQWM7SUFDZCw4REFBOEQ7SUFDOUQ7UUF6Q0EsNERBQTREO1FBRTVELFdBQU0sR0FBRyxJQUFJLENBQUM7UUFFZDs7O29EQUc0QztRQUU1QyxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUVqQyx5REFBeUQ7UUFHaEQsZUFBVSxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUU3RixjQUFjO1FBQ0csa0JBQWEsR0FBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELGNBQWM7UUFDRyxjQUFTLEdBQWEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFakUsY0FBYztRQUNHLGNBQVMsR0FBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFRbkUsY0FBYztRQUNOLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTdCLGNBQWM7UUFDRyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVqQyxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBeUN4Qyw2REFBNkQ7UUFFN0QsWUFBTyxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWtCLEVBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUF0Qy9FOzs7O1dBSUc7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQWdCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JGLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxDQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsa0JBQWtCLENBQ3JCLENBQUM7WUFDRixNQUFNLG1CQUFtQixHQUFHLFNBQVMsQ0FBbUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUUxRyxVQUFVO2lCQUNMLElBQUksQ0FDRCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDcEIsS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUNqQixDQUNKLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDdkI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUV4RCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRUgsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDMUQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFNRCxjQUFjO0lBQ2Qsb0JBQW9CLENBQUMsS0FBb0I7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzFELENBQUM7aUJBQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7b0JBQzVCLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBRS9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQy9GLENBQUM7Z0JBRUYsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWM7SUFDTixVQUFVLENBQUMsY0FBc0I7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUN0RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsY0FBYztJQUNOLGFBQWEsQ0FBQyxLQUFvQjtRQUN0QyxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDOUQsQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlLENBQUMsS0FBVTtRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsY0FBYztJQUNOLGlCQUFpQjtRQUNyQixPQUFPLENBQUMsQ0FDSixJQUFJLENBQUMsY0FBYztZQUNuQixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDO1lBQy9DLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FDbkMsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCLENBQUMsVUFBbUI7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFDMUMsVUFBVTtTQUNiLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ04sNkJBQTZCO1FBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FqS1EscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3dEQUlHLE9BQU87c0JBRE4sS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQVFOLFNBQVM7c0JBRFIsS0FBSztnQkFNRyxVQUFVO3NCQUZsQixNQUFNO2dCQW9FUCxPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCQUNLU1BBQ0UsIENPTlRST0wsIERFTEVURSwgRU5URVIsIEVTQ0FQRSwgTEVGVF9BUlJPVywgUklHSFRfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9Db21wbGV0ZUV2ZW50IHtcbiAgICB0ZXJtOiBzdHJpbmc7XG4gICAgZm9yY2VDbG9zZTogYm9vbGVhbjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrQXV0b0NvbXBsZXRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVEaXJlY3RpdmUge1xuICAgIC8qKiBWYWx1ZXMgdGhhdCB3aWxsIGZpbGwgbWlzc2luZyB0ZXh0IGluIHRoZSBpbnB1dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG9wdGlvbnM6IGFueVtdO1xuXG4gICAgLyoqXG4gICAgICogSW5wdXQgdGV4dCwgdGhhdCBpcyB0YWtlbiBmcm9tIG5nTW9kZWwgb2YgZm9ybUNvbnRyb2wsXG4gICAgICogdGhlcmUgaGFzIHRvIGJlIGRpZmZlcmVuY2UgYmV0d2VlbiBuYXRpdmUgaW5wdXQgdmFsdWUgYW5kIG1vZGVsIHZhbHVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpbnB1dFRleHQ6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBhdXRvIGNvbXBsZXRlIGRpcmVjdGl2ZSBzaG91bGQgYmUgZW5hYmxlZCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBEaXNwbGF5IGZ1bmN0aW9uLiBBY2NlcHRzIGFuIG9iamVjdCBvZiB0aGUgc2FtZSB0eXBlIGFzIHRoZVxuICAgICAqIGl0ZW1zIHBhc3NlZCB0byBkcm9wZG93blZhbHVlcyBhcyBhcmd1bWVudCwgYW5kIG91dHB1dHMgYSBzdHJpbmcuXG4gICAgICogQW4gYXJyb3cgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gYWNjZXNzIHRoZSAqdGhpcyoga2V5d29yZCBpbiB0aGUgY2FsbGluZyBjb21wb25lbnQuXG4gICAgICogU2VlIHNlYXJjaCBpbnB1dCBleGFtcGxlcyBmb3IgZGV0YWlscy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlGbiA9IHRoaXMuX2RlZmF1bHREaXNwbGF5O1xuXG4gICAgLyoqIEV2ZW50IHRocm93biwgd2hlbiB0aGUgYXV0byBhaGVhZCB0ZXh0IGlzIGFjY2VwdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25Db21wbGV0ZTogRXZlbnRFbWl0dGVyPEF1dG9Db21wbGV0ZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b0NvbXBsZXRlRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBsZXRlS2V5czogbnVtYmVyW10gPSBbRU5URVJdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9maWxsS2V5czogbnVtYmVyW10gPSBbTEVGVF9BUlJPVywgUklHSFRfQVJST1ddO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9wS2V5czogbnVtYmVyW10gPSBbQkFDS1NQQUNFLCBERUxFVEUsIEVTQ0FQRV07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgb2xkVmFsdWU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBsYXN0S2V5VXBFdmVudDogS2V5Ym9hcmRFdmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNDb21wb3NpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpeGVzICMxMDcxMFxuICAgICAgICAgKiBXaXRoIGNoaW5lc2UgY2hhcmFjdGVycyBpbnB1dFRleHQgcHJvcGVydHkgdXBkYXRlIHdhcyB0cmlnZ2VyZWQgYWZ0ZXIgdGhlIGtleXVwIGV2ZW50IHRyaWdnZXIuXG4gICAgICAgICAqIEJ5IGVuc3VyaW5nIHRoYXQgd2Ugc2V0IGFsbCBwcm9wZXJ0aWVzIHdlIGNhbiBwcm9jZWVkIHdpdGggc3RhYmxlIGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleXVwRXZlbnQgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4odGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAna2V5dXAnKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvc2l0aW9uU3RhcnRFdmVudCA9IGZyb21FdmVudDxDb21wb3NpdGlvbkV2ZW50PihcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2NvbXBvc2l0aW9uc3RhcnQnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY29tcG9zaXRpb25FbmRFdmVudCA9IGZyb21FdmVudDxDb21wb3NpdGlvbkV2ZW50Pih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjb21wb3NpdGlvbmVuZCcpO1xuXG4gICAgICAgICAgICBrZXl1cEV2ZW50XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoZXZ0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fem9uZS5vblN0YWJsZS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV2dClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB0aGlzLl9oYW5kbGVLZXlib2FyZEV2ZW50KGV2dCkpO1xuXG4gICAgICAgICAgICBjb21wb3NpdGlvblN0YXJ0RXZlbnQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc0NvbXBvc2luZyA9IHRydWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29tcG9zaXRpb25FbmRFdmVudC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIE1hdGNoZXIgZnVuY3Rpb24gZm9yIHRlc3RpbmcgdGhlIHN0ciBmb3IgYSBzZWFyY2ggdGVybSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF0Y2hlciA9IChzdHI6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKTogYm9vbGVhbiA9PiBzdHIuc3RhcnRzV2l0aChzZWFyY2hUZXJtKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlICYmICF0aGlzLl9pc0NvbXBvc2luZykge1xuICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9zdG9wS2V5cykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmlucHV0VGV4dDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIHRoaXMuX2NvbXBsZXRlS2V5cykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZW5kQ29tcGxldGVFdmVudCh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb3ZlSW5kaWNhdG9yVG9MYXN0Q2hhcmFjdGVyKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9maWxsS2V5cykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZW5kQ29tcGxldGVFdmVudChmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9pc0NvbnRyb2xLZXkoZXZlbnQpICYmIHRoaXMuaW5wdXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl90cmlnZ2VyVHlwZUFoZWFkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMub2xkVmFsdWUgPSB0aGlzLmlucHV0VGV4dDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hdGNoZXIodGhpcy5kaXNwbGF5Rm4ob3B0aW9uKS50b0xvY2FsZUxvd2VyQ2FzZSgpLCB0aGlzLmlucHV0VGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90eXBlYWhlYWQodGhpcy5kaXNwbGF5Rm4oaXRlbSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RLZXlVcEV2ZW50ID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90eXBlYWhlYWQoZGlzcGxheWVkVmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBkaXNwbGF5ZWRWYWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRJbmRleCA9IHRoaXMuaW5wdXRUZXh0Lmxlbmd0aDtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0SW5kZXgsIGRpc3BsYXllZFZhbHVlLmxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0NvbnRyb2xLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBDT05UUk9MKSB8fCBldmVudC5jdHJsS2V5O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdERpc3BsYXkodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJUeXBlQWhlYWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhKFxuICAgICAgICAgICAgdGhpcy5sYXN0S2V5VXBFdmVudCAmJlxuICAgICAgICAgICAgS2V5VXRpbC5pc0tleUNvZGUodGhpcy5sYXN0S2V5VXBFdmVudCwgQ09OVFJPTCkgJiZcbiAgICAgICAgICAgIHRoaXMuaW5wdXRUZXh0ID09PSB0aGlzLm9sZFZhbHVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZW5kQ29tcGxldGVFdmVudChmb3JjZUNsb3NlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgICAgIHRlcm06IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSxcbiAgICAgICAgICAgIGZvcmNlQ2xvc2VcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tb3ZlSW5kaWNhdG9yVG9MYXN0Q2hhcmFjdGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dFRleHRMZW5ndGggPSB0aGlzLmlucHV0VGV4dD8ubGVuZ3RoID8/IDA7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShpbnB1dFRleHRMZW5ndGgsIGlucHV0VGV4dExlbmd0aCk7XG4gICAgfVxufVxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBV25ELE1BQU0sT0FBTyxxQkFBcUI7SUFnRDlCLGNBQWM7SUFDZCw4REFBOEQ7SUFDOUQ7UUF0Q0EsNERBQTREO1FBRTVELFdBQU0sR0FBRyxJQUFJLENBQUM7UUFFZDs7O29EQUc0QztRQUU1QyxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUVqQyx5REFBeUQ7UUFHaEQsZUFBVSxHQUFvQyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUU3RixjQUFjO1FBQ0csa0JBQWEsR0FBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5ELGNBQWM7UUFDRyxjQUFTLEdBQWEsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFakUsY0FBYztRQUNHLGNB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QXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3REFJRyxPQUFPO3NCQUROLEtBQUs7Z0JBUU4sU0FBUztzQkFEUixLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFRTixTQUFTO3NCQURSLEtBQUs7Z0JBTUcsVUFBVTtzQkFGbEIsTUFBTTtnQkFrRFAsT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFDS1NQQUNFLCBDT05UUk9MLCBERUxFVEUsIEVOVEVSLCBFU0NBUEUsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2tleS11dGlsJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRvQ29tcGxldGVFdmVudCB7XG4gICAgdGVybTogc3RyaW5nO1xuICAgIGZvcmNlQ2xvc2U6IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0F1dG9Db21wbGV0ZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlRGlyZWN0aXZlIHtcbiAgICAvKiogVmFsdWVzIHRoYXQgd2lsbCBmaWxsIG1pc3NpbmcgdGV4dCBpbiB0aGUgaW5wdXQuICovXG4gICAgQElucHV0KClcbiAgICBvcHRpb25zOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqIElucHV0IHRleHQsIHRoYXQgaXMgdGFrZW4gZnJvbSBuZ01vZGVsIG9mIGZvcm1Db250cm9sLFxuICAgICAqIHRoZXJlIGhhcyB0byBiZSBkaWZmZXJlbmNlIGJldHdlZW4gbmF0aXZlIGlucHV0IHZhbHVlIGFuZCBtb2RlbCB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaW5wdXRUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgYXV0byBjb21wbGV0ZSBkaXJlY3RpdmUgc2hvdWxkIGJlIGVuYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIGVuYWJsZSA9IHRydWU7XG5cbiAgICAvKiogRGlzcGxheSBmdW5jdGlvbi4gQWNjZXB0cyBhbiBvYmplY3Qgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGVcbiAgICAgKiBpdGVtcyBwYXNzZWQgdG8gZHJvcGRvd25WYWx1ZXMgYXMgYXJndW1lbnQsIGFuZCBvdXRwdXRzIGEgc3RyaW5nLlxuICAgICAqIEFuIGFycm93IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgKnRoaXMqIGtleXdvcmQgaW4gdGhlIGNhbGxpbmcgY29tcG9uZW50LlxuICAgICAqIFNlZSBzZWFyY2ggaW5wdXQgZXhhbXBsZXMgZm9yIGRldGFpbHMuICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5Rm4gPSB0aGlzLl9kZWZhdWx0RGlzcGxheTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gdGhlIGF1dG8gYWhlYWQgdGV4dCBpcyBhY2NlcHRlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHJlYWRvbmx5IG9uQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxBdXRvQ29tcGxldGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEF1dG9Db21wbGV0ZUV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21wbGV0ZUtleXM6IG51bWJlcltdID0gW0VOVEVSXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmlsbEtleXM6IG51bWJlcltdID0gW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3RvcEtleXM6IG51bWJlcltdID0gW0JBQ0tTUEFDRSwgREVMRVRFLCBFU0NBUEVdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIG9sZFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgbGFzdEtleVVwRXZlbnQ6IEtleWJvYXJkRXZlbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXhlcyAjMTA3MTBcbiAgICAgICAgICogV2l0aCBjaGluZXNlIGNoYXJhY3RlcnMgaW5wdXRUZXh0IHByb3BlcnR5IHVwZGF0ZSB3YXMgdHJpZ2dlcmVkIGFmdGVyIHRoZSBrZXl1cCBldmVudCB0cmlnZ2VyLlxuICAgICAgICAgKiBCeSBlbnN1cmluZyB0aGF0IHdlIHNldCBhbGwgcHJvcGVydGllcyB3ZSBjYW4gcHJvY2VlZCB3aXRoIHN0YWJsZSBkYXRhLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXl1cEV2ZW50ID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleXVwJyk7XG4gICAgICAgICAgICBrZXl1cEV2ZW50XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoZXZ0KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fem9uZS5vblN0YWJsZS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV2dClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB0aGlzLl9oYW5kbGVLZXlib2FyZEV2ZW50KGV2dCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogTWF0Y2hlciBmdW5jdGlvbiBmb3IgdGVzdGluZyB0aGUgc3RyIGZvciBhIHNlYXJjaCB0ZXJtICovXG4gICAgQElucHV0KClcbiAgICBtYXRjaGVyID0gKHN0cjogc3RyaW5nLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBib29sZWFuID0+IHN0ci5zdGFydHNXaXRoKHNlYXJjaFRlcm0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5lbmFibGUpIHtcbiAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgdGhpcy5fc3RvcEtleXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5pbnB1dFRleHQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCB0aGlzLl9jb21wbGV0ZUtleXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VuZENvbXBsZXRlRXZlbnQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW92ZUluZGljYXRvclRvTGFzdENoYXJhY3RlcigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgdGhpcy5fZmlsbEtleXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VuZENvbXBsZXRlRXZlbnQoZmFsc2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faXNDb250cm9sS2V5KGV2ZW50KSAmJiB0aGlzLmlucHV0VGV4dCkge1xuICAgICAgICAgICAgICAgIC8qKiBQcmV2ZW50aW9uIGZyb20gdHJpZ2dlcmluZyB0eXBlYWhlYWQsIHdoZW4gaGF2aW5nIGNydGwvY21kICsga2V5cyAqL1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fdHJpZ2dlclR5cGVBaGVhZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9sZFZhbHVlID0gdGhpcy5pbnB1dFRleHQ7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRjaGVyKHRoaXMuZGlzcGxheUZuKG9wdGlvbikudG9Mb2NhbGVMb3dlckNhc2UoKSwgdGhpcy5pbnB1dFRleHQudG9Mb2NhbGVMb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHlwZWFoZWFkKHRoaXMuZGlzcGxheUZuKGl0ZW0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0S2V5VXBFdmVudCA9IGV2ZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHlwZWFoZWFkKGRpc3BsYXllZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gZGlzcGxheWVkVmFsdWU7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0SW5kZXggPSB0aGlzLmlucHV0VGV4dC5sZW5ndGg7XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydEluZGV4LCBkaXNwbGF5ZWRWYWx1ZS5sZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNDb250cm9sS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgQ09OVFJPTCkgfHwgZXZlbnQuY3RybEtleTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHREaXNwbGF5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyVHlwZUFoZWFkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIShcbiAgICAgICAgICAgIHRoaXMubGFzdEtleVVwRXZlbnQgJiZcbiAgICAgICAgICAgIEtleVV0aWwuaXNLZXlDb2RlKHRoaXMubGFzdEtleVVwRXZlbnQsIENPTlRST0wpICYmXG4gICAgICAgICAgICB0aGlzLmlucHV0VGV4dCA9PT0gdGhpcy5vbGRWYWx1ZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VuZENvbXBsZXRlRXZlbnQoZm9yY2VDbG9zZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgICAgICB0ZXJtOiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgICBmb3JjZUNsb3NlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbW92ZUluZGljYXRvclRvTGFzdENoYXJhY3RlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5wdXRUZXh0TGVuZ3RoID0gdGhpcy5pbnB1dFRleHQ/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoaW5wdXRUZXh0TGVuZ3RoLCBpbnB1dFRleHRMZW5ndGgpO1xuICAgIH1cbn1cbiJdfQ==