@firestitch/app-acl 18.0.11 → 18.0.12
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/app/fs-app-acl.module.d.ts +13 -0
- package/esm2022/app/components/acl-role/acl-role.component.mjs +17 -17
- package/esm2022/app/fs-app-acl.module.mjs +56 -0
- package/esm2022/public_api.mjs +7 -6
- package/fesm2022/firestitch-app-acl.mjs +754 -707
- package/fesm2022/firestitch-app-acl.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +6 -5
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./components/acl-entries/acl-entries.component";
|
|
3
|
+
import * as i2 from "./components/acl-entry/acl-entry.component";
|
|
4
|
+
import * as i3 from "./components/acl-object-roles/acl-object-roles.component";
|
|
5
|
+
import * as i4 from "./components/acl-permission-popover/acl-permission-popover.component";
|
|
6
|
+
import * as i5 from "./components/acl-role/acl-role.component";
|
|
7
|
+
import * as i6 from "./components/acl-role-popover/acl-role-popover.component";
|
|
8
|
+
import * as i7 from "./components/acl-roles/acl-roles.component";
|
|
9
|
+
export declare class FsAppAclModule {
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FsAppAclModule, never>;
|
|
11
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FsAppAclModule, never, [typeof i1.FsAclEntriesComponent, typeof i2.FsAclEntryComponent, typeof i3.FsAclObjectRolesComponent, typeof i4.FsAclPermissionPopoverComponent, typeof i5.FsAclRoleComponent, typeof i6.FsAclRolePopoverComponent, typeof i7.FsAclRolesComponent], [typeof i1.FsAclEntriesComponent, typeof i2.FsAclEntryComponent, typeof i3.FsAclObjectRolesComponent, typeof i4.FsAclPermissionPopoverComponent, typeof i5.FsAclRoleComponent, typeof i6.FsAclRolePopoverComponent, typeof i7.FsAclRolesComponent]>;
|
|
12
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<FsAppAclModule>;
|
|
13
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, inject } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
2
4
|
import { MatButton } from '@angular/material/button';
|
|
3
|
-
import {
|
|
5
|
+
import { MatCheckbox } from '@angular/material/checkbox';
|
|
6
|
+
import { MatOption } from '@angular/material/core';
|
|
7
|
+
import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';
|
|
8
|
+
import { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';
|
|
9
|
+
import { MatInput } from '@angular/material/input';
|
|
10
|
+
import { MatRadioButton } from '@angular/material/radio';
|
|
11
|
+
import { MatSelect } from '@angular/material/select';
|
|
4
12
|
import { list } from '@firestitch/common';
|
|
13
|
+
import { FsFormModule } from '@firestitch/form';
|
|
5
14
|
import { FsListComponent, FsListModule } from '@firestitch/list';
|
|
6
15
|
import { FsMessage } from '@firestitch/message';
|
|
7
|
-
import {
|
|
16
|
+
import { FsDialogModule } from '@firestitch/dialog';
|
|
17
|
+
import { Subject, forkJoin, of } from 'rxjs';
|
|
8
18
|
import { takeUntil, tap } from 'rxjs/operators';
|
|
9
19
|
import { AclRoleAccess } from '../../enums/acl-role-access';
|
|
10
|
-
import { AclRoleAccesses } from './../../consts/acl-role-accesses';
|
|
11
|
-
import { FsAppAclService } from './../../services/app-acl.service';
|
|
12
|
-
import { FormsModule } from '@angular/forms';
|
|
13
|
-
import { FsFormModule } from '@firestitch/form';
|
|
14
|
-
import { FsDialogModule } from '@firestitch/dialog';
|
|
15
|
-
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
16
|
-
import { MatFormField, MatLabel, MatHint } from '@angular/material/form-field';
|
|
17
|
-
import { MatInput } from '@angular/material/input';
|
|
18
20
|
import { FsLabelModule } from '@firestitch/label';
|
|
19
|
-
import { FsRadioGroupModule } from '@firestitch/radiogroup';
|
|
20
|
-
import { MatRadioButton } from '@angular/material/radio';
|
|
21
|
-
import { MatCheckbox } from '@angular/material/checkbox';
|
|
22
|
-
import { MatSelect } from '@angular/material/select';
|
|
23
|
-
import { MatOption } from '@angular/material/core';
|
|
24
21
|
import { FsMenuModule } from '@firestitch/menu';
|
|
25
|
-
import {
|
|
22
|
+
import { FsRadioGroupModule } from '@firestitch/radiogroup';
|
|
23
|
+
import { AclRoleAccesses } from './../../consts/acl-role-accesses';
|
|
24
|
+
import { FsAppAclService } from './../../services/app-acl.service';
|
|
26
25
|
import { AclRolePermissionAvailablePipe } from '../../pipes/acl-role-permission-available.pipe';
|
|
26
|
+
import { BulkOptionsFilterPipe } from '../../pipes/bulk-options-filter.pipe';
|
|
27
27
|
import * as i0 from "@angular/core";
|
|
28
28
|
import * as i1 from "@angular/forms";
|
|
29
29
|
import * as i2 from "@firestitch/form";
|
|
@@ -278,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
278
278
|
type: ViewChild,
|
|
279
279
|
args: ['submit', { static: false }]
|
|
280
280
|
}] } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLXJvbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FjbC1yb2xlL2FjbC1yb2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY2wtcm9sZS9hY2wtcm9sZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0ksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQWdCLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlB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QixzREFDckIsOEJBQThCOzsyRkFHekIsa0JBQWtCO2tCQS9COUIsU0FBUztzQ0FHVyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDakM7OEJBV0ksSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWU7Z0JBSW5CLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBsaXN0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcbmltcG9ydCB7IEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnLCBGc0xpc3RNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBY2xSb2xlQWNjZXNzIH0gZnJvbSAnLi4vLi4vZW51bXMvYWNsLXJvbGUtYWNjZXNzJztcbmltcG9ydCB7IFJvbGVDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgQWNsUm9sZUFjY2Vzc2VzIH0gZnJvbSAnLi8uLi8uLi9jb25zdHMvYWNsLXJvbGUtYWNjZXNzZXMnO1xuaW1wb3J0IHsgQWNsUm9sZSB9IGZyb20gJy4vLi4vLi4vaW50ZXJmYWNlcy9hY2wtcm9sZSc7XG5pbXBvcnQgeyBGc0FwcEFjbFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2FwcC1hY2wuc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNEaWFsb2dNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0SGludCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgRnNSYWRpb0dyb3VwTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvcmFkaW9ncm91cCc7XG5pbXBvcnQgeyBNYXRSYWRpb0J1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRnNNZW51TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVudSc7XG5pbXBvcnQgeyBCdWxrT3B0aW9uc0ZpbHRlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9idWxrLW9wdGlvbnMtZmlsdGVyLnBpcGUnO1xuaW1wb3J0IHsgQWNsUm9sZVBlcm1pc3Npb25BdmFpbGFibGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvYWNsLXJvbGUtcGVybWlzc2lvbi1hdmFpbGFibGUucGlwZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjbC1yb2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hY2wtcm9sZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgRnNGb3JtTW9kdWxlLFxuICAgICAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgICAgIE1hdEZvcm1GaWVsZCxcbiAgICAgICAgTWF0TGFiZWwsXG4gICAgICAgIE1hdElucHV0LFxuICAgICAgICBGc0xhYmVsTW9kdWxlLFxuICAgICAgICBGc1JhZGlvR3JvdXBNb2R1bGUsXG4gICAgICAgIE1hdFJhZGlvQnV0dG9uLFxuICAgICAgICBNYXRDaGVja2JveCxcbiAgICAgICAgTWF0SGludCxcbiAgICAgICAgTWF0U2VsZWN0LFxuICAgICAgICBNYXRPcHRpb24sXG4gICAgICAgIEZzTGlzdE1vZHVsZSxcbiAgICAgICAgRnNNZW51TW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgICAgICBNYXRCdXR0b24sXG4gICAgICAgIE1hdERpYWxvZ0Nsb3NlLFxuICAgICAgICBCdWxrT3B0aW9uc0ZpbHRlclBpcGUsXG4gICAgICAgIEFjbFJvbGVQZXJtaXNzaW9uQXZhaWxhYmxlUGlwZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0FjbFJvbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXBwQWNsU2VydmljZSA9IGluamVjdChGc0FwcEFjbFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPEZzQWNsUm9sZUNvbXBvbmVudD4+KE1hdERpYWxvZ1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2UgPSBpbmplY3QoRnNNZXNzYWdlKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzdWJtaXRCdXR0b246IE1hdEJ1dHRvbjtcblxuICBwdWJsaWMgYWNsUm9sZTogQWNsUm9sZSA9IG51bGw7XG4gIHB1YmxpYyBlbnZpcm9ubWVudDtcbiAgcHVibGljIHBlcm1pc3Npb25zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgbGV2ZWxQZXJtaXNzaW9ucyA9IFtdO1xuICBwdWJsaWMgQWNsUm9sZUFjY2Vzc2VzID0gQWNsUm9sZUFjY2Vzc2VzO1xuICBwdWJsaWMgaW5kZXhlZEFjY2Vzc2VzID0ge307XG4gIHB1YmxpYyBhY2xMZXZlbHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBpbmRleGVkQWNsTGV2ZWxzID0ge307XG4gIHB1YmxpYyBvbmx5RnVsbEFjY2VzcyA9IGZhbHNlO1xuICBwdWJsaWMgQWNsTGV2ZWxzID0ge307XG4gIHB1YmxpYyByb2xlQ29uZmlnczogUm9sZUNvbmZpZ1tdID0gW107XG4gIHB1YmxpYyBhY2xSb2xlQ29uZmlnVmFsdWVzID0ge307XG4gIHB1YmxpYyBhY2xSb2xlUGVybWlzc2lvbnMgPSB7fTtcbiAgcHVibGljIGxvYWRSb2xlQ29uZmlnczogKGFjbFJvbGU6IEFjbFJvbGUsIHF1ZXJ5KSA9PiBPYnNlcnZhYmxlPFJvbGVDb25maWdbXT47XG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGZvcmtKb2luKFxuICAgICAgdGhpcy5nZXRSb2xlKCksXG4gICAgICB0aGlzLl9hcHBBY2xTZXJ2aWNlLmdldFBlcm1pc3Npb25zKCksXG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtcbiAgICAgICAgYWNsUm9sZSxcbiAgICAgICAgYWNsUGVybWlzc2lvbnMsXG4gICAgICBdKSA9PiB7XG5cbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGFjbFBlcm1pc3Npb25zO1xuICAgICAgICB0aGlzLmFjbExldmVscyA9IHRoaXMuX2RhdGEuYWNsTGV2ZWxzO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5fZGF0YS5kaXNhYmxlZDtcblxuICAgICAgICB0aGlzLmluZGV4ZWRBY2xMZXZlbHMgPSBsaXN0KHRoaXMuYWNsTGV2ZWxzLCAnbmFtZScsICd2YWx1ZScpO1xuICAgICAgICB0aGlzLmluZGV4ZWRBY2Nlc3NlcyA9IGxpc3QoQWNsUm9sZUFjY2Vzc2VzLCAnbmFtZScsICd2YWx1ZScpO1xuXG4gICAgICAgIHRoaXMuYWNsUm9sZSA9IHtcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBhY2xQZXJtaXNzaW9uczogW10sXG4gICAgICAgICAgICBhbGxQZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgIGFjbFJvbGVDb25maWdzOiBbXSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiB7fSxcbiAgICAgICAgICAgIGxldmVsOiB0aGlzLmFjbExldmVsc1swXS52YWx1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLmFjbFJvbGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hY2xSb2xlQ29uZmlnVmFsdWVzID0gKGFjbFJvbGUuYWNsUm9sZUNvbmZpZ3MgfHwgW10pXG4gICAgICAgICAgLnJlZHVjZSgoYWNjdW0sIGFjbFJvbGVDb25maWcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmFjY3VtLFxuICAgICAgICAgICAgICBbYWNsUm9sZUNvbmZpZy5uYW1lXTogYWNsUm9sZUNvbmZpZy52YWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSwge30pO1xuXG4gICAgICAgIGlmICh0aGlzLmFjbFJvbGUuaWQpIHtcbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb24pID0+IHtcbiAgICAgICAgICAgIGxldCBhY2Nlc3MgPSAwO1xuXG4gICAgICAgICAgICBjb25zdCBhY2xQZXJtaXNzaW9uID0gdGhpcy5hY2xSb2xlLmFjbFBlcm1pc3Npb25zLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucGVybWlzc2lvbiA9PT0gcGVybWlzc2lvbi52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoYWNsUGVybWlzc2lvbikge1xuICAgICAgICAgICAgICBhY2Nlc3MgPSBhY2xQZXJtaXNzaW9uLmFjY2VzcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSBhY2Nlc3M7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2xSb2xlLmFsbFBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlNYXhQZXJtaXNzaW9uQWNjZXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl91cGRhdGVQZXJtaXNzaW9ucygpO1xuICAgICAgICB0aGlzLl91cGRhdGVSb2xlQ29uZmlncygpO1xuXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBzdGF0dXM6IGZhbHNlLFxuICAgICAgcGFnaW5nOiBmYWxzZSxcbiAgICAgIHJvd0hvdmVySGlnaGxpZ2h0OiBmYWxzZSxcbiAgICAgIG5vUmVzdWx0czoge1xuICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIH0sXG4gICAgICBncm91cDoge1xuICAgICAgICBpbml0aWFsRXhwYW5kOiB0cnVlLFxuICAgICAgICBncm91cEJ5OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9LFxuICAgICAgICBjb21wYXJlQnk6IChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEuY2F0ZWdvcnkgfHwgJ0dlbmVyYWwnO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZldGNoOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgZGF0YTogdGhpcy5sZXZlbFBlcm1pc3Npb25zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGEgPSBhLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGIgPSBiLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChhIDwgYikge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYnVsa0NoYW5nZSh2YWx1ZTogbnVtYmVyLCBncm91cENoaWxkcmVuLCBncm91cCk6IHZvaWQge1xuICAgIGdyb3VwQ2hpbGRyZW5cbiAgICAgIC5mb3JFYWNoKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IHBlcm1pc3Npb24uYWNjZXNzZXNcbiAgICAgICAgICAuZmluZCgoYWNjZXNzKSA9PiB2YWx1ZSA9PT0gYWNjZXNzKTtcblxuICAgICAgICBpZihhY2Nlc3MgfHwgIXZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnBlcm1pc3Npb25DaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJtaXNzaW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuYWNsUm9sZVBlcm1pc3Npb25zID0ge1xuICAgICAgLi4udGhpcy5hY2xSb2xlUGVybWlzc2lvbnMsICAgICAgICBcbiAgICB9O1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGxldmVsQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVBlcm1pc3Npb25zKCk7XG4gICAgdGhpcy5fdXBkYXRlUm9sZUNvbmZpZ3MoKTtcbiAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghdGhpcy5fZGF0YS5hY2xSb2xlLmlkKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fZGF0YS5hY2xSb2xlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeTogYW55ID0ge1xuICAgICAgYWNsUGVybWlzc2lvbnM6IHRydWUsXG4gICAgICBhY2xSb2xlQ29uZmlnczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmVudmlyb25tZW50KSB7XG4gICAgICBxdWVyeS5lbnZpcm9ubWVudElkID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZGF0YS5sb2FkQWNsUm9sZSh0aGlzLl9kYXRhLmFjbFJvbGUsIHF1ZXJ5KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlID0gKCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgY29uc3QgYWNsUm9sZUNvbmZpZ3MgPSB0aGlzLnJvbGVDb25maWdzXG4gICAgICAubWFwKChyb2xlQ29uZmlnKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogcm9sZUNvbmZpZy5uYW1lLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLmFjbFJvbGVDb25maWdWYWx1ZXNbcm9sZUNvbmZpZy5uYW1lXSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYWNsUm9sZSA9IHtcbiAgICAgIC4uLnRoaXMuYWNsUm9sZSxcbiAgICAgIHBlcm1pc3Npb25zOiB0aGlzLmxldmVsUGVybWlzc2lvbnMubWFwKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHBlcm1pc3Npb24udmFsdWUsXG4gICAgICAgICAgYWNjZXNzOiB0aGlzLmFjbFJvbGVQZXJtaXNzaW9uc1twZXJtaXNzaW9uLnZhbHVlXSB8fCAwLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgICBhY2xSb2xlQ29uZmlncyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuc2F2ZUFjbFJvbGUoYWNsUm9sZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgICAgdGhpcy5jbG9zZShyZXNwb25zZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwdWJsaWMgY2xvc2UoZGF0YTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxQZXJtaXNzaW9uc0NoYW5nZShhbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVQZXJtaXNzaW9ucygpO1xuICAgIGlmIChhbGwpIHtcbiAgICAgIHRoaXMuX2FwcGx5TWF4UGVybWlzc2lvbkFjY2VzcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hcHBseU5vbmVQZXJtaXNzaW9uQWNjZXNzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVBlcm1pc3Npb25zKCk6IHZvaWQge1xuICAgIHRoaXMubGV2ZWxQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnNcbiAgICAgIC5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb24ubGV2ZWxzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5hY2xSb2xlLmxldmVsO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlUm9sZUNvbmZpZ3MoKTogdm9pZCB7XG4gICAgaWYodGhpcy5fZGF0YS5sb2FkUm9sZUNvbmZpZ3MpIHtcbiAgICAgIHRoaXMuX2RhdGEubG9hZFJvbGVDb25maWdzKClcbiAgICAgICAgLnN1YnNjcmliZSgocm9sZUNvbmZpZ3M6IFJvbGVDb25maWdbXSkgPT4ge1xuICAgICAgICAgIHRoaXMucm9sZUNvbmZpZ3MgPSByb2xlQ29uZmlnc1xuICAgICAgICAgICAgLmZpbHRlcigocm9sZUNvbmZpZykgPT4gcm9sZUNvbmZpZy5sZXZlbCA9PT0gdGhpcy5hY2xSb2xlLmxldmVsKTtcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlNYXhQZXJtaXNzaW9uQWNjZXNzKCk6IHZvaWQge1xuICAgIHRoaXMucGVybWlzc2lvbnMuZm9yRWFjaCgocGVybWlzc2lvbikgPT4ge1xuICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSBNYXRoLm1heCguLi5wZXJtaXNzaW9uLmFjY2Vzc2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5Tm9uZVBlcm1pc3Npb25BY2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5wZXJtaXNzaW9ucy5mb3JFYWNoKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICB0aGlzLmFjbFJvbGVQZXJtaXNzaW9uc1twZXJtaXNzaW9uLnZhbHVlXSA9IEFjbFJvbGVBY2Nlc3MuTm9uZTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8Zm9ybVxuICBmc0Zvcm1cbiAgW3N1Ym1pdF09XCJzYXZlXCI+XG4gIDxmcy1kaWFsb2c+XG4gICAgQGlmIChhY2xSb2xlKSB7XG4gICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAge3sgYWNsUm9sZS5pZCA/ICdFZGl0JyA6ICdDcmVhdGUnIH19XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgIFZpZXdcbiAgICAgICAgfVxuICAgICAgICByb2xlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLWxnLmFsaWduLXN0YXJ0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZzLWNvbHVtbiBsZWZ0LWNvbHVtblwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIE5hbWVcbiAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIGZzRm9ybVJlcXVpcmVkPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblxuICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjbFJvbGUuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgQGlmIChhY2xSb2xlLmlkIHx8IGFjbExldmVscy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIExldmVsXG4gICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICB7eyBpbmRleGVkQWNsTGV2ZWxzW2FjbFJvbGUubGV2ZWxdIH19XG4gICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsXCI+XG4gICAgICAgICAgICAgICAgPGZzLXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjbFJvbGUubGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxldmVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgZnNGb3JtUmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGV2ZWxcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWNsTGV2ZWxzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWFjbFJvbGUucHJvdGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZzLXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobGV2ZWxQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIEFsbCBwZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlLmFsbFBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbFBlcm1pc3Npb25zQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhYWNsUm9sZS5wcm90ZWN0ZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImFsbFBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgICAgICAgICBFbmFibGVcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBmb3IgKHJvbGVDb25maWcgb2Ygcm9sZUNvbmZpZ3M7IHRyYWNrIHJvbGVDb25maWcpIHtcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtY29sdW1uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChyb2xlQ29uZmlnLnR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvbGVDb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWNsUm9sZUNvbmZpZ1ZhbHVlc1tyb2xlQ29uZmlnLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInJvbGVDb25maWcubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm9sZUNvbmZpZy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtbWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAocm9sZUNvbmZpZy50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWNsUm9sZUNvbmZpZ1ZhbHVlc1tyb2xlQ29uZmlnLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJyb2xlQ29uZmlnLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyb2xlQ29uZmlnLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJyb2xlQ29uZmlnLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiByb2xlQ29uZmlnLnZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICB7eyByb2xlQ29uZmlnLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChhY2xSb2xlLmxldmVsKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWxldmVsUGVybWlzc2lvbnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwZXJtaXNzaW9ucyBmcy1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGZzLWxpc3QgW2NvbmZpZ109XCJsaXN0Q29uZmlnXCI+XG4gICAgICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiUGVybWlzc2lvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1saXN0LWdyb3VwLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgbGV0LXJvdz1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGVybWlzc2lvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybWlzc2lvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5jYXRlZ29yeSB8fCAnR2VuZXJhbCcgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICAgICAgICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcm93Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbiBzbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQWNjZXNzXCJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMSVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3NcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1saXN0LWdyb3VwLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgbGV0LXJvdz1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGxldC1ncm91cD1cImdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgbGV0LWdyb3VwQ2hpbGRyZW49XCJncm91cENoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXJtaXNzaW9uLWdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY2xSb2xlLmFsbFBlcm1pc3Npb25zICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIDxmcy1tZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWNjZXNzIG9mIEFjbFJvbGVBY2Nlc3NlcyB8IGJ1aWxrT3B0aW9uc0ZpbHRlcjogZ3JvdXBDaGlsZHJlbjsgdHJhY2sgYWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidWxrQ2hhbmdlKGFjY2Vzcy52YWx1ZSwgZ3JvdXBDaGlsZHJlbiwgZ3JvdXApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYWNjZXNzLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2ZzLW1lbnU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgICAgICAgICAgICAgIGxldC1yb3c9XCJwZXJtaXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgbGV0LXBlcm1pc3Npb249XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhY2xSb2xlLmFsbFBlcm1pc3Npb25zIHx8IGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpbmRleGVkQWNjZXNzZXNbYWNsUm9sZVBlcm1pc3Npb25zW3Blcm1pc3Npb24udmFsdWVdXSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChwZXJtaXNzaW9ufGFjbFJvbGVQZXJtaXNzaW9uQXZhaWxhYmxlOmFjbFJvbGVQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZC1wYWRsZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWFjbFJvbGUucHJvdGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidhY2Nlc3MtJyArIHBlcm1pc3Npb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBlcm1pc3Npb25DaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjY2VzcyBvZiBBY2xSb2xlQWNjZXNzZXM7IHRyYWNrIGFjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhY2Nlc3MudmFsdWUgPT09IDAgfHwgcGVybWlzc2lvbi5hY2Nlc3Nlcy5pbmRleE9mKGFjY2Vzcy52YWx1ZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjY2Vzcy52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjY2Vzcy5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBVbmF2YWlsYWJsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZzLWxpc3QtY29sdW1uPlxuICAgICAgICAgICAgICA8L2ZzLWxpc3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNzdWJtaXRcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICB7eyBhY2xSb2xlLmlkID8gJ1NhdmUnIDogJ0NyZWF0ZScgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICB7eyBkaXNhYmxlZCA/ICdEb25lJyA6ICdDYW5jZWwnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgfVxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT4iXX0=
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNsLXJvbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FjbC1yb2xlL2FjbC1yb2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hY2wtcm9sZS9hY2wtcm9sZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtC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QixzREFDckIsOEJBQThCOzsyRkFHckIsa0JBQWtCO2tCQS9COUIsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxTQUFTO3dCQUNULFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFNBQVM7d0JBQ1QsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLDhCQUE4QjtxQkFDL0I7OEJBV00sSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWU7Z0JBSW5CLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRIaW50LCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRSYWRpb0J1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IGxpc3QgfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcblxuaW1wb3J0IHsgRnNEaWFsb2dNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWNsUm9sZUFjY2VzcyB9IGZyb20gJy4uLy4uL2VudW1zL2FjbC1yb2xlLWFjY2Vzcyc7XG5pbXBvcnQgeyBSb2xlQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBGc01lbnVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9tZW51JztcbmltcG9ydCB7IEZzUmFkaW9Hcm91cE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3JhZGlvZ3JvdXAnO1xuaW1wb3J0IHsgQWNsUm9sZUFjY2Vzc2VzIH0gZnJvbSAnLi8uLi8uLi9jb25zdHMvYWNsLXJvbGUtYWNjZXNzZXMnO1xuaW1wb3J0IHsgQWNsUm9sZSB9IGZyb20gJy4vLi4vLi4vaW50ZXJmYWNlcy9hY2wtcm9sZSc7XG5pbXBvcnQgeyBGc0FwcEFjbFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2FwcC1hY2wuc2VydmljZSc7XG5cbmltcG9ydCB7IEFjbFJvbGVQZXJtaXNzaW9uQXZhaWxhYmxlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2FjbC1yb2xlLXBlcm1pc3Npb24tYXZhaWxhYmxlLnBpcGUnO1xuaW1wb3J0IHsgQnVsa09wdGlvbnNGaWx0ZXJQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvYnVsay1vcHRpb25zLWZpbHRlci5waXBlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FjbC1yb2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNsLXJvbGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGc0Zvcm1Nb2R1bGUsXG4gICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBNYXREaWFsb2dDb250ZW50LFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRMYWJlbCxcbiAgICBNYXRJbnB1dCxcbiAgICBGc0xhYmVsTW9kdWxlLFxuICAgIEZzUmFkaW9Hcm91cE1vZHVsZSxcbiAgICBNYXRSYWRpb0J1dHRvbixcbiAgICBNYXRDaGVja2JveCxcbiAgICBNYXRIaW50LFxuICAgIE1hdFNlbGVjdCxcbiAgICBNYXRPcHRpb24sXG4gICAgRnNMaXN0TW9kdWxlLFxuICAgIEZzTWVudU1vZHVsZSxcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXREaWFsb2dDbG9zZSxcbiAgICBCdWxrT3B0aW9uc0ZpbHRlclBpcGUsXG4gICAgQWNsUm9sZVBlcm1pc3Npb25BdmFpbGFibGVQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0FjbFJvbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYXBwQWNsU2VydmljZSA9IGluamVjdChGc0FwcEFjbFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPEZzQWNsUm9sZUNvbXBvbmVudD4+KE1hdERpYWxvZ1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2UgPSBpbmplY3QoRnNNZXNzYWdlKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnc3VibWl0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzdWJtaXRCdXR0b246IE1hdEJ1dHRvbjtcblxuICBwdWJsaWMgYWNsUm9sZTogQWNsUm9sZSA9IG51bGw7XG4gIHB1YmxpYyBlbnZpcm9ubWVudDtcbiAgcHVibGljIHBlcm1pc3Npb25zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgbGlzdENvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgbGV2ZWxQZXJtaXNzaW9ucyA9IFtdO1xuICBwdWJsaWMgQWNsUm9sZUFjY2Vzc2VzID0gQWNsUm9sZUFjY2Vzc2VzO1xuICBwdWJsaWMgaW5kZXhlZEFjY2Vzc2VzID0ge307XG4gIHB1YmxpYyBhY2xMZXZlbHM6IGFueVtdID0gW107XG4gIHB1YmxpYyBpbmRleGVkQWNsTGV2ZWxzID0ge307XG4gIHB1YmxpYyBvbmx5RnVsbEFjY2VzcyA9IGZhbHNlO1xuICBwdWJsaWMgQWNsTGV2ZWxzID0ge307XG4gIHB1YmxpYyByb2xlQ29uZmlnczogUm9sZUNvbmZpZ1tdID0gW107XG4gIHB1YmxpYyBhY2xSb2xlQ29uZmlnVmFsdWVzID0ge307XG4gIHB1YmxpYyBhY2xSb2xlUGVybWlzc2lvbnMgPSB7fTtcbiAgcHVibGljIGxvYWRSb2xlQ29uZmlnczogKGFjbFJvbGU6IEFjbFJvbGUsIHF1ZXJ5KSA9PiBPYnNlcnZhYmxlPFJvbGVDb25maWdbXT47XG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGZvcmtKb2luKFxuICAgICAgdGhpcy5nZXRSb2xlKCksXG4gICAgICB0aGlzLl9hcHBBY2xTZXJ2aWNlLmdldFBlcm1pc3Npb25zKCksXG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtcbiAgICAgICAgYWNsUm9sZSxcbiAgICAgICAgYWNsUGVybWlzc2lvbnMsXG4gICAgICBdKSA9PiB7XG5cbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGFjbFBlcm1pc3Npb25zO1xuICAgICAgICB0aGlzLmFjbExldmVscyA9IHRoaXMuX2RhdGEuYWNsTGV2ZWxzO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5fZGF0YS5kaXNhYmxlZDtcblxuICAgICAgICB0aGlzLmluZGV4ZWRBY2xMZXZlbHMgPSBsaXN0KHRoaXMuYWNsTGV2ZWxzLCAnbmFtZScsICd2YWx1ZScpO1xuICAgICAgICB0aGlzLmluZGV4ZWRBY2Nlc3NlcyA9IGxpc3QoQWNsUm9sZUFjY2Vzc2VzLCAnbmFtZScsICd2YWx1ZScpO1xuXG4gICAgICAgIHRoaXMuYWNsUm9sZSA9IHtcbiAgICAgICAgICAuLi57XG4gICAgICAgICAgICBhY2xQZXJtaXNzaW9uczogW10sXG4gICAgICAgICAgICBhbGxQZXJtaXNzaW9uczogdHJ1ZSxcbiAgICAgICAgICAgIGFjbFJvbGVDb25maWdzOiBbXSxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiB7fSxcbiAgICAgICAgICAgIGxldmVsOiB0aGlzLmFjbExldmVsc1swXS52YWx1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLmFjbFJvbGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5hY2xSb2xlQ29uZmlnVmFsdWVzID0gKGFjbFJvbGUuYWNsUm9sZUNvbmZpZ3MgfHwgW10pXG4gICAgICAgICAgLnJlZHVjZSgoYWNjdW0sIGFjbFJvbGVDb25maWcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmFjY3VtLFxuICAgICAgICAgICAgICBbYWNsUm9sZUNvbmZpZy5uYW1lXTogYWNsUm9sZUNvbmZpZy52YWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSwge30pO1xuXG4gICAgICAgIGlmICh0aGlzLmFjbFJvbGUuaWQpIHtcbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb24pID0+IHtcbiAgICAgICAgICAgIGxldCBhY2Nlc3MgPSAwO1xuXG4gICAgICAgICAgICBjb25zdCBhY2xQZXJtaXNzaW9uID0gdGhpcy5hY2xSb2xlLmFjbFBlcm1pc3Npb25zLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucGVybWlzc2lvbiA9PT0gcGVybWlzc2lvbi52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoYWNsUGVybWlzc2lvbikge1xuICAgICAgICAgICAgICBhY2Nlc3MgPSBhY2xQZXJtaXNzaW9uLmFjY2VzcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSBhY2Nlc3M7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2xSb2xlLmFsbFBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlNYXhQZXJtaXNzaW9uQWNjZXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl91cGRhdGVQZXJtaXNzaW9ucygpO1xuICAgICAgICB0aGlzLl91cGRhdGVSb2xlQ29uZmlncygpO1xuXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBzdGF0dXM6IGZhbHNlLFxuICAgICAgcGFnaW5nOiBmYWxzZSxcbiAgICAgIHJvd0hvdmVySGlnaGxpZ2h0OiBmYWxzZSxcbiAgICAgIG5vUmVzdWx0czoge1xuICAgICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIH0sXG4gICAgICBncm91cDoge1xuICAgICAgICBpbml0aWFsRXhwYW5kOiB0cnVlLFxuICAgICAgICBncm91cEJ5OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9LFxuICAgICAgICBjb21wYXJlQnk6IChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRhdGEuY2F0ZWdvcnkgfHwgJ0dlbmVyYWwnO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZldGNoOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgZGF0YTogdGhpcy5sZXZlbFBlcm1pc3Npb25zLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGEgPSBhLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGIgPSBiLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChhIDwgYikge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYnVsa0NoYW5nZSh2YWx1ZTogbnVtYmVyLCBncm91cENoaWxkcmVuLCBncm91cCk6IHZvaWQge1xuICAgIGdyb3VwQ2hpbGRyZW5cbiAgICAgIC5mb3JFYWNoKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjY2VzcyA9IHBlcm1pc3Npb24uYWNjZXNzZXNcbiAgICAgICAgICAuZmluZCgoYWNjZXNzKSA9PiB2YWx1ZSA9PT0gYWNjZXNzKTtcblxuICAgICAgICBpZihhY2Nlc3MgfHwgIXZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnBlcm1pc3Npb25DaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJtaXNzaW9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuYWNsUm9sZVBlcm1pc3Npb25zID0ge1xuICAgICAgLi4udGhpcy5hY2xSb2xlUGVybWlzc2lvbnMsICAgICAgICBcbiAgICB9O1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGxldmVsQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVBlcm1pc3Npb25zKCk7XG4gICAgdGhpcy5fdXBkYXRlUm9sZUNvbmZpZ3MoKTtcbiAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghdGhpcy5fZGF0YS5hY2xSb2xlLmlkKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fZGF0YS5hY2xSb2xlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeTogYW55ID0ge1xuICAgICAgYWNsUGVybWlzc2lvbnM6IHRydWUsXG4gICAgICBhY2xSb2xlQ29uZmlnczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmVudmlyb25tZW50KSB7XG4gICAgICBxdWVyeS5lbnZpcm9ubWVudElkID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZGF0YS5sb2FkQWNsUm9sZSh0aGlzLl9kYXRhLmFjbFJvbGUsIHF1ZXJ5KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlID0gKCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgY29uc3QgYWNsUm9sZUNvbmZpZ3MgPSB0aGlzLnJvbGVDb25maWdzXG4gICAgICAubWFwKChyb2xlQ29uZmlnKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogcm9sZUNvbmZpZy5uYW1lLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLmFjbFJvbGVDb25maWdWYWx1ZXNbcm9sZUNvbmZpZy5uYW1lXSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYWNsUm9sZSA9IHtcbiAgICAgIC4uLnRoaXMuYWNsUm9sZSxcbiAgICAgIHBlcm1pc3Npb25zOiB0aGlzLmxldmVsUGVybWlzc2lvbnMubWFwKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHBlcm1pc3Npb24udmFsdWUsXG4gICAgICAgICAgYWNjZXNzOiB0aGlzLmFjbFJvbGVQZXJtaXNzaW9uc1twZXJtaXNzaW9uLnZhbHVlXSB8fCAwLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgICBhY2xSb2xlQ29uZmlncyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuc2F2ZUFjbFJvbGUoYWNsUm9sZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgICAgdGhpcy5jbG9zZShyZXNwb25zZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfTtcblxuICBwdWJsaWMgY2xvc2UoZGF0YTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxQZXJtaXNzaW9uc0NoYW5nZShhbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVQZXJtaXNzaW9ucygpO1xuICAgIGlmIChhbGwpIHtcbiAgICAgIHRoaXMuX2FwcGx5TWF4UGVybWlzc2lvbkFjY2VzcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9hcHBseU5vbmVQZXJtaXNzaW9uQWNjZXNzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVBlcm1pc3Npb25zKCk6IHZvaWQge1xuICAgIHRoaXMubGV2ZWxQZXJtaXNzaW9ucyA9IHRoaXMucGVybWlzc2lvbnNcbiAgICAgIC5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb24ubGV2ZWxzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbSA9PT0gdGhpcy5hY2xSb2xlLmxldmVsO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlUm9sZUNvbmZpZ3MoKTogdm9pZCB7XG4gICAgaWYodGhpcy5fZGF0YS5sb2FkUm9sZUNvbmZpZ3MpIHtcbiAgICAgIHRoaXMuX2RhdGEubG9hZFJvbGVDb25maWdzKClcbiAgICAgICAgLnN1YnNjcmliZSgocm9sZUNvbmZpZ3M6IFJvbGVDb25maWdbXSkgPT4ge1xuICAgICAgICAgIHRoaXMucm9sZUNvbmZpZ3MgPSByb2xlQ29uZmlnc1xuICAgICAgICAgICAgLmZpbHRlcigocm9sZUNvbmZpZykgPT4gcm9sZUNvbmZpZy5sZXZlbCA9PT0gdGhpcy5hY2xSb2xlLmxldmVsKTtcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlNYXhQZXJtaXNzaW9uQWNjZXNzKCk6IHZvaWQge1xuICAgIHRoaXMucGVybWlzc2lvbnMuZm9yRWFjaCgocGVybWlzc2lvbikgPT4ge1xuICAgICAgdGhpcy5hY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV0gPSBNYXRoLm1heCguLi5wZXJtaXNzaW9uLmFjY2Vzc2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5Tm9uZVBlcm1pc3Npb25BY2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5wZXJtaXNzaW9ucy5mb3JFYWNoKChwZXJtaXNzaW9uKSA9PiB7XG4gICAgICB0aGlzLmFjbFJvbGVQZXJtaXNzaW9uc1twZXJtaXNzaW9uLnZhbHVlXSA9IEFjbFJvbGVBY2Nlc3MuTm9uZTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8Zm9ybVxuICBmc0Zvcm1cbiAgW3N1Ym1pdF09XCJzYXZlXCI+XG4gIDxmcy1kaWFsb2c+XG4gICAgQGlmIChhY2xSb2xlKSB7XG4gICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgICAgIEBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAge3sgYWNsUm9sZS5pZCA/ICdFZGl0JyA6ICdDcmVhdGUnIH19XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgIFZpZXdcbiAgICAgICAgfVxuICAgICAgICByb2xlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLWxnLmFsaWduLXN0YXJ0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZzLWNvbHVtbiBsZWZ0LWNvbHVtblwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIE5hbWVcbiAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIGZzRm9ybVJlcXVpcmVkPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICBEZXNjcmlwdGlvblxuICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjbFJvbGUuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgQGlmIChhY2xSb2xlLmlkIHx8IGFjbExldmVscy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIExldmVsXG4gICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICB7eyBpbmRleGVkQWNsTGV2ZWxzW2FjbFJvbGUubGV2ZWxdIH19XG4gICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsXCI+XG4gICAgICAgICAgICAgICAgPGZzLXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjbFJvbGUubGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxldmVsQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgZnNGb3JtUmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibGV2ZWxcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWNsTGV2ZWxzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWFjbFJvbGUucHJvdGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2ZzLXJhZGlvLWdyb3VwPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobGV2ZWxQZXJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIEFsbCBwZXJtaXNzaW9uc1xuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlLmFsbFBlcm1pc3Npb25zXCJcbiAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFsbFBlcm1pc3Npb25zQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhYWNsUm9sZS5wcm90ZWN0ZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cImFsbFBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgICAgICAgICBFbmFibGVcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBmb3IgKHJvbGVDb25maWcgb2Ygcm9sZUNvbmZpZ3M7IHRyYWNrIHJvbGVDb25maWcpIHtcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtY29sdW1uXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChyb2xlQ29uZmlnLnR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvbGVDb25maWcubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWNsUm9sZUNvbmZpZ1ZhbHVlc1tyb2xlQ29uZmlnLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInJvbGVDb25maWcubmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEVuYWJsZVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm9sZUNvbmZpZy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtbWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAocm9sZUNvbmZpZy50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYWNsUm9sZUNvbmZpZ1ZhbHVlc1tyb2xlQ29uZmlnLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJyb2xlQ29uZmlnLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyb2xlQ29uZmlnLnJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJyb2xlQ29uZmlnLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiByb2xlQ29uZmlnLnZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5cbiAgICAgICAgICAgICAgICAgICAgICB7eyByb2xlQ29uZmlnLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChhY2xSb2xlLmxldmVsKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWxldmVsUGVybWlzc2lvbnMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwZXJtaXNzaW9ucyBmcy1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGZzLWxpc3QgW2NvbmZpZ109XCJsaXN0Q29uZmlnXCI+XG4gICAgICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uIHRpdGxlPVwiUGVybWlzc2lvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1saXN0LWdyb3VwLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgbGV0LXJvdz1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGVybWlzc2lvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybWlzc2lvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5jYXRlZ29yeSB8fCAnR2VuZXJhbCcgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICAgICAgICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcm93Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbiBzbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQWNjZXNzXCJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMSVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY2Nlc3NcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBmcy1saXN0LWdyb3VwLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgbGV0LXJvdz1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGxldC1ncm91cD1cImdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgbGV0LWdyb3VwQ2hpbGRyZW49XCJncm91cENoaWxkcmVuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXJtaXNzaW9uLWdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgYWxpZ249XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY2xSb2xlLmFsbFBlcm1pc3Npb25zICYmICFkaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIDxmcy1tZW51PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWNjZXNzIG9mIEFjbFJvbGVBY2Nlc3NlcyB8IGJ1aWxrT3B0aW9uc0ZpbHRlcjogZ3JvdXBDaGlsZHJlbjsgdHJhY2sgYWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJidWxrQ2hhbmdlKGFjY2Vzcy52YWx1ZSwgZ3JvdXBDaGlsZHJlbiwgZ3JvdXApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYWNjZXNzLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2ZzLW1lbnU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgICAgICAgICAgICAgIGxldC1yb3c9XCJwZXJtaXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgbGV0LXBlcm1pc3Npb249XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhY2xSb2xlLmFsbFBlcm1pc3Npb25zIHx8IGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpbmRleGVkQWNjZXNzZXNbYWNsUm9sZVBlcm1pc3Npb25zW3Blcm1pc3Npb24udmFsdWVdXSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChwZXJtaXNzaW9ufGFjbFJvbGVQZXJtaXNzaW9uQXZhaWxhYmxlOmFjbFJvbGVQZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS1maWVsZC1wYWRsZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhY2xSb2xlUGVybWlzc2lvbnNbcGVybWlzc2lvbi52YWx1ZV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWFjbFJvbGUucHJvdGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIidhY2Nlc3MtJyArIHBlcm1pc3Npb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBlcm1pc3Npb25DaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjY2VzcyBvZiBBY2xSb2xlQWNjZXNzZXM7IHRyYWNrIGFjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhY2Nlc3MudmFsdWUgPT09IDAgfHwgcGVybWlzc2lvbi5hY2Nlc3Nlcy5pbmRleE9mKGFjY2Vzcy52YWx1ZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjY2Vzcy52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjY2Vzcy5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBVbmF2YWlsYWJsZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZzLWxpc3QtY29sdW1uPlxuICAgICAgICAgICAgICA8L2ZzLWxpc3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgICBAaWYgKCFkaXNhYmxlZCkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICNzdWJtaXRcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICB7eyBhY2xSb2xlLmlkID8gJ1NhdmUnIDogJ0NyZWF0ZScgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICB7eyBkaXNhYmxlZCA/ICdEb25lJyA6ICdDYW5jZWwnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgfVxuICA8L2ZzLWRpYWxvZz5cbjwvZm9ybT4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { FsAclEntriesComponent } from './components/acl-entries/acl-entries.component';
|
|
3
|
+
import { FsAclEntryComponent } from './components/acl-entry/acl-entry.component';
|
|
4
|
+
import { FsAclObjectRolesComponent } from './components/acl-object-roles/acl-object-roles.component';
|
|
5
|
+
import { FsAclPermissionPopoverComponent } from './components/acl-permission-popover/acl-permission-popover.component';
|
|
6
|
+
import { FsAclRolePopoverComponent } from './components/acl-role-popover/acl-role-popover.component';
|
|
7
|
+
import { FsAclRoleComponent } from './components/acl-role/acl-role.component';
|
|
8
|
+
import { FsAclRolesComponent } from './components/acl-roles/acl-roles.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class FsAppAclModule {
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsAppAclModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: FsAppAclModule, imports: [FsAclEntriesComponent,
|
|
13
|
+
FsAclEntryComponent,
|
|
14
|
+
FsAclObjectRolesComponent,
|
|
15
|
+
FsAclPermissionPopoverComponent,
|
|
16
|
+
FsAclRoleComponent,
|
|
17
|
+
FsAclRolePopoverComponent,
|
|
18
|
+
FsAclRolesComponent], exports: [FsAclEntriesComponent,
|
|
19
|
+
FsAclEntryComponent,
|
|
20
|
+
FsAclObjectRolesComponent,
|
|
21
|
+
FsAclPermissionPopoverComponent,
|
|
22
|
+
FsAclRoleComponent,
|
|
23
|
+
FsAclRolePopoverComponent,
|
|
24
|
+
FsAclRolesComponent] });
|
|
25
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsAppAclModule, imports: [FsAclEntriesComponent,
|
|
26
|
+
FsAclEntryComponent,
|
|
27
|
+
FsAclObjectRolesComponent,
|
|
28
|
+
FsAclPermissionPopoverComponent,
|
|
29
|
+
FsAclRoleComponent,
|
|
30
|
+
FsAclRolePopoverComponent,
|
|
31
|
+
FsAclRolesComponent] });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsAppAclModule, decorators: [{
|
|
34
|
+
type: NgModule,
|
|
35
|
+
args: [{
|
|
36
|
+
imports: [
|
|
37
|
+
FsAclEntriesComponent,
|
|
38
|
+
FsAclEntryComponent,
|
|
39
|
+
FsAclObjectRolesComponent,
|
|
40
|
+
FsAclPermissionPopoverComponent,
|
|
41
|
+
FsAclRoleComponent,
|
|
42
|
+
FsAclRolePopoverComponent,
|
|
43
|
+
FsAclRolesComponent,
|
|
44
|
+
],
|
|
45
|
+
exports: [
|
|
46
|
+
FsAclEntriesComponent,
|
|
47
|
+
FsAclEntryComponent,
|
|
48
|
+
FsAclObjectRolesComponent,
|
|
49
|
+
FsAclPermissionPopoverComponent,
|
|
50
|
+
FsAclRoleComponent,
|
|
51
|
+
FsAclRolePopoverComponent,
|
|
52
|
+
FsAclRolesComponent,
|
|
53
|
+
],
|
|
54
|
+
}]
|
|
55
|
+
}] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtYXBwLWFjbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2ZzLWFwcC1hY2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDdkgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDckcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBc0JqRixNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFsQnZCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLCtCQUErQjtZQUMvQixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLG1CQUFtQixhQUduQixxQkFBcUI7WUFDckIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6QiwrQkFBK0I7WUFDL0Isa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6QixtQkFBbUI7d0dBR1YsY0FBYyxZQWxCdkIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsK0JBQStCO1lBQy9CLGtCQUFrQjtZQUNsQix5QkFBeUI7WUFDekIsbUJBQW1COzsyRkFZVixjQUFjO2tCQXBCMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQixrQkFBa0I7d0JBQ2xCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzQWNsRW50cmllc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2wtZW50cmllcy9hY2wtZW50cmllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnNBY2xFbnRyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2wtZW50cnkvYWNsLWVudHJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0FjbE9iamVjdFJvbGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjbC1vYmplY3Qtcm9sZXMvYWNsLW9iamVjdC1yb2xlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRnNBY2xQZXJtaXNzaW9uUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY2wtcGVybWlzc2lvbi1wb3BvdmVyL2FjbC1wZXJtaXNzaW9uLXBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZzQWNsUm9sZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNsLXJvbGUtcG9wb3Zlci9hY2wtcm9sZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0FjbFJvbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNsLXJvbGUvYWNsLXJvbGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZzQWNsUm9sZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWNsLXJvbGVzL2FjbC1yb2xlcy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRnNBY2xFbnRyaWVzQ29tcG9uZW50LFxuICAgIEZzQWNsRW50cnlDb21wb25lbnQsXG4gICAgRnNBY2xPYmplY3RSb2xlc0NvbXBvbmVudCxcbiAgICBGc0FjbFBlcm1pc3Npb25Qb3BvdmVyQ29tcG9uZW50LFxuICAgIEZzQWNsUm9sZUNvbXBvbmVudCxcbiAgICBGc0FjbFJvbGVQb3BvdmVyQ29tcG9uZW50LFxuICAgIEZzQWNsUm9sZXNDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGc0FjbEVudHJpZXNDb21wb25lbnQsXG4gICAgRnNBY2xFbnRyeUNvbXBvbmVudCxcbiAgICBGc0FjbE9iamVjdFJvbGVzQ29tcG9uZW50LFxuICAgIEZzQWNsUGVybWlzc2lvblBvcG92ZXJDb21wb25lbnQsXG4gICAgRnNBY2xSb2xlQ29tcG9uZW50LFxuICAgIEZzQWNsUm9sZVBvcG92ZXJDb21wb25lbnQsXG4gICAgRnNBY2xSb2xlc0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNBcHBBY2xNb2R1bGUge31cbiJdfQ==
|
package/esm2022/public_api.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export { FsAclRolesComponent } from './app/components/acl-roles/acl-roles.component';
|
|
2
|
-
export { FsAclPermissionPopoverComponent } from './app/components/acl-permission-popover/acl-permission-popover.component';
|
|
3
|
-
export { FsAclRoleComponent } from './app/components/acl-role/acl-role.component';
|
|
4
1
|
export { FsAclEntriesComponent } from './app/components/acl-entries/acl-entries.component';
|
|
5
|
-
export { FsAclRolePopoverComponent } from './app/components/acl-role-popover/acl-role-popover.component';
|
|
6
|
-
export { FsAclObjectRolesComponent } from './app/components/acl-object-roles/acl-object-roles.component';
|
|
7
2
|
export { FsAclEntryComponent } from './app/components/acl-entry/acl-entry.component';
|
|
3
|
+
export { FsAclObjectRolesComponent } from './app/components/acl-object-roles/acl-object-roles.component';
|
|
4
|
+
export { FsAclPermissionPopoverComponent } from './app/components/acl-permission-popover/acl-permission-popover.component';
|
|
5
|
+
export { FsAclRolePopoverComponent } from './app/components/acl-role-popover/acl-role-popover.component';
|
|
6
|
+
export { FsAclRoleComponent } from './app/components/acl-role/acl-role.component';
|
|
7
|
+
export { FsAclRolesComponent } from './app/components/acl-roles/acl-roles.component';
|
|
8
8
|
export { FsAppAclService } from './app/services/app-acl.service';
|
|
9
9
|
export { FS_APP_ACL_CONFIG } from './app/injectors/app-acl-config.injector';
|
|
10
|
-
|
|
10
|
+
export { FsAppAclModule } from './app/fs-app-acl.module';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzNILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQWFqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IHsgRnNBY2xFbnRyaWVzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9hY2wtZW50cmllcy9hY2wtZW50cmllcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNBY2xFbnRyeUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYWNsLWVudHJ5L2FjbC1lbnRyeS5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNBY2xPYmplY3RSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYWNsLW9iamVjdC1yb2xlcy9hY2wtb2JqZWN0LXJvbGVzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc0FjbFBlcm1pc3Npb25Qb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9hY2wtcGVybWlzc2lvbi1wb3BvdmVyL2FjbC1wZXJtaXNzaW9uLXBvcG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzQWNsUm9sZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2FjbC1yb2xlLXBvcG92ZXIvYWNsLXJvbGUtcG9wb3Zlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNBY2xSb2xlQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9hY2wtcm9sZS9hY2wtcm9sZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNBY2xSb2xlc0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYWNsLXJvbGVzL2FjbC1yb2xlcy5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBGc0FwcEFjbFNlcnZpY2UgfSBmcm9tICcuL2FwcC9zZXJ2aWNlcy9hcHAtYWNsLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBBY2xFbnRyeSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvYWNsLWVudHJ5JztcbmV4cG9ydCB7IEFjbEVudHJ5RGF0YSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvYWNsLWVudHJ5LWRhdGEnO1xuZXhwb3J0IHsgQWNsTGV2ZWwgfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2FjbC1sZXZlbCc7XG5leHBvcnQgeyBBY2xPYmplY3QgfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2FjbC1vYmplY3QnO1xuZXhwb3J0IHsgQWNsT2JqZWN0RW50cnkgfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2FjbC1vYmplY3QtZW50cnknO1xuZXhwb3J0IHsgQWNsT2JqZWN0Um9sZSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvYWNsLW9iamVjdC1yb2xlJztcbmV4cG9ydCB7IEFjbFBlcm1pc3Npb24gfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2FjbC1wZXJtaXNzaW9uJztcbmV4cG9ydCB7IEFjbFJvbGUgfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2FjbC1yb2xlJztcbmV4cG9ydCB7IEFwcEFjbENvbmZpZyB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvYXBwLWFjbC1jb25maWcnO1xuZXhwb3J0IHsgTmFtZVZhbHVlIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9uYW1lLXZhbHVlJztcblxuZXhwb3J0IHsgRlNfQVBQX0FDTF9DT05GSUcgfSBmcm9tICcuL2FwcC9pbmplY3RvcnMvYXBwLWFjbC1jb25maWcuaW5qZWN0b3InO1xuXG5leHBvcnQgeyBGc0FwcEFjbE1vZHVsZSB9IGZyb20gJy4vYXBwL2ZzLWFwcC1hY2wubW9kdWxlJztcbiJdfQ==
|