@tiba-spark/client-shared-lib 26.3.0-519 → 26.3.0-527
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/esm2022/libraries/components/device/device-status/device-status-base.component.mjs +3 -2
- package/fesm2022/tiba-spark-client-shared-lib.mjs +2 -1
- package/fesm2022/tiba-spark-client-shared-lib.mjs.map +1 -1
- package/libraries/components/device/device-status/device-status-base.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -57,7 +57,8 @@ export class DeviceStatusBaseComponent extends BaseComponent {
|
|
|
57
57
|
this.sanitizeCoinsData();
|
|
58
58
|
this.activeStatus = isDeviceActive(this.selectedDevice);
|
|
59
59
|
this.zoneName = this.selectedDevice?.zone?.name;
|
|
60
|
-
|
|
60
|
+
// SPRK3-15484: guid and the dictionary are independent slices — the guid slice is absent on a deep link.
|
|
61
|
+
this.isSelectedDeviceMCConnected = facilityDictionary[guid]?.[this.selectedDevice?.parkID]?.isMainControllerConnected;
|
|
61
62
|
this.isStatusSupported = this.deviceService.isStatusSupported(res?.type);
|
|
62
63
|
const deviceItemStatusSections = {
|
|
63
64
|
section1: [],
|
|
@@ -479,4 +480,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
479
480
|
]
|
|
480
481
|
}]
|
|
481
482
|
}], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { selectedDevice$: [], deviceStatus$: [] } });
|
|
482
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXN0YXR1cy1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9kZXZpY2UvZGV2aWNlLXN0YXR1cy9kZXZpY2Utc3RhdHVzLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxN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K0dBM2dCVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwwR0FSMUIsRUFBRSwyREFLVixZQUFZLGlCQUhGLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzs7QUFTbEM7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO2tFQUNEO0FBR3ZDO0lBREMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO2dFQUNIOzRGQU5oQyx5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRjs2RUFJQyxlQUFlLE1BR2YsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBhcHBNb2R1bGVBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb25zL3JvdXRlci10cmFuc2l0aW9uLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBDb21BZ2dyZWdhdGVkU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvYWdncmVnYXRlZC1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBCaWxsRGlzcGVuc2VyU3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2JpbGwtZGlzcGVuc2VyLmVudW0nO1xuaW1wb3J0IHsgQmlsbFZhbGlkYXRvclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9iaWxsLXZhbGlkYXRvci5lbnVtJztcbmltcG9ydCB7IEJ1dHRvblN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2J1dHRvbi5lbnVtJztcbmltcG9ydCB7IEJpbGxUeXBlVGV4dCwgQ2Fzc2V0dGVTdGF0dXNUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvY2Fzc2V0dGUuZW51bSc7XG5pbXBvcnQgeyBEZXZpY2VBY3Rpdml0eU1vZGUsIERldmljZUFjdGl2aXR5TW9kZVRleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kZXZpY2UtYWN0aXZpdHktbW9kZS5lbnVtJztcbmltcG9ydCB7IERldmljZUxvb3AgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kZXZpY2UtbG9vcC5lbnVtJztcbmltcG9ydCB7IERldmljZVByaW50ZXJTdGF0dXNUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvZGV2aWNlLXByaW50ZXIuZW51bSc7XG5pbXBvcnQgeyBEaXBTd2l0Y2hTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kaXAtc3dpdGNoLmVudW0nO1xuaW1wb3J0IHsgRG9vclNlbnNvclN0YXR1cywgRG9vclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kb29yLmVudW0nO1xuaW1wb3J0IHsgQ29pblN0YXR1c1RleHQsIEhvcHBlclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9ob3BwZXIuZW51bSc7XG5pbXBvcnQgeyBJY29uc0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2ljb24uZW51bSc7XG5pbXBvcnQgeyBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZVRleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9sYW5lLXJlY29nbml0aW9uLW1vZGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvbGFuZS1yZWNvZ25pdGlvbi1zdGF0dXMtdHlwZS5lbnVtJztcbmltcG9ydCB7IExvb3BTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9sb29wLmVudW0nO1xuaW1wb3J0IHsgUmVsYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9yZWxheS5lbnVtJztcbmltcG9ydCB7IFN3YWxsb3dVbml0U3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL3N3YWxsb3ctdW5pdC5lbnVtJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFBhcmtNYW5hZ2VyU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuc3RhdGUnO1xuaW1wb3J0IHsgRGVjaW1hbFRvQW1vdW50UGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2RlY2ltYWwtdG8tYW1vdW50LnBpcGUnO1xuaW1wb3J0IHsgRGVjaW1hbFRvQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZGVjaW1hbC10by1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0ZWRTdGF0dXMsIEJhcnJpZXJEdG8sIEJhcnJpZXJTdGF0ZSwgQmlsbERpc3BlbnNlckR0bywgQmlsbERpc3BlbnNlclN0YXR1cywgQmlsbER0bywgQmlsbFR5cGUsIEJpbGxWYWxpZGF0b3JEdG8sXG4gIEJpbGxWYWxpZGF0b3JTdGF0dXMsIENhc3NldHRlRHRvLCBDYXNzZXR0ZVN0YXR1cywgQ29pbkR0bywgQ29pbkluTGFuZUR0bywgQ29pblN0YXR1cywgRGV2aWNlRHRvLCBEZXZpY2VQcmludGVyU3RhdHVzLFxuICBEZXZpY2VTdGF0dXNEdG8sIERvb3JTdGF0dXMsIEhvcHBlckR0bywgSG9wcGVyU3RhdHVzLCBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZSwgTGFuZVJlY29nbml0aW9uU3RhdHVzVHlwZSwgU3dhbGxvd1VuaXREdG8sIFN3YWxsb3dVbml0U3RhdHVzLCBTd2FsbG93VW5pdFR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS1wcm94eS9ycGMtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc0RldmljZUFjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGl2ZS1kZXZpY2Utc3RhdHVzLnV0aWwnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV2aWNlSXRlbVN0YXR1c2VzIH0gZnJvbSAnLi9kZXZpY2UtaXRlbS1zdGF0dXMudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0Yi1kZXZpY2UtYmFzZS1zdGF0dXNdJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW2FwcE1vZHVsZUFuaW1hdGlvbigpXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VTdGF0dXNCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFNlbGVjdChQYXJrTWFuYWdlclN0YXRlLnNlbGVjdGVkRGV2aWNlKVxuICBzZWxlY3RlZERldmljZSQ6IE9ic2VydmFibGU8RGV2aWNlRHRvPjtcblxuICBAU2VsZWN0KFBhcmtNYW5hZ2VyU3RhdGUuc2VsZWN0ZWREZXZpY2VTdGF0dXMpXG4gIGRldmljZVN0YXR1cyQ6IE9ic2VydmFibGU8RGV2aWNlU3RhdHVzRHRvPjtcblxuICBEZXZpY2VMb29wID0gRGV2aWNlTG9vcDtcbiAgSWNvbnNIZWxwZXIgPSBJY29uc0hlbHBlcjtcblxuICBkZXZpY2VTdGF0dXM6IERldmljZVN0YXR1c0R0bztcbiAgc2VsZWN0ZWREZXZpY2U6IERldmljZUR0bztcbiAgZGVjaW1hbFRvQ3VycmVuY3lQaXBlOiBEZWNpbWFsVG9DdXJyZW5jeVBpcGU7XG4gIGRlY2ltYWxUb0Ftb3VudFBpcGU6IERlY2ltYWxUb0Ftb3VudFBpcGU7XG4gIGlzU2VsZWN0ZWREZXZpY2VNQ0Nvbm5lY3RlZDogYm9vbGVhbjtcbiAgYWN0aXZlU3RhdHVzOiBib29sZWFuO1xuICBpc1N0YXR1c1N1cHBvcnRlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNNdWx0aVBhcms6IGJvb2xlYW47XG4gIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2U7XG4gIHB1YmxpYyBhcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZTtcbiAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gIHB1YmxpYyBzdG9yZTogU3RvcmU7XG4gIHB1YmxpYyBkZXZpY2VTZXJ2aWNlOiBCYXNlRGV2aWNlU2VydmljZTtcbiAgcHVibGljIHpvbmVOYW1lOiBzdHJpbmc7XG5cbiAgZGV2aWNlSXRlbVN0YXR1c1NlY3Rpb25zOiB7XG4gICAgc2VjdGlvbjE6IERldmljZUl0ZW1TdGF0dXNlc1tdLFxuICAgIHNlY3Rpb24yOiBEZXZpY2VJdGVtU3RhdHVzZXNbXSxcbiAgICBzZWN0aW9uMzogRGV2aWNlSXRlbVN0YXR1c2VzW10sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmFuc2xhdGUgPSB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcFNldHRpbmdzU2VydmljZSk7XG4gICAgdGhpcy5jZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgdGhpcy5zdG9yZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFN0b3JlKTtcbiAgICB0aGlzLmRldmljZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChCYXNlRGV2aWNlU2VydmljZSk7XG4gICAgdGhpcy5kZWNpbWFsVG9DdXJyZW5jeVBpcGUgPSBuZXcgRGVjaW1hbFRvQ3VycmVuY3lQaXBlKCk7XG4gICAgdGhpcy5kZWNpbWFsVG9BbW91bnRQaXBlID0gbmV3IERlY2ltYWxUb0Ftb3VudFBpcGUoKTtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgIGNvbnN0IGZhY2lsaXR5RGljdGlvbmFyeSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5mYWNpbGl0eURpY3Rpb25hcnkpO1xuICAgIHRoaXMuZGV2aWNlU3RhdHVzJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmU6IGFueSwgY3VycjogYW55KSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXJyKSksXG4gICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREZXZpY2UgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFBhcmtNYW5hZ2VyU3RhdGUuc2VsZWN0ZWREZXZpY2UpO1xuICAgICAgdGhpcy5kZXZpY2VTdGF0dXMgPSByZXM7XG4gICAgICB0aGlzLnNhbml0aXplQ29pbnNEYXRhKCk7XG4gICAgICB0aGlzLmFjdGl2ZVN0YXR1cyA9IGlzRGV2aWNlQWN0aXZlKHRoaXMuc2VsZWN0ZWREZXZpY2UpO1xuICAgICAgdGhpcy56b25lTmFtZSA9IHRoaXMuc2VsZWN0ZWREZXZpY2U/LnpvbmU/Lm5hbWU7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWREZXZpY2VNQ0Nvbm5lY3RlZCA9IGZhY2lsaXR5RGljdGlvbmFyeVtndWlkXVt0aGlzLnNlbGVjdGVkRGV2aWNlPy5wYXJrSURdPy5pc01haW5Db250cm9sbGVyQ29ubmVjdGVkO1xuICAgICAgdGhpcy5pc1N0YXR1c1N1cHBvcnRlZCA9IHRoaXMuZGV2aWNlU2VydmljZS5pc1N0YXR1c1N1cHBvcnRlZChyZXM/LnR5cGUpO1xuXG4gICAgICBjb25zdCBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMgPSB7XG4gICAgICAgIHNlY3Rpb24xOiBbXSxcbiAgICAgICAgc2VjdGlvbjI6IFtdLFxuICAgICAgICBzZWN0aW9uMzogW10sXG4gICAgICB9O1xuXG4gICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5MLmNvbSxcbiAgICAgICAgc3RhdHVzSWNvbjogdGhpcy5nZXRDb21TdGF0dXNJY29uKHJlcyksXG4gICAgICAgIHRleHQ6IHRoaXMuZ2V0VHJhbnNsYXRlZENvbVN0YXR1c1RleHQocmVzLCBmYWxzZSksXG4gICAgICAgIHZhbHVlOiB0aGlzLmdldGREZXZpY2VDb21TdGF0dXNWYWx1ZShyZXMpXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuZGlzcGxheUlzUHJvcEV4aXN0cyhyZXMsICdkb29yQ29udHJvbGxlckNvbm5lY3RlZCcpKSB7XG4gICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMS5wdXNoKHtcbiAgICAgICAgICBrZXk6IHRoaXMuTC5pbnRlcm5hbF9jb20sXG4gICAgICAgICAgc3RhdHVzSWNvbjogdGhpcy5nZXRJbnRlcm5hbENvbVN0YXR1c051bShyZXMuZG9vckNvbnRyb2xsZXJDb25uZWN0ZWQpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmludGVycyA9IHRoaXMuZ2V0UHJpbnRlcnMocmVzKTtcbiAgICAgIGZvciAoY29uc3QgcHJpbnRlciBvZiBwcmludGVycykge1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwucHJpbnRlcixcbiAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldFByaW50ZXJTdGF0dXNOdW0ocHJpbnRlci5zdGF0ZSksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0UHJpbnRlclN0YXR1c1RleHQocHJpbnRlci5zdGF0ZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kaXNwbGF5SXNQcm9wRXhpc3RzKHJlcywgJ21vZGUnKSkge1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwuYWNjZXNzX21vZGUsXG4gICAgICAgICAgaWNvbjogSWNvbnNIZWxwZXIuYWNjZXNzX21vZGUsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0QWNjZXNzTW9kZVN0YXR1c1RleHQocmVzLm1vZGUpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzcGxheUJhcnJpZXJzKHJlcykpIHtcbiAgICAgICAgY29uc3QgYmFycmllcnMgPSB0aGlzLmdldEJhcnJpZXJzKHJlcyk7XG4gICAgICAgIGZvciAoY29uc3QgYmFycmllciBvZiBiYXJyaWVycykge1xuICAgICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMi5wdXNoKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5MLmdhdGUsXG4gICAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldEJhcnJpZXJTdGF0dXNOdW0oYmFycmllci5zdGF0ZSksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRCYXJyaWVyU3RhdHVzVGV4dChiYXJyaWVyLnN0YXRlKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzPy5sb29wcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcz8ubG9vcHMuc2xpY2UoMCwgMikubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBwcmVzZW5jZSA9ICctICcgKyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5wcmVzZW5jZSk7XG4gICAgICAgICAgY29uc3Qgc2FmZXR5ID0gJy0gJyArIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5MLnNhZmV0eSk7XG4gICAgICAgICAgbGV0IHRleHQgPSBgIyR7aSArIDF9JHtpID09PSAwID8gcHJlc2VuY2UgOiBpID09PSAxID8gc2FmZXR5IDogJyd9YDtcblxuICAgICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMi5wdXNoKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5MLmxvb3AsXG4gICAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldExvb3BTdGF0dXNOdW0ocmVzLmxvb3BzW2ldLmlzQ2FyT24pLFxuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIHZhbHVlOiAnJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmRpc3BsYXlTd2FsbG93VW5pdChyZXMpKSB7XG4gICAgICAgIGNvbnN0IHN3YWxsb3dVbml0ID0gdGhpcy5nZXRTd2FsbG93VW5pdChyZXMpO1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjIucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwuc3dhbGxvd191bml0LFxuICAgICAgICAgIHN0YXR1c0ljb246IHRoaXMuZ2V0U3dhbGxvd1VuaXRTdGF0dXNOdW0oc3dhbGxvd1VuaXQ/LnN0YXR1cyksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0U3dhbGxvd1VuaXRTdGF0dXNUZXh0KHN3YWxsb3dVbml0Py5zdGF0dXMpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucyA9IGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNNdWx0aVBhcmsgPSAhIXRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5pc011bHRpUGFyayk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0ZERldmljZUNvbVN0YXR1c1ZhbHVlKGRldmljZVN0YXR1c0RhdGE6IERldmljZVN0YXR1c0R0bykge1xuICAgIC8vIElmIHRoZSBkZXZpY2UgaXMgYW4gTUMgKGNvbW1pZCA9PT0gMCkgd2UgbmVlZCB0byB0cmFuc2xhdGUgdGhlIFBhcmsgY29ubmVjdGlvbiBpbnN0ZWFkIG9mIHRoZSBEZXZpY2VcbiAgICBsZXQgc3RhdHVzVmFsdWU6IHN0cmluZztcbiAgICBpZiAodGhpcy5hY3RpdmVTdGF0dXMgJiYgZGV2aWNlU3RhdHVzRGF0YT8uY29tbUlEICE9PSAwICYmIGRldmljZVN0YXR1c0RhdGE/LmlzQ29ubmVjdGVkICYmXG4gICAgICAodGhpcy5pc0JldHdlZW5SYW5nZShkZXZpY2VTdGF0dXNEYXRhPy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZS50b1N0cmluZygpLCAxLCA3MCkgfHwgZGV2aWNlU3RhdHVzRGF0YT8uY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgPj0gNzEpKSB7XG4gICAgICBzdGF0dXNWYWx1ZSA9IGRldmljZVN0YXR1c0RhdGE/LmNvbW11bmljYXRpb25QZXJjZW50YWdlICsgJyUnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0dXNWYWx1ZTtcbiAgfVxuXG4gIGdldFRyYW5zbGF0ZWRDb21TdGF0dXNUZXh0KGRldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvLCBpc0hpZ2hMZXZlbDogYm9vbGVhbikge1xuICAgIGxldCBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVN0YXR1cykge1xuICAgICAgc3RhdHVzVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5MLmluYWN0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGV2aWNlQ29tQWdncmVnYXRlZFN0YXR1czogQ29tQWdncmVnYXRlZFN0YXR1cyA9IHRoaXMuZGV2aWNlU2VydmljZS5nZXREZXZpY2VDb21BZ2dyZWdhdGVkU3RhdHVzKGRldmljZVN0YXR1cywgdHJ1ZSk7XG4gICAgICBzd2l0Y2ggKGRldmljZUNvbUFnZ3JlZ2F0ZWRTdGF0dXMpIHtcbiAgICAgICAgY2FzZSBDb21BZ2dyZWdhdGVkU3RhdHVzLk9rOlxuICAgICAgICBjYXNlIENvbUFnZ3JlZ2F0ZWRTdGF0dXMuV2FybmluZzpcbiAgICAgICAgICBpZiAoaXNIaWdoTGV2ZWwgJiYgZGV2aWNlU3RhdHVzPy5jb21tSUQgIT09IDApIHtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5jb25uZWN0ZWRfdmFsdWUsIHsgdmFsdWU6IGRldmljZVN0YXR1cz8uY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5jb25uZWN0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21BZ2dyZWdhdGVkU3RhdHVzLkNvbUVycm9yOlxuICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5kaXNjb25uZWN0ZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdHVzVGV4dDtcbiAgfVxuXG4gIGRpc3BsYXlJc1Byb3BFeGlzdHMoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8sIHByb3BOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZGV2aWNlICYmIHByb3BOYW1lIGluIGRldmljZSAmJiBkZXZpY2VbcHJvcE5hbWVdICE9PSBudWxsICYmIGRldmljZVtwcm9wTmFtZV0gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldENvbVN0YXR1c0ljb24oZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VTZXJ2aWNlLmdldERldmljZUNvbUFnZ3JlZ2F0ZWRTdGF0dXMoZGV2aWNlU3RhdHVzLCB0cnVlKTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvbk1vZGVUeXBlVGV4dChtb2RlVHlwZTogTGFuZVJlY29nbml0aW9uTW9kZVR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZVRleHRbTGFuZVJlY29nbml0aW9uTW9kZVR5cGVbbW9kZVR5cGVdXTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVTdGF0dXNOdW0oc3RhdHVzVHlwZTogTGFuZVJlY29nbml0aW9uU3RhdHVzVHlwZSk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkxhbmVSZWNvZ25pdGlvbltMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlW3N0YXR1c1R5cGVdXTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVUZXh0KHN0YXR1c1R5cGU6IExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlVGV4dFtMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlW3N0YXR1c1R5cGVdXTtcbiAgfVxuXG4gIGdldFByaW50ZXJzKGRldmljZTogRGV2aWNlU3RhdHVzRHRvKSB7XG4gICAgaWYgKGRldmljZT8ucHJpbnRlcikge1xuICAgICAgcmV0dXJuIFtkZXZpY2UucHJpbnRlcl07XG4gICAgfSBlbHNlIGlmIChkZXZpY2U/LnByaW50ZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5wcmludGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpc0Nvbm5lY3RlZFRleHQgPSAoaXNDb25uZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcgPT4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpc0Nvbm5lY3RlZCA/IHRoaXMuTC5jb25uZWN0ZWQgOiB0aGlzLkwuZGlzY29ubmVjdGVkKTtcblxuICBnZXRNQ0FnZ3JlZ2F0ZWRTdGF0dXMgPSAoaXNTZWxlY3RlZERldmljZU1DQ29ubmVjdGVkOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyA9PiBpc1NlbGVjdGVkRGV2aWNlTUNDb25uZWN0ZWQgPyBBZ2dyZWdhdGVkU3RhdHVzLk9LIDogQWdncmVnYXRlZFN0YXR1cy5FUlJPUjtcblxuICBnZXRQcmludGVyU3RhdHVzTnVtKHByaW50ZXJTdGF0dXM6IERldmljZVByaW50ZXJTdGF0dXMpOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5QcmludGVyW0RldmljZVByaW50ZXJTdGF0dXNbcHJpbnRlclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0UHJpbnRlclN0YXR1c1RleHQocHJpbnRlclN0YXR1czogRGV2aWNlUHJpbnRlclN0YXR1cyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERldmljZVByaW50ZXJTdGF0dXNUZXh0W0RldmljZVByaW50ZXJTdGF0dXNbcHJpbnRlclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0QWNjZXNzTW9kZVN0YXR1c1RleHQoYWNjZXNzTW9kZVN0YXR1czogRGV2aWNlQWN0aXZpdHlNb2RlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGV2aWNlQWN0aXZpdHlNb2RlVGV4dFtEZXZpY2VBY3Rpdml0eU1vZGVbYWNjZXNzTW9kZVN0YXR1c11dO1xuICB9XG5cbiAgZGlzcGxheUJhcnJpZXJzKGRldmljZTogRGV2aWNlU3RhdHVzRHRvKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhZGV2aWNlPy5iYXJyaWVyIHx8ICEhZGV2aWNlPy5iYXJyaWVycz8ubGVuZ3RoO1xuICB9XG5cbiAgZ2V0QmFycmllcnMoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBCYXJyaWVyRHRvW10ge1xuICAgIGlmIChkZXZpY2U/LmJhcnJpZXIpIHtcbiAgICAgIHJldHVybiBbZGV2aWNlLmJhcnJpZXJdO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5iYXJyaWVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uYmFycmllcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0QmFycmllclN0YXR1c051bShiYXJyaWVyU3RhdGU6IEJhcnJpZXJTdGF0ZSk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJhcnJpZXJbQmFycmllclN0YXRlW2JhcnJpZXJTdGF0ZV1dO1xuICB9XG5cbiAgZ2V0QmFycmllclN0YXR1c1RleHQoYmFycmllclN0YXRlOiBCYXJyaWVyU3RhdGUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoYmFycmllclN0YXRlKSB7XG4gICAgICBjYXNlIEJhcnJpZXJTdGF0ZS5Ccm9rZW46XG4gICAgICAgIHJldHVybiB0aGlzLkwuYXJtX2Jyb2tlbjtcbiAgICAgIGNhc2UgQmFycmllclN0YXRlLk9wZW46XG4gICAgICAgIHJldHVybiB0aGlzLkwudXA7XG4gICAgICBjYXNlIEJhcnJpZXJTdGF0ZS5DbG9zZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuTC5kb3duO1xuICAgIH1cbiAgfVxuXG4gIGdldFN3YWxsb3dVbml0U3RhdHVzTnVtKHN3YWxsb3dVbml0U3RhdHVzOiBTd2FsbG93VW5pdFN0YXR1cyk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLlN3YWxsb3dVbml0W1N3YWxsb3dVbml0U3RhdHVzW3N3YWxsb3dVbml0U3RhdHVzXV07XG4gIH1cblxuICBnZXRTd2FsbG93VW5pdFN0YXR1c1RleHQoc3dhbGxvd1VuaXRTdGF0dXM6IFN3YWxsb3dVbml0U3RhdHVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3dhbGxvd1VuaXRTdGF0dXNUZXh0W1N3YWxsb3dVbml0U3RhdHVzW3N3YWxsb3dVbml0U3RhdHVzXV07XG4gIH1cblxuICBnZXRDYXNzZXR0ZXNTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgY2Fzc2V0dGVzU3RhdHVzID0gc3RhdHVzID8gQ2Fzc2V0dGVTdGF0dXMuSW5PcmRlciA6IENhc3NldHRlU3RhdHVzLkVtcHR5O1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJpbGxDYXNzZXR0ZVtDYXNzZXR0ZVN0YXR1c1tjYXNzZXR0ZXNTdGF0dXNdXTtcbiAgfVxuXG4gIGdldEhvcHBlcnNTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgaG9wcGVyU3RhdHVzID0gc3RhdHVzID8gSG9wcGVyU3RhdHVzLk9LIDogSG9wcGVyU3RhdHVzLkVycm9yO1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkhvcHBlcltIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBjYWxjSG9wcGVyVmFsdWVzKGhvcHBlcnM6IEhvcHBlckR0b1tdKSB7XG4gICAgY29uc3QgcHJlc2V0VG90YWxzID0geyBhbW91bnQ6IDAsIHZhbHVlOiAwIH07XG4gICAgY29uc3QgaG9wcGVyVG90YWxzID0gaG9wcGVycz8ucmVkdWNlKCh0b3RhbHMsIGhvcHBlcikgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgoKGhvcHBlcj8uY29pbj8udmFsdWUgfHwgMCkgKiAoaG9wcGVyPy5jb2luPy5jb3VudGVyIHx8IDApKSAvIDEwMCk7XG4gICAgICB0b3RhbHMuYW1vdW50ICs9IChob3BwZXI/LmNvaW4/LmNvdW50ZXIgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShob3BwZXJUb3RhbHMpO1xuICB9XG5cbiAgY2FsY0NvaW5WYWx1ZXMoY29pbnNJbkxhbmU6IENvaW5JbkxhbmVEdG8pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBjaXNUb3RhbHMgPSBjb2luc0luTGFuZT8uY29pbnM/LnJlZHVjZSgodG90YWxzLCBjb2luKSA9PiB7XG4gICAgICB0b3RhbHMudmFsdWUgKz0gKCgoY29pbj8udmFsdWUgfHwgMCkgKiAoY29pbj8uY291bnRlciB8fCAwKSkgLyAxMDApO1xuICAgICAgdG90YWxzLmFtb3VudCArPSAoY29pbj8uY291bnRlciB8fCAwKTtcbiAgICAgIHJldHVybiB0b3RhbHM7XG4gICAgfSwgcHJlc2V0VG90YWxzKTtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0RGVjaW1hbFZhbHVlKGNpc1RvdGFscyk7XG4gIH1cblxuICBjYWxjQmlsbHNTYWZlVmFsdWVzKGJpbGxzOiBCaWxsRHRvW10pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBiaWxsU2FmZVRvdGFscyA9IGJpbGxzPy5yZWR1Y2UoKHRvdGFscywgYmlsbCkgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgrKHRoaXMuZ2V0QmlsbFR5cGVWYWx1ZShiaWxsLnR5cGUpIHx8IDApICogKGJpbGw/LmFtb3VudCB8fCAwKSk7XG4gICAgICB0b3RhbHMuYW1vdW50ICs9IChiaWxsPy5hbW91bnQgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShiaWxsU2FmZVRvdGFscyk7XG4gIH1cblxuICBjYWxjQ29pbnNTYWZlVmFsdWVzKGNvaW5zOiBDb2luRHRvW10pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBjb2luU2F2ZVRvdGFscyA9IGNvaW5zPy5yZWR1Y2UoKHRvdGFscywgY29pbikgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgoKGNvaW4/LnZhbHVlIHx8IDApICogKGNvaW4/LmNvdW50ZXIgfHwgMCkpIC8gMTAwKTtcbiAgICAgIHRvdGFscy5hbW91bnQgKz0gKGNvaW4/LmNvdW50ZXIgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShjb2luU2F2ZVRvdGFscyk7XG4gIH1cblxuICBjb252ZXJ0RGVjaW1hbFZhbHVlKGNvaW5TYXZlVG90YWxzKSB7XG4gICAgY29uc3QgYW1vdW50ID0gYCR7dGhpcy5kZWNpbWFsVG9BbW91bnRQaXBlLnRyYW5zZm9ybShjb2luU2F2ZVRvdGFscz8uYW1vdW50KX1gO1xuICAgIGNvbnN0IHZhbHVlID0gYCR7dGhpcy5kZWNpbWFsVG9DdXJyZW5jeVBpcGUudHJhbnNmb3JtKGNvaW5TYXZlVG90YWxzPy52YWx1ZSl9YDtcbiAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZXMgPSB7XG4gICAgICBhbW91bnQsXG4gICAgICB2YWx1ZVxuICAgIH07XG4gICAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlcztcbiAgfVxuXG4gIGdldEJpbGxUeXBlVmFsdWVUZXh0KGJpbGxUeXBlVmFsdWU6IEJpbGxUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlID0gQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV07XG5cbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC51bmtub3duKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFRvQ3VycmVuY3lQaXBlLnRyYW5zZm9ybShCaWxsVHlwZVRleHRbQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV1dKTtcbiAgfVxuXG4gIGdldEJpbGxUeXBlVmFsdWUoYmlsbFR5cGVWYWx1ZTogQmlsbFR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBCaWxsVHlwZVRleHRbQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV1dO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0JldHdlZW5SYW5nZShpbnB1dDogc3RyaW5nLCBtaW5WYWx1ZTogbnVtYmVyLCBtYXhWYWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5wdXRWYWwgPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIHJldHVybiBpbnB1dFZhbCA+PSBtaW5WYWx1ZSAmJiBpbnB1dFZhbCA8PSBtYXhWYWx1ZTtcbiAgfVxuXG4gIGdldEludGVybmFsQ29tU3RhdHVzTnVtKHNlY29uZGFyeUNvbVN0YXR1czogYm9vbGVhbik6IENvbUFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGNvbUFnZ3JlZ2F0ZWRTdGF0dXMgPSBzZWNvbmRhcnlDb21TdGF0dXMgPyBDb21BZ2dyZWdhdGVkU3RhdHVzLk9rIDogQ29tQWdncmVnYXRlZFN0YXR1cy5Db21FcnJvcjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Db21bQ29tQWdncmVnYXRlZFN0YXR1c1tjb21BZ2dyZWdhdGVkU3RhdHVzXV07XG4gIH1cblxuICBkaXNwbGF5U3dhbGxvd1VuaXQoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGV2aWNlPy5zd2FsbG93VW5pdD8udHlwZSA9PT0gU3dhbGxvd1VuaXRUeXBlLlRpY2tldCB8fFxuICAgICAgISFkZXZpY2U/LnN3YWxsb3dVbml0cz8uZmlsdGVyKHMgPT4gcy50eXBlID09PSBTd2FsbG93VW5pdFR5cGUuVGlja2V0KS5sZW5ndGg7XG4gIH1cblxuICBnZXRTd2FsbG93VW5pdChkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IFN3YWxsb3dVbml0RHRvIHtcbiAgICBpZiAoZGV2aWNlPy5zd2FsbG93VW5pdCkge1xuICAgICAgcmV0dXJuIGRldmljZS5zd2FsbG93VW5pdDtcbiAgICB9IGVsc2UgaWYgKGRldmljZT8uc3dhbGxvd1VuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5zd2FsbG93VW5pdHM/LmZpbmQocyA9PiBzLnR5cGUgPT09IFN3YWxsb3dVbml0VHlwZS5UaWNrZXQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0RG9vclN0YXR1c051bShkb29yU3RhdHVzOiBEb29yU3RhdHVzKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuRG9vcltEb29yU3RhdHVzW2Rvb3JTdGF0dXNdXTtcbiAgfVxuXG4gIGdldERvb3JTdGF0dXNUZXh0KGRvb3JTdGF0dXM6IERvb3JTdGF0dXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBEb29yU3RhdHVzVGV4dFtEb29yU3RhdHVzW2Rvb3JTdGF0dXNdXTtcbiAgfVxuXG4gIGdldExvb3BTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgbG9vcFN0YXR1cyA9IHN0YXR1cyA/IExvb3BTdGF0dXMuT24gOiBMb29wU3RhdHVzLk9mZjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Mb29wW0xvb3BTdGF0dXNbbG9vcFN0YXR1c11dO1xuICB9XG5cbiAgZ2V0RG9vclNlbnNvclN0YXR1c051bShzdGF0dXM6IGJvb2xlYW4pOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICBjb25zdCBzZW5zb3JTdGF0dXMgPSBzdGF0dXMgPyBEb29yU2Vuc29yU3RhdHVzLk9uIDogRG9vclNlbnNvclN0YXR1cy5PZmY7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuRG9vclNlbnNvcltEb29yU2Vuc29yU3RhdHVzW3NlbnNvclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0UmVsYXlTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgcmVsYXlTdGF0dXMgPSBzdGF0dXMgPyBSZWxheVN0YXR1cy5PbiA6IFJlbGF5U3RhdHVzLk9mZjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5SZWxheVtSZWxheVN0YXR1c1tyZWxheVN0YXR1c11dO1xuICB9XG5cbiAgZ2V0QnV0dG9uU3RhdHVzTnVtKHN0YXR1czogYm9vbGVhbik6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGJ1dHRvblN0YXR1cyA9IHN0YXR1cyA/IEJ1dHRvblN0YXR1cy5PbiA6IEJ1dHRvblN0YXR1cy5PZmY7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuQnV0dG9uW0J1dHRvblN0YXR1c1tidXR0b25TdGF0dXNdXTtcbiAgfVxuXG4gIGdldERpcFN3aXRjaFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICBjb25zdCBzd2l0Y2hTdGF0dXMgPSBzdGF0dXMgPyBEaXBTd2l0Y2hTdGF0dXMuT24gOiBEaXBTd2l0Y2hTdGF0dXMuT2ZmO1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkRpcFN3aXRjaFtEaXBTd2l0Y2hTdGF0dXNbc3dpdGNoU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsQ2Fzc2V0dGVBcnJheShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IENhc3NldHRlRHRvW10ge1xuICAgIGlmIChkZXZpY2U/LmJpbGxSZWN5Y2xlcj8uY2Fzc2V0dGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNhc3NldHRlcztcbiAgICB9IGVsc2UgaWYgKGRldmljZT8uYmlsbERpc3BlbnNlcj8uY2Fzc2V0dGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsRGlzcGVuc2VyPy5jYXNzZXR0ZXM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldEJpbGxDYXNzZXR0ZVRvdGFsVmFsdWUoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJpbGxDYXNzZXR0ZUFycmF5KGRldmljZSkucmVkdWNlKCh0b3RhbFZhbHVlLCBjYXNzZXR0ZSkgPT4ge1xuICAgICAgaWYgKCFjYXNzZXR0ZT8uYmlsbCkge1xuICAgICAgICByZXR1cm4gdG90YWxWYWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoKyh0aGlzLmdldEJpbGxUeXBlVmFsdWUoY2Fzc2V0dGUuYmlsbC50eXBlKSB8fCAwKSAqIChjYXNzZXR0ZS5iaWxsLmFtb3VudCB8fCAwKSkgKyB0b3RhbFZhbHVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0QmlsbENhc3NldHRlU3RhdHVzTnVtKGJpbGxDYXNzZXR0ZVN0YXR1czogQ2Fzc2V0dGVTdGF0dXMpOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5CaWxsQ2Fzc2V0dGVbQ2Fzc2V0dGVTdGF0dXNbYmlsbENhc3NldHRlU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsQ2Fzc2V0dGVTdGF0dXNUZXh0KGJpbGxDYXNzZXR0ZVN0YXR1czogQ2Fzc2V0dGVTdGF0dXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBDYXNzZXR0ZVN0YXR1c1RleHRbQ2Fzc2V0dGVTdGF0dXNbYmlsbENhc3NldHRlU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsU2FmZUFycmF5KGRldmljZTogRGV2aWNlU3RhdHVzRHRvKTogQmlsbER0b1tdIHtcbiAgICBpZiAoZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNlbnRyYWxTYWZlPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNlbnRyYWxTYWZlO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5iaWxsVmFsaWRhdG9yPy5iaWxscz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uYmlsbFZhbGlkYXRvcj8uYmlsbHM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldEJpbGxTYWZlVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmlsbFNhZmVBcnJheShkZXZpY2UpLnJlZHVjZSgodG90YWxWYWx1ZSwgYmlsbCkgPT4ge1xuICAgICAgaWYgKCFiaWxsPy5hbW91bnQpIHtcbiAgICAgICAgcmV0dXJuIHRvdGFsVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gKCsodGhpcy5nZXRCaWxsVHlwZVZhbHVlKGJpbGwudHlwZSkgfHwgMCkgKiAoYmlsbC5hbW91bnQgfHwgMCkpICsgdG90YWxWYWx1ZTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldEJpbGxEaXNwZW5zZXJTdGF0dXNOdW0oYmlsbERpc3BlbnNlcjogQmlsbERpc3BlbnNlckR0byk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGlmICghYmlsbERpc3BlbnNlci5pc0NvbW11bmljYXRpbmcpIHtcbiAgICAgIHJldHVybiBBZ2dyZWdhdGVkU3RhdHVzLkVSUk9SO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5CaWxsRGlzcGVuc2VyW0JpbGxEaXNwZW5zZXJTdGF0dXNbYmlsbERpc3BlbnNlci5lcnJvckNvZGVdXTtcbiAgfVxuXG4gIGdldEJpbGxEaXNwZW5zZXJTdGF0dXNUZXh0KGJpbGxEaXNwZW5zZXI6IEJpbGxEaXNwZW5zZXJEdG8pOiBzdHJpbmcge1xuICAgIGlmICghYmlsbERpc3BlbnNlci5pc0NvbW11bmljYXRpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLkwuZGlzY29ubmVjdGVkO1xuICAgIH1cbiAgICByZXR1cm4gQmlsbERpc3BlbnNlclN0YXR1c1RleHRbQmlsbERpc3BlbnNlclN0YXR1c1tiaWxsRGlzcGVuc2VyLmVycm9yQ29kZV1dO1xuICB9XG5cbiAgZ2V0QmlsbFZhbGlkYXRvclN0YXR1c051bShiaWxsVmFsaWRhdG9yOiBCaWxsVmFsaWRhdG9yRHRvKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgaWYgKCFiaWxsVmFsaWRhdG9yLmlzQ29tbXVuaWNhdGluZykge1xuICAgICAgcmV0dXJuIEFnZ3JlZ2F0ZWRTdGF0dXMuRVJST1I7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJpbGxWYWxpZGF0b3JbQmlsbFZhbGlkYXRvclN0YXR1c1tiaWxsVmFsaWRhdG9yLnN0YXRlXV07XG4gIH1cblxuICBnZXRCaWxsVmFsaWRhdG9yU3RhdHVzVGV4dChiaWxsVmFsaWRhdG9yOiBCaWxsVmFsaWRhdG9yRHRvKTogc3RyaW5nIHtcbiAgICBpZiAoIWJpbGxWYWxpZGF0b3IuaXNDb21tdW5pY2F0aW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5MLmRpc2Nvbm5lY3RlZDtcbiAgICB9XG4gICAgcmV0dXJuIEJpbGxWYWxpZGF0b3JTdGF0dXNUZXh0W0JpbGxWYWxpZGF0b3JTdGF0dXNbYmlsbFZhbGlkYXRvci5zdGF0ZV1dO1xuICB9XG5cbiAgZ2V0SG9wcGVyVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRldmljZT8uaG9wcGVycy5yZWR1Y2UoKHRvdGFsVmFsdWUsIGhvcHBlcikgPT4ge1xuICAgICAgcmV0dXJuICgoaG9wcGVyPy5jb2luPy52YWx1ZSB8fCAwKSAqIChob3BwZXI/LmNvaW4/LmNvdW50ZXIgfHwgMCkgLyAxMDApICsgdG90YWxWYWx1ZTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldEhvcHBlclN0YXR1c051bShob3BwZXJTdGF0dXM6IEhvcHBlclN0YXR1cyk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkhvcHBlcltIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBnZXRIb3BwZXJTdGF0dXNUZXh0KGhvcHBlclN0YXR1czogSG9wcGVyU3RhdHVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSG9wcGVyU3RhdHVzVGV4dFtIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBnZXRDb2luVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRldmljZT8uY29pbkluTGFuZT8uY29pbnMucmVkdWNlKCh0b3RhbFZhbHVlLCBjb2luKSA9PiB7XG4gICAgICByZXR1cm4gKChjb2luPy52YWx1ZSB8fCAwKSAqIChjb2luPy5jb3VudGVyIHx8IDApIC8gMTAwKSArIHRvdGFsVmFsdWU7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDb2luU3RhdHVzTnVtKGlzQ29tbXVuaWNhdGluZzogYm9vbGVhbik6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGNvaW5TdGF0dXMgPSBpc0NvbW11bmljYXRpbmcgPyBDb2luU3RhdHVzLk9LIDogQ29pblN0YXR1cy5FcnJvcjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Db2luSW5MYW5lW0NvaW5TdGF0dXNbY29pblN0YXR1c11dO1xuICB9XG5cbiAgZ2V0Q29pblN0YXR1c1RleHQoY29pblN0YXR1czogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvaW5TdGF0dXMgPyBDb2luU3RhdHVzVGV4dC5PSyA6IENvaW5TdGF0dXNUZXh0LkVycm9yO1xuICB9XG5cbiAgZ2V0Q29pblNhZmVBcnJheShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IENvaW5EdG9bXSB7XG4gICAgaWYgKGRldmljZT8uY2VudHJhbFNhZmU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBkZXZpY2U/LmNlbnRyYWxTYWZlO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5jb2luSW5MYW5lPy5jZW50cmFsU2FmZT8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uY29pbkluTGFuZT8uY2VudHJhbFNhZmU7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldENvaW5TYWZlVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29pblNhZmVBcnJheShkZXZpY2UpLnJlZHVjZSgodG90YWxWYWx1ZSwgY29pbikgPT4ge1xuICAgICAgcmV0dXJuICgoY29pbj8udmFsdWUgfHwgMCkgKiAoY29pbj8uY291bnRlciB8fCAwKSAvIDEwMCkgKyB0b3RhbFZhbHVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZm9ybWF0Q29pblZhbHVlKGNvaW46IG51bWJlcik6IHN0cmluZyB7XG4gICAgLy8gQ29pbnMgYWx3YXlzIHNhdmVkIGFkIENlbnQgZm9ybWF0XG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFRvQ3VycmVuY3lQaXBlLnRyYW5zZm9ybShjb2luIC8gMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2FuaXRpemVDb2luc0RhdGEoKSB7XG4gICAgaWYgKHRoaXMuZGV2aWNlU3RhdHVzKSB7XG4gICAgICBpZiAodGhpcy5kZXZpY2VTdGF0dXMuY29pbkluTGFuZT8uY29pbnMpIHtcbiAgICAgICAgLy8gc2V0IGNvaW5zIG9ubHkgd2l0aCBleGlzdGluZyB2YWx1ZXMgKGdyZWF0ZXIgdGhhbiAwKSxcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhpc3RpbmcgdmFsdWVzLCBjb2lucyB3aWxsIGJlIGFuIGVtcHR5IGFycmF5LlxuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb2lucyA9IHRoaXMuZGV2aWNlU3RhdHVzLmNvaW5JbkxhbmUuY29pbnMuZmlsdGVyKGNvaW4gPT4gY29pbi52YWx1ZSA+IDAgfHwgY29pbi5jb3VudGVyID4gMCk7XG4gICAgICAgIHRoaXMuZGV2aWNlU3RhdHVzLmNvaW5JbkxhbmUuY29pbnMgPSBzYW5pdGl6ZWRDb2lucztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRldmljZVN0YXR1cy5ob3BwZXJzKSB7XG4gICAgICAgIGNvbnN0IGhvcHBlcnMgPSB0aGlzLmRldmljZVN0YXR1cy5ob3BwZXJzIGFzIEhvcHBlckR0b1tdO1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRIb3BwZXJzID0gaG9wcGVycy5maWx0ZXIoYyA9PiBjLmNvaW4uY291bnRlciA+IDAgfHwgYy5jb2luLnZhbHVlID4gMCk7XG4gICAgICAgIHRoaXMuZGV2aWNlU3RhdHVzLmhvcHBlcnMgPSBzYW5pdGl6ZWRIb3BwZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
483
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXN0YXR1cy1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvY29tcG9uZW50cy9kZXZpY2UvZGV2aWNlLXN0YXR1cy9kZXZpY2Utc3RhdHVzLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxN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Q0gsQ0FBQztJQUNILENBQUM7K0dBNWdCVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwwR0FSMUIsRUFBRSwyREFLVixZQUFZLGlCQUhGLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzs7QUFTbEM7SUFEQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO2tFQUNEO0FBR3ZDO0lBREMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO2dFQUNIOzRGQU5oQyx5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRjs2RUFJQyxlQUFlLE1BR2YsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBhcHBNb2R1bGVBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb25zL3JvdXRlci10cmFuc2l0aW9uLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBDb21BZ2dyZWdhdGVkU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvYWdncmVnYXRlZC1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBCaWxsRGlzcGVuc2VyU3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2JpbGwtZGlzcGVuc2VyLmVudW0nO1xuaW1wb3J0IHsgQmlsbFZhbGlkYXRvclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9iaWxsLXZhbGlkYXRvci5lbnVtJztcbmltcG9ydCB7IEJ1dHRvblN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2J1dHRvbi5lbnVtJztcbmltcG9ydCB7IEJpbGxUeXBlVGV4dCwgQ2Fzc2V0dGVTdGF0dXNUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvY2Fzc2V0dGUuZW51bSc7XG5pbXBvcnQgeyBEZXZpY2VBY3Rpdml0eU1vZGUsIERldmljZUFjdGl2aXR5TW9kZVRleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kZXZpY2UtYWN0aXZpdHktbW9kZS5lbnVtJztcbmltcG9ydCB7IERldmljZUxvb3AgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kZXZpY2UtbG9vcC5lbnVtJztcbmltcG9ydCB7IERldmljZVByaW50ZXJTdGF0dXNUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvZGV2aWNlLXByaW50ZXIuZW51bSc7XG5pbXBvcnQgeyBEaXBTd2l0Y2hTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kaXAtc3dpdGNoLmVudW0nO1xuaW1wb3J0IHsgRG9vclNlbnNvclN0YXR1cywgRG9vclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9kb29yLmVudW0nO1xuaW1wb3J0IHsgQ29pblN0YXR1c1RleHQsIEhvcHBlclN0YXR1c1RleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9ob3BwZXIuZW51bSc7XG5pbXBvcnQgeyBJY29uc0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2ljb24uZW51bSc7XG5pbXBvcnQgeyBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZVRleHQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9sYW5lLXJlY29nbml0aW9uLW1vZGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVUZXh0IH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvbGFuZS1yZWNvZ25pdGlvbi1zdGF0dXMtdHlwZS5lbnVtJztcbmltcG9ydCB7IExvb3BTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9sb29wLmVudW0nO1xuaW1wb3J0IHsgUmVsYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9yZWxheS5lbnVtJztcbmltcG9ydCB7IFN3YWxsb3dVbml0U3RhdHVzVGV4dCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL3N3YWxsb3ctdW5pdC5lbnVtJztcbmltcG9ydCB7IEZhY2lsaXR5U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL2ZhY2lsaXR5L2ZhY2lsaXR5LnN0YXRlJztcbmltcG9ydCB7IFBhcmtNYW5hZ2VyU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3BhcmstbWFuYWdlci9wYXJrLW1hbmFnZXIuc3RhdGUnO1xuaW1wb3J0IHsgRGVjaW1hbFRvQW1vdW50UGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2RlY2ltYWwtdG8tYW1vdW50LnBpcGUnO1xuaW1wb3J0IHsgRGVjaW1hbFRvQ3VycmVuY3lQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvZGVjaW1hbC10by1jdXJyZW5jeS5waXBlJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0ZWRTdGF0dXMsIEJhcnJpZXJEdG8sIEJhcnJpZXJTdGF0ZSwgQmlsbERpc3BlbnNlckR0bywgQmlsbERpc3BlbnNlclN0YXR1cywgQmlsbER0bywgQmlsbFR5cGUsIEJpbGxWYWxpZGF0b3JEdG8sXG4gIEJpbGxWYWxpZGF0b3JTdGF0dXMsIENhc3NldHRlRHRvLCBDYXNzZXR0ZVN0YXR1cywgQ29pbkR0bywgQ29pbkluTGFuZUR0bywgQ29pblN0YXR1cywgRGV2aWNlRHRvLCBEZXZpY2VQcmludGVyU3RhdHVzLFxuICBEZXZpY2VTdGF0dXNEdG8sIERvb3JTdGF0dXMsIEhvcHBlckR0bywgSG9wcGVyU3RhdHVzLCBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZSwgTGFuZVJlY29nbml0aW9uU3RhdHVzVHlwZSwgU3dhbGxvd1VuaXREdG8sIFN3YWxsb3dVbml0U3RhdHVzLCBTd2FsbG93VW5pdFR5cGVcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS1wcm94eS9ycGMtc2VydmljZS1wcm94aWVzJztcbmltcG9ydCB7IEFwcFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VEZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1kZXZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc0RldmljZUFjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FjdGl2ZS1kZXZpY2Utc3RhdHVzLnV0aWwnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGV2aWNlSXRlbVN0YXR1c2VzIH0gZnJvbSAnLi9kZXZpY2UtaXRlbS1zdGF0dXMudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0Yi1kZXZpY2UtYmFzZS1zdGF0dXNdJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW2FwcE1vZHVsZUFuaW1hdGlvbigpXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VTdGF0dXNCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFNlbGVjdChQYXJrTWFuYWdlclN0YXRlLnNlbGVjdGVkRGV2aWNlKVxuICBzZWxlY3RlZERldmljZSQ6IE9ic2VydmFibGU8RGV2aWNlRHRvPjtcblxuICBAU2VsZWN0KFBhcmtNYW5hZ2VyU3RhdGUuc2VsZWN0ZWREZXZpY2VTdGF0dXMpXG4gIGRldmljZVN0YXR1cyQ6IE9ic2VydmFibGU8RGV2aWNlU3RhdHVzRHRvPjtcblxuICBEZXZpY2VMb29wID0gRGV2aWNlTG9vcDtcbiAgSWNvbnNIZWxwZXIgPSBJY29uc0hlbHBlcjtcblxuICBkZXZpY2VTdGF0dXM6IERldmljZVN0YXR1c0R0bztcbiAgc2VsZWN0ZWREZXZpY2U6IERldmljZUR0bztcbiAgZGVjaW1hbFRvQ3VycmVuY3lQaXBlOiBEZWNpbWFsVG9DdXJyZW5jeVBpcGU7XG4gIGRlY2ltYWxUb0Ftb3VudFBpcGU6IERlY2ltYWxUb0Ftb3VudFBpcGU7XG4gIGlzU2VsZWN0ZWREZXZpY2VNQ0Nvbm5lY3RlZDogYm9vbGVhbjtcbiAgYWN0aXZlU3RhdHVzOiBib29sZWFuO1xuICBpc1N0YXR1c1N1cHBvcnRlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNNdWx0aVBhcms6IGJvb2xlYW47XG4gIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2U7XG4gIHB1YmxpYyBhcHBTZXR0aW5nc1NlcnZpY2U6IEFwcFNldHRpbmdzU2VydmljZTtcbiAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gIHB1YmxpYyBzdG9yZTogU3RvcmU7XG4gIHB1YmxpYyBkZXZpY2VTZXJ2aWNlOiBCYXNlRGV2aWNlU2VydmljZTtcbiAgcHVibGljIHpvbmVOYW1lOiBzdHJpbmc7XG5cbiAgZGV2aWNlSXRlbVN0YXR1c1NlY3Rpb25zOiB7XG4gICAgc2VjdGlvbjE6IERldmljZUl0ZW1TdGF0dXNlc1tdLFxuICAgIHNlY3Rpb24yOiBEZXZpY2VJdGVtU3RhdHVzZXNbXSxcbiAgICBzZWN0aW9uMzogRGV2aWNlSXRlbVN0YXR1c2VzW10sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmFuc2xhdGUgPSB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcFNldHRpbmdzU2VydmljZSk7XG4gICAgdGhpcy5jZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgdGhpcy5zdG9yZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFN0b3JlKTtcbiAgICB0aGlzLmRldmljZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChCYXNlRGV2aWNlU2VydmljZSk7XG4gICAgdGhpcy5kZWNpbWFsVG9DdXJyZW5jeVBpcGUgPSBuZXcgRGVjaW1hbFRvQ3VycmVuY3lQaXBlKCk7XG4gICAgdGhpcy5kZWNpbWFsVG9BbW91bnRQaXBlID0gbmV3IERlY2ltYWxUb0Ftb3VudFBpcGUoKTtcbiAgICBjb25zdCBndWlkID0gdGhpcy5zdG9yZS5zZWxlY3RTbmFwc2hvdChGYWNpbGl0eVN0YXRlLmd1aWQpO1xuICAgIGNvbnN0IGZhY2lsaXR5RGljdGlvbmFyeSA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5mYWNpbGl0eURpY3Rpb25hcnkpO1xuICAgIHRoaXMuZGV2aWNlU3RhdHVzJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmU6IGFueSwgY3VycjogYW55KSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXJyKSksXG4gICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREZXZpY2UgPSB0aGlzLnN0b3JlLnNlbGVjdFNuYXBzaG90KFBhcmtNYW5hZ2VyU3RhdGUuc2VsZWN0ZWREZXZpY2UpO1xuICAgICAgdGhpcy5kZXZpY2VTdGF0dXMgPSByZXM7XG4gICAgICB0aGlzLnNhbml0aXplQ29pbnNEYXRhKCk7XG4gICAgICB0aGlzLmFjdGl2ZVN0YXR1cyA9IGlzRGV2aWNlQWN0aXZlKHRoaXMuc2VsZWN0ZWREZXZpY2UpO1xuICAgICAgdGhpcy56b25lTmFtZSA9IHRoaXMuc2VsZWN0ZWREZXZpY2U/LnpvbmU/Lm5hbWU7XG4gICAgICAvLyBTUFJLMy0xNTQ4NDogZ3VpZCBhbmQgdGhlIGRpY3Rpb25hcnkgYXJlIGluZGVwZW5kZW50IHNsaWNlcyDigJQgdGhlIGd1aWQgc2xpY2UgaXMgYWJzZW50IG9uIGEgZGVlcCBsaW5rLlxuICAgICAgdGhpcy5pc1NlbGVjdGVkRGV2aWNlTUNDb25uZWN0ZWQgPSBmYWNpbGl0eURpY3Rpb25hcnlbZ3VpZF0/Llt0aGlzLnNlbGVjdGVkRGV2aWNlPy5wYXJrSURdPy5pc01haW5Db250cm9sbGVyQ29ubmVjdGVkO1xuICAgICAgdGhpcy5pc1N0YXR1c1N1cHBvcnRlZCA9IHRoaXMuZGV2aWNlU2VydmljZS5pc1N0YXR1c1N1cHBvcnRlZChyZXM/LnR5cGUpO1xuXG4gICAgICBjb25zdCBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMgPSB7XG4gICAgICAgIHNlY3Rpb24xOiBbXSxcbiAgICAgICAgc2VjdGlvbjI6IFtdLFxuICAgICAgICBzZWN0aW9uMzogW10sXG4gICAgICB9O1xuXG4gICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5MLmNvbSxcbiAgICAgICAgc3RhdHVzSWNvbjogdGhpcy5nZXRDb21TdGF0dXNJY29uKHJlcyksXG4gICAgICAgIHRleHQ6IHRoaXMuZ2V0VHJhbnNsYXRlZENvbVN0YXR1c1RleHQocmVzLCBmYWxzZSksXG4gICAgICAgIHZhbHVlOiB0aGlzLmdldGREZXZpY2VDb21TdGF0dXNWYWx1ZShyZXMpXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuZGlzcGxheUlzUHJvcEV4aXN0cyhyZXMsICdkb29yQ29udHJvbGxlckNvbm5lY3RlZCcpKSB7XG4gICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMS5wdXNoKHtcbiAgICAgICAgICBrZXk6IHRoaXMuTC5pbnRlcm5hbF9jb20sXG4gICAgICAgICAgc3RhdHVzSWNvbjogdGhpcy5nZXRJbnRlcm5hbENvbVN0YXR1c051bShyZXMuZG9vckNvbnRyb2xsZXJDb25uZWN0ZWQpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcmludGVycyA9IHRoaXMuZ2V0UHJpbnRlcnMocmVzKTtcbiAgICAgIGZvciAoY29uc3QgcHJpbnRlciBvZiBwcmludGVycykge1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwucHJpbnRlcixcbiAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldFByaW50ZXJTdGF0dXNOdW0ocHJpbnRlci5zdGF0ZSksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0UHJpbnRlclN0YXR1c1RleHQocHJpbnRlci5zdGF0ZSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kaXNwbGF5SXNQcm9wRXhpc3RzKHJlcywgJ21vZGUnKSkge1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjEucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwuYWNjZXNzX21vZGUsXG4gICAgICAgICAgaWNvbjogSWNvbnNIZWxwZXIuYWNjZXNzX21vZGUsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0QWNjZXNzTW9kZVN0YXR1c1RleHQocmVzLm1vZGUpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzcGxheUJhcnJpZXJzKHJlcykpIHtcbiAgICAgICAgY29uc3QgYmFycmllcnMgPSB0aGlzLmdldEJhcnJpZXJzKHJlcyk7XG4gICAgICAgIGZvciAoY29uc3QgYmFycmllciBvZiBiYXJyaWVycykge1xuICAgICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMi5wdXNoKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5MLmdhdGUsXG4gICAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldEJhcnJpZXJTdGF0dXNOdW0oYmFycmllci5zdGF0ZSksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRCYXJyaWVyU3RhdHVzVGV4dChiYXJyaWVyLnN0YXRlKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzPy5sb29wcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcz8ubG9vcHMuc2xpY2UoMCwgMikubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBwcmVzZW5jZSA9ICctICcgKyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5wcmVzZW5jZSk7XG4gICAgICAgICAgY29uc3Qgc2FmZXR5ID0gJy0gJyArIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5MLnNhZmV0eSk7XG4gICAgICAgICAgbGV0IHRleHQgPSBgIyR7aSArIDF9JHtpID09PSAwID8gcHJlc2VuY2UgOiBpID09PSAxID8gc2FmZXR5IDogJyd9YDtcblxuICAgICAgICAgIGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucy5zZWN0aW9uMi5wdXNoKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5MLmxvb3AsXG4gICAgICAgICAgICBzdGF0dXNJY29uOiB0aGlzLmdldExvb3BTdGF0dXNOdW0ocmVzLmxvb3BzW2ldLmlzQ2FyT24pLFxuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIHZhbHVlOiAnJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmRpc3BsYXlTd2FsbG93VW5pdChyZXMpKSB7XG4gICAgICAgIGNvbnN0IHN3YWxsb3dVbml0ID0gdGhpcy5nZXRTd2FsbG93VW5pdChyZXMpO1xuICAgICAgICBkZXZpY2VJdGVtU3RhdHVzU2VjdGlvbnMuc2VjdGlvbjIucHVzaCh7XG4gICAgICAgICAga2V5OiB0aGlzLkwuc3dhbGxvd191bml0LFxuICAgICAgICAgIHN0YXR1c0ljb246IHRoaXMuZ2V0U3dhbGxvd1VuaXRTdGF0dXNOdW0oc3dhbGxvd1VuaXQ/LnN0YXR1cyksXG4gICAgICAgICAgdmFsdWU6IHRoaXMuZ2V0U3dhbGxvd1VuaXRTdGF0dXNUZXh0KHN3YWxsb3dVbml0Py5zdGF0dXMpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucyA9IGRldmljZUl0ZW1TdGF0dXNTZWN0aW9ucztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNNdWx0aVBhcmsgPSAhIXRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoRmFjaWxpdHlTdGF0ZS5pc011bHRpUGFyayk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0ZERldmljZUNvbVN0YXR1c1ZhbHVlKGRldmljZVN0YXR1c0RhdGE6IERldmljZVN0YXR1c0R0bykge1xuICAgIC8vIElmIHRoZSBkZXZpY2UgaXMgYW4gTUMgKGNvbW1pZCA9PT0gMCkgd2UgbmVlZCB0byB0cmFuc2xhdGUgdGhlIFBhcmsgY29ubmVjdGlvbiBpbnN0ZWFkIG9mIHRoZSBEZXZpY2VcbiAgICBsZXQgc3RhdHVzVmFsdWU6IHN0cmluZztcbiAgICBpZiAodGhpcy5hY3RpdmVTdGF0dXMgJiYgZGV2aWNlU3RhdHVzRGF0YT8uY29tbUlEICE9PSAwICYmIGRldmljZVN0YXR1c0RhdGE/LmlzQ29ubmVjdGVkICYmXG4gICAgICAodGhpcy5pc0JldHdlZW5SYW5nZShkZXZpY2VTdGF0dXNEYXRhPy5jb21tdW5pY2F0aW9uUGVyY2VudGFnZS50b1N0cmluZygpLCAxLCA3MCkgfHwgZGV2aWNlU3RhdHVzRGF0YT8uY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgPj0gNzEpKSB7XG4gICAgICBzdGF0dXNWYWx1ZSA9IGRldmljZVN0YXR1c0RhdGE/LmNvbW11bmljYXRpb25QZXJjZW50YWdlICsgJyUnO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0dXNWYWx1ZTtcbiAgfVxuXG4gIGdldFRyYW5zbGF0ZWRDb21TdGF0dXNUZXh0KGRldmljZVN0YXR1czogRGV2aWNlU3RhdHVzRHRvLCBpc0hpZ2hMZXZlbDogYm9vbGVhbikge1xuICAgIGxldCBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZVN0YXR1cykge1xuICAgICAgc3RhdHVzVGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5MLmluYWN0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGV2aWNlQ29tQWdncmVnYXRlZFN0YXR1czogQ29tQWdncmVnYXRlZFN0YXR1cyA9IHRoaXMuZGV2aWNlU2VydmljZS5nZXREZXZpY2VDb21BZ2dyZWdhdGVkU3RhdHVzKGRldmljZVN0YXR1cywgdHJ1ZSk7XG4gICAgICBzd2l0Y2ggKGRldmljZUNvbUFnZ3JlZ2F0ZWRTdGF0dXMpIHtcbiAgICAgICAgY2FzZSBDb21BZ2dyZWdhdGVkU3RhdHVzLk9rOlxuICAgICAgICBjYXNlIENvbUFnZ3JlZ2F0ZWRTdGF0dXMuV2FybmluZzpcbiAgICAgICAgICBpZiAoaXNIaWdoTGV2ZWwgJiYgZGV2aWNlU3RhdHVzPy5jb21tSUQgIT09IDApIHtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5jb25uZWN0ZWRfdmFsdWUsIHsgdmFsdWU6IGRldmljZVN0YXR1cz8uY29tbXVuaWNhdGlvblBlcmNlbnRhZ2UgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5jb25uZWN0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBDb21BZ2dyZWdhdGVkU3RhdHVzLkNvbUVycm9yOlxuICAgICAgICAgIHN0YXR1c1RleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC5kaXNjb25uZWN0ZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdHVzVGV4dDtcbiAgfVxuXG4gIGRpc3BsYXlJc1Byb3BFeGlzdHMoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8sIHByb3BOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZGV2aWNlICYmIHByb3BOYW1lIGluIGRldmljZSAmJiBkZXZpY2VbcHJvcE5hbWVdICE9PSBudWxsICYmIGRldmljZVtwcm9wTmFtZV0gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldENvbVN0YXR1c0ljb24oZGV2aWNlU3RhdHVzOiBEZXZpY2VTdGF0dXNEdG8pIHtcbiAgICByZXR1cm4gdGhpcy5kZXZpY2VTZXJ2aWNlLmdldERldmljZUNvbUFnZ3JlZ2F0ZWRTdGF0dXMoZGV2aWNlU3RhdHVzLCB0cnVlKTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvbk1vZGVUeXBlVGV4dChtb2RlVHlwZTogTGFuZVJlY29nbml0aW9uTW9kZVR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYW5lUmVjb2duaXRpb25Nb2RlVHlwZVRleHRbTGFuZVJlY29nbml0aW9uTW9kZVR5cGVbbW9kZVR5cGVdXTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVTdGF0dXNOdW0oc3RhdHVzVHlwZTogTGFuZVJlY29nbml0aW9uU3RhdHVzVHlwZSk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkxhbmVSZWNvZ25pdGlvbltMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlW3N0YXR1c1R5cGVdXTtcbiAgfVxuXG4gIGdldExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGVUZXh0KHN0YXR1c1R5cGU6IExhbmVSZWNvZ25pdGlvblN0YXR1c1R5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlVGV4dFtMYW5lUmVjb2duaXRpb25TdGF0dXNUeXBlW3N0YXR1c1R5cGVdXTtcbiAgfVxuXG4gIGdldFByaW50ZXJzKGRldmljZTogRGV2aWNlU3RhdHVzRHRvKSB7XG4gICAgaWYgKGRldmljZT8ucHJpbnRlcikge1xuICAgICAgcmV0dXJuIFtkZXZpY2UucHJpbnRlcl07XG4gICAgfSBlbHNlIGlmIChkZXZpY2U/LnByaW50ZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5wcmludGVycztcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBpc0Nvbm5lY3RlZFRleHQgPSAoaXNDb25uZWN0ZWQ6IGJvb2xlYW4pOiBzdHJpbmcgPT4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpc0Nvbm5lY3RlZCA/IHRoaXMuTC5jb25uZWN0ZWQgOiB0aGlzLkwuZGlzY29ubmVjdGVkKTtcblxuICBnZXRNQ0FnZ3JlZ2F0ZWRTdGF0dXMgPSAoaXNTZWxlY3RlZERldmljZU1DQ29ubmVjdGVkOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyA9PiBpc1NlbGVjdGVkRGV2aWNlTUNDb25uZWN0ZWQgPyBBZ2dyZWdhdGVkU3RhdHVzLk9LIDogQWdncmVnYXRlZFN0YXR1cy5FUlJPUjtcblxuICBnZXRQcmludGVyU3RhdHVzTnVtKHByaW50ZXJTdGF0dXM6IERldmljZVByaW50ZXJTdGF0dXMpOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5QcmludGVyW0RldmljZVByaW50ZXJTdGF0dXNbcHJpbnRlclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0UHJpbnRlclN0YXR1c1RleHQocHJpbnRlclN0YXR1czogRGV2aWNlUHJpbnRlclN0YXR1cyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERldmljZVByaW50ZXJTdGF0dXNUZXh0W0RldmljZVByaW50ZXJTdGF0dXNbcHJpbnRlclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0QWNjZXNzTW9kZVN0YXR1c1RleHQoYWNjZXNzTW9kZVN0YXR1czogRGV2aWNlQWN0aXZpdHlNb2RlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGV2aWNlQWN0aXZpdHlNb2RlVGV4dFtEZXZpY2VBY3Rpdml0eU1vZGVbYWNjZXNzTW9kZVN0YXR1c11dO1xuICB9XG5cbiAgZGlzcGxheUJhcnJpZXJzKGRldmljZTogRGV2aWNlU3RhdHVzRHRvKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhZGV2aWNlPy5iYXJyaWVyIHx8ICEhZGV2aWNlPy5iYXJyaWVycz8ubGVuZ3RoO1xuICB9XG5cbiAgZ2V0QmFycmllcnMoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBCYXJyaWVyRHRvW10ge1xuICAgIGlmIChkZXZpY2U/LmJhcnJpZXIpIHtcbiAgICAgIHJldHVybiBbZGV2aWNlLmJhcnJpZXJdO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5iYXJyaWVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uYmFycmllcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0QmFycmllclN0YXR1c051bShiYXJyaWVyU3RhdGU6IEJhcnJpZXJTdGF0ZSk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJhcnJpZXJbQmFycmllclN0YXRlW2JhcnJpZXJTdGF0ZV1dO1xuICB9XG5cbiAgZ2V0QmFycmllclN0YXR1c1RleHQoYmFycmllclN0YXRlOiBCYXJyaWVyU3RhdGUpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoYmFycmllclN0YXRlKSB7XG4gICAgICBjYXNlIEJhcnJpZXJTdGF0ZS5Ccm9rZW46XG4gICAgICAgIHJldHVybiB0aGlzLkwuYXJtX2Jyb2tlbjtcbiAgICAgIGNhc2UgQmFycmllclN0YXRlLk9wZW46XG4gICAgICAgIHJldHVybiB0aGlzLkwudXA7XG4gICAgICBjYXNlIEJhcnJpZXJTdGF0ZS5DbG9zZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuTC5kb3duO1xuICAgIH1cbiAgfVxuXG4gIGdldFN3YWxsb3dVbml0U3RhdHVzTnVtKHN3YWxsb3dVbml0U3RhdHVzOiBTd2FsbG93VW5pdFN0YXR1cyk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLlN3YWxsb3dVbml0W1N3YWxsb3dVbml0U3RhdHVzW3N3YWxsb3dVbml0U3RhdHVzXV07XG4gIH1cblxuICBnZXRTd2FsbG93VW5pdFN0YXR1c1RleHQoc3dhbGxvd1VuaXRTdGF0dXM6IFN3YWxsb3dVbml0U3RhdHVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3dhbGxvd1VuaXRTdGF0dXNUZXh0W1N3YWxsb3dVbml0U3RhdHVzW3N3YWxsb3dVbml0U3RhdHVzXV07XG4gIH1cblxuICBnZXRDYXNzZXR0ZXNTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgY2Fzc2V0dGVzU3RhdHVzID0gc3RhdHVzID8gQ2Fzc2V0dGVTdGF0dXMuSW5PcmRlciA6IENhc3NldHRlU3RhdHVzLkVtcHR5O1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJpbGxDYXNzZXR0ZVtDYXNzZXR0ZVN0YXR1c1tjYXNzZXR0ZXNTdGF0dXNdXTtcbiAgfVxuXG4gIGdldEhvcHBlcnNTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgaG9wcGVyU3RhdHVzID0gc3RhdHVzID8gSG9wcGVyU3RhdHVzLk9LIDogSG9wcGVyU3RhdHVzLkVycm9yO1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkhvcHBlcltIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBjYWxjSG9wcGVyVmFsdWVzKGhvcHBlcnM6IEhvcHBlckR0b1tdKSB7XG4gICAgY29uc3QgcHJlc2V0VG90YWxzID0geyBhbW91bnQ6IDAsIHZhbHVlOiAwIH07XG4gICAgY29uc3QgaG9wcGVyVG90YWxzID0gaG9wcGVycz8ucmVkdWNlKCh0b3RhbHMsIGhvcHBlcikgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgoKGhvcHBlcj8uY29pbj8udmFsdWUgfHwgMCkgKiAoaG9wcGVyPy5jb2luPy5jb3VudGVyIHx8IDApKSAvIDEwMCk7XG4gICAgICB0b3RhbHMuYW1vdW50ICs9IChob3BwZXI/LmNvaW4/LmNvdW50ZXIgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShob3BwZXJUb3RhbHMpO1xuICB9XG5cbiAgY2FsY0NvaW5WYWx1ZXMoY29pbnNJbkxhbmU6IENvaW5JbkxhbmVEdG8pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBjaXNUb3RhbHMgPSBjb2luc0luTGFuZT8uY29pbnM/LnJlZHVjZSgodG90YWxzLCBjb2luKSA9PiB7XG4gICAgICB0b3RhbHMudmFsdWUgKz0gKCgoY29pbj8udmFsdWUgfHwgMCkgKiAoY29pbj8uY291bnRlciB8fCAwKSkgLyAxMDApO1xuICAgICAgdG90YWxzLmFtb3VudCArPSAoY29pbj8uY291bnRlciB8fCAwKTtcbiAgICAgIHJldHVybiB0b3RhbHM7XG4gICAgfSwgcHJlc2V0VG90YWxzKTtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0RGVjaW1hbFZhbHVlKGNpc1RvdGFscyk7XG4gIH1cblxuICBjYWxjQmlsbHNTYWZlVmFsdWVzKGJpbGxzOiBCaWxsRHRvW10pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBiaWxsU2FmZVRvdGFscyA9IGJpbGxzPy5yZWR1Y2UoKHRvdGFscywgYmlsbCkgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgrKHRoaXMuZ2V0QmlsbFR5cGVWYWx1ZShiaWxsLnR5cGUpIHx8IDApICogKGJpbGw/LmFtb3VudCB8fCAwKSk7XG4gICAgICB0b3RhbHMuYW1vdW50ICs9IChiaWxsPy5hbW91bnQgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShiaWxsU2FmZVRvdGFscyk7XG4gIH1cblxuICBjYWxjQ29pbnNTYWZlVmFsdWVzKGNvaW5zOiBDb2luRHRvW10pIHtcbiAgICBjb25zdCBwcmVzZXRUb3RhbHMgPSB7IGFtb3VudDogMCwgdmFsdWU6IDAgfTtcbiAgICBjb25zdCBjb2luU2F2ZVRvdGFscyA9IGNvaW5zPy5yZWR1Y2UoKHRvdGFscywgY29pbikgPT4ge1xuICAgICAgdG90YWxzLnZhbHVlICs9ICgoKGNvaW4/LnZhbHVlIHx8IDApICogKGNvaW4/LmNvdW50ZXIgfHwgMCkpIC8gMTAwKTtcbiAgICAgIHRvdGFscy5hbW91bnQgKz0gKGNvaW4/LmNvdW50ZXIgfHwgMCk7XG4gICAgICByZXR1cm4gdG90YWxzO1xuICAgIH0sIHByZXNldFRvdGFscyk7XG4gICAgcmV0dXJuIHRoaXMuY29udmVydERlY2ltYWxWYWx1ZShjb2luU2F2ZVRvdGFscyk7XG4gIH1cblxuICBjb252ZXJ0RGVjaW1hbFZhbHVlKGNvaW5TYXZlVG90YWxzKSB7XG4gICAgY29uc3QgYW1vdW50ID0gYCR7dGhpcy5kZWNpbWFsVG9BbW91bnRQaXBlLnRyYW5zZm9ybShjb2luU2F2ZVRvdGFscz8uYW1vdW50KX1gO1xuICAgIGNvbnN0IHZhbHVlID0gYCR7dGhpcy5kZWNpbWFsVG9DdXJyZW5jeVBpcGUudHJhbnNmb3JtKGNvaW5TYXZlVG90YWxzPy52YWx1ZSl9YDtcbiAgICBjb25zdCBjb252ZXJ0ZWRWYWx1ZXMgPSB7XG4gICAgICBhbW91bnQsXG4gICAgICB2YWx1ZVxuICAgIH07XG4gICAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlcztcbiAgfVxuXG4gIGdldEJpbGxUeXBlVmFsdWVUZXh0KGJpbGxUeXBlVmFsdWU6IEJpbGxUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlID0gQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV07XG5cbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuTC51bmtub3duKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFRvQ3VycmVuY3lQaXBlLnRyYW5zZm9ybShCaWxsVHlwZVRleHRbQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV1dKTtcbiAgfVxuXG4gIGdldEJpbGxUeXBlVmFsdWUoYmlsbFR5cGVWYWx1ZTogQmlsbFR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBCaWxsVHlwZVRleHRbQmlsbFR5cGVbYmlsbFR5cGVWYWx1ZV1dO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0JldHdlZW5SYW5nZShpbnB1dDogc3RyaW5nLCBtaW5WYWx1ZTogbnVtYmVyLCBtYXhWYWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5wdXRWYWwgPSBwYXJzZUludChpbnB1dCwgMTApO1xuICAgIHJldHVybiBpbnB1dFZhbCA+PSBtaW5WYWx1ZSAmJiBpbnB1dFZhbCA8PSBtYXhWYWx1ZTtcbiAgfVxuXG4gIGdldEludGVybmFsQ29tU3RhdHVzTnVtKHNlY29uZGFyeUNvbVN0YXR1czogYm9vbGVhbik6IENvbUFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGNvbUFnZ3JlZ2F0ZWRTdGF0dXMgPSBzZWNvbmRhcnlDb21TdGF0dXMgPyBDb21BZ2dyZWdhdGVkU3RhdHVzLk9rIDogQ29tQWdncmVnYXRlZFN0YXR1cy5Db21FcnJvcjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Db21bQ29tQWdncmVnYXRlZFN0YXR1c1tjb21BZ2dyZWdhdGVkU3RhdHVzXV07XG4gIH1cblxuICBkaXNwbGF5U3dhbGxvd1VuaXQoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGV2aWNlPy5zd2FsbG93VW5pdD8udHlwZSA9PT0gU3dhbGxvd1VuaXRUeXBlLlRpY2tldCB8fFxuICAgICAgISFkZXZpY2U/LnN3YWxsb3dVbml0cz8uZmlsdGVyKHMgPT4gcy50eXBlID09PSBTd2FsbG93VW5pdFR5cGUuVGlja2V0KS5sZW5ndGg7XG4gIH1cblxuICBnZXRTd2FsbG93VW5pdChkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IFN3YWxsb3dVbml0RHRvIHtcbiAgICBpZiAoZGV2aWNlPy5zd2FsbG93VW5pdCkge1xuICAgICAgcmV0dXJuIGRldmljZS5zd2FsbG93VW5pdDtcbiAgICB9IGVsc2UgaWYgKGRldmljZT8uc3dhbGxvd1VuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5zd2FsbG93VW5pdHM/LmZpbmQocyA9PiBzLnR5cGUgPT09IFN3YWxsb3dVbml0VHlwZS5UaWNrZXQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0RG9vclN0YXR1c051bShkb29yU3RhdHVzOiBEb29yU3RhdHVzKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuRG9vcltEb29yU3RhdHVzW2Rvb3JTdGF0dXNdXTtcbiAgfVxuXG4gIGdldERvb3JTdGF0dXNUZXh0KGRvb3JTdGF0dXM6IERvb3JTdGF0dXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBEb29yU3RhdHVzVGV4dFtEb29yU3RhdHVzW2Rvb3JTdGF0dXNdXTtcbiAgfVxuXG4gIGdldExvb3BTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgbG9vcFN0YXR1cyA9IHN0YXR1cyA/IExvb3BTdGF0dXMuT24gOiBMb29wU3RhdHVzLk9mZjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Mb29wW0xvb3BTdGF0dXNbbG9vcFN0YXR1c11dO1xuICB9XG5cbiAgZ2V0RG9vclNlbnNvclN0YXR1c051bShzdGF0dXM6IGJvb2xlYW4pOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICBjb25zdCBzZW5zb3JTdGF0dXMgPSBzdGF0dXMgPyBEb29yU2Vuc29yU3RhdHVzLk9uIDogRG9vclNlbnNvclN0YXR1cy5PZmY7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuRG9vclNlbnNvcltEb29yU2Vuc29yU3RhdHVzW3NlbnNvclN0YXR1c11dO1xuICB9XG5cbiAgZ2V0UmVsYXlTdGF0dXNOdW0oc3RhdHVzOiBib29sZWFuKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgY29uc3QgcmVsYXlTdGF0dXMgPSBzdGF0dXMgPyBSZWxheVN0YXR1cy5PbiA6IFJlbGF5U3RhdHVzLk9mZjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5SZWxheVtSZWxheVN0YXR1c1tyZWxheVN0YXR1c11dO1xuICB9XG5cbiAgZ2V0QnV0dG9uU3RhdHVzTnVtKHN0YXR1czogYm9vbGVhbik6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGJ1dHRvblN0YXR1cyA9IHN0YXR1cyA/IEJ1dHRvblN0YXR1cy5PbiA6IEJ1dHRvblN0YXR1cy5PZmY7XG4gICAgcmV0dXJuIHRoaXMuYXBwU2V0dGluZ3NTZXJ2aWNlLmRldmljZVN0YXR1c01hcHBpbmcuQnV0dG9uW0J1dHRvblN0YXR1c1tidXR0b25TdGF0dXNdXTtcbiAgfVxuXG4gIGdldERpcFN3aXRjaFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICBjb25zdCBzd2l0Y2hTdGF0dXMgPSBzdGF0dXMgPyBEaXBTd2l0Y2hTdGF0dXMuT24gOiBEaXBTd2l0Y2hTdGF0dXMuT2ZmO1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkRpcFN3aXRjaFtEaXBTd2l0Y2hTdGF0dXNbc3dpdGNoU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsQ2Fzc2V0dGVBcnJheShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IENhc3NldHRlRHRvW10ge1xuICAgIGlmIChkZXZpY2U/LmJpbGxSZWN5Y2xlcj8uY2Fzc2V0dGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNhc3NldHRlcztcbiAgICB9IGVsc2UgaWYgKGRldmljZT8uYmlsbERpc3BlbnNlcj8uY2Fzc2V0dGVzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsRGlzcGVuc2VyPy5jYXNzZXR0ZXM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldEJpbGxDYXNzZXR0ZVRvdGFsVmFsdWUoZGV2aWNlOiBEZXZpY2VTdGF0dXNEdG8pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEJpbGxDYXNzZXR0ZUFycmF5KGRldmljZSkucmVkdWNlKCh0b3RhbFZhbHVlLCBjYXNzZXR0ZSkgPT4ge1xuICAgICAgaWYgKCFjYXNzZXR0ZT8uYmlsbCkge1xuICAgICAgICByZXR1cm4gdG90YWxWYWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoKyh0aGlzLmdldEJpbGxUeXBlVmFsdWUoY2Fzc2V0dGUuYmlsbC50eXBlKSB8fCAwKSAqIChjYXNzZXR0ZS5iaWxsLmFtb3VudCB8fCAwKSkgKyB0b3RhbFZhbHVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZ2V0QmlsbENhc3NldHRlU3RhdHVzTnVtKGJpbGxDYXNzZXR0ZVN0YXR1czogQ2Fzc2V0dGVTdGF0dXMpOiBBZ2dyZWdhdGVkU3RhdHVzIHtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5CaWxsQ2Fzc2V0dGVbQ2Fzc2V0dGVTdGF0dXNbYmlsbENhc3NldHRlU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsQ2Fzc2V0dGVTdGF0dXNUZXh0KGJpbGxDYXNzZXR0ZVN0YXR1czogQ2Fzc2V0dGVTdGF0dXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBDYXNzZXR0ZVN0YXR1c1RleHRbQ2Fzc2V0dGVTdGF0dXNbYmlsbENhc3NldHRlU3RhdHVzXV07XG4gIH1cblxuICBnZXRCaWxsU2FmZUFycmF5KGRldmljZTogRGV2aWNlU3RhdHVzRHRvKTogQmlsbER0b1tdIHtcbiAgICBpZiAoZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNlbnRyYWxTYWZlPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gZGV2aWNlPy5iaWxsUmVjeWNsZXI/LmNlbnRyYWxTYWZlO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5iaWxsVmFsaWRhdG9yPy5iaWxscz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uYmlsbFZhbGlkYXRvcj8uYmlsbHM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldEJpbGxTYWZlVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QmlsbFNhZmVBcnJheShkZXZpY2UpLnJlZHVjZSgodG90YWxWYWx1ZSwgYmlsbCkgPT4ge1xuICAgICAgaWYgKCFiaWxsPy5hbW91bnQpIHtcbiAgICAgICAgcmV0dXJuIHRvdGFsVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gKCsodGhpcy5nZXRCaWxsVHlwZVZhbHVlKGJpbGwudHlwZSkgfHwgMCkgKiAoYmlsbC5hbW91bnQgfHwgMCkpICsgdG90YWxWYWx1ZTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldEJpbGxEaXNwZW5zZXJTdGF0dXNOdW0oYmlsbERpc3BlbnNlcjogQmlsbERpc3BlbnNlckR0byk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGlmICghYmlsbERpc3BlbnNlci5pc0NvbW11bmljYXRpbmcpIHtcbiAgICAgIHJldHVybiBBZ2dyZWdhdGVkU3RhdHVzLkVSUk9SO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5CaWxsRGlzcGVuc2VyW0JpbGxEaXNwZW5zZXJTdGF0dXNbYmlsbERpc3BlbnNlci5lcnJvckNvZGVdXTtcbiAgfVxuXG4gIGdldEJpbGxEaXNwZW5zZXJTdGF0dXNUZXh0KGJpbGxEaXNwZW5zZXI6IEJpbGxEaXNwZW5zZXJEdG8pOiBzdHJpbmcge1xuICAgIGlmICghYmlsbERpc3BlbnNlci5pc0NvbW11bmljYXRpbmcpIHtcbiAgICAgIHJldHVybiB0aGlzLkwuZGlzY29ubmVjdGVkO1xuICAgIH1cbiAgICByZXR1cm4gQmlsbERpc3BlbnNlclN0YXR1c1RleHRbQmlsbERpc3BlbnNlclN0YXR1c1tiaWxsRGlzcGVuc2VyLmVycm9yQ29kZV1dO1xuICB9XG5cbiAgZ2V0QmlsbFZhbGlkYXRvclN0YXR1c051bShiaWxsVmFsaWRhdG9yOiBCaWxsVmFsaWRhdG9yRHRvKTogQWdncmVnYXRlZFN0YXR1cyB7XG4gICAgaWYgKCFiaWxsVmFsaWRhdG9yLmlzQ29tbXVuaWNhdGluZykge1xuICAgICAgcmV0dXJuIEFnZ3JlZ2F0ZWRTdGF0dXMuRVJST1I7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkJpbGxWYWxpZGF0b3JbQmlsbFZhbGlkYXRvclN0YXR1c1tiaWxsVmFsaWRhdG9yLnN0YXRlXV07XG4gIH1cblxuICBnZXRCaWxsVmFsaWRhdG9yU3RhdHVzVGV4dChiaWxsVmFsaWRhdG9yOiBCaWxsVmFsaWRhdG9yRHRvKTogc3RyaW5nIHtcbiAgICBpZiAoIWJpbGxWYWxpZGF0b3IuaXNDb21tdW5pY2F0aW5nKSB7XG4gICAgICByZXR1cm4gdGhpcy5MLmRpc2Nvbm5lY3RlZDtcbiAgICB9XG4gICAgcmV0dXJuIEJpbGxWYWxpZGF0b3JTdGF0dXNUZXh0W0JpbGxWYWxpZGF0b3JTdGF0dXNbYmlsbFZhbGlkYXRvci5zdGF0ZV1dO1xuICB9XG5cbiAgZ2V0SG9wcGVyVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRldmljZT8uaG9wcGVycy5yZWR1Y2UoKHRvdGFsVmFsdWUsIGhvcHBlcikgPT4ge1xuICAgICAgcmV0dXJuICgoaG9wcGVyPy5jb2luPy52YWx1ZSB8fCAwKSAqIChob3BwZXI/LmNvaW4/LmNvdW50ZXIgfHwgMCkgLyAxMDApICsgdG90YWxWYWx1ZTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIGdldEhvcHBlclN0YXR1c051bShob3BwZXJTdGF0dXM6IEhvcHBlclN0YXR1cyk6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmFwcFNldHRpbmdzU2VydmljZS5kZXZpY2VTdGF0dXNNYXBwaW5nLkhvcHBlcltIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBnZXRIb3BwZXJTdGF0dXNUZXh0KGhvcHBlclN0YXR1czogSG9wcGVyU3RhdHVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSG9wcGVyU3RhdHVzVGV4dFtIb3BwZXJTdGF0dXNbaG9wcGVyU3RhdHVzXV07XG4gIH1cblxuICBnZXRDb2luVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRldmljZT8uY29pbkluTGFuZT8uY29pbnMucmVkdWNlKCh0b3RhbFZhbHVlLCBjb2luKSA9PiB7XG4gICAgICByZXR1cm4gKChjb2luPy52YWx1ZSB8fCAwKSAqIChjb2luPy5jb3VudGVyIHx8IDApIC8gMTAwKSArIHRvdGFsVmFsdWU7XG4gICAgfSwgMCk7XG4gIH1cblxuICBnZXRDb2luU3RhdHVzTnVtKGlzQ29tbXVuaWNhdGluZzogYm9vbGVhbik6IEFnZ3JlZ2F0ZWRTdGF0dXMge1xuICAgIGNvbnN0IGNvaW5TdGF0dXMgPSBpc0NvbW11bmljYXRpbmcgPyBDb2luU3RhdHVzLk9LIDogQ29pblN0YXR1cy5FcnJvcjtcbiAgICByZXR1cm4gdGhpcy5hcHBTZXR0aW5nc1NlcnZpY2UuZGV2aWNlU3RhdHVzTWFwcGluZy5Db2luSW5MYW5lW0NvaW5TdGF0dXNbY29pblN0YXR1c11dO1xuICB9XG5cbiAgZ2V0Q29pblN0YXR1c1RleHQoY29pblN0YXR1czogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvaW5TdGF0dXMgPyBDb2luU3RhdHVzVGV4dC5PSyA6IENvaW5TdGF0dXNUZXh0LkVycm9yO1xuICB9XG5cbiAgZ2V0Q29pblNhZmVBcnJheShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IENvaW5EdG9bXSB7XG4gICAgaWYgKGRldmljZT8uY2VudHJhbFNhZmU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBkZXZpY2U/LmNlbnRyYWxTYWZlO1xuICAgIH0gZWxzZSBpZiAoZGV2aWNlPy5jb2luSW5MYW5lPy5jZW50cmFsU2FmZT8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGRldmljZT8uY29pbkluTGFuZT8uY2VudHJhbFNhZmU7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldENvaW5TYWZlVG90YWxWYWx1ZShkZXZpY2U6IERldmljZVN0YXR1c0R0byk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29pblNhZmVBcnJheShkZXZpY2UpLnJlZHVjZSgodG90YWxWYWx1ZSwgY29pbikgPT4ge1xuICAgICAgcmV0dXJuICgoY29pbj8udmFsdWUgfHwgMCkgKiAoY29pbj8uY291bnRlciB8fCAwKSAvIDEwMCkgKyB0b3RhbFZhbHVlO1xuICAgIH0sIDApO1xuICB9XG5cbiAgZm9ybWF0Q29pblZhbHVlKGNvaW46IG51bWJlcik6IHN0cmluZyB7XG4gICAgLy8gQ29pbnMgYWx3YXlzIHNhdmVkIGFkIENlbnQgZm9ybWF0XG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFRvQ3VycmVuY3lQaXBlLnRyYW5zZm9ybShjb2luIC8gMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc2FuaXRpemVDb2luc0RhdGEoKSB7XG4gICAgaWYgKHRoaXMuZGV2aWNlU3RhdHVzKSB7XG4gICAgICBpZiAodGhpcy5kZXZpY2VTdGF0dXMuY29pbkluTGFuZT8uY29pbnMpIHtcbiAgICAgICAgLy8gc2V0IGNvaW5zIG9ubHkgd2l0aCBleGlzdGluZyB2YWx1ZXMgKGdyZWF0ZXIgdGhhbiAwKSxcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhpc3RpbmcgdmFsdWVzLCBjb2lucyB3aWxsIGJlIGFuIGVtcHR5IGFycmF5LlxuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb2lucyA9IHRoaXMuZGV2aWNlU3RhdHVzLmNvaW5JbkxhbmUuY29pbnMuZmlsdGVyKGNvaW4gPT4gY29pbi52YWx1ZSA+IDAgfHwgY29pbi5jb3VudGVyID4gMCk7XG4gICAgICAgIHRoaXMuZGV2aWNlU3RhdHVzLmNvaW5JbkxhbmUuY29pbnMgPSBzYW5pdGl6ZWRDb2lucztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRldmljZVN0YXR1cy5ob3BwZXJzKSB7XG4gICAgICAgIGNvbnN0IGhvcHBlcnMgPSB0aGlzLmRldmljZVN0YXR1cy5ob3BwZXJzIGFzIEhvcHBlckR0b1tdO1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRIb3BwZXJzID0gaG9wcGVycy5maWx0ZXIoYyA9PiBjLmNvaW4uY291bnRlciA+IDAgfHwgYy5jb2luLnZhbHVlID4gMCk7XG4gICAgICAgIHRoaXMuZGV2aWNlU3RhdHVzLmhvcHBlcnMgPSBzYW5pdGl6ZWRIb3BwZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -142211,7 +142211,8 @@ class DeviceStatusBaseComponent extends BaseComponent {
|
|
|
142211
142211
|
this.sanitizeCoinsData();
|
|
142212
142212
|
this.activeStatus = isDeviceActive(this.selectedDevice);
|
|
142213
142213
|
this.zoneName = this.selectedDevice?.zone?.name;
|
|
142214
|
-
|
|
142214
|
+
// SPRK3-15484: guid and the dictionary are independent slices — the guid slice is absent on a deep link.
|
|
142215
|
+
this.isSelectedDeviceMCConnected = facilityDictionary[guid]?.[this.selectedDevice?.parkID]?.isMainControllerConnected;
|
|
142215
142216
|
this.isStatusSupported = this.deviceService.isStatusSupported(res?.type);
|
|
142216
142217
|
const deviceItemStatusSections = {
|
|
142217
142218
|
section1: [],
|