@c8y/ngx-components 1017.0.180 → 1017.0.182
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 +1 -1
- package/assets-navigator/group.service.d.ts +1 -1
- package/core/asset-types/asset-types.service.d.ts +6 -14
- package/core/common/get-group-icon.pipe.d.ts +1 -1
- package/core/common/group.service.d.ts +1 -1
- package/esm2020/assets-navigator/asset-node.mjs +3 -3
- package/esm2020/assets-navigator/asset-node.service.mjs +1 -1
- package/esm2020/assets-navigator/group.service.mjs +1 -1
- package/esm2020/core/asset-types/asset-types.service.mjs +17 -36
- package/esm2020/core/common/get-group-icon.pipe.mjs +2 -2
- package/esm2020/core/common/group.service.mjs +5 -5
- package/esm2020/core/search/search-input.component.mjs +3 -3
- package/esm2020/search/columns/asset-type.cell-renderer.component.mjs +3 -3
- package/esm2020/sub-assets/columns/asset-type.cell-renderer.component.mjs +5 -5
- package/esm2020/sub-assets/group-info.component.mjs +2 -2
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs +5 -3
- package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-search.mjs +7 -5
- package/fesm2015/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sub-assets.mjs +10 -8
- package/fesm2015/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +32 -49
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs +2 -2
- package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-search.mjs +2 -2
- package/fesm2020/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sub-assets.mjs +5 -5
- package/fesm2020/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +23 -42
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +2 -2
- package/search/columns/asset-type.cell-renderer.component.d.ts +1 -1
- package/sub-assets/columns/asset-type.cell-renderer.component.d.ts +2 -2
|
@@ -27,7 +27,7 @@ export declare class AssetNodeService {
|
|
|
27
27
|
queriesUtil: QueriesUtil;
|
|
28
28
|
protected PAGE_SIZE: number;
|
|
29
29
|
constructor(inventory: InventoryService, apiService: ApiService, modal: ModalService, alert: AlertService, breadcrumbService: BreadcrumbService, user: UserService, appState: AppStateService, optionsService: OptionsService, moduleConfig: AssetNavigatorConfig, deviceGroupService: DeviceGroupService);
|
|
30
|
-
icon(mo: IManagedObject, open?: boolean): string
|
|
30
|
+
icon(mo: IManagedObject, open?: boolean): Promise<string>;
|
|
31
31
|
isGroup(mo: IManagedObject): boolean;
|
|
32
32
|
isDynamicGroup(mo: IManagedObject): boolean;
|
|
33
33
|
isDataBroker(mo: IManagedObject): boolean;
|
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export declare class DeviceGroupService {
|
|
5
5
|
private migratedDeviceGroupService;
|
|
6
6
|
constructor(migratedDeviceGroupService: MigratedDeviceGroupService);
|
|
7
|
-
icon(mo: IManagedObject, open?: boolean): string
|
|
7
|
+
icon(mo: IManagedObject, open?: boolean): Promise<string>;
|
|
8
8
|
isGroup(mo: IManagedObject): boolean;
|
|
9
9
|
isDynamicGroup(mo: IManagedObject): boolean;
|
|
10
10
|
isDataBroker(mo: IManagedObject): boolean;
|
|
@@ -5,22 +5,23 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
/**
|
|
6
6
|
* AssetTypesService is being used to manage a cache of all existing asset types.
|
|
7
7
|
* This service is injected in the AssetOverviewNavigationFactory class, which will trigger
|
|
8
|
-
* the initialization of the cache as the
|
|
8
|
+
* the initialization of the cache as the constructor is called.
|
|
9
9
|
*/
|
|
10
10
|
export declare class AssetTypesService {
|
|
11
11
|
private inventory;
|
|
12
12
|
private apiService;
|
|
13
13
|
private appStateService;
|
|
14
14
|
private readonly ASSET_TYPE_GROUP_QUERY;
|
|
15
|
-
private assetTypesCache;
|
|
16
15
|
private readonly DEFAULT_GROUP_ICON;
|
|
17
16
|
private readonly DEFAULT_GROUP_ICON_OPEN;
|
|
17
|
+
private assetTypesCache;
|
|
18
|
+
private isCacheSet;
|
|
18
19
|
constructor(inventory: InventoryService, apiService: ApiService, appStateService: AppStateService);
|
|
19
20
|
/**
|
|
20
21
|
* Queries available asset types and adds every asset type to the local cache.
|
|
21
|
-
* @returns
|
|
22
|
+
* @returns IManagedObject table of asset types.
|
|
22
23
|
*/
|
|
23
|
-
initAssetTypesCache(): Promise<
|
|
24
|
+
initAssetTypesCache(): Promise<IManagedObject[]>;
|
|
24
25
|
/**
|
|
25
26
|
* Returns an asset type from the cache based on the unique name property.
|
|
26
27
|
* @param name Name of the asset type.
|
|
@@ -40,17 +41,8 @@ export declare class AssetTypesService {
|
|
|
40
41
|
* Defaults to false.
|
|
41
42
|
* @returns Returns an icon for a given asset type.
|
|
42
43
|
*/
|
|
43
|
-
getIcon(type: string, open?: boolean): string
|
|
44
|
+
getIcon(type: string, open?: boolean): Promise<string>;
|
|
44
45
|
private getDefaultGroupIcon;
|
|
45
|
-
/**
|
|
46
|
-
* Checks if the default asset type 'group' already exists and if it doesn't it will be created.
|
|
47
|
-
* @returns void.
|
|
48
|
-
*/
|
|
49
|
-
private createAssetTypeGroupIfNotExists;
|
|
50
|
-
/**
|
|
51
|
-
* create the default asset type group in the Inventory.
|
|
52
|
-
*/
|
|
53
|
-
private createDefaultAssetTypeGroup;
|
|
54
46
|
/**
|
|
55
47
|
* Add an asset type to the local cache.
|
|
56
48
|
* @param assetType Asset type which should be added to the cache.
|
|
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export declare class GetGroupIconPipe implements PipeTransform {
|
|
6
6
|
private groupService;
|
|
7
7
|
constructor(groupService: GroupService);
|
|
8
|
-
transform(mo: IManagedObject): string
|
|
8
|
+
transform(mo: IManagedObject): Promise<string>;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<GetGroupIconPipe, never>;
|
|
10
10
|
static ɵpipe: i0.ɵɵPipeDeclaration<GetGroupIconPipe, "getGroupIcon", false>;
|
|
11
11
|
}
|
|
@@ -21,7 +21,7 @@ export declare class GroupService {
|
|
|
21
21
|
* @param open Determines whether the method should return an alternative icon showing the open state.
|
|
22
22
|
* @returns Returns an icon.
|
|
23
23
|
*/
|
|
24
|
-
getIcon(mo: IManagedObject, open?: boolean): string
|
|
24
|
+
getIcon(mo: IManagedObject, open?: boolean): Promise<string>;
|
|
25
25
|
/**
|
|
26
26
|
* Checks whether a given managed object is a group.
|
|
27
27
|
* @param mo Managed object to be checked.
|
|
@@ -324,11 +324,11 @@ export class AssetNode extends NavigatorNode {
|
|
|
324
324
|
parent.remove(nodeToMove);
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
|
-
updateIcon(open) {
|
|
328
|
-
this.icon = this.service.icon(
|
|
327
|
+
async updateIcon(open) {
|
|
328
|
+
this.icon = await this.service.icon(
|
|
329
329
|
// if it's root we are going to pass a fake mo to get the same icon as groups
|
|
330
330
|
this.root ? { c8y_IsDeviceGroup: {} } : this.mo, open);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
333
|
AssetNode.NAME = 'AssetNode';
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Fzc2V0cy1uYXZpZ2F0b3IvYXNzZXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsYUFBYSxFQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQXdDMUMsWUFBc0IsT0FBeUIsRUFBWSxTQUE0QixFQUFFO1FBQ3ZGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURNLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFwQ3pGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0MscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDOztXQUVHO1FBQ0gsYUFBUSxHQUFnQixFQUFFLENBQUM7UUF3QjNCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFRekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FB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akQsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLENBQUMsT0FBc0IsRUFBRTtZQUN0RCxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLGdCQUFnQixFQUFFO2dCQUNsRSxNQUFNLENBQUMsd0NBQXdDO2FBQ2hEO1lBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDNUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQ2xDLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsWUFBWTtpQkFDakMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxRTtZQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQUk7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDM0IsNkVBQTZFO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQzs7QUEzWE0sY0FBSSxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElJZGVudGlmaWVkLCBQYWdpbmcgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBDbGlja09wdGlvbnMsXG4gIERldmljZVN0YXR1c0NvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgR3JvdXBGcmFnbWVudCxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGFcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbi5lbnVtJztcbmltcG9ydCB7IEFzc2V0Tm9kZU1vLCBBc3NldE5vZGVTZXJ2aWNlIH0gZnJvbSAnLi9hc3NldC1ub2RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZE1vcmVOb2RlIH0gZnJvbSAnLi9sb2FkLW1vcmUtbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBBc3NldE5vZGUgZXh0ZW5kcyBOYXZpZ2F0b3JOb2RlIHtcbiAgc3RhdGljIE5BTUUgPSAnQXNzZXROb2RlJztcbiAgcm9vdDogYm9vbGVhbjtcbiAgbW86IGFueTtcbiAgaGlkZURldmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyUXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgc2hvd0NoaWxkRGV2aWNlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBc3NldCBub2RlIGNoaWxkcmVuIChzdWJlbnRyaWVzKS5cbiAgICovXG4gIGNoaWxkcmVuOiBBc3NldE5vZGVbXSA9IFtdO1xuXG4gIGdldCBoYXNDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5yb290IHx8IHRoaXMuc2VydmljZS5pc0dyb3VwKHRoaXMubW8pO1xuICB9XG5cbiAgZ2V0IGlzRGV2aWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMubW8uYzh5X0lzRGV2aWNlO1xuICB9XG5cbiAgZ2V0IGlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGV2aWNlIHx8IHRoaXMuaXNOZWl0aGVyRGV2aWNlT3JHcm91cDtcbiAgfVxuXG4gIGdldCBpc05laXRoZXJEZXZpY2VPckdyb3VwKCkge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5zZXJ2aWNlLmlzR3JvdXAodGhpcy5tbykgJiZcbiAgICAgICF0aGlzLnNlcnZpY2UuaXNEeW5hbWljR3JvdXAodGhpcy5tbykgJiZcbiAgICAgICF0aGlzLmlzRGV2aWNlICYmXG4gICAgICAhdGhpcy5yb290XG4gICAgKTtcbiAgfVxuXG4gIGV2ZW50czogU3ViamVjdDxBY3Rpb24+O1xuICBub2Rlc0ZldGNoZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByb3RlY3RlZCBwYWdpbmc6IFBhZ2luZzxBc3NldE5vZGVNbz47XG4gIHByb3RlY3RlZCBsb2FkTW9yZU5vZGU6IExvYWRNb3JlTm9kZTtcbiAgcHJpdmF0ZSBvblVwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBBc3NldE5vZGVTZXJ2aWNlLCBwcm90ZWN0ZWQgY29uZmlnOiBOYXZpZ2F0b3JOb2RlRGF0YSA9IHt9KSB7XG4gICAgc3VwZXIoY29uZmlnKTtcblxuICAgIHRoaXMucm9vdCA9IHRoaXMucm9vdCB8fCBmYWxzZTtcbiAgICB0aGlzLmhpZGVEZXZpY2VzID0gY29uZmlnLmhpZGVEZXZpY2VzID8/IHRoaXMuaGlkZURldmljZXM7XG4gICAgdGhpcy5tbyA9IHRoaXMubW8gfHwge307XG4gICAgdGhpcy5wYXRoID0gdGhpcy5nZXRQYXRoKCk7XG4gICAgdGhpcy5kcmFnZ2FibGUgPSAhdGhpcy5zZXJ2aWNlPy5tb2R1bGVDb25maWc/LmRpc2FibGVEcmFnQW5kRHJvcCAmJiAhdGhpcy5yb290O1xuICAgIHRoaXMuZHJvcHBhYmxlID1cbiAgICAgICF0aGlzLnNlcnZpY2U/Lm1vZHVsZUNvbmZpZz8uZGlzYWJsZURyYWdBbmREcm9wICYmICF0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlO1xuICAgIHRoaXMucm91dGVyTGlua0V4YWN0ID0gdGhpcy5yb290O1xuICAgIHRoaXMudXBkYXRlSWNvbihmYWxzZSk7XG4gICAgdGhpcy5vblVwZGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuc2VydmljZVxuICAgICAgLm9uVXBkYXRlKHRoaXMpXG4gICAgICAuc3Vic2NyaWJlKCh7IGRhdGEsIG1ldGhvZCB9KSA9PiB0aGlzLnJlZnJlc2goZGF0YSwgbWV0aG9kKSk7XG4gICAgdGhpcy5zZXRMYWJlbCgpO1xuICAgIHRoaXMuaWNvbkNvbXBvbmVudCA9IHRoaXMuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2UgPyBEZXZpY2VTdGF0dXNDb21wb25lbnQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRQYXRoKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcucGF0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb290XG4gICAgICA/ICdncm91cCdcbiAgICAgIDogdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZVxuICAgICAgPyBgZGV2aWNlLyR7dGhpcy5tby5pZH1gXG4gICAgICA6IGBncm91cC8ke3RoaXMubW8uaWR9YDtcbiAgfVxuXG4gIG9wZW5PblN0YXJ0KHVybCkge1xuICAgIGNvbnN0IHVybFJlZ2V4ID0gL15cXC9ncm91cFxcLy87XG4gICAgaWYgKHRoaXMucm9vdCkge1xuICAgICAgaWYgKHRoaXMuc2VydmljZS5tb2R1bGVDb25maWcub3Blbk9uU3RhcnQgfHwgdXJsUmVnZXgudGVzdCh1cmwpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBtYXRjaGVzID0gdXJsLm1hdGNoKC9cXC8oZ3JvdXApXFwvKFxcZCspLyk7XG4gICAgbGV0IGlzTWF0Y2ggPSBmYWxzZTtcbiAgICBpZiAobWF0Y2hlcykge1xuICAgICAgY29uc3QgaWQgPSBtYXRjaGVzWzJdO1xuICAgICAgaXNNYXRjaCA9IFtdXG4gICAgICAgIC5jb25jYXQoZ2V0KHRoaXMubW8sICdjaGlsZEFzc2V0cy5yZWZlcmVuY2VzJywgW10pKVxuICAgICAgICAuc29tZSgoeyBtYW5hZ2VkT2JqZWN0IH0pID0+IG1hbmFnZWRPYmplY3QuaWQgPT09IGlkKTtcbiAgICAgIHJldHVybiBpc01hdGNoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZWZyZXNoKG1vOiBhbnkgPSB7fSwgbWV0aG9kID0gJ0dFVCcpIHtcbiAgICBpZiAobW8uaWQgPT09IHRoaXMubW8uaWQpIHtcbiAgICAgIHRoaXMubW8gPSBtbztcbiAgICAgIHRoaXMuc2V0TGFiZWwoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ0RFTEVURScpIHtcbiAgICAgIHRoaXMucGFyZW50cy5mb3JFYWNoKChub2RlOiBBc3NldE5vZGUpID0+IG5vZGUucmVmcmVzaCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXZlbnRzKSB7XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5SRUZSRVNIKTtcbiAgICB9XG4gIH1cblxuICBzZXRMYWJlbCgpIHtcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5jb25maWcubGFiZWwgfHwgKHRoaXMucm9vdCAmJiBnZXR0ZXh0KCdHcm91cHMnKSkgfHwgdGhpcy5tby5uYW1lIHx8ICctLSc7XG4gIH1cblxuICBjbGljayhvcHRpb25zOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlICYmICF0aGlzLnNob3dDaGlsZERldmljZXMpIHtcbiAgICAgIHRoaXMuc2VydmljZS5wcmVmZXJCcmVhZGNydW1iKHRoaXMucGFyZW50cyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaG9va0V2ZW50cygpO1xuICAgIHRoaXMudXBkYXRlSWNvbihvcHRpb25zLm9wZW4pO1xuICAgIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hbmFnZWRPYmplY3QobW8pIHtcbiAgICBjb25zdCB7IGNoaWxkQWRkaXRpb25zIH0gPSB0aGlzLm1vO1xuICAgIGlmICghdGhpcy5pc0NoaWxkQWRkaXRpb24oY2hpbGRBZGRpdGlvbnMsIG1vKSkge1xuICAgICAgdGhpcy5hZGQodGhpcy5zZXJ2aWNlLmNyZWF0ZUNoaWxkTm9kZShtbywgeyBoaWRlRGV2aWNlczogdGhpcy5oaWRlRGV2aWNlcyB9KSk7XG4gICAgfVxuICB9XG5cbiAgaXNDaGlsZEFkZGl0aW9uKGNoaWxkQWRkaXRpb25zLCBtbykge1xuICAgIHJldHVybiAoXG4gICAgICBjaGlsZEFkZGl0aW9ucyAmJiBjaGlsZEFkZGl0aW9ucy5yZWZlcmVuY2VzLnNvbWUoKHsgbWFuYWdlZE9iamVjdDogeyBpZCB9IH0pID0+IGlkID09PSBtby5pZClcbiAgICApO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY2FuRHJvcCgpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuICAgIGlmIChub2RlVG9Nb3ZlKSB7XG4gICAgICBjb25zdCBzaG91bGRHZXRDaGlsZE9mSXRzT3duID0gISFub2RlVG9Nb3ZlLmZpbmQoY2hpbGQgPT4gY2hpbGQgPT09IHRoaXMpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5Q2hpbGQgPSAodGhpcy5jaGlsZHJlbiBhcyBBc3NldE5vZGVbXSkuc29tZShcbiAgICAgICAgY2hpbGQgPT4gY2hpbGQubW8gJiYgY2hpbGQubW8uaWQgPT09IG5vZGVUb01vdmUubW8uaWRcbiAgICAgICk7XG4gICAgICBjb25zdCBwcmV2ZW50TW92ZSA9IHRoaXMgPT09IG5vZGVUb01vdmUgfHwgc2hvdWxkR2V0Q2hpbGRPZkl0c093biB8fCBpc0FscmVhZHlDaGlsZDtcbiAgICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZSAmJiAhcHJldmVudE1vdmUgJiYgdGhpcy5zZXJ2aWNlLmNhbkRyb3BOb2RlKHRoaXMucm9vdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZTtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICBzdXBlci5kcmFnU3RhcnQoJGV2ZW50KTtcbiAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB0aGlzO1xuICAgIHRoaXMuc2VydmljZS5yb290Tm9kZS5kcm9wcGFibGUgPSAhdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZTtcbiAgfVxuXG4gIGRyYWdFbmQoJGV2ZW50KSB7XG4gICAgc3VwZXIuZHJhZ0VuZCgkZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgZHJvcCgkZXZlbnQpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuXG4gICAgLy8gVE9ETyByZW1vdmUgd2hlbiBhc3NldCB0eXBlIG5vZGUgY2FuIGJlIHVzZWQgb24gdGhlIHJvb3QgbGV2ZWwuXG4gICAgaWYgKHRoaXMucm9vdCAmJiB0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIHRoaXMuc2VydmljZS5hbGVydC5pbmZvKGdldHRleHQoJ0Fzc2V0IHR5cGUgbm9kZSBjYW5ub3QgYmVjb21lIHJvb3Qgbm9kZS4nKSk7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmRyb3AoJGV2ZW50KTtcbiAgICBpZiAodGhpcy5jYW5Ecm9wKSB7XG4gICAgICBhd2FpdCB0aGlzLm1vdmVOb2RlKG5vZGVUb01vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGhvb2tFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLmV2ZW50cykge1xuICAgICAgdGhpcy5ldmVudHMgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gQXNzZXROb2RlLk5BTUU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IG5vZGUgaGFzIGNoaWxkIGRldmljZXMuXG4gICAqL1xuICBoYXNDaGlsZERldmljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW8gJiYgdGhpcy5tby5jOHlfSXNEZXZpY2UgJiYgdGhpcy5tby5jaGlsZERldmljZXMucmVmZXJlbmNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3RcbiAgICAgID8gdGhpcy5zZXJ2aWNlLmdldFJvb3ROb2RlcygpXG4gICAgICA6IHRoaXMuc2VydmljZS5nZXRHcm91cEl0ZW1zKFxuICAgICAgICAgIHRoaXMubW8uaWQsXG4gICAgICAgICAgdGhpcy5oaWRlRGV2aWNlc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGAkZmlsdGVyPShoYXMoJHtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlfSkpJG9yZGVyYnk9bmFtZWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fVxuICAgICAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvdW50Q2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUV2ZW50KGV2dDogQWN0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmNvdW50Q2hpbGRyZW4oKSAmJiBldnQgPT09IEFjdGlvbi5GRVRDSCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkTm9kZXMoYXdhaXQgdGhpcy5mZXRjaCgpKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSBBY3Rpb24uTkVYVCkge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmFkZE5vZGVzKGF3YWl0IHRoaXMucGFnaW5nLm5leHQoKSk7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09IEFjdGlvbi5SRUZSRVNIKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMucGFnaW5nID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmVtcHR5KCk7XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5GRVRDSCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZE5vZGVzKHJlcykge1xuICAgIGlmIChyZXMucGFnaW5nKSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRQYWdlLCBuZXh0UGFnZSwgcGFnZVNpemUgfSA9ICh0aGlzLnBhZ2luZyA9IHJlcy5wYWdpbmcpO1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIHRoaXMuZW1wdHkoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGl0ZW1zQ291bnQgPSByZXMuZGF0YS5sZW5ndGg7XG4gICAgICBjb25zdCBtb3JlSXRlbXNBdmFpbGFibGUgPSAhIW5leHRQYWdlICYmIGl0ZW1zQ291bnQgPT09IHBhZ2VTaXplO1xuICAgICAgdGhpcy50b2dnbGVMb2FkTW9yZShtb3JlSXRlbXNBdmFpbGFibGUpO1xuICAgIH1cbiAgICAocmVzLmRhdGEgfHwgcmVzKS5tYXAobW8gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYWRkTWFuYWdlZE9iamVjdChtbyk7XG4gICAgfSk7XG4gICAgdGhpcy5ldmVudHMubmV4dChBY3Rpb24uTE9BRElOR19ET05FKTtcbiAgICB0aGlzLm5vZGVzRmV0Y2hlZC5uZXh0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlTG9hZE1vcmUoc2hvdzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5sb2FkTW9yZU5vZGUgJiYgc2hvdykge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUgPSBuZXcgTG9hZE1vcmVOb2RlKCk7XG4gICAgICB0aGlzLmFkZCh0aGlzLmxvYWRNb3JlTm9kZSk7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5jbGljayA9IGRlYm91bmNlKCgpID0+IHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLk5FWFQpLCAzMDAsIHtcbiAgICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgICAgdHJhaWxpbmc6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2FkTW9yZU5vZGUpIHtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmhpZGRlbiA9ICFzaG93O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbW92ZU5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGlzQ29weSA9IGF3YWl0IHRoaXMuc2hvd0Ryb3BDb25maXJtKG5vZGVUb01vdmUpO1xuICAgICAgYXdhaXQgdGhpcy52ZXJpZnlOb2RlQWNjZXNzKG5vZGVUb01vdmUpO1xuICAgICAgYXdhaXQgdGhpcy5hZGRNb3ZlZE5vZGUobm9kZVRvTW92ZSk7XG4gICAgICBpZiAoIWlzQ29weSkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlbW92ZU1vdmVkTm9kZShub2RlVG9Nb3ZlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLnNlcnZpY2UuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZHJhZ2dlZEhvdmVyID0gZmFsc2U7XG4gICAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaG93RHJvcENvbmZpcm0obm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgdGhpcy5jb25maXJtLnRpdGxlID0gZ2V0dGV4dCgnTW92ZScpO1xuICAgIHRoaXMuY29uZmlybS5tZXNzYWdlID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gbW92ZSB0aGUgZ3JvdXA/Jyk7XG4gICAgY29uc3QgYnV0dG9uczogYW55ID0gW1xuICAgICAge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ2FuY2VsJyksXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZWplY3QoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ01vdmUnKSxcbiAgICAgICAgc3RhdHVzOiAnZGVmYXVsdCcsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKVxuICAgICAgfVxuICAgIF07XG4gICAgaWYgKG5vZGVUb01vdmUuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2UpIHtcbiAgICAgIHRoaXMuY29uZmlybS50aXRsZSA9IGdldHRleHQoJ01vdmUgb3IgYWRkJyk7XG4gICAgICB0aGlzLmNvbmZpcm0ubWVzc2FnZSA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIG1vdmUgb3IgYWRkIHRoZSBkZXZpY2U/Jyk7XG4gICAgICBidXR0b25zLnB1c2goe1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQWRkJyksXG4gICAgICAgIHN0YXR1czogJ3ByaW1hcnknLFxuICAgICAgICBhY3Rpb246ICgpID0+IFByb21pc2UucmVzb2x2ZSh0cnVlKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpcm0uc2hvdyhidXR0b25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmVyaWZ5Tm9kZUFjY2Vzcyhub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmludmVudG9yeS51cGRhdGUoeyBpZDogbm9kZVRvTW92ZS5tby5pZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkTW92ZWROb2RlKG5vZGVUb01vdmU6IEFzc2V0Tm9kZSkge1xuICAgIGxldCBtbzogSUlkZW50aWZpZWQ7XG5cbiAgICBpZiAodGhpcy5yb290ICYmICF0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIG1vID0gKFxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IG5vZGVUb01vdmUubW8uaWQsXG4gICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5ncm91cFR5cGVcbiAgICAgICAgfSlcbiAgICAgICkuZGF0YTtcblxuICAgICAgdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtbyA9IChhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LmNoaWxkQXNzZXRzQWRkKG5vZGVUb01vdmUubW8sIHRoaXMubW8pKS5kYXRhO1xuICAgIHRoaXMuYWRkTWFuYWdlZE9iamVjdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGlzQXNzZXQobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgLy8gVE9ETyB1c2UgaXNBc3NldCBjaGVjayB3aGVuIGh0dHBzOi8vZ2l0aHViLnNvZnR3YXJlYWcuY29tL0lPVEEvY3VtdWxvY2l0eS11aS9wdWxsLzY5MCBpcyBtZXJnZWQuXG4gICAgLy8gRG8gbm90IG92ZXJyaWRlIGFzc2V0IHR5cGUhXG4gICAgcmV0dXJuIG5vZGVUb01vdmUubW8/LmM4eV9Jc0Fzc2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW1vdmVNb3ZlZE5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2Ygbm9kZVRvTW92ZS5wYXJlbnRzIGFzIEFzc2V0Tm9kZVtdKSB7XG4gICAgICBpZiAocGFyZW50Lm1vICYmIHBhcmVudC5tby50eXBlID09PSBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGUpIHtcbiAgICAgICAgYnJlYWs7IC8vIHNtYXJ0IGdyb3VwcyBkb24ndCBuZWVkIHRvIGJlIGNoYW5nZWRcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudC5yb290ICYmICF0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmludmVudG9yeS51cGRhdGUoe1xuICAgICAgICAgIGlkOiBub2RlVG9Nb3ZlLm1vLmlkLFxuICAgICAgICAgIHR5cGU6IEdyb3VwRnJhZ21lbnQuc3ViR3JvdXBUeXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXBhcmVudC5yb290KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkuY2hpbGRBc3NldHNSZW1vdmUobm9kZVRvTW92ZS5tbywgcGFyZW50Lm1vKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudC5yZW1vdmUobm9kZVRvTW92ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVJY29uKG9wZW4pIHtcbiAgICB0aGlzLmljb24gPSB0aGlzLnNlcnZpY2UuaWNvbihcbiAgICAgIC8vIGlmIGl0J3Mgcm9vdCB3ZSBhcmUgZ29pbmcgdG8gcGFzcyBhIGZha2UgbW8gdG8gZ2V0IHRoZSBzYW1lIGljb24gYXMgZ3JvdXBzXG4gICAgICB0aGlzLnJvb3QgPyB7IGM4eV9Jc0RldmljZUdyb3VwOiB7fSB9IDogdGhpcy5tbyxcbiAgICAgIG9wZW5cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Fzc2V0cy1uYXZpZ2F0b3IvYXNzZXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUwscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsYUFBYSxFQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQXdDMUMsWUFBc0IsT0FBeUIsRUFBWSxTQUE0QixFQUFFO1FBQ3ZGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQURNLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBd0I7UUFwQ3pGLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0MscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDOztXQUVHO1FBQ0gsYUFBUSxHQUFnQixFQUFFLENBQUM7UUF3QjNCLGlCQUFZLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFRekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FB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akQsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLENBQUMsT0FBc0IsRUFBRTtZQUN0RCxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLGdCQUFnQixFQUFFO2dCQUNsRSxNQUFNLENBQUMsd0NBQXdDO2FBQ2hEO1lBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDNUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQ2xDLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsWUFBWTtpQkFDakMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxRTtZQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDakMsNkVBQTZFO1FBQzdFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQzs7QUEzWE0sY0FBSSxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElJZGVudGlmaWVkLCBQYWdpbmcgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBDbGlja09wdGlvbnMsXG4gIERldmljZVN0YXR1c0NvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgR3JvdXBGcmFnbWVudCxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGFcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBkZWJvdW5jZSwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbi5lbnVtJztcbmltcG9ydCB7IEFzc2V0Tm9kZU1vLCBBc3NldE5vZGVTZXJ2aWNlIH0gZnJvbSAnLi9hc3NldC1ub2RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9hZE1vcmVOb2RlIH0gZnJvbSAnLi9sb2FkLW1vcmUtbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBBc3NldE5vZGUgZXh0ZW5kcyBOYXZpZ2F0b3JOb2RlIHtcbiAgc3RhdGljIE5BTUUgPSAnQXNzZXROb2RlJztcbiAgcm9vdDogYm9vbGVhbjtcbiAgbW86IGFueTtcbiAgaGlkZURldmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyUXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgc2hvd0NoaWxkRGV2aWNlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBc3NldCBub2RlIGNoaWxkcmVuIChzdWJlbnRyaWVzKS5cbiAgICovXG4gIGNoaWxkcmVuOiBBc3NldE5vZGVbXSA9IFtdO1xuXG4gIGdldCBoYXNDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5yb290IHx8IHRoaXMuc2VydmljZS5pc0dyb3VwKHRoaXMubW8pO1xuICB9XG5cbiAgZ2V0IGlzRGV2aWNlKCkge1xuICAgIHJldHVybiAhIXRoaXMubW8uYzh5X0lzRGV2aWNlO1xuICB9XG5cbiAgZ2V0IGlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGV2aWNlIHx8IHRoaXMuaXNOZWl0aGVyRGV2aWNlT3JHcm91cDtcbiAgfVxuXG4gIGdldCBpc05laXRoZXJEZXZpY2VPckdyb3VwKCkge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5zZXJ2aWNlLmlzR3JvdXAodGhpcy5tbykgJiZcbiAgICAgICF0aGlzLnNlcnZpY2UuaXNEeW5hbWljR3JvdXAodGhpcy5tbykgJiZcbiAgICAgICF0aGlzLmlzRGV2aWNlICYmXG4gICAgICAhdGhpcy5yb290XG4gICAgKTtcbiAgfVxuXG4gIGV2ZW50czogU3ViamVjdDxBY3Rpb24+O1xuICBub2Rlc0ZldGNoZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByb3RlY3RlZCBwYWdpbmc6IFBhZ2luZzxBc3NldE5vZGVNbz47XG4gIHByb3RlY3RlZCBsb2FkTW9yZU5vZGU6IExvYWRNb3JlTm9kZTtcbiAgcHJpdmF0ZSBvblVwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBBc3NldE5vZGVTZXJ2aWNlLCBwcm90ZWN0ZWQgY29uZmlnOiBOYXZpZ2F0b3JOb2RlRGF0YSA9IHt9KSB7XG4gICAgc3VwZXIoY29uZmlnKTtcblxuICAgIHRoaXMucm9vdCA9IHRoaXMucm9vdCB8fCBmYWxzZTtcbiAgICB0aGlzLmhpZGVEZXZpY2VzID0gY29uZmlnLmhpZGVEZXZpY2VzID8/IHRoaXMuaGlkZURldmljZXM7XG4gICAgdGhpcy5tbyA9IHRoaXMubW8gfHwge307XG4gICAgdGhpcy5wYXRoID0gdGhpcy5nZXRQYXRoKCk7XG4gICAgdGhpcy5kcmFnZ2FibGUgPSAhdGhpcy5zZXJ2aWNlPy5tb2R1bGVDb25maWc/LmRpc2FibGVEcmFnQW5kRHJvcCAmJiAhdGhpcy5yb290O1xuICAgIHRoaXMuZHJvcHBhYmxlID1cbiAgICAgICF0aGlzLnNlcnZpY2U/Lm1vZHVsZUNvbmZpZz8uZGlzYWJsZURyYWdBbmREcm9wICYmICF0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlO1xuICAgIHRoaXMucm91dGVyTGlua0V4YWN0ID0gdGhpcy5yb290O1xuICAgIHRoaXMudXBkYXRlSWNvbihmYWxzZSk7XG4gICAgdGhpcy5vblVwZGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuc2VydmljZVxuICAgICAgLm9uVXBkYXRlKHRoaXMpXG4gICAgICAuc3Vic2NyaWJlKCh7IGRhdGEsIG1ldGhvZCB9KSA9PiB0aGlzLnJlZnJlc2goZGF0YSwgbWV0aG9kKSk7XG4gICAgdGhpcy5zZXRMYWJlbCgpO1xuICAgIHRoaXMuaWNvbkNvbXBvbmVudCA9IHRoaXMuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2UgPyBEZXZpY2VTdGF0dXNDb21wb25lbnQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRQYXRoKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcucGF0aDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yb290XG4gICAgICA/ICdncm91cCdcbiAgICAgIDogdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZVxuICAgICAgPyBgZGV2aWNlLyR7dGhpcy5tby5pZH1gXG4gICAgICA6IGBncm91cC8ke3RoaXMubW8uaWR9YDtcbiAgfVxuXG4gIG9wZW5PblN0YXJ0KHVybCkge1xuICAgIGNvbnN0IHVybFJlZ2V4ID0gL15cXC9ncm91cFxcLy87XG4gICAgaWYgKHRoaXMucm9vdCkge1xuICAgICAgaWYgKHRoaXMuc2VydmljZS5tb2R1bGVDb25maWcub3Blbk9uU3RhcnQgfHwgdXJsUmVnZXgudGVzdCh1cmwpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBtYXRjaGVzID0gdXJsLm1hdGNoKC9cXC8oZ3JvdXApXFwvKFxcZCspLyk7XG4gICAgbGV0IGlzTWF0Y2ggPSBmYWxzZTtcbiAgICBpZiAobWF0Y2hlcykge1xuICAgICAgY29uc3QgaWQgPSBtYXRjaGVzWzJdO1xuICAgICAgaXNNYXRjaCA9IFtdXG4gICAgICAgIC5jb25jYXQoZ2V0KHRoaXMubW8sICdjaGlsZEFzc2V0cy5yZWZlcmVuY2VzJywgW10pKVxuICAgICAgICAuc29tZSgoeyBtYW5hZ2VkT2JqZWN0IH0pID0+IG1hbmFnZWRPYmplY3QuaWQgPT09IGlkKTtcbiAgICAgIHJldHVybiBpc01hdGNoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZWZyZXNoKG1vOiBhbnkgPSB7fSwgbWV0aG9kID0gJ0dFVCcpIHtcbiAgICBpZiAobW8uaWQgPT09IHRoaXMubW8uaWQpIHtcbiAgICAgIHRoaXMubW8gPSBtbztcbiAgICAgIHRoaXMuc2V0TGFiZWwoKTtcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gJ0RFTEVURScpIHtcbiAgICAgIHRoaXMucGFyZW50cy5mb3JFYWNoKChub2RlOiBBc3NldE5vZGUpID0+IG5vZGUucmVmcmVzaCgpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXZlbnRzKSB7XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5SRUZSRVNIKTtcbiAgICB9XG4gIH1cblxuICBzZXRMYWJlbCgpIHtcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5jb25maWcubGFiZWwgfHwgKHRoaXMucm9vdCAmJiBnZXR0ZXh0KCdHcm91cHMnKSkgfHwgdGhpcy5tby5uYW1lIHx8ICctLSc7XG4gIH1cblxuICBjbGljayhvcHRpb25zOiBDbGlja09wdGlvbnMgPSB7fSkge1xuICAgIGlmICh0aGlzLmlzRGV2aWNlT3JQcm9iYWJseUNoaWxkRGV2aWNlICYmICF0aGlzLnNob3dDaGlsZERldmljZXMpIHtcbiAgICAgIHRoaXMuc2VydmljZS5wcmVmZXJCcmVhZGNydW1iKHRoaXMucGFyZW50cyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaG9va0V2ZW50cygpO1xuICAgIHRoaXMudXBkYXRlSWNvbihvcHRpb25zLm9wZW4pO1xuICAgIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICAgIHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLkZFVENIKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEucHJpb3JpdHkgPiBiLnByaW9yaXR5KSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYS5wcmlvcml0eSA8IGIucHJpb3JpdHkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hbmFnZWRPYmplY3QobW8pIHtcbiAgICBjb25zdCB7IGNoaWxkQWRkaXRpb25zIH0gPSB0aGlzLm1vO1xuICAgIGlmICghdGhpcy5pc0NoaWxkQWRkaXRpb24oY2hpbGRBZGRpdGlvbnMsIG1vKSkge1xuICAgICAgdGhpcy5hZGQodGhpcy5zZXJ2aWNlLmNyZWF0ZUNoaWxkTm9kZShtbywgeyBoaWRlRGV2aWNlczogdGhpcy5oaWRlRGV2aWNlcyB9KSk7XG4gICAgfVxuICB9XG5cbiAgaXNDaGlsZEFkZGl0aW9uKGNoaWxkQWRkaXRpb25zLCBtbykge1xuICAgIHJldHVybiAoXG4gICAgICBjaGlsZEFkZGl0aW9ucyAmJiBjaGlsZEFkZGl0aW9ucy5yZWZlcmVuY2VzLnNvbWUoKHsgbWFuYWdlZE9iamVjdDogeyBpZCB9IH0pID0+IGlkID09PSBtby5pZClcbiAgICApO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY2FuRHJvcCgpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuICAgIGlmIChub2RlVG9Nb3ZlKSB7XG4gICAgICBjb25zdCBzaG91bGRHZXRDaGlsZE9mSXRzT3duID0gISFub2RlVG9Nb3ZlLmZpbmQoY2hpbGQgPT4gY2hpbGQgPT09IHRoaXMpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5Q2hpbGQgPSAodGhpcy5jaGlsZHJlbiBhcyBBc3NldE5vZGVbXSkuc29tZShcbiAgICAgICAgY2hpbGQgPT4gY2hpbGQubW8gJiYgY2hpbGQubW8uaWQgPT09IG5vZGVUb01vdmUubW8uaWRcbiAgICAgICk7XG4gICAgICBjb25zdCBwcmV2ZW50TW92ZSA9IHRoaXMgPT09IG5vZGVUb01vdmUgfHwgc2hvdWxkR2V0Q2hpbGRPZkl0c093biB8fCBpc0FscmVhZHlDaGlsZDtcbiAgICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZSAmJiAhcHJldmVudE1vdmUgJiYgdGhpcy5zZXJ2aWNlLmNhbkRyb3BOb2RlKHRoaXMucm9vdCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3BwYWJsZTtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQpIHtcbiAgICBzdXBlci5kcmFnU3RhcnQoJGV2ZW50KTtcbiAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB0aGlzO1xuICAgIHRoaXMuc2VydmljZS5yb290Tm9kZS5kcm9wcGFibGUgPSAhdGhpcy5pc0RldmljZU9yUHJvYmFibHlDaGlsZERldmljZTtcbiAgfVxuXG4gIGRyYWdFbmQoJGV2ZW50KSB7XG4gICAgc3VwZXIuZHJhZ0VuZCgkZXZlbnQpO1xuICB9XG5cbiAgYXN5bmMgZHJvcCgkZXZlbnQpIHtcbiAgICBjb25zdCBub2RlVG9Nb3ZlID0gdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhO1xuXG4gICAgLy8gVE9ETyByZW1vdmUgd2hlbiBhc3NldCB0eXBlIG5vZGUgY2FuIGJlIHVzZWQgb24gdGhlIHJvb3QgbGV2ZWwuXG4gICAgaWYgKHRoaXMucm9vdCAmJiB0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIHRoaXMuc2VydmljZS5hbGVydC5pbmZvKGdldHRleHQoJ0Fzc2V0IHR5cGUgbm9kZSBjYW5ub3QgYmVjb21lIHJvb3Qgbm9kZS4nKSk7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1cGVyLmRyb3AoJGV2ZW50KTtcbiAgICBpZiAodGhpcy5jYW5Ecm9wKSB7XG4gICAgICBhd2FpdCB0aGlzLm1vdmVOb2RlKG5vZGVUb01vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdnZWRIb3ZlciA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXJ2aWNlLmRyYWdnZWREYXRhID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGhvb2tFdmVudHMoKSB7XG4gICAgaWYgKCF0aGlzLmV2ZW50cykge1xuICAgICAgdGhpcy5ldmVudHMgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgdGhpcy5ldmVudHMuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFdmVudChldnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gQXNzZXROb2RlLk5BTUU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IG5vZGUgaGFzIGNoaWxkIGRldmljZXMuXG4gICAqL1xuICBoYXNDaGlsZERldmljZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW8gJiYgdGhpcy5tby5jOHlfSXNEZXZpY2UgJiYgdGhpcy5tby5jaGlsZERldmljZXMucmVmZXJlbmNlcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZldGNoKCkge1xuICAgIHJldHVybiB0aGlzLnJvb3RcbiAgICAgID8gdGhpcy5zZXJ2aWNlLmdldFJvb3ROb2RlcygpXG4gICAgICA6IHRoaXMuc2VydmljZS5nZXRHcm91cEl0ZW1zKFxuICAgICAgICAgIHRoaXMubW8uaWQsXG4gICAgICAgICAgdGhpcy5oaWRlRGV2aWNlc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgcXVlcnk6IGAkZmlsdGVyPShoYXMoJHtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlfSkpJG9yZGVyYnk9bmFtZWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fVxuICAgICAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvdW50Q2hpbGRyZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4ubGVuZ3RoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUV2ZW50KGV2dDogQWN0aW9uKSB7XG4gICAgaWYgKCF0aGlzLmNvdW50Q2hpbGRyZW4oKSAmJiBldnQgPT09IEFjdGlvbi5GRVRDSCkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuYWRkTm9kZXMoYXdhaXQgdGhpcy5mZXRjaCgpKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSBBY3Rpb24uTkVYVCkge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmFkZE5vZGVzKGF3YWl0IHRoaXMucGFnaW5nLm5leHQoKSk7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChldnQgPT09IEFjdGlvbi5SRUZSRVNIKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMucGFnaW5nID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmVtcHR5KCk7XG4gICAgICB0aGlzLmV2ZW50cy5uZXh0KEFjdGlvbi5GRVRDSCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZE5vZGVzKHJlcykge1xuICAgIGlmIChyZXMucGFnaW5nKSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRQYWdlLCBuZXh0UGFnZSwgcGFnZVNpemUgfSA9ICh0aGlzLnBhZ2luZyA9IHJlcy5wYWdpbmcpO1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIHRoaXMuZW1wdHkoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGl0ZW1zQ291bnQgPSByZXMuZGF0YS5sZW5ndGg7XG4gICAgICBjb25zdCBtb3JlSXRlbXNBdmFpbGFibGUgPSAhIW5leHRQYWdlICYmIGl0ZW1zQ291bnQgPT09IHBhZ2VTaXplO1xuICAgICAgdGhpcy50b2dnbGVMb2FkTW9yZShtb3JlSXRlbXNBdmFpbGFibGUpO1xuICAgIH1cbiAgICAocmVzLmRhdGEgfHwgcmVzKS5tYXAobW8gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYWRkTWFuYWdlZE9iamVjdChtbyk7XG4gICAgfSk7XG4gICAgdGhpcy5ldmVudHMubmV4dChBY3Rpb24uTE9BRElOR19ET05FKTtcbiAgICB0aGlzLm5vZGVzRmV0Y2hlZC5uZXh0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlTG9hZE1vcmUoc2hvdzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5sb2FkTW9yZU5vZGUgJiYgc2hvdykge1xuICAgICAgdGhpcy5sb2FkTW9yZU5vZGUgPSBuZXcgTG9hZE1vcmVOb2RlKCk7XG4gICAgICB0aGlzLmFkZCh0aGlzLmxvYWRNb3JlTm9kZSk7XG4gICAgICB0aGlzLmxvYWRNb3JlTm9kZS5jbGljayA9IGRlYm91bmNlKCgpID0+IHRoaXMuZXZlbnRzLm5leHQoQWN0aW9uLk5FWFQpLCAzMDAsIHtcbiAgICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgICAgdHJhaWxpbmc6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2FkTW9yZU5vZGUpIHtcbiAgICAgIHRoaXMubG9hZE1vcmVOb2RlLmhpZGRlbiA9ICFzaG93O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbW92ZU5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGlzQ29weSA9IGF3YWl0IHRoaXMuc2hvd0Ryb3BDb25maXJtKG5vZGVUb01vdmUpO1xuICAgICAgYXdhaXQgdGhpcy52ZXJpZnlOb2RlQWNjZXNzKG5vZGVUb01vdmUpO1xuICAgICAgYXdhaXQgdGhpcy5hZGRNb3ZlZE5vZGUobm9kZVRvTW92ZSk7XG4gICAgICBpZiAoIWlzQ29weSkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlbW92ZU1vdmVkTm9kZShub2RlVG9Nb3ZlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZXhwYW5kKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLnNlcnZpY2UuYWxlcnQuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuZHJhZ2dlZEhvdmVyID0gZmFsc2U7XG4gICAgICB0aGlzLnNlcnZpY2UuZHJhZ2dlZERhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaG93RHJvcENvbmZpcm0obm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgdGhpcy5jb25maXJtLnRpdGxlID0gZ2V0dGV4dCgnTW92ZScpO1xuICAgIHRoaXMuY29uZmlybS5tZXNzYWdlID0gZ2V0dGV4dCgnRG8geW91IHdhbnQgdG8gbW92ZSB0aGUgZ3JvdXA/Jyk7XG4gICAgY29uc3QgYnV0dG9uczogYW55ID0gW1xuICAgICAge1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQ2FuY2VsJyksXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZWplY3QoKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ01vdmUnKSxcbiAgICAgICAgc3RhdHVzOiAnZGVmYXVsdCcsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKVxuICAgICAgfVxuICAgIF07XG4gICAgaWYgKG5vZGVUb01vdmUuaXNEZXZpY2VPclByb2JhYmx5Q2hpbGREZXZpY2UpIHtcbiAgICAgIHRoaXMuY29uZmlybS50aXRsZSA9IGdldHRleHQoJ01vdmUgb3IgYWRkJyk7XG4gICAgICB0aGlzLmNvbmZpcm0ubWVzc2FnZSA9IGdldHRleHQoJ0RvIHlvdSB3YW50IHRvIG1vdmUgb3IgYWRkIHRoZSBkZXZpY2U/Jyk7XG4gICAgICBidXR0b25zLnB1c2goe1xuICAgICAgICBsYWJlbDogZ2V0dGV4dCgnQWRkJyksXG4gICAgICAgIHN0YXR1czogJ3ByaW1hcnknLFxuICAgICAgICBhY3Rpb246ICgpID0+IFByb21pc2UucmVzb2x2ZSh0cnVlKVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpcm0uc2hvdyhidXR0b25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmVyaWZ5Tm9kZUFjY2Vzcyhub2RlVG9Nb3ZlOiBBc3NldE5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmludmVudG9yeS51cGRhdGUoeyBpZDogbm9kZVRvTW92ZS5tby5pZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYWRkTW92ZWROb2RlKG5vZGVUb01vdmU6IEFzc2V0Tm9kZSkge1xuICAgIGxldCBtbzogSUlkZW50aWZpZWQ7XG5cbiAgICBpZiAodGhpcy5yb290ICYmICF0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgIG1vID0gKFxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LnVwZGF0ZSh7XG4gICAgICAgICAgaWQ6IG5vZGVUb01vdmUubW8uaWQsXG4gICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5ncm91cFR5cGVcbiAgICAgICAgfSlcbiAgICAgICkuZGF0YTtcblxuICAgICAgdGhpcy5hZGRNYW5hZ2VkT2JqZWN0KG1vKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtbyA9IChhd2FpdCB0aGlzLnNlcnZpY2UuaW52ZW50b3J5LmNoaWxkQXNzZXRzQWRkKG5vZGVUb01vdmUubW8sIHRoaXMubW8pKS5kYXRhO1xuICAgIHRoaXMuYWRkTWFuYWdlZE9iamVjdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGlzQXNzZXQobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgLy8gVE9ETyB1c2UgaXNBc3NldCBjaGVjayB3aGVuIGh0dHBzOi8vZ2l0aHViLnNvZnR3YXJlYWcuY29tL0lPVEEvY3VtdWxvY2l0eS11aS9wdWxsLzY5MCBpcyBtZXJnZWQuXG4gICAgLy8gRG8gbm90IG92ZXJyaWRlIGFzc2V0IHR5cGUhXG4gICAgcmV0dXJuIG5vZGVUb01vdmUubW8/LmM4eV9Jc0Fzc2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZW1vdmVNb3ZlZE5vZGUobm9kZVRvTW92ZTogQXNzZXROb2RlKSB7XG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2Ygbm9kZVRvTW92ZS5wYXJlbnRzIGFzIEFzc2V0Tm9kZVtdKSB7XG4gICAgICBpZiAocGFyZW50Lm1vICYmIHBhcmVudC5tby50eXBlID09PSBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGUpIHtcbiAgICAgICAgYnJlYWs7IC8vIHNtYXJ0IGdyb3VwcyBkb24ndCBuZWVkIHRvIGJlIGNoYW5nZWRcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudC5yb290ICYmICF0aGlzLmlzQXNzZXQobm9kZVRvTW92ZSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmludmVudG9yeS51cGRhdGUoe1xuICAgICAgICAgIGlkOiBub2RlVG9Nb3ZlLm1vLmlkLFxuICAgICAgICAgIHR5cGU6IEdyb3VwRnJhZ21lbnQuc3ViR3JvdXBUeXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXBhcmVudC5yb290KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbnZlbnRvcnkuY2hpbGRBc3NldHNSZW1vdmUobm9kZVRvTW92ZS5tbywgcGFyZW50Lm1vKTtcbiAgICAgIH1cbiAgICAgIHBhcmVudC5yZW1vdmUobm9kZVRvTW92ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVJY29uKG9wZW4pIHtcbiAgICB0aGlzLmljb24gPSBhd2FpdCB0aGlzLnNlcnZpY2UuaWNvbihcbiAgICAgIC8vIGlmIGl0J3Mgcm9vdCB3ZSBhcmUgZ29pbmcgdG8gcGFzcyBhIGZha2UgbW8gdG8gZ2V0IHRoZSBzYW1lIGljb24gYXMgZ3JvdXBzXG4gICAgICB0aGlzLnJvb3QgPyB7IGM4eV9Jc0RldmljZUdyb3VwOiB7fSB9IDogdGhpcy5tbyxcbiAgICAgIG9wZW5cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -278,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
278
278
|
type: Inject,
|
|
279
279
|
args: [ASSET_NAVIGATOR_CONFIG]
|
|
280
280
|
}] }, { type: i4.DeviceGroupService }]; } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVcsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFHWixjQUFjLEVBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFVckQsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNTLFNBQTJCLEVBQzNCLFVBQXNCLEVBQ3RCLEtBQW1CLEVBQ25CLEtBQW1CLEVBQ2hCLGlCQUFvQyxFQUNwQyxJQUFpQixFQUNqQixRQUF5QixFQUN6QixjQUE4QixFQUNXLFlBQWtDLEVBQzNFLGtCQUFzQztRQVR6QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FB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LENBQUM7WUFDaEYsYUFBYSxHQUFHLEdBQUcsV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1NBQ2xEO2FBQU07WUFDTCxhQUFhLEdBQUcsTUFBTSxJQUFJLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDeEM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOzs2R0FqVFUsZ0JBQWdCLDZQQWdCTCxzQkFBc0I7aUhBaEJqQyxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlCSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0LCBRdWVyaWVzVXRpbCwgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gIEdyb3VwRnJhZ21lbnQsXG4gIE1vZGFsU2VydmljZSxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGEsXG4gIE9wdGlvbnNTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXROb2RlIH0gZnJvbSAnLi9hc3NldC1ub2RlJztcbmltcG9ydCB7IEFzc2V0TmF2aWdhdG9yQ29uZmlnLCBBU1NFVF9OQVZJR0FUT1JfQ09ORklHIH0gZnJvbSAnLi9hc3NldC1ub2RlLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljR3JvdXBOb2RlIH0gZnJvbSAnLi9keW5hbWljLWdyb3VwLW5vZGUnO1xuaW1wb3J0IHsgRGV2aWNlR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi9ncm91cC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldE5vZGVNbyB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXROb2RlU2VydmljZSB7XG4gIHJvb3ROb2RlOiBBc3NldE5vZGU7XG4gIGZpcnN0VXJsID0gdHJ1ZTtcbiAgZHJhZ2dlZERhdGE6IEFzc2V0Tm9kZTtcbiAgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcm90ZWN0ZWQgUEFHRV9TSVpFID0gMjA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwdWJsaWMgYXBpU2VydmljZTogQXBpU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwdWJsaWMgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVNTRVRfTkFWSUdBVE9SX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogQXNzZXROYXZpZ2F0b3JDb25maWcsXG4gICAgcHJvdGVjdGVkIGRldmljZUdyb3VwU2VydmljZTogRGV2aWNlR3JvdXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9kdWxlQ29uZmlnID0ge1xuICAgICAgcm9vdE5vZGVQcmlvcml0eTogMjAwMCxcbiAgICAgIC4uLihtb2R1bGVDb25maWcgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnF1ZXJpZXNVdGlsID0gbmV3IFF1ZXJpZXNVdGlsKCk7XG4gIH1cblxuICBpY29uKG1vOiBJTWFuYWdlZE9iamVjdCwgb3Blbj86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaWNvbihtbywgb3Blbik7XG4gIH1cblxuICBpc0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0dyb3VwKG1vKTtcbiAgfVxuXG4gIGlzRHluYW1pY0dyb3VwKG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0R5bmFtaWNHcm91cChtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlcihtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXJBY3RpdmUobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGF0YUJyb2tlckFjdGl2ZShtbyk7XG4gIH1cblxuICBpc0Fzc2V0KG1vOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pc0Fzc2V0KG1vKTtcbiAgfVxuXG4gIGlzQW55R3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzQW55R3JvdXAobW8pO1xuICB9XG5cbiAgaXNEZXZpY2UobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRGV2aWNlKG1vKTtcbiAgfVxuXG4gIGNyZWF0ZVJvb3ROb2RlKGNvbmZpZzogTmF2aWdhdG9yTm9kZURhdGEgPSB7fSkge1xuICAgIHRoaXMucm9vdE5vZGUgPSB0aGlzLmNyZWF0ZUFzc2V0Tm9kZSh7XG4gICAgICByb290OiB0cnVlLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgcHJpb3JpdHk6IHRoaXMubW9kdWxlQ29uZmlnLnJvb3ROb2RlUHJpb3JpdHksXG4gICAgICBmZWF0dXJlSWQ6ICdncm91cHMnXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMucm9vdE5vZGU7XG4gIH1cblxuICBjcmVhdGVEeW5hbWljR3JvdXBOb2RlKGNvbmZpZykge1xuICAgIHJldHVybiBuZXcgRHluYW1pY0dyb3VwTm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQXNzZXROb2RlKGNvbmZpZzogUGFydGlhbDxBc3NldE5vZGU+KSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldE5vZGUodGhpcywgY29uZmlnKTtcbiAgfVxuXG4gIGNyZWF0ZUNoaWxkTm9kZShtYW5hZ2VkT2JqZWN0LCBjb25maWc6IFBhcnRpYWw8QXNzZXROb2RlPikge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gbWFuYWdlZE9iamVjdDtcbiAgICBjb25maWcubW8gPSBtYW5hZ2VkT2JqZWN0O1xuICAgIGlmICh0eXBlID09PSBHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cFR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUR5bmFtaWNHcm91cE5vZGUoY29uZmlnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQXNzZXROb2RlKGNvbmZpZyk7XG4gIH1cblxuICBnZXRSb290Tm9kZXMoY3VzdG9tRmlsdGVyPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBkZWZhdWx0RmlsdGVyID0ge1xuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIG9ubHlSb290czogIXRoaXMub3B0aW9uc1NlcnZpY2UuZGlzYWJsZU9ubHlSb290c1F1ZXJ5LFxuICAgICAgcXVlcnk6IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeSh0aGlzLm5hdlJvb3RRdWVyeUZpbHRlcigpKVxuICAgIH07XG4gICAgY29uc3QgZ3JvdXBGaWx0ZXIgPSB7IC4uLmRlZmF1bHRGaWx0ZXIsIC4uLmN1c3RvbUZpbHRlciB9O1xuXG4gICAgLy8gZHVlIHRvIEJFIHBlcmZvcm1hbmNlIGxpbWl0YXRpb25zIHdlIGRvIG5vdCBhbGxvdyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgZm9yIGEgdXNlciB3aXRob3V0IGludmVudG9yeSByb2xlc1xuICAgIGlmICghdGhpcy51c2VyLmhhc1JvbGUodGhpcy5hcHBTdGF0ZS5jdXJyZW50VXNlci52YWx1ZSwgJ1JPTEVfSU5WRU5UT1JZX1JFQUQnKSkge1xuICAgICAgZGVsZXRlIGdyb3VwRmlsdGVyLnF1ZXJ5O1xuICAgICAgT2JqZWN0LmFzc2lnbihncm91cEZpbHRlciwge1xuICAgICAgICBmcmFnbWVudFR5cGU6IEdyb3VwRnJhZ21lbnQuZ3JvdXBGcmFnbWVudFR5cGUsXG4gICAgICAgIG9ubHlSb290czogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKGdyb3VwRmlsdGVyKSk7XG4gIH1cblxuICBnZXRBbGxJbnZlbnRvcmllcyhjdXN0b21GaWx0ZXI/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXIgPSB7XG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlXG4gICAgfTtcbiAgICBjb25zdCBncm91cEZpbHRlciA9IHsgLi4uZGVmYXVsdEZpbHRlciwgLi4uY3VzdG9tRmlsdGVyIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIoZ3JvdXBGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldEdyb3VwSXRlbXMobW9JZDogc3RyaW5nLCBleHRyYUZpbHRlcjogb2JqZWN0ID0ge30sIHdpdGhDaGlsZHJlbiA9IGZhbHNlLCBmaWx0ZXJRdWVyeSA9ICcnKSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICB3aXRoQ2hpbGRyZW4sXG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICBxdWVyeTogdGhpcy5ncm91cFF1ZXJ5RmlsdGVyKG1vSWQsIGZpbHRlclF1ZXJ5KVxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5LmNoaWxkQXNzZXRzTGlzdChtb0lkLCB7IC4uLnF1ZXJ5RmlsdGVyLCAuLi5leHRyYUZpbHRlciB9KTtcbiAgfVxuXG4gIGdldFVuYXNzaWduZWREZXZpY2VzKHdpdGhDaGlsZHJlbiA9IGZhbHNlLCBmaWx0ZXJRdWVyeSA9ICcnKSB7XG4gICAgY29uc3QgcXVlcnlGaWx0ZXI6IGFueSA9IHtcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9Jc0RldmljZScsXG4gICAgICBvbmx5Um9vdHM6IHRydWUsXG4gICAgICB3aXRoQ2hpbGRyZW4sXG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICBxOiB0aGlzLmdldFVuYXNzaWduZWREZXZpY2VzUXVlcnlTdHIoZmlsdGVyUXVlcnkpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkubGlzdCh0aGlzLmNyZWF0ZUZpbHRlcihxdWVyeUZpbHRlcikpO1xuICB9XG5cbiAgZ2V0RHluYW1pY0dyb3VwSXRlbXMoZ3JvdXBRdWVyeTogc3RyaW5nLCBmaWx0ZXJPYmo6IGFueSA9IHt9KSB7XG4gICAgY29uc3QgeyBxdWVyeSwgLi4ucXVlcnlQYXJhbXMgfSA9IGZpbHRlck9iajtcbiAgICBjb25zdCBvcmRlckJ5UXVlcnkgPSBxdWVyeTtcbiAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgIHE6IHRoaXMuYnVpbGRDb21iaW5lZFF1ZXJ5KGdyb3VwUXVlcnksIG9yZGVyQnlRdWVyeSksXG4gICAgICAuLi5xdWVyeVBhcmFtc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIocXVlcnlGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldERldmljZUNoaWxkcmVuKFxuICAgIG1vSWQ6IHN0cmluZyxcbiAgICBleHRyYUZpbHRlcjogb2JqZWN0ID0ge30sXG4gICAgZmlsdGVyUXVlcnkgPSAnJyxcbiAgICB3aXRoQ2hpbGRyZW4gPSBmYWxzZVxuICApIHtcbiAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgIHdpdGhDaGlsZHJlbixcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmdyb3VwUXVlcnlGaWx0ZXIobW9JZCwgZmlsdGVyUXVlcnkpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkuY2hpbGREZXZpY2VzTGlzdChtb0lkLCB7IC4uLnF1ZXJ5RmlsdGVyLCAuLi5leHRyYUZpbHRlciB9KTtcbiAgfVxuXG4gIGdldFVuYXNzaWduZWREZXZpY2VzUXVlcnlTdHIoZmlsdGVyUXVlcnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc0dyb3VwSWQgPSBmaWx0ZXJRdWVyeS5pbmNsdWRlcygnYnlncm91cGlkJyk7XG4gICAgLy8gRmV0Y2ggYWxsIHVuYXNzaWduZWQgZGV2aWNlcy5cbiAgICBjb25zdCBkZWZhdWx0UXVlcnlTdHIgPSAnJG9yZGVyYnk9bmFtZSc7XG5cbiAgICAvLyBmaWx0ZXJRdWVyeSBpcyBhIGN1c3RvbSBxdWVyeSB0byBmZXRjaCB1bmFzc2lnbmVkIGRldmljZXMgZmlsdGVyZWQgYnkgbmFtZS5cbiAgICByZXR1cm4gaGFzR3JvdXBJZCB8fCAhZmlsdGVyUXVlcnkgPyBkZWZhdWx0UXVlcnlTdHIgOiBmaWx0ZXJRdWVyeTtcbiAgfVxuXG4gIGdyb3VwUXVlcnlGaWx0ZXIobW9JZDogc3RyaW5nLCBmaWx0ZXJRdWVyeT86IHN0cmluZykge1xuICAgIGlmICghZmlsdGVyUXVlcnkpIHtcbiAgICAgIHJldHVybiBgJGZpbHRlcj0oYnlncm91cGlkKCR7bW9JZH0pKSRvcmRlcmJ5PW5hbWVgO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyUXVlcnk7XG4gIH1cblxuICBuYXZSb290UXVlcnlGaWx0ZXIoKSB7XG4gICAgY29uc3QgbmF2Um9vdEZpbHRlciA9IHRoaXMucm9vdFF1ZXJ5RmlsdGVyKCk7XG4gICAgbmF2Um9vdEZpbHRlci5fX29yZGVyYnkgPSBbeyBuYW1lOiAxIH1dO1xuICAgIHJldHVybiBuYXZSb290RmlsdGVyO1xuICB9XG5cbiAgcm9vdFF1ZXJ5RmlsdGVyKCkge1xuICAgIGNvbnN0IHsgbW9kdWxlQ29uZmlnIH0gPSB0aGlzO1xuICAgIGNvbnN0IHJvb3RGaWx0ZXIgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmRpc2FibGVPbmx5Um9vdHNRdWVyeVxuICAgICAgPyB7XG4gICAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IEdyb3VwRnJhZ21lbnQuZ3JvdXBUeXBlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBfX29yZGVyYnk6IFtdXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgICAgICBfX2hhczogR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgX19vcmRlcmJ5OiBbXVxuICAgICAgICB9O1xuICAgIGlmIChtb2R1bGVDb25maWcuc21hcnRHcm91cHMpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgICBfX2ZpbHRlcjoge1xuICAgICAgICAgIF9fYW5kOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX19oYXM6IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IF9fbm90OiB7IF9faGFzOiBgJHtHcm91cEZyYWdtZW50LmR5bmFtaWNHcm91cEZyYWdtZW50fS5pbnZpc2libGVgIH0gfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMucXVlcmllc1V0aWwuYWRkT3JGaWx0ZXIocm9vdEZpbHRlciwgcXVlcnlGaWx0ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gcm9vdEZpbHRlcjtcbiAgfVxuXG4gIG9uVXBkYXRlKHsgbW8sIHJvb3QgfSkge1xuICAgIGlmIChtby5pZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBbJ1BVVCcsICdERUxFVEUnLCAnUE9TVCddLmluY2x1ZGVzKG1ldGhvZCkgJiZcbiAgICAgICAgICAgIFJlZ0V4cChgKChpbnZlbnRvcnkvbWFuYWdlZE9iamVjdHMpfChzZXJ2aWNlL3NtYXJ0Z3JvdXAvc21hcnRncm91cHMpKS8ke21vLmlkfWApLnRlc3QoXG4gICAgICAgICAgICAgIHVybFxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5kcmFnZ2VkRGF0YSksXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhKSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gIXJlc3BvbnNlLmRhdGEuYzh5X0Rhc2hib2FyZClcbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHJvb3QpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmhvb2tSZXNwb25zZShcbiAgICAgICAgICAoeyB1cmwsIG1ldGhvZCB9KSA9PlxuICAgICAgICAgICAgUmVnRXhwKCcoKGludmVudG9yeS9tYW5hZ2VkT2JqZWN0cyl8KHNlcnZpY2Uvc21hcnRncm91cC9zbWFydGdyb3VwcykpLz8kJykudGVzdCh1cmwpICYmXG4gICAgICAgICAgICBtZXRob2QgPT09ICdQT1NUJ1xuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKHRoaXMuYXBpU2VydmljZS5yZXNvbHZlRGF0YSksXG4gICAgICAgICAgZmlsdGVyKHJlc3BvbnNlID0+IHRoaXMuaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZSkpXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGlzTmV3TWFuYWdlZE9iamVjdFJvb3QocmVzcG9uc2U6IFBhcnRpYWw8SVJlc3VsdDxJTWFuYWdlZE9iamVjdD4+ID0ge30pIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHJlc3BvbnNlO1xuICAgIGxldCBpc1Jvb3RBc3NldCA9IGZhbHNlO1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZV07XG4gICAgICBpZiAoIWlzUm9vdEFzc2V0ICYmIHRoaXMubW9kdWxlQ29uZmlnLnNtYXJ0R3JvdXBzKSB7XG4gICAgICAgIGlzUm9vdEFzc2V0ID0gISFkYXRhW0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnRdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNSb290QXNzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgaXQgaXMgcG9zc2libGUgdG8gZHJvcCBhIG5vZGUgYWZ0ZXIgZHJhZ2dpbmcuXG4gICAqIEBwYXJhbSBkcm9wT25Sb290IElzIHRoZSBkcm9wIHBlcmZvcm1lZCBvbiB0aGUgcm9vdCBub2RlXG4gICAqL1xuICBjYW5Ecm9wTm9kZShkcm9wT25Sb290OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFkcm9wT25Sb290IHx8IHRoaXMudXNlci5oYXNSb2xlKHRoaXMuYXBwU3RhdGUuY3VycmVudFVzZXIudmFsdWUsICdST0xFX0lOVkVOVE9SWV9BRE1JTicpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBicmVhZGNydW1icyBmb3IgZGV2aWNlcyxcbiAgICogc28gd2Ugc2V0IGEgcHJlZmVycmVkIG9uZSBvbiBjbGljayBvbiBhIGRldmljZS5cbiAgICogQHBhcmFtIHBhcmVudHMgVGhlIHBhcmVudCBub2RlcyBvZiB0aGUgZGV2aWNlIHRvIHNlbGVjdCB0aGUgcHJlZmVyZWQgb25lLlxuICAgKi9cbiAgcHJlZmVyQnJlYWRjcnVtYihwYXJlbnRzOiBOYXZpZ2F0b3JOb2RlW10pIHtcbiAgICBpZiAocGFyZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2VsZWN0UHJlZmVycmVkQnlQYXRoKHBhcmVudHNbMF0ucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUZpbHRlcihleHRyYVBhcmFtczogYW55ID0ge30pIHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBjdXJyZW50UGFnZTogMSxcbiAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlLFxuICAgICAgcGFnZVNpemU6IDEwXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5wYXJhbXMsIC4uLmV4dHJhUGFyYW1zIH07XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ29tYmluZWRRdWVyeShxdWVyeUEsIHF1ZXJ5Qikge1xuICAgIGxldCBjb21iaW5lZFF1ZXJ5O1xuICAgIGlmIChxdWVyeUEgJiYgcXVlcnlCKSB7XG4gICAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShbXG4gICAgICAgIHtcbiAgICAgICAgICBfX3VzZUZpbHRlclF1ZXJ5U3RyaW5nOiBxdWVyeUFcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIF9fdXNlRmlsdGVyUXVlcnlTdHJpbmc6IHF1ZXJ5QlxuICAgICAgICB9XG4gICAgICBdKTtcbiAgICAgIGNvbnN0IG9yYmVyQnlRdWVyeSA9IHRoaXMucXVlcmllc1V0aWwuZXh0cmFjdEFuZE1lcmdlT3JkZXJCeXMoW3F1ZXJ5QSwgcXVlcnlCXSk7XG4gICAgICBjb21iaW5lZFF1ZXJ5ID0gYCR7ZmlsdGVyUXVlcnl9ICR7b3JiZXJCeVF1ZXJ5fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbWJpbmVkUXVlcnkgPSBxdWVyeUEgfHwgcXVlcnlCIHx8ICcnO1xuICAgIH1cbiAgICByZXR1cm4gY29tYmluZWRRdWVyeTtcbiAgfVxufVxuIl19
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vYXNzZXRzLW5hdmlnYXRvci9hc3NldC1ub2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVcsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFlBQVksRUFHWixjQUFjLEVBQ2YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUF3QixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFVckQsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNTLFNBQTJCLEVBQzNCLFVBQXNCLEVBQ3RCLEtBQW1CLEVBQ25CLEtBQW1CLEVBQ2hCLGlCQUFvQyxFQUNwQyxJQUFpQixFQUNqQixRQUF5QixFQUN6QixjQUE4QixFQUNXLFlBQWtDLEVBQzNFLGtCQUFzQztRQVR6QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FB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LENBQUM7WUFDaEYsYUFBYSxHQUFHLEdBQUcsV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1NBQ2xEO2FBQU07WUFDTCxhQUFhLEdBQUcsTUFBTSxJQUFJLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDeEM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOzs2R0FqVFUsZ0JBQWdCLDZQQWdCTCxzQkFBc0I7aUhBaEJqQyxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWlCSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0LCBRdWVyaWVzVXRpbCwgVXNlclNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEFwcFN0YXRlU2VydmljZSxcbiAgQnJlYWRjcnVtYlNlcnZpY2UsXG4gIEdyb3VwRnJhZ21lbnQsXG4gIE1vZGFsU2VydmljZSxcbiAgTmF2aWdhdG9yTm9kZSxcbiAgTmF2aWdhdG9yTm9kZURhdGEsXG4gIE9wdGlvbnNTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXROb2RlIH0gZnJvbSAnLi9hc3NldC1ub2RlJztcbmltcG9ydCB7IEFzc2V0TmF2aWdhdG9yQ29uZmlnLCBBU1NFVF9OQVZJR0FUT1JfQ09ORklHIH0gZnJvbSAnLi9hc3NldC1ub2RlLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljR3JvdXBOb2RlIH0gZnJvbSAnLi9keW5hbWljLWdyb3VwLW5vZGUnO1xuaW1wb3J0IHsgRGV2aWNlR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi9ncm91cC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBc3NldE5vZGVNbyB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXROb2RlU2VydmljZSB7XG4gIHJvb3ROb2RlOiBBc3NldE5vZGU7XG4gIGZpcnN0VXJsID0gdHJ1ZTtcbiAgZHJhZ2dlZERhdGE6IEFzc2V0Tm9kZTtcbiAgcXVlcmllc1V0aWw6IFF1ZXJpZXNVdGlsO1xuICBwcm90ZWN0ZWQgUEFHRV9TSVpFID0gMjA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwdWJsaWMgYXBpU2VydmljZTogQXBpU2VydmljZSxcbiAgICBwdWJsaWMgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwdWJsaWMgYWxlcnQ6IEFsZXJ0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVNTRVRfTkFWSUdBVE9SX0NPTkZJRykgcHVibGljIG1vZHVsZUNvbmZpZzogQXNzZXROYXZpZ2F0b3JDb25maWcsXG4gICAgcHJvdGVjdGVkIGRldmljZUdyb3VwU2VydmljZTogRGV2aWNlR3JvdXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9kdWxlQ29uZmlnID0ge1xuICAgICAgcm9vdE5vZGVQcmlvcml0eTogMjAwMCxcbiAgICAgIC4uLihtb2R1bGVDb25maWcgfHwge30pXG4gICAgfTtcbiAgICB0aGlzLnF1ZXJpZXNVdGlsID0gbmV3IFF1ZXJpZXNVdGlsKCk7XG4gIH1cblxuICBpY29uKG1vOiBJTWFuYWdlZE9iamVjdCwgb3Blbj86IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmRldmljZUdyb3VwU2VydmljZS5pY29uKG1vLCBvcGVuKTtcbiAgfVxuXG4gIGlzR3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzR3JvdXAobW8pO1xuICB9XG5cbiAgaXNEeW5hbWljR3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzRHluYW1pY0dyb3VwKG1vKTtcbiAgfVxuXG4gIGlzRGF0YUJyb2tlcihtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaXNEYXRhQnJva2VyKG1vKTtcbiAgfVxuXG4gIGlzRGF0YUJyb2tlckFjdGl2ZShtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaXNEYXRhQnJva2VyQWN0aXZlKG1vKTtcbiAgfVxuXG4gIGlzQXNzZXQobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2aWNlR3JvdXBTZXJ2aWNlLmlzQXNzZXQobW8pO1xuICB9XG5cbiAgaXNBbnlHcm91cChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaXNBbnlHcm91cChtbyk7XG4gIH1cblxuICBpc0RldmljZShtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VHcm91cFNlcnZpY2UuaXNEZXZpY2UobW8pO1xuICB9XG5cbiAgY3JlYXRlUm9vdE5vZGUoY29uZmlnOiBOYXZpZ2F0b3JOb2RlRGF0YSA9IHt9KSB7XG4gICAgdGhpcy5yb290Tm9kZSA9IHRoaXMuY3JlYXRlQXNzZXROb2RlKHtcbiAgICAgIHJvb3Q6IHRydWUsXG4gICAgICAuLi5jb25maWcsXG4gICAgICBwcmlvcml0eTogdGhpcy5tb2R1bGVDb25maWcucm9vdE5vZGVQcmlvcml0eSxcbiAgICAgIGZlYXR1cmVJZDogJ2dyb3VwcydcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5yb290Tm9kZTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNHcm91cE5vZGUoY29uZmlnKSB7XG4gICAgcmV0dXJuIG5ldyBEeW5hbWljR3JvdXBOb2RlKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICBjcmVhdGVBc3NldE5vZGUoY29uZmlnOiBQYXJ0aWFsPEFzc2V0Tm9kZT4pIHtcbiAgICByZXR1cm4gbmV3IEFzc2V0Tm9kZSh0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlQ2hpbGROb2RlKG1hbmFnZWRPYmplY3QsIGNvbmZpZzogUGFydGlhbDxBc3NldE5vZGU+KSB7XG4gICAgY29uc3QgeyB0eXBlIH0gPSBtYW5hZ2VkT2JqZWN0O1xuICAgIGNvbmZpZy5tbyA9IG1hbmFnZWRPYmplY3Q7XG4gICAgaWYgKHR5cGUgPT09IEdyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwVHlwZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRHluYW1pY0dyb3VwTm9kZShjb25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBc3NldE5vZGUoY29uZmlnKTtcbiAgfVxuXG4gIGdldFJvb3ROb2RlcyhjdXN0b21GaWx0ZXI/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGaWx0ZXIgPSB7XG4gICAgICBwYWdlU2l6ZTogdGhpcy5QQUdFX1NJWkUsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgb25seVJvb3RzOiAhdGhpcy5vcHRpb25zU2VydmljZS5kaXNhYmxlT25seVJvb3RzUXVlcnksXG4gICAgICBxdWVyeTogdGhpcy5xdWVyaWVzVXRpbC5idWlsZFF1ZXJ5KHRoaXMubmF2Um9vdFF1ZXJ5RmlsdGVyKCkpXG4gICAgfTtcbiAgICBjb25zdCBncm91cEZpbHRlciA9IHsgLi4uZGVmYXVsdEZpbHRlciwgLi4uY3VzdG9tRmlsdGVyIH07XG5cbiAgICAvLyBkdWUgdG8gQkUgcGVyZm9ybWFuY2UgbGltaXRhdGlvbnMgd2UgZG8gbm90IGFsbG93IGZpbHRlcmluZyBhbmQgc29ydGluZyBmb3IgYSB1c2VyIHdpdGhvdXQgaW52ZW50b3J5IHJvbGVzXG4gICAgaWYgKCF0aGlzLnVzZXIuaGFzUm9sZSh0aGlzLmFwcFN0YXRlLmN1cnJlbnRVc2VyLnZhbHVlLCAnUk9MRV9JTlZFTlRPUllfUkVBRCcpKSB7XG4gICAgICBkZWxldGUgZ3JvdXBGaWx0ZXIucXVlcnk7XG4gICAgICBPYmplY3QuYXNzaWduKGdyb3VwRmlsdGVyLCB7XG4gICAgICAgIGZyYWdtZW50VHlwZTogR3JvdXBGcmFnbWVudC5ncm91cEZyYWdtZW50VHlwZSxcbiAgICAgICAgb25seVJvb3RzOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5Lmxpc3QodGhpcy5jcmVhdGVGaWx0ZXIoZ3JvdXBGaWx0ZXIpKTtcbiAgfVxuXG4gIGdldEFsbEludmVudG9yaWVzKGN1c3RvbUZpbHRlcj86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVmYXVsdEZpbHRlciA9IHtcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2VcbiAgICB9O1xuICAgIGNvbnN0IGdyb3VwRmlsdGVyID0geyAuLi5kZWZhdWx0RmlsdGVyLCAuLi5jdXN0b21GaWx0ZXIgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkubGlzdCh0aGlzLmNyZWF0ZUZpbHRlcihncm91cEZpbHRlcikpO1xuICB9XG5cbiAgZ2V0R3JvdXBJdGVtcyhtb0lkOiBzdHJpbmcsIGV4dHJhRmlsdGVyOiBvYmplY3QgPSB7fSwgd2l0aENoaWxkcmVuID0gZmFsc2UsIGZpbHRlclF1ZXJ5ID0gJycpIHtcbiAgICBjb25zdCBxdWVyeUZpbHRlciA9IHtcbiAgICAgIHdpdGhDaGlsZHJlbixcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHF1ZXJ5OiB0aGlzLmdyb3VwUXVlcnlGaWx0ZXIobW9JZCwgZmlsdGVyUXVlcnkpXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkuY2hpbGRBc3NldHNMaXN0KG1vSWQsIHsgLi4ucXVlcnlGaWx0ZXIsIC4uLmV4dHJhRmlsdGVyIH0pO1xuICB9XG5cbiAgZ2V0VW5hc3NpZ25lZERldmljZXMod2l0aENoaWxkcmVuID0gZmFsc2UsIGZpbHRlclF1ZXJ5ID0gJycpIHtcbiAgICBjb25zdCBxdWVyeUZpbHRlcjogYW55ID0ge1xuICAgICAgZnJhZ21lbnRUeXBlOiAnYzh5X0lzRGV2aWNlJyxcbiAgICAgIG9ubHlSb290czogdHJ1ZSxcbiAgICAgIHdpdGhDaGlsZHJlbixcbiAgICAgIHBhZ2VTaXplOiB0aGlzLlBBR0VfU0laRSxcbiAgICAgIHE6IHRoaXMuZ2V0VW5hc3NpZ25lZERldmljZXNRdWVyeVN0cihmaWx0ZXJRdWVyeSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5saXN0KHRoaXMuY3JlYXRlRmlsdGVyKHF1ZXJ5RmlsdGVyKSk7XG4gIH1cblxuICBnZXREeW5hbWljR3JvdXBJdGVtcyhncm91cFF1ZXJ5OiBzdHJpbmcsIGZpbHRlck9iajogYW55ID0ge30pIHtcbiAgICBjb25zdCB7IHF1ZXJ5LCAuLi5xdWVyeVBhcmFtcyB9ID0gZmlsdGVyT2JqO1xuICAgIGNvbnN0IG9yZGVyQnlRdWVyeSA9IHF1ZXJ5O1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgcTogdGhpcy5idWlsZENvbWJpbmVkUXVlcnkoZ3JvdXBRdWVyeSwgb3JkZXJCeVF1ZXJ5KSxcbiAgICAgIC4uLnF1ZXJ5UGFyYW1zXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnkubGlzdCh0aGlzLmNyZWF0ZUZpbHRlcihxdWVyeUZpbHRlcikpO1xuICB9XG5cbiAgZ2V0RGV2aWNlQ2hpbGRyZW4oXG4gICAgbW9JZDogc3RyaW5nLFxuICAgIGV4dHJhRmlsdGVyOiBvYmplY3QgPSB7fSxcbiAgICBmaWx0ZXJRdWVyeSA9ICcnLFxuICAgIHdpdGhDaGlsZHJlbiA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5RmlsdGVyID0ge1xuICAgICAgd2l0aENoaWxkcmVuLFxuICAgICAgcGFnZVNpemU6IHRoaXMuUEFHRV9TSVpFLFxuICAgICAgcXVlcnk6IHRoaXMuZ3JvdXBRdWVyeUZpbHRlcihtb0lkLCBmaWx0ZXJRdWVyeSlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeS5jaGlsZERldmljZXNMaXN0KG1vSWQsIHsgLi4ucXVlcnlGaWx0ZXIsIC4uLmV4dHJhRmlsdGVyIH0pO1xuICB9XG5cbiAgZ2V0VW5hc3NpZ25lZERldmljZXNRdWVyeVN0cihmaWx0ZXJRdWVyeSk6IHN0cmluZyB7XG4gICAgY29uc3QgaGFzR3JvdXBJZCA9IGZpbHRlclF1ZXJ5LmluY2x1ZGVzKCdieWdyb3VwaWQnKTtcbiAgICAvLyBGZXRjaCBhbGwgdW5hc3NpZ25lZCBkZXZpY2VzLlxuICAgIGNvbnN0IGRlZmF1bHRRdWVyeVN0ciA9ICckb3JkZXJieT1uYW1lJztcblxuICAgIC8vIGZpbHRlclF1ZXJ5IGlzIGEgY3VzdG9tIHF1ZXJ5IHRvIGZldGNoIHVuYXNzaWduZWQgZGV2aWNlcyBmaWx0ZXJlZCBieSBuYW1lLlxuICAgIHJldHVybiBoYXNHcm91cElkIHx8ICFmaWx0ZXJRdWVyeSA/IGRlZmF1bHRRdWVyeVN0ciA6IGZpbHRlclF1ZXJ5O1xuICB9XG5cbiAgZ3JvdXBRdWVyeUZpbHRlcihtb0lkOiBzdHJpbmcsIGZpbHRlclF1ZXJ5Pzogc3RyaW5nKSB7XG4gICAgaWYgKCFmaWx0ZXJRdWVyeSkge1xuICAgICAgcmV0dXJuIGAkZmlsdGVyPShieWdyb3VwaWQoJHttb0lkfSkpJG9yZGVyYnk9bmFtZWA7XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJRdWVyeTtcbiAgfVxuXG4gIG5hdlJvb3RRdWVyeUZpbHRlcigpIHtcbiAgICBjb25zdCBuYXZSb290RmlsdGVyID0gdGhpcy5yb290UXVlcnlGaWx0ZXIoKTtcbiAgICBuYXZSb290RmlsdGVyLl9fb3JkZXJieSA9IFt7IG5hbWU6IDEgfV07XG4gICAgcmV0dXJuIG5hdlJvb3RGaWx0ZXI7XG4gIH1cblxuICByb290UXVlcnlGaWx0ZXIoKSB7XG4gICAgY29uc3QgeyBtb2R1bGVDb25maWcgfSA9IHRoaXM7XG4gICAgY29uc3Qgcm9vdEZpbHRlciA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZGlzYWJsZU9ubHlSb290c1F1ZXJ5XG4gICAgICA/IHtcbiAgICAgICAgICBfX2ZpbHRlcjoge1xuICAgICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5ncm91cFR5cGVcbiAgICAgICAgICB9LFxuICAgICAgICAgIF9fb3JkZXJieTogW11cbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgICAgIF9faGFzOiBHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBfX29yZGVyYnk6IFtdXG4gICAgICAgIH07XG4gICAgaWYgKG1vZHVsZUNvbmZpZy5zbWFydEdyb3Vwcykge1xuICAgICAgY29uc3QgcXVlcnlGaWx0ZXIgPSB7XG4gICAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgICAgX19hbmQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBUeXBlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBfX2hhczogR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgX19ub3Q6IHsgX19oYXM6IGAke0dyb3VwRnJhZ21lbnQuZHluYW1pY0dyb3VwRnJhZ21lbnR9LmludmlzaWJsZWAgfSB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5xdWVyaWVzVXRpbC5hZGRPckZpbHRlcihyb290RmlsdGVyLCBxdWVyeUZpbHRlcik7XG4gICAgfVxuICAgIHJldHVybiByb290RmlsdGVyO1xuICB9XG5cbiAgb25VcGRhdGUoeyBtbywgcm9vdCB9KSB7XG4gICAgaWYgKG1vLmlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAgIC5ob29rUmVzcG9uc2UoXG4gICAgICAgICAgKHsgdXJsLCBtZXRob2QgfSkgPT5cbiAgICAgICAgICAgIFsnUFVUJywgJ0RFTEVURScsICdQT1NUJ10uaW5jbHVkZXMobWV0aG9kKSAmJlxuICAgICAgICAgICAgUmVnRXhwKGAoKGludmVudG9yeS9tYW5hZ2VkT2JqZWN0cyl8KHNlcnZpY2Uvc21hcnRncm91cC9zbWFydGdyb3VwcykpLyR7bW8uaWR9YCkudGVzdChcbiAgICAgICAgICAgICAgdXJsXG4gICAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRyYWdnZWREYXRhKSxcbiAgICAgICAgICBtZXJnZU1hcCh0aGlzLmFwaVNlcnZpY2UucmVzb2x2ZURhdGEpLFxuICAgICAgICAgIGZpbHRlcihyZXNwb25zZSA9PiAhcmVzcG9uc2UuZGF0YS5jOHlfRGFzaGJvYXJkKVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAocm9vdCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZVxuICAgICAgICAuaG9va1Jlc3BvbnNlKFxuICAgICAgICAgICh7IHVybCwgbWV0aG9kIH0pID0+XG4gICAgICAgICAgICBSZWdFeHAoJygoaW52ZW50b3J5L21hbmFnZWRPYmplY3RzKXwoc2VydmljZS9zbWFydGdyb3VwL3NtYXJ0Z3JvdXBzKSkvPyQnKS50ZXN0KHVybCkgJiZcbiAgICAgICAgICAgIG1ldGhvZCA9PT0gJ1BPU1QnXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAodGhpcy5hcGlTZXJ2aWNlLnJlc29sdmVEYXRhKSxcbiAgICAgICAgICBmaWx0ZXIocmVzcG9uc2UgPT4gdGhpcy5pc05ld01hbmFnZWRPYmplY3RSb290KHJlc3BvbnNlKSlcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgfVxuICB9XG5cbiAgaXNOZXdNYW5hZ2VkT2JqZWN0Um9vdChyZXNwb25zZTogUGFydGlhbDxJUmVzdWx0PElNYW5hZ2VkT2JqZWN0Pj4gPSB7fSkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gcmVzcG9uc2U7XG4gICAgbGV0IGlzUm9vdEFzc2V0ID0gZmFsc2U7XG5cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICBpc1Jvb3RBc3NldCA9ICEhZGF0YVtHcm91cEZyYWdtZW50Lmdyb3VwRnJhZ21lbnRUeXBlXTtcbiAgICAgIGlmICghaXNSb290QXNzZXQgJiYgdGhpcy5tb2R1bGVDb25maWcuc21hcnRHcm91cHMpIHtcbiAgICAgICAgaXNSb290QXNzZXQgPSAhIWRhdGFbR3JvdXBGcmFnbWVudC5keW5hbWljR3JvdXBGcmFnbWVudF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1Jvb3RBc3NldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBpdCBpcyBwb3NzaWJsZSB0byBkcm9wIGEgbm9kZSBhZnRlciBkcmFnZ2luZy5cbiAgICogQHBhcmFtIGRyb3BPblJvb3QgSXMgdGhlIGRyb3AgcGVyZm9ybWVkIG9uIHRoZSByb290IG5vZGVcbiAgICovXG4gIGNhbkRyb3BOb2RlKGRyb3BPblJvb3Q6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIWRyb3BPblJvb3QgfHwgdGhpcy51c2VyLmhhc1JvbGUodGhpcy5hcHBTdGF0ZS5jdXJyZW50VXNlci52YWx1ZSwgJ1JPTEVfSU5WRU5UT1JZX0FETUlOJylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIGJyZWFkY3J1bWJzIGZvciBkZXZpY2VzLFxuICAgKiBzbyB3ZSBzZXQgYSBwcmVmZXJyZWQgb25lIG9uIGNsaWNrIG9uIGEgZGV2aWNlLlxuICAgKiBAcGFyYW0gcGFyZW50cyBUaGUgcGFyZW50IG5vZGVzIG9mIHRoZSBkZXZpY2UgdG8gc2VsZWN0IHRoZSBwcmVmZXJlZCBvbmUuXG4gICAqL1xuICBwcmVmZXJCcmVhZGNydW1iKHBhcmVudHM6IE5hdmlnYXRvck5vZGVbXSkge1xuICAgIGlmIChwYXJlbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZWxlY3RQcmVmZXJyZWRCeVBhdGgocGFyZW50c1swXS5wYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlRmlsdGVyKGV4dHJhUGFyYW1zOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgd2l0aFRvdGFsUGFnZXM6IHRydWUsXG4gICAgICBwYWdlU2l6ZTogMTBcbiAgICB9O1xuICAgIHJldHVybiB7IC4uLnBhcmFtcywgLi4uZXh0cmFQYXJhbXMgfTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb21iaW5lZFF1ZXJ5KHF1ZXJ5QSwgcXVlcnlCKSB7XG4gICAgbGV0IGNvbWJpbmVkUXVlcnk7XG4gICAgaWYgKHF1ZXJ5QSAmJiBxdWVyeUIpIHtcbiAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5ID0gdGhpcy5xdWVyaWVzVXRpbC5idWlsZFF1ZXJ5KFtcbiAgICAgICAge1xuICAgICAgICAgIF9fdXNlRmlsdGVyUXVlcnlTdHJpbmc6IHF1ZXJ5QVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgX191c2VGaWx0ZXJRdWVyeVN0cmluZzogcXVlcnlCXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgICAgY29uc3Qgb3JiZXJCeVF1ZXJ5ID0gdGhpcy5xdWVyaWVzVXRpbC5leHRyYWN0QW5kTWVyZ2VPcmRlckJ5cyhbcXVlcnlBLCBxdWVyeUJdKTtcbiAgICAgIGNvbWJpbmVkUXVlcnkgPSBgJHtmaWx0ZXJRdWVyeX0gJHtvcmJlckJ5UXVlcnl9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tYmluZWRRdWVyeSA9IHF1ZXJ5QSB8fCBxdWVyeUIgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiBjb21iaW5lZFF1ZXJ5O1xuICB9XG59XG4iXX0=
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
44
44
|
providedIn: 'root'
|
|
45
45
|
}]
|
|
46
46
|
}], ctorParameters: function () { return [{ type: i1.GroupService }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Fzc2V0cy1uYXZpZ2F0b3IvZ3JvdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLElBQUksMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTWpGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW9CLDBCQUFzRDtRQUF0RCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO0lBQUcsQ0FBQztJQUU5RSxJQUFJLENBQUMsRUFBa0IsRUFBRSxJQUFJLEdBQUcsS0FBSztRQUNuQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQUMsRUFBa0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxZQUFZLENBQUMsRUFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxFQUFrQjtRQUNuQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTyxDQUFDLEVBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDOzsrR0FqQ1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FSakIsTUFBTTsyRkFRUCxrQkFBa0I7a0JBVDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBHcm91cFNlcnZpY2UgYXMgTWlncmF0ZWREZXZpY2VHcm91cFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIE9yaWdpbmFsIHNlcnZpY2Ugd2FzIG1vdmVkIHRvIGNvcmUvY29tbW9uLlxuICogVGhpcyBzZXJ2aWNlIGlzIGRlcHJlY2F0ZWQgYW5kIHNlcnZlcyBhcyBhIHByb3h5IHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXZpY2VHcm91cFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1pZ3JhdGVkRGV2aWNlR3JvdXBTZXJ2aWNlOiBNaWdyYXRlZERldmljZUdyb3VwU2VydmljZSkge31cblxuICBpY29uKG1vOiBJTWFuYWdlZE9iamVjdCwgb3BlbiA9IGZhbHNlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5taWdyYXRlZERldmljZUdyb3VwU2VydmljZS5nZXRJY29uKG1vLCBvcGVuKTtcbiAgfVxuXG4gIGlzR3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWlncmF0ZWREZXZpY2VHcm91cFNlcnZpY2UuaXNHcm91cChtbyk7XG4gIH1cblxuICBpc0R5bmFtaWNHcm91cChtbzogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5taWdyYXRlZERldmljZUdyb3VwU2VydmljZS5pc0R5bmFtaWNHcm91cChtbyk7XG4gIH1cblxuICBpc0RhdGFCcm9rZXIobW86IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWlncmF0ZWREZXZpY2VHcm91cFNlcnZpY2UuaXNEYXRhQnJva2VyKG1vKTtcbiAgfVxuXG4gIGlzRGF0YUJyb2tlckFjdGl2ZShtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5taWdyYXRlZERldmljZUdyb3VwU2VydmljZS5pc0RhdGFCcm9rZXJBY3RpdmUobW8pO1xuICB9XG5cbiAgaXNBc3NldChtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5taWdyYXRlZERldmljZUdyb3VwU2VydmljZS5pc0Fzc2V0KG1vKTtcbiAgfVxuXG4gIGlzQW55R3JvdXAobW86IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMubWlncmF0ZWREZXZpY2VHcm91cFNlcnZpY2UuaXNBbnlHcm91cChtbyk7XG4gIH1cblxuICBpc0RldmljZShtbzogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5taWdyYXRlZERldmljZUdyb3VwU2VydmljZS5pc0RldmljZShtbyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ import * as i3 from "../common/ui-state.service";
|
|
|
11
11
|
/**
|
|
12
12
|
* AssetTypesService is being used to manage a cache of all existing asset types.
|
|
13
13
|
* This service is injected in the AssetOverviewNavigationFactory class, which will trigger
|
|
14
|
-
* the initialization of the cache as the
|
|
14
|
+
* the initialization of the cache as the constructor is called.
|
|
15
15
|
*/
|
|
16
16
|
export class AssetTypesService {
|
|
17
17
|
constructor(inventory, apiService, appStateService) {
|
|
@@ -23,9 +23,10 @@ export class AssetTypesService {
|
|
|
23
23
|
__and: [{ __has: 'c8y_IsAssetType' }, { name: 'group' }]
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
this.assetTypesCache = {};
|
|
27
26
|
this.DEFAULT_GROUP_ICON = 'c8y-group';
|
|
28
27
|
this.DEFAULT_GROUP_ICON_OPEN = 'c8y-group-open';
|
|
28
|
+
this.assetTypesCache = {};
|
|
29
|
+
this.isCacheSet = false;
|
|
29
30
|
this.appStateService.currentUser
|
|
30
31
|
.pipe(map(user => user?.id), distinctUntilChanged(), switchMap(userId => {
|
|
31
32
|
if (userId) {
|
|
@@ -41,7 +42,7 @@ export class AssetTypesService {
|
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* Queries available asset types and adds every asset type to the local cache.
|
|
44
|
-
* @returns
|
|
45
|
+
* @returns IManagedObject table of asset types.
|
|
45
46
|
*/
|
|
46
47
|
async initAssetTypesCache() {
|
|
47
48
|
const { data } = await this.inventory.list({
|
|
@@ -50,7 +51,8 @@ export class AssetTypesService {
|
|
|
50
51
|
pageSize: 2000
|
|
51
52
|
});
|
|
52
53
|
data.forEach(assetType => this.addAssetType(assetType));
|
|
53
|
-
|
|
54
|
+
this.isCacheSet = true;
|
|
55
|
+
return data;
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
58
|
* Returns an asset type from the cache based on the unique name property.
|
|
@@ -81,42 +83,21 @@ export class AssetTypesService {
|
|
|
81
83
|
* Defaults to false.
|
|
82
84
|
* @returns Returns an icon for a given asset type.
|
|
83
85
|
*/
|
|
84
|
-
getIcon(type, open = false) {
|
|
86
|
+
async getIcon(type, open = false) {
|
|
87
|
+
if (!this.isCacheSet) {
|
|
88
|
+
try {
|
|
89
|
+
await this.initAssetTypesCache();
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
// do nothing
|
|
93
|
+
}
|
|
94
|
+
}
|
|
85
95
|
const assetType = this.getAssetTypeByName(type);
|
|
86
|
-
|
|
87
|
-
return icon;
|
|
96
|
+
return assetType?.c8y_IsAssetType?.icon?.name || this.getDefaultGroupIcon(open);
|
|
88
97
|
}
|
|
89
98
|
getDefaultGroupIcon(open = false) {
|
|
90
99
|
return open ? this.DEFAULT_GROUP_ICON_OPEN : this.DEFAULT_GROUP_ICON;
|
|
91
100
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Checks if the default asset type 'group' already exists and if it doesn't it will be created.
|
|
94
|
-
* @returns void.
|
|
95
|
-
*/
|
|
96
|
-
async createAssetTypeGroupIfNotExists() {
|
|
97
|
-
const managedObjects = (await this.inventory.listQuery(this.ASSET_TYPE_GROUP_QUERY)).data;
|
|
98
|
-
if (managedObjects.length > 0) {
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
// if default group asset type doesn't exit create it
|
|
102
|
-
await this.createDefaultAssetTypeGroup();
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* create the default asset type group in the Inventory.
|
|
106
|
-
*/
|
|
107
|
-
async createDefaultAssetTypeGroup() {
|
|
108
|
-
await this.inventory.create({
|
|
109
|
-
label: 'Group',
|
|
110
|
-
name: 'group',
|
|
111
|
-
description: 'Default group asset type',
|
|
112
|
-
c8y_IsAssetType: {
|
|
113
|
-
icon: 'folder',
|
|
114
|
-
propertyIds: [],
|
|
115
|
-
allowedAssetTypeIds: [],
|
|
116
|
-
isNoneChildAssetsAllowed: 'false'
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
101
|
/**
|
|
121
102
|
* Add an asset type to the local cache.
|
|
122
103
|
* @param assetType Asset type which should be added to the cache.
|
|
@@ -214,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
214
195
|
type: Injectable,
|
|
215
196
|
args: [{ providedIn: 'root' }]
|
|
216
197
|
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i2.ApiService }, { type: i3.AppStateService }]; } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtdHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYXNzZXQtdHlwZXMvYXNzZXQtdHlwZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFXLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUU3RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QixZQUNVLFNBQTJCLEVBQzNCLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRmhDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBYnpCLDJCQUFzQixHQUFHO1lBQ3hDLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ3pEO1NBQ0YsQ0FBQztRQUVNLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUNqQyw0QkFBdUIsR0FBRyxnQkFBZ0IsQ0FBQztRQU8xRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVc7YUFDN0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFB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QUssS0FBSyxDQUFDO1FBQzlFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0QsT0FBTyxpQkFBaUIsSUFBSSxjQUFjLENBQUM7SUFDN0MsQ0FBQzs7OEdBbE9VLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTTsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQXBpQ2FsbCwgQXBpU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXBpJztcbmltcG9ydCB7IE5FVkVSIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBBc3NldFR5cGVzU2VydmljZSBpcyBiZWluZyB1c2VkIHRvIG1hbmFnZSBhIGNhY2hlIG9mIGFsbCBleGlzdGluZyBhc3NldCB0eXBlcy5cbiAqIFRoaXMgc2VydmljZSBpcyBpbmplY3RlZCBpbiB0aGUgQXNzZXRPdmVydmlld05hdmlnYXRpb25GYWN0b3J5IGNsYXNzLCB3aGljaCB3aWxsIHRyaWdnZXJcbiAqIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgY2FjaGUgYXMgdGhlIGNvbnRzdHJ1Y3RvciBpcyBjYWxsZWQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzZXRUeXBlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IEFTU0VUX1RZUEVfR1JPVVBfUVVFUlkgPSB7XG4gICAgX19maWx0ZXI6IHtcbiAgICAgIF9fYW5kOiBbeyBfX2hhczogJ2M4eV9Jc0Fzc2V0VHlwZScgfSwgeyBuYW1lOiAnZ3JvdXAnIH1dXG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYXNzZXRUeXBlc0NhY2hlOiBvYmplY3QgPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0dST1VQX0lDT04gPSAnYzh5LWdyb3VwJztcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0dST1VQX0lDT05fT1BFTiA9ICdjOHktZ3JvdXAtb3Blbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnk6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU3RhdGVTZXJ2aWNlOiBBcHBTdGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hcHBTdGF0ZVNlcnZpY2UuY3VycmVudFVzZXJcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodXNlciA9PiB1c2VyPy5pZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcCh1c2VySWQgPT4ge1xuICAgICAgICAgIGlmICh1c2VySWQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEFzc2V0VHlwZXNDYWNoZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlRm9yQXNzZXRUeXBlVXBkYXRlcygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFzc2V0VHlwZXNDYWNoZSA9IHt9O1xuICAgICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyaWVzIGF2YWlsYWJsZSBhc3NldCB0eXBlcyBhbmQgYWRkcyBldmVyeSBhc3NldCB0eXBlIHRvIHRoZSBsb2NhbCBjYWNoZS5cbiAgICogQHJldHVybnMgdm9pZC5cbiAgICovXG4gIGFzeW5jIGluaXRBc3NldFR5cGVzQ2FjaGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeS5saXN0KHtcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9Jc0Fzc2V0VHlwZScsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgcGFnZVNpemU6IDIwMDBcbiAgICB9KTtcbiAgICBkYXRhLmZvckVhY2goYXNzZXRUeXBlID0+IHRoaXMuYWRkQXNzZXRUeXBlKGFzc2V0VHlwZSkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFzc2V0IHR5cGUgZnJvbSB0aGUgY2FjaGUgYmFzZWQgb24gdGhlIHVuaXF1ZSBuYW1lIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBhc3NldCB0eXBlLlxuICAgKiBAcmV0dXJucyBJTWFuYWdlZE9iamVjdCB3aGljaCByZXByZXNlbnRzIHRoZSBhc3NldCB0eXBlLlxuICAgKi9cbiAgZ2V0QXNzZXRUeXBlQnlOYW1lKG5hbWU6IHN0cmluZyk6IElNYW5hZ2VkT2JqZWN0IHtcbiAgICBpZiAoIXRoaXMuYXNzZXRUeXBlc0NhY2hlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2V0VHlwZXNDYWNoZVtuYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFzc2V0IHR5cGUgZnJvbSB0aGUgY2FjaGUgYmFzZWQgb24gdGhlIGlkLlxuICAgKiBAcGFyYW0gYXNzZXRUeXBlSWQgSWQgb2YgdGhlIGFzc2V0IHR5cGUuXG4gICAqIEByZXR1cm5zIElNYW5hZ2VkT2JqZWN0IHdoaWNoIHJlcHJlc2VudHMgdGhlIGFzc2V0IHR5cGUuXG4gICAqL1xuICBnZXRBc3NldFR5cGVCeUlkKGFzc2V0VHlwZUlkOiBzdHJpbmcpOiBJTWFuYWdlZE9iamVjdCB7XG4gICAgaWYgKCFhc3NldFR5cGVJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuYXNzZXRUeXBlc0NhY2hlKS5maW5kKFxuICAgICAgKGFzc2V0VHlwZTogSU1hbmFnZWRPYmplY3QpID0+IGFzc2V0VHlwZS5pZCA9PT0gYXNzZXRUeXBlSWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGFuIGljb24gZnJvbSBhbiBhc3NldCB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBUeXBlIG9mIHRoZSBhc3NldCB0eXBlLlxuICAgKiBAcGFyYW0gb3BlbiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG1ldGhvZCBzaG91bGQgcmV0dXJuIGFuIGFsdGVybmF0aXZlIGljb24gc2hvd2luZyB0aGUgb3BlbiBzdGF0ZS5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqIEByZXR1cm5zIFJldHVybnMgYW4gaWNvbiBmb3IgYSBnaXZlbiBhc3NldCB0eXBlLlxuICAgKi9cbiAgZ2V0SWNvbih0eXBlOiBzdHJpbmcsIG9wZW46IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgY29uc3QgYXNzZXRUeXBlID0gdGhpcy5nZXRBc3NldFR5cGVCeU5hbWUodHlwZSk7XG4gICAgY29uc3QgaWNvbiA9IGFzc2V0VHlwZT8uYzh5X0lzQXNzZXRUeXBlPy5pY29uPy5uYW1lIHx8IHRoaXMuZ2V0RGVmYXVsdEdyb3VwSWNvbihvcGVuKTtcbiAgICByZXR1cm4gaWNvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdEdyb3VwSWNvbihvcGVuOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gb3BlbiA/IHRoaXMuREVGQVVMVF9HUk9VUF9JQ09OX09QRU4gOiB0aGlzLkRFRkFVTFRfR1JPVVBfSUNPTjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGRlZmF1bHQgYXNzZXQgdHlwZSAnZ3JvdXAnIGFscmVhZHkgZXhpc3RzIGFuZCBpZiBpdCBkb2Vzbid0IGl0IHdpbGwgYmUgY3JlYXRlZC5cbiAgICogQHJldHVybnMgdm9pZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQXNzZXRUeXBlR3JvdXBJZk5vdEV4aXN0cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtYW5hZ2VkT2JqZWN0cyA9IChhd2FpdCB0aGlzLmludmVudG9yeS5saXN0UXVlcnkodGhpcy5BU1NFVF9UWVBFX0dST1VQX1FVRVJZKSkuZGF0YTtcblxuICAgIGlmIChtYW5hZ2VkT2JqZWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gaWYgZGVmYXVsdCBncm91cCBhc3NldCB0eXBlIGRvZXNuJ3QgZXhpdCBjcmVhdGUgaXRcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZURlZmF1bHRBc3NldFR5cGVHcm91cCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNyZWF0ZSB0aGUgZGVmYXVsdCBhc3NldCB0eXBlIGdyb3VwIGluIHRoZSBJbnZlbnRvcnkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZURlZmF1bHRBc3NldFR5cGVHcm91cCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmludmVudG9yeS5jcmVhdGUoe1xuICAgICAgbGFiZWw6ICdHcm91cCcsXG4gICAgICBuYW1lOiAnZ3JvdXAnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZWZhdWx0IGdyb3VwIGFzc2V0IHR5cGUnLFxuICAgICAgYzh5X0lzQXNzZXRUeXBlOiB7XG4gICAgICAgIGljb246ICdmb2xkZXInLFxuICAgICAgICBwcm9wZXJ0eUlkczogW10sXG4gICAgICAgIGFsbG93ZWRBc3NldFR5cGVJZHM6IFtdLFxuICAgICAgICBpc05vbmVDaGlsZEFzc2V0c0FsbG93ZWQ6ICdmYWxzZSdcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gYXNzZXQgdHlwZSB0byB0aGUgbG9jYWwgY2FjaGUuXG4gICAqIEBwYXJhbSBhc3NldFR5cGUgQXNzZXQgdHlwZSB3aGljaCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGNhY2hlLlxuICAgKiBAcmV0dXJucyB2b2lkLlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRBc3NldFR5cGUoYXNzZXRUeXBlOiBJTWFuYWdlZE9iamVjdCk6IHZvaWQge1xuICAgIGlmICghYXNzZXRUeXBlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBc3NldCB0eXBlIG11c3Qgbm90IGJlIG51bGwnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2V0VHlwZXNDYWNoZVthc3NldFR5cGUubmFtZV0gPSBhc3NldFR5cGU7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGFzc2V0IHR5cGUgZnJvbSB0aGUgbG9jYWwgY2FjaGUgYmFzZWQgb24gdGhlIGdpdmVuIGFzc2V0IHR5cGUgaWQuXG4gICAqIEBwYXJhbSBhc3NldFR5cGVJZCBJZCBvZiB0aGUgYXNzZXQgdHlwZSB3aGljaCBzaG91bGQgYmUgZGVsZXRlZC5cbiAgICogQHJldHVybnMgdm9pZC5cbiAgICovXG4gIHByaXZhdGUgZGVsZXRlQXNzZXRUeXBlKGFzc2V0VHlwZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWFzc2V0VHlwZUlkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBc3NldCB0eXBlIElEIG11c3Qgbm90IGJlIG51bGwnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhc3NldFR5cGUgPSB0aGlzLmdldEFzc2V0VHlwZUJ5SWQoYXNzZXRUeXBlSWQpO1xuICAgIGlmIChhc3NldFR5cGUpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmFzc2V0VHlwZXNDYWNoZVthc3NldFR5cGUubmFtZV07XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gYXNzZXQgdHlwZSBpbiB0aGUgbG9jYWwgY2FjaGUuXG4gICAqIEBwYXJhbSBhc3NldFR5cGUgQXNzZXQgdHlwZSB3aGljaCBzaG91bGQgYmUgdXBkYXRlZCBpbiB0aGUgY2FjaGUuXG4gICAqIEByZXR1cm5zIHZvaWQuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUFzc2V0VHlwZShhc3NldFR5cGU6IElNYW5hZ2VkT2JqZWN0KTogdm9pZCB7XG4gICAgaWYgKCFhc3NldFR5cGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Fzc2V0IHR5cGUgbXVzdCBub3QgYmUgbnVsbCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlZEFzc2V0VHlwZSA9IHRoaXMuZ2V0QXNzZXRUeXBlQnlJZChhc3NldFR5cGUuaWQpO1xuICAgIGlmIChjYWNoZWRBc3NldFR5cGUpIHtcbiAgICAgIHRoaXMuYXNzZXRUeXBlc0NhY2hlW2NhY2hlZEFzc2V0VHlwZS5uYW1lXSA9IE9iamVjdC5hc3NpZ24oY2FjaGVkQXNzZXRUeXBlLCBhc3NldFR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIGFwaSBQVVQsIFBPU1QgYW5kIERFTEVURSByZXF1ZXN0cyBpbnRlcmNlcHRvciB0byB1cGRhdGUgbG9jYWwgYXNzZXQgdHlwZXMgY2FjaGUuXG4gICAqIElmIGEgbmV3IGFzc2V0IHR5cGUgaGFzIGJlZW4gY3JlYXRlZCBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBsb2NhbCBjYWNoZS4gSWYgYW4gYXNzZXRcbiAgICogdHlwZSBoYXMgYmVlbiBkZWxldGVkIGl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBsb2NhbCBjYWNoZS5cbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlRm9yQXNzZXRUeXBlVXBkYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuaG9va1Jlc3BvbnNlKGMgPT4gdGhpcy5jaGVja0lmSW52ZW50b3J5TW9BcGlDYWxsKGMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoY2FsbDogQXBpQ2FsbCkgPT4ge1xuICAgICAgICAgIGlmICghY2FsbCAmJiAhY2FsbC5tZXRob2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgYm9keVRvUGFyc2UgPSBjYWxsLm9wdGlvbnM/LmJvZHk7XG4gICAgICAgICAgaWYgKGJvZHlUb1BhcnNlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBtbzogSU1hbmFnZWRPYmplY3QgPSBKU09OLnBhcnNlKGJvZHlUb1BhcnNlIGFzIHN0cmluZyk7XG5cbiAgICAgICAgICAgICAgaWYgKGNhbGwubWV0aG9kID09PSAnREVMRVRFJykge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQXNzZXRUeXBlKG1vLmlkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoIW1vLmhhc093blByb3BlcnR5KCdjOHlfSXNBc3NldFR5cGUnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjYWxsLm1ldGhvZCA9PT0gJ1BVVCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFzc2V0VHlwZShtbyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5hZGRBc3NldFR5cGUobW8pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWFuYWdlZCBvYmplY3RzIGludmVudG9yeSBhcGkgZmlsdGVyLCBhbGxvd2luZyBvbmx5IFBVVCwgUE9TVCBhbmQgREVMRVRFIG1ldGhvZHMuXG4gICAqIEBwYXJhbSBjYWxsIEFwaSBjYWxsIHRvIGZpbHRlci5cbiAgICogQHJldHVybnMgUmV0dXJucyB0cnVlIGlmIGFwaSBjYWxsIG1lZXRzIHRoZSByZXF1aXJlZCBjcml0ZXJpYS5cbiAgICovXG4gIHByaXZhdGUgY2hlY2tJZkludmVudG9yeU1vQXBpQ2FsbChjYWxsOiBBcGlDYWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjYWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzUmVxdWlyZWRNZXRob2QgPVxuICAgICAgY2FsbC5tZXRob2QgPT09ICdQT1NUJyB8fCBjYWxsLm1ldGhvZCA9PT0gJ0RFTEVURScgfHwgY2FsbC5tZXRob2QgPT09ICdQVVQnO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkVXJsID0gY2FsbC51cmwuaW5jbHVkZXMoJ21hbmFnZWRPYmplY3RzJyk7XG4gICAgcmV0dXJuIGhhc1JlcXVpcmVkTWV0aG9kICYmIGhhc1JlcXVpcmVkVXJsO1xuICB9XG59XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtdHlwZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYXNzZXQtdHlwZXMvYXNzZXQtdHlwZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFXLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUU3RDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QixZQUNVLFNBQTJCLEVBQzNCLFVBQXNCLEVBQ3RCLGVBQWdDO1FBRmhDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBYnpCLDJCQUFzQixHQUFHO1lBQ3hDLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQ3pEO1NBQ0YsQ0FBQztRQUNlLHVCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUNqQyw0QkFBdUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwRCxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBT3pCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVzthQUM3QixJQUFJLENBQ0gsR0FBRyxDQUFDLElB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RUFBRTt3QkFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQzVCLE9BQU87cUJBQ1I7b0JBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFBRTt3QkFDekMsT0FBTztxQkFDUjtvQkFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO3dCQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUN6QixPQUFPO3FCQUNSO29CQUVELElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNkLGFBQWE7aUJBQ2Q7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHlCQUF5QixDQUFDLElBQWE7UUFDN0MsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLGlCQUFpQixHQUNyQixJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQztRQUM5RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNELE9BQU8saUJBQWlCLElBQUksY0FBYyxDQUFDO0lBQzdDLENBQUM7OzhHQTFNVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwaUNhbGwsIEFwaVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FwaSc7XG5pbXBvcnQgeyBORVZFUiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5cbi8qKlxuICogQXNzZXRUeXBlc1NlcnZpY2UgaXMgYmVpbmcgdXNlZCB0byBtYW5hZ2UgYSBjYWNoZSBvZiBhbGwgZXhpc3RpbmcgYXNzZXQgdHlwZXMuXG4gKiBUaGlzIHNlcnZpY2UgaXMgaW5qZWN0ZWQgaW4gdGhlIEFzc2V0T3ZlcnZpZXdOYXZpZ2F0aW9uRmFjdG9yeSBjbGFzcywgd2hpY2ggd2lsbCB0cmlnZ2VyXG4gKiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNhY2hlIGFzIHRoZSBjb25zdHJ1Y3RvciBpcyBjYWxsZWQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzZXRUeXBlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IEFTU0VUX1RZUEVfR1JPVVBfUVVFUlkgPSB7XG4gICAgX19maWx0ZXI6IHtcbiAgICAgIF9fYW5kOiBbeyBfX2hhczogJ2M4eV9Jc0Fzc2V0VHlwZScgfSwgeyBuYW1lOiAnZ3JvdXAnIH1dXG4gICAgfVxuICB9O1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfR1JPVVBfSUNPTiA9ICdjOHktZ3JvdXAnO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfR1JPVVBfSUNPTl9PUEVOID0gJ2M4eS1ncm91cC1vcGVuJztcbiAgcHJpdmF0ZSBhc3NldFR5cGVzQ2FjaGU6IG9iamVjdCA9IHt9O1xuICBwcml2YXRlIGlzQ2FjaGVTZXQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50VXNlclxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh1c2VyID0+IHVzZXI/LmlkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgc3dpdGNoTWFwKHVzZXJJZCA9PiB7XG4gICAgICAgICAgaWYgKHVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5pbml0QXNzZXRUeXBlc0NhY2hlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpYmVGb3JBc3NldFR5cGVVcGRhdGVzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXNzZXRUeXBlc0NhY2hlID0ge307XG4gICAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJpZXMgYXZhaWxhYmxlIGFzc2V0IHR5cGVzIGFuZCBhZGRzIGV2ZXJ5IGFzc2V0IHR5cGUgdG8gdGhlIGxvY2FsIGNhY2hlLlxuICAgKiBAcmV0dXJucyBJTWFuYWdlZE9iamVjdCB0YWJsZSBvZiBhc3NldCB0eXBlcy5cbiAgICovXG4gIGFzeW5jIGluaXRBc3NldFR5cGVzQ2FjaGUoKTogUHJvbWlzZTxJTWFuYWdlZE9iamVjdFtdPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeS5saXN0KHtcbiAgICAgIGZyYWdtZW50VHlwZTogJ2M4eV9Jc0Fzc2V0VHlwZScsXG4gICAgICB3aXRoQ2hpbGRyZW46IGZhbHNlLFxuICAgICAgcGFnZVNpemU6IDIwMDBcbiAgICB9KTtcbiAgICBkYXRhLmZvckVhY2goYXNzZXRUeXBlID0+IHRoaXMuYWRkQXNzZXRUeXBlKGFzc2V0VHlwZSkpO1xuXG4gICAgdGhpcy5pc0NhY2hlU2V0ID0gdHJ1ZTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFzc2V0IHR5cGUgZnJvbSB0aGUgY2FjaGUgYmFzZWQgb24gdGhlIHVuaXF1ZSBuYW1lIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBhc3NldCB0eXBlLlxuICAgKiBAcmV0dXJucyBJTWFuYWdlZE9iamVjdCB3aGljaCByZXByZXNlbnRzIHRoZSBhc3NldCB0eXBlLlxuICAgKi9cbiAgZ2V0QXNzZXRUeXBlQnlOYW1lKG5hbWU6IHN0cmluZyk6IElNYW5hZ2VkT2JqZWN0IHtcbiAgICBpZiAoIXRoaXMuYXNzZXRUeXBlc0NhY2hlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFzc2V0VHlwZXNDYWNoZVtuYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFzc2V0IHR5cGUgZnJvbSB0aGUgY2FjaGUgYmFzZWQgb24gdGhlIGlkLlxuICAgKiBAcGFyYW0gYXNzZXRUeXBlSWQgSWQgb2YgdGhlIGFzc2V0IHR5cGUuXG4gICAqIEByZXR1cm5zIElNYW5hZ2VkT2JqZWN0IHdoaWNoIHJlcHJlc2VudHMgdGhlIGFzc2V0IHR5cGUuXG4gICAqL1xuICBnZXRBc3NldFR5cGVCeUlkKGFzc2V0VHlwZUlkOiBzdHJpbmcpOiBJTWFuYWdlZE9iamVjdCB7XG4gICAgaWYgKCFhc3NldFR5cGVJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuYXNzZXRUeXBlc0NhY2hlKS5maW5kKFxuICAgICAgKGFzc2V0VHlwZTogSU1hbmFnZWRPYmplY3QpID0+IGFzc2V0VHlwZS5pZCA9PT0gYXNzZXRUeXBlSWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIGFuIGljb24gZnJvbSBhbiBhc3NldCB0eXBlLlxuICAgKiBAcGFyYW0gdHlwZSBUeXBlIG9mIHRoZSBhc3NldCB0eXBlLlxuICAgKiBAcGFyYW0gb3BlbiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG1ldGhvZCBzaG91bGQgcmV0dXJuIGFuIGFsdGVybmF0aXZlIGljb24gc2hvd2luZyB0aGUgb3BlbiBzdGF0ZS5cbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqIEByZXR1cm5zIFJldHVybnMgYW4gaWNvbiBmb3IgYSBnaXZlbiBhc3NldCB0eXBlLlxuICAgKi9cbiAgYXN5bmMgZ2V0SWNvbih0eXBlOiBzdHJpbmcsIG9wZW4gPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmlzQ2FjaGVTZXQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdEFzc2V0VHlwZXNDYWNoZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gZG8gbm90aGluZ1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhc3NldFR5cGUgPSB0aGlzLmdldEFzc2V0VHlwZUJ5TmFtZSh0eXBlKTtcbiAgICByZXR1cm4gYXNzZXRUeXBlPy5jOHlfSXNBc3NldFR5cGU/Lmljb24/Lm5hbWUgfHwgdGhpcy5nZXREZWZhdWx0R3JvdXBJY29uKG9wZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0R3JvdXBJY29uKG9wZW46IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBvcGVuID8gdGhpcy5ERUZBVUxUX0dST1VQX0lDT05fT1BFTiA6IHRoaXMuREVGQVVMVF9HUk9VUF9JQ09OO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBhc3NldCB0eXBlIHRvIHRoZSBsb2NhbCBjYWNoZS5cbiAgICogQHBhcmFtIGFzc2V0VHlwZSBBc3NldCB0eXBlIHdoaWNoIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2FjaGUuXG4gICAqIEByZXR1cm5zIHZvaWQuXG4gICAqL1xuICBwcml2YXRlIGFkZEFzc2V0VHlwZShhc3NldFR5cGU6IElNYW5hZ2VkT2JqZWN0KTogdm9pZCB7XG4gICAgaWYgKCFhc3NldFR5cGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Fzc2V0IHR5cGUgbXVzdCBub3QgYmUgbnVsbCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXNzZXRUeXBlc0NhY2hlW2Fzc2V0VHlwZS5uYW1lXSA9IGFzc2V0VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gYXNzZXQgdHlwZSBmcm9tIHRoZSBsb2NhbCBjYWNoZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gYXNzZXQgdHlwZSBpZC5cbiAgICogQHBhcmFtIGFzc2V0VHlwZUlkIElkIG9mIHRoZSBhc3NldCB0eXBlIHdoaWNoIHNob3VsZCBiZSBkZWxldGVkLlxuICAgKiBAcmV0dXJucyB2b2lkLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWxldGVBc3NldFR5cGUoYXNzZXRUeXBlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghYXNzZXRUeXBlSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Fzc2V0IHR5cGUgSUQgbXVzdCBub3QgYmUgbnVsbCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0VHlwZSA9IHRoaXMuZ2V0QXNzZXRUeXBlQnlJZChhc3NldFR5cGVJZCk7XG4gICAgaWYgKGFzc2V0VHlwZSkge1xuICAgICAgZGVsZXRlIHRoaXMuYXNzZXRUeXBlc0NhY2hlW2Fzc2V0VHlwZS5uYW1lXTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBhc3NldCB0eXBlIGluIHRoZSBsb2NhbCBjYWNoZS5cbiAgICogQHBhcmFtIGFzc2V0VHlwZSBBc3NldCB0eXBlIHdoaWNoIHNob3VsZCBiZSB1cGRhdGVkIGluIHRoZSBjYWNoZS5cbiAgICogQHJldHVybnMgdm9pZC5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlQXNzZXRUeXBlKGFzc2V0VHlwZTogSU1hbmFnZWRPYmplY3QpOiB2b2lkIHtcbiAgICBpZiAoIWFzc2V0VHlwZSkge1xuICAgICAgY29uc29sZS5lcnJvcignQXNzZXQgdHlwZSBtdXN0IG5vdCBiZSBudWxsJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVkQXNzZXRUeXBlID0gdGhpcy5nZXRBc3NldFR5cGVCeUlkKGFzc2V0VHlwZS5pZCk7XG4gICAgaWYgKGNhY2hlZEFzc2V0VHlwZSkge1xuICAgICAgdGhpcy5hc3NldFR5cGVzQ2FjaGVbY2FjaGVkQXNzZXRUeXBlLm5hbWVdID0gT2JqZWN0LmFzc2lnbihjYWNoZWRBc3NldFR5cGUsIGFzc2V0VHlwZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gYXBpIFBVVCwgUE9TVCBhbmQgREVMRVRFIHJlcXVlc3RzIGludGVyY2VwdG9yIHRvIHVwZGF0ZSBsb2NhbCBhc3NldCB0eXBlcyBjYWNoZS5cbiAgICogSWYgYSBuZXcgYXNzZXQgdHlwZSBoYXMgYmVlbiBjcmVhdGVkIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGxvY2FsIGNhY2hlLiBJZiBhbiBhc3NldFxuICAgKiB0eXBlIGhhcyBiZWVuIGRlbGV0ZWQgaXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGxvY2FsIGNhY2hlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpYmVGb3JBc3NldFR5cGVVcGRhdGVzKCkge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2VcbiAgICAgIC5ob29rUmVzcG9uc2UoYyA9PiB0aGlzLmNoZWNrSWZJbnZlbnRvcnlNb0FwaUNhbGwoYykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChjYWxsOiBBcGlDYWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYWxsICYmICFjYWxsLm1ldGhvZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBib2R5VG9QYXJzZSA9IGNhbGwub3B0aW9ucz8uYm9keTtcbiAgICAgICAgICBpZiAoYm9keVRvUGFyc2UpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1vOiBJTWFuYWdlZE9iamVjdCA9IEpTT04ucGFyc2UoYm9keVRvUGFyc2UgYXMgc3RyaW5nKTtcblxuICAgICAgICAgICAgICBpZiAoY2FsbC5tZXRob2QgPT09ICdERUxFVEUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVBc3NldFR5cGUobW8uaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICghbW8uaGFzT3duUHJvcGVydHkoJ2M4eV9Jc0Fzc2V0VHlwZScpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGNhbGwubWV0aG9kID09PSAnUFVUJykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXNzZXRUeXBlKG1vKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLmFkZEFzc2V0VHlwZShtbyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VkIG9iamVjdHMgaW52ZW50b3J5IGFwaSBmaWx0ZXIsIGFsbG93aW5nIG9ubHkgUFVULCBQT1NUIGFuZCBERUxFVEUgbWV0aG9kcy5cbiAgICogQHBhcmFtIGNhbGwgQXBpIGNhbGwgdG8gZmlsdGVyLlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRydWUgaWYgYXBpIGNhbGwgbWVldHMgdGhlIHJlcXVpcmVkIGNyaXRlcmlhLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0lmSW52ZW50b3J5TW9BcGlDYWxsKGNhbGw6IEFwaUNhbGwpOiBib29sZWFuIHtcbiAgICBpZiAoIWNhbGwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNSZXF1aXJlZE1ldGhvZCA9XG4gICAgICBjYWxsLm1ldGhvZCA9PT0gJ1BPU1QnIHx8IGNhbGwubWV0aG9kID09PSAnREVMRVRFJyB8fCBjYWxsLm1ldGhvZCA9PT0gJ1BVVCc7XG4gICAgY29uc3QgaGFzUmVxdWlyZWRVcmwgPSBjYWxsLnVybC5pbmNsdWRlcygnbWFuYWdlZE9iamVjdHMnKTtcbiAgICByZXR1cm4gaGFzUmVxdWlyZWRNZXRob2QgJiYgaGFzUmVxdWlyZWRVcmw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,7 +6,7 @@ export class GetGroupIconPipe {
|
|
|
6
6
|
constructor(groupService) {
|
|
7
7
|
this.groupService = groupService;
|
|
8
8
|
}
|
|
9
|
-
transform(mo) {
|
|
9
|
+
async transform(mo) {
|
|
10
10
|
return this.groupService.getIcon(mo);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
18
18
|
name: 'getGroupIcon'
|
|
19
19
|
}]
|
|
20
20
|
}], ctorParameters: function () { return [{ type: i1.GroupService }]; } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWdyb3VwLWljb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL2dldC1ncm91cC1pY29uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFLL0MsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFbEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OzZHQUxVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBHcm91cFNlcnZpY2UgfSBmcm9tICcuL2dyb3VwLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdnZXRHcm91cEljb24nXG59KVxuZXhwb3J0IGNsYXNzIEdldEdyb3VwSWNvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBncm91cFNlcnZpY2U6IEdyb3VwU2VydmljZSkge31cblxuICBhc3luYyB0cmFuc2Zvcm0obW86IElNYW5hZ2VkT2JqZWN0KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cFNlcnZpY2UuZ2V0SWNvbihtbyk7XG4gIH1cbn1cbiJdfQ==
|