tango-app-ui-analyse-traffic 3.4.0-beta.13 → 3.4.0-beta.14
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.
|
@@ -487,7 +487,7 @@ export class NobUploadComponent {
|
|
|
487
487
|
if (this.NOBdata.length > 0) {
|
|
488
488
|
this.convertedData = {
|
|
489
489
|
bills: this.NOBdata.map((element) => ({
|
|
490
|
-
storeCode: element.storeCode,
|
|
490
|
+
storeCode: element.storeCode ? element.storeCode : element.storeId,
|
|
491
491
|
nobDate: this.datePipe.transform(element.nobDate, "yyyy-MM-dd"),
|
|
492
492
|
nobCount: Number(element.nobCount),
|
|
493
493
|
})),
|
|
@@ -559,4 +559,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
559
559
|
type: ViewChild,
|
|
560
560
|
args: ["inputFile"]
|
|
561
561
|
}] } });
|
|
562
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9iLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL25vYi11cGxvYWQvbm9iLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL25vYi11cGxvYWQvbm9iLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUlULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQVEvQixNQUFNLE9BQU8sa0JBQWtCO0lBZ0JuQjtJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBQ0M7SUFBMkI7SUFDM0I7SUFyQmMsU0FBUyxDQUFhO0lBQzdCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLGFBQWEsQ0FBTTtJQUVuQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDL0IsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixVQUFVLENBQU07SUFDaEIsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDbkIsWUFDVSxPQUF1QixFQUN2QixFQUFnQixFQUNoQixFQUFxQixFQUNyQixZQUFzQixFQUN2QixFQUFzQixFQUNyQixRQUFrQixFQUFTLFFBQXdCLEVBQ25ELFlBQTBCO1FBTjFCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDaEIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ25ELGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFDSixRQUFRLENBQUs7SUFDYixRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxjQUFjO1lBQ3JCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xELFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtxQkFDeEMsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO3FCQUNyQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDN0IsRUFBQyxLQUFLLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUM7WUFDakYsRUFBQyxLQUFLLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUM7WUFDaEYsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUM7WUFDL0UsRUFBQyxLQUFLLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUM7U0FDN0UsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QixlQUFlLENBQU07SUFDckIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLE9BQU8sR0FBRSxJQUFJLENBQUM7SUFDZCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRSxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRSxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFFLENBQUMsQ0FBQztRQUNmLElBQUksR0FBRyxHQUFRO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtpQkFDN0IsTUFBTSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2lCQUNyQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRSxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RCxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0M7UUFDRCxJQUFJLENBQUMsT0FBTzthQUNULFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDaEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLEVBQUUsSUFBSSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNwQixJQUFJLENBQUMsT0FBTyxHQUFFLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQzFCLElBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxhQUFhLEtBQUssS0FBSyxFQUFDO3dCQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQzt3QkFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7cUJBQzdCO3lCQUFNO3dCQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO3dCQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztxQkFDM0I7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7b0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRSxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUUsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFDLENBQUM7UUFDTixDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVTtRQUNqQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUN6QixNQUFNLFVBQVUsR0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUMzQyxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDcEQsSUFBSSxFQUFFLFFBQVE7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILE1BQU0sU0FBUyxHQUFXLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWpELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTtvQkFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztvQkFDckQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN0QixPQUFPO2lCQUNSO2dCQUVELE1BQU0sS0FBSyxHQUFtQixRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQ25CLHdEQUF3RCxDQUN6RCxDQUFDO29CQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN4QixPQUFPO2lCQUNSO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO29CQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7aUJBQzFCO2dCQUNELE1BQU0sT0FBTyxHQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7Z0JBQzVCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUc7b0JBQ25CLEtBQUssRUFBRSxRQUFRO3lCQUNaLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO3dCQUNoQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7d0JBQ3BCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsS0FBVSxFQUFFLEVBQUU7NEJBQzFDLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDM0IsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtnQ0FDekQsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQzs2QkFDOUM7aUNBQU07Z0NBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsdUNBQXVDLENBQUMsQ0FBQzs2QkFDaEU7NEJBQ0QsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7Z0NBQzdDLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7NkJBQ2xDOzRCQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7d0JBQzFCLENBQUMsQ0FBQyxDQUFDO3dCQUNILE9BQU87NEJBQ0wsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUM7NEJBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxDQUFDOzRCQUM5RCxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzt5QkFDbEMsQ0FBQztvQkFDSixDQUFDLENBQUM7eUJBQ0QsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztvQkFDekUsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtpQkFDbEMsQ0FBQztnQkFDRixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7YUFFekI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQywrQkFBK0IsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvRDtZQUNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUN6QztJQUNILENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUM1QixRQUFRLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUNoRCxDQUFDO1FBQ0YsT0FBTyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZLENBQU07SUFFbEIsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUUsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPO2FBQ1QsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFO29CQUNyQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFBO29CQUNsQyx3QkFBd0I7b0JBQ3hCLGtEQUFrRDtvQkFDbEQsNkRBQTZEO29CQUM3RCxzREFBc0Q7b0JBQ3RELEtBQUs7b0JBQ0wsaUJBQWlCO29CQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUUsSUFBSSxDQUFDO29CQUNuQixVQUFVLENBQUMsR0FBRSxFQUFFO3dCQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNSO3FCQUFNO29CQUNMLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLENBQUM7aUJBQ3JEO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsYUFBYSxHQUFFLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRSxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0I7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxVQUFrQjtRQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNSLEtBQUssRUFBRSwyQkFBMkI7Z0JBQ2xDLElBQUksRUFBRSwwREFBMEQ7Z0JBQ2hFLElBQUksRUFBRSxTQUFTO2dCQUNmLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLGlCQUFpQixFQUFFLGVBQWU7Z0JBQ2xDLGdCQUFnQixFQUFFLHFCQUFxQjtnQkFDdkMseUJBQXlCO2dCQUN6QixpQkFBaUIsRUFBRSxLQUFLO2FBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUMxQjtxQkFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2lCQUN0QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxHQUFHLEdBQUc7WUFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNO2lCQUM3QixNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7aUJBQ3JDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNyQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPO2FBQ1QsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNoQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQy9CLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsRUFBRSxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQztvQkFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO29CQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7b0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2lCQUMxQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO29CQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztpQkFDckI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDakUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRztZQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07aUJBQzdCLE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztpQkFDckMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU87YUFDVCxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQ2hCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxFQUFFLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFO29CQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO29CQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUM7b0JBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO29CQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUNqRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsR0FBVSxFQUFFLENBQUM7SUFFMUIsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2RCxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDeEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QixJQUFJLE1BQU0sRUFBRTtnQkFDVixVQUFVLENBQUMsR0FBRSxFQUFFO29CQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQyxFQUFDLElBQUksQ0FBQyxDQUFBO2FBQ1I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZELFFBQVEsRUFBRSxJQUFJO1lBQ2QsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUM3QyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxFQUFFO2dCQUNWLFVBQVUsQ0FBQyxHQUFFLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixDQUFDLEVBQUMsSUFBSSxDQUFDLENBQUE7YUFDUjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxHQUFRO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxTQUFTLEdBQStCLEVBQUUsQ0FBQztJQUMzQyxXQUFXLEdBQVEsRUFBRSxDQUFDO0lBQ3RCLFNBQVMsQ0FBQyxHQUFRO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN2QixJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pCLHNFQUFzRTtnQkFDdEUsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVyxDQUFNO0lBQ2pCLFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLEdBQUcsR0FBUTtZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU07aUJBQzdCLE1BQU0sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztpQkFDckMsR0FBRyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RELEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDdkIsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzFCO2FBQU07WUFDTCxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNoQixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxPQUFPO2FBQ1QsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1lBQ3RCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxFQUFFO29CQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUMvQixHQUFHLEVBQ0gsdUJBQXVCLENBQ3hCLENBQUM7aUJBQ0g7cUJBQU07aUJBQ047WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDakUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixjQUFjLENBQUMsR0FBUTtRQUNyQixHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDNUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDekMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO29CQUM1QixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUM7b0JBQy9ELFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztpQkFDbkMsQ0FBQyxDQUFDO2dCQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7YUFDbkMsQ0FBQztZQUVGLElBQUksQ0FBQyxPQUFPO2lCQUNULGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNuQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMvQixTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7b0JBQ2pCLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFO3dCQUMzQixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO3dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDekIsVUFBVSxDQUFDLEdBQUUsRUFBRTs0QkFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ3BCLENBQUMsRUFBQyxJQUFJLENBQUMsQ0FBQTt3QkFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztxQkFDbkI7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztxQkFDckQ7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzRSxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFPO1FBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBR0QsWUFBWSxHQUFHLGdCQUFnQixDQUFDO0lBQ2hDLFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQztJQUM3QyxVQUFVO1FBQ1IsTUFBTSxHQUFHLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3hFLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7WUFDcEIsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RCxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLEtBQUssWUFBWSxPQUFPLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsb0NBQW9DLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUM7d0dBemhCVSxrQkFBa0I7NEZBQWxCLGtCQUFrQix5Q0FGbEIsQ0FBQyxRQUFRLENBQUMsa0lDdEJ2Qiw2anZCQWdSTTs7NEZEeFBPLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZixDQUFDLFFBQVEsQ0FBQztzUkFHRyxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLXNoYXJlZFwiO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gXCJ4bHN4XCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWRkTm9iQ29tcG9uZW50IH0gZnJvbSBcIi4uL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IFN3YWwgZnJvbSBcInN3ZWV0YWxlcnQyXCI7XHJcbmltcG9ydCB7IEV4Y2VsU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9leGNlbC5zZXJ2aWNlXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1ub2ItdXBsb2FkXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9ub2ItdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9ub2ItdXBsb2FkLmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9iVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dEZpbGVcIikgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnZlcnRlZERhdGE6IGFueTtcclxuXHJcbiAgaXRlbXNQZXJQYWdlID0gMTA7XHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHRvdGFsSXRlbXMgPSAxO1xyXG4gIHBhZ2luYXRpb25TaXplczogbnVtYmVyW10gPSBbXTtcclxuICBwYWdlU2l6ZSA9IDEwO1xyXG4gIG9mZnNldDogbnVtYmVyID0gMTtcclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHN0b3JlSWRhcnJheTogYW55O1xyXG4gIGNhcmRsb2FkaW5nID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogVHJhZmZpY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRzOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUscHJpdmF0ZSBwYWdlSW5mbzpQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4Y2VsU2VydmljZTogRXhjZWxTZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIHVzZXJUeXBlOmFueTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3M/LmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCk7XHJcbiAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCAne30nKSBcclxuICAgICAgdGhpcy51c2VyVHlwZSA9IHVzZXJJbmZvO1xyXG4gICAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpe1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZSgnTk9CJylcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oJycpXHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgIHt0aXRsZTonVGFuZ28gRXllJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlfSxcclxuICAgIHt0aXRsZTonVGFuZ28gRXllJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWV9LFxyXG4gICAge3RpdGxlOidUcmFmZmljJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlfSxcclxuICAgIHt0aXRsZTonVHJhZmZpYycsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlfSxcclxuICAgIF0pXHJcbiAgfVxyXG4gIGRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICBkYXRhVGFibGVTaG93MSA9IGZhbHNlO1xyXG4gIGRhdGFDYWxjdWxhdGlvbjogYW55O1xyXG4gIG5vRGF0YSA9IGZhbHNlO1xyXG4gIGxvYWRpbmcgPXRydWU7XHJcbiAgZ2V0Tk9CRGF0YSgpIHtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICB0aGlzLmxpbWl0ID0xMDtcclxuICAgIHRoaXMub2Zmc2V0ID0xO1xyXG4gICAgbGV0IG9iajogYW55ID0ge1xyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckRhdGE/LmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAuZmlsdGVyKChzdG9yZTogYW55KSA9PiBzdG9yZS5jaGVja2VkKVxyXG4gICAgICAgIC5tYXAoKHN0b3JlOiBhbnkpID0+IHN0b3JlLnN0b3JlSWQpLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgPyB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCA6IFwiXCIsXHJcbiAgICAgIGxpbWl0OiAxMCxcclxuICAgICAgb2Zmc2V0OiAxLFxyXG4gICAgICBpc0V4cG9ydDogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkgIT09IFwiXCIpIHtcclxuICAgICAgb2JqLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldE5PQkRhdGEob2JqKVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhQ2FsY3VsYXRpb24gPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhZ2luYXRpb25TaXplcygpO1xyXG4gICAgICAgICAgICBpZihyZXM/LmRhdGE/LmluaXRpYWxJbnNlcnQgPT09IGZhbHNlKXtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgYmluYXJ5RGF0YTogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJpbmFyeURhdGEsIHtcclxuICAgICAgICAgIHR5cGU6IFwiYmluYXJ5XCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2hlZXROYW1lOiBzdHJpbmcgPSB3b3JrYm9vay5TaGVldE5hbWVzWzBdO1xyXG5cclxuICAgICAgICBpZiAoc2hlZXROYW1lICE9PSBcIk5PQlwiKSB7XHJcbiAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZS5cIik7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0RmlsZUlucHV0KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzaGVldDogWExTWC5Xb3JrU2hlZXQgPSB3b3JrYm9vay5TaGVldHNbc2hlZXROYW1lXTtcclxuICAgICAgICBjb25zdCBqc29uRGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbihzaGVldCwgeyBoZWFkZXI6IDEgfSk7XHJcbiAgICAgICAgaWYgKGpzb25EYXRhLmxlbmd0aCA+IDEwMCkge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICBcIkZpbGUgY29udGFpbnMgdG9vIG1hbnkgcm93cy4gUGxlYXNlIGxpbWl0IHRvIDEwMCByb3dzLlwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNhcmRsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaGVhZGVyczogYW55ID0ganNvbkRhdGFbMF07XHJcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIGNvbnN0IGRhdGFSb3dzID0ganNvbkRhdGEuc2xpY2UoMSk7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0ZWREYXRhID0ge1xyXG4gICAgICAgICAgYmlsbHM6IGRhdGFSb3dzXHJcbiAgICAgICAgICAgIC5tYXAoKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgICBoZWFkZXJzLmZvckVhY2goKGhlYWRlcjogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2VsbFZhbHVlID0gcm93W2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXIgPT09IFwiTk9CRGF0ZVwiICYmIHR5cGVvZiBjZWxsVmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlID0gdGhpcy5jb252ZXJ0RXhjZWxEYXRlKGNlbGxWYWx1ZSk7IFxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGBQbGVhc2UgdXBsb2FkIGEgdmFsaWQgTk9CIERhdGUgRm9ybWF0YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyID09PSBcIlN0b3JlSWRcIiAmJiBjZWxsVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICBjZWxsVmFsdWUgPSBjZWxsVmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG9ialtoZWFkZXJdID0gY2VsbFZhbHVlO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBzdG9yZUNvZGU6IG9ialtcIlN0b3JlSWRcIl0sXHJcbiAgICAgICAgICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShvYmpbXCJOT0JEYXRlXCJdLCBcInl5eXktTU0tZGRcIiksXHJcbiAgICAgICAgICAgICAgICBub2JDb3VudDogTnVtYmVyKG9ialtcIk5PQkNvdW50XCJdKSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuZmlsdGVyKChiaWxsOiBhbnkpID0+IGJpbGwubm9iRGF0ZSAhPT0gbnVsbCAmJiBiaWxsLm5vYkNvdW50ICE9PSBudWxsKSwgLy8gRmlsdGVyIHJvd3Mgd2l0aCBudWxsIHZhbHVlc1xyXG4gICAgICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5kYXRhTm9iRnVuY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoYFBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlOiAke2Vycm9yfWApOyAgXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XHJcbiAgfVxyXG4gIHJlc2V0RmlsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRGaWxlICYmIHRoaXMuaW5wdXRGaWxlLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnOyBcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEV4Y2VsRGF0ZShleGNlbERhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBiYXNlRGF0ZSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpO1xyXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBiYXNlRGF0ZS5nZXRUaW1lKCkgKyAoZXhjZWxEYXRlIC0gMSkgKiA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIHJldHVybiBjb3JyZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdO1xyXG4gIH1cclxuICB0YWJsZUhlYWRlcnM6IGFueTtcclxuXHJcbiAgZGF0YU5vYkZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubG9hZGluZyA9dHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Tk9CRGF0YUxpc3QodGhpcy5jb252ZXJ0ZWREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwICYmIHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gcmVzcG9uc2UubWVzc2FnZVxyXG4gICAgICAgICAgICAgIC8vIC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vICAgY29uc3Qgc3RhdHVzID0gaXRlbS5jb2RlID09PSAyMDAgPyBcIuKchVwiIDogXCLinYxcIjtcclxuICAgICAgICAgICAgICAvLyAgIGNvbnN0IHN0b3JlSW5mbyA9IGl0ZW0uc3RvcmVJZCA/IGAke2l0ZW0uc3RvcmVJZH1gIDogXCJcIjtcclxuICAgICAgICAgICAgICAvLyAgIHJldHVybiBgJHtzdGF0dXN9ICR7c3RvcmVJbmZvfTogJHtpdGVtLm1lc3NhZ2V9YDtcclxuICAgICAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgICAgIC8vIC5qb2luKFwiPGJyPlwiKTtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoYWxsTWVzc2FnZXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICAgICAgfSwxMDAwKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiVW5leHBlY3RlZCByZXNwb25zZSBmb3JtYXRcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9ZmFsc2U7XHJcbiAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVyci5lcnJvci5lcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHNldFBhZ2luYXRpb25TaXplcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsSXRlbXMgPiAxMCkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saW1pdCA9IHRoaXMucGFnaW5hdGlvblNpemVzWzBdO1xyXG4gIH1cclxuICByZXNldEVkaXRpbmdGbGFncygpIHtcclxuICAgIHRoaXMudGVzdE5vYkRhdGEuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5pc0VkaXRpbmdbcm93LnN0b3JlSWRdID0gZmFsc2U7XHJcbiAgICAgIHJvdy5pc1VwZGF0ZWQgPSBmYWxzZTtcclxuICAgICAgcm93LmlzVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHByZXZpb3VzT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLm9mZnNldCA9IE51bWJlcihwYWdlT2Zmc2V0KTtcclxuICAgIHRoaXMubGltaXQgPSAxMDtcclxuICAgIGlmICh0aGlzLmlzUGFnZURpcnR5KSB7XHJcbiAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgdGl0bGU6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLlwiLFxyXG4gICAgICAgIHRleHQ6IFwiRG8geW91IHdhbnQgdG8gc2F2ZSB0aGVtIGJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgcGFnZT9cIixcclxuICAgICAgICBpY29uOiBcIndhcm5pbmdcIixcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogXCIjMzA4NWQ2XCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiI2QzM1wiLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlllcywgc2F2ZSBpdCFcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIk5vLCBkaXNjYXJkIGNoYW5nZXNcIixcclxuICAgICAgICAvLyBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVWYWx1ZSgpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0RWRpdGluZ0ZsYWdzKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZXNldEVkaXRpbmdGbGFncygpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVzZXRFZGl0aW5nRmxhZ3MoKTtcclxuICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaFBhZ2VEYXRhKCkge1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzXHJcbiAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID8gdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgOiBcIlwiLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgaXNFeHBvcnQ6IGZhbHNlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldE5PQkRhdGEob2JqKVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhQ2FsY3VsYXRpb24gPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmRsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIGRhdGFcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgIHRoaXMubGltaXQgPSBOdW1iZXIocGFnZVNpemUpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzXHJcbiAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID8gdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgOiBcIlwiLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgaXNFeHBvcnQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Tk9CRGF0YShvYmopXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uY29kZSA9PT0gMjAwICYmIHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFDYWxjdWxhdGlvbiA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgZGF0YVwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRlZERhdGE6IGFueVtdID0gW107XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkU2luZ2xlU3RvcmVOT0IoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTm9iQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcImxnXCIsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnR5cGUgPSBcImFkZFwiO1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgdGhpcy5nZXROT0JEYXRhKCk7XHJcbiAgICAgICAgfSwxMDAwKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTm9iQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcImxnXCIsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnR5cGUgPSBcInJldXBsb2FkXCI7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICB9LDEwMDApXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRJbnB1dFZpc2libGUob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhb2JqLmlzVXBkYXRlZCAmJiB0aGlzLmlzRWRpdGluZ1tvYmouc3RvcmVJZF07XHJcbiAgfVxyXG4gIGdldFJlYWRPbmx5VmlzaWJsZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iai5pc1VwZGF0ZWQgfHwgIXRoaXMuaXNFZGl0aW5nW29iai5zdG9yZUlkXTtcclxuICB9XHJcbiAgaXNFZGl0aW5nOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIHRlc3ROb2JEYXRhOiBhbnkgPSBbXTtcclxuICBlZGl0VmFsdWUob2JqOiBhbnkpIHtcclxuICAgIHRoaXMudGVzdE5vYkRhdGEgPSBvYmo7XHJcbiAgICBvYmouZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS5pc1VwZGF0ZWQpIHtcclxuICAgICAgICAvLyB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJSb3cgaXMgYWxyZWFkeSB1cGRhdGVkLiBObyBhY3Rpb24gbmVlZGVkLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0VkaXRpbmdbZWxlLnN0b3JlSWRdID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJbnB1dFZpc2libGUoZWxlKTtcclxuICAgICAgIHRoaXMuc2F2ZUJ0bkVuYmFsZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VhcmNoVmFsdWU6IGFueTtcclxuICBzZWFyY2hEYXRhKCkge1xyXG4gICAgdGhpcy5nZXROT0JEYXRhKCk7XHJcbiAgfVxyXG4gIGV4cG9ydFhMU1goKSB7XHJcbiAgICBsZXQgb2JqOiBhbnkgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckRhdGE/LmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgIC5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpXHJcbiAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCA/IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50IDogXCJcIixcclxuICAgICAgaXNFeHBvcnQ6IHRydWUsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkgIT09IFwiXCIpIHtcclxuICAgICAgb2JqLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCk7XHJcbiAgICAgIG9iai5saW1pdCA9IHRoaXMubGltaXQ7XHJcbiAgICAgIG9iai5vZmZzZXQgPSB0aGlzLm9mZnNldDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9iai5saW1pdCA9IDEwMDtcclxuICAgICAgb2JqLm9mZnNldCA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXROT0JEYXRhRXhwb3J0KG9iailcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWxTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShcclxuICAgICAgICAgICAgICByZXMsXHJcbiAgICAgICAgICAgICAgXCJCaWxsaW5nIFN1bW1hcnkgVGFibGVcIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIGRhdGFcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIE5PQmRhdGE6IGFueSA9IFtdO1xyXG4gIGlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgc2F2ZUJ0bkVuYmFsZSA9IGZhbHNlO1xyXG4gIHVwZGF0ZU5vYkNvdW50KG9iajogYW55KSB7XHJcbiAgICBvYmoubm9iQ291bnQgPSBvYmoubm9iQ291bnQ7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuaXNQYWdlRGlydHkgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlQnRuRW5iYWxlID0gdHJ1ZTtcclxuICAgIHRoaXMuTk9CZGF0YS5wdXNoKHsgLi4ub2JqIH0pO1xyXG4gIH1cclxuICBzYXZlVmFsdWUoKSB7XHJcbiAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSBbXTtcclxuICAgIGlmICh0aGlzLk5PQmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7XHJcbiAgICAgICAgYmlsbHM6IHRoaXMuTk9CZGF0YS5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gKHtcclxuICAgICAgICAgIHN0b3JlQ29kZTogZWxlbWVudC5zdG9yZUNvZGUsXHJcbiAgICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbGVtZW50Lm5vYkRhdGUsIFwieXl5eS1NTS1kZFwiKSxcclxuICAgICAgICAgIG5vYkNvdW50OiBOdW1iZXIoZWxlbWVudC5ub2JDb3VudCksXHJcbiAgICAgICAgfSkpLFxyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLk5PQmRhdGFbMF0uY2xpZW50SWQsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAuZ2V0Tk9CRGF0YUxpc3QodGhpcy5jb252ZXJ0ZWREYXRhKVxyXG4gICAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDAgJiYgcmVzKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSByZXMubWVzc2FnZTtcclxuICAgICAgICAgICAgICB0aGlzLnRzLmdldFN1Y2Nlc3NUb2FzdChhbGxNZXNzYWdlcyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1BhZ2VEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2F2ZUJ0bkVuYmFsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVzZXRFZGl0aW5nRmxhZ3MoKTtcclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICAgICAgICB9LDEwMDApXHJcbiAgICAgICAgICAgICAgdGhpcy5OT0JkYXRhID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiVW5leHBlY3RlZCByZXNwb25zZSBmb3JtYXRcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3IuZXJyb3IgPyBlcnIuZXJyb3IuZXJyb3I6ZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5jZWwob2JqOmFueSl7XHJcbiAgICB0aGlzLnRlc3ROb2JEYXRhID0gb2JqO1xyXG4gICAgb2JqLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNFZGl0aW5nW2VsZS5zdG9yZUlkXSA9IGZhbHNlO1xyXG4gICAgICAgdGhpcy5zYXZlQnRuRW5iYWxlID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgICAgdGhpcy5nZXROT0JEYXRhKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZW1haWxTdWJqZWN0ID0gJ0N1c3RvbSBTdWJqZWN0JztcclxuICBlbWFpbEJvZHkgPSAnVGhpcyBpcyB0aGUgYm9keSBvZiB0aGUgZW1haWwuJztcclxuICBvcGVuTWFpbFRvKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY3NtOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY3NtZGV0YWlsc1wiKSB8fCBcInt9XCIpO1xyXG4gICAgaWYgKGNzbSAmJiBjc20uZW1haWwpIHtcclxuICAgICAgY29uc3Qgc3ViamVjdCA9IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmVtYWlsU3ViamVjdCB8fCBcIlwiKTtcclxuICAgICAgY29uc3QgYm9keSA9IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmVtYWlsQm9keSB8fCBcIlwiKTtcclxuICAgICAgY29uc3QgbWFpbHRvTGluayA9IGBtYWlsdG86JHtjc20uZW1haWx9P3N1YmplY3Q9JHtzdWJqZWN0fSZib2R5PSR7Ym9keX1gO1xyXG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBsaW5rLmhyZWYgPSBtYWlsdG9MaW5rO1xyXG4gICAgICBsaW5rLnRhcmdldCA9IFwiX2JsYW5rXCI7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkNTTSBkZXRhaWxzIG9yIGVtYWlsIG5vdCBhdmFpbGFibGVcIik7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gICAgXHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGJvcmRlci10b3AgcC05XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhcmRsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBoLTI3NXB4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lciBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRhdGFUYWJsZVNob3cgJiYgIWNhcmRsb2FkaW5nXCIgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2ItdGl0bGUgbWItMVwiPk51bWJlciBvZiBCaWxsczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vYi10ZXh0XCI+RmlsbCB5b3VyIE5vQuKAmXMgdG8gZ2V0IGFjY3VyYXRlIENvbnZlcnNpb24gUmF0ZTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiZGF0YVRhYmxlU2hvdzEgJiYgIWNhcmRsb2FkaW5nXCIgY2xhc3M9XCJjb2wtbWQtOVwiPiA8IS0tIEFkanVzdGVkIHRoZSBwb3NpdGlvbiBvZiB0aGlzIGNvbHVtbiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpY2UgZC1mbGV4IHJvdW5kZWQgYm9yZGVyLXdhcm5pbmcgYm9yZGVyIHAtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI3Ljk5ODggMjQuMDAwMlYyOC4wMDAyTTI3Ljk5ODggMzIuMDAwMkgyOC4wMDg4TTI2LjI4ODggMTguODYwMkwxNy44MTg4IDMzLjAwMDJDMTcuNjQ0MiAzMy4zMDI2IDE3LjU1MTggMzMuNjQ1NSAxNy41NTA4IDMzLjk5NDdDMTcuNTQ5OCAzNC4zNDM5IDE3LjY0MDMgMzQuNjg3MyAxNy44MTMyIDM0Ljk5MDdDMTcuOTg2MiAzNS4yOTQxIDE4LjIzNTUgMzUuNTQ3IDE4LjUzNjUgMzUuNzI0MUMxOC44Mzc1IDM1LjkwMTIgMTkuMTc5NiAzNS45OTY0IDE5LjUyODggMzYuMDAwMkgzNi40Njg4QzM2LjgxOCAzNS45OTY0IDM3LjE2MDEgMzUuOTAxMiAzNy40NjExIDM1LjcyNDFDMzcuNzYyMSAzNS41NDcgMzguMDExNCAzNS4yOTQxIDM4LjE4NDQgMzQuOTkwN0MzOC4zNTczIDM0LjY4NzMgMzguNDQ3OCAzNC4zNDM5IDM4LjQ0NjggMzMuOTk0N0MzOC40NDU4IDMzLjY0NTUgMzguMzUzNCAzMy4zMDI2IDM4LjE3ODggMzMuMDAwMkwyOS43MDg4IDE4Ljg2MDJDMjkuNTMwNSAxOC41NjYzIDI5LjI3OTUgMTguMzIzMyAyOC45OCAxOC4xNTQ3QzI4LjY4MDUgMTcuOTg2MSAyOC4zNDI1IDE3Ljg5NzUgMjcuOTk4OCAxNy44OTc1QzI3LjY1NTEgMTcuODk3NSAyNy4zMTcxIDE3Ljk4NjEgMjcuMDE3NiAxOC4xNTQ3QzI2LjcxODEgMTguMzIzMyAyNi40NjcxIDE4LjU2NjMgMjYuMjg4OCAxOC44NjAyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIGZsZXgtZ3Jvdy0xIGZsZXgtd3JhcCBmbGV4LW1kLW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cIm1iLTMgbWItbWQtMCBmdy1ib2xkIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm5vYi11cGxvYWQtdGl0bGVcIj5TdWdnZXN0aW9uITwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9iLXVwbG9hZC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9va3MgbGlrZSB0aGUgZGF0YSBpcyBleGNlZWRpbmcgbW9yZSB0aGFuIDEwMCByZWNvcmRzLCByZXF1ZXN0IHlvdSB0byBwbGVhc2UgZG93bmxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZXhjZWwgYmVsb3csIGZpbGwgaW4gdGhlIE5PQuKAmXMgYW5kIHVwbG9hZCB3aXRob3V0IGNoYW5naW5nIHRoZSBmaWxlIGZvcm1hdC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRhc2hlZCBteS02XCI+PC9kaXY+IC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZGF0YVRhYmxlU2hvdyAmJiAhY2FyZGxvYWRpbmdcIiBjbGFzcz1cInJvdyBtdC0yMCBtYi0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy90YW5nby9JbWFnZXMvbm9iLnN2Z1wiPiBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGRlciBtYi0wIHRpdGxlICB0ZXh0LWNlbnRlclwiPiBVcGxvYWQgTm9CIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNTAwIG15LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgZnMtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHRcIj5Vc2UgdGhlIHRlbXBsYXRlIHRvIHVwbG9hZCBtdWx0aXBsZSBOb0LigJlzIGF0IG9uY2UuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci10ZXh0IFwiPkRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBoZXJlIC0gICA8YSAgaHJlZj1cIi4uLy4uL2Fzc2V0cy9maWxlcy9ub2JVcGxvYWRUZW1wbGF0ZS54bHN4XCIgZG93bmxvYWQ+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTNWMTYuMzMzM0MxNy41IDE2Ljc3NTQgMTcuMzI0NCAxNy4xOTkzIDE3LjAxMTggMTcuNTExOEMxNi42OTkzIDE3LjgyNDQgMTYuMjc1NCAxOCAxNS44MzMzIDE4SDQuMTY2NjdDMy43MjQ2NCAxOCAzLjMwMDcyIDE3LjgyNDQgMi45ODgxNiAxNy41MTE4QzIuNjc1NTkgMTcuMTk5MyAyLjUgMTYuNzc1NCAyLjUgMTYuMzMzM1YxM001LjgzMzMzIDguODMzMzNMMTAgMTNNMTAgMTNMMTQuMTY2NyA4LjgzMzMzTTEwIDEzVjNcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiAgY2xhc3M9XCJtcy0yIHRleHQtZG93bmxvYWRcIj5Eb3dubG9hZCBUZW1wbGF0ZTwvc3Bhbj48L2E+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci10ZXh0IFwiPkFkZCB5b3VyIGRhdGEgdG8gdGhlIFRlbXBsYXRlIEZpbGU8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHRcIj5VcGxvYWQgaXQgYmVsb3cgZm9yIHByb2Nlc3Npbmc8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG15LTEwXCIgcm9sZT1cImdyb3VwXCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2Rpc2FibGVkXT1cInVzZXJUeXBlLnJvbGUgPT09ICd1c2VyJ1wiIG5hbWU9XCJhY2NvdW50VHlwZVwiIHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIiB2YWx1ZT1cInBlcnNvbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1jaGVja1wiIG5nLXJlZmxlY3QtbmFtZT1cImFjY291bnRUeXBlXCIgbmctcmVmbGVjdC1mb3JtLWNvbnRyb2wtbmFtZT1cImFjY291bnRUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5nLXJlZmxlY3QtdmFsdWU9XCJwZXJzb25hbFwiIHR5cGU9XCJmaWxlXCIgI2lucHV0RmlsZSAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwia3RfY3JlYXRlX2FjY291bnRfZm9ybV9hY2NvdW50X3R5cGVfcGVyc29uYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1wcmltYXJ5IGJnLXByaW1hcnkgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdy03NSBwLTQgbXQtNVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZ3LWJvbGQgZnMtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOCAxMi41VjE1LjgzMzNDMTggMTYuMjc1NCAxNy44MjQ0IDE2LjY5OTMgMTcuNTExOCAxNy4wMTE4QzE3LjE5OTMgMTcuMzI0NCAxNi43NzU0IDE3LjUgMTYuMzMzMyAxNy41SDQuNjY2NjdDNC4yMjQ2NCAxNy41IDMuODAwNzIgMTcuMzI0NCAzLjQ4ODE2IDE3LjAxMThDMy4xNzU1OSAxNi42OTkzIDMgMTYuMjc1NCAzIDE1LjgzMzNWMTIuNU0xNC42NjY3IDYuNjY2NjdMMTAuNSAyLjVNMTAuNSAyLjVMNi4zMzMzMyA2LjY2NjY3TTEwLjUgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtd2hpdGUgbXgtMlwiPlVwbG9hZCBNdWx0aXBsZSBTdG9yZXMgTm9CPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNDAwIGZ3LWJvbGQgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMjI0IDJcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMjIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+PHNwYW4gY2xhc3M9XCJteC0yXCI+T3IgPC9zcGFuPiA8c3BhbiBjbGFzcz1cImxpbmUtYmcgXCI+PHN2ZyB3aWR0aD1cIjIyNFwiIGhlaWdodD1cIjJcIiB2aWV3Qm94PVwiMCAwIDIyNCAyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHk9XCIwLjVcIiB3aWR0aD1cIjIyMy4zMzNcIiBoZWlnaHQ9XCIxXCIgZmlsbD1cIiNFQUVDRjBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwidXNlclR5cGUucm9sZSA9PT0gJ3VzZXInXCIgICB0eXBlPVwicmFkaW9cIiBpZD1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCIgdmFsdWU9XCIxLTFcIiAgKGNsaWNrKT1cImFkZFNpbmdsZVN0b3JlTk9CKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNoZWNrIG5nLXVudG91Y2hlZCBuZy1wcmlzdGluZSBuZy12YWxpZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJrdF9hY2NvdW50X3RlYW1fc2l6ZV9zZWxlY3RfMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdy03NSBwLTQgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xLjE4MDE1IDMuODAzNzhMMS4xMjY5IDMuODg2OTVDMC41Njg4NjMgNC44NzQgMS4xNjQ2OSA2LjEyMTQzIDIuMjM2MyA2LjI2NDUyQzIuMzMzMzkgNi4yNzYzOSAyLjQyMzczIDYuMjgyNjcgMi41MTIgNi4yODI2N0MzLjA5MDE1IDYuMjgyNjcgMy42MDEzMiA2LjAzNDY1IDMuOTU3NTkgNS42NDc5Mkw0LjUxMDkzIDUuMDQ3M0w1LjA2MjM4IDUuNjQ5NjVDNS40MTQzMiA2LjAzNDA3IDUuOTI0MzMgNi4yODI2NyA2LjUwNjM5IDYuMjgyNjdDNy4wODU4MyA2LjI4MjY3IDcuNTk4NzcgNi4wMzM3MiA3Ljk1MDM5IDUuNjQ5NjVMOC41MDM1OCA1LjA0NTQxTDkuMDU2NzYgNS42NDk2NUM5LjQwODM5IDYuMDMzNzIgOS45MjEzMyA2LjI4MjY3IDEwLjUwMDggNi4yODI2N0MxMS4wODAyIDYuMjgyNjcgMTEuNTkzMiA2LjAzMzcyIDExLjk0NDggNS42NDk2NUwxMi40OTggNS4wNDU0MUwxMy4wNTExIDUuNjQ5NjVDMTMuNDAyOCA2LjAzMzcyIDEzLjkxNTcgNi4yODI2NyAxNC40OTUyIDYuMjgyNjdDMTQuNTgwNSA2LjI4MjY3IDE0LjY3MzYgNi4yNzYzOCAxNC43NyA2LjI2NDYyQzE1Ljg2NTIgNi4xMTUzIDE2LjQ2MyA0LjgwMTAzIDE1LjgyNDMgMy44MDQyOEMxNS44MjQyIDMuODA0MjMgMTUuODI0MiAzLjgwNDE3IDE1LjgyNDIgMy44MDQxMUwxNC4wNjYgMS4wNjI3TDE0LjA2NiAxLjA2MjdMMTQuMDY1MSAxLjA2MTIzQzE0LjA0OTkgMS4wMzc0IDE0LjAxMjQgMS4wMTE4NCAxMy45NjUyIDEuMDExODRIMy4wMzU4MUMyLjk4ODY2IDEuMDExODQgMi45NTExNyAxLjAzNzQgMi45MzU5NyAxLjA2MTI0TDIuOTM1MzUgMS4wNjIyTDEuMTgwMTUgMy44MDM3OFpNMTQuMTUxNiA4LjczNzA2VjExLjg2OVYxMi42MTlIMTMuNDAxNkgzLjU5OTQzSDIuODQ5NDNWMTEuODY5VjguNzM3NTNDMi43MzkyIDguNzQ1NzMgMi42Mjc2OCA4Ljc0OTk0IDIuNTE1MDcgOC43NDk5NEMyLjQ3Mjc2IDguNzQ5OTQgMi40MzA3NCA4Ljc0OTMxIDIuMzg5IDguNzQ4MDlWMTEuODY5VjEzLjgwMzVDMi4zODkgMTQuNDQ2OSAyLjkyMjkgMTQuOTg4IDMuNTk5NDMgMTQuOTg4SDEzLjQwMTZDMTQuMDc4MSAxNC45ODggMTQuNjEyIDE0LjQ0NjkgMTQuNjEyIDEzLjgwMzVWMTEuODY5VjguNzQ4MjdDMTQuNTcyMiA4Ljc0OTM3IDE0LjUzMjIgOC43NDk5NCAxNC40OTIxIDguNzQ5OTRDMTQuMzc3NyA4Ljc0OTk0IDE0LjI2NDEgOC43NDU1OSAxNC4xNTE2IDguNzM3MDZaXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZCBmcy00IG14LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBTaW5nbGUgU3RvcmUgTm9CPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFUYWJsZVNob3cgJiYgIWNhcmRsb2FkaW5nXCIgY2xhc3M9XCJyb3cgcHgtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHBlLTBcIj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtdGV4dCBtYi0yXCI+QmlsbGluZyBTdW1tYXJ5IFRhYmxlPC9zcGFuPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjaGFuZ2UpPVwic2VhcmNoRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbWUtMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidXNlclR5cGUucm9sZSAhPT0gJ3VzZXInICYmICFub0RhdGEgJiYgIXNhdmVCdG5FbmJhbGVcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImVkaXRWYWx1ZSh0YWJsZUhlYWRlcnMpXCIgW2Rpc2FibGVkXT1cIiFkYXRhQ2FsY3VsYXRpb24/LmlzRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNzcxOV84MTM3KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjE2NiAyLjQ5OTkzQzE0LjM4NDkgMi4yODEwNiAxNC42NDQ3IDIuMTA3NDQgMTQuOTMwNyAxLjk4ODk5QzE1LjIxNjcgMS44NzA1NCAxNS41MjMyIDEuODA5NTcgMTUuODMyNyAxLjgwOTU3QzE2LjE0MjIgMS44MDk1NyAxNi40NDg3IDEuODcwNTQgMTYuNzM0NyAxLjk4ODk5QzE3LjAyMDYgMi4xMDc0NCAxNy4yODA1IDIuMjgxMDYgMTcuNDk5MyAyLjQ5OTkzQzE3LjcxODIgMi43MTg4IDE3Ljg5MTggMi45Nzg2MyAxOC4wMTAzIDMuMjY0NkMxOC4xMjg3IDMuNTUwNTcgMTguMTg5NyAzLjg1NzA2IDE4LjE4OTcgNC4xNjY1OUMxOC4xODk3IDQuNDc2MTIgMTguMTI4NyA0Ljc4MjYyIDE4LjAxMDMgNS4wNjg1OUMxNy44OTE4IDUuMzU0NTUgMTcuNzE4MiA1LjYxNDM5IDE3LjQ5OTMgNS44MzMyNkw2LjI0OTM1IDE3LjA4MzNMMS42NjYwMiAxOC4zMzMzTDIuOTE2MDIgMTMuNzQ5OUwxNC4xNjYgMi40OTk5M1pcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNzcxOV84MTM3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5FZGl0PC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInVzZXJUeXBlLnJvbGUgIT09ICd1c2VyJyAmJiAhbm9EYXRhICYmICFzYXZlQnRuRW5iYWxlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJSZXVwbG9hZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjVWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1YxMi41TTE0LjE2NjcgNi42NjY2N0wxMCAyLjVNMTAgMi41TDUuODMzMzMgNi42NjY2N00xMCAyLjVWMTIuNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5SZS1VcGxvYWQgTm9CPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIW5vRGF0YSAmJiAhc2F2ZUJ0bkVuYmFsZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZXhwb3J0WExTWCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguMTI1IDEzLjEyNUgxNi4zNTYyTDE0Ljc0MzggMTQuNzQzOEwxNS42MjUgMTUuNjI1TDE4Ljc1IDEyLjVMMTUuNjI1IDkuMzc1TDE0Ljc0MzggMTAuMjU2MkwxNi4zNTYyIDExLjg3NUg4LjEyNVYxMy4xMjVaXCIgZmlsbD1cImJsYWNrXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMy43NSA4Ljc1MDAxVjYuMjUwMDFDMTMuNzUwNSA2LjE2Nzc2IDEzLjczNDcgNi4wODYyMiAxMy43MDM2IDYuMDEwMDdDMTMuNjcyNSA1LjkzMzkyIDEzLjYyNjcgNS44NjQ2NiAxMy41Njg4IDUuODA2MjZMOS4xOTM3NSAxLjQzMTI2QzkuMTM1MzUgMS4zNzMzMyA5LjA2NjA5IDEuMzI3NTEgOC45ODk5NCAxLjI5NjRDOC45MTM3OSAxLjI2NTMgOC44MzIyNSAxLjI0OTUzIDguNzUgMS4yNTAwMUgyLjVDMi4xNjg0OCAxLjI1MDAxIDEuODUwNTQgMS4zODE3MSAxLjYxNjEyIDEuNjE2MTNDMS4zODE3IDEuODUwNTUgMS4yNSAyLjE2ODQ5IDEuMjUgMi41MDAwMVYxNy41QzEuMjUgMTcuODMxNSAxLjM4MTcgMTguMTQ5NSAxLjYxNjEyIDE4LjM4MzlDMS44NTA1NCAxOC42MTgzIDIuMTY4NDggMTguNzUgMi41IDE4Ljc1SDEyLjVDMTIuODMxNSAxOC43NSAxMy4xNDk1IDE4LjYxODMgMTMuMzgzOSAxOC4zODM5QzEzLjYxODMgMTguMTQ5NSAxMy43NSAxNy44MzE1IDEzLjc1IDE3LjVWMTYuMjVIMTIuNVYxNy41SDIuNVYyLjUwMDAxSDcuNVY2LjI1MDAxQzcuNSA2LjU4MTUzIDcuNjMxNyA2Ljg5OTQ3IDcuODY2MTIgNy4xMzM4OUM4LjEwMDU0IDcuMzY4MzEgOC40MTg0OCA3LjUwMDAxIDguNzUgNy41MDAwMUgxMi41VjguNzUwMDFIMTMuNzVaTTguNzUgNi4yNTAwMVYyLjc1NjI2TDEyLjI0MzggNi4yNTAwMUg4Ljc1WlwiIGZpbGw9XCJibGFja1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkV4cG9ydDwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTYXZlIEJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cInVzZXJUeXBlLnJvbGUgIT09ICd1c2VyJyAmJiAhbm9EYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzYXZlQnRuRW5iYWxlXCIgIChjbGljayk9XCJjYW5jZWwodGFibGVIZWFkZXJzKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlclR5cGUucm9sZSAhPT0gJ3VzZXInICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNhdmVCdG5FbmJhbGVcIiAoY2xpY2spPVwic2F2ZVZhbHVlKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gbXgtMiBidG4tcHJpbWFyeSByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NjcgMTcuNVYxMC44MzMzSDUuODMzMzNWMTcuNU01LjgzMzMzIDIuNVY2LjY2NjY3SDEyLjVNMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjQuMTY2NjdDMi41IDMuNzI0NjQgMi42NzU1OSAzLjMwMDcyIDIuOTg4MTYgMi45ODgxNkMzLjMwMDcyIDIuNjc1NTkgMy43MjQ2NCAyLjUgNC4xNjY2NyAyLjVIMTMuMzMzM0wxNy41IDYuNjY2NjdWMTUuODMzM0MxNy41IDE2LjI3NTQgMTcuMzI0NCAxNi42OTkzIDE3LjAxMTggMTcuMDExOEMxNi42OTkzIDE3LjMyNDQgMTYuMjc1NCAxNy41IDE1LjgzMzMgMTcuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTJcIj5TYXZlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAgIGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9EYXRhICYmICFsb2FkaW5nXCIgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U3RvcmUgTmFtZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U3RvcmUgSUQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkRhdGU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2Zvb3RmYWxsLWNvdW50J1wiPkZvb3RmYWxsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2VuZ2FnZXJzLWNvdW50J1wiPkVuZ2FnZXJzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2JpbGxhYmxlLWVudGl0aWVzJ1wiPlBvdGVudGlhbCBCdXllcnM8L3NwYW4+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5Ob0LigJlzIENvdW50PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5Db252ZXJzaW9uIFJhdGU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImZ3LXNlbWlib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9iaiBvZiB0YWJsZUhlYWRlcnM7IGxldCBpID1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvYmouc3RvcmVOYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5zdG9yZUlkfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5ub2JEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+IDxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2Zvb3RmYWxsLWNvdW50J1wiPnt7b2JqLmZvb3RmYWxsQ291bnQgPyBvYmouZm9vdGZhbGxDb3VudDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2VuZ2FnZXJzLWNvdW50J1wiPnt7b2JqLmVuZ2FnZXJzQ291bnQgPyBvYmouZW5nYWdlcnNDb3VudCA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGFDYWxjdWxhdGlvbj8uY29udmVydGlvbkNhbGN1bGF0aW9uID09PSdiaWxsYWJsZS1lbnRpdGllcydcIj57e29iai5wb3RlbnRpYWxCdXllcnMgPyBvYmoucG90ZW50aWFsQnV5ZXJzOictLSd9fTwvc3Bhbj48L3RkPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBSZWFkLW9ubHkgbm9iQ291bnQgd2hlbiBub3QgaW4gZWRpdGluZyBtb2RlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gICpuZ0lmPVwiKCFpc0VkaXRpbmdbb2JqLnN0b3JlSWRdICYmIG9iai5pc1VwZGF0ZWQpIHx8ICghaXNFZGl0aW5nW29iai5zdG9yZUlkXSAmJiAhb2JqLmlzVXBkYXRlZClcIj57eyBvYmoubm9iQ291bnQgIT09IHVuZGVmaW5lZCA/IG9iai5ub2JDb3VudCA6ICctLScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIElucHV0IGZpZWxkIHdoZW4gaW4gZWRpdGluZyBtb2RlIChpZiBpc1VwZGF0ZWQgaXMgZmFsc2UpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRWRpdGluZ1tvYmouc3RvcmVJZF0gJiYgIW9iai5pc1VwZGF0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwib2JqLm5vYkNvdW50XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZU5vYkNvdW50KG9iailcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE5vYiBDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7b2JqLmNvbnZlcnNpb25SYXRlID8gb2JqLmNvbnZlcnNpb25SYXRlIDonLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjbGFzcz1cImNvbC14eGwtMTIgY29sLW1kLTEyIGNvbC14bC0xMiBjb2wtbGctMTIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cIm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cImxpbWl0XCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgaC0yNzVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhLXRhYmxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhpcyBzdW1tYXJ5IHRhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhVGFibGVTaG93ICYmICFjYXJkbG9hZGluZ1wiIGNsYXNzPVwibm90aWNlIGQtZmxleCByb3VuZGVkIGJvcmRlci1wcmltYXJ5IGJvcmRlciBwLTZcIj5cclxuICAgICAgICAgICAgPHNwYW4+PHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTI4IDMyVjI4TTI4IDI0SDI4LjAxTTM4IDI4QzM4IDMzLjUyMjggMzMuNTIyOCAzOCAyOCAzOEMyMi40NzcyIDM4IDE4IDMzLjUyMjggMTggMjhDMTggMjIuNDc3MiAyMi40NzcyIDE4IDI4IDE4QzMzLjUyMjggMTggMzggMjIuNDc3MiAzOCAyOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zdGFjayBmbGV4LWdyb3ctMSBmbGV4LXdyYXAgZmxleC1tZC1ub3dyYXBcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cIm1iLTMgbWItbWQtMCBmdy1ib2xkIG1zLTNcIj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibm9iLXVwbG9hZC10aXRsZVwiPlBPUyBJbnRlZ3JhdGlvbiAtIEZvciBBY2N1cmF0ZSBDb252ZXJzaW9uczwvaDQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2ItdXBsb2FkLXRleHRcIj5cclxuICAgICAgICAgICAgICAgIFBsZWFzZSBjb250YWN0IHlvdXIgVGFuZ28gQWNjb3VudCBNYW5hZ2VyIHRvIEludGVncmF0ZSB5b3VyIFBPU1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSAqbmdJZj1cImRhdGFUYWJsZVNob3dcIiAoY2xpY2spPVwib3Blbk1haWxUbygpXCIgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTYgYWxpZ24tc2VsZi1jZW50ZXIgdGV4dC1ub3dyYXAgY3Vyc29yLXBvaW50ZXJcIj5Db250YWN0IFVzPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9kaXY+Il19
|
|
562
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9iLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL25vYi11cGxvYWQvbm9iLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL25vYi11cGxvYWQvbm9iLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUlULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7Ozs7Ozs7OztBQVEvQixNQUFNLE9BQU8sa0JBQWtCO0lBZ0JuQjtJQUNBO0lBQ0E7SUFDQTtJQUNEO0lBQ0M7SUFBMkI7SUFDM0I7SUFyQmMsU0FBUyxDQUFhO0lBQzdCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLGFBQWEsQ0FBTTtJQUVuQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDL0IsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNu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a0lDdEJ2Qiw2anZCQWdSTTs7NEZEeFBPLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZixDQUFDLFFBQVEsQ0FBQztzUkFHRyxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLXNoYXJlZFwiO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gXCJ4bHN4XCI7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWRkTm9iQ29tcG9uZW50IH0gZnJvbSBcIi4uL2FkZC1ub2IvYWRkLW5vYi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IFN3YWwgZnJvbSBcInN3ZWV0YWxlcnQyXCI7XHJcbmltcG9ydCB7IEV4Y2VsU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9leGNlbC5zZXJ2aWNlXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1ub2ItdXBsb2FkXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9ub2ItdXBsb2FkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9ub2ItdXBsb2FkLmNvbXBvbmVudC5zY3NzXCIsXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm9iVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dEZpbGVcIikgaW5wdXRGaWxlOiBFbGVtZW50UmVmO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNvbnZlcnRlZERhdGE6IGFueTtcclxuXHJcbiAgaXRlbXNQZXJQYWdlID0gMTA7XHJcbiAgY3VycmVudFBhZ2UgPSAxO1xyXG4gIHRvdGFsSXRlbXMgPSAxO1xyXG4gIHBhZ2luYXRpb25TaXplczogbnVtYmVyW10gPSBbXTtcclxuICBwYWdlU2l6ZSA9IDEwO1xyXG4gIG9mZnNldDogbnVtYmVyID0gMTtcclxuICBsaW1pdDogbnVtYmVyID0gMTA7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIHN0b3JlSWRhcnJheTogYW55O1xyXG4gIGNhcmRsb2FkaW5nID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogVHJhZmZpY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRzOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUscHJpdmF0ZSBwYWdlSW5mbzpQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV4Y2VsU2VydmljZTogRXhjZWxTZXJ2aWNlXHJcbiAgKSB7fVxyXG4gIHVzZXJUeXBlOmFueTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3M/LmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCk7XHJcbiAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgdXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKSB8fCAne30nKSBcclxuICAgICAgdGhpcy51c2VyVHlwZSA9IHVzZXJJbmZvO1xyXG4gICAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpe1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZSgnTk9CJylcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oJycpXHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgIHt0aXRsZTonVGFuZ28gRXllJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlfSxcclxuICAgIHt0aXRsZTonVGFuZ28gRXllJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWV9LFxyXG4gICAge3RpdGxlOidUcmFmZmljJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlfSxcclxuICAgIHt0aXRsZTonVHJhZmZpYycsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlfSxcclxuICAgIF0pXHJcbiAgfVxyXG4gIGRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICBkYXRhVGFibGVTaG93MSA9IGZhbHNlO1xyXG4gIGRhdGFDYWxjdWxhdGlvbjogYW55O1xyXG4gIG5vRGF0YSA9IGZhbHNlO1xyXG4gIGxvYWRpbmcgPXRydWU7XHJcbiAgZ2V0Tk9CRGF0YSgpIHtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICB0aGlzLmxpbWl0ID0xMDtcclxuICAgIHRoaXMub2Zmc2V0ID0xO1xyXG4gICAgbGV0IG9iajogYW55ID0ge1xyXG4gICAgICBmcm9tRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdG9EYXRlOiB0aGlzLmhlYWRlckRhdGE/LmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAuZmlsdGVyKChzdG9yZTogYW55KSA9PiBzdG9yZS5jaGVja2VkKVxyXG4gICAgICAgIC5tYXAoKHN0b3JlOiBhbnkpID0+IHN0b3JlLnN0b3JlSWQpLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgPyB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCA6IFwiXCIsXHJcbiAgICAgIGxpbWl0OiAxMCxcclxuICAgICAgb2Zmc2V0OiAxLFxyXG4gICAgICBpc0V4cG9ydDogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkgIT09IFwiXCIpIHtcclxuICAgICAgb2JqLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldE5PQkRhdGEob2JqKVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhQ2FsY3VsYXRpb24gPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNldFBhZ2luYXRpb25TaXplcygpO1xyXG4gICAgICAgICAgICBpZihyZXM/LmRhdGE/LmluaXRpYWxJbnNlcnQgPT09IGZhbHNlKXtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG4gIG9uVXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgYmluYXJ5RGF0YTogc3RyaW5nID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJpbmFyeURhdGEsIHtcclxuICAgICAgICAgIHR5cGU6IFwiYmluYXJ5XCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3Qgc2hlZXROYW1lOiBzdHJpbmcgPSB3b3JrYm9vay5TaGVldE5hbWVzWzBdO1xyXG5cclxuICAgICAgICBpZiAoc2hlZXROYW1lICE9PSBcIk5PQlwiKSB7XHJcbiAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJQbGVhc2UgdXBsb2FkIGEgdmFsaWQgZmlsZS5cIik7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0RmlsZUlucHV0KCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzaGVldDogWExTWC5Xb3JrU2hlZXQgPSB3b3JrYm9vay5TaGVldHNbc2hlZXROYW1lXTtcclxuICAgICAgICBjb25zdCBqc29uRGF0YSA9IFhMU1gudXRpbHMuc2hlZXRfdG9fanNvbihzaGVldCwgeyBoZWFkZXI6IDEgfSk7XHJcbiAgICAgICAgaWYgKGpzb25EYXRhLmxlbmd0aCA+IDEwMCkge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFxyXG4gICAgICAgICAgICBcIkZpbGUgY29udGFpbnMgdG9vIG1hbnkgcm93cy4gUGxlYXNlIGxpbWl0IHRvIDEwMCByb3dzLlwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNhcmRsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdzEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgaGVhZGVyczogYW55ID0ganNvbkRhdGFbMF07XHJcbiAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICAgIGNvbnN0IGRhdGFSb3dzID0ganNvbkRhdGEuc2xpY2UoMSk7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0ZWREYXRhID0ge1xyXG4gICAgICAgICAgYmlsbHM6IGRhdGFSb3dzXHJcbiAgICAgICAgICAgIC5tYXAoKHJvdzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgICBoZWFkZXJzLmZvckVhY2goKGhlYWRlcjogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2VsbFZhbHVlID0gcm93W2luZGV4XTtcclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXIgPT09IFwiTk9CRGF0ZVwiICYmIHR5cGVvZiBjZWxsVmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlID0gdGhpcy5jb252ZXJ0RXhjZWxEYXRlKGNlbGxWYWx1ZSk7IFxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGBQbGVhc2UgdXBsb2FkIGEgdmFsaWQgTk9CIERhdGUgRm9ybWF0YCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyID09PSBcIlN0b3JlSWRcIiAmJiBjZWxsVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICBjZWxsVmFsdWUgPSBjZWxsVmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG9ialtoZWFkZXJdID0gY2VsbFZhbHVlO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBzdG9yZUNvZGU6IG9ialtcIlN0b3JlSWRcIl0sXHJcbiAgICAgICAgICAgICAgICBub2JEYXRlOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShvYmpbXCJOT0JEYXRlXCJdLCBcInl5eXktTU0tZGRcIiksXHJcbiAgICAgICAgICAgICAgICBub2JDb3VudDogTnVtYmVyKG9ialtcIk5PQkNvdW50XCJdKSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuZmlsdGVyKChiaWxsOiBhbnkpID0+IGJpbGwubm9iRGF0ZSAhPT0gbnVsbCAmJiBiaWxsLm5vYkNvdW50ICE9PSBudWxsKSwgLy8gRmlsdGVyIHJvd3Mgd2l0aCBudWxsIHZhbHVlc1xyXG4gICAgICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5kYXRhTm9iRnVuY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoYFBsZWFzZSB1cGxvYWQgYSB2YWxpZCBmaWxlOiAke2Vycm9yfWApOyAgXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXNldEZpbGVJbnB1dCgpO1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XHJcbiAgfVxyXG4gIHJlc2V0RmlsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRGaWxlICYmIHRoaXMuaW5wdXRGaWxlLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnOyBcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEV4Y2VsRGF0ZShleGNlbERhdGU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBiYXNlRGF0ZSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpO1xyXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgICBiYXNlRGF0ZS5nZXRUaW1lKCkgKyAoZXhjZWxEYXRlIC0gMSkgKiA4NjQwMDAwMFxyXG4gICAgKTtcclxuICAgIHJldHVybiBjb3JyZWN0ZWREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdO1xyXG4gIH1cclxuICB0YWJsZUhlYWRlcnM6IGFueTtcclxuXHJcbiAgZGF0YU5vYkZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMubG9hZGluZyA9dHJ1ZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Tk9CRGF0YUxpc3QodGhpcy5jb252ZXJ0ZWREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwICYmIHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gcmVzcG9uc2UubWVzc2FnZVxyXG4gICAgICAgICAgICAgIC8vIC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vICAgY29uc3Qgc3RhdHVzID0gaXRlbS5jb2RlID09PSAyMDAgPyBcIuKchVwiIDogXCLinYxcIjtcclxuICAgICAgICAgICAgICAvLyAgIGNvbnN0IHN0b3JlSW5mbyA9IGl0ZW0uc3RvcmVJZCA/IGAke2l0ZW0uc3RvcmVJZH1gIDogXCJcIjtcclxuICAgICAgICAgICAgICAvLyAgIHJldHVybiBgJHtzdGF0dXN9ICR7c3RvcmVJbmZvfTogJHtpdGVtLm1lc3NhZ2V9YDtcclxuICAgICAgICAgICAgICAvLyB9KVxyXG4gICAgICAgICAgICAgIC8vIC5qb2luKFwiPGJyPlwiKTtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRTdWNjZXNzVG9hc3QoYWxsTWVzc2FnZXMpO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICAgICAgfSwxMDAwKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiVW5leHBlY3RlZCByZXNwb25zZSBmb3JtYXRcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9ZmFsc2U7XHJcbiAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVyci5lcnJvci5lcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHNldFBhZ2luYXRpb25TaXplcygpIHtcclxuICAgIGlmICh0aGlzLnRvdGFsSXRlbXMgPiAxMCkge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFt0aGlzLnRvdGFsSXRlbXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5saW1pdCA9IHRoaXMucGFnaW5hdGlvblNpemVzWzBdO1xyXG4gIH1cclxuICByZXNldEVkaXRpbmdGbGFncygpIHtcclxuICAgIHRoaXMudGVzdE5vYkRhdGEuZm9yRWFjaCgocm93OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5pc0VkaXRpbmdbcm93LnN0b3JlSWRdID0gZmFsc2U7XHJcbiAgICAgIHJvdy5pc1VwZGF0ZWQgPSBmYWxzZTtcclxuICAgICAgcm93LmlzVXBkYXRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlT2Zmc2V0OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHByZXZpb3VzT2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLm9mZnNldCA9IE51bWJlcihwYWdlT2Zmc2V0KTtcclxuICAgIHRoaXMubGltaXQgPSAxMDtcclxuICAgIGlmICh0aGlzLmlzUGFnZURpcnR5KSB7XHJcbiAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgdGl0bGU6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzLlwiLFxyXG4gICAgICAgIHRleHQ6IFwiRG8geW91IHdhbnQgdG8gc2F2ZSB0aGVtIGJlZm9yZSBtb3ZpbmcgdG8gdGhlIG5leHQgcGFnZT9cIixcclxuICAgICAgICBpY29uOiBcIndhcm5pbmdcIixcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogXCIjMzA4NWQ2XCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiI2QzM1wiLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlllcywgc2F2ZSBpdCFcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIk5vLCBkaXNjYXJkIGNoYW5nZXNcIixcclxuICAgICAgICAvLyBzaG93Q2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgYWxsb3dPdXRzaWRlQ2xpY2s6IGZhbHNlLFxyXG4gICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICB0aGlzLmlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVWYWx1ZSgpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICAgICAgICB0aGlzLnJlc2V0RWRpdGluZ0ZsYWdzKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuZGlzbWlzcyA9PT0gU3dhbC5EaXNtaXNzUmVhc29uLmNhbmNlbCkge1xyXG4gICAgICAgICAgdGhpcy5pc1BhZ2VEaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZXNldEVkaXRpbmdGbGFncygpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVzZXRFZGl0aW5nRmxhZ3MoKTtcclxuICAgICAgdGhpcy5mZXRjaFBhZ2VEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaFBhZ2VEYXRhKCkge1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzXHJcbiAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID8gdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgOiBcIlwiLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgaXNFeHBvcnQ6IGZhbHNlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldE5PQkRhdGEob2JqKVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXM/LmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlcnMgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhQ2FsY3VsYXRpb24gPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzPy5kYXRhPy5jb3VudDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmRsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVTaG93MSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIGRhdGFcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHBhZ2VTaXplOiBudW1iZXIpIHtcclxuICAgIHRoaXMubGltaXQgPSBOdW1iZXIocGFnZVNpemUpO1xyXG4gICAgdGhpcy5vZmZzZXQgPSAxO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgZnJvbURhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5oZWFkZXJEYXRhPy5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzXHJcbiAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKSxcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID8gdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgOiBcIlwiLFxyXG4gICAgICBsaW1pdDogdGhpcy5saW1pdCxcclxuICAgICAgb2Zmc2V0OiB0aGlzLm9mZnNldCxcclxuICAgICAgaXNFeHBvcnQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Tk9CRGF0YShvYmopXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcz8uY29kZSA9PT0gMjAwICYmIHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFDYWxjdWxhdGlvbiA9IHJlcy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlU2hvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZVNob3cxID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5jYXJkbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZmV0Y2hpbmcgZGF0YVwiKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHBhZ2luYXRlZERhdGE6IGFueVtdID0gW107XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkU2luZ2xlU3RvcmVOT0IoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTm9iQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcImxnXCIsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnR5cGUgPSBcImFkZFwiO1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgdGhpcy5nZXROT0JEYXRhKCk7XHJcbiAgICAgICAgfSwxMDAwKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgUmV1cGxvYWQoKSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkTm9iQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICBzaXplOiBcImxnXCIsXHJcbiAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnR5cGUgPSBcInJldXBsb2FkXCI7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICAgICAgICB9LDEwMDApXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRJbnB1dFZpc2libGUob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhb2JqLmlzVXBkYXRlZCAmJiB0aGlzLmlzRWRpdGluZ1tvYmouc3RvcmVJZF07XHJcbiAgfVxyXG4gIGdldFJlYWRPbmx5VmlzaWJsZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iai5pc1VwZGF0ZWQgfHwgIXRoaXMuaXNFZGl0aW5nW29iai5zdG9yZUlkXTtcclxuICB9XHJcbiAgaXNFZGl0aW5nOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIHRlc3ROb2JEYXRhOiBhbnkgPSBbXTtcclxuICBlZGl0VmFsdWUob2JqOiBhbnkpIHtcclxuICAgIHRoaXMudGVzdE5vYkRhdGEgPSBvYmo7XHJcbiAgICBvYmouZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS5pc1VwZGF0ZWQpIHtcclxuICAgICAgICAvLyB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJSb3cgaXMgYWxyZWFkeSB1cGRhdGVkLiBObyBhY3Rpb24gbmVlZGVkLlwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0VkaXRpbmdbZWxlLnN0b3JlSWRdID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXRJbnB1dFZpc2libGUoZWxlKTtcclxuICAgICAgIHRoaXMuc2F2ZUJ0bkVuYmFsZSA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VhcmNoVmFsdWU6IGFueTtcclxuICBzZWFyY2hEYXRhKCkge1xyXG4gICAgdGhpcy5nZXROT0JEYXRhKCk7XHJcbiAgfVxyXG4gIGV4cG9ydFhMU1goKSB7XHJcbiAgICBsZXQgb2JqOiBhbnkgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmhlYWRlckRhdGE/LmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0b0RhdGU6IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgIC5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpXHJcbiAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCA/IHRoaXMuaGVhZGVyRGF0YT8uY2xpZW50IDogXCJcIixcclxuICAgICAgaXNFeHBvcnQ6IHRydWUsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hWYWx1ZS50cmltKCkgIT09IFwiXCIpIHtcclxuICAgICAgb2JqLnNlYXJjaFZhbHVlID0gdGhpcy5zZWFyY2hWYWx1ZS50cmltKCk7XHJcbiAgICAgIG9iai5saW1pdCA9IHRoaXMubGltaXQ7XHJcbiAgICAgIG9iai5vZmZzZXQgPSB0aGlzLm9mZnNldDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9iai5saW1pdCA9IDEwMDtcclxuICAgICAgb2JqLm9mZnNldCA9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXROT0JEYXRhRXhwb3J0KG9iailcclxuICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWxTZXJ2aWNlLnNhdmVBc0V4Y2VsRmlsZShcclxuICAgICAgICAgICAgICByZXMsXHJcbiAgICAgICAgICAgICAgXCJCaWxsaW5nIFN1bW1hcnkgVGFibGVcIlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudHMuZ2V0RXJyb3JUb2FzdChcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIGRhdGFcIik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIE5PQmRhdGE6IGFueSA9IFtdO1xyXG4gIGlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgc2F2ZUJ0bkVuYmFsZSA9IGZhbHNlO1xyXG4gIHVwZGF0ZU5vYkNvdW50KG9iajogYW55KSB7XHJcbiAgICBvYmoubm9iQ291bnQgPSBvYmoubm9iQ291bnQ7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuaXNQYWdlRGlydHkgPSB0cnVlO1xyXG4gICAgdGhpcy5zYXZlQnRuRW5iYWxlID0gdHJ1ZTtcclxuICAgIHRoaXMuTk9CZGF0YS5wdXNoKHsgLi4ub2JqIH0pO1xyXG4gIH1cclxuICBzYXZlVmFsdWUoKSB7XHJcbiAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSBbXTtcclxuICAgIGlmICh0aGlzLk5PQmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7XHJcbiAgICAgICAgYmlsbHM6IHRoaXMuTk9CZGF0YS5tYXAoKGVsZW1lbnQ6IGFueSkgPT4gKHtcclxuICAgICAgICAgIHN0b3JlQ29kZTogZWxlbWVudC5zdG9yZUNvZGUgPyBlbGVtZW50LnN0b3JlQ29kZSA6IGVsZW1lbnQuc3RvcmVJZCxcclxuICAgICAgICAgIG5vYkRhdGU6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVsZW1lbnQubm9iRGF0ZSwgXCJ5eXl5LU1NLWRkXCIpLFxyXG4gICAgICAgICAgbm9iQ291bnQ6IE51bWJlcihlbGVtZW50Lm5vYkNvdW50KSxcclxuICAgICAgICB9KSksXHJcbiAgICAgICAgY2xpZW50SWQ6IHRoaXMuTk9CZGF0YVswXS5jbGllbnRJZCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgIC5nZXROT0JEYXRhTGlzdCh0aGlzLmNvbnZlcnRlZERhdGEpXHJcbiAgICAgICAgPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzLmNvZGUgPT09IDIwMCAmJiByZXMpIHtcclxuICAgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IHJlcy5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgIHRoaXMudHMuZ2V0U3VjY2Vzc1RvYXN0KGFsbE1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICB0aGlzLmlzUGFnZURpcnR5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zYXZlQnRuRW5iYWxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZXNldEVkaXRpbmdGbGFncygpO1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Tk9CRGF0YSgpO1xyXG4gICAgICAgICAgICAgIH0sMTAwMClcclxuICAgICAgICAgICAgICB0aGlzLk5PQmRhdGEgPSBbXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRzLmdldEVycm9yVG9hc3QoXCJVbmV4cGVjdGVkIHJlc3BvbnNlIGZvcm1hdFwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KGVyci5lcnJvci5lcnJvciA/IGVyci5lcnJvci5lcnJvcjplcnIuZXJyb3IuZXJyb3IpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNQYWdlRGlydHkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbChvYmo6YW55KXtcclxuICAgIHRoaXMudGVzdE5vYkRhdGEgPSBvYmo7XHJcbiAgICBvYmouZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5pc0VkaXRpbmdbZWxlLnN0b3JlSWRdID0gZmFsc2U7XHJcbiAgICAgICB0aGlzLnNhdmVCdG5FbmJhbGUgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgICB0aGlzLmdldE5PQkRhdGEoKTtcclxuICB9XHJcblxyXG5cclxuICBlbWFpbFN1YmplY3QgPSAnQ3VzdG9tIFN1YmplY3QnO1xyXG4gIGVtYWlsQm9keSA9ICdUaGlzIGlzIHRoZSBib2R5IG9mIHRoZSBlbWFpbC4nO1xyXG4gIG9wZW5NYWlsVG8oKTogdm9pZCB7XHJcbiAgICBjb25zdCBjc206IGFueSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjc21kZXRhaWxzXCIpIHx8IFwie31cIik7XHJcbiAgICBpZiAoY3NtICYmIGNzbS5lbWFpbCkge1xyXG4gICAgICBjb25zdCBzdWJqZWN0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZW1haWxTdWJqZWN0IHx8IFwiXCIpO1xyXG4gICAgICBjb25zdCBib2R5ID0gZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZW1haWxCb2R5IHx8IFwiXCIpO1xyXG4gICAgICBjb25zdCBtYWlsdG9MaW5rID0gYG1haWx0bzoke2NzbS5lbWFpbH0/c3ViamVjdD0ke3N1YmplY3R9JmJvZHk9JHtib2R5fWA7XHJcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgIGxpbmsuaHJlZiA9IG1haWx0b0xpbms7XHJcbiAgICAgIGxpbmsudGFyZ2V0ID0gXCJfYmxhbmtcIjtcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cy5nZXRFcnJvclRvYXN0KFwiQ1NNIGRldGFpbHMgb3IgZW1haWwgbm90IGF2YWlsYWJsZVwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgICBcclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgYm9yZGVyLXRvcCBwLTlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FyZGxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGgtMjc1cHhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZGF0YVRhYmxlU2hvdyAmJiAhY2FyZGxvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vYi10aXRsZSBtYi0xXCI+TnVtYmVyIG9mIEJpbGxzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9iLXRleHRcIj5GaWxsIHlvdXIgTm9C4oCZcyB0byBnZXQgYWNjdXJhdGUgQ29udmVyc2lvbiBSYXRlPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJkYXRhVGFibGVTaG93MSAmJiAhY2FyZGxvYWRpbmdcIiBjbGFzcz1cImNvbC1tZC05XCI+IDwhLS0gQWRqdXN0ZWQgdGhlIHBvc2l0aW9uIG9mIHRoaXMgY29sdW1uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGljZSBkLWZsZXggcm91bmRlZCBib3JkZXItd2FybmluZyBib3JkZXIgcC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjcuOTk4OCAyNC4wMDAyVjI4LjAwMDJNMjcuOTk4OCAzMi4wMDAySDI4LjAwODhNMjYuMjg4OCAxOC44NjAyTDE3LjgxODggMzMuMDAwMkMxNy42NDQyIDMzLjMwMjYgMTcuNTUxOCAzMy42NDU1IDE3LjU1MDggMzMuOTk0N0MxNy41NDk4IDM0LjM0MzkgMTcuNjQwMyAzNC42ODczIDE3LjgxMzIgMzQuOTkwN0MxNy45ODYyIDM1LjI5NDEgMTguMjM1NSAzNS41NDcgMTguNTM2NSAzNS43MjQxQzE4LjgzNzUgMzUuOTAxMiAxOS4xNzk2IDM1Ljk5NjQgMTkuNTI4OCAzNi4wMDAySDM2LjQ2ODhDMzYuODE4IDM1Ljk5NjQgMzcuMTYwMSAzNS45MDEyIDM3LjQ2MTEgMzUuNzI0MUMzNy43NjIxIDM1LjU0NyAzOC4wMTE0IDM1LjI5NDEgMzguMTg0NCAzNC45OTA3QzM4LjM1NzMgMzQuNjg3MyAzOC40NDc4IDM0LjM0MzkgMzguNDQ2OCAzMy45OTQ3QzM4LjQ0NTggMzMuNjQ1NSAzOC4zNTM0IDMzLjMwMjYgMzguMTc4OCAzMy4wMDAyTDI5LjcwODggMTguODYwMkMyOS41MzA1IDE4LjU2NjMgMjkuMjc5NSAxOC4zMjMzIDI4Ljk4IDE4LjE1NDdDMjguNjgwNSAxNy45ODYxIDI4LjM0MjUgMTcuODk3NSAyNy45OTg4IDE3Ljg5NzVDMjcuNjU1MSAxNy44OTc1IDI3LjMxNzEgMTcuOTg2MSAyNy4wMTc2IDE4LjE1NDdDMjYuNzE4MSAxOC4zMjMzIDI2LjQ2NzEgMTguNTY2MyAyNi4yODg4IDE4Ljg2MDJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc3RhY2sgZmxleC1ncm93LTEgZmxleC13cmFwIGZsZXgtbWQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwibWItMyBtYi1tZC0wIGZ3LWJvbGQgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibm9iLXVwbG9hZC10aXRsZVwiPlN1Z2dlc3Rpb24hPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2ItdXBsb2FkLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb29rcyBsaWtlIHRoZSBkYXRhIGlzIGV4Y2VlZGluZyBtb3JlIHRoYW4gMTAwIHJlY29yZHMsIHJlcXVlc3QgeW91IHRvIHBsZWFzZSBkb3dubG9hZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBleGNlbCBiZWxvdywgZmlsbCBpbiB0aGUgTk9C4oCZcyBhbmQgdXBsb2FkIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGZpbGUgZm9ybWF0LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZGFzaGVkIG15LTZcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFkYXRhVGFibGVTaG93ICYmICFjYXJkbG9hZGluZ1wiIGNsYXNzPVwicm93IG10LTIwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlcy9ub2Iuc3ZnXCI+IFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZzLTQgdGV4dC1ncmF5LTgwMCB0ZXh0LWhvdmVyLXByaW1hcnkgZnctYm9sZGVyIG1iLTAgdGl0bGUgIHRleHQtY2VudGVyXCI+IFVwbG9hZCBOb0IgPC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS01MDAgbXktNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBmcy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInVzZXItdGV4dFwiPlVzZSB0aGUgdGVtcGxhdGUgdG8gdXBsb2FkIG11bHRpcGxlIE5vQuKAmXMgYXQgb25jZS48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHQgXCI+RG93bmxvYWQgdGhlIHRlbXBsYXRlIGhlcmUgLSAgIDxhICBocmVmPVwiLi4vLi4vYXNzZXRzL2ZpbGVzL25vYlVwbG9hZFRlbXBsYXRlLnhsc3hcIiBkb3dubG9hZD48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAxM1YxNi4zMzMzQzE3LjUgMTYuNzc1NCAxNy4zMjQ0IDE3LjE5OTMgMTcuMDExOCAxNy41MTE4QzE2LjY5OTMgMTcuODI0NCAxNi4yNzU0IDE4IDE1LjgzMzMgMThINC4xNjY2N0MzLjcyNDY0IDE4IDMuMzAwNzIgMTcuODI0NCAyLjk4ODE2IDE3LjUxMThDMi42NzU1OSAxNy4xOTkzIDIuNSAxNi43NzU0IDIuNSAxNi4zMzMzVjEzTTUuODMzMzMgOC44MzMzM0wxMCAxM00xMCAxM0wxNC4xNjY3IDguODMzMzNNMTAgMTNWM1wiIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuICBjbGFzcz1cIm1zLTIgdGV4dC1kb3dubG9hZFwiPkRvd25sb2FkIFRlbXBsYXRlPC9zcGFuPjwvYT48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJ1c2VyLXRleHQgXCI+QWRkIHlvdXIgZGF0YSB0byB0aGUgVGVtcGxhdGUgRmlsZTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInVzZXItdGV4dFwiPlVwbG9hZCBpdCBiZWxvdyBmb3IgcHJvY2Vzc2luZzwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAgY2xhc3M9XCJkLWZsZXggbXktMTBcIiByb2xlPVwiZ3JvdXBcIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwidXNlclR5cGUucm9sZSA9PT0gJ3VzZXInXCIgbmFtZT1cImFjY291bnRUeXBlXCIgdHlwZT1cInJhZGlvXCIgaWQ9XCJrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiIHZhbHVlPVwicGVyc29uYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNoZWNrXCIgbmctcmVmbGVjdC1uYW1lPVwiYWNjb3VudFR5cGVcIiBuZy1yZWZsZWN0LWZvcm0tY29udHJvbC1uYW1lPVwiYWNjb3VudFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25VcGxvYWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmctcmVmbGVjdC12YWx1ZT1cInBlcnNvbmFsXCIgdHlwZT1cImZpbGVcIiAjaW5wdXRGaWxlIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJrdF9jcmVhdGVfYWNjb3VudF9mb3JtX2FjY291bnRfdHlwZV9wZXJzb25hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgYnRuLXByaW1hcnkgYmctcHJpbWFyeSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB3LTc1IHAtNCBtdC01XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnctYm9sZCBmcy00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIxIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4IDEyLjVWMTUuODMzM0MxOCAxNi4yNzU0IDE3LjgyNDQgMTYuNjk5MyAxNy41MTE4IDE3LjAxMThDMTcuMTk5MyAxNy4zMjQ0IDE2Ljc3NTQgMTcuNSAxNi4zMzMzIDE3LjVINC42NjY2N0M0LjIyNDY0IDE3LjUgMy44MDA3MiAxNy4zMjQ0IDMuNDg4MTYgMTcuMDExOEMzLjE3NTU5IDE2LjY5OTMgMyAxNi4yNzU0IDMgMTUuODMzM1YxMi41TTE0LjY2NjcgNi42NjY2N0wxMC41IDIuNU0xMC41IDIuNUw2LjMzMzMzIDYuNjY2NjdNMTAuNSAyLjVWMTIuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBteC0yXCI+VXBsb2FkIE11bHRpcGxlIFN0b3JlcyBOb0I8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS00MDAgZnctYm9sZCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5lLWJnIFwiPjxzdmcgd2lkdGg9XCIyMjRcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAyMjQgMlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB5PVwiMC41XCIgd2lkdGg9XCIyMjMuMzMzXCIgaGVpZ2h0PVwiMVwiIGZpbGw9XCIjRUFFQ0YwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj48c3BhbiBjbGFzcz1cIm14LTJcIj5PciA8L3NwYW4+IDxzcGFuIGNsYXNzPVwibGluZS1iZyBcIj48c3ZnIHdpZHRoPVwiMjI0XCIgaGVpZ2h0PVwiMlwiIHZpZXdCb3g9XCIwIDAgMjI0IDJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeT1cIjAuNVwiIHdpZHRoPVwiMjIzLjMzM1wiIGhlaWdodD1cIjFcIiBmaWxsPVwiI0VBRUNGMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJ1c2VyVHlwZS5yb2xlID09PSAndXNlcidcIiAgIHR5cGU9XCJyYWRpb1wiIGlkPVwia3RfYWNjb3VudF90ZWFtX3NpemVfc2VsZWN0XzFcIiB2YWx1ZT1cIjEtMVwiICAoY2xpY2spPVwiYWRkU2luZ2xlU3RvcmVOT0IoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tY2hlY2sgbmctdW50b3VjaGVkIG5nLXByaXN0aW5lIG5nLXZhbGlkXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImt0X2FjY291bnRfdGVhbV9zaXplX3NlbGVjdF8xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB3LTc1IHAtNCBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEuMTgwMTUgMy44MDM3OEwxLjEyNjkgMy44ODY5NUMwLjU2ODg2MyA0Ljg3NCAxLjE2NDY5IDYuMTIxNDMgMi4yMzYzIDYuMjY0NTJDMi4zMzMzOSA2LjI3NjM5IDIuNDIzNzMgNi4yODI2NyAyLjUxMiA2LjI4MjY3QzMuMDkwMTUgNi4yODI2NyAzLjYwMTMyIDYuMDM0NjUgMy45NTc1OSA1LjY0NzkyTDQuNTEwOTMgNS4wNDczTDUuMDYyMzggNS42NDk2NUM1LjQxNDMyIDYuMDM0MDcgNS45MjQzMyA2LjI4MjY3IDYuNTA2MzkgNi4yODI2N0M3LjA4NTgzIDYuMjgyNjcgNy41OTg3NyA2LjAzMzcyIDcuOTUwMzkgNS42NDk2NUw4LjUwMzU4IDUuMDQ1NDFMOS4wNTY3NiA1LjY0OTY1QzkuNDA4MzkgNi4wMzM3MiA5LjkyMTMzIDYuMjgyNjcgMTAuNTAwOCA2LjI4MjY3QzExLjA4MDIgNi4yODI2NyAxMS41OTMyIDYuMDMzNzIgMTEuOTQ0OCA1LjY0OTY1TDEyLjQ5OCA1LjA0NTQxTDEzLjA1MTEgNS42NDk2NUMxMy40MDI4IDYuMDMzNzIgMTMuOTE1NyA2LjI4MjY3IDE0LjQ5NTIgNi4yODI2N0MxNC41ODA1IDYuMjgyNjcgMTQuNjczNiA2LjI3NjM4IDE0Ljc3IDYuMjY0NjJDMTUuODY1MiA2LjExNTMgMTYuNDYzIDQuODAxMDMgMTUuODI0MyAzLjgwNDI4QzE1LjgyNDIgMy44MDQyMyAxNS44MjQyIDMuODA0MTcgMTUuODI0MiAzLjgwNDExTDE0LjA2NiAxLjA2MjdMMTQuMDY2IDEuMDYyN0wxNC4wNjUxIDEuMDYxMjNDMTQuMDQ5OSAxLjAzNzQgMTQuMDEyNCAxLjAxMTg0IDEzLjk2NTIgMS4wMTE4NEgzLjAzNTgxQzIuOTg4NjYgMS4wMTE4NCAyLjk1MTE3IDEuMDM3NCAyLjkzNTk3IDEuMDYxMjRMMi45MzUzNSAxLjA2MjJMMS4xODAxNSAzLjgwMzc4Wk0xNC4xNTE2IDguNzM3MDZWMTEuODY5VjEyLjYxOUgxMy40MDE2SDMuNTk5NDNIMi44NDk0M1YxMS44NjlWOC43Mzc1M0MyLjczOTIgOC43NDU3MyAyLjYyNzY4IDguNzQ5OTQgMi41MTUwNyA4Ljc0OTk0QzIuNDcyNzYgOC43NDk5NCAyLjQzMDc0IDguNzQ5MzEgMi4zODkgOC43NDgwOVYxMS44NjlWMTMuODAzNUMyLjM4OSAxNC40NDY5IDIuOTIyOSAxNC45ODggMy41OTk0MyAxNC45ODhIMTMuNDAxNkMxNC4wNzgxIDE0Ljk4OCAxNC42MTIgMTQuNDQ2OSAxNC42MTIgMTMuODAzNVYxMS44NjlWOC43NDgyN0MxNC41NzIyIDguNzQ5MzcgMTQuNTMyMiA4Ljc0OTk0IDE0LjQ5MjEgOC43NDk5NEMxNC4zNzc3IDguNzQ5OTQgMTQuMjY0MSA4Ljc0NTU5IDE0LjE1MTYgOC43MzcwNlpcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ib2xkIGZzLTQgbXgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIFNpbmdsZSBTdG9yZSBOb0I8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YVRhYmxlU2hvdyAmJiAhY2FyZGxvYWRpbmdcIiBjbGFzcz1cInJvdyBweC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgcGUtMFwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS10ZXh0IG1iLTJcIj5CaWxsaW5nIFN1bW1hcnkgVGFibGU8L3NwYW4+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC41XCIgeD1cIjE3LjAzNjVcIiB5PVwiMTUuMTIyM1wiIHdpZHRoPVwiOC4xNTU0NlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNoYW5nZSk9XCJzZWFyY2hEYXRhKClcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwcy0xNCBtZS0yXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ1c2VyVHlwZS5yb2xlICE9PSAndXNlcicgJiYgIW5vRGF0YSAmJiAhc2F2ZUJ0bkVuYmFsZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZWRpdFZhbHVlKHRhYmxlSGVhZGVycylcIiBbZGlzYWJsZWRdPVwiIWRhdGFDYWxjdWxhdGlvbj8uaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83NzE5XzgxMzcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuMTY2IDIuNDk5OTNDMTQuMzg0OSAyLjI4MTA2IDE0LjY0NDcgMi4xMDc0NCAxNC45MzA3IDEuOTg4OTlDMTUuMjE2NyAxLjg3MDU0IDE1LjUyMzIgMS44MDk1NyAxNS44MzI3IDEuODA5NTdDMTYuMTQyMiAxLjgwOTU3IDE2LjQ0ODcgMS44NzA1NCAxNi43MzQ3IDEuOTg4OTlDMTcuMDIwNiAyLjEwNzQ0IDE3LjI4MDUgMi4yODEwNiAxNy40OTkzIDIuNDk5OTNDMTcuNzE4MiAyLjcxODggMTcuODkxOCAyLjk3ODYzIDE4LjAxMDMgMy4yNjQ2QzE4LjEyODcgMy41NTA1NyAxOC4xODk3IDMuODU3MDYgMTguMTg5NyA0LjE2NjU5QzE4LjE4OTcgNC40NzYxMiAxOC4xMjg3IDQuNzgyNjIgMTguMDEwMyA1LjA2ODU5QzE3Ljg5MTggNS4zNTQ1NSAxNy43MTgyIDUuNjE0MzkgMTcuNDk5MyA1LjgzMzI2TDYuMjQ5MzUgMTcuMDgzM0wxLjY2NjAyIDE4LjMzMzNMMi45MTYwMiAxMy43NDk5TDE0LjE2NiAyLjQ5OTkzWlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF83NzE5XzgxMzdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkVkaXQ8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidXNlclR5cGUucm9sZSAhPT0gJ3VzZXInICYmICFub0RhdGEgJiYgIXNhdmVCdG5FbmJhbGVcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIlJldXBsb2FkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPlJlLVVwbG9hZCBOb0I8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhbm9EYXRhICYmICFzYXZlQnRuRW5iYWxlXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJleHBvcnRYTFNYKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4xMjUgMTMuMTI1SDE2LjM1NjJMMTQuNzQzOCAxNC43NDM4TDE1LjYyNSAxNS42MjVMMTguNzUgMTIuNUwxNS42MjUgOS4zNzVMMTQuNzQzOCAxMC4yNTYyTDE2LjM1NjIgMTEuODc1SDguMTI1VjEzLjEyNVpcIiBmaWxsPVwiYmxhY2tcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEzLjc1IDguNzUwMDFWNi4yNTAwMUMxMy43NTA1IDYuMTY3NzYgMTMuNzM0NyA2LjA4NjIyIDEzLjcwMzYgNi4wMTAwN0MxMy42NzI1IDUuOTMzOTIgMTMuNjI2NyA1Ljg2NDY2IDEzLjU2ODggNS44MDYyNkw5LjE5Mzc1IDEuNDMxMjZDOS4xMzUzNSAxLjM3MzMzIDkuMDY2MDkgMS4zMjc1MSA4Ljk4OTk0IDEuMjk2NEM4LjkxMzc5IDEuMjY1MyA4LjgzMjI1IDEuMjQ5NTMgOC43NSAxLjI1MDAxSDIuNUMyLjE2ODQ4IDEuMjUwMDEgMS44NTA1NCAxLjM4MTcxIDEuNjE2MTIgMS42MTYxM0MxLjM4MTcgMS44NTA1NSAxLjI1IDIuMTY4NDkgMS4yNSAyLjUwMDAxVjE3LjVDMS4yNSAxNy44MzE1IDEuMzgxNyAxOC4xNDk1IDEuNjE2MTIgMTguMzgzOUMxLjg1MDU0IDE4LjYxODMgMi4xNjg0OCAxOC43NSAyLjUgMTguNzVIMTIuNUMxMi44MzE1IDE4Ljc1IDEzLjE0OTUgMTguNjE4MyAxMy4zODM5IDE4LjM4MzlDMTMuNjE4MyAxOC4xNDk1IDEzLjc1IDE3LjgzMTUgMTMuNzUgMTcuNVYxNi4yNUgxMi41VjE3LjVIMi41VjIuNTAwMDFINy41VjYuMjUwMDFDNy41IDYuNTgxNTMgNy42MzE3IDYuODk5NDcgNy44NjYxMiA3LjEzMzg5QzguMTAwNTQgNy4zNjgzMSA4LjQxODQ4IDcuNTAwMDEgOC43NSA3LjUwMDAxSDEyLjVWOC43NTAwMUgxMy43NVpNOC43NSA2LjI1MDAxVjIuNzU2MjZMMTIuMjQzOCA2LjI1MDAxSDguNzVaXCIgZmlsbD1cImJsYWNrXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+RXhwb3J0PC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNhdmUgQnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgICpuZ0lmPVwidXNlclR5cGUucm9sZSAhPT0gJ3VzZXInICYmICFub0RhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNhdmVCdG5FbmJhbGVcIiAgKGNsaWNrKT1cImNhbmNlbCh0YWJsZUhlYWRlcnMpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IG14LTIgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyVHlwZS5yb2xlICE9PSAndXNlcicgJiYgIW5vRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2F2ZUJ0bkVuYmFsZVwiIChjbGljayk9XCJzYXZlVmFsdWUoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBteC0yIGJ0bi1wcmltYXJ5IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY2NyAxNy41VjEwLjgzMzNINS44MzMzM1YxNy41TTUuODMzMzMgMi41VjYuNjY2NjdIMTIuNU0xNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWNC4xNjY2N0MyLjUgMy43MjQ2NCAyLjY3NTU5IDMuMzAwNzIgMi45ODgxNiAyLjk4ODE2QzMuMzAwNzIgMi42NzU1OSAzLjcyNDY0IDIuNSA0LjE2NjY3IDIuNUgxMy4zMzMzTDE3LjUgNi42NjY2N1YxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPlNhdmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TdG9yZSBOYW1lPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TdG9yZSBJRDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RGF0ZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PHNwYW4gKm5nSWY9XCJkYXRhQ2FsY3VsYXRpb24/LmNvbnZlcnRpb25DYWxjdWxhdGlvbiA9PT0nZm9vdGZhbGwtY291bnQnXCI+Rm9vdGZhbGw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhQ2FsY3VsYXRpb24/LmNvbnZlcnRpb25DYWxjdWxhdGlvbiA9PT0nZW5nYWdlcnMtY291bnQnXCI+RW5nYWdlcnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhQ2FsY3VsYXRpb24/LmNvbnZlcnRpb25DYWxjdWxhdGlvbiA9PT0nYmlsbGFibGUtZW50aXRpZXMnXCI+UG90ZW50aWFsIEJ1eWVyczwvc3Bhbj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5vQuKAmXMgQ291bnQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkNvbnZlcnNpb24gUmF0ZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiZnctc2VtaWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgb2JqIG9mIHRhYmxlSGVhZGVyczsgbGV0IGkgPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5zdG9yZU5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7b2JqLnN0b3JlSWR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7b2JqLm5vYkRhdGUgfCBkYXRlOidkZCBNTU0sIHl5eXknfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4gPHNwYW4gKm5nSWY9XCJkYXRhQ2FsY3VsYXRpb24/LmNvbnZlcnRpb25DYWxjdWxhdGlvbiA9PT0nZm9vdGZhbGwtY291bnQnXCI+e3tvYmouZm9vdGZhbGxDb3VudCA/IG9iai5mb290ZmFsbENvdW50OictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhQ2FsY3VsYXRpb24/LmNvbnZlcnRpb25DYWxjdWxhdGlvbiA9PT0nZW5nYWdlcnMtY291bnQnXCI+e3tvYmouZW5nYWdlcnNDb3VudCA/IG9iai5lbmdhZ2Vyc0NvdW50IDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YUNhbGN1bGF0aW9uPy5jb252ZXJ0aW9uQ2FsY3VsYXRpb24gPT09J2JpbGxhYmxlLWVudGl0aWVzJ1wiPnt7b2JqLnBvdGVudGlhbEJ1eWVycyA/IG9iai5wb3RlbnRpYWxCdXllcnM6Jy0tJ319PC9zcGFuPjwvdGQ+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJlYWQtb25seSBub2JDb3VudCB3aGVuIG5vdCBpbiBlZGl0aW5nIG1vZGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAgKm5nSWY9XCIoIWlzRWRpdGluZ1tvYmouc3RvcmVJZF0gJiYgb2JqLmlzVXBkYXRlZCkgfHwgKCFpc0VkaXRpbmdbb2JqLnN0b3JlSWRdICYmICFvYmouaXNVcGRhdGVkKVwiPnt7IG9iai5ub2JDb3VudCAhPT0gdW5kZWZpbmVkID8gb2JqLm5vYkNvdW50IDogJy0tJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW5wdXQgZmllbGQgd2hlbiBpbiBlZGl0aW5nIG1vZGUgKGlmIGlzVXBkYXRlZCBpcyBmYWxzZSkgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNFZGl0aW5nW29iai5zdG9yZUlkXSAmJiAhb2JqLmlzVXBkYXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLXNtIGZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJvYmoubm9iQ291bnRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlTm9iQ291bnQob2JqKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgTm9iIENvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvYmouY29udmVyc2lvblJhdGUgPyBvYmouY29udmVyc2lvblJhdGUgOictLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiIGNsYXNzPVwiY29sLXh4bC0xMiBjb2wtbWQtMTIgY29sLXhsLTEyIGNvbC1sZy0xMiBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwibGltaXRcIiBbY3VycmVudFBhZ2VdPVwib2Zmc2V0XCIgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwibGltaXRcIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBoLTI3NXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXIgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGEtdGFibGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIHN1bW1hcnkgdGFibGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFUYWJsZVNob3cgJiYgIWNhcmRsb2FkaW5nXCIgY2xhc3M9XCJub3RpY2UgZC1mbGV4IHJvdW5kZWQgYm9yZGVyLXByaW1hcnkgYm9yZGVyIHAtNlwiPlxyXG4gICAgICAgICAgICA8c3Bhbj48c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMjggMzJWMjhNMjggMjRIMjguMDFNMzggMjhDMzggMzMuNTIyOCAzMy41MjI4IDM4IDI4IDM4QzIyLjQ3NzIgMzggMTggMzMuNTIyOCAxOCAyOEMxOCAyMi40NzcyIDIyLjQ3NzIgMTggMjggMThDMzMuNTIyOCAxOCAzOCAyMi40NzcyIDM4IDI4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXN0YWNrIGZsZXgtZ3Jvdy0xIGZsZXgtd3JhcCBmbGV4LW1kLW5vd3JhcFwiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwibWItMyBtYi1tZC0wIGZ3LWJvbGQgbXMtM1wiPlxyXG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJub2ItdXBsb2FkLXRpdGxlXCI+UE9TIEludGVncmF0aW9uIC0gRm9yIEFjY3VyYXRlIENvbnZlcnNpb25zPC9oND5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vYi11cGxvYWQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgUGxlYXNlIGNvbnRhY3QgeW91ciBUYW5nbyBBY2NvdW50IE1hbmFnZXIgdG8gSW50ZWdyYXRlIHlvdXIgUE9TXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhICpuZ0lmPVwiZGF0YVRhYmxlU2hvd1wiIChjbGljayk9XCJvcGVuTWFpbFRvKClcIiAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNiBhbGlnbi1zZWxmLWNlbnRlciB0ZXh0LW5vd3JhcCBjdXJzb3ItcG9pbnRlclwiPkNvbnRhY3QgVXM8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|
|
@@ -5153,7 +5153,7 @@ class NobUploadComponent {
|
|
|
5153
5153
|
if (this.NOBdata.length > 0) {
|
|
5154
5154
|
this.convertedData = {
|
|
5155
5155
|
bills: this.NOBdata.map((element) => ({
|
|
5156
|
-
storeCode: element.storeCode,
|
|
5156
|
+
storeCode: element.storeCode ? element.storeCode : element.storeId,
|
|
5157
5157
|
nobDate: this.datePipe.transform(element.nobDate, "yyyy-MM-dd"),
|
|
5158
5158
|
nobCount: Number(element.nobCount),
|
|
5159
5159
|
})),
|