@rivet-health/design-system 30.0.0 → 30.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/table/table/table/table.component.mjs +2 -2
- package/fesm2015/rivet-health-design-system.mjs +1 -1
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +1 -1
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -131,7 +131,7 @@ export class TableComponent {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
getEnabledCount(columns) {
|
|
134
|
-
return columns.filter(c => c.
|
|
134
|
+
return columns.filter(c => c.enabled).length;
|
|
135
135
|
}
|
|
136
136
|
dropEnabledState(enabled, enabledColumnCount) {
|
|
137
137
|
if (this.draggedColumnKey !== null && this.draggedColumnIdx !== null) {
|
|
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
229
229
|
type: HostListener,
|
|
230
230
|
args: ['document:keyup', ['$event']]
|
|
231
231
|
}] } });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjcEMsTUFBTSxPQUFPLGNBQWM7SUFOM0I7UUEwQ1csWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3ZDLDZCQUF3QixHQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFpQ0osOEVBQThFO1FBQzlFLHVGQUF1RjtRQUN2RixxRkFBcUY7UUFDckYsdUZBQXVGO1FBQ3ZGLG9GQUFvRjtRQUNwRiw4QkFBOEI7UUFDOUIsbUJBQWMsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztZQUMzQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDckUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDO1FBT08sb0JBQWUsR0FBNEM7WUFDbEU7Z0JBQ0UsT0FBTyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDM0MsRUFBRSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0JBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO29CQUMxQixLQUFLLEVBQUUsUUFBUTtpQkFDaEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRixDQUFDO1FBRU8sZUFBVSxHQUF5QyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUNyRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ0EsaUJBQVksR0FBNkMsQ0FDaEUsQ0FBQyxFQUNELEtBQUssRUFDTCxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDaEIsa0JBQWEsR0FBNEMsQ0FDaEUsQ0FBQyxFQUNELE1BQU0sRUFDTixFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUVDLG9CQUFlLEdBQW1CLElBQUksR0FBRyxFQUFFLENBQUM7UUF3QjdELHFCQUFnQixHQUFrQixJQUFJLENBQUM7UUFDdkMscUJBQWdCLEdBQWEsSUFBSSxDQUFDO1FBQ2xDLHlCQUFvQixHQUFrQixJQUFJLENBQUM7UUF3RG5DLFVBQUssR0FBWSxLQUFLLENBQUM7S0FxRGhDO0lBN01DLGVBQWU7UUFDYixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDN0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUM5RCxDQUFDO1lBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxjQUFjLEVBQUU7Z0JBQ3JDLDREQUE0RDtnQkFDNUQsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPO3FCQUNwQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO3FCQUNyQixPQUFPLEVBQUUsRUFBRTtvQkFDWixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FDM0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUN4RCxDQUFDO29CQUNGLElBQUksaUJBQWlCLEdBQUcsY0FBYyxFQUFFO3dCQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7NEJBQ3pCLElBQUksRUFBRSx5QkFBeUI7NEJBQy9CLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQzs0QkFDWixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7eUJBQ2QsQ0FBQyxDQUFDO3dCQUNILE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQWVELFdBQVc7UUFDVCxRQUFRLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBd0JELFFBQVEsQ0FBQyxNQUFTLEVBQUUsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELElBQUksY0FBYyxFQUFFO2dCQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLE1BQU07b0JBQ04sY0FBYyxFQUFFLGNBQWM7aUJBQy9CLENBQUMsQ0FBQzthQUNKO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFDRCxRQUFRLENBQUMsTUFBOEI7UUFDckMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNyQjtJQUNILENBQUM7SUFNRCxTQUFTLENBQUMsR0FBVyxFQUFFLEdBQU07UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZTtRQUN0QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZSxFQUFFLGtCQUEwQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDcEMsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLFNBQVM7YUFDM0MsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQW1DO1FBQ2pELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDOUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWdCLEVBQUUsa0JBQTBCO1FBQzNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFO1lBQ3BFLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUM3RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUN6QixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtvQkFDN0IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSxVQUFVO2lCQUNuQixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBVTtRQUN4QixJQUFJLENBQUMsWUFBWSxLQUFLO1lBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJO1lBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7O1lBQ3hELE9BQU8sb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUtELE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUdELEtBQUssQ0FBQyxLQUFvQjtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFjLEVBQUUsUUFBaUI7UUFDL0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsRUFBRSxFQUFFLEtBQUs7WUFDVCxRQUFRO1lBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUIsRUFBRSxNQUE4QjtRQUMzRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUI7WUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkQsSUFBSSxNQUFNLENBQUMsb0JBQW9CO1lBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FDZixPQUF5QjtRQUV6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUIsQ0FDZixPQUF5QjtRQUV6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxDQUF1QyxFQUN2QyxRQUFnQixFQUNoQixNQUE4QjtRQUU5QixpRUFBaUU7UUFDakUseURBQXlEO1FBQ3pELE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBbUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUVqRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsT0FBTyxXQUFXLEdBQUcsQ0FBQyxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7MkdBeFBVLGNBQWM7K0ZBQWQsY0FBYyx1dUJDNUIzQiw2M3JCQThoQkE7MkZEbGdCYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTs4QkFVL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxNQUFNO2dCQU9wQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsU0FBUztnQkFNdkIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE1BQU07Z0JBSXBCLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxXQUFXO2dCQUl6QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsUUFBUTtnQkFJdEIsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLFdBQVc7Z0JBeUt6QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTVDLEtBQUs7c0JBREosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHN1bSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUml2U2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvc2VsZWN0L3N0YXRlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG50eXBlIFBhZ2VTaXplT3B0aW9uID0ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAgPSB7IGtleTogJycgfSxcbj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgbWFuYWdlcj86IFJpdlRhYmxlLk1hbmFnZXI8UiwgQywgRiwgRz47XG5cbiAgQENvbnRlbnRDaGlsZCgnY2VsbCcpXG4gIGNlbGxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHtcbiAgICByb3c6IFJpdlRhYmxlLkZ1bGxSb3c8Uj47XG4gICAgY29sdW1uOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+O1xuICB9PjtcblxuICBAQ29udGVudENoaWxkKCdzdW1tYXJ5JylcbiAgc3VtbWFyeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgIGNvbHVtbjogUml2VGFibGUuRnVsbENvbHVtbjxDPjtcbiAgfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnbWVudScpXG4gIG1lbnVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgcm93OiBSaXZUYWJsZS5GdWxsUm93PFI+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGlvbicpXG4gIHNlbGVjdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEYsIEc+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEYsIEc+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3N1YmhlYWRlcicpXG4gIHN1YmhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgIHN0YXRlOiBSaXZUYWJsZS5GdWxsU3RhdGU8UiwgQywgRiwgRz47XG4gICAgZ3JvdXA6IFJpdlRhYmxlLlJvd0dyb3VwPFIsIEc+O1xuICB9PjtcblxuICByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICByZWFkb25seSBjb250YWluZXJTaXplID0gbmV3IFN1YmplY3Q8RE9NUmVjdD4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uQ2FsbG91dFBvc2l0aW9uOiBPYnNlcnZhYmxlPERPTVJlY3Q+ID1cbiAgICB0aGlzLmNvbnRhaW5lclNpemUucGlwZShcbiAgICAgIG1hcChyZWN0ID0+IG5ldyBET01SZWN0KHJlY3QueCArIDQ0LCByZWN0LnkgLSAxMiwgMCwgMCkpLFxuICAgICk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubWFuYWdlciEuc3RhdGUsIHRoaXMuY29udGFpbmVyU2l6ZV0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKFtzdGF0ZSwgY29udGFpbmVyU2l6ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJTaXplLndpZHRoO1xuICAgICAgICBjb25zdCB0b3RhbEZyb3plbldpZHRoID0gc3VtKFxuICAgICAgICAgIHN0YXRlLmRpc3BsYXkuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnBpbm5lZCkubWFwKGMgPT4gYy53aWR0aCksXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0b3RhbEZyb3plbldpZHRoID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAvLyBDaGVjayBob3cgbWFueSBjb2x1bW5zIGNhbiBiZSBwaW5uZWQgd2l0aG91dCBvdmVyZmxvd2luZy5cbiAgICAgICAgICBmb3IgKGNvbnN0IFtpXSBvZiBzdGF0ZS5kaXNwbGF5LmNvbHVtbnNcbiAgICAgICAgICAgIC5maWx0ZXIoYyA9PiBjLnBpbm5lZClcbiAgICAgICAgICAgIC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlZEZyb3plbldpZHRoID0gc3VtKFxuICAgICAgICAgICAgICBzdGF0ZS5kaXNwbGF5LmNvbHVtbnMuc2xpY2UoMCwgaSArIDEpLm1hcChjID0+IGMud2lkdGgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzbGljZWRGcm96ZW5XaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnY29sdW1uc0ZyZWV6ZVVwVG9DaGFuZ2UnLFxuICAgICAgICAgICAgICAgIGluZGV4OiBpIC0gMSxcbiAgICAgICAgICAgICAgICBmcmVlemU6IGkgPiAwLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gIH1cblxuICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgd2hlbiB3ZSBoYXZlIGVudGVyZWQgYSBkcm9wIHpvbmUgZm9yIGFwcGx5aW5nIG91ciB2aXN1YWxcbiAgLy8gdHJlYXRtZW50LiBIb3dldmVyLCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBkcm9wIGV2ZW50LCB5b3UgbXVzdCBjYWxsIHByZXZlbnREZWZhdWx0XG4gIC8vIG9uIHRoZSBkcmFnb3Zlci4gV2UgYXJlIGhhbmRsaW5nIHRoaXMgbmF0aXZlbHkgb24gdGhlIGRvY3VtZW50LCBvdXRzaWRlIG9mIGFuZ3VsYXJcbiAgLy8gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uIElmIHdlIGhhdmUgYSBkcmFnZ2VkT3ZlckNvbHVtbklkeCBhbmQgd2UgZHJhZyBvdmVyIGFuXG4gIC8vIGVsZW1lbnQgd2l0aCBjbGFzcyBkcm9wLXpvbmUsIHdlIHdpbGwgYXNzdW1lIHlvdSB3YW50IHRvIHRoZSBkcm9wIGVsZW1lbnQgZW5hYmxlZFxuICAvLyBhbmQgd2Ugd2lsbCBwcmV2ZW50RGVmYXVsdC5cbiAgaGFuZGxlRHJhZ092ZXIgPSAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCAhPSBudWxsICYmIHRhcmdldC5jbG9zZXN0KCcuZHJvcC16b25lJykpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gICAgdGhpcy5kZXN0cm95Lm5leHQobnVsbCk7XG4gIH1cblxuICByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnM6IFJpdlNlbGVjdC5PcHRpb25Hcm91cDxQYWdlU2l6ZU9wdGlvbj5bXSA9IFtcbiAgICB7XG4gICAgICBvcHRpb25zOiBSaXZUYWJsZS5wYWdlU2l6ZXMubWFwKHBhZ2VTaXplID0+ICh7XG4gICAgICAgIGlkOiBwYWdlU2l6ZS50b1N0cmluZygpLFxuICAgICAgICB0aXRsZTogcGFnZVNpemUudG9TdHJpbmcoKSxcbiAgICAgICAgdmFsdWU6IHBhZ2VTaXplLFxuICAgICAgfSkpLFxuICAgIH0sXG4gIF07XG5cbiAgcmVhZG9ubHkgdHJhY2tCeVJvdzogVHJhY2tCeUZ1bmN0aW9uPFJpdlRhYmxlLkZ1bGxSb3c8Uj4+ID0gKF8sIHJvdykgPT5cbiAgICByb3cuaWQ7XG4gIHJlYWRvbmx5IHRyYWNrQnlHcm91cDogVHJhY2tCeUZ1bmN0aW9uPFJpdlRhYmxlLlJvd0dyb3VwPFIsIEc+PiA9IChcbiAgICBfLFxuICAgIGdyb3VwLFxuICApID0+IGdyb3VwLmdyb3VwRGF0YS5rZXk7XG4gIHJlYWRvbmx5IHRyYWNrQnlDb2x1bW46IFRyYWNrQnlGdW5jdGlvbjxSaXZUYWJsZS5GdWxsQ29sdW1uPEM+PiA9IChcbiAgICBfLFxuICAgIGNvbHVtbixcbiAgKSA9PiBjb2x1bW4ua2V5O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcG9yYXJ5V2lkdGhzOiBNYXA8QywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcbiAgc2V0V2lkdGgoY29sdW1uOiBDLCB3aWR0aDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh3aWR0aCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVtcG9yYXJ5V2lkdGggPSB0aGlzLnRlbXBvcmFyeVdpZHRocy5nZXQoY29sdW1uKTtcbiAgICAgIGlmICh0ZW1wb3JhcnlXaWR0aCkge1xuICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgICAgdHlwZTogJ2NvbHVtbldpZHRoQ2hhbmdlJyxcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgcHJlZmVycmVkV2lkdGg6IHRlbXBvcmFyeVdpZHRoLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcG9yYXJ5V2lkdGhzLmRlbGV0ZShjb2x1bW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRlbXBvcmFyeVdpZHRocy5zZXQoY29sdW1uLCB3aWR0aCk7XG4gICAgfVxuICB9XG4gIGdldFdpZHRoKGNvbHVtbjogUml2VGFibGUuRnVsbENvbHVtbjxDPik6IG51bWJlciB7XG4gICAgaWYgKHRoaXMudGVtcG9yYXJ5V2lkdGhzLmhhcyhjb2x1bW4ua2V5KSkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KHRoaXMudGVtcG9yYXJ5V2lkdGhzLmdldChjb2x1bW4ua2V5KSEsIGNvbHVtbi5taW5XaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb2x1bW4ud2lkdGg7XG4gICAgfVxuICB9XG5cbiAgZHJhZ2dlZENvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGRyYWdnZWRDb2x1bW5LZXk6IEMgfCBudWxsID0gbnVsbDtcbiAgZHJhZ2dlZE92ZXJDb2x1bW5JZHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIGRyYWdTdGFydChpZHg6IG51bWJlciwga2V5OiBDKSB7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ID0gaWR4O1xuICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IGtleTtcbiAgfVxuXG4gIGRyYWdPdmVyKG9udG9JZHg6IG51bWJlcikge1xuICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBvbnRvSWR4O1xuICB9XG5cbiAgZHJvcChvbnRvSWR4OiBudW1iZXIsIGVuYWJsZWRDb2x1bW5Db3VudDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBvbnRvSWR4LFxuICAgICAgICBzb3VyY2U6ICd0YWJsZURyYWcnLFxuICAgICAgICBjb2x1bW46IHRoaXMuZHJhZ2dlZENvbHVtbktleSB8fCB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVuYWJsZWQgPSBvbnRvSWR4IDwgZW5hYmxlZENvbHVtbkNvdW50O1xuICAgICAgdGhpcy5kcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQsIGVuYWJsZWRDb2x1bW5Db3VudCk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0RW5hYmxlZENvdW50KGNvbHVtbnM6IFJpdlRhYmxlLkZ1bGxDb2x1bW48YW55PltdKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29sdW1ucy5maWx0ZXIoYyA9PiBjLnBpbm5lZCkubGVuZ3RoO1xuICB9XG5cbiAgZHJvcEVuYWJsZWRTdGF0ZShlbmFibGVkOiBib29sZWFuLCBlbmFibGVkQ29sdW1uQ291bnQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmRyYWdnZWRDb2x1bW5LZXkgIT09IG51bGwgJiYgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpc0VuYWJsZWQgPSBlbmFibGVkQ29sdW1uQ291bnQgPiB0aGlzLmRyYWdnZWRDb2x1bW5JZHg7XG4gICAgICBjb25zdCBzaG91bGRGaXJlID0gZW5hYmxlZCA/ICFpc0VuYWJsZWQgOiBpc0VuYWJsZWQ7XG4gICAgICBpZiAoc2hvdWxkRmlyZSkge1xuICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgICAgIGNvbHVtbjogdGhpcy5kcmFnZ2VkQ29sdW1uS2V5LFxuICAgICAgICAgIGVuYWJsZWQ6IGVuYWJsZWQsXG4gICAgICAgICAgc291cmNlOiAnZHJhZ0Ryb3AnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG51bGw7XG4gICAgICB0aGlzLmRyYWdnZWRDb2x1bW5LZXkgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gZS5tZXNzYWdlO1xuICAgIGlmICh0eXBlb2YgZSA9PT0gJ3N0cmluZycpIHJldHVybiBlO1xuICAgIGlmICh0eXBlb2YgZSA9PT0gJ29iamVjdCcgJiYgZSAhPT0gbnVsbCkgcmV0dXJuIGUudG9TdHJpbmcoKTtcbiAgICBlbHNlIHJldHVybiAnQW4gZXJyb3Igb2NjdXJyZWQuJztcbiAgfVxuXG4gIHByaXZhdGUgc2hpZnQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAga2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHRoaXMuc2hpZnQgPSBldmVudC5zaGlmdEtleTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcbiAga2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnNoaWZ0ID0gZXZlbnQuc2hpZnRLZXk7XG4gIH1cblxuICBzZWxlY3Rpb25DaGFuZ2Uocm93SWQ6IFJbJ2lkJ10sIHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ3Jvd1NlbGVjdGVkQ2hhbmdlJyxcbiAgICAgIGlkOiByb3dJZCxcbiAgICAgIHNlbGVjdGVkLFxuICAgICAgY29udGlndW91czogdGhpcy5zaGlmdCxcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBjb2x1bW46IFJpdlRhYmxlLkZ1bGxDb2x1bW48Qz4pIHtcbiAgICBpZiAoY29sdW1uLmNsaWNrUHJldmVudERlZmF1bHQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGNvbHVtbi5jbGlja1N0b3BQcm9wYWdhdGlvbikgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBpc0V4dGVybmFsUm93TGluayhcbiAgICByb3dMaW5rOiBSaXZUYWJsZS5Sb3dMaW5rLFxuICApOiByb3dMaW5rIGlzIFJpdlRhYmxlLkV4dGVybmFsUm93TGluayB7XG4gICAgcmV0dXJuIHJvd0xpbmsudHlwZSA9PT0gJ2V4dGVybmFsJztcbiAgfVxuXG4gIGlzSW50ZXJuYWxSb3dMaW5rKFxuICAgIHJvd0xpbms6IFJpdlRhYmxlLlJvd0xpbmssXG4gICk6IHJvd0xpbmsgaXMgUml2VGFibGUuSW50ZXJuYWxSb3dMaW5rIHtcbiAgICByZXR1cm4gcm93TGluay50eXBlID09PSAnaW50ZXJuYWwnO1xuICB9XG5cbiAgbmVlZHNSaWdodEJvcmRlcjxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPihcbiAgICBzOiBSaXZUYWJsZS5GdWxsU3RhdGU8YW55LCBDLCBhbnksIGFueT4sXG4gICAgcm93SW5kZXg6IG51bWJlcixcbiAgICBjb2x1bW46IFJpdlRhYmxlLkZ1bGxDb2x1bW48Qz4sXG4gICk6IGJvb2xlYW4ge1xuICAgIC8vIE5lZWQgdG8gY2hlY2sgaWYgdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQgaGFzIGEgcm93IHNwYW4gPiAxIE9SXG4gICAgLy8gaWYgdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQgd291bGQgaGF2ZSBhIHJvdyBzcGFuIG9mIDAuXG4gICAgY29uc3QgY29scyA9IHMuZGlzcGxheS5jb2x1bW5zIGFzIFJpdlRhYmxlLkZ1bGxDb2x1bW48Qz5bXTtcbiAgICBjb25zdCBpID0gY29scy5maW5kSW5kZXgoYyA9PiBjLmtleSA9PT0gY29sdW1uLmtleSk7XG4gICAgaWYgKGkgPCAwIHx8IGkgPT09IGNvbHMubGVuZ3RoIC0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgcmlnaHRDb2wgPSBjb2xzW2kgKyAxXTtcbiAgICBjb25zdCBzcGFuT25SaWdodCA9IHMuZGlzcGxheS5jZWxsUm93U3Bhbihyb3dJbmRleCwgcmlnaHRDb2wua2V5KTtcbiAgICByZXR1cm4gc3Bhbk9uUmlnaHQgPiAxIHx8IHNwYW5PblJpZ2h0ID09PSAwO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYzsgbGV0IHNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGlvbkNhbGxvdXRQb3NpdGlvbiB8IGFzeW5jOyBsZXQgcG9zaXRpb25cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicy5zZWxlY3Rpb24uc2VsZWN0ZWRDb3VudCA+IDAgJiYgc2VsZWN0aW9uVGVtcGxhdGVcIj5cbiAgICAgIDxyaXYtY2FsbG91dFxuICAgICAgICAqcml2LW92ZXJsYXlcbiAgICAgICAgW2FuY2hvcl09XCJwb3NpdGlvblwiXG4gICAgICAgIFtpc01vZGFsXT1cImZhbHNlXCJcbiAgICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgICBbc2hvd0NhcmV0XT1cImZhbHNlXCJcbiAgICAgICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIid0b3AtcmlnaHQnXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0aW9uVGVtcGxhdGU7IGNvbnRleHQ6IHsgc3RhdGU6IHMgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvcml2LWNhbGxvdXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICA8aGVhZGVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyBzdGF0ZTogcyB9XCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2hlYWRlcj5cbiAgICA8cml2LWxvYWRpbmctY292ZXJcbiAgICAgIGNsYXNzPVwiY29udGFpbmVyLWxvYWRlci13cmFwcGVyXCJcbiAgICAgIFtsb2FkaW5nXT1cInMubG9hZC5sb2FkaW5nXCJcbiAgICAgIFtlcnJvck1lc3NhZ2VdPVwicy5sb2FkLmVycm9yID8gZ2V0RXJyb3JNZXNzYWdlKHMubG9hZC5lcnJvcikgOiB1bmRlZmluZWRcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb250YWluZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2NvbnRhaW5lci11bmdyb3VwZWQnOiAhcy5yZXN1bHQuaXNHcm91cGVkLFxuICAgICAgICAgICdoYXMtaGVhZGVyJzogIXMucmVzdWx0LmlzR3JvdXBlZCAmJiBoZWFkZXJUZW1wbGF0ZSxcbiAgICAgICAgICAnd2l0aG91dC1jb2x1bW5zJzogcy5kaXNwbGF5LmNvbHVtbnMubGVuZ3RoID09PSAwXG4gICAgICAgIH1cIlxuICAgICAgICAocml2Q2xpZW50U2l6ZSk9XCJjb250YWluZXJTaXplLm5leHQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxyaXYtemVyby1zdGF0ZVxuICAgICAgICAgICpuZ0lmPVwicy5kaXNwbGF5LmNvbHVtbnMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICBjbGFzcz1cIm5vLWNvbHVtbnMtbWVzc2FnZVwiXG4gICAgICAgICAgW21lc3NhZ2VdPVwiXG4gICAgICAgICAgICAnQWxsIGNvbHVtbnMgZGlzYWJsZWQuIEVuYWJsZSBhdCBsZWFzdCBvbmUgY29sdW1uIHRvIHZpZXcgdGFibGUgZGF0YS4nXG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvcml2LXplcm8tc3RhdGU+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCBncm91cCBvZiBzLnJlc3VsdC5pc0dyb3VwZWRcbiAgICAgICAgICAgICAgPyBzLnJlc3VsdC5yb3dHcm91cHNcbiAgICAgICAgICAgICAgOiBbcy5yZXN1bHQucm93c0FzR3JvdXBdO1xuICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUdyb3VwO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSBsYXN0XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgIHN1YmhlYWRlclRlbXBsYXRlIHx8IG51bGw7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHsgc3RhdGU6IHMsIGdyb3VwIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnc3ViY29udGFpbmVyLWdyb3VwZWQnOiBzLnJlc3VsdC5pc0dyb3VwZWQgfVwiPlxuICAgICAgICAgICAgPHRhYmxlPlxuICAgICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFzLnNlbGVjdGlvbi5hbGxvd1NlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0aW9uLWhlYWRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93U2VsZWN0aW9uICE9PSAnaW5kaXZpZHVhbCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93U2VsZWN0aW9uID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHJpdi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcy5yZXN1bHQuaXNHcm91cGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzLnNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkID09PSAnaW5kZXRlcm1pbmF0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnYWxsU2VsZWN0ZWRDaGFuZ2UnIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICA8cml2LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInMucmVzdWx0LmlzR3JvdXBlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ3JvdXAuc2VsZWN0ZWQgPT09IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiZ3JvdXAuc2VsZWN0ZWQgPT09ICdpbmRldGVybWluYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdncm91cFNlbGVjdGlvbkNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcml2LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBzLmRpc3BsYXkuY29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5waW5uZWRdPVwiY29sdW1uLnBpbm5lZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImdldFdpZHRoKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgZHJvcHBhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcC16b25lXCJcbiAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoaSwgY29sdW1uLmtleSlcIlxuICAgICAgICAgICAgICAgICAgICAoZHJhZ2VudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcihpKVwiXG4gICAgICAgICAgICAgICAgICAgIChkcm9wKT1cImRyb3AoaSwgZ2V0RW5hYmxlZENvdW50KHMuZGlzcGxheS5jb2x1bW5zKSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZHJhZ2dlZC1vdmVyLWxlZnRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci1yaWdodF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkT3ZlckNvbHVtbklkeCA9PT0gaSAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4IDwgaVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2x1bW4ub3JkZXJhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhY29sdW1uLmZpbHRlcmFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFzLmRpc3BsYXkuY29sdW1uc0FyZUZyZWV6YWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXMuZGlzcGxheS5jb2x1bW5zQXJlSGlkZWFibGVcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5sZWZ0XT1cImNvbHVtbi5hbGlnbm1lbnQgPT09ICdsZWZ0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnJpZ2h0XT1cImNvbHVtbi5hbGlnbm1lbnQgPT09ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5rZXkpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8cml2LW1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLm9yZGVyYWJsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLmZpbHRlcmFibGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHMuZGlzcGxheS5jb2x1bW5zQXJlRnJlZXphYmxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzLmRpc3BsYXkuY29sdW1uc0FyZUhpZGVhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGVmdF09XCJjb2x1bW4uYWxpZ25tZW50ID09PSAnbGVmdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucmlnaHRdPVwiY29sdW1uLmFsaWdubWVudCA9PT0gJ3JpZ2h0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicy5xdWVyeS5vcmRlcj8uY29sdW1uID09PSBjb2x1bW4ua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5rZXkpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cml2LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjEyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnF1ZXJ5Lm9yZGVyPy5kaXJlY3Rpb24gPT09ICdkZXNjJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ0Fycm93RG93bidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdBcnJvd1VwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9yaXYtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cml2LXRhYmxlLWhlYWRlci1yZXNpemUtaGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnUmVzaXplKT1cInNldFdpZHRoKGNvbHVtbi5rZXksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcml2LXRhYmxlLWhlYWRlci1yZXNpemUtaGFuZGxlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5vcmRlcmFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5xdWVyeS5vcmRlcj8uY29sdW1uID09PSBjb2x1bW4ua2V5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnF1ZXJ5Lm9yZGVyPy5kaXJlY3Rpb24gPT09ICdhc2MnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdvcmRlckNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdoZWFkZXJNZW51JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnYXNjJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBhc2NlbmRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInMucXVlcnkub3JkZXI/LmNvbHVtbiA9PT0gY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ29yZGVyQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogJ2hlYWRlck1lbnUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW92ZSBzb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5xdWVyeS5vcmRlcj8uY29sdW1uID09PSBjb2x1bW4ua2V5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnF1ZXJ5Lm9yZGVyPy5kaXJlY3Rpb24gPT09ICdkZXNjJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb3JkZXJDaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnaGVhZGVyTWVudScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbi5rZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IGRlc2NlbmRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxyaXYtbWVudS1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5vcmRlcmFibGUgJiYgY29sdW1uLmZpbHRlcmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi1tZW51LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4uZmlsdGVyYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2ZpbHRlckFkZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uS2V5OiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBhIGZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxyaXYtbWVudS1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY29sdW1uLm9yZGVyYWJsZSB8fCBjb2x1bW4uZmlsdGVyYWJsZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHMuZGlzcGxheS5jb2x1bW5zQXJlRnJlZXphYmxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5kaXNwbGF5LmNvbHVtbnNBcmVIaWRlYWJsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvcml2LW1lbnUtZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicy5kaXNwbGF5LmNvbHVtbnNBcmVGcmVlemFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY29sdW1uLnBpbm5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY29sdW1uc0ZyZWV6ZVVwVG9DaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZXplOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdoZWFkZXJNZW51JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZyZWV6ZSB1cCB0byBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbHVtbnNGcmVlemVVcFRvQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWV6ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogJ2hlYWRlck1lbnUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgVW4tZnJlZXplIGNvbHVtbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicy5kaXNwbGF5LmNvbHVtbnNBcmVIaWRlYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbHVtbkVuYWJsZWRDaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdoZWFkZXJNZW51J1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBIaWRlIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3Jpdi1tZW51PlxuICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cIm1lbnVUZW1wbGF0ZVwiIGNsYXNzPVwibWVudS1oZWFkXCI+PC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPiAwOyBlbHNlIGVtcHR5XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgIGxldCByb3cgb2YgZ3JvdXAucm93cztcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgcm93SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Um93XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcm93Qm9keT5cbiAgICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93U2VsZWN0aW9uID09PSB0cnVlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93U2VsZWN0aW9uID09PSAnaW5kaXZpZHVhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGlvbi1ib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tib3gtd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cml2LWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkZW50aWZpZXJdPVwiJ3Jpdi10YWJsZS1zZWxlY3Rpb24tJyArIHJvdy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJvdy5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZShyb3cuaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9yaXYtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW4gb2Ygcy5kaXNwbGF5LmNvbHVtbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuZGlzcGxheS5jZWxsUm93U3Bhbihyb3dJbmRleCwgY29sdW1uLmtleSkgYXMgc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNwYW4gPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5yb3dzcGFuXT1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ycy1yaWdodC1ib3JkZXJdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkc1JpZ2h0Qm9yZGVyKHMsIHJvd0luZGV4LCBjb2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucGlubmVkXT1cImNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZHZhbmNlZF09XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdhZHZhbmNlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4uYWxpZ25tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50LCBjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxUZW1wbGF0ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHJvdzogcm93LCBjb2x1bW46IGNvbHVtbiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtZW51VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51VGVtcGxhdGUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IHJvdzogcm93IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LnJvd0xpbms7IGxldCBybFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRXh0ZXJuYWxSb3dMaW5rKHJsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJybC5ocmVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicm93LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmdyYXllZF09XCJzLmRpc3BsYXkucm93c0FyZUdyYXllZFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJvd0JvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ludGVybmFsUm93TGluayhybClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwicmwucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwicmwucXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicmwucXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdy1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ncmF5ZWRdPVwicy5kaXNwbGF5LnJvd3NBcmVHcmF5ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJybC5hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFyb3cucm93TGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmdyYXllZF09XCJzLmRpc3BsYXkucm93c0FyZUdyYXllZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93Qm9keVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJzLmRpc3BsYXkuY3VzdG9tU3VtbWFyeVJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW4gb2Ygcy5kaXNwbGF5LmNvbHVtbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Q29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucGlubmVkXT1cImNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hZHZhbmNlZF09XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdhZHZhbmNlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImNvbHVtbi5sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudGV4dC1hbGlnbl09XCJjb2x1bW4uYWxpZ25tZW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnlUZW1wbGF0ZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IGNvbHVtbjogY29sdW1uIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJzLmRpc3BsYXkuY29sdW1ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cml2LXplcm8tc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicy5kaXNwbGF5Lnplcm9TdGF0ZU1lc3NhZ2U7IGxldCBtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi16ZXJvLXN0YXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZvb3RlclwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBzLnJlc3VsdC5pc0dyb3VwZWQgJiZcbiAgICAgICAgICAgICAgZ3JvdXAudG90YWxNYXRjaGluZ1Jvd0NvdW50ID4gcy5xdWVyeS5ncm91cGluZy5jb3VudFBlckdyb3VwICYmXG4gICAgICAgICAgICAgIGdyb3VwLnJvd3MubGVuZ3RoID09PSBzLnF1ZXJ5Lmdyb3VwaW5nLmNvdW50UGVyR3JvdXBcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgcml2TGlua1xuICAgICAgICAgICAgICBjbGFzcz1cImZvb3Rlci1saW5rXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3ZpZXdNb3JlS2V5Q2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgIHZpZXdNb3JlS2V5OiBncm91cC5ncm91cERhdGEua2V5LnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+VmlldyBhbGwge3sgZ3JvdXAudG90YWxNYXRjaGluZ1Jvd0NvdW50IH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJyICpuZ0lmPVwiIWxhc3RcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInMucXVlcnkucGFnaW5hdGlvbi5zaG93Q29udHJvbHNcIiBjbGFzcz1cInBhZ2luYXRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2Utc2l6ZS1jb250cm9sc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcy5yZXN1bHQuaXNHcm91cGVkXCI+XG4gICAgICAgICAgICA8c3Bhbj4gUmVzdWx0cyBwZXIgcGFnZTogPC9zcGFuPlxuICAgICAgICAgICAgPHJpdi1zaW1wbGUtc2VsZWN0XG4gICAgICAgICAgICAgIFtzZWxlY3RlZE9wdGlvbl09XCJ7XG4gICAgICAgICAgICAgICAgaWQ6IHMucXVlcnkucGFnaW5hdGlvbi5wYWdlU2l6ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVNpemUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAoc2VsZWN0ZWRPcHRpb25DaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAncGFnZVNpemVDaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJGV2ZW50Py52YWx1ZSB8fCAyNVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtvcHRpb25Hcm91cHNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICA+PC9yaXYtc2ltcGxlLXNlbGVjdD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJzLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgPiAwICYmICFzLnJlc3VsdC5pc0dyb3VwZWRcIlxuICAgICAgICAgIGNsYXNzPVwicGFnZS1kYXRhLWluZGljYXRvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVJvd1N0YXJ0IHwgcml2TnVtYmVyIH19LXt7XG4gICAgICAgICAgICBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVJvd0VuZCB8IHJpdk51bWJlclxuICAgICAgICAgIH19XG4gICAgICAgICAgb2ZcbiAgICAgICAgICB7eyBzLnJlc3VsdC50b3RhbE1hdGNoaW5nUm93Q291bnQgfCByaXZOdW1iZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJzLnF1ZXJ5LnBhZ2luYXRpb24uc2hvd0NvbnRyb2xzXCJcbiAgICAgICAgICBjbGFzcz1cInBhZ2luYXRpb24tY29udHJvbHNcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICBbdmFyaWFudF09XCInYmFzaWMnXCJcbiAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ0Fycm93TGVmdCdcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicy5xdWVyeS5wYWdpbmF0aW9uLnByZXZpb3VzID09PSBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3ByZXZpb3VzUGFnZU5hdmlnYXRlJyB9KVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cInMucXVlcnkucGFnaW5hdGlvbi5wYWdlc1swXSA+IDBcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0cnVuY2F0ZWQtcGFnZXMgbGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgJmhlbGxpcDtcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2Ygcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VzXCJcbiAgICAgICAgICAgIGNsYXNzPVwicGFnZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlID09PSBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdwYWdlQ2hhbmdlJywgcGFnZSB9KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZSArIDEgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VzW3MucXVlcnkucGFnaW5hdGlvbi5wYWdlcy5sZW5ndGggLSAxXSA8XG4gICAgICAgICAgICAgIHMucXVlcnkucGFnaW5hdGlvbi5wYWdlQ291bnQgLSAxXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0cnVuY2F0ZWQtcGFnZXMgcmlnaHRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICZoZWxsaXA7XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2Jhc2ljJ1wiXG4gICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgIFtpY29uXT1cIidBcnJvd1JpZ2h0J1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzLnF1ZXJ5LnBhZ2luYXRpb24ubmV4dCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICduZXh0UGFnZU5hdmlnYXRlJyB9KVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcml2LWxvYWRpbmctY292ZXI+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjcEMsTUFBTSxPQUFPLGNBQWM7SUFOM0I7UUEwQ1csWUFBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3ZDLDZCQUF3QixHQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFpQ0osOEVBQThFO1FBQzlFLHVGQUF1RjtRQUN2RixxRkFBcUY7UUFDckYsdUZBQXVGO1FBQ3ZGLG9GQUFvRjtRQUNwRiw4QkFBOEI7UUFDOUIsbUJBQWMsR0FBRyxDQUFD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eFBVLGNBQWM7K0ZBQWQsY0FBYyx1dUJDNUIzQiw2M3JCQThoQkE7MkZEbGdCYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTs4QkFVL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxNQUFNO2dCQU9wQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsU0FBUztnQkFNdkIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLE1BQU07Z0JBSXBCLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxXQUFXO2dCQUl6QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsUUFBUTtnQkFJdEIsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLFdBQVc7Z0JBeUt6QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTVDLEtBQUs7c0JBREosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHN1bSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUml2U2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvc2VsZWN0L3N0YXRlJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG50eXBlIFBhZ2VTaXplT3B0aW9uID0ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQ8XG4gIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAgPSB7IGtleTogJycgfSxcbj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgbWFuYWdlcj86IFJpdlRhYmxlLk1hbmFnZXI8UiwgQywgRiwgRz47XG5cbiAgQENvbnRlbnRDaGlsZCgnY2VsbCcpXG4gIGNlbGxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHtcbiAgICByb3c6IFJpdlRhYmxlLkZ1bGxSb3c8Uj47XG4gICAgY29sdW1uOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+O1xuICB9PjtcblxuICBAQ29udGVudENoaWxkKCdzdW1tYXJ5JylcbiAgc3VtbWFyeVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgIGNvbHVtbjogUml2VGFibGUuRnVsbENvbHVtbjxDPjtcbiAgfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnbWVudScpXG4gIG1lbnVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgcm93OiBSaXZUYWJsZS5GdWxsUm93PFI+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdGlvbicpXG4gIHNlbGVjdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEYsIEc+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2VGFibGUuRnVsbFN0YXRlPFIsIEMsIEYsIEc+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ3N1YmhlYWRlcicpXG4gIHN1YmhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgIHN0YXRlOiBSaXZUYWJsZS5GdWxsU3RhdGU8UiwgQywgRiwgRz47XG4gICAgZ3JvdXA6IFJpdlRhYmxlLlJvd0dyb3VwPFIsIEc+O1xuICB9PjtcblxuICByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICByZWFkb25seSBjb250YWluZXJTaXplID0gbmV3IFN1YmplY3Q8RE9NUmVjdD4oKTtcbiAgcmVhZG9ubHkgc2VsZWN0aW9uQ2FsbG91dFBvc2l0aW9uOiBPYnNlcnZhYmxlPERPTVJlY3Q+ID1cbiAgICB0aGlzLmNvbnRhaW5lclNpemUucGlwZShcbiAgICAgIG1hcChyZWN0ID0+IG5ldyBET01SZWN0KHJlY3QueCArIDQ0LCByZWN0LnkgLSAxMiwgMCwgMCkpLFxuICAgICk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMubWFuYWdlciEuc3RhdGUsIHRoaXMuY29udGFpbmVyU2l6ZV0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKFtzdGF0ZSwgY29udGFpbmVyU2l6ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXJTaXplLndpZHRoO1xuICAgICAgICBjb25zdCB0b3RhbEZyb3plbldpZHRoID0gc3VtKFxuICAgICAgICAgIHN0YXRlLmRpc3BsYXkuY29sdW1ucy5maWx0ZXIoYyA9PiBjLnBpbm5lZCkubWFwKGMgPT4gYy53aWR0aCksXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0b3RhbEZyb3plbldpZHRoID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAvLyBDaGVjayBob3cgbWFueSBjb2x1bW5zIGNhbiBiZSBwaW5uZWQgd2l0aG91dCBvdmVyZmxvd2luZy5cbiAgICAgICAgICBmb3IgKGNvbnN0IFtpXSBvZiBzdGF0ZS5kaXNwbGF5LmNvbHVtbnNcbiAgICAgICAgICAgIC5maWx0ZXIoYyA9PiBjLnBpbm5lZClcbiAgICAgICAgICAgIC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlZEZyb3plbldpZHRoID0gc3VtKFxuICAgICAgICAgICAgICBzdGF0ZS5kaXNwbGF5LmNvbHVtbnMuc2xpY2UoMCwgaSArIDEpLm1hcChjID0+IGMud2lkdGgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzbGljZWRGcm96ZW5XaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnY29sdW1uc0ZyZWV6ZVVwVG9DaGFuZ2UnLFxuICAgICAgICAgICAgICAgIGluZGV4OiBpIC0gMSxcbiAgICAgICAgICAgICAgICBmcmVlemU6IGkgPiAwLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gIH1cblxuICAvLyBXZSBvbmx5IGNhcmUgYWJvdXQgd2hlbiB3ZSBoYXZlIGVudGVyZWQgYSBkcm9wIHpvbmUgZm9yIGFwcGx5aW5nIG91ciB2aXN1YWxcbiAgLy8gdHJlYXRtZW50LiBIb3dldmVyLCBpbiBvcmRlciB0byB0cmlnZ2VyIHRoZSBkcm9wIGV2ZW50LCB5b3UgbXVzdCBjYWxsIHByZXZlbnREZWZhdWx0XG4gIC8vIG9uIHRoZSBkcmFnb3Zlci4gV2UgYXJlIGhhbmRsaW5nIHRoaXMgbmF0aXZlbHkgb24gdGhlIGRvY3VtZW50LCBvdXRzaWRlIG9mIGFuZ3VsYXJcbiAgLy8gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uIElmIHdlIGhhdmUgYSBkcmFnZ2VkT3ZlckNvbHVtbklkeCBhbmQgd2UgZHJhZyBvdmVyIGFuXG4gIC8vIGVsZW1lbnQgd2l0aCBjbGFzcyBkcm9wLXpvbmUsIHdlIHdpbGwgYXNzdW1lIHlvdSB3YW50IHRvIHRoZSBkcm9wIGVsZW1lbnQgZW5hYmxlZFxuICAvLyBhbmQgd2Ugd2lsbCBwcmV2ZW50RGVmYXVsdC5cbiAgaGFuZGxlRHJhZ092ZXIgPSAoZXZlbnQ6IERyYWdFdmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAodGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCAhPSBudWxsICYmIHRhcmdldC5jbG9zZXN0KCcuZHJvcC16b25lJykpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5oYW5kbGVEcmFnT3Zlcik7XG4gICAgdGhpcy5kZXN0cm95Lm5leHQobnVsbCk7XG4gIH1cblxuICByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnM6IFJpdlNlbGVjdC5PcHRpb25Hcm91cDxQYWdlU2l6ZU9wdGlvbj5bXSA9IFtcbiAgICB7XG4gICAgICBvcHRpb25zOiBSaXZUYWJsZS5wYWdlU2l6ZXMubWFwKHBhZ2VTaXplID0+ICh7XG4gICAgICAgIGlkOiBwYWdlU2l6ZS50b1N0cmluZygpLFxuICAgICAgICB0aXRsZTogcGFnZVNpemUudG9TdHJpbmcoKSxcbiAgICAgICAgdmFsdWU6IHBhZ2VTaXplLFxuICAgICAgfSkpLFxuICAgIH0sXG4gIF07XG5cbiAgcmVhZG9ubHkgdHJhY2tCeVJvdzogVHJhY2tCeUZ1bmN0aW9uPFJpdlRhYmxlLkZ1bGxSb3c8Uj4+ID0gKF8sIHJvdykgPT5cbiAgICByb3cuaWQ7XG4gIHJlYWRvbmx5IHRyYWNrQnlHcm91cDogVHJhY2tCeUZ1bmN0aW9uPFJpdlRhYmxlLlJvd0dyb3VwPFIsIEc+PiA9IChcbiAgICBfLFxuICAgIGdyb3VwLFxuICApID0+IGdyb3VwLmdyb3VwRGF0YS5rZXk7XG4gIHJlYWRvbmx5IHRyYWNrQnlDb2x1bW46IFRyYWNrQnlGdW5jdGlvbjxSaXZUYWJsZS5GdWxsQ29sdW1uPEM+PiA9IChcbiAgICBfLFxuICAgIGNvbHVtbixcbiAgKSA9PiBjb2x1bW4ua2V5O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGVtcG9yYXJ5V2lkdGhzOiBNYXA8QywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcbiAgc2V0V2lkdGgoY29sdW1uOiBDLCB3aWR0aDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh3aWR0aCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdGVtcG9yYXJ5V2lkdGggPSB0aGlzLnRlbXBvcmFyeVdpZHRocy5nZXQoY29sdW1uKTtcbiAgICAgIGlmICh0ZW1wb3JhcnlXaWR0aCkge1xuICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgICAgdHlwZTogJ2NvbHVtbldpZHRoQ2hhbmdlJyxcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgcHJlZmVycmVkV2lkdGg6IHRlbXBvcmFyeVdpZHRoLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGVtcG9yYXJ5V2lkdGhzLmRlbGV0ZShjb2x1bW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRlbXBvcmFyeVdpZHRocy5zZXQoY29sdW1uLCB3aWR0aCk7XG4gICAgfVxuICB9XG4gIGdldFdpZHRoKGNvbHVtbjogUml2VGFibGUuRnVsbENvbHVtbjxDPik6IG51bWJlciB7XG4gICAgaWYgKHRoaXMudGVtcG9yYXJ5V2lkdGhzLmhhcyhjb2x1bW4ua2V5KSkge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KHRoaXMudGVtcG9yYXJ5V2lkdGhzLmdldChjb2x1bW4ua2V5KSEsIGNvbHVtbi5taW5XaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb2x1bW4ud2lkdGg7XG4gICAgfVxuICB9XG5cbiAgZHJhZ2dlZENvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGRyYWdnZWRDb2x1bW5LZXk6IEMgfCBudWxsID0gbnVsbDtcbiAgZHJhZ2dlZE92ZXJDb2x1bW5JZHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIGRyYWdTdGFydChpZHg6IG51bWJlciwga2V5OiBDKSB7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ID0gaWR4O1xuICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IGtleTtcbiAgfVxuXG4gIGRyYWdPdmVyKG9udG9JZHg6IG51bWJlcikge1xuICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBvbnRvSWR4O1xuICB9XG5cbiAgZHJvcChvbnRvSWR4OiBudW1iZXIsIGVuYWJsZWRDb2x1bW5Db3VudDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBvbnRvSWR4LFxuICAgICAgICBzb3VyY2U6ICd0YWJsZURyYWcnLFxuICAgICAgICBjb2x1bW46IHRoaXMuZHJhZ2dlZENvbHVtbktleSB8fCB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVuYWJsZWQgPSBvbnRvSWR4IDwgZW5hYmxlZENvbHVtbkNvdW50O1xuICAgICAgdGhpcy5kcm9wRW5hYmxlZFN0YXRlKGVuYWJsZWQsIGVuYWJsZWRDb2x1bW5Db3VudCk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbktleSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZ2V0RW5hYmxlZENvdW50KGNvbHVtbnM6IFJpdlRhYmxlLkZ1bGxDb2x1bW48YW55PltdKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29sdW1ucy5maWx0ZXIoYyA9PiBjLmVuYWJsZWQpLmxlbmd0aDtcbiAgfVxuXG4gIGRyb3BFbmFibGVkU3RhdGUoZW5hYmxlZDogYm9vbGVhbiwgZW5hYmxlZENvbHVtbkNvdW50OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5kcmFnZ2VkQ29sdW1uS2V5ICE9PSBudWxsICYmIHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgaXNFbmFibGVkID0gZW5hYmxlZENvbHVtbkNvdW50ID4gdGhpcy5kcmFnZ2VkQ29sdW1uSWR4O1xuICAgICAgY29uc3Qgc2hvdWxkRmlyZSA9IGVuYWJsZWQgPyAhaXNFbmFibGVkIDogaXNFbmFibGVkO1xuICAgICAgaWYgKHNob3VsZEZpcmUpIHtcbiAgICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgICAgICBjb2x1bW46IHRoaXMuZHJhZ2dlZENvbHVtbktleSxcbiAgICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxuICAgICAgICAgIHNvdXJjZTogJ2RyYWdEcm9wJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBudWxsO1xuICAgICAgdGhpcy5kcmFnZ2VkQ29sdW1uS2V5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UoZTogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIGUubWVzc2FnZTtcbiAgICBpZiAodHlwZW9mIGUgPT09ICdzdHJpbmcnKSByZXR1cm4gZTtcbiAgICBpZiAodHlwZW9mIGUgPT09ICdvYmplY3QnICYmIGUgIT09IG51bGwpIHJldHVybiBlLnRvU3RyaW5nKCk7XG4gICAgZWxzZSByZXR1cm4gJ0FuIGVycm9yIG9jY3VycmVkLic7XG4gIH1cblxuICBwcml2YXRlIHNoaWZ0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLnNoaWZ0ID0gZXZlbnQuc2hpZnRLZXk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIGtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5zaGlmdCA9IGV2ZW50LnNoaWZ0S2V5O1xuICB9XG5cbiAgc2VsZWN0aW9uQ2hhbmdlKHJvd0lkOiBSWydpZCddLCBzZWxlY3RlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdyb3dTZWxlY3RlZENoYW5nZScsXG4gICAgICBpZDogcm93SWQsXG4gICAgICBzZWxlY3RlZCxcbiAgICAgIGNvbnRpZ3VvdXM6IHRoaXMuc2hpZnQsXG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgY29sdW1uOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+KSB7XG4gICAgaWYgKGNvbHVtbi5jbGlja1ByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmIChjb2x1bW4uY2xpY2tTdG9wUHJvcGFnYXRpb24pIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgaXNFeHRlcm5hbFJvd0xpbmsoXG4gICAgcm93TGluazogUml2VGFibGUuUm93TGluayxcbiAgKTogcm93TGluayBpcyBSaXZUYWJsZS5FeHRlcm5hbFJvd0xpbmsge1xuICAgIHJldHVybiByb3dMaW5rLnR5cGUgPT09ICdleHRlcm5hbCc7XG4gIH1cblxuICBpc0ludGVybmFsUm93TGluayhcbiAgICByb3dMaW5rOiBSaXZUYWJsZS5Sb3dMaW5rLFxuICApOiByb3dMaW5rIGlzIFJpdlRhYmxlLkludGVybmFsUm93TGluayB7XG4gICAgcmV0dXJuIHJvd0xpbmsudHlwZSA9PT0gJ2ludGVybmFsJztcbiAgfVxuXG4gIG5lZWRzUmlnaHRCb3JkZXI8QyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbj4oXG4gICAgczogUml2VGFibGUuRnVsbFN0YXRlPGFueSwgQywgYW55LCBhbnk+LFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgY29sdW1uOiBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+LFxuICApOiBib29sZWFuIHtcbiAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGhhcyBhIHJvdyBzcGFuID4gMSBPUlxuICAgIC8vIGlmIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0IHdvdWxkIGhhdmUgYSByb3cgc3BhbiBvZiAwLlxuICAgIGNvbnN0IGNvbHMgPSBzLmRpc3BsYXkuY29sdW1ucyBhcyBSaXZUYWJsZS5GdWxsQ29sdW1uPEM+W107XG4gICAgY29uc3QgaSA9IGNvbHMuZmluZEluZGV4KGMgPT4gYy5rZXkgPT09IGNvbHVtbi5rZXkpO1xuICAgIGlmIChpIDwgMCB8fCBpID09PSBjb2xzLmxlbmd0aCAtIDEpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJpZ2h0Q29sID0gY29sc1tpICsgMV07XG4gICAgY29uc3Qgc3Bhbk9uUmlnaHQgPSBzLmRpc3BsYXkuY2VsbFJvd1NwYW4ocm93SW5kZXgsIHJpZ2h0Q29sLmtleSk7XG4gICAgcmV0dXJuIHNwYW5PblJpZ2h0ID4gMSB8fCBzcGFuT25SaWdodCA9PT0gMDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hbmFnZXI/LnN0YXRlIHwgYXN5bmM7IGxldCBzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25DYWxsb3V0UG9zaXRpb24gfCBhc3luYzsgbGV0IHBvc2l0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInMuc2VsZWN0aW9uLnNlbGVjdGVkQ291bnQgPiAwICYmIHNlbGVjdGlvblRlbXBsYXRlXCI+XG4gICAgICA8cml2LWNhbGxvdXRcbiAgICAgICAgKnJpdi1vdmVybGF5XG4gICAgICAgIFthbmNob3JdPVwicG9zaXRpb25cIlxuICAgICAgICBbaXNNb2RhbF09XCJmYWxzZVwiXG4gICAgICAgIFt0aGVtZV09XCInbGlnaHQnXCJcbiAgICAgICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgICAgIFtwcmVmZXJyZWRQb3NpdGlvbl09XCIndG9wLXJpZ2h0J1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGlvblRlbXBsYXRlOyBjb250ZXh0OiB7IHN0YXRlOiBzIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3Jpdi1jYWxsb3V0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGhlYWRlciAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgc3RhdGU6IHMgfVwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9oZWFkZXI+XG4gICAgPHJpdi1sb2FkaW5nLWNvdmVyXG4gICAgICBjbGFzcz1cImNvbnRhaW5lci1sb2FkZXItd3JhcHBlclwiXG4gICAgICBbbG9hZGluZ109XCJzLmxvYWQubG9hZGluZ1wiXG4gICAgICBbZXJyb3JNZXNzYWdlXT1cInMubG9hZC5lcnJvciA/IGdldEVycm9yTWVzc2FnZShzLmxvYWQuZXJyb3IpIDogdW5kZWZpbmVkXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29udGFpbmVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdjb250YWluZXItdW5ncm91cGVkJzogIXMucmVzdWx0LmlzR3JvdXBlZCxcbiAgICAgICAgICAnaGFzLWhlYWRlcic6ICFzLnJlc3VsdC5pc0dyb3VwZWQgJiYgaGVhZGVyVGVtcGxhdGUsXG4gICAgICAgICAgJ3dpdGhvdXQtY29sdW1ucyc6IHMuZGlzcGxheS5jb2x1bW5zLmxlbmd0aCA9PT0gMFxuICAgICAgICB9XCJcbiAgICAgICAgKHJpdkNsaWVudFNpemUpPVwiY29udGFpbmVyU2l6ZS5uZXh0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8cml2LXplcm8tc3RhdGVcbiAgICAgICAgICAqbmdJZj1cInMuZGlzcGxheS5jb2x1bW5zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgY2xhc3M9XCJuby1jb2x1bW5zLW1lc3NhZ2VcIlxuICAgICAgICAgIFttZXNzYWdlXT1cIlxuICAgICAgICAgICAgJ0FsbCBjb2x1bW5zIGRpc2FibGVkLiBFbmFibGUgYXQgbGVhc3Qgb25lIGNvbHVtbiB0byB2aWV3IHRhYmxlIGRhdGEuJ1xuICAgICAgICAgIFwiXG4gICAgICAgID48L3Jpdi16ZXJvLXN0YXRlPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICBsZXQgZ3JvdXAgb2Ygcy5yZXN1bHQuaXNHcm91cGVkXG4gICAgICAgICAgICAgID8gcy5yZXN1bHQucm93R3JvdXBzXG4gICAgICAgICAgICAgIDogW3MucmVzdWx0LnJvd3NBc0dyb3VwXTtcbiAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrQnlHcm91cDtcbiAgICAgICAgICAgIGxldCBsYXN0ID0gbGFzdFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICBzdWJoZWFkZXJUZW1wbGF0ZSB8fCBudWxsO1xuICAgICAgICAgICAgICBjb250ZXh0OiB7IHN0YXRlOiBzLCBncm91cCB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ3N1YmNvbnRhaW5lci1ncm91cGVkJzogcy5yZXN1bHQuaXNHcm91cGVkIH1cIj5cbiAgICAgICAgICAgIDx0YWJsZT5cbiAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEhcy5zZWxlY3Rpb24uYWxsb3dTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGlvbi1oZWFkXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5hbGxvd1NlbGVjdGlvbiAhPT0gJ2luZGl2aWR1YWwnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5hbGxvd1NlbGVjdGlvbiA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja2JveC13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxyaXYtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXMucmVzdWx0LmlzR3JvdXBlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicy5zZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCA9PT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy5zZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCA9PT0gJ2luZGV0ZXJtaW5hdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2FsbFNlbGVjdGVkQ2hhbmdlJyB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9yaXYtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgPHJpdi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzLnJlc3VsdC5pc0dyb3VwZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdyb3VwLnNlbGVjdGVkID09PSB0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImdyb3VwLnNlbGVjdGVkID09PSAnaW5kZXRlcm1pbmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZ3JvdXBTZWxlY3Rpb25DaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IGdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygcy5kaXNwbGF5LmNvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MucGlubmVkXT1cImNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJnZXRXaWR0aChjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGRyb3BwYWJsZT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRyb3Atem9uZVwiXG4gICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0KGksIGNvbHVtbi5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgKGRyYWdlbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZHJhZ092ZXIoaSlcIlxuICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcm9wKGksIGdldEVuYWJsZWRDb3VudChzLmRpc3BsYXkuY29sdW1ucykpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci1sZWZ0XT1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWRPdmVyQ29sdW1uSWR4ID09PSBpICYmXG4gICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRyYWdnZWRDb2x1bW5JZHggPiBpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kcmFnZ2VkLW92ZXItcmlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA8IGlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAhY29sdW1uLm9yZGVyYWJsZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWNvbHVtbi5maWx0ZXJhYmxlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhcy5kaXNwbGF5LmNvbHVtbnNBcmVGcmVlemFibGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFzLmRpc3BsYXkuY29sdW1uc0FyZUhpZGVhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGVmdF09XCJjb2x1bW4uYWxpZ25tZW50ID09PSAnbGVmdCdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5yaWdodF09XCJjb2x1bW4uYWxpZ25tZW50ID09PSAncmlnaHQnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHMuZGlzcGxheS5jb2x1bW5OYW1lTWFwLmdldChjb2x1bW4ua2V5KSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPHJpdi1tZW51XG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5vcmRlcmFibGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5maWx0ZXJhYmxlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzLmRpc3BsYXkuY29sdW1uc0FyZUZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgcy5kaXNwbGF5LmNvbHVtbnNBcmVIaWRlYWJsZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmxlZnRdPVwiY29sdW1uLmFsaWdubWVudCA9PT0gJ2xlZnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnJpZ2h0XT1cImNvbHVtbi5hbGlnbm1lbnQgPT09ICdyaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInMucXVlcnkub3JkZXI/LmNvbHVtbiA9PT0gY29sdW1uLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHMuZGlzcGxheS5jb2x1bW5OYW1lTWFwLmdldChjb2x1bW4ua2V5KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5xdWVyeS5vcmRlcj8uZGlyZWN0aW9uID09PSAnZGVzYydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdBcnJvd0Rvd24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnQXJyb3dVcCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHJpdi10YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ1Jlc2l6ZSk9XCJzZXRXaWR0aChjb2x1bW4ua2V5LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi10YWJsZS1oZWFkZXItcmVzaXplLWhhbmRsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ub3JkZXJhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMucXVlcnkub3JkZXI/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5xdWVyeS5vcmRlcj8uZGlyZWN0aW9uID09PSAnYXNjJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb3JkZXJDaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnaGVhZGVyTWVudScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogJ2FzYycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnQgYXNjZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzLnF1ZXJ5Lm9yZGVyPy5jb2x1bW4gPT09IGNvbHVtbi5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdvcmRlckNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdoZWFkZXJNZW51JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmUgc29ydFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMucXVlcnkub3JkZXI/LmNvbHVtbiA9PT0gY29sdW1uLmtleSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5xdWVyeS5vcmRlcj8uZGlyZWN0aW9uID09PSAnZGVzYydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ29yZGVyQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogJ2hlYWRlck1lbnUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBkZXNjZW5kaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8cml2LW1lbnUtZGl2aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ub3JkZXJhYmxlICYmIGNvbHVtbi5maWx0ZXJhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9yaXYtbWVudS1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmZpbHRlcmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdmaWx0ZXJBZGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbktleTogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGQgYSBmaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8cml2LW1lbnUtZGl2aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbi5vcmRlcmFibGUgfHwgY29sdW1uLmZpbHRlcmFibGUpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzLmRpc3BsYXkuY29sdW1uc0FyZUZyZWV6YWJsZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuZGlzcGxheS5jb2x1bW5zQXJlSGlkZWFibGUpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3Jpdi1tZW51LWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInMuZGlzcGxheS5jb2x1bW5zQXJlRnJlZXphYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNvbHVtbi5waW5uZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByaXYtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbHVtbnNGcmVlemVVcFRvQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnaGVhZGVyTWVudScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbi5rZXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBGcmVlemUgdXAgdG8gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW4ucGlubmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjb2x1bW5zRnJlZXplVXBUb0NoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlemU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICdoZWFkZXJNZW51JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFVuLWZyZWV6ZSBjb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInMuZGlzcGxheS5jb2x1bW5zQXJlSGlkZWFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAnaGVhZGVyTWVudSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSGlkZSBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9yaXYtbWVudT5cbiAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJtZW51VGVtcGxhdGVcIiBjbGFzcz1cIm1lbnUtaGVhZFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicy5yZXN1bHQudG90YWxNYXRjaGluZ1Jvd0NvdW50ID4gMDsgZWxzZSBlbXB0eVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgcm93IG9mIGdyb3VwLnJvd3M7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHJvd0luZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeVJvd1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Jvd0JvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5hbGxvd1NlbGVjdGlvbiA9PT0gdHJ1ZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5hbGxvd1NlbGVjdGlvbiA9PT0gJ2luZGl2aWR1YWwnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Rpb24tYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJpdi1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZGVudGlmaWVyXT1cIidyaXYtdGFibGUtc2VsZWN0aW9uLScgKyByb3cuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyb3cuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3Rpb25DaGFuZ2Uocm93LmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcml2LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uIG9mIHMuZGlzcGxheS5jb2x1bW5zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Q29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmRpc3BsYXkuY2VsbFJvd1NwYW4ocm93SW5kZXgsIGNvbHVtbi5rZXkpIGFzIHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzcGFuID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucm93c3Bhbl09XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MucnMtcmlnaHQtYm9yZGVyXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZHNSaWdodEJvcmRlcihzLCByb3dJbmRleCwgY29sdW1uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBpbm5lZF09XCJjb2x1bW4ucGlubmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWR2YW5jZWRdPVwiY29sdW1uLmRhdGFUeXBlID09PSAnYWR2YW5jZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sdW1uLmFsaWdubWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsVGVtcGxhdGUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyByb3c6IHJvdywgY29sdW1uOiBjb2x1bW4gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1ib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudVRlbXBsYXRlIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyByb3c6IHJvdyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy5yb3dMaW5rOyBsZXQgcmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0V4dGVybmFsUm93TGluayhybClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwicmwuaHJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJvdy1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ncmF5ZWRdPVwicy5kaXNwbGF5LnJvd3NBcmVHcmF5ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNJbnRlcm5hbFJvd0xpbmsocmwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cInJsLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInJsLnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cInJsLnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyb3ctbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZ3JheWVkXT1cInMuZGlzcGxheS5yb3dzQXJlR3JheWVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicmwuYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93Qm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPHRyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcm93LnJvd0xpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ncmF5ZWRdPVwicy5kaXNwbGF5LnJvd3NBcmVHcmF5ZWRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJvd0JvZHlcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwicy5kaXNwbGF5LmN1c3RvbVN1bW1hcnlSb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uIG9mIHMuZGlzcGxheS5jb2x1bW5zO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUNvbHVtblxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnBpbm5lZF09XCJjb2x1bW4ucGlubmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWR2YW5jZWRdPVwiY29sdW1uLmRhdGFUeXBlID09PSAnYWR2YW5jZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJjb2x1bW4ubGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sdW1uLmFsaWdubWVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5VGVtcGxhdGUgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbiB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwicy5kaXNwbGF5LmNvbHVtbnMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHJpdi16ZXJvLXN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInMuZGlzcGxheS56ZXJvU3RhdGVNZXNzYWdlOyBsZXQgbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9yaXYtemVyby1zdGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmb290ZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgcy5yZXN1bHQuaXNHcm91cGVkICYmXG4gICAgICAgICAgICAgIGdyb3VwLnRvdGFsTWF0Y2hpbmdSb3dDb3VudCA+IHMucXVlcnkuZ3JvdXBpbmcuY291bnRQZXJHcm91cCAmJlxuICAgICAgICAgICAgICBncm91cC5yb3dzLmxlbmd0aCA9PT0gcy5xdWVyeS5ncm91cGluZy5jb3VudFBlckdyb3VwXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIHJpdkxpbmtcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb290ZXItbGlua1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICd2aWV3TW9yZUtleUNoYW5nZScsXG4gICAgICAgICAgICAgICAgICB2aWV3TW9yZUtleTogZ3JvdXAuZ3JvdXBEYXRhLmtleS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlZpZXcgYWxsIHt7IGdyb3VwLnRvdGFsTWF0Y2hpbmdSb3dDb3VudCB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxiciAqbmdJZj1cIiFsYXN0XCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzLnF1ZXJ5LnBhZ2luYXRpb24uc2hvd0NvbnRyb2xzXCIgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLXNpemUtY29udHJvbHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXMucmVzdWx0LmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgPHNwYW4+IFJlc3VsdHMgcGVyIHBhZ2U6IDwvc3Bhbj5cbiAgICAgICAgICAgIDxyaXYtc2ltcGxlLXNlbGVjdFxuICAgICAgICAgICAgICBbc2VsZWN0ZWRPcHRpb25dPVwie1xuICAgICAgICAgICAgICAgIGlkOiBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZVNpemUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VTaXplLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHMucXVlcnkucGFnaW5hdGlvbi5wYWdlU2l6ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKHNlbGVjdGVkT3B0aW9uQ2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3BhZ2VTaXplQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgIHNpemU6ICRldmVudD8udmFsdWUgfHwgMjVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbb3B0aW9uR3JvdXBzXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxuICAgICAgICAgICAgPjwvcml2LXNpbXBsZS1zZWxlY3Q+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwicy5yZXN1bHQudG90YWxNYXRjaGluZ1Jvd0NvdW50ID4gMCAmJiAhcy5yZXN1bHQuaXNHcm91cGVkXCJcbiAgICAgICAgICBjbGFzcz1cInBhZ2UtZGF0YS1pbmRpY2F0b3JcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VSb3dTdGFydCB8IHJpdk51bWJlciB9fS17e1xuICAgICAgICAgICAgcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VSb3dFbmQgfCByaXZOdW1iZXJcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9mXG4gICAgICAgICAge3sgcy5yZXN1bHQudG90YWxNYXRjaGluZ1Jvd0NvdW50IHwgcml2TnVtYmVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwicy5xdWVyeS5wYWdpbmF0aW9uLnNob3dDb250cm9sc1wiXG4gICAgICAgICAgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRyb2xzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2Jhc2ljJ1wiXG4gICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgIFtpY29uXT1cIidBcnJvd0xlZnQnXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInMucXVlcnkucGFnaW5hdGlvbi5wcmV2aW91cyA9PT0gbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdwcmV2aW91c1BhZ2VOYXZpZ2F0ZScgfSlcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZXNbMF0gPiAwXCJcbiAgICAgICAgICAgIGNsYXNzPVwidHJ1bmNhdGVkLXBhZ2VzIGxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICZoZWxsaXA7XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHMucXVlcnkucGFnaW5hdGlvbi5wYWdlc1wiXG4gICAgICAgICAgICBjbGFzcz1cInBhZ2VcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFnZSA9PT0gcy5xdWVyeS5wYWdpbmF0aW9uLnBhZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAncGFnZUNoYW5nZScsIHBhZ2UgfSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHBhZ2UgKyAxIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHMucXVlcnkucGFnaW5hdGlvbi5wYWdlc1tzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZXMubGVuZ3RoIC0gMV0gPFxuICAgICAgICAgICAgICBzLnF1ZXJ5LnBhZ2luYXRpb24ucGFnZUNvdW50IC0gMVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwidHJ1bmNhdGVkLXBhZ2VzIHJpZ2h0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAmaGVsbGlwO1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidiYXNpYydcIlxuICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICBbaWNvbl09XCInQXJyb3dSaWdodCdcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicy5xdWVyeS5wYWdpbmF0aW9uLm5leHQgPT09IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnbmV4dFBhZ2VOYXZpZ2F0ZScgfSlcIlxuICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3Jpdi1sb2FkaW5nLWNvdmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|