@c8y/ngx-components 1018.503.37 → 1018.503.41
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/assets-navigator/asset-node.service.d.ts +5 -2
- package/esm2020/assets-navigator/asset-node.mjs +2 -2
- package/esm2020/assets-navigator/asset-node.service.mjs +14 -5
- package/esm2020/core/docs/docs.service.mjs +1 -11
- package/esm2020/device-grid/columns/registration-date.device-grid-column.mjs +4 -10
- package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +34 -13
- package/esm2020/repository/shared/repository.service.mjs +4 -4
- package/esm2020/services/services-device-tab/columns/last-updated-date.device-grid-column.mjs +4 -10
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs +16 -9
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +26 -13
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +26 -13
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2015/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-services.mjs +3 -9
- package/fesm2015/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +0 -9
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs +16 -9
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +33 -13
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +33 -13
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2020/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-services.mjs +3 -9
- package/fesm2020/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +0 -9
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import { AssetNavigatorConfig } from './asset-node-config.model';
|
|
|
6
6
|
import { DynamicGroupNode } from './dynamic-group-node';
|
|
7
7
|
import { DeviceGroupService } from './group.service';
|
|
8
8
|
import { ActivatedRouteSnapshot, Router } from '@angular/router';
|
|
9
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export interface AssetNodeMo {
|
|
11
12
|
id: string;
|
|
@@ -23,12 +24,13 @@ export declare class AssetNodeService {
|
|
|
23
24
|
moduleConfig: AssetNavigatorConfig;
|
|
24
25
|
protected deviceGroupService: DeviceGroupService;
|
|
25
26
|
protected router: Router;
|
|
27
|
+
protected translateService: TranslateService;
|
|
26
28
|
rootNode: AssetNode;
|
|
27
29
|
firstUrl: boolean;
|
|
28
30
|
draggedData: AssetNode;
|
|
29
31
|
queriesUtil: QueriesUtil;
|
|
30
32
|
protected PAGE_SIZE: number;
|
|
31
|
-
constructor(inventory: InventoryService, apiService: ApiService, modal: ModalService, alert: AlertService, breadcrumbService: BreadcrumbService, user: UserService, appState: AppStateService, optionsService: OptionsService, moduleConfig: AssetNavigatorConfig, deviceGroupService: DeviceGroupService, router: Router);
|
|
33
|
+
constructor(inventory: InventoryService, apiService: ApiService, modal: ModalService, alert: AlertService, breadcrumbService: BreadcrumbService, user: UserService, appState: AppStateService, optionsService: OptionsService, moduleConfig: AssetNavigatorConfig, deviceGroupService: DeviceGroupService, router: Router, translateService: TranslateService);
|
|
32
34
|
/**
|
|
33
35
|
* Expands the navigator nodes on first navigation.
|
|
34
36
|
* @param snapshot The current navigation snapshot.
|
|
@@ -40,6 +42,7 @@ export declare class AssetNodeService {
|
|
|
40
42
|
* @param ids The ids that should be expanded.
|
|
41
43
|
*/
|
|
42
44
|
expandAll(node: AssetNode, ids: string[]): void;
|
|
45
|
+
label(mo: IManagedObject): string;
|
|
43
46
|
icon(mo: IManagedObject, open?: boolean): Promise<string>;
|
|
44
47
|
isGroup(mo: IManagedObject): boolean;
|
|
45
48
|
isDynamicGroup(mo: IManagedObject): boolean;
|
|
@@ -108,6 +111,6 @@ export declare class AssetNodeService {
|
|
|
108
111
|
preferBreadcrumb(parents: NavigatorNode[]): void;
|
|
109
112
|
protected createFilter(extraParams?: any): any;
|
|
110
113
|
private buildCombinedQuery;
|
|
111
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AssetNodeService, [null, null, null, null, null, null, null, null, { optional: true; }, null, null]>;
|
|
114
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetNodeService, [null, null, null, null, null, null, null, null, { optional: true; }, null, null, null]>;
|
|
112
115
|
static ɵprov: i0.ɵɵInjectableDeclaration<AssetNodeService>;
|
|
113
116
|
}
|
|
@@ -75,7 +75,7 @@ export class AssetNode extends NavigatorNode {
|
|
|
75
75
|
this.translateLabel = true;
|
|
76
76
|
}
|
|
77
77
|
else {
|
|
78
|
-
this.label = this.mo
|
|
78
|
+
this.label = this.service.label(this.mo);
|
|
79
79
|
this.translateLabel = false;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -320,4 +320,4 @@ export class AssetNode extends NavigatorNode {
|
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
AssetNode.NAME = 'AssetNode';
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Fzc2V0cy1uYXZpZ2F0b3IvYXNzZXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsYUFBYSxFQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBYTFDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLDZCQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNYLENBQUM7SUFDSixDQUFD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QU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO29CQUNsQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNwQixJQUFJLEVBQUUsYUFBYSxDQUFDLFlBQVk7aUJBQ2pDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDMUU7WUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7QUE5V00sY0FBSSxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElJZGVudGlmaWVkLCBQYWdpbmcgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBDbGlja09wdGlvbnMsXG4gIERldmljZVN0YXR1c0NvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgR3JvdXBGcmFnbWVudCxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGFcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBBc3NldE5vZGVNbywgQXNzZXROb2RlU2VydmljZSB9IGZyb20gJy4vYXNzZXQtbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRNb3JlTm9kZSB9IGZyb20gJy4vbG9hZC1tb3JlLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgQXNzZXROb2RlIGV4dGVuZHMgTmF2aWdhdG9yTm9kZSB7XG4gIHN0YXRpYyBOQU1FID0gJ0Fzc2V0Tm9kZSc7XG4gIHJvb3Q6IGJvb2xlYW47XG4gIG1vOiBhbnk7XG4gIGhpZGVEZXZpY2VzID0gZmFsc2U7XG4gIGZpbHRlclF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHNob3dDaGlsZERldmljZXMgPSBmYWxzZTtcblxuICAvKipcbiAgICogQXNzZXQgbm9kZSBjaGlsZHJlbiAoc3ViZW50cmllcykuXG4gICAqL1xuICBjaGlsZHJlbjogQXNzZXROb2RlW10gPSBbXTtcblxuICBnZXQgaGFzQ2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMucm9vdCB8fCB0aGlzLnNlcnZpY2UuaXNHcm91cCh0aGlzLm1vKTtcbiAgfVxuXG4gIGdldCBpc0RldmljZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLm1vLmM4eV9Jc0RldmljZTtcbiAgfVxuXG4gIGdldCBpc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0RldmljZSB8fCB0aGlzLmlzTmVpdGhlckRldmljZU9yR3JvdXA7XG4gIH1cblxuICBnZXQgaXNOZWl0aGVyRGV2aWNlT3JHcm91cCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuc2VydmljZS5pc0dyb3VwKHRoaXMubW8pICYmXG4gICAgICAhdGhpcy5zZXJ2aWNlLmlzRHluYW1pY0dyb3VwKHRoaXMubW8pICYmXG4gICAgICAhdGhpcy5pc0RldmljZSAmJlxuICAgICAgIXRoaXMucm9vdFxuICAgICk7XG4gIH1cblxuICBldmVudHM6IFN1YmplY3Q8QWN0aW9uPjtcbiAgbm9kZXNGZXRjaGVkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuICBwcm90ZWN0ZWQgcGFnaW5nOiBQYWdpbmc8QXNzZXROb2RlTW8+O1xuICBwcm90ZWN0ZWQgbG9hZE1vcmVOb2RlOiBMb2FkTW9yZU5vZGU7XG4gIHByaXZhdGUgb25VcGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogQXNzZXROb2RlU2VydmljZSwgcHJvdGVjdGVkIGNvbmZpZzogTmF2aWdhdG9yTm9kZURhdGEgPSB7fSkge1xuICAgIHN1cGVyKGNvbmZpZyk7XG5cbiAgICB0aGlzLnJvb3QgPSB0aGlzLnJvb3QgfHwgZmFsc2U7XG4gICAgdGhpcy5oaWRlRGV2aWNlcyA9IGNvbmZpZy5oaWRlRGV2aWNlcyA/PyB0aGlzLmhpZGVEZXZpY2VzO1xuICAgIHRoaXMubW8gPSB0aGlzLm1vIHx8IHt9O1xuICAgIHRoaXMucGF0aCA9IHRoaXMuZ2V0UGF0aCgpO1xuICAgIHRoaXMuZHJhZ2dhYmxlID0gIXRoaXMuc2VydmljZT8ubW9kdWxlQ29uZmlnPy5kaXNhYmxlRHJhZ0FuZERyb3AgJiYgIXRoaXMucm9vdDtcbiAgICB0aGlzLmRyb3BwYWJsZSA9XG4gICAgICAhdGhpcy5zZXJ2aWNlPy5tb2R1bGVDb25maWc/LmRpc2FibGVEcmFnQW5kRHJvcCAmJiAhdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZTtcbiAgICB0aGlzLnJvdXRlckxpbmtFeGFjdCA9IHRoaXMucm9vdDtcbiAgICB0aGlzLnVwZGF0ZUljb24oZmFsc2UpO1xuICAgIHRoaXMub25VcGRhdGVTdWJzY3JpcHRpb24gPSB0aGlzLnNlcnZpY2VcbiAgICAgIC5vblVwZGF0ZSh0aGlzKVxuICAgICAgLnN1YnNjcmliZSgoeyBkYXRhLCBtZXRob2QgfSkgPT4gdGhpcy5yZWZyZXNoKGRhdGEsIG1ldGhvZCkpO1xuICAgIHRoaXMuc2V0TGFiZWwoKTtcbiAgICB0aGlzLmljb25Db21wb25lbnQgPSB0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlID8gRGV2aWNlU3RhdHVzQ29tcG9uZW50IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0UGF0aCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcucGF0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucm9vdFxuICAgICAgPyAnZ3JvdXAnXG4gICAgICA6IHRoaXMuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2VcbiAgICAgID8gYGRldmljZS8ke3RoaXMubW8uaWR9YFxuICAgICAgOiBgZ3JvdXAvJHt0aGlzLm1vLmlkfWA7XG4gIH1cblxuICByZWZyZXNoKG1vOiBhbnkgPSB7fSwgbWV0aG9kID0gJ0dFVCcpIHtcbiAgICBpZiAobW8/LmlkID09PSB0aGlzLm1vLmlkKSB7XG4gICAgICB0aGlzLm1vID0gbW87XG4gICAgICB0aGlzLnNldExhYmVsKCk7XG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09ICdERUxFVEUnKSB7XG4gICAgICB0aGlzLnBhcmVudHMuZm9yRWFjaCgobm9kZTogQXNzZXROb2RlKSA9PiBub2RlLnJlZnJlc2goKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmV2ZW50cykge1xuICAgICAgdGhpcy5ldmVudHMubmV4dChBY3Rpb24uUkVGUkVTSCk7XG4gICAgfVxuICB9XG5cbiAgc2V0TGFiZWwoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmxhYmVsIHx8IHRoaXMucm9vdCkge1xuICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuY29uZmlnLmxhYmVsIHx8IGdldHRleHQoJ0dyb3VwcycpO1xuICAgICAgdGhpcy50cmFuc2xhdGVMYWJlbCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWwgPSB0aGlzLm1vLm5hbWUgfHwgJy0tJztcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbGljayhvcHRpb25zOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlICYmICF0aGlzLnNob3dDaGlsZERldmljZXMpIHtcbiAgICAgIHRoaXMuc2VydmljZS5wcmVmZXJCcmVhZGNydW1iKHRoaXMucGFyZW50cyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaG9va0V2ZW50cygpO1xuICAgIHRoaXMudXBkYXRlSWNvbihvcHRpb25zLm9wZW4pO1xuICAgIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hbmFnZWRPYmplY3QobW8pIHtcbiAgICBjb25zdCB7IGNoaWxkQWRkaXRpb25zIH0gPSB0aGlzLm1vO1xuICAgIGlmICghdGhpcy5pc0NoaWxkQWRkaXRpb24oY2hpbGRBZGRpdGlvbnMsIG1vKSkge1xuICAgICAgdGhpcy5hZGQodGhpcy5zZXJ2aWNlLmNyZWF0ZUNoaWxkTm9kZShtbywgeyBoaWRlRGV2aWNlczogdGhpcy5oaWRlRGV2aWNlcyB9KSk7XG4gICAgfVxuICB9XG5cbiAgaXNDaGlsZEFkZGl0aW9uKGNoaWxkQWRkaXRpb25zLCBtbykge1xuICAgIHJldHVybiAoXG4gICAgICBjaGlsZEFkZGl0aW9ucyAmJiBjaGlsZEFkZGl0aW9ucy5yZWZlcmVuY2VzLnNvbWUoKHsgbWFuYWdlZE9iamVjdDogeyBpZCB9IH0pID0+IGlkID09PSBtby5pZClcbiAgICApO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY2FuRHJvcCgpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuICAgIGlmIChub2RlVG9Nb3ZlKSB7XG4gICAgICBjb25zdCBzaG91bGRHZXRDaGlsZE9mSXRzT3duID0gISFub2RlVG9Nb3ZlLmZpbmQoY2hpbGQgPT4gY2hpbGQgPT09IHRoaXMpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5Q2hpbGQgPSAodGhpcy5jaGlsZHJlbiBhcyBBc3NldE5vZGVbXSkuc29tZShcbiAgICAgICAgY2hpbGQgPT4gY2hpbGQubW8gJiYgY2hpbGQubW8uaWQgPT09IG5vZGVUb01vdmUubW8uaWRcbiAgICAgICk7XG4gICAgICBjb25zdCBwcmV2ZW50TW92ZSA9IHRoaXMgPT09IG5vZGVUb01vdmUgfHwgc2hvdWxkR2V0Q2hpbGRPZkl0c093biB8fCBpc0FscmVhZHlDaGlsZDtcbiAgICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZSAmJiAhcHJldmVudE1vdmUgJiYgdGhpcy5zZXJ2aWNlLmNhbkRyb3BOb2RlKHRoaXMucm9vdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZTtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICBzdXBlci5kcmFnU3RhcnQoJGV2ZW50KTtcbiAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB0aGlzO1xuICAgIHRoaXMuc2VydmljZS5yb290Tm9kZS5kcm9wcGFibGUgPSAhdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZTtcbiAgfVxuXG4gIGRyYWdFbmQoJGV2ZW50KSB7XG4gICAgc3VwZXIuZHJhZ0VuZCgkZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgZHJvcCgkZXZlbnQpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuXG4gICAgLy8gVE9ETyByZW1vdmUgd2hlbiBhc3NldCB0eXBlIG5vZGUgY2FuIGJlIHVzZWQgb24gdGhlIHJvb3QgbGV2ZWwuXG4gICAgaWYgKHRoaXMucm9vdCAmJiB0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIHRoaXMuc2VydmljZS5hbGVydC5pbmZvKGdldHRleHQoJ0Fzc2V0IHR5cGUgbm9kZSBjYW5ub3QgYmVjb21lIHJvb3Qgbm9kZS4nKSk7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmRyb3AoJGV2ZW50KTtcbiAgICBpZiAodGhpcy5jYW5Ecm9wKSB7XG4gICAgICBhd2FpdCB0aGlzLm1vdmVOb2RlKG5vZGVUb01vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGhvb2tFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLmV2ZW50cykge1xuICAgICAgdGhpcy5ldmVudHMgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gQXNzZXROb2RlLk5BTUU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IG5vZGUgaGFzIGNoaWxkIGRldmljZXMuXG4gICAqL1xuICBoYXNDaGlsZERldmljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW8gJiYgdGhpcy5tby5jOHlfSXNEZXZpY2UgJiYgdGhpcy5tby5jaGlsZERldmljZXMucmVmZXJlbmNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3RcbiAgICAgID8gdGhpcy5zZXJ2aWNlLmdldFJvb3ROb2RlcygpXG4gICAgICA6IHRoaXMuc2VydmljZS5nZXRHcm91cEl0ZW1zKFxuICAgICAgICAgIHRoaXMubW8uaWQsXG4gICAgICAgICAgdGhpcy5oaWRlRGV2aWNlc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGAkZmlsdGVyPShoYXMoJHtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlfSkpJG9yZGVyYnk9bmFtZWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fVxuICAgICAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZUljb24ob3Blbikge1xuICAgIHRoaXMuaWNvbiA9IGF3YWl0IHRoaXMuc2VydmljZS5pY29uKFxuICAgICAgLy8gaWYgaXQncyByb290IHdlIGFyZSBnb2luZyB0byBwYXNzIGEgZmFrZSBtbyB0byBnZXQgdGhlIHNhbWUgaWNvbiBhcyBncm91cHNcbiAgICAgIHRoaXMucm9vdCA/IHsgYzh5X0lzRGV2aWNlR3JvdXA6IHt9IH0gOiB0aGlzLm1vLFxuICAgICAgb3BlblxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY291bnRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlRXZlbnQoZXZ0OiBBY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuY291bnRDaGlsZHJlbigpICYmIGV2dCA9PT0gQWN0aW9uLkZFVENIKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5hZGROb2Rlcyhhd2FpdCB0aGlzLmZldGNoKCkpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09IEFjdGlvbi5ORVhUKSB7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkTm9kZXMoYXdhaXQgdGhpcy5wYWdpbmcubmV4dCgpKTtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGV2dCA9PT0gQWN0aW9uLlJFRlJFU0gpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYWdpbmcgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW1wdHkoKTtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkTm9kZXMocmVzKSB7XG4gICAgaWYgKHJlcy5wYWdpbmcpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UsIG5leHRQYWdlLCBwYWdlU2l6ZSB9ID0gKHRoaXMucGFnaW5nID0gcmVzLnBhZ2luZyk7XG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IDEpIHtcbiAgICAgICAgdGhpcy5lbXB0eSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbXNDb3VudCA9IHJlcy5kYXRhLmxlbmd0aDtcbiAgICAgIGNvbnN0IG1vcmVJdGVtc0F2YWlsYWJsZSA9ICEhbmV4dFBhZ2UgJiYgaXRlbXNDb3VudCA9PT0gcGFnZVNpemU7XG4gICAgICB0aGlzLnRvZ2dsZUxvYWRNb3JlKG1vcmVJdGVtc0F2YWlsYWJsZSk7XG4gICAgfVxuICAgIChyZXMuZGF0YSB8fCByZXMpLm1hcChtbyA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgICB9KTtcbiAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5MT0FESU5HX0RPTkUpO1xuICAgIHRoaXMubm9kZXNGZXRjaGVkLm5leHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVMb2FkTW9yZShzaG93OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRNb3JlTm9kZSAmJiBzaG93KSB7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZSA9IG5ldyBMb2FkTW9yZU5vZGUoKTtcbiAgICAgIHRoaXMuYWRkKHRoaXMubG9hZE1vcmVOb2RlKTtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmNsaWNrID0gZGVib3VuY2UoKCkgPT4gdGhpcy5ldmVudHMubmV4dChBY3Rpb24uTkVYVCksIDMwMCwge1xuICAgICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgICB0cmFpbGluZzogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxvYWRNb3JlTm9kZSkge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUuaGlkZGVuID0gIXNob3c7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlTm9kZShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXNDb3B5ID0gYXdhaXQgdGhpcy5zaG93RHJvcENvbmZpcm0obm9kZVRvTW92ZSk7XG4gICAgICBhd2FpdCB0aGlzLnZlcmlmeU5vZGVBY2Nlc3Mobm9kZVRvTW92ZSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZE1vdmVkTm9kZShub2RlVG9Nb3ZlKTtcbiAgICAgIGlmICghaXNDb3B5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVtb3ZlTW92ZWROb2RlKG5vZGVUb01vdmUpO1xuICAgICAgfVxuICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5kcmFnZ2VkSG92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VydmljZS5kcmFnZ2VkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNob3dEcm9wQ29uZmlybShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICB0aGlzLmNvbmZpcm0udGl0bGUgPSBnZXR0ZXh0KCdNb3ZlJyk7XG4gICAgdGhpcy5jb25maXJtLm1lc3NhZ2UgPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBtb3ZlIHRoZSBncm91cD8nKTtcbiAgICBjb25zdCBidXR0b25zOiBhbnkgPSBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDYW5jZWwnKSxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBQcm9taXNlLnJlamVjdCgpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTW92ZScpLFxuICAgICAgICBzdGF0dXM6ICdkZWZhdWx0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZmFsc2UpXG4gICAgICB9XG4gICAgXTtcbiAgICBpZiAobm9kZVRvTW92ZS5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZSkge1xuICAgICAgdGhpcy5jb25maXJtLnRpdGxlID0gZ2V0dGV4dCgnTW92ZSBvciBhZGQnKTtcbiAgICAgIHRoaXMuY29uZmlybS5tZXNzYWdlID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gbW92ZSBvciBhZGQgdGhlIGRldmljZT8nKTtcbiAgICAgIGJ1dHRvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBZGQnKSxcbiAgICAgICAgc3RhdHVzOiAncHJpbWFyeScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlybS5zaG93KGJ1dHRvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2ZXJpZnlOb2RlQWNjZXNzKG5vZGVUb01vdmU6IEFzc2V0Tm9kZSkge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7IGlkOiBub2RlVG9Nb3ZlLm1vLmlkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhZGRNb3ZlZE5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgbGV0IG1vOiBJSWRlbnRpZmllZDtcblxuICAgIGlmICh0aGlzLnJvb3QgJiYgIXRoaXMuaXNBc3NldChub2RlVG9Nb3ZlKSkge1xuICAgICAgbW8gPSAoXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkudXBkYXRlKHtcbiAgICAgICAgICBpZDogbm9kZVRvTW92ZS5tby5pZCxcbiAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwVHlwZVxuICAgICAgICB9KVxuICAgICAgKS5kYXRhO1xuXG4gICAgICB0aGlzLmFkZE1hbmFnZWRPYmplY3QobW8pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vID0gKGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkuY2hpbGRBc3NldHNBZGQobm9kZVRvTW92ZS5tbywgdGhpcy5tbykpLmRhdGE7XG4gICAgdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBc3NldChub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICAvLyBUT0RPIHVzZSBpc0Fzc2V0IGNoZWNrIHdoZW4gaHR0cHM6Ly9naXRodWIuc29mdHdhcmVhZy5jb20vSU9UQS9jdW11bG9jaXR5LXVpL3B1bGwvNjkwIGlzIG1lcmdlZC5cbiAgICAvLyBEbyBub3Qgb3ZlcnJpZGUgYXNzZXQgdHlwZSFcbiAgICByZXR1cm4gbm9kZVRvTW92ZS5tbz8uYzh5X0lzQXNzZXQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbW92ZU1vdmVkTm9kZShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICBmb3IgKGNvbnN0IHBhcmVudCBvZiBub2RlVG9Nb3ZlLnBhcmVudHMgYXMgQXNzZXROb2RlW10pIHtcbiAgICAgIGlmIChwYXJlbnQubW8gJiYgcGFyZW50Lm1vLnR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZSkge1xuICAgICAgICBicmVhazsgLy8gc21hcnQgZ3JvdXBzIGRvbid0IG5lZWQgdG8gYmUgY2hhbmdlZFxuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50LnJvb3QgJiYgIXRoaXMuaXNBc3NldChub2RlVG9Nb3ZlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IG5vZGVUb01vdmUubW8uaWQsXG4gICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5zdWJHcm91cFR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghcGFyZW50LnJvb3QpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmludmVudG9yeS5jaGlsZEFzc2V0c1JlbW92ZShub2RlVG9Nb3ZlLm1vLCBwYXJlbnQubW8pO1xuICAgICAgfVxuICAgICAgcGFyZW50LnJlbW92ZShub2RlVG9Nb3ZlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Fzc2V0cy1uYXZpZ2F0b3IvYXNzZXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsYUFBYSxFQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBYTFDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLDZCQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNYLENBQUM7SUFDSixDQUFD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QyxFQUFFO2dCQUM1QyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztvQkFDbEMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxZQUFZO2lCQUNqQyxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUNoQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzFFO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7O0FBalhNLGNBQUksR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSWRlbnRpZmllZCwgUGFnaW5nIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ2xpY2tPcHRpb25zLFxuICBEZXZpY2VTdGF0dXNDb21wb25lbnQsXG4gIGdldHRleHQsXG4gIEdyb3VwRnJhZ21lbnQsXG4gIE5hdmlnYXRvck5vZGUsXG4gIE5hdmlnYXRvck5vZGVEYXRhXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQXNzZXROb2RlTW8sIEFzc2V0Tm9kZVNlcnZpY2UgfSBmcm9tICcuL2Fzc2V0LW5vZGUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkTW9yZU5vZGUgfSBmcm9tICcuL2xvYWQtbW9yZS1ub2RlJztcblxuZXhwb3J0IGNsYXNzIEFzc2V0Tm9kZSBleHRlbmRzIE5hdmlnYXRvck5vZGUge1xuICBzdGF0aWMgTkFNRSA9ICdBc3NldE5vZGUnO1xuICByb290OiBib29sZWFuO1xuICBtbzogYW55O1xuICBoaWRlRGV2aWNlcyA9IGZhbHNlO1xuICBmaWx0ZXJRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBzaG93Q2hpbGREZXZpY2VzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFzc2V0IG5vZGUgY2hpbGRyZW4gKHN1YmVudHJpZXMpLlxuICAgKi9cbiAgY2hpbGRyZW46IEFzc2V0Tm9kZVtdID0gW107XG5cbiAgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3QgfHwgdGhpcy5zZXJ2aWNlLmlzR3JvdXAodGhpcy5tbyk7XG4gIH1cblxuICBnZXQgaXNEZXZpY2UoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5tby5jOHlfSXNEZXZpY2U7XG4gIH1cblxuICBnZXQgaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZXZpY2UgfHwgdGhpcy5pc05laXRoZXJEZXZpY2VPckdyb3VwO1xuICB9XG5cbiAgZ2V0IGlzTmVpdGhlckRldmljZU9yR3JvdXAoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICF0aGlzLnNlcnZpY2UuaXNHcm91cCh0aGlzLm1vKSAmJlxuICAgICAgIXRoaXMuc2VydmljZS5pc0R5bmFtaWNHcm91cCh0aGlzLm1vKSAmJlxuICAgICAgIXRoaXMuaXNEZXZpY2UgJiZcbiAgICAgICF0aGlzLnJvb3RcbiAgICApO1xuICB9XG5cbiAgZXZlbnRzOiBTdWJqZWN0PEFjdGlvbj47XG4gIG5vZGVzRmV0Y2hlZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJvdGVjdGVkIHBhZ2luZzogUGFnaW5nPEFzc2V0Tm9kZU1vPjtcbiAgcHJvdGVjdGVkIGxvYWRNb3JlTm9kZTogTG9hZE1vcmVOb2RlO1xuICBwcml2YXRlIG9uVXBkYXRlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IEFzc2V0Tm9kZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbmZpZzogTmF2aWdhdG9yTm9kZURhdGEgPSB7fVxuICApIHtcbiAgICBzdXBlcihjb25maWcpO1xuXG4gICAgdGhpcy5yb290ID0gdGhpcy5yb290IHx8IGZhbHNlO1xuICAgIHRoaXMuaGlkZURldmljZXMgPSBjb25maWcuaGlkZURldmljZXMgPz8gdGhpcy5oaWRlRGV2aWNlcztcbiAgICB0aGlzLm1vID0gdGhpcy5tbyB8fCB7fTtcbiAgICB0aGlzLnBhdGggPSB0aGlzLmdldFBhdGgoKTtcbiAgICB0aGlzLmRyYWdnYWJsZSA9ICF0aGlzLnNlcnZpY2U/Lm1vZHVsZUNvbmZpZz8uZGlzYWJsZURyYWdBbmREcm9wICYmICF0aGlzLnJvb3Q7XG4gICAgdGhpcy5kcm9wcGFibGUgPVxuICAgICAgIXRoaXMuc2VydmljZT8ubW9kdWxlQ29uZmlnPy5kaXNhYmxlRHJhZ0FuZERyb3AgJiYgIXRoaXMuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2U7XG4gICAgdGhpcy5yb3V0ZXJMaW5rRXhhY3QgPSB0aGlzLnJvb3Q7XG4gICAgdGhpcy51cGRhdGVJY29uKGZhbHNlKTtcbiAgICB0aGlzLm9uVXBkYXRlU3Vic2NyaXB0aW9uID0gdGhpcy5zZXJ2aWNlXG4gICAgICAub25VcGRhdGUodGhpcylcbiAgICAgIC5zdWJzY3JpYmUoKHsgZGF0YSwgbWV0aG9kIH0pID0+IHRoaXMucmVmcmVzaChkYXRhLCBtZXRob2QpKTtcbiAgICB0aGlzLnNldExhYmVsKCk7XG4gICAgdGhpcy5pY29uQ29tcG9uZW50ID0gdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZSA/IERldmljZVN0YXR1c0NvbXBvbmVudCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFBhdGgoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhdGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5wYXRoO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJvb3RcbiAgICAgID8gJ2dyb3VwJ1xuICAgICAgOiB0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlXG4gICAgICAgID8gYGRldmljZS8ke3RoaXMubW8uaWR9YFxuICAgICAgICA6IGBncm91cC8ke3RoaXMubW8uaWR9YDtcbiAgfVxuXG4gIHJlZnJlc2gobW86IGFueSA9IHt9LCBtZXRob2QgPSAnR0VUJykge1xuICAgIGlmIChtbz8uaWQgPT09IHRoaXMubW8uaWQpIHtcbiAgICAgIHRoaXMubW8gPSBtbztcbiAgICAgIHRoaXMuc2V0TGFiZWwoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ0RFTEVURScpIHtcbiAgICAgIHRoaXMucGFyZW50cy5mb3JFYWNoKChub2RlOiBBc3NldE5vZGUpID0+IG5vZGUucmVmcmVzaCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXZlbnRzKSB7XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5SRUZSRVNIKTtcbiAgICB9XG4gIH1cblxuICBzZXRMYWJlbCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcubGFiZWwgfHwgdGhpcy5yb290KSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5jb25maWcubGFiZWwgfHwgZ2V0dGV4dCgnR3JvdXBzJyk7XG4gICAgICB0aGlzLnRyYW5zbGF0ZUxhYmVsID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuc2VydmljZS5sYWJlbCh0aGlzLm1vKTtcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWwgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbGljayhvcHRpb25zOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlICYmICF0aGlzLnNob3dDaGlsZERldmljZXMpIHtcbiAgICAgIHRoaXMuc2VydmljZS5wcmVmZXJCcmVhZGNydW1iKHRoaXMucGFyZW50cyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaG9va0V2ZW50cygpO1xuICAgIHRoaXMudXBkYXRlSWNvbihvcHRpb25zLm9wZW4pO1xuICAgIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hbmFnZWRPYmplY3QobW8pIHtcbiAgICBjb25zdCB7IGNoaWxkQWRkaXRpb25zIH0gPSB0aGlzLm1vO1xuICAgIGlmICghdGhpcy5pc0NoaWxkQWRkaXRpb24oY2hpbGRBZGRpdGlvbnMsIG1vKSkge1xuICAgICAgdGhpcy5hZGQodGhpcy5zZXJ2aWNlLmNyZWF0ZUNoaWxkTm9kZShtbywgeyBoaWRlRGV2aWNlczogdGhpcy5oaWRlRGV2aWNlcyB9KSk7XG4gICAgfVxuICB9XG5cbiAgaXNDaGlsZEFkZGl0aW9uKGNoaWxkQWRkaXRpb25zLCBtbykge1xuICAgIHJldHVybiAoXG4gICAgICBjaGlsZEFkZGl0aW9ucyAmJiBjaGlsZEFkZGl0aW9ucy5yZWZlcmVuY2VzLnNvbWUoKHsgbWFuYWdlZE9iamVjdDogeyBpZCB9IH0pID0+IGlkID09PSBtby5pZClcbiAgICApO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY2FuRHJvcCgpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuICAgIGlmIChub2RlVG9Nb3ZlKSB7XG4gICAgICBjb25zdCBzaG91bGRHZXRDaGlsZE9mSXRzT3duID0gISFub2RlVG9Nb3ZlLmZpbmQoY2hpbGQgPT4gY2hpbGQgPT09IHRoaXMpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5Q2hpbGQgPSAodGhpcy5jaGlsZHJlbiBhcyBBc3NldE5vZGVbXSkuc29tZShcbiAgICAgICAgY2hpbGQgPT4gY2hpbGQubW8gJiYgY2hpbGQubW8uaWQgPT09IG5vZGVUb01vdmUubW8uaWRcbiAgICAgICk7XG4gICAgICBjb25zdCBwcmV2ZW50TW92ZSA9IHRoaXMgPT09IG5vZGVUb01vdmUgfHwgc2hvdWxkR2V0Q2hpbGRPZkl0c093biB8fCBpc0FscmVhZHlDaGlsZDtcbiAgICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZSAmJiAhcHJldmVudE1vdmUgJiYgdGhpcy5zZXJ2aWNlLmNhbkRyb3BOb2RlKHRoaXMucm9vdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZTtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICBzdXBlci5kcmFnU3RhcnQoJGV2ZW50KTtcbiAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB0aGlzO1xuICAgIHRoaXMuc2VydmljZS5yb290Tm9kZS5kcm9wcGFibGUgPSAhdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZTtcbiAgfVxuXG4gIGRyYWdFbmQoJGV2ZW50KSB7XG4gICAgc3VwZXIuZHJhZ0VuZCgkZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgZHJvcCgkZXZlbnQpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuXG4gICAgLy8gVE9ETyByZW1vdmUgd2hlbiBhc3NldCB0eXBlIG5vZGUgY2FuIGJlIHVzZWQgb24gdGhlIHJvb3QgbGV2ZWwuXG4gICAgaWYgKHRoaXMucm9vdCAmJiB0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIHRoaXMuc2VydmljZS5hbGVydC5pbmZvKGdldHRleHQoJ0Fzc2V0IHR5cGUgbm9kZSBjYW5ub3QgYmVjb21lIHJvb3Qgbm9kZS4nKSk7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmRyb3AoJGV2ZW50KTtcbiAgICBpZiAodGhpcy5jYW5Ecm9wKSB7XG4gICAgICBhd2FpdCB0aGlzLm1vdmVOb2RlKG5vZGVUb01vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGhvb2tFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLmV2ZW50cykge1xuICAgICAgdGhpcy5ldmVudHMgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gQXNzZXROb2RlLk5BTUU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IG5vZGUgaGFzIGNoaWxkIGRldmljZXMuXG4gICAqL1xuICBoYXNDaGlsZERldmljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW8gJiYgdGhpcy5tby5jOHlfSXNEZXZpY2UgJiYgdGhpcy5tby5jaGlsZERldmljZXMucmVmZXJlbmNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3RcbiAgICAgID8gdGhpcy5zZXJ2aWNlLmdldFJvb3ROb2RlcygpXG4gICAgICA6IHRoaXMuc2VydmljZS5nZXRHcm91cEl0ZW1zKFxuICAgICAgICAgIHRoaXMubW8uaWQsXG4gICAgICAgICAgdGhpcy5oaWRlRGV2aWNlc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGAkZmlsdGVyPShoYXMoJHtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlfSkpJG9yZGVyYnk9bmFtZWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fVxuICAgICAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZUljb24ob3Blbikge1xuICAgIHRoaXMuaWNvbiA9IGF3YWl0IHRoaXMuc2VydmljZS5pY29uKFxuICAgICAgLy8gaWYgaXQncyByb290IHdlIGFyZSBnb2luZyB0byBwYXNzIGEgZmFrZSBtbyB0byBnZXQgdGhlIHNhbWUgaWNvbiBhcyBncm91cHNcbiAgICAgIHRoaXMucm9vdCA/IHsgYzh5X0lzRGV2aWNlR3JvdXA6IHt9IH0gOiB0aGlzLm1vLFxuICAgICAgb3BlblxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY291bnRDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlRXZlbnQoZXZ0OiBBY3Rpb24pIHtcbiAgICBpZiAoIXRoaXMuY291bnRDaGlsZHJlbigpICYmIGV2dCA9PT0gQWN0aW9uLkZFVENIKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5hZGROb2Rlcyhhd2FpdCB0aGlzLmZldGNoKCkpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09IEFjdGlvbi5ORVhUKSB7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkTm9kZXMoYXdhaXQgdGhpcy5wYWdpbmcubmV4dCgpKTtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGV2dCA9PT0gQWN0aW9uLlJFRlJFU0gpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYWdpbmcgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZW1wdHkoKTtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkTm9kZXMocmVzKSB7XG4gICAgaWYgKHJlcy5wYWdpbmcpIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UsIG5leHRQYWdlLCBwYWdlU2l6ZSB9ID0gKHRoaXMucGFnaW5nID0gcmVzLnBhZ2luZyk7XG4gICAgICBpZiAoY3VycmVudFBhZ2UgPT09IDEpIHtcbiAgICAgICAgdGhpcy5lbXB0eSgpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbXNDb3VudCA9IHJlcy5kYXRhLmxlbmd0aDtcbiAgICAgIGNvbnN0IG1vcmVJdGVtc0F2YWlsYWJsZSA9ICEhbmV4dFBhZ2UgJiYgaXRlbXNDb3VudCA9PT0gcGFnZVNpemU7XG4gICAgICB0aGlzLnRvZ2dsZUxvYWRNb3JlKG1vcmVJdGVtc0F2YWlsYWJsZSk7XG4gICAgfVxuICAgIChyZXMuZGF0YSB8fCByZXMpLm1hcChtbyA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgICB9KTtcbiAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5MT0FESU5HX0RPTkUpO1xuICAgIHRoaXMubm9kZXNGZXRjaGVkLm5leHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVMb2FkTW9yZShzaG93OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRNb3JlTm9kZSAmJiBzaG93KSB7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZSA9IG5ldyBMb2FkTW9yZU5vZGUoKTtcbiAgICAgIHRoaXMuYWRkKHRoaXMubG9hZE1vcmVOb2RlKTtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmNsaWNrID0gZGVib3VuY2UoKCkgPT4gdGhpcy5ldmVudHMubmV4dChBY3Rpb24uTkVYVCksIDMwMCwge1xuICAgICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgICB0cmFpbGluZzogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxvYWRNb3JlTm9kZSkge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUuaGlkZGVuID0gIXNob3c7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBtb3ZlTm9kZShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXNDb3B5ID0gYXdhaXQgdGhpcy5zaG93RHJvcENvbmZpcm0obm9kZVRvTW92ZSk7XG4gICAgICBhd2FpdCB0aGlzLnZlcmlmeU5vZGVBY2Nlc3Mobm9kZVRvTW92ZSk7XG4gICAgICBhd2FpdCB0aGlzLmFkZE1vdmVkTm9kZShub2RlVG9Nb3ZlKTtcbiAgICAgIGlmICghaXNDb3B5KSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVtb3ZlTW92ZWROb2RlKG5vZGVUb01vdmUpO1xuICAgICAgfVxuICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuc2VydmljZS5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5kcmFnZ2VkSG92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VydmljZS5kcmFnZ2VkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNob3dEcm9wQ29uZmlybShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICB0aGlzLmNvbmZpcm0udGl0bGUgPSBnZXR0ZXh0KCdNb3ZlJyk7XG4gICAgdGhpcy5jb25maXJtLm1lc3NhZ2UgPSBnZXR0ZXh0KCdEbyB5b3Ugd2FudCB0byBtb3ZlIHRoZSBncm91cD8nKTtcbiAgICBjb25zdCBidXR0b25zOiBhbnkgPSBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdDYW5jZWwnKSxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBQcm9taXNlLnJlamVjdCgpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnTW92ZScpLFxuICAgICAgICBzdGF0dXM6ICdkZWZhdWx0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoZmFsc2UpXG4gICAgICB9XG4gICAgXTtcbiAgICBpZiAobm9kZVRvTW92ZS5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZSkge1xuICAgICAgdGhpcy5jb25maXJtLnRpdGxlID0gZ2V0dGV4dCgnTW92ZSBvciBhZGQnKTtcbiAgICAgIHRoaXMuY29uZmlybS5tZXNzYWdlID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gbW92ZSBvciBhZGQgdGhlIGRldmljZT8nKTtcbiAgICAgIGJ1dHRvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdBZGQnKSxcbiAgICAgICAgc3RhdHVzOiAncHJpbWFyeScsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRydWUpXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlybS5zaG93KGJ1dHRvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2ZXJpZnlOb2RlQWNjZXNzKG5vZGVUb01vdmU6IEFzc2V0Tm9kZSkge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7IGlkOiBub2RlVG9Nb3ZlLm1vLmlkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhZGRNb3ZlZE5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgbGV0IG1vOiBJSWRlbnRpZmllZDtcblxuICAgIGlmICh0aGlzLnJvb3QgJiYgIXRoaXMuaXNBc3NldChub2RlVG9Nb3ZlKSkge1xuICAgICAgbW8gPSAoXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkudXBkYXRlKHtcbiAgICAgICAgICBpZDogbm9kZVRvTW92ZS5tby5pZCxcbiAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwVHlwZVxuICAgICAgICB9KVxuICAgICAgKS5kYXRhO1xuXG4gICAgICB0aGlzLmFkZE1hbmFnZWRPYmplY3QobW8pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vID0gKGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkuY2hpbGRBc3NldHNBZGQobm9kZVRvTW92ZS5tbywgdGhpcy5tbykpLmRhdGE7XG4gICAgdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBc3NldChub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICAvLyBUT0RPIHVzZSBpc0Fzc2V0IGNoZWNrIHdoZW4gaHR0cHM6Ly9naXRodWIuc29mdHdhcmVhZy5jb20vSU9UQS9jdW11bG9jaXR5LXVpL3B1bGwvNjkwIGlzIG1lcmdlZC5cbiAgICAvLyBEbyBub3Qgb3ZlcnJpZGUgYXNzZXQgdHlwZSFcbiAgICByZXR1cm4gbm9kZVRvTW92ZS5tbz8uYzh5X0lzQXNzZXQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlbW92ZU1vdmVkTm9kZShub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICBmb3IgKGNvbnN0IHBhcmVudCBvZiBub2RlVG9Nb3ZlLnBhcmVudHMgYXMgQXNzZXROb2RlW10pIHtcbiAgICAgIGlmIChwYXJlbnQubW8gJiYgcGFyZW50Lm1vLnR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZSkge1xuICAgICAgICBicmVhazsgLy8gc21hcnQgZ3JvdXBzIGRvbid0IG5lZWQgdG8gYmUgY2hhbmdlZFxuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50LnJvb3QgJiYgIXRoaXMuaXNBc3NldChub2RlVG9Nb3ZlKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IG5vZGVUb01vdmUubW8uaWQsXG4gICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5zdWJHcm91cFR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghcGFyZW50LnJvb3QpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmludmVudG9yeS5jaGlsZEFzc2V0c1JlbW92ZShub2RlVG9Nb3ZlLm1vLCBwYXJlbnQubW8pO1xuICAgICAgfVxuICAgICAgcGFyZW50LnJlbW92ZShub2RlVG9Nb3ZlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
2
|
import { InventoryService, QueriesUtil, UserService } from '@c8y/client';
|
|
3
|
-
import { AlertService, AppStateService, BreadcrumbService, GroupFragment, ModalService, OptionsService, ViewContext, Permissions } from '@c8y/ngx-components';
|
|
3
|
+
import { AlertService, AppStateService, BreadcrumbService, GroupFragment, ModalService, OptionsService, ViewContext, Permissions, gettext } from '@c8y/ngx-components';
|
|
4
4
|
import { ApiService } from '@c8y/ngx-components/api';
|
|
5
5
|
import { empty } from 'rxjs';
|
|
6
6
|
import { filter, first, mergeMap } from 'rxjs/operators';
|
|
@@ -10,14 +10,16 @@ import { DynamicGroupNode } from './dynamic-group-node';
|
|
|
10
10
|
import { DeviceGroupService } from './group.service';
|
|
11
11
|
import { ActivationEnd, Router } from '@angular/router';
|
|
12
12
|
import { Action } from './action.enum';
|
|
13
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "@c8y/client";
|
|
15
16
|
import * as i2 from "@c8y/ngx-components/api";
|
|
16
17
|
import * as i3 from "@c8y/ngx-components";
|
|
17
18
|
import * as i4 from "./group.service";
|
|
18
19
|
import * as i5 from "@angular/router";
|
|
20
|
+
import * as i6 from "@ngx-translate/core";
|
|
19
21
|
export class AssetNodeService {
|
|
20
|
-
constructor(inventory, apiService, modal, alert, breadcrumbService, user, appState, optionsService, moduleConfig, deviceGroupService, router) {
|
|
22
|
+
constructor(inventory, apiService, modal, alert, breadcrumbService, user, appState, optionsService, moduleConfig, deviceGroupService, router, translateService) {
|
|
21
23
|
this.inventory = inventory;
|
|
22
24
|
this.apiService = apiService;
|
|
23
25
|
this.modal = modal;
|
|
@@ -29,6 +31,7 @@ export class AssetNodeService {
|
|
|
29
31
|
this.moduleConfig = moduleConfig;
|
|
30
32
|
this.deviceGroupService = deviceGroupService;
|
|
31
33
|
this.router = router;
|
|
34
|
+
this.translateService = translateService;
|
|
32
35
|
this.firstUrl = true;
|
|
33
36
|
this.PAGE_SIZE = 20;
|
|
34
37
|
this.moduleConfig = {
|
|
@@ -87,6 +90,12 @@ export class AssetNodeService {
|
|
|
87
90
|
});
|
|
88
91
|
}
|
|
89
92
|
}
|
|
93
|
+
label(mo) {
|
|
94
|
+
return (mo.name ||
|
|
95
|
+
(this.isDevice(mo) &&
|
|
96
|
+
this.translateService.instant(gettext('Device {{id}}'), { id: mo.id })) ||
|
|
97
|
+
'--');
|
|
98
|
+
}
|
|
90
99
|
icon(mo, open) {
|
|
91
100
|
return this.deviceGroupService.icon(mo, open);
|
|
92
101
|
}
|
|
@@ -326,7 +335,7 @@ export class AssetNodeService {
|
|
|
326
335
|
return combinedQuery;
|
|
327
336
|
}
|
|
328
337
|
}
|
|
329
|
-
AssetNodeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetNodeService, deps: [{ token: i1.InventoryService }, { token: i2.ApiService }, { token: i3.ModalService }, { token: i3.AlertService }, { token: i3.BreadcrumbService }, { token: i1.UserService }, { token: i3.AppStateService }, { token: i3.OptionsService }, { token: ASSET_NAVIGATOR_CONFIG, optional: true }, { token: i4.DeviceGroupService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
338
|
+
AssetNodeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetNodeService, deps: [{ token: i1.InventoryService }, { token: i2.ApiService }, { token: i3.ModalService }, { token: i3.AlertService }, { token: i3.BreadcrumbService }, { token: i1.UserService }, { token: i3.AppStateService }, { token: i3.OptionsService }, { token: ASSET_NAVIGATOR_CONFIG, optional: true }, { token: i4.DeviceGroupService }, { token: i5.Router }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
330
339
|
AssetNodeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetNodeService, providedIn: 'root' });
|
|
331
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssetNodeService, decorators: [{
|
|
332
341
|
type: Injectable,
|
|
@@ -338,5 +347,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
338
347
|
}, {
|
|
339
348
|
type: Inject,
|
|
340
349
|
args: [ASSET_NAVIGATOR_CONFIG]
|
|
341
|
-
}] }, { type: i4.DeviceGroupService }, { type: i5.Router }]; } });
|
|
342
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVcsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFHWixjQUFjLEVBQ2QsV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBMEIsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFVdkMsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNTLFNBQTJCLEVBQzNCLFVBQXNCLEVBQ3RCLEtBQW1CLEVBQ25CLEtBQW1CLEVBQ2hCLGlCQUFvQyxF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Q0FBQztnQkFDOUM7b0JBQ0Usc0JBQXNCLEVBQUUsTUFBTTtpQkFDL0I7Z0JBQ0Q7b0JBQ0Usc0JBQXNCLEVBQUUsTUFBTTtpQkFDL0I7YUFDRixDQUFDLENBQUM7WUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDaEYsYUFBYSxHQUFHLEdBQUcsV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1NBQ2xEO2FBQU07WUFDTCxhQUFhLEdBQUcsTUFBTSxJQUFJLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDeEM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOzs2R0FuWVUsZ0JBQWdCLDZQQWdCTCxzQkFBc0I7aUhBaEJqQyxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlCSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0LCBRdWVyaWVzVXRpbCwgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gIEdyb3VwRnJhZ21lbnQsXG4gIE1vZGFsU2VydmljZSxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGEsXG4gIE9wdGlvbnNTZXJ2aWNlLFxuICBWaWV3Q29udGV4dCxcbiAgUGVybWlzc2lvbnNcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hcGknO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXROb2RlIH0gZnJvbSAnLi9hc3NldC1ub2RlJztcbmltcG9ydCB7IEFzc2V0TmF2aWdhdG9yQ29uZmlnLCBBU1NFVF9OQVZJR0FUT1JfQ09ORklHIH0gZnJvbSAnLi9hc3NldC1ub2RlLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljR3JvdXBOb2RlIH0gZnJvbSAnLi9keW5hbWljLWdyb3VwLW5vZGUnO1xuaW1wb3J0IHsgRGV2aWNlR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi9ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIEFjdGl2YXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbi5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldE5vZGVNbyB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXROb2RlU2VydmljZSB7XG4gIHJvb3ROb2RlOiBBc3NldE5vZGU7XG4gIGZpcnN0VXJsID0gdHJ1ZTtcbiAgZHJhZ2dlZERhdGE6IEFzc2V0Tm9kZTtcbiAgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcm90ZWN0ZWQgUEFHRV9TSVpFID0gMjA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwdWJsaWMgYXBpU2VydmljZTogQXBpU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwdWJsaWMgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVNTRVRfTkFWSUdBVE9SX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogQXNzZXROYXZpZ2F0b3JDb25maWcsXG4gICAgcHJvdGVjdGVkIGRldmljZUdyb3VwU2VydmljZTogRGV2aWNlR3JvdXBTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IHtcbiAgICAgIHJvb3ROb2RlUHJpb3JpdHk6IDIwMDAsXG4gICAgICAuLi4obW9kdWxlQ29uZmlnIHx8IHt9KVxuICAgIH07XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogQWN0aXZhdGlvbkVuZCkgPT5cbiAgICAgICAgICAgIGV2ZW50IGluc3RhbmNlb2YgQWN0aXZhdGlvbkVuZCAmJiBldmVudC5zbmFwc2hvdC5kYXRhPy5jb250ZXh0RGF0YVxuICAgICAgICApLFxuICAgICAgICBmaXJzdCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHNuYXBzaG90IH0pID0+IHtcbiAgICAgICAgdGhpcy5leHBhbmROb2Rlc09uU3RhcnQoc25hcHNob3QpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyB0aGUgbmF2aWdhdG9yIG5vZGVzIG9uIGZpcnN0IG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBzbmFwc2hvdCBUaGUgY3VycmVudCBuYXZpZ2F0aW9uIHNuYXBzaG90LlxuICAgKi9cbiAgYXN5bmMgZXhwYW5kTm9kZXNPblN0YXJ0KHNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnJvb3ROb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHNuYXBzaG90LmRhdGE/LmNvbnRleHQgPT09IFZpZXdDb250ZXh0Lkdyb3VwIHx8XG4gICAgICBzbmFwc2hvdC5kYXRhPy5jb250ZXh0ID09PSBWaWV3Q29udGV4dC5EZXZpY2VcbiAgICApIHtcbiAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkuZGV0YWlsKHNuYXBzaG90LmRhdGEuY29udGV4dERhdGEsIHtcbiAgICAgICAgd2l0aFBhcmVudHM6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhbGxNYW5hZ2VkT2JqZWN0UGFyZW50SWRzID0gW1xuICAgICAgICAuLi5kYXRhLmFzc2V0UGFyZW50cy5yZWZlcmVuY2VzLm1hcCgoeyBtYW5hZ2VkT2JqZWN0IH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gbWFuYWdlZE9iamVjdC5pZDtcbiAgICAgICAgfSksXG4gICAgICAgIGRhdGEuaWRcbiAgICAgIF07XG4gICAgICB0aGlzLmV4cGFuZEFsbCh0aGlzLnJvb3ROb2RlLCBhbGxNYW5hZ2VkT2JqZWN0UGFyZW50SWRzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2R1bGVDb25maWcub3Blbk9uU3RhcnQpIHtcbiAgICAgIHRoaXMuZXhwYW5kQWxsKHRoaXMucm9vdE5vZGUsIFtdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyBhbGwgdGhlIGdpdmVuIGlkcyByZWN1cnNpdmVseS4gU3RvcHMgaWYgaXQgZG9lcyBub3QgZmluZCBhbnkuXG4gICAqIEBwYXJhbSBub2RlIFRoZSBub2RlIHdoZXJlIHRoZSBleHBhbmRpbmcgc2hvdWxkIGJlIHN0YXJ0ZWRcbiAgICogQHBhcmFtIGlkcyBUaGUgaWRzIHRoYXQgc2hvdWxkIGJlIGV4cGFuZGVkLlxuICAgKi9cbiAgZXhwYW5kQWxsKG5vZGU6IEFzc2V0Tm9kZSwgaWRzOiBzdHJpbmdbXSkge1xuICAgIG5vZGUub3BlbiA9IHRydWU7XG4gICAgbm9kZS5jbGljayh7IG9wZW46IHRydWUgfSk7XG4gICAgaWYgKG5vZGUuZXZlbnRzKSB7XG4gICAgICBub2RlLmV2ZW50c1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoYWN0aW9uID0+IGFjdGlvbiA9PT0gQWN0aW9uLkxPQURJTkdfRE9ORSksXG4gICAgICAgICAgZmlyc3QoKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5vZGVUb0V4cGFuZCA9IG5vZGUuY2hpbGRyZW4uZmluZChcbiAgICAgICAgICAgIGNoaWxkTm9kZSA9PiBjaGlsZE5vZGUubW8/LmlkICYmIGlkcy5pbmNsdWRlcyhjaGlsZE5vZGUubW8uaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobm9kZVRvRXhwYW5kKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZEFsbChcbiAgICAgICAgICAgICAgbm9kZVRvRXhwYW5kLFxuICAgICAgICAgICAgICBpZHMuZmlsdGVyKGlkID0+IGlkICE9PSBub2RlVG9FeHBhbmQubW8uaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWNvbihtbzogSU1hbmFnZWRPYmplY3QsIG9wZW4/OiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaWNvbihtbywgb3Blbik7XG4gIH1cblxuICBpc0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0dyb3VwKG1vKTtcbiAgfVxuXG4gIGlzRHluYW1pY0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0R5bmFtaWNHcm91cChtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlcihtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXJBY3RpdmUobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlckFjdGl2ZShtbyk7XG4gIH1cblxuICBpc0Fzc2V0KG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0Fzc2V0KG1vKTtcbiAgfVxuXG4gIGlzQW55R3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzQW55R3JvdXAobW8pO1xuICB9XG5cbiAgaXNEZXZpY2UobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGV2aWNlKG1vKTtcbiAgfVxuXG4gIGNyZWF0ZVJvb3ROb2RlKGNvbmZpZzogTmF2aWdhdG9yTm9kZURhdGEgPSB7fSkge1xuICAgIHRoaXMucm9vdE5vZGUgPSB0aGlzLmNyZWF0ZUFzc2V0Tm9kZSh7XG4gICAgICByb290OiB0cnVlLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgcHJpb3JpdHk6IHRoaXMubW9kdWxlQ29uZmlnLnJvb3ROb2RlUHJpb3JpdHksXG4gICAgICBmZWF0dXJlSWQ6ICdncm91cHMnXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucm9vdE5vZGU7XG4gIH1cblxuICBjcmVhdGVEeW5hbWljR3JvdXBOb2RlKGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgRHluYW1pY0dyb3VwTm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQXNzZXROb2RlKGNvbmZpZzogUGFydGlhbDxBc3NldE5vZGU+KSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldE5vZGUodGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUNoaWxkTm9kZShtYW5hZ2VkT2JqZWN0LCBjb25maWc6IFBhcnRpYWw8QXNzZXROb2RlPikge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gbWFuYWdlZE9iamVjdDtcbiAgICBjb25maWcubW8gPSBtYW5hZ2VkT2JqZWN0O1xuICAgIGlmICh0eXBlID09PSBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUR5bmFtaWNHcm91cE5vZGUoY29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQXNzZXROb2RlKGNvbmZpZyk7XG4gIH1cblxuICBnZXRSb290Tm9kZXMoY3VzdG9tRmlsdGVyPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIG9ubHlSb290czogIXRoaXMub3B0aW9uc1NlcnZpY2UuZGlzYWJsZU9ubHlSb290c1F1ZXJ5LFxuICAgICAgcXVlcnk6IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeSh0aGlzLm5hdlJvb3RRdWVyeUZpbHRlcigpKVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSB7IC4uLmRlZmF1bHRGaWx0ZXIsIC4uLmN1c3RvbUZpbHRlciB9O1xuXG4gICAgLy8gZHVlIHRvIEJFIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zIHdlIGRvIG5vdCBhbGxvdyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgZm9yIGEgdXNlciB3aXRob3V0IGludmVudG9yeSByb2xlc1xuICAgIGlmIChcbiAgICAgICF0aGlzLnVzZXIuaGFzQW55Um9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCBbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX1JFQUQsXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfUkVBRFxuICAgICAgXSlcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBncm91cEZpbHRlci5xdWVyeTtcbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JvdXBGaWx0ZXIsIHtcbiAgICAgICAgZnJhZ21lbnRUeXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlLFxuICAgICAgICBvbmx5Um9vdHM6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkubGlzdCh0aGlzLmNyZWF0ZUZpbHRlcihncm91cEZpbHRlcikpO1xuICB9XG5cbiAgZ2V0QWxsSW52ZW50b3JpZXMoY3VzdG9tRmlsdGVyPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSB7IC4uLmRlZmF1bHRGaWx0ZXIsIC4uLmN1c3RvbUZpbHRlciB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKGdyb3VwRmlsdGVyKSk7XG4gIH1cblxuICBnZXRHcm91cEl0ZW1zKG1vSWQ6IHN0cmluZywgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9LCB3aXRoQ2hpbGRyZW4gPSBmYWxzZSwgZmlsdGVyUXVlcnkgPSAnJykge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ3JvdXBRdWVyeUZpbHRlcihtb0lkLCBmaWx0ZXJRdWVyeSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5jaGlsZEFzc2V0c0xpc3QobW9JZCwgeyAuLi5xdWVyeUZpbHRlciwgLi4uZXh0cmFGaWx0ZXIgfSk7XG4gIH1cblxuICBnZXRVbmFzc2lnbmVkRGV2aWNlcyh3aXRoQ2hpbGRyZW4gPSBmYWxzZSwgZmlsdGVyUXVlcnkgPSAnJykge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyOiBhbnkgPSB7XG4gICAgICBmcmFnbWVudFR5cGU6ICdjOHlfSXNEZXZpY2UnLFxuICAgICAgb25seVJvb3RzOiB0cnVlLFxuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcTogdGhpcy5nZXRVbmFzc2lnbmVkRGV2aWNlc1F1ZXJ5U3RyKGZpbHRlclF1ZXJ5KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIocXVlcnlGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldER5bmFtaWNHcm91cEl0ZW1zKGdyb3VwUXVlcnk6IHN0cmluZywgZmlsdGVyT2JqOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IHsgcXVlcnksIC4uLnF1ZXJ5UGFyYW1zIH0gPSBmaWx0ZXJPYmo7XG4gICAgY29uc3Qgb3JkZXJCeVF1ZXJ5ID0gcXVlcnk7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICBxOiB0aGlzLmJ1aWxkQ29tYmluZWRRdWVyeShncm91cFF1ZXJ5LCBvcmRlckJ5UXVlcnkpLFxuICAgICAgLi4ucXVlcnlQYXJhbXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKHF1ZXJ5RmlsdGVyKSk7XG4gIH1cblxuICBnZXREZXZpY2VDaGlsZHJlbihcbiAgICBtb0lkOiBzdHJpbmcsXG4gICAgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9LFxuICAgIGZpbHRlclF1ZXJ5ID0gJycsXG4gICAgd2l0aENoaWxkcmVuID0gZmFsc2VcbiAgKSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICB3aXRoQ2hpbGRyZW4sXG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICBxdWVyeTogdGhpcy5ncm91cFF1ZXJ5RmlsdGVyKG1vSWQsIGZpbHRlclF1ZXJ5KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5LmNoaWxkRGV2aWNlc0xpc3QobW9JZCwgeyAuLi5xdWVyeUZpbHRlciwgLi4uZXh0cmFGaWx0ZXIgfSk7XG4gIH1cblxuICBnZXRVbmFzc2lnbmVkRGV2aWNlc1F1ZXJ5U3RyKGZpbHRlclF1ZXJ5KTogc3RyaW5nIHtcbiAgICBjb25zdCBoYXNHcm91cElkID0gZmlsdGVyUXVlcnkuaW5jbHVkZXMoJ2J5Z3JvdXBpZCcpO1xuICAgIC8vIEZldGNoIGFsbCB1bmFzc2lnbmVkIGRldmljZXMuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJ5U3RyID0gJyRvcmRlcmJ5PW5hbWUnO1xuXG4gICAgLy8gZmlsdGVyUXVlcnkgaXMgYSBjdXN0b20gcXVlcnkgdG8gZmV0Y2ggdW5hc3NpZ25lZCBkZXZpY2VzIGZpbHRlcmVkIGJ5IG5hbWUuXG4gICAgcmV0dXJuIGhhc0dyb3VwSWQgfHwgIWZpbHRlclF1ZXJ5ID8gZGVmYXVsdFF1ZXJ5U3RyIDogZmlsdGVyUXVlcnk7XG4gIH1cblxuICBncm91cFF1ZXJ5RmlsdGVyKG1vSWQ6IHN0cmluZywgZmlsdGVyUXVlcnk/OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbHRlclF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYCRmaWx0ZXI9KGJ5Z3JvdXBpZCgke21vSWR9KSkkb3JkZXJieT1uYW1lYDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlclF1ZXJ5O1xuICB9XG5cbiAgbmF2Um9vdFF1ZXJ5RmlsdGVyKCkge1xuICAgIGNvbnN0IG5hdlJvb3RGaWx0ZXIgPSB0aGlzLnJvb3RRdWVyeUZpbHRlcigpO1xuICAgIG5hdlJvb3RGaWx0ZXIuX19vcmRlcmJ5ID0gW3sgbmFtZTogMSB9XTtcbiAgICByZXR1cm4gbmF2Um9vdEZpbHRlcjtcbiAgfVxuXG4gIHJvb3RRdWVyeUZpbHRlcigpIHtcbiAgICBjb25zdCB7IG1vZHVsZUNvbmZpZyB9ID0gdGhpcztcbiAgICBjb25zdCByb290RmlsdGVyID0gdGhpcy5vcHRpb25zU2VydmljZS5kaXNhYmxlT25seVJvb3RzUXVlcnlcbiAgICAgID8ge1xuICAgICAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwVHlwZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgX19vcmRlcmJ5OiBbXVxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBfX2ZpbHRlcjoge1xuICAgICAgICAgICAgX19oYXM6IEdyb3VwRnJhZ21lbnQuZ3JvdXBGcmFnbWVudFR5cGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9fb3JkZXJieTogW11cbiAgICAgICAgfTtcbiAgICBpZiAobW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICBfX2FuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIF9faGFzOiBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cEZyYWdtZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBfX25vdDogeyBfX2hhczogYCR7R3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudH0uaW52aXNpYmxlYCB9IH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB0aGlzLnF1ZXJpZXNVdGlsLmFkZE9yRmlsdGVyKHJvb3RGaWx0ZXIsIHF1ZXJ5RmlsdGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvb3RGaWx0ZXI7XG4gIH1cblxuICBvblVwZGF0ZSh7IG1vLCByb290IH0pIHtcbiAgICBpZiAobW8uaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmhvb2tSZXNwb25zZShcbiAgICAgICAgICAoeyB1cmwsIG1ldGhvZCB9KSA9PlxuICAgICAgICAgICAgWydQVVQnLCAnREVMRVRFJywgJ1BPU1QnXS5pbmNsdWRlcyhtZXRob2QpICYmXG4gICAgICAgICAgICBSZWdFeHAoYCgoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvJHttby5pZH1gKS50ZXN0KFxuICAgICAgICAgICAgICB1cmxcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZHJhZ2dlZERhdGEpLFxuICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5leGNsdWRlUGVybWlzc2lvbkNhbGwoKSxcbiAgICAgICAgICBtZXJnZU1hcCh0aGlzLmFwaVNlcnZpY2UucmVzb2x2ZURhdGE8SU1hbmFnZWRPYmplY3Q+KSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gIXJlc3BvbnNlPy5kYXRhPy5jOHlfRGFzaGJvYXJkKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAocm9vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBSZWdFeHAoJygoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvPyQnKS50ZXN0KHVybCkgJiZcbiAgICAgICAgICAgIG1ldGhvZCA9PT0gJ1BPU1QnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhPElNYW5hZ2VkT2JqZWN0PiksXG4gICAgICAgICAgZmlsdGVyKHJlc3BvbnNlID0+IHRoaXMuaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGlzTmV3TWFuYWdlZE9iamVjdFJvb3QocmVzcG9uc2U6IFBhcnRpYWw8SVJlc3VsdDxJTWFuYWdlZE9iamVjdD4+ID0ge30pIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHJlc3BvbnNlO1xuICAgIGxldCBpc1Jvb3RBc3NldCA9IGZhbHNlO1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZV07XG4gICAgICBpZiAoIWlzUm9vdEFzc2V0ICYmIHRoaXMubW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICAgIGlzUm9vdEFzc2V0ID0gISFkYXRhW0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNSb290QXNzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgaXQgaXMgcG9zc2libGUgdG8gZHJvcCBhIG5vZGUgYWZ0ZXIgZHJhZ2dpbmcuXG4gICAqIEBwYXJhbSBkcm9wT25Sb290IElzIHRoZSBkcm9wIHBlcmZvcm1lZCBvbiB0aGUgcm9vdCBub2RlXG4gICAqL1xuICBjYW5Ecm9wTm9kZShkcm9wT25Sb290OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFkcm9wT25Sb290IHx8XG4gICAgICB0aGlzLnVzZXIuaGFzQW55Um9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCBbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX0FETUlOLFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX0FETUlOXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgY291bGQgYmUgbXVsdGlwbGUgYnJlYWRjcnVtYnMgZm9yIGRldmljZXMsXG4gICAqIHNvIHdlIHNldCBhIHByZWZlcnJlZCBvbmUgb24gY2xpY2sgb24gYSBkZXZpY2UuXG4gICAqIEBwYXJhbSBwYXJlbnRzIFRoZSBwYXJlbnQgbm9kZXMgb2YgdGhlIGRldmljZSB0byBzZWxlY3QgdGhlIHByZWZlcmVkIG9uZS5cbiAgICovXG4gIHByZWZlckJyZWFkY3J1bWIocGFyZW50czogTmF2aWdhdG9yTm9kZVtdKSB7XG4gICAgaWYgKHBhcmVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLnNlbGVjdFByZWZlcnJlZEJ5UGF0aChwYXJlbnRzWzBdLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVGaWx0ZXIoZXh0cmFQYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHBhZ2VTaXplOiAxMFxuICAgIH07XG4gICAgcmV0dXJuIHsgLi4ucGFyYW1zLCAuLi5leHRyYVBhcmFtcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbWJpbmVkUXVlcnkocXVlcnlBLCBxdWVyeUIpIHtcbiAgICBsZXQgY29tYmluZWRRdWVyeTtcbiAgICBpZiAocXVlcnlBICYmIHF1ZXJ5Qikge1xuICAgICAgY29uc3QgZmlsdGVyUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoW1xuICAgICAgICB7XG4gICAgICAgICAgX191c2VGaWx0ZXJRdWVyeVN0cmluZzogcXVlcnlBXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBfX3VzZUZpbHRlclF1ZXJ5U3RyaW5nOiBxdWVyeUJcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgICBjb25zdCBvcmJlckJ5UXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmV4dHJhY3RBbmRNZXJnZU9yZGVyQnlzKFtxdWVyeUEsIHF1ZXJ5Ql0pO1xuICAgICAgY29tYmluZWRRdWVyeSA9IGAke2ZpbHRlclF1ZXJ5fSAke29yYmVyQnlRdWVyeX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21iaW5lZFF1ZXJ5ID0gcXVlcnlBIHx8IHF1ZXJ5QiB8fCAnJztcbiAgICB9XG4gICAgcmV0dXJuIGNvbWJpbmVkUXVlcnk7XG4gIH1cbn1cbiJdfQ==
|
|
350
|
+
}] }, { type: i4.DeviceGroupService }, { type: i5.Router }, { type: i6.TranslateService }]; } });
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVcsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFHWixjQUFjLEVBQ2QsV0FBVyxFQUNYLFdBQVcsRUFDWCxPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBd0Isc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQ1Ms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QyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVTLFlBQVksQ0FBQyxjQUFtQixFQUFFO1FBQzFDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsV0FBVyxFQUFFLENBQUM7WUFDZCxjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBTSxFQUFFLE1BQU07UUFDdkMsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2dCQUM5QztvQkFDRSxzQkFBc0IsRUFBRSxNQUFNO2lCQUMvQjtnQkFDRDtvQkFDRSxzQkFBc0IsRUFBRSxNQUFNO2lCQUMvQjthQUNGLENBQUMsQ0FBQztZQUNILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoRixhQUFhLEdBQUcsR0FBRyxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7U0FDbEQ7YUFBTTtZQUNMLGFBQWEsR0FBRyxNQUFNLElBQUksTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUN4QztRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OzZHQTdZVSxnQkFBZ0IsNlBBZ0JMLHNCQUFzQjtpSEFoQmpDLGdCQUFnQixjQUZmLE1BQU07MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBaUJJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHQsIFF1ZXJpZXNVdGlsLCBVc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgQXBwU3RhdGVTZXJ2aWNlLFxuICBCcmVhZGNydW1iU2VydmljZSxcbiAgR3JvdXBGcmFnbWVudCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBOYXZpZ2F0b3JOb2RlLFxuICBOYXZpZ2F0b3JOb2RlRGF0YSxcbiAgT3B0aW9uc1NlcnZpY2UsXG4gIFZpZXdDb250ZXh0LFxuICBQZXJtaXNzaW9ucyxcbiAgZ2V0dGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FwaSc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBc3NldE5vZGUgfSBmcm9tICcuL2Fzc2V0LW5vZGUnO1xuaW1wb3J0IHsgQXNzZXROYXZpZ2F0b3JDb25maWcsIEFTU0VUX05BVklHQVRPUl9DT05GSUcgfSBmcm9tICcuL2Fzc2V0LW5vZGUtY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNHcm91cE5vZGUgfSBmcm9tICcuL2R5bmFtaWMtZ3JvdXAtbm9kZSc7XG5pbXBvcnQgeyBEZXZpY2VHcm91cFNlcnZpY2UgfSBmcm9tICcuL2dyb3VwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQWN0aXZhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0Tm9kZU1vIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBc3NldE5vZGVTZXJ2aWNlIHtcbiAgcm9vdE5vZGU6IEFzc2V0Tm9kZTtcbiAgZmlyc3RVcmwgPSB0cnVlO1xuICBkcmFnZ2VkRGF0YTogQXNzZXROb2RlO1xuICBxdWVyaWVzVXRpbDogUXVlcmllc1V0aWw7XG4gIHByb3RlY3RlZCBQQUdFX1NJWkUgPSAyMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW52ZW50b3J5OiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHB1YmxpYyBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxuICAgIHB1YmxpYyBtb2RhbDogTW9kYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHVzZXI6IFVzZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBvcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBU1NFVF9OQVZJR0FUT1JfQ09ORklHKSBwdWJsaWMgbW9kdWxlQ29uZmlnOiBBc3NldE5hdmlnYXRvckNvbmZpZyxcbiAgICBwcm90ZWN0ZWQgZGV2aWNlR3JvdXBTZXJ2aWNlOiBEZXZpY2VHcm91cFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9kdWxlQ29uZmlnID0ge1xuICAgICAgcm9vdE5vZGVQcmlvcml0eTogMjAwMCxcbiAgICAgIC4uLihtb2R1bGVDb25maWcgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnF1ZXJpZXNVdGlsID0gbmV3IFF1ZXJpZXNVdGlsKCk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGV2ZW50OiBBY3RpdmF0aW9uRW5kKSA9PlxuICAgICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBBY3RpdmF0aW9uRW5kICYmIGV2ZW50LnNuYXBzaG90LmRhdGE/LmNvbnRleHREYXRhXG4gICAgICAgICksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHsgc25hcHNob3QgfSkgPT4ge1xuICAgICAgICB0aGlzLmV4cGFuZE5vZGVzT25TdGFydChzbmFwc2hvdCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIHRoZSBuYXZpZ2F0b3Igbm9kZXMgb24gZmlyc3QgbmF2aWdhdGlvbi5cbiAgICogQHBhcmFtIHNuYXBzaG90IFRoZSBjdXJyZW50IG5hdmlnYXRpb24gc25hcHNob3QuXG4gICAqL1xuICBhc3luYyBleHBhbmROb2Rlc09uU3RhcnQoc25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMucm9vdE5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgc25hcHNob3QuZGF0YT8uY29udGV4dCA9PT0gVmlld0NvbnRleHQuR3JvdXAgfHxcbiAgICAgIHNuYXBzaG90LmRhdGE/LmNvbnRleHQgPT09IFZpZXdDb250ZXh0LkRldmljZVxuICAgICkge1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeS5kZXRhaWwoc25hcHNob3QuZGF0YS5jb250ZXh0RGF0YSwge1xuICAgICAgICB3aXRoUGFyZW50czogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFsbE1hbmFnZWRPYmplY3RQYXJlbnRJZHMgPSBbXG4gICAgICAgIC4uLmRhdGEuYXNzZXRQYXJlbnRzLnJlZmVyZW5jZXMubWFwKCh7IG1hbmFnZWRPYmplY3QgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBtYW5hZ2VkT2JqZWN0LmlkO1xuICAgICAgICB9KSxcbiAgICAgICAgZGF0YS5pZFxuICAgICAgXTtcbiAgICAgIHRoaXMuZXhwYW5kQWxsKHRoaXMucm9vdE5vZGUsIGFsbE1hbmFnZWRPYmplY3RQYXJlbnRJZHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vZHVsZUNvbmZpZy5vcGVuT25TdGFydCkge1xuICAgICAgdGhpcy5leHBhbmRBbGwodGhpcy5yb290Tm9kZSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIGFsbCB0aGUgZ2l2ZW4gaWRzIHJlY3Vyc2l2ZWx5LiBTdG9wcyBpZiBpdCBkb2VzIG5vdCBmaW5kIGFueS5cbiAgICogQHBhcmFtIG5vZGUgVGhlIG5vZGUgd2hlcmUgdGhlIGV4cGFuZGluZyBzaG91bGQgYmUgc3RhcnRlZFxuICAgKiBAcGFyYW0gaWRzIFRoZSBpZHMgdGhhdCBzaG91bGQgYmUgZXhwYW5kZWQuXG4gICAqL1xuICBleHBhbmRBbGwobm9kZTogQXNzZXROb2RlLCBpZHM6IHN0cmluZ1tdKSB7XG4gICAgbm9kZS5vcGVuID0gdHJ1ZTtcbiAgICBub2RlLmNsaWNrKHsgb3BlbjogdHJ1ZSB9KTtcbiAgICBpZiAobm9kZS5ldmVudHMpIHtcbiAgICAgIG5vZGUuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcihhY3Rpb24gPT4gYWN0aW9uID09PSBBY3Rpb24uTE9BRElOR19ET05FKSxcbiAgICAgICAgICBmaXJzdCgpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZVRvRXhwYW5kID0gbm9kZS5jaGlsZHJlbi5maW5kKFxuICAgICAgICAgICAgY2hpbGROb2RlID0+IGNoaWxkTm9kZS5tbz8uaWQgJiYgaWRzLmluY2x1ZGVzKGNoaWxkTm9kZS5tby5pZClcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChub2RlVG9FeHBhbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kQWxsKFxuICAgICAgICAgICAgICBub2RlVG9FeHBhbmQsXG4gICAgICAgICAgICAgIGlkcy5maWx0ZXIoaWQgPT4gaWQgIT09IG5vZGVUb0V4cGFuZC5tby5pZClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBsYWJlbChtbzogSU1hbmFnZWRPYmplY3QpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBtby5uYW1lIHx8XG4gICAgICAodGhpcy5pc0RldmljZShtbykgJiZcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZ2V0dGV4dCgnRGV2aWNlIHt7aWR9fScpLCB7IGlkOiBtby5pZCB9KSkgfHxcbiAgICAgICctLSdcbiAgICApO1xuICB9XG5cbiAgaWNvbihtbzogSU1hbmFnZWRPYmplY3QsIG9wZW4/OiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaWNvbihtbywgb3Blbik7XG4gIH1cblxuICBpc0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0dyb3VwKG1vKTtcbiAgfVxuXG4gIGlzRHluYW1pY0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0R5bmFtaWNHcm91cChtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlcihtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXJBY3RpdmUobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlckFjdGl2ZShtbyk7XG4gIH1cblxuICBpc0Fzc2V0KG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0Fzc2V0KG1vKTtcbiAgfVxuXG4gIGlzQW55R3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzQW55R3JvdXAobW8pO1xuICB9XG5cbiAgaXNEZXZpY2UobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGV2aWNlKG1vKTtcbiAgfVxuXG4gIGNyZWF0ZVJvb3ROb2RlKGNvbmZpZzogTmF2aWdhdG9yTm9kZURhdGEgPSB7fSkge1xuICAgIHRoaXMucm9vdE5vZGUgPSB0aGlzLmNyZWF0ZUFzc2V0Tm9kZSh7XG4gICAgICByb290OiB0cnVlLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgcHJpb3JpdHk6IHRoaXMubW9kdWxlQ29uZmlnLnJvb3ROb2RlUHJpb3JpdHksXG4gICAgICBmZWF0dXJlSWQ6ICdncm91cHMnXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucm9vdE5vZGU7XG4gIH1cblxuICBjcmVhdGVEeW5hbWljR3JvdXBOb2RlKGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgRHluYW1pY0dyb3VwTm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQXNzZXROb2RlKGNvbmZpZzogUGFydGlhbDxBc3NldE5vZGU+KSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldE5vZGUodGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUNoaWxkTm9kZShtYW5hZ2VkT2JqZWN0LCBjb25maWc6IFBhcnRpYWw8QXNzZXROb2RlPikge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gbWFuYWdlZE9iamVjdDtcbiAgICBjb25maWcubW8gPSBtYW5hZ2VkT2JqZWN0O1xuICAgIGlmICh0eXBlID09PSBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUR5bmFtaWNHcm91cE5vZGUoY29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQXNzZXROb2RlKGNvbmZpZyk7XG4gIH1cblxuICBnZXRSb290Tm9kZXMoY3VzdG9tRmlsdGVyPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIG9ubHlSb290czogIXRoaXMub3B0aW9uc1NlcnZpY2UuZGlzYWJsZU9ubHlSb290c1F1ZXJ5LFxuICAgICAgcXVlcnk6IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeSh0aGlzLm5hdlJvb3RRdWVyeUZpbHRlcigpKVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSB7IC4uLmRlZmF1bHRGaWx0ZXIsIC4uLmN1c3RvbUZpbHRlciB9O1xuXG4gICAgLy8gZHVlIHRvIEJFIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zIHdlIGRvIG5vdCBhbGxvdyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgZm9yIGEgdXNlciB3aXRob3V0IGludmVudG9yeSByb2xlc1xuICAgIGlmIChcbiAgICAgICF0aGlzLnVzZXIuaGFzQW55Um9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCBbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX1JFQUQsXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfTUFOQUdFRF9PQkpFQ1RfUkVBRFxuICAgICAgXSlcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBncm91cEZpbHRlci5xdWVyeTtcbiAgICAgIE9iamVjdC5hc3NpZ24oZ3JvdXBGaWx0ZXIsIHtcbiAgICAgICAgZnJhZ21lbnRUeXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlLFxuICAgICAgICBvbmx5Um9vdHM6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkubGlzdCh0aGlzLmNyZWF0ZUZpbHRlcihncm91cEZpbHRlcikpO1xuICB9XG5cbiAgZ2V0QWxsSW52ZW50b3JpZXMoY3VzdG9tRmlsdGVyPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSB7IC4uLmRlZmF1bHRGaWx0ZXIsIC4uLmN1c3RvbUZpbHRlciB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKGdyb3VwRmlsdGVyKSk7XG4gIH1cblxuICBnZXRHcm91cEl0ZW1zKG1vSWQ6IHN0cmluZywgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9LCB3aXRoQ2hpbGRyZW4gPSBmYWxzZSwgZmlsdGVyUXVlcnkgPSAnJykge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ3JvdXBRdWVyeUZpbHRlcihtb0lkLCBmaWx0ZXJRdWVyeSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5jaGlsZEFzc2V0c0xpc3QobW9JZCwgeyAuLi5xdWVyeUZpbHRlciwgLi4uZXh0cmFGaWx0ZXIgfSk7XG4gIH1cblxuICBnZXRVbmFzc2lnbmVkRGV2aWNlcyh3aXRoQ2hpbGRyZW4gPSBmYWxzZSwgZmlsdGVyUXVlcnkgPSAnJykge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyOiBhbnkgPSB7XG4gICAgICBmcmFnbWVudFR5cGU6ICdjOHlfSXNEZXZpY2UnLFxuICAgICAgb25seVJvb3RzOiB0cnVlLFxuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcTogdGhpcy5nZXRVbmFzc2lnbmVkRGV2aWNlc1F1ZXJ5U3RyKGZpbHRlclF1ZXJ5KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIocXVlcnlGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldER5bmFtaWNHcm91cEl0ZW1zKGdyb3VwUXVlcnk6IHN0cmluZywgZmlsdGVyT2JqOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IHsgcXVlcnksIC4uLnF1ZXJ5UGFyYW1zIH0gPSBmaWx0ZXJPYmo7XG4gICAgY29uc3Qgb3JkZXJCeVF1ZXJ5ID0gcXVlcnk7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICBxOiB0aGlzLmJ1aWxkQ29tYmluZWRRdWVyeShncm91cFF1ZXJ5LCBvcmRlckJ5UXVlcnkpLFxuICAgICAgLi4ucXVlcnlQYXJhbXNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKHF1ZXJ5RmlsdGVyKSk7XG4gIH1cblxuICBnZXREZXZpY2VDaGlsZHJlbihcbiAgICBtb0lkOiBzdHJpbmcsXG4gICAgZXh0cmFGaWx0ZXI6IG9iamVjdCA9IHt9LFxuICAgIGZpbHRlclF1ZXJ5ID0gJycsXG4gICAgd2l0aENoaWxkcmVuID0gZmFsc2VcbiAgKSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICB3aXRoQ2hpbGRyZW4sXG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICBxdWVyeTogdGhpcy5ncm91cFF1ZXJ5RmlsdGVyKG1vSWQsIGZpbHRlclF1ZXJ5KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5LmNoaWxkRGV2aWNlc0xpc3QobW9JZCwgeyAuLi5xdWVyeUZpbHRlciwgLi4uZXh0cmFGaWx0ZXIgfSk7XG4gIH1cblxuICBnZXRVbmFzc2lnbmVkRGV2aWNlc1F1ZXJ5U3RyKGZpbHRlclF1ZXJ5KTogc3RyaW5nIHtcbiAgICBjb25zdCBoYXNHcm91cElkID0gZmlsdGVyUXVlcnkuaW5jbHVkZXMoJ2J5Z3JvdXBpZCcpO1xuICAgIC8vIEZldGNoIGFsbCB1bmFzc2lnbmVkIGRldmljZXMuXG4gICAgY29uc3QgZGVmYXVsdFF1ZXJ5U3RyID0gJyRvcmRlcmJ5PW5hbWUnO1xuXG4gICAgLy8gZmlsdGVyUXVlcnkgaXMgYSBjdXN0b20gcXVlcnkgdG8gZmV0Y2ggdW5hc3NpZ25lZCBkZXZpY2VzIGZpbHRlcmVkIGJ5IG5hbWUuXG4gICAgcmV0dXJuIGhhc0dyb3VwSWQgfHwgIWZpbHRlclF1ZXJ5ID8gZGVmYXVsdFF1ZXJ5U3RyIDogZmlsdGVyUXVlcnk7XG4gIH1cblxuICBncm91cFF1ZXJ5RmlsdGVyKG1vSWQ6IHN0cmluZywgZmlsdGVyUXVlcnk/OiBzdHJpbmcpIHtcbiAgICBpZiAoIWZpbHRlclF1ZXJ5KSB7XG4gICAgICByZXR1cm4gYCRmaWx0ZXI9KGJ5Z3JvdXBpZCgke21vSWR9KSkkb3JkZXJieT1uYW1lYDtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlclF1ZXJ5O1xuICB9XG5cbiAgbmF2Um9vdFF1ZXJ5RmlsdGVyKCkge1xuICAgIGNvbnN0IG5hdlJvb3RGaWx0ZXIgPSB0aGlzLnJvb3RRdWVyeUZpbHRlcigpO1xuICAgIG5hdlJvb3RGaWx0ZXIuX19vcmRlcmJ5ID0gW3sgbmFtZTogMSB9XTtcbiAgICByZXR1cm4gbmF2Um9vdEZpbHRlcjtcbiAgfVxuXG4gIHJvb3RRdWVyeUZpbHRlcigpIHtcbiAgICBjb25zdCB7IG1vZHVsZUNvbmZpZyB9ID0gdGhpcztcbiAgICBjb25zdCByb290RmlsdGVyID0gdGhpcy5vcHRpb25zU2VydmljZS5kaXNhYmxlT25seVJvb3RzUXVlcnlcbiAgICAgID8ge1xuICAgICAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50Lmdyb3VwVHlwZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgX19vcmRlcmJ5OiBbXVxuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBfX2ZpbHRlcjoge1xuICAgICAgICAgICAgX19oYXM6IEdyb3VwRnJhZ21lbnQuZ3JvdXBGcmFnbWVudFR5cGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9fb3JkZXJieTogW11cbiAgICAgICAgfTtcbiAgICBpZiAobW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICBfX2FuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIF9faGFzOiBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cEZyYWdtZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBfX25vdDogeyBfX2hhczogYCR7R3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudH0uaW52aXNpYmxlYCB9IH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB0aGlzLnF1ZXJpZXNVdGlsLmFkZE9yRmlsdGVyKHJvb3RGaWx0ZXIsIHF1ZXJ5RmlsdGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvb3RGaWx0ZXI7XG4gIH1cblxuICBvblVwZGF0ZSh7IG1vLCByb290IH0pIHtcbiAgICBpZiAobW8uaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmhvb2tSZXNwb25zZShcbiAgICAgICAgICAoeyB1cmwsIG1ldGhvZCB9KSA9PlxuICAgICAgICAgICAgWydQVVQnLCAnREVMRVRFJywgJ1BPU1QnXS5pbmNsdWRlcyhtZXRob2QpICYmXG4gICAgICAgICAgICBSZWdFeHAoYCgoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvJHttby5pZH1gKS50ZXN0KFxuICAgICAgICAgICAgICB1cmxcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZHJhZ2dlZERhdGEpLFxuICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5leGNsdWRlUGVybWlzc2lvbkNhbGwoKSxcbiAgICAgICAgICBtZXJnZU1hcCh0aGlzLmFwaVNlcnZpY2UucmVzb2x2ZURhdGE8SU1hbmFnZWRPYmplY3Q+KSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gIXJlc3BvbnNlPy5kYXRhPy5jOHlfRGFzaGJvYXJkKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAocm9vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBSZWdFeHAoJygoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvPyQnKS50ZXN0KHVybCkgJiZcbiAgICAgICAgICAgIG1ldGhvZCA9PT0gJ1BPU1QnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhPElNYW5hZ2VkT2JqZWN0PiksXG4gICAgICAgICAgZmlsdGVyKHJlc3BvbnNlID0+IHRoaXMuaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGlzTmV3TWFuYWdlZE9iamVjdFJvb3QocmVzcG9uc2U6IFBhcnRpYWw8SVJlc3VsdDxJTWFuYWdlZE9iamVjdD4+ID0ge30pIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHJlc3BvbnNlO1xuICAgIGxldCBpc1Jvb3RBc3NldCA9IGZhbHNlO1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZV07XG4gICAgICBpZiAoIWlzUm9vdEFzc2V0ICYmIHRoaXMubW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICAgIGlzUm9vdEFzc2V0ID0gISFkYXRhW0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNSb290QXNzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgaXQgaXMgcG9zc2libGUgdG8gZHJvcCBhIG5vZGUgYWZ0ZXIgZHJhZ2dpbmcuXG4gICAqIEBwYXJhbSBkcm9wT25Sb290IElzIHRoZSBkcm9wIHBlcmZvcm1lZCBvbiB0aGUgcm9vdCBub2RlXG4gICAqL1xuICBjYW5Ecm9wTm9kZShkcm9wT25Sb290OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFkcm9wT25Sb290IHx8XG4gICAgICB0aGlzLnVzZXIuaGFzQW55Um9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCBbXG4gICAgICAgIFBlcm1pc3Npb25zLlJPTEVfSU5WRU5UT1JZX0FETUlOLFxuICAgICAgICBQZXJtaXNzaW9ucy5ST0xFX01BTkFHRURfT0JKRUNUX0FETUlOXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlcmUgY291bGQgYmUgbXVsdGlwbGUgYnJlYWRjcnVtYnMgZm9yIGRldmljZXMsXG4gICAqIHNvIHdlIHNldCBhIHByZWZlcnJlZCBvbmUgb24gY2xpY2sgb24gYSBkZXZpY2UuXG4gICAqIEBwYXJhbSBwYXJlbnRzIFRoZSBwYXJlbnQgbm9kZXMgb2YgdGhlIGRldmljZSB0byBzZWxlY3QgdGhlIHByZWZlcmVkIG9uZS5cbiAgICovXG4gIHByZWZlckJyZWFkY3J1bWIocGFyZW50czogTmF2aWdhdG9yTm9kZVtdKSB7XG4gICAgaWYgKHBhcmVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLnNlbGVjdFByZWZlcnJlZEJ5UGF0aChwYXJlbnRzWzBdLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVGaWx0ZXIoZXh0cmFQYXJhbXM6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgY3VycmVudFBhZ2U6IDEsXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHBhZ2VTaXplOiAxMFxuICAgIH07XG4gICAgcmV0dXJuIHsgLi4ucGFyYW1zLCAuLi5leHRyYVBhcmFtcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbWJpbmVkUXVlcnkocXVlcnlBLCBxdWVyeUIpIHtcbiAgICBsZXQgY29tYmluZWRRdWVyeTtcbiAgICBpZiAocXVlcnlBICYmIHF1ZXJ5Qikge1xuICAgICAgY29uc3QgZmlsdGVyUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmJ1aWxkUXVlcnkoW1xuICAgICAgICB7XG4gICAgICAgICAgX191c2VGaWx0ZXJRdWVyeVN0cmluZzogcXVlcnlBXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBfX3VzZUZpbHRlclF1ZXJ5U3RyaW5nOiBxdWVyeUJcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgICBjb25zdCBvcmJlckJ5UXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmV4dHJhY3RBbmRNZXJnZU9yZGVyQnlzKFtxdWVyeUEsIHF1ZXJ5Ql0pO1xuICAgICAgY29tYmluZWRRdWVyeSA9IGAke2ZpbHRlclF1ZXJ5fSAke29yYmVyQnlRdWVyeX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21iaW5lZFF1ZXJ5ID0gcXVlcnlBIHx8IHF1ZXJ5QiB8fCAnJztcbiAgICB9XG4gICAgcmV0dXJuIGNvbWJpbmVkUXVlcnk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,6 @@ import { Injectable, Injector } from '@angular/core';
|
|
|
2
2
|
import { OptionsService } from '../common/options.service';
|
|
3
3
|
import { documentationItems } from './defaults.items';
|
|
4
4
|
import { AppStateService } from '../common/ui-state.service';
|
|
5
|
-
import { gettext } from '../i18n/gettext';
|
|
6
5
|
import { HOOK_DOCS } from './docs.models';
|
|
7
6
|
import { ExtensionPointWithoutStateForPlugins, fromTriggerOnce, getInjectedHooks } from '../common/extension-hooks';
|
|
8
7
|
import { Router } from '@angular/router';
|
|
@@ -65,7 +64,6 @@ export class DocsService extends ExtensionPointWithoutStateForPlugins {
|
|
|
65
64
|
get() {
|
|
66
65
|
// use the function as a factory
|
|
67
66
|
const { links, noDefault, excludeDefault = [] } = this.options.get('docs', {});
|
|
68
|
-
const { supportUrl } = this.app.state;
|
|
69
67
|
let staticLinks = noDefault
|
|
70
68
|
? []
|
|
71
69
|
: documentationItems
|
|
@@ -81,14 +79,6 @@ export class DocsService extends ExtensionPointWithoutStateForPlugins {
|
|
|
81
79
|
});
|
|
82
80
|
staticLinks = staticLinks.concat(links);
|
|
83
81
|
}
|
|
84
|
-
if (supportUrl) {
|
|
85
|
-
staticLinks.push({
|
|
86
|
-
icon: 'comments',
|
|
87
|
-
label: gettext('Forum support'),
|
|
88
|
-
url: supportUrl,
|
|
89
|
-
type: 'doc'
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
82
|
return staticLinks;
|
|
93
83
|
}
|
|
94
84
|
setupItemsObservable() {
|
|
@@ -133,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
133
123
|
providedIn: 'root'
|
|
134
124
|
}]
|
|
135
125
|
}], ctorParameters: function () { return [{ type: i1.OptionsService }, { type: i2.AppStateService }, { type: i0.Injector }, { type: i3.Router }, { type: i4.PluginsResolveService }]; } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kb2NzL2RvY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQVcsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLGVBQWUsRUFDZixnQkFBZ0IsRUFDakIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7QUFLbkQsTUFBTSxPQUFPLFdBQVksU0FBUSxvQ0FBNkM7SUFLNUUsWUFDVSxPQUF1QixFQUN2QixHQUFvQixFQUM1QixZQUFzQixFQUNkLE1BQWMsRUFDdEIsT0FBOEI7UUFFOUIsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQU5yQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQUVwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FB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LFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBkb2N1bWVudGF0aW9uSXRlbXMgfSBmcm9tICcuL2RlZmF1bHRzLml0ZW1zJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgRG9jTGluaywgSE9PS19ET0NTLCBEb2NMaW5rV2l0aExhYmVsIH0gZnJvbSAnLi9kb2NzLm1vZGVscyc7XG5pbXBvcnQge1xuICBFeHRlbnNpb25Qb2ludFdpdGhvdXRTdGF0ZUZvclBsdWdpbnMsXG4gIGZyb21UcmlnZ2VyT25jZSxcbiAgZ2V0SW5qZWN0ZWRIb29rc1xufSBmcm9tICcuLi9jb21tb24vZXh0ZW5zaW9uLWhvb2tzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgZmlyc3QsIGZpbHRlciwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2NzU2VydmljZSBleHRlbmRzIEV4dGVuc2lvblBvaW50V2l0aG91dFN0YXRlRm9yUGx1Z2luczxEb2NMaW5rPiB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IGRvY3VtZW50YXRpb24gVVJMLlxuICAgKi9cbiAgcmVhZG9ubHkgREVGQVVMVF9ET0NTX0JBU0VfVVJMID0gJ2h0dHBzOi8vd3d3LmN1bXVsb2NpdHkuY29tL2d1aWRlcy97eyB2ZXJzaW9uIH19JztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGFwcDogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHJvb3RJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwbHVnaW5zOiBQbHVnaW5zUmVzb2x2ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocm9vdEluamVjdG9yLCBwbHVnaW5zKTtcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuc2V0dXBJdGVtc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldEJhc2VVcmwodWlWZXJzaW9uPzogc3RyaW5nIHwgeyBuZ3g6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICBjb25zdCBkb2NzQmFzZVVybCA9IHRoaXMub3B0aW9ucy5nZXQ8c3RyaW5nPignZG9jc0Jhc2VVcmwnLCB0aGlzLkRFRkFVTFRfRE9DU19CQVNFX1VSTCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXJsV2l0aERvY3NWZXJzaW9uKGRvY3NCYXNlVXJsLCB1aVZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgVVJMIGFuZCByZXBsYWNlcyBhbGwgYHt7IHZlcnNpb24gfX1gIHBsYWNlaG9sZGVycyB3aXRoIHRoZSByZWxldmFudCBkb2NzIHZlcnNpb25cbiAgICogKHRoZSB2ZXJzaW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgYXBwIHN0YXRlIG9yIGZyb20gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcikuXG4gICAqIEBwYXJhbSB1cmwgQW55IFVSTCB0aGF0IGNvbnRhaW5zIGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlcnMuXG4gICAqIEBwYXJhbSB1aVZlcnNpb24gQSB2ZXJzaW9uIHN0cmluZyBvciBvYmplY3QsIGRlZmF1bHRzIHRvIHRoZSBhcHAgc3RhdGUgdmVyc2lvbi5cbiAgICogQHJldHVybnMgVGhlIFVSTCB3aXRoIHJlcGxhY2VkIGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlcnMuXG4gICAqL1xuICBnZXRVcmxXaXRoRG9jc1ZlcnNpb24oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgdWlWZXJzaW9uOiBzdHJpbmcgfCB7IG5neDogc3RyaW5nIH0gPSB0aGlzLmFwcC51aVZlcnNpb25cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCB2ZXJzaW9uOiBzdHJpbmcgPSB0eXBlb2YgdWlWZXJzaW9uID09PSAnc3RyaW5nJyA/IHVpVmVyc2lvbiA6IGdldCh1aVZlcnNpb24sICduZ3gnKTtcbiAgICBsZXQgZG9jc1ZlcnNpb24gPSAnJztcbiAgICBpZiAoIShpc1VuZGVmaW5lZCh2ZXJzaW9uKSB8fCB2ZXJzaW9uID09PSAnJykpIHtcbiAgICAgIGRvY3NWZXJzaW9uID0gdGhpcy5nZXREb2NzVmVyc2lvbkZvclVpVmVyc2lvbih2ZXJzaW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybC5yZXBsYWNlKC97e1xccyp2ZXJzaW9uXFxzKn19L2csIGRvY3NWZXJzaW9uKS5yZXBsYWNlKC9cXC8rJC9nLCAnJyk7XG4gIH1cblxuICBnZXQgdGVtcGxhdGVTdHIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldCgnZ3VpZGVIcmVmVGVtcGxhdGUnLCAnJHtkb2NzQmFzZVVybH0ke3BhcnRpYWxVcmx9Jyk7XG4gIH1cblxuICBnZXRVc2VyR3VpZGVMaW5rKGxpbmspIHtcbiAgICBpZiAoL15odHRwcz86Ly50ZXN0KGxpbmspKSB7XG4gICAgICByZXR1cm4gbGluaztcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0QmFzZVVybCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldExpbmsodGhpcy50ZW1wbGF0ZVN0ciwgbGluayk7XG4gIH1cblxuICBsaXN0KCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihpID0+ICEhaS5sZW5ndGgpLFxuICAgICAgICBmaXJzdCgpXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgLy8gdXNlIHRoZSBmdW5jdGlvbiBhcyBhIGZhY3RvcnlcbiAgICBjb25zdCB7XG4gICAgICBsaW5rcyxcbiAgICAgIG5vRGVmYXVsdCxcbiAgICAgIGV4Y2x1ZGVEZWZhdWx0ID0gW11cbiAgICB9ID0gdGhpcy5vcHRpb25zLmdldDx7XG4gICAgICBsaW5rcz86IERvY0xpbmtbXTtcbiAgICAgIG5vRGVmYXVsdD86IGJvb2xlYW47XG4gICAgICBleGNsdWRlRGVmYXVsdD86IChzdHJpbmcgfCBSZWdFeHApW107XG4gICAgfT4oJ2RvY3MnLCB7fSk7XG4gICAgY29uc3QgeyBzdXBwb3J0VXJsIH0gPSB0aGlzLmFwcC5zdGF0ZTtcbiAgICBsZXQgc3RhdGljTGlua3M6IERvY0xpbmtbXSA9IG5vRGVmYXVsdFxuICAgICAgPyBbXVxuICAgICAgOiBkb2N1bWVudGF0aW9uSXRlbXNcbiAgICAgICAgICAubWFwKChpdGVtOiBEb2NMaW5rV2l0aExhYmVsKSA9PiAoeyAuLi5pdGVtLCB1cmw6IHRoaXMuZ2V0VXNlckd1aWRlTGluayhpdGVtLnVybCkgfSkpXG4gICAgICAgICAgLmZpbHRlcigoeyB1cmwgfSkgPT4gIWV4Y2x1ZGVEZWZhdWx0LnNvbWUoZSA9PiBuZXcgUmVnRXhwKGUpLnRlc3QodXJsKSkpO1xuXG4gICAgaWYgKGxpbmtzKSB7XG4gICAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgbGlua3MubWFwKChsbms6IERvY0xpbmspID0+IHtcbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGxuay50eXBlKSkge1xuICAgICAgICAgIGxuay50eXBlID0gJ2RvYyc7XG4gICAgICAgICAgcmV0dXJuIGxuaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBzdGF0aWNMaW5rcyA9IHN0YXRpY0xpbmtzLmNvbmNhdChsaW5rcyk7XG4gICAgfVxuICAgIGlmIChzdXBwb3J0VXJsKSB7XG4gICAgICBzdGF0aWNMaW5rcy5wdXNoKHtcbiAgICAgICAgaWNvbjogJ2NvbW1lbnRzJyxcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0ZvcnVtIHN1cHBvcnQnKSxcbiAgICAgICAgdXJsOiBzdXBwb3J0VXJsLFxuICAgICAgICB0eXBlOiAnZG9jJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzdGF0aWNMaW5rcztcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cEl0ZW1zT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPERvY0xpbmtbXT4ge1xuICAgIGNvbnN0IHN1cHBvcnRVcmxSZWZyZXNoVHJpZ2dlciA9IHRoaXMuYXBwLm1hcCgoeyBzdXBwb3J0VXJsIH0pID0+IHN1cHBvcnRVcmwpO1xuICAgIHJldHVybiBmcm9tVHJpZ2dlck9uY2U8RG9jTGluaz4oXG4gICAgICB0aGlzLnJvdXRlcixcbiAgICAgIFtzdXBwb3J0VXJsUmVmcmVzaFRyaWdnZXIsIHRoaXMucmVmcmVzaCRdLFxuICAgICAgW2dldEluamVjdGVkSG9va3M8RG9jTGluaz4oSE9PS19ET0NTLCB0aGlzLmluamVjdG9ycyksICgpID0+IHRoaXMuZmFjdG9yaWVzLCB0aGlzXVxuICAgICkucGlwZShzaGFyZVJlcGxheSgxKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmsodGVtcGxhdGVTdHIsIHBhcnRpYWxMaW5rKSB7XG4gICAgaWYgKCF0ZW1wbGF0ZVN0cikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlU3RyXG4gICAgICAucmVwbGFjZSgvXFwke2RvY3NCYXNlVXJsfS8sIHRoaXMuZ2V0QmFzZVVybCgpKVxuICAgICAgLnJlcGxhY2UoL1xcJHtwYXJ0aWFsVXJsfS8sIHRoaXMucHJlZml4V2l0aFNsYXNoKHBhcnRpYWxMaW5rKSk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpeFdpdGhTbGFzaChwYXJ0aWFsTGluayA9ICcnKSB7XG4gICAgY29uc3Qgc2hvdWxkUHJlZml4ID0gIShwYXJ0aWFsTGluayAmJiAvXlxcLy8udGVzdChwYXJ0aWFsTGluaykpO1xuICAgIGNvbnN0IHByZWZpeCA9IHNob3VsZFByZWZpeCA/ICcvJyA6ICcnO1xuICAgIHJldHVybiBgJHtwcmVmaXh9JHtwYXJ0aWFsTGlua31gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1vc3QgcmVsZXZhbnQgdmVyc2lvbiBvZiBkb2N1bWVudGF0aW9uIGZvciB0aGUgZ2l2ZW4gdmVyc2lvbiBvZiBVSS5cbiAgICogRm9yIG1haW50ZW5hbmNlIHZlcnNpb25zLCBpdCdzIHRoZSBmaXJzdCB2ZXJzaW9uIGluIHRoZSBsaW5lLCBlLmcuIDEwMTcuMC4xMjMgLT4gMTAuMTcuMC5cbiAgICogRm9yIGRldmVsb3AgdmVyc2lvbnMsIGl0J3MgdGhlIG5leHQgbWlub3Igb25lLCBlLmcuIDEwMTcuMTIzLjAtU05BUFNIT1QgLT4gMTAuMTguMC5cbiAgICpcbiAgICogQHBhcmFtIHVpVmVyc2lvbiBUaGUgdmVyc2lvbiBvZiBVSS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0RG9jc1ZlcnNpb25Gb3JVaVZlcnNpb24odWlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbbWFqb3JNaW5vclN0ciwgcGF0Y2hTdHJdID0gdWlWZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgcGF0Y2hOdW1iZXIgPSBwYXJzZUludChwYXRjaFN0ciwgMTApO1xuICAgIGNvbnN0IHRha2VOZXh0TWlub3IgPSBwYXRjaE51bWJlciA+IDA7XG4gICAgY29uc3QgbWFqb3JOdW1iZXIgPSBNYXRoLmZsb29yKHBhcnNlSW50KG1ham9yTWlub3JTdHIsIDEwKSAvIDEwMCk7XG4gICAgY29uc3QgbWlub3JOdW1iZXIgPSBwYXJzZUludChtYWpvck1pbm9yU3RyLCAxMCkgLSBtYWpvck51bWJlciAqIDEwMCArICh0YWtlTmV4dE1pbm9yID8gMSA6IDApO1xuICAgIHJldHVybiBgJHttYWpvck51bWJlcn0uJHttaW5vck51bWJlcn0uMGA7XG4gIH1cbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kb2NzL2RvY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBVyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsZUFBZSxFQUNmLGdCQUFnQixFQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7OztBQUtuRCxNQUFNLE9BQU8sV0FBWSxTQUFRLG9DQUE2QztJQUs1RSxZQUNVLE9BQXVCLEVBQ3ZCLEdBQW9CLEVBQzVCLFlBQXNCLEVBQ2QsTUFBYyxFQUN0QixPQUE4QjtRQUU5QixLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTnJCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBRXBCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFSeEI7O1dBRUc7UUFDTSwwQkFBcUIsR0FBRyxpREFBaUQsQ0FBQztRQVNqRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBb0M7UUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQVMsYUFBYSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQ25CLEdBQVcsRUFDWCxZQUFzQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVM7UUFFeEQsTUFBTSxPQUFPLEdBQVcsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUYsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDN0MsV0FBVyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4RDtRQUNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLDZCQUE2QixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQUk7UUFDbkIsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDdkIsS0FBSyxFQUFFLENBQ1I7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsR0FBRztRQUNELGdDQUFnQztRQUNoQyxNQUFNLEVBQ0osS0FBSyxFQUNMLFNBQVMsRUFDVCxjQUFjLEdBQUcsRUFBRSxFQUNwQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUlqQixNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDZixJQUFJLFdBQVcsR0FBYyxTQUFTO1lBQ3BDLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLGtCQUFrQjtpQkFDZixHQUFHLENBQUMsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNwRixNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9FLElBQUksS0FBSyxFQUFFO1lBQ1QsMEJBQTBCO1lBQzFCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFZLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUN6QixHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDakIsT0FBTyxHQUFHLENBQUM7aUJBQ1o7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUUsT0FBTyxlQUFlLENBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQ1gsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3pDLENBQUMsZ0JBQWdCLENBQVUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUNuRixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTyxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVc7UUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU8sV0FBVzthQUNmLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDN0MsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQVcsR0FBRyxFQUFFO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxHQUFHLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLDBCQUEwQixDQUFDLFNBQWlCO1FBQ2xELE1BQU0sQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RixPQUFPLEdBQUcsV0FBVyxJQUFJLFdBQVcsSUFBSSxDQUFDO0lBQzNDLENBQUM7O3dHQXBJVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBkb2N1bWVudGF0aW9uSXRlbXMgfSBmcm9tICcuL2RlZmF1bHRzLml0ZW1zJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IERvY0xpbmssIEhPT0tfRE9DUywgRG9jTGlua1dpdGhMYWJlbCB9IGZyb20gJy4vZG9jcy5tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uUG9pbnRXaXRob3V0U3RhdGVGb3JQbHVnaW5zLFxuICBmcm9tVHJpZ2dlck9uY2UsXG4gIGdldEluamVjdGVkSG9va3Ncbn0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIGZpcnN0LCBmaWx0ZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UgfSBmcm9tICcuLi9wbHVnaW5zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG9jc1NlcnZpY2UgZXh0ZW5kcyBFeHRlbnNpb25Qb2ludFdpdGhvdXRTdGF0ZUZvclBsdWdpbnM8RG9jTGluaz4ge1xuICAvKipcbiAgICogRGVmYXVsdCBkb2N1bWVudGF0aW9uIFVSTC5cbiAgICovXG4gIHJlYWRvbmx5IERFRkFVTFRfRE9DU19CQVNFX1VSTCA9ICdodHRwczovL3d3dy5jdW11bG9jaXR5LmNvbS9ndWlkZXMve3sgdmVyc2lvbiB9fSc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHA6IEFwcFN0YXRlU2VydmljZSxcbiAgICByb290SW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcGx1Z2luczogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHJvb3RJbmplY3RvciwgcGx1Z2lucyk7XG4gICAgdGhpcy5pdGVtcyQgPSB0aGlzLnNldHVwSXRlbXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRCYXNlVXJsKHVpVmVyc2lvbj86IHN0cmluZyB8IHsgbmd4OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9jc0Jhc2VVcmwgPSB0aGlzLm9wdGlvbnMuZ2V0PHN0cmluZz4oJ2RvY3NCYXNlVXJsJywgdGhpcy5ERUZBVUxUX0RPQ1NfQkFTRV9VUkwpO1xuICAgIHJldHVybiB0aGlzLmdldFVybFdpdGhEb2NzVmVyc2lvbihkb2NzQmFzZVVybCwgdWlWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIFVSTCBhbmQgcmVwbGFjZXMgYWxsIGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlcnMgd2l0aCB0aGUgcmVsZXZhbnQgZG9jcyB2ZXJzaW9uXG4gICAqICh0aGUgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIGFwcCBzdGF0ZSBvciBmcm9tIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIpLlxuICAgKiBAcGFyYW0gdXJsIEFueSBVUkwgdGhhdCBjb250YWlucyBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXJzLlxuICAgKiBAcGFyYW0gdWlWZXJzaW9uIEEgdmVyc2lvbiBzdHJpbmcgb3Igb2JqZWN0LCBkZWZhdWx0cyB0byB0aGUgYXBwIHN0YXRlIHZlcnNpb24uXG4gICAqIEByZXR1cm5zIFRoZSBVUkwgd2l0aCByZXBsYWNlZCBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXJzLlxuICAgKi9cbiAgZ2V0VXJsV2l0aERvY3NWZXJzaW9uKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHVpVmVyc2lvbjogc3RyaW5nIHwgeyBuZ3g6IHN0cmluZyB9ID0gdGhpcy5hcHAudWlWZXJzaW9uXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmVyc2lvbjogc3RyaW5nID0gdHlwZW9mIHVpVmVyc2lvbiA9PT0gJ3N0cmluZycgPyB1aVZlcnNpb24gOiBnZXQodWlWZXJzaW9uLCAnbmd4Jyk7XG4gICAgbGV0IGRvY3NWZXJzaW9uID0gJyc7XG4gICAgaWYgKCEoaXNVbmRlZmluZWQodmVyc2lvbikgfHwgdmVyc2lvbiA9PT0gJycpKSB7XG4gICAgICBkb2NzVmVyc2lvbiA9IHRoaXMuZ2V0RG9jc1ZlcnNpb25Gb3JVaVZlcnNpb24odmVyc2lvbik7XG4gICAgfVxuICAgIHJldHVybiB1cmwucmVwbGFjZSgve3tcXHMqdmVyc2lvblxccyp9fS9nLCBkb2NzVmVyc2lvbikucmVwbGFjZSgvXFwvKyQvZywgJycpO1xuICB9XG5cbiAgZ2V0IHRlbXBsYXRlU3RyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXQoJ2d1aWRlSHJlZlRlbXBsYXRlJywgJyR7ZG9jc0Jhc2VVcmx9JHtwYXJ0aWFsVXJsfScpO1xuICB9XG5cbiAgZ2V0VXNlckd1aWRlTGluayhsaW5rKSB7XG4gICAgaWYgKC9eaHR0cHM/Oi8udGVzdChsaW5rKSkge1xuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICAgIGlmICh0aGlzLmdldEJhc2VVcmwgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRMaW5rKHRoaXMudGVtcGxhdGVTdHIsIGxpbmspO1xuICB9XG5cbiAgbGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoaSA9PiAhIWkubGVuZ3RoKSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIC8vIHVzZSB0aGUgZnVuY3Rpb24gYXMgYSBmYWN0b3J5XG4gICAgY29uc3Qge1xuICAgICAgbGlua3MsXG4gICAgICBub0RlZmF1bHQsXG4gICAgICBleGNsdWRlRGVmYXVsdCA9IFtdXG4gICAgfSA9IHRoaXMub3B0aW9ucy5nZXQ8e1xuICAgICAgbGlua3M/OiBEb2NMaW5rW107XG4gICAgICBub0RlZmF1bHQ/OiBib29sZWFuO1xuICAgICAgZXhjbHVkZURlZmF1bHQ/OiAoc3RyaW5nIHwgUmVnRXhwKVtdO1xuICAgIH0+KCdkb2NzJywge30pO1xuICAgIGxldCBzdGF0aWNMaW5rczogRG9jTGlua1tdID0gbm9EZWZhdWx0XG4gICAgICA/IFtdXG4gICAgICA6IGRvY3VtZW50YXRpb25JdGVtc1xuICAgICAgICAgIC5tYXAoKGl0ZW06IERvY0xpbmtXaXRoTGFiZWwpID0+ICh7IC4uLml0ZW0sIHVybDogdGhpcy5nZXRVc2VyR3VpZGVMaW5rKGl0ZW0udXJsKSB9KSlcbiAgICAgICAgICAuZmlsdGVyKCh7IHVybCB9KSA9PiAhZXhjbHVkZURlZmF1bHQuc29tZShlID0+IG5ldyBSZWdFeHAoZSkudGVzdCh1cmwpKSk7XG5cbiAgICBpZiAobGlua3MpIHtcbiAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICBsaW5rcy5tYXAoKGxuazogRG9jTGluaykgPT4ge1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQobG5rLnR5cGUpKSB7XG4gICAgICAgICAgbG5rLnR5cGUgPSAnZG9jJztcbiAgICAgICAgICByZXR1cm4gbG5rO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHN0YXRpY0xpbmtzID0gc3RhdGljTGlua3MuY29uY2F0KGxpbmtzKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRpY0xpbmtzO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwSXRlbXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8RG9jTGlua1tdPiB7XG4gICAgY29uc3Qgc3VwcG9ydFVybFJlZnJlc2hUcmlnZ2VyID0gdGhpcy5hcHAubWFwKCh7IHN1cHBvcnRVcmwgfSkgPT4gc3VwcG9ydFVybCk7XG4gICAgcmV0dXJuIGZyb21UcmlnZ2VyT25jZTxEb2NMaW5rPihcbiAgICAgIHRoaXMucm91dGVyLFxuICAgICAgW3N1cHBvcnRVcmxSZWZyZXNoVHJpZ2dlciwgdGhpcy5yZWZyZXNoJF0sXG4gICAgICBbZ2V0SW5qZWN0ZWRIb29rczxEb2NMaW5rPihIT09LX0RPQ1MsIHRoaXMuaW5qZWN0b3JzKSwgKCkgPT4gdGhpcy5mYWN0b3JpZXMsIHRoaXNdXG4gICAgKS5waXBlKHNoYXJlUmVwbGF5KDEpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGluayh0ZW1wbGF0ZVN0ciwgcGFydGlhbExpbmspIHtcbiAgICBpZiAoIXRlbXBsYXRlU3RyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGVtcGxhdGVTdHJcbiAgICAgIC5yZXBsYWNlKC9cXCR7ZG9jc0Jhc2VVcmx9LywgdGhpcy5nZXRCYXNlVXJsKCkpXG4gICAgICAucmVwbGFjZSgvXFwke3BhcnRpYWxVcmx9LywgdGhpcy5wcmVmaXhXaXRoU2xhc2gocGFydGlhbExpbmspKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlZml4V2l0aFNsYXNoKHBhcnRpYWxMaW5rID0gJycpIHtcbiAgICBjb25zdCBzaG91bGRQcmVmaXggPSAhKHBhcnRpYWxMaW5rICYmIC9eXFwvLy50ZXN0KHBhcnRpYWxMaW5rKSk7XG4gICAgY29uc3QgcHJlZml4ID0gc2hvdWxkUHJlZml4ID8gJy8nIDogJyc7XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3BhcnRpYWxMaW5rfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbW9zdCByZWxldmFudCB2ZXJzaW9uIG9mIGRvY3VtZW50YXRpb24gZm9yIHRoZSBnaXZlbiB2ZXJzaW9uIG9mIFVJLlxuICAgKiBGb3IgbWFpbnRlbmFuY2UgdmVyc2lvbnMsIGl0J3MgdGhlIGZpcnN0IHZlcnNpb24gaW4gdGhlIGxpbmUsIGUuZy4gMTAxNy4wLjEyMyAtPiAxMC4xNy4wLlxuICAgKiBGb3IgZGV2ZWxvcCB2ZXJzaW9ucywgaXQncyB0aGUgbmV4dCBtaW5vciBvbmUsIGUuZy4gMTAxNy4xMjMuMC1TTkFQU0hPVCAtPiAxMC4xOC4wLlxuICAgKlxuICAgKiBAcGFyYW0gdWlWZXJzaW9uIFRoZSB2ZXJzaW9uIG9mIFVJLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXREb2NzVmVyc2lvbkZvclVpVmVyc2lvbih1aVZlcnNpb246IHN0cmluZykge1xuICAgIGNvbnN0IFttYWpvck1pbm9yU3RyLCBwYXRjaFN0cl0gPSB1aVZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBjb25zdCBwYXRjaE51bWJlciA9IHBhcnNlSW50KHBhdGNoU3RyLCAxMCk7XG4gICAgY29uc3QgdGFrZU5leHRNaW5vciA9IHBhdGNoTnVtYmVyID4gMDtcbiAgICBjb25zdCBtYWpvck51bWJlciA9IE1hdGguZmxvb3IocGFyc2VJbnQobWFqb3JNaW5vclN0ciwgMTApIC8gMTAwKTtcbiAgICBjb25zdCBtaW5vck51bWJlciA9IHBhcnNlSW50KG1ham9yTWlub3JTdHIsIDEwKSAtIG1ham9yTnVtYmVyICogMTAwICsgKHRha2VOZXh0TWlub3IgPyAxIDogMCk7XG4gICAgcmV0dXJuIGAke21ham9yTnVtYmVyfS4ke21pbm9yTnVtYmVyfS4wYDtcbiAgfVxufVxuIl19
|
|
@@ -50,19 +50,13 @@ export class RegistrationDateDeviceGridColumn extends BaseColumn {
|
|
|
50
50
|
if (dates.after) {
|
|
51
51
|
const after = this.formatDate(dates.after);
|
|
52
52
|
filter.__and.push({
|
|
53
|
-
|
|
54
|
-
[this.path]: { __gt: after },
|
|
55
|
-
[`${this.path}.date`]: { __gt: after }
|
|
56
|
-
}
|
|
53
|
+
'creationTime.date': { __gt: after }
|
|
57
54
|
});
|
|
58
55
|
}
|
|
59
56
|
if (dates.before) {
|
|
60
57
|
const before = this.formatDate(dates.before);
|
|
61
58
|
filter.__and.push({
|
|
62
|
-
|
|
63
|
-
[this.path]: { __lt: before },
|
|
64
|
-
[`${this.path}.date`]: { __lt: before }
|
|
65
|
-
}
|
|
59
|
+
'creationTime.date': { __lt: before }
|
|
66
60
|
});
|
|
67
61
|
}
|
|
68
62
|
}
|
|
@@ -71,11 +65,11 @@ export class RegistrationDateDeviceGridColumn extends BaseColumn {
|
|
|
71
65
|
};
|
|
72
66
|
this.sortable = true;
|
|
73
67
|
this.sortingConfig = {
|
|
74
|
-
pathSortingConfigs: [{ path:
|
|
68
|
+
pathSortingConfigs: [{ path: 'creationTime.date' }]
|
|
75
69
|
};
|
|
76
70
|
}
|
|
77
71
|
formatDate(dateToFormat) {
|
|
78
72
|
return new Date(dateToFormat).toISOString();
|
|
79
73
|
}
|
|
80
74
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2aWNlLWdyaWQvY29sdW1ucy9yZWdpc3RyYXRpb24tZGF0ZS5kZXZpY2UtZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXBHLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxVQUFVO0lBQzlELFlBQVksbUJBQWtDO1FBQzVDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUNBQXFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLGtCQUFrQjtvQkFDdkIsZUFBZSxFQUFFO3dCQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUM7cUJBQ3ZEO29CQUNELFVBQVUsRUFBRTt3QkFDVjs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsR0FBRyxFQUFFLE9BQU87NEJBQ1osZUFBZSxFQUFFO2dDQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDOzZCQUM3Qjs0QkFDRCxvQkFBb0IsRUFBRTtnQ0FDcEIseUJBQXlCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNOzZCQUN6RDt5QkFDRjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsR0FBRyxFQUFFLFFBQVE7NEJBQ2IsZUFBZSxFQUFFO2dDQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDOzZCQUMzQjs0QkFDRCxvQkFBb0IsRUFBRTtnQ0FDcEIseUJBQXlCLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLOzZCQUN4RDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1lBQ0QsU0FBUyxFQUFFLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDOUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDMUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ2xCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTt3QkFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDM0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7NEJBQ2hCLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTt5QkFDckMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTt3QkFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDOzRCQUNoQixtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7eUJBQ3RDLENBQUMsQ0FBQztxQkFDSjtpQkFDRjtnQkFDRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1NBQ3BELENBQUM7SUFDSixDQUFDO0lBRVMsVUFBVSxDQUFDLFlBQW9CO1FBQ3ZDLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUNvbHVtbiwgQ29sdW1uQ29uZmlnLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBSZWdpc3RyYXRpb25EYXRlQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZWdpc3RyYXRpb24tZGF0ZS5jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbiBleHRlbmRzIEJhc2VDb2x1bW4ge1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsQ29sdW1uQ29uZmlnPzogQ29sdW1uQ29uZmlnKSB7XG4gICAgc3VwZXIoaW5pdGlhbENvbHVtbkNvbmZpZyk7XG5cbiAgICB0aGlzLnBhdGggPSAnY3JlYXRpb25UaW1lJztcbiAgICB0aGlzLm5hbWUgPSAncmVnaXN0cmF0aW9uRGF0ZSc7XG4gICAgdGhpcy5oZWFkZXIgPSBnZXR0ZXh0KCdSZWdpc3RyYXRpb24gZGF0ZScpO1xuICAgIHRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50ID0gUmVnaXN0cmF0aW9uRGF0ZUNlbGxSZW5kZXJlckNvbXBvbmVudDtcblxuICAgIHRoaXMuZmlsdGVyYWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJpbmdDb25maWcgPSB7XG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIGtleTogJ3JlZ2lzdHJhdGlvbkRhdGUnLFxuICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ1Nob3cgaXRlbXMgcmVnaXN0ZXJlZGBiZXR3ZWVuIGRhdGVzYCcpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkYXRlLXRpbWUnLFxuICAgICAgICAgICAgICBrZXk6ICdhZnRlcicsXG4gICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdmcm9tYGRhdGVgJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLm1heERhdGUnOiAobW9kZWw6IGFueSkgPT4gbW9kZWw/LmJlZm9yZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnZGF0ZS10aW1lJyxcbiAgICAgICAgICAgICAga2V5OiAnYmVmb3JlJyxcbiAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGdldHRleHQoJ3RvYGRhdGVgJylcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVPcHRpb25zLm1pbkRhdGUnOiAobW9kZWw6IGFueSkgPT4gbW9kZWw/LmFmdGVyXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBmb3JtR3JvdXA6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgZ2V0RmlsdGVyOiBtb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge307XG4gICAgICAgIGNvbnN0IGRhdGVzID0gbW9kZWwgJiYgbW9kZWwucmVnaXN0cmF0aW9uRGF0ZTtcbiAgICAgICAgaWYgKGRhdGVzICYmIChkYXRlcy5hZnRlciB8fCBkYXRlcy5iZWZvcmUpKSB7XG4gICAgICAgICAgZmlsdGVyLl9fYW5kID0gW107XG4gICAgICAgICAgaWYgKGRhdGVzLmFmdGVyKSB7XG4gICAgICAgICAgICBjb25zdCBhZnRlciA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlcy5hZnRlcik7XG4gICAgICAgICAgICBmaWx0ZXIuX19hbmQucHVzaCh7XG4gICAgICAgICAgICAgICdjcmVhdGlvblRpbWUuZGF0ZSc6IHsgX19ndDogYWZ0ZXIgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkYXRlcy5iZWZvcmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlcy5iZWZvcmUpO1xuICAgICAgICAgICAgZmlsdGVyLl9fYW5kLnB1c2goe1xuICAgICAgICAgICAgICAnY3JlYXRpb25UaW1lLmRhdGUnOiB7IF9fbHQ6IGJlZm9yZSB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5zb3J0YWJsZSA9IHRydWU7XG4gICAgdGhpcy5zb3J0aW5nQ29uZmlnID0ge1xuICAgICAgcGF0aFNvcnRpbmdDb25maWdzOiBbeyBwYXRoOiAnY3JlYXRpb25UaW1lLmRhdGUnIH1dXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb3JtYXREYXRlKGRhdGVUb0Zvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZVRvRm9ybWF0KS50b0lTT1N0cmluZygpO1xuICB9XG59XG4iXX0=
|