ngx-register-base 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -2
- package/esm2022/lib/components/filters/index.mjs +1 -3
- package/esm2022/lib/components/filters/register-table-filter.component.mjs +3 -3
- package/fesm2022/ngx-register-base.mjs +399 -401
- package/fesm2022/ngx-register-base.mjs.map +1 -1
- package/lib/components/filters/index.d.ts +0 -2
- package/package.json +1 -1
- package/schematics/migration-collection.json +5 -0
- package/schematics/ng-update/replace-menu-state-token/index.d.ts +2 -0
- package/schematics/ng-update/replace-menu-state-token/index.js +29 -0
- package/schematics/ng-update/replace-menu-state-token/index.js.map +1 -0
- package/schematics/ng-update/update-prefix/index.js +4 -6
- package/schematics/ng-update/update-prefix/index.js.map +1 -1
- package/schematics/utils/utils.d.ts +15 -0
- package/schematics/utils/utils.js +25 -0
- package/schematics/utils/utils.js.map +1 -0
- package/esm2022/lib/components/filters/register-table-filter.consts.mjs +0 -3
- package/esm2022/lib/components/filters/register-table-filter.types.mjs +0 -2
- package/lib/components/filters/register-table-filter.consts.d.ts +0 -3
- package/lib/components/filters/register-table-filter.types.d.ts +0 -8
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Эта библиотека была создана с помощью [Angular CLI](https://github.com/angular/angular-cli) версия 18.2.0.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Подключение иконок
|
|
6
|
+
|
|
7
|
+
angular.json:
|
|
6
8
|
|
|
7
9
|
```json
|
|
8
10
|
{
|
|
@@ -17,10 +19,56 @@
|
|
|
17
19
|
}
|
|
18
20
|
```
|
|
19
21
|
|
|
20
|
-
##
|
|
22
|
+
## Подключение стилей
|
|
23
|
+
|
|
24
|
+
angular.json:
|
|
21
25
|
|
|
22
26
|
```json
|
|
23
27
|
{
|
|
24
28
|
"styles": [ ... , "ngx-register-base/styles/styles.less"]
|
|
25
29
|
}
|
|
26
30
|
```
|
|
31
|
+
|
|
32
|
+
## Сервисы
|
|
33
|
+
|
|
34
|
+
### Сервис для управления аутентификацией пользователя:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export enum EUserPermissions {}
|
|
38
|
+
|
|
39
|
+
@Injectable({
|
|
40
|
+
providedIn: 'root',
|
|
41
|
+
})
|
|
42
|
+
export class UserProfileService implements IUserProfileLoader {
|
|
43
|
+
// Имплементация методов IUserProfileLoader
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Подключение глобально в app.config.ts
|
|
47
|
+
{ provide: USER_PROFILE_LOADER, useExisting: UserProfileService }
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Сервис управления пользовательскими настройками:
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
@Injectable()
|
|
54
|
+
export class SmaTpUserSettingsStore implements IUserSettingsLoader {
|
|
55
|
+
// Имплементация методов IUserSettingsLoader
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Подключение по месту использования (компонент реестра)
|
|
59
|
+
{ provide: USER_SETTINGS_LOADER, useClass: SmaTpUserSettingsStore }
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Сервис управления состоянием навигационного меню:
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
@Injectable({
|
|
66
|
+
providedIn: 'root',
|
|
67
|
+
})
|
|
68
|
+
export class MenuStateService extends SprocAbstractMenuConstructorStore {
|
|
69
|
+
// Имплементация методов SprocAbstractMenuConstructorStore
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Подключение глобально в app.config.ts
|
|
73
|
+
{ provide: PAGE_MENU_STATE, useExisting: MenuStateService }
|
|
74
|
+
```
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
export { RegisterTableFilterComponent } from './register-table-filter.component';
|
|
2
2
|
export { RegisterTableFilterModule } from './register-table-filter.module';
|
|
3
|
-
|
|
4
|
-
export * from './register-table-filter.types';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBSZWdpc3RlclRhYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZWdpc3Rlci10YWJsZS1maWx0ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFJlZ2lzdGVyVGFibGVGaWx0ZXJNb2R1bGUgfSBmcm9tICcuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci10YWJsZS1maWx0ZXIuY29uc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXItdGFibGUtZmlsdGVyLnR5cGVzJztcbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFJlZ2lzdGVyVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUmVnaXN0ZXJUYWJsZUZpbHRlck1vZHVsZSB9IGZyb20gJy4vcmVnaXN0ZXItdGFibGUtZmlsdGVyLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
2
2
|
import { combineLatest, debounceTime, map, Subject, takeUntil, of } from 'rxjs';
|
|
3
3
|
import { EInputsAction, EInputsState, } from '../../types';
|
|
4
|
-
import {
|
|
4
|
+
import { PAGE_MENU_STATE } from '../page-menu';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../../core";
|
|
7
7
|
import * as i2 from "../../services";
|
|
@@ -28,7 +28,7 @@ export class RegisterTableFilterComponent {
|
|
|
28
28
|
this.filterListHeaderTitle = 'Фильтр';
|
|
29
29
|
this.footerApplyButtonLabel = 'Применить';
|
|
30
30
|
this.clickApplyButton = new EventEmitter();
|
|
31
|
-
this._menuState = inject(
|
|
31
|
+
this._menuState = inject(PAGE_MENU_STATE);
|
|
32
32
|
this._unsubscribe$ = new Subject();
|
|
33
33
|
this.FilterState = EInputsState;
|
|
34
34
|
this.filterState$ = this._filterStateService.state$.pipe(map((filterState) => filterState.state));
|
|
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
152
152
|
}], clickApplyButton: [{
|
|
153
153
|
type: Output
|
|
154
154
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItdGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9yZWdpc3Rlci10YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksR0FLYixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXBFLE1BQU0sT0FBTyw0QkFBNEI7SUFrQ3ZDLFlBQ21CLE1BQStCLEVBQy9CLG1CQUE4QyxFQUM5QyxrQkFBd0M7UUFGeEMsV0FBTSxHQUFOLE1BQU0sQ0FBeUI7UUFDL0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEyQjtRQUM5Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXNCO1FBaENsRCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0Isd0JBQW1CLEdB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QU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIG1hcCwgU3ViamVjdCwgdGFrZVVudGlsLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRUlucHV0c0FjdGlvbixcbiAgRUlucHV0c1N0YXRlLFxuICBHcWxGaWVsZHMsXG4gIElJbnB1dHNTdGF0ZSxcbiAgSVRwVXNlclNldHRpbmdzLFxuICBJVHBVc2VyU2V0dGluZ3NTZXR0aW5nc0ZpbHRlcixcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UsIEZpbHRlcnNTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSZWdpc3RlckJhc2VTdG9yZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgTUVOVV9TVEFURV9TRVJWSUNFIH0gZnJvbSAnLi9yZWdpc3Rlci10YWJsZS1maWx0ZXIuY29uc3RzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtcmVnaXN0ZXItdGFibGUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQubGVzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJUYWJsZUZpbHRlckNvbXBvbmVudDxUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKiog0JLRi9GB0L7RgtCwINCy0YHQtdCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LAg0YTQuNC70YzRgtGA0L7QsiAqL1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd1RvdGFsID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1BpbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFjY2VwdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFwcGx5QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqINCU0L7Qvy4g0L7RgtGB0YLRg9C/INC00LvRjyDQstGL0YfQuNGB0LvQtdC90LjRjyDQstGL0YHQvtGC0Ysg0L/QsNC90LXQu9C4ICjQsiDQv9C40LrRgdC10LvRj9GFKSAqL1xuICBASW5wdXQoKSBzdWJPZmZzZXRIZWlnaHQgPSAwO1xuICBASW5wdXQoKSBmaWx0ZXJMaXN0SGVhZGVyVGl0bGUgPSAn0KTQuNC70YzRgtGAJztcbiAgQElucHV0KCkgZm9vdGVyQXBwbHlCdXR0b25MYWJlbCA9ICfQn9GA0LjQvNC10L3QuNGC0YwnO1xuXG4gIEBPdXRwdXQoKSBjbGlja0FwcGx5QnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lbnVTdGF0ZSA9IGluamVjdChNRU5VX1NUQVRFX1NFUlZJQ0UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Vuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IEZpbHRlclN0YXRlID0gRUlucHV0c1N0YXRlO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU3RhdGUkID0gdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoZmlsdGVyU3RhdGUpID0+IGZpbHRlclN0YXRlLnN0YXRlKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNPcGVuJCA9IHRoaXMuZmlsdGVyU3RhdGUkLnBpcGUobWFwKChzdGF0ZSkgPT4gc3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5ISURERU4pKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuX3N0b3JlLnRvdGFsJCA/PyBvZigwKTtcblxuICBwcml2YXRlIF9jdXJyZW50RmlsdGVyczogSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXJbXSA9IFtdO1xuICBwcml2YXRlIF9wcmV2aW91c1N0YXRlOiBJSW5wdXRzU3RhdGUgPSB7XG4gICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5ISURERU4sXG4gICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLkNBTkNFTCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogUmVnaXN0ZXJCYXNlU3RvcmU8VHlwZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyU3RhdGVTZXJ2aWNlOiBGaWx0ZXJzU3RhdGVTZXJ2aWNlPFR5cGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckxpc3RTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZTxUeXBlPlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zdGF0ZSQsIHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zZWxlY3RlZFNhdmVkRmlsdGVyXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChbc3RhdGUsIHNlbGVjdGVkXSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gRUlucHV0c1N0YXRlLlNBVkVEX0xJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0QnV0dG9uRGlzYWJsZWQgPSAhc2VsZWN0ZWQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXRlLnN0YXRlID09PSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVIpIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3RhdGUuc3RhdGUgPT09IEVJbnB1dHNTdGF0ZS5PTl9TQVZFX0ZJTFRFUikge1xuICAgICAgICAgICAgdGhpcy5hY2NlcHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFjY2VwdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5pc1Bpbikge1xuICAgICAgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5GSUxURVJfTElTVCxcbiAgICAgICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VNZW51KGlzUGluOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzUGluKSB7XG4gICAgICB0aGlzLl9tZW51U3RhdGUuc2V0T3BlbihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQXBwbHlGaWx0ZXIoZ3FsRmlsdGVyOiBHcWxGaWVsZHMsIHNhdmVQYWdlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghc2F2ZVBhZ2UpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zZXRPZmZzZXQoMCk7XG4gICAgICB0aGlzLl9maWx0ZXJTdGF0ZVNlcnZpY2Uuc2V0UGFnZSgxKTtcbiAgICB9XG4gICAgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNldEdxbFZhbHVlcyhncWxGaWx0ZXIpO1xuICAgIHRoaXMuY2xpY2tBcHBseUJ1dHRvbi5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmliZU9uU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uU3RhdGUoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnN0YXRlJCwgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNlbGVjdGVkU2F2ZWRGaWx0ZXJdKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoW3N0YXRlLCBzZXR0aW5nc10pID0+IHtcbiAgICAgICAgdGhpcy5fc2V0RmlsdGVycyhzdGF0ZSwgc2V0dGluZ3MpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGaWx0ZXJzKHN0YXRlOiBJSW5wdXRzU3RhdGUsIHNldHRpbmdzOiBJVHBVc2VyU2V0dGluZ3MgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgeyBzdGF0ZTogY3VycmVudFN0YXRlLCBhY3Rpb246IGN1cnJlbnRBY3Rpb24gfSA9IHN0YXRlO1xuICAgIGNvbnN0IHsgc3RhdGU6IHByZXZpb3VzU3RhdGUgfSA9IHRoaXMuX3ByZXZpb3VzU3RhdGU7XG5cbiAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSkge1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVI6XG4gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVIpIHtcbiAgICAgICAgICB0aGlzLl9maWx0ZXJMaXN0U2VydmljZS5zZXRVc2VyU2V0dGluZ3NGaWx0ZXJWYWx1ZXMoc2V0dGluZ3M/LnNldHRpbmdzPy5maWx0ZXIgPz8gW10pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuU0FWRURfTElTVDpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByZXZpb3VzU3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5TQVZFRF9MSVNUICYmXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSAhPT0gRUlucHV0c1N0YXRlLk9OX0VESVRfRklMVEVSICYmXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSAhPT0gRUlucHV0c1N0YXRlLk9OX1NBVkVfRklMVEVSXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnRGaWx0ZXJzID0gdGhpcy5fZmlsdGVyTGlzdFNlcnZpY2UudXNlclNldHRpbmdzRmlsdGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuRklMVEVSX0xJU1Q6XG4gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSBFSW5wdXRzU3RhdGUuRklMVEVSX0xJU1QpIHtcbiAgICAgICAgICBpZiAoY3VycmVudEFjdGlvbiA9PT0gRUlucHV0c0FjdGlvbi5DQU5DRUwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlckxpc3RTZXJ2aWNlLnNldFVzZXJTZXR0aW5nc0ZpbHRlclZhbHVlcyh0aGlzLl9jdXJyZW50RmlsdGVycyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50QWN0aW9uID09PSBFSW5wdXRzQWN0aW9uLkFQUExZX1NBVkVEX0ZJTFRFUikge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZpbHRlcnMgPSBzZXR0aW5ncz8uc2V0dGluZ3M/LmZpbHRlciA/PyBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oJ9Ch0L7RgdGC0L7Rj9C90LjQtSDRhNC40LvRjNGC0YDQsCcsIGN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8c3Byb2Mtc2xpZGluZy1wYW5lbCBbaXNPcGVuXT1cImlzT3BlbiQgfCBhc3luY1wiIFtzdWJPZmZzZXRIZWlnaHRdPVwic3ViT2Zmc2V0SGVpZ2h0XCI+XG4gIDxzcHJvYy1maWx0ZXItbGlzdC1oZWFkZXJcbiAgICBoZWFkZXJcbiAgICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXG4gICAgW3Nob3dQaW5dPVwic2hvd1BpblwiXG4gICAgW3Nob3dDbG9zZUJ1dHRvbl09XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgIFt0b3RhbF09XCJ0b3RhbCQgfCBhc3luY1wiXG4gICAgW2FjY2VwdEJ1dHRvbkRpc2FibGVkXT1cImFjY2VwdEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbYXBwbHlCdXR0b25EaXNhYmxlZF09XCJhcHBseUJ1dHRvbkRpc2FibGVkXCJcbiAgICBbZmlsdGVyTGlzdEhlYWRlclRpdGxlXT1cImZpbHRlckxpc3RIZWFkZXJUaXRsZVwiXG4gICAgKHBpbm5lZENoYW5nZSk9XCJjbG9zZU1lbnUoJGV2ZW50KVwiXG4gICAgKGFwcGx5RmlsdGVyKT1cIm9uQXBwbHlGaWx0ZXIoJGV2ZW50KVwiXG4gID48L3Nwcm9jLWZpbHRlci1saXN0LWhlYWRlcj5cblxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWx0ZXJTdGF0ZSQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpbHRlclN0YXRlLkZJTFRFUl9MSVNUXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyc1RlbXBsYXRlXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJGaWx0ZXJTdGF0ZS5TQVZFRF9MSVNUXCI+XG4gICAgICA8c3Byb2MtZmlsdGVyLWxpc3Qtc2F2ZWQ+PC9zcHJvYy1maWx0ZXItbGlzdC1zYXZlZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIkZpbHRlclN0YXRlLk9OX0VESVRfRklMVEVSXCI+XG4gICAgICA8c3Byb2MtZmlsdGVyLWVkaXQ+PC9zcHJvYy1maWx0ZXItZWRpdD5cblxuICAgICAgPHNwcm9jLWRpdmlkZXI+PC9zcHJvYy1kaXZpZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlcnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiRmlsdGVyU3RhdGUuT05fU0FWRV9GSUxURVJcIj5cbiAgICAgIDxzcHJvYy1maWx0ZXItZWRpdD48L3Nwcm9jLWZpbHRlci1lZGl0PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNmaWx0ZXJzVGVtcGxhdGU+XG4gICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KSB7XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICB9IEBsb2FkaW5nIChtaW5pbXVtIDFzKSB7XG4gICAgICAgIDx0dWktbG9hZGVyIHNpemU9XCJtXCIgY2xhc3M9XCJsb2FkZXJcIj48L3R1aS1sb2FkZXI+XG4gICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgIDxzcGFuPi4uLjwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8c3Byb2MtZmlsdGVyLWxpc3QtZm9vdGVyXG4gICAgZm9vdGVyXG4gICAgW2FjY2VwdEJ1dHRvbkRpc2FibGVkXT1cImFjY2VwdEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbYXBwbHlCdXR0b25EaXNhYmxlZF09XCJhcHBseUJ1dHRvbkRpc2FibGVkXCJcbiAgICAoYXBwbHkpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICBbZm9vdGVyQXBwbHlCdXR0b25MYWJlbF09XCJmb290ZXJBcHBseUJ1dHRvbkxhYmVsXCJcbiAgPjwvc3Byb2MtZmlsdGVyLWxpc3QtZm9vdGVyPlxuPC9zcHJvYy1zbGlkaW5nLXBhbmVsPlxuIl19
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItdGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9yZWdpc3Rlci10YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksR0FLYixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7QUFRL0MsTUFBTSxPQUFPLDRCQUE0QjtJQWtDdkMsWUFDbUIsTUFBK0IsRUFDL0IsbUJBQThDLEVBQzlDLGtCQUF3QztRQUZ4QyxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUMvQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTJCO1FBQzlDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFoQ2xELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3Qix3QkFBbUIsR0FBRyxL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QWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIG1hcCwgU3ViamVjdCwgdGFrZVVudGlsLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRUlucHV0c0FjdGlvbixcbiAgRUlucHV0c1N0YXRlLFxuICBHcWxGaWVsZHMsXG4gIElJbnB1dHNTdGF0ZSxcbiAgSVRwVXNlclNldHRpbmdzLFxuICBJVHBVc2VyU2V0dGluZ3NTZXR0aW5nc0ZpbHRlcixcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UsIEZpbHRlcnNTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSZWdpc3RlckJhc2VTdG9yZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUEFHRV9NRU5VX1NUQVRFIH0gZnJvbSAnLi4vcGFnZS1tZW51JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtcmVnaXN0ZXItdGFibGUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZ2lzdGVyLXRhYmxlLWZpbHRlci5jb21wb25lbnQubGVzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmVnaXN0ZXJUYWJsZUZpbHRlckNvbXBvbmVudDxUeXBlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKiog0JLRi9GB0L7RgtCwINCy0YHQtdCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LAg0YTQuNC70YzRgtGA0L7QsiAqL1xuICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd1RvdGFsID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1BpbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGFjY2VwdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFwcGx5QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqINCU0L7Qvy4g0L7RgtGB0YLRg9C/INC00LvRjyDQstGL0YfQuNGB0LvQtdC90LjRjyDQstGL0YHQvtGC0Ysg0L/QsNC90LXQu9C4ICjQsiDQv9C40LrRgdC10LvRj9GFKSAqL1xuICBASW5wdXQoKSBzdWJPZmZzZXRIZWlnaHQgPSAwO1xuICBASW5wdXQoKSBmaWx0ZXJMaXN0SGVhZGVyVGl0bGUgPSAn0KTQuNC70YzRgtGAJztcbiAgQElucHV0KCkgZm9vdGVyQXBwbHlCdXR0b25MYWJlbCA9ICfQn9GA0LjQvNC10L3QuNGC0YwnO1xuXG4gIEBPdXRwdXQoKSBjbGlja0FwcGx5QnV0dG9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lbnVTdGF0ZSA9IGluamVjdChQQUdFX01FTlVfU1RBVEUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Vuc3Vic2NyaWJlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IEZpbHRlclN0YXRlID0gRUlucHV0c1N0YXRlO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU3RhdGUkID0gdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoZmlsdGVyU3RhdGUpID0+IGZpbHRlclN0YXRlLnN0YXRlKVxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNPcGVuJCA9IHRoaXMuZmlsdGVyU3RhdGUkLnBpcGUobWFwKChzdGF0ZSkgPT4gc3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5ISURERU4pKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuX3N0b3JlLnRvdGFsJCA/PyBvZigwKTtcblxuICBwcml2YXRlIF9jdXJyZW50RmlsdGVyczogSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXJbXSA9IFtdO1xuICBwcml2YXRlIF9wcmV2aW91c1N0YXRlOiBJSW5wdXRzU3RhdGUgPSB7XG4gICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5ISURERU4sXG4gICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLkNBTkNFTCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZTogUmVnaXN0ZXJCYXNlU3RvcmU8VHlwZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyU3RhdGVTZXJ2aWNlOiBGaWx0ZXJzU3RhdGVTZXJ2aWNlPFR5cGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckxpc3RTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZTxUeXBlPlxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zdGF0ZSQsIHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zZWxlY3RlZFNhdmVkRmlsdGVyXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChbc3RhdGUsIHNlbGVjdGVkXSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0ZS5zdGF0ZSA9PT0gRUlucHV0c1N0YXRlLlNBVkVEX0xJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0QnV0dG9uRGlzYWJsZWQgPSAhc2VsZWN0ZWQ7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHN0YXRlLnN0YXRlID09PSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVIpIHtcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoc3RhdGUuc3RhdGUgPT09IEVJbnB1dHNTdGF0ZS5PTl9TQVZFX0ZJTFRFUikge1xuICAgICAgICAgICAgdGhpcy5hY2NlcHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmFjY2VwdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5pc1Bpbikge1xuICAgICAgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNldFN0YXRlKHtcbiAgICAgICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5GSUxURVJfTElTVCxcbiAgICAgICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VNZW51KGlzUGluOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzUGluKSB7XG4gICAgICB0aGlzLl9tZW51U3RhdGUuc2V0T3BlbihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQXBwbHlGaWx0ZXIoZ3FsRmlsdGVyOiBHcWxGaWVsZHMsIHNhdmVQYWdlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghc2F2ZVBhZ2UpIHtcbiAgICAgIHRoaXMuX2ZpbHRlclN0YXRlU2VydmljZS5zZXRPZmZzZXQoMCk7XG4gICAgICB0aGlzLl9maWx0ZXJTdGF0ZVNlcnZpY2Uuc2V0UGFnZSgxKTtcbiAgICB9XG4gICAgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNldEdxbFZhbHVlcyhncWxGaWx0ZXIpO1xuICAgIHRoaXMuY2xpY2tBcHBseUJ1dHRvbi5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmliZU9uU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uU3RhdGUoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnN0YXRlJCwgdGhpcy5fZmlsdGVyU3RhdGVTZXJ2aWNlLnNlbGVjdGVkU2F2ZWRGaWx0ZXJdKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoW3N0YXRlLCBzZXR0aW5nc10pID0+IHtcbiAgICAgICAgdGhpcy5fc2V0RmlsdGVycyhzdGF0ZSwgc2V0dGluZ3MpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGaWx0ZXJzKHN0YXRlOiBJSW5wdXRzU3RhdGUsIHNldHRpbmdzOiBJVHBVc2VyU2V0dGluZ3MgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgeyBzdGF0ZTogY3VycmVudFN0YXRlLCBhY3Rpb246IGN1cnJlbnRBY3Rpb24gfSA9IHN0YXRlO1xuICAgIGNvbnN0IHsgc3RhdGU6IHByZXZpb3VzU3RhdGUgfSA9IHRoaXMuX3ByZXZpb3VzU3RhdGU7XG5cbiAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSkge1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVI6XG4gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSBFSW5wdXRzU3RhdGUuT05fRURJVF9GSUxURVIpIHtcbiAgICAgICAgICB0aGlzLl9maWx0ZXJMaXN0U2VydmljZS5zZXRVc2VyU2V0dGluZ3NGaWx0ZXJWYWx1ZXMoc2V0dGluZ3M/LnNldHRpbmdzPy5maWx0ZXIgPz8gW10pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuU0FWRURfTElTVDpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHByZXZpb3VzU3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5TQVZFRF9MSVNUICYmXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSAhPT0gRUlucHV0c1N0YXRlLk9OX0VESVRfRklMVEVSICYmXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSAhPT0gRUlucHV0c1N0YXRlLk9OX1NBVkVfRklMVEVSXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnRGaWx0ZXJzID0gdGhpcy5fZmlsdGVyTGlzdFNlcnZpY2UudXNlclNldHRpbmdzRmlsdGVyO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFSW5wdXRzU3RhdGUuRklMVEVSX0xJU1Q6XG4gICAgICAgIGlmIChwcmV2aW91c1N0YXRlICE9PSBFSW5wdXRzU3RhdGUuRklMVEVSX0xJU1QpIHtcbiAgICAgICAgICBpZiAoY3VycmVudEFjdGlvbiA9PT0gRUlucHV0c0FjdGlvbi5DQU5DRUwpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlckxpc3RTZXJ2aWNlLnNldFVzZXJTZXR0aW5nc0ZpbHRlclZhbHVlcyh0aGlzLl9jdXJyZW50RmlsdGVycyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50QWN0aW9uID09PSBFSW5wdXRzQWN0aW9uLkFQUExZX1NBVkVEX0ZJTFRFUikge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZpbHRlcnMgPSBzZXR0aW5ncz8uc2V0dGluZ3M/LmZpbHRlciA/PyBbXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oJ9Ch0L7RgdGC0L7Rj9C90LjQtSDRhNC40LvRjNGC0YDQsCcsIGN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8c3Byb2Mtc2xpZGluZy1wYW5lbCBbaXNPcGVuXT1cImlzT3BlbiQgfCBhc3luY1wiIFtzdWJPZmZzZXRIZWlnaHRdPVwic3ViT2Zmc2V0SGVpZ2h0XCI+XG4gIDxzcHJvYy1maWx0ZXItbGlzdC1oZWFkZXJcbiAgICBoZWFkZXJcbiAgICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXG4gICAgW3Nob3dQaW5dPVwic2hvd1BpblwiXG4gICAgW3Nob3dDbG9zZUJ1dHRvbl09XCJzaG93Q2xvc2VCdXR0b25cIlxuICAgIFt0b3RhbF09XCJ0b3RhbCQgfCBhc3luY1wiXG4gICAgW2FjY2VwdEJ1dHRvbkRpc2FibGVkXT1cImFjY2VwdEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbYXBwbHlCdXR0b25EaXNhYmxlZF09XCJhcHBseUJ1dHRvbkRpc2FibGVkXCJcbiAgICBbZmlsdGVyTGlzdEhlYWRlclRpdGxlXT1cImZpbHRlckxpc3RIZWFkZXJUaXRsZVwiXG4gICAgKHBpbm5lZENoYW5nZSk9XCJjbG9zZU1lbnUoJGV2ZW50KVwiXG4gICAgKGFwcGx5RmlsdGVyKT1cIm9uQXBwbHlGaWx0ZXIoJGV2ZW50KVwiXG4gID48L3Nwcm9jLWZpbHRlci1saXN0LWhlYWRlcj5cblxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWx0ZXJTdGF0ZSQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkZpbHRlclN0YXRlLkZJTFRFUl9MSVNUXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyc1RlbXBsYXRlXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCJGaWx0ZXJTdGF0ZS5TQVZFRF9MSVNUXCI+XG4gICAgICA8c3Byb2MtZmlsdGVyLWxpc3Qtc2F2ZWQ+PC9zcHJvYy1maWx0ZXItbGlzdC1zYXZlZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIkZpbHRlclN0YXRlLk9OX0VESVRfRklMVEVSXCI+XG4gICAgICA8c3Byb2MtZmlsdGVyLWVkaXQ+PC9zcHJvYy1maWx0ZXItZWRpdD5cblxuICAgICAgPHNwcm9jLWRpdmlkZXI+PC9zcHJvYy1kaXZpZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlcnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiRmlsdGVyU3RhdGUuT05fU0FWRV9GSUxURVJcIj5cbiAgICAgIDxzcHJvYy1maWx0ZXItZWRpdD48L3Nwcm9jLWZpbHRlci1lZGl0PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNmaWx0ZXJzVGVtcGxhdGU+XG4gICAgICBAZGVmZXIgKG9uIHZpZXdwb3J0KSB7XG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICB9IEBsb2FkaW5nIChtaW5pbXVtIDFzKSB7XG4gICAgICAgIDx0dWktbG9hZGVyIHNpemU9XCJtXCIgY2xhc3M9XCJsb2FkZXJcIj48L3R1aS1sb2FkZXI+XG4gICAgICB9IEBwbGFjZWhvbGRlciB7XG4gICAgICAgIDxzcGFuPi4uLjwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8c3Byb2MtZmlsdGVyLWxpc3QtZm9vdGVyXG4gICAgZm9vdGVyXG4gICAgW2FjY2VwdEJ1dHRvbkRpc2FibGVkXT1cImFjY2VwdEJ1dHRvbkRpc2FibGVkXCJcbiAgICBbYXBwbHlCdXR0b25EaXNhYmxlZF09XCJhcHBseUJ1dHRvbkRpc2FibGVkXCJcbiAgICAoYXBwbHkpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcbiAgICBbZm9vdGVyQXBwbHlCdXR0b25MYWJlbF09XCJmb290ZXJBcHBseUJ1dHRvbkxhYmVsXCJcbiAgPjwvc3Byb2MtZmlsdGVyLWxpc3QtZm9vdGVyPlxuPC9zcHJvYy1zbGlkaW5nLXBhbmVsPlxuIl19
|