@csmart/ngc-smart-victim 1.14.1 → 1.14.3
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +2 -1
- package/esm2020/lib/smart-victim.component.mjs +11 -9
- package/fesm2015/csmart-ngc-smart-victim.mjs +11 -8
- package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -1
- package/fesm2020/csmart-ngc-smart-victim.mjs +11 -8
- package/fesm2020/csmart-ngc-smart-victim.mjs.map +1 -1
- package/package.json +1 -1
@@ -1031,6 +1031,7 @@ export class SmartVictimDetailComponent {
|
|
1031
1031
|
});
|
1032
1032
|
}
|
1033
1033
|
} //end of this.phoneValidationFlag = false
|
1034
|
+
console.log('11/7/23');
|
1034
1035
|
console.log('this.victimDetail');
|
1035
1036
|
console.log(this.victimDetail);
|
1036
1037
|
this.onSave.emit(this.victimDetail);
|
@@ -1064,4 +1065,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1064
1065
|
type: ViewChild,
|
1065
1066
|
args: ["addressComponent"]
|
1066
1067
|
}] } });
|
1067
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0Isa0JBQWtCLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFDLE1BQUksdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUs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Q0FBQyxDQUFDLElBQUk7b0JBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRO3dCQUNoQyxDQUFDLENBQUMsSUFBSTtvQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUTt3QkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ2hDLENBQUMsQ0FBQyxJQUFJO29CQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO3dCQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUzt3QkFDakMsQ0FBQyxDQUFDLElBQUk7b0JBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVU7d0JBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVO3dCQUNsQyxDQUFDLENBQUMsSUFBSTtvQkFDUixvQkFBb0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7b0JBQ2hFLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO29CQUMxQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7b0JBRTVELFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO29CQUMxQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztvQkFDMUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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QyxZQUFZLENBQUMsQ0FBQztJQUVsQyxDQUFDO0lBRUwsMEJBQTBCO0lBQ3RCLFVBQVU7UUFFTixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGVBQWUsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQWE7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzswSUFsdkNNLDBCQUEwQjs4SEFBMUIsMEJBQTBCLGtOQUYxQixDQUFDLG1CQUFtQixDQUFDLHFLQ3BFbEMsdXk4Q0EwMUJBOzJGRHB4QmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHNCQUFzQixhQUdyQixDQUFDLG1CQUFtQixDQUFDOzBTQUd2QixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ3dCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQ29udHJvbCxWYWxpZGF0b3JzLFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSwgTWF0UmFkaW9Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgVmljdGltLFZpY3RpbURydWdVc2UsIENvbnRhY3QsIFZpY3RpbUFkdm9jYXRlLFZpY3RpbUd1YXJkaWFuLFZpY3RpbVdlYXBvblVzZSxWaWN0aW1TdXBwb3J0IH0gZnJvbSAnLi4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdmljdGltLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tbW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi9jb21tb24tZGlhbG9nL2NvbW1vbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBmb3JtYXREYXRlLCBMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5fWZyb20nQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0b3JzLCBTbWFydEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1hZGRyZXNzJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQm9vbGVhbkZuIHtcclxuICAoKTogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0ZuIHtcclxuICAoKTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uZGl0aW9uYWxWYWxpZGF0b3IocHJlZGljYXRlOiBCb29sZWFuRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKSkge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKHByZWRpY2F0ZTogU3RyaW5nRm4sXHJcbiAgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbixcclxuICBlcnJvck5hbWVzcGFjZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxucmV0dXJuIChmb3JtQ29udHJvbCA9PiB7XHJcbmlmICghZm9ybUNvbnRyb2wucGFyZW50KSB7XHJcbnJldHVybiBudWxsO1xyXG59XHJcbmxldCBlcnJvciA9IG51bGw7XHJcbmlmIChwcmVkaWNhdGUoKT09J1lTJykge1xyXG5lcnJvciA9IHZhbGlkYXRvcihmb3JtQ29udHJvbCk7XHJcbn1cclxuaWYgKGVycm9yTmFtZXNwYWNlICYmIGVycm9yKSB7XHJcbmNvbnN0IGN1c3RvbUVycm9yID0ge307XHJcbmN1c3RvbUVycm9yW2Vycm9yTmFtZXNwYWNlXSA9IGVycm9yO1xyXG5lcnJvciA9IGN1c3RvbUVycm9yXHJcbn1cclxucmV0dXJuIGVycm9yO1xyXG59KVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NzbWFydC12aWN0aW0tZGV0YWlsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbQ29tbW9uRGlhbG9nU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgQElucHV0KCkgc3RhZmZJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0ludGFrZTogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZChcImFkZHJlc3NDb21wb25lbnRcIikgYWRkcmVzc0NvbXBvbmVudDogU21hcnRBZGRyZXNzQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgdmljdGltSWQ6IG51bWJlcjtcclxuICB2aWN0aW1Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICBkcnVnczogYW55O1xyXG4gIHZpY3RpbVN1cHBvcnRUeXBlczogYW55O1xyXG4gIHByZWZpeGVzOiBhbnk7XHJcbiAgLy92aWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgc3VmZml4ZXM6IGFueTtcclxuICByZWxhdGlvbnNoaXBUeXBlczogYW55O1xyXG4gIGdlbmRlcnM6IGFueTtcclxuICBkb2NrZXRsaXN0OiBhbnk7XHJcbiAgd2VhcG9uVHlwZXM6IGFueTtcclxuICBmbGFnT3B0aW9uOiBhbnk7XHJcbiAgc2VsZWN0ZWRXZWFwb25UeXBlczogYW55O1xyXG4gIHNlbGVjdGVkVmljdGltU3VwcG9ydFR5cGVzOiBhbnk7XHJcbiAgc2VsZWN0ZWREcnVnczogYW55O1xyXG4gIGlkOiBhbnk7XHJcbiAgaGlkZGVuOiBib29sZWFuPXRydWU7XHJcbiAgcHJpdmF0ZSBzdWI6IGFueTtcclxuICB2aWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUgPSAgPFZpY3RpbUFkdm9jYXRlPnt9O1xyXG4gIHZpY3RpbUd1YXJkaWFuOiBWaWN0aW1HdWFyZGlhbiA9IDxWaWN0aW1HdWFyZGlhbj57fTtcclxuICB2aWN0aW1XZWFwb25Vc2U6IFZpY3RpbVdlYXBvblVzZTtcclxuICB2aWN0aW1TdXBwb3J0OiBWaWN0aW1TdXBwb3J0O1xyXG4gIHZpY3RpbURydWdVc2U6IFZpY3RpbURydWdVc2U7XHJcbiAgcmVzdWx0OiBhbnk7XHJcbiAgZWRpdE1vZGU6IGFueTtcclxuICBndWFyZGlhblRhYkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhZHZvY2F0ZVRhYkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb21tb25DaGlsZHJlbkRpdkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjcG9FeHBpcmF0aW9uRGl2RmxhZyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdXBwb3J0SW5QbGFjZURpdkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3ZWFwb25JbnZvbHZlZERpdkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcnVnVXNlRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEZWxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhZGRyZXNzSWQ6IG51bWJlciA9IDA7XHJcbiAgYWR2b2NhdGVBZGRyZXNzSWQ6IG51bWJlciA9IDA7XHJcbiAgZ3VhcmRpYW5BZGRyZXNzSWQ6IG51bWJlciA9IDA7XHJcbiAgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUoJ2VuLVVTJyk7XHJcbiAgZW1haWxQYXR0ZXJuID0gXCJeW2EtejAtOS5fJSstXStAW2EtejAtOS4tXStcXC5bYS16XXsyLDR9JFwiO1xyXG4gIHBob25lTnVtYmVyID0gXCJcXFxcZHsxMH1cIjtcclxuICBlZGl0VmljdGltOiBWaWN0aW0gPSA8VmljdGltPnt9O1xyXG4gIHZpY3RpbUFnZTogbnVtYmVyO1xyXG4gIG90aGVyV2VhcG9uRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG90aGVyRHJ1Z0ZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29udGFjdERhdGFTb3VyY2U9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICBjb250YWN0TGlzdDogQ29udGFjdFtdO1xyXG4gIGd1YXJkaWFuUGhvbmVFeGlzdEZsYWc6IGJvb2xlYW4gPSAgZmFsc2U7XHJcbiAgYWR2b2NhdGVQaG9uZUV4aXN0RmxhZzogYm9vbGVhbiA9ICBmYWxzZTtcclxuICBwaG9uZVZhbGlkYXRpb25GbGFnOiBib29sZWFuID0gIGZhbHNlO1xyXG4gIGd1YXJpZGFuTm9QaG9uZUNoa0ZsYWc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGFkdm9jYXRlTm9QaG9uZUNoa0ZsYWc6IGJvb2xlYW4gPSAgdHJ1ZTtcclxuXHJcbiAgYWRkcmVzc1ZhbGlkYXRvcnM6IEFkZHJlc3NWYWxpZGF0b3JzID0ge1xyXG4gICAgc3RyZWV0OiBbXSxcclxuICAgIHN0cmVldDI6IFtdLFxyXG4gICAgY2l0eTogW10sXHJcbiAgICBzdGF0ZUNvZGU6IFtdLFxyXG4gICAgemlwQ29kZTogW10sXHJcbiAgICBwc2FDb2RlOiBbXSxcclxuICB9O1xyXG5cclxuIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgY29tbW9uRGlhbG9nU2VydmljZTogQ29tbW9uRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgdmljdGltU2VydmljZTogTmdjU21hcnRWaWN0aW1TZXJ2aWNlKSB7XHJcbiAgICAgICB0aGlzLmluaXRGb3JtKCk7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgaW5pdEZvcm0oKSB7XHJcblxyXG4gICAgdGhpcy52aWN0aW1Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiAgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIGZpcnN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgbWlkZGxlTmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgcHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1ZmZpeElkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBnZW5kZXJDb2RlOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGJpcnRoRGF0ZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgaG9tZVBob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBjZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHdvcmtQaG9uZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgbWlub3JGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbIFZhbGlkYXRvcnMucmVxdWlyZWRdKSksXHJcbiAgICAgIHZpY3RpbUFkdm9jYXRlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgZ3VhcmRpYW5MYXN0TmFtZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCAgc3RyaW5nQ29uZGl0aW9uYWxWYWxpZGF0b3IoKCkgPT4gdGhpcy52aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudmFsdWUsICBWYWxpZGF0b3JzLnJlcXVpcmVkLCAnaWxsdW1pbmF0aUVycm9yJykgKSxcclxuICAgICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGd1YXJkaWFuUHJlZml4SWQ6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZ3VhcmRpYW5TdWZmaXhJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgLy9ndWFyZGlhbkdlbmRlcjpuZXcgRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGd1YXJkaWFuQmlydGhEYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBndWFyZGlhbk5vUGhvbmVGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2wodHJ1ZSksXHJcblxyXG4gICAgICBndWFyZGlhbkhvbWVQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGd1YXJkaWFuQ2VsbFBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgZ3VhcmRpYW5Xb3JrUGhvbmU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG5cclxuXHJcbiAgICAgIGd1YXJkaWFuRW1haWw6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgYWR2b2NhdGVOb1Bob25lRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh0cnVlKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVdvcmtQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGFkdm9jYXRlSG9tZVBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgYWR2b2NhdGVDZWxsUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuXHJcblxyXG4gICAgICBhZHZvY2F0ZVN1ZmZpeElkOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlUHJlZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFkdm9jYXRlRmlyc3ROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlTGFzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKCgpID0+IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLnZhbHVlLCBWYWxpZGF0b3JzLnJlcXVpcmVkLCdpbGx1bWluYXRpRXJyb3InKSksXHJcbiAgICAgIGFkdm9jYXRlRW1haWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuZW1haWxQYXR0ZXJuKSBdKSksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3Q6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcbiAgICAgIGVtZXJnZW5jeUNoaWxkcmVuOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWVyZ2VuY3lDcG86IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeURydWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5U3VwcG9ydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5V2VhcG9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBkcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB3ZWFwb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNvbW1vbkNoaWxkcmVuRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY3BvRXhwaXJhdGlvbkZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNwb0V4cGlyYXRpb25EYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhY2Nlc3NSaXNrOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGRydWdVc2VGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHN1cHBvcnRJblBsYWNlRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgd2VhcG9uSW52b2x2ZWRGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBvdGhlcldlYXBvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgb3RoZXJEcnVnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBhbGNvaG9sVXNlRmxhZzpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1TdXBwb3J0czpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB2aWN0aW1XZWFwb25Vc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHZpY3RpbURydWdVc2VzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcblxyXG5cclxufSk7XHJcblxyXG4gICAgdGhpcy52aWN0aW1Gb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcblx0XHR0aGlzLnZpY3RpbUZvcm0ubWFya0FzVW50b3VjaGVkKCk7XHJcblxyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIF9nZXRWaWN0aW0oKSB7XHJcbiAgICBpZiAodGhpcy52aWN0aW1JZCA9PT0gMCkge1xyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfTtcclxuXHRcdGlmICh0aGlzLmVkaXRNb2RlID09IHRydWUpIHtcclxuICAgIGNvbnNvbGUubG9nKCdmaW5kIHZpY3RpbSBpZCBpbnNpZGUgZ2V0VmljdGltJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUlkKTtcclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1JZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLnN1YiA9IHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLnZpY3RpbUlkID0gcGFyYW1zWyd2aWN0aW1JZCddO1xyXG4gICAgICBjb25zb2xlLmxvZygnbXkgdGhpcy52aWN0aW1JZCcpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUlkKTtcclxuICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFZpY3RpbSh0aGlzLnZpY3RpbUlkKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2aWN0aW06IFZpY3RpbSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCd2aWN0aW0gZGF0YSAxJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2codmljdGltKTtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0gPSA8VmljdGltPnZpY3RpbTtcclxuXHJcbiAgICAgICAgdmFyIHN1cHBvcnRzRGF0YSA9W107XHJcbiAgICAgICAgdGhpcy5lZGl0VmljdGltLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goIHQ9PntzdXBwb3J0c0RhdGEucHVzaCh0LnZpY3RpbVN1cHBvcnRUeXBlSWQpOyB9ICApXHJcbiAgICAgICAgY29uc3QgdmljdGltU3VwcG9ydHNDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltU3VwcG9ydHMnKTtcclxuICAgICAgICB2aWN0aW1TdXBwb3J0c0NvbnRyb2wuc2V0VmFsdWUoc3VwcG9ydHNEYXRhKTtcclxuXHJcblxyXG4gICAgICAgIHZhciB3ZWFwb25Vc2VzRGF0YSA9W107XHJcbiAgICAgICAgdmFyIG90aGVyV2VhcG9uID0gXCJcIjtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0udmljdGltV2VhcG9uVXNlcy5mb3JFYWNoKCB0PT57XHJcbiAgICAgICAgICB3ZWFwb25Vc2VzRGF0YS5wdXNoKHQud2VhcG9uVHlwZUlkKTtcclxuICAgICAgICAgIGlmICh0LndlYXBvblR5cGVJZCA9PSBcIk9USEVSXCIpe1xyXG4gICAgICAgICAgICBvdGhlcldlYXBvbiA9IHQub3RoZXJXZWFwb247XHJcbiAgICAgICAgICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuXHJcbiAgICAgICAgY29uc3QgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1XZWFwb25Vc2VzJyk7XHJcbiAgICAgICAgdmljdGltV2VhcG9uVXNlc0NvbnRyb2wuc2V0VmFsdWUod2VhcG9uVXNlc0RhdGEpO1xyXG5cclxuICAgICAgICBjb25zdCBvdGhlcldlYXBvbkNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpO1xyXG4gICAgICAgIG90aGVyV2VhcG9uQ29udHJvbC5zZXRWYWx1ZShvdGhlcldlYXBvbik7XHJcblxyXG5cclxuICAgICAgICAvL3RoaXMud2VhcG9uVXNlc0RhdGEgPSB0aGlzLmVkaXRWaWN0aW0udmljdGltV2VhcG9uVXNlcztcclxuXHJcbiAgICAgICAgdmFyIGRydWdVc2VEYXRhID1bXTtcclxuICAgICAgICB2YXIgb3RoZXJEcnVnID0gXCJcIjtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coJ2xvYWQgdGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzKTtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0udmljdGltRHJ1Z1VzZXMuZm9yRWFjaCggdD0+e1xyXG5cclxuICAgICAgICAgIGlmICh0LmRydWdUeXBlSWQgPT09IG51bGwpe1xyXG4gICAgICAgICAgICBvdGhlckRydWcgPSB0Lm90aGVyRHJ1ZztcclxuICAgICAgICAgICAgdGhpcy5vdGhlckRydWdGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgICAgdC5kcnVnVHlwZUlkID0nT1RIRVInO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRydWdVc2VEYXRhLnB1c2godC5kcnVnVHlwZUlkKTtcclxuXHJcbiAgICAgICAgfSAgKVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy5lZGl0VmljdGltLnZpY3RpbURydWdVc2VzIGFmdGVyIHB1c2gnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhkcnVnVXNlRGF0YSk7XHJcblxyXG5cclxuICAgICAgICBpZiAoZHJ1Z1VzZURhdGEpe1xyXG4gICAgICAgICAgY29uc3QgdmljdGltRHJ1Z1VzZXNDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltRHJ1Z1VzZXMnKTtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2VzQ29udHJvbC5zZXRWYWx1ZShkcnVnVXNlRGF0YSk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG90aGVyRHJ1Zyl7XHJcbiAgICAgICAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbHVlKG90aGVyRHJ1Zyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL2NvbnRhY3RcclxuICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0Q29udGFjdHModGhpcy52aWN0aW1JZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgY29udGFjdExpc3QgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29udGFjdExpc3QnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coY29udGFjdExpc3QpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RMaXN0ID0gY29udGFjdExpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFjdERhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udGFjdExpc3Q7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLy9ubyBwaG9uZSBmaWVsZFxyXG5cclxuICAgICAgICBpZiAoIHRoaXMuZWRpdFZpY3RpbS5ndWFyZGlhbk5vUGhvbmVGbGFnID09PSBmYWxzZSApe1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2d1YXJkaWFuTm9QaG9uZUZsYWc6IGZhbHNlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggdGhpcy5lZGl0VmljdGltLmFkdm9jYXRlTm9QaG9uZUZsYWcgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWR2b2NhdGVOb1Bob25lRmxhZzogZmFsc2V9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKFwiRXJyb3Igb2NjdXJlZCB3aGlsZSByZXRyaXZpbmcgVmljdGltIEluZm9ybWF0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLlwiKTtcclxuICAgICAgfSk7XHJcbiAgICByZXR1cm47XHJcblx0XHR9IGVsc2Uge1xyXG4gICAgICAvL25ld1xyXG5cclxuICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpIHtcclxuICAgIGlmICh0aGlzLmFkZHJlc3NDb21wb25lbnQpIHRoaXMuYWRkcmVzc0NvbXBvbmVudC5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0FkZHJlc3ModmFsdWUpe1xyXG5cclxuICAgIGlmICh2YWx1ZS5jaGVja2VkKXtcclxuXHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0Q3VycmVudEhvdXNpbmcodGhpcy5vZmZlbmRlcklkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFkZHJlc3NJZCA9IGl0ZW0uaG91c2luZy5hZGRyZXNzSWQ7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2FkZHJlc3NJZDogdGhpcy5hZGRyZXNzSWR9KVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5hZGRyZXNzQ29tcG9uZW50LnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuZWRpdFZpY3RpbS5hbGxvd0Nzb3NhQ29udGFjdEZsYWcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZGRyZXNzSWQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBvbkFkZHJlc3NDaGFuZ2UoYWRkcmVzc0lkKSB7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWRkcmVzc0lkOiBhZGRyZXNzSWR9KVxyXG4gICAgdGhpcy5hZGRyZXNzSWQgPSBhZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKE15R3VhcmRpYW5BZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbkFkZHJlc3NJZDogTXlHdWFyZGlhbkFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIE15R3VhcmRpYW5BZGRyZXNzSWQ7XHJcbiAgfVxyXG4gIG9uQWR2b2NhdGVBZGRyZXNzQ2hhbmdlKE15QWR2b2NhdGVBZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZUFkZHJlc3NJZDogTXlBZHZvY2F0ZUFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gTXlBZHZvY2F0ZUFkZHJlc3NJZDtcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnJlc2V0KCk7XHJcbn1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgY29uc29sZS5sb2coJ3Nob3cgb2ZmZW5kZXJJZCcpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vZmZlbmRlcklkKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93IHN0YWZmSWQnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZygnc2hvdyBpc0ludGFrZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pc0ludGFrZSk7XHJcbiAgICAvL3RoaXMudmljdGltRGV0YWlsLmd1YXJkaWFuTm9QaG9uZUZsYWcgPSB0cnVlO1xyXG4gICAgLy90aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZyA9ICB0cnVlO1xyXG4gICAgLy90aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbk5vUGhvbmVGbGFnJykuc2V0VmFsdWUodHJ1ZSk7XHJcblxyXG4gICAgICAgLy9yZXF1aXJlZCBmaWVsZFxyXG4gICAgY29uc3QgcmVxdWlyZWRJbXBsZW1lbnRhdGlvbiA9IHtnZXQ6ZnVuY3Rpb24oKTpib29sZWFue2lmKHRoaXMuX3JlcXVpcmVkKXtyZXR1cm4gdGhpcy5fcmVxdWlyZWQ7fVxyXG4gICAgaWYodGhpcy5uZ0NvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wmJnRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yXHJcbiAgICAgICl7Y29uc3QgZW1wdHlWYWx1ZUNvbnRyb2w9T2JqZWN0LmFzc2lnbih7fSxcclxuICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sKTsoZW1wdHlWYWx1ZUNvbnRyb2wgYXMgYW55KS52YWx1ZT1udWxsO1xyXG4gICAgICAgIHJldHVybigncmVxdWlyZWQnaW4odGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3IoZW1wdHlWYWx1ZUNvbnRyb2wpfHx7fSkpO31cclxuICAgICAgICByZXR1cm4gZmFsc2U7fSxzZXQ6ZnVuY3Rpb24odmFsdWU6Ym9vbGVhbil7dGhpcy5fcmVxdWlyZWQ9Y29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTt9LH07XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hdElucHV0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0U2VsZWN0LnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0UmFkaW9Hcm91cC5wcm90b3R5cGUsJ3JlcXVpcmVkJyxyZXF1aXJlZEltcGxlbWVudGF0aW9uLCk7XHJcbiAgICAvL3JlcXVpcmVkIGZpZWxkIGVuZFxyXG5cclxuXHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbURldGFpbCE9bnVsbCkge1xyXG4gICAgICAgLy8gZWRpdCByZWNvcmRcclxuICAgICAgdGhpcy5lZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd0RlbGV0ZT0gdHJ1ZTtcclxuICAgICAgdGhpcy52aWN0aW1JZCA9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG5cclxuICAgICAgdGhpcy5ndWFyZGlhblRhYkZsYWcgPSB0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWc7XHJcblxyXG5cclxuICAgICAgaWYgKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUFkdm9jYXRlRmxhZz09J1lTJyl7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVUYWJGbGFnID0gdHJ1ZTtcclxuICAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLm90aGVyV2VhcG9uRmxhZyA9PSB0cnVlKXtcclxuICAgICAgICBjb25zdCBvdGhlcldlYXBvbkNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpO1xyXG4gICAgICAgIG90aGVyV2VhcG9uQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMub3RoZXJEcnVnRmxhZyA9PSB0cnVlKXtcclxuICAgICAgICBjb25zdCBvdGhlckRydWdDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJyk7XHJcbiAgICAgICAgb3RoZXJEcnVnQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jcG9FeHBpcmF0aW9uRGl2RmxhZyAgPXRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25GbGFnO1xyXG4gICAgICB0aGlzLmNvbW1vbkNoaWxkcmVuRGl2RmxhZyA9IHRoaXMudmljdGltRGV0YWlsLmNvbW1vbkNoaWxkcmVuRmxhZztcclxuICAgICAgdGhpcy5zdXBwb3J0SW5QbGFjZURpdkZsYWc9ICB0aGlzLnZpY3RpbURldGFpbC5zdXBwb3J0SW5QbGFjZUZsYWc7XHJcbiAgICAgIHRoaXMud2VhcG9uSW52b2x2ZWREaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwud2VhcG9uSW52b2x2ZWRGbGFnO1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnPSAgdGhpcy52aWN0aW1EZXRhaWwuZHJ1Z1VzZUZsYWc7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0lkID0gdGhpcy52aWN0aW1EZXRhaWwuYWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmd1YXJkaWFuQWRkcmVzc0lkO1xyXG4gICAgICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlQWRkcmVzc0lkO1xyXG5cclxuICAgICAgdGhpcy5fZ2V0VmljdGltKCk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy9hZGQgbmV3IHJlY29yZFxyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7Z3VhcmRpYW5Ob1Bob25lRmxhZzogdHJ1ZX0pO1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWR2b2NhdGVOb1Bob25lRmxhZzogdHJ1ZX0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0RmxhZ09wdGlvblllc05vVW5rbm93bnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5mbGFnT3B0aW9uID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0R2VuZGVycygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdlbmRlcnMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRQcmVmaXhlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByZWZpeGVzID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0U3VmZml4ZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWZmaXhlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFJlbGF0aW9uc2hpcFR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVsYXRpb25zaGlwVHlwZXMgPSBpdGVtcy5maWx0ZXIoICh5KSA9PiAoeS5yZWxhdGlvbnNoaXBDYXRlZ29yeUlkID09PSAnU1QnIHx8IHkucmVsYXRpb25zaGlwQ2F0ZWdvcnlJZCA9PT0gJ0ZNJyApKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRTdXBwb3J0VHlwZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy52aWN0aW1TdXBwb3J0VHlwZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRXZWFwb25UeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLndlYXBvblR5cGVzID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0RHJ1Z3NUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZHJ1ZyBsb29rdXAgaXRlbXMnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpdGVtcyk7XHJcbiAgICAgICAgdGhpcy5kcnVncyA9IGl0ZW1zO1xyXG4gICAgICAgIHRoaXMuZHJ1Z3MucHVzaCh7ZHJ1Z1R5cGVJZDogJ09USEVSJywgbmFtZTogJ090aGVyJ30pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZHJ1Z3MpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgLy8gdGhpcy52aWN0aW1TZXJ2aWNlLmdldERvY2tldExpc3QodGhpcy5vZmZlbmRlcklkKS5zdWJzY3JpYmUoXHJcbiAgICAvLyAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5kb2NrZXRsaXN0ID0gaXRlbXM7XHJcbiAgICAvLyAgIH1cclxuXHJcbiAgICAvLyApO1xyXG5cclxuICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnZhbHVlQ2hhbmdlc1xyXG4gICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbldvcmtQaG9uZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkhvbWVQaG9uZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkNlbGxQaG9uZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudmFsdWVDaGFuZ2VzXHJcbiAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUZpcnN0TmFtZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlQ2VsbFBob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGJhY2soKXtcclxuXHJcbiAgICAvL3RoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW1MaXN0J10pO1xyXG5cclxuICB9XHJcblxyXG4gIGRlbGV0ZVZpY3RpbSgpIHtcclxuICAgIHRoaXMuY29tbW9uRGlhbG9nU2VydmljZVxyXG4gICAgLmNvbmZpcm0oJycsICdEbyB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBWaWN0aW0/JywgJ1llcycsICdObycpXHJcbiAgICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG4gICAgICAgIGlmICh0aGlzLnJlc3VsdCkge1xyXG4gICAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZGVsZXRlVmljdGltcyh0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZClcclxuICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RlbGV0ZSBTdWNjZXNzZnVsbHkhJywgJycsIHtcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLCB9KTt9XHJcblxyXG4gICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWyd2aWN0aW0nXSk7XHJcbiAgICAgICAgICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG4gICAgICAgIH1cclxuICAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICByYWRpb01pbm9yQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAvLyBjb25zdCBndWFyZGlhbkxhc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKTtcclxuICAgIC8vY29uc3QgZ3VhcmRpYW5GaXJzdE5hbWVDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKTtcclxuXHJcblxyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmd1YXJkaWFuVGFiRmxhZyA9IHRydWU7XHJcbiAgICAgLy8gZ3VhcmRpYW5MYXN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAvLyBndWFyZGlhbkZpcnN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgLy90aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZyA9ICB0cnVlO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmd1YXJkaWFuVGFiRmxhZyA9IGZhbHNlO1xyXG4gICAgIC8vIGd1YXJkaWFuTGFzdE5hbWVDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgIC8vIGd1YXJkaWFuRmlyc3ROYW1lQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHRcdC8vZ3VhcmRpYW5MYXN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAvLyBndWFyZGlhbkZpcnN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cclxuICB9XHJcblxyXG4gIHJhZGlvQWR2b2NhdGVDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcblxyXG4gICAgY29uc3QgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJyk7XHJcbiAgICBjb25zdCBhZHZvY2F0ZUZpcnN0TmFtZUNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUZpcnN0TmFtZScpO1xyXG4gICAgLy8gY29uc3QgYWR2b2NhdGVOb1Bob25lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTm9QaG9uZUZsYWcnKTtcclxuXHJcblxyXG5cclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IFwiWVNcIikge1xyXG4gICAgICB0aGlzLmFkdm9jYXRlVGFiRmxhZyA9IHRydWU7XHJcbiAgICAgIGFkdm9jYXRlTGFzdE5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIGFkdm9jYXRlRmlyc3ROYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmFkdm9jYXRlVGFiRmxhZyA9IGZhbHNlO1xyXG5cclxuICAgICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIGFkdm9jYXRlRmlyc3ROYW1lQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuXHJcbiAgfVxyXG5cclxuICByYWRpb0NpY0NoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5jb21tb25DaGlsZHJlbkRpdkZsYWcgPSB0cnVlO1xyXG4gICAgICAvLyByZXF1cmllIGZpZWxkXHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygnY29tbW9uQ2hpbGRyZW4nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY29tbW9uQ2hpbGRyZW5EaXZGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0b3JzKHR5cGUpIHtcclxuICAgIGlmKHR5cGUgPT0gJ2NvbW1vbkNoaWxkcmVuJyl7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdjb21tb25DaGlsZHJlbk51bWJlcicpLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY29tbW9uQ2hpbGRyZW5OdW1iZXInKS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICB9XHJcbiAgIGVsc2UgaWYgKHR5cGUgPT0gJ2Nwbycpe1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY3BvRXhwaXJhdGlvbkRhdGUnKS5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Nwb0V4cGlyYXRpb25EYXRlJykuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcbiAgIH1cclxuICB9XHJcbiAgcmFkaW9TdXBwb3J0Q2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICByYWRpb1dlYXBvbkNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuICAgIGlmICgkZXZlbnQudmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmFkaW9EcnVnQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRydWdVc2VEaXZGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZHJ1Z1VzZURpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ3BvQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNwb0V4cGlyYXRpb25EaXZGbGFnID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzKCdjcG8nKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuY3BvRXhwaXJhdGlvbkRpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZURPQkNoYW5nZSgkZXZlbnQgKXtcclxuICAgdmFyIGFnZURpZk1zID0gRGF0ZS5ub3coKSAtICAkZXZlbnQudmFsdWU7XHJcbiAgIHZhciBhZ2VEYXRlID0gbmV3IERhdGUoYWdlRGlmTXMpO1xyXG4gICAgaWYoIE1hdGguYWJzKGFnZURhdGUuZ2V0VVRDRnVsbFllYXIoKSAtIDE5NzApIDw9IDE4KXtcclxuXHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdWaWN0aW0gaXMgYSBNaW5vci4gVGhpcyBpbmZvcm1hdGlvbiBpcyBhIHNlbnNpdGl2ZSBhbmQgc2hvdWxkIG5vdCBiZSBkaXNjbG9zZWQgdG8gYW55IHVuYXV0aG9yaXplZCBwYXJ0aWVzLiBDb250YWN0IHRoZSBsZWdhbCBndWFyZGlhbi4nLCAnJywge1xyXG4gICAgICAgIGR1cmF0aW9uOiA2MDAwLH0pO1xyXG4gICAgICAgIGNvbnN0IG1pbm9yQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpO1xyXG4gICAgICAgIG1pbm9yQ29udHJvbC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgLy8gIGNvbnN0IGd1YXJkaWFuTGFzdE5hbWVDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpO1xyXG4gICAgICAgLy8gY29uc3QgZ3VhcmRpYW5GaXJzdE5hbWVDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5GaXJzdE5hbWUnKTtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gdHJ1ZTtcclxuICAgICAgIC8vIGd1YXJkaWFuTGFzdE5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgIC8vICBndWFyZGlhbkZpcnN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGNoZWNrT3RoZXJXZWFwb24oV2VhcG9uVXNlKXtcclxuXHJcbiAgICBjb25zdCBvdGhlcldlYXBvbkNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpO1xyXG4gICAgIGlmIChXZWFwb25Vc2UuaW5jbHVkZXMoXCJPVEhFUlwiKSl7XHJcbiAgICAgdGhpcy5vdGhlcldlYXBvbkZsYWcgPSB0cnVlO1xyXG4gICAgIG90aGVyV2VhcG9uQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub3RoZXJXZWFwb25GbGFnID0gZmFsc2U7XHJcbiAgICAgIG90aGVyV2VhcG9uQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIH1cclxuICAgb3RoZXJXZWFwb25Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrT3RoZXJEcnVnKERydWdVc2Upe1xyXG5cclxuICAgIGNvbnN0IG90aGVyRHJ1Z0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKTtcclxuICAgICBpZiAoRHJ1Z1VzZS5pbmNsdWRlcyhcIk9USEVSXCIpKXtcclxuICAgICB0aGlzLm90aGVyRHJ1Z0ZsYWcgPSB0cnVlO1xyXG4gICAgIG90aGVyRHJ1Z0NvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG5cclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5vdGhlckRydWdGbGFnID0gZmFsc2U7XHJcbiAgICAgIG90aGVyRHJ1Z0NvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcblxyXG5cclxuICAgIH1cclxuICAgb3RoZXJEcnVnQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gXCJzYXZlIHZpY3RpbVwiXHJcbiAgc2F2ZVZpY3RpbSgpIHtcclxuXHJcblxyXG4gIC8vZ3VhcmRpYW4gcGhvbmUgbG9naWNcclxuICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnKVxyXG4gICB7XHJcbiAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZSl7XHJcbiAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lICE9PSBudWxsKXtcclxuICAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgIH1cclxuICAgICB9XHJcbiAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUgIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lKXtcclxuICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkNlbGxQaG9uZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkNlbGxob25lICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnID0gIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnKTtcclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZyA9PT0gZmFsc2UgJiYgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcgPT09IGZhbHNlKVxyXG4gICAge1xyXG5cclxuICAgICAgICAgIHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgICAgICAgIC53YXJuaW5nKCcnLCAnUGxlYXNlIGNoZWNrIHRoZSBndWFyZGlhbiBwaG9uZSBmaWVsZC4gWW91IGhhdmUgdG8gZmlsbCBvbmUgb2YgdGhlIHRocmVlIHBob25lIGZpbGVkcy4nLCAnT2snKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge3RoaXMucmVzdWx0ID0gIHJlcztcclxuXHJcbiAgICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyk7XHJcblxyXG4gICAgLy9hZHZvY2F0ZSBwaG9uZSBsb2dpY1xyXG4gICAgaWYgKCF0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZylcclxuICAgIHtcclxuICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZSl7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgICB0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlV29ya1Bob25lICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlV29ya1Bob25lICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlV29ya1Bob25lICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnID0gIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSl7XHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmUgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsaG9uZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWcpO1xyXG4gY29uc29sZS5sb2coJ3RoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZycpO1xyXG4gY29uc29sZS5sb2codGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnKTtcclxuXHJcbiBpZih0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPT09IGZhbHNlICYmIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnID09PSBmYWxzZSlcclxuIHtcclxuXHJcbiAgICAgICB0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcgPSB0cnVlO1xyXG4gICAgICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgICAgICAud2FybmluZygnJywgJ1BsZWFzZSBjaGVjayB0aGUgYWR2b2NhdGUgcGhvbmUgZmllbGQuIFlvdSBoYXZlIHRvIGZpbGwgb25lIG9mIHRoZSB0aHJlZSBwaG9uZSBmaWxlZHMuJywgJ09rJylcclxuICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcblxyXG4gICAgICAgfSk7XHJcbiB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmhvbWVQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ob21lUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmhvbWVQaG9uZSA9ICBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUud29ya1Bob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndvcmtQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpIDtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5jZWxsUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY2VsbFBob25lID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5jZWxsUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFBob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlV29ya1Bob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1cclxuICAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgPW51bGw7XHJcbiAgICAgfVxyXG5cclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmUgPSAgbnVsbDtcclxuICAgICB9XHJcblxyXG5cclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJylcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lID0gbnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuV29ya1Bob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1cclxuICAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUgPW51bGw7XHJcbiAgICAgfVxyXG5cclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSAgbnVsbDtcclxuICAgICB9XHJcbi8vZGF0YSBwcm9jZXNzXHJcblxyXG4gIGNvbnNvbGUubG9nKCd0aGlzLnBob25lVmFsaWRhdGlvbkZsYWcgMScpO1xyXG4gIGNvbnNvbGUubG9nKHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyk7XHJcbiBpZiAoIHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyA9PT0gZmFsc2Upe1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwgPT09IG51bGwpe1xyXG4gICAgICAvL2luc2VydCBuZXcgdmljdGltXHJcblxyXG4gICAgIHZhciBteVZpY3RpbVN1cHBvcnRzID0gW107XHJcbiAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1TdXBwb3J0cyl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1TdXBwb3J0cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICBjb25zdCB2aWN0aW1TdXBwb3J0PSA8VmljdGltU3VwcG9ydD57fTtcclxuICAgICAgICAgICAgdmljdGltU3VwcG9ydC52aWN0aW1JZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUlkO1xyXG4gICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbVN1cHBvcnRUeXBlSWQ9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgICAgICBteVZpY3RpbVN1cHBvcnRzLnB1c2godmljdGltU3VwcG9ydCk7XHJcbiAgICAgICAgIH0pO1xyXG4gICAgIH1cclxuXHJcbiAgICB2YXIgbXlWaWN0aW1EcnVnVXNlcyA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBkdXJpbmcgc2F2ZScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICBjb25zdCB2aWN0aW1EcnVnVXNlID0gPFZpY3RpbURydWdVc2U+e307XHJcbiAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuXHJcbiAgICAgaWYgKGVsZW1lbnQgPT09XCJPVEhFUlwiIHx8IGVsZW1lbnQgPT09IFwiXCIgfHwgZWxlbWVudCA9PT0gbnVsbCl7XHJcbiAgICAgIHZpY3RpbURydWdVc2UuZHJ1Z1R5cGVJZCA9IG51bGw7XHJcbiAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyRHJ1ZztcclxuICAgICB9XHJcbiAgICAgZWxzZXtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSBudWxsO1xyXG4gICAgIH1cclxuXHJcbiAgICAgdmljdGltRHJ1Z1VzZS5tb2RpZmllZEJ5ID0gdGhpcy5zdGFmZklkO1xyXG4gICAgIHZpY3RpbURydWdVc2UudmljdGltSWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgbXlWaWN0aW1EcnVnVXNlcy5wdXNoKHZpY3RpbURydWdVc2UpO1xyXG4gICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgZHVyaW5nIHNhdmUgMScpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKTtcclxuXHJcblxyXG5cclxuICB2YXIgbXlWaWN0aW1XZWFwb25Vc2VzID0gW107XHJcblxyXG4gIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltV2VhcG9uVXNlcyl7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltV2VhcG9uVXNlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgY29uc3QgdmljdGltV2VhcG9uVXNlID0gPFZpY3RpbVdlYXBvblVzZT57fTtcclxuICAgICAgIHZpY3RpbVdlYXBvblVzZS52aWN0aW1JZD0gIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1JZDtcclxuICAgICAgIHZpY3RpbVdlYXBvblVzZS53ZWFwb25UeXBlSWQ9IGVsZW1lbnQ7XHJcblxyXG4gICAgICAgaWYgKGVsZW1lbnQgPT1cIk9USEVSXCIpe1xyXG4gICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbiA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5vdGhlcldlYXBvbjtcclxuICAgICAgIH1cclxuICAgICAgIGVsc2V7XHJcbiAgICAgICAgdmljdGltV2VhcG9uVXNlLm90aGVyV2VhcG9uID0gbnVsbDtcclxuICAgICAgIH1cclxuXHJcbiAgICAgICB2aWN0aW1XZWFwb25Vc2UubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgbXlWaWN0aW1XZWFwb25Vc2VzLnB1c2godmljdGltV2VhcG9uVXNlKTtcclxuICAgfSk7XHJcbiB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuIGNvbnN0IG5ld1ZpY3RpbSA9IHtcclxuICAgdmljdGltSWQ6IDAsXHJcbiAgIG9mZmVuZGVySWQ6IHRoaXMub2ZmZW5kZXJJZCxcclxuICAgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ6XHJcbiAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkLFxyXG4gICBsYXN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxhc3ROYW1lLFxyXG4gICBmaXJzdE5hbWU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5maXJzdE5hbWUsXHJcbiAgIG1pZGRsZU5hbWU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUubWlkZGxlTmFtZVxyXG4gICAgIDogbnVsbCxcclxuICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5wcmVmaXhJZFxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkXHJcbiAgICAgOiBudWxsLFxyXG4gICBzdWZmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1ZmZpeElkXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWRcclxuICAgICA6IG51bGwsXHJcbiAgIGJpcnRoRGF0ZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmJpcnRoRGF0ZVxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmJpcnRoRGF0ZVxyXG4gICAgIDogbnVsbCxcclxuICAgZ2VuZGVyQ29kZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmdlbmRlckNvZGVcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5nZW5kZXJDb2RlXHJcbiAgICAgOiBudWxsLFxyXG4gICB1bmRlclN1cGVydmlzaW9uRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnVuZGVyU3VwZXJ2aXNpb25GbGFnLFxyXG4gICBtaW5vckZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5taW5vckZsYWcsXHJcbiAgIHZpY3RpbUFkdm9jYXRlRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUFkdm9jYXRlRmxhZyxcclxuXHJcbiAgIGhvbWVQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmhvbWVQaG9uZSxcclxuICAgd29ya1Bob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUud29ya1Bob25lLFxyXG4gICBjZWxsUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jZWxsUGhvbmUsXHJcbiAgIGVtYWlsOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1haWwgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1haWwgOiBudWxsLFxyXG4gICBhZGRyZXNzSWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZGRyZXNzSWRcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZGRyZXNzSWRcclxuICAgICA6IDEsXHJcbiAgIGVtZXJnZW5jeUNvbnRhY3Q6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0XHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFxyXG4gICAgIDogbnVsbCxcclxuICAgZW1lcmdlbmN5Q29udGFjdFBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFBob25lLFxyXG4gICBjb21tb25DaGlsZHJlbkZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbkZsYWcsXHJcbiAgIGNvbW1vbkNoaWxkcmVuTnVtYmVyOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY29tbW9uQ2hpbGRyZW5OdW1iZXIsXHJcbiAgIGNwb0V4cGlyYXRpb25GbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY3BvRXhwaXJhdGlvbkZsYWcsXHJcbiAgIGNwb0V4cGlyYXRpb25EYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY3BvRXhwaXJhdGlvbkRhdGVcclxuICAgICA/IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRGF0ZSwgXCJzaG9ydFwiKVxyXG4gICAgIDogbnVsbCxcclxuICAgc3VwcG9ydEluUGxhY2VGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VwcG9ydEluUGxhY2VGbGFnLFxyXG4gICB3ZWFwb25JbnZvbHZlZEZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS53ZWFwb25JbnZvbHZlZEZsYWcsXHJcbiAgIGRydWdVc2VGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZHJ1Z1VzZUZsYWcsXHJcbiAgIGFsY29ob2xVc2VGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWxjb2hvbFVzZUZsYWcsXHJcbiAgIGFjY2Vzc1Jpc2s6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hY2Nlc3NSaXNrLFxyXG4gICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWQsXHJcbiAgIHZWaWN0aW1BZHZvY2F0ZTogbnVsbCxcclxuICAgdlZpY3RpbUd1YXJkaWFuOiBudWxsLFxyXG4gICB2aWN0aW1EcnVnVXNlczogbXlWaWN0aW1EcnVnVXNlcyxcclxuICAgdmljdGltU3VwcG9ydHM6IG15VmljdGltU3VwcG9ydHMsXHJcbiAgIHZpY3RpbVdlYXBvblVzZXM6IG15VmljdGltV2VhcG9uVXNlcyxcclxuXHJcbiAgIGFkdm9jYXRlRmlyc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUxhc3ROYW1lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUVtYWlsOiBudWxsLFxyXG4gICBhZHZvY2F0ZVByZWZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZVN1ZmZpeElkOiBudWxsLFxyXG4gICBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICBhZHZvY2F0ZUhvbWVQaG9uZTogbnVsbCxcclxuICAgYWR2b2NhdGVXb3JrUGhvbmU6IG51bGwsXHJcbiAgIGFkdm9jYXRlQ2VsbFBob25lOiBudWxsLFxyXG4gICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgZ3VhcmRpYW5GaXJzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuTGFzdE5hbWU6IG51bGwsXHJcbiAgIGd1YXJkaWFuRW1haWw6IG51bGwsXHJcbiAgIGd1YXJkaWFuUHJlZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuU3VmZml4SWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuTm9QaG9uZUZsYWc6IG51bGwsXHJcbiAgIGd1YXJkaWFuSG9tZVBob25lOiBudWxsLFxyXG4gICBndWFyZGlhbldvcmtQaG9uZTogbnVsbCxcclxuICAgZ3VhcmRpYW5DZWxsUGhvbmU6IG51bGwsXHJcbiAgIGd1YXJkaWFuQWRkcmVzc0lkOiBudWxsLFxyXG4gICBndWFyZGlhbkJpcnRoRGF0ZTogbnVsbCxcclxuICAgcmVsYXRpb25zaGlwOiBudWxsLFxyXG4gICAvL3JlbGF0aW9uc2hpcDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQgOiBudWxsLFxyXG4gICBhbGxvd0Nzb3NhQ29udGFjdEZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGxvd0Nzb3NhQ29udGFjdEZsYWdcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGxvd0Nzb3NhQ29udGFjdEZsYWdcclxuICAgICA6IG51bGwsXHJcbiAgIGxpdmVXaXRoT2ZmZW5kZXJGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGl2ZVdpdGhPZmZlbmRlckZsYWdcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5saXZlV2l0aE9mZmVuZGVyRmxhZ1xyXG4gICAgIDogbnVsbCxcclxuIH07XHJcblxyXG4gICAgIGlmICh0aGlzLmFkZHJlc3NJZCA9PSAwKXtcclxuICAgICAgbmV3VmljdGltLmFkZHJlc3NJZCA9IG51bGw7XHJcbiAgICAgfSBlbHNlIHtcclxuICAgICAgbmV3VmljdGltLmFkZHJlc3NJZCA9ICB0aGlzLmFkZHJlc3NJZDtcclxuICAgICB9XHJcblxyXG4gICAgIG5ld1ZpY3RpbS5hZHZvY2F0ZUFkZHJlc3NJZCA9ICB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkO1xyXG4gICAgIG5ld1ZpY3RpbS5ndWFyZGlhbkFkZHJlc3NJZCA9ICB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkO1xyXG5cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCduZXdWaWN0aW0nKTtcclxuICAgICAgY29uc29sZS5sb2cobmV3VmljdGltKTtcclxuICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnBvc3RWaWN0aW1zKG5ld1ZpY3RpbSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChpdGVtczogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICBjb25zdCBpZCA9IGl0ZW1zID8gaXRlbXMudmljdGltSWQgOiAnJztcclxuXHJcbiAgICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltQWR2b2NhdGVGbGFnID09IFwiWVNcIil7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2FkZCBhZHZvY2F0ZScpO1xyXG4gICAgICAgICAgY29uc3QgdmljdGltQWR2b2NhdGU6IFZpY3RpbUFkdm9jYXRlID0ge1xyXG4gICAgICAgICAgdmljdGltQWR2b2NhdGVJZDogaWQsXHJcbiAgICAgICAgICBsYXN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTGFzdE5hbWUsXHJcbiAgICAgICAgICBmaXJzdE5hbWU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUZpcnN0TmFtZSxcclxuICAgICAgICAgIHByZWZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVQcmVmaXhJZCxcclxuICAgICAgICAgIHN1ZmZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVTdWZmaXhJZCxcclxuICAgICAgICAgIGFkZHJlc3NJZDogdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZCA/IHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQ6IG51bGwsXHJcbiAgICAgICAgICBub1Bob25lRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWcgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZzogbnVsbCxcclxuICAgICAgICAgIGhvbWVQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lLFxyXG4gICAgICAgICAgd29ya1Bob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUsXHJcbiAgICAgICAgICBjZWxsUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSxcclxuICAgICAgICAgIGVtYWlsOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVFbWFpbCxcclxuICAgICAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZFxyXG5cclxuXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltQWR2b2NhdGUoaWQsIHZpY3RpbUFkdm9jYXRlKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyA9PSB0cnVlKXtcclxuXHJcblxyXG4gICAgICAgIGNvbnN0IHZpY3RpbUd1YXJkaWFuOiBWaWN0aW1HdWFyZGlhbiA9IHtcclxuICAgICAgICAgIHZpY3RpbUd1YXJkaWFuSWQ6IGlkLFxyXG4gICAgICAgICAgbGFzdE5hbWU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkxhc3ROYW1lLFxyXG4gICAgICAgICAgZmlyc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5GaXJzdE5hbWUsXHJcbiAgICAgICAgICBwcmVmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuUHJlZml4SWQsXHJcbiAgICAgICAgICBzdWZmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuU3VmZml4SWQsXHJcbiAgICAgICAgICBiaXJ0aERhdGU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkJpcnRoRGF0ZSxcclxuICAgICAgICAgIGFkZHJlc3NJZDogdGhpcy5ndWFyZGlhbkFkZHJlc3NJZD8gdGhpcy5ndWFyZGlhbkFkZHJlc3NJZDogbnVsbCxcclxuICAgICAgICAgIG5vUGhvbmVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZz8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWc6IG51bGwsXHJcbiAgICAgICAgICBob21lUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZSxcclxuICAgICAgICAgIHdvcmtQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuV29ya1Bob25lLFxyXG4gICAgICAgICAgY2VsbFBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUsXHJcbiAgICAgICAgICBlbWFpbDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRW1haWwsXHJcbiAgICAgICAgICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWRcclxuXHJcblxyXG4gICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnBvc3RWaWN0aW1HdWFyZGlhbihpZCwgdmljdGltR3VhcmRpYW4pLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0FkZCBWaWN0aW0gU3VjY2Vzc2Z1bGx5IScsICcnLCB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vaW5zZXJ0IG5ld1xyXG4gICAgICAgIGlmICh0aGlzLmlzSW50YWtlPT09dHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUhvbWUnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUxpc3QnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vdGhpcy5vblNhdmUuZW1pdCh0aGlzLnZpY3RpbURldGFpbCk7XHJcblxyXG4gICAgICB9XHJcbiAgICAgKTtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy91cGRhdGUgdmljdGltXHJcblxyXG5cclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudW5kZXJTdXBlcnZpc2lvbkZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudW5kZXJTdXBlcnZpc2lvbkZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubGFzdE5hbWUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGFzdE5hbWU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmZpcnN0TmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5maXJzdE5hbWU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLm1pZGRsZU5hbWUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubWlkZGxlTmFtZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwucHJlZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUucHJlZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUucHJlZml4SWQgOiBudWxsO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5zdWZmaXhJZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdWZmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdWZmaXhJZCA6IG51bGw7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmJpcnRoRGF0ZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5iaXJ0aERhdGU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmdlbmRlckNvZGUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ2VuZGVyQ29kZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubWlub3JGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuaG9tZVBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmhvbWVQaG9uZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwud29ya1Bob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndvcmtQaG9uZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY2VsbFBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZW1haWwgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1haWw7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUFkdm9jYXRlRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1BZHZvY2F0ZUZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmVtZXJnZW5jeUNvbnRhY3QgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZW1lcmdlbmN5Q29udGFjdFBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY29tbW9uQ2hpbGRyZW5GbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNvbW1vbkNoaWxkcmVuRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY29tbW9uQ2hpbGRyZW5OdW1iZXIgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY29tbW9uQ2hpbGRyZW5OdW1iZXI7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25EYXRlID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25EYXRlO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jcG9FeHBpcmF0aW9uRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuc3VwcG9ydEluUGxhY2VGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5zdXBwb3J0SW5QbGFjZUZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLndlYXBvbkludm9sdmVkRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUud2VhcG9uSW52b2x2ZWRGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5kcnVnVXNlRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZHJ1Z1VzZUZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmFsY29ob2xVc2VGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGNvaG9sVXNlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWNjZXNzUmlzayA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWNjZXNzUmlzaztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWRkcmVzc0lkID0gdGhpcy5hZGRyZXNzSWQ7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmFsbG93Q3Nvc2FDb250YWN0RmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGxvd0Nzb3NhQ29udGFjdEZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmxpdmVXaXRoT2ZmZW5kZXJGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxpdmVXaXRoT2ZmZW5kZXJGbGFnO1xyXG5cclxuXHJcbiAgICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1TdXBwb3J0cyA9IFtdO1xyXG4gICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmljdGltU3VwcG9ydD0gPFZpY3RpbVN1cHBvcnQ+e307XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC52aWN0aW1JZD0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC52aWN0aW1TdXBwb3J0VHlwZUlkPSBlbGVtZW50O1xyXG4gICAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVN1cHBvcnRzLnB1c2godmljdGltU3VwcG9ydCk7XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1EcnVnVXNlcyA9IFtdO1xyXG5cclxuICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgY2FsY3VsYXRlJylcclxuICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcylcclxuXHJcbiAgICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBjb25zdCB2aWN0aW1EcnVnVXNlID0gPFZpY3RpbURydWdVc2U+e307XHJcbiAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgYmVmb3JlJylcclxuICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcylcclxuXHJcbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IFwiT1RIRVJcIiB8fCBlbGVtZW50ID09PSBcIlwiICApe1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gbnVsbDtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyRHJ1ZztcclxuICAgICAgICAgfVxyXG4gICAgICAgICBlbHNle1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gZWxlbWVudDtcclxuICAgICAgICAgIHZpY3RpbURydWdVc2Uub3RoZXJEcnVnID0gbnVsbDtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgICB2aWN0aW1EcnVnVXNlLm1vZGlmaWVkQnkgPSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgdmljdGltRHJ1Z1VzZS52aWN0aW1JZCA9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbURydWdVc2VzLnB1c2godmljdGltRHJ1Z1VzZSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBhZnRlcicpXHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKVxyXG5cclxuICAgICAgfSk7XHJcblxyXG5cclxuXHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcy5maWx0ZXIod29yZCA9PiAoICEod29yZC5kcnVnVHlwZUlkID09PSBudWxsICAmJiB3b3JkLm90aGVyRHJ1ZyA9PT0gbnVsbCkgICAgKSk7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2coJ2FkanVzdCB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMgJylcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKVxyXG5cclxuICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1XZWFwb25Vc2VzID0gW107XHJcbiAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGNvbnN0IHZpY3RpbVdlYXBvblVzZSA9IDxWaWN0aW1XZWFwb25Vc2U+e307XHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2UudmljdGltSWQ9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLndlYXBvblR5cGVJZD0gZWxlbWVudDtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnd2VhcG9uIGVsZW1lbnQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyV2VhcG9uKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1XZWFwb25Vc2VzKTtcclxuXHJcbiAgICAgICAgIGlmIChlbGVtZW50ID09XCJPVEhFUlwiKXtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbj10aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJXZWFwb247XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZWxzZXtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS5vdGhlcldlYXBvbiA9IG51bGw7XHJcbiAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2UubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltV2VhcG9uVXNlcy5wdXNoKHZpY3RpbVdlYXBvblVzZSk7XHJcblxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1EZXRhaWwgYmVmb3JlIGVtaXQnKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1EZXRhaWwpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZS5wdXRWaWN0aW1zKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltRGV0YWlsKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignVXBkYXRlIFN1Y2Nlc3NmdWxseSEnLCAnJywge1xyXG4gICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAvL0Fkdm9jYXRlIHNlY3Rpb25cclxuXHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLnZpY3RpbUFkdm9jYXRlSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUubGFzdE5hbWU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUxhc3ROYW1lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5maXJzdE5hbWU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUZpcnN0TmFtZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUucHJlZml4SWQ9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlUHJlZml4SWQgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5zdWZmaXhJZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlU3VmZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVTdWZmaXhJZCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmFkZHJlc3NJZD0gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZCA/IHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQgOiBudWxsO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5ub1Bob25lRmxhZz0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWc/IHRydWU6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5ob21lUGhvbmU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUhvbWVQaG9uZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUud29ya1Bob25lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmNlbGxQaG9uZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5lbWFpbD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRW1haWwgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVFbWFpbCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLm1vZGlmaWVkQnk9IHRoaXMuc3RhZmZJZDtcclxuXHJcbiAgICAgICBjb25zb2xlLmxvZygnd29yayBvbiBhZHZvY2F0ZSBwYXJ0Jyk7XHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbURldGFpbC52aWN0aW1BZHZvY2F0ZUZsYWc9PSdZUycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3dvcmsgb24gYWR2b2NhdGUgZmxhZyBpcyBZUyAnKTtcclxuICAgICAgICAgIGlmKHRoaXMudmljdGltRGV0YWlsLmFkdm9jYXRlRmlyc3ROYW1lICE9IG51bGwpe1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2hlY2sgYWR2b2NhdGUgZmlzcnQgbmFtZSAnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1EZXRhaWwuYWR2b2NhdGVGaXJzdE5hbWUpO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbUFkdm9jYXRlKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltQWR2b2NhdGUpLnN1YnNjcmliZShcclxuICAgICAgICAgIHJlc3A9Pnt9ICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGQgYWR2b2NhdGUnKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1BZHZvY2F0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltQWR2b2NhdGUodGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMudmljdGltQWR2b2NhdGUpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAvLyBndWFyZGlhbiBzZWN0aW9uXHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLnZpY3RpbUd1YXJkaWFuSWQgPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ubGFzdE5hbWUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTGFzdE5hbWU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmZpcnN0TmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkZpcnN0TmFtZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ucHJlZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5QcmVmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblByZWZpeElkIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uc3VmZml4SWQgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5TdWZmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblN1ZmZpeElkIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uYWRkcmVzc0lkID0gdGhpcy5ndWFyZGlhbkFkZHJlc3NJZCA/IHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQgOiBudWxsO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5ub1Bob25lRmxhZyA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZz8gdHJ1ZTogZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmhvbWVQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkhvbWVQaG9uZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ud29ya1Bob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuV29ya1Bob25lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5jZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmVtYWlsID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRW1haWwgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5FbWFpbCA6IG51bGw7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLm1vZGlmaWVkQnkgPSB0aGlzLnN0YWZmSWQ7XHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltRGV0YWlsLm1pbm9yRmxhZyA9PSB0cnVlKVxyXG4gICAge1xyXG4gICAgICAgaWYodGhpcy52aWN0aW1EZXRhaWwuZ3VhcmRpYW5GaXJzdE5hbWUgIT0gbnVsbCApXHJcbiAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbUd1YXJkaWFuKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkLHRoaXMudmljdGltR3VhcmRpYW4pLnN1YnNjcmliZShcclxuICAgICAgICByZXNwPT57XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdhZGQgZ3VyZGlhbicpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1HdWFyZGlhbik7XHJcbiAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5wb3N0VmljdGltR3VhcmRpYW4odGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsIHRoaXMudmljdGltR3VhcmRpYW4pLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgKTtcclxuXHJcbiAgICB9XHJcbiAgfS8vZW5kIG9mIHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyA9IGZhbHNlXHJcbiAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1EZXRhaWwnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRGV0YWlsKTtcclxuICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAvLyNlbmRyZWdpb24gXCJzYXZlIHZpY3RpbVwiXHJcbiAgICAgIGFkZENvbnRhY3QoKXtcclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUNvbnRhY3QnLHRoaXMudmljdGltSWRdKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtYXRMYWJlbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICB9XHJcblxyXG5cclxufVxyXG4iLCI8bWF0LWNhcmQ+XHJcbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgIDxkaXYgIFtmb3JtR3JvdXBdPVwidmljdGltRm9ybVwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIGR5bmFtaWNIZWlnaHQgIG1hdC1zdHJldGNoLXRhYnM+XHJcbiAgICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVmljdGltIERldGFpbFwiID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250YWluZXInPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPklzIHZpY3RpbSBhIG1pbm9yPzxmb250IGNvbG9yPVwicmVkXCI+KiA8L2ZvbnQ+PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwICBmb3JtQ29udHJvbE5hbWU9XCJtaW5vckZsYWdcIiAgKGNoYW5nZSk9XCJyYWRpb01pbm9yQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubWlub3JGbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGEgbWlub3IgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRvZXMgdGhlIFZpY3RpbSBoYXZlIGEgVmljdGltIEFkdm9jYXRlIG9yIFNvY2lhbCBXb3JrZXIgd2l0aCA8YnI+d2hvbSBDU09TQSBzaG91bGQgbWFpbnRhaW4gY29udGFjdD88Zm9udCBjb2xvcj1cInJlZFwiPiogPC9mb250PjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcyA9IFwidHAtcmFkaW8tZ3JvdXBcIiAgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltQWR2b2NhdGVGbGFnXCIgIChjaGFuZ2UpPVwicmFkaW9BZHZvY2F0ZUNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbUFkdm9jYXRlRmxhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZsYWdPcHRpb25cIiBbdmFsdWVdPVwiaXRlbS5mbGFnT3B0aW9uWWVzTm9Vbmtub3duSWRcIj57e2l0ZW0ubmFtZX19IDwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGhhcyBhZHZvY2F0ZSBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIFxyXG4gXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gQ3VycmVudGx5IFVuZGVyIFN1cGVydmlzaW9uOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJ1bmRlclN1cGVydmlzaW9uRmxhZ1wiIG5hbWU9XCJzdXBlcnZpc2lvblwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS51bmRlclN1cGVydmlzaW9uRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZsYWdPcHRpb25cIiBbdmFsdWVdPVwiaXRlbS5mbGFnT3B0aW9uWWVzTm9Vbmtub3duSWRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj51bmRlciBzdXBlcnZpc2lvbiBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZWxhdGlvbnNoaXBUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnJlbGF0aW9uc2hpcFR5cGVJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5yZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmxhc3ROYW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEZpcnN0IE5hbWU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5maXJzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIE1pZGRsZSBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwibWlkZGxlTmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5taWRkbGVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBQcmVmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cInByZWZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnByZWZpeElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVmaXhlc1wiIFt2YWx1ZV09XCJpdGVtLnByZWZpeElkXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJzdWZmaXhJZFwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uc3VmZml4SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEdlbmRlcjo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cImdlbmRlckNvZGVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ2VuZGVyQ29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIEJpcnRoOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwidmljdGltQmlydGhSZWZcIiBcclxuICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5iaXJ0aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmljdGltQmlydGhSZWYub3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRE9CQ2hhbmdlKCRldmVudClcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwidmljdGltQmlydGhSZWZcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdmljdGltQmlydGhSZWY+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob21lUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uaG9tZVBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwUGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnaG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkhvbWUgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgIFxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjZWxsUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNlbGxQaG9uZVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnY2VsbFBob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2NlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdjZWxsUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkNlbGwgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIFdvcmsgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIndvcmtQaG9uZVwiICBcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLndvcmtQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnd29ya1Bob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3dvcmtQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd3b3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+V29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmVtYWlsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz52aWN0aW0gZW1haWwgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICBcclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtc21hcnQtYWRkcmVzcyBcclxuICAgICAgICAgICAgICAgIFtzaG93UHNhXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICAgIFtpZF09XCJhZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgICAgKGFkZHJlc3NJZENoYW5nZSk9XCJvbkFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbb3V0bGluZV09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICByZWFkb25seT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIiBcclxuICAgICAgICAgICAgICAgIChpc1ZhbGlkKT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICAgI2FkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICAgID4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxhcHAtc21hcnQtYWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgW21vZGlmaWVkQnldPVwic3RhZmZJZFwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiYWRkcmVzc0lkXCJcclxuICAgICAgICAgICAgICAgIFtvdXRsaW5lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25BZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgI2FkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPCEtLSBEb2NrZXQ6IFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0Zvcj1cImxldCBkb2NrZXQgb2YgZG9ja2V0bGlzdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggPnt7ZG9ja2V0LmRvY2tldE51bWJlcn19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAgY29sb3I9XCJwcmltYXJ5XCIgZm9ybUNvbnRyb2xOYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBuYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubGl2ZVdpdGhPZmZlbmRlckZsYWdcIiAgIChjaGFuZ2UpPVwic2hvd0FkZHJlc3MoJGV2ZW50KVwiICA+dmljdGltIGxpdmUgd2l0aCBvZmZlbmRlcjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggIGNvbG9yPVwicHJpbWFyeVwiIGZvcm1Db250cm9sTmFtZT1cImFsbG93Q3Nvc2FDb250YWN0RmxhZ1wiIG5hbWU9XCJhbGxvd0Nzb3NhQ29udGFjdEZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWxsb3dDc29zYUNvbnRhY3RGbGFnXCI+dmljdGltIHdhbnRzIHRvIGJlIGNvbnRhY3RlZCBieSBDU09TQTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+IENoaWxkcmVuIGluIENvbW1vbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5GbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNvbW1vbkNoaWxkcmVuRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvQ2ljQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiY29tbW9uQ2hpbGRyZW5EaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbGRyZW4gbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DUE86IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJjcG9FeHBpcmF0aW9uRmxhZ1wiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY3BvRXhwaXJhdGlvbkZsYWdcIiAoY2hhbmdlKT1cInJhZGlvQ3BvQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3BvRXhwaXJhdGlvbkRpdkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FeHBpcmF0aW9uIERhdGU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiY3BvRGF0ZVJlZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3BvRXhwaXJhdGlvbkRhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNwb0RhdGVSZWYub3BlbigpXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY3BvRXhwaXJhdGlvbkRhdGVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiY3BvRGF0ZVJlZlwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNjcG9EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gaGFzIGEgU3VwcG9ydCBTeXN0ZW0gaW4gUGxhY2U/IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwic3VwcG9ydEluUGxhY2VGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnN1cHBvcnRJblBsYWNlRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvU3VwcG9ydENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VwcG9ydEluUGxhY2VEaXZGbGFnXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlN1cHBvcnQgdHlwZT8gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI3N1cHBvcnRTZWwgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltU3VwcG9ydHNcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0udmljdGltU3VwcG9ydHNcIiBtdWx0aXBsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKG1vdXNlbGVhdmUpPVwic3VwcG9ydFNlbC5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpY3RpbVN1cHBvcnRUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnZpY3RpbVN1cHBvcnRUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2VhcG9ucyBJbnZvbHZlZD88L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cIndlYXBvbkludm9sdmVkRmxhZ1wiIChjaGFuZ2UpPVwicmFkaW9XZWFwb25DaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS53ZWFwb25JbnZvbHZlZEZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWFwb25JbnZvbHZlZERpdkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldlYXBvbiBUeXBlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgI3dlYXBvblNlbCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1XZWFwb25Vc2VzXCIgbXVsdGlwbGUgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbVdlYXBvblVzZXNcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrT3RoZXJXZWFwb24oJGV2ZW50LnZhbHVlKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJ3ZWFwb25TZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdlYXBvblR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0ud2VhcG9uVHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvdGhlcldlYXBvbkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk90aGVyIFdlYXBvbjoqIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cIm90aGVyV2VhcG9uXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPk90aGVyIHdlYXBvbiBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldhcyBPZmZlbmRlciB1bmRlciB0aGUgaW5mbHVlbmNlIG9mIGFsY29ob2wgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuc2U/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiYWxjb2hvbFVzZUZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWxjb2hvbFVzZUZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2FzIE9mZmVuZGVyIHVuZGVyIHRoZSBpbmZsdWVuY2Ugb2YgZHJ1Z3MgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuc2U/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImRydWdVc2VGbGFnXCIgKGNoYW5nZSk9XCJyYWRpb0RydWdDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5kcnVnVXNlRmxhZ1wiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRydWdVc2VEaXZGbGFnXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRydWc6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgICNkcnVnU2VsIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbURydWdVc2VzXCIgbXVsdGlwbGUgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrT3RoZXJEcnVnKCRldmVudC52YWx1ZSlcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChtb3VzZWxlYXZlKT1cImRydWdTZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRydWdzXCIgW3ZhbHVlXT1cIml0ZW0uZHJ1Z1R5cGVJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm90aGVyRHJ1Z0ZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk90aGVyIERydWc6KiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckRydWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+T3RoZXIgZHJ1ZyBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgUmlzazogMSB0aHJ1IDEwICgxMCBncmVhdGVzdCByaXNrKTogJm5ic3A7PGI+IHt7ZWRpdFZpY3RpbS5hY2Nlc3NSaXNrfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2Nlc3NSaXNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJMYWJlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZm9ybWF0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWNjZXNzUmlza1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tYXQtc2xpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+ICBcclxuXHJcbiBcclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgIDxtYXQtdGFiICAqbmdJZj1cImd1YXJkaWFuVGFiRmxhZ1wiIGxhYmVsPVwiTGVnYWwgR3VhcmRpYW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5MYXN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkxhc3ROYW1lXCIgPiBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZXJyb3JzIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRmlyc3QgTmFtZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkZpcnN0TmFtZVwiID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gUHJlZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5QcmVmaXhJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhblByZWZpeElkXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZWZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0ucHJlZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBTdWZmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhblN1ZmZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuU3VmZml4SWRcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiQ2hvb3NlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5HZW5kZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5HZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+IC0tPlxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIEJpcnRoOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImd1YXJkaWFuRGF0ZVJlZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkJpcnRoRGF0ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3VhcmRpYW5EYXRlUmVmLm9wZW4oKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiZ3VhcmRpYW5EYXRlUmVmXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZ3VhcmRpYW5EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yID0gXCJwcmltYXJ5XCIgXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuTm9QaG9uZUZsYWdcIiBcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBObyBQaG9uZSAoSWYgdGhlcmUgaXMgbm8gcGhvbmUsIHRoZSBwaG9uZSBmaWVsZHMgYXJlIG5vIGxvbmdlciByZXF1aXJlZCk8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gSG9tZSBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkhvbWVQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkhvbWVQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkhvbWVQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gaG9tZSBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIgXHJcbiAgICAgICAgICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBDZWxsIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBXb3JrIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5Xb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5Xb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbldvcmtQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gd29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuRW1haWxcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5FbWFpbFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5FbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBlbWFpbCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zbWFydC1hZGRyZXNzIFxyXG5cclxuICAgICAgICAgICAgICAgIFtzaG93UHNhXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICAgIFtpZF09XCJndWFyZGlhbkFkZHJlc3NJZFwiXHJcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0lkQ2hhbmdlKT1cIm9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHk9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIjgwXCIgXHJcbiAgICAgICAgICAgICAgICAoaXNWYWxpZCk9XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NWYWxpZGF0b3JzXT1cImFkZHJlc3NWYWxpZGF0b3JzXCJcclxuICAgICAgICAgICAgICAgICNndWFyZGlhbkFkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXNtYXJ0LWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gXHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS1hZHZvY2F0ZS0tPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8bWF0LXRhYiAgKm5nSWY9XCJhZHZvY2F0ZVRhYkZsYWdcIiBsYWJlbD1cIkFkdm9jYXRlXCIgPiBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBMYXN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUxhc3ROYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlTGFzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIEZpcnN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUZpcnN0TmFtZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUZpcnN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgUHJlZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVByZWZpeElkXCIgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZVByZWZpeElkXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5wcmVmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVN1ZmZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlU3VmZml4SWRcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VmZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5zdWZmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICBcclxuICAgICAgICAgICAgICAgICAgY29sb3IgPSBcInByaW1hcnlcIiBcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVOb1Bob25lRmxhZ1wiIFxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVOb1Bob25lRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgTm8gUGhvbmUgKElmIHRoZXJlIGlzIG5vIHBob25lLCB0aGUgcGhvbmUgZmllbGRzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQpPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+IFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlSG9tZVBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlSG9tZVBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUhvbWVQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgaG9tZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkFkdm9jYXRlIGNlbGwgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPiBcclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgV29yayBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIFxyXG4gICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVdvcmtQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVXb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgYXBwUGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5BZHZvY2F0ZSB3b3JrIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlRW1haWxcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlRW1haWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVFbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgZW1haWwgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2ID5cclxuICAgICAgICAgICAgICA8YXBwLXNtYXJ0LWFkZHJlc3MgXHJcbiAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICBbaWRdPVwiYWR2b2NhdGVBZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25BZHZvY2F0ZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5PVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIiBcclxuICAgICAgICAgICAgICAoaXNWYWxpZCk9XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIFthZGRyZXNzVmFsaWRhdG9yc109XCJhZGRyZXNzVmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICAgICAgI2Fkdm9jYXRlQWRkcmVzc0NvbXBvbmVudCA+XHJcbiAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gXHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICA8bWF0LXRhYiAgbGFiZWw9XCJFbWVyZ2VuY3kgQ29udGFjdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkVtZXJnZW5jeSBDb250YWN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtZXJnZW5jeUNvbnRhY3RcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbWVyZ2VuY3kgUGhvbmUgTnVtYmVyOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1lcmdlbmN5Q29udGFjdFBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdlbWVyZ2VuY3lDb250YWN0UGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZW1lcmdlbmN5Q29udGFjdFBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2VtZXJnZW5jeUNvbnRhY3RQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5FbWVyZ2VuY3kgY29udGFjdCBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPjxicj48YnI+ICAgIFxyXG4gICAgICAgICAgICA8L21hdC10YWI+IFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPSdvdXRlcic+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIEFsbCBidXR0b25zIGFwcGx5IHRvIGFsbCB0YWJzLiBJZiBzYXZlIGJ1dHRvbiBpcyBncmV5LCBwbGVhc2UgY2hlY2sgZWFjaCB0YWIgdG8gbWFrZSBzdXJlIHRoZSByZXF1aXJlZCBmaWVsZCBpcyBmaWxsZWQuPGJyPjxicj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5JZiB2aWN0aW0gYSBtaW5vciBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBoYXMgYWR2b2NhdGUgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlVuZGVyIHN1cGVydmlzaW9uIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gXHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5SZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlZpY3RpbSBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPnZpY3RpbSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS50b3VjaGVkKVwiID5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+IFxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJykudG91Y2hlZClcIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5BZHZvY2F0ZSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5PdGhlciB3ZWFwb24gZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+T3RoZXIgZHJ1ZyBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlVmljdGltKClcIiBbZGlzYWJsZWRdPVwiIXZpY3RpbUZvcm0udmFsaWRcIiAgPlNhdmUgPC9idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlVmljdGltKClcIj5EZWxldGUgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNsZWFyIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyBcclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgKGNsaWNrKT1cImJhY2soKVwiPkJhY2s8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnI+XHJcbiAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICA8ZGl2IGFsaWduPVwicmlnaHRcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIChjbGljayk9XCJhZGRDb250YWN0KClcIiAgPkFkZCB2aWN0aW0gY29udGFjdDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwiY29udGFjdERhdGFTb3VyY2VcIiBjbGFzcz1cImV4YW1wbGUtdGFibGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb250YWN0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IERhdGU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5jb250YWN0RGF0ZSB8IGRhdGV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUNvbnRhY3RNZXRob2RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPkNvbnRhY3QgTWV0aG9kPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnZpY3RpbUNvbnRhY3RNZXRob2R9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmV4dENvbnRhY3REYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5OZXh0IENvbnRhY3QgRGF0ZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5uZXh0Q29udGFjdERhdGUgfCBkYXRlfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YWZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IEJ5PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnN0YWZmfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db21tZW50PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj4ge3tyb3cuY29tbWVudH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3RJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiWydjb250YWN0RGF0ZScsICd2aWN0aW1Db250YWN0TWV0aG9kJywnbmV4dENvbnRhY3REYXRlJywgJ3N0YWZmJywgJ2NvbW1lbnQnLCAnY29udGFjdElkJ11cIiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLXJvd1wiPjwvbWF0LWhlYWRlci1yb3c+XHJcbiAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOlsnY29udGFjdERhdGUnLCAndmljdGltQ29udGFjdE1ldGhvZCcsJ25leHRDb250YWN0RGF0ZScsICdzdGFmZicsICdjb21tZW50JywgJ2NvbnRhY3RJZCddO1wiIGNsYXNzPVwiZXhhbXBsZS1yb3dcIj48L21hdC1yb3c+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG48L21hdC1jYXJkPlxyXG4iXX0=
|
1068
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ2Mtc21hcnQtdmljdGltL3NyYy9saWIvc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBb0Isa0JBQWtCLEVBQUMsVUFBVSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDakgsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFDLE1BQUksdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUs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Q0FBQyxDQUFDLElBQUk7b0JBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ3RDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRO3dCQUNoQyxDQUFDLENBQUMsSUFBSTtvQkFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUTt3QkFDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVE7d0JBQ2hDLENBQUMsQ0FBQyxJQUFJO29CQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO3dCQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUzt3QkFDakMsQ0FBQyxDQUFDLElBQUk7b0JBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVU7d0JBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVO3dCQUNsQyxDQUFDLENBQUMsSUFBSTtvQkFDUixvQkFBb0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7b0JBQ2hFLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO29CQUMxQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7b0JBRTVELFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTO29CQUMxQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztvQkFDMUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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L0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWxDLENBQUM7SUFFTCwwQkFBMEI7SUFDdEIsVUFBVTtRQUVOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsZUFBZSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYTtRQUN2QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzBJQW52Q00sMEJBQTBCOzhIQUExQiwwQkFBMEIsa05BRjFCLENBQUMsbUJBQW1CLENBQUMscUtDcEVsQyx1eThDQTAxQkE7MkZEcHhCYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0Usc0JBQXNCLGFBR3JCLENBQUMsbUJBQW1CLENBQUM7MFNBR3ZCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDd0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Db250cm9sLFZhbGlkYXRvcnMsVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlLCBNYXRSYWRpb0dyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBWaWN0aW0sVmljdGltRHJ1Z1VzZSwgQ29udGFjdCwgVmljdGltQWR2b2NhdGUsVmljdGltR3VhcmRpYW4sVmljdGltV2VhcG9uVXNlLFZpY3RpbVN1cHBvcnQgfSBmcm9tICcuLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21tb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uL2NvbW1vbi1kaWFsb2cvY29tbW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIGZvcm1hdERhdGUsIExvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHl9ZnJvbSdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRvcnMsIFNtYXJ0QWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWFkZHJlc3MnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb29sZWFuRm4ge1xyXG4gICgpOiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRm4ge1xyXG4gICgpOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb25kaXRpb25hbFZhbGlkYXRvcihwcmVkaWNhdGU6IEJvb2xlYW5GbixcclxuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZuLFxyXG4gIGVycm9yTmFtZXNwYWNlPzogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG5yZXR1cm4gKGZvcm1Db250cm9sID0+IHtcclxuaWYgKCFmb3JtQ29udHJvbC5wYXJlbnQpIHtcclxucmV0dXJuIG51bGw7XHJcbn1cclxubGV0IGVycm9yID0gbnVsbDtcclxuaWYgKHByZWRpY2F0ZSgpKSB7XHJcbmVycm9yID0gdmFsaWRhdG9yKGZvcm1Db250cm9sKTtcclxufVxyXG5pZiAoZXJyb3JOYW1lc3BhY2UgJiYgZXJyb3IpIHtcclxuY29uc3QgY3VzdG9tRXJyb3IgPSB7fTtcclxuY3VzdG9tRXJyb3JbZXJyb3JOYW1lc3BhY2VdID0gZXJyb3I7XHJcbmVycm9yID0gY3VzdG9tRXJyb3JcclxufVxyXG5yZXR1cm4gZXJyb3I7XHJcbn0pXHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nQ29uZGl0aW9uYWxWYWxpZGF0b3IocHJlZGljYXRlOiBTdHJpbmdGbixcclxuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZuLFxyXG4gIGVycm9yTmFtZXNwYWNlPzogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG5yZXR1cm4gKGZvcm1Db250cm9sID0+IHtcclxuaWYgKCFmb3JtQ29udHJvbC5wYXJlbnQpIHtcclxucmV0dXJuIG51bGw7XHJcbn1cclxubGV0IGVycm9yID0gbnVsbDtcclxuaWYgKHByZWRpY2F0ZSgpPT0nWVMnKSB7XHJcbmVycm9yID0gdmFsaWRhdG9yKGZvcm1Db250cm9sKTtcclxufVxyXG5pZiAoZXJyb3JOYW1lc3BhY2UgJiYgZXJyb3IpIHtcclxuY29uc3QgY3VzdG9tRXJyb3IgPSB7fTtcclxuY3VzdG9tRXJyb3JbZXJyb3JOYW1lc3BhY2VdID0gZXJyb3I7XHJcbmVycm9yID0gY3VzdG9tRXJyb3JcclxufVxyXG5yZXR1cm4gZXJyb3I7XHJcbn0pXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3NtYXJ0LXZpY3RpbS1kZXRhaWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtDb21tb25EaWFsb2dTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcclxuICBASW5wdXQoKSBzdGFmZklkOiBudW1iZXI7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGlzSW50YWtlOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KCkgb25TYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKFwiYWRkcmVzc0NvbXBvbmVudFwiKSBhZGRyZXNzQ29tcG9uZW50OiBTbWFydEFkZHJlc3NDb21wb25lbnQ7XHJcblxyXG5cclxuICB2aWN0aW1JZDogbnVtYmVyO1xyXG4gIHZpY3RpbUZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGRydWdzOiBhbnk7XHJcbiAgdmljdGltU3VwcG9ydFR5cGVzOiBhbnk7XHJcbiAgcHJlZml4ZXM6IGFueTtcclxuICAvL3ZpY3RpbTogVmljdGltID0gPFZpY3RpbT57fTtcclxuICBzdWZmaXhlczogYW55O1xyXG4gIHJlbGF0aW9uc2hpcFR5cGVzOiBhbnk7XHJcbiAgZ2VuZGVyczogYW55O1xyXG4gIGRvY2tldGxpc3Q6IGFueTtcclxuICB3ZWFwb25UeXBlczogYW55O1xyXG4gIGZsYWdPcHRpb246IGFueTtcclxuICBzZWxlY3RlZFdlYXBvblR5cGVzOiBhbnk7XHJcbiAgc2VsZWN0ZWRWaWN0aW1TdXBwb3J0VHlwZXM6IGFueTtcclxuICBzZWxlY3RlZERydWdzOiBhbnk7XHJcbiAgaWQ6IGFueTtcclxuICBoaWRkZW46IGJvb2xlYW49dHJ1ZTtcclxuICBwcml2YXRlIHN1YjogYW55O1xyXG4gIHZpY3RpbUFkdm9jYXRlOiBWaWN0aW1BZHZvY2F0ZSA9ICA8VmljdGltQWR2b2NhdGU+e307XHJcbiAgdmljdGltR3VhcmRpYW46IFZpY3RpbUd1YXJkaWFuID0gPFZpY3RpbUd1YXJkaWFuPnt9O1xyXG4gIHZpY3RpbVdlYXBvblVzZTogVmljdGltV2VhcG9uVXNlO1xyXG4gIHZpY3RpbVN1cHBvcnQ6IFZpY3RpbVN1cHBvcnQ7XHJcbiAgdmljdGltRHJ1Z1VzZTogVmljdGltRHJ1Z1VzZTtcclxuICByZXN1bHQ6IGFueTtcclxuICBlZGl0TW9kZTogYW55O1xyXG4gIGd1YXJkaWFuVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkdm9jYXRlVGFiRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbW1vbkNoaWxkcmVuRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNwb0V4cGlyYXRpb25EaXZGbGFnIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1cHBvcnRJblBsYWNlRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdlYXBvbkludm9sdmVkRGl2RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRydWdVc2VEaXZGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBhZHZvY2F0ZUFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBndWFyZGlhbkFkZHJlc3NJZDogbnVtYmVyID0gMDtcclxuICBkYXRlUGlwZSA9IG5ldyBEYXRlUGlwZSgnZW4tVVMnKTtcclxuICBlbWFpbFBhdHRlcm4gPSBcIl5bYS16MC05Ll8lKy1dK0BbYS16MC05Li1dK1xcLlthLXpdezIsNH0kXCI7XHJcbiAgcGhvbmVOdW1iZXIgPSBcIlxcXFxkezEwfVwiO1xyXG4gIGVkaXRWaWN0aW06IFZpY3RpbSA9IDxWaWN0aW0+e307XHJcbiAgdmljdGltQWdlOiBudW1iZXI7XHJcbiAgb3RoZXJXZWFwb25GbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3RoZXJEcnVnRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb250YWN0RGF0YVNvdXJjZT0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGNvbnRhY3RMaXN0OiBDb250YWN0W107XHJcbiAgZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZzogYm9vbGVhbiA9ICBmYWxzZTtcclxuICBhZHZvY2F0ZVBob25lRXhpc3RGbGFnOiBib29sZWFuID0gIGZhbHNlO1xyXG4gIHBob25lVmFsaWRhdGlvbkZsYWc6IGJvb2xlYW4gPSAgZmFsc2U7XHJcbiAgZ3VhcmlkYW5Ob1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgYWR2b2NhdGVOb1Bob25lQ2hrRmxhZzogYm9vbGVhbiA9ICB0cnVlO1xyXG5cclxuICBhZGRyZXNzVmFsaWRhdG9yczogQWRkcmVzc1ZhbGlkYXRvcnMgPSB7XHJcbiAgICBzdHJlZXQ6IFtdLFxyXG4gICAgc3RyZWV0MjogW10sXHJcbiAgICBjaXR5OiBbXSxcclxuICAgIHN0YXRlQ29kZTogW10sXHJcbiAgICB6aXBDb2RlOiBbXSxcclxuICAgIHBzYUNvZGU6IFtdLFxyXG4gIH07XHJcblxyXG4gY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwdWJsaWMgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBjb21tb25EaWFsb2dTZXJ2aWNlOiBDb21tb25EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWN0aW1TZXJ2aWNlOiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UpIHtcclxuICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBpbml0Rm9ybSgpIHtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdW5kZXJTdXBlcnZpc2lvbkZsYWc6ICBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoWyBWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxyXG4gICAgICB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZDpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoWyBWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxyXG4gICAgICBsYXN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgZmlyc3ROYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoWyBWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxyXG4gICAgICBtaWRkbGVOYW1lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBwcmVmaXhJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgc3VmZml4SWQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGdlbmRlckNvZGU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgYmlydGhEYXRlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBob21lUGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGNlbGxQaG9uZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgd29ya1Bob25lOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWFpbDpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucGF0dGVybih0aGlzLmVtYWlsUGF0dGVybikgXSkpLFxyXG4gICAgICBtaW5vckZsYWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFsgVmFsaWRhdG9ycy5yZXF1aXJlZF0pKSxcclxuICAgICAgdmljdGltQWR2b2NhdGVGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoWyBWYWxpZGF0b3JzLnJlcXVpcmVkXSkpLFxyXG4gICAgICBndWFyZGlhbkxhc3ROYW1lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICBzdHJpbmdDb25kaXRpb25hbFZhbGlkYXRvcigoKSA9PiB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS52YWx1ZSwgIFZhbGlkYXRvcnMucmVxdWlyZWQsICdpbGx1bWluYXRpRXJyb3InKSApLFxyXG4gICAgICBndWFyZGlhbkZpcnN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKCgpID0+IHRoaXMudmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnZhbHVlLCAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgJ2lsbHVtaW5hdGlFcnJvcicpKSxcclxuICAgICAgZ3VhcmRpYW5QcmVmaXhJZDpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBndWFyZGlhblN1ZmZpeElkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICAvL2d1YXJkaWFuR2VuZGVyOm5ldyBGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZ3VhcmRpYW5CaXJ0aERhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGd1YXJkaWFuTm9QaG9uZUZsYWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCh0cnVlKSxcclxuXHJcbiAgICAgIGd1YXJkaWFuSG9tZVBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgZ3VhcmRpYW5DZWxsUGhvbmU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG4gICAgICBndWFyZGlhbldvcmtQaG9uZTpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCksXHJcblxyXG5cclxuICAgICAgZ3VhcmRpYW5FbWFpbDpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucGF0dGVybih0aGlzLmVtYWlsUGF0dGVybikgXSkpLFxyXG4gICAgICBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRydWUpLFxyXG5cclxuXHJcbiAgICAgIGFkdm9jYXRlV29ya1Bob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgYWR2b2NhdGVIb21lUGhvbmU6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG4gICAgICBhZHZvY2F0ZUNlbGxQaG9uZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywpLFxyXG5cclxuXHJcbiAgICAgIGFkdm9jYXRlU3VmZml4SWQ6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgYWR2b2NhdGVQcmVmaXhJZDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIHN0cmluZ0NvbmRpdGlvbmFsVmFsaWRhdG9yKCgpID0+IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLnZhbHVlLCAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgJ2lsbHVtaW5hdGlFcnJvcicpKSxcclxuICAgICAgYWR2b2NhdGVMYXN0TmFtZTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgc3RyaW5nQ29uZGl0aW9uYWxWYWxpZGF0b3IoKCkgPT4gdGhpcy52aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudmFsdWUsIFZhbGlkYXRvcnMucmVxdWlyZWQsJ2lsbHVtaW5hdGlFcnJvcicpKSxcclxuICAgICAgYWR2b2NhdGVFbWFpbDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5lbWFpbFBhdHRlcm4pIF0pKSxcclxuICAgICAgZW1lcmdlbmN5Q29udGFjdDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5Q29udGFjdFBob25lOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsKSxcclxuICAgICAgZW1lcmdlbmN5Q2hpbGRyZW46IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGVtZXJnZW5jeUNwbzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZW1lcmdlbmN5RHJ1ZzpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWVyZ2VuY3lTdXBwb3J0OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBlbWVyZ2VuY3lXZWFwb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGRydWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHdlYXBvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgc3VwcG9ydDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY29tbW9uQ2hpbGRyZW5GbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBjb21tb25DaGlsZHJlbk51bWJlcjpuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBjcG9FeHBpcmF0aW9uRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgY3BvRXhwaXJhdGlvbkRhdGU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFjY2Vzc1Jpc2s6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgZHJ1Z1VzZUZsYWc6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgc3VwcG9ydEluUGxhY2VGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICB3ZWFwb25JbnZvbHZlZEZsYWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIG90aGVyV2VhcG9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBvdGhlckRydWc6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIGFsY29ob2xVc2VGbGFnOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHZpY3RpbVN1cHBvcnRzOm5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsICksXHJcbiAgICAgIHZpY3RpbVdlYXBvblVzZXM6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgdmljdGltRHJ1Z1VzZXM6bmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuICAgICAgYWxsb3dDc29zYUNvbnRhY3RGbGFnOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCApLFxyXG4gICAgICBsaXZlV2l0aE9mZmVuZGVyRmxhZzogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgKSxcclxuXHJcblxyXG59KTtcclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuXHRcdHRoaXMudmljdGltRm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgX2dldFZpY3RpbSgpIHtcclxuICAgIGlmICh0aGlzLnZpY3RpbUlkID09PSAwKSB7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9O1xyXG5cdFx0aWYgKHRoaXMuZWRpdE1vZGUgPT0gdHJ1ZSkge1xyXG4gICAgY29uc29sZS5sb2coJ2ZpbmQgdmljdGltIGlkIGluc2lkZSBnZXRWaWN0aW0nKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltSWQpO1xyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUlkID09PSB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuc3ViID0gdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMudmljdGltSWQgPSBwYXJhbXNbJ3ZpY3RpbUlkJ107XHJcbiAgICAgIGNvbnNvbGUubG9nKCdteSB0aGlzLnZpY3RpbUlkJyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltSWQpO1xyXG4gICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0VmljdGltKHRoaXMudmljdGltSWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZpY3RpbTogVmljdGltKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3ZpY3RpbSBkYXRhIDEnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh2aWN0aW0pO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbSA9IDxWaWN0aW0+dmljdGltO1xyXG5cclxuICAgICAgICB2YXIgc3VwcG9ydHNEYXRhID1bXTtcclxuICAgICAgICB0aGlzLmVkaXRWaWN0aW0udmljdGltU3VwcG9ydHMuZm9yRWFjaCggdD0+e3N1cHBvcnRzRGF0YS5wdXNoKHQudmljdGltU3VwcG9ydFR5cGVJZCk7IH0gIClcclxuICAgICAgICBjb25zdCB2aWN0aW1TdXBwb3J0c0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1TdXBwb3J0cycpO1xyXG4gICAgICAgIHZpY3RpbVN1cHBvcnRzQ29udHJvbC5zZXRWYWx1ZShzdXBwb3J0c0RhdGEpO1xyXG5cclxuXHJcbiAgICAgICAgdmFyIHdlYXBvblVzZXNEYXRhID1bXTtcclxuICAgICAgICB2YXIgb3RoZXJXZWFwb24gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1XZWFwb25Vc2VzLmZvckVhY2goIHQ9PntcclxuICAgICAgICAgIHdlYXBvblVzZXNEYXRhLnB1c2godC53ZWFwb25UeXBlSWQpO1xyXG4gICAgICAgICAgaWYgKHQud2VhcG9uVHlwZUlkID09IFwiT1RIRVJcIil7XHJcbiAgICAgICAgICAgIG90aGVyV2VhcG9uID0gdC5vdGhlcldlYXBvbjtcclxuICAgICAgICAgICAgdGhpcy5vdGhlcldlYXBvbkZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9ICApXHJcblxyXG5cclxuICAgICAgICBjb25zdCB2aWN0aW1XZWFwb25Vc2VzQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ3ZpY3RpbVdlYXBvblVzZXMnKTtcclxuICAgICAgICB2aWN0aW1XZWFwb25Vc2VzQ29udHJvbC5zZXRWYWx1ZSh3ZWFwb25Vc2VzRGF0YSk7XHJcblxyXG4gICAgICAgIGNvbnN0IG90aGVyV2VhcG9uQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJyk7XHJcbiAgICAgICAgb3RoZXJXZWFwb25Db250cm9sLnNldFZhbHVlKG90aGVyV2VhcG9uKTtcclxuXHJcblxyXG4gICAgICAgIC8vdGhpcy53ZWFwb25Vc2VzRGF0YSA9IHRoaXMuZWRpdFZpY3RpbS52aWN0aW1XZWFwb25Vc2VzO1xyXG5cclxuICAgICAgICB2YXIgZHJ1Z1VzZURhdGEgPVtdO1xyXG4gICAgICAgIHZhciBvdGhlckRydWcgPSBcIlwiO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZygnbG9hZCB0aGlzLmVkaXRWaWN0aW0udmljdGltRHJ1Z1VzZXMnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmVkaXRWaWN0aW0udmljdGltRHJ1Z1VzZXMpO1xyXG4gICAgICAgIHRoaXMuZWRpdFZpY3RpbS52aWN0aW1EcnVnVXNlcy5mb3JFYWNoKCB0PT57XHJcblxyXG4gICAgICAgICAgaWYgKHQuZHJ1Z1R5cGVJZCA9PT0gbnVsbCl7XHJcbiAgICAgICAgICAgIG90aGVyRHJ1ZyA9IHQub3RoZXJEcnVnO1xyXG4gICAgICAgICAgICB0aGlzLm90aGVyRHJ1Z0ZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0LmRydWdUeXBlSWQgPSdPVEhFUic7XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZHJ1Z1VzZURhdGEucHVzaCh0LmRydWdUeXBlSWQpO1xyXG5cclxuICAgICAgICB9ICApXHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLmVkaXRWaWN0aW0udmljdGltRHJ1Z1VzZXMgYWZ0ZXIgcHVzaCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGRydWdVc2VEYXRhKTtcclxuXHJcblxyXG4gICAgICAgIGlmIChkcnVnVXNlRGF0YSl7XHJcbiAgICAgICAgICBjb25zdCB2aWN0aW1EcnVnVXNlc0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1EcnVnVXNlcycpO1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZXNDb250cm9sLnNldFZhbHVlKGRydWdVc2VEYXRhKTtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3RoZXJEcnVnKXtcclxuICAgICAgICAgIGNvbnN0IG90aGVyRHJ1Z0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKTtcclxuICAgICAgICAgIG90aGVyRHJ1Z0NvbnRyb2wuc2V0VmFsdWUob3RoZXJEcnVnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vY29udGFjdFxyXG4gICAgICAgIHRoaXMudmljdGltU2VydmljZS5nZXRDb250YWN0cyh0aGlzLnZpY3RpbUlkKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICBjb250YWN0TGlzdCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjb250YWN0TGlzdCcpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjb250YWN0TGlzdCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFjdExpc3QgPSBjb250YWN0TGlzdDtcclxuICAgICAgICAgICAgdGhpcy5jb250YWN0RGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb250YWN0TGlzdDtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvL25vIHBob25lIGZpZWxkXHJcblxyXG4gICAgICAgIGlmICggdGhpcy5lZGl0VmljdGltLmd1YXJkaWFuTm9QaG9uZUZsYWcgPT09IGZhbHNlICl7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7Z3VhcmRpYW5Ob1Bob25lRmxhZzogZmFsc2V9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCB0aGlzLmVkaXRWaWN0aW0uYWR2b2NhdGVOb1Bob25lRmxhZyA9PT0gZmFsc2UgKXtcclxuICAgICAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZU5vUGhvbmVGbGFnOiBmYWxzZX0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oXCJFcnJvciBvY2N1cmVkIHdoaWxlIHJldHJpdmluZyBWaWN0aW0gSW5mb3JtYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uXCIpO1xyXG4gICAgICB9KTtcclxuICAgIHJldHVybjtcclxuXHRcdH0gZWxzZSB7XHJcbiAgICAgIC8vbmV3XHJcblxyXG4gICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuXHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCkge1xyXG4gICAgaWYgKHRoaXMuYWRkcmVzc0NvbXBvbmVudCkgdGhpcy5hZGRyZXNzQ29tcG9uZW50LnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBzaG93QWRkcmVzcyh2YWx1ZSl7XHJcblxyXG4gICAgaWYgKHZhbHVlLmNoZWNrZWQpe1xyXG5cclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRDdXJyZW50SG91c2luZyh0aGlzLm9mZmVuZGVySWQpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRkcmVzc0lkID0gaXRlbS5ob3VzaW5nLmFkZHJlc3NJZDtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0ucGF0Y2hWYWx1ZSh7YWRkcmVzc0lkOiB0aGlzLmFkZHJlc3NJZH0pXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmFkZHJlc3NDb21wb25lbnQucmVzZXQoKTtcclxuICAgICAgdGhpcy5lZGl0VmljdGltLmFsbG93Q3Nvc2FDb250YWN0RmxhZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFkZHJlc3NJZCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIG9uQWRkcmVzc0NoYW5nZShhZGRyZXNzSWQpIHtcclxuICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZGRyZXNzSWQ6IGFkZHJlc3NJZH0pXHJcbiAgICB0aGlzLmFkZHJlc3NJZCA9IGFkZHJlc3NJZDtcclxuICB9XHJcbiAgb25HdWFyZGlhbkFkZHJlc3NDaGFuZ2UoTXlHdWFyZGlhbkFkZHJlc3NJZCkge1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2d1YXJkaWFuQWRkcmVzc0lkOiBNeUd1YXJkaWFuQWRkcmVzc0lkfSlcclxuICAgIHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQgPSAgTXlHdWFyZGlhbkFkZHJlc3NJZDtcclxuICB9XHJcbiAgb25BZHZvY2F0ZUFkZHJlc3NDaGFuZ2UoTXlBZHZvY2F0ZUFkZHJlc3NJZCkge1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLnBhdGNoVmFsdWUoe2Fkdm9jYXRlQWRkcmVzc0lkOiBNeUFkdm9jYXRlQWRkcmVzc0lkfSlcclxuICAgIHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQgPSBNeUFkdm9jYXRlQWRkcmVzc0lkO1xyXG4gIH1cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0ucmVzZXQoKTtcclxufVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnc2hvdyBvZmZlbmRlcklkJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm9mZmVuZGVySWQpO1xyXG4gICAgY29uc29sZS5sb2coJ3Nob3cgc3RhZmZJZCcpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zdGFmZklkKTtcclxuICAgIGNvbnNvbGUubG9nKCdzaG93IGlzSW50YWtlJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmlzSW50YWtlKTtcclxuICAgIC8vdGhpcy52aWN0aW1EZXRhaWwuZ3VhcmRpYW5Ob1Bob25lRmxhZyA9IHRydWU7XHJcbiAgICAvL3RoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnID0gIHRydWU7XHJcbiAgICAvL3RoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTm9QaG9uZUZsYWcnKS5zZXRWYWx1ZSh0cnVlKTtcclxuXHJcbiAgICAgICAvL3JlcXVpcmVkIGZpZWxkXHJcbiAgICBjb25zdCByZXF1aXJlZEltcGxlbWVudGF0aW9uID0ge2dldDpmdW5jdGlvbigpOmJvb2xlYW57aWYodGhpcy5fcmVxdWlyZWQpe3JldHVybiB0aGlzLl9yZXF1aXJlZDt9XHJcbiAgICBpZih0aGlzLm5nQ29udHJvbCYmdGhpcy5uZ0NvbnRyb2wuY29udHJvbCYmdGhpcy5uZ0NvbnRyb2wuY29udHJvbC52YWxpZGF0b3JcclxuICAgICAgKXtjb25zdCBlbXB0eVZhbHVlQ29udHJvbD1PYmplY3QuYXNzaWduKHt9LFxyXG4gICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wpOyhlbXB0eVZhbHVlQ29udHJvbCBhcyBhbnkpLnZhbHVlPW51bGw7XHJcbiAgICAgICAgcmV0dXJuKCdyZXF1aXJlZCdpbih0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcihlbXB0eVZhbHVlQ29udHJvbCl8fHt9KSk7fVxyXG4gICAgICAgIHJldHVybiBmYWxzZTt9LHNldDpmdW5jdGlvbih2YWx1ZTpib29sZWFuKXt0aGlzLl9yZXF1aXJlZD1jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO30sfTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWF0SW5wdXQucHJvdG90eXBlLCdyZXF1aXJlZCcscmVxdWlyZWRJbXBsZW1lbnRhdGlvbiwpO1xyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNYXRTZWxlY3QucHJvdG90eXBlLCdyZXF1aXJlZCcscmVxdWlyZWRJbXBsZW1lbnRhdGlvbiwpO1xyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNYXRSYWRpb0dyb3VwLnByb3RvdHlwZSwncmVxdWlyZWQnLHJlcXVpcmVkSW1wbGVtZW50YXRpb24sKTtcclxuICAgIC8vcmVxdWlyZWQgZmllbGQgZW5kXHJcblxyXG5cclxuXHJcbiAgICAgaWYgKHRoaXMudmljdGltRGV0YWlsIT1udWxsKSB7XHJcbiAgICAgICAvLyBlZGl0IHJlY29yZFxyXG4gICAgICB0aGlzLmVkaXRNb2RlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zaG93RGVsZXRlPSB0cnVlO1xyXG4gICAgICB0aGlzLnZpY3RpbUlkID0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcblxyXG4gICAgICB0aGlzLmd1YXJkaWFuVGFiRmxhZyA9IHRoaXMudmljdGltRGV0YWlsLm1pbm9yRmxhZztcclxuXHJcblxyXG4gICAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnPT0nWVMnKXtcclxuICAgICAgICAgICAgdGhpcy5hZHZvY2F0ZVRhYkZsYWcgPSB0cnVlO1xyXG4gICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMub3RoZXJXZWFwb25GbGFnID09IHRydWUpe1xyXG4gICAgICAgIGNvbnN0IG90aGVyV2VhcG9uQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJyk7XHJcbiAgICAgICAgb3RoZXJXZWFwb25Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5vdGhlckRydWdGbGFnID09IHRydWUpe1xyXG4gICAgICAgIGNvbnN0IG90aGVyRHJ1Z0NvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKTtcclxuICAgICAgICBvdGhlckRydWdDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmNwb0V4cGlyYXRpb25EaXZGbGFnICA9dGhpcy52aWN0aW1EZXRhaWwuY3BvRXhwaXJhdGlvbkZsYWc7XHJcbiAgICAgIHRoaXMuY29tbW9uQ2hpbGRyZW5EaXZGbGFnID0gdGhpcy52aWN0aW1EZXRhaWwuY29tbW9uQ2hpbGRyZW5GbGFnO1xyXG4gICAgICB0aGlzLnN1cHBvcnRJblBsYWNlRGl2RmxhZz0gIHRoaXMudmljdGltRGV0YWlsLnN1cHBvcnRJblBsYWNlRmxhZztcclxuICAgICAgdGhpcy53ZWFwb25JbnZvbHZlZERpdkZsYWc9ICB0aGlzLnZpY3RpbURldGFpbC53ZWFwb25JbnZvbHZlZEZsYWc7XHJcbiAgICAgIHRoaXMuZHJ1Z1VzZURpdkZsYWc9ICB0aGlzLnZpY3RpbURldGFpbC5kcnVnVXNlRmxhZztcclxuICAgICAgdGhpcy5hZGRyZXNzSWQgPSB0aGlzLnZpY3RpbURldGFpbC5hZGRyZXNzSWQ7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQgPSAgdGhpcy52aWN0aW1EZXRhaWwuZ3VhcmRpYW5BZGRyZXNzSWQ7XHJcbiAgICAgIHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQgPSAgdGhpcy52aWN0aW1EZXRhaWwuYWR2b2NhdGVBZGRyZXNzSWQ7XHJcblxyXG4gICAgICB0aGlzLl9nZXRWaWN0aW0oKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL2FkZCBuZXcgcmVjb3JkXHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHtndWFyZGlhbk5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS5wYXRjaFZhbHVlKHthZHZvY2F0ZU5vUGhvbmVGbGFnOiB0cnVlfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRGbGFnT3B0aW9uWWVzTm9Vbmtub3ducygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZsYWdPcHRpb24gPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRHZW5kZXJzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2VuZGVycyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFByZWZpeGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucHJlZml4ZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRTdWZmaXhlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnN1ZmZpeGVzID0gaXRlbXM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0UmVsYXRpb25zaGlwVHlwZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWxhdGlvbnNoaXBUeXBlcyA9IGl0ZW1zLmZpbHRlciggKHkpID0+ICh5LnJlbGF0aW9uc2hpcENhdGVnb3J5SWQgPT09ICdTVCcgfHwgeS5yZWxhdGlvbnNoaXBDYXRlZ29yeUlkID09PSAnRk0nICkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFN1cHBvcnRUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbVN1cHBvcnRUeXBlcyA9IGl0ZW1zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFdlYXBvblR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMud2VhcG9uVHlwZXMgPSBpdGVtcztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXREcnVnc1R5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdkcnVnIGxvb2t1cCBpdGVtcycpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGl0ZW1zKTtcclxuICAgICAgICB0aGlzLmRydWdzID0gaXRlbXM7XHJcbiAgICAgICAgdGhpcy5kcnVncy5wdXNoKHtkcnVnVHlwZUlkOiAnT1RIRVInLCBuYW1lOiAnT3RoZXInfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5kcnVncyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICAvLyB0aGlzLnZpY3RpbVNlcnZpY2UuZ2V0RG9ja2V0TGlzdCh0aGlzLm9mZmVuZGVySWQpLnN1YnNjcmliZShcclxuICAgIC8vICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuICAgIC8vICAgICB0aGlzLmRvY2tldGxpc3QgPSBpdGVtcztcclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vICk7XHJcblxyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykudmFsdWVDaGFuZ2VzXHJcbiAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuQ2VsbFBob25lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS52YWx1ZUNoYW5nZXNcclxuICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVIb21lUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgYmFjaygpe1xyXG5cclxuICAgIC8vdGhpcy5vblNhdmUuZW1pdCh0aGlzLnZpY3RpbURldGFpbCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUxpc3QnXSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZGVsZXRlVmljdGltKCkge1xyXG4gICAgdGhpcy5jb21tb25EaWFsb2dTZXJ2aWNlXHJcbiAgICAuY29uZmlybSgnJywgJ0RvIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIFZpY3RpbT8nLCAnWWVzJywgJ05vJylcclxuICAgIC5zdWJzY3JpYmUocmVzID0+IHt0aGlzLnJlc3VsdCA9ICByZXM7XHJcbiAgICAgICAgaWYgKHRoaXMucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudmljdGltU2VydmljZS5kZWxldGVWaWN0aW1zKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkKVxyXG4gICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRGVsZXRlIFN1Y2Nlc3NmdWxseSEnLCAnJywge1xyXG4gICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsIH0pO31cclxuXHJcbiAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbSddKTtcclxuICAgICAgICAgICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLnZpY3RpbURldGFpbCk7XHJcbiAgICAgICAgfVxyXG4gICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHJhZGlvTWlub3JDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgIC8vIGNvbnN0IGd1YXJkaWFuTGFzdE5hbWVDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpO1xyXG4gICAgLy9jb25zdCBndWFyZGlhbkZpcnN0TmFtZUNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpO1xyXG5cclxuXHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gdHJ1ZTtcclxuICAgICAvLyBndWFyZGlhbkxhc3ROYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgIC8vIGd1YXJkaWFuRmlyc3ROYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAvL3RoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnID0gIHRydWU7XHJcblxyXG5cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuZ3VhcmRpYW5UYWJGbGFnID0gZmFsc2U7XHJcbiAgICAgLy8gZ3VhcmRpYW5MYXN0TmFtZUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgLy8gZ3VhcmRpYW5GaXJzdE5hbWVDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cclxuXHJcbiAgICB9XHJcblxyXG5cdFx0Ly9ndWFyZGlhbkxhc3ROYW1lQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgIC8vIGd1YXJkaWFuRmlyc3ROYW1lQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcmFkaW9BZHZvY2F0ZUNoYW5nZSgkZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlKXtcclxuXHJcbiAgICBjb25zdCBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKTtcclxuICAgIGNvbnN0IGFkdm9jYXRlRmlyc3ROYW1lQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJyk7XHJcbiAgICAvLyBjb25zdCBhZHZvY2F0ZU5vUGhvbmVDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVOb1Bob25lRmxhZycpO1xyXG5cclxuXHJcblxyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gXCJZU1wiKSB7XHJcbiAgICAgIHRoaXMuYWR2b2NhdGVUYWJGbGFnID0gdHJ1ZTtcclxuICAgICAgYWR2b2NhdGVMYXN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcblxyXG5cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuYWR2b2NhdGVUYWJGbGFnID0gZmFsc2U7XHJcblxyXG4gICAgICBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgYWR2b2NhdGVGaXJzdE5hbWVDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBhZHZvY2F0ZUxhc3ROYW1lQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICBhZHZvY2F0ZUZpcnN0TmFtZUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cclxuICB9XHJcblxyXG4gIHJhZGlvQ2ljQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNvbW1vbkNoaWxkcmVuRGl2RmxhZyA9IHRydWU7XHJcbiAgICAgIC8vIHJlcXVyaWUgZmllbGRcclxuICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzKCdjb21tb25DaGlsZHJlbicpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5jb21tb25DaGlsZHJlbkRpdkZsYWcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFZhbGlkYXRvcnModHlwZSkge1xyXG4gICAgaWYodHlwZSA9PSAnY29tbW9uQ2hpbGRyZW4nKXtcclxuICAgIHRoaXMudmljdGltRm9ybS5nZXQoJ2NvbW1vbkNoaWxkcmVuTnVtYmVyJykuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdjb21tb25DaGlsZHJlbk51bWJlcicpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgIH1cclxuICAgZWxzZSBpZiAodHlwZSA9PSAnY3BvJyl7XHJcbiAgICB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdjcG9FeHBpcmF0aW9uRGF0ZScpLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy52aWN0aW1Gb3JtLmdldCgnY3BvRXhwaXJhdGlvbkRhdGUnKS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuICAgfVxyXG4gIH1cclxuICByYWRpb1N1cHBvcnRDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuc3VwcG9ydEluUGxhY2VEaXZGbGFnID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuc3VwcG9ydEluUGxhY2VEaXZGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJhZGlvV2VhcG9uQ2hhbmdlKCRldmVudDogTWF0UmFkaW9DaGFuZ2Upe1xyXG4gICAgaWYgKCRldmVudC52YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndlYXBvbkludm9sdmVkRGl2RmxhZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLndlYXBvbkludm9sdmVkRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICByYWRpb0RydWdDaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZHJ1Z1VzZURpdkZsYWcgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5kcnVnVXNlRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmFkaW9DcG9DaGFuZ2UoJGV2ZW50OiBNYXRSYWRpb0NoYW5nZSl7XHJcbiAgICBpZiAoJGV2ZW50LnZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuY3BvRXhwaXJhdGlvbkRpdkZsYWcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNldFZhbGlkYXRvcnMoJ2NwbycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5jcG9FeHBpcmF0aW9uRGl2RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRE9CQ2hhbmdlKCRldmVudCApe1xyXG4gICB2YXIgYWdlRGlmTXMgPSBEYXRlLm5vdygpIC0gICRldmVudC52YWx1ZTtcclxuICAgdmFyIGFnZURhdGUgPSBuZXcgRGF0ZShhZ2VEaWZNcyk7XHJcbiAgICBpZiggTWF0aC5hYnMoYWdlRGF0ZS5nZXRVVENGdWxsWWVhcigpIC0gMTk3MCkgPD0gMTgpe1xyXG5cclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1ZpY3RpbSBpcyBhIE1pbm9yLiBUaGlzIGluZm9ybWF0aW9uIGlzIGEgc2Vuc2l0aXZlIGFuZCBzaG91bGQgbm90IGJlIGRpc2Nsb3NlZCB0byBhbnkgdW5hdXRob3JpemVkIHBhcnRpZXMuIENvbnRhY3QgdGhlIGxlZ2FsIGd1YXJkaWFuLicsICcnLCB7XHJcbiAgICAgICAgZHVyYXRpb246IDYwMDAsfSk7XHJcbiAgICAgICAgY29uc3QgbWlub3JDb250cm9sID0gdGhpcy52aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJyk7XHJcbiAgICAgICAgbWlub3JDb250cm9sLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAvLyAgY29uc3QgZ3VhcmRpYW5MYXN0TmFtZUNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJyk7XHJcbiAgICAgICAvLyBjb25zdCBndWFyZGlhbkZpcnN0TmFtZUNvbnRyb2wgPSB0aGlzLnZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5ndWFyZGlhblRhYkZsYWcgPSB0cnVlO1xyXG4gICAgICAgLy8gZ3VhcmRpYW5MYXN0TmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgLy8gIGd1YXJkaWFuRmlyc3ROYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG5cclxuXHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgY2hlY2tPdGhlcldlYXBvbihXZWFwb25Vc2Upe1xyXG5cclxuICAgIGNvbnN0IG90aGVyV2VhcG9uQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJyk7XHJcbiAgICAgaWYgKFdlYXBvblVzZS5pbmNsdWRlcyhcIk9USEVSXCIpKXtcclxuICAgICB0aGlzLm90aGVyV2VhcG9uRmxhZyA9IHRydWU7XHJcbiAgICAgb3RoZXJXZWFwb25Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5vdGhlcldlYXBvbkZsYWcgPSBmYWxzZTtcclxuICAgICAgb3RoZXJXZWFwb25Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgfVxyXG4gICBvdGhlcldlYXBvbkNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tPdGhlckRydWcoRHJ1Z1VzZSl7XHJcblxyXG4gICAgY29uc3Qgb3RoZXJEcnVnQ29udHJvbCA9IHRoaXMudmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpO1xyXG4gICAgIGlmIChEcnVnVXNlLmluY2x1ZGVzKFwiT1RIRVJcIikpe1xyXG4gICAgIHRoaXMub3RoZXJEcnVnRmxhZyA9IHRydWU7XHJcbiAgICAgb3RoZXJEcnVnQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpXHJcblxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm90aGVyRHJ1Z0ZsYWcgPSBmYWxzZTtcclxuICAgICAgb3RoZXJEcnVnQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuXHJcblxyXG4gICAgfVxyXG4gICBvdGhlckRydWdDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBcInNhdmUgdmljdGltXCJcclxuICBzYXZlVmljdGltKCkge1xyXG5cclxuXHJcbiAgLy9ndWFyZGlhbiBwaG9uZSBsb2dpY1xyXG4gIGlmICghdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTm9QaG9uZUZsYWcpXHJcbiAgIHtcclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lKXtcclxuICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUgIT09IG51bGwpe1xyXG4gICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgIHRoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSAhPT0gXCJcIil7XHJcbiAgICAgICAgICAgIHRoaXMuZ3VhcmRpYW5QaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUpe1xyXG4gICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbFBob25lICE9PSBudWxsKXtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQ2VsbGhvbmUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZyk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmd1YXJkaWFuUGhvbmVFeGlzdEZsYWcpO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy5ndWFyZGlhblBob25lRXhpc3RGbGFnID09PSBmYWxzZSAmJiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZyA9PT0gZmFsc2UpXHJcbiAgICB7XHJcblxyXG4gICAgICAgICAgdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uRGlhbG9nU2VydmljZVxyXG4gICAgICAgICAgLndhcm5pbmcoJycsICdQbGVhc2UgY2hlY2sgdGhlIGd1YXJkaWFuIHBob25lIGZpZWxkLiBZb3UgaGF2ZSB0byBmaWxsIG9uZSBvZiB0aGUgdGhyZWUgcGhvbmUgZmlsZWRzLicsICdPaycpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7dGhpcy5yZXN1bHQgPSAgcmVzO1xyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZycpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuXHJcbiAgICAvL2Fkdm9jYXRlIHBob25lIGxvZ2ljXHJcbiAgICBpZiAoIXRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnKVxyXG4gICAge1xyXG4gICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lKXtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lICE9PSBudWxsKXtcclxuICAgICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICAgIHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9ICB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgIT09IG51bGwpe1xyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUgIT09IFwiXCIpe1xyXG4gICAgICAgICAgICB0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcgPSAgdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lKXtcclxuICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSAhPT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxob25lICE9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnID0gIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnJyk7XHJcbiBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZyk7XHJcbiBjb25zb2xlLmxvZygndGhpcy5hZHZvY2F0ZVBob25lRXhpc3RGbGFnJyk7XHJcbiBjb25zb2xlLmxvZyh0aGlzLmFkdm9jYXRlUGhvbmVFeGlzdEZsYWcpO1xyXG5cclxuIGlmKHRoaXMuYWR2b2NhdGVQaG9uZUV4aXN0RmxhZyA9PT0gZmFsc2UgJiYgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTm9QaG9uZUZsYWcgPT09IGZhbHNlKVxyXG4ge1xyXG5cclxuICAgICAgIHRoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyA9IHRydWU7XHJcbiAgICAgICB0aGlzLmNvbW1vbkRpYWxvZ1NlcnZpY2VcclxuICAgICAgIC53YXJuaW5nKCcnLCAnUGxlYXNlIGNoZWNrIHRoZSBhZHZvY2F0ZSBwaG9uZSBmaWVsZC4gWW91IGhhdmUgdG8gZmlsbCBvbmUgb2YgdGhlIHRocmVlIHBob25lIGZpbGVkcy4nLCAnT2snKVxyXG4gICAgICAgLnN1YnNjcmliZShyZXMgPT4ge3RoaXMucmVzdWx0ID0gIHJlcztcclxuXHJcbiAgICAgICB9KTtcclxuIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ob21lUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmhvbWVQaG9uZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lID0gIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUud29ya1Bob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndvcmtQaG9uZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJykgO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndvcmtQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5jZWxsUGhvbmUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZS5yZXBsYWNlKC9bKClcXHMtXS9nLCAnJyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY2VsbFBob25lPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFBob25lKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RQaG9uZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1cclxuICAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUgPSBudWxsO1xyXG4gICAgIH1cclxuXHJcbiAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVXb3JrUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfVxyXG4gICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSA9bnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUNlbGxQaG9uZSA9ICBudWxsO1xyXG4gICAgIH1cclxuXHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lLnJlcGxhY2UoL1soKVxccy1dL2csICcnKVxyXG4gICAgIH1cclxuICAgICBlbHNle1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ib21lUGhvbmUgPSBudWxsO1xyXG4gICAgIH1cclxuXHJcbiAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfVxyXG4gICAgIGVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbldvcmtQaG9uZSA9bnVsbDtcclxuICAgICB9XHJcblxyXG4gICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUpe1xyXG4gICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5DZWxsUGhvbmUucmVwbGFjZSgvWygpXFxzLV0vZywgJycpXHJcbiAgICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkNlbGxQaG9uZSA9ICBudWxsO1xyXG4gICAgIH1cclxuLy9kYXRhIHByb2Nlc3NcclxuXHJcbiAgY29uc29sZS5sb2coJ3RoaXMucGhvbmVWYWxpZGF0aW9uRmxhZyAxJyk7XHJcbiAgY29uc29sZS5sb2codGhpcy5waG9uZVZhbGlkYXRpb25GbGFnKTtcclxuIGlmICggdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID09PSBmYWxzZSl7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnZpY3RpbURldGFpbCA9PT0gbnVsbCl7XHJcbiAgICAgIC8vaW5zZXJ0IG5ldyB2aWN0aW1cclxuXHJcbiAgICAgdmFyIG15VmljdGltU3VwcG9ydHMgPSBbXTtcclxuICAgICBpZiAodGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzKXtcclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVN1cHBvcnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGNvbnN0IHZpY3RpbVN1cHBvcnQ9IDxWaWN0aW1TdXBwb3J0Pnt9O1xyXG4gICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbUlkPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltSWQ7XHJcbiAgICAgICAgICAgIHZpY3RpbVN1cHBvcnQudmljdGltU3VwcG9ydFR5cGVJZD0gZWxlbWVudDtcclxuICAgICAgICAgICAgdmljdGltU3VwcG9ydC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgIG15VmljdGltU3VwcG9ydHMucHVzaCh2aWN0aW1TdXBwb3J0KTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgfVxyXG5cclxuICAgIHZhciBteVZpY3RpbURydWdVc2VzID0gW107XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzIGR1cmluZyBzYXZlJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpO1xyXG4gICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyl7XHJcbiAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgIGNvbnN0IHZpY3RpbURydWdVc2UgPSA8VmljdGltRHJ1Z1VzZT57fTtcclxuICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG5cclxuICAgICBpZiAoZWxlbWVudCA9PT1cIk9USEVSXCIgfHwgZWxlbWVudCA9PT0gXCJcIiB8fCBlbGVtZW50ID09PSBudWxsKXtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5kcnVnVHlwZUlkID0gbnVsbDtcclxuICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJEcnVnO1xyXG4gICAgIH1cclxuICAgICBlbHNle1xyXG4gICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG4gICAgICB2aWN0aW1EcnVnVXNlLm90aGVyRHJ1ZyA9IG51bGw7XHJcbiAgICAgfVxyXG5cclxuICAgICB2aWN0aW1EcnVnVXNlLm1vZGlmaWVkQnkgPSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgdmljdGltRHJ1Z1VzZS52aWN0aW1JZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1JZDtcclxuICAgICBteVZpY3RpbURydWdVc2VzLnB1c2godmljdGltRHJ1Z1VzZSk7XHJcbiAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBkdXJpbmcgc2F2ZSAxJyk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpO1xyXG5cclxuXHJcblxyXG4gIHZhciBteVZpY3RpbVdlYXBvblVzZXMgPSBbXTtcclxuXHJcbiAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1XZWFwb25Vc2VzKXtcclxuICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1XZWFwb25Vc2VzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICBjb25zdCB2aWN0aW1XZWFwb25Vc2UgPSA8VmljdGltV2VhcG9uVXNlPnt9O1xyXG4gICAgICAgdmljdGltV2VhcG9uVXNlLnZpY3RpbUlkPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUlkO1xyXG4gICAgICAgdmljdGltV2VhcG9uVXNlLndlYXBvblR5cGVJZD0gZWxlbWVudDtcclxuXHJcbiAgICAgICBpZiAoZWxlbWVudCA9PVwiT1RIRVJcIil7XHJcbiAgICAgICAgdmljdGltV2VhcG9uVXNlLm90aGVyV2VhcG9uID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm90aGVyV2VhcG9uO1xyXG4gICAgICAgfVxyXG4gICAgICAgZWxzZXtcclxuICAgICAgICB2aWN0aW1XZWFwb25Vc2Uub3RoZXJXZWFwb24gPSBudWxsO1xyXG4gICAgICAgfVxyXG5cclxuICAgICAgIHZpY3RpbVdlYXBvblVzZS5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICBteVZpY3RpbVdlYXBvblVzZXMucHVzaCh2aWN0aW1XZWFwb25Vc2UpO1xyXG4gICB9KTtcclxuIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gY29uc3QgbmV3VmljdGltID0ge1xyXG4gICB2aWN0aW1JZDogMCxcclxuICAgb2ZmZW5kZXJJZDogdGhpcy5vZmZlbmRlcklkLFxyXG4gICB2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZDpcclxuICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQsXHJcbiAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGFzdE5hbWUsXHJcbiAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmZpcnN0TmFtZSxcclxuICAgbWlkZGxlTmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pZGRsZU5hbWVcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lXHJcbiAgICAgOiBudWxsLFxyXG4gICBwcmVmaXhJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnByZWZpeElkXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUucHJlZml4SWRcclxuICAgICA6IG51bGwsXHJcbiAgIHN1ZmZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuc3VmZml4SWRcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdWZmaXhJZFxyXG4gICAgIDogbnVsbCxcclxuICAgYmlydGhEYXRlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYmlydGhEYXRlXHJcbiAgICAgOiBudWxsLFxyXG4gICBnZW5kZXJDb2RlOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ2VuZGVyQ29kZVxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmdlbmRlckNvZGVcclxuICAgICA6IG51bGwsXHJcbiAgIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudW5kZXJTdXBlcnZpc2lvbkZsYWcsXHJcbiAgIG1pbm9yRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLm1pbm9yRmxhZyxcclxuICAgdmljdGltQWR2b2NhdGVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltQWR2b2NhdGVGbGFnLFxyXG5cclxuICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lLFxyXG4gICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS53b3JrUGhvbmUsXHJcbiAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNlbGxQaG9uZSxcclxuICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbCA6IG51bGwsXHJcbiAgIGFkZHJlc3NJZDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkZHJlc3NJZFxyXG4gICAgIDogMSxcclxuICAgZW1lcmdlbmN5Q29udGFjdDogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmVtZXJnZW5jeUNvbnRhY3RcclxuICAgICA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0XHJcbiAgICAgOiBudWxsLFxyXG4gICBlbWVyZ2VuY3lDb250YWN0UGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0UGhvbmUsXHJcbiAgIGNvbW1vbkNoaWxkcmVuRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNvbW1vbkNoaWxkcmVuRmxhZyxcclxuICAgY29tbW9uQ2hpbGRyZW5OdW1iZXI6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbk51bWJlcixcclxuICAgY3BvRXhwaXJhdGlvbkZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRmxhZyxcclxuICAgY3BvRXhwaXJhdGlvbkRhdGU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5jcG9FeHBpcmF0aW9uRGF0ZVxyXG4gICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25EYXRlLCBcInNob3J0XCIpXHJcbiAgICAgOiBudWxsLFxyXG4gICBzdXBwb3J0SW5QbGFjZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5zdXBwb3J0SW5QbGFjZUZsYWcsXHJcbiAgIHdlYXBvbkludm9sdmVkRmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLndlYXBvbkludm9sdmVkRmxhZyxcclxuICAgZHJ1Z1VzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5kcnVnVXNlRmxhZyxcclxuICAgYWxjb2hvbFVzZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hbGNvaG9sVXNlRmxhZyxcclxuICAgYWNjZXNzUmlzazogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFjY2Vzc1Jpc2ssXHJcbiAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgdlZpY3RpbUFkdm9jYXRlOiBudWxsLFxyXG4gICB2VmljdGltR3VhcmRpYW46IG51bGwsXHJcbiAgIHZpY3RpbURydWdVc2VzOiBteVZpY3RpbURydWdVc2VzLFxyXG4gICB2aWN0aW1TdXBwb3J0czogbXlWaWN0aW1TdXBwb3J0cyxcclxuICAgdmljdGltV2VhcG9uVXNlczogbXlWaWN0aW1XZWFwb25Vc2VzLFxyXG5cclxuICAgYWR2b2NhdGVGaXJzdE5hbWU6IG51bGwsXHJcbiAgIGFkdm9jYXRlTGFzdE5hbWU6IG51bGwsXHJcbiAgIGFkdm9jYXRlRW1haWw6IG51bGwsXHJcbiAgIGFkdm9jYXRlUHJlZml4SWQ6IG51bGwsXHJcbiAgIGFkdm9jYXRlU3VmZml4SWQ6IG51bGwsXHJcbiAgIGFkdm9jYXRlTm9QaG9uZUZsYWc6IG51bGwsXHJcbiAgIGFkdm9jYXRlSG9tZVBob25lOiBudWxsLFxyXG4gICBhZHZvY2F0ZVdvcmtQaG9uZTogbnVsbCxcclxuICAgYWR2b2NhdGVDZWxsUGhvbmU6IG51bGwsXHJcbiAgIGFkdm9jYXRlQWRkcmVzc0lkOiBudWxsLFxyXG4gICBndWFyZGlhbkZpcnN0TmFtZTogbnVsbCxcclxuICAgZ3VhcmRpYW5MYXN0TmFtZTogbnVsbCxcclxuICAgZ3VhcmRpYW5FbWFpbDogbnVsbCxcclxuICAgZ3VhcmRpYW5QcmVmaXhJZDogbnVsbCxcclxuICAgZ3VhcmRpYW5TdWZmaXhJZDogbnVsbCxcclxuICAgZ3VhcmRpYW5Ob1Bob25lRmxhZzogbnVsbCxcclxuICAgZ3VhcmRpYW5Ib21lUGhvbmU6IG51bGwsXHJcbiAgIGd1YXJkaWFuV29ya1Bob25lOiBudWxsLFxyXG4gICBndWFyZGlhbkNlbGxQaG9uZTogbnVsbCxcclxuICAgZ3VhcmRpYW5BZGRyZXNzSWQ6IG51bGwsXHJcbiAgIGd1YXJkaWFuQmlydGhEYXRlOiBudWxsLFxyXG4gICByZWxhdGlvbnNoaXA6IG51bGwsXHJcbiAgIC8vcmVsYXRpb25zaGlwOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ/IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCA6IG51bGwsXHJcbiAgIGFsbG93Q3Nvc2FDb250YWN0RmxhZzogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZ1xyXG4gICAgIDogbnVsbCxcclxuICAgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5saXZlV2l0aE9mZmVuZGVyRmxhZ1xyXG4gICAgID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmxpdmVXaXRoT2ZmZW5kZXJGbGFnXHJcbiAgICAgOiBudWxsLFxyXG4gfTtcclxuXHJcbiAgICAgaWYgKHRoaXMuYWRkcmVzc0lkID09IDApe1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gbnVsbDtcclxuICAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdWaWN0aW0uYWRkcmVzc0lkID0gIHRoaXMuYWRkcmVzc0lkO1xyXG4gICAgIH1cclxuXHJcbiAgICAgbmV3VmljdGltLmFkdm9jYXRlQWRkcmVzc0lkID0gIHRoaXMuYWR2b2NhdGVBZGRyZXNzSWQ7XHJcbiAgICAgbmV3VmljdGltLmd1YXJkaWFuQWRkcmVzc0lkID0gIHRoaXMuZ3VhcmRpYW5BZGRyZXNzSWQ7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5sb2coJ25ld1ZpY3RpbScpO1xyXG4gICAgICBjb25zb2xlLmxvZyhuZXdWaWN0aW0pO1xyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbXMobmV3VmljdGltKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGl0ZW1zOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgIGNvbnN0IGlkID0gaXRlbXMgPyBpdGVtcy52aWN0aW1JZCA6ICcnO1xyXG5cclxuICAgICAgICAgaWYgKHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1BZHZvY2F0ZUZsYWcgPT0gXCJZU1wiKXtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnYWRkIGFkdm9jYXRlJyk7XHJcbiAgICAgICAgICBjb25zdCB2aWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUgPSB7XHJcbiAgICAgICAgICB2aWN0aW1BZHZvY2F0ZUlkOiBpZCxcclxuICAgICAgICAgIGxhc3ROYW1lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVMYXN0TmFtZSxcclxuICAgICAgICAgIGZpcnN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRmlyc3ROYW1lLFxyXG4gICAgICAgICAgcHJlZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVByZWZpeElkLFxyXG4gICAgICAgICAgc3VmZml4SWQ6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVN1ZmZpeElkLFxyXG4gICAgICAgICAgYWRkcmVzc0lkOiB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID8gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZDogbnVsbCxcclxuICAgICAgICAgIG5vUGhvbmVGbGFnOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZyA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZU5vUGhvbmVGbGFnOiBudWxsLFxyXG4gICAgICAgICAgaG9tZVBob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVIb21lUGhvbmUsXHJcbiAgICAgICAgICB3b3JrUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZSxcclxuICAgICAgICAgIGNlbGxQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlQ2VsbFBob25lLFxyXG4gICAgICAgICAgZW1haWw6IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUVtYWlsLFxyXG4gICAgICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkXHJcblxyXG5cclxuICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnBvc3RWaWN0aW1BZHZvY2F0ZShpZCwgdmljdGltQWR2b2NhdGUpLnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUZvcm0udmFsdWUubWlub3JGbGFnID09IHRydWUpe1xyXG5cclxuXHJcbiAgICAgICAgY29uc3QgdmljdGltR3VhcmRpYW46IFZpY3RpbUd1YXJkaWFuID0ge1xyXG4gICAgICAgICAgdmljdGltR3VhcmRpYW5JZDogaWQsXHJcbiAgICAgICAgICBsYXN0TmFtZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuTGFzdE5hbWUsXHJcbiAgICAgICAgICBmaXJzdE5hbWU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkZpcnN0TmFtZSxcclxuICAgICAgICAgIHByZWZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5QcmVmaXhJZCxcclxuICAgICAgICAgIHN1ZmZpeElkOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5TdWZmaXhJZCxcclxuICAgICAgICAgIGJpcnRoRGF0ZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuQmlydGhEYXRlLFxyXG4gICAgICAgICAgYWRkcmVzc0lkOiB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkPyB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkOiBudWxsLFxyXG4gICAgICAgICAgbm9QaG9uZUZsYWc6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Ob1Bob25lRmxhZzogbnVsbCxcclxuICAgICAgICAgIGhvbWVQaG9uZTogdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lLFxyXG4gICAgICAgICAgd29ya1Bob25lOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmUsXHJcbiAgICAgICAgICBjZWxsUGhvbmU6IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkNlbGxQaG9uZSxcclxuICAgICAgICAgIGVtYWlsOiB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5FbWFpbCxcclxuICAgICAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZFxyXG5cclxuXHJcbiAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucG9zdFZpY3RpbUd1YXJkaWFuKGlkLCB2aWN0aW1HdWFyZGlhbikuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignQWRkIFZpY3RpbSBTdWNjZXNzZnVsbHkhJywgJycsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy9pbnNlcnQgbmV3XHJcbiAgICAgICAgaWYgKHRoaXMuaXNJbnRha2U9PT10cnVlKXtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltSG9tZSddKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsndmljdGltTGlzdCddKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy90aGlzLm9uU2F2ZS5lbWl0KHRoaXMudmljdGltRGV0YWlsKTtcclxuXHJcbiAgICAgIH1cclxuICAgICApO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvL3VwZGF0ZSB2aWN0aW1cclxuXHJcblxyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC51bmRlclN1cGVydmlzaW9uRmxhZyA9IHRoaXMudmljdGltRm9ybS52YWx1ZS51bmRlclN1cGVydmlzaW9uRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5sYXN0TmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5sYXN0TmFtZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZmlyc3ROYW1lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmZpcnN0TmFtZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubWlkZGxlTmFtZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5taWRkbGVOYW1lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5wcmVmaXhJZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5wcmVmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5wcmVmaXhJZCA6IG51bGw7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLnN1ZmZpeElkID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1ZmZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1ZmZpeElkIDogbnVsbDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYmlydGhEYXRlID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmJpcnRoRGF0ZTtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZ2VuZGVyQ29kZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5nZW5kZXJDb2RlO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5taW5vckZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubWlub3JGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5ob21lUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuaG9tZVBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC53b3JrUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUud29ya1Bob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jZWxsUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY2VsbFBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5lbWFpbCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWFpbDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltQWR2b2NhdGVGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbUFkdm9jYXRlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuZW1lcmdlbmN5Q29udGFjdCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5lbWVyZ2VuY3lDb250YWN0O1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5lbWVyZ2VuY3lDb250YWN0UGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZW1lcmdlbmN5Q29udGFjdFBob25lO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jb21tb25DaGlsZHJlbkZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY29tbW9uQ2hpbGRyZW5GbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5jb21tb25DaGlsZHJlbk51bWJlciA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5jb21tb25DaGlsZHJlbk51bWJlcjtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuY3BvRXhwaXJhdGlvbkRhdGUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuY3BvRXhwaXJhdGlvbkRhdGU7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmNwb0V4cGlyYXRpb25GbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmNwb0V4cGlyYXRpb25GbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5zdXBwb3J0SW5QbGFjZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnN1cHBvcnRJblBsYWNlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwud2VhcG9uSW52b2x2ZWRGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS53ZWFwb25JbnZvbHZlZEZsYWc7XHJcbiAgICAgIHRoaXMudmljdGltRGV0YWlsLmRydWdVc2VGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5kcnVnVXNlRmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWxjb2hvbFVzZUZsYWcgPSAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsY29ob2xVc2VGbGFnO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hY2Nlc3NSaXNrID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5hY2Nlc3NSaXNrO1xyXG4gICAgICB0aGlzLnZpY3RpbURldGFpbC5hZGRyZXNzSWQgPSB0aGlzLmFkZHJlc3NJZDtcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwuYWxsb3dDc29zYUNvbnRhY3RGbGFnID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFsbG93Q3Nvc2FDb250YWN0RmxhZztcclxuICAgICAgdGhpcy52aWN0aW1EZXRhaWwubGl2ZVdpdGhPZmZlbmRlckZsYWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUubGl2ZVdpdGhPZmZlbmRlckZsYWc7XHJcblxyXG5cclxuICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVN1cHBvcnRzID0gW107XHJcbiAgICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltU3VwcG9ydHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBjb25zdCB2aWN0aW1TdXBwb3J0PSA8VmljdGltU3VwcG9ydD57fTtcclxuICAgICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbUlkPSB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZDtcclxuICAgICAgICAgICAgICB2aWN0aW1TdXBwb3J0LnZpY3RpbVN1cHBvcnRUeXBlSWQ9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgdmljdGltU3VwcG9ydC5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltU3VwcG9ydHMucHVzaCh2aWN0aW1TdXBwb3J0KTtcclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbURydWdVc2VzID0gW107XHJcblxyXG4gICAgICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBjYWxjdWxhdGUnKVxyXG4gICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKVxyXG5cclxuICAgICAgIHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpY3RpbURydWdVc2UgPSA8VmljdGltRHJ1Z1VzZT57fTtcclxuICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG4gICAgICAgY29uc29sZS5sb2coJ3RoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyBiZWZvcmUnKVxyXG4gICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzKVxyXG5cclxuICAgICAgICBpZiAoZWxlbWVudCA9PT0gXCJPVEhFUlwiIHx8IGVsZW1lbnQgPT09IFwiXCIgICl7XHJcbiAgICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBudWxsO1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJEcnVnO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICB2aWN0aW1EcnVnVXNlLmRydWdUeXBlSWQgPSBlbGVtZW50O1xyXG4gICAgICAgICAgdmljdGltRHJ1Z1VzZS5vdGhlckRydWcgPSBudWxsO1xyXG4gICAgICAgICB9XHJcblxyXG4gICAgICAgIHZpY3RpbURydWdVc2UubW9kaWZpZWRCeSA9IHRoaXMuc3RhZmZJZDtcclxuICAgICAgICB2aWN0aW1EcnVnVXNlLnZpY3RpbUlkID0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgdGhpcy52aWN0aW1EZXRhaWwudmljdGltRHJ1Z1VzZXMucHVzaCh2aWN0aW1EcnVnVXNlKTtcclxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzIGFmdGVyJylcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpXHJcblxyXG4gICAgICB9KTtcclxuXHJcblxyXG5cclxuICAgICAgdGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbURydWdVc2VzLmZpbHRlcih3b3JkID0+ICggISh3b3JkLmRydWdUeXBlSWQgPT09IG51bGwgICYmIHdvcmQub3RoZXJEcnVnID09PSBudWxsKSAgICApKTtcclxuXHJcblxyXG4gICAgICBjb25zb2xlLmxvZygnYWRqdXN0IHRoaXMudmljdGltRm9ybS52YWx1ZS52aWN0aW1EcnVnVXNlcyAnKVxyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltRHJ1Z1VzZXMpXHJcblxyXG4gICAgIHRoaXMudmljdGltRGV0YWlsLnZpY3RpbVdlYXBvblVzZXMgPSBbXTtcclxuICAgICB0aGlzLnZpY3RpbUZvcm0udmFsdWUudmljdGltV2VhcG9uVXNlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmljdGltV2VhcG9uVXNlID0gPFZpY3RpbVdlYXBvblVzZT57fTtcclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS52aWN0aW1JZD0gdGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQ7XHJcbiAgICAgICAgICB2aWN0aW1XZWFwb25Vc2Uud2VhcG9uVHlwZUlkPSBlbGVtZW50O1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZWFwb24gZWxlbWVudCcpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUZvcm0udmFsdWUub3RoZXJXZWFwb24pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1Gb3JtLnZhbHVlLnZpY3RpbVdlYXBvblVzZXMpO1xyXG5cclxuICAgICAgICAgaWYgKGVsZW1lbnQgPT1cIk9USEVSXCIpe1xyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLm90aGVyV2VhcG9uPXRoaXMudmljdGltRm9ybS52YWx1ZS5vdGhlcldlYXBvbjtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBlbHNle1xyXG4gICAgICAgICAgdmljdGltV2VhcG9uVXNlLm90aGVyV2VhcG9uID0gbnVsbDtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHZpY3RpbVdlYXBvblVzZS5tb2RpZmllZEJ5PSB0aGlzLnN0YWZmSWQ7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbURldGFpbC52aWN0aW1XZWFwb25Vc2VzLnB1c2godmljdGltV2VhcG9uVXNlKTtcclxuXHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnZpY3RpbURldGFpbCBiZWZvcmUgZW1pdCcpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbURldGFpbCk7XHJcblxyXG5cclxuICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnB1dFZpY3RpbXModGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsdGhpcy52aWN0aW1EZXRhaWwpLnN1YnNjcmliZShcclxuICAgICAgICAoaXRlbXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdVcGRhdGUgU3VjY2Vzc2Z1bGx5IScsICcnLCB7XHJcbiAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgIC8vQWR2b2NhdGUgc2VjdGlvblxyXG5cclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUudmljdGltQWR2b2NhdGVJZCA9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5sYXN0TmFtZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlTGFzdE5hbWU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmZpcnN0TmFtZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlRmlyc3ROYW1lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS5wcmVmaXhJZD0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlUHJlZml4SWQgPyB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVQcmVmaXhJZCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLnN1ZmZpeElkPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVTdWZmaXhJZCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVN1ZmZpeElkIDogbnVsbDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuYWRkcmVzc0lkPSB0aGlzLmFkdm9jYXRlQWRkcmVzc0lkID8gdGhpcy5hZHZvY2F0ZUFkZHJlc3NJZCA6IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLm5vUGhvbmVGbGFnPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVOb1Bob25lRmxhZz8gdHJ1ZTogZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmhvbWVQaG9uZT0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmFkdm9jYXRlSG9tZVBob25lO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1BZHZvY2F0ZS53b3JrUGhvbmU9IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZVdvcmtQaG9uZTtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUuY2VsbFBob25lPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVDZWxsUGhvbmU7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUFkdm9jYXRlLmVtYWlsPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuYWR2b2NhdGVFbWFpbCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5hZHZvY2F0ZUVtYWlsIDogbnVsbDtcclxuICAgICAgICAgIHRoaXMudmljdGltQWR2b2NhdGUubW9kaWZpZWRCeT0gdGhpcy5zdGFmZklkO1xyXG5cclxuICAgICAgIGNvbnNvbGUubG9nKCd3b3JrIG9uIGFkdm9jYXRlIHBhcnQnKTtcclxuICAgICAgaWYgKHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUFkdm9jYXRlRmxhZz09J1lTJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnd29yayBvbiBhZHZvY2F0ZSBmbGFnIGlzIFlTICcpO1xyXG4gICAgICAgICAgaWYodGhpcy52aWN0aW1EZXRhaWwuYWR2b2NhdGVGaXJzdE5hbWUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGVjayBhZHZvY2F0ZSBmaXNydCBuYW1lICcpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbURldGFpbC5hZHZvY2F0ZUZpcnN0TmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucHV0VmljdGltQWR2b2NhdGUodGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsdGhpcy52aWN0aW1BZHZvY2F0ZSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgcmVzcD0+e30gKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkZCBhZHZvY2F0ZScpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUFkdm9jYXRlKTtcclxuICAgICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnBvc3RWaWN0aW1BZHZvY2F0ZSh0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZCwgdGhpcy52aWN0aW1BZHZvY2F0ZSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIC8vIGd1YXJkaWFuIHNlY3Rpb25cclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4udmljdGltR3VhcmRpYW5JZCA9IHRoaXMudmljdGltRGV0YWlsLnZpY3RpbUlkO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5sYXN0TmFtZSA9ICB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5MYXN0TmFtZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uZmlyc3ROYW1lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuRmlyc3ROYW1lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5wcmVmaXhJZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblByZWZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuUHJlZml4SWQgOiBudWxsO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5zdWZmaXhJZCA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhblN1ZmZpeElkID8gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuU3VmZml4SWQgOiBudWxsO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi5hZGRyZXNzSWQgPSB0aGlzLmd1YXJkaWFuQWRkcmVzc0lkID8gdGhpcy5ndWFyZGlhbkFkZHJlc3NJZCA6IG51bGw7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLm5vUGhvbmVGbGFnID0gIHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbk5vUGhvbmVGbGFnPyB0cnVlOiBmYWxzZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uaG9tZVBob25lID0gdGhpcy52aWN0aW1Gb3JtLnZhbHVlLmd1YXJkaWFuSG9tZVBob25lO1xyXG4gICAgdGhpcy52aWN0aW1HdWFyZGlhbi53b3JrUGhvbmUgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5Xb3JrUGhvbmU7XHJcbiAgICB0aGlzLnZpY3RpbUd1YXJkaWFuLmNlbGxQaG9uZSA9IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkNlbGxQaG9uZTtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4uZW1haWwgPSB0aGlzLnZpY3RpbUZvcm0udmFsdWUuZ3VhcmRpYW5FbWFpbCA/IHRoaXMudmljdGltRm9ybS52YWx1ZS5ndWFyZGlhbkVtYWlsIDogbnVsbDtcclxuICAgIHRoaXMudmljdGltR3VhcmRpYW4ubW9kaWZpZWRCeSA9IHRoaXMuc3RhZmZJZDtcclxuXHJcbiAgICBpZiAodGhpcy52aWN0aW1EZXRhaWwubWlub3JGbGFnID09IHRydWUpXHJcbiAgICB7XHJcbiAgICAgICBpZih0aGlzLnZpY3RpbURldGFpbC5ndWFyZGlhbkZpcnN0TmFtZSAhPSBudWxsIClcclxuICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2UucHV0VmljdGltR3VhcmRpYW4odGhpcy52aWN0aW1EZXRhaWwudmljdGltSWQsdGhpcy52aWN0aW1HdWFyZGlhbikuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlc3A9PntcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2FkZCBndXJkaWFuJyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUd1YXJkaWFuKTtcclxuICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlLnBvc3RWaWN0aW1HdWFyZGlhbih0aGlzLnZpY3RpbURldGFpbC52aWN0aW1JZCwgdGhpcy52aWN0aW1HdWFyZGlhbikuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuXHJcbiAgICApO1xyXG5cclxuICAgIH1cclxuICB9Ly9lbmQgb2YgdGhpcy5waG9uZVZhbGlkYXRpb25GbGFnID0gZmFsc2VcclxuICAgIGNvbnNvbGUubG9nKCcxMS83LzIzJyk7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy52aWN0aW1EZXRhaWwnKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltRGV0YWlsKTtcclxuICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy52aWN0aW1EZXRhaWwpO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAvLyNlbmRyZWdpb24gXCJzYXZlIHZpY3RpbVwiXHJcbiAgICAgIGFkZENvbnRhY3QoKXtcclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3ZpY3RpbUNvbnRhY3QnLHRoaXMudmljdGltSWRdKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtYXRMYWJlbCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICB9XHJcblxyXG5cclxufVxyXG4iLCI8bWF0LWNhcmQ+XHJcbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgIDxkaXYgIFtmb3JtR3JvdXBdPVwidmljdGltRm9ybVwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIGR5bmFtaWNIZWlnaHQgIG1hdC1zdHJldGNoLXRhYnM+XHJcbiAgICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVmljdGltIERldGFpbFwiID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250YWluZXInPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPklzIHZpY3RpbSBhIG1pbm9yPzxmb250IGNvbG9yPVwicmVkXCI+KiA8L2ZvbnQ+PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwICBmb3JtQ29udHJvbE5hbWU9XCJtaW5vckZsYWdcIiAgKGNoYW5nZSk9XCJyYWRpb01pbm9yQ2hhbmdlKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubWlub3JGbGFnXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdtaW5vckZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGEgbWlub3IgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRvZXMgdGhlIFZpY3RpbSBoYXZlIGEgVmljdGltIEFkdm9jYXRlIG9yIFNvY2lhbCBXb3JrZXIgd2l0aCA8YnI+d2hvbSBDU09TQSBzaG91bGQgbWFpbnRhaW4gY29udGFjdD88Zm9udCBjb2xvcj1cInJlZFwiPiogPC9mb250PjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBjbGFzcyA9IFwidHAtcmFkaW8tZ3JvdXBcIiAgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltQWR2b2NhdGVGbGFnXCIgIChjaGFuZ2UpPVwicmFkaW9BZHZvY2F0ZUNoYW5nZSgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbUFkdm9jYXRlRmxhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZsYWdPcHRpb25cIiBbdmFsdWVdPVwiaXRlbS5mbGFnT3B0aW9uWWVzTm9Vbmtub3duSWRcIj57e2l0ZW0ubmFtZX19IDwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3ZpY3RpbUFkdm9jYXRlRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+SWYgdmljdGltIGhhcyBhZHZvY2F0ZSBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgIFxyXG4gXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gQ3VycmVudGx5IFVuZGVyIFN1cGVydmlzaW9uOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJ1bmRlclN1cGVydmlzaW9uRmxhZ1wiIG5hbWU9XCJzdXBlcnZpc2lvblwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS51bmRlclN1cGVydmlzaW9uRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZsYWdPcHRpb25cIiBbdmFsdWVdPVwiaXRlbS5mbGFnT3B0aW9uWWVzTm9Vbmtub3duSWRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndW5kZXJTdXBlcnZpc2lvbkZsYWcnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj51bmRlciBzdXBlcnZpc2lvbiBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZWxhdGlvbnNoaXBUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnJlbGF0aW9uc2hpcFR5cGVJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5yZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmxhc3ROYW1lXCIgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEZpcnN0IE5hbWU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5maXJzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2ZpcnN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj52aWN0aW0gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIE1pZGRsZSBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwibWlkZGxlTmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5taWRkbGVOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBQcmVmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cInByZWZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnByZWZpeElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVmaXhlc1wiIFt2YWx1ZV09XCJpdGVtLnByZWZpeElkXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJzdWZmaXhJZFwiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uc3VmZml4SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIEdlbmRlcjo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIGZvcm1Db250cm9sTmFtZT1cImdlbmRlckNvZGVcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ2VuZGVyQ29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIEJpcnRoOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwidmljdGltQmlydGhSZWZcIiBcclxuICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5iaXJ0aERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmljdGltQmlydGhSZWYub3BlbigpXCJcclxuICAgICAgICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwiaGFuZGxlRE9CQ2hhbmdlKCRldmVudClcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwidmljdGltQmlydGhSZWZcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdmljdGltQmlydGhSZWY+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlZpY3RpbSBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dCBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJob21lUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uaG9tZVBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwUGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTRcIi8+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdob21lUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnaG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkhvbWUgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgICAgbWF0SW5wdXQgIFxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjZWxsUGhvbmVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNlbGxQaG9uZVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnY2VsbFBob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2NlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdjZWxsUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkNlbGwgcGhvbmUgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VmljdGltIFdvcmsgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIndvcmtQaG9uZVwiICBcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLndvcmtQaG9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnd29ya1Bob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3dvcmtQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd3b3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+V29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmVtYWlsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdlbWFpbCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz52aWN0aW0gZW1haWwgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICBcclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtc21hcnQtYWRkcmVzcyBcclxuICAgICAgICAgICAgICAgIFtzaG93UHNhXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICAgIFtpZF09XCJhZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgICAgKGFkZHJlc3NJZENoYW5nZSk9XCJvbkFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbb3V0bGluZV09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICByZWFkb25seT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIiBcclxuICAgICAgICAgICAgICAgIChpc1ZhbGlkKT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICAgI2FkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICAgID4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxhcHAtc21hcnQtYWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgW21vZGlmaWVkQnldPVwic3RhZmZJZFwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiYWRkcmVzc0lkXCJcclxuICAgICAgICAgICAgICAgIFtvdXRsaW5lXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc1ZhbGlkYXRvcnNdPVwiYWRkcmVzc1ZhbGlkYXRvcnNcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25BZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgI2FkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPCEtLSBEb2NrZXQ6IFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0Zvcj1cImxldCBkb2NrZXQgb2YgZG9ja2V0bGlzdDsgbGV0IGk9aW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggPnt7ZG9ja2V0LmRvY2tldE51bWJlcn19PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAgY29sb3I9XCJwcmltYXJ5XCIgZm9ybUNvbnRyb2xOYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBuYW1lPVwibGl2ZVdpdGhPZmZlbmRlckZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0ubGl2ZVdpdGhPZmZlbmRlckZsYWdcIiAgIChjaGFuZ2UpPVwic2hvd0FkZHJlc3MoJGV2ZW50KVwiICA+dmljdGltIGxpdmUgd2l0aCBvZmZlbmRlcjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggIGNvbG9yPVwicHJpbWFyeVwiIGZvcm1Db250cm9sTmFtZT1cImFsbG93Q3Nvc2FDb250YWN0RmxhZ1wiIG5hbWU9XCJhbGxvd0Nzb3NhQ29udGFjdEZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWxsb3dDc29zYUNvbnRhY3RGbGFnXCI+dmljdGltIHdhbnRzIHRvIGJlIGNvbnRhY3RlZCBieSBDU09TQTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+IENoaWxkcmVuIGluIENvbW1vbjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5GbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmNvbW1vbkNoaWxkcmVuRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvQ2ljQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiY29tbW9uQ2hpbGRyZW5EaXZGbGFnXCI+XHJcbiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbGRyZW4gbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY29tbW9uQ2hpbGRyZW5OdW1iZXJcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5DUE86IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJjcG9FeHBpcmF0aW9uRmxhZ1wiICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY3BvRXhwaXJhdGlvbkZsYWdcIiAoY2hhbmdlKT1cInJhZGlvQ3BvQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3BvRXhwaXJhdGlvbkRpdkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FeHBpcmF0aW9uIERhdGU6IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiY3BvRGF0ZVJlZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY3BvRXhwaXJhdGlvbkRhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNwb0RhdGVSZWYub3BlbigpXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uY3BvRXhwaXJhdGlvbkRhdGVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiY3BvRGF0ZVJlZlwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNjcG9EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WaWN0aW0gaGFzIGEgU3VwcG9ydCBTeXN0ZW0gaW4gUGxhY2U/IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwic3VwcG9ydEluUGxhY2VGbGFnXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnN1cHBvcnRJblBsYWNlRmxhZ1wiICAoY2hhbmdlKT1cInJhZGlvU3VwcG9ydENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VwcG9ydEluUGxhY2VEaXZGbGFnXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlN1cHBvcnQgdHlwZT8gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI3N1cHBvcnRTZWwgZm9ybUNvbnRyb2xOYW1lPVwidmljdGltU3VwcG9ydHNcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0udmljdGltU3VwcG9ydHNcIiBtdWx0aXBsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKG1vdXNlbGVhdmUpPVwic3VwcG9ydFNlbC5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZpY3RpbVN1cHBvcnRUeXBlc1wiIFt2YWx1ZV09XCJpdGVtLnZpY3RpbVN1cHBvcnRUeXBlSWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2VhcG9ucyBJbnZvbHZlZD88L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cIndlYXBvbkludm9sdmVkRmxhZ1wiIChjaGFuZ2UpPVwicmFkaW9XZWFwb25DaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS53ZWFwb25JbnZvbHZlZEZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwidHJ1ZVwiPlllczwvbWF0LXJhZGlvLWJ1dHRvbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJmYWxzZVwiPk5vPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWFwb25JbnZvbHZlZERpdkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldlYXBvbiBUeXBlPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgI3dlYXBvblNlbCBmb3JtQ29udHJvbE5hbWU9XCJ2aWN0aW1XZWFwb25Vc2VzXCIgbXVsdGlwbGUgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLnZpY3RpbVdlYXBvblVzZXNcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrT3RoZXJXZWFwb24oJGV2ZW50LnZhbHVlKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAobW91c2VsZWF2ZSk9XCJ3ZWFwb25TZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdlYXBvblR5cGVzXCIgW3ZhbHVlXT1cIml0ZW0ud2VhcG9uVHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0ubmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJvdGhlcldlYXBvbkZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk90aGVyIFdlYXBvbjoqIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cIm90aGVyV2VhcG9uXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ290aGVyV2VhcG9uJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPk90aGVyIHdlYXBvbiBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPldhcyBPZmZlbmRlciB1bmRlciB0aGUgaW5mbHVlbmNlIG9mIGFsY29ob2wgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuc2U/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiYWxjb2hvbFVzZUZsYWdcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWxjb2hvbFVzZUZsYWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJ0cnVlXCI+WWVzPC9tYXQtcmFkaW8tYnV0dG9uPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdmFsdWVdPVwiZmFsc2VcIj5ObzwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+V2FzIE9mZmVuZGVyIHVuZGVyIHRoZSBpbmZsdWVuY2Ugb2YgZHJ1Z3MgYXQgdGhlIHRpbWUgb2YgdGhlIG9mZmVuc2U/PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImRydWdVc2VGbGFnXCIgKGNoYW5nZSk9XCJyYWRpb0RydWdDaGFuZ2UoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5kcnVnVXNlRmxhZ1wiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInRydWVcIj5ZZXM8L21hdC1yYWRpby1idXR0b24+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cImZhbHNlXCI+Tm88L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRydWdVc2VEaXZGbGFnXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRydWc6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgICNkcnVnU2VsIGZvcm1Db250cm9sTmFtZT1cInZpY3RpbURydWdVc2VzXCIgbXVsdGlwbGUgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrT3RoZXJEcnVnKCRldmVudC52YWx1ZSlcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChtb3VzZWxlYXZlKT1cImRydWdTZWwuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRydWdzXCIgW3ZhbHVlXT1cIml0ZW0uZHJ1Z1R5cGVJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm90aGVyRHJ1Z0ZsYWdcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPk90aGVyIERydWc6KiA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckRydWdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJEcnVnJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+T3RoZXIgZHJ1ZyBpcyByZXF1aXJlZC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgUmlzazogMSB0aHJ1IDEwICgxMCBncmVhdGVzdCByaXNrKTogJm5ic3A7PGI+IHt7ZWRpdFZpY3RpbS5hY2Nlc3NSaXNrfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2Nlc3NSaXNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1bWJMYWJlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheVdpdGhdPVwiZm9ybWF0TGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PVwiMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWNjZXNzUmlza1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tYXQtc2xpZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+ICBcclxuXHJcbiBcclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgIDxtYXQtdGFiICAqbmdJZj1cImd1YXJkaWFuVGFiRmxhZ1wiIGxhYmVsPVwiTGVnYWwgR3VhcmRpYW5cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gTGFzdCBOYW1lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5MYXN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkxhc3ROYW1lXCIgPiBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZXJyb3JzIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRmlyc3QgTmFtZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkZpcnN0TmFtZVwiID5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGZpcnN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gUHJlZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5QcmVmaXhJZFwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhblByZWZpeElkXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZWZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0ucHJlZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBTdWZmaXg6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhblN1ZmZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmd1YXJkaWFuU3VmZml4SWRcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN1ZmZpeGVzXCIgW3ZhbHVlXT1cIml0ZW0uc3VmZml4SWRcIj57e2l0ZW0ubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwiQ2hvb3NlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5HZW5kZXJcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5HZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdlbmRlcnNcIiBbdmFsdWVdPVwiaXRlbS5nZW5kZXJDb2RlXCI+e3tpdGVtLm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+IC0tPlxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5EYXRlIG9mIEJpcnRoOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgXHJcbiAgICAgICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImd1YXJkaWFuRGF0ZVJlZlwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkJpcnRoRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkJpcnRoRGF0ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ3VhcmRpYW5EYXRlUmVmLm9wZW4oKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiZ3VhcmRpYW5EYXRlUmVmXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZ3VhcmRpYW5EYXRlUmVmPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggXHJcbiAgICAgICAgICAgICAgICAgIGNvbG9yID0gXCJwcmltYXJ5XCIgXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuTm9QaG9uZUZsYWdcIiBcclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBObyBQaG9uZSAoSWYgdGhlcmUgaXMgbm8gcGhvbmUsIHRoZSBwaG9uZSBmaWVsZHMgYXJlIG5vIGxvbmdlciByZXF1aXJlZCk8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gSG9tZSBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkhvbWVQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkhvbWVQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkhvbWVQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gaG9tZSBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkd1YXJkaWFuIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJndWFyZGlhbkNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5ndWFyZGlhbkNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCIgXHJcbiAgICAgICAgICAgICAgICAgICA+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5DZWxsUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBDZWxsIHBob25lIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5HdWFyZGlhbiBXb3JrIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZ3VhcmRpYW5Xb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5Xb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbldvcmtQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuV29ya1Bob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+R3VhcmRpYW4gd29yayBwaG9uZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+R3VhcmRpYW4gRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImd1YXJkaWFuRW1haWxcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZ3VhcmRpYW5FbWFpbFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5FbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkVtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5HdWFyZGlhbiBlbWFpbCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zbWFydC1hZGRyZXNzIFxyXG5cclxuICAgICAgICAgICAgICAgIFtzaG93UHNhXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICAgIFtpZF09XCJndWFyZGlhbkFkZHJlc3NJZFwiXHJcbiAgICAgICAgICAgICAgICAoYWRkcmVzc0lkQ2hhbmdlKT1cIm9uR3VhcmRpYW5BZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHk9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBbcm93SGVpZ2h0XT1cIjgwXCIgXHJcbiAgICAgICAgICAgICAgICAoaXNWYWxpZCk9XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgW2FkZHJlc3NWYWxpZGF0b3JzXT1cImFkZHJlc3NWYWxpZGF0b3JzXCJcclxuICAgICAgICAgICAgICAgICNndWFyZGlhbkFkZHJlc3NDb21wb25lbnRcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXNtYXJ0LWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gXHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS1hZHZvY2F0ZS0tPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8bWF0LXRhYiAgKm5nSWY9XCJhZHZvY2F0ZVRhYkZsYWdcIiBsYWJlbD1cIkFkdm9jYXRlXCIgPiBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBMYXN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUxhc3ROYW1lXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlTGFzdE5hbWVcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIEZpcnN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUZpcnN0TmFtZVwiIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUZpcnN0TmFtZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUZpcnN0TmFtZScpLmVycm9ycyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgUHJlZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVByZWZpeElkXCIgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZVByZWZpeElkXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5wcmVmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgU3VmZml4OjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVN1ZmZpeElkXCIgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlU3VmZml4SWRcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VmZml4ZXNcIiBbdmFsdWVdPVwiaXRlbS5zdWZmaXhJZFwiPnt7aXRlbS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94ICBcclxuICAgICAgICAgICAgICAgICAgY29sb3IgPSBcInByaW1hcnlcIiBcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWR2b2NhdGVOb1Bob25lRmxhZ1wiIFxyXG4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVOb1Bob25lRmxhZ1wiID5cclxuICAgICAgICAgICAgICAgICAgTm8gUGhvbmUgKElmIHRoZXJlIGlzIG5vIHBob25lLCB0aGUgcGhvbmUgZmllbGRzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQpPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQ+IFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkID5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BZHZvY2F0ZSBIb21lIFBob25lOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlSG9tZVBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlSG9tZVBob25lXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxNFwiID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUhvbWVQaG9uZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlSG9tZVBob25lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgaG9tZSBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkFkdm9jYXRlIENlbGwgUGhvbmU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0ICBcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZUNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdFZpY3RpbS5hZHZvY2F0ZUNlbGxQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGFwcFBob25lTWFza1xyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVDZWxsUGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUNlbGxQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3Ryb25nPkFkdm9jYXRlIGNlbGwgbnVtYmVyIGZvcm1hdCBpcyBub3QgY29ycmVjdC48L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPiBcclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgV29yayBQaG9uZTo8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIFxyXG4gICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZHZvY2F0ZVdvcmtQaG9uZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uYWR2b2NhdGVXb3JrUGhvbmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgYXBwUGhvbmVNYXNrXHJcbiAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICAgPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlV29ya1Bob25lJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVXb3JrUGhvbmUnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5BZHZvY2F0ZSB3b3JrIG51bWJlciBmb3JtYXQgaXMgbm90IGNvcnJlY3QuPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWR2b2NhdGUgRW1haWw6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImFkdm9jYXRlRW1haWxcIiAgWyhuZ01vZGVsKV09XCJlZGl0VmljdGltLmFkdm9jYXRlRW1haWxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVFbWFpbCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUVtYWlsJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzdHJvbmc+QWR2b2NhdGUgZW1haWwgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2ID5cclxuICAgICAgICAgICAgICA8YXBwLXNtYXJ0LWFkZHJlc3MgXHJcbiAgICAgICAgICAgICAgW3Nob3dQc2FdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgIFttb2RpZmllZEJ5XT1cInN0YWZmSWRcIiBcclxuICAgICAgICAgICAgICBbaWRdPVwiYWR2b2NhdGVBZGRyZXNzSWRcIlxyXG4gICAgICAgICAgICAgIChhZGRyZXNzSWRDaGFuZ2UpPVwib25BZHZvY2F0ZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW291dGxpbmVdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5PVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIFtyb3dIZWlnaHRdPVwiODBcIiBcclxuICAgICAgICAgICAgICAoaXNWYWxpZCk9XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIFthZGRyZXNzVmFsaWRhdG9yc109XCJhZGRyZXNzVmFsaWRhdG9yc1wiXHJcbiAgICAgICAgICAgICAgI2Fkdm9jYXRlQWRkcmVzc0NvbXBvbmVudCA+XHJcbiAgICAgICAgICAgICAgPC9hcHAtc21hcnQtYWRkcmVzcz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnI+PGJyPjxicj4gXHJcbiAgICAgICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICA8bWF0LXRhYiAgbGFiZWw9XCJFbWVyZ2VuY3kgQ29udGFjdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGFpbmVyJz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkVtZXJnZW5jeSBDb250YWN0IE5hbWU6PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgIGZvcm1Db250cm9sTmFtZT1cImVtZXJnZW5jeUNvbnRhY3RcIiBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FbWVyZ2VuY3kgUGhvbmUgTnVtYmVyOjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1lcmdlbmN5Q29udGFjdFBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImVkaXRWaWN0aW0uZW1lcmdlbmN5Q29udGFjdFBob25lXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBQaG9uZU1hc2tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdlbWVyZ2VuY3lDb250YWN0UGhvbmUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnZW1lcmdlbmN5Q29udGFjdFBob25lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2VtZXJnZW5jeUNvbnRhY3RQaG9uZScpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHN0cm9uZz5FbWVyZ2VuY3kgY29udGFjdCBudW1iZXIgZm9ybWF0IGlzIG5vdCBjb3JyZWN0Ljwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPjxicj48YnI+ICAgIFxyXG4gICAgICAgICAgICA8L21hdC10YWI+IFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPSdvdXRlcic+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIEFsbCBidXR0b25zIGFwcGx5IHRvIGFsbCB0YWJzLiBJZiBzYXZlIGJ1dHRvbiBpcyBncmV5LCBwbGVhc2UgY2hlY2sgZWFjaCB0YWIgdG8gbWFrZSBzdXJlIHRoZSByZXF1aXJlZCBmaWVsZCBpcyBmaWxsZWQuPGJyPjxicj5cclxuXHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZXJyb3JzIFxyXG4gICAgICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnbWlub3JGbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ21pbm9yRmxhZycpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5JZiB2aWN0aW0gYSBtaW5vciBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1BZHZvY2F0ZUZsYWcnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgndmljdGltQWR2b2NhdGVGbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPklmIHZpY3RpbSBoYXMgYWR2b2NhdGUgZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCd1bmRlclN1cGVydmlzaW9uRmxhZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ3VuZGVyU3VwZXJ2aXNpb25GbGFnJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlVuZGVyIHN1cGVydmlzaW9uIGZpZWxkIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj4gXHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgndmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCd2aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcFR5cGVJZCcpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvcj5SZWxhdGlvbnNoaXAgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdsYXN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2xhc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPlZpY3RpbSBsYXN0IG5hbWUgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdmaXJzdE5hbWUnKS5kaXJ0eSB8fCB2aWN0aW1Gb3JtLmdldCgnZmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPnZpY3RpbSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgIDwvZGl2PiBcclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkZpcnN0TmFtZScpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+R3VhcmRpYW4gZmlyc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnZ3VhcmRpYW5MYXN0TmFtZScpLmVycm9yc1xyXG4gICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdndWFyZGlhbkxhc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2d1YXJkaWFuTGFzdE5hbWUnKS50b3VjaGVkKVwiID5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yPkd1YXJkaWFuIGxhc3QgbmFtZSBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+IFxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlTGFzdE5hbWUnKS5lcnJvcnNcclxuICAgICAgICAgICAgICAgICYmICh2aWN0aW1Gb3JtLmdldCgnYWR2b2NhdGVMYXN0TmFtZScpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdhZHZvY2F0ZUxhc3ROYW1lJykudG91Y2hlZClcIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+QWR2b2NhdGUgbGFzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykuZGlydHkgfHwgdmljdGltRm9ybS5nZXQoJ2Fkdm9jYXRlRmlyc3ROYW1lJykudG91Y2hlZClcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5BZHZvY2F0ZSBmaXJzdCBuYW1lIGlzIDxzdHJvbmc+cmVxdWlyZWQ8L3N0cm9uZz48L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJ2aWN0aW1Gb3JtLmdldCgnb3RoZXJXZWFwb24nKS5lcnJvcnMgXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlcldlYXBvbicpLnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5PdGhlciB3ZWFwb24gZmllbGQgaXMgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPjwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscC1ibG9ja1wiICpuZ0lmPVwidmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmVycm9ycyBcclxuICAgICAgICAgICAgICAmJiAodmljdGltRm9ybS5nZXQoJ290aGVyRHJ1ZycpLmRpcnR5IHx8IHZpY3RpbUZvcm0uZ2V0KCdvdGhlckRydWcnKS50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3I+T3RoZXIgZHJ1ZyBmaWVsZCBpcyA8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlVmljdGltKClcIiBbZGlzYWJsZWRdPVwiIXZpY3RpbUZvcm0udmFsaWRcIiAgPlNhdmUgPC9idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgY2xhc3M9XCJpbm5lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlVmljdGltKClcIj5EZWxldGUgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyBcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNsZWFyIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyBcclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgKGNsaWNrKT1cImJhY2soKVwiPkJhY2s8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnI+XHJcbiAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICA8ZGl2IGFsaWduPVwicmlnaHRcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIChjbGljayk9XCJhZGRDb250YWN0KClcIiAgPkFkZCB2aWN0aW0gY29udGFjdDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwiY29udGFjdERhdGFTb3VyY2VcIiBjbGFzcz1cImV4YW1wbGUtdGFibGVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb250YWN0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IERhdGU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5jb250YWN0RGF0ZSB8IGRhdGV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUNvbnRhY3RNZXRob2RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItY2VsbFwiPkNvbnRhY3QgTWV0aG9kPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnZpY3RpbUNvbnRhY3RNZXRob2R9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmV4dENvbnRhY3REYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5OZXh0IENvbnRhY3QgRGF0ZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiBjbGFzcz1cImV4YW1wbGUtY2VsbFwiPiB7e3Jvdy5uZXh0Q29udGFjdERhdGUgfCBkYXRlfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YWZmXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db250YWN0IEJ5PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiIGNsYXNzPVwiZXhhbXBsZS1jZWxsXCI+IHt7cm93LnN0YWZmfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY29tbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWNlbGxcIj5Db21tZW50PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj4ge3tyb3cuY29tbWVudH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvbnRhY3RJZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1jZWxsXCI+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgY2xhc3M9XCJleGFtcGxlLWNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiWydjb250YWN0RGF0ZScsICd2aWN0aW1Db250YWN0TWV0aG9kJywnbmV4dENvbnRhY3REYXRlJywgJ3N0YWZmJywgJ2NvbW1lbnQnLCAnY29udGFjdElkJ11cIiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLXJvd1wiPjwvbWF0LWhlYWRlci1yb3c+XHJcbiAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOlsnY29udGFjdERhdGUnLCAndmljdGltQ29udGFjdE1ldGhvZCcsJ25leHRDb250YWN0RGF0ZScsICdzdGFmZicsICdjb21tZW50JywgJ2NvbnRhY3RJZCddO1wiIGNsYXNzPVwiZXhhbXBsZS1yb3dcIj48L21hdC1yb3c+XHJcbiAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG48L21hdC1jYXJkPlxyXG4iXX0=
|