@qbs-origin/origin-form 0.8.8 → 0.8.10
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/lib/formly/formly-scan-id/formly-scan-id.component.mjs +3 -2
- package/esm2022/lib/formly/formly-validate-contact-info/formly-validate-contact-info.component.mjs +3 -2
- package/fesm2022/qbs-origin-origin-form.mjs +4 -2
- package/fesm2022/qbs-origin-origin-form.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -57,7 +57,8 @@ export class FormlyScanIdComponent extends FieldType {
|
|
|
57
57
|
];
|
|
58
58
|
this.maxFileSizeKB = this.props['config'].maxFileSizeKB || 2000;
|
|
59
59
|
if (this.props['config'].collected) {
|
|
60
|
-
const
|
|
60
|
+
const controlId = this.props['config'].componentCollected;
|
|
61
|
+
const value = this.form.get(controlId)?.value ?? this.model?.[controlId];
|
|
61
62
|
this.control.setValue(value);
|
|
62
63
|
this.valueChangesSub = this.form
|
|
63
64
|
.get(this.props['config'].componentCollected)
|
|
@@ -485,4 +486,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
485
486
|
type: ViewChild,
|
|
486
487
|
args: ['videoElement']
|
|
487
488
|
}] } });
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXNjYW4taWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXNjYW4taWQvZm9ybWx5LXNjYW4taWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXNjYW4taWQvZm9ybWx5LXNjYW4taWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7QUFnQjdDLE1BQU0sT0FBTyxxQkFDWCxTQUFRLFNBQVM7SUErQ2pCLFlBQ1UsY0FBc0MsRUFDdEMsR0FBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFIQSxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5Q2hDLFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEUsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFp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QU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUM3QixDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUM5QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFakMsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUMxQyxJQUNFLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRO29CQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFDNUIsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQy9CLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsakJVLHFCQUFxQjttR0FBckIscUJBQXFCLHdSQ3pCbEMsbTVSQXFNQTs7NEZENUthLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxvQkFBb0I7MkhBOENOLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25EYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9uRGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjYW5JZER0byB9IGZyb20gJy4uLy4uL21vZGVscy9hcHBsaWNhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBBcHBEYXRhRmlsbCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3Jtcy5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l6YXJkU3RlcCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN0YXR1czogJ3VwY29taW5nJyB8ICdhY3RpdmUnIHwgJ2NvbXBsZXRlZCc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mb3JtbHktc2Nhbi1pZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktc2Nhbi1pZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm1seS1zY2FuLWlkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seVNjYW5JZENvbXBvbmVudFxuICBleHRlbmRzIEZpZWxkVHlwZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICBmaWxlRXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBmaWxlTmFtZUZyb250OiBzdHJpbmcgPSAnJztcbiAgZmlsZU5hbWVCYWNrOiBzdHJpbmcgPSAnJztcbiAgdmFsaWRGb3JtYXRzOiBzdHJpbmdbXSA9IFtdO1xuICBtYXhGaWxlU2l6ZUtCOiBudW1iZXIgPSAwO1xuICBjYXJkVHlwZVNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIG9sZElkQ2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBmcm9udFBob3RvVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYmFja1Bob3RvVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGhvdG9CYXNlNjRGcm9udDogc3RyaW5nID0gJyc7XG4gIHBob3RvQmFzZTY0QmFjazogc3RyaW5nID0gJyc7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzdWNjZXNzTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGlzU2NhblZhbGlkOiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyBXaXphcmQgc3RhdGVcbiAgY3VycmVudFdpemFyZFN0ZXA6IG51bWJlciA9IDA7XG4gIHdpemFyZFN0ZXBzOiBXaXphcmRTdGVwW10gPSBbXTtcblxuICAvLyBDYW1lcmEgbWFuYWdlbWVudFxuICBjYW1lcmFBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYXZhaWxhYmxlQ2FtZXJhczogTWVkaWFEZXZpY2VJbmZvW10gPSBbXTtcbiAgc2VsZWN0ZWRDYW1lcmFJZDogc3RyaW5nID0gJyc7XG5cbiAgLy8gUGhvdG8gcHJldmlldyAoZnVsbCBkYXRhIFVSSSBmb3IgaW1nIGRpc3BsYXkpXG4gIHBob3RvUHJldmlld0Zyb250OiBzdHJpbmcgPSAnJztcbiAgcGhvdG9QcmV2aWV3QmFjazogc3RyaW5nID0gJyc7XG5cbiAgLy8gRHJhZyBhbmQgZHJvcFxuICBpc0RyYWdPdmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gRmxhc2ggYW5pbWF0aW9uXG4gIHNob3dGbGFzaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIFJldHJ5XG4gIGNhblJldHJ5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndmlkZW9FbGVtZW50JykgdmlkZW9FbGVtZW50ITogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcbiAgdmlkZW9TdHJlYW06IE1lZGlhU3RyZWFtIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXNTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBEYXRhU2VydmljZTogQXBwbGljYXRpb25EYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mb3JtIGFzIEZvcm1Hcm91cDtcbiAgICBncm91cC5hZGRDb250cm9sKHRoaXMucHJvcHNbJ2lkZW50aWZpZXInXSwgdGhpcy5jb250cm9sKTtcblxuICAgIHRoaXMudmFsaWRGb3JtYXRzID0gdGhpcy5wcm9wc1snY29uZmlnJ10uYWxsb3dlZEZvcm1hdHM/LnNwbGl0KCcsJykgfHwgW1xuICAgICAgJy5qcGcnLFxuICAgICAgJy5wbmcnLFxuICAgIF07XG4gICAgdGhpcy5tYXhGaWxlU2l6ZUtCID0gdGhpcy5wcm9wc1snY29uZmlnJ10ubWF4RmlsZVNpemVLQiB8fCAyMDAwO1xuXG4gICAgaWYgKHRoaXMucHJvcHNbJ2NvbmZpZyddLmNvbGxlY3RlZCkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm0uZ2V0KFxuICAgICAgICB0aGlzLnByb3BzWydjb25maWcnXS5jb21wb25lbnRDb2xsZWN0ZWRcbiAgICAgICk/LnZhbHVlO1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcblxuICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWIgPSB0aGlzLmZvcm1cbiAgICAgICAgLmdldCh0aGlzLnByb3BzWydjb25maWcnXS5jb21wb25lbnRDb2xsZWN0ZWQpXG4gICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLnByb3BzWydjb25maWcnXS5jb21wb25lbnRDb2xsZWN0ZWQpPy52YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFdpemFyZFN0ZXBzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3BDYW1lcmEoKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50UGhvdG9QcmV2aWV3KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDFcbiAgICAgID8gdGhpcy5waG90b1ByZXZpZXdGcm9udFxuICAgICAgOiB0aGlzLnBob3RvUHJldmlld0JhY2s7XG4gIH1cblxuICBnZXQgY3VycmVudFN0ZXBMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmN1cnJlbnRXaXphcmRTdGVwID09PSAxKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnByb3BzWydsYWJlbHMnXT8udXBsb2FkRnJvbnRQcm9tcHQgfHxcbiAgICAgICAgJ1BsZWFzZSB1cGxvYWQgdGhlIGZyb250IHBob3RvIG9mIHlvdXIgSUQgY2FyZC4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5wcm9wc1snbGFiZWxzJ10/LnVwbG9hZEJhY2tQcm9tcHQgfHxcbiAgICAgICdQbGVhc2UgdXBsb2FkIHRoZSBiYWNrIHBob3RvIG9mIHlvdXIgSUQgY2FyZC4nXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50U3RlcFNob3J0TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHNbJ2xhYmVscyddPy5mcm9udFBob3RvTGFiZWwgfHwgJ0Zyb250IG9mIElEJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHNbJ2xhYmVscyddPy5iYWNrUGhvdG9MYWJlbCB8fCAnQmFjayBvZiBJRCc7XG4gIH1cblxuICAvLyAtLS0gV2l6YXJkIFN0ZXAgTWFuYWdlbWVudCAtLS1cblxuICBwcml2YXRlIGluaXRXaXphcmRTdGVwcygpIHtcbiAgICB0aGlzLndpemFyZFN0ZXBzID0gW1xuICAgICAge1xuICAgICAgICBsYWJlbDpcbiAgICAgICAgICB0aGlzLnByb3BzWydsYWJlbHMnXT8uY2FyZFR5cGVTdGVwTGFiZWwgfHwgJ1NlbGVjdCBDYXJkIFR5cGUnLFxuICAgICAgICBzdGF0dXM6ICdhY3RpdmUnLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVXaXphcmRTdGVwcygpIHtcbiAgICBjb25zdCBmcm9udExhYmVsID1cbiAgICAgIHRoaXMucHJvcHNbJ2xhYmVscyddPy5mcm9udFBob3RvU3RlcExhYmVsIHx8ICdGcm9udCBQaG90byc7XG4gICAgY29uc3QgYmFja0xhYmVsID1cbiAgICAgIHRoaXMucHJvcHNbJ2xhYmVscyddPy5iYWNrUGhvdG9TdGVwTGFiZWwgfHwgJ0JhY2sgUGhvdG8nO1xuXG4gICAgdGhpcy53aXphcmRTdGVwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgdGhpcy5wcm9wc1snbGFiZWxzJ10/LmNhcmRUeXBlU3RlcExhYmVsIHx8ICdTZWxlY3QgQ2FyZCBUeXBlJyxcbiAgICAgICAgc3RhdHVzOiAnY29tcGxldGVkJyxcbiAgICAgIH0sXG4gICAgICB7IGxhYmVsOiBmcm9udExhYmVsLCBzdGF0dXM6ICdhY3RpdmUnIH0sXG4gICAgXTtcbiAgICBpZiAoIXRoaXMub2xkSWRDYXJkKSB7XG4gICAgICB0aGlzLndpemFyZFN0ZXBzLnB1c2goeyBsYWJlbDogYmFja0xhYmVsLCBzdGF0dXM6ICd1cGNvbWluZycgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIE5hdmlnYXRpb24gLS0tXG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuY2xvc2VDYW1lcmEoKTtcbiAgICBpZiAodGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMikge1xuICAgICAgLy8gR28gYmFjayB0byBmcm9udCBwaG90byBzdGVwLCBwcmVzZXJ2ZSBmcm9udCBwaG90b1xuICAgICAgdGhpcy53aXphcmRTdGVwc1syXS5zdGF0dXMgPSAndXBjb21pbmcnO1xuICAgICAgdGhpcy53aXphcmRTdGVwc1sxXS5zdGF0dXMgPSAnYWN0aXZlJztcbiAgICAgIHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPSAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMSkge1xuICAgICAgLy8gR28gYmFjayB0byBjYXJkIHR5cGUgc2VsZWN0aW9uLCByZXNldCBldmVyeXRoaW5nXG4gICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgdGhpcy5jYXJkVHlwZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID0gMDtcbiAgICAgIHRoaXMuaW5pdFdpemFyZFN0ZXBzKCk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdvVG9TdGVwKHN0ZXBJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHN0ZXBJbmRleCA8IHRoaXMuY3VycmVudFdpemFyZFN0ZXApIHtcbiAgICAgIHdoaWxlICh0aGlzLmN1cnJlbnRXaXphcmRTdGVwID4gc3RlcEluZGV4KSB7XG4gICAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIENhcmQgVHlwZSBTZWxlY3Rpb24gLS0tXG5cbiAgc2VsZWN0Q2FyZFR5cGUoaXNPbGRJZENhcmQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9sZElkQ2FyZCA9IGlzT2xkSWRDYXJkO1xuICAgIHRoaXMuY2FyZFR5cGVTZWxlY3RlZCA9IHRydWU7XG4gICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICB0aGlzLnVwZGF0ZVdpemFyZFN0ZXBzKCk7XG4gICAgdGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9IDE7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gLS0tIEZpbGUgVXBsb2FkIC0tLVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0Py5maWxlcz8uWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICBjb25zdCBpc0Zyb250ID0gdGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMTtcbiAgICAgIHRoaXMucHJvY2Vzc0ZpbGUoZmlsZSwgaXNGcm9udCk7XG4gICAgfVxuICAgIC8vIFJlc2V0IGlucHV0IHNvIHNhbWUgZmlsZSBjYW4gYmUgcmUtc2VsZWN0ZWRcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRmlsZShmaWxlOiBGaWxlLCBpc0Zyb250OiBib29sZWFuKSB7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9ICcuJyArIGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpPy50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGZpbGVTaXplS0IgPSBmaWxlLnNpemUgLyAxMDI0O1xuXG4gICAgaWYgKCF0aGlzLnZhbGlkRm9ybWF0cy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgdGhpcy5maWxlRXJyb3IgPSAoXG4gICAgICAgIHRoaXMucHJvcHNbJ2Vycm9yTWVzc2FnZXMnXT8uaW52YWxpZFR5cGUgfHxcbiAgICAgICAgYEludmFsaWQgZmlsZSB0eXBlLiBBbGxvd2VkIGZvcm1hdHMgYXJlICR7dGhpcy52YWxpZEZvcm1hdHMuam9pbihcbiAgICAgICAgICAnLCAnXG4gICAgICAgICl9YFxuICAgICAgKS5yZXBsYWNlKCd7Zm9ybWF0c30nLCB0aGlzLnZhbGlkRm9ybWF0cy5qb2luKCcsICcpKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoeyBpbnZhbGlkVHlwZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmlsZVNpemVLQiA+IHRoaXMubWF4RmlsZVNpemVLQiB8fCBmaWxlU2l6ZUtCIDwgMSkge1xuICAgICAgdGhpcy5maWxlRXJyb3IgPSAoXG4gICAgICAgIHRoaXMucHJvcHNbJ2Vycm9yTWVzc2FnZXMnXT8ubWF4U2l6ZSB8fFxuICAgICAgICBgRmlsZSBzaXplIG11c3QgYmUgYmV0d2VlbiAxS0IgYW5kICR7dGhpcy5tYXhGaWxlU2l6ZUtCfUtCLmBcbiAgICAgICkucmVwbGFjZSgne3NpemV9JywgdGhpcy5tYXhGaWxlU2l6ZUtCLnRvU3RyaW5nKCkpO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IGludmFsaWRTaXplOiB0cnVlIH0pO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZUVycm9yID0gbnVsbDtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhVXJpID0gcmVhZGVyLnJlc3VsdD8udG9TdHJpbmcoKSB8fCAnJztcbiAgICAgIGNvbnN0IGJhc2U2NCA9IGRhdGFVcmkuc3BsaXQoJywnKVsxXSB8fCAnJztcbiAgICAgIGlmIChpc0Zyb250KSB7XG4gICAgICAgIHRoaXMuZmlsZU5hbWVGcm9udCA9IGZpbGUubmFtZTtcbiAgICAgICAgdGhpcy5waG90b0Jhc2U2NEZyb250ID0gYmFzZTY0O1xuICAgICAgICB0aGlzLnBob3RvUHJldmlld0Zyb250ID0gZGF0YVVyaTtcbiAgICAgICAgdGhpcy5mcm9udFBob3RvVXBsb2FkZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWxlTmFtZUJhY2sgPSBmaWxlLm5hbWU7XG4gICAgICAgIHRoaXMucGhvdG9CYXNlNjRCYWNrID0gYmFzZTY0O1xuICAgICAgICB0aGlzLnBob3RvUHJldmlld0JhY2sgPSBkYXRhVXJpO1xuICAgICAgICB0aGlzLmJhY2tQaG90b1VwbG9hZGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gLS0tIERyYWcgYW5kIERyb3AgLS0tXG5cbiAgb25EcmFnT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSB0cnVlO1xuICB9XG5cbiAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzO1xuICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpc0Zyb250ID0gdGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMTtcbiAgICAgIHRoaXMucHJvY2Vzc0ZpbGUoZmlsZXNbMF0sIGlzRnJvbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBDYW1lcmEgLS0tXG5cbiAgYXN5bmMgb3BlbkNhbWVyYSgpIHtcbiAgICB0aGlzLmZpbGVFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKCFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzPy5nZXRVc2VyTWVkaWEpIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID1cbiAgICAgICAgdGhpcy5wcm9wc1snZXJyb3JNZXNzYWdlcyddPy5jYW1lcmFOb3RTdXBwb3J0ZWQgfHxcbiAgICAgICAgJ0NhbWVyYSBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgZGV2aWNlLic7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlcXVlc3QgcGVybWlzc2lvbiBmaXJzdCAobGFiZWxzIGFyZSBvbmx5IGF2YWlsYWJsZSBhZnRlciBwZXJtaXNzaW9uIGdyYW50KVxuICAgICAgY29uc3QgdGVtcFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHtcbiAgICAgICAgdmlkZW86IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRlbXBTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCgodCkgPT4gdC5zdG9wKCkpO1xuXG4gICAgICBjb25zdCBkZXZpY2VzID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhbWVyYXMgPSBkZXZpY2VzLmZpbHRlcihcbiAgICAgICAgKGQpID0+IGQua2luZCA9PT0gJ3ZpZGVvaW5wdXQnXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5hdmFpbGFibGVDYW1lcmFzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmZpbGVFcnJvciA9XG4gICAgICAgICAgdGhpcy5wcm9wc1snZXJyb3JNZXNzYWdlcyddPy5ub0NhbWVyYSB8fFxuICAgICAgICAgICdObyBjYW1lcmEgZGV2aWNlcyBmb3VuZC4nO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZENhbWVyYUlkID0gdGhpcy5hdmFpbGFibGVDYW1lcmFzWzBdLmRldmljZUlkO1xuICAgICAgdGhpcy5jYW1lcmFBY3RpdmUgPSB0cnVlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgYXdhaXQgdGhpcy5zdGFydENhbWVyYVN0cmVhbSh0aGlzLnNlbGVjdGVkQ2FtZXJhSWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5maWxlRXJyb3IgPVxuICAgICAgICB0aGlzLnByb3BzWydlcnJvck1lc3NhZ2VzJ10/LmNhbWVyYUFjY2VzcyB8fFxuICAgICAgICAnVW5hYmxlIHRvIGFjY2VzcyBjYW1lcmEuIFBsZWFzZSBjaGVjayBwZXJtaXNzaW9ucy4nO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN3aXRjaENhbWVyYShkZXZpY2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9wQ2FtZXJhU3RyZWFtKCk7XG4gICAgYXdhaXQgdGhpcy5zdGFydENhbWVyYVN0cmVhbShkZXZpY2VJZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN0YXJ0Q2FtZXJhU3RyZWFtKGRldmljZUlkOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe1xuICAgICAgICB2aWRlbzogeyBkZXZpY2VJZDogeyBleGFjdDogZGV2aWNlSWQgfSB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnZpZGVvU3RyZWFtID0gc3RyZWFtO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMudmlkZW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3JjT2JqZWN0ID0gc3RyZWFtO1xuICAgICAgICBhd2FpdCB0aGlzLnZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50LnBsYXkoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID1cbiAgICAgICAgdGhpcy5wcm9wc1snZXJyb3JNZXNzYWdlcyddPy5jYW1lcmFBY2Nlc3MgfHxcbiAgICAgICAgJ1VuYWJsZSB0byBhY2Nlc3MgdGhlIHNlbGVjdGVkIGNhbWVyYS4nO1xuICAgICAgdGhpcy5jYW1lcmFBY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BDYW1lcmFTdHJlYW0oKSB7XG4gICAgaWYgKHRoaXMudmlkZW9TdHJlYW0pIHtcbiAgICAgIHRoaXMudmlkZW9TdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCgodHJhY2spID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICB0aGlzLnZpZGVvU3RyZWFtID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BDYW1lcmEoKSB7XG4gICAgdGhpcy5zdG9wQ2FtZXJhU3RyZWFtKCk7XG4gICAgdGhpcy5jYW1lcmFBY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlQ2FtZXJhKCkge1xuICAgIHRoaXMuc3RvcENhbWVyYSgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNhcHR1cmVDdXJyZW50UGhvdG8oKSB7XG4gICAgaWYgKCF0aGlzLnZpZGVvRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5maWxlRXJyb3IgPSAnTm8gdmlkZW8gZWxlbWVudCBhdmFpbGFibGUuJztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2aWRlbyA9IHRoaXMudmlkZW9FbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlkZW9XaWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7XG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnRleHQ/LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcblxuICAgIC8vIEZsYXNoIGFuaW1hdGlvblxuICAgIHRoaXMudHJpZ2dlckZsYXNoKCk7XG5cbiAgICBjb25zdCBkYXRhVXJpID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDAuOSk7XG4gICAgY29uc3QgYmFzZTY0ID0gZGF0YVVyaS5zcGxpdCgnLCcpWzFdIHx8ICcnO1xuXG4gICAgY29uc3QgaXNGcm9udCA9IHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDE7XG4gICAgaWYgKGlzRnJvbnQpIHtcbiAgICAgIHRoaXMucGhvdG9CYXNlNjRGcm9udCA9IGJhc2U2NDtcbiAgICAgIHRoaXMucGhvdG9QcmV2aWV3RnJvbnQgPSBkYXRhVXJpO1xuICAgICAgdGhpcy5mcm9udFBob3RvVXBsb2FkZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBob3RvQmFzZTY0QmFjayA9IGJhc2U2NDtcbiAgICAgIHRoaXMucGhvdG9QcmV2aWV3QmFjayA9IGRhdGFVcmk7XG4gICAgICB0aGlzLmJhY2tQaG90b1VwbG9hZGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3BDYW1lcmEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJGbGFzaCgpIHtcbiAgICB0aGlzLnNob3dGbGFzaCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93Rmxhc2ggPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9LCAzMDApO1xuICB9XG5cbiAgLy8gLS0tIFBob3RvIFByZXZpZXcgQWN0aW9ucyAtLS1cblxuICBjb25maXJtUGhvdG8oKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDEgJiYgIXRoaXMub2xkSWRDYXJkKSB7XG4gICAgICAvLyBNb3ZlIHRvIGJhY2sgcGhvdG8gc3RlcFxuICAgICAgdGhpcy53aXphcmRTdGVwc1sxXS5zdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgIHRoaXMud2l6YXJkU3RlcHNbMl0uc3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgICB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID0gMjtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWxsIHBob3RvcyBjb2xsZWN0ZWQsIHRyaWdnZXIgdXBsb2FkXG4gICAgICB0aGlzLmNoZWNrVXBsb2FkQ29uZGl0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRDdXJyZW50UGhvdG8oKSB7XG4gICAgY29uc3QgaXNGcm9udCA9IHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDE7XG4gICAgaWYgKGlzRnJvbnQpIHtcbiAgICAgIHRoaXMucGhvdG9CYXNlNjRGcm9udCA9ICcnO1xuICAgICAgdGhpcy5waG90b1ByZXZpZXdGcm9udCA9ICcnO1xuICAgICAgdGhpcy5mcm9udFBob3RvVXBsb2FkZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsZU5hbWVGcm9udCA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBob3RvQmFzZTY0QmFjayA9ICcnO1xuICAgICAgdGhpcy5waG90b1ByZXZpZXdCYWNrID0gJyc7XG4gICAgICB0aGlzLmJhY2tQaG90b1VwbG9hZGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbGVOYW1lQmFjayA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmZpbGVFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gLS0tIFVwbG9hZCAtLS1cblxuICB1cGxvYWRQaG90bygpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jYW5SZXRyeSA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBjb25zdCBjb21tYW5kOiBTY2FuSWREdG8gPSB7XG4gICAgICBhcHBJZDogdGhpcy5wcm9wc1snYXBwSWQnXSxcbiAgICAgIGFwcERhdGFJZDogdGhpcy5wcm9wc1snYXBwRGF0YUlkJ10sXG4gICAgICBzdGVwSWQ6IHRoaXMucHJvcHNbJ3N0ZXBJZCddLFxuICAgICAgb2xkSWRDYXJkOiB0aGlzLm9sZElkQ2FyZCxcbiAgICAgIHBob3RvczogdGhpcy5vbGRJZENhcmRcbiAgICAgICAgPyBbeyBiYXNlNjQ6IHRoaXMucGhvdG9CYXNlNjRGcm9udCB9XVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHsgYmFzZTY0OiB0aGlzLnBob3RvQmFzZTY0RnJvbnQgfSxcbiAgICAgICAgICAgIHsgYmFzZTY0OiB0aGlzLnBob3RvQmFzZTY0QmFjayB9LFxuICAgICAgICAgIF0sXG4gICAgfTtcblxuICAgIHRoaXMuYXBwRGF0YVNlcnZpY2Uuc2NhbklkKGNvbW1hbmQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdTY2FuIElEIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGFwcERhdGEgPSBhd2FpdCB0aGlzLmFwcERhdGFTZXJ2aWNlLmdldFN0ZXBzKFxuICAgICAgICAgIHRoaXMucHJvcHNbJ2FwcERhdGFJZCddXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGFwcERhdGEpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLmV4dHJhY3RTdGF0dXNGcm9tQXBwRGF0YShhcHBEYXRhKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnW1NDQU4tSURdIGV4dHJhY3RlZCBzdGF0dXM6Jywgc3RhdHVzKTtcblxuICAgICAgICAgIGlmIChzdGF0dXM/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2ludmFsaWQnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlRXJyb3IgPVxuICAgICAgICAgICAgICB0aGlzLnByb3BzWydlcnJvck1lc3NhZ2VzJ10/LmludmFsaWRTdGF0dXMgfHxcbiAgICAgICAgICAgICAgJ0ludmFsaWQgc3RhdHVzIHJlc3BvbnNlLic7XG4gICAgICAgICAgICB0aGlzLmNhblJldHJ5ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoeyBpbnZhbGlkU3RhdHVzOiB0cnVlIH0pO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuaXNTY2FuVmFsaWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3VjY2Vzc01lc3NhZ2UgPSAnVXBsb2FkIHN1Y2Nlc3NmdWwhJztcbiAgICAgICAgICB0aGlzLndpemFyZFN0ZXBzLmZvckVhY2goKHMpID0+IChzLnN0YXR1cyA9ICdjb21wbGV0ZWQnKSk7XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHNbJ2V2ZW50J10pIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHNbJ2V2ZW50J10oYXBwRGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmZpbGVFcnJvciA9ICdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBzY2FuLic7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NjYW4gSUQgZXJyb3I6JywgZXJyKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW5SZXRyeSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXRyeVVwbG9hZCgpIHtcbiAgICB0aGlzLnVwbG9hZFBob3RvKCk7XG4gIH1cblxuICAvLyAtLS0gSGVscGVycyAtLS1cblxuICByZXNldEZvcm0ocHJlc2VydmVFcnJvcjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5maWxlTmFtZUZyb250ID0gJyc7XG4gICAgdGhpcy5maWxlTmFtZUJhY2sgPSAnJztcbiAgICB0aGlzLnBob3RvQmFzZTY0RnJvbnQgPSAnJztcbiAgICB0aGlzLnBob3RvQmFzZTY0QmFjayA9ICcnO1xuICAgIHRoaXMucGhvdG9QcmV2aWV3RnJvbnQgPSAnJztcbiAgICB0aGlzLnBob3RvUHJldmlld0JhY2sgPSAnJztcbiAgICB0aGlzLmZyb250UGhvdG9VcGxvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMuYmFja1Bob3RvVXBsb2FkZWQgPSBmYWxzZTtcbiAgICBpZiAoIXByZXNlcnZlRXJyb3IpIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5zdG9wQ2FtZXJhKCk7XG4gICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLnN1Y2Nlc3NNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmNhblJldHJ5ID0gZmFsc2U7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gZmFsc2U7XG4gIH1cblxuICBjaGVja1VwbG9hZENvbmRpdGlvbigpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9sZElkQ2FyZCAmJiB0aGlzLmZyb250UGhvdG9VcGxvYWRlZCB8fFxuICAgICAgIXRoaXMub2xkSWRDYXJkICYmIHRoaXMuZnJvbnRQaG90b1VwbG9hZGVkICYmIHRoaXMuYmFja1Bob3RvVXBsb2FkZWRcbiAgICApIHtcbiAgICAgIHRoaXMudXBsb2FkUGhvdG8oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RTdGF0dXNGcm9tQXBwRGF0YShhcHBEYXRhOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWFwcERhdGE/LmZpbGxEYXRhIHx8ICF0aGlzLnByb3BzWydzdGVwSWQnXSkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgZmlsbERhdGE6IEFwcERhdGFGaWxsO1xuICAgIHRyeSB7XG4gICAgICBmaWxsRGF0YSA9XG4gICAgICAgIHR5cGVvZiBhcHBEYXRhLmZpbGxEYXRhID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gKEpTT04ucGFyc2UoYXBwRGF0YS5maWxsRGF0YSkgYXMgQXBwRGF0YUZpbGwpXG4gICAgICAgICAgOiBhcHBEYXRhLmZpbGxEYXRhO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tleHRyYWN0U3RhdHVzRnJvbUFwcERhdGFdIEpTT04gcGFyc2UgZXJyb3InLCBlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXAgPSBmaWxsRGF0YS5mbHV4LmZpbmQoXG4gICAgICAoczogYW55KSA9PiBzLnN0ZXBJZCA9PT0gdGhpcy5wcm9wc1snc3RlcElkJ11cbiAgICApO1xuICAgIGlmICghc3RlcD8uc2VjdGlvbnMpIHJldHVybiBudWxsO1xuXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHN0ZXAuc2VjdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgY3RybCBvZiBzZWN0aW9uLmNvbnRyb2xzIHx8IFtdKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlb2YgY3RybC5maWxsVmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgY3RybC5maWxsVmFsdWUudHJpbSgpICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gY3RybC5maWxsVmFsdWUudHJpbSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2FuLWlkLWNvbnRhaW5lclwiPlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGgyIGNsYXNzPVwic2Nhbi1pZC10aXRsZVwiPnt7IHByb3BzW1wibmFtZVwiXSB9fTwvaDI+XG4gIDxwIGNsYXNzPVwic2Nhbi1pZC1kZXNjcmlwdGlvblwiPnt7IHByb3BzW1wiZGVzY3JpcHRpb25cIl0gfX08L3A+XG5cbiAgPCEtLSBTdGVwIFByb2dyZXNzIEluZGljYXRvciAtLT5cbiAgPGRpdiBjbGFzcz1cInN0ZXAtcHJvZ3Jlc3NcIiAqbmdJZj1cIndpemFyZFN0ZXBzLmxlbmd0aCA+IDFcIiByb2xlPVwibGlzdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGVwLXByb2dyZXNzX19pdGVtXCIgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygd2l6YXJkU3RlcHM7IGxldCBpID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiIHJvbGU9XCJsaXN0aXRlbVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtcHJvZ3Jlc3NfX2NpcmNsZVwiXG4gICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic3RlcC5zdGF0dXMgPT09ICdhY3RpdmUnXCJcbiAgICAgICAgICAgW2NsYXNzLmNvbXBsZXRlZF09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIlxuICAgICAgICAgICBbY2xhc3MudXBjb21pbmddPVwic3RlcC5zdGF0dXMgPT09ICd1cGNvbWluZydcIlxuICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cInN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJ1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJzdGVwLnN0YXR1cyA9PT0gJ2FjdGl2ZScgPyAnc3RlcCcgOiBudWxsXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJyA/IGdvVG9TdGVwKGkpIDogbnVsbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIj5jaGVjazwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic3RlcC5zdGF0dXMgIT09ICdjb21wbGV0ZWQnXCI+e3sgaSArIDEgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic3RlcC1wcm9ncmVzc19fbGFiZWxcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2FjdGl2ZSdcIlxuICAgICAgICAgICAgW2NsYXNzLmNvbXBsZXRlZF09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIj5cbiAgICAgICAge3sgc3RlcC5sYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtcHJvZ3Jlc3NfX2Nvbm5lY3RvclwiICpuZ0lmPVwiIWxhc3RcIlxuICAgICAgICAgICBbY2xhc3MuY29tcGxldGVkXT1cInN0ZXAuc3RhdHVzID09PSAnY29tcGxldGVkJ1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gU3RlcCAxOiBDYXJkIFR5cGUgU2VsZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC10eXBlLXN0ZXBcIiAqbmdJZj1cImN1cnJlbnRXaXphcmRTdGVwID09PSAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25zXCIgcm9sZT1cInJhZGlvZ3JvdXBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uXCJcbiAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIm9sZElkQ2FyZCA9PT0gdHJ1ZSAmJiBjYXJkVHlwZVNlbGVjdGVkXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhcmRUeXBlKHRydWUpXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VsZWN0Q2FyZFR5cGUodHJ1ZSlcIlxuICAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJzZWxlY3RDYXJkVHlwZSh0cnVlKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwib2xkSWRDYXJkID09PSB0cnVlICYmIGNhcmRUeXBlU2VsZWN0ZWRcIlxuICAgICAgICAgICB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvb3JpZ2luLWZvcm0vb2xkLWlkLWNhcmQucG5nXCIgYWx0PVwiT2xkIElEIENhcmRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2luZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/Lm9sZENhcmRMYWJlbCB8fCAnT2xkIElEIENhcmQnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC10eXBlLW9wdGlvbl9faGVscGVyXCI+XG4gICAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/Lm9sZENhcmRIZWxwZXIgfHwgJ1NpbmdsZS1zaWRlZCBjYXJkIC0gMSBwaG90byBuZWVkZWQnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10eXBlLW9wdGlvblwiXG4gICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJvbGRJZENhcmQgPT09IGZhbHNlICYmIGNhcmRUeXBlU2VsZWN0ZWRcIlxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2FyZFR5cGUoZmFsc2UpXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VsZWN0Q2FyZFR5cGUoZmFsc2UpXCJcbiAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2VsZWN0Q2FyZFR5cGUoZmFsc2UpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJvbGRJZENhcmQgPT09IGZhbHNlICYmIGNhcmRUeXBlU2VsZWN0ZWRcIlxuICAgICAgICAgICB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWFnZXMvb3JpZ2luLWZvcm0vbmV3LWlkLWNhcmQucG5nXCIgYWx0PVwiTmV3IElEIENhcmRcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2luZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/Lm5ld0NhcmRMYWJlbCB8fCAnTmV3IElEIENhcmQnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC10eXBlLW9wdGlvbl9faGVscGVyXCI+XG4gICAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/Lm5ld0NhcmRIZWxwZXIgfHwgJ0NhcmQgd2l0aCBmcm9udCBhbmQgYmFjayAtIDIgcGhvdG9zIG5lZWRlZCcgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gU3RlcHMgMi0zOiBQaG90byBDYXB0dXJlIC8gVXBsb2FkIC0tPlxuICA8ZGl2IGNsYXNzPVwicGhvdG8tc3RlcFwiICpuZ0lmPVwiKGN1cnJlbnRXaXphcmRTdGVwID09PSAxIHx8IGN1cnJlbnRXaXphcmRTdGVwID09PSAyKSAmJiAhaXNMb2FkaW5nICYmICEoc3VjY2Vzc01lc3NhZ2UgJiYgaXNTY2FuVmFsaWQpXCI+XG5cbiAgICA8IS0tIEJhY2sgQnV0dG9uIC0tPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cImJhY2stYnRuXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICA8bWF0LWljb24+YXJyb3dfYmFjazwvbWF0LWljb24+XG4gICAgICB7eyBjdXJyZW50V2l6YXJkU3RlcCA9PT0gMVxuICAgICAgICAgPyAocHJvcHNbJ2xhYmVscyddPy5jaGFuZ2VDYXJkVHlwZUxhYmVsIHx8ICdDaGFuZ2UgY2FyZCB0eXBlJylcbiAgICAgICAgIDogKHByb3BzWydsYWJlbHMnXT8uYmFja0xhYmVsIHx8ICdCYWNrJykgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gUGhvdG8gUHJldmlldyBNb2RlIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJwaG90by1wcmV2aWV3XCIgKm5nSWY9XCJjdXJyZW50UGhvdG9QcmV2aWV3ICYmICFjYW1lcmFBY3RpdmVcIj5cbiAgICAgIDxwIGNsYXNzPVwicGhvdG8tcHJldmlld19fbGFiZWxcIj57eyBjdXJyZW50U3RlcFNob3J0TGFiZWwgfX08L3A+XG4gICAgICA8aW1nIGNsYXNzPVwicGhvdG8tcHJldmlld19faW1hZ2VcIiBbc3JjXT1cImN1cnJlbnRQaG90b1ByZXZpZXdcIiBbYWx0XT1cImN1cnJlbnRTdGVwU2hvcnRMYWJlbFwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicGhvdG8tcHJldmlld19fYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwicmVzZXRDdXJyZW50UGhvdG8oKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LnJldGFrZUxhYmVsIHx8ICdSZXRha2UnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY29uZmlybVBob3RvKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+Y2hlY2s8L21hdC1pY29uPlxuICAgICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8udXNlUGhvdG9MYWJlbCB8fCAnVXNlIFRoaXMgUGhvdG8nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENhcHR1cmUgTW9kZSAobm8gcGhvdG8geWV0KSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicGhvdG8tY2FwdHVyZVwiICpuZ0lmPVwiIWN1cnJlbnRQaG90b1ByZXZpZXcgJiYgIWNhbWVyYUFjdGl2ZVwiPlxuICAgICAgPHAgY2xhc3M9XCJwaG90by1jYXB0dXJlX19sYWJlbFwiPnt7IGN1cnJlbnRTdGVwTGFiZWwgfX08L3A+XG5cbiAgICAgIDwhLS0gRHJvcCBab25lIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInBob3RvLWNhcHR1cmVfX2Ryb3B6b25lXCJcbiAgICAgICAgICAgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ092ZXJcIlxuICAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRHJvcCB6b25lIGZvciAnICsgY3VycmVudFN0ZXBTaG9ydExhYmVsICsgJyB1cGxvYWQnXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyb3B6b25lLWljb25cIj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICA8cCBjbGFzcz1cImRyb3B6b25lLXRleHRcIj5cbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LmRyYWdEcm9wUHJvbXB0IHx8ICdEcmFnICYgZHJvcCB5b3VyIHBob3RvIGhlcmUsIG9yIHVzZSB0aGUgYnV0dG9ucyBiZWxvdycgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cCBjbGFzcz1cImRyb3B6b25lLWZvcm1hdHNcIj5cbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LmZvcm1hdHNMYWJlbCB8fCAnQWNjZXB0ZWQnIH19OiB7eyB2YWxpZEZvcm1hdHMuam9pbignLCAnKSB9fSAmbWlkZG90O1xuICAgICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8ubWF4U2l6ZUxhYmVsIHx8ICdNYXgnIH19OiB7eyBtYXhGaWxlU2l6ZUtCIH19S0JcbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwicGhvdG8tY2FwdHVyZV9fYWN0aW9uc1wiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIGhpZGRlbiBbYWNjZXB0XT1cInZhbGlkRm9ybWF0cy5qb2luKCcsJylcIiAvPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBjbGFzcz1cImFjdGlvbi1idG5cIj5cbiAgICAgICAgICA8bWF0LWljb24+dXBsb2FkX2ZpbGU8L21hdC1pY29uPlxuICAgICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8udXBsb2FkRmlsZUJ1dHRvblRyYW5zbGF0aW9ucyB8fCAnVXBsb2FkIEZpbGUnIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbkNhbWVyYSgpXCIgY2xhc3M9XCJhY3Rpb24tYnRuXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInByb3BzWydjb25maWcnXS5zaG93VGFrZVBpY3R1cmVCdXR0b24gIT09IGZhbHNlXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnBob3RvX2NhbWVyYTwvbWF0LWljb24+XG4gICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy50YWtlUGljdHVyZUJ1dHRvblRyYW5zbGF0aW9ucyB8fCAnVGFrZSBQaG90bycgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ2FtZXJhIFZpZXdmaW5kZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNhbWVyYS1jb250YWluZXJcIiAqbmdJZj1cImNhbWVyYUFjdGl2ZVwiPlxuICAgICAgPCEtLSBDYW1lcmEgc2VsZWN0b3IgLS0+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJhdmFpbGFibGVDYW1lcmFzLmxlbmd0aCA+IDFcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiY2FtZXJhLXNlbGVjdG9yXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3sgcHJvcHNbJ2xhYmVscyddPy5zZWxlY3RDYW1lcmFMYWJlbCB8fCAnU2VsZWN0IGNhbWVyYScgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgWyh2YWx1ZSldPVwic2VsZWN0ZWRDYW1lcmFJZFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic3dpdGNoQ2FtZXJhKCRldmVudC52YWx1ZSlcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY2FtIG9mIGF2YWlsYWJsZUNhbWVyYXM7IGxldCBpID0gaW5kZXhcIiBbdmFsdWVdPVwiY2FtLmRldmljZUlkXCI+XG4gICAgICAgICAgICB7eyBjYW0ubGFiZWwgfHwgJ0NhbWVyYSAnICsgKGkgKyAxKSB9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYS12aWV3ZmluZGVyXCI+XG4gICAgICAgIDx2aWRlbyAjdmlkZW9FbGVtZW50IGF1dG9wbGF5IHBsYXlzaW5saW5lIGNsYXNzPVwiY2FtZXJhLXZpZGVvXCI+PC92aWRlbz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYS1mbGFzaC1vdmVybGF5XCIgW2NsYXNzLmZsYXNoXT1cInNob3dGbGFzaFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtY29udHJvbHNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cImNsb3NlQ2FtZXJhKClcIiBjbGFzcz1cImNhbWVyYS1jYW5jZWwtYnRuXCI+XG4gICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5jYW5jZWxMYWJlbCB8fCAnQ2FuY2VsJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmFiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjYXB0dXJlQ3VycmVudFBob3RvKClcIiBjbGFzcz1cImNhbWVyYS1jYXB0dXJlLWJ0blwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ2FwdHVyZSAnICsgY3VycmVudFN0ZXBTaG9ydExhYmVsXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnBob3RvX2NhbWVyYTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhLXNwYWNlclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVycm9yIERpc3BsYXkgLS0+XG4gICAgPGRpdiBjbGFzcz1cInBob3RvLXN0ZXBfX2Vycm9yXCIgKm5nSWY9XCJmaWxlRXJyb3JcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIj5cbiAgICAgIDxtYXQtaWNvbj5lcnJvcl9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7IGZpbGVFcnJvciB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uICpuZ0lmPVwiY2FuUmV0cnlcIiAoY2xpY2spPVwicmV0cnlVcGxvYWQoKVwiIGNsYXNzPVwicmV0cnktYnRuXCI+XG4gICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5yZXRyeUxhYmVsIHx8ICdUcnkgQWdhaW4nIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMb2FkaW5nIC8gUHJvY2Vzc2luZyBTdGF0ZSAtLT5cbiAgPGRpdiBjbGFzcz1cInByb2Nlc3Npbmctb3ZlcmxheVwiICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgPHAgY2xhc3M9XCJwcm9jZXNzaW5nLXRleHRcIj5cbiAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8ucHJvY2Vzc2luZ01lc3NhZ2UgfHwgJ1Byb2Nlc3NpbmcgeW91ciBJRCBzY2FuLi4uJyB9fVxuICAgIDwvcD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBTdWNjZXNzIFN0YXRlIC0tPlxuICA8ZGl2IGNsYXNzPVwic2Nhbi1zdWNjZXNzXCIgKm5nSWY9XCJzdWNjZXNzTWVzc2FnZSAmJiBpc1NjYW5WYWxpZFwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJzY2FuLXN1Y2Nlc3NfX2ljb25cIj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxuICAgIDxoMyBjbGFzcz1cInNjYW4tc3VjY2Vzc19fdGl0bGVcIj5cbiAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8uc3VjY2Vzc1RpdGxlIHx8ICdJRCBzY2FuIHN1Y2Nlc3NmdWwnIH19XG4gICAgPC9oMz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXNjYW4taWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXNjYW4taWQvZm9ybWx5LXNjYW4taWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXNjYW4taWQvZm9ybWx5LXNjYW4taWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7QUFnQjdDLE1BQU0sT0FBTyxxQkFDWCxTQUFRLFNBQVM7SUErQ2pCLFlBQ1UsY0FBc0MsRUFDdEMsR0FBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFIQSxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5Q2hDLFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEUsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFDaEMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHNCQUFp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RWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbkRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBTY2FuSWREdG8gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQXBwRGF0YUZpbGwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybXMubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpemFyZFN0ZXAge1xuICBsYWJlbDogc3RyaW5nO1xuICBzdGF0dXM6ICd1cGNvbWluZycgfCAnYWN0aXZlJyB8ICdjb21wbGV0ZWQnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybWx5LXNjYW4taWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LXNjYW4taWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtbHktc2Nhbi1pZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlTY2FuSWRDb21wb25lbnRcbiAgZXh0ZW5kcyBGaWVsZFR5cGVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgZmlsZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZmlsZU5hbWVGcm9udDogc3RyaW5nID0gJyc7XG4gIGZpbGVOYW1lQmFjazogc3RyaW5nID0gJyc7XG4gIHZhbGlkRm9ybWF0czogc3RyaW5nW10gPSBbXTtcbiAgbWF4RmlsZVNpemVLQjogbnVtYmVyID0gMDtcbiAgY2FyZFR5cGVTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBvbGRJZENhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZnJvbnRQaG90b1VwbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGJhY2tQaG90b1VwbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHBob3RvQmFzZTY0RnJvbnQ6IHN0cmluZyA9ICcnO1xuICBwaG90b0Jhc2U2NEJhY2s6IHN0cmluZyA9ICcnO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc3VjY2Vzc01lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBpc1NjYW5WYWxpZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gV2l6YXJkIHN0YXRlXG4gIGN1cnJlbnRXaXphcmRTdGVwOiBudW1iZXIgPSAwO1xuICB3aXphcmRTdGVwczogV2l6YXJkU3RlcFtdID0gW107XG5cbiAgLy8gQ2FtZXJhIG1hbmFnZW1lbnRcbiAgY2FtZXJhQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIGF2YWlsYWJsZUNhbWVyYXM6IE1lZGlhRGV2aWNlSW5mb1tdID0gW107XG4gIHNlbGVjdGVkQ2FtZXJhSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFBob3RvIHByZXZpZXcgKGZ1bGwgZGF0YSBVUkkgZm9yIGltZyBkaXNwbGF5KVxuICBwaG90b1ByZXZpZXdGcm9udDogc3RyaW5nID0gJyc7XG4gIHBob3RvUHJldmlld0JhY2s6IHN0cmluZyA9ICcnO1xuXG4gIC8vIERyYWcgYW5kIGRyb3BcbiAgaXNEcmFnT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIEZsYXNoIGFuaW1hdGlvblxuICBzaG93Rmxhc2g6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBSZXRyeVxuICBjYW5SZXRyeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpIGZpbGVJbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZpZGVvRWxlbWVudCcpIHZpZGVvRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG4gIHZpZGVvU3RyZWFtOiBNZWRpYVN0cmVhbSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXBwRGF0YVNlcnZpY2U6IEFwcGxpY2F0aW9uRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBncm91cCA9IHRoaXMuZm9ybSBhcyBGb3JtR3JvdXA7XG4gICAgZ3JvdXAuYWRkQ29udHJvbCh0aGlzLnByb3BzWydpZGVudGlmaWVyJ10sIHRoaXMuY29udHJvbCk7XG5cbiAgICB0aGlzLnZhbGlkRm9ybWF0cyA9IHRoaXMucHJvcHNbJ2NvbmZpZyddLmFsbG93ZWRGb3JtYXRzPy5zcGxpdCgnLCcpIHx8IFtcbiAgICAgICcuanBnJyxcbiAgICAgICcucG5nJyxcbiAgICBdO1xuICAgIHRoaXMubWF4RmlsZVNpemVLQiA9IHRoaXMucHJvcHNbJ2NvbmZpZyddLm1heEZpbGVTaXplS0IgfHwgMjAwMDtcblxuICAgIGlmICh0aGlzLnByb3BzWydjb25maWcnXS5jb2xsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xJZCA9IHRoaXMucHJvcHNbJ2NvbmZpZyddLmNvbXBvbmVudENvbGxlY3RlZDtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtLmdldChjb250cm9sSWQpPy52YWx1ZSA/PyB0aGlzLm1vZGVsPy5bY29udHJvbElkXTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3ViID0gdGhpcy5mb3JtXG4gICAgICAgIC5nZXQodGhpcy5wcm9wc1snY29uZmlnJ10uY29tcG9uZW50Q29sbGVjdGVkKVxuICAgICAgICA/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5wcm9wc1snY29uZmlnJ10uY29tcG9uZW50Q29sbGVjdGVkKT8udmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRXaXphcmRTdGVwcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdG9wQ2FtZXJhKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXNTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudFBob3RvUHJldmlldygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID09PSAxXG4gICAgICA/IHRoaXMucGhvdG9QcmV2aWV3RnJvbnRcbiAgICAgIDogdGhpcy5waG90b1ByZXZpZXdCYWNrO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRTdGVwTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9PT0gMSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5wcm9wc1snbGFiZWxzJ10/LnVwbG9hZEZyb250UHJvbXB0IHx8XG4gICAgICAgICdQbGVhc2UgdXBsb2FkIHRoZSBmcm9udCBwaG90byBvZiB5b3VyIElEIGNhcmQuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMucHJvcHNbJ2xhYmVscyddPy51cGxvYWRCYWNrUHJvbXB0IHx8XG4gICAgICAnUGxlYXNlIHVwbG9hZCB0aGUgYmFjayBwaG90byBvZiB5b3VyIElEIGNhcmQuJ1xuICAgICk7XG4gIH1cblxuICBnZXQgY3VycmVudFN0ZXBTaG9ydExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzWydsYWJlbHMnXT8uZnJvbnRQaG90b0xhYmVsIHx8ICdGcm9udCBvZiBJRCc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzWydsYWJlbHMnXT8uYmFja1Bob3RvTGFiZWwgfHwgJ0JhY2sgb2YgSUQnO1xuICB9XG5cbiAgLy8gLS0tIFdpemFyZCBTdGVwIE1hbmFnZW1lbnQgLS0tXG5cbiAgcHJpdmF0ZSBpbml0V2l6YXJkU3RlcHMoKSB7XG4gICAgdGhpcy53aXphcmRTdGVwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6XG4gICAgICAgICAgdGhpcy5wcm9wc1snbGFiZWxzJ10/LmNhcmRUeXBlU3RlcExhYmVsIHx8ICdTZWxlY3QgQ2FyZCBUeXBlJyxcbiAgICAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlV2l6YXJkU3RlcHMoKSB7XG4gICAgY29uc3QgZnJvbnRMYWJlbCA9XG4gICAgICB0aGlzLnByb3BzWydsYWJlbHMnXT8uZnJvbnRQaG90b1N0ZXBMYWJlbCB8fCAnRnJvbnQgUGhvdG8nO1xuICAgIGNvbnN0IGJhY2tMYWJlbCA9XG4gICAgICB0aGlzLnByb3BzWydsYWJlbHMnXT8uYmFja1Bob3RvU3RlcExhYmVsIHx8ICdCYWNrIFBob3RvJztcblxuICAgIHRoaXMud2l6YXJkU3RlcHMgPSBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOlxuICAgICAgICAgIHRoaXMucHJvcHNbJ2xhYmVscyddPy5jYXJkVHlwZVN0ZXBMYWJlbCB8fCAnU2VsZWN0IENhcmQgVHlwZScsXG4gICAgICAgIHN0YXR1czogJ2NvbXBsZXRlZCcsXG4gICAgICB9LFxuICAgICAgeyBsYWJlbDogZnJvbnRMYWJlbCwgc3RhdHVzOiAnYWN0aXZlJyB9LFxuICAgIF07XG4gICAgaWYgKCF0aGlzLm9sZElkQ2FyZCkge1xuICAgICAgdGhpcy53aXphcmRTdGVwcy5wdXNoKHsgbGFiZWw6IGJhY2tMYWJlbCwgc3RhdHVzOiAndXBjb21pbmcnIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBOYXZpZ2F0aW9uIC0tLVxuXG4gIGdvQmFjaygpIHtcbiAgICB0aGlzLmNsb3NlQ2FtZXJhKCk7XG4gICAgaWYgKHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDIpIHtcbiAgICAgIC8vIEdvIGJhY2sgdG8gZnJvbnQgcGhvdG8gc3RlcCwgcHJlc2VydmUgZnJvbnQgcGhvdG9cbiAgICAgIHRoaXMud2l6YXJkU3RlcHNbMl0uc3RhdHVzID0gJ3VwY29taW5nJztcbiAgICAgIHRoaXMud2l6YXJkU3RlcHNbMV0uc3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgICB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID0gMTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDEpIHtcbiAgICAgIC8vIEdvIGJhY2sgdG8gY2FyZCB0eXBlIHNlbGVjdGlvbiwgcmVzZXQgZXZlcnl0aGluZ1xuICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgIHRoaXMuY2FyZFR5cGVTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9IDA7XG4gICAgICB0aGlzLmluaXRXaXphcmRTdGVwcygpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBnb1RvU3RlcChzdGVwSW5kZXg6IG51bWJlcikge1xuICAgIGlmIChzdGVwSW5kZXggPCB0aGlzLmN1cnJlbnRXaXphcmRTdGVwKSB7XG4gICAgICB3aGlsZSAodGhpcy5jdXJyZW50V2l6YXJkU3RlcCA+IHN0ZXBJbmRleCkge1xuICAgICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSBDYXJkIFR5cGUgU2VsZWN0aW9uIC0tLVxuXG4gIHNlbGVjdENhcmRUeXBlKGlzT2xkSWRDYXJkOiBib29sZWFuKSB7XG4gICAgdGhpcy5vbGRJZENhcmQgPSBpc09sZElkQ2FyZDtcbiAgICB0aGlzLmNhcmRUeXBlU2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgdGhpcy51cGRhdGVXaXphcmRTdGVwcygpO1xuICAgIHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPSAxO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIC0tLSBGaWxlIFVwbG9hZCAtLS1cblxuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGUgPSBpbnB1dD8uZmlsZXM/LlswXTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc3QgaXNGcm9udCA9IHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDE7XG4gICAgICB0aGlzLnByb2Nlc3NGaWxlKGZpbGUsIGlzRnJvbnQpO1xuICAgIH1cbiAgICAvLyBSZXNldCBpbnB1dCBzbyBzYW1lIGZpbGUgY2FuIGJlIHJlLXNlbGVjdGVkXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0ZpbGUoZmlsZTogRmlsZSwgaXNGcm9udDogYm9vbGVhbikge1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSAnLicgKyBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBmaWxlU2l6ZUtCID0gZmlsZS5zaXplIC8gMTAyNDtcblxuICAgIGlmICghdGhpcy52YWxpZEZvcm1hdHMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID0gKFxuICAgICAgICB0aGlzLnByb3BzWydlcnJvck1lc3NhZ2VzJ10/LmludmFsaWRUeXBlIHx8XG4gICAgICAgIGBJbnZhbGlkIGZpbGUgdHlwZS4gQWxsb3dlZCBmb3JtYXRzIGFyZSAke3RoaXMudmFsaWRGb3JtYXRzLmpvaW4oXG4gICAgICAgICAgJywgJ1xuICAgICAgICApfWBcbiAgICAgICkucmVwbGFjZSgne2Zvcm1hdHN9JywgdGhpcy52YWxpZEZvcm1hdHMuam9pbignLCAnKSk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgaW52YWxpZFR5cGU6IHRydWUgfSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTaXplS0IgPiB0aGlzLm1heEZpbGVTaXplS0IgfHwgZmlsZVNpemVLQiA8IDEpIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID0gKFxuICAgICAgICB0aGlzLnByb3BzWydlcnJvck1lc3NhZ2VzJ10/Lm1heFNpemUgfHxcbiAgICAgICAgYEZpbGUgc2l6ZSBtdXN0IGJlIGJldHdlZW4gMUtCIGFuZCAke3RoaXMubWF4RmlsZVNpemVLQn1LQi5gXG4gICAgICApLnJlcGxhY2UoJ3tzaXplfScsIHRoaXMubWF4RmlsZVNpemVLQi50b1N0cmluZygpKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoeyBpbnZhbGlkU2l6ZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGVFcnJvciA9IG51bGw7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YVVyaSA9IHJlYWRlci5yZXN1bHQ/LnRvU3RyaW5nKCkgfHwgJyc7XG4gICAgICBjb25zdCBiYXNlNjQgPSBkYXRhVXJpLnNwbGl0KCcsJylbMV0gfHwgJyc7XG4gICAgICBpZiAoaXNGcm9udCkge1xuICAgICAgICB0aGlzLmZpbGVOYW1lRnJvbnQgPSBmaWxlLm5hbWU7XG4gICAgICAgIHRoaXMucGhvdG9CYXNlNjRGcm9udCA9IGJhc2U2NDtcbiAgICAgICAgdGhpcy5waG90b1ByZXZpZXdGcm9udCA9IGRhdGFVcmk7XG4gICAgICAgIHRoaXMuZnJvbnRQaG90b1VwbG9hZGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmlsZU5hbWVCYWNrID0gZmlsZS5uYW1lO1xuICAgICAgICB0aGlzLnBob3RvQmFzZTY0QmFjayA9IGJhc2U2NDtcbiAgICAgICAgdGhpcy5waG90b1ByZXZpZXdCYWNrID0gZGF0YVVyaTtcbiAgICAgICAgdGhpcy5iYWNrUGhvdG9VcGxvYWRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIC0tLSBEcmFnIGFuZCBEcm9wIC0tLVxuXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gdHJ1ZTtcbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaXNGcm9udCA9IHRoaXMuY3VycmVudFdpemFyZFN0ZXAgPT09IDE7XG4gICAgICB0aGlzLnByb2Nlc3NGaWxlKGZpbGVzWzBdLCBpc0Zyb250KTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gQ2FtZXJhIC0tLVxuXG4gIGFzeW5jIG9wZW5DYW1lcmEoKSB7XG4gICAgdGhpcy5maWxlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICghbmF2aWdhdG9yLm1lZGlhRGV2aWNlcz8uZ2V0VXNlck1lZGlhKSB7XG4gICAgICB0aGlzLmZpbGVFcnJvciA9XG4gICAgICAgIHRoaXMucHJvcHNbJ2Vycm9yTWVzc2FnZXMnXT8uY2FtZXJhTm90U3VwcG9ydGVkIHx8XG4gICAgICAgICdDYW1lcmEgbm90IHN1cHBvcnRlZCBieSB0aGlzIGRldmljZS4nO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBSZXF1ZXN0IHBlcm1pc3Npb24gZmlyc3QgKGxhYmVscyBhcmUgb25seSBhdmFpbGFibGUgYWZ0ZXIgcGVybWlzc2lvbiBncmFudClcbiAgICAgIGNvbnN0IHRlbXBTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7XG4gICAgICAgIHZpZGVvOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0ZW1wU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2goKHQpID0+IHQuc3RvcCgpKTtcblxuICAgICAgY29uc3QgZGV2aWNlcyA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpO1xuICAgICAgdGhpcy5hdmFpbGFibGVDYW1lcmFzID0gZGV2aWNlcy5maWx0ZXIoXG4gICAgICAgIChkKSA9PiBkLmtpbmQgPT09ICd2aWRlb2lucHV0J1xuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuYXZhaWxhYmxlQ2FtZXJhcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5maWxlRXJyb3IgPVxuICAgICAgICAgIHRoaXMucHJvcHNbJ2Vycm9yTWVzc2FnZXMnXT8ubm9DYW1lcmEgfHxcbiAgICAgICAgICAnTm8gY2FtZXJhIGRldmljZXMgZm91bmQuJztcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRDYW1lcmFJZCA9IHRoaXMuYXZhaWxhYmxlQ2FtZXJhc1swXS5kZXZpY2VJZDtcbiAgICAgIHRoaXMuY2FtZXJhQWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnRDYW1lcmFTdHJlYW0odGhpcy5zZWxlY3RlZENhbWVyYUlkKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID1cbiAgICAgICAgdGhpcy5wcm9wc1snZXJyb3JNZXNzYWdlcyddPy5jYW1lcmFBY2Nlc3MgfHxcbiAgICAgICAgJ1VuYWJsZSB0byBhY2Nlc3MgY2FtZXJhLiBQbGVhc2UgY2hlY2sgcGVybWlzc2lvbnMuJztcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzd2l0Y2hDYW1lcmEoZGV2aWNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RvcENhbWVyYVN0cmVhbSgpO1xuICAgIGF3YWl0IHRoaXMuc3RhcnRDYW1lcmFTdHJlYW0oZGV2aWNlSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdGFydENhbWVyYVN0cmVhbShkZXZpY2VJZDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHtcbiAgICAgICAgdmlkZW86IHsgZGV2aWNlSWQ6IHsgZXhhY3Q6IGRldmljZUlkIH0gfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy52aWRlb1N0cmVhbSA9IHN0cmVhbTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGlmICh0aGlzLnZpZGVvRWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50LnNyY09iamVjdCA9IHN0cmVhbTtcbiAgICAgICAgYXdhaXQgdGhpcy52aWRlb0VsZW1lbnQubmF0aXZlRWxlbWVudC5wbGF5KCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmZpbGVFcnJvciA9XG4gICAgICAgIHRoaXMucHJvcHNbJ2Vycm9yTWVzc2FnZXMnXT8uY2FtZXJhQWNjZXNzIHx8XG4gICAgICAgICdVbmFibGUgdG8gYWNjZXNzIHRoZSBzZWxlY3RlZCBjYW1lcmEuJztcbiAgICAgIHRoaXMuY2FtZXJhQWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wQ2FtZXJhU3RyZWFtKCkge1xuICAgIGlmICh0aGlzLnZpZGVvU3RyZWFtKSB7XG4gICAgICB0aGlzLnZpZGVvU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2goKHRyYWNrKSA9PiB0cmFjay5zdG9wKCkpO1xuICAgICAgdGhpcy52aWRlb1N0cmVhbSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wQ2FtZXJhKCkge1xuICAgIHRoaXMuc3RvcENhbWVyYVN0cmVhbSgpO1xuICAgIHRoaXMuY2FtZXJhQWN0aXZlID0gZmFsc2U7XG4gIH1cblxuICBjbG9zZUNhbWVyYSgpIHtcbiAgICB0aGlzLnN0b3BDYW1lcmEoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjYXB0dXJlQ3VycmVudFBob3RvKCkge1xuICAgIGlmICghdGhpcy52aWRlb0VsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZmlsZUVycm9yID0gJ05vIHZpZGVvIGVsZW1lbnQgYXZhaWxhYmxlLic7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmlkZW8gPSB0aGlzLnZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IHZpZGVvLnZpZGVvV2lkdGg7XG4gICAgY2FudmFzLmhlaWdodCA9IHZpZGVvLnZpZGVvSGVpZ2h0O1xuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjb250ZXh0Py5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cbiAgICAvLyBGbGFzaCBhbmltYXRpb25cbiAgICB0aGlzLnRyaWdnZXJGbGFzaCgpO1xuXG4gICAgY29uc3QgZGF0YVVyaSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCAwLjkpO1xuICAgIGNvbnN0IGJhc2U2NCA9IGRhdGFVcmkuc3BsaXQoJywnKVsxXSB8fCAnJztcblxuICAgIGNvbnN0IGlzRnJvbnQgPSB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID09PSAxO1xuICAgIGlmIChpc0Zyb250KSB7XG4gICAgICB0aGlzLnBob3RvQmFzZTY0RnJvbnQgPSBiYXNlNjQ7XG4gICAgICB0aGlzLnBob3RvUHJldmlld0Zyb250ID0gZGF0YVVyaTtcbiAgICAgIHRoaXMuZnJvbnRQaG90b1VwbG9hZGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5waG90b0Jhc2U2NEJhY2sgPSBiYXNlNjQ7XG4gICAgICB0aGlzLnBob3RvUHJldmlld0JhY2sgPSBkYXRhVXJpO1xuICAgICAgdGhpcy5iYWNrUGhvdG9VcGxvYWRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5zdG9wQ2FtZXJhKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VyRmxhc2goKSB7XG4gICAgdGhpcy5zaG93Rmxhc2ggPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0ZsYXNoID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuXG4gIC8vIC0tLSBQaG90byBQcmV2aWV3IEFjdGlvbnMgLS0tXG5cbiAgY29uZmlybVBob3RvKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRXaXphcmRTdGVwID09PSAxICYmICF0aGlzLm9sZElkQ2FyZCkge1xuICAgICAgLy8gTW92ZSB0byBiYWNrIHBob3RvIHN0ZXBcbiAgICAgIHRoaXMud2l6YXJkU3RlcHNbMV0uc3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gICAgICB0aGlzLndpemFyZFN0ZXBzWzJdLnN0YXR1cyA9ICdhY3RpdmUnO1xuICAgICAgdGhpcy5jdXJyZW50V2l6YXJkU3RlcCA9IDI7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFsbCBwaG90b3MgY29sbGVjdGVkLCB0cmlnZ2VyIHVwbG9hZFxuICAgICAgdGhpcy5jaGVja1VwbG9hZENvbmRpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0Q3VycmVudFBob3RvKCkge1xuICAgIGNvbnN0IGlzRnJvbnQgPSB0aGlzLmN1cnJlbnRXaXphcmRTdGVwID09PSAxO1xuICAgIGlmIChpc0Zyb250KSB7XG4gICAgICB0aGlzLnBob3RvQmFzZTY0RnJvbnQgPSAnJztcbiAgICAgIHRoaXMucGhvdG9QcmV2aWV3RnJvbnQgPSAnJztcbiAgICAgIHRoaXMuZnJvbnRQaG90b1VwbG9hZGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbGVOYW1lRnJvbnQgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5waG90b0Jhc2U2NEJhY2sgPSAnJztcbiAgICAgIHRoaXMucGhvdG9QcmV2aWV3QmFjayA9ICcnO1xuICAgICAgdGhpcy5iYWNrUGhvdG9VcGxvYWRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5maWxlTmFtZUJhY2sgPSAnJztcbiAgICB9XG4gICAgdGhpcy5maWxlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIC0tLSBVcGxvYWQgLS0tXG5cbiAgdXBsb2FkUGhvdG8oKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2FuUmV0cnkgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgY29uc3QgY29tbWFuZDogU2NhbklkRHRvID0ge1xuICAgICAgYXBwSWQ6IHRoaXMucHJvcHNbJ2FwcElkJ10sXG4gICAgICBhcHBEYXRhSWQ6IHRoaXMucHJvcHNbJ2FwcERhdGFJZCddLFxuICAgICAgc3RlcElkOiB0aGlzLnByb3BzWydzdGVwSWQnXSxcbiAgICAgIG9sZElkQ2FyZDogdGhpcy5vbGRJZENhcmQsXG4gICAgICBwaG90b3M6IHRoaXMub2xkSWRDYXJkXG4gICAgICAgID8gW3sgYmFzZTY0OiB0aGlzLnBob3RvQmFzZTY0RnJvbnQgfV1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7IGJhc2U2NDogdGhpcy5waG90b0Jhc2U2NEZyb250IH0sXG4gICAgICAgICAgICB7IGJhc2U2NDogdGhpcy5waG90b0Jhc2U2NEJhY2sgfSxcbiAgICAgICAgICBdLFxuICAgIH07XG5cbiAgICB0aGlzLmFwcERhdGFTZXJ2aWNlLnNjYW5JZChjb21tYW5kKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogYXN5bmMgKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnU2NhbiBJRCByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBhcHBEYXRhID0gYXdhaXQgdGhpcy5hcHBEYXRhU2VydmljZS5nZXRTdGVwcyhcbiAgICAgICAgICB0aGlzLnByb3BzWydhcHBEYXRhSWQnXVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChhcHBEYXRhKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5leHRyYWN0U3RhdHVzRnJvbUFwcERhdGEoYXBwRGF0YSk7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1tTQ0FOLUlEXSBleHRyYWN0ZWQgc3RhdHVzOicsIHN0YXR1cyk7XG5cbiAgICAgICAgICBpZiAoc3RhdHVzPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdpbnZhbGlkJykpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUVycm9yID1cbiAgICAgICAgICAgICAgdGhpcy5wcm9wc1snZXJyb3JNZXNzYWdlcyddPy5pbnZhbGlkU3RhdHVzIHx8XG4gICAgICAgICAgICAgICdJbnZhbGlkIHN0YXR1cyByZXNwb25zZS4nO1xuICAgICAgICAgICAgdGhpcy5jYW5SZXRyeSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgaW52YWxpZFN0YXR1czogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmlzU2NhblZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NNZXNzYWdlID0gJ1VwbG9hZCBzdWNjZXNzZnVsISc7XG4gICAgICAgICAgdGhpcy53aXphcmRTdGVwcy5mb3JFYWNoKChzKSA9PiAocy5zdGF0dXMgPSAnY29tcGxldGVkJykpO1xuICAgICAgICAgIGlmICh0aGlzLnByb3BzWydldmVudCddKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzWydldmVudCddKGFwcERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgdGhpcy5maWxlRXJyb3IgPSAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZyB0aGUgc2Nhbi4nO1xuICAgICAgICBjb25zb2xlLmVycm9yKCdTY2FuIElEIGVycm9yOicsIGVycik7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuUmV0cnkgPSB0cnVlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0cnlVcGxvYWQoKSB7XG4gICAgdGhpcy51cGxvYWRQaG90bygpO1xuICB9XG5cbiAgLy8gLS0tIEhlbHBlcnMgLS0tXG5cbiAgcmVzZXRGb3JtKHByZXNlcnZlRXJyb3I6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuZmlsZU5hbWVGcm9udCA9ICcnO1xuICAgIHRoaXMuZmlsZU5hbWVCYWNrID0gJyc7XG4gICAgdGhpcy5waG90b0Jhc2U2NEZyb250ID0gJyc7XG4gICAgdGhpcy5waG90b0Jhc2U2NEJhY2sgPSAnJztcbiAgICB0aGlzLnBob3RvUHJldmlld0Zyb250ID0gJyc7XG4gICAgdGhpcy5waG90b1ByZXZpZXdCYWNrID0gJyc7XG4gICAgdGhpcy5mcm9udFBob3RvVXBsb2FkZWQgPSBmYWxzZTtcbiAgICB0aGlzLmJhY2tQaG90b1VwbG9hZGVkID0gZmFsc2U7XG4gICAgaWYgKCFwcmVzZXJ2ZUVycm9yKSB7XG4gICAgICB0aGlzLmZpbGVFcnJvciA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuc3RvcENhbWVyYSgpO1xuICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5zdWNjZXNzTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5jYW5SZXRyeSA9IGZhbHNlO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgY2hlY2tVcGxvYWRDb25kaXRpb24oKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5vbGRJZENhcmQgJiYgdGhpcy5mcm9udFBob3RvVXBsb2FkZWQgfHxcbiAgICAgICF0aGlzLm9sZElkQ2FyZCAmJiB0aGlzLmZyb250UGhvdG9VcGxvYWRlZCAmJiB0aGlzLmJhY2tQaG90b1VwbG9hZGVkXG4gICAgKSB7XG4gICAgICB0aGlzLnVwbG9hZFBob3RvKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0U3RhdHVzRnJvbUFwcERhdGEoYXBwRGF0YTogYW55KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFhcHBEYXRhPy5maWxsRGF0YSB8fCAhdGhpcy5wcm9wc1snc3RlcElkJ10pIHJldHVybiBudWxsO1xuXG4gICAgbGV0IGZpbGxEYXRhOiBBcHBEYXRhRmlsbDtcbiAgICB0cnkge1xuICAgICAgZmlsbERhdGEgPVxuICAgICAgICB0eXBlb2YgYXBwRGF0YS5maWxsRGF0YSA9PT0gJ3N0cmluZydcbiAgICAgICAgICA/IChKU09OLnBhcnNlKGFwcERhdGEuZmlsbERhdGEpIGFzIEFwcERhdGFGaWxsKVxuICAgICAgICAgIDogYXBwRGF0YS5maWxsRGF0YTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbZXh0cmFjdFN0YXR1c0Zyb21BcHBEYXRhXSBKU09OIHBhcnNlIGVycm9yJywgZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGVwID0gZmlsbERhdGEuZmx1eC5maW5kKFxuICAgICAgKHM6IGFueSkgPT4gcy5zdGVwSWQgPT09IHRoaXMucHJvcHNbJ3N0ZXBJZCddXG4gICAgKTtcbiAgICBpZiAoIXN0ZXA/LnNlY3Rpb25zKSByZXR1cm4gbnVsbDtcblxuICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzdGVwLnNlY3Rpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGN0cmwgb2Ygc2VjdGlvbi5jb250cm9scyB8fCBbXSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdHlwZW9mIGN0cmwuZmlsbFZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgIGN0cmwuZmlsbFZhbHVlLnRyaW0oKSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIGN0cmwuZmlsbFZhbHVlLnRyaW0oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Nhbi1pZC1jb250YWluZXJcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxoMiBjbGFzcz1cInNjYW4taWQtdGl0bGVcIj57eyBwcm9wc1tcIm5hbWVcIl0gfX08L2gyPlxuICA8cCBjbGFzcz1cInNjYW4taWQtZGVzY3JpcHRpb25cIj57eyBwcm9wc1tcImRlc2NyaXB0aW9uXCJdIH19PC9wPlxuXG4gIDwhLS0gU3RlcCBQcm9ncmVzcyBJbmRpY2F0b3IgLS0+XG4gIDxkaXYgY2xhc3M9XCJzdGVwLXByb2dyZXNzXCIgKm5nSWY9XCJ3aXphcmRTdGVwcy5sZW5ndGggPiAxXCIgcm9sZT1cImxpc3RcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1wcm9ncmVzc19faXRlbVwiICpuZ0Zvcj1cImxldCBzdGVwIG9mIHdpemFyZFN0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIiByb2xlPVwibGlzdGl0ZW1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXByb2dyZXNzX19jaXJjbGVcIlxuICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInN0ZXAuc3RhdHVzID09PSAnYWN0aXZlJ1wiXG4gICAgICAgICAgIFtjbGFzcy5jb21wbGV0ZWRdPVwic3RlcC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXCJcbiAgICAgICAgICAgW2NsYXNzLnVwY29taW5nXT1cInN0ZXAuc3RhdHVzID09PSAndXBjb21pbmcnXCJcbiAgICAgICAgICAgW2NsYXNzLmNsaWNrYWJsZV09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwic3RlcC5zdGF0dXMgPT09ICdhY3RpdmUnID8gJ3N0ZXAnIDogbnVsbFwiXG4gICAgICAgICAgIChjbGljayk9XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgPyBnb1RvU3RlcChpKSA6IG51bGxcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwic3RlcC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXCI+Y2hlY2s8L21hdC1pY29uPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInN0ZXAuc3RhdHVzICE9PSAnY29tcGxldGVkJ1wiPnt7IGkgKyAxIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cInN0ZXAtcHJvZ3Jlc3NfX2xhYmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic3RlcC5zdGF0dXMgPT09ICdhY3RpdmUnXCJcbiAgICAgICAgICAgIFtjbGFzcy5jb21wbGV0ZWRdPVwic3RlcC5zdGF0dXMgPT09ICdjb21wbGV0ZWQnXCI+XG4gICAgICAgIHt7IHN0ZXAubGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXByb2dyZXNzX19jb25uZWN0b3JcIiAqbmdJZj1cIiFsYXN0XCJcbiAgICAgICAgICAgW2NsYXNzLmNvbXBsZXRlZF09XCJzdGVwLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCdcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFN0ZXAgMTogQ2FyZCBUeXBlIFNlbGVjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1zdGVwXCIgKm5nSWY9XCJjdXJyZW50V2l6YXJkU3RlcCA9PT0gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uc1wiIHJvbGU9XCJyYWRpb2dyb3VwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10eXBlLW9wdGlvblwiXG4gICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJvbGRJZENhcmQgPT09IHRydWUgJiYgY2FyZFR5cGVTZWxlY3RlZFwiXG4gICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXJkVHlwZSh0cnVlKVwiXG4gICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlbGVjdENhcmRUeXBlKHRydWUpXCJcbiAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2VsZWN0Q2FyZFR5cGUodHJ1ZSk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIm9sZElkQ2FyZCA9PT0gdHJ1ZSAmJiBjYXJkVHlwZVNlbGVjdGVkXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL29yaWdpbi1mb3JtL29sZC1pZC1jYXJkLnBuZ1wiIGFsdD1cIk9sZCBJRCBDYXJkXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5vbGRDYXJkTGFiZWwgfHwgJ09sZCBJRCBDYXJkJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2hlbHBlclwiPlxuICAgICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5vbGRDYXJkSGVscGVyIHx8ICdTaW5nbGUtc2lkZWQgY2FyZCAtIDEgcGhvdG8gbmVlZGVkJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25cIlxuICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwib2xkSWRDYXJkID09PSBmYWxzZSAmJiBjYXJkVHlwZVNlbGVjdGVkXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhcmRUeXBlKGZhbHNlKVwiXG4gICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlbGVjdENhcmRUeXBlKGZhbHNlKVwiXG4gICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNlbGVjdENhcmRUeXBlKGZhbHNlKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwib2xkSWRDYXJkID09PSBmYWxzZSAmJiBjYXJkVHlwZVNlbGVjdGVkXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1hZ2VzL29yaWdpbi1mb3JtL25ldy1pZC1jYXJkLnBuZ1wiIGFsdD1cIk5ldyBJRCBDYXJkXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLXR5cGUtb3B0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5uZXdDYXJkTGFiZWwgfHwgJ05ldyBJRCBDYXJkJyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtdHlwZS1vcHRpb25fX2hlbHBlclwiPlxuICAgICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5uZXdDYXJkSGVscGVyIHx8ICdDYXJkIHdpdGggZnJvbnQgYW5kIGJhY2sgLSAyIHBob3RvcyBuZWVkZWQnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIFN0ZXBzIDItMzogUGhvdG8gQ2FwdHVyZSAvIFVwbG9hZCAtLT5cbiAgPGRpdiBjbGFzcz1cInBob3RvLXN0ZXBcIiAqbmdJZj1cIihjdXJyZW50V2l6YXJkU3RlcCA9PT0gMSB8fCBjdXJyZW50V2l6YXJkU3RlcCA9PT0gMikgJiYgIWlzTG9hZGluZyAmJiAhKHN1Y2Nlc3NNZXNzYWdlICYmIGlzU2NhblZhbGlkKVwiPlxuXG4gICAgPCEtLSBCYWNrIEJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJiYWNrLWJ0blwiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxuICAgICAge3sgY3VycmVudFdpemFyZFN0ZXAgPT09IDFcbiAgICAgICAgID8gKHByb3BzWydsYWJlbHMnXT8uY2hhbmdlQ2FyZFR5cGVMYWJlbCB8fCAnQ2hhbmdlIGNhcmQgdHlwZScpXG4gICAgICAgICA6IChwcm9wc1snbGFiZWxzJ10/LmJhY2tMYWJlbCB8fCAnQmFjaycpIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8IS0tIFBob3RvIFByZXZpZXcgTW9kZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicGhvdG8tcHJldmlld1wiICpuZ0lmPVwiY3VycmVudFBob3RvUHJldmlldyAmJiAhY2FtZXJhQWN0aXZlXCI+XG4gICAgICA8cCBjbGFzcz1cInBob3RvLXByZXZpZXdfX2xhYmVsXCI+e3sgY3VycmVudFN0ZXBTaG9ydExhYmVsIH19PC9wPlxuICAgICAgPGltZyBjbGFzcz1cInBob3RvLXByZXZpZXdfX2ltYWdlXCIgW3NyY109XCJjdXJyZW50UGhvdG9QcmV2aWV3XCIgW2FsdF09XCJjdXJyZW50U3RlcFNob3J0TGFiZWxcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInBob3RvLXByZXZpZXdfX2FjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cInJlc2V0Q3VycmVudFBob3RvKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5yZXRha2VMYWJlbCB8fCAnUmV0YWtlJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm1QaG90bygpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmNoZWNrPC9tYXQtaWNvbj5cbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LnVzZVBob3RvTGFiZWwgfHwgJ1VzZSBUaGlzIFBob3RvJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDYXB0dXJlIE1vZGUgKG5vIHBob3RvIHlldCkgLS0+XG4gICAgPGRpdiBjbGFzcz1cInBob3RvLWNhcHR1cmVcIiAqbmdJZj1cIiFjdXJyZW50UGhvdG9QcmV2aWV3ICYmICFjYW1lcmFBY3RpdmVcIj5cbiAgICAgIDxwIGNsYXNzPVwicGhvdG8tY2FwdHVyZV9fbGFiZWxcIj57eyBjdXJyZW50U3RlcExhYmVsIH19PC9wPlxuXG4gICAgICA8IS0tIERyb3AgWm9uZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwaG90by1jYXB0dXJlX19kcm9wem9uZVwiXG4gICAgICAgICAgIFtjbGFzcy5kcmFnb3Zlcl09XCJpc0RyYWdPdmVyXCJcbiAgICAgICAgICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Ryb3Agem9uZSBmb3IgJyArIGN1cnJlbnRTdGVwU2hvcnRMYWJlbCArICcgdXBsb2FkJ1wiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkcm9wem9uZS1pY29uXCI+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgPHAgY2xhc3M9XCJkcm9wem9uZS10ZXh0XCI+XG4gICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5kcmFnRHJvcFByb21wdCB8fCAnRHJhZyAmIGRyb3AgeW91ciBwaG90byBoZXJlLCBvciB1c2UgdGhlIGJ1dHRvbnMgYmVsb3cnIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJkcm9wem9uZS1mb3JtYXRzXCI+XG4gICAgICAgICAge3sgcHJvcHNbJ2xhYmVscyddPy5mb3JtYXRzTGFiZWwgfHwgJ0FjY2VwdGVkJyB9fToge3sgdmFsaWRGb3JtYXRzLmpvaW4oJywgJykgfX0gJm1pZGRvdDtcbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/Lm1heFNpemVMYWJlbCB8fCAnTWF4JyB9fToge3sgbWF4RmlsZVNpemVLQiB9fUtCXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInBob3RvLWNhcHR1cmVfX2FjdGlvbnNcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiBoaWRkZW4gW2FjY2VwdF09XCJ2YWxpZEZvcm1hdHMuam9pbignLCcpXCIgLz5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgY2xhc3M9XCJhY3Rpb24tYnRuXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnVwbG9hZF9maWxlPC9tYXQtaWNvbj5cbiAgICAgICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LnVwbG9hZEZpbGVCdXR0b25UcmFuc2xhdGlvbnMgfHwgJ1VwbG9hZCBGaWxlJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5DYW1lcmEoKVwiIGNsYXNzPVwiYWN0aW9uLWJ0blwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9wc1snY29uZmlnJ10uc2hvd1Rha2VQaWN0dXJlQnV0dG9uICE9PSBmYWxzZVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5waG90b19jYW1lcmE8L21hdC1pY29uPlxuICAgICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8udGFrZVBpY3R1cmVCdXR0b25UcmFuc2xhdGlvbnMgfHwgJ1Rha2UgUGhvdG8nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENhbWVyYSBWaWV3ZmluZGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtY29udGFpbmVyXCIgKm5nSWY9XCJjYW1lcmFBY3RpdmVcIj5cbiAgICAgIDwhLS0gQ2FtZXJhIHNlbGVjdG9yIC0tPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiYXZhaWxhYmxlQ2FtZXJhcy5sZW5ndGggPiAxXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImNhbWVyYS1zZWxlY3RvclwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7IHByb3BzWydsYWJlbHMnXT8uc2VsZWN0Q2FtZXJhTGFiZWwgfHwgJ1NlbGVjdCBjYW1lcmEnIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cInNlbGVjdGVkQ2FtZXJhSWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInN3aXRjaENhbWVyYSgkZXZlbnQudmFsdWUpXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGNhbSBvZiBhdmFpbGFibGVDYW1lcmFzOyBsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImNhbS5kZXZpY2VJZFwiPlxuICAgICAgICAgICAge3sgY2FtLmxhYmVsIHx8ICdDYW1lcmEgJyArIChpICsgMSkgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtdmlld2ZpbmRlclwiPlxuICAgICAgICA8dmlkZW8gI3ZpZGVvRWxlbWVudCBhdXRvcGxheSBwbGF5c2lubGluZSBjbGFzcz1cImNhbWVyYS12aWRlb1wiPjwvdmlkZW8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYW1lcmEtZmxhc2gtb3ZlcmxheVwiIFtjbGFzcy5mbGFzaF09XCJzaG93Rmxhc2hcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FtZXJhLWNvbnRyb2xzXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJjbG9zZUNhbWVyYSgpXCIgY2xhc3M9XCJjYW1lcmEtY2FuY2VsLWJ0blwiPlxuICAgICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8uY2FuY2VsTGFiZWwgfHwgJ0NhbmNlbCcgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2FwdHVyZUN1cnJlbnRQaG90bygpXCIgY2xhc3M9XCJjYW1lcmEtY2FwdHVyZS1idG5cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NhcHR1cmUgJyArIGN1cnJlbnRTdGVwU2hvcnRMYWJlbFwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5waG90b19jYW1lcmE8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbWVyYS1zcGFjZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBFcnJvciBEaXNwbGF5IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJwaG90by1zdGVwX19lcnJvclwiICpuZ0lmPVwiZmlsZUVycm9yXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCI+XG4gICAgICA8bWF0LWljb24+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb24+XG4gICAgICA8c3Bhbj57eyBmaWxlRXJyb3IgfX08L3NwYW4+XG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdJZj1cImNhblJldHJ5XCIgKGNsaWNrKT1cInJldHJ5VXBsb2FkKClcIiBjbGFzcz1cInJldHJ5LWJ0blwiPlxuICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgIHt7IHByb3BzWydsYWJlbHMnXT8ucmV0cnlMYWJlbCB8fCAnVHJ5IEFnYWluJyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gTG9hZGluZyAvIFByb2Nlc3NpbmcgU3RhdGUgLS0+XG4gIDxkaXYgY2xhc3M9XCJwcm9jZXNzaW5nLW92ZXJsYXlcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDxwIGNsYXNzPVwicHJvY2Vzc2luZy10ZXh0XCI+XG4gICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LnByb2Nlc3NpbmdNZXNzYWdlIHx8ICdQcm9jZXNzaW5nIHlvdXIgSUQgc2Nhbi4uLicgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuXG4gIDwhLS0gU3VjY2VzcyBTdGF0ZSAtLT5cbiAgPGRpdiBjbGFzcz1cInNjYW4tc3VjY2Vzc1wiICpuZ0lmPVwic3VjY2Vzc01lc3NhZ2UgJiYgaXNTY2FuVmFsaWRcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwic2Nhbi1zdWNjZXNzX19pY29uXCI+Y2hlY2tfY2lyY2xlPC9tYXQtaWNvbj5cbiAgICA8aDMgY2xhc3M9XCJzY2FuLXN1Y2Nlc3NfX3RpdGxlXCI+XG4gICAgICB7eyBwcm9wc1snbGFiZWxzJ10/LnN1Y2Nlc3NUaXRsZSB8fCAnSUQgc2NhbiBzdWNjZXNzZnVsJyB9fVxuICAgIDwvaDM+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
package/esm2022/lib/formly/formly-validate-contact-info/formly-validate-contact-info.component.mjs
CHANGED
|
@@ -55,7 +55,8 @@ export class FormlyValidateContactInfoComponent extends BaseFormlyStepComponent
|
|
|
55
55
|
this.control.updateValueAndValidity();
|
|
56
56
|
}
|
|
57
57
|
if (this.stepData.config.collected) {
|
|
58
|
-
const
|
|
58
|
+
const controlId = this.stepData.config.componentCollected;
|
|
59
|
+
const value = this.form.get(controlId)?.value ?? this.model?.[controlId];
|
|
59
60
|
this.control.setValue(value);
|
|
60
61
|
this.form
|
|
61
62
|
.get(this.stepData.config.componentCollected)
|
|
@@ -121,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
121
122
|
type: Component,
|
|
122
123
|
args: [{ selector: 'app-formly-validate-contact-info', template: "<div class=\"component-text-field\">\n <div *ngIf=\"!(sent | async); else otpTemplate\">\n <mat-form-field class=\"full-width\">\n <mat-label>\n {{ isEmail ? props[\"labels\"].emailLabel : props[\"labels\"].phoneLabel }}\n </mat-label>\n <input\n matInput\n type=\"text\"\n [formControl]=\"control\"\n [readonly]=\"stepData.config.collected\"\n />\n </mat-form-field>\n <div\n *ngIf=\"\n control.invalid &&\n (control.dirty || control.touched) &&\n control.hasError('required')\n \"\n class=\"alert alert-danger\"\n >\n {{\n isEmail\n ? props[\"labels\"].emailRequiredLabel\n : props[\"labels\"].phoneRequiredLabel\n }}\n </div>\n <div\n *ngIf=\"\n control.invalid &&\n (control.dirty || control.touched) &&\n !control.hasError('required')\n \"\n class=\"alert alert-danger\"\n >\n {{\n isEmail\n ? props[\"labels\"].emailErrorLabel\n : props[\"labels\"].phoneErrorLabel\n }}\n </div>\n <button\n mat-button\n type=\"button\"\n [ngStyle]=\"otpButtonStyle\"\n (click)=\"sendOtp()\"\n >\n {{ buttonText }}\n </button>\n </div>\n</div>\n\n<ng-template #otpTemplate>\n <mat-form-field class=\"full-width\">\n <mat-label>\n {{ props[\"labels\"].otpLabel }}\n </mat-label>\n <input matInput type=\"text\" [formControl]=\"otp\" />\n </mat-form-field>\n <button\n mat-button\n type=\"button\"\n *ngIf=\"!(otpValidated | async)\"\n [ngStyle]=\"otpButtonStyle\"\n (click)=\"validateOtp()\"\n >\n {{ props[\"labels\"].otpButtonLabel }}\n </button>\n</ng-template>\n" }]
|
|
123
124
|
}], ctorParameters: () => [{ type: i1.OtpService }, { type: i2.DialogService }, { type: i0.ChangeDetectorRef }] });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL2Zvcm1seS9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvL2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEdBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQU9yRSxNQUFNLE9BQU8sa0NBQ1gsU0FBUSx1QkFBdUI7SUFhL0IsWUFDVSxVQUFzQixFQUN0QixNQUFxQixFQUM3QixHQUFzQjtRQUV0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFKSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFadkIsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ3hELFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFD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LFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUMzRCxDQUFDO2dCQUNILENBQUM7YUFDRixDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQzsrR0FuSVUsa0NBQWtDO21HQUFsQyxrQ0FBa0MsK0ZDbkIvQyxzdERBcUVBOzs0RkRsRGEsa0NBQWtDO2tCQUw5QyxTQUFTOytCQUNFLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT25Jbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3RwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL290cC5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmx1eFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybXMubW9kZWwnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsS2V5cyB9IGZyb20gJy4uLy4uL2VudW1zL2xhYmVsLmtleXMnO1xuaW1wb3J0IHsgQmFzZUZvcm1seVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlRm9ybWx5U3RlcENvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seVZhbGlkYXRlQ29udGFjdEluZm9Db21wb25lbnRcbiAgZXh0ZW5kcyBCYXNlRm9ybWx5U3RlcENvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBwcml2YXRlIF9vdHBCdXR0b25TdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgb3RwOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICBzZW50OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgaXNFbWFpbDogYm9vbGVhbjtcbiAgcG9wTWVzc2FnZUtleXMgPSBMYWJlbEtleXMucG9wTWVzc2FnZXM7XG4gIG90cFZhbGlkYXRlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIGJ1dHRvblRleHQ6ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3RwU2VydmljZTogT3RwU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nU2VydmljZSxcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGNkcik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gIG92ZXJyaWRlIG9uUGFnZVNlbGVjdGVkKCkge1xuICAgIGNvbnN0IHN0eWxlT2JqID0gdGhpcy5wcm9wcz8uWydkZXNpZ24nXT8uWycuYnV0dG9uLW90cGFjdGlvbiddO1xuICAgIGlmIChzdHlsZU9iaikge1xuICAgICAgY29uc3QgY2FtZWxDYXNlU3R5bGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgIE9iamVjdC5rZXlzKHN0eWxlT2JqKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgY29uc3QgY2FtZWxLZXkgPSBrZXkucmVwbGFjZSgvLShbYS16XSkvZywgKGcpID0+IGdbMV0udG9VcHBlckNhc2UoKSk7XG4gICAgICAgIGNhbWVsQ2FzZVN0eWxlW2NhbWVsS2V5XSA9IHN0eWxlT2JqW2tleV07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX290cEJ1dHRvblN0eWxlID0gY2FtZWxDYXNlU3R5bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX290cEJ1dHRvblN0eWxlID0ge307XG4gICAgfVxuICAgIGNvbnN0IGdyb3VwID0gdGhpcy5mb3JtIGFzIEZvcm1Hcm91cDtcbiAgICBncm91cC5hZGRDb250cm9sKFxuICAgICAgdGhpcy5zdGVwRGF0YS5zZWN0aW9uc1swXS5jb250cm9sc1swXS5pZGVudGlmaWVyLFxuICAgICAgdGhpcy5jb250cm9sXG4gICAgKTtcblxuICAgIGlmICh0aGlzLnN0ZXBEYXRhKSB7XG4gICAgICBpZiAodGhpcy5zdGVwRGF0YS50eXBlID09IEZsdXhUeXBlLkVtYWlsKSB7XG4gICAgICAgIHRoaXMuaXNFbWFpbCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSk7XG4gICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnN0ZXBEYXRhLnR5cGUgPT0gRmx1eFR5cGUuUGhvbmUpIHtcbiAgICAgICAgdGhpcy5pc0VtYWlsID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICAgICdeKFxcXFwrNDB8NDB8MCk/KDdbMC04XVswLTldfDJbMC05XXsyfXwzWzAtOV17Mn0pKFtcXFxcc1xcXFwuLV0/XFxcXGR7M30pezJ9JCdcbiAgICAgICAgICApLFxuICAgICAgICBdKTtcbiAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc3RlcERhdGEuY29uZmlnLmNvbGxlY3RlZCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybS5nZXQoXG4gICAgICAgICAgdGhpcy5zdGVwRGF0YS5jb25maWcuY29tcG9uZW50Q29sbGVjdGVkXG4gICAgICAgICk/LnZhbHVlO1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVxuICAgICAgICAgIC5nZXQodGhpcy5zdGVwRGF0YS5jb25maWcuY29tcG9uZW50Q29sbGVjdGVkKVxuICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5zdGVwRGF0YS5jb25maWcuY29tcG9uZW50Q29sbGVjdGVkKT8udmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYnV0dG9uVGV4dCA9XG4gICAgICAgIHRoaXMuc3RlcERhdGEudHlwZSA9PT0gRmx1eFR5cGUuRW1haWxcbiAgICAgICAgICA/IHRoaXMucHJvcHNbJ2xhYmVscyddPy5lbWFpbEJ1dHRvbkxhYmVsXG4gICAgICAgICAgOiB0aGlzLnByb3BzWydsYWJlbHMnXT8ucGhvbmVCdXR0b25MYWJlbDtcbiAgICB9XG4gIH1cblxuICBnZXQgb3RwQnV0dG9uU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHRoaXMuX290cEJ1dHRvblN0eWxlO1xuICB9XG5cbiAgc2VuZE90cCgpIHtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWxpZCkge1xuICAgICAgdGhpcy5vdHBTZXJ2aWNlXG4gICAgICAgIC5nZW5lcmF0ZSh7XG4gICAgICAgICAgcGhvbmVOdW1iZXI6XG4gICAgICAgICAgICB0aGlzLnN0ZXBEYXRhLnR5cGUgPT0gRmx1eFR5cGUuUGhvbmUgPyB0aGlzLmNvbnRyb2wudmFsdWUgOiBudWxsLFxuICAgICAgICAgIGVtYWlsQWRkcmVzczpcbiAgICAgICAgICAgIHRoaXMuc3RlcERhdGEudHlwZSA9PSBGbHV4VHlwZS5FbWFpbCA/IHRoaXMuY29udHJvbC52YWx1ZSA6IG51bGwsXG4gICAgICAgICAgYXBwRGF0YUlkOiB0aGlzLmFwcERhdGFJZCxcbiAgICAgICAgICBzdGVwSWQ6IHRoaXMuc3RlcERhdGEuaWRlbnRpZmllcixcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uub2sgJiYgcmVzcG9uc2UuYm9keSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICB0aGlzLnNlbnQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZU90cCgpIHtcbiAgICB0aGlzLm90cC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICBpZiAodGhpcy5vdHAudmFsaWQpIHtcbiAgICAgIHRoaXMub3RwU2VydmljZVxuICAgICAgICAudmFsaWRhdGUoe1xuICAgICAgICAgIG90cENvZGU6IHRoaXMub3RwLnZhbHVlLFxuICAgICAgICAgIGFwcERhdGFJZDogdGhpcy5hcHBEYXRhSWQsXG4gICAgICAgICAgc3RlcElkOiB0aGlzLnN0ZXBEYXRhLmlkZW50aWZpZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3BvbnNlLmJvZHkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2cucG9wU3VjY2Vzcyh0aGlzLnByb3BzWydsYWJlbHMnXS5vdHBTdWNjZXNzTGFiZWwpO1xuICAgICAgICAgICAgICB0aGlzLm90cFZhbGlkYXRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLm9uRXZlbnQoJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nLnBvcEVycm9yKHRoaXMucHJvcHNbJ2xhYmVscyddLm90cEVycm9yTGFiZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbXBvbmVudC10ZXh0LWZpZWxkXCI+XG4gIDxkaXYgKm5nSWY9XCIhKHNlbnQgfCBhc3luYyk7IGVsc2Ugb3RwVGVtcGxhdGVcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XG4gICAgICA8bWF0LWxhYmVsPlxuICAgICAgICB7eyBpc0VtYWlsID8gcHJvcHNbXCJsYWJlbHNcIl0uZW1haWxMYWJlbCA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lTGFiZWwgfX1cbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICBbcmVhZG9ubHldPVwic3RlcERhdGEuY29uZmlnLmNvbGxlY3RlZFwiXG4gICAgICAvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkgJiZcbiAgICAgICAgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICA+XG4gICAgICB7e1xuICAgICAgICBpc0VtYWlsXG4gICAgICAgICAgPyBwcm9wc1tcImxhYmVsc1wiXS5lbWFpbFJlcXVpcmVkTGFiZWxcbiAgICAgICAgICA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lUmVxdWlyZWRMYWJlbFxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBjb250cm9sLmludmFsaWQgJiZcbiAgICAgICAgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSAmJlxuICAgICAgICAhY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICA+XG4gICAgICB7e1xuICAgICAgICBpc0VtYWlsXG4gICAgICAgICAgPyBwcm9wc1tcImxhYmVsc1wiXS5lbWFpbEVycm9yTGFiZWxcbiAgICAgICAgICA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lRXJyb3JMYWJlbFxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtuZ1N0eWxlXT1cIm90cEJ1dHRvblN0eWxlXCJcbiAgICAgIChjbGljayk9XCJzZW5kT3RwKClcIlxuICAgID5cbiAgICAgIHt7IGJ1dHRvblRleHQgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdHBUZW1wbGF0ZT5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBwcm9wc1tcImxhYmVsc1wiXS5vdHBMYWJlbCB9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFtmb3JtQ29udHJvbF09XCJvdHBcIiAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgICpuZ0lmPVwiIShvdHBWYWxpZGF0ZWQgfCBhc3luYylcIlxuICAgIFtuZ1N0eWxlXT1cIm90cEJ1dHRvblN0eWxlXCJcbiAgICAoY2xpY2spPVwidmFsaWRhdGVPdHAoKVwiXG4gID5cbiAgICB7eyBwcm9wc1tcImxhYmVsc1wiXS5vdHBCdXR0b25MYWJlbCB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vcmlnaW4tZm9ybS9zcmMvbGliL2Zvcm1seS9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvL2Zvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3JpZ2luLWZvcm0vc3JjL2xpYi9mb3JtbHkvZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEdBSVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQU9yRSxNQUFNLE9BQU8sa0NBQ1gsU0FBUSx1QkFBdUI7SUFhL0IsWUFDVSxVQUFzQixFQUN0QixNQUFxQixFQUM3QixHQUFzQjtRQUV0QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFKSCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFadkIsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ3hELFlBQU8sR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFD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Q0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzNELENBQUM7Z0JBQ0gsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDOytHQWxJVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQywrRkNuQi9DLHN0REFxRUE7OzRGRGxEYSxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0Usa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPdHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3RwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGbHV4VHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3Jtcy5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFiZWxLZXlzIH0gZnJvbSAnLi4vLi4vZW51bXMvbGFiZWwua2V5cyc7XG5pbXBvcnQgeyBCYXNlRm9ybWx5U3RlcENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2VGb3JtbHlTdGVwQ29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZvcm1seS12YWxpZGF0ZS1jb250YWN0LWluZm8nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LXZhbGlkYXRlLWNvbnRhY3QtaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtbHktdmFsaWRhdGUtY29udGFjdC1pbmZvLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5VmFsaWRhdGVDb250YWN0SW5mb0NvbXBvbmVudFxuICBleHRlbmRzIEJhc2VGb3JtbHlTdGVwQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgX290cEJ1dHRvblN0eWxlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICBvdHA6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gIHNlbnQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBpc0VtYWlsOiBib29sZWFuO1xuICBwb3BNZXNzYWdlS2V5cyA9IExhYmVsS2V5cy5wb3BNZXNzYWdlcztcbiAgb3RwVmFsaWRhdGVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgYnV0dG9uVGV4dDogJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdHBTZXJ2aWNlOiBPdHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dTZXJ2aWNlLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoY2RyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHt9XG5cbiAgb3ZlcnJpZGUgb25QYWdlU2VsZWN0ZWQoKSB7XG4gICAgY29uc3Qgc3R5bGVPYmogPSB0aGlzLnByb3BzPy5bJ2Rlc2lnbiddPy5bJy5idXR0b24tb3RwYWN0aW9uJ107XG4gICAgaWYgKHN0eWxlT2JqKSB7XG4gICAgICBjb25zdCBjYW1lbENhc2VTdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMoc3R5bGVPYmopLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBjb25zdCBjYW1lbEtleSA9IGtleS5yZXBsYWNlKC8tKFthLXpdKS9nLCAoZykgPT4gZ1sxXS50b1VwcGVyQ2FzZSgpKTtcbiAgICAgICAgY2FtZWxDYXNlU3R5bGVbY2FtZWxLZXldID0gc3R5bGVPYmpba2V5XTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fb3RwQnV0dG9uU3R5bGUgPSBjYW1lbENhc2VTdHlsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3RwQnV0dG9uU3R5bGUgPSB7fTtcbiAgICB9XG4gICAgY29uc3QgZ3JvdXAgPSB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwO1xuICAgIGdyb3VwLmFkZENvbnRyb2woXG4gICAgICB0aGlzLnN0ZXBEYXRhLnNlY3Rpb25zWzBdLmNvbnRyb2xzWzBdLmlkZW50aWZpZXIsXG4gICAgICB0aGlzLmNvbnRyb2xcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuc3RlcERhdGEpIHtcbiAgICAgIGlmICh0aGlzLnN0ZXBEYXRhLnR5cGUgPT0gRmx1eFR5cGUuRW1haWwpIHtcbiAgICAgICAgdGhpcy5pc0VtYWlsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc3RlcERhdGEudHlwZSA9PSBGbHV4VHlwZS5QaG9uZSkge1xuICAgICAgICB0aGlzLmlzRW1haWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1xuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFxuICAgICAgICAgICAgJ14oXFxcXCs0MHw0MHwwKT8oN1swLThdWzAtOV18MlswLTldezJ9fDNbMC05XXsyfSkoW1xcXFxzXFxcXC4tXT9cXFxcZHszfSl7Mn0kJ1xuICAgICAgICAgICksXG4gICAgICAgIF0pO1xuICAgICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5zdGVwRGF0YS5jb25maWcuY29sbGVjdGVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xJZCA9IHRoaXMuc3RlcERhdGEuY29uZmlnLmNvbXBvbmVudENvbGxlY3RlZDtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm0uZ2V0KGNvbnRyb2xJZCk/LnZhbHVlID8/IHRoaXMubW9kZWw/Lltjb250cm9sSWRdO1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZm9ybVxuICAgICAgICAgIC5nZXQodGhpcy5zdGVwRGF0YS5jb25maWcuY29tcG9uZW50Q29sbGVjdGVkKVxuICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5zdGVwRGF0YS5jb25maWcuY29tcG9uZW50Q29sbGVjdGVkKT8udmFsdWVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYnV0dG9uVGV4dCA9XG4gICAgICAgIHRoaXMuc3RlcERhdGEudHlwZSA9PT0gRmx1eFR5cGUuRW1haWxcbiAgICAgICAgICA/IHRoaXMucHJvcHNbJ2xhYmVscyddPy5lbWFpbEJ1dHRvbkxhYmVsXG4gICAgICAgICAgOiB0aGlzLnByb3BzWydsYWJlbHMnXT8ucGhvbmVCdXR0b25MYWJlbDtcbiAgICB9XG4gIH1cblxuICBnZXQgb3RwQnV0dG9uU3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHRoaXMuX290cEJ1dHRvblN0eWxlO1xuICB9XG5cbiAgc2VuZE90cCgpIHtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWxpZCkge1xuICAgICAgdGhpcy5vdHBTZXJ2aWNlXG4gICAgICAgIC5nZW5lcmF0ZSh7XG4gICAgICAgICAgcGhvbmVOdW1iZXI6XG4gICAgICAgICAgICB0aGlzLnN0ZXBEYXRhLnR5cGUgPT0gRmx1eFR5cGUuUGhvbmUgPyB0aGlzLmNvbnRyb2wudmFsdWUgOiBudWxsLFxuICAgICAgICAgIGVtYWlsQWRkcmVzczpcbiAgICAgICAgICAgIHRoaXMuc3RlcERhdGEudHlwZSA9PSBGbHV4VHlwZS5FbWFpbCA/IHRoaXMuY29udHJvbC52YWx1ZSA6IG51bGwsXG4gICAgICAgICAgYXBwRGF0YUlkOiB0aGlzLmFwcERhdGFJZCxcbiAgICAgICAgICBzdGVwSWQ6IHRoaXMuc3RlcERhdGEuaWRlbnRpZmllcixcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uub2sgJiYgcmVzcG9uc2UuYm9keSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICB0aGlzLnNlbnQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZU90cCgpIHtcbiAgICB0aGlzLm90cC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICBpZiAodGhpcy5vdHAudmFsaWQpIHtcbiAgICAgIHRoaXMub3RwU2VydmljZVxuICAgICAgICAudmFsaWRhdGUoe1xuICAgICAgICAgIG90cENvZGU6IHRoaXMub3RwLnZhbHVlLFxuICAgICAgICAgIGFwcERhdGFJZDogdGhpcy5hcHBEYXRhSWQsXG4gICAgICAgICAgc3RlcElkOiB0aGlzLnN0ZXBEYXRhLmlkZW50aWZpZXIsXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3BvbnNlLmJvZHkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2cucG9wU3VjY2Vzcyh0aGlzLnByb3BzWydsYWJlbHMnXS5vdHBTdWNjZXNzTGFiZWwpO1xuICAgICAgICAgICAgICB0aGlzLm90cFZhbGlkYXRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLm9uRXZlbnQoJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nLnBvcEVycm9yKHRoaXMucHJvcHNbJ2xhYmVscyddLm90cEVycm9yTGFiZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbXBvbmVudC10ZXh0LWZpZWxkXCI+XG4gIDxkaXYgKm5nSWY9XCIhKHNlbnQgfCBhc3luYyk7IGVsc2Ugb3RwVGVtcGxhdGVcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XG4gICAgICA8bWF0LWxhYmVsPlxuICAgICAgICB7eyBpc0VtYWlsID8gcHJvcHNbXCJsYWJlbHNcIl0uZW1haWxMYWJlbCA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lTGFiZWwgfX1cbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICBbcmVhZG9ubHldPVwic3RlcERhdGEuY29uZmlnLmNvbGxlY3RlZFwiXG4gICAgICAvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgIChjb250cm9sLmRpcnR5IHx8IGNvbnRyb2wudG91Y2hlZCkgJiZcbiAgICAgICAgY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICA+XG4gICAgICB7e1xuICAgICAgICBpc0VtYWlsXG4gICAgICAgICAgPyBwcm9wc1tcImxhYmVsc1wiXS5lbWFpbFJlcXVpcmVkTGFiZWxcbiAgICAgICAgICA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lUmVxdWlyZWRMYWJlbFxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBjb250cm9sLmludmFsaWQgJiZcbiAgICAgICAgKGNvbnRyb2wuZGlydHkgfHwgY29udHJvbC50b3VjaGVkKSAmJlxuICAgICAgICAhY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICA+XG4gICAgICB7e1xuICAgICAgICBpc0VtYWlsXG4gICAgICAgICAgPyBwcm9wc1tcImxhYmVsc1wiXS5lbWFpbEVycm9yTGFiZWxcbiAgICAgICAgICA6IHByb3BzW1wibGFiZWxzXCJdLnBob25lRXJyb3JMYWJlbFxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtYnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtuZ1N0eWxlXT1cIm90cEJ1dHRvblN0eWxlXCJcbiAgICAgIChjbGljayk9XCJzZW5kT3RwKClcIlxuICAgID5cbiAgICAgIHt7IGJ1dHRvblRleHQgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdHBUZW1wbGF0ZT5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBwcm9wc1tcImxhYmVsc1wiXS5vdHBMYWJlbCB9fVxuICAgIDwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFtmb3JtQ29udHJvbF09XCJvdHBcIiAvPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgICpuZ0lmPVwiIShvdHBWYWxpZGF0ZWQgfCBhc3luYylcIlxuICAgIFtuZ1N0eWxlXT1cIm90cEJ1dHRvblN0eWxlXCJcbiAgICAoY2xpY2spPVwidmFsaWRhdGVPdHAoKVwiXG4gID5cbiAgICB7eyBwcm9wc1tcImxhYmVsc1wiXS5vdHBCdXR0b25MYWJlbCB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -10898,7 +10898,8 @@ class FormlyScanIdComponent extends FieldType {
|
|
|
10898
10898
|
];
|
|
10899
10899
|
this.maxFileSizeKB = this.props['config'].maxFileSizeKB || 2000;
|
|
10900
10900
|
if (this.props['config'].collected) {
|
|
10901
|
-
const
|
|
10901
|
+
const controlId = this.props['config'].componentCollected;
|
|
10902
|
+
const value = this.form.get(controlId)?.value ?? this.model?.[controlId];
|
|
10902
10903
|
this.control.setValue(value);
|
|
10903
10904
|
this.valueChangesSub = this.form
|
|
10904
10905
|
.get(this.props['config'].componentCollected)
|
|
@@ -11798,7 +11799,8 @@ class FormlyValidateContactInfoComponent extends BaseFormlyStepComponent {
|
|
|
11798
11799
|
this.control.updateValueAndValidity();
|
|
11799
11800
|
}
|
|
11800
11801
|
if (this.stepData.config.collected) {
|
|
11801
|
-
const
|
|
11802
|
+
const controlId = this.stepData.config.componentCollected;
|
|
11803
|
+
const value = this.form.get(controlId)?.value ?? this.model?.[controlId];
|
|
11802
11804
|
this.control.setValue(value);
|
|
11803
11805
|
this.form
|
|
11804
11806
|
.get(this.stepData.config.componentCollected)
|