@nova-design-system/nova-angular-18 3.25.0 → 3.27.0
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/dist/nova-components/esm2022/lib/components/nv-datatable-cell.directive.mjs +1 -2
- package/dist/nova-components/esm2022/lib/components/nv-datatable.component.mjs +49 -47
- package/dist/nova-components/esm2022/lib/nova-components.module.mjs +3 -3
- package/dist/nova-components/esm2022/lib/stencil-generated/component-value-accessors.mjs +37 -1
- package/dist/nova-components/esm2022/lib/stencil-generated/components.mjs +34 -4
- package/dist/nova-components/esm2022/lib/stencil-generated/index.mjs +2 -1
- package/dist/nova-components/fesm2022/nova-components.mjs +120 -53
- package/dist/nova-components/fesm2022/nova-components.mjs.map +1 -1
- package/dist/nova-components/lib/nova-components.module.d.ts +2 -2
- package/dist/nova-components/lib/stencil-generated/component-value-accessors.d.ts +8 -1
- package/dist/nova-components/lib/stencil-generated/components.d.ts +15 -1
- package/dist/nova-components/lib/stencil-generated/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -16,7 +16,6 @@ import * as i0 from "@angular/core";
|
|
|
16
16
|
* </nv-datatable>
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
19
|
export class NvDatatableCellDirective {
|
|
21
20
|
constructor(template) {
|
|
22
21
|
this.template = template;
|
|
@@ -34,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34
33
|
type: Input,
|
|
35
34
|
args: [{ required: true }]
|
|
36
35
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnYtZGF0YXRhYmxlLWNlbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbm92YS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9udi1kYXRhdGFibGUtY2VsbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBVzlEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7SUFPbkMsWUFBbUIsUUFBbUQ7UUFBbkQsYUFBUSxHQUFSLFFBQVEsQ0FBMkM7SUFBRyxDQUFDOytHQVAvRCx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7Z0ZBTTRCLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQ2VsbENvbnRleHQgfSBmcm9tICcuL2RhdGF0YWJsZS51dGlscyc7XG5cbi8qKlxuICogQ29udGV4dCB0eXBlIGZvciBjZWxsIHRlbXBsYXRlcyAtIHVzZXMgVGFuU3RhY2sgVGFibGUncyBDZWxsQ29udGV4dCBkaXJlY3RseVxuICovXG5leHBvcnQgdHlwZSBOdkRhdGF0YWJsZUNlbGxDb250ZXh0PFQsIFY+ID0ge1xuICAvKiogVGhlIGNlbGwncyBhY3R1YWwgdmFsdWUgKi9cbiAgJGltcGxpY2l0OiBDZWxsQ29udGV4dDxULCBWPjtcbn07XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIG1hcmsgbmctdGVtcGxhdGVzIGFzIGNlbGwgdGVtcGxhdGVzIGZvciBzcGVjaWZpYyBmaWVsZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxudi1kYXRhdGFibGUgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtyb3dzXT1cImRhdGFcIj5cbiAqICAgPG5nLXRlbXBsYXRlIG52RGF0YXRhYmxlQ2VsbD1cIm5hbWVcIiBsZXQtY29udGV4dD5cbiAqICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IGNvbnRleHQudmFsdWUgfX08L2Rpdj5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiAgIDxuZy10ZW1wbGF0ZSBudkRhdGF0YWJsZUNlbGw9XCJwcmljZVwiIGxldC1jb250ZXh0PlxuICogICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tb25vXCI+JHt7IGNvbnRleHQudmFsdWUgfX08L3NwYW4+XG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKiA8L252LWRhdGF0YWJsZT5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtudkRhdGF0YWJsZUNlbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlPFQsIFY+IHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCBuYW1lIHRoaXMgdGVtcGxhdGUgc2hvdWxkIHJlbmRlci5cbiAgICogU2hvdWxkIG1hdGNoIGEgZmllbGQgaW4geW91ciBjb2x1bW4gZGVmaW5pdGlvbnMuXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBudkRhdGF0YWJsZUNlbGwhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxOdkRhdGF0YWJsZUNlbGxDb250ZXh0PFQsIFY+Pikge31cbn1cbiJdfQ==
|
|
@@ -416,29 +416,30 @@ export class NvDatatable {
|
|
|
416
416
|
</nv-table>
|
|
417
417
|
|
|
418
418
|
<!-- Render pagination if configured -->
|
|
419
|
-
@if (paginationAPI()) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
419
|
+
@if (paginationAPI()) { @if (paginationTemplate) {
|
|
420
|
+
<ng-container
|
|
421
|
+
*ngTemplateOutlet="
|
|
422
|
+
paginationTemplate;
|
|
423
|
+
context: { $implicit: paginationAPI() }
|
|
424
|
+
"
|
|
425
|
+
></ng-container>
|
|
426
|
+
} @else if (mode() === 'client' && pagination() && !pagination()?.infinite)
|
|
427
|
+
{
|
|
428
|
+
<!-- Default pagination with nv-paginationtable (client mode only) -->
|
|
429
|
+
<nv-paginationtable
|
|
430
|
+
[pageIndex]="paginationAPI()!.pageIndex"
|
|
431
|
+
[pageSize]="paginationAPI()!.pageSize"
|
|
432
|
+
[pageCount]="paginationAPI()!.pageCount"
|
|
433
|
+
[rowCount]="paginationAPI()!.rowCount"
|
|
434
|
+
[attr.label-page]="pagination()?.labels?.page || null"
|
|
435
|
+
[attr.label-total]="pagination()?.labels?.total || null"
|
|
436
|
+
[attr.label-page-size-option]="
|
|
437
|
+
pagination()?.labels?.pageSizeOption || null
|
|
438
|
+
"
|
|
439
|
+
(pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
|
|
440
|
+
(pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
|
|
441
|
+
></nv-paginationtable>
|
|
442
|
+
} }
|
|
442
443
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FlexRenderDirective, selector: "[flexRender]", inputs: ["flexRender", "flexRenderProps", "flexRenderInjector"] }] }); }
|
|
443
444
|
}
|
|
444
445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvDatatable, decorators: [{
|
|
@@ -518,29 +519,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
518
519
|
</nv-table>
|
|
519
520
|
|
|
520
521
|
<!-- Render pagination if configured -->
|
|
521
|
-
@if (paginationAPI()) {
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
522
|
+
@if (paginationAPI()) { @if (paginationTemplate) {
|
|
523
|
+
<ng-container
|
|
524
|
+
*ngTemplateOutlet="
|
|
525
|
+
paginationTemplate;
|
|
526
|
+
context: { $implicit: paginationAPI() }
|
|
527
|
+
"
|
|
528
|
+
></ng-container>
|
|
529
|
+
} @else if (mode() === 'client' && pagination() && !pagination()?.infinite)
|
|
530
|
+
{
|
|
531
|
+
<!-- Default pagination with nv-paginationtable (client mode only) -->
|
|
532
|
+
<nv-paginationtable
|
|
533
|
+
[pageIndex]="paginationAPI()!.pageIndex"
|
|
534
|
+
[pageSize]="paginationAPI()!.pageSize"
|
|
535
|
+
[pageCount]="paginationAPI()!.pageCount"
|
|
536
|
+
[rowCount]="paginationAPI()!.rowCount"
|
|
537
|
+
[attr.label-page]="pagination()?.labels?.page || null"
|
|
538
|
+
[attr.label-total]="pagination()?.labels?.total || null"
|
|
539
|
+
[attr.label-page-size-option]="
|
|
540
|
+
pagination()?.labels?.pageSizeOption || null
|
|
541
|
+
"
|
|
542
|
+
(pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
|
|
543
|
+
(pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
|
|
544
|
+
></nv-paginationtable>
|
|
545
|
+
} }
|
|
544
546
|
`,
|
|
545
547
|
}]
|
|
546
548
|
}], ctorParameters: () => [], propDecorators: { paginationTemplate: [{
|
|
@@ -576,4 +578,4 @@ export function makeColumn() {
|
|
|
576
578
|
};
|
|
577
579
|
}
|
|
578
580
|
export { flexRenderComponent as nvDatatableRenderComponent } from './datatable.utils';
|
|
579
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnYtZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbnYtZGF0YXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsMENBQTBDO0FBQzFDLHdDQUF3QztBQUV4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxFQUVmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsZ0hBQWdIO0FBQ2hILE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBT3BCLE1BQU0sbUJBQW1CLENBQUM7OztBQUUzQjs7O0dBR0c7QUFxR0gsTUFBTSxPQUFPLFdBQVc7SUErUHRCLHdDQUF3QztJQUN4QyxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwwQkFBMEIsQ0FDeEIsS0FBMkMsRUFDM0MsTUFLQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLFNBQWtDLENBQUM7UUFFdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixTQUFTLEdBQUcsS0FBZ0MsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxT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QUUsbUJBQW1CLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZGVDtpQkFDRjt3REFxQkMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekQsYUFBYTtzQkFEWixlQUFlO3VCQUFDLHdCQUF3Qjs7QUF1WjNDLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxTQUFTLE1BQU0sQ0FDcEIsR0FBaUM7UUFFakMsT0FBTyxHQUF3QyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtcmV0dXJucyAqL1xuLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1wYXJhbSAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIGVmZmVjdCxcbiAgc2lnbmFsLFxuICBFbGVtZW50UmVmLFxuICB2aWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlLFxuICB0eXBlIE52RGF0YXRhYmxlQ2VsbENvbnRleHQsXG59IGZyb20gJy4vbnYtZGF0YXRhYmxlLWNlbGwuZGlyZWN0aXZlJztcblxuLy8gbG9jYWwgY29weSBvZiBAdGFuc3RhY2svYW5ndWxhci10YWJsZSAocmVxdWlyZWQgZm9yIG11bHRpIGFuZ3VsYXIgdmVyc2lvbnMsIHRoZSBidWlsdCB2ZXJzaW9uIGlzIG5vdCB3b3JraW5nKVxuaW1wb3J0IHtcbiAgY3JlYXRlQW5ndWxhclRhYmxlLFxuICBnZXRDb3JlUm93TW9kZWwsXG4gIGdldFBhZ2luYXRpb25Sb3dNb2RlbCxcbiAgZ2V0U29ydGVkUm93TW9kZWwsXG4gIEZsZXhSZW5kZXJEaXJlY3RpdmUsXG4gIHR5cGUgRmxleFJlbmRlckNvbXBvbmVudCxcbiAgdHlwZSBDb2x1bW5EZWYsXG4gIHR5cGUgQ2VsbENvbnRleHQsXG4gIHR5cGUgUGFnaW5hdGlvblN0YXRlLFxuICB0eXBlIFNvcnRpbmdTdGF0ZSxcbiAgdHlwZSBOb0luZmVyLFxufSBmcm9tICcuL2RhdGF0YWJsZS51dGlscyc7XG5cbi8qKlxuICogQSBwb3dlcmZ1bCwgZmxleGlibGUgZGF0YXRhYmxlIGNvbXBvbmVudCBidWlsdCBvbiBUYW5TdGFjayBUYWJsZS5cbiAqIFN1cHBvcnRzIGN1c3RvbSBjZWxsIHJlbmRlcmluZywgY29sdW1uIGNvbmZpZ3VyYXRpb24sIHBhZ2luYXRpb24sIGFuZCBmdWxsIFR5cGVTY3JpcHQgdHlwaW5nLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kYXRhdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4UmVuZGVyRGlyZWN0aXZlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxudi10YWJsZT5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRoZWFkIFthdHRyLmRhdGEtc3RpY2t5LXRvcF09XCJzdGlja3lIZWFkZXIoKSA/ICd0cnVlJyA6IG51bGxcIj5cbiAgICAgICAgICBAZm9yIChoZWFkZXJHcm91cCBvZiB0YWJsZSgpLmdldEhlYWRlckdyb3VwcygpOyB0cmFjayBoZWFkZXJHcm91cC5pZClcbiAgICAgICAgICB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoaGVhZGVyIG9mIGhlYWRlckdyb3VwLmhlYWRlcnM7IHRyYWNrIGhlYWRlci5pZCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtaGVhZGVyLScgKyBoZWFkZXIuaWRcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiXG4gICAgICAgICAgICAgICAgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuc2l6ZVxuICAgICAgICAgICAgICAgICAgPyBoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5zaXplICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtbm8tcmVzaXplXT1cIlxuICAgICAgICAgICAgICAgICFoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5lbmFibGVSZXNpemluZyA/ICd0cnVlJyA6IG51bGxcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaGVhZGVyLmlzUGxhY2Vob2xkZXIpIHsgQGlmIChoZWFkZXIuY29sdW1uLmdldENhblNvcnQoKSkge1xuICAgICAgICAgICAgICA8bnYtdGFibGVoZWFkZXJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NvcnREaXJlY3Rpb25dPVwiaGVhZGVyLmNvbHVtbi5nZXRJc1NvcnRlZCgpIHx8ICdub25lJ1wiXG4gICAgICAgICAgICAgICAgKHNvcnREaXJlY3Rpb25DaGFuZ2VkKT1cIlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU29ydERpcmVjdGlvbkNoYW5nZWQoJGV2ZW50LCBoZWFkZXIpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGhlYWRlci5jb2x1bW4uY29sdW1uRGVmLmhlYWRlciB9fVxuICAgICAgICAgICAgICA8L252LXRhYmxlaGVhZGVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuaGVhZGVyIH19XG4gICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90aGVhZD5cblxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgQGZvciAocm93IG9mIHRhYmxlKCkuZ2V0Um93TW9kZWwoKS5yb3dzOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4KVxuICAgICAgICAgIHtcbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtcm93LScgKyBpXCJcbiAgICAgICAgICAgICN0YWJsZVJvd1xuICAgICAgICAgICAgW2F0dHIuZGF0YS1pcy1sYXN0XT1cIlxuICAgICAgICAgICAgICBpc0luZmluaXRlU2Nyb2xsKCkgJiYgaSA9PT0gdGFibGUoKS5nZXRSb3dNb2RlbCgpLnJvd3MubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGNlbGwgb2Ygcm93LmdldFZpc2libGVDZWxscygpOyB0cmFjayBjZWxsLmlkKSB7XG4gICAgICAgICAgICA8dGQgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2RhdGF0YWJsZS1jZWxsLScgKyBjZWxsLmNvbHVtbi5pZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKmZsZXhSZW5kZXI9XCJcbiAgICAgICAgICAgICAgICAgIGNlbGwuY29sdW1uLmNvbHVtbkRlZi5jZWxsO1xuICAgICAgICAgICAgICAgICAgcHJvcHM6IGNlbGwuZ2V0Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgICAgbGV0IGNlbGxDb250ZW50XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNlbGxDb250ZW50IH19XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9udi10YWJsZT5cblxuICAgIDwhLS0gUmVuZGVyIHBhZ2luYXRpb24gaWYgY29uZmlndXJlZCAtLT5cbiAgICBAaWYgKHBhZ2luYXRpb25BUEkoKSkge1xuICAgICAgQGlmIChwYWdpbmF0aW9uVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBwYWdpbmF0aW9uVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFnaW5hdGlvbkFQSSgpIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIGlmIChtb2RlKCkgPT09ICdjbGllbnQnICYmIHBhZ2luYXRpb24oKSAmJiAhcGFnaW5hdGlvbigpPy5pbmZpbml0ZSkge1xuICAgICAgICA8IS0tIERlZmF1bHQgcGFnaW5hdGlvbiB3aXRoIG52LXBhZ2luYXRpb250YWJsZSAoY2xpZW50IG1vZGUgb25seSkgLS0+XG4gICAgICAgIDxudi1wYWdpbmF0aW9udGFibGVcbiAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2luYXRpb25BUEkoKSEucGFnZUluZGV4XCJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvbkFQSSgpIS5wYWdlU2l6ZVwiXG4gICAgICAgICAgW3BhZ2VDb3VudF09XCJwYWdpbmF0aW9uQVBJKCkhLnBhZ2VDb3VudFwiXG4gICAgICAgICAgW3Jvd0NvdW50XT1cInBhZ2luYXRpb25BUEkoKSEucm93Q291bnRcIlxuICAgICAgICAgIFthdHRyLmxhYmVsLXBhZ2VdPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnBhZ2UgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIubGFiZWwtdG90YWxdPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnRvdGFsIHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLmxhYmVsLXBhZ2Utc2l6ZS1vcHRpb25dPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnBhZ2VTaXplT3B0aW9uIHx8IG51bGxcIlxuICAgICAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT1cInBhZ2luYXRpb25BUEkoKSEuc2V0UGFnZUluZGV4KCRldmVudC5kZXRhaWwpXCJcbiAgICAgICAgICAocGFnZVNpemVDaGFuZ2VkKT1cInBhZ2luYXRpb25BUEkoKSEuc2V0UGFnZVNpemUoJGV2ZW50LmRldGFpbClcIlxuICAgICAgICA+PC9udi1wYWdpbmF0aW9udGFibGU+XG4gICAgICB9XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOdkRhdGF0YWJsZTxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbnMgKi9cbiAgY29sdW1ucyA9IGlucHV0PE52RGF0YXRhYmxlQ29sdW1uPFQ+W10+KFtdKTtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvd3MgPSBpbnB1dDxUW10+KFtdKTtcbiAgLyoqXG4gICAqIERhdGEgaGFuZGxpbmcgbW9kZSBmb3Igc29ydGluZyBhbmQgZmlsdGVyaW5nIG9wZXJhdGlvbnMuXG4gICAqIC0gJ2NsaWVudCc6IEFsbCBvcGVyYXRpb25zIGhhbmRsZWQgaW4gYnJvd3NlciAoZGVmYXVsdClcbiAgICogLSAnc2VydmVyJzogT3BlcmF0aW9ucyB0cmlnZ2VyIGNhbGxiYWNrcyBmb3Igc2VydmVyLXNpZGUgaGFuZGxpbmdcbiAgICovXG4gIG1vZGUgPSBpbnB1dDwnY2xpZW50JyB8ICdzZXJ2ZXInPignY2xpZW50Jyk7XG4gIC8qKiBPcHRpb25hbCBwYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcGFnaW5hdGlvbiA9IGlucHV0PE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLyoqIE9wdGlvbmFsIHNvcnRpbmcgY29uZmlndXJhdGlvbiAqL1xuICBzb3J0aW5nID0gaW5wdXQ8TnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvKiogU2hvdWxkIHRoZSBoZWFkZXIgc3RpY2sgdG8gdGhlIHRvcCBvZiB0aGUgdGFibGUgd2hlbiBzY3JvbGxpbmc/ICovXG4gIHN0aWNreUhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogVGVtcGxhdGUgZm9yIGN1c3RvbSBwYWdpbmF0aW9uIFVJICovXG4gIEBDb250ZW50Q2hpbGQoJ3BhZ2luYXRpb25UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcGFnaW5hdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgICRpbXBsaWNpdDogTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJO1xuICB9PjtcblxuICAvKiogQ2VsbCB0ZW1wbGF0ZXMgcHJvdmlkZWQgdmlhIG52RGF0YXRhYmxlQ2VsbCBkaXJlY3RpdmUgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmUpXG4gIGNlbGxUZW1wbGF0ZXM/OiBRdWVyeUxpc3Q8TnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlPFQsIFRba2V5b2YgVF0+PjtcblxuICAvKiogU2lnbmFsIHRvIHRyYWNrIGNlbGwgdGVtcGxhdGVzIGFycmF5ICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlc1NpZ25hbCA9IHNpZ25hbDxcbiAgICBOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmU8VCwgVFtrZXlvZiBUXT5bXVxuICA+KFtdKTtcblxuICAvKiogTWFwIG9mIGZpZWxkIG5hbWVzIHRvIGNlbGwgdGVtcGxhdGVzICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlTWFwID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICBUZW1wbGF0ZVJlZjxOdkRhdGF0YWJsZUNlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+PlxuICAgID4oKTtcbiAgICB0aGlzLmNlbGxUZW1wbGF0ZXNTaWduYWwoKS5mb3JFYWNoKChkaXJlY3RpdmUpID0+IHtcbiAgICAgIG1hcC5zZXQoZGlyZWN0aXZlLm52RGF0YXRhYmxlQ2VsbCwgZGlyZWN0aXZlLnRlbXBsYXRlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbWFwO1xuICB9KTtcblxuICAvKiogUGFnaW5hdGlvbiBzdGF0ZSBmb3Igc2VydmVyIG1vZGUgKi9cbiAgcHJpdmF0ZSBwYWdpbmF0aW9uU3RhdGUgPSBzaWduYWw8UGFnaW5hdGlvblN0YXRlPih7XG4gICAgcGFnZUluZGV4OiAwLFxuICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb24oKT8uaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICB9KTtcblxuICAvKiogU29ydGluZyBzdGF0ZSBmb3IgY29udHJvbGxlZCBzb3J0aW5nIChzZXJ2ZXIgbW9kZSkgKi9cbiAgcHJpdmF0ZSBzb3J0aW5nU3RhdGUgPSBzaWduYWw8U29ydGluZ1N0YXRlPih0aGlzLnNvcnRpbmcoKT8uc29ydFN0YXRlIHx8IFtdKTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRhYmxlIHJvd3MgZm9yIGluZmluaXRlIHNjcm9sbCBvYnNlcnZlciAqL1xuICBwcml2YXRlIHRhYmxlUm93cyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigndGFibGVSb3cnKTtcblxuICAvKiogSW50ZXJzZWN0aW9uIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgKi9cbiAgcHJpdmF0ZSBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogSGVscGVyIHRvIGNoZWNrIGlmIHVzaW5nIGluZmluaXRlIHNjcm9sbCAqL1xuICBpc0luZmluaXRlU2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYWdpbmF0aW9uKCk/LmluZmluaXRlID09PSB0cnVlKTtcblxuICAvKiogQ29tcHV0ZWQgdGFibGUgY29sdW1ucyB3aXRoIHByb3BlciB0eXBpbmcgYW5kIGZpbHRlcmluZy4gKi9cbiAgdGFibGVDb2x1bW5zID0gY29tcHV0ZWQ8Q29sdW1uRGVmPFQsIFRba2V5b2YgVF0+W10+KCgpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZU1hcCA9IHRoaXMuY2VsbFRlbXBsYXRlTWFwKCk7XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4gIWNvbC5oaWRkZW4pXG4gICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgLy8gU2hhcmVkIGNlbGwgcmVuZGVyZXJcbiAgICAgICAgY29uc3QgY2VsbFJlbmRlcmVyID0gKGNvbnRleHQ6IENlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGROYW1lID0gU3RyaW5nKGNvbC5maWVsZCk7XG4gICAgICAgICAgY29uc3QgY2VsbFRlbXBsYXRlID0gdGVtcGxhdGVNYXAuZ2V0KGZpZWxkTmFtZSk7XG5cbiAgICAgICAgICAvLyBQcmlvcml0eTogdGVtcGxhdGUgPiByZW5kZXJDZWxsID4gZGVmYXVsdFxuICAgICAgICAgIGlmIChjZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIFJldHVybiBUZW1wbGF0ZVJlZiBkaXJlY3RseSAtIGdldFZhbHVlKCkgcmV0dXJucyBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBjZWxsVGVtcGxhdGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHJlbmRlckNlbGwgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoY29sLnJlbmRlckNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2wucmVuZGVyQ2VsbChjb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBEZWZhdWx0OiBqdXN0IHJldHVybiB0aGUgdmFsdWUgKGZvcm1hdHRlZCBpZiB2YWx1ZUZvcm1hdHRlciB3YXMgdXNlZClcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5nZXRWYWx1ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbkRlZjogQ29sdW1uRGVmPFQsIFRba2V5b2YgVF0+ID0ge1xuICAgICAgICAgIGFjY2Vzc29yS2V5OiBjb2wuZmllbGQsXG4gICAgICAgICAgYWNjZXNzb3JGbjogY29sLnZhbHVlRm9ybWF0dGVyXG4gICAgICAgICAgICA/IChyb3c6IFQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHJvd1tjb2wuZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2wudmFsdWVGb3JtYXR0ZXIhKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiByYXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGhlYWRlcjogY29sLmhlYWRlck5hbWUgfHwgU3RyaW5nKGNvbC5maWVsZCksXG4gICAgICAgICAgc2l6ZTogY29sLndpZHRoLFxuICAgICAgICAgIGVuYWJsZVJlc2l6aW5nOiBjb2wucmVzaXphYmxlID8/IHRydWUsXG4gICAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdGhpcy5zb3J0aW5nKCkgPyBjb2wuc29ydGFibGUgPz8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIGNlbGw6IGNlbGxSZW5kZXJlcixcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgb3B0aW9uYWwgc29ydGluZyBwcm9wZXJ0aWVzIG9ubHkgaWYgZGVmaW5lZFxuICAgICAgICBpZiAoY29sLnNvcnRpbmdGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFRhblN0YWNrIHR5cGluZyBpcyBzdHJpY3QgYnV0IHRoaXMgd29ya3MgYXQgcnVudGltZVxuICAgICAgICAgIGNvbHVtbkRlZi5zb3J0aW5nRm4gPSBjb2wuc29ydGluZ0ZuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2wuc29ydERlc2NGaXJzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29sdW1uRGVmLnNvcnREZXNjRmlyc3QgPSBjb2wuc29ydERlc2NGaXJzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sLmludmVydFNvcnRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbHVtbkRlZi5pbnZlcnRTb3J0aW5nID0gY29sLmludmVydFNvcnRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbC5zb3J0VW5kZWZpbmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb2x1bW5EZWYuc29ydFVuZGVmaW5lZCA9IGNvbC5zb3J0VW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZjtcbiAgICAgIH0pO1xuICB9KTtcblxuICAvKiogVGFuU3RhY2sgdGFibGUgaW5zdGFuY2Ugd2l0aCBTaWduYWxzICovXG4gIHByaXZhdGUgdGFibGVJbnN0YW5jZSA9IGNyZWF0ZUFuZ3VsYXJUYWJsZSgoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGNvbnN0IHNvcnRpbmdDb25maWcgPSB0aGlzLnNvcnRpbmcoKTtcbiAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgY29uc3QgaXNTZXJ2ZXJNb2RlID0gY29tcG9uZW50TW9kZSA9PT0gJ3NlcnZlcic7XG4gICAgY29uc3QgaXNJbmZpbml0ZSA9IHBhZ2luYXRpb25Db25maWc/LmluZmluaXRlID09PSB0cnVlO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGJhc2UgdGFibGUgY29uZmlndXJhdGlvbiB3aXRoIHNvcnRpbmdcbiAgICBjb25zdCBnZXRCYXNlVGFibGVDb25maWcgPSAoKSA9PiB7XG4gICAgICBjb25zdCBiYXNlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiB0aGlzLnJvd3MoKSxcbiAgICAgICAgY29sdW1uczogdGhpcy50YWJsZUNvbHVtbnMoKSxcbiAgICAgICAgZ2V0Q29yZVJvd01vZGVsOiBnZXRDb3JlUm93TW9kZWwoKSxcbiAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uIC0gdXNlcyB0b3AtbGV2ZWwgbW9kZVxuICAgICAgICAuLi4oc29ydGluZ0NvbmZpZyAmJiB7XG4gICAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAgIHNvcnRpbmc6XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvblNvcnRpbmdDaGFuZ2U6IChcbiAgICAgICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgICAgICB8IFNvcnRpbmdTdGF0ZVxuICAgICAgICAgICAgICB8ICgob2xkOiBTb3J0aW5nU3RhdGUpID0+IFNvcnRpbmdTdGF0ZSksXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U29ydCA9XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NvcnQgPVxuICAgICAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZXJPclZhbHVlKGN1cnJlbnRTb3J0KVxuICAgICAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgICAgIC8vIEFsd2F5cyB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgZm9yIHJlYWN0aXZpdHlcbiAgICAgICAgICAgIHRoaXMuc29ydGluZ1N0YXRlLnNldChuZXdTb3J0KTtcblxuICAgICAgICAgICAgLy8gRm9yIHNlcnZlci1zaWRlIHNvcnRpbmcsIGFsc28gY2FsbCB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGlmIChpc1NlcnZlck1vZGUgJiYgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UobmV3U29ydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYW51YWxTb3J0aW5nOiBpc1NlcnZlck1vZGUsXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVNdWx0aVNvcnQ6IHNvcnRpbmdDb25maWcuZW5hYmxlTXVsdGlTb3J0ID8/IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZVNvcnRpbmdSZW1vdmFsOiBzb3J0aW5nQ29uZmlnLmVuYWJsZVNvcnRpbmdSZW1vdmFsID8/IHRydWUsXG4gICAgICAgICAgbWF4TXVsdGlTb3J0Q29sQ291bnQ6IHNvcnRpbmdDb25maWcubWF4TXVsdGlTb3J0Q29sQ291bnQsXG4gICAgICAgICAgc29ydERlc2NGaXJzdDogc29ydGluZ0NvbmZpZy5zb3J0RGVzY0ZpcnN0ID8/IGZhbHNlLFxuICAgICAgICAgIC8vIFdoZW4gbXVsdGktc29ydCBpcyBlbmFibGVkLCB0cmVhdCBhbGwgY2xpY2tzIGFzIG11bHRpLXNvcnQgZXZlbnRzXG4gICAgICAgICAgaXNNdWx0aVNvcnRFdmVudDogc29ydGluZ0NvbmZpZy5lbmFibGVNdWx0aVNvcnRcbiAgICAgICAgICAgID8gKCkgPT4gdHJ1ZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZ2V0U29ydGVkUm93TW9kZWw6ICFpc1NlcnZlck1vZGUgPyBnZXRTb3J0ZWRSb3dNb2RlbCgpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBiYXNlQ29uZmlnO1xuICAgIH07XG5cbiAgICAvLyBJbmZpbml0ZSBzY3JvbGwgbW9kZSAocmVxdWlyZXMgc2VydmVyIG1vZGUpXG4gICAgaWYgKGlzSW5maW5pdGUpIHtcbiAgICAgIC8vIE5vIHBhZ2luYXRpb24gcm93IG1vZGVsIGZvciBpbmZpbml0ZSBzY3JvbGwgLSBzaW1wbGUgY29uZmlnXG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gTm8gcGFnaW5hdGlvbiBjb25maWd1cmVkXG4gICAgaWYgKCFwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gQ2xpZW50LXNpZGUgcGFnaW5hdGlvblxuICAgIGlmICghaXNTZXJ2ZXJNb2RlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5nZXRCYXNlVGFibGVDb25maWcoKSxcbiAgICAgICAgZ2V0UGFnaW5hdGlvblJvd01vZGVsOiBnZXRQYWdpbmF0aW9uUm93TW9kZWwoKSxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgcGFnZVNpemU6IHBhZ2luYXRpb25Db25maWcuaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHBhZ2luYXRpb24gLSBtYW51YWwgcGFnaW5hdGlvbiB3aXRoIHJlYWN0aXZlIHN0YXRlXG4gICAgY29uc3QgYmFzZUNvbmZpZyA9IGdldEJhc2VUYWJsZUNvbmZpZygpO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5wYWdpbmF0aW9uU3RhdGUoKS5wYWdlU2l6ZTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZUNvbmZpZyxcbiAgICAgIG1hbnVhbFBhZ2luYXRpb246IHRydWUsXG4gICAgICBwYWdlQ291bnQ6XG4gICAgICAgIHBhZ2luYXRpb25Db25maWcudG90YWxQYWdlQ291bnQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFnaW5hdGlvbkNvbmZpZy50b3RhbFBhZ2VDb3VudFxuICAgICAgICAgIDogcGFnaW5hdGlvbkNvbmZpZy50b3RhbFJvd0NvdW50ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IE1hdGguY2VpbChwYWdpbmF0aW9uQ29uZmlnLnRvdGFsUm93Q291bnQgLyBwYWdlU2l6ZSlcbiAgICAgICAgICA6IC0xLFxuICAgICAgc3RhdGU6IHtcbiAgICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uU3RhdGUoKSxcbiAgICAgICAgLi4uKGJhc2VDb25maWcuc3RhdGUgJiYgeyBzb3J0aW5nOiBiYXNlQ29uZmlnLnN0YXRlLnNvcnRpbmcgfSksXG4gICAgICB9LFxuICAgICAgb25QYWdpbmF0aW9uQ2hhbmdlOiAoXG4gICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgIHwgUGFnaW5hdGlvblN0YXRlXG4gICAgICAgICAgfCAoKG9sZDogUGFnaW5hdGlvblN0YXRlKSA9PiBQYWdpbmF0aW9uU3RhdGUpLFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID1cbiAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdXBkYXRlck9yVmFsdWUodGhpcy5wYWdpbmF0aW9uU3RhdGUoKSlcbiAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU3RhdGUuc2V0KG5ld1N0YXRlKTtcblxuICAgICAgICAvLyBDYWxsIHVzZXIncyBjYWxsYmFjayBmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvblxuICAgICAgICBpZiAocGFnaW5hdGlvbkNvbmZpZy5vblBhZ2luYXRpb25DaGFuZ2UpIHtcbiAgICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLm9uUGFnaW5hdGlvbkNoYW5nZSh7XG4gICAgICAgICAgICBwYWdlSW5kZXg6IG5ld1N0YXRlLnBhZ2VJbmRleCxcbiAgICAgICAgICAgIHBhZ2VTaXplOiBuZXdTdGF0ZS5wYWdlU2l6ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuICAvKiogUHVibGljIGdldHRlciBmb3IgdGFibGUgaW5zdGFuY2UuICovXG4gIHRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlSW5zdGFuY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGZyb20gdGFibGUgaGVhZGVyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IFRoZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZXZlbnQgb3IgZGlyZWN0aW9uIHN0cmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gaGVhZGVyIFRoZSB0YWJsZSBoZWFkZXIgb2JqZWN0XG4gICAqL1xuICBoYW5kbGVTb3J0RGlyZWN0aW9uQ2hhbmdlZChcbiAgICBldmVudDogRXZlbnQgfCBDdXN0b21FdmVudDxzdHJpbmc+IHwgc3RyaW5nLFxuICAgIGhlYWRlcjoge1xuICAgICAgY29sdW1uOiB7XG4gICAgICAgIGNsZWFyU29ydGluZzogKCkgPT4gdm9pZDtcbiAgICAgICAgdG9nZ2xlU29ydGluZzogKGRlc2M/OiBib29sZWFuLCBtdWx0aT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgICB9O1xuICAgIH0sXG4gICkge1xuICAgIC8vIEV4dHJhY3QgZGlyZWN0aW9uIGZyb20gZXZlbnQgb3IgdXNlIGRpcmVjdGx5IGlmIHN0cmluZ1xuICAgIGxldCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuXG4gICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50IGFzICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuICAgIH0gZWxzZSBpZiAoJ2RldGFpbCcgaW4gZXZlbnQgJiYgdHlwZW9mIGV2ZW50LmRldGFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50LmRldGFpbCBhcyAnYXNjJyB8ICdkZXNjJyB8ICdub25lJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgLSBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBoYW5kbGUgZ3JhY2VmdWxseVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVW5leHBlY3RlZCBldmVudCB0eXBlIGluIGhhbmRsZVNvcnREaXJlY3Rpb25DaGFuZ2VkOicsXG4gICAgICAgIGV2ZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzb3J0aW5nQ29uZmlnID0gdGhpcy5zb3J0aW5nKCk7XG5cbiAgICAvLyBDaGVjayBpZiBtdWx0aS1zb3J0IGlzIGVuYWJsZWRcbiAgICBjb25zdCBpc011bHRpU29ydCA9IHNvcnRpbmdDb25maWc/LmVuYWJsZU11bHRpU29ydCA/PyBmYWxzZTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdub25lJykge1xuICAgICAgLy8gQ2xlYXIgdGhpcyBjb2x1bW4ncyBzb3J0XG4gICAgICBoZWFkZXIuY29sdW1uLmNsZWFyU29ydGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUb2dnbGUgc29ydCAtIFRhblN0YWNrIHdpbGwgaGFuZGxlIHRoZSBsb2dpYyBpbnRlcm5hbGx5XG4gICAgICBoZWFkZXIuY29sdW1uLnRvZ2dsZVNvcnRpbmcoZGlyZWN0aW9uID09PSAnZGVzYycsIGlzTXVsdGlTb3J0KTtcbiAgICB9XG4gIH1cblxuICAvKiogQnVpbGQgcGFnaW5hdGlvbiBBUEkgZm9yIHRlbXBsYXRlICovXG4gIHBhZ2luYXRpb25BUEkgPSBjb21wdXRlZDxOdkRhdGF0YWJsZVJlbmRlclBhZ2luYXRpb25BUEkgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGlmICghcGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50TW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIGNvbnN0IGlzU2VydmVyTW9kZSA9IGNvbXBvbmVudE1vZGUgPT09ICdzZXJ2ZXInO1xuICAgIGNvbnN0IGlzSW5maW5pdGUgPSBwYWdpbmF0aW9uQ29uZmlnLmluZmluaXRlID09PSB0cnVlO1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZSgpO1xuICAgIGNvbnN0IHRhYmxlUGFnaW5hdGlvblN0YXRlID0gdGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uO1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRhYmxlLmdldFBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IHJvd0NvdW50ID0gaXNTZXJ2ZXJNb2RlXG4gICAgICA/IHBhZ2luYXRpb25Db25maWcudG90YWxSb3dDb3VudCB8fCB0aGlzLnJvd3MoKS5sZW5ndGhcbiAgICAgIDogdGhpcy5yb3dzKCkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VJbmRleDogdGFibGVQYWdpbmF0aW9uU3RhdGUucGFnZUluZGV4LFxuICAgICAgcGFnZVNpemU6IHRhYmxlUGFnaW5hdGlvblN0YXRlLnBhZ2VTaXplLFxuICAgICAgcGFnZUNvdW50LFxuICAgICAgcm93Q291bnQsXG4gICAgICBmaXJzdFBhZ2U6ICgpID0+IHRhYmxlLnNldFBhZ2VJbmRleCgwKSxcbiAgICAgIHByZXZpb3VzUGFnZTogKCkgPT4gdGFibGUucHJldmlvdXNQYWdlKCksXG4gICAgICBuZXh0UGFnZTogKCkgPT4gdGFibGUubmV4dFBhZ2UoKSxcbiAgICAgIGxhc3RQYWdlOiAoKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgocGFnZUNvdW50IC0gMSksXG4gICAgICBzZXRQYWdlSW5kZXg6IChpbmRleDogbnVtYmVyKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgoaW5kZXgpLFxuICAgICAgc2V0UGFnZVNpemU6IChzaXplOiBudW1iZXIpID0+IHRhYmxlLnNldFBhZ2VTaXplKHNpemUpLFxuICAgICAgY2FuUHJldmlvdXNQYWdlOiB0YWJsZS5nZXRDYW5QcmV2aW91c1BhZ2UoKSxcbiAgICAgIGNhbk5leHRQYWdlOiB0YWJsZS5nZXRDYW5OZXh0UGFnZSgpLFxuICAgICAgaXNMb2FkaW5nOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5pc0xvYWRpbmcgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNb3JlOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFZhbGlkYXRlIGluZmluaXRlIHNjcm9sbCByZXF1aXJlcyBzZXJ2ZXIgbW9kZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwYWdpbmF0aW9uQ29uZmlnID0gdGhpcy5wYWdpbmF0aW9uKCk7XG4gICAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG5cbiAgICAgIGlmIChwYWdpbmF0aW9uQ29uZmlnPy5pbmZpbml0ZSA9PT0gdHJ1ZSAmJiBjb21wb25lbnRNb2RlICE9PSAnc2VydmVyJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1tOdkRhdGF0YWJsZV0gcGFnaW5hdGlvbi5pbmZpbml0ZT10cnVlIHJlcXVpcmVzIG1vZGU9XCJzZXJ2ZXJcIi4gJyArXG4gICAgICAgICAgICAnSW5maW5pdGUgc2Nyb2xsIHJlbGllcyBvbiBzZXJ2ZXItc2lkZSBkYXRhIGxvYWRpbmcuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCB1cCBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgZm9yIGluZmluaXRlIHNjcm9sbFxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7IC8vIFRyYWNrIHJvd3MgY2hhbmdlc1xuICAgICAgICBjb25zdCBpc0luZmluaXRlID0gcGFnaW5hdGlvbkNvbmZpZz8uaW5maW5pdGUgPT09IHRydWU7XG5cbiAgICAgICAgLy8gQ2xlYW4gdXAgZXhpc3Rpbmcgb2JzZXJ2ZXJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgc2V0IHVwIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgbW9kZVxuICAgICAgICBpZiAoIWlzSW5maW5pdGUgfHwgcm93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2Ugc2V0VGltZW91dCB0byBlbnN1cmUgRE9NIGlzIHVwZGF0ZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gcGFnaW5hdGlvbkNvbmZpZy5sb2FkTW9yZVRocmVzaG9sZCB8fCA1MDA7XG5cbiAgICAgICAgICAvLyBGaW5kIHRoZSBsYXN0IHJvdyBlbGVtZW50XG4gICAgICAgICAgY29uc3QgdGFibGVSb3dFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAnW2RhdGEtaXMtbGFzdD1cInRydWVcIl0nLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbGFzdFJvd0VsZW1lbnQgPSB0YWJsZVJvd0VsZW1lbnRzW3RhYmxlUm93RWxlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICBpZiAoIWxhc3RSb3dFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudHJ5LmlzSW50ZXJzZWN0aW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlICYmXG4gICAgICAgICAgICAgICAgIXBhZ2luYXRpb25Db25maWcuaXNMb2FkaW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5vbkxvYWRNb3JlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRpb25Db25maWcub25Mb2FkTW9yZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByb290TWFyZ2luOiBgJHt0aHJlc2hvbGR9cHhgLFxuICAgICAgICAgICAgICByb290OiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGxhc3RSb3dFbGVtZW50KTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gU3luYyBjZWxsIHRlbXBsYXRlcyBRdWVyeUxpc3QgdG8gc2lnbmFsXG4gICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzU2lnbmFsLnNldCh0aGlzLmNlbGxUZW1wbGF0ZXMudG9BcnJheSgpKTtcblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIFF1ZXJ5TGlzdFxuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgICAgIHRoaXMuY2VsbFRlbXBsYXRlc1NpZ25hbC5zZXQodGhpcy5jZWxsVGVtcGxhdGVzLnRvQXJyYXkoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFVUSUxTICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJvbmdseS10eXBlZCBjb2x1bW4gZmFjdG9yeSBmb3IgYSBnaXZlbiByb3cgdHlwZS5cbiAqXG4gKiBAdGVtcGxhdGUgUm93IFRoZSByb3cgZGF0YSB0eXBlIChlLmcuLCBgUHJvZHVjdGApXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIGNvbHVtbiBkZWZpbml0aW9uIGFuZCBpbmZlcnM6XG4gKiAtIGBLYCBhcyB0aGUgZmllbGQga2V5IChga2V5b2YgUm93YClcbiAqIC0gYEZgIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBgdmFsdWVGb3JtYXR0ZXJgIChkZWZhdWx0cyB0byBgUm93W0tdYClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIERlZmluZSB5b3VyIHJvdyB0eXBlXG4gKiBpbnRlcmZhY2UgUHJvZHVjdCB7XG4gKiAgIG5hbWU6IHN0cmluZztcbiAqICAgcHJpY2U6IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBjb25zdCBjb2wgPSBtYWtlQ29sdW1uPFByb2R1Y3Q+KCk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29sdW1uPFJvdz4oKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWZpbmU8SyBleHRlbmRzIGtleW9mIFJvdywgRiA9IFJvd1tLXT4oXG4gICAgY29sOiBOdkRhdGF0YWJsZUNvbHVtbjxSb3csIEssIEY+LFxuICApIHtcbiAgICByZXR1cm4gY29sIGFzIHVua25vd24gYXMgTnZEYXRhdGFibGVDb2x1bW48Um93PjtcbiAgfTtcbn1cblxuZXhwb3J0IHsgZmxleFJlbmRlckNvbXBvbmVudCBhcyBudkRhdGF0YWJsZVJlbmRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLnV0aWxzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUWVBFUyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCB0eXBlIHsgQ2VsbENvbnRleHQgYXMgTnZEYXRhdGFibGVDZWxsQ29udGV4dCB9O1xuXG4vKiogQ29sdW1uIGRlZmluaXRpb24gZm9yIE52RGF0YXRhYmxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdkRhdGF0YWJsZUNvbHVtbjxcbiAgUm93LFxuICBLIGV4dGVuZHMga2V5b2YgUm93ID0ga2V5b2YgUm93LFxuICBGID0gUm93W0tdLFxuPiB7XG4gIC8qKiBGaWVsZCBuYW1lIGZyb20gcm93IGRhdGEgKi9cbiAgZmllbGQ6IEs7XG4gIC8qKiBEaXNwbGF5IG5hbWUgZm9yIGNvbHVtbiBoZWFkZXIgKi9cbiAgaGVhZGVyTmFtZT86IHN0cmluZztcbiAgLyoqIENvbHVtbiB3aWR0aCBpbiBwaXhlbHMgKi9cbiAgd2lkdGg/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGNvbHVtbiBpcyByZXNpemFibGUgKi9cbiAgcmVzaXphYmxlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgY29sdW1uIGlzIGhpZGRlbiAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSByYXcgdmFsdWUgYmVmb3JlIHJlbmRlcmluZy4gUmVjZWl2ZXMgdGhlIGNlbGwgdmFsdWUgYW5kIGZ1bGwgcm93IG9iamVjdC5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIGZvcm1hdHRpbmcgZGF0ZXMsIGNvbnZlcnRpbmcgYXJyYXlzIHRvIHN0cmluZ3MsIGFjY2Vzc2luZyBuZXN0ZWQgb2JqZWN0cywgZXRjLlxuICAgKiBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgaXMgdGhlbiBwYXNzZWQgdG8gcmVuZGVyQ2VsbCBvciB0ZW1wbGF0ZXMuXG4gICAqL1xuICB2YWx1ZUZvcm1hdHRlcj86IChwYXJhbXM6IE52VGFibGVWYWx1ZUZvcm1hdHRlclBhcmFtczxSb3csIFJvd1tLXSwgSz4pID0+IEY7XG4gIC8qKlxuICAgKiBDdXN0b20gY2VsbCByZW5kZXJlciBmdW5jdGlvbiB0aGF0IGNhbiByZXR1cm4gZWl0aGVyIGEgc3RyaW5nIG9yIEFuZ3VsYXIgVGVtcGxhdGVSZWYuXG4gICAqIFVzZSBgJGltcGxpY2l0YCBpbiB5b3VyIHRlbXBsYXRlIHRvIHJlY2VpdmUgdGhlIENlbGxDb250ZXh0LlxuICAgKiBOb3RlOiBJZiB2YWx1ZUZvcm1hdHRlciBpcyBwcm92aWRlZCwgcmVuZGVyQ2VsbCByZWNlaXZlcyB0aGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgKi9cbiAgcmVuZGVyQ2VsbD86IChjb250ZXh0OiBDZWxsQ29udGV4dDxSb3csIEY+KSA9PlxuICAgIHwgc3RyaW5nXG4gICAgfCBGbGV4UmVuZGVyQ29tcG9uZW50XG4gICAgfCBUZW1wbGF0ZVJlZjx7XG4gICAgICAgICRpbXBsaWNpdDogQ2VsbENvbnRleHQ8Um93LCBGPjtcbiAgICAgIH0+O1xuICAvKiogRW5hYmxlL2Rpc2FibGUgc29ydGluZyBmb3IgdGhpcyBjb2x1bW4gKi9cbiAgc29ydGFibGU/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24gb3IgYnVpbHQtaW4gZnVuY3Rpb24gbmFtZSAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzb3J0aW5nRm4/OiAoKHJvd0E6IGFueSwgcm93QjogYW55LCBjb2x1bW5JZDogc3RyaW5nKSA9PiBudW1iZXIpIHwgc3RyaW5nO1xuICAvKiogU3RhcnQgd2l0aCBkZXNjZW5kaW5nIHNvcnQgZm9yIHRoaXMgY29sdW1uICovXG4gIHNvcnREZXNjRmlyc3Q/OiBib29sZWFuO1xuICAvKiogSW52ZXJ0IHRoZSBzb3J0IG9yZGVyICh1c2VmdWwgZm9yIHJhbmtpbmdzKSAqL1xuICBpbnZlcnRTb3J0aW5nPzogYm9vbGVhbjtcbiAgLyoqIFdoZXJlIHRvIHBsYWNlIHVuZGVmaW5lZCB2YWx1ZXMgaW4gc29ydCAqL1xuICBzb3J0VW5kZWZpbmVkPzogJ2ZpcnN0JyB8ICdsYXN0JyB8IGZhbHNlIHwgLTEgfCAxO1xufVxuXG4vKiogUGFyYW1ldGVycyBmb3IgY3VzdG9tIGNlbGwgcmVuZGVyaW5nIGZ1bmN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlUmVuZGVyQ2VsbFBhcmFtczxSb3csIFZhbHVlLCBGaWVsZD4ge1xuICAvKiogQ2VsbCB2YWx1ZSAqL1xuICB2YWx1ZTogVmFsdWUgfCBOb0luZmVyPFZhbHVlPjtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvdzogUm93O1xuICAvKiogRmllbGQgbmFtZSAqL1xuICBmaWVsZDogRmllbGQ7XG4gIC8qKiBSb3cgaW5kZXggKi9cbiAgcm93SW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB2YWx1ZUZvcm1hdHRlciBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlVmFsdWVGb3JtYXR0ZXJQYXJhbXM8Um93LCBWYWx1ZSwgRmllbGQ+IHtcbiAgLyoqIENlbGwgb3JpZ2luYWwgdmFsdWUgKi9cbiAgdmFsdWU6IFZhbHVlO1xuICAvKiogUm93IGRhdGEgKi9cbiAgcm93OiBSb3c7XG4gIC8qKiBGaWVsZCBuYW1lICovXG4gIGZpZWxkOiBGaWVsZDtcbn1cblxuLyoqXG4gKiBQYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHBhZ2luYXRpb24gYmVoYXZpb3IgKGNsaWVudCB2cyBzZXJ2ZXIpIGlzIGRlcml2ZWQgZnJvbSB0aGUgdG9wLWxldmVsIGBtb2RlYCBwcm9wLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBFbmFibGUgaW5maW5pdGUgc2Nyb2xsIG1vZGUuXG4gICAqIFdoZW4gdHJ1ZSwgcmVxdWlyZXMgdGhlIGNvbXBvbmVudCdzIHRvcC1sZXZlbCBgbW9kZWAgdG8gYmUgc2V0IHRvICdzZXJ2ZXInLlxuICAgKiBEYXRhIGlzIGxvYWRlZCBpbmNyZW1lbnRhbGx5IGFzIHRoZSB1c2VyIHNjcm9sbHMuXG4gICAqL1xuICBpbmZpbml0ZT86IGJvb2xlYW47XG4gIC8qKiBJbml0aWFsIHBhZ2Ugc2l6ZSAoZGVmYXVsdDogMTApICovXG4gIGluaXRpYWxQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIEF2YWlsYWJsZSBwYWdlIHNpemUgb3B0aW9ucyAoZGVmYXVsdDogWzEwLCAyMCwgNTAsIDEwMF0pICovXG4gIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xuICAvKiogQ3VzdG9tIGxhYmVscyBmb3IgcGFnaW5hdGlvbiBjb21wb25lbnQgKGkxOG4gc3VwcG9ydCkgKi9cbiAgbGFiZWxzPzoge1xuICAgIC8qKiBMYWJlbCB0ZW1wbGF0ZSBmb3IgdGhlIHBhZ2UgaW5kaWNhdG9yLiBTdXBwb3J0cyBwbGFjZWhvbGRlcnM6IHtwYWdlSW5kZXh9LCB7cGFnZUNvdW50fSAqL1xuICAgIHBhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgdG90YWwgcm93IGNvdW50IGRpc3BsYXkuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cm93Q291bnR9ICovXG4gICAgdG90YWw/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgcGFnZSBzaXplIGRyb3Bkb3duIG9wdGlvbnMuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cGFnZVNpemV9ICovXG4gICAgcGFnZVNpemVPcHRpb24/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gU2VydmVyLXNpZGUgKGJ1dHRvbnMpIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFRvdGFsIG51bWJlciBvZiByb3dzIChmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvbikgKi9cbiAgdG90YWxSb3dDb3VudD86IG51bWJlcjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBwYWdlcyAoZm9yIHNlcnZlci1zaWRlIHBhZ2luYXRpb24pICovXG4gIHRvdGFsUGFnZUNvdW50PzogbnVtYmVyO1xuICAvKiogQ2FsbGJhY2sgd2hlbiBwYWdpbmF0aW9uIHN0YXRlIGNoYW5nZXMgKGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uKSAqL1xuICBvblBhZ2luYXRpb25DaGFuZ2U/OiAoc3RhdGU6IHtcbiAgICAvKiogQ3VycmVudCBwYWdlIGluZGV4ICovXG4gICAgcGFnZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIEN1cnJlbnQgcGFnZSBzaXplICovXG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcblxuICAvLyBJbmZpbml0ZSBzY3JvbGwgc3BlY2lmaWMgcHJvcGVydGllcyAodXNlZCB3aGVuIGluZmluaXRlOiB0cnVlKVxuICAvKiogV2hldGhlciB0aGVyZSBhcmUgbW9yZSBpdGVtcyB0byBsb2FkIChmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgZGF0YSBpcyBjdXJyZW50bHkgbG9hZGluZyAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqIERpc3RhbmNlIGZyb20gYm90dG9tIGluIHBpeGVscyB0byB0cmlnZ2VyIGxvYWQgKGRlZmF1bHQ6IDUwMCkgKi9cbiAgbG9hZE1vcmVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBDYWxsYmFjayB0byBsb2FkIG1vcmUgZGF0YSAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgb25Mb2FkTW9yZT86ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQVBJIGV4cG9zZWQgdG8gcGFnaW5hdGlvbiB0ZW1wbGF0ZSBmb3IgYnVpbGRpbmcgY3VzdG9tIHBhZ2luYXRpb24gVUkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJIHtcbiAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleCAoemVyby1iYXNlZCkgKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IHBhZ2Ugc2l6ZSAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHBhZ2VzICovXG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHJvd3MgKi9cbiAgcm93Q291bnQ6IG51bWJlcjtcbiAgLyoqIE5hdmlnYXRlIHRvIGZpcnN0IHBhZ2UgKi9cbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgdG8gcHJldmlvdXMgcGFnZSAqL1xuICBwcmV2aW91c1BhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBuZXh0IHBhZ2UgKi9cbiAgbmV4dFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBsYXN0IHBhZ2UgKi9cbiAgbGFzdFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBzcGVjaWZpYyBwYWdlIGJ5IGluZGV4ICovXG4gIHNldFBhZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKiBDaGFuZ2UgcGFnZSBzaXplICovXG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAvKiogV2hldGhlciBwcmV2aW91cyBwYWdlIGlzIGF2YWlsYWJsZSAqL1xuICBjYW5QcmV2aW91c1BhZ2U6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG5leHQgcGFnZSBpcyBhdmFpbGFibGUgKi9cbiAgY2FuTmV4dFBhZ2U6IGJvb2xlYW47XG4gIC8qKiBMb2FkaW5nIHN0YXRlIChvbmx5IGZvciBpbmZpbml0ZSBzY3JvbGwpICovXG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG1vcmUgaXRlbXMgYXJlIGF2YWlsYWJsZSAob25seSBmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHNvcnRpbmcgbW9kZSAoY2xpZW50IHZzIHNlcnZlcikgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb21wb25lbnQncyB0b3AtbGV2ZWwgYG1vZGVgIHByb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHtcbiAgLyoqIEVuYWJsZSBtdWx0aS1jb2x1bW4gc29ydGluZyB3aXRoIFNoaWZ0K0NsaWNrICovXG4gIGVuYWJsZU11bHRpU29ydD86IGJvb2xlYW47XG4gIC8qKiBBbGxvdyBjeWNsaW5nIHRocm91Z2ggdG8gXCJubyBzb3J0XCIgc3RhdGUgKi9cbiAgZW5hYmxlU29ydGluZ1JlbW92YWw/OiBib29sZWFuO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29sdW1ucyBmb3IgbXVsdGktc29ydCAqL1xuICBtYXhNdWx0aVNvcnRDb2xDb3VudD86IG51bWJlcjtcbiAgLyoqIFN0YXJ0IHdpdGggZGVzY2VuZGluZyBzb3J0IGFzIGZpcnN0IHRvZ2dsZSBzdGF0ZSAqL1xuICBzb3J0RGVzY0ZpcnN0PzogYm9vbGVhbjtcbiAgLyoqIENvbnRyb2xsZWQgc29ydCBzdGF0ZSAoZm9yIHNlcnZlci1zaWRlIHNvcnRpbmcpICovXG4gIHNvcnRTdGF0ZT86IFNvcnRpbmdTdGF0ZTtcbiAgLyoqIENhbGxiYWNrIHdoZW4gc29ydGluZyBjaGFuZ2VzIChmb3Igc2VydmVyLXNpZGUgc29ydGluZykgKi9cbiAgb25Tb3J0aW5nQ2hhbmdlPzogKHNvcnRpbmc6IFNvcnRpbmdTdGF0ZSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIHN0YXRlIHR5cGUgLSBhcnJheSBvZiBzb3J0IGRlc2NyaXB0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIE52RGF0YVRhYmxlU29ydGluZ1N0YXRlID0gU29ydGluZ1N0YXRlO1xuIl19
|
|
581
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnYtZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbnYtZGF0YXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsMENBQTBDO0FBQzFDLHdDQUF3QztBQUV4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxFQUVmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsZ0hBQWdIO0FBQ2hILE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBT3BCLE1BQU0sbUJBQW1CLENBQUM7OztBQUUzQjs7O0dBR0c7QUFzR0gsTUFBTSxPQUFPLFdBQVc7SUErUHRCLHdDQUF3QztJQUN4QyxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwwQkFBMEIsQ0FDeEIsS0FBMkMsRUFDM0MsTUFLQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLFNBQWtDLENBQUM7UUFFdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixTQUFTLEdBQUcsS0FBZ0MsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxT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QUFFLG1CQUFtQixDQUFDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEZUO2lCQUNGO3dEQXFCQyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQU96RCxhQUFhO3NCQURaLGVBQWU7dUJBQUMsd0JBQXdCOztBQXVaM0MsZ0ZBQWdGO0FBRWhGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFNBQVMsTUFBTSxDQUNwQixHQUFpQztRQUVqQyxPQUFPLEdBQXdDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSxtQkFBbUIsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1yZXR1cm5zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLXBhcmFtICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgZWZmZWN0LFxuICBzaWduYWwsXG4gIEVsZW1lbnRSZWYsXG4gIHZpZXdDaGlsZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmUsXG4gIHR5cGUgTnZEYXRhdGFibGVDZWxsQ29udGV4dCxcbn0gZnJvbSAnLi9udi1kYXRhdGFibGUtY2VsbC5kaXJlY3RpdmUnO1xuXG4vLyBsb2NhbCBjb3B5IG9mIEB0YW5zdGFjay9hbmd1bGFyLXRhYmxlIChyZXF1aXJlZCBmb3IgbXVsdGkgYW5ndWxhciB2ZXJzaW9ucywgdGhlIGJ1aWx0IHZlcnNpb24gaXMgbm90IHdvcmtpbmcpXG5pbXBvcnQge1xuICBjcmVhdGVBbmd1bGFyVGFibGUsXG4gIGdldENvcmVSb3dNb2RlbCxcbiAgZ2V0UGFnaW5hdGlvblJvd01vZGVsLFxuICBnZXRTb3J0ZWRSb3dNb2RlbCxcbiAgRmxleFJlbmRlckRpcmVjdGl2ZSxcbiAgdHlwZSBGbGV4UmVuZGVyQ29tcG9uZW50LFxuICB0eXBlIENvbHVtbkRlZixcbiAgdHlwZSBDZWxsQ29udGV4dCxcbiAgdHlwZSBQYWdpbmF0aW9uU3RhdGUsXG4gIHR5cGUgU29ydGluZ1N0YXRlLFxuICB0eXBlIE5vSW5mZXIsXG59IGZyb20gJy4vZGF0YXRhYmxlLnV0aWxzJztcblxuLyoqXG4gKiBBIHBvd2VyZnVsLCBmbGV4aWJsZSBkYXRhdGFibGUgY29tcG9uZW50IGJ1aWx0IG9uIFRhblN0YWNrIFRhYmxlLlxuICogU3VwcG9ydHMgY3VzdG9tIGNlbGwgcmVuZGVyaW5nLCBjb2x1bW4gY29uZmlndXJhdGlvbiwgcGFnaW5hdGlvbiwgYW5kIGZ1bGwgVHlwZVNjcmlwdCB0eXBpbmcuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ252LWRhdGF0YWJsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZsZXhSZW5kZXJEaXJlY3RpdmVdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG52LXRhYmxlPlxuICAgICAgPHRhYmxlPlxuICAgICAgICA8dGhlYWQgW2F0dHIuZGF0YS1zdGlja3ktdG9wXT1cInN0aWNreUhlYWRlcigpID8gJ3RydWUnIDogbnVsbFwiPlxuICAgICAgICAgIEBmb3IgKGhlYWRlckdyb3VwIG9mIHRhYmxlKCkuZ2V0SGVhZGVyR3JvdXBzKCk7IHRyYWNrIGhlYWRlckdyb3VwLmlkKVxuICAgICAgICAgIHtcbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICBAZm9yIChoZWFkZXIgb2YgaGVhZGVyR3JvdXAuaGVhZGVyczsgdHJhY2sgaGVhZGVyLmlkKSB7XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2RhdGF0YWJsZS1oZWFkZXItJyArIGhlYWRlci5pZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJcbiAgICAgICAgICAgICAgICBoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5zaXplXG4gICAgICAgICAgICAgICAgICA/IGhlYWRlci5jb2x1bW4uY29sdW1uRGVmLnNpemUgKyAncHgnXG4gICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1uby1yZXNpemVdPVwiXG4gICAgICAgICAgICAgICAgIWhlYWRlci5jb2x1bW4uY29sdW1uRGVmLmVuYWJsZVJlc2l6aW5nID8gJ3RydWUnIDogbnVsbFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKCFoZWFkZXIuaXNQbGFjZWhvbGRlcikgeyBAaWYgKGhlYWRlci5jb2x1bW4uZ2V0Q2FuU29ydCgpKSB7XG4gICAgICAgICAgICAgIDxudi10YWJsZWhlYWRlclxuICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc29ydERpcmVjdGlvbl09XCJoZWFkZXIuY29sdW1uLmdldElzU29ydGVkKCkgfHwgJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAoc29ydERpcmVjdGlvbkNoYW5nZWQpPVwiXG4gICAgICAgICAgICAgICAgICBoYW5kbGVTb3J0RGlyZWN0aW9uQ2hhbmdlZCgkZXZlbnQsIGhlYWRlcilcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuaGVhZGVyIH19XG4gICAgICAgICAgICAgIDwvbnYtdGFibGVoZWFkZXI+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICB7eyBoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5oZWFkZXIgfX1cbiAgICAgICAgICAgICAgfSB9XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RoZWFkPlxuXG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICBAZm9yIChyb3cgb2YgdGFibGUoKS5nZXRSb3dNb2RlbCgpLnJvd3M7IHRyYWNrIHJvdy5pZDsgbGV0IGkgPSAkaW5kZXgpXG4gICAgICAgICAge1xuICAgICAgICAgIDx0clxuICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2RhdGF0YWJsZS1yb3ctJyArIGlcIlxuICAgICAgICAgICAgI3RhYmxlUm93XG4gICAgICAgICAgICBbYXR0ci5kYXRhLWlzLWxhc3RdPVwiXG4gICAgICAgICAgICAgIGlzSW5maW5pdGVTY3JvbGwoKSAmJiBpID09PSB0YWJsZSgpLmdldFJvd01vZGVsKCkucm93cy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoY2VsbCBvZiByb3cuZ2V0VmlzaWJsZUNlbGxzKCk7IHRyYWNrIGNlbGwuaWQpIHtcbiAgICAgICAgICAgIDx0ZCBbYXR0ci5kYXRhLXRlc3RpZF09XCInZGF0YXRhYmxlLWNlbGwtJyArIGNlbGwuY29sdW1uLmlkXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqZmxleFJlbmRlcj1cIlxuICAgICAgICAgICAgICAgICAgY2VsbC5jb2x1bW4uY29sdW1uRGVmLmNlbGw7XG4gICAgICAgICAgICAgICAgICBwcm9wczogY2VsbC5nZXRDb250ZXh0KCk7XG4gICAgICAgICAgICAgICAgICBsZXQgY2VsbENvbnRlbnRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2VsbENvbnRlbnQgfX1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgfVxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L252LXRhYmxlPlxuXG4gICAgPCEtLSBSZW5kZXIgcGFnaW5hdGlvbiBpZiBjb25maWd1cmVkIC0tPlxuICAgIEBpZiAocGFnaW5hdGlvbkFQSSgpKSB7IEBpZiAocGFnaW5hdGlvblRlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgcGFnaW5hdGlvblRlbXBsYXRlO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFnaW5hdGlvbkFQSSgpIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIH0gQGVsc2UgaWYgKG1vZGUoKSA9PT0gJ2NsaWVudCcgJiYgcGFnaW5hdGlvbigpICYmICFwYWdpbmF0aW9uKCk/LmluZmluaXRlKVxuICAgIHtcbiAgICA8IS0tIERlZmF1bHQgcGFnaW5hdGlvbiB3aXRoIG52LXBhZ2luYXRpb250YWJsZSAoY2xpZW50IG1vZGUgb25seSkgLS0+XG4gICAgPG52LXBhZ2luYXRpb250YWJsZVxuICAgICAgW3BhZ2VJbmRleF09XCJwYWdpbmF0aW9uQVBJKCkhLnBhZ2VJbmRleFwiXG4gICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvbkFQSSgpIS5wYWdlU2l6ZVwiXG4gICAgICBbcGFnZUNvdW50XT1cInBhZ2luYXRpb25BUEkoKSEucGFnZUNvdW50XCJcbiAgICAgIFtyb3dDb3VudF09XCJwYWdpbmF0aW9uQVBJKCkhLnJvd0NvdW50XCJcbiAgICAgIFthdHRyLmxhYmVsLXBhZ2VdPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnBhZ2UgfHwgbnVsbFwiXG4gICAgICBbYXR0ci5sYWJlbC10b3RhbF09XCJwYWdpbmF0aW9uKCk/LmxhYmVscz8udG90YWwgfHwgbnVsbFwiXG4gICAgICBbYXR0ci5sYWJlbC1wYWdlLXNpemUtb3B0aW9uXT1cIlxuICAgICAgICBwYWdpbmF0aW9uKCk/LmxhYmVscz8ucGFnZVNpemVPcHRpb24gfHwgbnVsbFxuICAgICAgXCJcbiAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT1cInBhZ2luYXRpb25BUEkoKSEuc2V0UGFnZUluZGV4KCRldmVudC5kZXRhaWwpXCJcbiAgICAgIChwYWdlU2l6ZUNoYW5nZWQpPVwicGFnaW5hdGlvbkFQSSgpIS5zZXRQYWdlU2l6ZSgkZXZlbnQuZGV0YWlsKVwiXG4gICAgPjwvbnYtcGFnaW5hdGlvbnRhYmxlPlxuICAgIH0gfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOdkRhdGF0YWJsZTxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbnMgKi9cbiAgY29sdW1ucyA9IGlucHV0PE52RGF0YXRhYmxlQ29sdW1uPFQ+W10+KFtdKTtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvd3MgPSBpbnB1dDxUW10+KFtdKTtcbiAgLyoqXG4gICAqIERhdGEgaGFuZGxpbmcgbW9kZSBmb3Igc29ydGluZyBhbmQgZmlsdGVyaW5nIG9wZXJhdGlvbnMuXG4gICAqIC0gJ2NsaWVudCc6IEFsbCBvcGVyYXRpb25zIGhhbmRsZWQgaW4gYnJvd3NlciAoZGVmYXVsdClcbiAgICogLSAnc2VydmVyJzogT3BlcmF0aW9ucyB0cmlnZ2VyIGNhbGxiYWNrcyBmb3Igc2VydmVyLXNpZGUgaGFuZGxpbmdcbiAgICovXG4gIG1vZGUgPSBpbnB1dDwnY2xpZW50JyB8ICdzZXJ2ZXInPignY2xpZW50Jyk7XG4gIC8qKiBPcHRpb25hbCBwYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcGFnaW5hdGlvbiA9IGlucHV0PE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLyoqIE9wdGlvbmFsIHNvcnRpbmcgY29uZmlndXJhdGlvbiAqL1xuICBzb3J0aW5nID0gaW5wdXQ8TnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvKiogU2hvdWxkIHRoZSBoZWFkZXIgc3RpY2sgdG8gdGhlIHRvcCBvZiB0aGUgdGFibGUgd2hlbiBzY3JvbGxpbmc/ICovXG4gIHN0aWNreUhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogVGVtcGxhdGUgZm9yIGN1c3RvbSBwYWdpbmF0aW9uIFVJICovXG4gIEBDb250ZW50Q2hpbGQoJ3BhZ2luYXRpb25UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcGFnaW5hdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgICRpbXBsaWNpdDogTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJO1xuICB9PjtcblxuICAvKiogQ2VsbCB0ZW1wbGF0ZXMgcHJvdmlkZWQgdmlhIG52RGF0YXRhYmxlQ2VsbCBkaXJlY3RpdmUgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmUpXG4gIGNlbGxUZW1wbGF0ZXM/OiBRdWVyeUxpc3Q8TnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlPFQsIFRba2V5b2YgVF0+PjtcblxuICAvKiogU2lnbmFsIHRvIHRyYWNrIGNlbGwgdGVtcGxhdGVzIGFycmF5ICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlc1NpZ25hbCA9IHNpZ25hbDxcbiAgICBOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmU8VCwgVFtrZXlvZiBUXT5bXVxuICA+KFtdKTtcblxuICAvKiogTWFwIG9mIGZpZWxkIG5hbWVzIHRvIGNlbGwgdGVtcGxhdGVzICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlTWFwID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICBUZW1wbGF0ZVJlZjxOdkRhdGF0YWJsZUNlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+PlxuICAgID4oKTtcbiAgICB0aGlzLmNlbGxUZW1wbGF0ZXNTaWduYWwoKS5mb3JFYWNoKChkaXJlY3RpdmUpID0+IHtcbiAgICAgIG1hcC5zZXQoZGlyZWN0aXZlLm52RGF0YXRhYmxlQ2VsbCwgZGlyZWN0aXZlLnRlbXBsYXRlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbWFwO1xuICB9KTtcblxuICAvKiogUGFnaW5hdGlvbiBzdGF0ZSBmb3Igc2VydmVyIG1vZGUgKi9cbiAgcHJpdmF0ZSBwYWdpbmF0aW9uU3RhdGUgPSBzaWduYWw8UGFnaW5hdGlvblN0YXRlPih7XG4gICAgcGFnZUluZGV4OiAwLFxuICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb24oKT8uaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICB9KTtcblxuICAvKiogU29ydGluZyBzdGF0ZSBmb3IgY29udHJvbGxlZCBzb3J0aW5nIChzZXJ2ZXIgbW9kZSkgKi9cbiAgcHJpdmF0ZSBzb3J0aW5nU3RhdGUgPSBzaWduYWw8U29ydGluZ1N0YXRlPih0aGlzLnNvcnRpbmcoKT8uc29ydFN0YXRlIHx8IFtdKTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRhYmxlIHJvd3MgZm9yIGluZmluaXRlIHNjcm9sbCBvYnNlcnZlciAqL1xuICBwcml2YXRlIHRhYmxlUm93cyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigndGFibGVSb3cnKTtcblxuICAvKiogSW50ZXJzZWN0aW9uIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgKi9cbiAgcHJpdmF0ZSBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogSGVscGVyIHRvIGNoZWNrIGlmIHVzaW5nIGluZmluaXRlIHNjcm9sbCAqL1xuICBpc0luZmluaXRlU2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYWdpbmF0aW9uKCk/LmluZmluaXRlID09PSB0cnVlKTtcblxuICAvKiogQ29tcHV0ZWQgdGFibGUgY29sdW1ucyB3aXRoIHByb3BlciB0eXBpbmcgYW5kIGZpbHRlcmluZy4gKi9cbiAgdGFibGVDb2x1bW5zID0gY29tcHV0ZWQ8Q29sdW1uRGVmPFQsIFRba2V5b2YgVF0+W10+KCgpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZU1hcCA9IHRoaXMuY2VsbFRlbXBsYXRlTWFwKCk7XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4gIWNvbC5oaWRkZW4pXG4gICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgLy8gU2hhcmVkIGNlbGwgcmVuZGVyZXJcbiAgICAgICAgY29uc3QgY2VsbFJlbmRlcmVyID0gKGNvbnRleHQ6IENlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGROYW1lID0gU3RyaW5nKGNvbC5maWVsZCk7XG4gICAgICAgICAgY29uc3QgY2VsbFRlbXBsYXRlID0gdGVtcGxhdGVNYXAuZ2V0KGZpZWxkTmFtZSk7XG5cbiAgICAgICAgICAvLyBQcmlvcml0eTogdGVtcGxhdGUgPiByZW5kZXJDZWxsID4gZGVmYXVsdFxuICAgICAgICAgIGlmIChjZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIFJldHVybiBUZW1wbGF0ZVJlZiBkaXJlY3RseSAtIGdldFZhbHVlKCkgcmV0dXJucyBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBjZWxsVGVtcGxhdGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHJlbmRlckNlbGwgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoY29sLnJlbmRlckNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2wucmVuZGVyQ2VsbChjb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBEZWZhdWx0OiBqdXN0IHJldHVybiB0aGUgdmFsdWUgKGZvcm1hdHRlZCBpZiB2YWx1ZUZvcm1hdHRlciB3YXMgdXNlZClcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5nZXRWYWx1ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbkRlZjogQ29sdW1uRGVmPFQsIFRba2V5b2YgVF0+ID0ge1xuICAgICAgICAgIGFjY2Vzc29yS2V5OiBjb2wuZmllbGQsXG4gICAgICAgICAgYWNjZXNzb3JGbjogY29sLnZhbHVlRm9ybWF0dGVyXG4gICAgICAgICAgICA/IChyb3c6IFQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHJvd1tjb2wuZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2wudmFsdWVGb3JtYXR0ZXIhKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiByYXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGhlYWRlcjogY29sLmhlYWRlck5hbWUgfHwgU3RyaW5nKGNvbC5maWVsZCksXG4gICAgICAgICAgc2l6ZTogY29sLndpZHRoLFxuICAgICAgICAgIGVuYWJsZVJlc2l6aW5nOiBjb2wucmVzaXphYmxlID8/IHRydWUsXG4gICAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdGhpcy5zb3J0aW5nKCkgPyBjb2wuc29ydGFibGUgPz8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIGNlbGw6IGNlbGxSZW5kZXJlcixcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgb3B0aW9uYWwgc29ydGluZyBwcm9wZXJ0aWVzIG9ubHkgaWYgZGVmaW5lZFxuICAgICAgICBpZiAoY29sLnNvcnRpbmdGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFRhblN0YWNrIHR5cGluZyBpcyBzdHJpY3QgYnV0IHRoaXMgd29ya3MgYXQgcnVudGltZVxuICAgICAgICAgIGNvbHVtbkRlZi5zb3J0aW5nRm4gPSBjb2wuc29ydGluZ0ZuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2wuc29ydERlc2NGaXJzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29sdW1uRGVmLnNvcnREZXNjRmlyc3QgPSBjb2wuc29ydERlc2NGaXJzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sLmludmVydFNvcnRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbHVtbkRlZi5pbnZlcnRTb3J0aW5nID0gY29sLmludmVydFNvcnRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbC5zb3J0VW5kZWZpbmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb2x1bW5EZWYuc29ydFVuZGVmaW5lZCA9IGNvbC5zb3J0VW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZjtcbiAgICAgIH0pO1xuICB9KTtcblxuICAvKiogVGFuU3RhY2sgdGFibGUgaW5zdGFuY2Ugd2l0aCBTaWduYWxzICovXG4gIHByaXZhdGUgdGFibGVJbnN0YW5jZSA9IGNyZWF0ZUFuZ3VsYXJUYWJsZSgoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGNvbnN0IHNvcnRpbmdDb25maWcgPSB0aGlzLnNvcnRpbmcoKTtcbiAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgY29uc3QgaXNTZXJ2ZXJNb2RlID0gY29tcG9uZW50TW9kZSA9PT0gJ3NlcnZlcic7XG4gICAgY29uc3QgaXNJbmZpbml0ZSA9IHBhZ2luYXRpb25Db25maWc/LmluZmluaXRlID09PSB0cnVlO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGJhc2UgdGFibGUgY29uZmlndXJhdGlvbiB3aXRoIHNvcnRpbmdcbiAgICBjb25zdCBnZXRCYXNlVGFibGVDb25maWcgPSAoKSA9PiB7XG4gICAgICBjb25zdCBiYXNlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiB0aGlzLnJvd3MoKSxcbiAgICAgICAgY29sdW1uczogdGhpcy50YWJsZUNvbHVtbnMoKSxcbiAgICAgICAgZ2V0Q29yZVJvd01vZGVsOiBnZXRDb3JlUm93TW9kZWwoKSxcbiAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uIC0gdXNlcyB0b3AtbGV2ZWwgbW9kZVxuICAgICAgICAuLi4oc29ydGluZ0NvbmZpZyAmJiB7XG4gICAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAgIHNvcnRpbmc6XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvblNvcnRpbmdDaGFuZ2U6IChcbiAgICAgICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgICAgICB8IFNvcnRpbmdTdGF0ZVxuICAgICAgICAgICAgICB8ICgob2xkOiBTb3J0aW5nU3RhdGUpID0+IFNvcnRpbmdTdGF0ZSksXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U29ydCA9XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NvcnQgPVxuICAgICAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZXJPclZhbHVlKGN1cnJlbnRTb3J0KVxuICAgICAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgICAgIC8vIEFsd2F5cyB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgZm9yIHJlYWN0aXZpdHlcbiAgICAgICAgICAgIHRoaXMuc29ydGluZ1N0YXRlLnNldChuZXdTb3J0KTtcblxuICAgICAgICAgICAgLy8gRm9yIHNlcnZlci1zaWRlIHNvcnRpbmcsIGFsc28gY2FsbCB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGlmIChpc1NlcnZlck1vZGUgJiYgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UobmV3U29ydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYW51YWxTb3J0aW5nOiBpc1NlcnZlck1vZGUsXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVNdWx0aVNvcnQ6IHNvcnRpbmdDb25maWcuZW5hYmxlTXVsdGlTb3J0ID8/IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZVNvcnRpbmdSZW1vdmFsOiBzb3J0aW5nQ29uZmlnLmVuYWJsZVNvcnRpbmdSZW1vdmFsID8/IHRydWUsXG4gICAgICAgICAgbWF4TXVsdGlTb3J0Q29sQ291bnQ6IHNvcnRpbmdDb25maWcubWF4TXVsdGlTb3J0Q29sQ291bnQsXG4gICAgICAgICAgc29ydERlc2NGaXJzdDogc29ydGluZ0NvbmZpZy5zb3J0RGVzY0ZpcnN0ID8/IGZhbHNlLFxuICAgICAgICAgIC8vIFdoZW4gbXVsdGktc29ydCBpcyBlbmFibGVkLCB0cmVhdCBhbGwgY2xpY2tzIGFzIG11bHRpLXNvcnQgZXZlbnRzXG4gICAgICAgICAgaXNNdWx0aVNvcnRFdmVudDogc29ydGluZ0NvbmZpZy5lbmFibGVNdWx0aVNvcnRcbiAgICAgICAgICAgID8gKCkgPT4gdHJ1ZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZ2V0U29ydGVkUm93TW9kZWw6ICFpc1NlcnZlck1vZGUgPyBnZXRTb3J0ZWRSb3dNb2RlbCgpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBiYXNlQ29uZmlnO1xuICAgIH07XG5cbiAgICAvLyBJbmZpbml0ZSBzY3JvbGwgbW9kZSAocmVxdWlyZXMgc2VydmVyIG1vZGUpXG4gICAgaWYgKGlzSW5maW5pdGUpIHtcbiAgICAgIC8vIE5vIHBhZ2luYXRpb24gcm93IG1vZGVsIGZvciBpbmZpbml0ZSBzY3JvbGwgLSBzaW1wbGUgY29uZmlnXG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gTm8gcGFnaW5hdGlvbiBjb25maWd1cmVkXG4gICAgaWYgKCFwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gQ2xpZW50LXNpZGUgcGFnaW5hdGlvblxuICAgIGlmICghaXNTZXJ2ZXJNb2RlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5nZXRCYXNlVGFibGVDb25maWcoKSxcbiAgICAgICAgZ2V0UGFnaW5hdGlvblJvd01vZGVsOiBnZXRQYWdpbmF0aW9uUm93TW9kZWwoKSxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgcGFnZVNpemU6IHBhZ2luYXRpb25Db25maWcuaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHBhZ2luYXRpb24gLSBtYW51YWwgcGFnaW5hdGlvbiB3aXRoIHJlYWN0aXZlIHN0YXRlXG4gICAgY29uc3QgYmFzZUNvbmZpZyA9IGdldEJhc2VUYWJsZUNvbmZpZygpO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5wYWdpbmF0aW9uU3RhdGUoKS5wYWdlU2l6ZTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZUNvbmZpZyxcbiAgICAgIG1hbnVhbFBhZ2luYXRpb246IHRydWUsXG4gICAgICBwYWdlQ291bnQ6XG4gICAgICAgIHBhZ2luYXRpb25Db25maWcudG90YWxQYWdlQ291bnQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFnaW5hdGlvbkNvbmZpZy50b3RhbFBhZ2VDb3VudFxuICAgICAgICAgIDogcGFnaW5hdGlvbkNvbmZpZy50b3RhbFJvd0NvdW50ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IE1hdGguY2VpbChwYWdpbmF0aW9uQ29uZmlnLnRvdGFsUm93Q291bnQgLyBwYWdlU2l6ZSlcbiAgICAgICAgICA6IC0xLFxuICAgICAgc3RhdGU6IHtcbiAgICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uU3RhdGUoKSxcbiAgICAgICAgLi4uKGJhc2VDb25maWcuc3RhdGUgJiYgeyBzb3J0aW5nOiBiYXNlQ29uZmlnLnN0YXRlLnNvcnRpbmcgfSksXG4gICAgICB9LFxuICAgICAgb25QYWdpbmF0aW9uQ2hhbmdlOiAoXG4gICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgIHwgUGFnaW5hdGlvblN0YXRlXG4gICAgICAgICAgfCAoKG9sZDogUGFnaW5hdGlvblN0YXRlKSA9PiBQYWdpbmF0aW9uU3RhdGUpLFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID1cbiAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdXBkYXRlck9yVmFsdWUodGhpcy5wYWdpbmF0aW9uU3RhdGUoKSlcbiAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU3RhdGUuc2V0KG5ld1N0YXRlKTtcblxuICAgICAgICAvLyBDYWxsIHVzZXIncyBjYWxsYmFjayBmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvblxuICAgICAgICBpZiAocGFnaW5hdGlvbkNvbmZpZy5vblBhZ2luYXRpb25DaGFuZ2UpIHtcbiAgICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLm9uUGFnaW5hdGlvbkNoYW5nZSh7XG4gICAgICAgICAgICBwYWdlSW5kZXg6IG5ld1N0YXRlLnBhZ2VJbmRleCxcbiAgICAgICAgICAgIHBhZ2VTaXplOiBuZXdTdGF0ZS5wYWdlU2l6ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuICAvKiogUHVibGljIGdldHRlciBmb3IgdGFibGUgaW5zdGFuY2UuICovXG4gIHRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlSW5zdGFuY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGZyb20gdGFibGUgaGVhZGVyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IFRoZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZXZlbnQgb3IgZGlyZWN0aW9uIHN0cmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gaGVhZGVyIFRoZSB0YWJsZSBoZWFkZXIgb2JqZWN0XG4gICAqL1xuICBoYW5kbGVTb3J0RGlyZWN0aW9uQ2hhbmdlZChcbiAgICBldmVudDogRXZlbnQgfCBDdXN0b21FdmVudDxzdHJpbmc+IHwgc3RyaW5nLFxuICAgIGhlYWRlcjoge1xuICAgICAgY29sdW1uOiB7XG4gICAgICAgIGNsZWFyU29ydGluZzogKCkgPT4gdm9pZDtcbiAgICAgICAgdG9nZ2xlU29ydGluZzogKGRlc2M/OiBib29sZWFuLCBtdWx0aT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgICB9O1xuICAgIH0sXG4gICkge1xuICAgIC8vIEV4dHJhY3QgZGlyZWN0aW9uIGZyb20gZXZlbnQgb3IgdXNlIGRpcmVjdGx5IGlmIHN0cmluZ1xuICAgIGxldCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuXG4gICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50IGFzICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuICAgIH0gZWxzZSBpZiAoJ2RldGFpbCcgaW4gZXZlbnQgJiYgdHlwZW9mIGV2ZW50LmRldGFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50LmRldGFpbCBhcyAnYXNjJyB8ICdkZXNjJyB8ICdub25lJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgLSBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBoYW5kbGUgZ3JhY2VmdWxseVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVW5leHBlY3RlZCBldmVudCB0eXBlIGluIGhhbmRsZVNvcnREaXJlY3Rpb25DaGFuZ2VkOicsXG4gICAgICAgIGV2ZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzb3J0aW5nQ29uZmlnID0gdGhpcy5zb3J0aW5nKCk7XG5cbiAgICAvLyBDaGVjayBpZiBtdWx0aS1zb3J0IGlzIGVuYWJsZWRcbiAgICBjb25zdCBpc011bHRpU29ydCA9IHNvcnRpbmdDb25maWc/LmVuYWJsZU11bHRpU29ydCA/PyBmYWxzZTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdub25lJykge1xuICAgICAgLy8gQ2xlYXIgdGhpcyBjb2x1bW4ncyBzb3J0XG4gICAgICBoZWFkZXIuY29sdW1uLmNsZWFyU29ydGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUb2dnbGUgc29ydCAtIFRhblN0YWNrIHdpbGwgaGFuZGxlIHRoZSBsb2dpYyBpbnRlcm5hbGx5XG4gICAgICBoZWFkZXIuY29sdW1uLnRvZ2dsZVNvcnRpbmcoZGlyZWN0aW9uID09PSAnZGVzYycsIGlzTXVsdGlTb3J0KTtcbiAgICB9XG4gIH1cblxuICAvKiogQnVpbGQgcGFnaW5hdGlvbiBBUEkgZm9yIHRlbXBsYXRlICovXG4gIHBhZ2luYXRpb25BUEkgPSBjb21wdXRlZDxOdkRhdGF0YWJsZVJlbmRlclBhZ2luYXRpb25BUEkgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGlmICghcGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50TW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIGNvbnN0IGlzU2VydmVyTW9kZSA9IGNvbXBvbmVudE1vZGUgPT09ICdzZXJ2ZXInO1xuICAgIGNvbnN0IGlzSW5maW5pdGUgPSBwYWdpbmF0aW9uQ29uZmlnLmluZmluaXRlID09PSB0cnVlO1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZSgpO1xuICAgIGNvbnN0IHRhYmxlUGFnaW5hdGlvblN0YXRlID0gdGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uO1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRhYmxlLmdldFBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IHJvd0NvdW50ID0gaXNTZXJ2ZXJNb2RlXG4gICAgICA/IHBhZ2luYXRpb25Db25maWcudG90YWxSb3dDb3VudCB8fCB0aGlzLnJvd3MoKS5sZW5ndGhcbiAgICAgIDogdGhpcy5yb3dzKCkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VJbmRleDogdGFibGVQYWdpbmF0aW9uU3RhdGUucGFnZUluZGV4LFxuICAgICAgcGFnZVNpemU6IHRhYmxlUGFnaW5hdGlvblN0YXRlLnBhZ2VTaXplLFxuICAgICAgcGFnZUNvdW50LFxuICAgICAgcm93Q291bnQsXG4gICAgICBmaXJzdFBhZ2U6ICgpID0+IHRhYmxlLnNldFBhZ2VJbmRleCgwKSxcbiAgICAgIHByZXZpb3VzUGFnZTogKCkgPT4gdGFibGUucHJldmlvdXNQYWdlKCksXG4gICAgICBuZXh0UGFnZTogKCkgPT4gdGFibGUubmV4dFBhZ2UoKSxcbiAgICAgIGxhc3RQYWdlOiAoKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgocGFnZUNvdW50IC0gMSksXG4gICAgICBzZXRQYWdlSW5kZXg6IChpbmRleDogbnVtYmVyKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgoaW5kZXgpLFxuICAgICAgc2V0UGFnZVNpemU6IChzaXplOiBudW1iZXIpID0+IHRhYmxlLnNldFBhZ2VTaXplKHNpemUpLFxuICAgICAgY2FuUHJldmlvdXNQYWdlOiB0YWJsZS5nZXRDYW5QcmV2aW91c1BhZ2UoKSxcbiAgICAgIGNhbk5leHRQYWdlOiB0YWJsZS5nZXRDYW5OZXh0UGFnZSgpLFxuICAgICAgaXNMb2FkaW5nOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5pc0xvYWRpbmcgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNb3JlOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFZhbGlkYXRlIGluZmluaXRlIHNjcm9sbCByZXF1aXJlcyBzZXJ2ZXIgbW9kZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwYWdpbmF0aW9uQ29uZmlnID0gdGhpcy5wYWdpbmF0aW9uKCk7XG4gICAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG5cbiAgICAgIGlmIChwYWdpbmF0aW9uQ29uZmlnPy5pbmZpbml0ZSA9PT0gdHJ1ZSAmJiBjb21wb25lbnRNb2RlICE9PSAnc2VydmVyJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1tOdkRhdGF0YWJsZV0gcGFnaW5hdGlvbi5pbmZpbml0ZT10cnVlIHJlcXVpcmVzIG1vZGU9XCJzZXJ2ZXJcIi4gJyArXG4gICAgICAgICAgICAnSW5maW5pdGUgc2Nyb2xsIHJlbGllcyBvbiBzZXJ2ZXItc2lkZSBkYXRhIGxvYWRpbmcuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCB1cCBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgZm9yIGluZmluaXRlIHNjcm9sbFxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7IC8vIFRyYWNrIHJvd3MgY2hhbmdlc1xuICAgICAgICBjb25zdCBpc0luZmluaXRlID0gcGFnaW5hdGlvbkNvbmZpZz8uaW5maW5pdGUgPT09IHRydWU7XG5cbiAgICAgICAgLy8gQ2xlYW4gdXAgZXhpc3Rpbmcgb2JzZXJ2ZXJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgc2V0IHVwIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgbW9kZVxuICAgICAgICBpZiAoIWlzSW5maW5pdGUgfHwgcm93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2Ugc2V0VGltZW91dCB0byBlbnN1cmUgRE9NIGlzIHVwZGF0ZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gcGFnaW5hdGlvbkNvbmZpZy5sb2FkTW9yZVRocmVzaG9sZCB8fCA1MDA7XG5cbiAgICAgICAgICAvLyBGaW5kIHRoZSBsYXN0IHJvdyBlbGVtZW50XG4gICAgICAgICAgY29uc3QgdGFibGVSb3dFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAnW2RhdGEtaXMtbGFzdD1cInRydWVcIl0nLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbGFzdFJvd0VsZW1lbnQgPSB0YWJsZVJvd0VsZW1lbnRzW3RhYmxlUm93RWxlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICBpZiAoIWxhc3RSb3dFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudHJ5LmlzSW50ZXJzZWN0aW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlICYmXG4gICAgICAgICAgICAgICAgIXBhZ2luYXRpb25Db25maWcuaXNMb2FkaW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5vbkxvYWRNb3JlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRpb25Db25maWcub25Mb2FkTW9yZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByb290TWFyZ2luOiBgJHt0aHJlc2hvbGR9cHhgLFxuICAgICAgICAgICAgICByb290OiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGxhc3RSb3dFbGVtZW50KTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gU3luYyBjZWxsIHRlbXBsYXRlcyBRdWVyeUxpc3QgdG8gc2lnbmFsXG4gICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzU2lnbmFsLnNldCh0aGlzLmNlbGxUZW1wbGF0ZXMudG9BcnJheSgpKTtcblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIFF1ZXJ5TGlzdFxuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgICAgIHRoaXMuY2VsbFRlbXBsYXRlc1NpZ25hbC5zZXQodGhpcy5jZWxsVGVtcGxhdGVzLnRvQXJyYXkoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFVUSUxTICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJvbmdseS10eXBlZCBjb2x1bW4gZmFjdG9yeSBmb3IgYSBnaXZlbiByb3cgdHlwZS5cbiAqXG4gKiBAdGVtcGxhdGUgUm93IFRoZSByb3cgZGF0YSB0eXBlIChlLmcuLCBgUHJvZHVjdGApXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIGNvbHVtbiBkZWZpbml0aW9uIGFuZCBpbmZlcnM6XG4gKiAtIGBLYCBhcyB0aGUgZmllbGQga2V5IChga2V5b2YgUm93YClcbiAqIC0gYEZgIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBgdmFsdWVGb3JtYXR0ZXJgIChkZWZhdWx0cyB0byBgUm93W0tdYClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIERlZmluZSB5b3VyIHJvdyB0eXBlXG4gKiBpbnRlcmZhY2UgUHJvZHVjdCB7XG4gKiAgIG5hbWU6IHN0cmluZztcbiAqICAgcHJpY2U6IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBjb25zdCBjb2wgPSBtYWtlQ29sdW1uPFByb2R1Y3Q+KCk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29sdW1uPFJvdz4oKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWZpbmU8SyBleHRlbmRzIGtleW9mIFJvdywgRiA9IFJvd1tLXT4oXG4gICAgY29sOiBOdkRhdGF0YWJsZUNvbHVtbjxSb3csIEssIEY+LFxuICApIHtcbiAgICByZXR1cm4gY29sIGFzIHVua25vd24gYXMgTnZEYXRhdGFibGVDb2x1bW48Um93PjtcbiAgfTtcbn1cblxuZXhwb3J0IHsgZmxleFJlbmRlckNvbXBvbmVudCBhcyBudkRhdGF0YWJsZVJlbmRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLnV0aWxzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUWVBFUyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCB0eXBlIHsgQ2VsbENvbnRleHQgYXMgTnZEYXRhdGFibGVDZWxsQ29udGV4dCB9O1xuXG4vKiogQ29sdW1uIGRlZmluaXRpb24gZm9yIE52RGF0YXRhYmxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdkRhdGF0YWJsZUNvbHVtbjxcbiAgUm93LFxuICBLIGV4dGVuZHMga2V5b2YgUm93ID0ga2V5b2YgUm93LFxuICBGID0gUm93W0tdLFxuPiB7XG4gIC8qKiBGaWVsZCBuYW1lIGZyb20gcm93IGRhdGEgKi9cbiAgZmllbGQ6IEs7XG4gIC8qKiBEaXNwbGF5IG5hbWUgZm9yIGNvbHVtbiBoZWFkZXIgKi9cbiAgaGVhZGVyTmFtZT86IHN0cmluZztcbiAgLyoqIENvbHVtbiB3aWR0aCBpbiBwaXhlbHMgKi9cbiAgd2lkdGg/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGNvbHVtbiBpcyByZXNpemFibGUgKi9cbiAgcmVzaXphYmxlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgY29sdW1uIGlzIGhpZGRlbiAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSByYXcgdmFsdWUgYmVmb3JlIHJlbmRlcmluZy4gUmVjZWl2ZXMgdGhlIGNlbGwgdmFsdWUgYW5kIGZ1bGwgcm93IG9iamVjdC5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIGZvcm1hdHRpbmcgZGF0ZXMsIGNvbnZlcnRpbmcgYXJyYXlzIHRvIHN0cmluZ3MsIGFjY2Vzc2luZyBuZXN0ZWQgb2JqZWN0cywgZXRjLlxuICAgKiBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgaXMgdGhlbiBwYXNzZWQgdG8gcmVuZGVyQ2VsbCBvciB0ZW1wbGF0ZXMuXG4gICAqL1xuICB2YWx1ZUZvcm1hdHRlcj86IChwYXJhbXM6IE52VGFibGVWYWx1ZUZvcm1hdHRlclBhcmFtczxSb3csIFJvd1tLXSwgSz4pID0+IEY7XG4gIC8qKlxuICAgKiBDdXN0b20gY2VsbCByZW5kZXJlciBmdW5jdGlvbiB0aGF0IGNhbiByZXR1cm4gZWl0aGVyIGEgc3RyaW5nIG9yIEFuZ3VsYXIgVGVtcGxhdGVSZWYuXG4gICAqIFVzZSBgJGltcGxpY2l0YCBpbiB5b3VyIHRlbXBsYXRlIHRvIHJlY2VpdmUgdGhlIENlbGxDb250ZXh0LlxuICAgKiBOb3RlOiBJZiB2YWx1ZUZvcm1hdHRlciBpcyBwcm92aWRlZCwgcmVuZGVyQ2VsbCByZWNlaXZlcyB0aGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgKi9cbiAgcmVuZGVyQ2VsbD86IChjb250ZXh0OiBDZWxsQ29udGV4dDxSb3csIEY+KSA9PlxuICAgIHwgc3RyaW5nXG4gICAgfCBGbGV4UmVuZGVyQ29tcG9uZW50XG4gICAgfCBUZW1wbGF0ZVJlZjx7XG4gICAgICAgICRpbXBsaWNpdDogQ2VsbENvbnRleHQ8Um93LCBGPjtcbiAgICAgIH0+O1xuICAvKiogRW5hYmxlL2Rpc2FibGUgc29ydGluZyBmb3IgdGhpcyBjb2x1bW4gKi9cbiAgc29ydGFibGU/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24gb3IgYnVpbHQtaW4gZnVuY3Rpb24gbmFtZSAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzb3J0aW5nRm4/OiAoKHJvd0E6IGFueSwgcm93QjogYW55LCBjb2x1bW5JZDogc3RyaW5nKSA9PiBudW1iZXIpIHwgc3RyaW5nO1xuICAvKiogU3RhcnQgd2l0aCBkZXNjZW5kaW5nIHNvcnQgZm9yIHRoaXMgY29sdW1uICovXG4gIHNvcnREZXNjRmlyc3Q/OiBib29sZWFuO1xuICAvKiogSW52ZXJ0IHRoZSBzb3J0IG9yZGVyICh1c2VmdWwgZm9yIHJhbmtpbmdzKSAqL1xuICBpbnZlcnRTb3J0aW5nPzogYm9vbGVhbjtcbiAgLyoqIFdoZXJlIHRvIHBsYWNlIHVuZGVmaW5lZCB2YWx1ZXMgaW4gc29ydCAqL1xuICBzb3J0VW5kZWZpbmVkPzogJ2ZpcnN0JyB8ICdsYXN0JyB8IGZhbHNlIHwgLTEgfCAxO1xufVxuXG4vKiogUGFyYW1ldGVycyBmb3IgY3VzdG9tIGNlbGwgcmVuZGVyaW5nIGZ1bmN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlUmVuZGVyQ2VsbFBhcmFtczxSb3csIFZhbHVlLCBGaWVsZD4ge1xuICAvKiogQ2VsbCB2YWx1ZSAqL1xuICB2YWx1ZTogVmFsdWUgfCBOb0luZmVyPFZhbHVlPjtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvdzogUm93O1xuICAvKiogRmllbGQgbmFtZSAqL1xuICBmaWVsZDogRmllbGQ7XG4gIC8qKiBSb3cgaW5kZXggKi9cbiAgcm93SW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB2YWx1ZUZvcm1hdHRlciBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlVmFsdWVGb3JtYXR0ZXJQYXJhbXM8Um93LCBWYWx1ZSwgRmllbGQ+IHtcbiAgLyoqIENlbGwgb3JpZ2luYWwgdmFsdWUgKi9cbiAgdmFsdWU6IFZhbHVlO1xuICAvKiogUm93IGRhdGEgKi9cbiAgcm93OiBSb3c7XG4gIC8qKiBGaWVsZCBuYW1lICovXG4gIGZpZWxkOiBGaWVsZDtcbn1cblxuLyoqXG4gKiBQYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHBhZ2luYXRpb24gYmVoYXZpb3IgKGNsaWVudCB2cyBzZXJ2ZXIpIGlzIGRlcml2ZWQgZnJvbSB0aGUgdG9wLWxldmVsIGBtb2RlYCBwcm9wLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBFbmFibGUgaW5maW5pdGUgc2Nyb2xsIG1vZGUuXG4gICAqIFdoZW4gdHJ1ZSwgcmVxdWlyZXMgdGhlIGNvbXBvbmVudCdzIHRvcC1sZXZlbCBgbW9kZWAgdG8gYmUgc2V0IHRvICdzZXJ2ZXInLlxuICAgKiBEYXRhIGlzIGxvYWRlZCBpbmNyZW1lbnRhbGx5IGFzIHRoZSB1c2VyIHNjcm9sbHMuXG4gICAqL1xuICBpbmZpbml0ZT86IGJvb2xlYW47XG4gIC8qKiBJbml0aWFsIHBhZ2Ugc2l6ZSAoZGVmYXVsdDogMTApICovXG4gIGluaXRpYWxQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIEF2YWlsYWJsZSBwYWdlIHNpemUgb3B0aW9ucyAoZGVmYXVsdDogWzEwLCAyMCwgNTAsIDEwMF0pICovXG4gIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xuICAvKiogQ3VzdG9tIGxhYmVscyBmb3IgcGFnaW5hdGlvbiBjb21wb25lbnQgKGkxOG4gc3VwcG9ydCkgKi9cbiAgbGFiZWxzPzoge1xuICAgIC8qKiBMYWJlbCB0ZW1wbGF0ZSBmb3IgdGhlIHBhZ2UgaW5kaWNhdG9yLiBTdXBwb3J0cyBwbGFjZWhvbGRlcnM6IHtwYWdlSW5kZXh9LCB7cGFnZUNvdW50fSAqL1xuICAgIHBhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgdG90YWwgcm93IGNvdW50IGRpc3BsYXkuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cm93Q291bnR9ICovXG4gICAgdG90YWw/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgcGFnZSBzaXplIGRyb3Bkb3duIG9wdGlvbnMuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cGFnZVNpemV9ICovXG4gICAgcGFnZVNpemVPcHRpb24/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gU2VydmVyLXNpZGUgKGJ1dHRvbnMpIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFRvdGFsIG51bWJlciBvZiByb3dzIChmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvbikgKi9cbiAgdG90YWxSb3dDb3VudD86IG51bWJlcjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBwYWdlcyAoZm9yIHNlcnZlci1zaWRlIHBhZ2luYXRpb24pICovXG4gIHRvdGFsUGFnZUNvdW50PzogbnVtYmVyO1xuICAvKiogQ2FsbGJhY2sgd2hlbiBwYWdpbmF0aW9uIHN0YXRlIGNoYW5nZXMgKGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uKSAqL1xuICBvblBhZ2luYXRpb25DaGFuZ2U/OiAoc3RhdGU6IHtcbiAgICAvKiogQ3VycmVudCBwYWdlIGluZGV4ICovXG4gICAgcGFnZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIEN1cnJlbnQgcGFnZSBzaXplICovXG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcblxuICAvLyBJbmZpbml0ZSBzY3JvbGwgc3BlY2lmaWMgcHJvcGVydGllcyAodXNlZCB3aGVuIGluZmluaXRlOiB0cnVlKVxuICAvKiogV2hldGhlciB0aGVyZSBhcmUgbW9yZSBpdGVtcyB0byBsb2FkIChmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgZGF0YSBpcyBjdXJyZW50bHkgbG9hZGluZyAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqIERpc3RhbmNlIGZyb20gYm90dG9tIGluIHBpeGVscyB0byB0cmlnZ2VyIGxvYWQgKGRlZmF1bHQ6IDUwMCkgKi9cbiAgbG9hZE1vcmVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBDYWxsYmFjayB0byBsb2FkIG1vcmUgZGF0YSAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgb25Mb2FkTW9yZT86ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQVBJIGV4cG9zZWQgdG8gcGFnaW5hdGlvbiB0ZW1wbGF0ZSBmb3IgYnVpbGRpbmcgY3VzdG9tIHBhZ2luYXRpb24gVUkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJIHtcbiAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleCAoemVyby1iYXNlZCkgKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IHBhZ2Ugc2l6ZSAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHBhZ2VzICovXG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHJvd3MgKi9cbiAgcm93Q291bnQ6IG51bWJlcjtcbiAgLyoqIE5hdmlnYXRlIHRvIGZpcnN0IHBhZ2UgKi9cbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgdG8gcHJldmlvdXMgcGFnZSAqL1xuICBwcmV2aW91c1BhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBuZXh0IHBhZ2UgKi9cbiAgbmV4dFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBsYXN0IHBhZ2UgKi9cbiAgbGFzdFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBzcGVjaWZpYyBwYWdlIGJ5IGluZGV4ICovXG4gIHNldFBhZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKiBDaGFuZ2UgcGFnZSBzaXplICovXG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAvKiogV2hldGhlciBwcmV2aW91cyBwYWdlIGlzIGF2YWlsYWJsZSAqL1xuICBjYW5QcmV2aW91c1BhZ2U6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG5leHQgcGFnZSBpcyBhdmFpbGFibGUgKi9cbiAgY2FuTmV4dFBhZ2U6IGJvb2xlYW47XG4gIC8qKiBMb2FkaW5nIHN0YXRlIChvbmx5IGZvciBpbmZpbml0ZSBzY3JvbGwpICovXG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG1vcmUgaXRlbXMgYXJlIGF2YWlsYWJsZSAob25seSBmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHNvcnRpbmcgbW9kZSAoY2xpZW50IHZzIHNlcnZlcikgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb21wb25lbnQncyB0b3AtbGV2ZWwgYG1vZGVgIHByb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHtcbiAgLyoqIEVuYWJsZSBtdWx0aS1jb2x1bW4gc29ydGluZyB3aXRoIFNoaWZ0K0NsaWNrICovXG4gIGVuYWJsZU11bHRpU29ydD86IGJvb2xlYW47XG4gIC8qKiBBbGxvdyBjeWNsaW5nIHRocm91Z2ggdG8gXCJubyBzb3J0XCIgc3RhdGUgKi9cbiAgZW5hYmxlU29ydGluZ1JlbW92YWw/OiBib29sZWFuO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29sdW1ucyBmb3IgbXVsdGktc29ydCAqL1xuICBtYXhNdWx0aVNvcnRDb2xDb3VudD86IG51bWJlcjtcbiAgLyoqIFN0YXJ0IHdpdGggZGVzY2VuZGluZyBzb3J0IGFzIGZpcnN0IHRvZ2dsZSBzdGF0ZSAqL1xuICBzb3J0RGVzY0ZpcnN0PzogYm9vbGVhbjtcbiAgLyoqIENvbnRyb2xsZWQgc29ydCBzdGF0ZSAoZm9yIHNlcnZlci1zaWRlIHNvcnRpbmcpICovXG4gIHNvcnRTdGF0ZT86IFNvcnRpbmdTdGF0ZTtcbiAgLyoqIENhbGxiYWNrIHdoZW4gc29ydGluZyBjaGFuZ2VzIChmb3Igc2VydmVyLXNpZGUgc29ydGluZykgKi9cbiAgb25Tb3J0aW5nQ2hhbmdlPzogKHNvcnRpbmc6IFNvcnRpbmdTdGF0ZSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIHN0YXRlIHR5cGUgLSBhcnJheSBvZiBzb3J0IGRlc2NyaXB0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIE52RGF0YVRhYmxlU29ydGluZ1N0YXRlID0gU29ydGluZ1N0YXRlO1xuIl19
|
|
@@ -20,7 +20,7 @@ export function provideNovaComponents() {
|
|
|
20
20
|
}
|
|
21
21
|
export class NovaComponentsModule {
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, declarations: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip], imports: [NvDatatable], exports: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip, NvDatatable] }); }
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, declarations: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationNav, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip], imports: [NvDatatable], exports: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationNav, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip, NvDatatable] }); }
|
|
24
24
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, providers: [provideNovaComponents()], imports: [NvDatatable] }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, decorators: [{
|
|
@@ -34,7 +34,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34
34
|
}] });
|
|
35
35
|
export class NovaComponentsValueAccessorModule {
|
|
36
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, declarations: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor], exports: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor] }); }
|
|
37
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, declarations: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationNavValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor], exports: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationNavValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor] }); }
|
|
38
38
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, decorators: [{
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44
44
|
exports: [...VALUE_ACCESSORS],
|
|
45
45
|
}]
|
|
46
46
|
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm92YS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL25vdmEtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBRWhGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO1FBQ3RDLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFRRCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQiw2bUNBTHJCLFdBQVcsOGxDQUVJLFdBQVc7Z0hBR3pCLG9CQUFvQixhQUZwQixDQUFDLHFCQUFxQixFQUFFLENBQUMsWUFIMUIsV0FBVzs7NEZBS1Ysb0JBQW9CO2tCQU5oQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLFdBQVcsQ0FBQztvQkFDckMsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztpQkFDckM7O0FBT0QsTUFBTSxPQUFPLGlDQUFpQzsrR0FBakMsaUNBQWlDO2dIQUFqQyxpQ0FBaUM7Z0hBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSwgdHlwZSBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudHMgfSBmcm9tICdAbm92YS1kZXNpZ24tc3lzdGVtL25vdmEtd2ViY29tcG9uZW50cy9sb2FkZXInO1xuXG5pbXBvcnQgeyBESVJFQ1RJVkVTIH0gZnJvbSAnLi9zdGVuY2lsLWdlbmVyYXRlZCc7XG5pbXBvcnQgeyBOdkRhdGF0YWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgeyBWQUxVRV9BQ0NFU1NPUlMgfSBmcm9tICcuL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudC12YWx1ZS1hY2Nlc3NvcnMnO1xuXG4vKipcbiAqIEluaXRpYWxpemUgdGhlIE5vdmEgQ29tcG9uZW50c1xuICpcbiAqIEByZXR1cm5zIHtQcm92aWRlcn0gLSBUaGUgcHJvdmlkZXIgdG8gYmUgdXNlZCBmb3Igbm92YSBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTm92YUNvbXBvbmVudHMoKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBkZWZpbmVDdXN0b21FbGVtZW50cyxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW052RGF0YXRhYmxlXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uRElSRUNUSVZFU10sXG4gIGV4cG9ydHM6IFsuLi5ESVJFQ1RJVkVTLCBOdkRhdGF0YWJsZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVOb3ZhQ29tcG9uZW50cygpXSxcbn0pXG5leHBvcnQgY2xhc3MgTm92YUNvbXBvbmVudHNNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uVkFMVUVfQUNDRVNTT1JTXSxcbiAgZXhwb3J0czogWy4uLlZBTFVFX0FDQ0VTU09SU10sXG59KVxuZXhwb3J0IGNsYXNzIE5vdmFDb21wb25lbnRzVmFsdWVBY2Nlc3Nvck1vZHVsZSB7fVxuIl19
|