vcomply-workflow-engine 6.0.31 → 6.0.32
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.
|
@@ -279,7 +279,7 @@ export class WorkflowProgramComponent {
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
ngOnInit() {
|
|
282
|
-
this.setFormField('program_type', this.programType);
|
|
282
|
+
this.setFormField('program_type', this.programType ?? 1);
|
|
283
283
|
this.fetchOrganizationUsers();
|
|
284
284
|
this.fetchOrganizationGroup();
|
|
285
285
|
this.fetchRoles();
|
|
@@ -1389,4 +1389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1389
1389
|
}], programDetails: [{
|
|
1390
1390
|
type: Input
|
|
1391
1391
|
}] } });
|
|
1392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL3dvcmtmbG93LXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPeEMsTUFBTSxPQUFPLHdCQUF3QjtJQXlEbkMsWUFDVSxFQUFzQixFQUN0QixjQUErQixFQUMvQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixTQUE0QjtRQUo1QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUE3RHRDLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFdEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JB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QyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2IsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLDhCQUE4QjtzQkFBdkMsTUFBTTtnQkFFRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZ3JhbXNTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvcHJvZ3JhbXMuc2VydmljZSc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBDT05TVEFOVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13b3JrZmxvdy1wcm9ncmFtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXByb2dyYW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RhbnRzID0gQ09OU1RBTlRTO1xuICBzaG93Q29uZmlybWF0aW9uOiBhbnk7XG4gIGlzQXNjZW50QWxsb3dlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBmZl9yY19saXN0aW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm0nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZm9ybSE6IEVsZW1lbnRSZWY7XG4gIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoJ2RhdGVQaWNrZXInKSBkYXRlUGlja2VyITogRGF0ZVBpY2tlckNvbXBvbmVudDtcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzaG93Q29uZmlybWF0aW9uQWxlcnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHJlZnJlc2hGb3JtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25SZW1vdmluZ1JvbGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzYWJsZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBzY3JvbGxUb0JvdHRvbSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhbkZyYW1ld29ya0NoYW5nZTogYm9vbGVhbiA9IHRydWU7XG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBBbGwgSW5wdXQgZmllbGRzXG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwcm9ncmFtSWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwcm9ncmFtVHlwZTogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgYWxsb3dlZEZlYXR1cmUhOiBhbnk7XG4gIEBJbnB1dCgpIGFkZFRvUHJvZ3JhbURldGFpbHM6IGFueTtcbiAgQElucHV0KCkgb3JnRGV0YWlsczogYW55O1xuICBASW5wdXQoKSBwcm9ncmFtRGV0YWlsczogYW55O1xuXG4gIHBhbmVsVGl0bGVEZWZhdWx0UmV2aWV3ZXIgPSAnU2VsZWN0IERlZmF1bHQgUmV2aWV3ZXIocyknO1xuICBwYW5lbFRpdGxlT3duZXIgPSAnU2VsZWN0IE93bmVyKHMpJztcbiAgcGFuZWxUaXRsZVJldmlld2VyID0gJ1NlbGVjdCBSZXZpZXdlcihzKSc7XG4gIHBhbmVsVGl0bGVBc3NpZ25lZSA9ICdTZWxlY3QgQ29sbGFib3JhdG9yKHMpJztcbiAgcGFuZWxUaXRsZUFwcHJvdmVyID0gJ1NlbGVjdCAgQXBwcm92ZXInO1xuICBpc0FwcHJvdmVyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQcm9ncmFtU2NvcGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG9vbFRpcERhdGE6IGFueSA9IHtcbiAgICBvd25lcjpcbiAgICAgICdPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+VGhlIDxzdHJvbmc+S2V5IEFkbWluPC9zdHJvbmc+IGFuZCBhbGwgPGI+QWRtaW48L2I+IHVzZXJzIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC4nLFxuICAgIHByb2dyYW1TY29wZTogYEEgUHJvZ3JhbSBTY29wZSBjYW4gYmUgdXNlZCBhcyBmb2xsb3dzOlxuICA8bGk+VG8gc3BlY2lmeSB0aGUgZHVyYXRpb24gb2YgdGhlIFByb2dyYW0uPC9saT5cbiAgPGxpPlRvIHByZS1zZWxlY3QgY2VydGFpbiBvcHRpb25zIHRoYXQgYXJlIGF2YWlsYWJsZSB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHksIHRoZXJlYnkgZGVjcmVhc2luZyB0aGUgdGltZSByZXF1aXJlZCB0byBjcmVhdGUgYSByZXNwb25zaWJpbGl0eS48L2xpPlxuICA8bGk+VG8gbGltaXQgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LCB0aGVyZWJ5IG1ha2luZyBpdCBlYXNpZXIgdG8gY3JlYXRlIGEgcmVzcG9uc2liaWxpdHkgYW5kIHJlZHVjaW5nIHRoZSBsaWtlbGlob29kIG9mIGFuIGluY29ycmVjdCBvcHRpb24gYmVpbmcgc2VsZWN0ZWQuPC9saT5cbiAgICBgLFxuICB9O1xuICBidXNpbmVzc0N5Y2xlOiBhbnk7XG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWF0dXJlZmxhZ0dyb3VwczogYm9vbGVhbiA9IGZhbHNlO1xuICBkaXNhYmxlZEFzc2lnbmVlSWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZFJldmlld2VySWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZEFzc2lnbmVlSWRzOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZE92ZXJzZWVySWRzOiBhbnlbXSA9IFtdO1xuICBhc3NpZ25vcklkOiBudW1iZXJbXSA9IFtdO1xuICBkaXNhYmxlUmV2aWV3ZXJJZHM6IGFueVtdID0gW107XG4gIGRpc2FibGVPdmVyc2VlcklkczogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBwcm9ncmFtU2VydmljZTogUHJvZ3JhbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHRoaXMuYnVzaW5lc3NDeWNsZSA9IEpTT04ucGFyc2UoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fSdcbiAgICApO1xuICB9XG4gIHB1YmxpYyBub1doaXRlc3BhY2VWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgY29uc3QgaXNXaGl0ZXNwYWNlID0gKGNvbnRyb2wudmFsdWUgfHwgJycpLnRyaW0oKS5sZW5ndGggPT09IDA7XG4gICAgY29uc3QgaXNWYWxpZCA9ICFpc1doaXRlc3BhY2U7XG4gICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeyB3aGl0ZXNwYWNlOiB0cnVlIH07XG4gIH1cbiAgcHVibGljIGJsYW5rQXJyYXlWYWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgY29uc3QgaXNCbGFuayA9IGNvbnRyb2wudmFsdWU/LmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk/Lmxlbmd0aCA9PT0gMDtcbiAgICBjb25zdCBpc1ZhbGlkID0gIWlzQmxhbms7XG4gICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeyBibGFuazogdHJ1ZSB9O1xuICB9XG4gIGxvYWRlciA9IGZhbHNlO1xuICBzaG93U21pbGV5ID0gZmFsc2U7XG4gIGFjdGlvbkJ1dHRvbnMgPSBbXG4gICAgeyBidXR0b25UZXh0OiAnQWRkIE1vcmUgUHJvZ3JhbXMnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcbiAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IFByb2dyYW0nLCBjbGFzczogJ2JsdWUtYnRuJywgaWQ6ICd2aWV3UHJvZ3JhbScgfSxcbiAgXTtcbiAgc21pbGV5TWVzc2FnZSA9IGBZb3UncmUgQWxsIFNldCFgO1xuICBjcmVhdGVkUHJvZ3JhbUlkID0gJyc7XG4gIGlzT2JqZWN0aXZlVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc05hbWVFeGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy9mb3JtIGJvZHkgZm9yIHByb2dyYW0gbWV0YSBkYXRhXG4gIHByb2dyYW1Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgcHJvZ3JhbV90eXBlOiBbXG4gICAgICB0aGlzLnByb2dyYW1UeXBlLFxuICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgzKV0sXG4gICAgXSxcbiAgICBwcm9ncmFtX25hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMubm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgcHJvZ3JhbV9kZXNjcmlwdGlvbjogWycnXSxcbiAgICBwcm9ncmFtX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBbW11dLFxuICAgIHByb2dyYW1fb2JqZWN0aXZlOiBbJyddLFxuICAgIC8vIHByb2dyYW1fb2JqZWN0aXZlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLm5vV2hpdGVzcGFjZVZhbGlkYXRvcl1dLFxuICAgIHByb2dyYW1fb2JqZWN0aXZlX2F0dGFjaG1lbnRzOiBbW11dLFxuICAgIGFsbF91c2VyX2luX3JvbGU6IFtmYWxzZV0sXG4gICAgcHJvZ3JhbV9vd25lcnM6IFtbXV0sXG4gICAgcHJvZ3JhbV9vd25lcnNfZ3JvdXA6IFtbXV0sXG4gICAgcHJvZ3JhbV9hcHByb3ZlcjogW1tdXSxcbiAgICBmcmFtZXdvcms6IFtdLFxuICAgIHJjOiBbW11dLFxuICAgIHByb2dyYW1fYXNzaWduZWU6IFtbXV0sXG4gICAgcHJvZ3JhbV9hc3NpZ25lZV9ncm91cDogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwOiBbW11dLFxuICAgIGFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE6IFsnQUxMJ10sXG4gICAgcHJvZ3JhbV9yZXZpZXdlcjogW1tdXSxcbiAgICBwcm9ncmFtX3Jldmlld2VyX2dyb3VwOiBbW11dLFxuICAgIHByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcjogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA6IFtbXV0sXG4gICAgcmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYTogWydTRVFVRU5USUFMJ10sXG4gICAgcHJvZ3JhbV9vdmVyc2VlcjogW1tdXSxcbiAgICBwcm9ncmFtX292ZXJzZWVyX2dyb3VwOiBbW11dLFxuICAgIHByb2dyYW1fZGVmYXVsdF9vdmVyc2VlcjogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcjogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwOiBbW11dLFxuICAgIHByb2dyYW1fYXNzZXNzbWVudHM6IFtbXV0sXG4gICAgZXZpZGVuY2VfcmVxdWlyZWQ6IFtmYWxzZV0sXG4gICAgYWxsb3dfYW55X2ZpbGVfa2V5X2V2aWRlbmNlOiBbZmFsc2VdLFxuICAgIGN1c3RvbV9maWVsZHM6IFtbXV0sXG4gICAgcHJvZ3JhbV9zdGF0ZTogMCxcbiAgICBjb2xsYWJvcmF0b3JzOiBbW11dLFxuICAgIGNvbGxhYm9yYXRvcnNfZ3JvdXA6IFtbXV0sXG4gIH0pO1xuXG4gIC8vZXhjZXB0aW9uYWwgaGFuZGxpbmcgb2YgY3VzdG9tIGZpZWxkc1xuXG4gIHNob3dBZGRDdXN0b21GaWVsZCA9IHRydWU7XG4gIC8vUHJvZ3JhbSBvYmplY3RpdmUgYW5kIGRlc2NyaXBpb24gYXJlIGV4cGxlY3RseSBkZWNsYXJlZCBhcyB0aGV5IGFyZSB1c2luZyBtYXJ4IGVkaXRvciB3aGljaCBkb2VzIG5vdCBzdXBwb3J0cyBSZWFjdGl2ZSBmb3JtcyBiaW5kaW5nXG4gIGVkaXRvckRhdGEgPSB7XG4gICAgcHJvZ3JhbU9iamVjdGl2ZTogJycsXG4gICAgcHJvZ3JhbURlc2NyaXB0aW9uOiAnJyxcbiAgfTtcblxuICBzZWxlY3RlZEFzc2Vzc21lbnQhOiBhbnk7XG5cbiAgY3VycmVudFVzZXIoKSB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aFNlcnZpY2UudG9rZW5JbmZvKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lbWJlcl9lbWFpbDogdXNlcj8uZW1haWwsXG4gICAgICBtZW1iZXJfaWQ6IHVzZXI/LmlkLFxuICAgICAgbWVtYmVyX25hbWU6IHVzZXI/Lm5hbWUsXG4gICAgICB1c2VyX3JvbGU6ICdMT0dHRURfSU4nLFxuICAgICAgX2lkOiAnJyxcbiAgICB9O1xuICB9XG4gIC8vU2V0cyB0aGUgdmFsdWUgb2YgYSBmb3JtIGNvbnRyb2xcbiAgc2V0Rm9ybUZpZWxkKGNvbnRyb2xOYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnksIGlzRnJvbUZvcm0/OiBib29sZWFuKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coe2NvbnRyb2xOYW1lLCB2YWx1ZX0pO1xuICAgIGxldCBwYXRjaDogYW55ID0ge307XG4gICAgcGF0Y2hbY29udHJvbE5hbWVdID0gdmFsdWU7XG4gICAgdGhpcy5wcm9ncmFtRm9ybS5wYXRjaFZhbHVlKHBhdGNoKTtcbiAgICB0aGlzLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8ubWFya0FzVG91Y2hlZCgpO1xuICAgIGlmIChcbiAgICAgIGlzRnJvbUZvcm0gJiZcbiAgICAgIGNvbnRyb2xOYW1lID09PSAncHJvZ3JhbV9vYmplY3RpdmUnICYmXG4gICAgICAhdmFsdWUucmVwbGFjZSgvJm5ic3A7L2csICcgJykudHJpbSgpXG4gICAgKVxuICAgICAgdGhpcy5pc09iamVjdGl2ZVZhbGlkID0gZmFsc2U7XG4gICAgZWxzZSB0aGlzLmlzT2JqZWN0aXZlVmFsaWQgPSB0cnVlO1xuICB9XG5cbiAgLy9SZXR1cm5zIHdlYXRoZXIgdGhlIGZvcm0gaXMgdmFsaWQgb3Igbm90XG4gIGdldCBmb3JtVmFsaWQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5wcm9ncmFtRm9ybS52YWxpZCAmJlxuICAgICAgdGhpcy5lZGl0b3JEYXRhPy5wcm9ncmFtT2JqZWN0aXZlPy5yZXBsYWNlKC8mbmJzcDsvZywgJyAnKT8udHJpbSgpPy5sZW5ndGhcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29udHJvbHM6IGFueSA9IHtcbiAgICBwcm9ncmFtX25hbWU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX25hbWUnKSxcbiAgICBwcm9ncmFtX3R5cGU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX3R5cGUnKSxcbiAgICBwcm9ncmFtX29iamVjdGl2ZTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fb2JqZWN0aXZlJyksXG4gICAgcHJvZ3JhbV9yb2xlczogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fcm9sZXMnKSxcbiAgICBwcm9ncmFtX293bmVyczogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fb3duZXJzJyksXG4gICAgcHJvZ3JhbV9vd25lcnNfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX293bmVyc19ncm91cCcpLFxuICAgIGFsbF91c2VyX2luX3JvbGU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdhbGxfdXNlcl9pbl9yb2xlJyksXG4gICAgcHJvZ3JhbV9hcHByb3ZlcjogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fYXBwcm92ZXInKSxcbiAgICBkZXNjcmlwdGlvbl9hdHRhY2htZW50OiB0aGlzLnByb2dyYW1Gb3JtLmdldChcbiAgICAgICdwcm9ncmFtX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzJ1xuICAgICksXG4gICAgb2JqZWN0aXZlX2F0dGFjaG1lbnRzOiB0aGlzLnByb2dyYW1Gb3JtLmdldChcbiAgICAgICdwcm9ncmFtX29iamVjdGl2ZV9hdHRhY2htZW50cydcbiAgICApLFxuICAgIHBlcmZvcm1hbmNlX2NhbGN1bGF0aW9uOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncGVyZm9ybWFuY2VfY2FsY3VsYXRpb24nKSxcbiAgICByZWN1cnJpbmdfZnJlcXVlbmN5OiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncmVjdXJyaW5nX2ZyZXF1ZW5jeScpLFxuICAgIGxvY2tfc2NvcGVfY2hhbmdlOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnbG9ja19zY29wZV9jaGFuZ2UnKSxcbiAgICByYzogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3JjJyksXG4gICAgZXZpZGVuY2VfcmVxdWlyZWQ6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdldmlkZW5jZV9yZXF1aXJlZCcpLFxuICAgIGZyYW1ld29yazogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ2ZyYW1ld29yaycpLFxuICAgIGFsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAnYWxsb3dfYW55X2ZpbGVfa2V5X2V2aWRlbmNlJ1xuICAgICksXG4gICAgcHJvZ3JhbV9hc3NpZ25lZTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fYXNzaWduZWUnKSxcbiAgICBwcm9ncmFtX2Fzc2lnbmVlX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9hc3NpZ25lZV9ncm91cCcpLFxuICAgIHByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZScpLFxuICAgIHByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwJ1xuICAgICksXG4gICAgYXNzaWduZWVfY29tcGxldGlvbl9jcml0ZXJpYTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAnYXNzaWduZWVfY29tcGxldGlvbl9jcml0ZXJpYSdcbiAgICApLFxuICAgIHByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcjogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcicpLFxuICAgIHByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwJ1xuICAgICksXG4gICAgcHJvZ3JhbV9yZXZpZXdlcjogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fcmV2aWV3ZXInKSxcbiAgICBwcm9ncmFtX3Jldmlld2VyX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9yZXZpZXdlcl9ncm91cCcpLFxuICAgIHByb2dyYW1fb3ZlcnNlZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX292ZXJzZWVyJyksXG4gICAgcHJvZ3JhbV9vdmVyc2Vlcl9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fb3ZlcnNlZXJfZ3JvdXAnKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXInKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cCdcbiAgICApLFxuICAgIHByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXInXG4gICAgKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldChcbiAgICAgICdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwJ1xuICAgICksXG4gICAgcmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYSdcbiAgICApLFxuICAgIHByb2dyYW1fYXNzZXNzbWVudHM6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2Fzc2Vzc21lbnRzJyksXG4gICAgY3VzdG9tX2ZpZWxkczogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ2N1c3RvbV9maWVsZHMnKSxcbiAgICBpc0FwcHJvdmVyRGlzYWJsZWQ6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdpc0FwcHJvdmVyRGlzYWJsZWQnKSxcbiAgICBjb2xsYWJvcmF0b3JzOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnY29sbGFib3JhdG9ycycpLFxuICAgIGNvbGxhYm9yYXRvcnNfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdjb2xsYWJvcmF0b3JzX2dyb3VwJyksXG4gIH07XG5cbiAgbGlzdHM6IGFueSA9IHtcbiAgICBST0xFUzogW10sXG4gICAgT1dORVJTOiBbXSxcbiAgICBPV05FUlNfR1JPVVBTOiBbXSxcbiAgICBBUFBST1ZFUlM6IFtdLFxuICAgIFJFVklFV0VSUzogW10sXG4gICAgUkVWSUVXRVJTX0dST1VQOiBbXSxcbiAgICBBU1NJR05FRVM6IFtdLFxuICAgIEFTU0lHTkVFU19HUk9VUDogW10sXG4gICAgREVGQVVMVF9BU1NJR05FRVM6IFtdLFxuICAgIERFRkFVTFRfQVNTSUdORUVTX0dST1VQOiBbXSxcbiAgICBERUZBVUxUX1JFVklFV0VSUzogW10sXG4gICAgREVGQVVMVF9SRVZJRVdFUlNfR1JPVVA6IFtdLFxuICAgIE9WRVJTRUVSUzogW10sXG4gICAgT1ZFUlNFRVJTX0dST1VQOiBbXSxcbiAgICBERUZBVUxUX09WRVJTRUVSUzogW10sXG4gICAgREVGQVVMVF9PVkVSU0VFUlNfR1JPVVA6IFtdLFxuICAgIFJDOiBbXSxcbiAgICBOT05fUkVNT1ZBQkxFX09XTkVSUzogW10sXG4gICAgQUxMX1VTRVI6IFtdLFxuICAgIEFMTF9HUk9VUDogW10sXG4gICAgU1lTVEVNX1JPTEVfSURTOiBbXSxcbiAgfTtcblxuICBsaXN0TG9hZGluZ1N0YXRlID0ge1xuICAgIFJPTEVTOiBmYWxzZSxcbiAgICBVU0VSUzogZmFsc2UsXG4gICAgR1JPVVA6IGZhbHNlLFxuICAgIFJDOiBmYWxzZSxcbiAgfTtcbiAgc2lkZUVsZW1lbnRzID0gW1xuICAgICdST0xFJyxcbiAgICAnUkMnLFxuICAgICdPV05FUicsXG4gICAgJ0FTU0lHTkVFJyxcbiAgICAnQVBQUk9WRVInLFxuICAgICdERUZBVUxUX0FTU0lHTkVFJyxcbiAgICAnUkVWSUVXRVInLFxuICAgICdERUZBVUxUX1JFVklFV0VSJyxcbiAgICAnQVNTRVNTTUVOVCcsXG4gICAgJ0ZSQU1FV09SSycsXG4gICAgJ09WRVJTRUVSJyxcbiAgICAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInLFxuICAgICdERUZBVUxUX09WRVJTRUVSJyxcbiAgICAnT1ZFUlNFRVInLFxuICBdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX3R5cGUnLCB0aGlzLnByb2dyYW1UeXBlKTtcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uVXNlcnMoKTtcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uR3JvdXAoKTtcbiAgICB0aGlzLmZldGNoUm9sZXMoKTtcbiAgICB0aGlzLmZldGNoUkMoKTtcbiAgICB0aGlzLmhhbmRsZURhdGFQb3B1bGF0aW9uKCk7XG4gICAgaWYgKHRoaXMuYWRkVG9Qcm9ncmFtRGV0YWlscz8uX2lkKSB7XG4gICAgICB0aGlzLmxpc3RBY3Rpb24odGhpcy5hZGRUb1Byb2dyYW1EZXRhaWxzLCAnRlJBTUVXT1JLJyk7XG4gICAgfVxuICAgIHRoaXMuZW5hYmxlZmVhdHVyZSgpO1xuICAgIHRoaXMuaGFuZGxlRGF0YVBvcHVsYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnByb2dyYW1Gb3JtLnZhbGlkO1xuICB9XG5cbiAgYWRkaXRpb25hbE9wdGlvbjogYW55ID0geyAuLi5DT05TVEFOVFMuYWRkaXRpb25hbE9wdGlvbiB9O1xuICBhY3RpdmVMaXN0ID0gJyc7XG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIFBvcHVsYXRlcyBvcHRpb25hbCBmaWVsZHMgc3RhdHVzIGZvciB0aGUgb3B0aW9uYWwgZmllbGRzXG4gICAqL1xuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb24pKSB7XG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uW2tleV0gPT09IHRydWUpIHtcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcbiAgfVxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uW2V2ZW50LmNvZGVdID0gZXZlbnQuY2hlY2tlZDtcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrUHJvZ3JhbU9wdGlvbkZpZWxkKCk7XG4gIH1cblxuICAvLyBmdW5jdGlvbiB0byBhdXRvbWF0ZSBmb3JtIHZhbHVlIGNoYW5nZSBoYW5kbmdcbiAgZm9ybUNoYW5nZUxpc3RuZXIoKSB7XG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXModGhpcy5jb250cm9scyk7XG4gICAgZmllbGRzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2xzW2VsZV0/LnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUZpZWxkQ2hhbmdlKGVsZSwgcmVzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlRm9ybUZpZWxkQ2hhbmdlKGNvbnRyb2w6IHN0cmluZywgcGF5bG9hZD86IGFueSkge1xuICAgIHN3aXRjaCAoY29udHJvbCkge1xuICAgICAgY2FzZSAncHJvZ3JhbV9yb2xlcyc6IHtcbiAgICAgICAgdGhpcy5mZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFjdGl2YXRlTGlzdChldnQ6IHN0cmluZykge1xuICAgIGlmIChldnQgPT09ICdGUkFNRVdPUksnICYmICF0aGlzLmNhbkZyYW1ld29ya0NoYW5nZSkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTGlzdCA9IGV2dDtcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGxpc3RBY3Rpb24oZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnUk9MRSc6IHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc3lzdGVtUm9sZXMgPSBldnQ/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2FkbWluJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXRjaFZhbCA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi5zeXN0ZW1Sb2xlcywgLi4uZXZ0XSwgJ19pZCcpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWlzRXF1YWwodGhpcy5jb250cm9scy5wcm9ncmFtX3JvbGVzLnZhbHVlLnNvcnQoKSwgcGF0Y2hWYWwuc29ydCgpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yb2xlcycsIHBhdGNoVmFsKTtcbiAgICAgICAgICB0aGlzLmZldGNoVXNlcnNBc3NvY2lhdGVkV2l0aFJvbGVzKCk7XG4gICAgICAgICAgdGhpcy5mZXRjaEdyb3Vwc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSQyc6IHtcbiAgICAgICAgY29uc3QgcmMgPSB0aGlzLnNldExpc3QodGhpcy5saXN0cy5SQywgZXZ0LCAnaXRlbV9pZCcpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncmMnLCB0aGlzLnVuaXF1ZUJ5UHJvcChyYywgJ2l0ZW1faWQnKSk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09XTkVSJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vd25lcnMnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICd1aWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vd25lcnNfZ3JvdXAnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8uZ3JvdXBzLCAndWdpZCcpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvd25lcicsIHRoaXMuY29udHJvbHMpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBUFBST1ZFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fYXBwcm92ZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDT0xMQUJPUkFUT1JTJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAnY29sbGFib3JhdG9ycycsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py51c2VycywgJ3VpZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdjb2xsYWJvcmF0b3JzX2dyb3VwJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/Lmdyb3VwcywgJ3VnaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0FTU0lHTkVFJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnUkVWSUVXRVInOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdwcm9ncmFtX3Jldmlld2VyJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fcmV2aWV3ZXJfZ3JvdXAnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8uZ3JvdXBzLCAnZ3JvdXBfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UmV2aWV3ZXIoZXZ0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX1JFVklFV0VSJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLmNvbnRyb2xzLnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEudmFsdWUgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gJ0FOWU9ORSdcbiAgICAgICAgICAgIDogdGhpcy5jb250cm9scz8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYT8udmFsdWU7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdPVkVSU0VFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vdmVyc2Vlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRPdmVyc2VlcihldnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfT1ZFUlNFRVInOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/Lmdyb3VwcywgJ2dyb3VwX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTRVNTTUVOVCc6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fYXNzZXNzbWVudHMnLCBldnQpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGUkFNRVdPUksnOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdmcmFtZXdvcmsnLCBldnQpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9uYW1lJywgZXZ0Py5uYW1lKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb24nLCBldnQ/LmRlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5lZGl0b3JEYXRhLnByb2dyYW1EZXNjcmlwdGlvbiA9IGV2dD8uZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmUoZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnUk9MRSc6IHtcbiAgICAgICAgbGV0IG1zZyA9ICcnO1xuICAgICAgICBtc2cgPSAnSWYgeW91IGNoYW5nZSB0aGUgcm9sZXMsIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fcm9sZXM/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Ll9pZCAhPT0gZXZ0Py5faWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5saXN0QWN0aW9uKHJvbGVzLCAnUk9MRScpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yb2xlcycsIHJvbGVzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSQyc6IHtcbiAgICAgICAgY29uc3QgcmNzID0gdGhpcy5jb250cm9scz8ucmM/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lml0ZW1faWQgIT09IGV2dD8uaXRlbV9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncmMnLCByY3MpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09XTkVSJzoge1xuICAgICAgICBjb25zdCBvd25lcnMgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8udWlkICE9PSBldnQ/LnVpZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnMnLCBvd25lcnMpO1xuICAgICAgICBjb25zb2xlLmxvZygnc2V0Rm9ybUZpZWxkIG93bmVyJywgdGhpcy5jb250cm9scyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnT1dORVJfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IG93bmVyc19ncm91cCA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnNfZ3JvdXAnLCBvd25lcnNfZ3JvdXApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FQUFJPVkVSJzoge1xuICAgICAgICBjb25zdCBhcHByb3ZlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fYXBwcm92ZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fYXBwcm92ZXInLCBhcHByb3Zlcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTSUdORUUnOiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9hc3NpZ25lZScsIGFzc2lnbmVlKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0QXNzaWduZWVPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FTU0lHTkVFX0dST1VQJzoge1xuICAgICAgICBjb25zdCBhc3NpZ25lZV9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2Fzc2lnbmVlX2dyb3VwJywgYXNzaWduZWVfZ3JvdXApO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRBc3NpZ25lZU9uUmVtb3ZlKGV2dCwgdHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREVGQVVMVF9BU1NJR05FRSc6IHtcbiAgICAgICAgY29uc3QgYXNzaWduZWUgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZScsIGFzc2lnbmVlKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGlzdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfQVNTSUdORUVfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlX2dyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwJywgYXNzaWduZWVfZ3JvdXApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1JFVklFV0VSJzoge1xuICAgICAgICBjb25zdCByZXZpZXdlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fcmV2aWV3ZXInLCByZXZpZXdlcik7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFJldmlld2VyT25SZW1vdmUoZXZ0LCB0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSRVZJRVdFUl9HUk9VUCc6IHtcbiAgICAgICAgY29uc3QgcmV2aWV3ZXJfZ3JvdXAgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UmV2aWV3ZXJPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfUkVWSUVXRVInOiB7XG4gICAgICAgIGNvbnN0IHJldmlld2VyID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXInLCByZXZpZXdlcik7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX1JFVklFV0VSX0dST1VQJzoge1xuICAgICAgICBjb25zdCByZXZpZXdlcl9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5jb250cm9scy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhLnZhbHVlID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/ICdBTllPTkUnXG4gICAgICAgICAgICA6IHRoaXMuY29udHJvbHM/LnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWE/LnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09WRVJTRUVSJzoge1xuICAgICAgICBjb25zdCBvdmVyc2VlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3ZlcnNlZXInLCBvdmVyc2Vlcik7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdE92ZXJzZWVyT25SZW1vdmUoZXZ0LCB0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdPVkVSU0VFUl9HUk9VUCc6IHtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXJfZ3JvdXAgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vdmVyc2Vlcl9ncm91cCcsIG92ZXJzZWVyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0T3ZlcnNlZXJPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfT1ZFUlNFRVInOiB7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXInLCBvdmVyc2Vlcik7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX09WRVJTRUVSX0dST1VQJzoge1xuICAgICAgICBjb25zdCBvdmVyc2Vlcl9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cCcsIG92ZXJzZWVyX2dyb3VwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUic6IHtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXIgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyJywgb3ZlcnNlZXIpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVJfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyX2dyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgIG92ZXJzZWVyX2dyb3VwXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTRVNTTUVOVCc6IHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBjbG9uZURlZXAodGhpcy5jb250cm9scy5wcm9ncmFtX2Fzc2Vzc21lbnRzPy52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT0gZXZ0LmNhdGVnb3J5X2lkXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSBjdXJyZW50W2luZGV4XS5hc3Nlc3NtZW50SWRzLmZpbHRlcihcbiAgICAgICAgICAoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkICE9PSBldnQuaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGN1cnJlbnRbaW5kZXhdLmFzc2Vzc21lbnRJZHMubGVuZ3RoID09PSAwKSBjdXJyZW50LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMubGlzdEFjdGlvbihjdXJyZW50LCAnQVNTRVNTTUVOVCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZSQU1FV09SSyc6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ2ZyYW1ld29yaycsIG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm5JZHMobGlzdDogYW55W10sIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgICAgID8ubWFwKChlbGUpID0+IHtcbiAgICAgICAgaWYgKGVsZVtrZXldKSB7XG4gICAgICAgICAgcmV0dXJuIGVsZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZWxlKSA9PiBlbGUpO1xuICB9XG5cbiAgcmVmcmVzaExpc3QoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzID0gW107XG4gICAgbGV0IGFzc2lnbm9yQW5kQXNzaWduZWVzSWRzOiBhbnkgPSBbXTtcbiAgICB0aGlzLmFzc2lnbm9ySWQgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRBc3NpZ25lZSA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU7XG4gICAgbGV0IHNlbGVjdGVkUmV2aWV3ZXIgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlO1xuICAgIGxldCBzZWxlY3RlZE92ZXJzZWVyTGlzdCA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgbGV0IHNlbGVjdGVkT3ZlcnNlZXJGYWlsdXJlTGlzdCA9XG4gICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZTtcbiAgICBsZXQgYXNzaWdub3IgPSB0aGlzLmN1cnJlbnRVc2VyKCk7XG4gICAgdGhpcy5hc3NpZ25vcklkLnB1c2goYXNzaWdub3I/Lm1lbWJlcl9pZCk7XG4gICAgYXNzaWdub3JBbmRBc3NpZ25lZXNJZHMucHVzaChhc3NpZ25vcj8ubWVtYmVyX2lkKTtcbiAgICBzZWxlY3RlZEFzc2lnbmVlPy5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3NpZ25lZUlkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgICBhc3NpZ25vckFuZEFzc2lnbmVlc0lkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgc2VsZWN0ZWRSZXZpZXdlcj8uZm9yRWFjaCgodXNlcjogYW55KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkUmV2aWV3ZXJJZHMucHVzaCh1c2VyPy5tZW1iZXJfaWQpO1xuICAgIH0pO1xuICAgIHNlbGVjdGVkT3ZlcnNlZXJMaXN0Py5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgc2VsZWN0ZWRPdmVyc2VlckZhaWx1cmVMaXN0Py5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFJldmlld2VySWRzKV07XG4gICAgdGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzKV07XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzKV07XG4gICAgbGV0IGRpc2FibGVBc3NpZ25lZUxpc3QgPSB0aGlzLmxpc3RzPy5BTExfVVNFUj8uZmlsdGVyKFxuICAgICAgKHVzZXI6IGFueSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5kaXNhYmxlZEFzc2lnbmVlSWRzID0gdGhpcy5yZXR1cm5JZHMoZGlzYWJsZUFzc2lnbmVlTGlzdCwgJ21lbWJlcl9pZCcpO1xuICAgIGxldCBkaXNhYmxlUmV2aWV3ZXJMaXN0ID0gdGhpcy5saXN0cz8uQUxMX1VTRVI/LmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICApO1xuICAgIHRoaXMuZGlzYWJsZVJldmlld2VySWRzID0gdGhpcy5yZXR1cm5JZHMoZGlzYWJsZVJldmlld2VyTGlzdCwgJ21lbWJlcl9pZCcpO1xuICAgIGxldCBkaXNhYmxlT3ZlcnNlZXJMaXN0ID0gdGhpcy5saXN0cz8uQUxMX1VTRVI/LmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgIGFzc2lnbm9yQW5kQXNzaWduZWVzSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5kaXNhYmxlT3ZlcnNlZXJJZHMgPSB0aGlzLnJldHVybklkcyhkaXNhYmxlT3ZlcnNlZXJMaXN0LCAnbWVtYmVyX2lkJyk7XG4gIH1cblxuICByZW1vdmVSb2xlKGV2dDogYW55KSB7XG4gICAgdGhpcy5vblJlbW92aW5nUm9sZS5lbWl0KGV2dCk7XG4gIH0gIFxuXG4gIHNldERlZmF1bHRBc3NpZ25lZU9uUmVtb3ZlKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0FTU0lHTkVFJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTID0gdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFUy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdEFzc2lnbmVlID0gdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlO1xuICAgICAgICBjb25zdCBhc3NpZ25lZSA9IGRlZmF1bHRBc3NpZ25lZS5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFhc3NpZ25lZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFUyA9IHRoaXMubGlzdHMuQUxMX1VTRVI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZScsIGFzc2lnbmVlKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FTU0lHTkVFX0dST1VQJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQID1cbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQLmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRBc3NpZ25lZUdyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlR3JvdXAgPSBkZWZhdWx0QXNzaWduZWVHcm91cC5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmICghYXNzaWduZWVHcm91cD8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA9IHRoaXMubGlzdHMuQUxMX0dST1VQO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXAnLCBhc3NpZ25lZUdyb3VwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXREZWZhdWx0UmV2aWV3ZXIoZXZ0OiBhbnkpIHtcbiAgICBpZiAoZXZ0Py51c2Vycz8ubGVuZ3RoIHx8IGV2dD8uZ3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJyk7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gdGhpcy51bmlxdWVCeVByb3AoXG4gICAgICAgIGV2dD8uZ3JvdXBzLFxuICAgICAgICAnZ3JvdXBfaWQnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTID0gdGhpcy5saXN0cy5BTExfVVNFUjtcbiAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlNfR1JPVVAgPSB0aGlzLmxpc3RzLkFMTF9HUk9VUDtcbiAgICB9XG4gICAgY29uc3QgcmV2aWV3ZXJNYXAgPSBldnQ/LnVzZXJzPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XG4gICAgbGV0IGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU7XG4gICAgY3VycmVudERlZmF1bHRSZXZpZXdlciA9IGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgIHJldmlld2VyTWFwLmluY2x1ZGVzKGVsZT8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcicsIGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIpO1xuICB9XG5cbiAgc2V0RGVmYXVsdE92ZXJzZWVyKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dD8udXNlcnM/Lmxlbmd0aCB8fCBldnQ/Lmdyb3Vwcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTID0gdGhpcy51bmlxdWVCeVByb3AoZXZ0Py51c2VycywgJ21lbWJlcl9pZCcpO1xuICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA9IHRoaXMudW5pcXVlQnlQcm9wKFxuICAgICAgICBldnQ/Lmdyb3VwcyxcbiAgICAgICAgJ2dyb3VwX2lkJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSUyA9IHRoaXMubGlzdHMuQUxMX1VTRVI7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQID0gdGhpcy5saXN0cy5BTExfR1JPVVA7XG4gICAgfVxuICAgIGNvbnN0IG92ZXJzZWVyTWFwID0gZXZ0Py51c2Vycz8ubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xuICAgIGxldCBjdXJyZW50RGVmYXVsdFJldmlld2VyID0gdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlO1xuICAgIGxldCBjdXJyZW50RGVmYXVsdEZhaWxSZXZpZXdlciA9XG4gICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlO1xuICAgIGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIgPSBjdXJyZW50RGVmYXVsdFJldmlld2VyLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICBvdmVyc2Vlck1hcC5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZClcbiAgICApO1xuICAgIGN1cnJlbnREZWZhdWx0RmFpbFJldmlld2VyID0gY3VycmVudERlZmF1bHRSZXZpZXdlci5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgb3ZlcnNlZXJNYXAuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpXG4gICAgKTtcbiAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyJywgY3VycmVudERlZmF1bHRSZXZpZXdlcik7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAncHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcicsXG4gICAgICBjdXJyZW50RGVmYXVsdEZhaWxSZXZpZXdlclxuICAgICk7XG4gIH1cblxuICBzZXREZWZhdWx0UmV2aWV3ZXJPblJlbW92ZShldnQ6IGFueSwgdHlwZTogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdSRVZJRVdFUic6IHtcbiAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSUyA9IHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlMuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRSZXZpZXdlciA9IHRoaXMuY29udHJvbHMucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZTtcbiAgICAgICAgY29uc3QgcmV2aWV3ZXIgPSBkZWZhdWx0UmV2aWV3ZXIuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXInLCByZXZpZXdlcik7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSRVZJRVdFUl9HUk9VUCc6IHtcbiAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUCA9XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUC5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICBjb25zdCBkZWZhdWx0UmV2aWV3ZXJHcm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlO1xuICAgICAgICBjb25zdCByZXZpZXdlckdyb3VwID0gZGVmYXVsdFJldmlld2VyR3JvdXAuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwJywgcmV2aWV3ZXJHcm91cCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0RGVmYXVsdE92ZXJzZWVyT25SZW1vdmUoZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnT1ZFUlNFRVInOiB7XG4gICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9PVkVSU0VFUlMgPSB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyID0gZGVmYXVsdE92ZXJzZWVyLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyJywgb3ZlcnNlZXIpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRGYWlsT3ZlcnNlZXIgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHMucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyRmFpbCA9IGRlZmF1bHRGYWlsT3ZlcnNlZXIuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyJywgb3ZlcnNlZXJGYWlsKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09WRVJTRUVSX0dST1VQJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQID1cbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQLmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRPdmVyc2Vlckdyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyR3JvdXAgPSBkZWZhdWx0T3ZlcnNlZXJHcm91cC5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAnLCBvdmVyc2Vlckdyb3VwKTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXJGYWlsZWRHcm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZTtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXJGYWlsZWRHcm91cCA9IGRlZmF1bHRPdmVyc2VlckZhaWxlZEdyb3VwLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgIG92ZXJzZWVyRmFpbGVkR3JvdXBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWVsZERlc2VsZWN0b3IodHlwZTogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVMaXN0ID0gJyc7XG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMubWFya2FzVG91Y2hlZFNlbGVjdG9yKHR5cGUpO1xuICB9XG5cbiAgbWFya2FzVG91Y2hlZFNlbGVjdG9yKGZpZWxkTmFtZTogYW55KSB7XG4gICAgY29uc3QgdHlwZUZpZWxkOiBhbnkgPSB7XG4gICAgICBST0xFOiAncHJvZ3JhbV9yb2xlcycsXG4gICAgICBBUFBST1ZFUjogJ3Byb2dyYW1fYXBwcm92ZXInLFxuICAgICAgT1dORVI6ICdwcm9ncmFtX293bmVycycsXG4gICAgICBPV05FUl9HUk9VUDogJ3Byb2dyYW1fb3duZXJzX2dyb3VwJyxcbiAgICB9O1xuICAgIHRoaXMuY29udHJvbHNbdHlwZUZpZWxkW2ZpZWxkTmFtZV1dPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBmZXRjaFJvbGVzKCkge1xuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZ2V0Um9sZXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuUk9MRVMgPSByZXM7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTeXN0ZW1WYWwgPSB0aGlzLmxpc3RzPy5ST0xFUz8uZGF0YVxuICAgICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAnYWRtaW4nXG4gICAgICAgICAgKVxuICAgICAgICAgID8ubWFwKChlbGU6IGFueSkgPT4gZWxlPy5faWQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsID0gdGhpcy5saXN0cz8uUk9MRVM/LmRhdGE/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2FkbWluJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmxpc3RzLlNZU1RFTV9ST0xFX0lEUyA9IGRlZmF1bHRTeXN0ZW1WYWw7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdFRElUJykge1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX3JvbGVzJywgZGVmYXVsdFZhbCk7XG4gICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmV0Y2hVc2Vyc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgICAgdGhpcy5mZXRjaEdyb3Vwc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuICAvL2ZldGNoIHRoZSBsaXN0IG9mIHJlc3BvbnNpYmlsaXRpZXMgY2VudGVyXG4gIGZldGNoUkMoKSB7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuUkMgPSByZXM7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge30sXG4gICAgfSk7XG4gIH1cblxuICBmZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcyhjYWxsZWRGcm9tPzogYW55KSB7XG4gICAgY29uc3QgbG9nZ2VkSW5Vc2VyID0gdGhpcy5jdXJyZW50VXNlcigpO1xuICAgIGNvbnN0IHJvbGVJZHMgPSB0aGlzLmxpc3RzLlJPTEVTPy5kYXRhPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Ll9pZCk7XG4gICAgLy8gaWYgKGZldGNoQWxsKSB7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbFJvbGVVc2Vycyhyb2xlSWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzVXNlckZpbmQgPSByZXM/LmRhdGE/LnNvbWUoXG4gICAgICAgICAgKHJlczogYW55KSA9PiByZXM/Lm1lbWJlcl9pZCA9PT0gbG9nZ2VkSW5Vc2VyPy5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFpc1VzZXJGaW5kKSB7XG4gICAgICAgICAgcmVzPy5kYXRhPy5wdXNoKGxvZ2dlZEluVXNlcik7XG4gICAgICAgICAgcmVzLnRvdGFsX2l0ZW1zID0gcmVzPy50b3RhbF9pdGVtcyArIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0cy5PV05FUlMgPSByZXM7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xzPy5hbGxfdXNlcl9pbl9yb2xlPy52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVycycsIHJlcz8uZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0T3duZXJzKHJlcz8uZGF0YSwgY2FsbGVkRnJvbSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoR3JvdXBzQXNzb2NpYXRlZFdpdGhSb2xlcygpIHtcbiAgICBjb25zdCByb2xlSWRzID0gdGhpcy5jb250cm9scy5wcm9ncmFtX3JvbGVzPy52YWx1ZT8ubWFwKFxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Ll9pZFxuICAgICk7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbFJvbGVHcm91cHMocm9sZUlkcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxpc3RzLk9XTkVSU19HUk9VUFMgPSByZXM7XG4gICAgICAgIGNvbnN0IHJvbGVJZHM6IEFycmF5PHN0cmluZz4gPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlLm1hcChcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5faWRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZ3JvdXBEZXRhaWxzID0gdGhpcy5jb250cm9scy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWUuZmlsdGVyKFxuICAgICAgICAgIChyb2xlSWQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJvbGVJZC5yb2xlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgbGV0IGlzU2FtZVJvbGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcm9sZUlkLnJvbGVzLmZvckVhY2goKHJvbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb2xlSWRzLmluY2x1ZGVzKHJvbGUucm9sZUlkKSkge1xuICAgICAgICAgICAgICAgICAgaXNTYW1lUm9sZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoaXNTYW1lUm9sZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByb2xlSWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVyc19ncm91cCcsIGdyb3VwRGV0YWlscyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc2V0RGVmYXVsdE93bmVycyh1c2VyTGlzdDogYW55LCBjYWxsZWRGcm9tPzogYW55KSB7XG4gICAgY29uc3QgbG9nZ2VkSW51c2VyID0gdGhpcy5jdXJyZW50VXNlcigpO1xuICAgIGNvbnN0IGRlZmF1bHRPd25lciA9IHVzZXJMaXN0LmZpbHRlcihcbiAgICAgIChlbGU6IGFueSkgPT5cbiAgICAgICAgWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyhlbGU/LnVzZXJfcm9sZSkgJiZcbiAgICAgICAgZWxlPy5tZW1iZXJfaWQgIT0gbG9nZ2VkSW51c2VyPy5tZW1iZXJfaWRcbiAgICApO1xuICAgIHRoaXMubGlzdHMuTk9OX1JFTU9WQUJMRV9PV05FUlMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgIFsuLi5bbG9nZ2VkSW51c2VyXSwgLi4uZGVmYXVsdE93bmVyXSxcbiAgICAgICdtZW1iZXJfaWQnXG4gICAgKTtcbiAgICAvLyB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnMnLCB0aGlzLmxpc3RzLk5PTl9SRU1PVkFCTEVfT1dORVJTKTtcbiAgICBjb25zdCBwcmVTZWxlY3RlZFVzZXJzID0gdGhpcy5nZXRQcmVTZWxlY3RlZE93bmVycyhcbiAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZSxcbiAgICAgIHVzZXJMaXN0XG4gICAgKTtcbiAgICBpZiAoY2FsbGVkRnJvbSAhPT0gJ2dldFByb2dyYW1EZXRhaWxzJykge1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICdwcm9ncmFtX293bmVycycsXG4gICAgICAgIHByZVNlbGVjdGVkVXNlcnM/Lmxlbmd0aFxuICAgICAgICAgID8gcHJlU2VsZWN0ZWRVc2Vyc1xuICAgICAgICAgIDogdGhpcy5saXN0cy5OT05fUkVNT1ZBQkxFX09XTkVSU1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmVTZWxlY3RlZE93bmVycyhwcmV2aW91c1NlbGVjdGVkVXNlcnM6IGFueSwgY3VycmVudFVzZXJzOiBhbnkpIHtcbiAgICBsZXQgZmluYWxVc2VycyA9IFtdO1xuICAgIGZpbmFsVXNlcnMgPSBwcmV2aW91c1NlbGVjdGVkVXNlcnM/LmZpbHRlcigocHJldmlvdXM6IGFueSkgPT5cbiAgICAgIGN1cnJlbnRVc2Vycz8uc29tZShcbiAgICAgICAgKGN1cnJlbnQ6IGFueSkgPT4gcHJldmlvdXM/Lm1lbWJlcl9pZCA9PT0gY3VycmVudD8ubWVtYmVyX2lkXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gZmluYWxVc2VycztcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uVXNlcnMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0ZS5VU0VSUyA9IHRydWU7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbE9yZ1VzZXIoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuQUxMX1VTRVIgPSByZXM7XG4gICAgICAgIHRoaXMubGlzdHMuQVNTSUdORUVTID0gcmVzO1xuICAgICAgICB0aGlzLmxpc3RzLlJFVklFV0VSUyA9IHJlcztcbiAgICAgICAgdGhpcy5saXN0cy5PVkVSU0VFUlMgPSByZXM7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdFRElUJykge1xuICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9BU1NJR05FRVMgPSByZXM7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSUyA9IHJlcztcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTID0gcmVzO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2xzLnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9BU1NJR05FRVMgPSByZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5jb250cm9scy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTID0gcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuY29udHJvbHMucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSUyA9IHJlcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdGUuVVNFUlMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGlzdCgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0ZS5VU0VSUyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uR3JvdXAoZGF0YT86IGFueSkge1xuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZmV0Y2hDb21wbGlhbmNlR3JvdXBzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxpc3RzLkFMTF9HUk9VUCA9IHJlcztcblxuICAgICAgICB0aGlzLmxpc3RzLkFTU0lHTkVFU19HUk9VUCA9IHJlcztcbiAgICAgICAgdGhpcy5saXN0cy5SRVZJRVdFUlNfR1JPVVAgPSByZXM7XG5cbiAgICAgICAgdGhpcy5saXN0cy5PVkVSU0VFUlNfR1JPVVAgPSByZXM7XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZSAhPT0gJ0VESVQnKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA9IHJlcztcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gcmVzO1xuICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9PVkVSU0VFUlNfR1JPVVAgPSByZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGZpbGVVcGxvYWRUcmFja2VyID0ge1xuICAgIGRlc2NyaXB0aW9uOiBbXSxcbiAgICBvYmplY3RpdmU6IFtdLFxuICB9O1xuXG4gIHNlbGVjdEZpbGUodHlwZTogYW55LCBmaWxlczogYW55KSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy51cGxvYWRGaWxlcyh0eXBlLCBmaWxlc1tpXS5maWxlKTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlcyh0eXBlOiAnREVTQ1JJUFRJT04nIHwgJ09CSkVDVElWRScsIGZpbGU6IGFueSkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgY29uc3QgZGVzdGluYXRpb25TdHJpbmcgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBkdW1teUZpbGUgPSB7XG4gICAgICBmaWxlX3VybF9wYXRoOiBgJHtmaWxlPy5uYW1lfWAsXG4gICAgICBuYW1lOiBgJHtmaWxlPy5uYW1lfWAsXG4gICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgICBvcmdfZmlsZTogYCR7ZmlsZT8ubmFtZX1gLFxuICAgIH07XG4gICAgaWYgKHR5cGUgPT09ICdERVNDUklQVElPTicpIHtcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbHM/LmRlc2NyaXB0aW9uX2F0dGFjaG1lbnQ/LnZhbHVlID8/IFtdO1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLCBbXG4gICAgICAgIC4uLmRlc2NyaXB0aW9uLFxuICAgICAgICAuLi5bZHVtbXlGaWxlXSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgbGV0IGRlc2NyaXB0aW9uSW5kZXggPSBkZXNjcmlwdGlvbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgPT09IHJlcz8ub3JnX2ZpbGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlc2NyaXB0aW9uW2Rlc2NyaXB0aW9uSW5kZXhdID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ09CSkVDVElWRScpIHtcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbHM/LmRlc2NyaXB0aW9uX2F0dGFjaG1lbnQ/LnZhbHVlID8/IFtdO1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLCBbXG4gICAgICAgIC4uLmRlc2NyaXB0aW9uLFxuICAgICAgICAuLi5bZHVtbXlGaWxlXSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgbGV0IGRlc2NyaXB0aW9uSW5kZXggPSBkZXNjcmlwdGlvbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgPT09IHJlcz8ub3JnX2ZpbGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlc2NyaXB0aW9uW2Rlc2NyaXB0aW9uSW5kZXhdID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUF0dGFjaG1lbnQodHlwZTogJ0RFU0NSSVBUSU9OJyB8ICdPQkpFQ1RJVkUnLCBmaWxlOiBhbnkpIHtcbiAgICBpZiAodHlwZSA9PT0gJ0RFU0NSSVBUSU9OJykge1xuICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm9yZ19maWxlICE9PSBmaWxlPy5vcmdfZmlsZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZXNjcmlwdGlvbl9hdHRhY2htZW50cycsIGRlc2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdPQkpFQ1RJVkUnKSB7XG4gICAgICBsZXQgb2JqZWN0aXZlID0gdGhpcy5jb250cm9scz8ub2JqZWN0aXZlX2F0dGFjaG1lbnRzPy52YWx1ZSA/PyBbXTtcbiAgICAgIGlmIChvYmplY3RpdmUpIHtcbiAgICAgICAgb2JqZWN0aXZlID0gb2JqZWN0aXZlLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm9yZ19maWxlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzJywgb2JqZWN0aXZlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxSb2xlT3duZXIoZXZ0OiBhbnkpIHtcbiAgICAvL25lZWQgdG8gZmV0Y2ggYWxsIHRoZSB1c2VycyBmb3IgYWxsIHRoZSBzZWxlY3RlZCByb2xlc1xuICAgIGNvbnN0IGxvZ2dlZEluVXNlciA9IHRoaXMuY3VycmVudFVzZXIoKTtcbiAgICBsZXQgcm9sZUlkID0gW107XG4gICAgbGV0IHVzZXI6IGFueTtcbiAgICBpZiAoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpIHtcbiAgICAgIHJvbGVJZCA9IHRoaXMuY29udHJvbHMucHJvZ3JhbV9yb2xlcz8udmFsdWU/Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uX2lkKTtcbiAgICAgIGlmICh0aGlzLmZlYXR1cmVmbGFnR3JvdXBzKSB7XG4gICAgICAgIHVzZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Ll9pZCk7XG4gICAgICAgIHRoaXMuY29udHJvbHMucHJvZ3JhbV9vd25lcnNfZ3JvdXAudmFsdWUgPSB1c2VyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByb2xlSWQgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlPy5tYXAoKGVsZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChbJ2tleSBhZG1pbicsICdhZG1pbiddLmluY2x1ZGVzKGVsZS5yb2xlTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgIHJldHVybiBlbGU/Ll9pZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZmV0Y2hBbGxSb2xlVXNlcnMocm9sZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgICBbLi4uW2xvZ2dlZEluVXNlcl0sIC4uLnJlcz8uZGF0YV0sXG4gICAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzJywgdXNlcik7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzZXRGb3JtRmllbGQgb3duZXInLCB0aGlzLmNvbnRyb2xzKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmZldGNoQWxsUm9sZUdyb3Vwcyh1c2VyKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4ucmVzPy5kYXRhXSwgJ2dyb3VwX2lkJyk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVyc19ncm91cCcsIHVzZXIpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHVuaXF1ZSBhcnJheSBvZiBvYmplY3QgYmFzZWQgb24gdW5pcXVlIGtleVxuICAgKiBAcGFyYW0gYXJyYXlcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICBhcnJheVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksIGFjY1xuICAgICAgICAgICksXG4gICAgICAgICAgbmV3IE1hcCgpXG4gICAgICAgIClcbiAgICAgICAgLnZhbHVlcygpXG4gICAgKTtcbiAgfVxuXG4gIHNldExpc3QobGlzdDogYW55W10sIGlkczogYW55W10sIGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgaWRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0LmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RFbGVtZW50OiBhbnkpID0+IGxpc3RFbGVtZW50W2tleV0gPT0gZWxlbWVudFxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgZGF0YS5wdXNoKGxpc3RbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHNhdmVQcm9ncmFtKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGF5bG9hZCA9IHRoaXMucHJvZ3JhbVNlcnZpY2UuYnVpbGRQYXlsb2FkKHRoaXMucHJvZ3JhbUZvcm0sIHRoaXMpO1xuICAgIGlmIChwYXlsb2FkICYmIHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcbiAgICAgIHRoaXMucHJvZ3JhbVNlcnZpY2Uuc2F2ZVByb2dyYW0ocGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY3JlYXRlZFByb2dyYW1JZCA9IHJlcy5faWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcbiAgICAgICAgICBpZiAoZXJyPy5lcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0NhdGVnb3J5IGFscmVhZHkgZXhpc3QnKSkge1xuICAgICAgICAgICAgdGhpcy5pc05hbWVFeGlzdHMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCAmJiB0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGRhdGVQcm9ncmFtKHBheWxvYWQsIHRoaXMucHJvZ3JhbUlkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jcmVhdGVkUHJvZ3JhbUlkID0gcmVzLl9pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgICAgICAgIGlmIChlcnI/LmVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnQ2F0ZWdvcnkgYWxyZWFkeSBleGlzdCcpKSB7XG4gICAgICAgICAgICB0aGlzLmlzTmFtZUV4aXN0cyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdhZGRNb3JlJzpcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlld1Byb2dyYW0nOlxuICAgICAgICB0aGlzLnZpZXdQcm9ncmFtcygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2aWV3UHJvZ3JhbXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIH1cblxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xuICAgICAgdXJsICs9ICcvcHJvZ3JhbS13b3Jrcm9vbT9pZD0nICsgdGhpcy5jcmVhdGVkUHJvZ3JhbUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgKz0gJy9wcm9ncmFtL3Byb2dyYW0td29ya3Jvb20/aWQ9JyArIHRoaXMuY3JlYXRlZFByb2dyYW1JZDtcbiAgICB9XG5cbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpIHtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCBERUZBVUxUX1ZBTFVFUyA9IHtcbiAgICAgIHByb2dyYW1fdHlwZTogMSxcbiAgICAgIHByb2dyYW1fbmFtZTogJycsXG4gICAgICBwcm9ncmFtX2Rlc2NyaXB0aW9uOiAnJyxcbiAgICAgIHByb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHM6IFtdLFxuICAgICAgcHJvZ3JhbV9vYmplY3RpdmU6ICcnLFxuICAgICAgcHJvZ3JhbV9vYmplY3RpdmVfYXR0YWNobWVudHM6IFtdLFxuICAgICAgcHJvZ3JhbV9yb2xlczogW10sXG4gICAgICBhbGxfdXNlcl9pbl9yb2xlOiBmYWxzZSxcbiAgICAgIHByb2dyYW1fb3duZXJzOiBbXSxcbiAgICAgIHByb2dyYW1fb3duZXJzX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fYXBwcm92ZXI6IFtdLFxuICAgICAgcGVyZm9ybWFuY2VfY2FsY3VsYXRpb246ICdQQVNUX0VWRU5UJyxcbiAgICAgIHJlY3VycmluZ19mcmVxdWVuY3k6IGZhbHNlLFxuICAgICAgbG9ja19zY29wZV9jaGFuZ2U6IGZhbHNlLFxuICAgICAgZnJhbWV3b3JrOiBbXSxcbiAgICAgIHJjOiBbXSxcbiAgICAgIHByb2dyYW1fYXNzaWduZWU6IFtdLFxuICAgICAgcHJvZ3JhbV9hc3NpZ25lZV9ncm91cDogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU6IFtdLFxuICAgICAgcHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwOiBbXSxcbiAgICAgIGFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE6ICdBTEwnLFxuICAgICAgcHJvZ3JhbV9yZXZpZXdlcjogW10sXG4gICAgICBwcm9ncmFtX3Jldmlld2VyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA6IFtdLFxuICAgICAgcmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYTogJ1NFUVVFTlRJQUwnLFxuICAgICAgcHJvZ3JhbV9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX292ZXJzZWVyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fZGVmYXVsdF9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA6IFtdLFxuICAgICAgcHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fYXNzZXNzbWVudHM6IFtdLFxuICAgICAgZXZpZGVuY2VfcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgYWxsb3dfYW55X2ZpbGVfa2V5X2V2aWRlbmNlOiBmYWxzZSxcbiAgICAgIGN1c3RvbV9maWVsZHM6IFtdLFxuICAgICAgcHJvZ3JhbV9zdGF0ZTogMCxcbiAgICB9O1xuICAgIHRoaXMucmVzZXRBZGRpdGlvbmFsT3B0aW9uKCk7XG4gICAgdGhpcy5wcm9ncmFtRm9ybS5yZXNldCgpO1xuICAgIHRoaXMucHJvZ3JhbUZvcm0ucGF0Y2hWYWx1ZShERUZBVUxUX1ZBTFVFUyk7XG4gICAgdGhpcy5lZGl0b3JEYXRhID0ge1xuICAgICAgcHJvZ3JhbU9iamVjdGl2ZTogJycsXG4gICAgICBwcm9ncmFtRGVzY3JpcHRpb246ICcnLFxuICAgIH07XG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmlzTmFtZUV4aXN0cyA9IGZhbHNlO1xuICAgIHRoaXMuZmV0Y2hSb2xlcygpO1xuICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh0cnVlKTtcbiAgICB0aGlzLmZvcm0ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQ6ICcnLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvZ3JhbSBkZXRhaWxzIHdoZW4gdXNlciBpcyB0cnlpbmcgdG8gZWRpdCBwcm9ncmFtXG4gICAqL1xuICBnZXRQcm9ncmFtRGV0YWlscygpIHtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlXG4gICAgICAuZ2V0UHJvZ3JhbSh0aGlzLnByb2dyYW1JZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgIFxuICAgICAgfSk7XG4gIH1cblxuICBwb3B1bGF0ZVByb2dyYW1EZXRhaWxzKHJlczogYW55KSB7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fbmFtZScsIHJlcz8ubmFtZSk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fdHlwZScsIHJlcz8udHlwZSk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb2JqZWN0aXZlJywgcmVzPy5kZXNjcmlwdGlvbik7XG5cbiAgICBpZiAocmVzPy5yb2xlcyAmJiByZXM/LnJvbGVzPy5sZW5ndGggJiYgdGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5ST0xFUyA9IHRydWU7XG4gICAgfVxuICAgIFxuXG4gICAgaWYgKHJlcy5jdXN0b21GaWVsZHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldEZvcm1GaWVsZCgnY3VzdG9tX2ZpZWxkcycsIHJlcy5jdXN0b21GaWVsZHMpO1xuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkNVU1RPTV9GSUVMRFMgPSB0cnVlO1xuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wb3B1bGF0ZU1lbWJlcnMocmVzKTtcbiAgICB0aGlzLnBvcHVsYXRlR3JvdXBzKHJlcyk7XG4gICAgdGhpcy5mZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcygnZ2V0UHJvZ3JhbURldGFpbHMnKTtcbiAgICB0aGlzLmZldGNoR3JvdXBzQXNzb2NpYXRlZFdpdGhSb2xlcygpO1xuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25Hcm91cCgpO1xuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25Vc2VycygpO1xuICB9XG5cblxuICBwb3B1bGF0ZU1lbWJlcnMocmVzOiBhbnkpIHtcbiAgICBjb25zdCBpZHMgPSBbXG4gICAgICAuLi5uZXcgU2V0KFtcbiAgICAgICAgLi4uKHJlcz8ub3duZXJzPy5hZG1pbnM/LnVzZXJzID8/IFtdKSxcbiAgICAgICAgLi4uKHJlcz8ub3duZXJzPy5tYW5hZ2Vycz8udXNlcnMgPz8gW10pLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmdldE1lbWViZXJCeVVJZHMoaWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPd25lcnMgPSByZXMub3duZXJzPy5hZG1pbnNcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2xsYWJvcmF0b3JzID0gcmVzLm93bmVycz8ubWFuYWdlcnNcblxuICAgICAgICBpZiAoc2VsZWN0ZWRPd25lcnM/LnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgc2VsZWN0ZWRPd25lcnM/LnVzZXJzLmluY2x1ZGVzKGVsZT8udWlkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzJywgb3duZXJzKTtcbiAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PV05FUlMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RlZENvbGxhYm9yYXRvcnM/LnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBjb2xsYWJvcmF0b3JzID0gcmVzcG9uc2UuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgICAgICAgIHNlbGVjdGVkQ29sbGFib3JhdG9ycz8udXNlcnM/LmluY2x1ZGVzKGVsZT8udWlkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ2NvbGxhYm9yYXRvcnMnLCBjb2xsYWJvcmF0b3JzKTtcbiAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQ09MTEFCT1JBVE9SUyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcz8uZGVmYXVsdF9hc3NpZ25lZV9pZHMgJiYgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYXNzaWduZWUgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2lkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWUnLCBhc3NpZ25lZSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BU1NJR05FRVMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuY2hlY2tQcm9ncmFtT3B0aW9uRmllbGQoKTtcbiAgfVxuXG4gIHBvcHVsYXRlR3JvdXBzKHJlczogYW55KSB7XG4gICAgY29uc3QgaWRzID0gW1xuICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgIC4uLihyZXM/Lm93bmVyc19ncm91cCA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmFzc2lnbmVlX2dyb3VwX2lkcyA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmRlZmF1bHRfYXNzaWduZWVfZ3JvdXBfaWRzID8/IFtdKSxcbiAgICAgICAgLi4uKHJlcz8ub3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5yZXZpZXdlcl9ncm91cF9pZHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5kZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkcyA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5kZWZhdWx0X292ZXJzZWVycz8uZmFpbHVyZV9jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmdldE1lbWJlckJ5R3JvdXBzKGlkcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXNwPy5kYXRhO1xuICAgICAgICBpZiAocmVzLm93bmVyc19ncm91cCAmJiByZXM/Lm93bmVyc19ncm91cD8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qgb3duZXJzID0gcmVzcG9uc2UuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgICAgICAgIHJlcz8ub3duZXJzX2dyb3VwPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzX2dyb3VwJywgb3duZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzLmFzc2lnbmVlX2dyb3VwX2lkcyAmJiByZXM/LmFzc2lnbmVlX2dyb3VwX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYXNzaWduZWUgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5hc3NpZ25lZV9ncm91cF9pZHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9hc3NpZ25lZV9ncm91cCcsIGFzc2lnbmVlKTtcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQID0gYXNzaWduZWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BU1NJR05FRVMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwX2lkcyAmJlxuICAgICAgICAgIHJlcz8uZGVmYXVsdF9hc3NpZ25lZV9ncm91cF9pZHM/Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBhc3NpZ25lZSA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfYXNzaWduZWVfZ3JvdXBfaWRzPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCcsIGFzc2lnbmVlKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiB8fFxuICAgICAgICAgICAgIXRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFTU0lHTkVFUyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXM/LnJldmlld2VyX2dyb3VwX2lkcyAmJiByZXM/LnJldmlld2VyX2dyb3VwX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgcmV2aWV3ZXIgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5yZXZpZXdlcl9ncm91cF9pZHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyKTtcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gcmV2aWV3ZXI7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5SRVZJRVdFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/LmRlZmF1bHRfcmV2aWV3ZXJfZ3JvdXBfaWRzICYmXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHJldmlld2VyID0gcmVzcG9uc2U/LmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfcmV2aWV3ZXJfZ3JvdXBfaWRzPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyKTtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEudmFsdWUgPVxuICAgICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/ICdBTllPTkUnXG4gICAgICAgICAgICAgIDogdGhpcy5jb250cm9scz8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYT8udmFsdWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5SRVZJRVdFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/Lm92ZXJzZWVycz8uY2NfZW1haWxfZ3JvdXBzICYmXG4gICAgICAgICAgcmVzPy5vdmVyc2VlcnM/LmNjX2VtYWlsX2dyb3Vwcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG92ZXJzZWVyR3JvdXAgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5vdmVyc2VlcnM/LmNjX2VtYWlsX2dyb3Vwcz8uaW5jbHVkZXMoZWxlPy5ncm91cF9pZClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX292ZXJzZWVyX2dyb3VwJywgb3ZlcnNlZXJHcm91cCk7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA9IG92ZXJzZWVyR3JvdXA7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PVkVSU0VFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgJiZcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHM/Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXJHcm91cCA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAgICdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgICAgZGVmYXVsdE92ZXJzZWVyR3JvdXBcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3JnRGV0YWlscz8uaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uIHx8XG4gICAgICAgICAgICAhdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1ZFUlNFRVIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X292ZXJzZWVycz8uZmFpbHVyZV9jY19lbWFpbF9ncm91cHMgJiZcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5mYWlsdXJlX2NjX2VtYWlsX2dyb3Vwcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRPdmVyc2VlckZhaWx1cmVHcm91cCA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5mYWlsdXJlX2NjX2VtYWlsX2dyb3Vwcz8uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIGVsZT8uZ3JvdXBfaWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgICAgZGVmYXVsdE92ZXJzZWVyRmFpbHVyZUdyb3VwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiB8fFxuICAgICAgICAgICAgIXRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9WRVJTRUVSID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBBcyBvZiBub3cgZ3JvdXBzIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSByZXZpZXdlciBhbmQgb3ZlcnNlZWVyIGlmIHRoaXMgZ3JvdXAgZmVhdHVyZSBnZXRzIGluY29wZXJhdGVkIGluXG4gICAgICAvL2Z1dHVyZSBuZWVkIHRvIGFkZCBncm91cCBjb25kaXRpb24gaGVyZSB0byBwcmVwb3B1bGF0ZSB0aGUgZGF0YSB3aGlsZSBlZGl0aW5nLlxuICAgIH0pO1xuICAgIHRoaXMuY2hlY2tQcm9ncmFtT3B0aW9uRmllbGQoKTtcbiAgfVxuXG4gIHJlc2V0QWRkaXRpb25hbE9wdGlvbigpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uUk9MRVMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1dORVJTID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFQUFJPVkVSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlBST0dSQU1fRlJFUVVFTkNZID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlNDT1BFX0NIQU5HRVMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uUkMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQVNTSUdORUVTID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlJFVklFV0VSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9WRVJTRUVSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFTU0VTU01FTlQgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uRk9STUFURV9FVklERU5DRSA9IGZhbHNlO1xuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5DVVNUT01fRklFTERTID0gZmFsc2U7XG4gIH1cblxuICBjaGVja1Byb2dyYW1PcHRpb25GaWVsZCgpOiBhbnkge1xuICAgIGNvbnN0IGNvZGUgPSBbXG4gICAgICAnUFJPR1JBTV9GUkVRVUVOQ1knLFxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxuICAgICAgJ1JDJyxcbiAgICAgICdBU1NJR05FRVMnLFxuICAgICAgJ1JFVklFV0VSJyxcbiAgICAgICdPVkVSU0VFUicsXG4gICAgICAnQVNTRVNTTUVOVCcsXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXG4gICAgICAnQ1VTVE9NX0ZJRUxEUycsXG4gICAgXTtcbiAgICBsZXQgaXNNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgY29kZS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvbltrZXldKSB7XG4gICAgICAgIGlzTW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5pc1Byb2dyYW1TY29wZSA9IGlzTW9yZU9wdGlvbjtcbiAgfVxuXG4gIGVuYWJsZWZlYXR1cmUoKSB7XG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcm9sZV9pbXByb3ZlbWVudHMnXG4gICAgKTtcbiAgICB0aGlzLmlzQXNjZW50QWxsb3dlZCA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9jb21wbGlhbmNlX2ZyYW1ld29yaydcbiAgICApO1xuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9wcm9ncmFtX3NpbXBsaWZ5J1xuICAgICk7XG4gICAgdGhpcy5mZWF0dXJlZmxhZ0dyb3VwcyA9XG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fZ3JvdXBzJyk7XG4gICAgdGhpcy50b29sVGlwRGF0YS5vd25lciA9IHRoaXMuZmVhdHVyZWZsYWdyb2xlXG4gICAgICA/ICdPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+VGhlIDxzdHJvbmc+S2V5IFBvd2VyIFVzZXI8L3N0cm9uZz4gYW5kIGFsbCA8Yj5Qb3dlciBVc2VyczwvYj4gd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LidcbiAgICAgIDogJ093bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5UaGUgPHN0cm9uZz5LZXkgQWRtaW48L3N0cm9uZz4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0Lic7XG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XG4gIH1cblxuICBoYW5kbGVEYXRhUG9wdWxhdGlvbigpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgICB0aGlzLnBvcHVsYXRlUHJvZ3JhbURldGFpbHModGhpcy5wcm9ncmFtRGV0YWlscylcbiAgICB9XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwid29ya2Zsb3ctcHJvZ3JhbVwiICNmb3JtPlxuICA8Zm9ybSBub3ZhbGlkYXRlIFtmb3JtR3JvdXBdPVwicHJvZ3JhbUZvcm1cIj5cbiAgICA8IS0tIFByb2dyYW0gQ2F0ZWdvcnkgVHlwZSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fdHlwZT8udmFsdWUgPiAtMVwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9pc3N1ZS10eXBlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5QUk9HUkFNIFRZUEUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPHRhYi1zZWxlY3RvclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9ncmFtX3R5cGVcIlxuICAgICAgICBbZGlzcGxheUFycmF5XT1cImNvbnN0YW50cz8uY2F0ZWdvcnlUeXBlXCJcbiAgICAgID48L3RhYi1zZWxlY3Rvcj5cbiAgICAgIDwhLS0gPHAgKm5nSWY9XCJwcm9ncmFtX25hbWU/LmludmFsaWRcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5BZGQgYSBwcm9ncmFtIHR5cGU8L3A+IC0tPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRnJhbWV3b3JrIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICAqbmdJZj1cImlzQXNjZW50QWxsb3dlZFwiXG4gICAgICBbY2hlY2tlZF09XCJmYWxzZVwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkZSQU1FV09SSzwvbGFiZWw+XG4gICAgICA8IS0tIFtzZWxlY3REaXZdPVwidHJ1ZVwiIC0tPlxuICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBhIGZyYW1ld29yayB0aGF0IHRoaXMgUHJvZ3JhbSByZWxhdGVzIHRvJ1wiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdGUkFNRVdPUksnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiY29udHJvbHM/LmZyYW1ld29yay52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgnJywgJ0ZSQU1FV09SSycpXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWU/Lm5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgPnt7IGNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWU/Lm5hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIChjbGljayk9XCJyZW1vdmUoJycsICdGUkFNRVdPUksnKVwiICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCIgY2xhc3M9XCJpY29uc1wiID4mI3hlOTBkOzwvaT4ge3tjb250cm9scz8uZnJhbWV3b3JrLnZhbHVlPy5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0ZSQU1FV09SSycpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFByb2dyYW0gQ2F0ZWdvcnkgTmFtZSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fbmFtZT8udmFsdWU/LnRyaW0oKT8ubGVuZ3RoXCJcbiAgICAgIFthY3RpdmVdPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cInNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgPlBST0dSQU0gTkFNRSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgSW5wdXRUcmltXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2dyYW1fbmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJXaGF0IGlzIHRoZSBQcm9ncmFtIG5hbWU/XCJcbiAgICAgIC8+XG5cbiAgICAgIDxwXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fbmFtZT8uZXJyb3JzICYmIGNvbnRyb2xzPy5wcm9ncmFtX25hbWU/LnRvdWNoZWRcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgID5cbiAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIFByb2dyYW0uXG4gICAgICA8L3A+XG4gICAgICA8cCAqbmdJZj1cImlzTmFtZUV4aXN0c1wiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICBQcm9ncmFtIG5hbWUgYWxyZWFkeSBleGlzdHMuXG4gICAgICA8L3A+XG4gICAgPC9mb3JtLWZpZWxkPlxuICAgIDx2Y29tcGx5LWVkaXRvclxuICAgIFsobmdNb2RlbCldPVwiZWRpdG9yRGF0YS5wcm9ncmFtT2JqZWN0aXZlXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdPQkpFQ1RJVkUnLCAkZXZlbnQpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRGb3JtRmllbGQoJ3Byb2dyYW1fb2JqZWN0aXZlJywgJGV2ZW50LCB0cnVlKVwiXG4gICAgW2VkaXRvckNvbmZpZ109XCJjb25zdGFudHM/LmRlc2NyaXB0aW9uXCJcbiAgPlxuICA8L3Zjb21wbHktZWRpdG9yPlxuXG5cbiAgICA8IS0tIE93bmVycyAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5PV05FUlNcIlxuICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCA+IDAgfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMFxuICAgICAgXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ09XTkVSJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdPV05FUidcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vd25lci5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+T1dORVIoUykgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAqbmdJZj1cInRvb2xUaXBEYXRhLm93bmVyICE9PSAnJ1wiXG4gICAgICAgICAgbGliUG9wb3ZlckhvdmVyXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8cG9wb3Zlci1ob3ZlciAjZGF0YVRvb2x0aXA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWluZm8tY2FyZC1ib2R5XCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b29sVGlwRGF0YS5vd25lclwiXG4gICAgICAgICAgICAgIGlkPVwiT3duZXJIZWxwVGV4dFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcG9wb3Zlci1ob3Zlcj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGlzIHByb2dyYW0/J1wiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdPV05FUicpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvd25lci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIG93bmVyPy51c2VyX3JvbGVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ09XTkVSX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnT1dORVInXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb250cm9scz8uYWxsX3VzZXJfaW5fcm9sZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnT1dORVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjb3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvd25lciBvZiBjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlIHwgc2xpY2UgOiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHMuTk9OX1JFTU9WQUJMRV9PV05FUlMgfCBsaXN0VG9JZCA6ICdtZW1iZXJfaWQnXG4gICAgICAgICAgICAgICAgICAgICAgKS5pbmNsdWRlcyhvd25lcj8ubWVtYmVyX2lkKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShvd25lciwgJ09XTkVSJylcIlxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IG93bmVyPy5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBvd25lciBvZiBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIVsnQURNSU4nLCAnS0VZX0FETUlOJywgJ0xPR0dFRF9JTiddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgb3duZXI/LnVzZXJfcm9sZVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUob3duZXIsICdPV05FUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBvd25lcj8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIENvbGxhYm9yYXRvcnMgICAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uQ09MTEFCT1JBVE9SU1wiXG4gICAgW2NoZWNrZWRdPVwiXG4gICAgICBjb250cm9scz8uY29sbGFib3JhdG9ycy52YWx1ZT8ubGVuZ3RoID4gMCB8fFxuICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXAudmFsdWU/Lmxlbmd0aCA+IDBcbiAgICBcIlxuICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdDT0xMQUJPUkFUT1JTJ1wiXG4gICAgW2ltZ109XCJcbiAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJ1xuICAgIFwiXG4gID5cbiAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgID5DT0xMQUJPUkFUT1JTIFxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgKm5nSWY9XCJ0b29sVGlwRGF0YS5jb2xsYWJvcmF0b3JzICE9PSAnJ1wiXG4gICAgICAgIGxpYlBvcG92ZXJIb3ZlclxuICAgICAgICAobW91c2VvdmVyKT1cImRhdGFUb29sdGlwLnBvcG92ZXIoKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPjwvc3BhblxuICAgICAgPlxuICAgICAgPHBvcG92ZXItaG92ZXIgI2RhdGFUb29sdGlwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5mby1jYXJkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRvb2xUaXBEYXRhLmNvbGxhYm9yYXRvcnNcIlxuICAgICAgICAgICAgaWQ9XCJDb2xsYWJvcmF0b3JzSGVscFRleHRcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3BvcG92ZXItaG92ZXI+XG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dobyBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhpcyBwcm9ncmFtPydcIlxuICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0NPTExBQk9SQVRPUlMnKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8uY29sbGFib3JhdG9ycy52YWx1ZVswXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNCBncmVlbkJnXCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3duZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiY8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICBvd25lcj8udXNlcl9yb2xlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgJ0NPTExBQk9SQVRPUlNfR1JPVVAnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICBjb250cm9scz8uY29sbGFib3JhdG9yc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAre3sgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiID57e2NvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnQgdXNlclwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm93bmVyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoXCI+Jjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAqbmdJZj1cIiFbJ0FETUlOJywnS0VZX0FETUlOJywnTE9HR0VEX0lOJ10uaW5jbHVkZXMob3duZXI/LnVzZXJfcm9sZSlcIiAoY2xpY2spPVwicmVtb3ZlKG93bmVyLCdPV05FUl9HUk9VUCcpXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2VcIj57e2NvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29udHJvbHM/LmFsbF91c2VyX2luX3JvbGU/LnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdDT0xMQUJPUkFUT1JTJylcIlxuICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaW5wdXQtd2l0aC1waWxsPlxuICAgIDxhcHAtcG9wb3ZlciAjb3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3duZXIgb2YgY29udHJvbHM/LmNvbGxhYm9yYXRvcnM/LnZhbHVlIHwgc2xpY2UgOiAxXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxpXG5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShvd25lciwgJ0NPTExBQk9SQVRPUlMnKVwiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3duZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FwcC1wb3BvdmVyPlxuICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG93bmVyIG9mIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzX2dyb3VwPy52YWx1ZSB8IHNsaWNlIDogMVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgb3duZXI/LnVzZXJfcm9sZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG93bmVyLCAnQ09MTEFCT1JBVE9SU19HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBvd25lcj8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcHAtcG9wb3Zlcj5cbiAgPC9mb3JtLWZpZWxkPlxuXG4gICAgPCEtLSBQZXJmb3JtYW5jZSBDYWxjdWxhdGVkIC0tPlxuICAgIDwhLS0gPGZvcm0tZmllbGQgW2NoZWNrZWRdPVwiY29udHJvbHM/LnBlcmZvcm1hbmNlX2NhbGN1bGF0aW9uPy52YWx1ZVwiIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1BFUkZPUk1BTkNFJ1wiIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiYgYWN0aXZlTGlzdCAhPT0gJ1BFUkZPUk1BTkNFJ1wiXG4gICAgICAgICAgICBbaW1nXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcGVyZm9ybWFuY2UtY2FsYy5zdmcnXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SE9XIFNIT1VMRCBUSEUgUEVSRk9STUFOQ0UgT0YgVEhJUyBQUk9HUkFNIEJFIENBTENVTEFURUQ/PC9sYWJlbD5cbiAgICAgICAgICAgIDx0YWItc2VsZWN0b3IgZm9ybUNvbnRyb2xOYW1lPVwicGVyZm9ybWFuY2VfY2FsY3VsYXRpb25cIiBbZGlzcGxheUFycmF5XT1cImNvbnN0YW50cz8ucGVyZm9ybWFuY2VDYWxjdWxhdGlvblwiPlxuICAgICAgICAgICAgPC90YWItc2VsZWN0b3I+XG4gICAgICAgIDwvZm9ybS1maWVsZD4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJvZ3JhbVNjb3BlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2NvcGUtbGFiZWwgdngtZnMtMTAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbWItNSB2eC1saC00IHZ4LWQtaW5saW5lLWJsb2NrXCJcbiAgICAgID5cbiAgICAgICAgUFJPR1JBTSBTQ09QRVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxpICBjbGFzcz1cImljb25zIGluZm8taWNvbiB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCIgW2FwcFRvb2x0aXBdPVwidG9vbHRpcC5wcm9ncmFtU2NvcGVcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+IC0tPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpY29uIGluZm8taWNvbiB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCJcbiAgICAgICAgKm5nSWY9XCJ0b29sVGlwRGF0YS5wcm9ncmFtU2NvcCAhPT0gJydcIlxuICAgICAgICBsaWJQb3BvdmVySG92ZXJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJkYXRhVG9vbHRpcC5jbG9zZVBvcG92ZXIoKVwiXG4gICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgID5cbiAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWJvZHlcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b29sVGlwRGF0YS5wcm9ncmFtU2NvcGVcIlxuICAgICAgICAgICAgaWQ9XCJQU0hlbHBUZXh0XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wb3BvdmVyLWhvdmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBQcm9ncmFtIEZyZXF1ZW5jeSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5QUk9HUkFNX0ZSRVFVRU5DWVwiXG4gICAgICBbY2hlY2tlZF09XCJbdHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKGNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZSlcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVMaXN0ID09PSAnRlJFUVVFTkNZJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIHNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KSAmJiBhY3RpdmVMaXN0ICE9PSAnRlJFUVVFTkNZJ1xuICAgICAgXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjdXJyaW5nLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiIGlkPVwiUERDaGFuZ2VcIlxuICAgICAgICA+UFJPR1JBTSBEVVJBVElPTlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnICtcbiAgICAgICAgICAgIGJ1c2luZXNzQ3ljbGUuc2VsZWN0ZWRDeWNsZS5idXNpbmVzc19jeWNsZSArXG4gICAgICAgICAgICAnLiAgQWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgYWxzbyBoYXZlIHRoZSBzYW1lIFByb2dyYW0gRHVyYXRpb24uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJQcm9ncmFtRHVyYXRpb25IZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgdngtbWItMFwiPklzIHRoaXMgcHJvZ3JhbSByZWN1cnJpbmc/PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cCBwcm9ncmFtXCI+XG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidyZWN1cnJpbmdfZnJlcXVlbmN5J1wiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZVwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdyZWN1cnJpbmdfZnJlcXVlbmN5JywgdHJ1ZSlcIlxuICAgICAgICAgICAgICA+WUVTPC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgW25hbWVdPVwiJ3JlY3VycmluZ19mcmVxdWVuY3knXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIWNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZVwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdyZWN1cnJpbmdfZnJlcXVlbmN5JywgZmFsc2UpXCJcbiAgICAgICAgICAgICAgPk5PPC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFNjb3BlIENoYW5nZXMgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uU0NPUEVfQ0hBTkdFU1wiXG4gICAgICBbY2hlY2tlZF09XCJbdHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKGNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWUpXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1NDT1BFJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdTQ09QRSdcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9sb2NrLXNjb3BlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5Mb2NrIHRoZSBQcm9ncmFtIFNjb3BlXG4gICAgICAgIDxpXG4gICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAnSWYgdGhlIFByb2dyYW0gU2NvcGUgaXMgbG9ja2VkLCBuZWl0aGVyIHRoZSBQcm9ncmFtIG5vciB0aGUgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbSBjYW4gYmUgZWRpdGVkIG9uY2UgdGhlIFByb2dyYW0gYmVnaW5zLiBJbiBvcmRlciB0byBlZGl0IHRoZSBQcm9ncmFtIG9yIHRoZSBsaW5rZWQgcmVzcG9uc2liaWxpdGllcywgdGhlIFByb2dyYW0gZGV0YWlscyB3aWxsIG5lZWQgdG8gYmUgZWRpdGVkLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiU2NvcGVDaGFuZ2VzSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICA+V291bGQgeW91IGxpa2UgdG9cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWxhYmVsLXR4dCB2eC1mdy01MDBcIj5sb2NrIGNoYW5nZXM8L3NwYW4+IHRvIHRoZVxuICAgICAgICAgIHByb2dyYW0gc2NvcGU/PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwIHByb2dyYW1cIj5cbiAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBbbmFtZV09XCInbG9ja19zY29wZV9jaGFuZ2UnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRGb3JtRmllbGQoJ2xvY2tfc2NvcGVfY2hhbmdlJywgdHJ1ZSlcIlxuICAgICAgICAgICAgPllFUzwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgPlxuICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgIFtuYW1lXT1cIidsb2NrX3Njb3BlX2NoYW5nZSdcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiIWNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRGb3JtRmllbGQoJ2xvY2tfc2NvcGVfY2hhbmdlJywgZmFsc2UpXCJcbiAgICAgICAgICAgID5OTzwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRnJhbWV3b3JrIC0tPlxuICAgIDwhLS0gPGZvcm0tZmllbGQgW2NoZWNrZWRdPVwiZmFsc2VcIiBbYWN0aXZlXT1cImFjdGl2ZUxpc3QgPT09ICdGUkFNRVdPUksnXCIgW2Rpc2FibGVkXT1cInNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KSAmJiBhY3RpdmVMaXN0ICE9PSAnRlJBTUVXT1JLJ1wiXG4gICAgICAgICAgICBbaW1nXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJ1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkZSQU1FV09SSzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQtd2l0aC1waWxsIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IGEgZnJhbWV3b3JrIHRoYXQgdGhpcyBQcm9ncmFtIHJlbGF0ZXMgdG8nXCIgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0ZSQU1FV09SSycpXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8uZnJhbWV3b3JrPy52YWx1ZT8uZnJhbWV3b3JrX25hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LmZyYW1ld29yay52YWx1ZSwnRlJBTUVXT1JLJylcIiBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+e3tjb250cm9scz8uZnJhbWV3b3JrPy52YWx1ZT8uZnJhbWV3b3JrX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJmcmFtZXdvcmsucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rNTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGlzdCE9PSdGUkFNRVdPUksnXCIgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnRlJBTUVXT1JLJylcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjZnJhbWV3b3JrIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBbMSwgMSwgMSwgMSwgMSwgMSwgMV1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuYWdlIGZyYW1ld29yayBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICA8L2Zvcm0tZmllbGQ+IC0tPlxuXG4gICAgPCEtLSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uUkNcIlxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnJjPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1JDJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdSQydcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgPlJFU1BPTlNJQklMSVRZIENFTlRFUlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBXaGVyZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXNwb25zaWJpbGl0aWVzIENlbnRlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJSQ0hlbHBUZXh0XCJcbiAgICAgICAgICA+JiN4ZWIxNjs8L2lcbiAgICAgICAgPjwvbGFiZWxcbiAgICAgID5cbiAgICAgIDxpbnB1dC13aXRoLXBpbGxcbiAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ1JDJylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1doaWNoIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBjYW4gYmUgbGlua2VkIHRvIHRoZSByZXNwb25zaWJpbGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFByb2dyYW0/J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucmM/LnZhbHVlICYmIGNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5yYz8udmFsdWVbMF0sICdSQycpXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5yYz8udmFsdWVbMF0/Lml0ZW1fbmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgY29udHJvbHM/LnJjPy52YWx1ZVswXT8uaXRlbV9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJjLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucmM/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnJjPy52YWx1ZVswXSwnUkMnKVwiPiYjeGU5MGQ7PC9pPnt7Y29udHJvbHM/LnJjPy52YWx1ZVswXT8uaXRlbV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aCAgPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJjLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnJjPy52YWx1ZT8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ1JDJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdSQycpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjcmMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByYyBvZiBjb250cm9scz8ucmM/LnZhbHVlIHwgc2xpY2UgOiAxXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKHJjLCAnUkMnKVwiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIEFzc2lnbmVlIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb24/LkFTU0lHTkVFU1wiXG4gICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgIFwiXG4gICAgICBbYWN0aXZlXT1cIlsnQVNTSUdORUUnLCAnREVGQVVMVF9BU1NJR05FRSddPy5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIHNpZGVFbGVtZW50cz8uaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiZcbiAgICAgICAgIVsnQVNTSUdORUUnLCAnREVGQVVMVF9BU1NJR05FRSddLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXG4gICAgICBcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX0FTU0lHTkVFJ1wiXG4gICAgICAgID5BU1NJR05FRVNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdBc3NpZ25lZXMgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHRoZW0uIFdoZXJlIEFzc2lnbmVlcyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzaWduZWVzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiQXNzaWduZWVIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1dobyBpcyByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0lHTkVFJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZVswXSwgJ0FTU0lHTkVFJylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhc3NpZ25lZS5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ0FTU0lHTkVFX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFzc2lnbmVlX2dyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0sJ0FTU0lHTkVFJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJhc3NpZ25lZS5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLCdBU1NJR05FRV9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJhc3NpZ25lZV9ncm91cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0FTU0lHTkVFJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdBU1NJR05FRScpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjYXNzaWduZWUgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBhc3NpZ25lZSBvZiBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWUgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cInJlbW92ZShhc3NpZ25lZSwgJ0FTU0lHTkVFJylcIiBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBhc3NpZ25lZT8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8YXBwLXBvcG92ZXIgI2Fzc2lnbmVlX2dyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdBU1NJR05FRV9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdBU1NJR05FRSdcIlxuICAgICAgICA+REVGQVVMVCBBU1NJR05FRVxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1RoaXMgb3B0aW9uIGxldHMgeW91IHNwZWNpZnkgdGhlIERlZmF1bHQgQXNzaWduZWVzIGZvciBhbGwgbmV3IHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggYSBQcm9ncmFtLiBJZiBhIERlZmF1bHQgQXNzaWduZWVzIGlzIHNlbGVjdGVkLCB0aGUgdXNlciB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2VsZWN0ZWQgdGhlIEFzc2lnbmVlIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LiAnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkRBSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICBbc2VsZWN0RGl2XT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlTGlzdCA9PT0gJ0FTU0lHTkVFJ1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hpY2ggcGVyc29ucyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBkZWZhdWx0IGFzc2lnbmVlcyBmb3IgdGhlIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgIFwiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX0FTU0lHTkVFJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ0RFRkFVTFRfQVNTSUdORUUnXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVmYXVsdEFzc2lnbmVlLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9BU1NJR05FRV9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVmYXVsdEFzc2lnbmVlR3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWVbMF0sJ0RFRkFVTFRfQVNTSUdORUUnKVwiID4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7IGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJkZWZhdWx0QXNzaWduZWUucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIC0gMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aFwiPiY8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLCdERUZBVUxUX0FTU0lHTkVFX0dST1VQJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJkZWZhdWx0QXNzaWduZWVHcm91cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLTEgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnREVGQVVMVF9BU1NJR05FRScpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjZGVmYXVsdEFzc2lnbmVlIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgYXNzaWduZWUgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWVcbiAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzaWduZWUsICdERUZBVUxUX0FTU0lHTkVFJylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBhc3NpZ25lZT8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8YXBwLXBvcG92ZXIgI2RlZmF1bHRBc3NpZ25lZUdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzaWduZWUsICdERUZBVUxUX0FTU0lHTkVFX0dST1VQJylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBncm91cD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyYWRpby1ncm91cC1zZWxlY3RvclwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnQVNTSUdORUUnXCJcbiAgICAgID5cbiAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgIFtuYW1lXT1cIidhc3NpZ25lZSdcIlxuICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5hc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ0FMTCdcIlxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdhc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ0FMTCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEFMTCBTRUxFQ1RFRCBQRVJTT05TIE5FRUQgVE8gQ09NUExFVEUgVEhJU1xuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnSWYgc2VsZWN0ZWQsIHNlcGFyYXRlIHJlc3BvbnNpYmlsaXRpZXMgd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoIHBlcnNvbi4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgW25hbWVdPVwiJ2Fzc2lnbmVlJ1wiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LmFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE/LnZhbHVlID09PSAnQU5ZT05FJ1wiXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJcbiAgICAgICAgICAgIHNldEZvcm1GaWVsZCgnYXNzaWduZWVfY29tcGxldGlvbl9jcml0ZXJpYScsICdBTllPTkUnKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBBTlkgU0VMRUNURUQgUEVSU09OIENBTiBDT01QTEVURSBUSElTXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdJZiBzZWxlY3RlZCwgb25seSBvbmUgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBjcmVhdGVkLidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFJldmlld2VyIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uUkVWSUVXRVJcIlxuICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXG4gICAgICBcIlxuICAgICAgW2FjdGl2ZV09XCJbJ1JFVklFV0VSJywgJ0RFRkFVTFRfUkVWSUVXRVInXT8uaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHM/LmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmXG4gICAgICAgICFbJ1JFVklFV0VSJywgJ0RFRkFVTFRfUkVWSUVXRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVxuICAgICAgXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX1JFVklFV0VSJ1wiXG4gICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5SZXZpZXdlcnNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdSZXZpZXdlcnMgYXJlIHJlcXVpcmVkIHRvIHJldmlldyByZXNwb25zaWJpbGl0aWVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gV2hlcmUgUmV2aWV3ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXZpZXdlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJSZXZpZXdlckhlbHBUZXh0XCJcbiAgICAgICAgICA+JiN4ZWIxNjs8L2lcbiAgICAgICAgPjwvbGFiZWxcbiAgICAgID5cbiAgICAgIDxpbnB1dC13aXRoLXBpbGxcbiAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX1JFVklFV0VSJ1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hvIGlzIHJlc3BvbnNpYmxlIGZvciByZXZpZXdpbmcgdGhlIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgIFwiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdSRVZJRVdFUicpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0sICdSRVZJRVdFUicpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmV2aWV3ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdSRVZJRVdFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXZpZXdlckdyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0sJ1JFVklFV0VSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJyZXZpZXdlci5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdLCdSRVZJRVdFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJldmlld2VyR3JvdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUxpc3QgIT09ICdSRVZJRVdFUidcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnUkVWSUVXRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI3Jldmlld2VyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgcmV2aWV3ZXIgb2YgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUocmV2aWV3ZXIsICdSRVZJRVdFUicpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmV2aWV3ZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNyZXZpZXdlckdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdSRVZJRVdFUl9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdSRVZJRVdFUidcIlxuICAgICAgICBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+REVGQVVMVCBSZXZpZXdlclxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1RoaXMgb3B0aW9uIGxldHMgeW91IHNwZWNpZnkgdGhlIERlZmF1bHQgUmV2aWV3ZXJzIGZvciByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbS4gV2hlcmUgYSB1c2VyIGhhcyBiZWVuIHNwZWNpZmllZCBhcyBhIERlZmF1bHQgUmV2aWV3ZXIsIHRoYXQgdXNlciB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2VsZWN0ZWQgYXMgdGhlIFJldmlld2VyIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiRFJIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnUkVWSUVXRVInXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgcmV2aWV3ZXJzIGZvciB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9SRVZJRVdFUidcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWZhdWx0UmV2aWV3ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdERUZBVUxUX1JFVklFV0VSX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWZhdWx0UmV2aWV3ZXJHcm91cC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZVswXSwnREVGQVVMVF9SRVZJRVdFUicpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZVswXT8ubWVtYmVyX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudCB1c2VyXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiZGVmYXVsdFJldmlld2VyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCAtIDF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXSwnREVGQVVMVF9SRVZJRVdFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2VcIj57e2NvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImRlZmF1bHRSZXZpZXdlckdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0RFRkFVTFRfUkVWSUVXRVInXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI2RlZmF1bHRSZXZpZXdlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHJldmlld2VyIG9mIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlXG4gICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKHJldmlld2VyLCAnREVGQVVMVF9SRVZJRVdFUicpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmV2aWV3ZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNkZWZhdWx0UmV2aWV3ZXJHcm91cCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGdyb3VwIG9mIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlXG4gICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKGdyb3VwLCAnREVGQVVMVF9SRVZJRVdFUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmFkaW8tZ3JvdXAtc2VsZWN0b3JcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlTGlzdCA9PT0gJ1JFVklFV0VSJ1wiXG4gICAgICA+XG4gICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICBbbmFtZV09XCIncmV2aWV3ZXInXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ1NFUVVFTlRJQUwnXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIlxuICAgICAgICAgICAgc2V0Rm9ybUZpZWxkKCdyZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ1NFUVVFTlRJQUwnKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDBcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgU0VRVUVOVElBTFxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnVGhlIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2VudCBmb3IgcmV2aWV3IG9uZSBhdCBhIHRpbWUgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYnkgeW91LidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICBbbmFtZV09XCIncmV2aWV3ZXInXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ0FOWU9ORScgfHxcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAwXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIlxuICAgICAgICAgICAgc2V0Rm9ybUZpZWxkKCdyZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ0FOWU9ORScpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIEFOWSBSRVZJRVdFUiBDQU4gTUFSSyBUSElTIEFTIFJFVklFV0VEXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdUaGUgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzZW50IGZvciByZXZpZXcgdG8gYWxsIHJldmlld2VycyBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhbnlvbmUgb2YgdGhlIHJldmlld2VyIHJldmlld3MgdGhlIHJlc3BvbnNpYmlsaXR5LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgcmV2aWV3ZWQuJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgPlxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gT3ZlcnNlZXIgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5PVkVSU0VFUlwiXG4gICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgIFwiXG4gICAgICBbYWN0aXZlXT1cImFjdGl2ZUxpc3QgPT09ICdPVkVSU0VFUidcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHM/LmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmXG4gICAgICAgICFbJ09WRVJTRUVSJywgJ0RFRkFVTFRfT1ZFUlNFRVInLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXS5pbmNsdWRlcyhcbiAgICAgICAgICBhY3RpdmVMaXN0XG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICAgICAgWydERUZBVUxUX09WRVJTRUVSJywgJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJ10uaW5jbHVkZXMoYWN0aXZlTGlzdClcbiAgICAgICAgXCJcbiAgICAgICAgPk92ZXJzaWdodHNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdPdmVyc2lnaHRzIHJlY2VpdmUgdXBkYXRlcyB3aGVuIGEgcmVzcG9uc2liaWxpdHkgaXMgY29tcGxldGVkLCBjb21wbGV0ZWQgd2l0aCBkZWxheSBvciBub3QgY29tcGxldGVkLiBXaGVyZSBPdmVyc2lnaHRzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBPdmVyc2lnaHRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwib3ZlcnNlZXJIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICBbJ0RFRkFVTFRfT1ZFUlNFRVInLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVxuICAgICAgICBcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1dobyBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ09WRVJTRUVSJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZVswXSwgJ09WRVJTRUVSJylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnMucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdPVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2Vlckdyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWVbMF0sJ09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlcnMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggXCIgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiPiY8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sJ09WRVJTRUVSX0dST1VQJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX08L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aD4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2Vlckdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLTF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ09WRVJTRUVSJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdPVkVSU0VFUicpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgb3ZlcnNlZXIgb2YgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnT1ZFUlNFRVInKVwiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgb3ZlcnNlZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNvdmVyc2Vlckdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdPVkVSU0VFUl9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bmctY29udGFpbmVyIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnT1ZFUlNFRVInXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlsnT1ZFUlNFRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICAgICAgPkRFRkFVTFQgT3ZlcnNpZ2h0XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBEZWZhdWx0IE92ZXJzaWdodCBmb3IgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0uIFdoZXJlIGEgdXNlciBoYXMgYmVlbiBzcGVjaWZpZWQgYXMgYSBEZWZhdWx0IE92ZXJzaWdodCwgdGhhdCB1c2VyIHdpbGwgYXV0b21hdGljYWxseSBiZSBzZWxlY3RlZCBhcyB0aGUgT3ZlcnNpZ2h0IHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICBpZD1cIkRPSGVscFRleHRcIlxuICAgICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgICAgPjwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgWydPVkVSU0VFUicsICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUiddLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2VsZWN0RGl2XT1cInRydWVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgb3ZlcnNlZXJzIGZvciB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgICBcIlxuICAgICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX09WRVJTRUVSJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9PVkVSU0VFUidcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9PVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdXG4gICAgICAgICAgICAgICAgICAgICAgPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF1cbiAgICAgICAgICAgICAgICAgICAgICA/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3ZlcnNlZXJEZWZhdWx0R3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdLCdERUZBVUxUX09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWV9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aFwiIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sJ0RFRkFVTFRfT1ZFUlNFRVJfR1JPVVAnKVwiID4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4xXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm92ZXJzZWVyRGVmYXVsdEdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnREVGQVVMVF9PVkVSU0VFUidcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX09WRVJTRUVSJylcIlxuICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzRGVmYXVsdCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBvdmVyc2VlciBvZiBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnREVGQVVMVF9PVkVSU0VFUicpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBvdmVyc2Vlcj8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJEZWZhdWx0R3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShncm91cCwgJ0RFRkFVTFRfT1ZFUlNFRVJfR1JPVVAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj4gPC9sYWJlbD5cbiAgICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICAgIGNsYXNzPVwidngtbXQtMlwiXG4gICAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgICBbbGluZV09XCIzXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiWydPVkVSU0VFUicsICdERUZBVUxUX09WRVJTRUVSJ10uaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgb3ZlcnNlZXJzIGZvciByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIG5vdCBjb21wbGV0ZWQgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoc2VsZWN0KT1cImFjdGl2YXRlTGlzdCgnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF1cbiAgICAgICAgICAgICAgICAgICAgICA/Lm1lbWJlcl9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlWzBdXG4gICAgICAgICAgICAgICAgICAgICAgPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0RmFpbC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICAgID8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICAgID8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlckRlZmF1bHRGYWlsR3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgID8ubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAre3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF0sJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnQgdXNlclwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm92ZXJzZWVyc0RlZmF1bHRGYWlsLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggLTF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCI+Jjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdLCdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlckRlZmF1bHRGYWlsR3JvdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJylcIlxuICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzRGVmYXVsdEZhaWwgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgb3ZlcnNlZXIgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJcbiAgICAgICAgICAgICAgICAgICAgPy52YWx1ZSB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgb3ZlcnNlZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICA8YXBwLXBvcG92ZXIgI292ZXJzZWVyRGVmYXVsdEZhaWxHcm91cCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBncm91cCBvZiBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cFxuICAgICAgICAgICAgICAgICAgICA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gQXNzZXNzbWVudCAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXG4gICAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb24/LkFTU0VTU01FTlRcIlxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fYXNzZXNzbWVudHM/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVMaXN0ID09PSAnQVNTRVNTTUVOVCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiYgYWN0aXZlTGlzdCAhPT0gJ0FTU0VTU01FTlQnXG4gICAgICBcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+QVNTRVNTTUVOVFNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdBc3Nlc3NtZW50cyBhcmUgYSBkaWdpdGFsIGZvcm0gdGhhdCBhcmUgY3JlYXRlZCBpbiDigJxBc3Nlc3NtZW504oCdIHdpdGhpbiB0aGUgQ29tcGxpYW5jZSBNb2R1bGUuIFdoZXJlIEFzc2Vzc21lbnRzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBBc3Nlc3NtZW50cyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4nXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkFzc2Vzc21lbnRIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hpY2ggYXNzZXNzbWVudHMgY2FuIGJlIGxpbmtlZCB0byB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0VTU01FTlQnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2Vzc21lbnRzPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcbiAgICAgICAgICAgICAgICB8IGFzc2Vzc21lbnRSZXNvbHZlciBhcyBhc3Nlc3NtZW50c1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudHNbMF0sICdBU1NFU1NNRU5UJylcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgYXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwcm9ncmFtX2Fzc2Vzc21lbnRzLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50cz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBhc3Nlc3NtZW50cz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWUgfCBhc3Nlc3NtZW50UmVzb2x2ZXIpIGFzIGFzc2Vzc21lbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudHNbMF0sJ0FTU0VTU01FTlQnKVwiPiYjeGU5MGQ7PC9pPnt7YXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZX19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFzc2Vzc21lbnRzPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInByb2dyYW1fYXNzZXNzbWVudHMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3thc3Nlc3NtZW50cz8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0FTU0VTU01FTlQnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0VTU01FTlQnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1fYXNzZXNzbWVudHMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgYXNzZXNzbWVudCBvZiBjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBhc3Nlc3NtZW50UmVzb2x2ZXJcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudCwgJ0FTU0VTU01FTlQnKVwiIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRm9ybWF0ICYgRXZpZGVuY2UgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5GT1JNQVRFX0VWSURFTkNFXCJcbiAgICAgIFtjaGVja2VkXT1cIlt0cnVlLCBmYWxzZV0uaW5jbHVkZXMoY29udHJvbHM/LmV2aWRlbmNlX3JlcXVpcmVkPy52YWx1ZSlcIlxuICAgICAgW2FjdGl2ZV09XCJmYWxzZVwiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5FdmlkZW5jZVxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ0lmIHNlbGVjdGVkLCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIGEgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSByZXF1aXJlZCBmb3IgYWxsIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uIEFuIEFzc2lnbm9yLCBiZWluZyB0aGUgcGVyc29uIHdobyBjcmVhdGVzIHRoZSByZXNwb25zaWJpbGl0eSwgY2FuIG92ZXJyaWRlIHRoaXMgb3B0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eS4nXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkV2aWRlbmNlSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICA+RG8gYWxsIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgcHJvZ3JhbSByZXF1aXJlIGV2aWRlbmNlPzwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cCBwcm9ncmFtXCI+XG4gICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgW25hbWVdPVwiJ2V2aWRlbmNlX3JlcXVpcmVkJ1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJjb250cm9scz8uZXZpZGVuY2VfcmVxdWlyZWQ/LnZhbHVlXCJcbiAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdldmlkZW5jZV9yZXF1aXJlZCcsIHRydWUpXCJcbiAgICAgICAgICAgID5ZRVM8L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBbbmFtZV09XCInZXZpZGVuY2VfcmVxdWlyZWQnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIiFjb250cm9scz8uZXZpZGVuY2VfcmVxdWlyZWQ/LnZhbHVlXCJcbiAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdldmlkZW5jZV9yZXF1aXJlZCcsIGZhbHNlKVwiXG4gICAgICAgICAgICA+Tk88L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbXItMlwiPkFsbG93IGFueSBmaWxlIHRvIGJlIG1hcmtlZCBhc1xuICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgZXZpZGVuY2U8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImFsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0Rm9ybUZpZWxkKCdhbGxvd19hbnlfZmlsZV9rZXlfZXZpZGVuY2UnLCRldmVudD8udGFyZ2V0Py5jaGVja2VkKVwiPjwvc3dpdGNoPlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gQ3VzdG9tIEZpZWxkIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uQ1VTVE9NX0ZJRUxEU1wiXG4gICAgICBbY2hlY2tlZF09XCJjb250cm9scz8uY3VzdG9tX2ZpZWxkcz8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jdXN0b20tZmllbGRzLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5DVVNUT00gRklFTERcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiQ0ZIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8Y3VzdG9tLWZpZWxkIGZvcm1Db250cm9sTmFtZT1cImN1c3RvbV9maWVsZHNcIj48L2N1c3RvbS1maWVsZD5cbiAgICA8L2Zvcm0tZmllbGQ+XG4gIDwvZm9ybT5cbjwvZGl2PlxuXG48IS0tIGxpc3Qgb2Ygcm9sZXMgLS0+XG48cm9sZS1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ1JPTEUnXCJcbiAgW3NlbGVjdGVkXT1cImNvbnRyb2xzPy5wcm9ncmFtX3JvbGVzPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbbG9hZGluZ109XCJsaXN0TG9hZGluZ1N0YXRlLlJPTEVTXCJcbiAgW2xpc3RdPVwibGlzdHM/LlJPTEVTPy5kYXRhID8/IFtdXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdST0xFJylcIlxuICAoY2FuY2VsKT1cImZpZWxkRGVzZWxlY3RvcignUk9MRScpXCJcbiAgW2ZlYXR1cmVmbGFncm9sZV09XCJmZWF0dXJlZmxhZ3JvbGVcIlxuICBbZmVhdHVyZWZsYWdHcm91cF09XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtmZl9yY19saXN0aW5nXT1cImZmX3JjX2xpc3RpbmdcIlxuPjwvcm9sZS1saXN0PlxuXG48IS0tIGxpc3Qgb2YgZnJhbWV3b3JrcyAtLT5cbjwhLS0gPGFwcC1kZWZpbmUtZnJhbWV3b3JrLWxpc3RpbmcgKm5nSWY9XCJhY3RpdmVMaXN0ID09PSAnRlJBTUVXT1JLJ1wiIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdGUkFNRVdPUksnKVwiIChuZXh0KT1cImxpc3RBY3Rpb24oJGV2ZW50LCdGUkFNRVdPUksnKVwiIFttb2RlXT1cIm1vZGVcIiBbc2VsZWN0ZWRGcmFtZXdvcmtdPVwiY29udHJvbHM/LmZyYW1ld29yaz8udmFsdWVcIj48L2FwcC1kZWZpbmUtZnJhbWV3b3JrLWxpc3Rpbmc+IC0tPlxuPCEtLSBsaXN0IG9mIHJlc3BvbnNpYmlsaXR5IGNlbnRlciAtLT5cbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ1JDJ1wiXG4gIFtyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XT1cImxpc3RzPy5SQyA/PyBbXVwiXG4gIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXG4gIFtyY0lkS2V5XT1cIidyY19pZCdcIlxuICAoY2xvc2VSY0xpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdSQycpXCJcbiAgKHNhdmVTZWxlY3RlZExpc3QpPVwibGlzdEFjdGlvbigkZXZlbnQsICdSQycpXCJcbiAgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzXT1cImNvbnRyb2xzPy5yYz8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbj5cbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cbjwhLS0gcmVuZGVyIHVzZXJsaXN0IHdpdGggZ3JvdXAgLS0+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ09XTkVSJ1wiXG4gIFtncm91cEVuYWJsZWRdPVwidHJ1ZVwiXG4gIFtzaW5nbGVTZWxlY3RdPVwiZmFsc2VcIlxuICBbbG9hZGluZ109XCJsaXN0TG9hZGluZ1N0YXRlLlVTRVJTXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5PV05FUlM/LmRhdGEgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIChmZXRjaFVzZXJEYXRhKT1cImZldGNoVXNlcnNBc3NvY2lhdGVkV2l0aFJvbGVzKGZhbHNlLCAkZXZlbnQpXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uT1dORVJTXCJcbiAgW2dyb3VwTGlzdEluZm9dPVwibGlzdHM/Lk9XTkVSU19HUk9VUFNcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5PV05FUlNfR1JPVVBTPy5kYXRhID8/IFtdXCJcbiAgW3NlbGVjdGVkR3JvdXBzXT1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdPV05FUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ09XTkVSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlT3duZXJcIlxuICBbZmVhdHVyZWZsYWddPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuPjwvdXNlci1ncm91cC1saXN0PlxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdBUFBST1ZFUidcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZhbHNlXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJ0cnVlXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5BUFBST1ZFUlM/LmRhdGEgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9hcHByb3Zlcj8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uQVBQUk9WRVJTXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdBUFBST1ZFUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0FQUFJPVkVSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlQXBwcm92ZXJcIlxuPlxuPC91c2VyLWdyb3VwLWxpc3Q+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgW2dyb3VwRW5hYmxlZF09XCJ0cnVlXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbdXNlcmxpc3RdPVwibGlzdHM/LkFTU0lHTkVFUyA/PyBbXVwiXG4gIFtzZWxlY3RlZFVzZXJzXT1cImNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5BU1NJR05FRVNfR1JPVVAgPz8gW11cIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8uY29sbGFib3JhdG9yc19ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2Fzc2lnbm9ySWRdPVwiYXNzaWdub3JJZFwiXG4gIFt1c2VyTGlzdEluZm9dPVwibGlzdHM/LkFTU0lHTkVFU1wiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnQ09MTEFCT1JBVE9SUycpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0NPTExBQk9SQVRPUlMnKVwiXG4gIFtwYW5lbFRpdGxlXT1cInBhbmVsVGl0bGVBc3NpZ25lZVwiXG4gIFtkZWZhdWx0U2VsZWN0ZWRVc2Vyc109XCJcbiAgICBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWUgfCByZWZEaXNjb25uZWN0XG4gIFwiXG4gIFt1c2VyVHlwZV09XCInYXNzaWduZWVzJ1wiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICBbZ3JvdXBFbmFibGVkXT1cInRydWVcIlxuICBbc2luZ2xlU2VsZWN0XT1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwibGlzdExvYWRpbmdTdGF0ZS5VU0VSU1wiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9BU1NJR05FRVMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA/PyBbXVwiXG4gIFtGcm9tUHJvZ3JhbV09XCJ0cnVlXCJcbiAgW3NlbGVjdGVkR3JvdXBzXT1cIlxuICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFxuICBcIlxuICBbZGlzYWJsZWRJZHNdPVwiZGlzYWJsZWRBc3NpZ25lZUlkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ0Fzc2lnbmVlJ1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW292ZXJzZWVySWRzXT1cInNlbGVjdGVkT3ZlcnNlZXJJZHNcIlxuICBbYXNzaWdub3JJZF09XCJhc3NpZ25vcklkXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9BU1NJR05FRVwiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnREVGQVVMVF9BU1NJR05FRScpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0RFRkFVTFRfQVNTSUdORUUnKVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cblxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdSRVZJRVdFUicgJiYgKCFmZWF0dXJlZmxhZ0dyb3VwcyB8fCBmZWF0dXJlZmxhZ0dyb3VwcylcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uUkVWSUVXRVJTID8/IFtdXCJcbiAgW3NlbGVjdGVkVXNlcnNdPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIFtncm91cExpc3RdPVwibGlzdHM/LlJFVklFV0VSU19HUk9VUCA/PyBbXVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVSZXZpZXdlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ1Jldmlld2VyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtvdmVyc2Vlcklkc109XCJzZWxlY3RlZE92ZXJzZWVySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uUkVWSUVXRVJTXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdSRVZJRVdFUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ1JFVklFV0VSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlUmV2aWV3ZXJcIlxuICBbZGVmYXVsdFNlbGVjdGVkVXNlcnNdPVwiXG4gICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWUgfCByZWZEaXNjb25uZWN0XG4gIFwiXG4gIFt1c2VyVHlwZV09XCIncmV2aWV3ZXJzJ1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJcbiAgICBhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9SRVZJRVdFUicgJiZcbiAgICAoIWZlYXR1cmVmbGFnR3JvdXBzIHx8IGZlYXR1cmVmbGFnR3JvdXBzKVxuICBcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9SRVZJRVdFUlMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUCA/PyBbXVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVSZXZpZXdlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ1Jldmlld2VyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtvdmVyc2Vlcklkc109XCJzZWxlY3RlZE92ZXJzZWVySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9SRVZJRVdFUlNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX1JFVklFV0VSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlRGVmYXVsdFJldmlld2VyXCJcbj5cbjwvdXNlci1ncm91cC1saXN0PlxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdPVkVSU0VFUicgJiYgKCFmZWF0dXJlZmxhZ0dyb3VwcyB8fCBmZWF0dXJlZmxhZ0dyb3VwcylcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uT1ZFUlNFRVJTID8/IFtdXCJcbiAgW3NlbGVjdGVkVXNlcnNdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIFtncm91cExpc3RdPVwibGlzdHM/Lk9WRVJTRUVSU19HUk9VUCA/PyBbXVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2ZlYXR1cmVmbGFnXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVPdmVyc2Vlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ092ZXJzZWVyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uT1ZFUlNFRVNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ09WRVJTRUVSJylcIlxuICAoY2FuY2VsKT1cImZpZWxkRGVzZWxlY3RvcignT1ZFUlNFRVInKVwiXG4gIFtkZWZhdWx0U2VsZWN0ZWRVc2Vyc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVxuICAgICAgfCByZWZEaXNjb25uZWN0XG4gICAgICB8IGFycmF5Q29uY2F0IDogY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlXG4gIFwiXG4gIFt1c2VyVHlwZV09XCInb3ZlcnNlZXJzJ1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJcbiAgICBhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9PVkVSU0VFUicgJiZcbiAgICAoIWZlYXR1cmVmbGFnR3JvdXBzIHx8IGZlYXR1cmVmbGFnR3JvdXBzKVxuICBcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA/PyBbXVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2ZlYXR1cmVmbGFnXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVPdmVyc2Vlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ092ZXJzZWVyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ0RFRkFVTFRfT1ZFUlNFRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX09WRVJTRUVSJylcIlxuPlxuPC91c2VyLWdyb3VwLWxpc3Q+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiXG4gICAgYWN0aXZlTGlzdCA9PT0gJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJyAmJlxuICAgICghZmVhdHVyZWZsYWdHcm91cHMgfHwgZmVhdHVyZWZsYWdHcm91cHMpXG4gIFwiXG4gIFtncm91cEVuYWJsZWRdPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuICBbc2luZ2xlU2VsZWN0XT1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwibGlzdExvYWRpbmdTdGF0ZS5VU0VSU1wiXG4gIFtGcm9tUHJvZ3JhbV09XCJ0cnVlXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSUyA/PyBbXVwiXG4gIFtzZWxlY3RlZFVzZXJzXT1cIlxuICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2dyb3VwTGlzdF09XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlNfR1JPVVAgPz8gW11cIlxuICBbc2VsZWN0ZWRHcm91cHNdPVwiXG4gICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFxuICBcIlxuICBbZmVhdHVyZWZsYWddPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuICBbZGlzYWJsZWRJZHNdPVwiZGlzYWJsZU92ZXJzZWVySWRzXCJcbiAgW2Zyb21SZXNwb25zaWJpbGl0eV09XCInT3ZlcnNlZXInXCJcbiAgW2Fzc2lnbm9ySWRdPVwiYXNzaWdub3JJZFwiXG4gIFthc3NpZ25lZUlkc109XCJzZWxlY3RlZEFzc2lnbmVlSWRzXCJcbiAgW3Jldmlld2VySWRzXT1cInNlbGVjdGVkUmV2aWV3ZXJJZHNcIlxuICBbdXNlckxpc3RJbmZvXT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSU1wiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUicpXCJcbj5cbjwvdXNlci1ncm91cC1saXN0PlxuPGFzc2Vzc21lbnQtcGlja2VyXG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ0FTU0VTU01FTlQnXCJcbiAgW3NlbGVjdGVkQXNzZXNzbWVudF09XCJjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcIlxuICAoY2FuY2VsQXNzZXNzbWVudCk9XCJmaWVsZERlc2VsZWN0b3IoJ0FTU0VTU01FTlQnKVwiXG4gIChvbkFzc2Vzc21lbnRTZWxlY3QpPVwibGlzdEFjdGlvbigkZXZlbnQsICdBU1NFU1NNRU5UJylcIlxuPjwvYXNzZXNzbWVudC1waWNrZXI+XG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcbiAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXG4+XG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cblxuPCEtLSBGcmFtZXdvcmsgc2VsZWN0b3IgIC0tPlxuPGFwcC1mcmFtZXdvcmstbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdGUkFNRVdPUksnXCJcbiAgW3dvcmtmbG93UGFnZV09XCJbJ0ZSQU1FV09SSyddXCJcbiAgKGFzc2lnbkNvbnRyb2wpPVwibGlzdEFjdGlvbigkZXZlbnQsICdGUkFNRVdPUksnKVwiXG4gIChjbG9zZUZyYW1ld29yayk9XCJmaWVsZERlc2VsZWN0b3IoJ0ZSQU1FV09SSycpXCJcbiAgW3ByZXZpb3VzU2VsZWN0ZWRWYWx1ZXNdPVwieyBmcmFtZXdvcms6IGNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWUgfVwiXG4gIChlbnRydXN0RnJhbWV3b3JrKT1cImVudHJ1c3RGcmFtZXdvcmsoJGV2ZW50KVwiXG4gIFtoZWFkZXJUZXh0XT1cIidTZWxlY3QgYSBmcmFtZXdvcmsnXCJcbj48L2FwcC1mcmFtZXdvcmstbGlzdD4iXX0=
|
|
1392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1wcm9ncmFtL3dvcmtmbG93LXByb2dyYW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPeEMsTUFBTSxPQUFPLHdCQUF3QjtJQXlEbkMsWUFDVSxFQUFzQixFQUN0QixjQUErQixFQUMvQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixTQUE0QjtRQUo1QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUI7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUE3RHRDLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFdEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JB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VUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNiLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRywyQkFBMkI7c0JBQXBDLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyw4QkFBOEI7c0JBQXZDLE1BQU07Z0JBRUUsa0JBQWtCO3NCQUExQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2dyYW1zU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgVWlLaXRTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvdWkta2l0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ09OU1RBTlRTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctcHJvZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctcHJvZ3JhbS5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0YW50cyA9IENPTlNUQU5UUztcbiAgc2hvd0NvbmZpcm1hdGlvbjogYW55O1xuICBpc0FzY2VudEFsbG93ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmZfcmNfbGlzdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdmb3JtJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGZvcm0hOiBFbGVtZW50UmVmO1xuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcG9wdWxhdGVPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvd0NvbmZpcm1hdGlvbkFsZXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSByZWZyZXNoRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVtb3ZpbmdSb2xlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRpc2FibGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgc2Nyb2xsVG9Cb3R0b20hOiBib29sZWFuO1xuICBASW5wdXQoKSBjYW5GcmFtZXdvcmtDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gQWxsIElucHV0IGZpZWxkc1xuICBASW5wdXQoKSBtb2RlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHJvZ3JhbUlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHJvZ3JhbVR5cGU6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGFsbG93ZWRGZWF0dXJlITogYW55O1xuICBASW5wdXQoKSBhZGRUb1Byb2dyYW1EZXRhaWxzOiBhbnk7XG4gIEBJbnB1dCgpIG9yZ0RldGFpbHM6IGFueTtcbiAgQElucHV0KCkgcHJvZ3JhbURldGFpbHM6IGFueTtcblxuICBwYW5lbFRpdGxlRGVmYXVsdFJldmlld2VyID0gJ1NlbGVjdCBEZWZhdWx0IFJldmlld2VyKHMpJztcbiAgcGFuZWxUaXRsZU93bmVyID0gJ1NlbGVjdCBPd25lcihzKSc7XG4gIHBhbmVsVGl0bGVSZXZpZXdlciA9ICdTZWxlY3QgUmV2aWV3ZXIocyknO1xuICBwYW5lbFRpdGxlQXNzaWduZWUgPSAnU2VsZWN0IENvbGxhYm9yYXRvcihzKSc7XG4gIHBhbmVsVGl0bGVBcHByb3ZlciA9ICdTZWxlY3QgIEFwcHJvdmVyJztcbiAgaXNBcHByb3ZlckRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUHJvZ3JhbVNjb3BlOiBib29sZWFuID0gZmFsc2U7XG4gIHRvb2xUaXBEYXRhOiBhbnkgPSB7XG4gICAgb3duZXI6XG4gICAgICAnT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlRoZSA8c3Ryb25nPktleSBBZG1pbjwvc3Ryb25nPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuJyxcbiAgICBwcm9ncmFtU2NvcGU6IGBBIFByb2dyYW0gU2NvcGUgY2FuIGJlIHVzZWQgYXMgZm9sbG93czpcbiAgPGxpPlRvIHNwZWNpZnkgdGhlIGR1cmF0aW9uIG9mIHRoZSBQcm9ncmFtLjwvbGk+XG4gIDxsaT5UbyBwcmUtc2VsZWN0IGNlcnRhaW4gb3B0aW9ucyB0aGF0IGFyZSBhdmFpbGFibGUgd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LCB0aGVyZWJ5IGRlY3JlYXNpbmcgdGhlIHRpbWUgcmVxdWlyZWQgdG8gY3JlYXRlIGEgcmVzcG9uc2liaWxpdHkuPC9saT5cbiAgPGxpPlRvIGxpbWl0IHRoZSBvcHRpb25zIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSwgdGhlcmVieSBtYWtpbmcgaXQgZWFzaWVyIHRvIGNyZWF0ZSBhIHJlc3BvbnNpYmlsaXR5IGFuZCByZWR1Y2luZyB0aGUgbGlrZWxpaG9vZCBvZiBhbiBpbmNvcnJlY3Qgb3B0aW9uIGJlaW5nIHNlbGVjdGVkLjwvbGk+XG4gICAgYCxcbiAgfTtcbiAgYnVzaW5lc3NDeWNsZTogYW55O1xuICBmZWF0dXJlZmxhZ3JvbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmVhdHVyZWZsYWdHcm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZWRBc3NpZ25lZUlkczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRSZXZpZXdlcklkczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRBc3NpZ25lZUlkczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRPdmVyc2VlcklkczogYW55W10gPSBbXTtcbiAgYXNzaWdub3JJZDogbnVtYmVyW10gPSBbXTtcbiAgZGlzYWJsZVJldmlld2VySWRzOiBhbnlbXSA9IFtdO1xuICBkaXNhYmxlT3ZlcnNlZXJJZHM6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcHJvZ3JhbVNlcnZpY2U6IFByb2dyYW1zU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLmJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKFxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzQ3ljbGUnKSA/PyAne30nXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIGNvbnN0IGlzV2hpdGVzcGFjZSA9IChjb250cm9sLnZhbHVlIHx8ICcnKS50cmltKCkubGVuZ3RoID09PSAwO1xuICAgIGNvbnN0IGlzVmFsaWQgPSAhaXNXaGl0ZXNwYWNlO1xuICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHsgd2hpdGVzcGFjZTogdHJ1ZSB9O1xuICB9XG4gIHB1YmxpYyBibGFua0FycmF5VmFsaWRhdG9yKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIGNvbnN0IGlzQmxhbmsgPSBjb250cm9sLnZhbHVlPy5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUpPy5sZW5ndGggPT09IDA7XG4gICAgY29uc3QgaXNWYWxpZCA9ICFpc0JsYW5rO1xuICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHsgYmxhbms6IHRydWUgfTtcbiAgfVxuICBsb2FkZXIgPSBmYWxzZTtcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xuICBhY3Rpb25CdXR0b25zID0gW1xuICAgIHsgYnV0dG9uVGV4dDogJ0FkZCBNb3JlIFByb2dyYW1zJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBQcm9ncmFtJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld1Byb2dyYW0nIH0sXG4gIF07XG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhYDtcbiAgY3JlYXRlZFByb2dyYW1JZCA9ICcnO1xuICBpc09iamVjdGl2ZVZhbGlkOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNOYW1lRXhpc3RzOiBib29sZWFuID0gZmFsc2U7XG4gIC8vZm9ybSBib2R5IGZvciBwcm9ncmFtIG1ldGEgZGF0YVxuICBwcm9ncmFtRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgIHByb2dyYW1fdHlwZTogW1xuICAgICAgdGhpcy5wcm9ncmFtVHlwZSxcbiAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMyldLFxuICAgIF0sXG4gICAgcHJvZ3JhbV9uYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLm5vV2hpdGVzcGFjZVZhbGlkYXRvcl1dLFxuICAgIHByb2dyYW1fZGVzY3JpcHRpb246IFsnJ10sXG4gICAgcHJvZ3JhbV9kZXNjcmlwdGlvbl9hdHRhY2htZW50czogW1tdXSxcbiAgICBwcm9ncmFtX29iamVjdGl2ZTogWycnXSxcbiAgICAvLyBwcm9ncmFtX29iamVjdGl2ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5ub1doaXRlc3BhY2VWYWxpZGF0b3JdXSxcbiAgICBwcm9ncmFtX29iamVjdGl2ZV9hdHRhY2htZW50czogW1tdXSxcbiAgICBhbGxfdXNlcl9pbl9yb2xlOiBbZmFsc2VdLFxuICAgIHByb2dyYW1fb3duZXJzOiBbW11dLFxuICAgIHByb2dyYW1fb3duZXJzX2dyb3VwOiBbW11dLFxuICAgIHByb2dyYW1fYXBwcm92ZXI6IFtbXV0sXG4gICAgZnJhbWV3b3JrOiBbXSxcbiAgICByYzogW1tdXSxcbiAgICBwcm9ncmFtX2Fzc2lnbmVlOiBbW11dLFxuICAgIHByb2dyYW1fYXNzaWduZWVfZ3JvdXA6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlOiBbW11dLFxuICAgIHByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cDogW1tdXSxcbiAgICBhc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhOiBbJ0FMTCddLFxuICAgIHByb2dyYW1fcmV2aWV3ZXI6IFtbXV0sXG4gICAgcHJvZ3JhbV9yZXZpZXdlcl9ncm91cDogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwOiBbW11dLFxuICAgIHJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWE6IFsnU0VRVUVOVElBTCddLFxuICAgIHByb2dyYW1fb3ZlcnNlZXI6IFtbXV0sXG4gICAgcHJvZ3JhbV9vdmVyc2Vlcl9ncm91cDogW1tdXSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwOiBbW11dLFxuICAgIHByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI6IFtbXV0sXG4gICAgcHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cDogW1tdXSxcbiAgICBwcm9ncmFtX2Fzc2Vzc21lbnRzOiBbW11dLFxuICAgIGV2aWRlbmNlX3JlcXVpcmVkOiBbZmFsc2VdLFxuICAgIGFsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZTogW2ZhbHNlXSxcbiAgICBjdXN0b21fZmllbGRzOiBbW11dLFxuICAgIHByb2dyYW1fc3RhdGU6IDAsXG4gICAgY29sbGFib3JhdG9yczogW1tdXSxcbiAgICBjb2xsYWJvcmF0b3JzX2dyb3VwOiBbW11dLFxuICB9KTtcblxuICAvL2V4Y2VwdGlvbmFsIGhhbmRsaW5nIG9mIGN1c3RvbSBmaWVsZHNcblxuICBzaG93QWRkQ3VzdG9tRmllbGQgPSB0cnVlO1xuICAvL1Byb2dyYW0gb2JqZWN0aXZlIGFuZCBkZXNjcmlwaW9uIGFyZSBleHBsZWN0bHkgZGVjbGFyZWQgYXMgdGhleSBhcmUgdXNpbmcgbWFyeCBlZGl0b3Igd2hpY2ggZG9lcyBub3Qgc3VwcG9ydHMgUmVhY3RpdmUgZm9ybXMgYmluZGluZ1xuICBlZGl0b3JEYXRhID0ge1xuICAgIHByb2dyYW1PYmplY3RpdmU6ICcnLFxuICAgIHByb2dyYW1EZXNjcmlwdGlvbjogJycsXG4gIH07XG5cbiAgc2VsZWN0ZWRBc3Nlc3NtZW50ITogYW55O1xuXG4gIGN1cnJlbnRVc2VyKCkge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuSW5mbygpO1xuICAgIHJldHVybiB7XG4gICAgICBtZW1iZXJfZW1haWw6IHVzZXI/LmVtYWlsLFxuICAgICAgbWVtYmVyX2lkOiB1c2VyPy5pZCxcbiAgICAgIG1lbWJlcl9uYW1lOiB1c2VyPy5uYW1lLFxuICAgICAgdXNlcl9yb2xlOiAnTE9HR0VEX0lOJyxcbiAgICAgIF9pZDogJycsXG4gICAgfTtcbiAgfVxuICAvL1NldHMgdGhlIHZhbHVlIG9mIGEgZm9ybSBjb250cm9sXG4gIHNldEZvcm1GaWVsZChjb250cm9sTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55LCBpc0Zyb21Gb3JtPzogYm9vbGVhbikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHtjb250cm9sTmFtZSwgdmFsdWV9KTtcbiAgICBsZXQgcGF0Y2g6IGFueSA9IHt9O1xuICAgIHBhdGNoW2NvbnRyb2xOYW1lXSA9IHZhbHVlO1xuICAgIHRoaXMucHJvZ3JhbUZvcm0ucGF0Y2hWYWx1ZShwYXRjaCk7XG4gICAgdGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAoXG4gICAgICBpc0Zyb21Gb3JtICYmXG4gICAgICBjb250cm9sTmFtZSA9PT0gJ3Byb2dyYW1fb2JqZWN0aXZlJyAmJlxuICAgICAgIXZhbHVlLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpLnRyaW0oKVxuICAgIClcbiAgICAgIHRoaXMuaXNPYmplY3RpdmVWYWxpZCA9IGZhbHNlO1xuICAgIGVsc2UgdGhpcy5pc09iamVjdGl2ZVZhbGlkID0gdHJ1ZTtcbiAgfVxuXG4gIC8vUmV0dXJucyB3ZWF0aGVyIHRoZSBmb3JtIGlzIHZhbGlkIG9yIG5vdFxuICBnZXQgZm9ybVZhbGlkKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucHJvZ3JhbUZvcm0udmFsaWQgJiZcbiAgICAgIHRoaXMuZWRpdG9yRGF0YT8ucHJvZ3JhbU9iamVjdGl2ZT8ucmVwbGFjZSgvJm5ic3A7L2csICcgJyk/LnRyaW0oKT8ubGVuZ3RoXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnRyb2xzOiBhbnkgPSB7XG4gICAgcHJvZ3JhbV9uYW1lOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9uYW1lJyksXG4gICAgcHJvZ3JhbV90eXBlOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV90eXBlJyksXG4gICAgcHJvZ3JhbV9vYmplY3RpdmU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX29iamVjdGl2ZScpLFxuICAgIHByb2dyYW1fcm9sZXM6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX3JvbGVzJyksXG4gICAgcHJvZ3JhbV9vd25lcnM6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX293bmVycycpLFxuICAgIHByb2dyYW1fb3duZXJzX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9vd25lcnNfZ3JvdXAnKSxcbiAgICBhbGxfdXNlcl9pbl9yb2xlOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnYWxsX3VzZXJfaW5fcm9sZScpLFxuICAgIHByb2dyYW1fYXBwcm92ZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2FwcHJvdmVyJyksXG4gICAgZGVzY3JpcHRpb25fYXR0YWNobWVudDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncHJvZ3JhbV9kZXNjcmlwdGlvbl9hdHRhY2htZW50cydcbiAgICApLFxuICAgIG9iamVjdGl2ZV9hdHRhY2htZW50czogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncHJvZ3JhbV9vYmplY3RpdmVfYXR0YWNobWVudHMnXG4gICAgKSxcbiAgICBwZXJmb3JtYW5jZV9jYWxjdWxhdGlvbjogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3BlcmZvcm1hbmNlX2NhbGN1bGF0aW9uJyksXG4gICAgcmVjdXJyaW5nX2ZyZXF1ZW5jeTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3JlY3VycmluZ19mcmVxdWVuY3knKSxcbiAgICBsb2NrX3Njb3BlX2NoYW5nZTogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ2xvY2tfc2NvcGVfY2hhbmdlJyksXG4gICAgcmM6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdyYycpLFxuICAgIGV2aWRlbmNlX3JlcXVpcmVkOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnZXZpZGVuY2VfcmVxdWlyZWQnKSxcbiAgICBmcmFtZXdvcms6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdmcmFtZXdvcmsnKSxcbiAgICBhbGxvd19hbnlfZmlsZV9rZXlfZXZpZGVuY2U6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ2FsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZSdcbiAgICApLFxuICAgIHByb2dyYW1fYXNzaWduZWU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2Fzc2lnbmVlJyksXG4gICAgcHJvZ3JhbV9hc3NpZ25lZV9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fYXNzaWduZWVfZ3JvdXAnKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWUnKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCdcbiAgICApLFxuICAgIGFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ2Fzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWEnXG4gICAgKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXInKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCdcbiAgICApLFxuICAgIHByb2dyYW1fcmV2aWV3ZXI6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX3Jldmlld2VyJyksXG4gICAgcHJvZ3JhbV9yZXZpZXdlcl9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ3Byb2dyYW1fcmV2aWV3ZXJfZ3JvdXAnKSxcbiAgICBwcm9ncmFtX292ZXJzZWVyOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9vdmVyc2VlcicpLFxuICAgIHByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdwcm9ncmFtX292ZXJzZWVyX2dyb3VwJyksXG4gICAgcHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyJyksXG4gICAgcHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldChcbiAgICAgICdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAnXG4gICAgKSxcbiAgICBwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyOiB0aGlzLnByb2dyYW1Gb3JtLmdldChcbiAgICAgICdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyJ1xuICAgICksXG4gICAgcHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cDogdGhpcy5wcm9ncmFtRm9ybS5nZXQoXG4gICAgICAncHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cCdcbiAgICApLFxuICAgIHJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWE6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KFxuICAgICAgJ3Jldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEnXG4gICAgKSxcbiAgICBwcm9ncmFtX2Fzc2Vzc21lbnRzOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgncHJvZ3JhbV9hc3Nlc3NtZW50cycpLFxuICAgIGN1c3RvbV9maWVsZHM6IHRoaXMucHJvZ3JhbUZvcm0uZ2V0KCdjdXN0b21fZmllbGRzJyksXG4gICAgaXNBcHByb3ZlckRpc2FibGVkOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnaXNBcHByb3ZlckRpc2FibGVkJyksXG4gICAgY29sbGFib3JhdG9yczogdGhpcy5wcm9ncmFtRm9ybS5nZXQoJ2NvbGxhYm9yYXRvcnMnKSxcbiAgICBjb2xsYWJvcmF0b3JzX2dyb3VwOiB0aGlzLnByb2dyYW1Gb3JtLmdldCgnY29sbGFib3JhdG9yc19ncm91cCcpLFxuICB9O1xuXG4gIGxpc3RzOiBhbnkgPSB7XG4gICAgUk9MRVM6IFtdLFxuICAgIE9XTkVSUzogW10sXG4gICAgT1dORVJTX0dST1VQUzogW10sXG4gICAgQVBQUk9WRVJTOiBbXSxcbiAgICBSRVZJRVdFUlM6IFtdLFxuICAgIFJFVklFV0VSU19HUk9VUDogW10sXG4gICAgQVNTSUdORUVTOiBbXSxcbiAgICBBU1NJR05FRVNfR1JPVVA6IFtdLFxuICAgIERFRkFVTFRfQVNTSUdORUVTOiBbXSxcbiAgICBERUZBVUxUX0FTU0lHTkVFU19HUk9VUDogW10sXG4gICAgREVGQVVMVF9SRVZJRVdFUlM6IFtdLFxuICAgIERFRkFVTFRfUkVWSUVXRVJTX0dST1VQOiBbXSxcbiAgICBPVkVSU0VFUlM6IFtdLFxuICAgIE9WRVJTRUVSU19HUk9VUDogW10sXG4gICAgREVGQVVMVF9PVkVSU0VFUlM6IFtdLFxuICAgIERFRkFVTFRfT1ZFUlNFRVJTX0dST1VQOiBbXSxcbiAgICBSQzogW10sXG4gICAgTk9OX1JFTU9WQUJMRV9PV05FUlM6IFtdLFxuICAgIEFMTF9VU0VSOiBbXSxcbiAgICBBTExfR1JPVVA6IFtdLFxuICAgIFNZU1RFTV9ST0xFX0lEUzogW10sXG4gIH07XG5cbiAgbGlzdExvYWRpbmdTdGF0ZSA9IHtcbiAgICBST0xFUzogZmFsc2UsXG4gICAgVVNFUlM6IGZhbHNlLFxuICAgIEdST1VQOiBmYWxzZSxcbiAgICBSQzogZmFsc2UsXG4gIH07XG4gIHNpZGVFbGVtZW50cyA9IFtcbiAgICAnUk9MRScsXG4gICAgJ1JDJyxcbiAgICAnT1dORVInLFxuICAgICdBU1NJR05FRScsXG4gICAgJ0FQUFJPVkVSJyxcbiAgICAnREVGQVVMVF9BU1NJR05FRScsXG4gICAgJ1JFVklFV0VSJyxcbiAgICAnREVGQVVMVF9SRVZJRVdFUicsXG4gICAgJ0FTU0VTU01FTlQnLFxuICAgICdGUkFNRVdPUksnLFxuICAgICdPVkVSU0VFUicsXG4gICAgJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJyxcbiAgICAnREVGQVVMVF9PVkVSU0VFUicsXG4gICAgJ09WRVJTRUVSJyxcbiAgXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV90eXBlJywgdGhpcy5wcm9ncmFtVHlwZSA/PyAxKTtcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uVXNlcnMoKTtcbiAgICB0aGlzLmZldGNoT3JnYW5pemF0aW9uR3JvdXAoKTtcbiAgICB0aGlzLmZldGNoUm9sZXMoKTtcbiAgICB0aGlzLmZldGNoUkMoKTtcbiAgICB0aGlzLmhhbmRsZURhdGFQb3B1bGF0aW9uKCk7XG4gICAgaWYgKHRoaXMuYWRkVG9Qcm9ncmFtRGV0YWlscz8uX2lkKSB7XG4gICAgICB0aGlzLmxpc3RBY3Rpb24odGhpcy5hZGRUb1Byb2dyYW1EZXRhaWxzLCAnRlJBTUVXT1JLJyk7XG4gICAgfVxuICAgIHRoaXMuZW5hYmxlZmVhdHVyZSgpO1xuICAgIHRoaXMuaGFuZGxlRGF0YVBvcHVsYXRpb24oKTtcbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgZ2V0IHZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnByb2dyYW1Gb3JtLnZhbGlkO1xuICB9XG5cbiAgYWRkaXRpb25hbE9wdGlvbjogYW55ID0geyAuLi5DT05TVEFOVFMuYWRkaXRpb25hbE9wdGlvbiB9O1xuICBhY3RpdmVMaXN0ID0gJyc7XG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqIFBvcHVsYXRlcyBvcHRpb25hbCBmaWVsZHMgc3RhdHVzIGZvciB0aGUgb3B0aW9uYWwgZmllbGRzXG4gICAqL1xuICBwb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCkge1xuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb24pKSB7XG4gICAgICBpZiAodGhpcy5hZGRpdGlvbmFsT3B0aW9uW2tleV0gPT09IHRydWUpIHtcbiAgICAgICAgYWN0aXZhdGVkT3B0aW9ucy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucG9wdWxhdGVPcHRpb24uZW1pdChhY3RpdmF0ZWRPcHRpb25zKTtcbiAgfVxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uW2V2ZW50LmNvZGVdID0gZXZlbnQuY2hlY2tlZDtcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrUHJvZ3JhbU9wdGlvbkZpZWxkKCk7XG4gIH1cblxuICAvLyBmdW5jdGlvbiB0byBhdXRvbWF0ZSBmb3JtIHZhbHVlIGNoYW5nZSBoYW5kbmdcbiAgZm9ybUNoYW5nZUxpc3RuZXIoKSB7XG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXModGhpcy5jb250cm9scyk7XG4gICAgZmllbGRzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2xzW2VsZV0/LnZhbHVlQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRm9ybUZpZWxkQ2hhbmdlKGVsZSwgcmVzKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlRm9ybUZpZWxkQ2hhbmdlKGNvbnRyb2w6IHN0cmluZywgcGF5bG9hZD86IGFueSkge1xuICAgIHN3aXRjaCAoY29udHJvbCkge1xuICAgICAgY2FzZSAncHJvZ3JhbV9yb2xlcyc6IHtcbiAgICAgICAgdGhpcy5mZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFjdGl2YXRlTGlzdChldnQ6IHN0cmluZykge1xuICAgIGlmIChldnQgPT09ICdGUkFNRVdPUksnICYmICF0aGlzLmNhbkZyYW1ld29ya0NoYW5nZSkgcmV0dXJuO1xuICAgIHRoaXMuYWN0aXZlTGlzdCA9IGV2dDtcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGxpc3RBY3Rpb24oZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnUk9MRSc6IHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29uc3Qgc3lzdGVtUm9sZXMgPSBldnQ/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2FkbWluJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXRjaFZhbCA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi5zeXN0ZW1Sb2xlcywgLi4uZXZ0XSwgJ19pZCcpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWlzRXF1YWwodGhpcy5jb250cm9scy5wcm9ncmFtX3JvbGVzLnZhbHVlLnNvcnQoKSwgcGF0Y2hWYWwuc29ydCgpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yb2xlcycsIHBhdGNoVmFsKTtcbiAgICAgICAgICB0aGlzLmZldGNoVXNlcnNBc3NvY2lhdGVkV2l0aFJvbGVzKCk7XG4gICAgICAgICAgdGhpcy5mZXRjaEdyb3Vwc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSQyc6IHtcbiAgICAgICAgY29uc3QgcmMgPSB0aGlzLnNldExpc3QodGhpcy5saXN0cy5SQywgZXZ0LCAnaXRlbV9pZCcpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncmMnLCB0aGlzLnVuaXF1ZUJ5UHJvcChyYywgJ2l0ZW1faWQnKSk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09XTkVSJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vd25lcnMnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICd1aWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vd25lcnNfZ3JvdXAnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8uZ3JvdXBzLCAndWdpZCcpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdvd25lcicsIHRoaXMuY29udHJvbHMpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBUFBST1ZFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fYXBwcm92ZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDT0xMQUJPUkFUT1JTJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAnY29sbGFib3JhdG9ycycsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py51c2VycywgJ3VpZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdjb2xsYWJvcmF0b3JzX2dyb3VwJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/Lmdyb3VwcywgJ3VnaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0FTU0lHTkVFJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnUkVWSUVXRVInOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdwcm9ncmFtX3Jldmlld2VyJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fcmV2aWV3ZXJfZ3JvdXAnLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8uZ3JvdXBzLCAnZ3JvdXBfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UmV2aWV3ZXIoZXZ0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX1JFVklFV0VSJzoge1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLmNvbnRyb2xzLnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEudmFsdWUgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gJ0FOWU9ORSdcbiAgICAgICAgICAgIDogdGhpcy5jb250cm9scz8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYT8udmFsdWU7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdPVkVSU0VFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9vdmVyc2Vlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRPdmVyc2VlcihldnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfT1ZFUlNFRVInOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwJyxcbiAgICAgICAgICB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/Lmdyb3VwcywgJ2dyb3VwX2lkJylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUic6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXInLFxuICAgICAgICAgIHRoaXMudW5pcXVlQnlQcm9wKGV2dD8udXNlcnMsICdtZW1iZXJfaWQnKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAncHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cCcsXG4gICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZXZ0Py5ncm91cHMsICdncm91cF9pZCcpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTRVNTTUVOVCc6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fYXNzZXNzbWVudHMnLCBldnQpO1xuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdGUkFNRVdPUksnOiB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdmcmFtZXdvcmsnLCBldnQpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9uYW1lJywgZXZ0Py5uYW1lKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb24nLCBldnQ/LmRlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5lZGl0b3JEYXRhLnByb2dyYW1EZXNjcmlwdGlvbiA9IGV2dD8uZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmUoZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnUk9MRSc6IHtcbiAgICAgICAgbGV0IG1zZyA9ICcnO1xuICAgICAgICBtc2cgPSAnSWYgeW91IGNoYW5nZSB0aGUgcm9sZXMsIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fcm9sZXM/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Ll9pZCAhPT0gZXZ0Py5faWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5saXN0QWN0aW9uKHJvbGVzLCAnUk9MRScpO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yb2xlcycsIHJvbGVzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSQyc6IHtcbiAgICAgICAgY29uc3QgcmNzID0gdGhpcy5jb250cm9scz8ucmM/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lml0ZW1faWQgIT09IGV2dD8uaXRlbV9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncmMnLCByY3MpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09XTkVSJzoge1xuICAgICAgICBjb25zdCBvd25lcnMgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8udWlkICE9PSBldnQ/LnVpZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnMnLCBvd25lcnMpO1xuICAgICAgICBjb25zb2xlLmxvZygnc2V0Rm9ybUZpZWxkIG93bmVyJywgdGhpcy5jb250cm9scyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnT1dORVJfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IG93bmVyc19ncm91cCA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnNfZ3JvdXAnLCBvd25lcnNfZ3JvdXApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FQUFJPVkVSJzoge1xuICAgICAgICBjb25zdCBhcHByb3ZlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fYXBwcm92ZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fYXBwcm92ZXInLCBhcHByb3Zlcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTSUdORUUnOiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9hc3NpZ25lZScsIGFzc2lnbmVlKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0QXNzaWduZWVPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FTU0lHTkVFX0dST1VQJzoge1xuICAgICAgICBjb25zdCBhc3NpZ25lZV9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/LmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2Fzc2lnbmVlX2dyb3VwJywgYXNzaWduZWVfZ3JvdXApO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRBc3NpZ25lZU9uUmVtb3ZlKGV2dCwgdHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREVGQVVMVF9BU1NJR05FRSc6IHtcbiAgICAgICAgY29uc3QgYXNzaWduZWUgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZScsIGFzc2lnbmVlKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGlzdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfQVNTSUdORUVfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlX2dyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwJywgYXNzaWduZWVfZ3JvdXApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1JFVklFV0VSJzoge1xuICAgICAgICBjb25zdCByZXZpZXdlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fcmV2aWV3ZXInLCByZXZpZXdlcik7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFJldmlld2VyT25SZW1vdmUoZXZ0LCB0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSRVZJRVdFUl9HUk9VUCc6IHtcbiAgICAgICAgY29uc3QgcmV2aWV3ZXJfZ3JvdXAgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0UmV2aWV3ZXJPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfUkVWSUVXRVInOiB7XG4gICAgICAgIGNvbnN0IHJldmlld2VyID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXInLCByZXZpZXdlcik7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX1JFVklFV0VSX0dST1VQJzoge1xuICAgICAgICBjb25zdCByZXZpZXdlcl9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5jb250cm9scy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhLnZhbHVlID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/ICdBTllPTkUnXG4gICAgICAgICAgICA6IHRoaXMuY29udHJvbHM/LnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWE/LnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09WRVJTRUVSJzoge1xuICAgICAgICBjb25zdCBvdmVyc2VlciA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3ZlcnNlZXInLCBvdmVyc2Vlcik7XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdE92ZXJzZWVyT25SZW1vdmUoZXZ0LCB0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdPVkVSU0VFUl9HUk9VUCc6IHtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXJfZ3JvdXAgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vdmVyc2Vlcl9ncm91cCcsIG92ZXJzZWVyX2dyb3VwKTtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0T3ZlcnNlZXJPblJlbW92ZShldnQsIHR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0RFRkFVTFRfT1ZFUlNFRVInOiB7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyID0gdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXInLCBvdmVyc2Vlcik7XG4gICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX09WRVJTRUVSX0dST1VQJzoge1xuICAgICAgICBjb25zdCBvdmVyc2Vlcl9ncm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cCcsIG92ZXJzZWVyX2dyb3VwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUic6IHtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXIgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyJywgb3ZlcnNlZXIpO1xuICAgICAgICB0aGlzLnJlZnJlc2hMaXN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVJfR1JPVVAnOiB7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyX2dyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgIG92ZXJzZWVyX2dyb3VwXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQVNTRVNTTUVOVCc6IHtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBjbG9uZURlZXAodGhpcy5jb250cm9scy5wcm9ncmFtX2Fzc2Vzc21lbnRzPy52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY3VycmVudC5maW5kSW5kZXgoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT0gZXZ0LmNhdGVnb3J5X2lkXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSBjdXJyZW50W2luZGV4XS5hc3Nlc3NtZW50SWRzLmZpbHRlcihcbiAgICAgICAgICAoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkICE9PSBldnQuaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGN1cnJlbnRbaW5kZXhdLmFzc2Vzc21lbnRJZHMubGVuZ3RoID09PSAwKSBjdXJyZW50LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMubGlzdEFjdGlvbihjdXJyZW50LCAnQVNTRVNTTUVOVCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0ZSQU1FV09SSyc6IHtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ2ZyYW1ld29yaycsIG51bGwpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm5JZHMobGlzdDogYW55W10sIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgICAgID8ubWFwKChlbGUpID0+IHtcbiAgICAgICAgaWYgKGVsZVtrZXldKSB7XG4gICAgICAgICAgcmV0dXJuIGVsZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZWxlKSA9PiBlbGUpO1xuICB9XG5cbiAgcmVmcmVzaExpc3QoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzID0gW107XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzID0gW107XG4gICAgbGV0IGFzc2lnbm9yQW5kQXNzaWduZWVzSWRzOiBhbnkgPSBbXTtcbiAgICB0aGlzLmFzc2lnbm9ySWQgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRBc3NpZ25lZSA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU7XG4gICAgbGV0IHNlbGVjdGVkUmV2aWV3ZXIgPSB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlO1xuICAgIGxldCBzZWxlY3RlZE92ZXJzZWVyTGlzdCA9IHRoaXMuY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgbGV0IHNlbGVjdGVkT3ZlcnNlZXJGYWlsdXJlTGlzdCA9XG4gICAgICB0aGlzLmNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZTtcbiAgICBsZXQgYXNzaWdub3IgPSB0aGlzLmN1cnJlbnRVc2VyKCk7XG4gICAgdGhpcy5hc3NpZ25vcklkLnB1c2goYXNzaWdub3I/Lm1lbWJlcl9pZCk7XG4gICAgYXNzaWdub3JBbmRBc3NpZ25lZXNJZHMucHVzaChhc3NpZ25vcj8ubWVtYmVyX2lkKTtcbiAgICBzZWxlY3RlZEFzc2lnbmVlPy5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBc3NpZ25lZUlkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgICBhc3NpZ25vckFuZEFzc2lnbmVlc0lkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgc2VsZWN0ZWRSZXZpZXdlcj8uZm9yRWFjaCgodXNlcjogYW55KSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkUmV2aWV3ZXJJZHMucHVzaCh1c2VyPy5tZW1iZXJfaWQpO1xuICAgIH0pO1xuICAgIHNlbGVjdGVkT3ZlcnNlZXJMaXN0Py5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgc2VsZWN0ZWRPdmVyc2VlckZhaWx1cmVMaXN0Py5mb3JFYWNoKCh1c2VyOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcy5wdXNoKHVzZXI/Lm1lbWJlcl9pZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFJldmlld2VySWRzKV07XG4gICAgdGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZEFzc2lnbmVlSWRzKV07XG4gICAgdGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZE92ZXJzZWVySWRzKV07XG4gICAgbGV0IGRpc2FibGVBc3NpZ25lZUxpc3QgPSB0aGlzLmxpc3RzPy5BTExfVVNFUj8uZmlsdGVyKFxuICAgICAgKHVzZXI6IGFueSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZFJldmlld2VySWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5kaXNhYmxlZEFzc2lnbmVlSWRzID0gdGhpcy5yZXR1cm5JZHMoZGlzYWJsZUFzc2lnbmVlTGlzdCwgJ21lbWJlcl9pZCcpO1xuICAgIGxldCBkaXNhYmxlUmV2aWV3ZXJMaXN0ID0gdGhpcy5saXN0cz8uQUxMX1VTRVI/LmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPdmVyc2Vlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKSB8fFxuICAgICAgICB0aGlzLnNlbGVjdGVkQXNzaWduZWVJZHM/LmluY2x1ZGVzKHVzZXI/Lm1lbWJlcl9pZClcbiAgICApO1xuICAgIHRoaXMuZGlzYWJsZVJldmlld2VySWRzID0gdGhpcy5yZXR1cm5JZHMoZGlzYWJsZVJldmlld2VyTGlzdCwgJ21lbWJlcl9pZCcpO1xuICAgIGxldCBkaXNhYmxlT3ZlcnNlZXJMaXN0ID0gdGhpcy5saXN0cz8uQUxMX1VTRVI/LmZpbHRlcihcbiAgICAgICh1c2VyOiBhbnkpID0+XG4gICAgICAgIGFzc2lnbm9yQW5kQXNzaWduZWVzSWRzPy5pbmNsdWRlcyh1c2VyPy5tZW1iZXJfaWQpIHx8XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSZXZpZXdlcklkcz8uaW5jbHVkZXModXNlcj8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5kaXNhYmxlT3ZlcnNlZXJJZHMgPSB0aGlzLnJldHVybklkcyhkaXNhYmxlT3ZlcnNlZXJMaXN0LCAnbWVtYmVyX2lkJyk7XG4gIH1cblxuICByZW1vdmVSb2xlKGV2dDogYW55KSB7XG4gICAgdGhpcy5vblJlbW92aW5nUm9sZS5lbWl0KGV2dCk7XG4gIH0gIFxuXG4gIHNldERlZmF1bHRBc3NpZ25lZU9uUmVtb3ZlKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0FTU0lHTkVFJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTID0gdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFUy5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdEFzc2lnbmVlID0gdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlO1xuICAgICAgICBjb25zdCBhc3NpZ25lZSA9IGRlZmF1bHRBc3NpZ25lZS5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCAhPT0gZXZ0Py5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFhc3NpZ25lZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFUyA9IHRoaXMubGlzdHMuQUxMX1VTRVI7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZScsIGFzc2lnbmVlKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0FTU0lHTkVFX0dST1VQJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQID1cbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQLmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRBc3NpZ25lZUdyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU7XG4gICAgICAgIGNvbnN0IGFzc2lnbmVlR3JvdXAgPSBkZWZhdWx0QXNzaWduZWVHcm91cC5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICAgIGlmICghYXNzaWduZWVHcm91cD8ubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA9IHRoaXMubGlzdHMuQUxMX0dST1VQO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXAnLCBhc3NpZ25lZUdyb3VwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXREZWZhdWx0UmV2aWV3ZXIoZXZ0OiBhbnkpIHtcbiAgICBpZiAoZXZ0Py51c2Vycz8ubGVuZ3RoIHx8IGV2dD8uZ3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChldnQ/LnVzZXJzLCAnbWVtYmVyX2lkJyk7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gdGhpcy51bmlxdWVCeVByb3AoXG4gICAgICAgIGV2dD8uZ3JvdXBzLFxuICAgICAgICAnZ3JvdXBfaWQnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTID0gdGhpcy5saXN0cy5BTExfVVNFUjtcbiAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlNfR1JPVVAgPSB0aGlzLmxpc3RzLkFMTF9HUk9VUDtcbiAgICB9XG4gICAgY29uc3QgcmV2aWV3ZXJNYXAgPSBldnQ/LnVzZXJzPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XG4gICAgbGV0IGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU7XG4gICAgY3VycmVudERlZmF1bHRSZXZpZXdlciA9IGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgIHJldmlld2VyTWFwLmluY2x1ZGVzKGVsZT8ubWVtYmVyX2lkKVxuICAgICk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcicsIGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIpO1xuICB9XG5cbiAgc2V0RGVmYXVsdE92ZXJzZWVyKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dD8udXNlcnM/Lmxlbmd0aCB8fCBldnQ/Lmdyb3Vwcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTID0gdGhpcy51bmlxdWVCeVByb3AoZXZ0Py51c2VycywgJ21lbWJlcl9pZCcpO1xuICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA9IHRoaXMudW5pcXVlQnlQcm9wKFxuICAgICAgICBldnQ/Lmdyb3VwcyxcbiAgICAgICAgJ2dyb3VwX2lkJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSUyA9IHRoaXMubGlzdHMuQUxMX1VTRVI7XG4gICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQID0gdGhpcy5saXN0cy5BTExfR1JPVVA7XG4gICAgfVxuICAgIGNvbnN0IG92ZXJzZWVyTWFwID0gZXZ0Py51c2Vycz8ubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xuICAgIGxldCBjdXJyZW50RGVmYXVsdFJldmlld2VyID0gdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlO1xuICAgIGxldCBjdXJyZW50RGVmYXVsdEZhaWxSZXZpZXdlciA9XG4gICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlO1xuICAgIGN1cnJlbnREZWZhdWx0UmV2aWV3ZXIgPSBjdXJyZW50RGVmYXVsdFJldmlld2VyLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICBvdmVyc2Vlck1hcC5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZClcbiAgICApO1xuICAgIGN1cnJlbnREZWZhdWx0RmFpbFJldmlld2VyID0gY3VycmVudERlZmF1bHRSZXZpZXdlci5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgb3ZlcnNlZXJNYXAuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpXG4gICAgKTtcbiAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyJywgY3VycmVudERlZmF1bHRSZXZpZXdlcik7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAncHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcicsXG4gICAgICBjdXJyZW50RGVmYXVsdEZhaWxSZXZpZXdlclxuICAgICk7XG4gIH1cblxuICBzZXREZWZhdWx0UmV2aWV3ZXJPblJlbW92ZShldnQ6IGFueSwgdHlwZTogYW55KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdSRVZJRVdFUic6IHtcbiAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSUyA9IHRoaXMubGlzdHMuREVGQVVMVF9SRVZJRVdFUlMuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRSZXZpZXdlciA9IHRoaXMuY29udHJvbHMucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZTtcbiAgICAgICAgY29uc3QgcmV2aWV3ZXIgPSBkZWZhdWx0UmV2aWV3ZXIuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXInLCByZXZpZXdlcik7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdSRVZJRVdFUl9HUk9VUCc6IHtcbiAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUCA9XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUC5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgICApO1xuICAgICAgICBjb25zdCBkZWZhdWx0UmV2aWV3ZXJHcm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlO1xuICAgICAgICBjb25zdCByZXZpZXdlckdyb3VwID0gZGVmYXVsdFJldmlld2VyR3JvdXAuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwJywgcmV2aWV3ZXJHcm91cCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0RGVmYXVsdE92ZXJzZWVyT25SZW1vdmUoZXZ0OiBhbnksIHR5cGU6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnT1ZFUlNFRVInOiB7XG4gICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9PVkVSU0VFUlMgPSB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyID0gZGVmYXVsdE92ZXJzZWVyLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBldnQ/Lm1lbWJlcl9pZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyJywgb3ZlcnNlZXIpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRGYWlsT3ZlcnNlZXIgPVxuICAgICAgICAgIHRoaXMuY29udHJvbHMucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyRmFpbCA9IGRlZmF1bHRGYWlsT3ZlcnNlZXIuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgIT09IGV2dD8ubWVtYmVyX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyJywgb3ZlcnNlZXJGYWlsKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ09WRVJTRUVSX0dST1VQJzoge1xuICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQID1cbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTX0dST1VQLmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCAhPT0gZXZ0Py5ncm91cF9pZFxuICAgICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRPdmVyc2Vlckdyb3VwID1cbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU7XG4gICAgICAgIGNvbnN0IG92ZXJzZWVyR3JvdXAgPSBkZWZhdWx0T3ZlcnNlZXJHcm91cC5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkICE9PSBldnQ/Lmdyb3VwX2lkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAnLCBvdmVyc2Vlckdyb3VwKTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXJGYWlsZWRHcm91cCA9XG4gICAgICAgICAgdGhpcy5jb250cm9scy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZTtcbiAgICAgICAgY29uc3Qgb3ZlcnNlZXJGYWlsZWRHcm91cCA9IGRlZmF1bHRPdmVyc2VlckZhaWxlZEdyb3VwLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IGV2dD8uZ3JvdXBfaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgIG92ZXJzZWVyRmFpbGVkR3JvdXBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWVsZERlc2VsZWN0b3IodHlwZTogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVMaXN0ID0gJyc7XG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMubWFya2FzVG91Y2hlZFNlbGVjdG9yKHR5cGUpO1xuICB9XG5cbiAgbWFya2FzVG91Y2hlZFNlbGVjdG9yKGZpZWxkTmFtZTogYW55KSB7XG4gICAgY29uc3QgdHlwZUZpZWxkOiBhbnkgPSB7XG4gICAgICBST0xFOiAncHJvZ3JhbV9yb2xlcycsXG4gICAgICBBUFBST1ZFUjogJ3Byb2dyYW1fYXBwcm92ZXInLFxuICAgICAgT1dORVI6ICdwcm9ncmFtX293bmVycycsXG4gICAgICBPV05FUl9HUk9VUDogJ3Byb2dyYW1fb3duZXJzX2dyb3VwJyxcbiAgICB9O1xuICAgIHRoaXMuY29udHJvbHNbdHlwZUZpZWxkW2ZpZWxkTmFtZV1dPy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBmZXRjaFJvbGVzKCkge1xuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZ2V0Um9sZXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuUk9MRVMgPSByZXM7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTeXN0ZW1WYWwgPSB0aGlzLmxpc3RzPy5ST0xFUz8uZGF0YVxuICAgICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAnYWRtaW4nXG4gICAgICAgICAgKVxuICAgICAgICAgID8ubWFwKChlbGU6IGFueSkgPT4gZWxlPy5faWQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0VmFsID0gdGhpcy5saXN0cz8uUk9MRVM/LmRhdGE/LmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICBlbGU/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAna2V5IGFkbWluJyB8fFxuICAgICAgICAgICAgZWxlPy5yb2xlTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2FkbWluJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmxpc3RzLlNZU1RFTV9ST0xFX0lEUyA9IGRlZmF1bHRTeXN0ZW1WYWw7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdFRElUJykge1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX3JvbGVzJywgZGVmYXVsdFZhbCk7XG4gICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmV0Y2hVc2Vyc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgICAgdGhpcy5mZXRjaEdyb3Vwc0Fzc29jaWF0ZWRXaXRoUm9sZXMoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuICAvL2ZldGNoIHRoZSBsaXN0IG9mIHJlc3BvbnNpYmlsaXRpZXMgY2VudGVyXG4gIGZldGNoUkMoKSB7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuUkMgPSByZXM7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge30sXG4gICAgfSk7XG4gIH1cblxuICBmZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcyhjYWxsZWRGcm9tPzogYW55KSB7XG4gICAgY29uc3QgbG9nZ2VkSW5Vc2VyID0gdGhpcy5jdXJyZW50VXNlcigpO1xuICAgIGNvbnN0IHJvbGVJZHMgPSB0aGlzLmxpc3RzLlJPTEVTPy5kYXRhPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Ll9pZCk7XG4gICAgLy8gaWYgKGZldGNoQWxsKSB7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbFJvbGVVc2Vycyhyb2xlSWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGlzVXNlckZpbmQgPSByZXM/LmRhdGE/LnNvbWUoXG4gICAgICAgICAgKHJlczogYW55KSA9PiByZXM/Lm1lbWJlcl9pZCA9PT0gbG9nZ2VkSW5Vc2VyPy5tZW1iZXJfaWRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFpc1VzZXJGaW5kKSB7XG4gICAgICAgICAgcmVzPy5kYXRhPy5wdXNoKGxvZ2dlZEluVXNlcik7XG4gICAgICAgICAgcmVzLnRvdGFsX2l0ZW1zID0gcmVzPy50b3RhbF9pdGVtcyArIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0cy5PV05FUlMgPSByZXM7XG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xzPy5hbGxfdXNlcl9pbl9yb2xlPy52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVycycsIHJlcz8uZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0T3duZXJzKHJlcz8uZGF0YSwgY2FsbGVkRnJvbSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoR3JvdXBzQXNzb2NpYXRlZFdpdGhSb2xlcygpIHtcbiAgICBjb25zdCByb2xlSWRzID0gdGhpcy5jb250cm9scy5wcm9ncmFtX3JvbGVzPy52YWx1ZT8ubWFwKFxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Ll9pZFxuICAgICk7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbFJvbGVHcm91cHMocm9sZUlkcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxpc3RzLk9XTkVSU19HUk9VUFMgPSByZXM7XG4gICAgICAgIGNvbnN0IHJvbGVJZHM6IEFycmF5PHN0cmluZz4gPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlLm1hcChcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZS5faWRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZ3JvdXBEZXRhaWxzID0gdGhpcy5jb250cm9scy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWUuZmlsdGVyKFxuICAgICAgICAgIChyb2xlSWQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJvbGVJZC5yb2xlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgbGV0IGlzU2FtZVJvbGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgcm9sZUlkLnJvbGVzLmZvckVhY2goKHJvbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb2xlSWRzLmluY2x1ZGVzKHJvbGUucm9sZUlkKSkge1xuICAgICAgICAgICAgICAgICAgaXNTYW1lUm9sZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoaXNTYW1lUm9sZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByb2xlSWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVyc19ncm91cCcsIGdyb3VwRGV0YWlscyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgc2V0RGVmYXVsdE93bmVycyh1c2VyTGlzdDogYW55LCBjYWxsZWRGcm9tPzogYW55KSB7XG4gICAgY29uc3QgbG9nZ2VkSW51c2VyID0gdGhpcy5jdXJyZW50VXNlcigpO1xuICAgIGNvbnN0IGRlZmF1bHRPd25lciA9IHVzZXJMaXN0LmZpbHRlcihcbiAgICAgIChlbGU6IGFueSkgPT5cbiAgICAgICAgWydBRE1JTicsICdLRVlfQURNSU4nXS5pbmNsdWRlcyhlbGU/LnVzZXJfcm9sZSkgJiZcbiAgICAgICAgZWxlPy5tZW1iZXJfaWQgIT0gbG9nZ2VkSW51c2VyPy5tZW1iZXJfaWRcbiAgICApO1xuICAgIHRoaXMubGlzdHMuTk9OX1JFTU9WQUJMRV9PV05FUlMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgIFsuLi5bbG9nZ2VkSW51c2VyXSwgLi4uZGVmYXVsdE93bmVyXSxcbiAgICAgICdtZW1iZXJfaWQnXG4gICAgKTtcbiAgICAvLyB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9vd25lcnMnLCB0aGlzLmxpc3RzLk5PTl9SRU1PVkFCTEVfT1dORVJTKTtcbiAgICBjb25zdCBwcmVTZWxlY3RlZFVzZXJzID0gdGhpcy5nZXRQcmVTZWxlY3RlZE93bmVycyhcbiAgICAgIHRoaXMuY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZSxcbiAgICAgIHVzZXJMaXN0XG4gICAgKTtcbiAgICBpZiAoY2FsbGVkRnJvbSAhPT0gJ2dldFByb2dyYW1EZXRhaWxzJykge1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoXG4gICAgICAgICdwcm9ncmFtX293bmVycycsXG4gICAgICAgIHByZVNlbGVjdGVkVXNlcnM/Lmxlbmd0aFxuICAgICAgICAgID8gcHJlU2VsZWN0ZWRVc2Vyc1xuICAgICAgICAgIDogdGhpcy5saXN0cy5OT05fUkVNT1ZBQkxFX09XTkVSU1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmVTZWxlY3RlZE93bmVycyhwcmV2aW91c1NlbGVjdGVkVXNlcnM6IGFueSwgY3VycmVudFVzZXJzOiBhbnkpIHtcbiAgICBsZXQgZmluYWxVc2VycyA9IFtdO1xuICAgIGZpbmFsVXNlcnMgPSBwcmV2aW91c1NlbGVjdGVkVXNlcnM/LmZpbHRlcigocHJldmlvdXM6IGFueSkgPT5cbiAgICAgIGN1cnJlbnRVc2Vycz8uc29tZShcbiAgICAgICAgKGN1cnJlbnQ6IGFueSkgPT4gcHJldmlvdXM/Lm1lbWJlcl9pZCA9PT0gY3VycmVudD8ubWVtYmVyX2lkXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gZmluYWxVc2VycztcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uVXNlcnMoZGF0YT86IGFueSkge1xuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0ZS5VU0VSUyA9IHRydWU7XG4gICAgdGhpcy5wcm9ncmFtU2VydmljZS5mZXRjaEFsbE9yZ1VzZXIoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdHMuQUxMX1VTRVIgPSByZXM7XG4gICAgICAgIHRoaXMubGlzdHMuQVNTSUdORUVTID0gcmVzO1xuICAgICAgICB0aGlzLmxpc3RzLlJFVklFV0VSUyA9IHJlcztcbiAgICAgICAgdGhpcy5saXN0cy5PVkVSU0VFUlMgPSByZXM7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgIT09ICdFRElUJykge1xuICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9BU1NJR05FRVMgPSByZXM7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX1JFVklFV0VSUyA9IHJlcztcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfT1ZFUlNFRVJTID0gcmVzO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2xzLnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9BU1NJR05FRVMgPSByZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5jb250cm9scy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTID0gcmVzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuY29udHJvbHMucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSUyA9IHJlcztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdGUuVVNFUlMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTGlzdCgpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0ZS5VU0VSUyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uR3JvdXAoZGF0YT86IGFueSkge1xuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZmV0Y2hDb21wbGlhbmNlR3JvdXBzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxpc3RzLkFMTF9HUk9VUCA9IHJlcztcblxuICAgICAgICB0aGlzLmxpc3RzLkFTU0lHTkVFU19HUk9VUCA9IHJlcztcbiAgICAgICAgdGhpcy5saXN0cy5SRVZJRVdFUlNfR1JPVVAgPSByZXM7XG5cbiAgICAgICAgdGhpcy5saXN0cy5PVkVSU0VFUlNfR1JPVVAgPSByZXM7XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZSAhPT0gJ0VESVQnKSB7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA9IHJlcztcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gcmVzO1xuICAgICAgICAgIHRoaXMubGlzdHMuREVGQVVMVF9PVkVSU0VFUlNfR1JPVVAgPSByZXM7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGZpbGVVcGxvYWRUcmFja2VyID0ge1xuICAgIGRlc2NyaXB0aW9uOiBbXSxcbiAgICBvYmplY3RpdmU6IFtdLFxuICB9O1xuXG4gIHNlbGVjdEZpbGUodHlwZTogYW55LCBmaWxlczogYW55KSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy51cGxvYWRGaWxlcyh0eXBlLCBmaWxlc1tpXS5maWxlKTtcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlcyh0eXBlOiAnREVTQ1JJUFRJT04nIHwgJ09CSkVDVElWRScsIGZpbGU6IGFueSkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG4gICAgY29uc3QgZGVzdGluYXRpb25TdHJpbmcgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBkdW1teUZpbGUgPSB7XG4gICAgICBmaWxlX3VybF9wYXRoOiBgJHtmaWxlPy5uYW1lfWAsXG4gICAgICBuYW1lOiBgJHtmaWxlPy5uYW1lfWAsXG4gICAgICB1cGxvYWRpbmc6IHRydWUsXG4gICAgICBvcmdfZmlsZTogYCR7ZmlsZT8ubmFtZX1gLFxuICAgIH07XG4gICAgaWYgKHR5cGUgPT09ICdERVNDUklQVElPTicpIHtcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbHM/LmRlc2NyaXB0aW9uX2F0dGFjaG1lbnQ/LnZhbHVlID8/IFtdO1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLCBbXG4gICAgICAgIC4uLmRlc2NyaXB0aW9uLFxuICAgICAgICAuLi5bZHVtbXlGaWxlXSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgbGV0IGRlc2NyaXB0aW9uSW5kZXggPSBkZXNjcmlwdGlvbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgPT09IHJlcz8ub3JnX2ZpbGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlc2NyaXB0aW9uW2Rlc2NyaXB0aW9uSW5kZXhdID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ09CSkVDVElWRScpIHtcbiAgICAgIGxldCBkZXNjcmlwdGlvbiA9IHRoaXMuY29udHJvbHM/LmRlc2NyaXB0aW9uX2F0dGFjaG1lbnQ/LnZhbHVlID8/IFtdO1xuICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLCBbXG4gICAgICAgIC4uLmRlc2NyaXB0aW9uLFxuICAgICAgICAuLi5bZHVtbXlGaWxlXSxcbiAgICAgIF0pO1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGxvYWRGaWxlcyhmb3JtRGF0YSwgZGVzdGluYXRpb25TdHJpbmcpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgbGV0IGRlc2NyaXB0aW9uSW5kZXggPSBkZXNjcmlwdGlvbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgPT09IHJlcz8ub3JnX2ZpbGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlc2NyaXB0aW9uW2Rlc2NyaXB0aW9uSW5kZXhdID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMnLFxuICAgICAgICAgICAgdGhpcy51bmlxdWVCeVByb3AoZGVzY3JpcHRpb24sICdvcmdfZmlsZScpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUF0dGFjaG1lbnQodHlwZTogJ0RFU0NSSVBUSU9OJyB8ICdPQkpFQ1RJVkUnLCBmaWxlOiBhbnkpIHtcbiAgICBpZiAodHlwZSA9PT0gJ0RFU0NSSVBUSU9OJykge1xuICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5jb250cm9scz8uZGVzY3JpcHRpb25fYXR0YWNobWVudD8udmFsdWUgPz8gW107XG4gICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm9yZ19maWxlICE9PSBmaWxlPy5vcmdfZmlsZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9kZXNjcmlwdGlvbl9hdHRhY2htZW50cycsIGRlc2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdPQkpFQ1RJVkUnKSB7XG4gICAgICBsZXQgb2JqZWN0aXZlID0gdGhpcy5jb250cm9scz8ub2JqZWN0aXZlX2F0dGFjaG1lbnRzPy52YWx1ZSA/PyBbXTtcbiAgICAgIGlmIChvYmplY3RpdmUpIHtcbiAgICAgICAgb2JqZWN0aXZlID0gb2JqZWN0aXZlLmZpbHRlcihcbiAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8ub3JnX2ZpbGUgIT09IGZpbGU/Lm9yZ19maWxlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzJywgb2JqZWN0aXZlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxSb2xlT3duZXIoZXZ0OiBhbnkpIHtcbiAgICAvL25lZWQgdG8gZmV0Y2ggYWxsIHRoZSB1c2VycyBmb3IgYWxsIHRoZSBzZWxlY3RlZCByb2xlc1xuICAgIGNvbnN0IGxvZ2dlZEluVXNlciA9IHRoaXMuY3VycmVudFVzZXIoKTtcbiAgICBsZXQgcm9sZUlkID0gW107XG4gICAgbGV0IHVzZXI6IGFueTtcbiAgICBpZiAoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpIHtcbiAgICAgIHJvbGVJZCA9IHRoaXMuY29udHJvbHMucHJvZ3JhbV9yb2xlcz8udmFsdWU/Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uX2lkKTtcbiAgICAgIGlmICh0aGlzLmZlYXR1cmVmbGFnR3JvdXBzKSB7XG4gICAgICAgIHVzZXIgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlPy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Ll9pZCk7XG4gICAgICAgIHRoaXMuY29udHJvbHMucHJvZ3JhbV9vd25lcnNfZ3JvdXAudmFsdWUgPSB1c2VyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByb2xlSWQgPSB0aGlzLmNvbnRyb2xzLnByb2dyYW1fcm9sZXM/LnZhbHVlPy5tYXAoKGVsZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChbJ2tleSBhZG1pbicsICdhZG1pbiddLmluY2x1ZGVzKGVsZS5yb2xlTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgIHJldHVybiBlbGU/Ll9pZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJvZ3JhbVNlcnZpY2UuZmV0Y2hBbGxSb2xlVXNlcnMocm9sZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVuaXF1ZUJ5UHJvcChcbiAgICAgICAgICBbLi4uW2xvZ2dlZEluVXNlcl0sIC4uLnJlcz8uZGF0YV0sXG4gICAgICAgICAgJ21lbWJlcl9pZCdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzJywgdXNlcik7XG4gICAgICAgIGNvbnNvbGUubG9nKCdzZXRGb3JtRmllbGQgb3duZXInLCB0aGlzLmNvbnRyb2xzKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7fSxcbiAgICB9KTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmZldGNoQWxsUm9sZUdyb3Vwcyh1c2VyKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4ucmVzPy5kYXRhXSwgJ2dyb3VwX2lkJyk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX293bmVyc19ncm91cCcsIHVzZXIpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAjIyMjIERlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHVuaXF1ZSBhcnJheSBvZiBvYmplY3QgYmFzZWQgb24gdW5pcXVlIGtleVxuICAgKiBAcGFyYW0gYXJyYXlcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICBhcnJheVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChhY2M6IGFueSwgaXRlbTogYW55KSA9PiAoXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksIGFjY1xuICAgICAgICAgICksXG4gICAgICAgICAgbmV3IE1hcCgpXG4gICAgICAgIClcbiAgICAgICAgLnZhbHVlcygpXG4gICAgKTtcbiAgfVxuXG4gIHNldExpc3QobGlzdDogYW55W10sIGlkczogYW55W10sIGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0gW107XG4gICAgaWRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0LmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RFbGVtZW50OiBhbnkpID0+IGxpc3RFbGVtZW50W2tleV0gPT0gZWxlbWVudFxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgZGF0YS5wdXNoKGxpc3RbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHNhdmVQcm9ncmFtKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBsZXQgcGF5bG9hZCA9IHRoaXMucHJvZ3JhbVNlcnZpY2UuYnVpbGRQYXlsb2FkKHRoaXMucHJvZ3JhbUZvcm0sIHRoaXMpO1xuICAgIGlmIChwYXlsb2FkICYmIHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcbiAgICAgIHRoaXMucHJvZ3JhbVNlcnZpY2Uuc2F2ZVByb2dyYW0ocGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY3JlYXRlZFByb2dyYW1JZCA9IHJlcy5faWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcbiAgICAgICAgICBpZiAoZXJyPy5lcnJvcj8ubWVzc2FnZT8uaW5jbHVkZXMoJ0NhdGVnb3J5IGFscmVhZHkgZXhpc3QnKSkge1xuICAgICAgICAgICAgdGhpcy5pc05hbWVFeGlzdHMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocGF5bG9hZCAmJiB0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5wcm9ncmFtU2VydmljZS51cGRhdGVQcm9ncmFtKHBheWxvYWQsIHRoaXMucHJvZ3JhbUlkKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jcmVhdGVkUHJvZ3JhbUlkID0gcmVzLl9pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xuICAgICAgICAgIGlmIChlcnI/LmVycm9yPy5tZXNzYWdlPy5pbmNsdWRlcygnQ2F0ZWdvcnkgYWxyZWFkeSBleGlzdCcpKSB7XG4gICAgICAgICAgICB0aGlzLmlzTmFtZUV4aXN0cyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWN0aW9uKGV2ZW50OiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdhZGRNb3JlJzpcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlld1Byb2dyYW0nOlxuICAgICAgICB0aGlzLnZpZXdQcm9ncmFtcygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2aWV3UHJvZ3JhbXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICBsZXQgdXJsOiBzdHJpbmc7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0LnN0YXJ0c1dpdGgoJ2xvY2FsaG9zdCcpKSB7XG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdXJsID0gJ2h0dHBzOi8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIH1cblxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xuICAgICAgdXJsICs9ICcvcHJvZ3JhbS13b3Jrcm9vbT9pZD0nICsgdGhpcy5jcmVhdGVkUHJvZ3JhbUlkO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmwgKz0gJy9wcm9ncmFtL3Byb2dyYW0td29ya3Jvb20/aWQ9JyArIHRoaXMuY3JlYXRlZFByb2dyYW1JZDtcbiAgICB9XG5cbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgfVxuXG4gIHJlc2V0Rm9ybSgpIHtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NtaWxleSA9IGZhbHNlO1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICBjb25zdCBERUZBVUxUX1ZBTFVFUyA9IHtcbiAgICAgIHByb2dyYW1fdHlwZTogMSxcbiAgICAgIHByb2dyYW1fbmFtZTogJycsXG4gICAgICBwcm9ncmFtX2Rlc2NyaXB0aW9uOiAnJyxcbiAgICAgIHByb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHM6IFtdLFxuICAgICAgcHJvZ3JhbV9vYmplY3RpdmU6ICcnLFxuICAgICAgcHJvZ3JhbV9vYmplY3RpdmVfYXR0YWNobWVudHM6IFtdLFxuICAgICAgcHJvZ3JhbV9yb2xlczogW10sXG4gICAgICBhbGxfdXNlcl9pbl9yb2xlOiBmYWxzZSxcbiAgICAgIHByb2dyYW1fb3duZXJzOiBbXSxcbiAgICAgIHByb2dyYW1fb3duZXJzX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fYXBwcm92ZXI6IFtdLFxuICAgICAgcGVyZm9ybWFuY2VfY2FsY3VsYXRpb246ICdQQVNUX0VWRU5UJyxcbiAgICAgIHJlY3VycmluZ19mcmVxdWVuY3k6IGZhbHNlLFxuICAgICAgbG9ja19zY29wZV9jaGFuZ2U6IGZhbHNlLFxuICAgICAgZnJhbWV3b3JrOiBbXSxcbiAgICAgIHJjOiBbXSxcbiAgICAgIHByb2dyYW1fYXNzaWduZWU6IFtdLFxuICAgICAgcHJvZ3JhbV9hc3NpZ25lZV9ncm91cDogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU6IFtdLFxuICAgICAgcHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwOiBbXSxcbiAgICAgIGFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE6ICdBTEwnLFxuICAgICAgcHJvZ3JhbV9yZXZpZXdlcjogW10sXG4gICAgICBwcm9ncmFtX3Jldmlld2VyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA6IFtdLFxuICAgICAgcmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYTogJ1NFUVVFTlRJQUwnLFxuICAgICAgcHJvZ3JhbV9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX292ZXJzZWVyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fZGVmYXVsdF9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA6IFtdLFxuICAgICAgcHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlcjogW10sXG4gICAgICBwcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwOiBbXSxcbiAgICAgIHByb2dyYW1fYXNzZXNzbWVudHM6IFtdLFxuICAgICAgZXZpZGVuY2VfcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgYWxsb3dfYW55X2ZpbGVfa2V5X2V2aWRlbmNlOiBmYWxzZSxcbiAgICAgIGN1c3RvbV9maWVsZHM6IFtdLFxuICAgICAgcHJvZ3JhbV9zdGF0ZTogMCxcbiAgICB9O1xuICAgIHRoaXMucmVzZXRBZGRpdGlvbmFsT3B0aW9uKCk7XG4gICAgdGhpcy5wcm9ncmFtRm9ybS5yZXNldCgpO1xuICAgIHRoaXMucHJvZ3JhbUZvcm0ucGF0Y2hWYWx1ZShERUZBVUxUX1ZBTFVFUyk7XG4gICAgdGhpcy5lZGl0b3JEYXRhID0ge1xuICAgICAgcHJvZ3JhbU9iamVjdGl2ZTogJycsXG4gICAgICBwcm9ncmFtRGVzY3JpcHRpb246ICcnLFxuICAgIH07XG4gICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmlzTmFtZUV4aXN0cyA9IGZhbHNlO1xuICAgIHRoaXMuZmV0Y2hSb2xlcygpO1xuICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh0cnVlKTtcbiAgICB0aGlzLmZvcm0ubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlU21pbGV5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoeyBldnQ6ICcnLCBjb25maXJtOiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJvZ3JhbSBkZXRhaWxzIHdoZW4gdXNlciBpcyB0cnlpbmcgdG8gZWRpdCBwcm9ncmFtXG4gICAqL1xuICBnZXRQcm9ncmFtRGV0YWlscygpIHtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlXG4gICAgICAuZ2V0UHJvZ3JhbSh0aGlzLnByb2dyYW1JZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgIFxuICAgICAgfSk7XG4gIH1cblxuICBwb3B1bGF0ZVByb2dyYW1EZXRhaWxzKHJlczogYW55KSB7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fbmFtZScsIHJlcz8ubmFtZSk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fdHlwZScsIHJlcz8udHlwZSk7XG4gICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb2JqZWN0aXZlJywgcmVzPy5kZXNjcmlwdGlvbik7XG5cbiAgICBpZiAocmVzPy5yb2xlcyAmJiByZXM/LnJvbGVzPy5sZW5ndGggJiYgdGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5ST0xFUyA9IHRydWU7XG4gICAgfVxuICAgIFxuXG4gICAgaWYgKHJlcy5jdXN0b21GaWVsZHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldEZvcm1GaWVsZCgnY3VzdG9tX2ZpZWxkcycsIHJlcy5jdXN0b21GaWVsZHMpO1xuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkNVU1RPTV9GSUVMRFMgPSB0cnVlO1xuICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wb3B1bGF0ZU1lbWJlcnMocmVzKTtcbiAgICB0aGlzLnBvcHVsYXRlR3JvdXBzKHJlcyk7XG4gICAgdGhpcy5mZXRjaFVzZXJzQXNzb2NpYXRlZFdpdGhSb2xlcygnZ2V0UHJvZ3JhbURldGFpbHMnKTtcbiAgICB0aGlzLmZldGNoR3JvdXBzQXNzb2NpYXRlZFdpdGhSb2xlcygpO1xuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25Hcm91cCgpO1xuICAgIHRoaXMuZmV0Y2hPcmdhbml6YXRpb25Vc2VycygpO1xuICB9XG5cblxuICBwb3B1bGF0ZU1lbWJlcnMocmVzOiBhbnkpIHtcbiAgICBjb25zdCBpZHMgPSBbXG4gICAgICAuLi5uZXcgU2V0KFtcbiAgICAgICAgLi4uKHJlcz8ub3duZXJzPy5hZG1pbnM/LnVzZXJzID8/IFtdKSxcbiAgICAgICAgLi4uKHJlcz8ub3duZXJzPy5tYW5hZ2Vycz8udXNlcnMgPz8gW10pLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmdldE1lbWViZXJCeVVJZHMoaWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPd25lcnMgPSByZXMub3duZXJzPy5hZG1pbnNcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2xsYWJvcmF0b3JzID0gcmVzLm93bmVycz8ubWFuYWdlcnNcblxuICAgICAgICBpZiAoc2VsZWN0ZWRPd25lcnM/LnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgc2VsZWN0ZWRPd25lcnM/LnVzZXJzLmluY2x1ZGVzKGVsZT8udWlkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzJywgb3duZXJzKTtcbiAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PV05FUlMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RlZENvbGxhYm9yYXRvcnM/LnVzZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBjb2xsYWJvcmF0b3JzID0gcmVzcG9uc2UuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgICAgICAgIHNlbGVjdGVkQ29sbGFib3JhdG9ycz8udXNlcnM/LmluY2x1ZGVzKGVsZT8udWlkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ2NvbGxhYm9yYXRvcnMnLCBjb2xsYWJvcmF0b3JzKTtcbiAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQ09MTEFCT1JBVE9SUyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcz8uZGVmYXVsdF9hc3NpZ25lZV9pZHMgJiYgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYXNzaWduZWUgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2lkcy5pbmNsdWRlcyhlbGU/Lm1lbWJlcl9pZClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX2RlZmF1bHRfYXNzaWduZWUnLCBhc3NpZ25lZSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BU1NJR05FRVMgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZU9wdGlvbmFsRmllbGRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuY2hlY2tQcm9ncmFtT3B0aW9uRmllbGQoKTtcbiAgfVxuXG4gIHBvcHVsYXRlR3JvdXBzKHJlczogYW55KSB7XG4gICAgY29uc3QgaWRzID0gW1xuICAgICAgLi4ubmV3IFNldChbXG4gICAgICAgIC4uLihyZXM/Lm93bmVyc19ncm91cCA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmFzc2lnbmVlX2dyb3VwX2lkcyA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmRlZmF1bHRfYXNzaWduZWVfZ3JvdXBfaWRzID8/IFtdKSxcbiAgICAgICAgLi4uKHJlcz8ub3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5yZXZpZXdlcl9ncm91cF9pZHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5kZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkcyA/PyBbXSksXG4gICAgICAgIC4uLihyZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgICAuLi4ocmVzPy5kZWZhdWx0X292ZXJzZWVycz8uZmFpbHVyZV9jY19lbWFpbF9ncm91cHMgPz8gW10pLFxuICAgICAgXSksXG4gICAgXTtcbiAgICB0aGlzLnByb2dyYW1TZXJ2aWNlLmdldE1lbWJlckJ5R3JvdXBzKGlkcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXNwPy5kYXRhO1xuICAgICAgICBpZiAocmVzLm93bmVyc19ncm91cCAmJiByZXM/Lm93bmVyc19ncm91cD8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qgb3duZXJzID0gcmVzcG9uc2UuZmlsdGVyKChlbGU6IGFueSkgPT5cbiAgICAgICAgICAgIHJlcz8ub3duZXJzX2dyb3VwPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fb3duZXJzX2dyb3VwJywgb3duZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzLmFzc2lnbmVlX2dyb3VwX2lkcyAmJiByZXM/LmFzc2lnbmVlX2dyb3VwX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYXNzaWduZWUgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5hc3NpZ25lZV9ncm91cF9pZHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9hc3NpZ25lZV9ncm91cCcsIGFzc2lnbmVlKTtcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfQVNTSUdORUVTX0dST1VQID0gYXNzaWduZWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5BU1NJR05FRVMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwX2lkcyAmJlxuICAgICAgICAgIHJlcz8uZGVmYXVsdF9hc3NpZ25lZV9ncm91cF9pZHM/Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBhc3NpZ25lZSA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfYXNzaWduZWVfZ3JvdXBfaWRzPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCcsIGFzc2lnbmVlKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiB8fFxuICAgICAgICAgICAgIXRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFTU0lHTkVFUyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXM/LnJldmlld2VyX2dyb3VwX2lkcyAmJiByZXM/LnJldmlld2VyX2dyb3VwX2lkcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgcmV2aWV3ZXIgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5yZXZpZXdlcl9ncm91cF9pZHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZCgncHJvZ3JhbV9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyKTtcbiAgICAgICAgICB0aGlzLmxpc3RzLkRFRkFVTFRfUkVWSUVXRVJTX0dST1VQID0gcmV2aWV3ZXI7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5SRVZJRVdFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/LmRlZmF1bHRfcmV2aWV3ZXJfZ3JvdXBfaWRzICYmXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHJldmlld2VyID0gcmVzcG9uc2U/LmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfcmV2aWV3ZXJfZ3JvdXBfaWRzPy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGQoJ3Byb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cCcsIHJldmlld2VyKTtcbiAgICAgICAgICB0aGlzLmNvbnRyb2xzLnJldmlld2VyX2NvbXBsZXRpb25fY3JpdGVyaWEudmFsdWUgPVxuICAgICAgICAgICAgdGhpcy5jb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/ICdBTllPTkUnXG4gICAgICAgICAgICAgIDogdGhpcy5jb250cm9scz8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYT8udmFsdWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5SRVZJRVdFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/Lm92ZXJzZWVycz8uY2NfZW1haWxfZ3JvdXBzICYmXG4gICAgICAgICAgcmVzPy5vdmVyc2VlcnM/LmNjX2VtYWlsX2dyb3Vwcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG92ZXJzZWVyR3JvdXAgPSByZXNwb25zZS5maWx0ZXIoKGVsZTogYW55KSA9PlxuICAgICAgICAgICAgcmVzPy5vdmVyc2VlcnM/LmNjX2VtYWlsX2dyb3Vwcz8uaW5jbHVkZXMoZWxlPy5ncm91cF9pZClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKCdwcm9ncmFtX292ZXJzZWVyX2dyb3VwJywgb3ZlcnNlZXJHcm91cCk7XG4gICAgICAgICAgdGhpcy5saXN0cy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA9IG92ZXJzZWVyR3JvdXA7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gfHxcbiAgICAgICAgICAgICF0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5PVkVSU0VFUiA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHMgJiZcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHM/Lmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0T3ZlcnNlZXJHcm91cCA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5jY19lbWFpbF9ncm91cHM/LmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZChcbiAgICAgICAgICAgICdwcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgICAgZGVmYXVsdE92ZXJzZWVyR3JvdXBcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMub3JnRGV0YWlscz8uaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uIHx8XG4gICAgICAgICAgICAhdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1ZFUlNFRVIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgcmVzPy5kZWZhdWx0X292ZXJzZWVycz8uZmFpbHVyZV9jY19lbWFpbF9ncm91cHMgJiZcbiAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5mYWlsdXJlX2NjX2VtYWlsX2dyb3Vwcz8ubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRPdmVyc2VlckZhaWx1cmVHcm91cCA9IHJlc3BvbnNlLmZpbHRlcigoZWxlOiBhbnkpID0+XG4gICAgICAgICAgICByZXM/LmRlZmF1bHRfb3ZlcnNlZXJzPy5mYWlsdXJlX2NjX2VtYWlsX2dyb3Vwcz8uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIGVsZT8uZ3JvdXBfaWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkKFxuICAgICAgICAgICAgJ3Byb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAnLFxuICAgICAgICAgICAgZGVmYXVsdE92ZXJzZWVyRmFpbHVyZUdyb3VwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiB8fFxuICAgICAgICAgICAgIXRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9WRVJTRUVSID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBBcyBvZiBub3cgZ3JvdXBzIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSByZXZpZXdlciBhbmQgb3ZlcnNlZWVyIGlmIHRoaXMgZ3JvdXAgZmVhdHVyZSBnZXRzIGluY29wZXJhdGVkIGluXG4gICAgICAvL2Z1dHVyZSBuZWVkIHRvIGFkZCBncm91cCBjb25kaXRpb24gaGVyZSB0byBwcmVwb3B1bGF0ZSB0aGUgZGF0YSB3aGlsZSBlZGl0aW5nLlxuICAgIH0pO1xuICAgIHRoaXMuY2hlY2tQcm9ncmFtT3B0aW9uRmllbGQoKTtcbiAgfVxuXG4gIHJlc2V0QWRkaXRpb25hbE9wdGlvbigpIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uUk9MRVMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uT1dORVJTID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFQUFJPVkVSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlBST0dSQU1fRlJFUVVFTkNZID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlNDT1BFX0NIQU5HRVMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uUkMgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uQVNTSUdORUVTID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLlJFVklFV0VSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLk9WRVJTRUVSID0gZmFsc2U7XG4gICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uLkFTU0VTU01FTlQgPSBmYWxzZTtcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb24uRk9STUFURV9FVklERU5DRSA9IGZhbHNlO1xuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvbi5DVVNUT01fRklFTERTID0gZmFsc2U7XG4gIH1cblxuICBjaGVja1Byb2dyYW1PcHRpb25GaWVsZCgpOiBhbnkge1xuICAgIGNvbnN0IGNvZGUgPSBbXG4gICAgICAnUFJPR1JBTV9GUkVRVUVOQ1knLFxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxuICAgICAgJ1JDJyxcbiAgICAgICdBU1NJR05FRVMnLFxuICAgICAgJ1JFVklFV0VSJyxcbiAgICAgICdPVkVSU0VFUicsXG4gICAgICAnQVNTRVNTTUVOVCcsXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXG4gICAgICAnQ1VTVE9NX0ZJRUxEUycsXG4gICAgXTtcbiAgICBsZXQgaXNNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgY29kZS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuYWRkaXRpb25hbE9wdGlvbltrZXldKSB7XG4gICAgICAgIGlzTW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5pc1Byb2dyYW1TY29wZSA9IGlzTW9yZU9wdGlvbjtcbiAgfVxuXG4gIGVuYWJsZWZlYXR1cmUoKSB7XG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcm9sZV9pbXByb3ZlbWVudHMnXG4gICAgKTtcbiAgICB0aGlzLmlzQXNjZW50QWxsb3dlZCA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9jb21wbGlhbmNlX2ZyYW1ld29yaydcbiAgICApO1xuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9wcm9ncmFtX3NpbXBsaWZ5J1xuICAgICk7XG4gICAgdGhpcy5mZWF0dXJlZmxhZ0dyb3VwcyA9XG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fZ3JvdXBzJyk7XG4gICAgdGhpcy50b29sVGlwRGF0YS5vd25lciA9IHRoaXMuZmVhdHVyZWZsYWdyb2xlXG4gICAgICA/ICdPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+VGhlIDxzdHJvbmc+S2V5IFBvd2VyIFVzZXI8L3N0cm9uZz4gYW5kIGFsbCA8Yj5Qb3dlciBVc2VyczwvYj4gd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LidcbiAgICAgIDogJ093bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5UaGUgPHN0cm9uZz5LZXkgQWRtaW48L3N0cm9uZz4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0Lic7XG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XG4gIH1cblxuICBoYW5kbGVEYXRhUG9wdWxhdGlvbigpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgICB0aGlzLnBvcHVsYXRlUHJvZ3JhbURldGFpbHModGhpcy5wcm9ncmFtRGV0YWlscylcbiAgICB9XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwid29ya2Zsb3ctcHJvZ3JhbVwiICNmb3JtPlxuICA8Zm9ybSBub3ZhbGlkYXRlIFtmb3JtR3JvdXBdPVwicHJvZ3JhbUZvcm1cIj5cbiAgICA8IS0tIFByb2dyYW0gQ2F0ZWdvcnkgVHlwZSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fdHlwZT8udmFsdWUgPiAtMVwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9pc3N1ZS10eXBlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5QUk9HUkFNIFRZUEUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPHRhYi1zZWxlY3RvclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwcm9ncmFtX3R5cGVcIlxuICAgICAgICBbZGlzcGxheUFycmF5XT1cImNvbnN0YW50cz8uY2F0ZWdvcnlUeXBlXCJcbiAgICAgID48L3RhYi1zZWxlY3Rvcj5cbiAgICAgIDwhLS0gPHAgKm5nSWY9XCJwcm9ncmFtX25hbWU/LmludmFsaWRcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5BZGQgYSBwcm9ncmFtIHR5cGU8L3A+IC0tPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRnJhbWV3b3JrIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICAqbmdJZj1cImlzQXNjZW50QWxsb3dlZFwiXG4gICAgICBbY2hlY2tlZF09XCJmYWxzZVwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkZSQU1FV09SSzwvbGFiZWw+XG4gICAgICA8IS0tIFtzZWxlY3REaXZdPVwidHJ1ZVwiIC0tPlxuICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBhIGZyYW1ld29yayB0aGF0IHRoaXMgUHJvZ3JhbSByZWxhdGVzIHRvJ1wiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdGUkFNRVdPUksnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiY29udHJvbHM/LmZyYW1ld29yay52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgnJywgJ0ZSQU1FV09SSycpXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWU/Lm5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgPnt7IGNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWU/Lm5hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIChjbGljayk9XCJyZW1vdmUoJycsICdGUkFNRVdPUksnKVwiICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCIgY2xhc3M9XCJpY29uc1wiID4mI3hlOTBkOzwvaT4ge3tjb250cm9scz8uZnJhbWV3b3JrLnZhbHVlPy5uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0ZSQU1FV09SSycpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFByb2dyYW0gQ2F0ZWdvcnkgTmFtZSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fbmFtZT8udmFsdWU/LnRyaW0oKT8ubGVuZ3RoXCJcbiAgICAgIFthY3RpdmVdPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cInNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgPlBST0dSQU0gTkFNRSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgSW5wdXRUcmltXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2dyYW1fbmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJXaGF0IGlzIHRoZSBQcm9ncmFtIG5hbWU/XCJcbiAgICAgIC8+XG5cbiAgICAgIDxwXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fbmFtZT8uZXJyb3JzICYmIGNvbnRyb2xzPy5wcm9ncmFtX25hbWU/LnRvdWNoZWRcbiAgICAgICAgXCJcbiAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgID5cbiAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIFByb2dyYW0uXG4gICAgICA8L3A+XG4gICAgICA8cCAqbmdJZj1cImlzTmFtZUV4aXN0c1wiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICBQcm9ncmFtIG5hbWUgYWxyZWFkeSBleGlzdHMuXG4gICAgICA8L3A+XG4gICAgPC9mb3JtLWZpZWxkPlxuICAgIDx2Y29tcGx5LWVkaXRvclxuICAgIFsobmdNb2RlbCldPVwiZWRpdG9yRGF0YS5wcm9ncmFtT2JqZWN0aXZlXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdPQkpFQ1RJVkUnLCAkZXZlbnQpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRGb3JtRmllbGQoJ3Byb2dyYW1fb2JqZWN0aXZlJywgJGV2ZW50LCB0cnVlKVwiXG4gICAgW2VkaXRvckNvbmZpZ109XCJjb25zdGFudHM/LmRlc2NyaXB0aW9uXCJcbiAgPlxuICA8L3Zjb21wbHktZWRpdG9yPlxuXG5cbiAgICA8IS0tIE93bmVycyAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5PV05FUlNcIlxuICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCA+IDAgfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMFxuICAgICAgXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ09XTkVSJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdPV05FUidcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vd25lci5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+T1dORVIoUykgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAqbmdJZj1cInRvb2xUaXBEYXRhLm93bmVyICE9PSAnJ1wiXG4gICAgICAgICAgbGliUG9wb3ZlckhvdmVyXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8cG9wb3Zlci1ob3ZlciAjZGF0YVRvb2x0aXA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWluZm8tY2FyZC1ib2R5XCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b29sVGlwRGF0YS5vd25lclwiXG4gICAgICAgICAgICAgIGlkPVwiT3duZXJIZWxwVGV4dFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcG9wb3Zlci1ob3Zlcj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGlzIHByb2dyYW0/J1wiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdPV05FUicpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTQgZ3JlZW5CZ1wiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvd25lci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIG93bmVyPy51c2VyX3JvbGVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ09XTkVSX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnT1dORVInXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb250cm9scz8uYWxsX3VzZXJfaW5fcm9sZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnT1dORVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjb3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvd25lciBvZiBjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlIHwgc2xpY2UgOiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHMuTk9OX1JFTU9WQUJMRV9PV05FUlMgfCBsaXN0VG9JZCA6ICdtZW1iZXJfaWQnXG4gICAgICAgICAgICAgICAgICAgICAgKS5pbmNsdWRlcyhvd25lcj8ubWVtYmVyX2lkKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShvd25lciwgJ09XTkVSJylcIlxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IG93bmVyPy5tZW1iZXJfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBvd25lciBvZiBjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIVsnQURNSU4nLCAnS0VZX0FETUlOJywgJ0xPR0dFRF9JTiddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgb3duZXI/LnVzZXJfcm9sZVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUob3duZXIsICdPV05FUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBvd25lcj8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIENvbGxhYm9yYXRvcnMgICAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uQ09MTEFCT1JBVE9SU1wiXG4gICAgW2NoZWNrZWRdPVwiXG4gICAgICBjb250cm9scz8uY29sbGFib3JhdG9ycy52YWx1ZT8ubGVuZ3RoID4gMCB8fFxuICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXAudmFsdWU/Lmxlbmd0aCA+IDBcbiAgICBcIlxuICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdDT0xMQUJPUkFUT1JTJ1wiXG4gICAgW2ltZ109XCJcbiAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJ1xuICAgIFwiXG4gID5cbiAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgID5DT0xMQUJPUkFUT1JTIFxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgKm5nSWY9XCJ0b29sVGlwRGF0YS5jb2xsYWJvcmF0b3JzICE9PSAnJ1wiXG4gICAgICAgIGxpYlBvcG92ZXJIb3ZlclxuICAgICAgICAobW91c2VvdmVyKT1cImRhdGFUb29sdGlwLnBvcG92ZXIoKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPjwvc3BhblxuICAgICAgPlxuICAgICAgPHBvcG92ZXItaG92ZXIgI2RhdGFUb29sdGlwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5mby1jYXJkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRvb2xUaXBEYXRhLmNvbGxhYm9yYXRvcnNcIlxuICAgICAgICAgICAgaWQ9XCJDb2xsYWJvcmF0b3JzSGVscFRleHRcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3BvcG92ZXItaG92ZXI+XG4gICAgPC9sYWJlbD5cbiAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dobyBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhpcyBwcm9ncmFtPydcIlxuICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0NPTExBQk9SQVRPUlMnKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8uY29sbGFib3JhdG9ycy52YWx1ZVswXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNCBncmVlbkJnXCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3duZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPiY8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICBvd25lcj8udXNlcl9yb2xlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgJ0NPTExBQk9SQVRPUlNfR1JPVVAnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICBjb250cm9scz8uY29sbGFib3JhdG9yc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZ3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAre3sgY29udHJvbHM/LmNvbGxhYm9yYXRvcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiID57e2NvbnRyb2xzPy5wcm9ncmFtX293bmVycz8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnQgdXNlclwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm93bmVyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fb3duZXJzPy52YWx1ZT8ubGVuZ3RoXCI+Jjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAqbmdJZj1cIiFbJ0FETUlOJywnS0VZX0FETUlOJywnTE9HR0VEX0lOJ10uaW5jbHVkZXMob3duZXI/LnVzZXJfcm9sZSlcIiAoY2xpY2spPVwicmVtb3ZlKG93bmVyLCdPV05FUl9HUk9VUCcpXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2VcIj57e2NvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnNfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3duZXJzX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29udHJvbHM/LmFsbF91c2VyX2luX3JvbGU/LnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdDT0xMQUJPUkFUT1JTJylcIlxuICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaW5wdXQtd2l0aC1waWxsPlxuICAgIDxhcHAtcG9wb3ZlciAjb3duZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3duZXIgb2YgY29udHJvbHM/LmNvbGxhYm9yYXRvcnM/LnZhbHVlIHwgc2xpY2UgOiAxXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxpXG5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShvd25lciwgJ0NPTExBQk9SQVRPUlMnKVwiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgb3duZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FwcC1wb3BvdmVyPlxuICAgIDxhcHAtcG9wb3ZlciAjZ3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IG93bmVyIG9mIGNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzX2dyb3VwPy52YWx1ZSB8IHNsaWNlIDogMVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAhWydBRE1JTicsICdLRVlfQURNSU4nLCAnTE9HR0VEX0lOJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgb3duZXI/LnVzZXJfcm9sZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG93bmVyLCAnQ09MTEFCT1JBVE9SU19HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBvd25lcj8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcHAtcG9wb3Zlcj5cbiAgPC9mb3JtLWZpZWxkPlxuXG4gICAgPCEtLSBQZXJmb3JtYW5jZSBDYWxjdWxhdGVkIC0tPlxuICAgIDwhLS0gPGZvcm0tZmllbGQgW2NoZWNrZWRdPVwiY29udHJvbHM/LnBlcmZvcm1hbmNlX2NhbGN1bGF0aW9uPy52YWx1ZVwiIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1BFUkZPUk1BTkNFJ1wiIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiYgYWN0aXZlTGlzdCAhPT0gJ1BFUkZPUk1BTkNFJ1wiXG4gICAgICAgICAgICBbaW1nXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcGVyZm9ybWFuY2UtY2FsYy5zdmcnXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SE9XIFNIT1VMRCBUSEUgUEVSRk9STUFOQ0UgT0YgVEhJUyBQUk9HUkFNIEJFIENBTENVTEFURUQ/PC9sYWJlbD5cbiAgICAgICAgICAgIDx0YWItc2VsZWN0b3IgZm9ybUNvbnRyb2xOYW1lPVwicGVyZm9ybWFuY2VfY2FsY3VsYXRpb25cIiBbZGlzcGxheUFycmF5XT1cImNvbnN0YW50cz8ucGVyZm9ybWFuY2VDYWxjdWxhdGlvblwiPlxuICAgICAgICAgICAgPC90YWItc2VsZWN0b3I+XG4gICAgICAgIDwvZm9ybS1maWVsZD4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJvZ3JhbVNjb3BlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2NvcGUtbGFiZWwgdngtZnMtMTAgdngtdHh0LXdoaXRlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtbWItNSB2eC1saC00IHZ4LWQtaW5saW5lLWJsb2NrXCJcbiAgICAgID5cbiAgICAgICAgUFJPR1JBTSBTQ09QRVxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxpICBjbGFzcz1cImljb25zIGluZm8taWNvbiB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCIgW2FwcFRvb2x0aXBdPVwidG9vbHRpcC5wcm9ncmFtU2NvcGVcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwid2hpdGVcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkxZjs8L2k+IC0tPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJpY29uIGluZm8taWNvbiB2eC1mcy0xMiB2eC10eHQtYmx1ZSB2eC1tbC0xXCJcbiAgICAgICAgKm5nSWY9XCJ0b29sVGlwRGF0YS5wcm9ncmFtU2NvcCAhPT0gJydcIlxuICAgICAgICBsaWJQb3BvdmVySG92ZXJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJkYXRhVG9vbHRpcC5jbG9zZVBvcG92ZXIoKVwiXG4gICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgID5cbiAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWJvZHlcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b29sVGlwRGF0YS5wcm9ncmFtU2NvcGVcIlxuICAgICAgICAgICAgaWQ9XCJQU0hlbHBUZXh0XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wb3BvdmVyLWhvdmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBQcm9ncmFtIEZyZXF1ZW5jeSAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5QUk9HUkFNX0ZSRVFVRU5DWVwiXG4gICAgICBbY2hlY2tlZF09XCJbdHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKGNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZSlcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVMaXN0ID09PSAnRlJFUVVFTkNZJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIHNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KSAmJiBhY3RpdmVMaXN0ICE9PSAnRlJFUVVFTkNZJ1xuICAgICAgXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjdXJyaW5nLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiIGlkPVwiUERDaGFuZ2VcIlxuICAgICAgICA+UFJPR1JBTSBEVVJBVElPTlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnICtcbiAgICAgICAgICAgIGJ1c2luZXNzQ3ljbGUuc2VsZWN0ZWRDeWNsZS5idXNpbmVzc19jeWNsZSArXG4gICAgICAgICAgICAnLiAgQWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgYWxzbyBoYXZlIHRoZSBzYW1lIFByb2dyYW0gRHVyYXRpb24uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJQcm9ncmFtRHVyYXRpb25IZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQgdngtbWItMFwiPklzIHRoaXMgcHJvZ3JhbSByZWN1cnJpbmc/PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cCBwcm9ncmFtXCI+XG4gICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidyZWN1cnJpbmdfZnJlcXVlbmN5J1wiXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZVwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdyZWN1cnJpbmdfZnJlcXVlbmN5JywgdHJ1ZSlcIlxuICAgICAgICAgICAgICA+WUVTPC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgW25hbWVdPVwiJ3JlY3VycmluZ19mcmVxdWVuY3knXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiIWNvbnRyb2xzPy5yZWN1cnJpbmdfZnJlcXVlbmN5Py52YWx1ZVwiXG4gICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdyZWN1cnJpbmdfZnJlcXVlbmN5JywgZmFsc2UpXCJcbiAgICAgICAgICAgICAgPk5PPC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFNjb3BlIENoYW5nZXMgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uU0NPUEVfQ0hBTkdFU1wiXG4gICAgICBbY2hlY2tlZF09XCJbdHJ1ZSwgZmFsc2VdLmluY2x1ZGVzKGNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWUpXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1NDT1BFJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdTQ09QRSdcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9sb2NrLXNjb3BlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5Mb2NrIHRoZSBQcm9ncmFtIFNjb3BlXG4gICAgICAgIDxpXG4gICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAnSWYgdGhlIFByb2dyYW0gU2NvcGUgaXMgbG9ja2VkLCBuZWl0aGVyIHRoZSBQcm9ncmFtIG5vciB0aGUgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbSBjYW4gYmUgZWRpdGVkIG9uY2UgdGhlIFByb2dyYW0gYmVnaW5zLiBJbiBvcmRlciB0byBlZGl0IHRoZSBQcm9ncmFtIG9yIHRoZSBsaW5rZWQgcmVzcG9uc2liaWxpdGllcywgdGhlIFByb2dyYW0gZGV0YWlscyB3aWxsIG5lZWQgdG8gYmUgZWRpdGVkLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiU2NvcGVDaGFuZ2VzSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICA+V291bGQgeW91IGxpa2UgdG9cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWxhYmVsLXR4dCB2eC1mdy01MDBcIj5sb2NrIGNoYW5nZXM8L3NwYW4+IHRvIHRoZVxuICAgICAgICAgIHByb2dyYW0gc2NvcGU/PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwIHByb2dyYW1cIj5cbiAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBbbmFtZV09XCInbG9ja19zY29wZV9jaGFuZ2UnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRGb3JtRmllbGQoJ2xvY2tfc2NvcGVfY2hhbmdlJywgdHJ1ZSlcIlxuICAgICAgICAgICAgPllFUzwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgPlxuICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgIFtuYW1lXT1cIidsb2NrX3Njb3BlX2NoYW5nZSdcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiIWNvbnRyb2xzPy5sb2NrX3Njb3BlX2NoYW5nZT8udmFsdWVcIlxuICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRGb3JtRmllbGQoJ2xvY2tfc2NvcGVfY2hhbmdlJywgZmFsc2UpXCJcbiAgICAgICAgICAgID5OTzwvYXBwLWNzLXJhZGlvXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRnJhbWV3b3JrIC0tPlxuICAgIDwhLS0gPGZvcm0tZmllbGQgW2NoZWNrZWRdPVwiZmFsc2VcIiBbYWN0aXZlXT1cImFjdGl2ZUxpc3QgPT09ICdGUkFNRVdPUksnXCIgW2Rpc2FibGVkXT1cInNpZGVFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVMaXN0KSAmJiBhY3RpdmVMaXN0ICE9PSAnRlJBTUVXT1JLJ1wiXG4gICAgICAgICAgICBbaW1nXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJ1wiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkZSQU1FV09SSzwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQtd2l0aC1waWxsIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IGEgZnJhbWV3b3JrIHRoYXQgdGhpcyBQcm9ncmFtIHJlbGF0ZXMgdG8nXCIgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0ZSQU1FV09SSycpXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJjb250cm9scz8uZnJhbWV3b3JrPy52YWx1ZT8uZnJhbWV3b3JrX25hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LmZyYW1ld29yay52YWx1ZSwnRlJBTUVXT1JLJylcIiBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+e3tjb250cm9scz8uZnJhbWV3b3JrPy52YWx1ZT8uZnJhbWV3b3JrX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJmcmFtZXdvcmsucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4rNTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlTGlzdCE9PSdGUkFNRVdPUksnXCIgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnRlJBTUVXT1JLJylcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjZnJhbWV3b3JrIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBbMSwgMSwgMSwgMSwgMSwgMSwgMV1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuYWdlIGZyYW1ld29yayBuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICA8L2Zvcm0tZmllbGQ+IC0tPlxuXG4gICAgPCEtLSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uUkNcIlxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnJjPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgIFthY3RpdmVdPVwiYWN0aXZlTGlzdCA9PT0gJ1JDJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmIGFjdGl2ZUxpc3QgIT09ICdSQydcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgPlJFU1BPTlNJQklMSVRZIENFTlRFUlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBXaGVyZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXNwb25zaWJpbGl0aWVzIENlbnRlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJSQ0hlbHBUZXh0XCJcbiAgICAgICAgICA+JiN4ZWIxNjs8L2lcbiAgICAgICAgPjwvbGFiZWxcbiAgICAgID5cbiAgICAgIDxpbnB1dC13aXRoLXBpbGxcbiAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ1JDJylcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1doaWNoIFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKSBjYW4gYmUgbGlua2VkIHRvIHRoZSByZXNwb25zaWJpbGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFByb2dyYW0/J1xuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucmM/LnZhbHVlICYmIGNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5yYz8udmFsdWVbMF0sICdSQycpXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5yYz8udmFsdWVbMF0/Lml0ZW1fbmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgY29udHJvbHM/LnJjPy52YWx1ZVswXT8uaXRlbV9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJjLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucmM/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnJjPy52YWx1ZVswXSwnUkMnKVwiPiYjeGU5MGQ7PC9pPnt7Y29udHJvbHM/LnJjPy52YWx1ZVswXT8uaXRlbV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5yYz8udmFsdWU/Lmxlbmd0aCAgPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJjLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnJjPy52YWx1ZT8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ1JDJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdSQycpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjcmMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCByYyBvZiBjb250cm9scz8ucmM/LnZhbHVlIHwgc2xpY2UgOiAxXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKHJjLCAnUkMnKVwiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAge3sgcmM/Lml0ZW1fbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIEFzc2lnbmVlIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb24/LkFTU0lHTkVFU1wiXG4gICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgIFwiXG4gICAgICBbYWN0aXZlXT1cIlsnQVNTSUdORUUnLCAnREVGQVVMVF9BU1NJR05FRSddPy5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIHNpZGVFbGVtZW50cz8uaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiZcbiAgICAgICAgIVsnQVNTSUdORUUnLCAnREVGQVVMVF9BU1NJR05FRSddLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXG4gICAgICBcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX0FTU0lHTkVFJ1wiXG4gICAgICAgID5BU1NJR05FRVNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdBc3NpZ25lZXMgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHRoZW0uIFdoZXJlIEFzc2lnbmVlcyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzaWduZWVzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiQXNzaWduZWVIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1dobyBpcyByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0lHTkVFJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZVswXSwgJ0FTU0lHTkVFJylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJhc3NpZ25lZS5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ0FTU0lHTkVFX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFzc2lnbmVlX2dyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0sJ0FTU0lHTkVFJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJhc3NpZ25lZS5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWU/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLCdBU1NJR05FRV9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJhc3NpZ25lZV9ncm91cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0FTU0lHTkVFJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdBU1NJR05FRScpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjYXNzaWduZWUgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBhc3NpZ25lZSBvZiBjb250cm9scz8ucHJvZ3JhbV9hc3NpZ25lZT8udmFsdWUgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cInJlbW92ZShhc3NpZ25lZSwgJ0FTU0lHTkVFJylcIiBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBhc3NpZ25lZT8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8YXBwLXBvcG92ZXIgI2Fzc2lnbmVlX2dyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fYXNzaWduZWVfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdBU1NJR05FRV9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdBU1NJR05FRSdcIlxuICAgICAgICA+REVGQVVMVCBBU1NJR05FRVxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1RoaXMgb3B0aW9uIGxldHMgeW91IHNwZWNpZnkgdGhlIERlZmF1bHQgQXNzaWduZWVzIGZvciBhbGwgbmV3IHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggYSBQcm9ncmFtLiBJZiBhIERlZmF1bHQgQXNzaWduZWVzIGlzIHNlbGVjdGVkLCB0aGUgdXNlciB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2VsZWN0ZWQgdGhlIEFzc2lnbmVlIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LiAnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkRBSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICBbc2VsZWN0RGl2XT1cInRydWVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlTGlzdCA9PT0gJ0FTU0lHTkVFJ1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hpY2ggcGVyc29ucyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBkZWZhdWx0IGFzc2lnbmVlcyBmb3IgdGhlIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgIFwiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX0FTU0lHTkVFJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgJ0RFRkFVTFRfQVNTSUdORUUnXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVmYXVsdEFzc2lnbmVlLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9BU1NJR05FRV9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVmYXVsdEFzc2lnbmVlR3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWVbMF0sJ0RFRkFVTFRfQVNTSUdORUUnKVwiID4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7IGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWU/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJkZWZhdWx0QXNzaWduZWUucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZT8ubGVuZ3RoIC0gMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWU/Lmxlbmd0aFwiPiY8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWU/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlWzBdLCdERUZBVUxUX0FTU0lHTkVFX0dST1VQJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJkZWZhdWx0QXNzaWduZWVHcm91cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLTEgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnREVGQVVMVF9BU1NJR05FRScpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjZGVmYXVsdEFzc2lnbmVlIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgYXNzaWduZWUgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZT8udmFsdWVcbiAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzaWduZWUsICdERUZBVUxUX0FTU0lHTkVFJylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBhc3NpZ25lZT8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8YXBwLXBvcG92ZXIgI2RlZmF1bHRBc3NpZ25lZUdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzaWduZWUsICdERUZBVUxUX0FTU0lHTkVFX0dST1VQJylcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBncm91cD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJyYWRpby1ncm91cC1zZWxlY3RvclwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnQVNTSUdORUUnXCJcbiAgICAgID5cbiAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgIFtuYW1lXT1cIidhc3NpZ25lZSdcIlxuICAgICAgICAgIFtjaGVja2VkXT1cImNvbnRyb2xzPy5hc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ0FMTCdcIlxuICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdhc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ0FMTCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEFMTCBTRUxFQ1RFRCBQRVJTT05TIE5FRUQgVE8gQ09NUExFVEUgVEhJU1xuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnSWYgc2VsZWN0ZWQsIHNlcGFyYXRlIHJlc3BvbnNpYmlsaXRpZXMgd2lsbCBiZSBjcmVhdGVkIGZvciBlYWNoIHBlcnNvbi4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNzLXJhZGlvPlxuICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgW25hbWVdPVwiJ2Fzc2lnbmVlJ1wiXG4gICAgICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LmFzc2lnbmVlX2NvbXBsZXRpb25fY3JpdGVyaWE/LnZhbHVlID09PSAnQU5ZT05FJ1wiXG4gICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJcbiAgICAgICAgICAgIHNldEZvcm1GaWVsZCgnYXNzaWduZWVfY29tcGxldGlvbl9jcml0ZXJpYScsICdBTllPTkUnKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBBTlkgU0VMRUNURUQgUEVSU09OIENBTiBDT01QTEVURSBUSElTXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdJZiBzZWxlY3RlZCwgb25seSBvbmUgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBjcmVhdGVkLidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0tZmllbGQ+XG5cbiAgICA8IS0tIFJldmlld2VyIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uUkVWSUVXRVJcIlxuICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXG4gICAgICBcIlxuICAgICAgW2FjdGl2ZV09XCJbJ1JFVklFV0VSJywgJ0RFRkFVTFRfUkVWSUVXRVInXT8uaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHM/LmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmXG4gICAgICAgICFbJ1JFVklFV0VSJywgJ0RFRkFVTFRfUkVWSUVXRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVxuICAgICAgXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJ1xuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWxcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX1JFVklFV0VSJ1wiXG4gICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5SZXZpZXdlcnNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdSZXZpZXdlcnMgYXJlIHJlcXVpcmVkIHRvIHJldmlldyByZXNwb25zaWJpbGl0aWVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gV2hlcmUgUmV2aWV3ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXZpZXdlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgaWQ9XCJSZXZpZXdlckhlbHBUZXh0XCJcbiAgICAgICAgICA+JiN4ZWIxNjs8L2lcbiAgICAgICAgPjwvbGFiZWxcbiAgICAgID5cbiAgICAgIDxpbnB1dC13aXRoLXBpbGxcbiAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdERUZBVUxUX1JFVklFV0VSJ1wiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hvIGlzIHJlc3BvbnNpYmxlIGZvciByZXZpZXdpbmcgdGhlIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgIFwiXG4gICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdSRVZJRVdFUicpXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0sICdSRVZJRVdFUicpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmV2aWV3ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdSRVZJRVdFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXZpZXdlckdyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0sJ1JFVklFV0VSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJyZXZpZXdlci5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2NvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdLCdSRVZJRVdFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJldmlld2VyR3JvdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUxpc3QgIT09ICdSRVZJRVdFUidcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlTGlzdCgnUkVWSUVXRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI3Jldmlld2VyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgcmV2aWV3ZXIgb2YgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUocmV2aWV3ZXIsICdSRVZJRVdFUicpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmV2aWV3ZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNyZXZpZXdlckdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdSRVZJRVdFUl9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUxpc3QgPT09ICdSRVZJRVdFUidcIlxuICAgICAgICBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+REVGQVVMVCBSZXZpZXdlclxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ1RoaXMgb3B0aW9uIGxldHMgeW91IHNwZWNpZnkgdGhlIERlZmF1bHQgUmV2aWV3ZXJzIGZvciByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbS4gV2hlcmUgYSB1c2VyIGhhcyBiZWVuIHNwZWNpZmllZCBhcyBhIERlZmF1bHQgUmV2aWV3ZXIsIHRoYXQgdXNlciB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2VsZWN0ZWQgYXMgdGhlIFJldmlld2VyIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiRFJIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnUkVWSUVXRVInXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgcmV2aWV3ZXJzIGZvciB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9SRVZJRVdFUidcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWZhdWx0UmV2aWV3ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdERUZBVUxUX1JFVklFV0VSX0dST1VQJ1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWZhdWx0UmV2aWV3ZXJHcm91cC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7XG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZVswXSwnREVGQVVMVF9SRVZJRVdFUicpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZVswXT8ubWVtYmVyX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudCB1c2VyXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiZGVmYXVsdFJldmlld2VyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWU/Lmxlbmd0aCAtIDF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoICYmIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlPy5sZW5ndGhcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZVswXSwnREVGQVVMVF9SRVZJRVdFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2VcIj57e2NvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImRlZmF1bHRSZXZpZXdlckdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0RFRkFVTFRfUkVWSUVXRVInXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI2RlZmF1bHRSZXZpZXdlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHJldmlld2VyIG9mIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXI/LnZhbHVlXG4gICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKHJldmlld2VyLCAnREVGQVVMVF9SRVZJRVdFUicpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmV2aWV3ZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNkZWZhdWx0UmV2aWV3ZXJHcm91cCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IGdyb3VwIG9mIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlXG4gICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKGdyb3VwLCAnREVGQVVMVF9SRVZJRVdFUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicmFkaW8tZ3JvdXAtc2VsZWN0b3JcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlTGlzdCA9PT0gJ1JFVklFV0VSJ1wiXG4gICAgICA+XG4gICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICBbbmFtZV09XCIncmV2aWV3ZXInXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ1NFUVVFTlRJQUwnXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIlxuICAgICAgICAgICAgc2V0Rm9ybUZpZWxkKCdyZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ1NFUVVFTlRJQUwnKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCA+IDBcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgU0VRVUVOVElBTFxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAnVGhlIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2VudCBmb3IgcmV2aWV3IG9uZSBhdCBhIHRpbWUgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYnkgeW91LidcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTFmOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgPC9hcHAtY3MtcmFkaW8+XG4gICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICBbbmFtZV09XCIncmV2aWV3ZXInXCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhPy52YWx1ZSA9PT0gJ0FOWU9ORScgfHxcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAwXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIlxuICAgICAgICAgICAgc2V0Rm9ybUZpZWxkKCdyZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhJywgJ0FOWU9ORScpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIEFOWSBSRVZJRVdFUiBDQU4gTUFSSyBUSElTIEFTIFJFVklFV0VEXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdUaGUgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzZW50IGZvciByZXZpZXcgdG8gYWxsIHJldmlld2VycyBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhbnlvbmUgb2YgdGhlIHJldmlld2VyIHJldmlld3MgdGhlIHJlc3BvbnNpYmlsaXR5LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgcmV2aWV3ZWQuJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgPlxuICAgICAgICA8L2FwcC1jcy1yYWRpbz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gT3ZlcnNlZXIgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5PVkVSU0VFUlwiXG4gICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCB8fFxuICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgIFwiXG4gICAgICBbYWN0aXZlXT1cImFjdGl2ZUxpc3QgPT09ICdPVkVSU0VFUidcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHM/LmluY2x1ZGVzKGFjdGl2ZUxpc3QpICYmXG4gICAgICAgICFbJ09WRVJTRUVSJywgJ0RFRkFVTFRfT1ZFUlNFRVInLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXS5pbmNsdWRlcyhcbiAgICAgICAgICBhY3RpdmVMaXN0XG4gICAgICAgIClcbiAgICAgIFwiXG4gICAgICBbaW1nXT1cIlxuICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICAgICAgWydERUZBVUxUX09WRVJTRUVSJywgJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJ10uaW5jbHVkZXMoYWN0aXZlTGlzdClcbiAgICAgICAgXCJcbiAgICAgICAgPk92ZXJzaWdodHNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdPdmVyc2lnaHRzIHJlY2VpdmUgdXBkYXRlcyB3aGVuIGEgcmVzcG9uc2liaWxpdHkgaXMgY29tcGxldGVkLCBjb21wbGV0ZWQgd2l0aCBkZWxheSBvciBub3QgY29tcGxldGVkLiBXaGVyZSBPdmVyc2lnaHRzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBPdmVyc2lnaHRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwib3ZlcnNlZXJIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICBbJ0RFRkFVTFRfT1ZFUlNFRVInLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVxuICAgICAgICBcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgJ1dobyBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ09WRVJTRUVSJylcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZVswXSwgJ09WRVJTRUVSJylcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57eyBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnMucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sXG4gICAgICAgICAgICAgICAgICAgICdPVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2Vlckdyb3VwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWVbMF0sJ09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlcnMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggXCIgY2xhc3M9XCJ2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1sLTIgdngtbXItMlwiPiY8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sJ09WRVJTRUVSX0dST1VQJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCIgW2FwcFRvb2x0aXBdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiB0eXBlPVwiYmxhY2tcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX08L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aD4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2Vlckdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggLTF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ09WRVJTRUVSJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdPVkVSU0VFUicpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lucHV0LXdpdGgtcGlsbD5cbiAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgb3ZlcnNlZXIgb2YgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnT1ZFUlNFRVInKVwiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgb3ZlcnNlZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPGFwcC1wb3BvdmVyICNvdmVyc2Vlckdyb3VwIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdPVkVSU0VFUl9HUk9VUCcpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8bmctY29udGFpbmVyIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVMaXN0ID09PSAnT1ZFUlNFRVInXCI+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlsnT1ZFUlNFRVInXS5pbmNsdWRlcyhhY3RpdmVMaXN0KVwiXG4gICAgICAgICAgPkRFRkFVTFQgT3ZlcnNpZ2h0XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBEZWZhdWx0IE92ZXJzaWdodCBmb3IgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0uIFdoZXJlIGEgdXNlciBoYXMgYmVlbiBzcGVjaWZpZWQgYXMgYSBEZWZhdWx0IE92ZXJzaWdodCwgdGhhdCB1c2VyIHdpbGwgYXV0b21hdGljYWxseSBiZSBzZWxlY3RlZCBhcyB0aGUgT3ZlcnNpZ2h0IHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICBpZD1cIkRPSGVscFRleHRcIlxuICAgICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgICAgPjwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgWydPVkVSU0VFUicsICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUiddLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2VsZWN0RGl2XT1cInRydWVcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgb3ZlcnNlZXJzIGZvciB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgICBcIlxuICAgICAgICAgIChzZWxlY3QpPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX09WRVJTRUVSJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9PVkVSU0VFUidcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAre3sgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIlxuICAgICAgICAgICAgICAgID4mPC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZShcbiAgICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9PVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdXG4gICAgICAgICAgICAgICAgICAgICAgPy5ncm91cF9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF1cbiAgICAgICAgICAgICAgICAgICAgICA/Lmdyb3VwX25hbWVcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3ZlcnNlZXJEZWZhdWx0R3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXI/LnZhbHVlWzBdLCdERUZBVUxUX09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVswXT8ubWVtYmVyX25hbWV9fTwvc3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvdW50IHVzZXJcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aFwiIGNsYXNzPVwidngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0yIHZ4LW1yLTJcIj4mPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0sJ0RFRkFVTFRfT1ZFUlNFRVJfR1JPVVAnKVwiID4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiICBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXT8uZ3JvdXBfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgdHlwZT1cImJsYWNrXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4xXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm92ZXJzZWVyRGVmYXVsdEdyb3VwLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVMaXN0ICE9PSAnREVGQVVMVF9PVkVSU0VFUidcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVMaXN0KCdERUZBVUxUX09WRVJTRUVSJylcIlxuICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzRGVmYXVsdCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBvdmVyc2VlciBvZiBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnREVGQVVMVF9PVkVSU0VFUicpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBvdmVyc2Vlcj8ubWVtYmVyX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJEZWZhdWx0R3JvdXAgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgZ3JvdXAgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2Vlcl9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZShncm91cCwgJ0RFRkFVTFRfT1ZFUlNFRVJfR1JPVVAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ3JvdXA/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj4gPC9sYWJlbD5cbiAgICAgICAgPGlucHV0LXdpdGgtcGlsbFxuICAgICAgICAgIGNsYXNzPVwidngtbXQtMlwiXG4gICAgICAgICAgW3NlbGVjdERpdl09XCJ0cnVlXCJcbiAgICAgICAgICBbbGluZV09XCIzXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiWydPVkVSU0VFUicsICdERUZBVUxUX09WRVJTRUVSJ10uaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAgICdXaGljaCBwZXJzb25zIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgb3ZlcnNlZXJzIGZvciByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIG5vdCBjb21wbGV0ZWQgd2l0aGluIHRoaXMgUHJvZ3JhbT8nXG4gICAgICAgICAgXCJcbiAgICAgICAgICAoc2VsZWN0KT1cImFjdGl2YXRlTGlzdCgnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoIHx8XG4gICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF1cbiAgICAgICAgICAgICAgICAgICAgICA/Lm1lbWJlcl9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlWzBdXG4gICAgICAgICAgICAgICAgICAgICAgPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlcnNEZWZhdWx0RmFpbC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICt7e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPy5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICA+Jjwvc3BhblxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICByZW1vdmUoXG4gICAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICAgID8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgPnt7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVswXVxuICAgICAgICAgICAgICAgICAgICAgID8uZ3JvdXBfbmFtZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvdmVyc2VlckRlZmF1bHRGYWlsR3JvdXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgID8ubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAre3tcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWlubmVyXCIgKm5nSWY9XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWU/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZShjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF0sJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJylcIiA+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlXCI+e3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcj8udmFsdWVbMF0/Lm1lbWJlcl9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnQgdXNlclwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIm92ZXJzZWVyc0RlZmF1bHRGYWlsLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGggLTF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggJiYgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlPy5sZW5ndGhcIiBjbGFzcz1cInZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMiB2eC1tci0yXCI+Jjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pbm5lclwiICpuZ0lmPVwiY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlPy5sZW5ndGggXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdLCdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCcpXCIgPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbYXBwVG9vbHRpcF09XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWVbMF0/Lmdyb3VwX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIHR5cGU9XCJibGFja1wiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZVwiPnt7Y29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlWzBdPy5ncm91cF9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwPy52YWx1ZT8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY291bnRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJvdmVyc2VlckRlZmF1bHRGYWlsR3JvdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cD8udmFsdWU/Lmxlbmd0aCAtMX19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJylcIlxuICAgICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICAgIDxhcHAtcG9wb3ZlciAjb3ZlcnNlZXJzRGVmYXVsdEZhaWwgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgb3ZlcnNlZXIgb2YgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJcbiAgICAgICAgICAgICAgICAgICAgPy52YWx1ZSB8IHNsaWNlIDogMVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKG92ZXJzZWVyLCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgb3ZlcnNlZXI/Lm1lbWJlcl9uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICA8YXBwLXBvcG92ZXIgI292ZXJzZWVyRGVmYXVsdEZhaWxHcm91cCBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBncm91cCBvZiBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2Vlcl9ncm91cFxuICAgICAgICAgICAgICAgICAgICA/LnZhbHVlIHwgc2xpY2UgOiAxXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoZ3JvdXAsICdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUl9HUk9VUCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBncm91cD8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gQXNzZXNzbWVudCAtLT5cbiAgICA8Zm9ybS1maWVsZFxuICAgICAgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiXG4gICAgICAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb24/LkFTU0VTU01FTlRcIlxuICAgICAgW2NoZWNrZWRdPVwiY29udHJvbHM/LnByb2dyYW1fYXNzZXNzbWVudHM/LnZhbHVlPy5sZW5ndGhcIlxuICAgICAgW2FjdGl2ZV09XCJhY3RpdmVMaXN0ID09PSAnQVNTRVNTTUVOVCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdCkgJiYgYWN0aXZlTGlzdCAhPT0gJ0FTU0VTU01FTlQnXG4gICAgICBcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICA+QVNTRVNTTUVOVFNcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdBc3Nlc3NtZW50cyBhcmUgYSBkaWdpdGFsIGZvcm0gdGhhdCBhcmUgY3JlYXRlZCBpbiDigJxBc3Nlc3NtZW504oCdIHdpdGhpbiB0aGUgQ29tcGxpYW5jZSBNb2R1bGUuIFdoZXJlIEFzc2Vzc21lbnRzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBBc3Nlc3NtZW50cyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4nXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkFzc2Vzc21lbnRIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8aW5wdXQtd2l0aC1waWxsXG4gICAgICAgIFtzZWxlY3REaXZdPVwidHJ1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgICAnV2hpY2ggYXNzZXNzbWVudHMgY2FuIGJlIGxpbmtlZCB0byB0aGUgcmVzcG9uc2liaWxpdGllcyB3aXRoaW4gdGhpcyBQcm9ncmFtPydcbiAgICAgICAgXCJcbiAgICAgICAgKHNlbGVjdCk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0VTU01FTlQnKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAqbmdJZj1cImNvbnRyb2xzPy5wcm9ncmFtX2Fzc2Vzc21lbnRzPy52YWx1ZT8ubGVuZ3RoXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcbiAgICAgICAgICAgICAgICB8IGFzc2Vzc21lbnRSZXNvbHZlciBhcyBhc3Nlc3NtZW50c1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudHNbMF0sICdBU1NFU1NNRU5UJylcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgYXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwcm9ncmFtX2Fzc2Vzc21lbnRzLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50cz8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBhc3Nlc3NtZW50cz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWUgfCBhc3Nlc3NtZW50UmVzb2x2ZXIpIGFzIGFzc2Vzc21lbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudHNbMF0sJ0FTU0VTU01FTlQnKVwiPiYjeGU5MGQ7PC9pPnt7YXNzZXNzbWVudHNbMF0/LmFzc2Vzc21lbnRfbmFtZX19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFzc2Vzc21lbnRzPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInByb2dyYW1fYXNzZXNzbWVudHMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3thc3Nlc3NtZW50cz8ubGVuZ3RoIC0xIH19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlTGlzdCAhPT0gJ0FTU0VTU01FTlQnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZUxpc3QoJ0FTU0VTU01FTlQnKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9pbnB1dC13aXRoLXBpbGw+XG4gICAgICA8YXBwLXBvcG92ZXIgI3Byb2dyYW1fYXNzZXNzbWVudHMgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICBsZXQgYXNzZXNzbWVudCBvZiBjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBhc3Nlc3NtZW50UmVzb2x2ZXJcbiAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDFcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIChjbGljayk9XCJyZW1vdmUoYXNzZXNzbWVudCwgJ0FTU0VTU01FTlQnKVwiIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2FwcC1wb3BvdmVyPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gRm9ybWF0ICYgRXZpZGVuY2UgLS0+XG4gICAgPGZvcm0tZmllbGRcbiAgICAgIFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIlxuICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uPy5GT1JNQVRFX0VWSURFTkNFXCJcbiAgICAgIFtjaGVja2VkXT1cIlt0cnVlLCBmYWxzZV0uaW5jbHVkZXMoY29udHJvbHM/LmV2aWRlbmNlX3JlcXVpcmVkPy52YWx1ZSlcIlxuICAgICAgW2FjdGl2ZV09XCJmYWxzZVwiXG4gICAgICBbZGlzYWJsZWRdPVwic2lkZUVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUxpc3QpXCJcbiAgICAgIFtpbWddPVwiXG4gICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5FdmlkZW5jZVxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgJ0lmIHNlbGVjdGVkLCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIGEgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSByZXF1aXJlZCBmb3IgYWxsIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uIEFuIEFzc2lnbm9yLCBiZWluZyB0aGUgcGVyc29uIHdobyBjcmVhdGVzIHRoZSByZXNwb25zaWJpbGl0eSwgY2FuIG92ZXJyaWRlIHRoaXMgb3B0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eS4nXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICBpZD1cIkV2aWRlbmNlSGVscFRleHRcIlxuICAgICAgICAgID4mI3hlYjE2OzwvaVxuICAgICAgICA+PC9sYWJlbFxuICAgICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0XCJcbiAgICAgICAgICA+RG8gYWxsIHJlc3BvbnNpYmlsaXRpZXMgd2l0aGluIHRoaXMgcHJvZ3JhbSByZXF1aXJlIGV2aWRlbmNlPzwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cCBwcm9ncmFtXCI+XG4gICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgW25hbWVdPVwiJ2V2aWRlbmNlX3JlcXVpcmVkJ1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJjb250cm9scz8uZXZpZGVuY2VfcmVxdWlyZWQ/LnZhbHVlXCJcbiAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdldmlkZW5jZV9yZXF1aXJlZCcsIHRydWUpXCJcbiAgICAgICAgICAgID5ZRVM8L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBbbmFtZV09XCInZXZpZGVuY2VfcmVxdWlyZWQnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIiFjb250cm9scz8uZXZpZGVuY2VfcmVxdWlyZWQ/LnZhbHVlXCJcbiAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0Rm9ybUZpZWxkKCdldmlkZW5jZV9yZXF1aXJlZCcsIGZhbHNlKVwiXG4gICAgICAgICAgICA+Tk88L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbXItMlwiPkFsbG93IGFueSBmaWxlIHRvIGJlIG1hcmtlZCBhc1xuICAgICAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgICAgICAgZXZpZGVuY2U8L2Rpdj5cbiAgICAgICAgICAgICAgICA8c3dpdGNoIGZvcm1Db250cm9sTmFtZT1cImFsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0Rm9ybUZpZWxkKCdhbGxvd19hbnlfZmlsZV9rZXlfZXZpZGVuY2UnLCRldmVudD8udGFyZ2V0Py5jaGVja2VkKVwiPjwvc3dpdGNoPlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgIDwvZm9ybS1maWVsZD5cblxuICAgIDwhLS0gQ3VzdG9tIEZpZWxkIC0tPlxuICAgIDxmb3JtLWZpZWxkXG4gICAgICBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCJcbiAgICAgICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvbj8uQ1VTVE9NX0ZJRUxEU1wiXG4gICAgICBbY2hlY2tlZF09XCJjb250cm9scz8uY3VzdG9tX2ZpZWxkcz8udmFsdWU/Lmxlbmd0aFwiXG4gICAgICBbYWN0aXZlXT1cImZhbHNlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzaWRlRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlTGlzdClcIlxuICAgICAgW2ltZ109XCJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jdXN0b20tZmllbGRzLnN2ZydcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgID5DVVNUT00gRklFTERcbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLidcbiAgICAgICAgICBcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgIGlkPVwiQ0ZIZWxwVGV4dFwiXG4gICAgICAgICAgPiYjeGViMTY7PC9pXG4gICAgICAgID48L2xhYmVsXG4gICAgICA+XG4gICAgICA8Y3VzdG9tLWZpZWxkIGZvcm1Db250cm9sTmFtZT1cImN1c3RvbV9maWVsZHNcIj48L2N1c3RvbS1maWVsZD5cbiAgICA8L2Zvcm0tZmllbGQ+XG4gIDwvZm9ybT5cbjwvZGl2PlxuXG48IS0tIGxpc3Qgb2Ygcm9sZXMgLS0+XG48cm9sZS1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ1JPTEUnXCJcbiAgW3NlbGVjdGVkXT1cImNvbnRyb2xzPy5wcm9ncmFtX3JvbGVzPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbbG9hZGluZ109XCJsaXN0TG9hZGluZ1N0YXRlLlJPTEVTXCJcbiAgW2xpc3RdPVwibGlzdHM/LlJPTEVTPy5kYXRhID8/IFtdXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdST0xFJylcIlxuICAoY2FuY2VsKT1cImZpZWxkRGVzZWxlY3RvcignUk9MRScpXCJcbiAgW2ZlYXR1cmVmbGFncm9sZV09XCJmZWF0dXJlZmxhZ3JvbGVcIlxuICBbZmVhdHVyZWZsYWdHcm91cF09XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtmZl9yY19saXN0aW5nXT1cImZmX3JjX2xpc3RpbmdcIlxuPjwvcm9sZS1saXN0PlxuXG48IS0tIGxpc3Qgb2YgZnJhbWV3b3JrcyAtLT5cbjwhLS0gPGFwcC1kZWZpbmUtZnJhbWV3b3JrLWxpc3RpbmcgKm5nSWY9XCJhY3RpdmVMaXN0ID09PSAnRlJBTUVXT1JLJ1wiIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdGUkFNRVdPUksnKVwiIChuZXh0KT1cImxpc3RBY3Rpb24oJGV2ZW50LCdGUkFNRVdPUksnKVwiIFttb2RlXT1cIm1vZGVcIiBbc2VsZWN0ZWRGcmFtZXdvcmtdPVwiY29udHJvbHM/LmZyYW1ld29yaz8udmFsdWVcIj48L2FwcC1kZWZpbmUtZnJhbWV3b3JrLWxpc3Rpbmc+IC0tPlxuPCEtLSBsaXN0IG9mIHJlc3BvbnNpYmlsaXR5IGNlbnRlciAtLT5cbjxhcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ1JDJ1wiXG4gIFtyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XT1cImxpc3RzPy5SQyA/PyBbXVwiXG4gIFtyYWRpb1NlbGVjdGlvbl09XCJmYWxzZVwiXG4gIFtyY0lkS2V5XT1cIidyY19pZCdcIlxuICAoY2xvc2VSY0xpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdSQycpXCJcbiAgKHNhdmVTZWxlY3RlZExpc3QpPVwibGlzdEFjdGlvbigkZXZlbnQsICdSQycpXCJcbiAgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzXT1cImNvbnRyb2xzPy5yYz8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbj5cbjwvYXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdD5cbjwhLS0gcmVuZGVyIHVzZXJsaXN0IHdpdGggZ3JvdXAgLS0+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ09XTkVSJ1wiXG4gIFtncm91cEVuYWJsZWRdPVwidHJ1ZVwiXG4gIFtzaW5nbGVTZWxlY3RdPVwiZmFsc2VcIlxuICBbbG9hZGluZ109XCJsaXN0TG9hZGluZ1N0YXRlLlVTRVJTXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5PV05FUlM/LmRhdGEgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9vd25lcnM/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIChmZXRjaFVzZXJEYXRhKT1cImZldGNoVXNlcnNBc3NvY2lhdGVkV2l0aFJvbGVzKGZhbHNlLCAkZXZlbnQpXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uT1dORVJTXCJcbiAgW2dyb3VwTGlzdEluZm9dPVwibGlzdHM/Lk9XTkVSU19HUk9VUFNcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5PV05FUlNfR1JPVVBTPy5kYXRhID8/IFtdXCJcbiAgW3NlbGVjdGVkR3JvdXBzXT1cImNvbnRyb2xzPy5wcm9ncmFtX293bmVyc19ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdPV05FUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ09XTkVSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlT3duZXJcIlxuICBbZmVhdHVyZWZsYWddPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuPjwvdXNlci1ncm91cC1saXN0PlxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdBUFBST1ZFUidcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZhbHNlXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJ0cnVlXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5BUFBST1ZFUlM/LmRhdGEgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9hcHByb3Zlcj8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uQVBQUk9WRVJTXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdBUFBST1ZFUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0FQUFJPVkVSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlQXBwcm92ZXJcIlxuPlxuPC91c2VyLWdyb3VwLWxpc3Q+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ0NPTExBQk9SQVRPUlMnXCJcbiAgW2dyb3VwRW5hYmxlZF09XCJ0cnVlXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbdXNlcmxpc3RdPVwibGlzdHM/LkFTU0lHTkVFUyA/PyBbXVwiXG4gIFtzZWxlY3RlZFVzZXJzXT1cImNvbnRyb2xzPy5jb2xsYWJvcmF0b3JzPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5BU1NJR05FRVNfR1JPVVAgPz8gW11cIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8uY29sbGFib3JhdG9yc19ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2Fzc2lnbm9ySWRdPVwiYXNzaWdub3JJZFwiXG4gIFt1c2VyTGlzdEluZm9dPVwibGlzdHM/LkFTU0lHTkVFU1wiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnQ09MTEFCT1JBVE9SUycpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0NPTExBQk9SQVRPUlMnKVwiXG4gIFtwYW5lbFRpdGxlXT1cInBhbmVsVGl0bGVBc3NpZ25lZVwiXG4gIFtkZWZhdWx0U2VsZWN0ZWRVc2Vyc109XCJcbiAgICBjb250cm9scz8uY29sbGFib3JhdG9ycz8udmFsdWUgfCByZWZEaXNjb25uZWN0XG4gIFwiXG4gIFt1c2VyVHlwZV09XCInYXNzaWduZWVzJ1wiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9BU1NJR05FRSdcIlxuICBbZ3JvdXBFbmFibGVkXT1cInRydWVcIlxuICBbc2luZ2xlU2VsZWN0XT1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwibGlzdExvYWRpbmdTdGF0ZS5VU0VSU1wiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9BU1NJR05FRVMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX0FTU0lHTkVFU19HUk9VUCA/PyBbXVwiXG4gIFtGcm9tUHJvZ3JhbV09XCJ0cnVlXCJcbiAgW3NlbGVjdGVkR3JvdXBzXT1cIlxuICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXA/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFxuICBcIlxuICBbZGlzYWJsZWRJZHNdPVwiZGlzYWJsZWRBc3NpZ25lZUlkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ0Fzc2lnbmVlJ1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW292ZXJzZWVySWRzXT1cInNlbGVjdGVkT3ZlcnNlZXJJZHNcIlxuICBbYXNzaWdub3JJZF09XCJhc3NpZ25vcklkXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9BU1NJR05FRVwiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnREVGQVVMVF9BU1NJR05FRScpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ0RFRkFVTFRfQVNTSUdORUUnKVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cblxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdSRVZJRVdFUicgJiYgKCFmZWF0dXJlZmxhZ0dyb3VwcyB8fCBmZWF0dXJlZmxhZ0dyb3VwcylcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uUkVWSUVXRVJTID8/IFtdXCJcbiAgW3NlbGVjdGVkVXNlcnNdPVwiY29udHJvbHM/LnByb2dyYW1fcmV2aWV3ZXI/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIFtncm91cExpc3RdPVwibGlzdHM/LlJFVklFV0VSU19HUk9VUCA/PyBbXVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVSZXZpZXdlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ1Jldmlld2VyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtvdmVyc2Vlcklkc109XCJzZWxlY3RlZE92ZXJzZWVySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uUkVWSUVXRVJTXCJcbiAgKHNhdmUpPVwibGlzdEFjdGlvbigkZXZlbnQsICdSRVZJRVdFUicpXCJcbiAgKGNhbmNlbCk9XCJmaWVsZERlc2VsZWN0b3IoJ1JFVklFV0VSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlUmV2aWV3ZXJcIlxuICBbZGVmYXVsdFNlbGVjdGVkVXNlcnNdPVwiXG4gICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlcj8udmFsdWUgfCByZWZEaXNjb25uZWN0XG4gIFwiXG4gIFt1c2VyVHlwZV09XCIncmV2aWV3ZXJzJ1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJcbiAgICBhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9SRVZJRVdFUicgJiZcbiAgICAoIWZlYXR1cmVmbGFnR3JvdXBzIHx8IGZlYXR1cmVmbGFnR3JvdXBzKVxuICBcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9SRVZJRVdFUlMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX1JFVklFV0VSU19HUk9VUCA/PyBbXVwiXG4gIFtmZWF0dXJlZmxhZ109XCJmZWF0dXJlZmxhZ0dyb3Vwc1wiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVSZXZpZXdlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ1Jldmlld2VyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtvdmVyc2Vlcklkc109XCJzZWxlY3RlZE92ZXJzZWVySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9SRVZJRVdFUlNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ0RFRkFVTFRfUkVWSUVXRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX1JFVklFV0VSJylcIlxuICBbcGFuZWxUaXRsZV09XCJwYW5lbFRpdGxlRGVmYXVsdFJldmlld2VyXCJcbj5cbjwvdXNlci1ncm91cC1saXN0PlxuPHVzZXItZ3JvdXAtbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdPVkVSU0VFUicgJiYgKCFmZWF0dXJlZmxhZ0dyb3VwcyB8fCBmZWF0dXJlZmxhZ0dyb3VwcylcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uT1ZFUlNFRVJTID8/IFtdXCJcbiAgW3NlbGVjdGVkVXNlcnNdPVwiY29udHJvbHM/LnByb2dyYW1fb3ZlcnNlZXI/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFwiXG4gIFtncm91cExpc3RdPVwibGlzdHM/Lk9WRVJTRUVSU19HUk9VUCA/PyBbXVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJjb250cm9scz8ucHJvZ3JhbV9vdmVyc2Vlcl9ncm91cD8udmFsdWUgfCByZWZEaXNjb25uZWN0XCJcbiAgW2ZlYXR1cmVmbGFnXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVPdmVyc2Vlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ092ZXJzZWVyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uT1ZFUlNFRVNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ09WRVJTRUVSJylcIlxuICAoY2FuY2VsKT1cImZpZWxkRGVzZWxlY3RvcignT1ZFUlNFRVInKVwiXG4gIFtkZWZhdWx0U2VsZWN0ZWRVc2Vyc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZVxuICAgICAgfCByZWZEaXNjb25uZWN0XG4gICAgICB8IGFycmF5Q29uY2F0IDogY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXI/LnZhbHVlXG4gIFwiXG4gIFt1c2VyVHlwZV09XCInb3ZlcnNlZXJzJ1wiXG4+XG48L3VzZXItZ3JvdXAtbGlzdD5cbjx1c2VyLWdyb3VwLWxpc3RcbiAgKm5nSWY9XCJcbiAgICBhY3RpdmVMaXN0ID09PSAnREVGQVVMVF9PVkVSU0VFUicgJiZcbiAgICAoIWZlYXR1cmVmbGFnR3JvdXBzIHx8IGZlYXR1cmVmbGFnR3JvdXBzKVxuICBcIlxuICBbZ3JvdXBFbmFibGVkXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW3NpbmdsZVNlbGVjdF09XCJmYWxzZVwiXG4gIFtsb2FkaW5nXT1cImxpc3RMb2FkaW5nU3RhdGUuVVNFUlNcIlxuICBbRnJvbVByb2dyYW1dPVwidHJ1ZVwiXG4gIFt1c2VybGlzdF09XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlMgPz8gW11cIlxuICBbc2VsZWN0ZWRVc2Vyc109XCJjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcIlxuICBbZ3JvdXBMaXN0XT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSU19HUk9VUCA/PyBbXVwiXG4gIFtzZWxlY3RlZEdyb3Vwc109XCJcbiAgICBjb250cm9scz8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2ZlYXR1cmVmbGFnXT1cImZlYXR1cmVmbGFnR3JvdXBzXCJcbiAgW2Rpc2FibGVkSWRzXT1cImRpc2FibGVPdmVyc2Vlcklkc1wiXG4gIFtmcm9tUmVzcG9uc2liaWxpdHldPVwiJ092ZXJzZWVyJ1wiXG4gIFthc3NpZ25vcklkXT1cImFzc2lnbm9ySWRcIlxuICBbYXNzaWduZWVJZHNdPVwic2VsZWN0ZWRBc3NpZ25lZUlkc1wiXG4gIFtyZXZpZXdlcklkc109XCJzZWxlY3RlZFJldmlld2VySWRzXCJcbiAgW3VzZXJMaXN0SW5mb109XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlNcIlxuICAoc2F2ZSk9XCJsaXN0QWN0aW9uKCRldmVudCwgJ0RFRkFVTFRfT1ZFUlNFRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX09WRVJTRUVSJylcIlxuPlxuPC91c2VyLWdyb3VwLWxpc3Q+XG48dXNlci1ncm91cC1saXN0XG4gICpuZ0lmPVwiXG4gICAgYWN0aXZlTGlzdCA9PT0gJ0RFRkFVTFRfRkFJTEVEX09WRVJTRUVSJyAmJlxuICAgICghZmVhdHVyZWZsYWdHcm91cHMgfHwgZmVhdHVyZWZsYWdHcm91cHMpXG4gIFwiXG4gIFtncm91cEVuYWJsZWRdPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuICBbc2luZ2xlU2VsZWN0XT1cImZhbHNlXCJcbiAgW2xvYWRpbmddPVwibGlzdExvYWRpbmdTdGF0ZS5VU0VSU1wiXG4gIFtGcm9tUHJvZ3JhbV09XCJ0cnVlXCJcbiAgW3VzZXJsaXN0XT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSUyA/PyBbXVwiXG4gIFtzZWxlY3RlZFVzZXJzXT1cIlxuICAgIGNvbnRyb2xzPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyPy52YWx1ZSB8IHJlZkRpc2Nvbm5lY3RcbiAgXCJcbiAgW2dyb3VwTGlzdF09XCJsaXN0cz8uREVGQVVMVF9PVkVSU0VFUlNfR1JPVVAgPz8gW11cIlxuICBbc2VsZWN0ZWRHcm91cHNdPVwiXG4gICAgY29udHJvbHM/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXA/LnZhbHVlIHwgcmVmRGlzY29ubmVjdFxuICBcIlxuICBbZmVhdHVyZWZsYWddPVwiZmVhdHVyZWZsYWdHcm91cHNcIlxuICBbZGlzYWJsZWRJZHNdPVwiZGlzYWJsZU92ZXJzZWVySWRzXCJcbiAgW2Zyb21SZXNwb25zaWJpbGl0eV09XCInT3ZlcnNlZXInXCJcbiAgW2Fzc2lnbm9ySWRdPVwiYXNzaWdub3JJZFwiXG4gIFthc3NpZ25lZUlkc109XCJzZWxlY3RlZEFzc2lnbmVlSWRzXCJcbiAgW3Jldmlld2VySWRzXT1cInNlbGVjdGVkUmV2aWV3ZXJJZHNcIlxuICBbdXNlckxpc3RJbmZvXT1cImxpc3RzPy5ERUZBVUxUX09WRVJTRUVSU1wiXG4gIChzYXZlKT1cImxpc3RBY3Rpb24oJGV2ZW50LCAnREVGQVVMVF9GQUlMRURfT1ZFUlNFRVInKVwiXG4gIChjYW5jZWwpPVwiZmllbGREZXNlbGVjdG9yKCdERUZBVUxUX0ZBSUxFRF9PVkVSU0VFUicpXCJcbj5cbjwvdXNlci1ncm91cC1saXN0PlxuPGFzc2Vzc21lbnQtcGlja2VyXG4gICpuZ0lmPVwiYWN0aXZlTGlzdCA9PT0gJ0FTU0VTU01FTlQnXCJcbiAgW3NlbGVjdGVkQXNzZXNzbWVudF09XCJjb250cm9scz8ucHJvZ3JhbV9hc3Nlc3NtZW50cz8udmFsdWVcIlxuICAoY2FuY2VsQXNzZXNzbWVudCk9XCJmaWVsZERlc2VsZWN0b3IoJ0FTU0VTU01FTlQnKVwiXG4gIChvbkFzc2Vzc21lbnRTZWxlY3QpPVwibGlzdEFjdGlvbigkZXZlbnQsICdBU1NFU1NNRU5UJylcIlxuPjwvYXNzZXNzbWVudC1waWNrZXI+XG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcbiAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXG4+XG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cblxuPCEtLSBGcmFtZXdvcmsgc2VsZWN0b3IgIC0tPlxuPGFwcC1mcmFtZXdvcmstbGlzdFxuICAqbmdJZj1cImFjdGl2ZUxpc3QgPT09ICdGUkFNRVdPUksnXCJcbiAgW3dvcmtmbG93UGFnZV09XCJbJ0ZSQU1FV09SSyddXCJcbiAgKGFzc2lnbkNvbnRyb2wpPVwibGlzdEFjdGlvbigkZXZlbnQsICdGUkFNRVdPUksnKVwiXG4gIChjbG9zZUZyYW1ld29yayk9XCJmaWVsZERlc2VsZWN0b3IoJ0ZSQU1FV09SSycpXCJcbiAgW3ByZXZpb3VzU2VsZWN0ZWRWYWx1ZXNdPVwieyBmcmFtZXdvcms6IGNvbnRyb2xzPy5mcmFtZXdvcmsudmFsdWUgfVwiXG4gIChlbnRydXN0RnJhbWV3b3JrKT1cImVudHJ1c3RGcmFtZXdvcmsoJGV2ZW50KVwiXG4gIFtoZWFkZXJUZXh0XT1cIidTZWxlY3QgYSBmcmFtZXdvcmsnXCJcbj48L2FwcC1mcmFtZXdvcmstbGlzdD4iXX0=
|