@fundamental-ngx/cdk 0.44.0 → 0.44.1-rc.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.
- package/esm2022/utils/directives/focusable-grid/focusable-grid.directive.mjs +14 -14
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +14 -4
- package/esm2022/utils/directives/focusable-item/focusable-list.position.mjs +2 -0
- package/esm2022/utils/directives/focusable-item/focusable.item.mjs +2 -0
- package/esm2022/utils/directives/focusable-item/get-item-element.mjs +14 -0
- package/esm2022/utils/directives/focusable-item/index.mjs +4 -1
- package/esm2022/utils/directives/focusable-item/is-item-focusable.mjs +8 -0
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +18 -23
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +62 -36
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.44.1-rc.1.tgz +0 -0
- package/package.json +2 -2
- package/utils/directives/focusable-grid/focusable-grid.directive.d.ts +6 -7
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +13 -7
- package/utils/directives/focusable-item/focusable-list.position.d.ts +4 -0
- package/utils/directives/focusable-item/focusable.item.d.ts +10 -0
- package/utils/directives/focusable-item/get-item-element.d.ts +6 -0
- package/utils/directives/focusable-item/index.d.ts +3 -0
- package/utils/directives/focusable-item/is-item-focusable.d.ts +6 -0
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +10 -20
- package/fundamental-ngx-cdk-v0.44.0.tgz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
2
|
import { DOWN_ARROW, LEFT_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
|
|
3
|
-
import { ContentChildren, DestroyRef, Directive, EventEmitter, Input, Output, QueryList } from '@angular/core';
|
|
3
|
+
import { ContentChildren, DestroyRef, Directive, EventEmitter, inject, Input, Output, QueryList } from '@angular/core';
|
|
4
4
|
import { merge, startWith, switchMap } from 'rxjs';
|
|
5
5
|
import { KeyUtil } from '../../functions';
|
|
6
6
|
import { FDK_FOCUSABLE_LIST_DIRECTIVE } from '../focusable-list';
|
|
@@ -9,16 +9,7 @@ import { FDK_FOCUSABLE_GRID_DIRECTIVE } from './focusable-grid.tokens';
|
|
|
9
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class FocusableGridDirective {
|
|
12
|
-
|
|
13
|
-
set wrapHorizontally(value) {
|
|
14
|
-
this._wrapHorizontally = coerceBooleanProperty(value);
|
|
15
|
-
}
|
|
16
|
-
get wrapHorizontally() {
|
|
17
|
-
return this._wrapHorizontally;
|
|
18
|
-
}
|
|
19
|
-
/** @hidden */
|
|
20
|
-
constructor(_destroyRef) {
|
|
21
|
-
this._destroyRef = _destroyRef;
|
|
12
|
+
constructor() {
|
|
22
13
|
/** Direction of the content. */
|
|
23
14
|
this.contentDirection = 'ltr';
|
|
24
15
|
/** Specify which item to select in prev/next row if its length smaller than current index. Nullish value means do not select. Default is null. */
|
|
@@ -29,6 +20,15 @@ export class FocusableGridDirective {
|
|
|
29
20
|
this.rowFocused = new EventEmitter();
|
|
30
21
|
/** @hidden */
|
|
31
22
|
this._wrapHorizontally = false;
|
|
23
|
+
/** @hidden */
|
|
24
|
+
this._destroyRef = inject(DestroyRef);
|
|
25
|
+
}
|
|
26
|
+
/** Whether the item in the previous/next row should be selected when going out of the first/last cell in the row. Default is false. */
|
|
27
|
+
set wrapHorizontally(value) {
|
|
28
|
+
this._wrapHorizontally = coerceBooleanProperty(value);
|
|
29
|
+
}
|
|
30
|
+
get wrapHorizontally() {
|
|
31
|
+
return this._wrapHorizontally;
|
|
32
32
|
}
|
|
33
33
|
/** @hidden */
|
|
34
34
|
ngAfterViewInit() {
|
|
@@ -133,7 +133,7 @@ export class FocusableGridDirective {
|
|
|
133
133
|
}
|
|
134
134
|
return this.shortRowFocus === 'first' ? 0 : list._focusableItems.length - 1;
|
|
135
135
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableGridDirective, deps: [
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableGridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
137
137
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: FocusableGridDirective, isStandalone: true, selector: "[fdkFocusableGrid]", inputs: { contentDirection: "contentDirection", wrapHorizontally: "wrapHorizontally", shortRowFocus: "shortRowFocus" }, outputs: { itemFocused: "itemFocused", rowFocused: "rowFocused" }, providers: [
|
|
138
138
|
{
|
|
139
139
|
provide: FDK_FOCUSABLE_GRID_DIRECTIVE,
|
|
@@ -154,7 +154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
154
154
|
}
|
|
155
155
|
]
|
|
156
156
|
}]
|
|
157
|
-
}],
|
|
157
|
+
}], propDecorators: { contentDirection: [{
|
|
158
158
|
type: Input
|
|
159
159
|
}], wrapHorizontally: [{
|
|
160
160
|
type: Input
|
|
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
168
168
|
type: ContentChildren,
|
|
169
169
|
args: [FDK_FOCUSABLE_LIST_DIRECTIVE, { descendants: true }]
|
|
170
170
|
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWdyaWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1ncmlkL2ZvY3VzYWJsZS1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUcsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzFDLE9BQU8sRUFDSCw0QkFBNEIsRUFJL0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWtCaEUsTUFBTSxPQUFPLHNCQUFzQjtJQUsvQix1SUFBdUk7SUFDdkksSUFDSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixD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YW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBQQUdFX0RPV04sIFBBR0VfVVAsIFJJR0hUX0FSUk9XLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7XG4gICAgRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSxcbiAgICBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLFxuICAgIEZvY3VzYWJsZUxpc3RQb3NpdGlvbixcbiAgICBTY3JvbGxQb3NpdGlvblxufSBmcm9tICcuLi9mb2N1c2FibGUtbGlzdCc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfR1JJRF9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1ncmlkLnRva2Vucyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlQ2VsbFBvc2l0aW9uIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xuICAgIGNvbEluZGV4OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUdyaWRdJyxcbiAgICBleHBvcnRBczogJ2Zka0ZvY3VzYWJsZUdyaWQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfR1JJRF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlR3JpZERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVHcmlkRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIERpcmVjdGlvbiBvZiB0aGUgY29udGVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnREaXJlY3Rpb246ICdsdHInIHwgJ3J0bCcgfCBudWxsID0gJ2x0cic7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaXRlbSBpbiB0aGUgcHJldmlvdXMvbmV4dCByb3cgc2hvdWxkIGJlIHNlbGVjdGVkIHdoZW4gZ29pbmcgb3V0IG9mIHRoZSBmaXJzdC9sYXN0IGNlbGwgaW4gdGhlIHJvdy4gRGVmYXVsdCBpcyBmYWxzZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB3cmFwSG9yaXpvbnRhbGx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fd3JhcEhvcml6b250YWxseSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHdyYXBIb3Jpem9udGFsbHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl93cmFwSG9yaXpvbnRhbGx5O1xuICAgIH1cblxuICAgIC8qKiBTcGVjaWZ5IHdoaWNoIGl0ZW0gdG8gc2VsZWN0IGluIHByZXYvbmV4dCByb3cgaWYgaXRzIGxlbmd0aCBzbWFsbGVyIHRoYW4gY3VycmVudCBpbmRleC4gTnVsbGlzaCB2YWx1ZSBtZWFucyBkbyBub3Qgc2VsZWN0LiBEZWZhdWx0IGlzIG51bGwuICovXG4gICAgQElucHV0KClcbiAgICBzaG9ydFJvd0ZvY3VzOiBOdWxsYWJsZTwnZmlyc3QnIHwgJ2xhc3QnPiA9IG51bGw7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGl0ZW0gZm9jdXNlZCwgY29udGFpbnMgaXRlbSdzIHBvc2l0aW9uIGluZm8uICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXRlbUZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gd2hvbGUgcm93IGZvY3VzZWQsIGNvbnRhaW5zIHJvdydzIHBvc2l0aW9uIGluZm8uICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcm93Rm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlTGlzdFBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF93cmFwSG9yaXpvbnRhbGx5ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZUxpc3RzOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMuX2ZvY3VzYWJsZUxpc3RzKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdHMpID0+XG4gICAgICAgICAgICAgICAgbGlzdHMuZm9yRWFjaCgobGlzdCwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuX3NldEdyaWRQb3NpdGlvbih7IHJvd0luZGV4OiBpbmRleCwgdG90YWxSb3dzOiB0aGlzLl9mb2N1c2FibGVMaXN0cy5sZW5ndGggfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVMaXN0cyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb2N1c2FibGVMaXN0RGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoLi4ucXVlcnlMaXN0LnRvQXJyYXkoKS5tYXAoKGxpc3QpID0+IGxpc3QuX2dyaWRMaXN0Rm9jdXNlZCQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvd0ZvY3VzZWQuZW1pdChmb2N1c2VkRXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuZm9yRWFjaCgobGlzdCkgPT4gbGlzdC5zZXRUYWJiYWJsZShmYWxzZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmZvckVhY2goKGxpc3QpID0+IGxpc3QuX3NldEl0ZW1zVGFiYmFibGUoZmFsc2UpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVMaXN0cyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb2N1c2FibGVMaXN0RGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoLi4ucXVlcnlMaXN0LnRvQXJyYXkoKS5tYXAoKGxpc3QpID0+IGxpc3QuX2dyaWRJdGVtRm9jdXNlZCQpKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLmVtaXQoZm9jdXNlZEV2ZW50KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmZvckVhY2goKGxpc3QpID0+IGxpc3Quc2V0VGFiYmFibGUoZmFsc2UpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5mb3JFYWNoKChsaXN0KSA9PiBsaXN0Ll9zZXRJdGVtc1RhYmJhYmxlKGZhbHNlKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fZm9jdXNhYmxlTGlzdHMpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0OiBRdWVyeUxpc3Q8Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZT4pID0+XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlKC4uLnF1ZXJ5TGlzdC50b0FycmF5KCkubWFwKChsaXN0KSA9PiBsaXN0Ll9rZXlkb3duJCkpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZXZlbnQsIGxpc3QsIGFjdGl2ZUl0ZW1JbmRleCB9KSA9PiB0aGlzLl9vbktleWRvd24oZXZlbnQsIGxpc3QsIGFjdGl2ZUl0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIGNlbGwgYnkgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIHBvc2l0aW9uIG9mIHRoZSBjZWxsXG4gICAgICovXG4gICAgZm9jdXNDZWxsKHBvc2l0aW9uOiBGb2N1c2FibGVDZWxsUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmdldChwb3NpdGlvbi5yb3dJbmRleCk7XG4gICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICBsaXN0LnNldEFjdGl2ZUl0ZW0ocG9zaXRpb24uY29sSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBhY3RpdmVJdGVtSW5kZXg6IE51bGxhYmxlPG51bWJlcj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1VQX0FSUk9XLCBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgUEFHRV9ET1dOLCBQQUdFX1VQXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxpc3RzID0gdGhpcy5fZm9jdXNhYmxlTGlzdHMudG9BcnJheSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um93SW5kZXggPSBsaXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IGxpc3QpO1xuICAgICAgICBsZXQgbmV4dFJvd0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBuZXh0Um93SXRlbUluZGV4ID0gYWN0aXZlSXRlbUluZGV4ID8/IDA7XG4gICAgICAgIGxldCBzY3JvbGxJbnRvVmlldzogU2Nyb2xsUG9zaXRpb247XG5cbiAgICAgICAgY29uc3QgaXNGaXJzdEl0ZW1MdHIgPSBhY3RpdmVJdGVtSW5kZXggPT09IDAgJiYgdGhpcy5jb250ZW50RGlyZWN0aW9uICE9PSAncnRsJztcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbVJ0bCA9IGFjdGl2ZUl0ZW1JbmRleCA9PT0gbGlzdC5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSAmJiB0aGlzLmNvbnRlbnREaXJlY3Rpb24gPT09ICdydGwnO1xuXG4gICAgICAgIGNvbnN0IGlzRmlyc3RJdGVtUnRsID0gYWN0aXZlSXRlbUluZGV4ID09PSAwICYmIHRoaXMuY29udGVudERpcmVjdGlvbiA9PT0gJ3J0bCc7XG4gICAgICAgIGNvbnN0IGlzTGFzdEl0ZW1MdHIgPSBhY3RpdmVJdGVtSW5kZXggPT09IGxpc3QuX2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDEgJiYgdGhpcy5jb250ZW50RGlyZWN0aW9uICE9PSAncnRsJztcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbmV4dFJvd0luZGV4ID0gY3VycmVudFJvd0luZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTEVGVF9BUlJPVzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53cmFwSG9yaXpvbnRhbGx5ICYmIChpc0ZpcnN0SXRlbUx0ciB8fCBpc0xhc3RJdGVtUnRsKSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SXRlbUluZGV4ID0gbGlzdHNbbmV4dFJvd0luZGV4XT8uX2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSSUdIVF9BUlJPVzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53cmFwSG9yaXpvbnRhbGx5ICYmIChpc0ZpcnN0SXRlbVJ0bCB8fCBpc0xhc3RJdGVtTHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICBuZXh0Um93SXRlbUluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGZpbmRMYXN0SW5kZXgobGlzdHMsIChpdGVtKSA9PiBpdGVtLl9pc1Zpc2libGUpO1xuICAgICAgICAgICAgICAgIHNjcm9sbEludG9WaWV3ID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBBR0VfVVA6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBsaXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lzVmlzaWJsZSk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXcgPSAnYm90dG9tJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRSb3cgPSBsaXN0c1tuZXh0Um93SW5kZXggPz8gLTFdO1xuICAgICAgICBpZiAobmV4dFJvdykge1xuICAgICAgICAgICAgaWYgKG5leHRSb3cuZm9jdXNhYmxlKSB7XG4gICAgICAgICAgICAgICAgbmV4dFJvdy5mb2N1cyhzY3JvbGxJbnRvVmlldyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLl9nZXRJdGVtSW5kZXgobmV4dFJvdywgbmV4dFJvd0l0ZW1JbmRleCk7XG4gICAgICAgICAgICBpZiAoaXRlbUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBuZXh0Um93LnNldEFjdGl2ZUl0ZW0oaXRlbUluZGV4LCBzY3JvbGxJbnRvVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEl0ZW1JbmRleChsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBhY3RpdmVJbmRleDogbnVtYmVyKTogTnVsbGFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmIChhY3RpdmVJbmRleCA+PSAwICYmIGFjdGl2ZUluZGV4IDwgbGlzdC5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG9ydFJvd0ZvY3VzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvcnRSb3dGb2N1cyA9PT0gJ2ZpcnN0JyA/IDAgOiBsaXN0Ll9mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxO1xuICAgIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWdyaWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1ncmlkL2ZvY3VzYWJsZS1ncmlkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUcsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUcxQyxPQUFPLEVBQUUsNEJBQTRCLEVBQTBDLE1BQU0sbUJBQW1CLENBQUM7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFrQmhFLE1BQU0sT0FBTyxzQkFBc0I7SUFYbkM7UUFZSSxnQ0FBZ0M7UUFFaEMscUJBQWdCLEdBQXlCLEtBQUssQ0FBQztRQVkvQyxrSkFBa0o7UUFFbEosa0JBQWEsR0FBK0IsSUFBSSxDQUFDO1FBRWpELHNFQUFzRTtRQUU3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRWpF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Y2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUEFHRV9ET1dOLCBQQUdFX1VQLCBSSUdIVF9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbVBvc2l0aW9uLCBGb2N1c2FibGVMaXN0UG9zaXRpb24gfSBmcm9tICcuLi9mb2N1c2FibGUtaXRlbSc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFLCBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLCBTY3JvbGxQb3NpdGlvbiB9IGZyb20gJy4uL2ZvY3VzYWJsZS1saXN0JztcbmltcG9ydCB7IGZpbmRMYXN0SW5kZXggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRkRLX0ZPQ1VTQUJMRV9HUklEX0RJUkVDVElWRSB9IGZyb20gJy4vZm9jdXNhYmxlLWdyaWQudG9rZW5zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVDZWxsUG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sSW5kZXg6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrRm9jdXNhYmxlR3JpZF0nLFxuICAgIGV4cG9ydEFzOiAnZmRrRm9jdXNhYmxlR3JpZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRLX0ZPQ1VTQUJMRV9HUklEX0RJUkVDVElWRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBGb2N1c2FibGVHcmlkRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUdyaWREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogRGlyZWN0aW9uIG9mIHRoZSBjb250ZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJyB8IG51bGwgPSAnbHRyJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGluIHRoZSBwcmV2aW91cy9uZXh0IHJvdyBzaG91bGQgYmUgc2VsZWN0ZWQgd2hlbiBnb2luZyBvdXQgb2YgdGhlIGZpcnN0L2xhc3QgY2VsbCBpbiB0aGUgcm93LiBEZWZhdWx0IGlzIGZhbHNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHdyYXBIb3Jpem9udGFsbHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl93cmFwSG9yaXpvbnRhbGx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgd3JhcEhvcml6b250YWxseSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBIb3Jpem9udGFsbHk7XG4gICAgfVxuXG4gICAgLyoqIFNwZWNpZnkgd2hpY2ggaXRlbSB0byBzZWxlY3QgaW4gcHJldi9uZXh0IHJvdyBpZiBpdHMgbGVuZ3RoIHNtYWxsZXIgdGhhbiBjdXJyZW50IGluZGV4LiBOdWxsaXNoIHZhbHVlIG1lYW5zIGRvIG5vdCBzZWxlY3QuIERlZmF1bHQgaXMgbnVsbC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3J0Um93Rm9jdXM6IE51bGxhYmxlPCdmaXJzdCcgfCAnbGFzdCc+ID0gbnVsbDtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gaXRlbSBmb2N1c2VkLCBjb250YWlucyBpdGVtJ3MgcG9zaXRpb24gaW5mby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpdGVtRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB3aG9sZSByb3cgZm9jdXNlZCwgY29udGFpbnMgcm93J3MgcG9zaXRpb24gaW5mby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByb3dGb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRLX0ZPQ1VTQUJMRV9MSVNUX0RJUkVDVElWRSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzYWJsZUxpc3RzOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlTGlzdERpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3dyYXBIb3Jpem9udGFsbHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgodGhpcy5fZm9jdXNhYmxlTGlzdHMpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0cykgPT5cbiAgICAgICAgICAgICAgICBsaXN0cy5mb3JFYWNoKChsaXN0LCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgbGlzdC5fc2V0R3JpZFBvc2l0aW9uKHsgcm93SW5kZXg6IGluZGV4LCB0b3RhbFJvd3M6IHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmxlbmd0aCB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX2ZvY3VzYWJsZUxpc3RzKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHF1ZXJ5TGlzdDogUXVlcnlMaXN0PEZvY3VzYWJsZUxpc3REaXJlY3RpdmU+KSA9PlxuICAgICAgICAgICAgICAgICAgICBtZXJnZSguLi5xdWVyeUxpc3QudG9BcnJheSgpLm1hcCgobGlzdCkgPT4gbGlzdC5fZ3JpZExpc3RGb2N1c2VkJCkpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93Rm9jdXNlZC5lbWl0KGZvY3VzZWRFdmVudCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0cy5mb3JFYWNoKChsaXN0KSA9PiBsaXN0LnNldFRhYmJhYmxlKGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuZm9yRWFjaCgobGlzdCkgPT4gbGlzdC5fc2V0SXRlbXNUYWJiYWJsZShmYWxzZSkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX2ZvY3VzYWJsZUxpc3RzKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHF1ZXJ5TGlzdDogUXVlcnlMaXN0PEZvY3VzYWJsZUxpc3REaXJlY3RpdmU+KSA9PlxuICAgICAgICAgICAgICAgICAgICBtZXJnZSguLi5xdWVyeUxpc3QudG9BcnJheSgpLm1hcCgobGlzdCkgPT4gbGlzdC5fZ3JpZEl0ZW1Gb2N1c2VkJCkpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUZvY3VzZWQuZW1pdChmb2N1c2VkRXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdHMuZm9yRWFjaCgobGlzdCkgPT4gbGlzdC5zZXRUYWJiYWJsZShmYWxzZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmZvckVhY2goKGxpc3QpID0+IGxpc3QuX3NldEl0ZW1zVGFiYmFibGUoZmFsc2UpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3RzLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVMaXN0cyksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb2N1c2FibGVMaXN0RGlyZWN0aXZlPikgPT5cbiAgICAgICAgICAgICAgICAgICAgbWVyZ2UoLi4ucXVlcnlMaXN0LnRvQXJyYXkoKS5tYXAoKGxpc3QpID0+IGxpc3QuX2tleWRvd24kKSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeyBldmVudCwgbGlzdCwgYWN0aXZlSXRlbUluZGV4IH0pID0+IHRoaXMuX29uS2V5ZG93bihldmVudCwgbGlzdCwgYWN0aXZlSXRlbUluZGV4KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXMgY2VsbCBieSBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0gcG9zaXRpb24gcG9zaXRpb24gb2YgdGhlIGNlbGxcbiAgICAgKi9cbiAgICBmb2N1c0NlbGwocG9zaXRpb246IEZvY3VzYWJsZUNlbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5fZm9jdXNhYmxlTGlzdHMuZ2V0KHBvc2l0aW9uLnJvd0luZGV4KTtcbiAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICAgIGxpc3Quc2V0QWN0aXZlSXRlbShwb3NpdGlvbi5jb2xJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsIGFjdGl2ZUl0ZW1JbmRleDogTnVsbGFibGU8bnVtYmVyPik6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbVVBfQVJST1csIERPV05fQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBQQUdFX0RPV04sIFBBR0VfVVBdKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGlzdHMgPSB0aGlzLl9mb2N1c2FibGVMaXN0cy50b0FycmF5KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3dJbmRleCA9IGxpc3RzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gbGlzdCk7XG4gICAgICAgIGxldCBuZXh0Um93SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IG5leHRSb3dJdGVtSW5kZXggPSBhY3RpdmVJdGVtSW5kZXggPz8gMDtcbiAgICAgICAgbGV0IHNjcm9sbEludG9WaWV3OiBTY3JvbGxQb3NpdGlvbjtcblxuICAgICAgICBjb25zdCBpc0ZpcnN0SXRlbUx0ciA9IGFjdGl2ZUl0ZW1JbmRleCA9PT0gMCAmJiB0aGlzLmNvbnRlbnREaXJlY3Rpb24gIT09ICdydGwnO1xuICAgICAgICBjb25zdCBpc0xhc3RJdGVtUnRsID0gYWN0aXZlSXRlbUluZGV4ID09PSBsaXN0Ll9mb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxICYmIHRoaXMuY29udGVudERpcmVjdGlvbiA9PT0gJ3J0bCc7XG5cbiAgICAgICAgY29uc3QgaXNGaXJzdEl0ZW1SdGwgPSBhY3RpdmVJdGVtSW5kZXggPT09IDAgJiYgdGhpcy5jb250ZW50RGlyZWN0aW9uID09PSAncnRsJztcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbUx0ciA9IGFjdGl2ZUl0ZW1JbmRleCA9PT0gbGlzdC5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSAmJiB0aGlzLmNvbnRlbnREaXJlY3Rpb24gIT09ICdydGwnO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGN1cnJlbnRSb3dJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERPV05fQVJST1c6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBuZXh0Um93SW5kZXggPSBjdXJyZW50Um93SW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBMRUZUX0FSUk9XOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndyYXBIb3Jpem9udGFsbHkgJiYgKGlzRmlyc3RJdGVtTHRyIHx8IGlzTGFzdEl0ZW1SdGwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGN1cnJlbnRSb3dJbmRleCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRSb3dJdGVtSW5kZXggPSBsaXN0c1tuZXh0Um93SW5kZXhdPy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFJJR0hUX0FSUk9XOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndyYXBIb3Jpem9udGFsbHkgJiYgKGlzRmlyc3RJdGVtUnRsIHx8IGlzTGFzdEl0ZW1MdHIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGN1cnJlbnRSb3dJbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRSb3dJdGVtSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUEFHRV9ET1dOOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbmV4dFJvd0luZGV4ID0gZmluZExhc3RJbmRleChsaXN0cywgKGl0ZW0pID0+IGl0ZW0uX2lzVmlzaWJsZSk7XG4gICAgICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXcgPSAndG9wJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUEFHRV9VUDpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIG5leHRSb3dJbmRleCA9IGxpc3RzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faXNWaXNpYmxlKTtcbiAgICAgICAgICAgICAgICBzY3JvbGxJbnRvVmlldyA9ICdib3R0b20nO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV4dFJvdyA9IGxpc3RzW25leHRSb3dJbmRleCA/PyAtMV07XG4gICAgICAgIGlmIChuZXh0Um93KSB7XG4gICAgICAgICAgICBpZiAobmV4dFJvdy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICBuZXh0Um93LmZvY3VzKHNjcm9sbEludG9WaWV3KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuX2dldEl0ZW1JbmRleChuZXh0Um93LCBuZXh0Um93SXRlbUluZGV4KTtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG5leHRSb3cuc2V0QWN0aXZlSXRlbShpdGVtSW5kZXgsIHNjcm9sbEludG9WaWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0SXRlbUluZGV4KGxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsIGFjdGl2ZUluZGV4OiBudW1iZXIpOiBOdWxsYWJsZTxudW1iZXI+IHtcbiAgICAgICAgaWYgKGFjdGl2ZUluZGV4ID49IDAgJiYgYWN0aXZlSW5kZXggPCBsaXN0Ll9mb2N1c2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3J0Um93Rm9jdXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zaG9ydFJvd0ZvY3VzID09PSAnZmlyc3QnID8gMCA6IGxpc3QuX2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgfVxufVxuIl19
|
|
@@ -53,11 +53,11 @@ export class FocusableItemDirective {
|
|
|
53
53
|
this.cellFocusedEventAnnouncer = this._defaultItemFocusedEventAnnouncer;
|
|
54
54
|
/** Event emitted when the cell receives focus, not being emitted when focus moves between item's children. */
|
|
55
55
|
this.cellFocused = new EventEmitter();
|
|
56
|
+
/** @hidden */
|
|
57
|
+
this.keydown = new Subject();
|
|
56
58
|
/** Element reference. */
|
|
57
59
|
this.elementRef = inject(ElementRef);
|
|
58
60
|
/** @hidden */
|
|
59
|
-
this._keydown$ = new Subject();
|
|
60
|
-
/** @hidden */
|
|
61
61
|
this._destroyRef = inject(DestroyRef);
|
|
62
62
|
/** @hidden */
|
|
63
63
|
this._zone = inject(NgZone);
|
|
@@ -75,6 +75,8 @@ export class FocusableItemDirective {
|
|
|
75
75
|
this._liveAnnouncer = inject(LiveAnnouncer);
|
|
76
76
|
/** @hidden */
|
|
77
77
|
this._document = inject(DOCUMENT);
|
|
78
|
+
/** @hidden */
|
|
79
|
+
this.element = () => this.elementRef.nativeElement;
|
|
78
80
|
this._focusableObserver
|
|
79
81
|
.observe(this.elementRef, false)
|
|
80
82
|
.pipe(takeUntilDestroyed())
|
|
@@ -101,6 +103,14 @@ export class FocusableItemDirective {
|
|
|
101
103
|
});
|
|
102
104
|
});
|
|
103
105
|
}
|
|
106
|
+
/** @hidden */
|
|
107
|
+
isFocusable() {
|
|
108
|
+
return this._focusable;
|
|
109
|
+
}
|
|
110
|
+
/** @hidden */
|
|
111
|
+
focus() {
|
|
112
|
+
this.elementRef.nativeElement.focus();
|
|
113
|
+
}
|
|
104
114
|
/** Set tabbable state */
|
|
105
115
|
setTabbable(state) {
|
|
106
116
|
this._tabbable = state;
|
|
@@ -157,7 +167,7 @@ export class FocusableItemDirective {
|
|
|
157
167
|
return;
|
|
158
168
|
}
|
|
159
169
|
if (isFocused) {
|
|
160
|
-
this.
|
|
170
|
+
this.keydown.next(event);
|
|
161
171
|
}
|
|
162
172
|
}
|
|
163
173
|
/** @hidden */
|
|
@@ -213,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
213
223
|
type: HostBinding,
|
|
214
224
|
args: ['attr.tabindex']
|
|
215
225
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFzQmhFLE1BQU0sT0FBTyxnQ0FBaUMsU0FB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QUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxjQUFjO0lBQ04saUNBQWlDLENBQUMsUUFBK0I7UUFDckUsT0FBTyxVQUFVLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxTQUFTLFVBQVUsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQzFGLFFBQVEsQ0FBQyxTQUNiLEVBQUUsQ0FBQztJQUNQLENBQUM7OEdBck1RLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlSQVBwQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLFdBQVcsRUFBRSxzQkFBc0I7YUFDdEM7U0FDSjs7MkZBRVEsc0JBQXNCO2tCQVZsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsV0FBVyx3QkFBd0I7eUJBQ3RDO3FCQUNKO2lCQUNKOzBFQUlPLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFZTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTTtnQkE4QkgsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgRjIsIE1BQ19FTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS50b2tlbnMnO1xuaW1wb3J0IHsgVGFiYmFibGVFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCB0eXBlIENlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIgPSBOdWxsYWJsZTwocG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbikgPT4gc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVJdGVtUG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sSW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbiAgICB0b3RhbENvbHM6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVJdGVtXScsICdbZm5Gb2N1c2FibGVJdGVtXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVJdGVtRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGZvY3VzYWJsZS4gRGVmYXVsdCBpcyB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka0ZvY3VzYWJsZUl0ZW0odmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCk7XG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG5cbiAgICBnZXQgZmRrRm9jdXNhYmxlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gaXRlbSB3aGljaCBpcyBpbiBncmlkIHJlY2VpdmVzIGZvY3VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2VsbEZvY3VzZWRFdmVudEFubm91bmNlcjogQ2VsbEZvY3VzZWRFdmVudEFubm91bmNlciA9IHRoaXMuX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2VsbCByZWNlaXZlcyBmb2N1cywgbm90IGJlaW5nIGVtaXR0ZWQgd2hlbiBmb2N1cyBtb3ZlcyBiZXR3ZWVuIGl0ZW0ncyBjaGlsZHJlbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjZWxsRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfa2V5ZG93biQgPSBuZXcgU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGVFbGVtZW50cyA9IG5ldyBNYXA8SFRNTEVsZW1lbnQsIG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGUgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgX3RhYmluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZSA/IDAgOiAtMTtcbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c2FibGVPYnNlcnZlciA9IGluamVjdChGb2N1c2FibGVPYnNlcnZlcik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJiYWJsZUVsZW1lbnRTZXJ2aWNlID0gaW5qZWN0KFRhYmJhYmxlRWxlbWVudFNlcnZpY2UpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlciA9IGluamVjdChMaXZlQW5ub3VuY2VyKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIGZhbHNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNGb2N1c2FibGUgJiYgaXNGb2N1c2FibGUgIT09IHRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9vbkZvY3VzaW4oKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkZvY3Vzb3V0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBTZXQgdGFiYmFibGUgc3RhdGUgKi9cbiAgICBzZXRUYWJiYWJsZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJiYWJsZSA9IHN0YXRlO1xuXG4gICAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fZW5hYmxlVGFiYmFibGVFbGVtZW50cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfb25Gb2N1c2luKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3RpbWVySWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVySWQpO1xuICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2VsbEZvY3VzZWQubmV4dCh0aGlzLl9wb3NpdGlvbik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLmNlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIodGhpcy5fcG9zaXRpb24pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25Gb2N1c291dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRpbWVvdXQgaXMgbmVlZGVkIHRvIHByZXZlbnQgZm9jdXNvdXQgZXZlbnQgZnJvbSBiZWluZyBlbWl0dGVkIHdoZW4gZm9jdXMgbW92ZXMgYmV0d2VlbiBpdGVtJ3MgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLl90aW1lcklkID0gbnVsbCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDaGlsZCA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIE1BQ19FTlRFUiwgRjJdKSAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgaXNGb2N1c2VkO1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0NlbGwgPVxuICAgICAgICAgICAgKChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRjIpICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkgJiYgIWlzRm9jdXNlZDtcblxuICAgICAgICBpZiAoc2hvdWxkRm9jdXNDaGlsZCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRhYmJhYmxlRWxlbWVudCA9IHRoaXMuX3RhYmJhYmxlRWxlbWVudFNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRhYmJhYmxlRWxlbWVudD8uZm9jdXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZEZvY3VzQ2VsbCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleWRvd24kLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbmFibGVUYWJiYWJsZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGFiYmFibGVFbGVtZW50cy5zaXplID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90YWJiYWJsZUVsZW1lbnRzLmZvckVhY2goKHRhYkluZGV4LCBlbGVtZW50KSA9PiAoZWxlbWVudC50YWJJbmRleCA9IHRhYkluZGV4KSk7XG4gICAgICAgIHRoaXMuX3RhYmJhYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kaXNhYmxlVGFiYmFibGVFbGVtZW50cygpOiB2b2lkIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgY2Fubm90IHNlbGVjdCBieSB0YWJpbmRleCBhdHRyaWJ1dGUgKGxpbmtzLCBpbnB1dHMsIGJ1dHRvbnMgbWlnaHQgbm90IGhhdmUgb25lIGJ1dCBzdGlsbCBjYW4gYmUgZm9jdXNhYmxlKSxcbiAgICAgICAgLy8gU2VsZWN0IGFsbCBlbGVtZW50cyBmcm9tIHRoZSBjZWxsIGFuZCBmaWx0ZXIgYnkgdGFiSW5kZXggcHJvcGVydHkuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJyonKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGVsbSkgPT4gZWxtLnRhYkluZGV4ID49IDApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZWxtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFiYmFibGVFbGVtZW50cy5zZXQoZWxtLCBlbG0udGFiSW5kZXgpO1xuICAgICAgICAgICAgICAgIGVsbS50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0SXRlbUZvY3VzZWRFdmVudEFubm91bmNlcihwb3NpdGlvbjogRm9jdXNhYmxlSXRlbVBvc2l0aW9uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGBDb2x1bW4gJHtwb3NpdGlvbi5jb2xJbmRleCArIDF9IG9mICR7cG9zaXRpb24udG90YWxDb2xzfSwgcm93OiAke3Bvc2l0aW9uLnJvd0luZGV4ICsgMX0gb2YgJHtcbiAgICAgICAgICAgIHBvc2l0aW9uLnRvdGFsUm93c1xuICAgICAgICB9YDtcbiAgICB9XG59XG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFzQmhFLE1BQU0sT0FBTyxnQ0FBaUMsU0FB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TUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgRjIsIE1BQ19FTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS50b2tlbnMnO1xuaW1wb3J0IHsgVGFiYmFibGVFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9mb2N1c2FibGUuaXRlbSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCB0eXBlIENlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIgPSBOdWxsYWJsZTwocG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbikgPT4gc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVJdGVtUG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sSW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbiAgICB0b3RhbENvbHM6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVJdGVtXScsICdbZm5Gb2N1c2FibGVJdGVtXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVJdGVtRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZUl0ZW0ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGZvY3VzYWJsZS4gRGVmYXVsdCBpcyB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka0ZvY3VzYWJsZUl0ZW0odmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCk7XG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG5cbiAgICBnZXQgZmRrRm9jdXNhYmxlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gaXRlbSB3aGljaCBpcyBpbiBncmlkIHJlY2VpdmVzIGZvY3VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2VsbEZvY3VzZWRFdmVudEFubm91bmNlcjogQ2VsbEZvY3VzZWRFdmVudEFubm91bmNlciA9IHRoaXMuX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2VsbCByZWNlaXZlcyBmb2N1cywgbm90IGJlaW5nIGVtaXR0ZWQgd2hlbiBmb2N1cyBtb3ZlcyBiZXR3ZWVuIGl0ZW0ncyBjaGlsZHJlbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjZWxsRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBrZXlkb3duID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Bvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlRWxlbWVudHMgPSBuZXcgTWFwPEhUTUxFbGVtZW50LCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVFbGVtZW50U2VydmljZSA9IGluamVjdChUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpdmVBbm5vdW5jZXIgPSBpbmplY3QoTGl2ZUFubm91bmNlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIGZhbHNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNGb2N1c2FibGUgJiYgaXNGb2N1c2FibGUgIT09IHRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9vbkZvY3VzaW4oKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkZvY3Vzb3V0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudCA9ICgpOiBIVE1MRWxlbWVudCA9PiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXNGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcblxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX29uRm9jdXNpbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl90aW1lcklkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcklkKTtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNlbGxGb2N1c2VkLm5leHQodGhpcy5fcG9zaXRpb24pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX3Bvc2l0aW9uKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaW1lb3V0IGlzIG5lZWRlZCB0byBwcmV2ZW50IGZvY3Vzb3V0IGV2ZW50IGZyb20gYmVpbmcgZW1pdHRlZCB3aGVuIGZvY3VzIG1vdmVzIGJldHdlZW4gaXRlbSdzIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLl90aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiAodGhpcy5fdGltZXJJZCA9IG51bGwpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGb2N1c2VkID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDZWxsID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJiYWJsZUVsZW1lbnRTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudChcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0YWJiYWJsZUVsZW1lbnQ/LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0NlbGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmtleWRvd24ubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYmJhYmxlRWxlbWVudHMuZm9yRWFjaCgodGFiSW5kZXgsIGVsZW1lbnQpID0+IChlbGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXgpKTtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICAvLyBTaW5jZSB3ZSBjYW5ub3Qgc2VsZWN0IGJ5IHRhYmluZGV4IGF0dHJpYnV0ZSAobGlua3MsIGlucHV0cywgYnV0dG9ucyBtaWdodCBub3QgaGF2ZSBvbmUgYnV0IHN0aWxsIGNhbiBiZSBmb2N1c2FibGUpLFxuICAgICAgICAvLyBTZWxlY3QgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGNlbGwgYW5kIGZpbHRlciBieSB0YWJJbmRleCBwcm9wZXJ0eS5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKicpKVxuICAgICAgICAgICAgLmZpbHRlcigoZWxtKSA9PiBlbG0udGFiSW5kZXggPj0gMClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbG0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNldChlbG0sIGVsbS50YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgZWxtLnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYENvbHVtbiAke3Bvc2l0aW9uLmNvbEluZGV4ICsgMX0gb2YgJHtwb3NpdGlvbi50b3RhbENvbHN9LCByb3c6ICR7cG9zaXRpb24ucm93SW5kZXggKyAxfSBvZiAke1xuICAgICAgICAgICAgcG9zaXRpb24udG90YWxSb3dzXG4gICAgICAgIH1gO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QucG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLWxpc3QucG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdFBvc2l0aW9uIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xuICAgIHRvdGFsUm93czogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLml0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vZm9jdXNhYmxlLml0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiB9IGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVJdGVtIGV4dGVuZHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICBfcG9zaXRpb24/OiBGb2N1c2FibGVJdGVtUG9zaXRpb247XG4gICAgaXNGb2N1c2FibGU6ICgoKSA9PiBib29sZWFuKSB8IGJvb2xlYW47XG4gICAga2V5ZG93bjogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PjtcbiAgICBzZXRUYWJiYWJsZTogKHRhYmJhYmxlOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIGVsZW1lbnQ6ICgoKSA9PiBIVE1MRWxlbWVudCkgfCBIVE1MRWxlbWVudDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the element of the item.
|
|
3
|
+
* @param item
|
|
4
|
+
*/
|
|
5
|
+
export function getItemElement(item) {
|
|
6
|
+
if (!item) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
if (typeof item.element === 'function') {
|
|
10
|
+
return item.element();
|
|
11
|
+
}
|
|
12
|
+
return item.element;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWl0ZW0tZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9mb2N1c2FibGUtaXRlbS9nZXQtaXRlbS1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBb0I7SUFDL0MsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7S0FDekI7SUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZUl0ZW0gfSBmcm9tICcuL2ZvY3VzYWJsZS5pdGVtJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBlbGVtZW50IG9mIHRoZSBpdGVtLlxuICogQHBhcmFtIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEl0ZW1FbGVtZW50KGl0ZW0/OiBGb2N1c2FibGVJdGVtKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgaXRlbS5lbGVtZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBpdGVtLmVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbS5lbGVtZW50O1xufVxuIl19
|
|
@@ -2,4 +2,7 @@ export * from './focusable-item.module';
|
|
|
2
2
|
export * from './focusable-item.directive';
|
|
3
3
|
export * from './focusable-item.tokens';
|
|
4
4
|
export * from './focusable.observer';
|
|
5
|
-
|
|
5
|
+
export * from './focusable.item';
|
|
6
|
+
export * from './is-item-focusable';
|
|
7
|
+
export * from './focusable-list.position';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0udG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXNhYmxlLml0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9pcy1pdGVtLWZvY3VzYWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnBvc2l0aW9uJztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns true if the item configured to be focusable.
|
|
3
|
+
* @param item
|
|
4
|
+
*/
|
|
5
|
+
export function isItemFocusable(item) {
|
|
6
|
+
return Boolean(typeof item.isFocusable === 'function' ? item.isFocusable() : item.isFocusable);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaXRlbS1mb2N1c2FibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvZm9jdXNhYmxlLWl0ZW0vaXMtaXRlbS1mb2N1c2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFtQjtJQUMvQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vZm9jdXNhYmxlLml0ZW0nO1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlbSBjb25maWd1cmVkIHRvIGJlIGZvY3VzYWJsZS5cbiAqIEBwYXJhbSBpdGVtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0l0ZW1Gb2N1c2FibGUoaXRlbTogRm9jdXNhYmxlSXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHR5cGVvZiBpdGVtLmlzRm9jdXNhYmxlID09PSAnZnVuY3Rpb24nID8gaXRlbS5pc0ZvY3VzYWJsZSgpIDogaXRlbS5pc0ZvY3VzYWJsZSk7XG59XG4iXX0=
|
|
@@ -2,15 +2,16 @@ import { DOCUMENT } from '@angular/common';
|
|
|
2
2
|
import { ContentChildren, DestroyRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, QueryList, Renderer2 } from '@angular/core';
|
|
3
3
|
import { finalize, map, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
4
4
|
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
5
|
-
import { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableObserver } from '../focusable-item';
|
|
5
|
+
import { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableObserver, isItemFocusable } from '../focusable-item';
|
|
6
6
|
import { FDK_FOCUSABLE_LIST_DIRECTIVE } from './focusable-list.tokens';
|
|
7
7
|
import { merge, Subject } from 'rxjs';
|
|
8
8
|
import { FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';
|
|
9
|
-
import { destroyObservable, getNativeElement } from '../../helpers';
|
|
10
9
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
11
10
|
import { intersectionObservable, KeyUtil } from '../../functions';
|
|
12
11
|
import { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';
|
|
13
12
|
import { scrollIntoView } from './scroll';
|
|
13
|
+
import { getItemElement } from '../focusable-item/get-item-element';
|
|
14
|
+
import { destroyObservable } from '../../helpers';
|
|
14
15
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
export class DeprecatedFocusableListDirective extends DeprecatedSelector {
|
|
@@ -76,10 +77,10 @@ export class FocusableListDirective {
|
|
|
76
77
|
/** @hidden */
|
|
77
78
|
this._isVisible = false;
|
|
78
79
|
/** @hidden */
|
|
79
|
-
this._focusable = false;
|
|
80
|
-
/** @hidden */
|
|
81
80
|
this._destroyRef = inject(DestroyRef);
|
|
82
81
|
/** @hidden */
|
|
82
|
+
this._focusable = false;
|
|
83
|
+
/** @hidden */
|
|
83
84
|
this._tabbable = false;
|
|
84
85
|
/** @hidden */
|
|
85
86
|
this._refreshItems$ = new Subject();
|
|
@@ -166,14 +167,14 @@ export class FocusableListDirective {
|
|
|
166
167
|
setActiveItem(index, scrollPosition) {
|
|
167
168
|
let availableIndex;
|
|
168
169
|
this._focusableItems.find((item, itemIndex) => {
|
|
169
|
-
if (itemIndex >= index && item
|
|
170
|
+
if (itemIndex >= index && isItemFocusable(item)) {
|
|
170
171
|
availableIndex = itemIndex;
|
|
171
172
|
return true;
|
|
172
173
|
}
|
|
173
174
|
return false;
|
|
174
175
|
});
|
|
175
176
|
if (availableIndex != null) {
|
|
176
|
-
scrollIntoView(this._focusableItems.get(availableIndex)
|
|
177
|
+
scrollIntoView(getItemElement(this._focusableItems.get(availableIndex)), scrollPosition);
|
|
177
178
|
this._keyManager?.setActiveItem(availableIndex);
|
|
178
179
|
}
|
|
179
180
|
}
|
|
@@ -229,19 +230,20 @@ export class FocusableListDirective {
|
|
|
229
230
|
// Vertical is enabled by default, so let's disable it here in consistency purposes
|
|
230
231
|
keyManager = keyManager.withVerticalOrientation(false);
|
|
231
232
|
}
|
|
232
|
-
keyManager.skipPredicate((
|
|
233
|
+
keyManager.skipPredicate((i) => !isItemFocusable(i));
|
|
233
234
|
this._keyManager = keyManager;
|
|
234
|
-
const focusListenerDestroyers = items.map((item, index) => this._renderer.listen(
|
|
235
|
+
const focusListenerDestroyers = items.map((item, index) => this._renderer.listen(getItemElement(item), 'focus', () => {
|
|
235
236
|
const directiveItem = this._focusableItems.get(index);
|
|
236
237
|
if (!directiveItem) {
|
|
237
238
|
return;
|
|
238
239
|
}
|
|
239
240
|
if (this._gridPosition) {
|
|
241
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
240
242
|
this._gridItemFocused$.next(directiveItem._position);
|
|
241
243
|
}
|
|
242
|
-
this.itemFocused.next({ index
|
|
244
|
+
this.itemFocused.next({ index, total: items.length });
|
|
243
245
|
this._focusableItems.forEach((i) => i.setTabbable(i === directiveItem));
|
|
244
|
-
this._keyManager?.setActiveItem(
|
|
246
|
+
this._keyManager?.setActiveItem(index);
|
|
245
247
|
}));
|
|
246
248
|
merge(...items.map((item) => item.keydown))
|
|
247
249
|
.pipe(tap((event) => {
|
|
@@ -254,20 +256,17 @@ export class FocusableListDirective {
|
|
|
254
256
|
.subscribe();
|
|
255
257
|
}
|
|
256
258
|
/** @hidden */
|
|
259
|
+
_defaultListFocusedEventAnnouncer(position) {
|
|
260
|
+
return `Row: ${position.rowIndex + 1} of ${position.totalRows}, use F2 button to dive in and focus list's item`;
|
|
261
|
+
}
|
|
262
|
+
/** @hidden */
|
|
257
263
|
_listenOnItems() {
|
|
258
264
|
const refresh$ = merge(this._refresh$, destroyObservable(this._destroyRef));
|
|
259
265
|
this._refresh$.next();
|
|
260
266
|
this._focusableItems.changes
|
|
261
267
|
.pipe(startWith(null), map(() => this._focusableItems.toArray()), tap((items) => {
|
|
262
|
-
const focusableItems = items.map((item, index) => ({
|
|
263
|
-
index,
|
|
264
|
-
focusable: () => item.fdkFocusableItem,
|
|
265
|
-
elementRef: item.elementRef,
|
|
266
|
-
focus: () => item.elementRef.nativeElement.focus(),
|
|
267
|
-
keydown: item._keydown$
|
|
268
|
-
}));
|
|
269
268
|
const direction = this.navigationDirection === 'grid' ? 'horizontal' : this.navigationDirection;
|
|
270
|
-
this._initializeFocusManager(
|
|
269
|
+
this._initializeFocusManager(items, {
|
|
271
270
|
direction,
|
|
272
271
|
contentDirection: this.contentDirection,
|
|
273
272
|
wrap: this.wrap
|
|
@@ -275,10 +274,6 @@ export class FocusableListDirective {
|
|
|
275
274
|
}), takeUntil(refresh$))
|
|
276
275
|
.subscribe();
|
|
277
276
|
}
|
|
278
|
-
/** @hidden */
|
|
279
|
-
_defaultListFocusedEventAnnouncer(position) {
|
|
280
|
-
return `Row: ${position.rowIndex + 1} of ${position.totalRows}, use F2 button to dive in and focus list's item`;
|
|
281
|
-
}
|
|
282
277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
283
278
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: FocusableListDirective, isStandalone: true, selector: "[fdkFocusableList]", inputs: { focusable: "focusable", navigationDirection: "navigationDirection", contentDirection: "contentDirection", wrap: "wrap", listFocusedEventAnnouncer: "listFocusedEventAnnouncer" }, outputs: { itemFocused: "itemFocused" }, host: { listeners: { "keydown": "_onKeydown($event)", "focus": "_onFocus()" }, properties: { "attr.tabindex": "this._tabindex" } }, providers: [
|
|
284
279
|
{
|
|
@@ -325,4 +320,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
325
320
|
type: HostListener,
|
|
326
321
|
args: ['focus']
|
|
327
322
|
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE1BQU0s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Q3JDLFdBQVcsd0JBQXdCO3lCQUN0QztxQkFDSjtpQkFDSjswRUFJTyxTQUFTO3NCQURaLEtBQUs7Z0JBWU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFLTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBS0csV0FBVztzQkFEbkIsTUFBTTtnQkFLRSx3QkFBd0I7c0JBRGhDLGVBQWU7dUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQXVEaEUsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWU7Z0JBdUI1QixVQUFVO3NCQURULFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQStCN0IsUUFBUTtzQkFEYixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsIEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnRva2Vucyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c0tleU1hbmFnZXIsIExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBkZXN0cm95T2JzZXJ2YWJsZSwgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSwgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBGMiwgTUFDX0VOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IHNjcm9sbEludG9WaWV3LCBTY3JvbGxQb3NpdGlvbiB9IGZyb20gJy4vc2Nyb2xsJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVMaXN0UG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgdG90YWxSb3dzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdEl0ZW1Gb2N1c2VkRXZlbnQge1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVMaXN0S2V5ZG93bkV2ZW50IHtcbiAgICBsaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlO1xuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50O1xuICAgIGFjdGl2ZUl0ZW1JbmRleDogTnVsbGFibGU8bnVtYmVyPjtcbn1cblxuaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RDb25maWcge1xuICAgIHdyYXA/OiBib29sZWFuO1xuICAgIGRpcmVjdGlvbj86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCc7XG4gICAgY29udGVudERpcmVjdGlvbj86ICdsdHInIHwgJ3J0bCcgfCBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBGb2N1c2FibGVJdGVtID0gRm9jdXNhYmxlT3B0aW9uICZcbiAgICBIYXNFbGVtZW50UmVmICYgeyBpbmRleDogbnVtYmVyOyBmb2N1c2FibGU6ICgoKSA9PiBib29sZWFuKSB8IGJvb2xlYW47IGtleWRvd246IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4gfTtcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVMaXN0XScsICdbZm5Gb2N1c2FibGVMaXN0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka0ZvY3VzYWJsZUxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIHRoZSB3aG9sZSBsaXN0IHNob3VsZCBiZSBmb2N1c2FibGUsIGhhbmR5IGluIGdyaWRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvY3VzYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0aGlzLl9mb2N1c2FibGUpO1xuICAgIH1cbiAgICBnZXQgZm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNhYmxlO1xuICAgIH1cblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgbmF2aWdhdGlvbi4gU2hvdWxkIGJlIHNldCB0byAnZ3JpZCcgd2hlbiBsaXN0IGlzIGEgcGFydCBvZiBncmlkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGlvbkRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8ICdncmlkJyA9ICd2ZXJ0aWNhbCc7XG5cbiAgICAvKiogRGlyZWN0aW9uIG9mIHRoZSBjb250ZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudERpcmVjdGlvbjogJ2x0cicgfCAncnRsJyB8IG51bGwgPSAnbHRyJztcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgd3JhcHBpbmcgbW9kZSB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGFjdGl2ZSBpdGVtIHdpbGwgd3JhcCB0byB0aGUgb3RoZXIgZW5kIG9mIGxpc3Qgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBpdGVtcyBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgd3JhcCA9IGZhbHNlO1xuXG4gICAgLyoqIEZ1bmN0aW9uLCB3aGljaCByZXR1cm5zIGEgc3RyaW5nIHRvIGJlIGFubm91bmNlZCBieSBzY3JlZW4tcmVhZGVyIHdoZW5ldmVyIGFuIHJvdyB3aGljaCBpcyBpbiBncmlkIHJlY2VpdmVzIGZvY3VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGlzdEZvY3VzZWRFdmVudEFubm91bmNlcjogKHBvc2l0aW9uOiBGb2N1c2FibGVMaXN0UG9zaXRpb24pID0+IHN0cmluZyA9IHRoaXMuX2RlZmF1bHRMaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBsaXN0J3MgaXRlbSBmb2N1c2VkLCBjb250YWlucyBpdGVtJ3MgcG9zaXRpb24gaW5mby4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpdGVtRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlTGlzdEl0ZW1Gb2N1c2VkRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHJlYWRvbmx5IF9wcm9qZWN0ZWRGb2N1c2FibGVJdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2ZvY3VzYWJsZUl0ZW1zKCk6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcyA/IHRoaXMuX2l0ZW1zIDogdGhpcy5fcHJvamVjdGVkRm9jdXNhYmxlSXRlbXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXRlbXM6IFF1ZXJ5TGlzdDxGb2N1c2FibGVJdGVtRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2dyaWRJdGVtRm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVJdGVtUG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9ncmlkTGlzdEZvY3VzZWQkID0gbmV3IFN1YmplY3Q8Rm9jdXNhYmxlTGlzdFBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfa2V5ZG93biQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0S2V5ZG93bkV2ZW50PigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dyaWRQb3NpdGlvbjogeyByb3dJbmRleDogbnVtYmVyOyB0b3RhbFJvd3M6IG51bWJlciB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyPzogRm9jdXNLZXlNYW5hZ2VyPEZvY3VzYWJsZUl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJiYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoSXRlbXMkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpdmVBbm5vdW5jZXIgPSBpbmplY3QoTGl2ZUFubm91bmNlcik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mb2N1c2FibGVPYnNlcnZlciA9IGluamVjdChGb2N1c2FibGVPYnNlcnZlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgICBnZXQgX3RhYmluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZSA/IDAgOiAtMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpbnRlcnNlY3Rpb25PYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgeyB0aHJlc2hvbGQ6IDAuMjUgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNWaXNpYmxlKSA9PiAodGhpcy5faXNWaXNpYmxlID0gaXNWaXNpYmxlWzBdPy5pc0ludGVyc2VjdGluZykpO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLCBmYWxzZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXNGb2N1c2FibGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzRm9jdXNhYmxlICYmIGlzRm9jdXNhYmxlICE9PSB0aGlzLmZvY3VzYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBBbHJlYWR5IGhhbmRsZWRcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzRm9jdXNlZCA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDaGlsZCA9IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIE1BQ19FTlRFUiwgRjJdKSAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgaXNGb2N1c2VkO1xuICAgICAgICBjb25zdCBzaG91bGRGb2N1c0xpc3QgPVxuICAgICAgICAgICAgKChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRjIpICYmIGV2ZW50LnNoaWZ0S2V5KSB8fCBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRVNDQVBFKSkgJiYgIWlzRm9jdXNlZDtcblxuICAgICAgICBpZiAoc2hvdWxkRm9jdXNDaGlsZCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSXRlbSgwKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZEZvY3VzTGlzdCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fa2V5ZG93biQubmV4dCh7IGxpc3Q6IHRoaXMsIGV2ZW50LCBhY3RpdmVJdGVtSW5kZXg6IHRoaXMuX2tleU1hbmFnZXI/LmFjdGl2ZUl0ZW1JbmRleCA/PyBudWxsIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIGFzeW5jIF9vbkZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5fZ3JpZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9ncmlkTGlzdEZvY3VzZWQkLm5leHQodGhpcy5fZ3JpZFBvc2l0aW9uKTtcblxuICAgICAgICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5jbGVhcigpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLmxpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXIodGhpcy5fZ3JpZFBvc2l0aW9uKSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0VGFiYmFibGUodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlc1snd3JhcCddKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gdGhpcy5fa2V5TWFuYWdlci53aXRoV3JhcChjaGFuZ2VzWyd3cmFwJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWyduYXZpZ2F0aW9uRGlyZWN0aW9uJ10pIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU5hdmlnYXRpb25EaXJlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Pbkl0ZW1zKCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBpdGVtcyBwcm9ncmFtbWF0aWNhbGx5LiAqL1xuICAgIHNldEl0ZW1zKGl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbURpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbXMgPSBpdGVtcztcbiAgICAgICAgdGhpcy5fbGlzdGVuT25JdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IGFjdGl2ZSBpdGVtIGluIGxpc3QgKi9cbiAgICBzZXRBY3RpdmVJdGVtKGluZGV4OiBudW1iZXIsIHNjcm9sbFBvc2l0aW9uPzogU2Nyb2xsUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgbGV0IGF2YWlsYWJsZUluZGV4O1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmZpbmQoKGl0ZW0sIGl0ZW1JbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW1JbmRleCA+PSBpbmRleCAmJiBpdGVtLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVJbmRleCA9IGl0ZW1JbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoYXZhaWxhYmxlSW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgc2Nyb2xsSW50b1ZpZXcodGhpcy5fZm9jdXNhYmxlSXRlbXMuZ2V0KGF2YWlsYWJsZUluZGV4KT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGF2YWlsYWJsZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1cyB3aG9sZSBsaXN0ICovXG4gICAgZm9jdXMoc2Nyb2xsUG9zaXRpb24/OiBTY3JvbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEl0ZW1zVGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRUYWJiYWJsZShzdGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEdyaWRQb3NpdGlvbihwb3NpdGlvbjogRm9jdXNhYmxlTGlzdFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyaWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVJdGVtcyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLl9wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sczogdGhpcy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zOiBGb2N1c2FibGVJdGVtW10sIGNvbmZpZzogRm9jdXNhYmxlTGlzdENvbmZpZyA9IHt9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hJdGVtcyQubmV4dCgpO1xuXG4gICAgICAgIGxldCBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxhbnk+KGl0ZW1zKS53aXRoSG9tZUFuZEVuZCgpO1xuXG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGNvbmZpZy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTsgLy8gc2hvdWxkIGJlIHJlcGxhY2VkXG5cbiAgICAgICAgICAgIC8vIFZlcnRpY2FsIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgc28gbGV0J3MgZGlzYWJsZSBpdCBoZXJlIGluIGNvbnNpc3RlbmN5IHB1cnBvc2VzXG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICEodHlwZW9mIGl0ZW0uZm9jdXNhYmxlID09PSAnYm9vbGVhbicgPyBpdGVtLmZvY3VzYWJsZSA6IGl0ZW0uZm9jdXNhYmxlKCkpKTtcblxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0ga2V5TWFuYWdlcjtcblxuICAgICAgICBjb25zdCBmb2N1c0xpc3RlbmVyRGVzdHJveWVycyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oZ2V0TmF0aXZlRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZUl0ZW0gPSB0aGlzLl9mb2N1c2FibGVJdGVtcy5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncmlkSXRlbUZvY3VzZWQkLm5leHQoZGlyZWN0aXZlSXRlbS5fcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbUZvY3VzZWQubmV4dCh7IGluZGV4OiBpdGVtLmluZGV4LCB0b3RhbDogaXRlbXMubGVuZ3RoIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmZvckVhY2goKGkpID0+IGkuc2V0VGFiYmFibGUoaSA9PT0gZGlyZWN0aXZlSXRlbSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oaXRlbS5pbmRleCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lcmdlKC4uLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXlkb3duKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWxyZWFkeSBoYW5kbGVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLl9yZWZyZXNoSXRlbXMkLCBkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSkpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzLmZvckVhY2goKGQpID0+IGQoKSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoJCA9IG1lcmdlKHRoaXMuX3JlZnJlc2gkLCBkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9mb2N1c2FibGVJdGVtcy50b0FycmF5KCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXRlbXM6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVbXSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb2N1c2FibGVJdGVtczogRm9jdXNhYmxlSXRlbVtdID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlOiAoKSA9PiBpdGVtLmZka0ZvY3VzYWJsZUl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVmOiBpdGVtLmVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb2N1czogKCkgPT4gaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWRvd246IGl0ZW0uX2tleWRvd24kXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICdncmlkJyA/ICdob3Jpem9udGFsJyA6IHRoaXMubmF2aWdhdGlvbkRpcmVjdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGZvY3VzYWJsZUl0ZW1zLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RGlyZWN0aW9uOiB0aGlzLmNvbnRlbnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwOiB0aGlzLndyYXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHJlZnJlc2gkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXIocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgUm93OiAke3Bvc2l0aW9uLnJvd0luZGV4ICsgMX0gb2YgJHtwb3NpdGlvbi50b3RhbFJvd3N9LCB1c2UgRjIgYnV0dG9uIHRvIGRpdmUgaW4gYW5kIGZvY3VzIGxpc3QncyBpdGVtYDtcbiAgICB9XG59XG4iXX0=
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNILDRCQUE0QixFQUc1QixpQkFBaUIsRUFDakIsZUFBZSxFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0s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QUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5pbXBvcnQge1xuICAgIEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgRm9jdXNhYmxlSXRlbSxcbiAgICBGb2N1c2FibGVMaXN0UG9zaXRpb24sXG4gICAgRm9jdXNhYmxlT2JzZXJ2ZXIsXG4gICAgaXNJdGVtRm9jdXNhYmxlXG59IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnRva2Vucyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSwgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBGMiwgTUFDX0VOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IHNjcm9sbEludG9WaWV3LCBTY3JvbGxQb3NpdGlvbiB9IGZyb20gJy4vc2Nyb2xsJztcbmltcG9ydCB7IGdldEl0ZW1FbGVtZW50IH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0vZ2V0LWl0ZW0tZWxlbWVudCc7XG5pbXBvcnQgeyBkZXN0cm95T2JzZXJ2YWJsZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RJdGVtRm9jdXNlZEV2ZW50IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdEtleWRvd25FdmVudCB7XG4gICAgbGlzdDogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZTtcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudDtcbiAgICBhY3RpdmVJdGVtSW5kZXg6IE51bGxhYmxlPG51bWJlcj47XG59XG5cbmludGVyZmFjZSBGb2N1c2FibGVMaXN0Q29uZmlnIHtcbiAgICB3cmFwPzogYm9vbGVhbjtcbiAgICBkaXJlY3Rpb24/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuICAgIGNvbnRlbnREaXJlY3Rpb24/OiAnbHRyJyB8ICdydGwnIHwgbnVsbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVMaXN0XScsICdbZm5Gb2N1c2FibGVMaXN0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka0ZvY3VzYWJsZUxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIHRoZSB3aG9sZSBsaXN0IHNob3VsZCBiZSBmb2N1c2FibGUsIGhhbmR5IGluIGdyaWRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvY3VzYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0aGlzLl9mb2N1c2FibGUpO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIERpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uLiBTaG91bGQgYmUgc2V0IHRvICdncmlkJyB3aGVuIGxpc3QgaXMgYSBwYXJ0IG9mIGdyaWQuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2dyaWQnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWN0aXZlIGl0ZW0gd2lsbCB3cmFwIHRvIHRoZSBvdGhlciBlbmQgb2YgbGlzdCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwID0gZmFsc2U7XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gcm93IHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyOiAocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbikgPT4gc3RyaW5nID0gdGhpcy5fZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGxpc3QncyBpdGVtIGZvY3VzZWQsIGNvbnRhaW5zIGl0ZW0ncyBwb3NpdGlvbiBpbmZvLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGl0ZW1Gb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgX3Byb2plY3RlZEZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZm9jdXNhYmxlSXRlbXMoKTogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zID8gdGhpcy5faXRlbXMgOiB0aGlzLl9wcm9qZWN0ZWRGb2N1c2FibGVJdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZ3JpZEl0ZW1Gb2N1c2VkJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2dyaWRMaXN0Rm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9rZXlkb3duJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ncmlkUG9zaXRpb246IHsgcm93SW5kZXg6IG51bWJlcjsgdG90YWxSb3dzOiBudW1iZXIgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcj86IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEl0ZW1zJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgdGhyZXNob2xkOiAwLjI1IH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzVmlzaWJsZSkgPT4gKHRoaXMuX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVswXT8uaXNJbnRlcnNlY3RpbmcpKTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZiwgZmFsc2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRm9jdXNhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzYWJsZSAmJiBpc0ZvY3VzYWJsZSAhPT0gdGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2FibGUgPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gQWxyZWFkeSBoYW5kbGVkXG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNMaXN0ID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0xpc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2tleWRvd24kLm5leHQoeyBsaXN0OiB0aGlzLCBldmVudCwgYWN0aXZlSXRlbUluZGV4OiB0aGlzLl9rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXggPz8gbnVsbCB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBhc3luYyBfb25Gb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZExpc3RGb2N1c2VkJC5uZXh0KHRoaXMuX2dyaWRQb3NpdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5saXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX2dyaWRQb3NpdGlvbikpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fa2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3dyYXAnXSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aFdyYXAoY2hhbmdlc1snd3JhcCddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlc1snbmF2aWdhdGlvbkRpcmVjdGlvbiddKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25JdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaXRlbXMgcHJvZ3JhbW1hdGljYWxseS4gKi9cbiAgICBzZXRJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBhY3RpdmUgaXRlbSBpbiBsaXN0ICovXG4gICAgc2V0QWN0aXZlSXRlbShpbmRleDogbnVtYmVyLCBzY3JvbGxQb3NpdGlvbj86IFNjcm9sbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBhdmFpbGFibGVJbmRleDtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5maW5kKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPj0gaW5kZXggJiYgaXNJdGVtRm9jdXNhYmxlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF2YWlsYWJsZUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KGdldEl0ZW1FbGVtZW50KHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmdldChhdmFpbGFibGVJbmRleCkpLCBzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGF2YWlsYWJsZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1cyB3aG9sZSBsaXN0ICovXG4gICAgZm9jdXMoc2Nyb2xsUG9zaXRpb24/OiBTY3JvbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEl0ZW1zVGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRUYWJiYWJsZShzdGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEdyaWRQb3NpdGlvbihwb3NpdGlvbjogRm9jdXNhYmxlTGlzdFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyaWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVJdGVtcyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLl9wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sczogdGhpcy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zOiBGb2N1c2FibGVJdGVtW10sIGNvbmZpZzogRm9jdXNhYmxlTGlzdENvbmZpZyA9IHt9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hJdGVtcyQubmV4dCgpO1xuXG4gICAgICAgIGxldCBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxhbnk+KGl0ZW1zKS53aXRoSG9tZUFuZEVuZCgpO1xuXG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGNvbmZpZy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTsgLy8gc2hvdWxkIGJlIHJlcGxhY2VkXG5cbiAgICAgICAgICAgIC8vIFZlcnRpY2FsIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgc28gbGV0J3MgZGlzYWJsZSBpdCBoZXJlIGluIGNvbnNpc3RlbmN5IHB1cnBvc2VzXG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoKGkpID0+ICFpc0l0ZW1Gb2N1c2FibGUoaSkpO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBrZXlNYW5hZ2VyO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmxpc3RlbihnZXRJdGVtRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZUl0ZW0gPSB0aGlzLl9mb2N1c2FibGVJdGVtcy5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncmlkSXRlbUZvY3VzZWQkLm5leHQoZGlyZWN0aXZlSXRlbS5fcG9zaXRpb24hKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLm5leHQoeyBpbmRleCwgdG90YWw6IGl0ZW1zLmxlbmd0aCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChpKSA9PiBpLnNldFRhYmJhYmxlKGkgPT09IGRpcmVjdGl2ZUl0ZW0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgbWVyZ2UoLi4uaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmtleWRvd24pKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IGhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuX3JlZnJlc2hJdGVtcyQsIGRlc3Ryb3lPYnNlcnZhYmxlKHRoaXMuX2Rlc3Ryb3lSZWYpKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gZm9jdXNMaXN0ZW5lckRlc3Ryb3llcnMuZm9yRWFjaCgoZCkgPT4gZCgpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRMaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVMaXN0UG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYFJvdzogJHtwb3NpdGlvbi5yb3dJbmRleCArIDF9IG9mICR7cG9zaXRpb24udG90YWxSb3dzfSwgdXNlIEYyIGJ1dHRvbiB0byBkaXZlIGluIGFuZCBmb2N1cyBsaXN0J3MgaXRlbWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoJCA9IG1lcmdlKHRoaXMuX3JlZnJlc2gkLCBkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9mb2N1c2FibGVJdGVtcy50b0FycmF5KCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICdncmlkJyA/ICdob3Jpem9udGFsJyA6IHRoaXMubmF2aWdhdGlvbkRpcmVjdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RGlyZWN0aW9uOiB0aGlzLmNvbnRlbnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwOiB0aGlzLndyYXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHJlZnJlc2gkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|