vcomply-workflow-engine 7.4.8 → 7.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +4 -4
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +3 -2
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +8 -3
- package/esm2022/lib/workflow-services/responsibility.service.mjs +4 -1
- package/fesm2022/vcomply-workflow-engine.mjs +15 -6
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/interfaces/responsibilty.interface.d.ts +1 -0
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWx0eS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9pbnRlcmZhY2VzL3Jlc3BvbnNpYmlsdHkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgRnJlcXVlbmN5IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBBc3NpZ25lZSB7XHJcbiAgdHlwZTogJ2FsbCcgfCAnYW55JztcclxuICB1c2VySWQ6IG51bWJlcltdO1xyXG4gIHVzZXJHcm91cElkOiBudW1iZXJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJlc3BvbnNpYmlsaXR5Q2VudGVyIHtcclxuICB0eXBlOiAnYW55JyB8ICdhbGwnO1xyXG4gIGlkOiBudW1iZXJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJldmlld2VyRnJlcXVlbmN5IHtcclxuICBjb21wbGV0ZUJ5OiBudW1iZXI7XHJcbiAgZW5kQWZ0ZXI6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFJldmlld2VyIHtcclxuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnYW55JztcclxuICBmcmVxdWVuY3k6IFJldmlld2VyRnJlcXVlbmN5O1xyXG4gIHVzZXJJZDogbnVtYmVyW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBPdmVyc2Vlckdyb3VwIHtcclxuICB1c2VySWQ6IG51bWJlcltdO1xyXG4gIHVzZXJHcm91cElkOiBudW1iZXJbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIE92ZXJzZWVyIHtcclxuICBzdWNjZXNzOiBPdmVyc2Vlckdyb3VwO1xyXG4gIGZhaWw6IE92ZXJzZWVyR3JvdXA7XHJcbn1cclxuXHJcbmludGVyZmFjZSBDb2xsYWJvcmF0b3Ige1xyXG4gIHVzZXJJZDogbnVtYmVyW107XHJcbiAgdXNlckdyb3VwSWQ6IG51bWJlcltdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRXZpZGVuY2VGb3JtYXQge1xyXG4gIHR5cGU6ICdsaW5rJyB8ICdmaWxlJyB8ICcnO1xyXG4gIGRhdGE6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRXZpZGVuY2Uge1xyXG4gIHJlcXVpcmVkOiAnMCB8IDEnO1xyXG4gIGZvcm1hdDogRXZpZGVuY2VGb3JtYXQ7XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9ncmFtIHtcclxuICBpZDogbnVtYmVyW107XHJcbiAgdGFnczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zaWJpbGl0eSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBrZXk6IG51bWJlcjtcclxuICByaXNrQ2xhc3M6ICdsb3cnIHwgJ2xvd19tZWRpdW0nIHwgJ21lZGl1bV9oaWdoJyB8ICdoaWdoJztcclxuICBub3Rlczogc3RyaW5nO1xyXG4gIG9iamVjdGl2ZTogc3RyaW5nO1xyXG4gIGZyZXF1ZW5jeTogRnJlcXVlbmN5O1xyXG4gIGFzc2lnbm9yOiBudW1iZXI7XHJcbiAgYXNzaWduZWU6IEFzc2lnbmVlO1xyXG4gIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBSZXNwb25zaWJpbGl0eUNlbnRlciB8IHVuZGVmaW5lZDtcclxuICByZXZpZXdlcjogUmV2aWV3ZXIgfCB1bmRlZmluZWQ7XHJcbiAgb3ZlcnNlZXI6IE92ZXJzZWVyIHwgdW5kZWZpbmVkO1xyXG4gIGV2aWRlbmNlOiBFdmlkZW5jZTtcclxuICBwcm9ncmFtOiBQcm9ncmFtO1xyXG4gIGdyY09iamVjdElkOiBhbnlbXTtcclxuICBhc3Nlc3NtZW50SWQ6IHN0cmluZztcclxuICBpZD86IG51bWJlcjtcclxuICByZWZlcmVuY2VSZXNwb25zaWJpbGl0eUlkPzogbnVtYmVyO1xyXG4gIGN1c3RvbUZpZWxkOiBhbnlbXTtcclxufSJdfQ==
|
|
@@ -100,7 +100,8 @@ export class FormatAndEvidenceComponent {
|
|
|
100
100
|
filename: file?.filename ?? fileName,
|
|
101
101
|
original_filename: file?.original_filename ?? file?.org_file ?? fileName,
|
|
102
102
|
type: file?.type ?? '',
|
|
103
|
-
|
|
103
|
+
id: file?.id ?? file?.fid,
|
|
104
|
+
fid: file?.fid ?? file?.id,
|
|
104
105
|
};
|
|
105
106
|
});
|
|
106
107
|
}
|
|
@@ -395,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
395
396
|
}], formatEvidanceData: [{
|
|
396
397
|
type: Input
|
|
397
398
|
}] } });
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxJQUFhLGtCQUFrQixDQUFDLEtBQVU7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELFlBQ1UscUJBQTRDLEVBQzVDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBSGhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBdEIxQyxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ04sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xDLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzFCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFXOUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBUXZCLFlBQU8sR0FBUTtZQUNiLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsV0FBVyxFQUFFLE1BQU07WUFDbkIsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBRUYsWUFBTyxHQUFHO1lBQ1IsSUFBSSxFQUFFLEVBQUU7WUFDUixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDO1FBb1RGLHNCQUFpQixHQUFHO1lBQ2xCLG9CQUFvQjtZQUNwQiwrQ0FBK0M7WUFDL0Msc0NBQXNDO1lBQ3RDLCtDQUErQztZQUMvQyx1Q0FBdUM7WUFDdkMsU0FBUztZQUNULG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLDJCQUEyQjtZQUMzQixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLE9BQU87U0FDUixDQUFDO0lBaFZFLENBQUM7SUFlTCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWEsRUFBRSxJQUFZO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxFQUFFLGNBQWMsSUFBSSxLQUFLLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ3RCLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLEVBQUUsZ0JBQWdCLElBQUksS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQVk7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdCLE1BQU0sUUFBUSxHQUNaLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsQ0FBQztZQUNMLE9BQU87Z0JBQ0wsR0FBRyxJQUFJO2dCQUNQLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxFQUFFLGFBQWEsSUFBSSxFQUFFO2dCQUN2RSxTQUFTLEVBQUUsUUFBUTtnQkFDbkIsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLElBQUksUUFBUTtnQkFDcEMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixJQUFJLElBQUksRUFBRSxRQUFRLElBQUksUUFBUTtnQkFDeEUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDdEIsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHO2FBQ2YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELHFCQUFxQixDQUFDLE1BQWU7UUFDbkMsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsTUFBZTtRQUNwQyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7U0FDeEM7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNoQyxJQUFJLElBQUksS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0RCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLHdGQUF3RjtRQUN4RixNQUFNLFFBQVEsR0FDWixxTkFBcU4sQ0FBQztRQUN4TixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87YUFDUjtZQUNELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDbkM7U0FDRjthQUFNLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsT0FBTzthQUNSO1lBQ0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzthQUNoRDtTQUNGO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsSUFBSSxFQUFFLEVBQUU7WUFDUixhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBVSxFQUFFLEdBQVc7UUFDNUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVMsRUFBRSxHQUFXO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtZQUMxRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWE7aUJBQ2Ysa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztpQkFDbEMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDdEIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ25CLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRO29CQUNoQyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCxNQUFNLEdBQUcsR0FBRyxPQUFPLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUUsQ0FBQztZQUM3RSw2QkFBNkI7WUFDN0IsaUNBQWlDO1lBQ2pDLGdDQUFnQztZQUNoQyxnQ0FBZ0M7WUFDaEMsc0NBQXNDO1lBQ3RDLGtDQUFrQztZQUNsQyw2QkFBNkI7WUFDN0IsMENBQTBDO1lBQzFDLHlCQUF5QjtZQUN6QixVQUFVO1lBQ1YsaURBQWlEO1lBQ2pELHdCQUF3QjtZQUN4QixRQUFRO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQWdCLEVBQUUsSUFBVSxFQUFFLEdBQVE7UUFDakQsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLFlBQVk7WUFDZixZQUFZLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRztnQkFDekIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNO2FBQzdDO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUN4RCxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBUyxFQUFFLElBQVMsRUFBRSxZQUFpQixFQUFFLEdBQVE7UUFDeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQUUsU0FBUyxDQUFDO1FBR3JELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUM1RCxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN0QixRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVE7Z0JBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNuQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRzthQUNmLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxnQkFBZ0IsRUFBRTtZQUMxRCxNQUFNLE9BQU8sR0FBRztnQkFDZCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtnQkFDaEQsS0FBSyxFQUNILElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLE1BQU07b0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzFEO29CQUNILENBQUMsQ0FBQyxFQUFFO2dCQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO2dCQUNyQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQjthQUNwRCxDQUFDO1lBQ0YsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBRXRFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2hDO2FBQU07WUFDTCxNQUFNLE9BQU8sR0FBRztnQkFDZCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtnQkFDaEQsS0FBSyxFQUNILElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssTUFBTTtvQkFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzdDLENBQUMsQ0FBQyxFQUFFO2dCQUNSLEtBQUssRUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxLQUFLLE1BQU07b0JBQ2xFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7b0JBQ3BCLENBQUMsQ0FBQyxFQUFFO2dCQUNSLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ3JDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCO2FBQ3BELENBQUM7WUFDRixPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBQ0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxhQUFhLElBQUksQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFO2dCQUNoRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQzlDLE9BQU8sRUFBRSxDQUFDO1NBQ1g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBZTtRQUMvQixJQUFJLFVBQVUsRUFBRTtZQUNkLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDdEMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixPQUFPO2FBQ1I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7SUFnQkQscUJBQXFCLENBQUMsS0FBVSxFQUFFLEtBQWE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUMxQyxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQWE7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBYTtRQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWE7YUFDZixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDcEIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2pDLElBQUksRUFBRSxJQUFJO2dCQUNWLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFO2dCQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDNUIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxDQUFDO2FBQ2IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F0WVUsMEJBQTBCO21HQUExQiwwQkFBMEIsb1FDcEJ2QyxtNFZBNE1NOzs0RkR4TE8sMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5QjtnTUFNekIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRU8sa0JBQWtCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEZJTEVfVVJMIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2ZpbGUtdXBsb2FkLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRklMRV9TSVpFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3BvbGljeS5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mb3JtYXQtYW5kLWV2aWRlbmNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQubGVzcycsICcuLi8uLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRBbmRFdmlkZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQVNTRVRTID0gQVNTRVRTO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVGaWxlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBtb2RlID0gJyc7XHJcbiAgQElucHV0KCkgY2F0ZWdvcmllczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBvcmdhbml6YXRpb25faWQ6IGFueSA9ICcnO1xyXG4gIEBJbnB1dCgpIG9yZ0RldGFpbHM6IGFueSA9IHt9O1xyXG4gIHByaXZhdGUgZm9ybWF0RXZpZGFuY2VEYXRhVmFsdWU6IGFueTtcclxuICBASW5wdXQoKSBzZXQgZm9ybWF0RXZpZGFuY2VEYXRhKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybWF0RXZpZGFuY2VEYXRhVmFsdWUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKHZhbHVlLCAnbm90IG5nIG9uIGluaXQnKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGZvcm1hdEV2aWRhbmNlRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YVZhbHVlO1xyXG4gIH1cclxuICBpc05ld0xpbmtEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGlzRWRpdERpc2FibGVkID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlc3BvbnNpYmlsaXR5U2VydmljZTogUmVzcG9uc2liaWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNuYWNrYmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgZm9ybWF0ZTogYW55ID0ge1xyXG4gICAgaGFzVXBsb2FkRm9ybWF0ZTogZmFsc2UsXHJcbiAgICBmb3JtYXRlVHlwZTogJ0ZJTEUnLCAvLyBMSU5LXHJcbiAgICBpc0V2aWRlbmNlUmVxdWlyZWQ6IGZhbHNlLFxyXG4gICAgbGlua3M6IFtdLFxyXG4gICAgZmlsZXM6IFtdLFxyXG4gICAgdXBsb2FkSW5Qcm9ncmVzczoge30sXHJcbiAgfTtcclxuXHJcbiAgbmV3TGluayA9IHtcclxuICAgIGxpbms6ICcnLFxyXG4gICAgY29udGFpbnNFcnJvcjogZmFsc2UsXHJcbiAgfTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YSkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKHRoaXMuZm9ybWF0RXZpZGFuY2VEYXRhLCAnbmcgb24gaW5pdCcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZURhdGEoc2V0dGluZ3M6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSA9IHNldHRpbmdzPy5mb3JtYXRSZXF1aXJlZCA/PyBmYWxzZTtcclxuICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9XHJcbiAgICAgIHNldHRpbmdzPy5mb3JtYXRMaW5rcz8ubGVuZ3RoID4gMCA/ICdMSU5LJyA6ICdGSUxFJztcclxuICAgIHRoaXMuZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPSBzZXR0aW5ncz8uZXZpZGVuY2VSZXF1aXJlZCA/PyBmYWxzZTtcclxuICAgIHRoaXMuZm9ybWF0ZS5saW5rcyA9IHRoaXMuYXJyYXl0b0xpbmtPYmplY3Qoc2V0dGluZ3M/LmZvcm1hdExpbmtzKSA/PyBbXTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3JlcG9ydEFDYXNlJykge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuZmlsZXMgPSBzZXR0aW5ncztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ZS5maWxlcyA9IHRoaXMubm9ybWFsaXplRm9ybWF0RmlsZXMoc2V0dGluZ3M/LmZvcm1hdEZpbGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbm9ybWFsaXplRm9ybWF0RmlsZXMoZmlsZXM6IGFueVtdKTogYW55W10ge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbGVzKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZXMubWFwKChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZmlsZU5hbWUgPVxyXG4gICAgICAgIGZpbGU/LmZpbGVfbmFtZSA/P1xyXG4gICAgICAgIGZpbGU/Lm5hbWUgPz9cclxuICAgICAgICBmaWxlPy5maWxlbmFtZSA/P1xyXG4gICAgICAgIGZpbGU/Lm9yaWdpbmFsX2ZpbGVuYW1lID8/XHJcbiAgICAgICAgZmlsZT8ub3JnX2ZpbGUgPz9cclxuICAgICAgICAnJztcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5maWxlLFxyXG4gICAgICAgIGZpbGVwYXRoOiBmaWxlPy5maWxlcGF0aCA/PyBmaWxlPy5maWxlUGF0aCA/PyBmaWxlPy5maWxlX3VybF9wYXRoID8/ICcnLFxyXG4gICAgICAgIGZpbGVfbmFtZTogZmlsZU5hbWUsXHJcbiAgICAgICAgZmlsZW5hbWU6IGZpbGU/LmZpbGVuYW1lID8/IGZpbGVOYW1lLFxyXG4gICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBmaWxlPy5vcmlnaW5hbF9maWxlbmFtZSA/PyBmaWxlPy5vcmdfZmlsZSA/PyBmaWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBmaWxlPy50eXBlID8/ICcnLFxyXG4gICAgICAgIGZpZDogZmlsZT8uZmlkLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUlzRm9ybWF0ZVVwbG9hZChzdGF0dXM6IGJvb2xlYW4pIHtcclxuICAgIGlmIChzdGF0dXMgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgaWYgKHN0YXR1cyA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBdHRhY2htZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9IHR5cGU7XHJcbiAgICBpZiAodHlwZSA9PT0gJ0xJTksnICYmIHRoaXMuZm9ybWF0ZS5saW5rcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gVE9ET1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGluc2VydExpbmsobW9kZTogYW55LCBpbmRleDogbnVtYmVyID0gLTEpIHtcclxuICAgIC8vIGNvbnN0IHVybFJlZ2V4ID0gbmV3IFJlZ0V4cCgnKGh0dHBzPzovLyk/KFtcXFxcZGEtei4tXSspXFxcXC4oW2Etei5dezIsNn0pWy9cXFxcdyAuLV0qLz8nKTtcclxuICAgIGNvbnN0IHVybFJlZ2V4ID1cclxuICAgICAgLyhodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldW2EtekEtWjAtOS1dK1thLXpBLVowLTldXFwuW15cXHNdezIsfXxodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV0rXFwuW15cXHNdezIsfXx3d3dcXC5bYS16QS1aMC05XStcXC5bXlxcc117Mix9KS9naTtcclxuICAgIGlmIChtb2RlID09PSAnQ1JFQVRFJykge1xyXG4gICAgICBpZiAodGhpcy5uZXdMaW5rLmxpbmsubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldE5ld0xpbmsoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHVybFJlZ2V4LnRlc3QodGhpcy5uZXdMaW5rLmxpbmspO1xyXG4gICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzLnB1c2godGhpcy5uZXdMaW5rKTtcclxuICAgICAgICB0aGlzLnJlc2V0TmV3TGluaygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChtb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0ubGluay5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLmlzRWRpdEVuYWJsZWQoKTtcclxuICAgICAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHVybFJlZ2V4LnRlc3QodGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5saW5rKTtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmlzRWRpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uY29udGFpbnNFcnJvciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc05ld0xpbmtEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uY29udGFpbnNFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0TGluayhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmlzRWRpdGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTGluayhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUubGlua3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0TmV3TGluaygpIHtcclxuICAgIHRoaXMubmV3TGluayA9IHtcclxuICAgICAgbGluazogJycsXHJcbiAgICAgIGNvbnRhaW5zRXJyb3I6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcm9jZXNzaW5nKGZpbGU6IEZpbGUsIHVpZDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5wb2xpY3lTZXJ2aWNlLmZpbGVTaXplTGltaXQoZmlsZSkpIHtcclxuICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUsIHVpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5zaG93KEZJTEVfU0laRS5NRVNTQUdFLCBGSUxFX1NJWkUuRVJST1IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25GaWxlRHJvcHBlZChmaWxlczogYW55KSB7XHJcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdWlkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTQpO1xyXG4gICAgICB0aGlzLmZpbGVQcm9jZXNzaW5nKGZpbGUsIHVpZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB1aWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXSA9IGZpbGUubmFtZTtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScgfHwgdGhpcy5tb2RlID09ICdwb2xpY3lSZXZpZXdlcicpIHtcclxuICAgICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XHJcbiAgICAgIHRoaXMucG9saWN5U2VydmljZVxyXG4gICAgICAgIC5maWxlVXBsb2FkV29ya3Jvb20oZm9ybURhdGEsIHBhdGgpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdGUuZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgIGZpbGVwYXRoOiBwYXRoLFxyXG4gICAgICAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBkYXRhLm9yZ19maWxlLFxyXG4gICAgICAgICAgICBsaW5rU2V0OiAnJyxcclxuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgICBmaWQ6IGRhdGE/LmZpZCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJsID0gYG9yZy0ke3RoaXMub3JnYW5pemF0aW9uX2lkfSR7RklMRV9VUkwuZm9ybWF0fWA7XHJcbiAgICAgIHRoaXMuZ2V0U2lnbmVkVXJsKHtmaWxlTmFtZTogZmlsZS5uYW1lLCBjb250ZW50VHlwZTogZmlsZS50eXBlfSwgZmlsZSwgdWlkICk7XHJcbiAgICAgIC8vIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXHJcbiAgICAgIC8vICAgLnVwbG9hZFRvTm9kZShmb3JtRGF0YSwgdXJsKVxyXG4gICAgICAvLyAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5mb3JtYXRlLmZpbGVzLnB1c2goe1xyXG4gICAgICAvLyAgICAgICBmaWxlcGF0aDpkYXRhPy5maWxlX3VybF9wYXRoLFxyXG4gICAgICAvLyAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgIC8vICAgICAgIGZpbGVuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgIC8vICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBkYXRhLm9yZ19maWxlLFxyXG4gICAgICAvLyAgICAgICB0eXBlOiBmaWxlLnR5cGUsXHJcbiAgICAgIC8vICAgICB9KTtcclxuICAgICAgLy8gICAgIGRlbGV0ZSB0aGlzLmZvcm1hdGUudXBsb2FkSW5Qcm9ncmVzc1t1aWRdO1xyXG4gICAgICAvLyAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgLy8gICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNpZ25lZFVybChmaWxlTWV0YURhdGE6YW55LCBmaWxlOiBGaWxlLCB1aWQ6IGFueSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgLi4uZmlsZU1ldGFEYXRhLFxyXG4gICAgICBvcmdhbml6YXRpb246IHtcclxuICAgICAgICBvaWQ6IHRoaXMub3JnRGV0YWlscz8ub2lkLFxyXG4gICAgICAgIGRhdGFSZXNpZGVuY3lSZWdpb246IHRoaXMub3JnRGV0YWlscz8ucmVnaW9uLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLmdldFNpZ25lZFVybChwYXlsb2FkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmVUb1MzKGZpbGUsIGRhdGEsIGZpbGVNZXRhRGF0YSwgdWlkKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlVG9TMyhmaWxlOiBhbnksIGRhdGE6IGFueSwgZmlsZU1ldGFEYXRhOiBhbnksIHVpZDogYW55KSB7XHJcbiAgICBjb25zdCBzaWduZWRVcmwgPSBkYXRhPy5zaWduZWRVcmwgfHwgZGF0YT8uc2lnbmVkdXJsO1xyXG5cclxuXHJcbiAgICBpZiAoIXNpZ25lZFVybCkge1xyXG4gICAgICBkZWxldGUgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLnNhdmVUb1MzKGZpbGUsIHNpZ25lZFVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUuZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICBmaWxlcGF0aDogZGF0YT8uZmlsZVBhdGgsXHJcbiAgICAgICAgICBmaWxlX25hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgIGZpbGVuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICBvcmlnaW5hbF9maWxlbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgZmlkOiBkYXRhPy5maWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybWF0ZS5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGVtaXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3JlcG9ydEFDYXNlJykge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQodGhpcy5mb3JtYXRlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAncG9saWN5JyB8fCB0aGlzLm1vZGUgPT0gJ3BvbGljeVJldmlld2VyJykge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlzRm9ybWF0ZVVwbG9hZGVkOiB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSxcclxuICAgICAgICBsaW5rczpcclxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRMaW5rc0FycmF5KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzPy5sZW5ndGggPyBbLi4udGhpcy5mb3JtYXRlLmxpbmtzXSA6IFtdXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgIGZpbGVzOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJyA/IHRoaXMuZm9ybWF0ZS5maWxlcyA6IFtdLFxyXG4gICAgICAgIGZvcm1hdGVUeXBlOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUsXHJcbiAgICAgICAgaXNFdmlkZW5jZVJlcXVpcmVkOiB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkLFxyXG4gICAgICB9O1xyXG4gICAgICBwYXlsb2FkLmxpbmtzID0gcGF5bG9hZC5saW5rcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQocGF5bG9hZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlzRm9ybWF0ZVVwbG9hZGVkOiB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSxcclxuICAgICAgICBsaW5rczpcclxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlICYmIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRMaW5rc0FycmF5KFsuLi50aGlzLmZvcm1hdGUubGlua3NdKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgIGZpbGVzOlxyXG4gICAgICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgJiYgdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRSdcclxuICAgICAgICAgICAgPyB0aGlzLmZvcm1hdGUuZmlsZXNcclxuICAgICAgICAgICAgOiBbXSxcclxuICAgICAgICBmb3JtYXRlVHlwZTogdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlLFxyXG4gICAgICAgIGlzRXZpZGVuY2VSZXF1aXJlZDogdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCxcclxuICAgICAgfTtcclxuICAgICAgcGF5bG9hZC5saW5rcyA9IHBheWxvYWQubGlua3MuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9PSB1bmRlZmluZWQpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQocGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExpbmtzQXJyYXkobGlua3M6IGFueSkge1xyXG4gICAgY29uc3QgbGluayA9IGxpbmtzLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlLmxpbmsgJiYgIWU/LmNvbnRhaW5zRXJyb3IgJiYgIWU/LmlzRWRpdGluZykge1xyXG4gICAgICAgIHJldHVybiBlLmxpbms7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGxpbms/Lmxlbmd0aCA8PSAxICYmIGxpbmtbMF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbGluaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFycmF5dG9MaW5rT2JqZWN0KGxpbmtzQXJyYXk6IGFueSkge1xyXG4gICAgaWYgKGxpbmtzQXJyYXkpIHtcclxuICAgICAgY29uc3QgbGlua3MgPSBsaW5rc0FycmF5Lm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgbGluazogZSwgY29udGFpbnNFcnJvcjogZmFsc2UsIGlzRWRpdGluZzogZmFsc2UgfTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gbGlua3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0VkaXRFbmFibGVkKCkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZm9ybWF0ZS5saW5rcykge1xyXG4gICAgICBpZiAoaXRlbS5pc0VkaXRpbmcgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmlzRWRpdERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc0VkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHBvbGljeUxpbmtTZXRMaXN0ID0gW1xyXG4gICAgLy8gJ1BvbGljeSBDaGFydGVyJyxcclxuICAgIC8vICdSZWxhdGVkIFBvbGljeSBEb2N1bWVudHMvT3RoZXIgUmVmZXJlbmNlcycsXHJcbiAgICAvLyAnUHJvY2VkdXJlcyBMaW5rZWQgdG8gdGhpcyBQb2xpY3knLFxyXG4gICAgLy8gJ0ltcGxlbWVudGF0aW9uIEd1aWRlbGluZXMgZm9yIHRoaXMgUG9saWN5JyxcclxuICAgIC8vICdUcmFpbmluZyBNYXRlcmlhbHMgZm9yIHRoaXMgUG9saWN5J1xyXG4gICAgJ0NoYXJ0ZXInLFxyXG4gICAgJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcclxuICAgICdSZWZlcmVuY2UgTWF0ZXJpYWxzJyxcclxuICAgICdSZWxhdGVkIHByb2NlZHVyZXMnLFxyXG4gICAgJ0ltcGxlbWVudGF0aW9uIGd1aWRlbGluZXMnLFxyXG4gICAgJ1RyYWluaW5nIE1hdGVyaWFscycsXHJcbiAgICAnUmVndWxhdG9yeSBEb2N1bWVudHMnLFxyXG4gICAgJ090aGVyJyxcclxuICBdO1xyXG4gIHNlbGVjdGVkTGlua1NldENoYW5nZShldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLmxpbmtTZXQgPSBldmVudDtcclxuICAgIGlmIChldmVudCA9PT0gJ090aGVyJyAmJiAhdGhpcy5mb3JtYXRlPy5maWxlc1tpbmRleF0/Lm90aGVycykge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLm90aGVycyA9IFsnJ107XHJcbiAgICB9XHJcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZURvY3VtZW50c0RldGFpbHMoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5mb3JtYXRlLmZpbGVzW2luZGV4XS5vdGhlcnMucHVzaCgnJyk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRQb2xpY3lBdHRhY2htZW50cyhmb3JtRGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBwYXRoID0gJ28vJyArIHRoaXMub3JnYW5pemF0aW9uX2lkICsgJy9wb2xpY3kvJztcclxuICAgIHRoaXMucG9saWN5U2VydmljZVxyXG4gICAgICAuZmlsZVVwbG9hZFdvcmtyb29tKGZvcm1EYXRhLCBwYXRoKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgICAgZmlsZV9uYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgICBvcmlnaW5hbF9maWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgICAgICBwYXRoOiBwYXRoLFxyXG4gICAgICAgICAgb3JnYW5pc2F0aW9uX2lkOiB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCksXHJcbiAgICAgICAgICBtZW1iZXJfaWQ6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKSxcclxuICAgICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLmNhdGVnb3JpZXMsXHJcbiAgICAgICAgICBjbGFwX2lkOiAwLFxyXG4gICAgICAgICAgY29udHJhY3RfdHlwZTogNCxcclxuICAgICAgICAgIGZvbGRlcl9pZDogMCxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiBbY2xhc3MucG9saWN5LXVwbG9hZC1maWxlXT1cIlsncG9saWN5JywgJ3JlcG9ydEFDYXNlJ10/LmluY2x1ZGVzKG1vZGUpXCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiICpuZ0lmPVwibW9kZSA9PSAncmVzcG9uc2liaWxpdHknXCI+XHJcbiAgICBGb3JtYXQgJiBFdmlkZW5jZVxyXG4gIDwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIiAqbmdJZj1cIlxyXG4gICAgICBtb2RlICE9ICdwb2xpY3knICYmIG1vZGUgIT0gJ3BvbGljeVJldmlld2VyJyAmJiBtb2RlICE9ICdyZXBvcnRBQ2FzZSdcclxuICAgIFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+RG8geW91IHdhbnQgdG8gdXBsb2FkIGEgZm9ybWF0IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5Pzwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidmb3JtYXRfcmVxdWlyZWQnXCIgW2NoZWNrZWRdPVwiZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID09PSB0cnVlXCJcclxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInRvZ2dsZUlzRm9ybWF0ZVVwbG9hZCh0cnVlKVwiPlllczwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidmb3JtYXRfcmVxdWlyZWQnXCIgW2NoZWNrZWRdPVwiZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID09PSBmYWxzZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdGVVcGxvYWQoZmFsc2UpXCI+Tm9cclxuICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS10YWJcIiAqbmdJZj1cImZvcm1hdGU/Lmhhc1VwbG9hZEZvcm1hdGUgfHwgbW9kZSA9PSAncG9saWN5UmV2aWV3ZXInXCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbY2xhc3MuYWN0aXZlXT1cImZvcm1hdGU/LmZvcm1hdGVUeXBlID09PSAnRklMRSdcIiAoY2xpY2spPVwidG9nZ2xlQXR0YWNobWVudFR5cGUoJ0ZJTEUnKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtYXRlLmxpbmtzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIEluc2VydCBGaWxlXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy5hY3RpdmVdPVwiZm9ybWF0ZT8uZm9ybWF0ZVR5cGUgPT09ICdMSU5LJ1wiIChjbGljayk9XCJ0b2dnbGVBdHRhY2htZW50VHlwZSgnTElOSycpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1hdGUuZmlsZXM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgSW5zZXJ0IExpbmtcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgIChmb3JtYXRlPy5oYXNVcGxvYWRGb3JtYXRlICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcclxuICAgICAgKG1vZGUgPT0gJ3BvbGljeScgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnKSB8fFxyXG4gICAgICAobW9kZSA9PSAncG9saWN5UmV2aWV3ZXInICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcclxuICAgICAgKG1vZGUgPT0gJ3JlcG9ydEFDYXNlJyAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRScpXHJcbiAgICBcIj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1maWxlIHVwbG9hZCBpbiBwcm9ncmVzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZm9ybWF0ZT8udXBsb2FkSW5Qcm9ncmVzcyB8IGtleXZhbHVlKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdGb3I9XCJcclxuICAgICAgICAgIGxldCBlYWNoRmlsZSBvZiBmb3JtYXRlPy51cGxvYWRJblByb2dyZXNzIHwga2V5dmFsdWU7XHJcbiAgICAgICAgICBsZXQgaSA9IGluZGV4XHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGVhY2hGaWxlLnZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZmlsZSB1cGxvYWQgZW5kcyBoZXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtYXRlLmZpbGVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlICE9ICdwb2xpY3knXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCBlYWNoRmlsZSBvZiBmb3JtYXRlLmZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBlYWNoRmlsZT8uZmlsZV9uYW1lIHx8IGVhY2hGaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09ICdwb2xpY3knXCIgY2xhc3M9XCJwb2xpY3ktcmVsYXRlZC1kb2N1bWVudC1maWVsZCB2eC1wLTMgdngtcHQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiPlxyXG4gICAgICAgICAgTElOSyBUSEUgRE9DVU1FTlQgQU5EIFNQRUNJRlkgVEhFIFJFTEFUSU9OU0hJUCBXSVRIIFRISVMgUE9MSUNZXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdCBwb2xpY3lcIiAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgZm9ybWF0ZS5maWxlczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZSB0YWJsZSB7e1xyXG4gICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpW1xyXG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJyk/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICB9fVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJlOzwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm1hdCB7e1xyXG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJylbXHJcbiAgICAgICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgIH19XCI+e3tcclxuICAgICAgICAgICAgICAgIGVhY2hGaWxlPy5maWxlX25hbWUuc3BsaXQoXCIuXCIpW1xyXG4gICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdChcIi5cIik/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCwgaSlcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RlZmluZSB0aGUgZG9jdW1lbnRcXCdzIHJlbGF0aW9uc2hpcCB0byB0aGlzIHBvbGljeSdcIiBuYW1lPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAge3sgZGF0YSB9fVxyXG4gICAgICAgICAgICA8L2NzLW9wdGlvbj5cclxuICAgICAgICAgIDwvY3Mtc2VsZWN0PlxyXG4gICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvdGhlciBvZiBlYWNoRmlsZT8ub3RoZXJzOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImVhY2hGaWxlPy5saW5rU2V0ID09PSAnT3RoZXIgKHNwZWNpZnkgb3duKSdcIiBbbmdNb2RlbF09XCJlYWNoRmlsZS5vdGhlcnNbal1cIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZExpbmtTZXRDaGFuZ2UoJ090aGVyIChzcGVjaWZ5IG93biknLGksICRldmVudCwgailcIiBjbGFzcz1cImxpbmthZ2UtaW5wdXRcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVHlwZSB0aGUgbGlua2FnZSBkZXRhaWxzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWFjaEZpbGU/LmxpbmtTZXQgPT09ICdPdGhlciAoc3BlY2lmeSBvd24pJ1wiIGNsYXNzPVwibGlua2FnZS1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbXQtMlwiIChjbGljayk9XCJhZGRNb3JlRG9jdW1lbnRzRGV0YWlscyhpKVwiPisgQUREIE1PUkU8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxyXG4gICAgICAgICAgICAgICAgTElOSyBUSEUgRE9DVU1FTlQgQU5EIFNQRUNJRlkgVEhFIFJFTEFUSU9OU0hJUCBXSVRIIFRISVMgUE9MSUNZXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGZvcm1hdGUuZmlsZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIm1vZGUhPSdwb2xpY3knXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QgcG9saWN5XCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7ZWFjaEZpbGU/LmZpbGVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0gLSA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtIC0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCxpKVwiIFtwbGFjZWhvbGRlcl09XCInRGVmaW5lIHRoZSBkb2N1bWVudFxcJ3MgcmVsYXRpb25zaGlwIHRvIHRoaXMgcG9saWN5J1wiIG5hbWU9XCJzZWxlY3RlZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGF9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NzLW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2NzLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1kcmFnIGFuZCBkcm9wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWdyb3VwXCIgW2NsYXNzLnVwbG9hZGVkXT1cImZvcm1hdGUuZmlsZXM/Lmxlbmd0aCA+IDBcIiBhcHBEcmFnRHJvcFxyXG4gICAgICAoZmlsZURyb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIkFTU0VUUy51cGxvYWRcIiBhbHQ9XCJcIiBjbGFzcz1cImltYWdlXCIgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnJvd3NlXCI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT0gJ3BvbGljeScgJiYgbW9kZSAhPSAncmVwb3J0QUNhc2UnXCI+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT0gJ3BvbGljeScgfHwgbW9kZSA9PSAncmVwb3J0QUNhc2UnXCI+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPkJyb3dzZVxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIG11bHRpcGxlIChjaGFuZ2UpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJtb2RlIT0ncG9saWN5J1wiPkRyb3AgeW91ciBmaWxlcyBoZXJlIC88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPkRyYWcgJiBkcm9wIHRvIHVwbG9hZCBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwb2xpY3kgLzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+QnJvd3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIG11bHRpcGxlIChjaGFuZ2UpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZHJhZyBkcm9wIGVuZHMgaGVyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlxyXG4gICAgICAoZm9ybWF0ZT8uaGFzVXBsb2FkRm9ybWF0ZSAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnTElOSycpIHx8XHJcbiAgICAgIChtb2RlID09ICdwb2xpY3lSZXZpZXdlcicgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnKVxyXG4gICAgXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0ZS5saW5rcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZm9ybWF0ZS5saW5rczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIiFsaW5rLmlzRWRpdGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgbGluay5saW5rIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtjbGFzcy5kaXNhYmxlZF09XCJpc0VkaXREaXNhYmxlZFwiIGNsYXNzPVwiZWRpdFwiIChjbGljayk9XCJlZGl0TGluayhpKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUxpbmsoaSlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmsuaXNFZGl0aW5nXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImVkaXQtbGlua1wiIGFwcEF1dG9mb2N1cyBwbGFjZWhvbGRlcj1cIkVudGVyIHRoZSBsaW5rIGhlcmVcIiBbKG5nTW9kZWwpXT1cImxpbmsubGlua1wiXHJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJpbnNlcnRMaW5rKCdFRElUJywgaSlcIiAoa2V5ZG93bi5lbnRlcik9XCJpbnNlcnRMaW5rKCdFRElUJywgaSlcIiAvPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJsaW5rLmNvbnRhaW5zRXJyb3JcIj5cclxuICAgICAgICAgICAgUGxlYXNlIGluc2VydCBhIHZhbGlkIGxpbmtcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiaXNOZXdMaW5rRGlzYWJsZWRcIiBjbGFzcz1cImVkaXQtbGlua1wiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJuZXdMaW5rLmxpbmtcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHRoZSBsaW5rIGhlcmVcIiAoZm9jdXNvdXQpPVwiaW5zZXJ0TGluaygnQ1JFQVRFJylcIiAoa2V5ZG93bi5lbnRlcik9XCJpbnNlcnRMaW5rKCdDUkVBVEUnKVwiIC8+XHJcbiAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5ld0xpbmsuY29udGFpbnNFcnJvclwiPlxyXG4gICAgICBQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgbGlua1xyXG4gICAgPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCIgKm5nSWY9XCJtb2RlID09ICdyZXNwb25zaWJpbGl0eSdcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPkRvIHlvdSB3YW50IGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgdGhlIHJlc3BvbnNpYmlsaXR5IHRvIGJlXHJcbiAgICAgIHVwbG9hZGVkPzwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidldmlkZW5jZV9yZXF1aXJlZCdcIiBbY2hlY2tlZF09XCJmb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKHRydWUpXCI+WWVzPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDxhcHAtY3MtcmFkaW8gW25hbWVdPVwiJ2V2aWRlbmNlX3JlcXVpcmVkJ1wiIFtjaGVja2VkXT1cImZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKGZhbHNlKVwiPk5vXHJcbiAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zvcm1hdC1hbmQtZXZpZGVuY2UvZm9ybWF0LWFuZC1ldmlkZW5jZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxJQUFhLGtCQUFrQixDQUFDLEtBQVU7UUFDeEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELFlBQ1UscUJBQTRDLEVBQzVDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBSGhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMs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STtnQkFDVixlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUN6QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixTQUFTLEVBQUUsQ0FBQzthQUNiLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBdllVLDBCQUEwQjttR0FBMUIsMEJBQTBCLG9RQ3BCdkMsbTRWQTRNTTs7NEZEeExPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7Z01BTXpCLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLGtCQUFrQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGSUxFX1VSTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9maWxlLXVwbG9hZC5jb25zdGFudCc7XHJcbmltcG9ydCB7IEZJTEVfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9wb2xpY3kuY29uc3RhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybWF0LWFuZC1ldmlkZW5jZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1hdC1hbmQtZXZpZGVuY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm1hdC1hbmQtZXZpZGVuY2UuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0QW5kRXZpZGVuY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEFTU0VUUyA9IEFTU0VUUztcclxuICBAT3V0cHV0KCkgdXBkYXRlRmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgbW9kZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGNhdGVnb3JpZXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgb3JnYW5pemF0aW9uX2lkOiBhbnkgPSAnJztcclxuICBASW5wdXQoKSBvcmdEZXRhaWxzOiBhbnkgPSB7fTtcclxuICBwcml2YXRlIGZvcm1hdEV2aWRhbmNlRGF0YVZhbHVlOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0IGZvcm1hdEV2aWRhbmNlRGF0YSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YVZhbHVlID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSh2YWx1ZSwgJ25vdCBuZyBvbiBpbml0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCBmb3JtYXRFdmlkYW5jZURhdGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRFdmlkYW5jZURhdGFWYWx1ZTtcclxuICB9XHJcbiAgaXNOZXdMaW5rRGlzYWJsZWQgPSBmYWxzZTtcclxuICBpc0VkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXNwb25zaWJpbGl0eVNlcnZpY2U6IFJlc3BvbnNpYmlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja2JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGZvcm1hdGU6IGFueSA9IHtcclxuICAgIGhhc1VwbG9hZEZvcm1hdGU6IGZhbHNlLFxyXG4gICAgZm9ybWF0ZVR5cGU6ICdGSUxFJywgLy8gTElOS1xyXG4gICAgaXNFdmlkZW5jZVJlcXVpcmVkOiBmYWxzZSxcclxuICAgIGxpbmtzOiBbXSxcclxuICAgIGZpbGVzOiBbXSxcclxuICAgIHVwbG9hZEluUHJvZ3Jlc3M6IHt9LFxyXG4gIH07XHJcblxyXG4gIG5ld0xpbmsgPSB7XHJcbiAgICBsaW5rOiAnJyxcclxuICAgIGNvbnRhaW5zRXJyb3I6IGZhbHNlLFxyXG4gIH07XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXRFdmlkYW5jZURhdGEpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplRGF0YSh0aGlzLmZvcm1hdEV2aWRhbmNlRGF0YSwgJ25nIG9uIGluaXQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVEYXRhKHNldHRpbmdzOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSBzZXR0aW5ncz8uZm9ybWF0UmVxdWlyZWQgPz8gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPVxyXG4gICAgICBzZXR0aW5ncz8uZm9ybWF0TGlua3M/Lmxlbmd0aCA+IDAgPyAnTElOSycgOiAnRklMRSc7XHJcbiAgICB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID0gc2V0dGluZ3M/LmV2aWRlbmNlUmVxdWlyZWQgPz8gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm1hdGUubGlua3MgPSB0aGlzLmFycmF5dG9MaW5rT2JqZWN0KHNldHRpbmdzPy5mb3JtYXRMaW5rcykgPz8gW107XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdyZXBvcnRBQ2FzZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXRlLmZpbGVzID0gc2V0dGluZ3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuZmlsZXMgPSB0aGlzLm5vcm1hbGl6ZUZvcm1hdEZpbGVzKHNldHRpbmdzPy5mb3JtYXRGaWxlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZUZvcm1hdEZpbGVzKGZpbGVzOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlcykpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbGVzLm1hcCgoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGVOYW1lID1cclxuICAgICAgICBmaWxlPy5maWxlX25hbWUgPz9cclxuICAgICAgICBmaWxlPy5uYW1lID8/XHJcbiAgICAgICAgZmlsZT8uZmlsZW5hbWUgPz9cclxuICAgICAgICBmaWxlPy5vcmlnaW5hbF9maWxlbmFtZSA/P1xyXG4gICAgICAgIGZpbGU/Lm9yZ19maWxlID8/XHJcbiAgICAgICAgJyc7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uZmlsZSxcclxuICAgICAgICBmaWxlcGF0aDogZmlsZT8uZmlsZXBhdGggPz8gZmlsZT8uZmlsZVBhdGggPz8gZmlsZT8uZmlsZV91cmxfcGF0aCA/PyAnJyxcclxuICAgICAgICBmaWxlX25hbWU6IGZpbGVOYW1lLFxyXG4gICAgICAgIGZpbGVuYW1lOiBmaWxlPy5maWxlbmFtZSA/PyBmaWxlTmFtZSxcclxuICAgICAgICBvcmlnaW5hbF9maWxlbmFtZTogZmlsZT8ub3JpZ2luYWxfZmlsZW5hbWUgPz8gZmlsZT8ub3JnX2ZpbGUgPz8gZmlsZU5hbWUsXHJcbiAgICAgICAgdHlwZTogZmlsZT8udHlwZSA/PyAnJyxcclxuICAgICAgICBpZDogZmlsZT8uaWQgPz8gZmlsZT8uZmlkLFxyXG4gICAgICAgIGZpZDogZmlsZT8uZmlkID8/IGZpbGU/LmlkLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUlzRm9ybWF0ZVVwbG9hZChzdGF0dXM6IGJvb2xlYW4pIHtcclxuICAgIGlmIChzdGF0dXMgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgaWYgKHN0YXR1cyA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ZS5pc0V2aWRlbmNlUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBdHRhY2htZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9IHR5cGU7XHJcbiAgICBpZiAodHlwZSA9PT0gJ0xJTksnICYmIHRoaXMuZm9ybWF0ZS5saW5rcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gVE9ET1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGluc2VydExpbmsobW9kZTogYW55LCBpbmRleDogbnVtYmVyID0gLTEpIHtcclxuICAgIC8vIGNvbnN0IHVybFJlZ2V4ID0gbmV3IFJlZ0V4cCgnKGh0dHBzPzovLyk/KFtcXFxcZGEtei4tXSspXFxcXC4oW2Etei5dezIsNn0pWy9cXFxcdyAuLV0qLz8nKTtcclxuICAgIGNvbnN0IHVybFJlZ2V4ID1cclxuICAgICAgLyhodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV1bYS16QS1aMC05LV0rW2EtekEtWjAtOV1cXC5bXlxcc117Mix9fHd3d1xcLlthLXpBLVowLTldW2EtekEtWjAtOS1dK1thLXpBLVowLTldXFwuW15cXHNdezIsfXxodHRwcz86XFwvXFwvKD86d3d3XFwufCg/IXd3dykpW2EtekEtWjAtOV0rXFwuW15cXHNdezIsfXx3d3dcXC5bYS16QS1aMC05XStcXC5bXlxcc117Mix9KS9naTtcclxuICAgIGlmIChtb2RlID09PSAnQ1JFQVRFJykge1xyXG4gICAgICBpZiAodGhpcy5uZXdMaW5rLmxpbmsubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldE5ld0xpbmsoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHVybFJlZ2V4LnRlc3QodGhpcy5uZXdMaW5rLmxpbmspO1xyXG4gICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzLnB1c2godGhpcy5uZXdMaW5rKTtcclxuICAgICAgICB0aGlzLnJlc2V0TmV3TGluaygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubmV3TGluay5jb250YWluc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChtb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgaWYgKHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0ubGluay5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLmlzRWRpdEVuYWJsZWQoKTtcclxuICAgICAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHVybFJlZ2V4LnRlc3QodGhpcy5mb3JtYXRlLmxpbmtzW2luZGV4XS5saW5rKTtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmlzRWRpdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uY29udGFpbnNFcnJvciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc05ld0xpbmtEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ZS5saW5rc1tpbmRleF0uY29udGFpbnNFcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0TGluayhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUubGlua3NbaW5kZXhdLmlzRWRpdGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmlzTmV3TGlua0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTGluayhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUubGlua3Muc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuaXNFZGl0RW5hYmxlZCgpO1xyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0TmV3TGluaygpIHtcclxuICAgIHRoaXMubmV3TGluayA9IHtcclxuICAgICAgbGluazogJycsXHJcbiAgICAgIGNvbnRhaW5zRXJyb3I6IGZhbHNlLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZW1pdFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGVQcm9jZXNzaW5nKGZpbGU6IEZpbGUsIHVpZDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5wb2xpY3lTZXJ2aWNlLmZpbGVTaXplTGltaXQoZmlsZSkpIHtcclxuICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUsIHVpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5zaG93KEZJTEVfU0laRS5NRVNTQUdFLCBGSUxFX1NJWkUuRVJST1IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25GaWxlRHJvcHBlZChmaWxlczogYW55KSB7XHJcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdWlkOiBzdHJpbmcgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTQpO1xyXG4gICAgICB0aGlzLmZpbGVQcm9jZXNzaW5nKGZpbGUsIHVpZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB1aWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXSA9IGZpbGUubmFtZTtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3BvbGljeScgfHwgdGhpcy5tb2RlID09ICdwb2xpY3lSZXZpZXdlcicpIHtcclxuICAgICAgY29uc3QgcGF0aCA9ICdvLycgKyB0aGlzLm9yZ2FuaXphdGlvbl9pZCArICcvcG9saWN5Lyc7XHJcbiAgICAgIHRoaXMucG9saWN5U2VydmljZVxyXG4gICAgICAgIC5maWxlVXBsb2FkV29ya3Jvb20oZm9ybURhdGEsIHBhdGgpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1hdGUuZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICAgIGZpbGVwYXRoOiBwYXRoLFxyXG4gICAgICAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgICAgICAgIGZpbGVuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBkYXRhLm9yZ19maWxlLFxyXG4gICAgICAgICAgICBsaW5rU2V0OiAnJyxcclxuICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgICBmaWQ6IGRhdGE/LmZpZCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgICAgICB0aGlzLmVtaXRWYWx1ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJsID0gYG9yZy0ke3RoaXMub3JnYW5pemF0aW9uX2lkfSR7RklMRV9VUkwuZm9ybWF0fWA7XHJcbiAgICAgIHRoaXMuZ2V0U2lnbmVkVXJsKHtmaWxlTmFtZTogZmlsZS5uYW1lLCBjb250ZW50VHlwZTogZmlsZS50eXBlfSwgZmlsZSwgdWlkICk7XHJcbiAgICAgIC8vIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXHJcbiAgICAgIC8vICAgLnVwbG9hZFRvTm9kZShmb3JtRGF0YSwgdXJsKVxyXG4gICAgICAvLyAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5mb3JtYXRlLmZpbGVzLnB1c2goe1xyXG4gICAgICAvLyAgICAgICBmaWxlcGF0aDpkYXRhPy5maWxlX3VybF9wYXRoLFxyXG4gICAgICAvLyAgICAgICBmaWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgIC8vICAgICAgIGZpbGVuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgIC8vICAgICAgIG9yaWdpbmFsX2ZpbGVuYW1lOiBkYXRhLm9yZ19maWxlLFxyXG4gICAgICAvLyAgICAgICB0eXBlOiBmaWxlLnR5cGUsXHJcbiAgICAgIC8vICAgICB9KTtcclxuICAgICAgLy8gICAgIGRlbGV0ZSB0aGlzLmZvcm1hdGUudXBsb2FkSW5Qcm9ncmVzc1t1aWRdO1xyXG4gICAgICAvLyAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgLy8gICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNpZ25lZFVybChmaWxlTWV0YURhdGE6YW55LCBmaWxlOiBGaWxlLCB1aWQ6IGFueSkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgLi4uZmlsZU1ldGFEYXRhLFxyXG4gICAgICBvcmdhbml6YXRpb246IHtcclxuICAgICAgICBvaWQ6IHRoaXMub3JnRGV0YWlscz8ub2lkLFxyXG4gICAgICAgIGRhdGFSZXNpZGVuY3lSZWdpb246IHRoaXMub3JnRGV0YWlscz8ucmVnaW9uLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLmdldFNpZ25lZFVybChwYXlsb2FkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmVUb1MzKGZpbGUsIGRhdGEsIGZpbGVNZXRhRGF0YSwgdWlkKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlVG9TMyhmaWxlOiBhbnksIGRhdGE6IGFueSwgZmlsZU1ldGFEYXRhOiBhbnksIHVpZDogYW55KSB7XHJcbiAgICBjb25zdCBzaWduZWRVcmwgPSBkYXRhPy5zaWduZWRVcmwgfHwgZGF0YT8uc2lnbmVkdXJsO1xyXG5cclxuXHJcbiAgICBpZiAoIXNpZ25lZFVybCkge1xyXG4gICAgICBkZWxldGUgdGhpcy5mb3JtYXRlLnVwbG9hZEluUHJvZ3Jlc3NbdWlkXTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLnNhdmVUb1MzKGZpbGUsIHNpZ25lZFVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm1hdGUuZmlsZXMucHVzaCh7XHJcbiAgICAgICAgICBmaWxlcGF0aDogZGF0YT8uZmlsZVBhdGgsXHJcbiAgICAgICAgICBmaWxlX25hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgIGZpbGVuYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgICAgICBvcmlnaW5hbF9maWxlbmFtZTogZmlsZS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxyXG4gICAgICAgICAgZmlkOiBkYXRhPy5maWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZm9ybWF0ZS51cGxvYWRJblByb2dyZXNzW3VpZF07XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVBdHRhY2htZW50KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZm9ybWF0ZS5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGVtaXRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ3JlcG9ydEFDYXNlJykge1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQodGhpcy5mb3JtYXRlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAncG9saWN5JyB8fCB0aGlzLm1vZGUgPT0gJ3BvbGljeVJldmlld2VyJykge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlzRm9ybWF0ZVVwbG9hZGVkOiB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSxcclxuICAgICAgICBsaW5rczpcclxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRMaW5rc0FycmF5KFxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRlLmxpbmtzPy5sZW5ndGggPyBbLi4udGhpcy5mb3JtYXRlLmxpbmtzXSA6IFtdXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgIGZpbGVzOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJyA/IHRoaXMuZm9ybWF0ZS5maWxlcyA6IFtdLFxyXG4gICAgICAgIGZvcm1hdGVUeXBlOiB0aGlzLmZvcm1hdGUuZm9ybWF0ZVR5cGUsXHJcbiAgICAgICAgaXNFdmlkZW5jZVJlcXVpcmVkOiB0aGlzLmZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkLFxyXG4gICAgICB9O1xyXG4gICAgICBwYXlsb2FkLmxpbmtzID0gcGF5bG9hZC5saW5rcy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUgIT09IHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQocGF5bG9hZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgIGlzRm9ybWF0ZVVwbG9hZGVkOiB0aGlzLmZvcm1hdGUuaGFzVXBsb2FkRm9ybWF0ZSxcclxuICAgICAgICBsaW5rczpcclxuICAgICAgICAgIHRoaXMuZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlICYmIHRoaXMuZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnXHJcbiAgICAgICAgICAgID8gdGhpcy5nZXRMaW5rc0FycmF5KFsuLi50aGlzLmZvcm1hdGUubGlua3NdKVxyXG4gICAgICAgICAgICA6IFtdLFxyXG4gICAgICAgIGZpbGVzOlxyXG4gICAgICAgICAgdGhpcy5mb3JtYXRlLmhhc1VwbG9hZEZvcm1hdGUgJiYgdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRSdcclxuICAgICAgICAgICAgPyB0aGlzLmZvcm1hdGUuZmlsZXNcclxuICAgICAgICAgICAgOiBbXSxcclxuICAgICAgICBmb3JtYXRlVHlwZTogdGhpcy5mb3JtYXRlLmZvcm1hdGVUeXBlLFxyXG4gICAgICAgIGlzRXZpZGVuY2VSZXF1aXJlZDogdGhpcy5mb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCxcclxuICAgICAgfTtcclxuICAgICAgcGF5bG9hZC5saW5rcyA9IHBheWxvYWQubGlua3MuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9PSB1bmRlZmluZWQpO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpbGVzLmVtaXQocGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExpbmtzQXJyYXkobGlua3M6IGFueSkge1xyXG4gICAgY29uc3QgbGluayA9IGxpbmtzLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlLmxpbmsgJiYgIWU/LmNvbnRhaW5zRXJyb3IgJiYgIWU/LmlzRWRpdGluZykge1xyXG4gICAgICAgIHJldHVybiBlLmxpbms7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGxpbms/Lmxlbmd0aCA8PSAxICYmIGxpbmtbMF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbGluaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFycmF5dG9MaW5rT2JqZWN0KGxpbmtzQXJyYXk6IGFueSkge1xyXG4gICAgaWYgKGxpbmtzQXJyYXkpIHtcclxuICAgICAgY29uc3QgbGlua3MgPSBsaW5rc0FycmF5Lm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgbGluazogZSwgY29udGFpbnNFcnJvcjogZmFsc2UsIGlzRWRpdGluZzogZmFsc2UgfTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gbGlua3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0VkaXRFbmFibGVkKCkge1xyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZm9ybWF0ZS5saW5rcykge1xyXG4gICAgICBpZiAoaXRlbS5pc0VkaXRpbmcgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmlzRWRpdERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc0VkaXREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHBvbGljeUxpbmtTZXRMaXN0ID0gW1xyXG4gICAgLy8gJ1BvbGljeSBDaGFydGVyJyxcclxuICAgIC8vICdSZWxhdGVkIFBvbGljeSBEb2N1bWVudHMvT3RoZXIgUmVmZXJlbmNlcycsXHJcbiAgICAvLyAnUHJvY2VkdXJlcyBMaW5rZWQgdG8gdGhpcyBQb2xpY3knLFxyXG4gICAgLy8gJ0ltcGxlbWVudGF0aW9uIEd1aWRlbGluZXMgZm9yIHRoaXMgUG9saWN5JyxcclxuICAgIC8vICdUcmFpbmluZyBNYXRlcmlhbHMgZm9yIHRoaXMgUG9saWN5J1xyXG4gICAgJ0NoYXJ0ZXInLFxyXG4gICAgJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcclxuICAgICdSZWZlcmVuY2UgTWF0ZXJpYWxzJyxcclxuICAgICdSZWxhdGVkIHByb2NlZHVyZXMnLFxyXG4gICAgJ0ltcGxlbWVudGF0aW9uIGd1aWRlbGluZXMnLFxyXG4gICAgJ1RyYWluaW5nIE1hdGVyaWFscycsXHJcbiAgICAnUmVndWxhdG9yeSBEb2N1bWVudHMnLFxyXG4gICAgJ090aGVyJyxcclxuICBdO1xyXG4gIHNlbGVjdGVkTGlua1NldENoYW5nZShldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLmxpbmtTZXQgPSBldmVudDtcclxuICAgIGlmIChldmVudCA9PT0gJ090aGVyJyAmJiAhdGhpcy5mb3JtYXRlPy5maWxlc1tpbmRleF0/Lm90aGVycykge1xyXG4gICAgICB0aGlzLmZvcm1hdGUuZmlsZXNbaW5kZXhdLm90aGVycyA9IFsnJ107XHJcbiAgICB9XHJcbiAgICB0aGlzLmVtaXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkTW9yZURvY3VtZW50c0RldGFpbHMoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5mb3JtYXRlLmZpbGVzW2luZGV4XS5vdGhlcnMucHVzaCgnJyk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRQb2xpY3lBdHRhY2htZW50cyhmb3JtRGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBwYXRoID0gJ28vJyArIHRoaXMub3JnYW5pemF0aW9uX2lkICsgJy9wb2xpY3kvJztcclxuICAgIHRoaXMucG9saWN5U2VydmljZVxyXG4gICAgICAuZmlsZVVwbG9hZFdvcmtyb29tKGZvcm1EYXRhLCBwYXRoKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICAgICAgZmlsZV9uYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgICBvcmlnaW5hbF9maWxlX25hbWU6IGRhdGEub3JnX2ZpbGUsXHJcbiAgICAgICAgICBwYXRoOiBwYXRoLFxyXG4gICAgICAgICAgb3JnYW5pc2F0aW9uX2lkOiB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCksXHJcbiAgICAgICAgICBtZW1iZXJfaWQ6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKSxcclxuICAgICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLmNhdGVnb3JpZXMsXHJcbiAgICAgICAgICBjbGFwX2lkOiAwLFxyXG4gICAgICAgICAgY29udHJhY3RfdHlwZTogNCxcclxuICAgICAgICAgIGZvbGRlcl9pZDogMCxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiBbY2xhc3MucG9saWN5LXVwbG9hZC1maWxlXT1cIlsncG9saWN5JywgJ3JlcG9ydEFDYXNlJ10/LmluY2x1ZGVzKG1vZGUpXCI+XHJcbiAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiICpuZ0lmPVwibW9kZSA9PSAncmVzcG9uc2liaWxpdHknXCI+XHJcbiAgICBGb3JtYXQgJiBFdmlkZW5jZVxyXG4gIDwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIiAqbmdJZj1cIlxyXG4gICAgICBtb2RlICE9ICdwb2xpY3knICYmIG1vZGUgIT0gJ3BvbGljeVJldmlld2VyJyAmJiBtb2RlICE9ICdyZXBvcnRBQ2FzZSdcclxuICAgIFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+RG8geW91IHdhbnQgdG8gdXBsb2FkIGEgZm9ybWF0IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5Pzwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidmb3JtYXRfcmVxdWlyZWQnXCIgW2NoZWNrZWRdPVwiZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID09PSB0cnVlXCJcclxuICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInRvZ2dsZUlzRm9ybWF0ZVVwbG9hZCh0cnVlKVwiPlllczwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidmb3JtYXRfcmVxdWlyZWQnXCIgW2NoZWNrZWRdPVwiZm9ybWF0ZS5oYXNVcGxvYWRGb3JtYXRlID09PSBmYWxzZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdGVVcGxvYWQoZmFsc2UpXCI+Tm9cclxuICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS10YWJcIiAqbmdJZj1cImZvcm1hdGU/Lmhhc1VwbG9hZEZvcm1hdGUgfHwgbW9kZSA9PSAncG9saWN5UmV2aWV3ZXInXCI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbY2xhc3MuYWN0aXZlXT1cImZvcm1hdGU/LmZvcm1hdGVUeXBlID09PSAnRklMRSdcIiAoY2xpY2spPVwidG9nZ2xlQXR0YWNobWVudFR5cGUoJ0ZJTEUnKVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtYXRlLmxpbmtzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIEluc2VydCBGaWxlXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy5hY3RpdmVdPVwiZm9ybWF0ZT8uZm9ybWF0ZVR5cGUgPT09ICdMSU5LJ1wiIChjbGljayk9XCJ0b2dnbGVBdHRhY2htZW50VHlwZSgnTElOSycpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImZvcm1hdGUuZmlsZXM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgSW5zZXJ0IExpbmtcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiXHJcbiAgICAgIChmb3JtYXRlPy5oYXNVcGxvYWRGb3JtYXRlICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcclxuICAgICAgKG1vZGUgPT0gJ3BvbGljeScgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0ZJTEUnKSB8fFxyXG4gICAgICAobW9kZSA9PSAncG9saWN5UmV2aWV3ZXInICYmIGZvcm1hdGUuZm9ybWF0ZVR5cGUgPT09ICdGSUxFJykgfHxcclxuICAgICAgKG1vZGUgPT0gJ3JlcG9ydEFDYXNlJyAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnRklMRScpXHJcbiAgICBcIj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1maWxlIHVwbG9hZCBpbiBwcm9ncmVzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZm9ybWF0ZT8udXBsb2FkSW5Qcm9ncmVzcyB8IGtleXZhbHVlKS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdGb3I9XCJcclxuICAgICAgICAgIGxldCBlYWNoRmlsZSBvZiBmb3JtYXRlPy51cGxvYWRJblByb2dyZXNzIHwga2V5dmFsdWU7XHJcbiAgICAgICAgICBsZXQgaSA9IGluZGV4XHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGVhY2hGaWxlLnZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZmlsZSB1cGxvYWQgZW5kcyBoZXJlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtYXRlLmZpbGVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlICE9ICdwb2xpY3knXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCBlYWNoRmlsZSBvZiBmb3JtYXRlLmZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBlYWNoRmlsZT8uZmlsZV9uYW1lIHx8IGVhY2hGaWxlPy5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJtb2RlID09ICdwb2xpY3knXCIgY2xhc3M9XCJwb2xpY3ktcmVsYXRlZC1kb2N1bWVudC1maWVsZCB2eC1wLTMgdngtcHQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiPlxyXG4gICAgICAgICAgTElOSyBUSEUgRE9DVU1FTlQgQU5EIFNQRUNJRlkgVEhFIFJFTEFUSU9OU0hJUCBXSVRIIFRISVMgUE9MSUNZXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdCBwb2xpY3lcIiAqbmdGb3I9XCJsZXQgZWFjaEZpbGUgb2YgZm9ybWF0ZS5maWxlczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZSB0YWJsZSB7e1xyXG4gICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpW1xyXG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJyk/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICB9fVwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJlOzwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm1hdCB7e1xyXG4gICAgICAgICAgICAgICAgICBlYWNoRmlsZT8uZmlsZV9uYW1lLnNwbGl0KCcuJylbXHJcbiAgICAgICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdCgnLicpPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgIH19XCI+e3tcclxuICAgICAgICAgICAgICAgIGVhY2hGaWxlPy5maWxlX25hbWUuc3BsaXQoXCIuXCIpW1xyXG4gICAgICAgICAgICAgICAgZWFjaEZpbGU/LmZpbGVfbmFtZS5zcGxpdChcIi5cIik/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCwgaSlcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RlZmluZSB0aGUgZG9jdW1lbnRcXCdzIHJlbGF0aW9uc2hpcCB0byB0aGlzIHBvbGljeSdcIiBuYW1lPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAge3sgZGF0YSB9fVxyXG4gICAgICAgICAgICA8L2NzLW9wdGlvbj5cclxuICAgICAgICAgIDwvY3Mtc2VsZWN0PlxyXG4gICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvdGhlciBvZiBlYWNoRmlsZT8ub3RoZXJzOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImVhY2hGaWxlPy5saW5rU2V0ID09PSAnT3RoZXIgKHNwZWNpZnkgb3duKSdcIiBbbmdNb2RlbF09XCJlYWNoRmlsZS5vdGhlcnNbal1cIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZExpbmtTZXRDaGFuZ2UoJ090aGVyIChzcGVjaWZ5IG93biknLGksICRldmVudCwgailcIiBjbGFzcz1cImxpbmthZ2UtaW5wdXRcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVHlwZSB0aGUgbGlua2FnZSBkZXRhaWxzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWFjaEZpbGU/LmxpbmtTZXQgPT09ICdPdGhlciAoc3BlY2lmeSBvd24pJ1wiIGNsYXNzPVwibGlua2FnZS1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbXQtMlwiIChjbGljayk9XCJhZGRNb3JlRG9jdW1lbnRzRGV0YWlscyhpKVwiPisgQUREIE1PUkU8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxyXG4gICAgICAgICAgICAgICAgTElOSyBUSEUgRE9DVU1FTlQgQU5EIFNQRUNJRlkgVEhFIFJFTEFUSU9OU0hJUCBXSVRIIFRISVMgUE9MSUNZXHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVhY2hGaWxlIG9mIGZvcm1hdGUuZmlsZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIm1vZGUhPSdwb2xpY3knXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgZWFjaEZpbGU/LmZpbGVfbmFtZSB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUF0dGFjaG1lbnQoaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QgcG9saWN5XCIgKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7ZWFjaEZpbGU/LmZpbGVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0gLSA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtIC0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVBdHRhY2htZW50KGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJlYWNoRmlsZS5saW5rU2V0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0ZWRMaW5rU2V0Q2hhbmdlKCRldmVudCxpKVwiIFtwbGFjZWhvbGRlcl09XCInRGVmaW5lIHRoZSBkb2N1bWVudFxcJ3MgcmVsYXRpb25zaGlwIHRvIHRoaXMgcG9saWN5J1wiIG5hbWU9XCJzZWxlY3RlZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBwb2xpY3lMaW5rU2V0TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGF9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NzLW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2NzLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1kcmFnIGFuZCBkcm9wIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWdyb3VwXCIgW2NsYXNzLnVwbG9hZGVkXT1cImZvcm1hdGUuZmlsZXM/Lmxlbmd0aCA+IDBcIiBhcHBEcmFnRHJvcFxyXG4gICAgICAoZmlsZURyb3BwZWQpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIkFTU0VUUy51cGxvYWRcIiBhbHQ9XCJcIiBjbGFzcz1cImltYWdlXCIgLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnJvd3NlXCI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgIT0gJ3BvbGljeScgJiYgbW9kZSAhPSAncmVwb3J0QUNhc2UnXCI+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT0gJ3BvbGljeScgfHwgbW9kZSA9PSAncmVwb3J0QUNhc2UnXCI+RHJvcCB5b3VyIGZpbGVzIGhlcmUgL1xyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPkJyb3dzZVxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIG11bHRpcGxlIChjaGFuZ2UpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJtb2RlIT0ncG9saWN5J1wiPkRyb3AgeW91ciBmaWxlcyBoZXJlIC88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlPT0ncG9saWN5J1wiPkRyYWcgJiBkcm9wIHRvIHVwbG9hZCBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwb2xpY3kgLzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+QnJvd3NlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIG11bHRpcGxlIChjaGFuZ2UpPVwib25GaWxlRHJvcHBlZCgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZHJhZyBkcm9wIGVuZHMgaGVyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlxyXG4gICAgICAoZm9ybWF0ZT8uaGFzVXBsb2FkRm9ybWF0ZSAmJiBmb3JtYXRlLmZvcm1hdGVUeXBlID09PSAnTElOSycpIHx8XHJcbiAgICAgIChtb2RlID09ICdwb2xpY3lSZXZpZXdlcicgJiYgZm9ybWF0ZS5mb3JtYXRlVHlwZSA9PT0gJ0xJTksnKVxyXG4gICAgXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0ZS5saW5rcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZm9ybWF0ZS5saW5rczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdJZj1cIiFsaW5rLmlzRWRpdGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgbGluay5saW5rIH19IDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIFtjbGFzcy5kaXNhYmxlZF09XCJpc0VkaXREaXNhYmxlZFwiIGNsYXNzPVwiZWRpdFwiIChjbGljayk9XCJlZGl0TGluayhpKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUxpbmsoaSlcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmsuaXNFZGl0aW5nXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImVkaXQtbGlua1wiIGFwcEF1dG9mb2N1cyBwbGFjZWhvbGRlcj1cIkVudGVyIHRoZSBsaW5rIGhlcmVcIiBbKG5nTW9kZWwpXT1cImxpbmsubGlua1wiXHJcbiAgICAgICAgICAgIChmb2N1c291dCk9XCJpbnNlcnRMaW5rKCdFRElUJywgaSlcIiAoa2V5ZG93bi5lbnRlcik9XCJpbnNlcnRMaW5rKCdFRElUJywgaSlcIiAvPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJsaW5rLmNvbnRhaW5zRXJyb3JcIj5cclxuICAgICAgICAgICAgUGxlYXNlIGluc2VydCBhIHZhbGlkIGxpbmtcclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwiaXNOZXdMaW5rRGlzYWJsZWRcIiBjbGFzcz1cImVkaXQtbGlua1wiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJuZXdMaW5rLmxpbmtcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHRoZSBsaW5rIGhlcmVcIiAoZm9jdXNvdXQpPVwiaW5zZXJ0TGluaygnQ1JFQVRFJylcIiAoa2V5ZG93bi5lbnRlcik9XCJpbnNlcnRMaW5rKCdDUkVBVEUnKVwiIC8+XHJcbiAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5ld0xpbmsuY29udGFpbnNFcnJvclwiPlxyXG4gICAgICBQbGVhc2UgaW5zZXJ0IGEgdmFsaWQgbGlua1xyXG4gICAgPC9wPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZm9ybWF0XCIgKm5nSWY9XCJtb2RlID09ICdyZXNwb25zaWJpbGl0eSdcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPkRvIHlvdSB3YW50IGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgdGhlIHJlc3BvbnNpYmlsaXR5IHRvIGJlXHJcbiAgICAgIHVwbG9hZGVkPzwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cFwiPlxyXG4gICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidldmlkZW5jZV9yZXF1aXJlZCdcIiBbY2hlY2tlZF09XCJmb3JtYXRlLmlzRXZpZGVuY2VSZXF1aXJlZCA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKHRydWUpXCI+WWVzPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgIDxhcHAtY3MtcmFkaW8gW25hbWVdPVwiJ2V2aWRlbmNlX3JlcXVpcmVkJ1wiIFtjaGVja2VkXT1cImZvcm1hdGUuaXNFdmlkZW5jZVJlcXVpcmVkID09PSBmYWxzZVwiXHJcbiAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJ0b2dnbGVJc0Zvcm1hdFJlcXVpcmVkKGZhbHNlKVwiPk5vXHJcbiAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|