@dbg-riskit/angular-testing 9999.9999.9999-rc.33219 → 9999.9999.9999-rc.373134
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/esm2020/lib/definitions/data.table.definition.mjs +12 -12
- package/esm2020/lib/definitions/download.menu.page.mjs +4 -4
- package/esm2020/lib/definitions/highlighter.directive.page.mjs +4 -4
- package/esm2020/lib/definitions/layout.component.page.mjs +4 -4
- package/esm2020/lib/definitions/message.page.mjs +4 -4
- package/esm2020/lib/stubs/auth/auth.routing.flow.service.stub.mjs +3 -3
- package/esm2020/lib/stubs/auth/auth.service.stub.mjs +3 -3
- package/esm2020/lib/stubs/auth/well.known.service.stub.mjs +3 -3
- package/esm2020/lib/stubs/http.service.stub.mjs +6 -6
- package/esm2020/lib/stubs/login.menu.stub.component.mjs +3 -3
- package/esm2020/lib/stubs/router/activated.route.stub.mjs +3 -3
- package/esm2020/lib/stubs/router/router.link.stub.mjs +3 -3
- package/esm2020/lib/stubs/router/router.module.stub.mjs +3 -4
- package/esm2020/lib/stubs/router/router.outlet.stub.component.mjs +3 -3
- package/esm2020/lib/stubs/router/router.stub.mjs +3 -3
- package/esm2020/lib/testing.module.mjs +7 -9
- package/fesm2015/dbg-riskit-angular-testing.mjs +65 -68
- package/fesm2015/dbg-riskit-angular-testing.mjs.map +1 -1
- package/fesm2020/dbg-riskit-angular-testing.mjs +65 -68
- package/fesm2020/dbg-riskit-angular-testing.mjs.map +1 -1
- package/lib/definitions/data.table.definition.d.ts +1 -1
- package/lib/definitions/download.menu.page.d.ts +1 -1
- package/lib/definitions/highlighter.directive.page.d.ts +1 -1
- package/lib/definitions/layout.component.page.d.ts +1 -1
- package/lib/definitions/message.page.d.ts +1 -1
- package/lib/stubs/login.menu.stub.component.d.ts +1 -1
- package/lib/stubs/router/router.link.stub.d.ts +1 -1
- package/lib/stubs/router/router.module.stub.d.ts +1 -1
- package/lib/stubs/router/router.outlet.stub.component.d.ts +1 -1
- package/package.json +16 -16
- /package/{dbg-riskit-angular-testing.d.ts → index.d.ts} +0 -0
|
@@ -359,41 +359,41 @@ export class Pager {
|
|
|
359
359
|
}
|
|
360
360
|
expectLeadingButtonsDisabled() {
|
|
361
361
|
for (let i = 0; i < 2; i++) {
|
|
362
|
-
expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])
|
|
362
|
+
expect(this.pageButtons[i].classes['mat-mdc-button-toggle-disabled'])
|
|
363
363
|
.toBe(true, 'First two are disabled.');
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
expectLeadingButtonsNotDisabled() {
|
|
367
367
|
for (let i = 0; i < 2; i++) {
|
|
368
|
-
expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])
|
|
368
|
+
expect(this.pageButtons[i].classes['mat-mdc-button-toggle-disabled'])
|
|
369
369
|
.not.toBe(true, 'First two are not disabled.');
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
expectTrailingButtonsDisabled() {
|
|
373
373
|
for (let i = this.pageButtons.length - 1; i > this.pageButtons.length - 3; i--) {
|
|
374
|
-
expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])
|
|
374
|
+
expect(this.pageButtons[i].classes['mat-mdc-button-toggle-disabled'])
|
|
375
375
|
.toBe(true, 'Last two are disabled.');
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
expectTrailingButtonsNotDisabled() {
|
|
379
379
|
for (let i = this.pageButtons.length - 1; i > this.pageButtons.length - 3; i--) {
|
|
380
|
-
expect(this.pageButtons[i].classes['mat-button-toggle-disabled'])
|
|
380
|
+
expect(this.pageButtons[i].classes['mat-mdc-button-toggle-disabled'])
|
|
381
381
|
.not.toBe(true, 'Last two are not disabled.');
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
384
|
expectButtonNumbers(numbers) {
|
|
385
385
|
for (let i = 0; i < numbers.length; i++) {
|
|
386
|
-
expect(this.pageButtons[i + 2].query(By.css('.mat-button-toggle-label-content'))
|
|
386
|
+
expect(this.pageButtons[i + 2].query(By.css('.mat-mdc-button-toggle-label-content'))
|
|
387
387
|
.nativeElement.textContent.trim())
|
|
388
388
|
.toEqual(numbers[i] + '', 'Button numbers are correct');
|
|
389
389
|
}
|
|
390
390
|
}
|
|
391
391
|
expectButtonActive(index) {
|
|
392
|
-
expect(this.pageButtons[index].classes['mat-button-toggle-checked'])
|
|
392
|
+
expect(this.pageButtons[index].classes['mat-mdc-button-toggle-checked'])
|
|
393
393
|
.toBe(true, 'Button is active.');
|
|
394
394
|
}
|
|
395
395
|
click(index) {
|
|
396
|
-
click(this.pageButtons[index].query(By.css('.mat-button-toggle-label-content')).nativeElement);
|
|
396
|
+
click(this.pageButtons[index].query(By.css('.mat-mdc-button-toggle-label-content')).nativeElement);
|
|
397
397
|
this.page.detectChanges();
|
|
398
398
|
this.page.advanceAndDetectChanges();
|
|
399
399
|
}
|
|
@@ -457,8 +457,8 @@ export class TestDataTableHostComponent {
|
|
|
457
457
|
};
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
|
-
TestDataTableHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
461
|
-
TestDataTableHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
460
|
+
TestDataTableHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestDataTableHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
461
|
+
TestDataTableHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TestDataTableHostComponent, selector: "ng-component", ngImport: i0, template: `
|
|
462
462
|
<risk-data-table [data]="data"
|
|
463
463
|
[footer]="footer"
|
|
464
464
|
[pageSize]="20"
|
|
@@ -502,8 +502,8 @@ TestDataTableHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
502
502
|
</risk-data-table-column-group>
|
|
503
503
|
<risk-data-table-column-group></risk-data-table-column-group>
|
|
504
504
|
</risk-data-table-detail-row>
|
|
505
|
-
</risk-data-table>`, isInline: true,
|
|
506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
505
|
+
</risk-data-table>`, isInline: true, dependencies: [{ kind: "component", type: i1.DataTableComponent, selector: "risk-data-table", inputs: ["footer", "pageSize", "striped", "showFooter", "allowEmpty", "trackByRowKey", "highlighting", "stickyHeader", "stickyHeaderOffsetTopPx", "data", "defaultOrdering"], exportAs: ["dataTable"] }, { kind: "directive", type: i1.ɵDataTableColumnDirective, selector: "risk-data-table-column", inputs: ["title", "sortingKey", "tooltip", "contentAlign", "headerAlign", "footerAlign", "class"] }, { kind: "directive", type: i1.ɵDataTableColumnGroupDirective, selector: "risk-data-table-column-group" }, { kind: "directive", type: i1.ɵDataTableColumnCellDirective, selector: "[risk-data-table-cell]" }, { kind: "directive", type: i1.ɵDataTableColumnFooterDirective, selector: "[risk-data-table-footer-cell]" }, { kind: "directive", type: i1.ɵDataTableRowDetailDirective, selector: "risk-data-table-detail-row" }, { kind: "component", type: i1.DataTableRowDetailExpanderComponent, selector: "risk-data-table-detail-expander", inputs: ["expanded"] }] });
|
|
506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestDataTableHostComponent, decorators: [{
|
|
507
507
|
type: Component,
|
|
508
508
|
args: [{
|
|
509
509
|
template: `
|
|
@@ -553,4 +553,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
553
553
|
</risk-data-table>`
|
|
554
554
|
}]
|
|
555
555
|
}], ctorParameters: function () { return []; } });
|
|
556
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS50YWJsZS5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci10ZXN0aW5nL3NyYy9saWIvZGVmaW5pdGlvbnMvZGF0YS50YWJsZS5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdDLE9BQU8sRUFBYyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG1DQUFtQyxFQUNuQyxpQkFBaUIsRUFFakIsZUFBZSxFQUNsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQzs7O0FBRWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsWUFBMEIsWUFBMEIsRUFDekIsSUFBd0U7UUFEekUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBb0U7SUFDbkcsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FB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RGVidWdOb2RlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZX0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7TWF0QW5jaG9yLCBNYXRCdXR0b259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7Qnl9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtWYWx1ZUdldHRlciwgc2VjdXJlUmFuZG9tfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93RGV0YWlsRXhwYW5kZXJDb21wb25lbnQsXG4gICAgSElHSExJR0hURVJfQ0xBU1MsXG4gICAgT3JkZXJpbmdDcml0ZXJpYSxcbiAgICBQYWdpbmdDb21wb25lbnRcbn0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1kYXRhdGFibGUnO1xuaW1wb3J0IHtjbGlja30gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi9wYWdlLmJhc2UnO1xuXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlRGVmaW5pdGlvbiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGRlYnVnRWxlbWVudDogRGVidWdFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHBhZ2U6IHsgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCwgYWR2YW5jZUFuZERldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50KCk6IERhdGFUYWJsZUNvbXBvbmVudDx1bmtub3duLCB1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGEoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQucGxhaW5EYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuY3NzKCcucmlzay1kYXRhLXRhYmxlLXdyYXBwZXIgPiB0YWJsZScpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhlYWRlcigpOiBUYWJsZUhlYWRlciB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVIZWFkZXIodGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoKGRlKSA9PiBkZS5yZWZlcmVuY2VzLm1haW5IZWFkZXIpLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc29ydGluZygpOiBUYWJsZVNvcnRpbmcge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlU29ydGluZyh0aGlzLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9keSgpOiBUYWJsZUJvZHkge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlQm9keSh0aGlzLmRlYnVnRWxlbWVudC5xdWVyeSgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFpbkJvZHkpLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9vdGVyKCk6IFRhYmxlRm9vdGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUZvb3Rlcih0aGlzLmRlYnVnRWxlbWVudC5xdWVyeSgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFpbkZvb3RlcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVjb3Jkc0NvdW50KCk6IFJlY29yZHNDb3VudCB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjb3Jkc0NvdW50KHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcygnLnJpc2stZGF0YS10YWJsZS1wYWdlLWNvdW50JykpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2VyKCk6IFBhZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWdlcih0aGlzLmRlYnVnRWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoUGFnaW5nQ29tcG9uZW50KSksIHRoaXMucGFnZSk7XG4gICAgfVxufVxuXG4vLyA8ZWRpdG9yLWZvbGQgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCIgZGVzYz1cIlRhYmxlIGhlYWRlclwiPlxuXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXIge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd3MoKTogVGFibGVIZWFkZXJSb3dbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0cicpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUhlYWRlclJvdyhlbGVtZW50LCB0aGlzLnBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlSGVhZGVyQ2VsbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RoJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlSGVhZGVyQ2VsbChlbGVtZW50LCB0aGlzLnBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyUm93IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbHMoKTogVGFibGVIZWFkZXJDZWxsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcygndGgnKSkubWFwKChlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVIZWFkZXJDZWxsKGVsZW1lbnQsIHRoaXMucGFnZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2VsbCB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc29ydGluZ0hhbmRsZSgpOiBTb3J0aW5nSGFuZGxlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMuZWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoTWF0QnV0dG9uKSk7XG4gICAgICAgIGlmIChoYW5kbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU29ydGluZ0hhbmRsZSh0aGlzLnBhZ2UsIGhhbmRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdGlwKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBoYW5kbGUgPSB0aGlzLmVsZW1lbnQucXVlcnkoQnkuZGlyZWN0aXZlKE1hdFRvb2x0aXApKTtcbiAgICAgICAgaWYgKGhhbmRsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZS5pbmplY3Rvci5nZXQoTWF0VG9vbHRpcCkubWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5lbGVtZW50LmNoaWxkTm9kZXMuZmluZCgobm9kZTogRGVidWdOb2RlKSA9PiBub2RlLm5hdGl2ZU5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKTtcbiAgICAgICAgaWYgKHRleHROb2RlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0Tm9kZVxuICAgICAgICAgICAgICAgIC5uYXRpdmVOb2RlLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb2xzcGFuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm93c3BhbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucm93c3BhbjtcbiAgICB9XG5cbn1cblxuLy8gPGVkaXRvci1mb2xkIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiIGRlc2M9XCJTb3J0aW5nXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZVNvcnRpbmcge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGU6IERhdGFUYWJsZURlZmluaXRpb24sIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhbmRsZXMoKTogU29ydGluZ0hhbmRsZVtdIHtcbiAgICAgICAgY29uc3QgaGFuZGxlcyA9IHRoaXMudGFibGUuZGVidWdFbGVtZW50LnF1ZXJ5KChkZSkgPT4gZGUucmVmZXJlbmNlcy5tYWluSGVhZGVyKVxuICAgICAgICAgICAgLnF1ZXJ5QWxsKEJ5LmRpcmVjdGl2ZShNYXRCdXR0b24pKTtcbiAgICAgICAgaWYgKCFoYW5kbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhbmRsZXMubWFwKChoYW5kbGU6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTb3J0aW5nSGFuZGxlKHRoaXMucGFnZSwgaGFuZGxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZXRhaWxSb3dIYW5kbGVzKCk6IFNvcnRpbmdIYW5kbGVbXSB8IG51bGwge1xuICAgICAgICBjb25zdCBoYW5kbGVzID0gdGhpcy50YWJsZS5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuY3NzKCcucmlzay1kYXRhLXRhYmxlLWRldGFpbCcpKS5xdWVyeShCeS5jc3MoJ3RoZWFkJykpXG4gICAgICAgICAgICAucXVlcnlBbGwoQnkuZGlyZWN0aXZlKE1hdEJ1dHRvbikpO1xuICAgICAgICBpZiAoIWhhbmRsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVzLm1hcCgoaGFuZGxlOiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU29ydGluZ0hhbmRsZSh0aGlzLnBhZ2UsIGhhbmRsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVudE9yZGVyaW5nKCk6IEFycmF5PE9yZGVyaW5nQ3JpdGVyaWE8YW55Pj4ge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFibGUuY29tcG9uZW50IGFzIGFueSkub3JkZXJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrU29ydGluZyhmaXJzdE5Sb3dzOiBudW1iZXIgPSB0aGlzLnRhYmxlLmNvbXBvbmVudC5yb3dzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyaXRlcml1bT86IE9yZGVyaW5nQ3JpdGVyaWE8YW55Pik6IHZvaWQge1xuICAgICAgICAvLyBXQVJOOiBjYWxsIGRhdGEgb25jZSBhcyBpdCBjYWxscyAubWFwIG9uIGFsbCB0YWJsZSByb3dzXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnRhYmxlLmRhdGE7XG5cbiAgICAgICAgbGV0IG9yZGVyaW5nOiBBcnJheTxPcmRlcmluZ0NyaXRlcmlhPGFueT4+O1xuICAgICAgICBpZiAoY3JpdGVyaXVtKSB7XG4gICAgICAgICAgICBvcmRlcmluZyA9IFtjcml0ZXJpdW1dLmNvbmNhdCgodGhpcy50YWJsZS5jb21wb25lbnQgYXMgYW55KS5fZGVmYXVsdE9yZGVyaW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9yZGVyaW5nID0gdGhpcy5jdXJyZW50T3JkZXJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBNYXRoLm1pbihkYXRhLmxlbmd0aCwgZmlyc3ROUm93cyk7IGkrKykge1xuICAgICAgICAgICAgb3JkZXJpbmcuc29tZSgoY3JpdGVyaWE6IE9yZGVyaW5nQ3JpdGVyaWE8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgIC8vbm9pbnNwZWN0aW9uIEVxdWFsaXR5Q29tcGFyaXNvbldpdGhDb2VyY2lvbkpTXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVBOiBhbnkgPSBjcml0ZXJpYS5nZXQoZGF0YVtpIC0gMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQjogYW55ID0gY3JpdGVyaWEuZ2V0KGRhdGFbaV0pO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUEgPT0gbnVsbCAmJiB2YWx1ZUIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdCh2YWx1ZUEpLm5vdC50b0JlTnVsbCgpO1xuICAgICAgICAgICAgICAgIGV4cGVjdCh2YWx1ZUEpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlQiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcml0ZXJpYS5kZXNjZW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3QodmFsdWVBID49IHZhbHVlQilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9CZVRydXRoeSgnRXhwZWN0OiAnICsgdmFsdWVBICsgJyA+PSAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWx1ZUIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0KHZhbHVlQSA8PSB2YWx1ZUIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvQmVUcnV0aHkoJ0V4cGVjdDogJyArIHZhbHVlQSArICcgPD0gJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsdWVCKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVBICE9PSB2YWx1ZUI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvcnRpbmdIYW5kbGUge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0sIHByaXZhdGUgaGFuZGxlOiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2soKSB7XG4gICAgICAgIGNsaWNrKHRoaXMuaGFuZGxlKTtcbiAgICAgICAgdGhpcy5wYWdlLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDxlZGl0b3ItZm9sZCBkZWZhdWx0c3RhdGU9XCJjb2xsYXBzZWRcIiBkZXNjPVwiVGFibGUgYm9keVwiPlxuXG5leHBvcnQgY2xhc3MgVGFibGVCb2R5IHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRGVidWdFbGVtZW50LCBwcml2YXRlIHBhZ2U6IHsgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCB9KSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dzKCk6IFRhYmxlQm9keVJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbCgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFzdGVyUm93KS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlSb3coZWxlbWVudCwgdGhpcy5wYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjZWxscygpOiBUYWJsZUJvZHlDZWxsW10ge1xuICAgICAgICBsZXQgY2VsbHM6IFRhYmxlQm9keUNlbGxbXSA9IFtdO1xuICAgICAgICB0aGlzLmVsZW1lbnQucXVlcnlBbGwoKGRlKSA9PiBkZS5yZWZlcmVuY2VzLm1hc3RlclJvdykuZm9yRWFjaCgocm93OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNlbGxzID0gY2VsbHMuY29uY2F0KHJvdy5xdWVyeUFsbChCeS5jc3MoJ3RkJykpLm1hcCgoY2VsbDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGNlbGwpO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNlbGxzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keVJvdyB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmRSb3coKTogdm9pZCB7XG4gICAgICAgIGNsaWNrKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMucGFnZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleHBhbmRlcigpOiBSb3dFeHBhbmRlciB7XG4gICAgICAgIHJldHVybiBuZXcgUm93RXhwYW5kZXIoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQucXVlcnkoQnkuZGlyZWN0aXZlKERhdGFUYWJsZVJvd0RldGFpbEV4cGFuZGVyQ29tcG9uZW50KSkucXVlcnkoQnkuZGlyZWN0aXZlKE1hdEFuY2hvcikpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0RldGFpbCgpOiBUYWJsZUJvZHlEZXRhaWwgfCBudWxsIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudDtcbiAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMuZWxlbWVudCkgKyAxXTtcbiAgICAgICAgICAgIGlmIChuZXh0ICYmICFuZXh0LnJlZmVyZW5jZXMubWFzdGVyUm93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlEZXRhaWwobmV4dCwgdGhpcy5wYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZ2hsaWdodGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKEhJR0hMSUdIVEVSX0NMQVNTKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3dFeHBhbmRlciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoTWF0SWNvbikpLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uID09PSAnZXhwYW5kX2xlc3MnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uID09PSAnZXhwYW5kX21vcmUnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keUNlbGwge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHNwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbHNwYW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5yb3dzcGFuO1xuICAgIH1cbn1cblxuLy8gPGVkaXRvci1mb2xkIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiIGRlc2M9XCJSb3cgZGV0YWlsXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlEZXRhaWwge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGVhZGVyKCk6IFRhYmxlSGVhZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUhlYWRlcih0aGlzLmVsZW1lbnQucXVlcnkoQnkuY3NzKCd0aGVhZCcpKSwgdGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvZHkoKTogVGFibGVCb2R5RGV0YWlsQm9keSB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5RGV0YWlsQm9keSh0aGlzLmVsZW1lbnQucXVlcnkoQnkuY3NzKCd0Ym9keScpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhISUdITElHSFRFUl9DTEFTUyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY2hpbGRyZW5bMF0ubmF0aXZlRWxlbWVudC5jb2xzcGFuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keURldGFpbEJvZHkge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd3MoKTogVGFibGVCb2R5RGV0YWlsUm93W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcygndHInKSkubWFwKChlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5RGV0YWlsUm93KGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIGxldCBjZWxsczogVGFibGVCb2R5Q2VsbFtdID0gW107XG4gICAgICAgIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLmZvckVhY2goKHJvdzogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjZWxscyA9IGNlbGxzLmNvbmNhdChyb3cucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGNlbGw6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5Q2VsbChjZWxsKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjZWxscztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlEZXRhaWxSb3cge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDxlZGl0b3ItZm9sZCBkZWZhdWx0c3RhdGU9XCJjb2xsYXBzZWRcIiBkZXNjPVwiVGFibGUgZm9vdGVyXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUZvb3RlciB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm93cygpOiBUYWJsZUZvb3RlclJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlRm9vdGVyUm93KGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIGxldCBjZWxsczogVGFibGVCb2R5Q2VsbFtdID0gW107XG4gICAgICAgIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLmZvckVhY2goKHJvdzogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjZWxscyA9IGNlbGxzLmNvbmNhdChyb3cucXVlcnlBbGwoQnkuY3NzKCd0aCcpKS5tYXAoKGNlbGw6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5Q2VsbChjZWxsKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjZWxscztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUZvb3RlclJvdyB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbHMoKTogVGFibGVCb2R5Q2VsbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RoJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlQm9keUNlbGwoZWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8gPC9lZGl0b3ItZm9sZD5cblxuZXhwb3J0IGNsYXNzIFJlY29yZHNDb3VudCB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFnZXIge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkLCBhZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCB9KSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWdlQnV0dG9ucygpOiBEZWJ1Z0VsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuZGlyZWN0aXZlKE1hdEJ1dHRvblRvZ2dsZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RMZWFkaW5nQnV0dG9uc0Rpc2FibGVkKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI7IGkrKykge1xuICAgICAgICAgICAgZXhwZWN0KHRoaXMucGFnZUJ1dHRvbnNbaV0uY2xhc3Nlc1snbWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQnXSlcbiAgICAgICAgICAgICAgICAudG9CZSh0cnVlLCAnRmlyc3QgdHdvIGFyZSBkaXNhYmxlZC4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RMZWFkaW5nQnV0dG9uc05vdERpc2FibGVkKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI7IGkrKykge1xuICAgICAgICAgICAgZXhwZWN0KHRoaXMucGFnZUJ1dHRvbnNbaV0uY2xhc3Nlc1snbWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQnXSlcbiAgICAgICAgICAgICAgICAubm90LnRvQmUodHJ1ZSwgJ0ZpcnN0IHR3byBhcmUgbm90IGRpc2FibGVkLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGVjdFRyYWlsaW5nQnV0dG9uc0Rpc2FibGVkKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5wYWdlQnV0dG9ucy5sZW5ndGggLSAxOyBpID4gdGhpcy5wYWdlQnV0dG9ucy5sZW5ndGggLSAzOyBpLS0pIHtcbiAgICAgICAgICAgIGV4cGVjdCh0aGlzLnBhZ2VCdXR0b25zW2ldLmNsYXNzZXNbJ21hdC1idXR0b24tdG9nZ2xlLWRpc2FibGVkJ10pXG4gICAgICAgICAgICAgICAgLnRvQmUodHJ1ZSwgJ0xhc3QgdHdvIGFyZSBkaXNhYmxlZC4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RUcmFpbGluZ0J1dHRvbnNOb3REaXNhYmxlZCgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMucGFnZUJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+IHRoaXMucGFnZUJ1dHRvbnMubGVuZ3RoIC0gMzsgaS0tKSB7XG4gICAgICAgICAgICBleHBlY3QodGhpcy5wYWdlQnV0dG9uc1tpXS5jbGFzc2VzWydtYXQtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCddKVxuICAgICAgICAgICAgICAgIC5ub3QudG9CZSh0cnVlLCAnTGFzdCB0d28gYXJlIG5vdCBkaXNhYmxlZC4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RCdXR0b25OdW1iZXJzKG51bWJlcnM6IG51bWJlcltdKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZXhwZWN0KHRoaXMucGFnZUJ1dHRvbnNbaSArIDJdLnF1ZXJ5KEJ5LmNzcygnLm1hdC1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQnKSlcbiAgICAgICAgICAgICAgICAubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkpXG4gICAgICAgICAgICAgICAgLnRvRXF1YWwobnVtYmVyc1tpXSArICcnLCAnQnV0dG9uIG51bWJlcnMgYXJlIGNvcnJlY3QnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RCdXR0b25BY3RpdmUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBleHBlY3QodGhpcy5wYWdlQnV0dG9uc1tpbmRleF0uY2xhc3Nlc1snbWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCddKVxuICAgICAgICAgICAgLnRvQmUodHJ1ZSwgJ0J1dHRvbiBpcyBhY3RpdmUuJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY2xpY2sodGhpcy5wYWdlQnV0dG9uc1tpbmRleF0ucXVlcnkoQnkuY3NzKCcubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCcpKS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5wYWdlLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5wYWdlLmFkdmFuY2VBbmREZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hjZWNrU29ydGluZyhwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQsIGRhdGFUYWJsZTogRGF0YVRhYmxlRGVmaW5pdGlvbiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JpdGVyaWE6IEFycmF5PFZhbHVlR2V0dGVyPGFueT4+KSB7XG4gICAgcGFnZS5kYXRhVGFibGUuc29ydGluZy5jaGVja1NvcnRpbmcoMTUwKTtcblxuICAgIHBhZ2UuZGF0YVRhYmxlLnNvcnRpbmcuaGFuZGxlcy5mb3JFYWNoKChoYW5kbGU6IFNvcnRpbmdIYW5kbGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVGlnZ2VyIHNvcnQgYmFzZWQgb24gYSBoYW5kbGVcbiAgICAgICAgaGFuZGxlLmNsaWNrKCk7XG4gICAgICAgIHBhZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8vIENoZWNrIHRoZSBzb3J0aW5nXG4gICAgICAgIHBhZ2UuZGF0YVRhYmxlLnNvcnRpbmcuY2hlY2tTb3J0aW5nKDE1MCwge1xuICAgICAgICAgICAgZ2V0OiBjcml0ZXJpYVtpbmRleF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVGlnZ2VyIHNvcnQgYmFzZWQgb24gYSBoYW5kbGVcbiAgICAgICAgaGFuZGxlLmNsaWNrKCk7XG4gICAgICAgIHBhZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8vIENoZWNrIHRoZSBzb3J0aW5nXG4gICAgICAgIHBhZ2UuZGF0YVRhYmxlLnNvcnRpbmcuY2hlY2tTb3J0aW5nKDE1MCwge1xuICAgICAgICAgICAgZ2V0ICAgICAgIDogY3JpdGVyaWFbaW5kZXhdLFxuICAgICAgICAgICAgZGVzY2VuZGluZzogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZURlZmluaXRpb25Ib3N0ZWQgZXh0ZW5kcyBQYWdlPFRlc3REYXRhVGFibGVIb3N0Q29tcG9uZW50PiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxUZXN0RGF0YVRhYmxlSG9zdENvbXBvbmVudD4pIHtcbiAgICAgICAgc3VwZXIoZml4dHVyZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRhVGFibGUoKTogRGF0YVRhYmxlRGVmaW5pdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0YVRhYmxlRGVmaW5pdGlvbih0aGlzLmRlYnVnRWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoRGF0YVRhYmxlQ29tcG9uZW50KSksIHRoaXMpO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHJpc2stZGF0YS10YWJsZSBbZGF0YV09XCJkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9vdGVyXT1cImZvb3RlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdE9yZGVyaW5nXT1cImRlZmF1bHRPcmRlcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmlwZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4gdGl0bGU9XCJUZXN0IENvbHVtbiAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0aW5nS2V5XT1cInZhbHVlR2V0dGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yZWNvcmQ9XCJyb3dcIiByaXNrLWRhdGEtdGFibGUtY2VsbD5cbiAgICAgICAgICAgICAgICAgICAge3tyZWNvcmQudmFsdWUxfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9yaXNrLWRhdGEtdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHJpc2stZGF0YS10YWJsZS1jZWxsIGxldC1yZWNvcmQ9XCJyb3dcIiBsZXQtZXhwYW5kZWQ9XCJleHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8cmlzay1kYXRhLXRhYmxlLWRldGFpbC1leHBhbmRlciBbZXhwYW5kZWRdPVwiZXhwYW5kZWRcIj48L3Jpc2stZGF0YS10YWJsZS1kZXRhaWwtZXhwYW5kZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcmlzay1kYXRhLXRhYmxlLWZvb3Rlci1jZWxsIGxldC1mb290ZXI9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAge3tmb290ZXIudmFsdWUxfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9yaXNrLWRhdGEtdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgPCEtLSBTdWIgZGV0YWlsIC0tPlxuICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1kZXRhaWwtcm93PlxuICAgICAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8cmlzay1kYXRhLXRhYmxlLWNvbHVtbiB0aXRsZT1cIlRlc3QgRGV0YWlsIENvbHVtbiAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRpbmdLZXldPVwidmFsdWVHZXR0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSByaXNrLWRhdGEtdGFibGUtY2VsbCBsZXQtcmVjb3JkPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZWNvcmQudmFsdWUxfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8L3Jpc2stZGF0YS10YWJsZS1jb2x1bW4tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uIHRpdGxlPVwiVGVzdCBEZXRhaWwgQ29sdW1uIDJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSByaXNrLWRhdGEtdGFibGUtY2VsbCBsZXQtcmVjb3JkPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZWNvcmQudmFsdWUyfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4gdGl0bGU9XCJUZXN0IERldGFpbCBDb2x1bW4gM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHJpc2stZGF0YS10YWJsZS1jZWxsIGxldC1yZWNvcmQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlY29yZC52YWx1ZTN9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9yaXNrLWRhdGEtdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbi1ncm91cD5cbiAgICAgICAgICAgICAgICA8cmlzay1kYXRhLXRhYmxlLWNvbHVtbi1ncm91cD48L3Jpc2stZGF0YS10YWJsZS1jb2x1bW4tZ3JvdXA+XG4gICAgICAgICAgICA8L3Jpc2stZGF0YS10YWJsZS1kZXRhaWwtcm93PlxuICAgICAgICA8L3Jpc2stZGF0YS10YWJsZT5gXG59KVxuZXhwb3J0IGNsYXNzIFRlc3REYXRhVGFibGVIb3N0Q29tcG9uZW50IHtcblxuICAgIHB1YmxpYyBkYXRhOiBhbnlbXTtcblxuICAgIHB1YmxpYyBmb290ZXI6IGFueTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTAwOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTE6IE1hdGguZmxvb3Ioc2VjdXJlUmFuZG9tKCkgKiAyMCkgKyAnIC0gdmFsdWUgMScsXG4gICAgICAgICAgICAgICAgdmFsdWUyOiBNYXRoLmZsb29yKHNlY3VyZVJhbmRvbSgpICogMjApICsgJyAtIHZhbHVlIDInLFxuICAgICAgICAgICAgICAgIHZhbHVlMzogTWF0aC5mbG9vcihzZWN1cmVSYW5kb20oKSAqIDIwKSArICcgLSB2YWx1ZSAzJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb290ZXIgPSB0aGlzLmRhdGFbMF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZWZhdWx0T3JkZXJpbmcoKTogQXJyYXk8T3JkZXJpbmdDcml0ZXJpYTxhbnk+IHwgVmFsdWVHZXR0ZXI8YW55Pj4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGdldCAgICAgICA6IChyZWNvcmQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkLnZhbHVlMztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRlc2NlbmRpbmc6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVjb3JkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVjb3JkLnZhbHVlMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlR2V0dGVyKCk6IChyZWNvcmQ6IGFueSkgPT4gYW55IHtcbiAgICAgICAgcmV0dXJuIChyZWNvcmQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZC52YWx1ZTE7XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
|
556
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS50YWJsZS5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci10ZXN0aW5nL3NyYy9saWIvZGVmaW5pdGlvbnMvZGF0YS50YWJsZS5kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdDLE9BQU8sRUFBYyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG1DQUFtQyxFQUNuQyxpQkFBaUIsRUFFakIsZUFBZSxFQUNsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGFBQWEsQ0FBQzs7O0FBRWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsWUFBMEIsWUFBMEIsRUFDekIsSUFBd0U7UUFEekUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsU0FBSSxHQUFKLElBQUksQ0FBb0U7SUFDbkcsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FB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RGVidWdOb2RlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZX0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7TWF0QW5jaG9yLCBNYXRCdXR0b259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRUb29sdGlwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7Qnl9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtWYWx1ZUdldHRlciwgc2VjdXJlUmFuZG9tfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXG4gICAgRGF0YVRhYmxlUm93RGV0YWlsRXhwYW5kZXJDb21wb25lbnQsXG4gICAgSElHSExJR0hURVJfQ0xBU1MsXG4gICAgT3JkZXJpbmdDcml0ZXJpYSxcbiAgICBQYWdpbmdDb21wb25lbnRcbn0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1kYXRhdGFibGUnO1xuaW1wb3J0IHtjbGlja30gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi9wYWdlLmJhc2UnO1xuXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlRGVmaW5pdGlvbiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGRlYnVnRWxlbWVudDogRGVidWdFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHBhZ2U6IHsgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCwgYWR2YW5jZUFuZERldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50KCk6IERhdGFUYWJsZUNvbXBvbmVudDx1bmtub3duLCB1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5jb21wb25lbnRJbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGEoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQucGxhaW5EYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuY3NzKCcucmlzay1kYXRhLXRhYmxlLXdyYXBwZXIgPiB0YWJsZScpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhlYWRlcigpOiBUYWJsZUhlYWRlciB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVIZWFkZXIodGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoKGRlKSA9PiBkZS5yZWZlcmVuY2VzLm1haW5IZWFkZXIpLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc29ydGluZygpOiBUYWJsZVNvcnRpbmcge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlU29ydGluZyh0aGlzLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9keSgpOiBUYWJsZUJvZHkge1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlQm9keSh0aGlzLmRlYnVnRWxlbWVudC5xdWVyeSgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFpbkJvZHkpLCB0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9vdGVyKCk6IFRhYmxlRm9vdGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUZvb3Rlcih0aGlzLmRlYnVnRWxlbWVudC5xdWVyeSgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFpbkZvb3RlcikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVjb3Jkc0NvdW50KCk6IFJlY29yZHNDb3VudCB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjb3Jkc0NvdW50KHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcygnLnJpc2stZGF0YS10YWJsZS1wYWdlLWNvdW50JykpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhZ2VyKCk6IFBhZ2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWdlcih0aGlzLmRlYnVnRWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoUGFnaW5nQ29tcG9uZW50KSksIHRoaXMucGFnZSk7XG4gICAgfVxufVxuXG4vLyA8ZWRpdG9yLWZvbGQgZGVmYXVsdHN0YXRlPVwiY29sbGFwc2VkXCIgZGVzYz1cIlRhYmxlIGhlYWRlclwiPlxuXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXIge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd3MoKTogVGFibGVIZWFkZXJSb3dbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0cicpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUhlYWRlclJvdyhlbGVtZW50LCB0aGlzLnBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlSGVhZGVyQ2VsbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RoJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlSGVhZGVyQ2VsbChlbGVtZW50LCB0aGlzLnBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyUm93IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbHMoKTogVGFibGVIZWFkZXJDZWxsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcygndGgnKSkubWFwKChlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVIZWFkZXJDZWxsKGVsZW1lbnQsIHRoaXMucGFnZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyQ2VsbCB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc29ydGluZ0hhbmRsZSgpOiBTb3J0aW5nSGFuZGxlIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGhhbmRsZSA9IHRoaXMuZWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoTWF0QnV0dG9uKSk7XG4gICAgICAgIGlmIChoYW5kbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU29ydGluZ0hhbmRsZSh0aGlzLnBhZ2UsIGhhbmRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdGlwKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBoYW5kbGUgPSB0aGlzLmVsZW1lbnQucXVlcnkoQnkuZGlyZWN0aXZlKE1hdFRvb2x0aXApKTtcbiAgICAgICAgaWYgKGhhbmRsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZS5pbmplY3Rvci5nZXQoTWF0VG9vbHRpcCkubWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHRleHROb2RlID0gdGhpcy5lbGVtZW50LmNoaWxkTm9kZXMuZmluZCgobm9kZTogRGVidWdOb2RlKSA9PiBub2RlLm5hdGl2ZU5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKTtcbiAgICAgICAgaWYgKHRleHROb2RlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0Tm9kZVxuICAgICAgICAgICAgICAgIC5uYXRpdmVOb2RlLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jb2xzcGFuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm93c3BhbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucm93c3BhbjtcbiAgICB9XG5cbn1cblxuLy8gPGVkaXRvci1mb2xkIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiIGRlc2M9XCJTb3J0aW5nXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZVNvcnRpbmcge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGU6IERhdGFUYWJsZURlZmluaXRpb24sIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhbmRsZXMoKTogU29ydGluZ0hhbmRsZVtdIHtcbiAgICAgICAgY29uc3QgaGFuZGxlcyA9IHRoaXMudGFibGUuZGVidWdFbGVtZW50LnF1ZXJ5KChkZSkgPT4gZGUucmVmZXJlbmNlcy5tYWluSGVhZGVyKVxuICAgICAgICAgICAgLnF1ZXJ5QWxsKEJ5LmRpcmVjdGl2ZShNYXRCdXR0b24pKTtcbiAgICAgICAgaWYgKCFoYW5kbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhbmRsZXMubWFwKChoYW5kbGU6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTb3J0aW5nSGFuZGxlKHRoaXMucGFnZSwgaGFuZGxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkZXRhaWxSb3dIYW5kbGVzKCk6IFNvcnRpbmdIYW5kbGVbXSB8IG51bGwge1xuICAgICAgICBjb25zdCBoYW5kbGVzID0gdGhpcy50YWJsZS5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuY3NzKCcucmlzay1kYXRhLXRhYmxlLWRldGFpbCcpKS5xdWVyeShCeS5jc3MoJ3RoZWFkJykpXG4gICAgICAgICAgICAucXVlcnlBbGwoQnkuZGlyZWN0aXZlKE1hdEJ1dHRvbikpO1xuICAgICAgICBpZiAoIWhhbmRsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYW5kbGVzLm1hcCgoaGFuZGxlOiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU29ydGluZ0hhbmRsZSh0aGlzLnBhZ2UsIGhhbmRsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VycmVudE9yZGVyaW5nKCk6IEFycmF5PE9yZGVyaW5nQ3JpdGVyaWE8YW55Pj4ge1xuICAgICAgICByZXR1cm4gKHRoaXMudGFibGUuY29tcG9uZW50IGFzIGFueSkub3JkZXJpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrU29ydGluZyhmaXJzdE5Sb3dzOiBudW1iZXIgPSB0aGlzLnRhYmxlLmNvbXBvbmVudC5yb3dzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNyaXRlcml1bT86IE9yZGVyaW5nQ3JpdGVyaWE8YW55Pik6IHZvaWQge1xuICAgICAgICAvLyBXQVJOOiBjYWxsIGRhdGEgb25jZSBhcyBpdCBjYWxscyAubWFwIG9uIGFsbCB0YWJsZSByb3dzXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnRhYmxlLmRhdGE7XG5cbiAgICAgICAgbGV0IG9yZGVyaW5nOiBBcnJheTxPcmRlcmluZ0NyaXRlcmlhPGFueT4+O1xuICAgICAgICBpZiAoY3JpdGVyaXVtKSB7XG4gICAgICAgICAgICBvcmRlcmluZyA9IFtjcml0ZXJpdW1dLmNvbmNhdCgodGhpcy50YWJsZS5jb21wb25lbnQgYXMgYW55KS5fZGVmYXVsdE9yZGVyaW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9yZGVyaW5nID0gdGhpcy5jdXJyZW50T3JkZXJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBNYXRoLm1pbihkYXRhLmxlbmd0aCwgZmlyc3ROUm93cyk7IGkrKykge1xuICAgICAgICAgICAgb3JkZXJpbmcuc29tZSgoY3JpdGVyaWE6IE9yZGVyaW5nQ3JpdGVyaWE8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgIC8vbm9pbnNwZWN0aW9uIEVxdWFsaXR5Q29tcGFyaXNvbldpdGhDb2VyY2lvbkpTXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVBOiBhbnkgPSBjcml0ZXJpYS5nZXQoZGF0YVtpIC0gMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQjogYW55ID0gY3JpdGVyaWEuZ2V0KGRhdGFbaV0pO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUEgPT0gbnVsbCAmJiB2YWx1ZUIgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdCh2YWx1ZUEpLm5vdC50b0JlTnVsbCgpO1xuICAgICAgICAgICAgICAgIGV4cGVjdCh2YWx1ZUEpLm5vdC50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlQiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjcml0ZXJpYS5kZXNjZW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3QodmFsdWVBID49IHZhbHVlQilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9CZVRydXRoeSgnRXhwZWN0OiAnICsgdmFsdWVBICsgJyA+PSAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWx1ZUIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0KHZhbHVlQSA8PSB2YWx1ZUIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvQmVUcnV0aHkoJ0V4cGVjdDogJyArIHZhbHVlQSArICcgPD0gJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsdWVCKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVBICE9PSB2YWx1ZUI7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvcnRpbmdIYW5kbGUge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0sIHByaXZhdGUgaGFuZGxlOiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2soKSB7XG4gICAgICAgIGNsaWNrKHRoaXMuaGFuZGxlKTtcbiAgICAgICAgdGhpcy5wYWdlLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDxlZGl0b3ItZm9sZCBkZWZhdWx0c3RhdGU9XCJjb2xsYXBzZWRcIiBkZXNjPVwiVGFibGUgYm9keVwiPlxuXG5leHBvcnQgY2xhc3MgVGFibGVCb2R5IHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRGVidWdFbGVtZW50LCBwcml2YXRlIHBhZ2U6IHsgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCB9KSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dzKCk6IFRhYmxlQm9keVJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbCgoZGUpID0+IGRlLnJlZmVyZW5jZXMubWFzdGVyUm93KS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlSb3coZWxlbWVudCwgdGhpcy5wYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjZWxscygpOiBUYWJsZUJvZHlDZWxsW10ge1xuICAgICAgICBsZXQgY2VsbHM6IFRhYmxlQm9keUNlbGxbXSA9IFtdO1xuICAgICAgICB0aGlzLmVsZW1lbnQucXVlcnlBbGwoKGRlKSA9PiBkZS5yZWZlcmVuY2VzLm1hc3RlclJvdykuZm9yRWFjaCgocm93OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNlbGxzID0gY2VsbHMuY29uY2F0KHJvdy5xdWVyeUFsbChCeS5jc3MoJ3RkJykpLm1hcCgoY2VsbDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGNlbGwpO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNlbGxzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keVJvdyB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCwgcHJpdmF0ZSBwYWdlOiB7IGRldGVjdENoYW5nZXM6ICgpID0+IHZvaWQgfSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmRSb3coKTogdm9pZCB7XG4gICAgICAgIGNsaWNrKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMucGFnZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleHBhbmRlcigpOiBSb3dFeHBhbmRlciB7XG4gICAgICAgIHJldHVybiBuZXcgUm93RXhwYW5kZXIoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQucXVlcnkoQnkuZGlyZWN0aXZlKERhdGFUYWJsZVJvd0RldGFpbEV4cGFuZGVyQ29tcG9uZW50KSkucXVlcnkoQnkuZGlyZWN0aXZlKE1hdEFuY2hvcikpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0RldGFpbCgpOiBUYWJsZUJvZHlEZXRhaWwgfCBudWxsIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudDtcbiAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMuZWxlbWVudCkgKyAxXTtcbiAgICAgICAgICAgIGlmIChuZXh0ICYmICFuZXh0LnJlZmVyZW5jZXMubWFzdGVyUm93KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlEZXRhaWwobmV4dCwgdGhpcy5wYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhpZ2hsaWdodGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKEhJR0hMSUdIVEVSX0NMQVNTKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3dFeHBhbmRlciB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoTWF0SWNvbikpLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uID09PSAnZXhwYW5kX2xlc3MnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uID09PSAnZXhwYW5kX21vcmUnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keUNlbGwge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbHNwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbHNwYW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5yb3dzcGFuO1xuICAgIH1cbn1cblxuLy8gPGVkaXRvci1mb2xkIGRlZmF1bHRzdGF0ZT1cImNvbGxhcHNlZFwiIGRlc2M9XCJSb3cgZGV0YWlsXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlEZXRhaWwge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkIH0pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGVhZGVyKCk6IFRhYmxlSGVhZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUhlYWRlcih0aGlzLmVsZW1lbnQucXVlcnkoQnkuY3NzKCd0aGVhZCcpKSwgdGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJvZHkoKTogVGFibGVCb2R5RGV0YWlsQm9keSB7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5RGV0YWlsQm9keSh0aGlzLmVsZW1lbnQucXVlcnkoQnkuY3NzKCd0Ym9keScpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhISUdITElHSFRFUl9DTEFTUyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2xzcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY2hpbGRyZW5bMF0ubmF0aXZlRWxlbWVudC5jb2xzcGFuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlQm9keURldGFpbEJvZHkge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd3MoKTogVGFibGVCb2R5RGV0YWlsUm93W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LnF1ZXJ5QWxsKEJ5LmNzcygndHInKSkubWFwKChlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5RGV0YWlsUm93KGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIGxldCBjZWxsczogVGFibGVCb2R5Q2VsbFtdID0gW107XG4gICAgICAgIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLmZvckVhY2goKHJvdzogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjZWxscyA9IGNlbGxzLmNvbmNhdChyb3cucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGNlbGw6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5Q2VsbChjZWxsKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjZWxscztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlEZXRhaWxSb3cge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuY3NzKCd0ZCcpKS5tYXAoKGVsZW1lbnQ6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUYWJsZUJvZHlDZWxsKGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDwvZWRpdG9yLWZvbGQ+XG5cbi8vIDxlZGl0b3ItZm9sZCBkZWZhdWx0c3RhdGU9XCJjb2xsYXBzZWRcIiBkZXNjPVwiVGFibGUgZm9vdGVyXCI+XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUZvb3RlciB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm93cygpOiBUYWJsZUZvb3RlclJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlRm9vdGVyUm93KGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNlbGxzKCk6IFRhYmxlQm9keUNlbGxbXSB7XG4gICAgICAgIGxldCBjZWxsczogVGFibGVCb2R5Q2VsbFtdID0gW107XG4gICAgICAgIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RyJykpLmZvckVhY2goKHJvdzogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjZWxscyA9IGNlbGxzLmNvbmNhdChyb3cucXVlcnlBbGwoQnkuY3NzKCd0aCcpKS5tYXAoKGNlbGw6IERlYnVnRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVCb2R5Q2VsbChjZWxsKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjZWxscztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZUZvb3RlclJvdyB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbHMoKTogVGFibGVCb2R5Q2VsbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5xdWVyeUFsbChCeS5jc3MoJ3RoJykpLm1hcCgoZWxlbWVudDogRGVidWdFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRhYmxlQm9keUNlbGwoZWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8gPC9lZGl0b3ItZm9sZD5cblxuZXhwb3J0IGNsYXNzIFJlY29yZHNDb3VudCB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IERlYnVnRWxlbWVudCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFnZXIge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBEZWJ1Z0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkLCBhZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZCB9KSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYWdlQnV0dG9ucygpOiBEZWJ1Z0VsZW1lbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQucXVlcnlBbGwoQnkuZGlyZWN0aXZlKE1hdEJ1dHRvblRvZ2dsZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RMZWFkaW5nQnV0dG9uc0Rpc2FibGVkKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI7IGkrKykge1xuICAgICAgICAgICAgZXhwZWN0KHRoaXMucGFnZUJ1dHRvbnNbaV0uY2xhc3Nlc1snbWF0LW1kYy1idXR0b24tdG9nZ2xlLWRpc2FibGVkJ10pXG4gICAgICAgICAgICAgICAgLnRvQmUodHJ1ZSwgJ0ZpcnN0IHR3byBhcmUgZGlzYWJsZWQuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwZWN0TGVhZGluZ0J1dHRvbnNOb3REaXNhYmxlZCgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyOyBpKyspIHtcbiAgICAgICAgICAgIGV4cGVjdCh0aGlzLnBhZ2VCdXR0b25zW2ldLmNsYXNzZXNbJ21hdC1tZGMtYnV0dG9uLXRvZ2dsZS1kaXNhYmxlZCddKVxuICAgICAgICAgICAgICAgIC5ub3QudG9CZSh0cnVlLCAnRmlyc3QgdHdvIGFyZSBub3QgZGlzYWJsZWQuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwZWN0VHJhaWxpbmdCdXR0b25zRGlzYWJsZWQoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnBhZ2VCdXR0b25zLmxlbmd0aCAtIDE7IGkgPiB0aGlzLnBhZ2VCdXR0b25zLmxlbmd0aCAtIDM7IGktLSkge1xuICAgICAgICAgICAgZXhwZWN0KHRoaXMucGFnZUJ1dHRvbnNbaV0uY2xhc3Nlc1snbWF0LW1kYy1idXR0b24tdG9nZ2xlLWRpc2FibGVkJ10pXG4gICAgICAgICAgICAgICAgLnRvQmUodHJ1ZSwgJ0xhc3QgdHdvIGFyZSBkaXNhYmxlZC4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleHBlY3RUcmFpbGluZ0J1dHRvbnNOb3REaXNhYmxlZCgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMucGFnZUJ1dHRvbnMubGVuZ3RoIC0gMTsgaSA+IHRoaXMucGFnZUJ1dHRvbnMubGVuZ3RoIC0gMzsgaS0tKSB7XG4gICAgICAgICAgICBleHBlY3QodGhpcy5wYWdlQnV0dG9uc1tpXS5jbGFzc2VzWydtYXQtbWRjLWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQnXSlcbiAgICAgICAgICAgICAgICAubm90LnRvQmUodHJ1ZSwgJ0xhc3QgdHdvIGFyZSBub3QgZGlzYWJsZWQuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwZWN0QnV0dG9uTnVtYmVycyhudW1iZXJzOiBudW1iZXJbXSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGV4cGVjdCh0aGlzLnBhZ2VCdXR0b25zW2kgKyAyXS5xdWVyeShCeS5jc3MoJy5tYXQtbWRjLWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCcpKVxuICAgICAgICAgICAgICAgIC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50LnRyaW0oKSlcbiAgICAgICAgICAgICAgICAudG9FcXVhbChudW1iZXJzW2ldICsgJycsICdCdXR0b24gbnVtYmVycyBhcmUgY29ycmVjdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGVjdEJ1dHRvbkFjdGl2ZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGV4cGVjdCh0aGlzLnBhZ2VCdXR0b25zW2luZGV4XS5jbGFzc2VzWydtYXQtbWRjLWJ1dHRvbi10b2dnbGUtY2hlY2tlZCddKVxuICAgICAgICAgICAgLnRvQmUodHJ1ZSwgJ0J1dHRvbiBpcyBhY3RpdmUuJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY2xpY2sodGhpcy5wYWdlQnV0dG9uc1tpbmRleF0ucXVlcnkoQnkuY3NzKCcubWF0LW1kYy1idXR0b24tdG9nZ2xlLWxhYmVsLWNvbnRlbnQnKSkubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMucGFnZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucGFnZS5hZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoY2Vja1NvcnRpbmcocGFnZTogeyBkZXRlY3RDaGFuZ2VzOiAoKSA9PiB2b2lkLCBkYXRhVGFibGU6IERhdGFUYWJsZURlZmluaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyaXRlcmlhOiBBcnJheTxWYWx1ZUdldHRlcjxhbnk+Pikge1xuICAgIHBhZ2UuZGF0YVRhYmxlLnNvcnRpbmcuY2hlY2tTb3J0aW5nKDE1MCk7XG5cbiAgICBwYWdlLmRhdGFUYWJsZS5zb3J0aW5nLmhhbmRsZXMuZm9yRWFjaCgoaGFuZGxlOiBTb3J0aW5nSGFuZGxlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIC8vIFRpZ2dlciBzb3J0IGJhc2VkIG9uIGEgaGFuZGxlXG4gICAgICAgIGhhbmRsZS5jbGljaygpO1xuICAgICAgICBwYWdlLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAvLyBDaGVjayB0aGUgc29ydGluZ1xuICAgICAgICBwYWdlLmRhdGFUYWJsZS5zb3J0aW5nLmNoZWNrU29ydGluZygxNTAsIHtcbiAgICAgICAgICAgIGdldDogY3JpdGVyaWFbaW5kZXhdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFRpZ2dlciBzb3J0IGJhc2VkIG9uIGEgaGFuZGxlXG4gICAgICAgIGhhbmRsZS5jbGljaygpO1xuICAgICAgICBwYWdlLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAvLyBDaGVjayB0aGUgc29ydGluZ1xuICAgICAgICBwYWdlLmRhdGFUYWJsZS5zb3J0aW5nLmNoZWNrU29ydGluZygxNTAsIHtcbiAgICAgICAgICAgIGdldCAgICAgICA6IGNyaXRlcmlhW2luZGV4XSxcbiAgICAgICAgICAgIGRlc2NlbmRpbmc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVEZWZpbml0aW9uSG9zdGVkIGV4dGVuZHMgUGFnZTxUZXN0RGF0YVRhYmxlSG9zdENvbXBvbmVudD4ge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8VGVzdERhdGFUYWJsZUhvc3RDb21wb25lbnQ+KSB7XG4gICAgICAgIHN1cGVyKGZpeHR1cmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVRhYmxlKCk6IERhdGFUYWJsZURlZmluaXRpb24ge1xuICAgICAgICByZXR1cm4gbmV3IERhdGFUYWJsZURlZmluaXRpb24odGhpcy5kZWJ1Z0VsZW1lbnQucXVlcnkoQnkuZGlyZWN0aXZlKERhdGFUYWJsZUNvbXBvbmVudCkpLCB0aGlzKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxyaXNrLWRhdGEtdGFibGUgW2RhdGFdPVwiZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Zvb3Rlcl09XCJmb290ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCIyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRPcmRlcmluZ109XCJkZWZhdWx0T3JkZXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpcGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uIHRpdGxlPVwiVGVzdCBDb2x1bW4gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ0tleV09XCJ2YWx1ZUdldHRlclwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcmVjb3JkPVwicm93XCIgcmlzay1kYXRhLXRhYmxlLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgIHt7cmVjb3JkLnZhbHVlMX19XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSByaXNrLWRhdGEtdGFibGUtY2VsbCBsZXQtcmVjb3JkPVwicm93XCIgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1kZXRhaWwtZXhwYW5kZXIgW2V4cGFuZGVkXT1cImV4cGFuZGVkXCI+PC9yaXNrLWRhdGEtdGFibGUtZGV0YWlsLWV4cGFuZGVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHJpc2stZGF0YS10YWJsZS1mb290ZXItY2VsbCBsZXQtZm9vdGVyPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7Zm9vdGVyLnZhbHVlMX19XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgIDwhLS0gU3ViIGRldGFpbCAtLT5cbiAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtZGV0YWlsLXJvdz5cbiAgICAgICAgICAgICAgICA8cmlzay1kYXRhLXRhYmxlLWNvbHVtbi1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4gdGl0bGU9XCJUZXN0IERldGFpbCBDb2x1bW4gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0aW5nS2V5XT1cInZhbHVlR2V0dGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcmlzay1kYXRhLXRhYmxlLWNlbGwgbGV0LXJlY29yZD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVjb3JkLnZhbHVlMX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3Jpc2stZGF0YS10YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPC9yaXNrLWRhdGEtdGFibGUtY29sdW1uLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8cmlzay1kYXRhLXRhYmxlLWNvbHVtbiB0aXRsZT1cIlRlc3QgRGV0YWlsIENvbHVtbiAyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcmlzay1kYXRhLXRhYmxlLWNlbGwgbGV0LXJlY29yZD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cmVjb3JkLnZhbHVlMn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3Jpc2stZGF0YS10YWJsZS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDxyaXNrLWRhdGEtdGFibGUtY29sdW1uIHRpdGxlPVwiVGVzdCBEZXRhaWwgQ29sdW1uIDNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSByaXNrLWRhdGEtdGFibGUtY2VsbCBsZXQtcmVjb3JkPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZWNvcmQudmFsdWUzfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvcmlzay1kYXRhLXRhYmxlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8L3Jpc2stZGF0YS10YWJsZS1jb2x1bW4tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPHJpc2stZGF0YS10YWJsZS1jb2x1bW4tZ3JvdXA+PC9yaXNrLWRhdGEtdGFibGUtY29sdW1uLWdyb3VwPlxuICAgICAgICAgICAgPC9yaXNrLWRhdGEtdGFibGUtZGV0YWlsLXJvdz5cbiAgICAgICAgPC9yaXNrLWRhdGEtdGFibGU+YFxufSlcbmV4cG9ydCBjbGFzcyBUZXN0RGF0YVRhYmxlSG9zdENvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgZGF0YTogYW55W107XG5cbiAgICBwdWJsaWMgZm9vdGVyOiBhbnk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDUwMDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgdmFsdWUxOiBNYXRoLmZsb29yKHNlY3VyZVJhbmRvbSgpICogMjApICsgJyAtIHZhbHVlIDEnLFxuICAgICAgICAgICAgICAgIHZhbHVlMjogTWF0aC5mbG9vcihzZWN1cmVSYW5kb20oKSAqIDIwKSArICcgLSB2YWx1ZSAyJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTM6IE1hdGguZmxvb3Ioc2VjdXJlUmFuZG9tKCkgKiAyMCkgKyAnIC0gdmFsdWUgMydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9vdGVyID0gdGhpcy5kYXRhWzBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdE9yZGVyaW5nKCk6IEFycmF5PE9yZGVyaW5nQ3JpdGVyaWE8YW55PiB8IFZhbHVlR2V0dGVyPGFueT4+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBnZXQgICAgICAgOiAocmVjb3JkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZC52YWx1ZTM7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZXNjZW5kaW5nOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKHJlY29yZDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlY29yZC52YWx1ZTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWx1ZUdldHRlcigpOiAocmVjb3JkOiBhbnkpID0+IGFueSB7XG4gICAgICAgIHJldHVybiAocmVjb3JkOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZWNvcmQudmFsdWUxO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -63,13 +63,13 @@ export class DownloadLink {
|
|
|
63
63
|
}
|
|
64
64
|
export class DownloadTestComponent {
|
|
65
65
|
}
|
|
66
|
-
DownloadTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
67
|
-
DownloadTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
66
|
+
DownloadTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DownloadTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
DownloadTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DownloadTestComponent, selector: "ng-component", ngImport: i0, template: `
|
|
68
68
|
<a [risk-download]="data"
|
|
69
69
|
[risk-download-content-type]="contentType"
|
|
70
70
|
[risk-download-filename]="filename">Download</a>
|
|
71
|
-
`, isInline: true,
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.FileDownloadDirective, selector: "[risk-download]", inputs: ["risk-download", "risk-download-content-type", "risk-download-filename"] }] });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DownloadTestComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{
|
|
75
75
|
template: `
|
|
@@ -9,10 +9,10 @@ export class HighLighterDirectiveTestComponent {
|
|
|
9
9
|
return row.rowData;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
HighLighterDirectiveTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
HighLighterDirectiveTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
14
|
-
<div [risk-data-table-highlighter]="trackBy" [risk-data-table-highlighter-context]="context"></div>`, isInline: true,
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
HighLighterDirectiveTestComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HighLighterDirectiveTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
HighLighterDirectiveTestComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HighLighterDirectiveTestComponent, selector: "ng-component", ngImport: i0, template: `
|
|
14
|
+
<div [risk-data-table-highlighter]="trackBy" [risk-data-table-highlighter-context]="context"></div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.HighlighterDirective, selector: "[risk-data-table-highlighter]", inputs: ["risk-data-table-highlighter", "risk-data-table-highlighter-context"] }] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HighLighterDirectiveTestComponent, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{
|
|
18
18
|
template: `
|
|
@@ -52,8 +52,8 @@ export class TestLayoutComponentHostPage extends Page {
|
|
|
52
52
|
}
|
|
53
53
|
export class TestLayoutHostComponent {
|
|
54
54
|
}
|
|
55
|
-
TestLayoutHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
TestLayoutHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
55
|
+
TestLayoutHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestLayoutHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
56
|
+
TestLayoutHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TestLayoutHostComponent, selector: "ng-component", ngImport: i0, template: `
|
|
57
57
|
<risk-layout>
|
|
58
58
|
<!-- menu-horizontal -->
|
|
59
59
|
<risk-layout-horizontal>
|
|
@@ -68,8 +68,8 @@ TestLayoutHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
68
68
|
|
|
69
69
|
<span>Content</span>
|
|
70
70
|
</risk-layout>
|
|
71
|
-
`, isInline: true,
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.LayoutComponent, selector: "risk-layout", inputs: ["smallScreenMenuVisible", "smallScreenWidth", "footerVisible", "toolbarBackgroundColor", "backgroundColor"] }, { kind: "directive", type: i1.VerticalLayoutDirective, selector: "risk-layout-vertical" }, { kind: "directive", type: i1.HorizontalLayoutDirective, selector: "risk-layout-horizontal" }] });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestLayoutHostComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{
|
|
75
75
|
template: `
|
|
@@ -10,8 +10,8 @@ export class TestMessageHostComponent {
|
|
|
10
10
|
this.message = 'custom message';
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
TestMessageHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
TestMessageHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
13
|
+
TestMessageHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestMessageHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
TestMessageHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TestMessageHostComponent, selector: "ng-component", ngImport: i0, template: `
|
|
15
15
|
<risk-error [message]="message"></risk-error>
|
|
16
16
|
<risk-good [message]="message"></risk-good>
|
|
17
17
|
<risk-info [message]="message"></risk-info>
|
|
@@ -20,8 +20,8 @@ TestMessageHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
|
|
|
20
20
|
<risk-initial-load [message]="message"></risk-initial-load>
|
|
21
21
|
<risk-update-failed [message]="message"></risk-update-failed>
|
|
22
22
|
<risk-no-data [message]="message"></risk-no-data>
|
|
23
|
-
`, isInline: true,
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.MessageComponent, selector: "risk-error, risk-good, risk-info, risk-message, risk-warn, risk-initial-load, risk-no-data, risk-update-failed", inputs: ["message"] }] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TestMessageHostComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{
|
|
27
27
|
template: `
|
|
@@ -23,9 +23,9 @@ export class AuthRoutingFlowServiceStub extends AuthRoutingFlowService {
|
|
|
23
23
|
return this.authServiceStub.loginViaAuthService();
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
AuthRoutingFlowServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
AuthRoutingFlowServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
AuthRoutingFlowServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthRoutingFlowServiceStub, deps: [{ token: AUTH_PROVIDER }, { token: AUTH_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27
|
+
AuthRoutingFlowServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthRoutingFlowServiceStub });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthRoutingFlowServiceStub, decorators: [{
|
|
29
29
|
type: Injectable
|
|
30
30
|
}], ctorParameters: function () { return [{ type: i1.AuthService, decorators: [{
|
|
31
31
|
type: Inject,
|
|
@@ -32,9 +32,9 @@ export class AuthServiceStub extends AuthService {
|
|
|
32
32
|
return EMPTY;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
AuthServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
AuthServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
35
|
+
AuthServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthServiceStub, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
AuthServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthServiceStub });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthServiceStub, decorators: [{
|
|
38
38
|
type: Injectable
|
|
39
39
|
}], ctorParameters: function () { return []; } });
|
|
40
40
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLnN0dWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXRlc3Rpbmcvc3JjL2xpYi9zdHVicy9hdXRoL2F1dGguc2VydmljZS5zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBR3JELE9BQU8sRUFBQyxLQUFLLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUcvRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBRTVDO1FBQ0ksS0FBSyxDQUFDLEVBQVMsRUFBRSxJQUFJLG9CQUFvQixFQUFTLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxJQUFXLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBSUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sRUFBRSxDQUFDO1lBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVNLHlCQUF5QjtRQUM1QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs0R0FwQ1EsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0F1dGhTZXJ2aWNlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHtVc2VySW5mb30gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcblxuaW1wb3J0IHtFTVBUWSwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtXZWxsS25vd25TZXJ2aWNlU3R1Yn0gZnJvbSAnLi93ZWxsLmtub3duLnNlcnZpY2Uuc3R1Yic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZVN0dWIgZXh0ZW5kcyBBdXRoU2VydmljZSB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHt9IGFzIGFueSwgbmV3IFdlbGxLbm93blNlcnZpY2VTdHViKCkgYXMgYW55LCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIG51bGwgYXMgYW55KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVzZXI/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZ2V0IGxvZ2dlZEluKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gb2YoISF0aGlzLnVzZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdXNlclByb2ZpbGUoKTogT2JzZXJ2YWJsZTxVc2VySW5mbz4ge1xuICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgbmFtZTogdGhpcy51c2VyXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dpblZpYUF1dGhTZXJ2aWNlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrTG9jYXRpb25Gb3JMb2dpbkRhdGEoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlyZWN0TG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICB0aGlzLnVzZXIgPSB1c2VybmFtZTtcbiAgICAgICAgdGhpcy5lbWl0TG9naW5TdGF0dXNDaGFuZ2UodHJ1ZSk7XG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9nb3V0KCk6IE9ic2VydmFibGU8bmV2ZXI+IHtcbiAgICAgICAgdGhpcy5lbWl0TG9naW5TdGF0dXNDaGFuZ2UoZmFsc2UpO1xuICAgICAgICBkZWxldGUgdGhpcy51c2VyO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxufVxuIl19
|
|
@@ -14,9 +14,9 @@ export class WellKnownServiceStub {
|
|
|
14
14
|
return of(WELL_KNOWN);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
WellKnownServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
WellKnownServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
WellKnownServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WellKnownServiceStub, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
WellKnownServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WellKnownServiceStub });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WellKnownServiceStub, decorators: [{
|
|
20
20
|
type: Injectable
|
|
21
21
|
}] });
|
|
22
22
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsbC5rbm93bi5zZXJ2aWNlLnN0dWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXRlc3Rpbmcvc3JjL2xpYi9zdHVicy9hdXRoL3dlbGwua25vd24uc2VydmljZS5zdHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJekMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFcEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFjO0lBQ2pDLFNBQVMsRUFBRTtRQUNQLElBQUksRUFBSSxPQUFPO1FBQ2YsS0FBSyxFQUFHLFFBQVE7UUFDaEIsTUFBTSxFQUFFLFNBQVM7S0FDcEI7SUFDRCxNQUFNLEVBQUssV0FBVztDQUN6QixDQUFDO0FBR0YsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixJQUFXLFNBQVM7UUFDaEIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7aUhBSFEsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7V2VsbEtub3dufSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWF1dGgnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IFdFTExfS05PV046IFdlbGxLbm93biA9IHtcbiAgICBlbmRwb2ludHM6IHtcbiAgICAgICAgYXV0aCAgOiAnL2F1dGgnLFxuICAgICAgICB0b2tlbiA6ICcvdG9rZW4nLFxuICAgICAgICBsb2dvdXQ6ICcvbG9nb3V0J1xuICAgIH0sXG4gICAgaXNzdWVyICAgOiAncmlzay1hdXRoJ1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdlbGxLbm93blNlcnZpY2VTdHViIHtcbiAgICBwdWJsaWMgZ2V0IHdlbGxLbm93bigpOiBPYnNlcnZhYmxlPFdlbGxLbm93bj4ge1xuICAgICAgICByZXR1cm4gb2YoV0VMTF9LTk9XTik7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -33,9 +33,9 @@ export class HttpServiceStub {
|
|
|
33
33
|
return this.get(request);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
HttpServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
37
|
-
HttpServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
HttpServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServiceStub, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
HttpServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServiceStub });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServiceStub, decorators: [{
|
|
39
39
|
type: Injectable
|
|
40
40
|
}] });
|
|
41
41
|
export class HttpAsyncServiceStub extends HttpServiceStub {
|
|
@@ -46,9 +46,9 @@ export class HttpAsyncServiceStub extends HttpServiceStub {
|
|
|
46
46
|
return this.get(request);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
HttpAsyncServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
50
|
-
HttpAsyncServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
HttpAsyncServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpAsyncServiceStub, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
HttpAsyncServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpAsyncServiceStub });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpAsyncServiceStub, decorators: [{
|
|
52
52
|
type: Injectable
|
|
53
53
|
}] });
|
|
54
54
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLnN0dWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXRlc3Rpbmcvc3JjL2xpYi9zdHVicy9odHRwLnNlcnZpY2Uuc3R1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQWEsRUFBRSxFQUFFLFVBQVUsSUFBSSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRzVDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBR1ksVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUU1QixpQkFBWSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBOEJ4RTtJQTVCVSxXQUFXLENBQUMsS0FBUTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYztRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sR0FBRyxDQUFDLE9BQW1CO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELE1BQU0sS0FBSyxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxJQUFJLENBQUMsT0FBMkI7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRHQWxDUSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7QUF1Q1gsTUFBTSxPQUFPLG9CQUF3QixTQUFRLGVBQWtCO0lBRXBELEdBQUcsQ0FBQyxPQUFtQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ04sQ0FBQztJQUVNLElBQUksQ0FBQyxPQUEyQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7aUhBVlEsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVxdWVzdCwgUmVxdWVzdFdpdGhEYXRhfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Vycm9yTWVzc2FnZX0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgYXMgX3Rocm93RXJyb3IsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBGQUtFX0hUVFBfQVNZTkNfVElNRU9VVCA9IDEwMDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZVN0dWI8VD4ge1xuXG4gICAgcHJpdmF0ZSB2YWx1ZTogVFtdID0gW107XG4gICAgcHJpdmF0ZSBlcnJvcjogRXJyb3JNZXNzYWdlW10gPSBbXTtcblxuICAgIHB1YmxpYyB1bmF1dGhvcml6ZWQ6IEV2ZW50RW1pdHRlcjxFcnJvck1lc3NhZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIHJldHVyblZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMudmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvcFJldHVyblZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5wb3AoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hpZnRSZXR1cm5WYWx1ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUuc2hpZnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyb3dFcnJvcih2YWx1ZTogRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuZXJyb3IucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldChyZXF1ZXN0OiBSZXF1ZXN0PFQ+KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICh0aGlzLmVycm9yLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmVycm9yLnNoaWZ0KCk7XG4gICAgICAgICAgICByZXR1cm4gX3Rocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlOiBUIHwgdW5kZWZpbmVkID0gdGhpcy52YWx1ZS5zaGlmdCgpO1xuICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0KHJlcXVlc3Q6IFJlcXVlc3RXaXRoRGF0YTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocmVxdWVzdCk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cEFzeW5jU2VydmljZVN0dWI8VD4gZXh0ZW5kcyBIdHRwU2VydmljZVN0dWI8VD4ge1xuXG4gICAgcHVibGljIGdldChyZXF1ZXN0OiBSZXF1ZXN0PFQ+LCBhdXRoID0gdHJ1ZSk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGltZXIoRkFLRV9IVFRQX0FTWU5DX1RJTUVPVVQpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gc3VwZXIuZ2V0KHJlcXVlc3QpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0KHJlcXVlc3Q6IFJlcXVlc3RXaXRoRGF0YTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocmVxdWVzdCk7XG4gICAgfVxufVxuIl19
|
|
@@ -5,9 +5,9 @@ export class LoginMenuStubComponent {
|
|
|
5
5
|
this.orientation = 'row';
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
LoginMenuStubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
LoginMenuStubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
LoginMenuStubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LoginMenuStubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
LoginMenuStubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: LoginMenuStubComponent, selector: "login-menu, risk-login-menu", inputs: { orientation: "orientation" }, ngImport: i0, template: '', isInline: true });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LoginMenuStubComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: 'login-menu, risk-login-menu',
|
|
@@ -21,9 +21,9 @@ export class ActivatedRouteStub {
|
|
|
21
21
|
return { params: this.testParams };
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
ActivatedRouteStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
ActivatedRouteStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
+
ActivatedRouteStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ActivatedRouteStub, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
ActivatedRouteStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ActivatedRouteStub });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ActivatedRouteStub, decorators: [{
|
|
27
27
|
type: Injectable
|
|
28
28
|
}] });
|
|
29
29
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZhdGVkLnJvdXRlLnN0dWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXRlc3Rpbmcvc3JjL2xpYi9zdHVicy9yb3V0ZXIvYWN0aXZhdGVkLnJvdXRlLnN0dWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDOztBQUdqRCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBR0ksa0JBQWtCO1FBQ1YsZ0JBQVcsR0FBTSxFQUFPLENBQUM7UUFFakMsc0NBQXNDO1FBQzlCLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsV0FBTSxHQUFrQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBZTlEO0lBYkcsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsTUFBUztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLElBQVcsUUFBUTtRQUNmLE9BQU8sRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO0lBQ3JDLENBQUM7OytHQXJCUSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aXZhdGVkUm91dGVTdHViPFQ+IHtcblxuICAgIC8vIFRlc3QgcGFyYW1ldGVyc1xuICAgIHByaXZhdGUgX3Rlc3RQYXJhbXM6IFQgPSB7fSBhcyBUO1xuXG4gICAgLy8gQWN0aXZhdGVkUm91dGUucGFyYW1zIGlzIE9ic2VydmFibGVcbiAgICBwcml2YXRlIHN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudGVzdFBhcmFtcyk7XG4gICAgcHVibGljIHBhcmFtczogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBnZXQgdGVzdFBhcmFtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rlc3RQYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0ZXN0UGFyYW1zKHBhcmFtczogVCkge1xuICAgICAgICB0aGlzLl90ZXN0UGFyYW1zID0gcGFyYW1zO1xuICAgICAgICB0aGlzLnN1YmplY3QubmV4dChwYXJhbXMpO1xuICAgIH1cblxuICAgIC8vIEFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1xuICAgIHB1YmxpYyBnZXQgc25hcHNob3QoKSB7XG4gICAgICAgIHJldHVybiB7cGFyYW1zOiB0aGlzLnRlc3RQYXJhbXN9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -27,9 +27,9 @@ export class RouterLinkStubDirective {
|
|
|
27
27
|
return this._urlTree;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
RouterLinkStubDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
RouterLinkStubDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
RouterLinkStubDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RouterLinkStubDirective, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
31
|
+
RouterLinkStubDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RouterLinkStubDirective, selector: "[routerLink]", inputs: { linkParams: ["routerLink", "linkParams"] }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RouterLinkStubDirective, decorators: [{
|
|
33
33
|
type: Directive,
|
|
34
34
|
args: [{
|
|
35
35
|
/* eslint-disable @angular-eslint/directive-selector */
|
|
@@ -25,8 +25,7 @@ export function stubRouter(customOverrides) {
|
|
|
25
25
|
exports: [
|
|
26
26
|
RouterLinkStubDirective,
|
|
27
27
|
RouterOutletStubComponent
|
|
28
|
-
]
|
|
29
|
-
entryComponents: []
|
|
28
|
+
]
|
|
30
29
|
}
|
|
31
30
|
};
|
|
32
31
|
if (customOverrides) {
|
|
@@ -34,7 +33,7 @@ export function stubRouter(customOverrides) {
|
|
|
34
33
|
override.add = customOverrides.add;
|
|
35
34
|
}
|
|
36
35
|
if (customOverrides.set) {
|
|
37
|
-
|
|
36
|
+
override.set = customOverrides.set;
|
|
38
37
|
}
|
|
39
38
|
if (customOverrides.remove) {
|
|
40
39
|
override.remove = customOverrides.remove;
|
|
@@ -42,4 +41,4 @@ export function stubRouter(customOverrides) {
|
|
|
42
41
|
}
|
|
43
42
|
return TestBed.overrideModule(RouterModule, override);
|
|
44
43
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLm1vZHVsZS5zdHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci10ZXN0aW5nL3NyYy9saWIvc3R1YnMvcm91dGVyL3JvdXRlci5tb2R1bGUuc3R1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQW1CLE9BQU8sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxVQUFVLFVBQVUsQ0FBQyxlQUE0QztJQUNuRSxNQUFNLFFBQVEsR0FBK0I7UUFDekMsR0FBRyxFQUFFO1lBQ0QsT0FBTyxFQUFVLEVBQUU7WUFDbkIsWUFBWSxFQUFLO2dCQUNiLHVCQUF1QjtnQkFDdkIseUJBQXlCO2FBQzVCO1lBQ0QsU0FBUyxFQUFRO2dCQUNiO29CQUNJLE9BQU8sRUFBRyxNQUFNO29CQUNoQixRQUFRLEVBQUUsVUFBVTtpQkFDdkI7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFHLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9CO2FBQ0o7WUFDRCxPQUFPLEVBQVU7Z0JBQ2IsdUJBQXVCO2dCQUN2Qix5QkFBeUI7YUFDNUI7U0FDSjtLQUNKLENBQUM7SUFDRixJQUFJLGVBQWUsRUFBRTtRQUNqQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDckIsUUFBUSxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQztTQUN0QztRQUNELElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUN4QixRQUFRLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7U0FDNUM7S0FDSjtJQUNELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNZXRhZGF0YU92ZXJyaWRlLCBUZXN0QmVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU3R1Yn0gZnJvbSAnLi9hY3RpdmF0ZWQucm91dGUuc3R1Yic7XG5pbXBvcnQge1JvdXRlckxpbmtTdHViRGlyZWN0aXZlfSBmcm9tICcuL3JvdXRlci5saW5rLnN0dWInO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXRTdHViQ29tcG9uZW50fSBmcm9tICcuL3JvdXRlci5vdXRsZXQuc3R1Yi5jb21wb25lbnQnO1xuaW1wb3J0IHtSb3V0ZXJTdHVifSBmcm9tICcuL3JvdXRlci5zdHViJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0dWJSb3V0ZXIoY3VzdG9tT3ZlcnJpZGVzPzogTWV0YWRhdGFPdmVycmlkZTxOZ01vZHVsZT4pOiBUZXN0QmVkIHtcbiAgICBjb25zdCBvdmVycmlkZTogTWV0YWRhdGFPdmVycmlkZTxOZ01vZHVsZT4gPSB7XG4gICAgICAgIHNldDoge1xuICAgICAgICAgICAgaW1wb3J0cyAgICAgICAgOiBbXSxcbiAgICAgICAgICAgIGRlY2xhcmF0aW9ucyAgIDogW1xuICAgICAgICAgICAgICAgIFJvdXRlckxpbmtTdHViRGlyZWN0aXZlLFxuICAgICAgICAgICAgICAgIFJvdXRlck91dGxldFN0dWJDb21wb25lbnRcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwcm92aWRlcnMgICAgICA6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGUgOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBSb3V0ZXJTdHViXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGUgOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IEFjdGl2YXRlZFJvdXRlU3R1YlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBleHBvcnRzICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICBSb3V0ZXJMaW5rU3R1YkRpcmVjdGl2ZSxcbiAgICAgICAgICAgICAgICBSb3V0ZXJPdXRsZXRTdHViQ29tcG9uZW50XG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICB9O1xuICAgIGlmIChjdXN0b21PdmVycmlkZXMpIHtcbiAgICAgICAgaWYgKGN1c3RvbU92ZXJyaWRlcy5hZGQpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlLmFkZCA9IGN1c3RvbU92ZXJyaWRlcy5hZGQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1c3RvbU92ZXJyaWRlcy5zZXQpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlLnNldCA9IGN1c3RvbU92ZXJyaWRlcy5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGN1c3RvbU92ZXJyaWRlcy5yZW1vdmUpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlLnJlbW92ZSA9IGN1c3RvbU92ZXJyaWRlcy5yZW1vdmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFRlc3RCZWQub3ZlcnJpZGVNb2R1bGUoUm91dGVyTW9kdWxlLCBvdmVycmlkZSk7XG59XG4iXX0=
|
|
@@ -2,9 +2,9 @@ import { Component } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class RouterOutletStubComponent {
|
|
4
4
|
}
|
|
5
|
-
RouterOutletStubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
RouterOutletStubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5
|
+
RouterOutletStubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RouterOutletStubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
+
RouterOutletStubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: RouterOutletStubComponent, selector: "router-outlet", ngImport: i0, template: '', isInline: true });
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RouterOutletStubComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
10
|
/* eslint-disable @angular-eslint/component-selector */
|