simpo-component-library 3.6.939 → 3.6.941

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -187,7 +187,7 @@ export class HeaderSectionComponent {
187
187
  }
188
188
  }
189
189
  goToBookings() {
190
- this.matDialog.open(BookingCartGroupsComponent, { width: '28vw', panelClass: 'sidepanel-class' });
190
+ this.matDialog.open(BookingCartGroupsComponent, { panelClass: 'sidepanel-class' });
191
191
  }
192
192
  applyFilter(value, type) {
193
193
  value = value[0]?.replace(" ", "_");
@@ -723,4 +723,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
723
723
  type: HostListener,
724
724
  args: ['window:resize', ['$event']]
725
725
  }] } });
726
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9oZWFkZXItc2VjdGlvbi9oZWFkZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2hlYWRlci1zZWN0aW9uL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRXRILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7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QTdCbEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osb0JBQW9CO3dCQUNwQixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsNEJBQTRCO3dCQUM1QixXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCOzswQkE0Q0UsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxXQUFXOzswQkFDbEIsTUFBTTsyQkFBQyxRQUFRO3lDQXpDVCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ3VCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNHLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQTJONUIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIZWFkZXJDb250ZW50TW9kZWwsIEhlYWRlclNlY3Rpb25Nb2RlbCwgSGVhZGVyU3R5bGVNb2RlbCB9IGZyb20gJy4vaGVhZGVyLXNlY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE5hdmJhckJ1dHRvbkVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uL2VsZW1lbnRzL25hdmJhci1idXR0b24tZWxlbWVudC9uYXZiYXItYnV0dG9uLWVsZW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBIb3ZlckVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9TdGlja3lEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3RpY2t5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IEdlbmRlckljb24gfSBmcm9tICcuLi8uLi9waXBlcy9nZW5kZXIucGlwZSc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgQ2FydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9zZWN0aW9ucy9jYXJ0L2NhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm9va2luZ0NhcnRHcm91cHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9ib29raW5nLWNhcnQtZ3JvdXBzL2Jvb2tpbmctY2FydC1ncm91cHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGVhZGVyX1R5cGUsIE1vYmlsZV9NZW51X1R5cGUsIFByb2R1Y3RDYXJkVGhlbWUsIFN0aWNreV9UeXBlIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgTW92aW5nVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NlY3Rpb25zL21vdmluZy10ZXh0L21vdmluZy10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvdW50ZG93bkJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NlY3Rpb25zL2NvdW50ZG93bi1iYW5uZXIvY291bnRkb3duLWJhbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3ZpbmdUZXh0TW9kYWwgfSBmcm9tICcuLi9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5tb2RhbCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU29jaWFJY29uc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3NvY2lhLWljb25zL3NvY2lhLWljb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExPQ0FMX1NUT1JBR0UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnRva2VuJztcclxuaW1wb3J0IHsgU3RvcmFnZUxpa2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLWxpa2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWhlYWRlci1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNpbXBvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgR2VuZGVySWNvbixcclxuICAgIE1hdEljb24sXHJcbiAgICBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcbiAgICBTaW1wb1N0aWNreURpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlLFxyXG4gICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBNb3ZpbmdUZXh0Q29tcG9uZW50LFxyXG4gICAgQ291bnRkb3duQmFubmVyQ29tcG9uZW50LFxyXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIFNvY2lhSWNvbnNDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBkYXRhPzogSGVhZGVyU2VjdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnQ6IGFueTtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQFZpZXdDaGlsZChcImNoaWxkQ29udGFpbmVyXCIpIGNoaWxkQ29udGFpbmVyOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnbW9iaWxlT2ZmY2FudmFzJykgbW9iaWxlT2ZmY2FudmFzPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xyXG4gIHByaXZhdGUgcXVlcnlQYXJhbVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGlzQnJvd3NlciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc09mZmNhbnZhc09wZW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNGdWxsU2NyZWVuTWVudU9wZW4gPSBmYWxzZTtcclxuICBwcml2YXRlIG9mZmNhbnZhc1Nob3duSGFuZGxlcj86ICgpID0+IHZvaWQ7XHJcbiAgcHJpdmF0ZSBvZmZjYW52YXNIaWRkZW5IYW5kbGVyPzogKCkgPT4gdm9pZDtcclxuICBjb250ZW50PzogSGVhZGVyQ29udGVudE1vZGVsIHwgYW55O1xyXG4gIHN0eWxlPzogSGVhZGVyU3R5bGVNb2RlbFxyXG4gIGFjdGlvbj86IEFjdGlvbk1vZGVsXHJcbiAgY29sb3IgPSAnIzAwMDAwMCc7XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICB0aGVtZSA9IFByb2R1Y3RDYXJkVGhlbWU7XHJcbiAgSGVhZGVyU3R5bGluZyA9IEhlYWRlcl9UeXBlO1xyXG4gIFN0aWNreVR5cGUgPSBTdGlja3lfVHlwZTtcclxuICBNb2JpbGVNZW51VHlwZSA9IE1vYmlsZV9NZW51X1R5cGU7XHJcbiAgcGFyZW50SGVpZ2h0OiBudW1iZXIgPSA3MDtcclxuICBjdXJyZW50UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIHBsYWNlaG9sZGVySW5kZXg6IG51bWJlciA9IDA7XHJcbiAgYW5pbWF0ZVBsYWNlaG9sZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTY3JvbGxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2V2ZW50U3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgQEluamVjdChMT0NBTF9TVE9SQUdFKSBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VMaWtlLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudFxyXG4gICAgLy8gcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XHJcbiAgfVxyXG4gIHNlYXJjaENoYW5nZVRpbWVvdXQ6IGFueTtcclxuICB3YWl0QmVmb3JlU2VhcmNoKCkge1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoQ2hhbmdlVGltZW91dCk7XHJcbiAgICB0aGlzLnNlYXJjaENoYW5nZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZWFyY2hQcm9kdWN0cygpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbiAgc2VhcmNoUHJvZHVjdHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgc2VhcmNoVHh0OiB0aGlzLnNlYXJjaFRleHQgfSB9KTtcclxuICB9XHJcbiAgZ29Ub0ZhdigpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dpc2hsaXN0J10pO1xyXG4gIH1cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG4gIGdvVG9BY2NvdW50KHJlZGlyZWN0VG86IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAocmVkaXJlY3RUbyA9PSAnU0lHTlVQJyB8fCByZWRpcmVjdFRvID09ICdMT0dJTicpXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSwgeyBxdWVyeVBhcmFtczogeyByZWRpcmVjdFRvOiByZWRpcmVjdFRvIH0gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgbG9nZ2VkSW4oKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkpXHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCBnZXRVc2VyTmFtZSgpIHtcclxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgIHJldHVybiB1c2VyPy5jb250YWN0Lm5hbWU7XHJcbiAgfVxyXG4gIC8vIGNoYW5nZVBsYWNlaG9sZGVyKCkge1xyXG4gIC8vICAgdGhpcy5hbmltYXRlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG5cclxuICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLnBsYWNlaG9sZGVySW5kZXggPVxyXG4gIC8vICAgICAgICh0aGlzLnBsYWNlaG9sZGVySW5kZXggKyAxKSAlXHJcbiAgLy8gICAgICAgdGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0Lmxlbmd0aDtcclxuXHJcbiAgLy8gICAgIHRoaXMuY3VycmVudFBsYWNlaG9sZGVyID1cclxuICAvLyAgICAgICB0aGlzLnN0eWxlPy5zZWFyY2hCYXJQbGFjZWhvbGRlckxpc3RbdGhpcy5wbGFjZWhvbGRlckluZGV4XS52YWx1ZTtcclxuXHJcbiAgLy8gICAgIHRoaXMuYW5pbWF0ZVBsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgLy8gICB9LCA0MDApOyAvLyBhbmltYXRpb24gZHVyYXRpb25cclxuICAvLyB9XHJcbiAgZ29Ub1dpc2hsaXN0KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9DYXJ0KCkge1xyXG4gICAgaWYgKGZhbHNlKSB7XHJcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQ2FydENvbXBvbmVudCwgeyB3aWR0aDogJzI4dncnLCBwYW5lbENsYXNzOiAnc2lkZXBhbmVsLWNsYXNzJywgZGF0YTogeyB3aW5kb3c6IHRydWUgfSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2NhcnQnXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdvVG9Cb29raW5ncygpIHtcclxuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oQm9va2luZ0NhcnRHcm91cHNDb21wb25lbnQsIHsgd2lkdGg6ICcyOHZ3JywgcGFuZWxDbGFzczogJ3NpZGVwYW5lbC1jbGFzcycgfSk7XHJcbiAgfVxyXG4gIGFwcGx5RmlsdGVyKHZhbHVlOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gICAgdmFsdWUgPSB2YWx1ZVswXT8ucmVwbGFjZShcIiBcIiwgXCJfXCIpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IFt0eXBlXTogdmFsdWUgfSB9KTtcclxuICB9XHJcbiAgbW92aW5nVGV4dD86IE1vdmluZ1RleHRNb2RhbFxyXG4gIHRvU2hvd0luSmV3ZWxsZXJ5OiBib29sZWFuID0gZmFsc2VcclxuICBkaWZmZXI6IGFueTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcclxuICAgIHRoaXMuc3R5bGUgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuYWN0aW9uID0gdGhpcy5kYXRhPy5hY3Rpb247XHJcbiAgICB0aGlzLnF1ZXJ5UGFyYW1TdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocVBhcmFtKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IHFQYXJhbVtcInNlYXJjaFR4dFwiXTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG4gICAgLy8gdGhpcy5ldmVudFNlcnZpY2UuYWN0aXZhdGVTbWFydFNlYXJjaC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG4gICAgLy8gICBpZiAodGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0Py5sZW5ndGggPiAwICYmIHJlcykge1xyXG4gICAgLy8gICAgIHRoaXMuY3VycmVudFBsYWNlaG9sZGVyID0gdGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0WzBdLnZhbHVlO1xyXG5cclxuICAgIC8vICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKCk7XHJcbiAgICAvLyAgICAgfSwgMzAwMCk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pXHJcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIgJiYgKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2NhcmF0bGFuZScpIHx8IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ29ycmEnKSkpIHtcclxuICAgICAgdGhpcy50b1Nob3dJbkpld2VsbGVyeSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc0Vjb21tZXJjZVdlYnNpdGUpIHtcclxuICAgICAgdGhpcy5nZXRDYXRlZ29yaWVzSGVhZGVyKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKTtcclxuICAgIHRoaXMuY2hlY2tQYXNzYm9va0FwcCgpO1xyXG4gICAgdGhpcy5jaGVja0FwcG9pbnRtZW50QXBwKCk7XHJcblxyXG4gICAgdGhpcy5fZXZlbnRTdWJzY3JpYmVyID0gdGhpcy5fZXZlbnRTZXJ2aWNlLm1lbnVMaXN0LnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG4gICAgfSlcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50ICYmIHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5jaGlsZENvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9iaWxlT2ZmY2FudmFzPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG9mZmNhbnZhc0VsZW1lbnQgPSB0aGlzLm1vYmlsZU9mZmNhbnZhcy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzT2ZmY2FudmFzT3BlbiA9IHRydWU7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMub2ZmY2FudmFzSGlkZGVuSGFuZGxlciA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLmlzT2ZmY2FudmFzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZ29CYWNrTW9iaWxlTWVudSgpO1xyXG4gICAgICB9O1xyXG4gICAgICBvZmZjYW52YXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Nob3duLmJzLm9mZmNhbnZhcycsIHRoaXMub2ZmY2FudmFzU2hvd25IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xyXG4gICAgICBvZmZjYW52YXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2hpZGRlbi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyICYmIHRoaXMucmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlX01lbnVfVHlwZS5CT1RUT01fU1RJQ0tZKSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWJvdHRvbS1uYXYtaGVpZ2h0JywgJ2NhbGMoNjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gICAgdGhpcy5xdWVyeVBhcmFtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XHJcbiAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1ib3R0b20tbmF2LWhlaWdodCcpO1xyXG4gICAgaWYgKHRoaXMubW9iaWxlT2ZmY2FudmFzPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG9mZmNhbnZhc0VsZW1lbnQgPSB0aGlzLm1vYmlsZU9mZmNhbnZhcy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBpZiAodGhpcy5vZmZjYW52YXNTaG93bkhhbmRsZXIpIHtcclxuICAgICAgICBvZmZjYW52YXNFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nob3duLmJzLm9mZmNhbnZhcycsIHRoaXMub2ZmY2FudmFzU2hvd25IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIpIHtcclxuICAgICAgICBvZmZjYW52YXNFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2hpZGRlbi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBhc3Nib29rQXBwU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hlY2tQYXNzYm9va0FwcCgpIHtcclxuICAgIGNvbnN0IGRldGFpbHMgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnYklkJyk7XHJcbiAgICBjb25zdCBiSWQgPSBkZXRhaWxzID8/ICcnO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5QYXNzYm9va0FwcFN0YXR1cyhiSWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcz8uZGF0YSkge1xyXG4gICAgICAgIHRoaXMucGFzc2Jvb2tBcHBTdGF0dXMgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLyoqIExvZ2luL3NpZ251cCBmb3IgYSBub24tZWNvbW1lcmNlIGhlYWRlciBhbHNvIG5lZWRzIHRvIHNob3cgZm9yIGEgYnVzaW5lc3Mgd2l0aCBvbmx5IHRoZVxyXG4gICAqIEFwcG9pbnRtZW50IGFwcCBpbnN0YWxsZWQgKGJvb2tpbmcgbm93IHJlcXVpcmVzIGxvZ2luKSAtIG1pcnJvcnMgY2hlY2tQYXNzYm9va0FwcCgpIGV4YWN0bHksXHJcbiAgICogcmV1c2luZyB0aGUgc2FtZSBnZW5lcmljIFwiaXMgYXBwIGluc3RhbGxlZFwiIGNoZWNrIGFscmVhZHkgdXNlZCBmb3IgUGFzc2Jvb2suICovXHJcbiAgYXBwb2ludG1lbnRBcHBTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja0FwcG9pbnRtZW50QXBwKCkge1xyXG4gICAgY29uc3QgZGV0YWlscyA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdiSWQnKTtcclxuICAgIGNvbnN0IGJJZCA9IGRldGFpbHMgPz8gJyc7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrQXBwSW5zdGFsbGVkKGJJZCwgJ0FwcG9pbnRtZW50Jykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzPy5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy5hcHBvaW50bWVudEFwcFN0YXR1cyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNob3dTZWFyY2hCYXJNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNOYXZiYXJPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDQ3NTtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBnZXRTY3JlZW5TaXplKGV2ZW50PzogbnVtYmVyKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB0aGlzLnNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKTtcclxuICB9XHJcbiAgaGVpZ2h0OiBhbnlcclxuICBwcml2YXRlIHNjaGVkdWxlUGFyZW50SGVpZ2h0Q2FsY3VsYXRpb24oKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdldFBhcmVudEhlaWdodCgpLCAwKTtcclxuICB9XHJcblxyXG4gIG9uU3RpY2t5U2Nyb2xsZWQoc2Nyb2xsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNTY3JvbGxlZCA9IHNjcm9sbGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50SGVpZ2h0KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCAhdGhpcy5jaGlsZENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNoaWxkQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCByZWN0SGVpZ2h0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XHJcbiAgICB0aGlzLmhlaWdodCA9IE1hdGguY2VpbChyZWN0SGVpZ2h0IHx8IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IHx8IDApO1xyXG4gICAgaWYgKHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSlcclxuICAgICAgdGhpcy5ldmVudFNlcnZpY2UuZWxlbWVudEhlaWdodC5lbWl0KHRoaXMuaGVpZ2h0KVxyXG4gICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLW1hcmdpbi10b3BcIiwgdGhpcy5oZWlnaHQgKyBcInB4XCIpXHJcbiAgfVxyXG4gIGdldCBnZXREcm9wZG93bkxpbmtzKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGVudD8uZWNvbWxpbmtzICYmIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlKVxyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb250ZW50Py5lY29tbGlua3MpO1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuICBnZXQgaXNFY29tbWVyY2VXZWJzaXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YT8udHlwZSA9PSBcIkVfQ09NTUVSQ0VcIjtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5pc05hdmJhck9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNob3dFZGl0b3JzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd0VkaXRvcnMgPSBpc1Nob3c7XHJcbiAgfVxyXG4gIGdvVG9Ib21lKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdSRVFVRVNUX0ZST00nKSA9PT0gJ0VfQ09NTUVSQ0UnKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XHJcbiAgfVxyXG4gIGdldCByZXNvbHZlZE1vYmlsZU1lbnVUeXBlKCk6IE1vYmlsZV9NZW51X1R5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/Lm1vYmlsZU1lbnVUeXBlID8/IE1vYmlsZV9NZW51X1R5cGUuSEFNQlVSR0VSO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJvdHRvbVN0aWNreU5hdkl0ZW1zKCk6IGFueVtdIHtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5mb290ZXJNZW51Py5sZW5ndGggPyB0aGlzLmZvb3Rlck1lbnUgOiAodGhpcy5jb250ZW50Py5uYXZiYXJCdXR0b25zID8/IFtdKTtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5zaG93SGVhZGVyICE9PSBmYWxzZSkuc2xpY2UoMCwgNSk7XHJcbiAgfVxyXG5cclxuICBpc05hdkl0ZW1BY3RpdmUoaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB1cmwgPSAodGhpcy5yb3V0ZXIudXJsIHx8ICcnKS5zcGxpdCgnPycpWzBdO1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gKGl0ZW0/LnJlZGlyZWN0aW9uVXJsID8/IGl0ZW0/LnJlZGlyZWN0aW9uYWxVcmwgPz8gJycpLnNwbGl0KCc/JylbMF07XHJcbiAgICBpZiAoaXRlbT8udHlwZSA9PT0gJ0hPTUVfUEFHRScpIHJldHVybiB1cmwgPT09ICcnIHx8IHVybCA9PT0gJy8nO1xyXG4gICAgaWYgKCF0YXJnZXQpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB1cmwgPT09IHRhcmdldCB8fCAodGFyZ2V0ICE9PSAnLycgJiYgdXJsLnN0YXJ0c1dpdGgodGFyZ2V0KSk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlQm90dG9tTmF2SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5ib3R0b21TdGlja3lOYXZJdGVtcyB8fCBbXSkuZmluZEluZGV4KChpdDogYW55KSA9PiB0aGlzLmlzTmF2SXRlbUFjdGl2ZShpdCkpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkZ1bGxTY3JlZW5NZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Z1bGxTY3JlZW5NZW51T3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9iaWxlTWVudSA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGdWxsU2NyZWVuTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGdWxsU2NyZWVuTWVudU9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gbnVsbDtcclxuICAgIGlmICh0aGlzLmlzQnJvd3NlcikgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XHJcbiAgfVxyXG5cclxuICAvKiogRnVsbC1zY3JlZW4gbWVudSBpdGVtIHRhcDogZHJpbGwgaW50byBzdWJtZW51IGlmIGl0IGhhcyBjaGlsZHJlbiwgZWxzZSBuYXZpZ2F0ZSArIGNsb3NlLiAqL1xyXG4gIG9uRnVsbFNjcmVlbkl0ZW1DbGljayhpdGVtOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0TW9iaWxlTWVudShpdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pO1xyXG4gICAgICB0aGlzLmNsb3NlRnVsbFNjcmVlbk1lbnUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCByZXNvbHZlZFN0aWNreVR5cGUoKTogU3RpY2t5X1R5cGUge1xyXG4gICAgaWYgKHRoaXMuc3R5bGU/LnN0aWNreVR5cGUpIHJldHVybiB0aGlzLnN0eWxlLnN0aWNreVR5cGU7XHJcbiAgICBpZiAodGhpcy5zdHlsZT8uc3RpY2t5ICYmIHRoaXMuc3R5bGU/LnNocmlua09uU2Nyb2xsKSByZXR1cm4gU3RpY2t5X1R5cGUuU0hSSU5LX09OX1NDUk9MTDtcclxuICAgIGlmICh0aGlzLnN0eWxlPy5zdGlja3kpIHJldHVybiBTdGlja3lfVHlwZS5TVElDS1k7XHJcbiAgICByZXR1cm4gU3RpY2t5X1R5cGUuTk9ORTtcclxuICB9XHJcbiAgZ2V0IGlzSGVhZGVyU3RpY2t5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRTdGlja3lUeXBlICE9PSBTdGlja3lfVHlwZS5OT05FO1xyXG4gIH1cclxuICBnZXQgYmFja2dyb3VuZEluZm8oKSB7XHJcbiAgICBpZiAodGhpcy5yZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreV9UeXBlLlRSQU5TUEFSRU5UX09OX1NDUk9MTCAmJiAhdGhpcy5pc1Njcm9sbGVkICYmICF0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YT8uc3R5bGVzLmJhY2tncm91bmQsIGNvbG9yOiAndHJhbnNwYXJlbnQnLCBzaG93SW1hZ2U6IGZhbHNlIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlICYmICF0aGlzLmlzU2Nyb2xsZWQgJiYgIXRoaXMuaXNNb2JpbGVcclxuICAgICAgPyB7IC4uLnRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZCB9XHJcbiAgICAgIDogeyAuLi50aGlzLmRhdGE/LnN0eWxlcy5iYWNrZ3JvdW5kIH07XHJcbiAgfVxyXG4gIGdldCBzaW1wb0NvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZVxyXG4gICAgICA/ICh0aGlzLmlzU2Nyb2xsZWQgPyB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kLmNvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3IpXHJcbiAgICAgIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uY29sb3I7XHJcbiAgfVxyXG4gIGdldCBhY2NlbnRDb2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2VcclxuICAgICAgPyAodGhpcy5pc1Njcm9sbGVkID8gdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgOiB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcclxuICAgICAgOiB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcjtcclxuICB9XHJcbiAgZ2V0IGlzVHJhbnNwYXJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlICYmICF0aGlzLmlzU2Nyb2xsZWQ7XHJcbiAgfVxyXG4gIHJlZGlyZWN0VG8oY29udGVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7IGRhdGE6IGNvbnRlbnQgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VhcmNoQmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGdldCBpc0NvbXBvbmVudE1lcmdlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2U7XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGdldCBjYW5TaG93TW9iaWxlRm9vdGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZFJlc2VydmVNb2JpbGVIZWFkZXJTcGFjZSgpIHtcclxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnJlc29sdmVkU3RpY2t5VHlwZTtcclxuICAgIGlmICh0eXBlID09PSBTdGlja3lfVHlwZS5OT05FKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAodHlwZSA9PT0gU3RpY2t5X1R5cGUuU1RJQ0tZX0FGVEVSX1NDUk9MTCkgcmV0dXJuIHRoaXMuaXNTY3JvbGxlZDtcclxuICAgIGlmICh0aGlzLmlzTW9iaWxlKSByZXR1cm4gIXRoaXMuc2hvdWxkU2hvd01vYmlsZUNhdGVnb3J5SGVhZGVyO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvdWxkU2hvd01vYmlsZUNhdGVnb3J5SGVhZGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlICYmIHRoaXMuaXNNb2JpbGUgJiYgdGhpcy5zaG93Q2F0ZWdvcnlNb2JpbGVIZWFkZXIoKSAmJiAodGhpcy5jYXRlZ29yeUxpc3Q/Lmxlbmd0aCA/PyAwKSA+IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd01vYmlsZUhvbWVJY29uKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIHRydWU7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgIHJldHVybiAhKHVybC5pbmNsdWRlcyhcImNhcnRcIikgfHwgdXJsLmluY2x1ZGVzKFwicHJvZmlsZVwiKSB8fCB1cmwuaW5jbHVkZXMoXCJ3aXNobGlzdFwiKSk7XHJcbiAgfVxyXG4gIGdldCBnZXRDYXJ0SXRlbXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxDYXJ0SXRlbXM7XHJcbiAgfVxyXG4gIGdldCBnZXRXaXNobGlzdEl0ZW1zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFRvdGFsV2lzaGxpc3RJdGVtcztcclxuICB9XHJcbiAgZ2V0IGdldEJvb2tpbmdJdGVtc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbEJvb2tpbmdJdGVtcztcclxuICB9XHJcbiAgZ2V0IGdldENhcnRUb3RhbEFtb3VudCgpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q2FydEFtb3VudCgpKTtcclxuICAgIC8vIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENhcnRBbW91bnQoKTtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENhcnRUb3RhbEFtb3VudDtcclxuICB9XHJcbiAgZ2V0IGdldEhlYWRlclN0eWxpbmcoKTogSGVhZGVyX1R5cGUgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc3R5bGU/LnN0eWxpbmc7XHJcbiAgfVxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB0aGlzLnNjcmVlbldpZHRoIDwgNDc1O1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xyXG4gIH1cclxuICBnZXRLZXlzKG9iamVjdDogYW55KTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCk7XHJcbiAgfVxyXG4gIGdldFZhbHVlcyhvYmplY3Q6IGFueSk6IHVua25vd25bXSB7XHJcbiAgICBjb25zdCBrZXlzOiB1bmtub3duW10gPSBbXTtcclxuICAgIG9iamVjdC5mb3JFYWNoKChrZXk6IGFueSkgPT4ga2V5cy5wdXNoKE9iamVjdC52YWx1ZXMoa2V5KSkpO1xyXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGtleXMpXTtcclxuICB9XHJcbiAgZ2V0IHVzZXJHZW5kZXIoKSB7XHJcbiAgICBjb25zdCB1c2VyID0gKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpIGFzIFVzZXIpO1xyXG4gICAgaWYgKHVzZXIpXHJcbiAgICAgIHJldHVybiB1c2VyLmdlbmRlcjtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldE5hdmJhckJ1dHRvbigpIHtcclxuICAgIGxldCBjb3VudDogbnVtYmVyID0gMDtcclxuICAgIGxldCBwYWdlOiBhbnlbXSA9IFtdXHJcbiAgICBmb3IgKGxldCBidXR0b24gb2YgdGhpcy5jb250ZW50Py5uYXZiYXJCdXR0b25zIHx8IFtdKSB7XHJcbiAgICAgIGlmIChbXHJcbiAgICAgICAgJ0hvbWUnLFxyXG4gICAgICAgICdQcm9kdWN0IERlc2NyaXB0aW9uJyxcclxuICAgICAgICAnQ2FydCcsXHJcbiAgICAgICAgJ1dpc2hsaXN0JyxcclxuICAgICAgICAnVXNlciBwcm9maWxlJyxcclxuICAgICAgICAnUHJvZHVjdCBMaXN0JyxcclxuICAgICAgICAnQ2hlY2tvdXQnLFxyXG4gICAgICAgICdBdXRoJyxcclxuICAgICAgICAnUGF5bWVudCBWZXJpZmljYXRpb24nLFxyXG4gICAgICAgICdMaXN0IENhdGVnb3J5JyxcclxuICAgICAgICAnQXV0aGVudGljYXRpb24gUmVxdWlyZWQnXHJcbiAgICAgIF0uaW5jbHVkZXMoYnV0dG9uLmxhYmVsKSkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY291bnQgPCA2ICYmIGJ1dHRvbi5zaG93SGVhZGVyKSB7XHJcbiAgICAgICAgcGFnZS5wdXNoKGJ1dHRvbik7XHJcbiAgICAgICAgY291bnQrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYWdlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIGlzU2Nyb2xsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXHJcbiAgLy8gb25XaW5kb3dTY3JvbGwoKSB7XHJcbiAgLy8gICB0aGlzLmlzU2Nyb2xsZWQgPSAgd2luZG93LnNjcm9sbFkgPiA1MDtcclxuICAvLyB9XHJcbiAgc2V0Q29sb3IoKSB7XHJcbiAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7IC8vIEFkanVzdCB0aGlzIHRocmVzaG9sZCBhcyBuZWVkZWRcclxuICAgIGNvbnN0IHIgPSBwYXJzZUludCh0aGlzLmJhY2tncm91bmRJbmZvLmFjY2VudENvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICBjb25zdCBnID0gcGFyc2VJbnQodGhpcy5iYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KHRoaXMuYmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcclxuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPiB0aHJlc2hvbGQgPyAnIzAwMDAwMCcgOiAnI2ZmZmZmZic7XHJcbiAgfVxyXG4gIHNob3dMaXN0OiBib29sZWFuID0gZmFsc2VcclxuICBkcm9wZG93bkxlZnQ6IG51bWJlciA9IDA7XHJcbiAgZHJvcGRvd25Ub3A6IG51bWJlciA9IDA7XHJcbiAgc2hvd0NvbGxlY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2F0ZWdvcnlMaXN0OiBhbnk7XHJcbiAgY29sbGVjdGlvbkxpc3Q6IGFueTtcclxuICBzZWxlY3RlZENhdGVnb3J5OiBhbnk7XHJcbiAgc3RvcmVBdmFpYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdldENhdGVnb3JpZXNIZWFkZXIoKSB7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldENhdGVnb3JpZXNIZWFkZXJEYXRhKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3JlQXZhaWFibGUgPSByZXM/LmRhdGE/LnN0b3JlQXZhaWxhYmxlO1xyXG4gICAgICB0aGlzLnNjaGVtZUF2YWlsYWJsZSA9IHJlcz8uZGF0YT8uc2NoZW1lc0F2YWlsYWJsZVxyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YT8uY2F0ZWdvcnlEZXRhaWxzO1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb25MaXN0ID0gcmVzPy5kYXRhPy5pdGVtQ29sbGVjdGlvbnM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVzdHJpY3RJblBhZ2VzKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xyXG4gICAgbGV0IHBhdGhuYW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xyXG4gICAgaWYgKHBhdGhuYW1lLmluY2x1ZGVzKCcvbG9naW4nKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgcmVzdHJpY3RDYXJ0QmFySW5QYWdlcygpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcclxuICAgIGxldCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcclxuICAgIGlmIChwYXRobmFtZS5pbmNsdWRlcygnL2xvZ2luJykgfHwgcGF0aG5hbWUuaW5jbHVkZXMoJy9jYXJ0JykgfHwgcGF0aG5hbWUuaW5jbHVkZXMoJy93aXNobGlzdCcpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKCcvZGV0YWlscycpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBzY2hlbWVBdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGdvVG9TdG9yZXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zdG9yZS1saXN0J10pO1xyXG4gIH1cclxuICBPYmplY3QgPSBPYmplY3RcclxuICBhcHBseUZpbHRlclRvTGlzdChvYmo6IGFueSwgdHlwZTogYW55KSB7XHJcbiAgICBpZiAodHlwZSA9PSAncHJpY2UnKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjYXRlZ29yeTogdGhpcy5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeU5hbWUsIG1pblByaWNlOiBvYmo/Lm1pblByaWNlLCBtYXhQcmljZTogb2JqPy5tYXhQcmljZSwgcGFnZU5vOiAxIH0gfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSAnY29sbGVjdGlvbicpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5TmFtZSwgY29sbGVjdGlvbnM6IG9iaj8ucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgcGFnZU5vOiAxIH0gfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZSA9PSAnY29sbGVjdGlvbnMnKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjb2xsZWN0aW9uczogb2JqPy5yZXBsYWNlQWxsKFwiIFwiLCAnXycpLCBwYWdlTm86IDEgfSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlckJ5Q2F0ZWdvcnkoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeT8uY2F0ZWdvcnlOYW1lLCBwYWdlTm86IDEgfSB9KTtcclxuICB9XHJcblxyXG4gIHNob3dQaW5jb2RlSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwaW5jb2RlOiBhbnkgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgncGluY29kZScpID8/IFwiXCI7XHJcbiAgZ2V0UGluY29kZTogc3RyaW5nID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSB8fCAnJztcclxuICBwaW5FcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNldFBpbmNvZGUoKSB7XHJcbiAgICBpZiAodGhpcy5waW5jb2RlICYmIHRoaXMucGluY29kZT8ubGVuZ3RoID09IDYpIHtcclxuICAgICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oJ3BpbmNvZGUnLCB0aGlzLnBpbmNvZGUpO1xyXG4gICAgICB0aGlzLmdldFBpbmNvZGUgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgncGluY29kZScpIHx8ICcnO1xyXG4gICAgICB0aGlzLnBpbkVycm9yID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBpbkVycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dMb2dpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnb1RvU2NoZW1lcygpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NjaGVtZS1lbnJvbGxtZW50J10pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UkdCQShiZ0NvbG9yOiBhbnksIG9wYWNpdHk6IG51bWJlcik6IGFueSB7XHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMywgNSksIDE2KTtcclxuICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHtvcGFjaXR5IC8gMTAwfSlgO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xyXG4gICAgY29uc3QgcGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XHJcbiAgICByZXR1cm4gcGF0aG5hbWUuaW5jbHVkZXMoJy9saXN0JykgfHwgcGF0aG5hbWUgPT09ICcvJyB8fCBwYXRobmFtZSA9PT0gJyc7XHJcbiAgfVxyXG5cclxuICBieU1ldGFsQW5kU3RvbmU6IGFueSA9IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0dvbGQnLFxyXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS8yMmt0LUdvbGQtMngucG5nJyxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0RpYW1vbmQnLFxyXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9EaWFtb25kLTF4LnBuZycsXHJcbiAgICAgIHN0YXR1czogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdQZWFybCcsXHJcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9zdGF0aWMvaW1hZ2VzL2Rpc2NvdmVyeS9yZXNwb25zaXZlLWhhbWJ1cmdlci1tZW51L3Byb2R1Y3RzLWFuZC1zZXJ2aWNlcy9wZWFybC0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnR2Vtc3RvbmUnLFxyXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9HZW1zdG9uZS0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnWWVsbG93IEdvbGQnLFxyXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vbWVkaWEvc3RhdGljL2ltYWdlcy93ZWIvbWVudS9ZZWxsb3ctR29sZC0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUm9zZSBHb2xkJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvUm9zZS1Hb2xkLTF4LnBuZycsXHJcbiAgICAgIHN0YXR1czogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdXaGl0ZSBHb2xkJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvd2hpdGUtR29sZC0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9XHJcbiAgXVxyXG4gIG5hdmlnYXRlTG9naW4oKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKVxyXG4gIH1cclxuXHJcbiAgbWVnYU1lbnU6IGFueSA9IFtdXHJcbiAgZm9vdGVyTWVudTogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRNb2JpbGVNZW51OiBhbnkgPSBudWxsO1xyXG5cclxuICBzZWxlY3RNb2JpbGVNZW51KGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZE1vYmlsZU1lbnUgPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgZ29CYWNrTW9iaWxlTWVudSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gbnVsbDtcclxuICB9XHJcbiAgZ2V0TWVudUl0ZW1zKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRNZW51SXRlbXModGhpcy5jb250ZW50Py5tZW51SWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuICAgICAgdGhpcy5tZWdhTWVudSA9IHJlcy5kYXRhLmRhdGEgfHwgW107XHJcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IHJlcz8uZGF0YT8uZGF0YSB8fCBbXTtcclxuICAgICAgdGhpcy5mb290ZXJNZW51ID0gbWVudUl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLm5vcm1hbGl6ZU1lZ2FNZW51SXRlbShpdGVtKSk7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZU1lZ2FNZW51SXRlbShpdGVtOiBhbnkpIHtcclxuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuaXNBcnJheShpdGVtPy5jaGlsZHJlbikgPyBpdGVtLmNoaWxkcmVuIDogW107XHJcbiAgICBjb25zdCBwYWdlcyA9IGNoaWxkcmVuXHJcbiAgICAgIC5tYXAoKGNoaWxkOiBhbnkpID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGNoaWxkPy5sYWJlbCA/PyAnJyxcclxuICAgICAgICBwYWdlSWQ6IGNoaWxkPy5wYWdlSWQgPz8gY2hpbGQ/LmlkID8/ICcnLFxyXG4gICAgICAgIHJlZGlyZWN0aW9uVXJsOiBjaGlsZD8ucmVkaXJlY3Rpb25VcmwgPz8gY2hpbGQ/LnJlZGlyZWN0aW9uYWxVcmwgPz8gJydcclxuICAgICAgfSkpXHJcbiAgICAgIC5maWx0ZXIoKGNoaWxkOiBhbnkpID0+IGNoaWxkLmxhYmVsIHx8IGNoaWxkLnJlZGlyZWN0aW9uVXJsKTtcclxuICAgIGNvbnN0IGZvbGRlciA9IGl0ZW0/LmZvbGRlciA/PyAocGFnZXMubGVuZ3RoID8geyBmb2xkZXJJZDogaXRlbT8uZm9sZGVySWQgPz8gaXRlbT8uaWQgPz8gJycsIHBhZ2VzIH0gOiB1bmRlZmluZWQpO1xyXG5cclxuICAgIHJldHVybiB7IFxyXG4gICAgICAuLi5pdGVtLCBcclxuICAgICAgc2hvd0hlYWRlcjogaXRlbT8uc2hvd0hlYWRlciA/PyB0cnVlLFxyXG4gICAgICByZWRpcmVjdGlvblVybDogaXRlbT8ucmVkaXJlY3Rpb25VcmwgPz8gaXRlbT8ucmVkaXJlY3Rpb25hbFVybCA/PyAnJyxcclxuICAgICAgZm9sZGVyXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3Rpb25zT2ZNZW51KGVsZTogYW55KSB7XHJcbiAgICBpZiAoZWxlPy50eXBlID09PSAnSE9NRV9QQUdFJykge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gZWxlPy5yZWRpcmVjdGlvbmFsVXJsID8/IGVsZT8ucmVkaXJlY3Rpb25VcmwgPz8gJyc7XHJcbiAgICBpZiAoIXJlZGlyZWN0VXJsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VXJsKTtcclxuICB9XHJcblxyXG4gIG9wZW5TdWJtZW51Q2hpbGQ6IGFueSA9IG51bGw7XHJcblxyXG4gIHRvZ2dsZVN1Yk1lbnUoY2hpbGQ6IGFueSwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLm9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkKSB7XHJcbiAgICAgIHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5TdWJtZW51Q2hpbGQgPSBjaGlsZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRHJvcGRvd25Qb3NpdGlvbihldmVudD86IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICFldmVudCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duX21lbnUsIC5kcm9wZG93bl9tZW51X3N0YXRpYycpIGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICAgIGlmICghY29udGFpbmVyKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0UmVjdCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSB0YXJnZXRSZWN0LmxlZnQgLSBjb250YWluZXJSZWN0LmxlZnQ7XHJcbiAgICB0aGlzLmRyb3Bkb3duVG9wID0gdGFyZ2V0UmVjdC5ib3R0b20gLSBjb250YWluZXJSZWN0LnRvcDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNoaWxkTWVudShlbGU6IGFueSwgZXZlbnQ/OiBFdmVudCkge1xyXG4gICAgdGhpcy51cGRhdGVEcm9wZG93blBvc2l0aW9uKGV2ZW50KTtcclxuICAgIGlmICh0aGlzLnNob3dMaXN0ICYmIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9PT0gZWxlLmNoaWxkcmVuKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hpbGRNZW51KGVsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDaGlsZE1lbnUoZWxlOiBhbnkpIHtcclxuICAgIHRoaXMub3BlblN1Ym1lbnVDaGlsZCA9IG51bGw7XHJcbiAgICBpZiAoZWxlLmNoaWxkcmVuICYmIGVsZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBlbGUuY2hpbGRyZW47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lciB3LTEwMFwiIFtjbGFzcy56LWluZGV4LTEwXT1cIiFpc0hlYWRlclN0aWNreSAmJiBpc0NvbXBvbmVudE1lcmdlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGU/LmJhY2tncm91bmRcIiBbbmdDbGFzc109XCJ7J2JveC1zaGFkb3cnOiBpc0Vjb21tZXJjZVdlYnNpdGV9XCJcclxuICAgIFtjbGFzcy5tYXJnaW4tYm90dG9tXT1cInNob3VsZFJlc2VydmVNb2JpbGVIZWFkZXJTcGFjZVwiPlxyXG4gICAgPGRpdiBbc2ltcG9TdGlja3ldPVwicmVzb2x2ZWRTdGlja3lUeXBlXCIgKHN0aWNreVNjcm9sbGVkKT1cIm9uU3RpY2t5U2Nyb2xsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBjbGFzcz1cInctMTAwXCIgI2NoaWxkQ29udGFpbmVyXHJcbiAgICAgIFtjYXRlZ29yeUhlYWRlcl09XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgY2F0ZWdvcnlMaXN0Py5sZW5ndGggPiAwICYmICFpc01vYmlsZSAmJiAhc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKClcIlxyXG4gICAgICBzaW1wb0hvdmVyIFtjbGFzcy5iZy10cmFuc3BhcmVudF09XCJpc0NvbXBvbmVudE1lcmdlZCAmJiAhaXNTY3JvbGxlZCAmJiAhaXNNb2JpbGVcIlxyXG4gICAgICAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbaWRdPVwiZGF0YT8uaWRcIiBbY2xhc3MuZHJvcGRvd24tb3Blbl09XCJzaG93TGlzdFwiPlxyXG4gICAgICA8IS0tIFtjbGFzcy5iYWNrZ3JvdW5kLXBvc2l0aW9uXT1cImlzQ29tcG9uZW50TWVyZ2VkICYmIGJhY2tncm91bmRJbmZvPy5zaG93SW1hZ2VcIiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5oZWFkbGluZT8uZGlzcGxheVwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c2ltcG8tbW92aW5nLXRleHQgW2VkaXRdPVwiZmFsc2VcIiBbZGVsZXRlXT1cImZhbHNlXCIgW2RhdGFdPVwiZGF0YVwiPjwvc2ltcG8tbW92aW5nLXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5jb3VudGRvd24/LmRpc3BsYXlcIj5cclxuICAgICAgICA8c2ltcG8tY291bnRkb3duLWJhbm5lciBbZGF0YV09XCJkYXRhPy5jb250ZW50Py5jb3VudGRvd25CYW5uZXJcIiBbZWRpdF09XCJmYWxzZVwiIFtkZWxldGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2lzSGVhZGVyUmVuZGVyZXJdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvc2ltcG8tY291bnRkb3duLWJhbm5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIxJyAmJiAhaXNFY29tbWVyY2VXZWJzaXRlXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcjFUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgIFtzaW1wb092ZXJsYXldPVwiYmFja2dyb3VuZEluZm9cIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzTGF5b3V0XCIgW2lzSGVhZGVyXT1cInRydWVcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXIyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjMnICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcclxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICBbY2xhc3MucC0yXT1cInJlc29sdmVkU3RpY2t5VHlwZSA9PT0gU3RpY2t5VHlwZS5TSFJJTktfT05fU0NST0xMICYmIGlzU2Nyb2xsZWQgJiYgIWVkaXRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyM1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0JyAmJiAhaXNFY29tbWVyY2VXZWJzaXRlXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcjRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtzaW1wb092ZXJsYXldPVwiYmFja2dyb3VuZEluZm9cIiAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiXHJcbiAgICAgICAgW3NpbXBvTGF5b3V0XT1cInNjcmVlbldpZHRoID4gNDc1ID8gc3R5bGVzTGF5b3V0IDogdW5kZWZpbmVkXCIgW2lzSGVhZGVyXT1cInRydWVcIiBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbW1lcmNlX2hlYWRlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG14LTIgbWItMiB3LTk2XCIgKm5nSWY9XCJpc01vYmlsZSAmJiBpc0Vjb21tZXJjZVdlYnNpdGUgJiYgIXJlc3RyaWN0Q2FydEJhckluUGFnZXMoKVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGl0ZW1zXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIndhaXRCZWZvcmVTZWFyY2goKVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBhY2NlbnRDb2xvcn1cIj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJoLTEwMFwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBzdHlsZT8uYmFja2dyb3VuZD8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcclxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmICFpc01vYmlsZSAmJiBkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnTUVHQV9NRU5VJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXRlZ29yaWVzSGVhZGVyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiBpc01vYmlsZSAmJiBzaG93Q2F0ZWdvcnlNb2JpbGVIZWFkZXIoKSAmJiBkYXRhPy5zdHlsZXM/LmVuYWJsZUhlYWRlckNhcm91c2VsXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVDYXRlZ29yeUhlYWRlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiBpc01vYmlsZSAmJiAhcmVzdHJpY3RJblBhZ2VzKClcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPiAtLT5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOICYmIGlzRnVsbFNjcmVlbk1lbnVPcGVuXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZnVsbFNjcmVlbk1lbnVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuQk9UVE9NX1NUSUNLWSAmJiBpc01vYmlsZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvdHRvbVN0aWNreU5hdlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaGVhZGVyMVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXIxXCI+XHJcbiAgICA8ZGl2IFtjbGFzcy53LTE1XT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxyXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIFtzdHlsZS53aWR0aC4lXT1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IDk0IDogJydcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEhBTUJVUkdFUiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcclxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaGVhZGVyMlRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXIxXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIFtzdHlsZS53aWR0aC4lXT1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IDkzIDogJydcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFpc0Vjb21tZXJjZVdlYnNpdGUgPyBidXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEhBTUJVUkdFUiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcclxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5tZW51PC9tYXQtaWNvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiIFtjbGFzcy53LTE1XT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxyXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRlcjNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxyXG4gICAgPGRpdiBbY2xhc3Mudy0xNV09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoID4gNDc1XCJcclxuICAgICAgW2NsYXNzLnctNDBdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA8PSA0NzVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzRWNvbW1lcmNlV2Vic2l0ZSA/IGVjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFpc0Vjb21tZXJjZVdlYnNpdGUgPyBidXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIlxyXG4gICAgICBkYXRhLWJzLXRvZ2dsZT1cIm9mZmNhbnZhc1wiIGRhdGEtYnMtdGFyZ2V0PVwiI29mZmNhbnZhc1JpZ2h0XCIgYXJpYS1jb250cm9scz1cIm9mZmNhbnZhc1JpZ2h0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRlVMTCBTQ1JFRU4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwib3BlbkZ1bGxTY3JlZW5NZW51KClcIj5tZW51PC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNoZWFkZXI0VGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlcjFcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIiFpc0Vjb21tZXJjZVdlYnNpdGUgPyBidXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPiA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIlxyXG4gICAgICBkYXRhLWJzLXRvZ2dsZT1cIm9mZmNhbnZhc1wiIGRhdGEtYnMtdGFyZ2V0PVwiI29mZmNhbnZhc1JpZ2h0XCIgYXJpYS1jb250cm9scz1cIm9mZmNhbnZhc1JpZ2h0XCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gRlVMTCBTQ1JFRU4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkZVTExfU0NSRUVOXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCIgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXHJcbiAgICAgIFtjbGFzcy53LTQwXT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPD0gNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvZ29TZWN0aW9uVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbXgtMVwiXHJcbiAgICAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIHx8ICFjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemUgKyA4MFwiIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+XHJcbiAgICAgIDxiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtbGctY2VudGVyIGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPiAtLT5cclxuICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiIFtzdHlsZS53aWR0aC4lXT1cInNjcmVlbldpZHRoID4gNDc1IHx8IChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSA8IDUwID8gY29udGVudD8ubG9nbz8uc2l6ZSA6IFxyXG4gICAgKChjb250ZW50Py5sb2dvPy5zaXplID49IDYwICAmJiBjb250ZW50Py5sb2dvPy5zaXplIDw9IDEwMCkgPyAoMjApIDogKChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSAtIDEwKSlcIlxyXG4gICAgW2NsYXNzLnctNzVdPVwic2NyZWVuV2lkdGggPCA0NzVcIiBsb2FkaW5nPVwibGF6eVwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCJcclxuICAgIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxyXG4gIDwhLS0gPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwYWdlTGlua3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdiBwYWdlTGlua3NcIiBbbmdDbGFzc109XCJ7J2FsaWduLWl0ZW1zLWNlbnRlcicgOiAhaXNNb2JpbGV9XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzU7IGVsc2UgcGFnZUxpbmtzRGVmYXVsdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fbWVudV9zdGF0aWMgdy0xMDBcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsOyBvcGVuU3VibWVudUNoaWxkID0gbnVsbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXYtc2Nyb2xsXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtbmF2XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTWVudVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC10YWItd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRkLXRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRkLXRhYi1hY3RpdmVdPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeSA9PT0gaXRlbT8uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID8gdG9nZ2xlQ2hpbGRNZW51KGl0ZW0sICRldmVudCkgOiByZWRpcmVjdGlvbnNPZk1lbnUoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCIgW3N0eWxlLi0tYm9yZGVyLWNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7aXRlbT8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43MDcxIDE0LjcwNzFDMTIuMzE2NiAxNS4wOTc2IDExLjY4MzQgMTUuMDk3NiAxMS4yOTI5IDE0LjcwNzFMNi4yOTI4OSA5LjcwNzExQzUuOTAyMzcgOS4zMTY1OCA1LjkwMjM3IDguNjgzNDIgNi4yOTI4OSA4LjI5Mjg5QzYuNjgzNDIgNy45MDIzNyA3LjMxNjU4IDcuOTAyMzcgNy43MDcxMSA4LjI5Mjg5TDEyIDEyLjU4NThMMTYuMjkyOSA4LjI5Mjg5QzE2LjY4MzQgNy45MDIzNyAxNy4zMTY2IDcuOTAyMzcgMTcuNzA3MSA4LjI5Mjg5QzE4LjA5NzYgOC42ODM0MiAxOC4wOTc2IDkuMzE2NTggMTcuNzA3MSA5LjcwNzExTDEyLjcwNzEgMTQuNzA3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1wYW5lbFwiICpuZ0lmPVwic2hvd0xpc3QgJiYgc2VsZWN0ZWRDYXRlZ29yeT8ubGVuZ3RoXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJkcm9wZG93bkxlZnRcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtaXRlbVwiICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBzZWxlY3RlZENhdGVnb3J5XCIgW2NsYXNzLm9wZW4tc3VibWVudV09XCJvcGVuU3VibWVudUNoaWxkID09PSBjaGlsZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIhY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPyByZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpIDogdG9nZ2xlU3ViTWVudShjaGlsZCwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZC1pdGVtLWFycm93XCIgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aFwiPiYjODI1MDs8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3VibWVudVwiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggJiYgb3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Yi1pdGVtXCIgKm5nRm9yPVwibGV0IHN1YiBvZiBjaGlsZD8uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShzdWIpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIj57e3N1Yj8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3BhZ2VMaW5rc0RlZmF1bHQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93c1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZm9vdGVyTWVudVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2hvd0hlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvd1wiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoaXRlbSlcIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgaXRlbT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZHJhd2VyLXJvdy1jaGV2cm9uXCIgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25zVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImFjdGlvbj8uZGlzcGxheVwiIGNsYXNzPVwiYnV0dG9uLWRpc3BsYXkgbXQtMFwiIFtuZ0NsYXNzXT1cInsndy0xMDAganVzdGlmeS1zcGFjZS1hcm91bmQnOiBpc01vYmlsZX1cIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9uc1wiPlxyXG4gICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgW2VkaXRdPVwiZWRpdFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2J1dHRvbklkXT1cImJ1dHRvbi5pZFwiXHJcbiAgICAgICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdGljX2xvZ2luX2J0biBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVMb2dpbigpXCIgKm5nSWY9XCIocGFzc2Jvb2tBcHBTdGF0dXMgfHwgYXBwb2ludG1lbnRBcHBTdGF0dXMpICYmICFsb2dnZWRJblwiXHJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5wZXJzb25fb3V0bGluZTwvbWF0LWljb24+XHJcbiAgICAgICAgTG9naW5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCJcclxuICAgICAgICAqbmdJZj1cImxvZ2dlZEluICYmICFpc01vYmlsZVwiPlxyXG4gICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cInVzZXJHZW5kZXIgfCBnZW5kZXJJY29uXCIgc3R5bGU9XCJoZWlnaHQ6IDI3cHg7XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZUxvZ2luQnV0dG9uXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgIWxvZ2dlZEluXCIgW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcclxuICAgIChjbGljayk9XCJnb1RvQWNjb3VudCgnTE9HSU4nKVwiPlxyXG4gICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0xMiAxM0MxNC43NjE0IDEzIDE3IDEwLjc2MTQgMTcgOEMxNyA1LjIzODU4IDE0Ljc2MTQgMyAxMiAzQzkuMjM4NTggMyA3IDUuMjM4NTggNyA4QzcgMTAuNzYxNCA5LjIzODU4IDEzIDEyIDEzWlwiXHJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgPHBhdGhcclxuICAgICAgICBkPVwiTTIwIDIxQzIwIDE4Ljg3ODMgMTkuMTU3MSAxNi44NDM0IDE3LjY1NjkgMTUuMzQzMUMxNi4xNTY2IDEzLjg0MjkgMTQuMTIxNyAxMyAxMiAxM0M5Ljg3ODI3IDEzIDcuODQzNDQgMTMuODQyOSA2LjM0MzE1IDE1LjM0MzFDNC44NDI4NSAxNi44NDM0IDQgMTguODc4MyA0IDIxXCJcclxuICAgICAgICBzdHJva2U9XCIjMzMzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgPC9zdmc+XHJcbiAgICAmbmJzcDtcclxuICAgIExvZ2luPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBjbGFzcz1cIm1vYmlsZUxvZ2luQnV0dG9uXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgbG9nZ2VkSW5cIiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIlxyXG4gICAgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdQUk9GSUxFJylcIj5cclxuICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cGF0aFxyXG4gICAgICAgIGQ9XCJNMTIgMTNDMTQuNzYxNCAxMyAxNyAxMC43NjE0IDE3IDhDMTcgNS4yMzg1OCAxNC43NjE0IDMgMTIgM0M5LjIzODU4IDMgNyA1LjIzODU4IDcgOEM3IDEwLjc2MTQgOS4yMzg1OCAxMyAxMiAxM1pcIlxyXG4gICAgICAgIHN0cm9rZT1cIiMzMzMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0yMCAyMUMyMCAxOC44NzgzIDE5LjE1NzEgMTYuODQzNCAxNy42NTY5IDE1LjM0MzFDMTYuMTU2NiAxMy44NDI5IDE0LjEyMTcgMTMgMTIgMTNDOS44NzgyNyAxMyA3Ljg0MzQ0IDEzLjg0MjkgNi4zNDMxNSAxNS4zNDMxQzQuODQyODUgMTYuODQzNCA0IDE4Ljg3ODMgNCAyMVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgIDwvc3ZnPlxyXG4gICAgJm5ic3A7QWNjb3VudDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVGb290ZXJUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiY2FydC1mb290ZXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCJcclxuICAgICpuZ0lmPVwiZ2V0Q2FydEl0ZW1zQ291bnQgPiAwICYmICFyZXN0cmljdENhcnRCYXJJblBhZ2VzKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHgtMyBweS0yIGgtMTAwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb3VudCBmdy1ib2xkXCI+XHJcbiAgICAgICAge3sgZ2V0Q2FydEl0ZW1zQ291bnQgPz8gMyB9fSB7eyBnZXRDYXJ0SXRlbXNDb3VudCA+IDEgPyAnaXRlbXMnIDogJ2l0ZW0nIH19IGluIGNhcnRcclxuICAgICAgICA8IS0tIFRvdGFsIDog4oK5e3sgZ2V0Q2FydFRvdGFsQW1vdW50IH19IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgZnctYm9sZFwiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XHJcbiAgICAgICAgVmlldyBDYXJ0IDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiPmFycm93X2ZvcndhcmQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZvb3RlclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+aG9tZTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5Ib21lPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmdyaWRfb248L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+U2hvcDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+ZmF2b3JpdGVfYm9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPldpc2hsaXN0PC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY2FydEl0ZW1Db3VudFwiICpuZ0lmPVwiZ2V0V2lzaGxpc3RJdGVtc0NvdW50XCI+e3tnZXRXaXNobGlzdEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnMgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnNob3BwaW5nX2NhcnQ8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Q2FydDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwci0wIGQtZmxleCBwb3NpdGlvbi1yZWxhdGl2ZSBnYXAtMTAgdy0xMDBcIlxyXG4gICAgW3N0eWxlLmZsZXhEaXJlY3Rpb25dPVwic3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIyJyB8fCBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjQnID8gJ3Jvdy1yZXZlcnNlJyA6ICcnXCI+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZWFyY2gtaWNvblwiIChjbGljayk9XCJzaG93U2VhcmNoQmFyID0gIXNob3dTZWFyY2hCYXJcIj5cclxuICAgICAgPG1hdC1pY29uIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy03NSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICFwYXNzYm9va0FwcFN0YXR1c31cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctNzUgbWwtMlwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggRm9yIEl0ZW1zXCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIndhaXRCZWZvcmVTZWFyY2goKVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9XCJcclxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5cclxuICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwiYW5pbWF0ZWQtcGxhY2Vob2xkZXIgcG9zaXRpb24tYWJzb2x1dGVcIiBcclxuICAgICAgICAgIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGVQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAqbmdJZj1cInN0eWxlPy5zZWFyY2hCYXJQbGFjZWhvbGRlckxpc3QubGVuZ3RoID4gMSAmJiBzdHlsZT8uc21hcnRTZWFyY2hCYXJcIj5cclxuICAgICAgICAgIHt7IGN1cnJlbnRQbGFjZWhvbGRlciB9fVxyXG4gICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaC0xMDBcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PT0gJ1NvbGlkJyA/ICAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxyXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBweS0xIHB4LTMgYi0xIHN0b3Jlc1wiXHJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJnb1RvU2NoZW1lcygpXCJcclxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRSR0JBKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciAsIDEwKVwiICpuZ0lmPVwicGFzc2Jvb2tBcHBTdGF0dXNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgICAgICAgeG1sbnM6c3ZnanM9XCJodHRwOi8vc3ZnanMuZGV2L3N2Z2pzXCIgaWQ9XCJMYXllcl8yXCIgdmlld0JveD1cIjAgMCA2MCA2MFwiIGRhdGEtbmFtZT1cIkxheWVyIDJcIiB3aWR0aD1cIjMwXCJcclxuICAgICAgICAgIGhlaWdodD1cIjMwXCIgdmVyc2lvbj1cIjEuMVwiPlxyXG4gICAgICAgICAgPGcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHRyYW5zZm9ybT1cIm1hdHJpeCgxLDAsMCwxLDAsMClcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIm0xNC4zNiA0Ni42Ni41MS05Ljg2LTExLjkzLTcuMTYtMS45NCA4LjQzelwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJtMTcuMTcgMzguMXMwLS4wMi4wMi0uMDNjMCAwIDAtLjAyLjAyLS4wMi4wNC0uMDUuMS0uMDguMTUtLjExLjAyLS4wMS4wMy0uMDMuMDUtLjA0bDQuNjYtMS45NGgtLjAycy0xLjg3LTEuMjEtMS44Ny0xLjIxbC0zLjE4IDEuNTctMS4wNy41My0uNDMgOC4zMiAxLjU4LTYuOWMuMDEtLjA2LjA1LS4xMi4wOS0uMTd6XCJcclxuICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIm0xOS4xNCAzNC4wOC02LjI3LTQuMDRjLS4xOS0uMTItLjI4LS4zNC0uMjMtLjU2bDEuMDgtNC43Mi05Ljk2IDQuMTQgMTEuNjggNy4wMXpcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCJcclxuICAgICAgICAgICAgICBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwibTMwLjkzIDQ2LjQyLS41IDkuNzkgMzIuNTctMTguNjctMS4yMS02LjQtMjMuMTYgMTEuNDZ6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTYgNDcuNjUgMTMuMzggOC41OC40OS05Ljg2LTExLjkzLTcuMTd6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIm0yNy44NSAzOS4zNHMwIDAtLjAxIDBjMCAwIDAgMC0uMDEgMC0uMDguMDQtLjE2LjA2LS4yNC4wNi0uMDUgMC0uMS0uMDMtLjE1LS4wNC0uMDQtLjAxLS4wOC0uMDEtLjExLS4wM2wtNC4xNi0yLjY3LTQuMzcgMS44MiAxMS42OCA3LjAxIDMwLjQtMTUuMDUtMTAuNzEtMy44OC0yMi4yOCAxMi43OHpcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmZpbGxdPVwiYWNjZW50Q29sb3JcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjguMjYgMzYuMDEtLjEgMS45MyAzMi41OC0xOC42OS0xLjIyLTYuMzktMzAuODYgMTUuMjh6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMjcuNjEgMjguMDktMTEuOTMtNy4xNi0xLjk0IDguNDMgMTMuMzYgOC41OHpcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIm01OC41NyAxMi4xNS0xMi4xLTQuMzgtMjkuOTcgMTIuNDMgMTEuNjggN3pcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cclxuICAgICAgICAgIDwvZz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8ZGl2IFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiPlNjaGVtZXM8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdG9yZXMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBweS0yIHB4LTNcIiAoY2xpY2spPVwiZ29Ub1N0b3JlcygpXCJcclxuICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgKm5nSWY9XCJzdG9yZUF2YWlhYmxlXCJcclxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRSR0JBKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciAsIDEwKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCI+c3RvcmU8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5TdG9yZXM8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGluLXRleHRcIiAobW91c2VlbnRlcik9XCJzaG93UGluY29kZUlucHV0ID0gdHJ1ZTtzaG93TG9naW4gPSBmYWxzZVwiXHJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiIWdldFBpbmNvZGVcIj5FbnRlclxyXG4gICAgICAgIFBpbmNvZGVcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwaW4tdGV4dFwiIChtb3VzZWVudGVyKT1cInNob3dQaW5jb2RlSW5wdXQgPSB0cnVlOztzaG93TG9naW4gPSBmYWxzZVwiXHJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiZ2V0UGluY29kZSAmJiBnZXRQaW5jb2RlLmxlbmd0aCA9PSA2XCI+e3tcIkRlbGl2ZXJpbmcgdG86IFwiICtcclxuICAgICAgICBnZXRQaW5jb2RlfX08L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gKG1vdXNlbGVhdmUpPVwic2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCIgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwaW5jb2RlLWNvbnRhaW5lciBwLTNcIiAqbmdJZj1cInNob3dQaW5jb2RlSW5wdXRcIiAobW91c2VsZWF2ZSk9XCJzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxyXG4gICAgICAgICAgWW91ciBQSU4gQ29kZSB1bmxvY2tzXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTQgcGluY29kZS10ZXh0XCI+XHJcbiAgICAgICAgICBGYXN0ZXN0IGRlbGl2ZXJ5IGRhdGUsIFRyeS1hdC1Ib21lIGF2YWlsYWJpbGl0eSxcclxuICAgICAgICAgIE5lYXJlc3Qgc3RvcmUgYW5kIEluLXN0b3JlIGRlc2lnbiFcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbXQtMiBici01IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHgtM1wiXHJcbiAgICAgICAgICBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInBpbkVycm9yXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiUGluY29kZVwiIGFyaWEtbGFiZWw9XCJQaW5jb2RlXCIgWyhuZ01vZGVsKV09XCJwaW5jb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LTc1IHAtMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXN1Yi10ZXh0IGYtMTEgdy0yNSB0ZXh0LWVuZCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzZXRQaW5jb2RlKClcIj5TVUJNSVQ8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBtdC0yIGYtMTFcIiAqbmdJZj1cInBpbkVycm9yXCI+XHJcbiAgICAgICAgICBQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaW5jb2RlXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA1cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0ZhdigpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPmZhdm9yaXRlPC9tYXQtaWNvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgY2FydEl0ZW1Db3VudFwiICpuZ0lmPVwiZ2V0V2lzaGxpc3RJdGVtc0NvdW50XCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJyAsICdjb2xvcicgOiBzZXRDb2xvcigpfVwiPlxyXG4gICAgICAgICAge3tnZXRXaXNobGlzdEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBzdHlsZT1cImdhcDogNXB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9DYXJ0KClcIj5cclxuICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmNvbG9yXCI+c2hvcHBpbmdfY2FydDwvbWF0LWljb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJyAsICdjb2xvcicgOiBzZXRDb2xvcigpfVwiPlxyXG4gICAgICAgICAge3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9naW5CdXR0b25cIiAqbmdJZj1cIiFsb2dnZWRJblwiIChtb3VzZWVudGVyKT1cInNob3dMb2dpbiA9IHRydWU7c2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjI3XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTEyLjEyIDEyLjc4QzEyLjA1IDEyLjc3IDExLjk2IDEyLjc3IDExLjg4IDEyLjc4QzEwLjEyIDEyLjcyIDguNzE5OTcgMTEuMjggOC43MTk5NyA5LjUwOTk4QzguNzE5OTcgNy42OTk5OCAxMC4xOCA2LjIyOTk4IDEyIDYuMjI5OThDMTMuODEgNi4yMjk5OCAxNS4yOCA3LjY5OTk4IDE1LjI4IDkuNTA5OThDMTUuMjcgMTEuMjggMTMuODggMTIuNzIgMTIuMTIgMTIuNzhaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiMyOTJEMzJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMTguNzQgMTkuMzhDMTYuOTYgMjEuMDEgMTQuNiAyMiAxMiAyMkM5LjQwMDAxIDIyIDcuMDQwMDEgMjEuMDEgNS4yNjAwMSAxOS4zOEM1LjM2MDAxIDE4LjQ0IDUuOTYwMDEgMTcuNTIgNy4wMzAwMSAxNi44QzkuNzcwMDEgMTQuOTggMTQuMjUgMTQuOTggMTYuOTcgMTYuOEMxOC4wNCAxNy41MiAxOC42NCAxOC40NCAxOC43NCAxOS4zOFpcIlxyXG4gICAgICAgICAgICBmaWxsPVwiIzI5MkQzMlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0xMiAyMkMxNy41MjI4IDIyIDIyIDE3LjUyMjggMjIgMTJDMjIgNi40NzcxNSAxNy41MjI4IDIgMTIgMkM2LjQ3NzE1IDIgMiA2LjQ3NzE1IDIgMTJDMiAxNy41MjI4IDYuNDc3MTUgMjIgMTIgMjJaXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+IDwhLS0gPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cImFjY2VudENvbG9yXCI+TG9naW48L3NwYW4+IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93TG9naW5cIiAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIG1iLTIgZi0xOCBmdy1ib2xkXCI+XHJcbiAgICAgICAgICBZb3VyIEFjY291bnRcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdGV4dC1jZW50ZXIgZi0xNFwiPlxyXG4gICAgICAgICAgQWNjZXNzIGFjY291bnQgJiBtYW5hZ2UgeW91ciBvcmRlcnMuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgZ2FwLTNcIj5cclxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdTSUdOVVAnKVwiIGNsYXNzPVwidy01MCB0ZXh0LWNlbnRlciBzaWduLWJ0biBib3JkZXItMFwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICAgYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxyXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCI+U2lnbiBVcDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ0xPR0lOJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG5cIlxyXG4gICAgICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPkxvZyBJbjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogOHB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdQUk9GSUxFJylcIlxyXG4gICAgICAgICpuZ0lmPVwibG9nZ2VkSW5cIj5cclxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAyN3B4O1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2PiAtLT5cclxuICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJnb1RvQWNjb3VudCgpXCIgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cInNlY3Rpb25JZCtidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b25TdHlsZVwiIFtjb2xvcl09XCJjb2xvclwiIFthcHBCdXR0b25FZGl0b3JdPVwiZWRpdCA/PyBmYWxzZVwiIFtidXR0b25EYXRhXT1cImJ1dHRvbkNvbnRlbnRcIj57e2J1dHRvbkNvbnRlbnQ/LmxhYmVsfX08L2J1dHRvbj4gLS0+XHJcbiAgICA8IS0tIDwvZGl2PiAtLT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbmF2YmFyTGlua3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGZzLTYgcG9zaXRpb24tcmVsYXRpdmUgZC1mbGV4XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7IG1hcmdpbi1sZWZ0OiAyNXB4O1wiXHJcbiAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDc2OFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXROYXZiYXJCdXR0b25cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc2hvd0hlYWRlclwiPlxyXG4gICAgICAgIDxzaW1wby1uYXZiYXItYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkRhdGFdPVwiaXRlbVwiIFtzZWxlY3RlZFN0eWxlXT1cInN0eWxlPy5uYXZpZ2F0aW9uU3R5bGVcIlxyXG4gICAgICAgICAgW2J1dHRvblN0eWxlXT1cInN0eWxlPy5uYXZiYXJCdXR0b25TdHlsZVwiIFtiZ0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZ2V0RHJvcGRvd25MaW5rczsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50Py5lY29tbGlua3M/LltsaW5rXT8ubGVuZ3RoIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJtYXQtYnRuIGRyb3Bkb3duLXRvZ2dsZVwiIHR5cGU9XCJidXR0b25cIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgaWQ9XCJsaW5rXCJcclxuICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7bGluayB8IHVwcGVyY2FzZX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwibGlua1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbWVudSBvZiBnZXRWYWx1ZXMoY29udGVudD8uZWNvbWxpbmtzPy5bbGlua10pXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXIobWVudSwgbGluaylcIj57e21lbnV9fTwvYT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiPlxyXG4gIDxkaXYgI21vYmlsZU9mZmNhbnZhcyBjbGFzcz1cIm9mZmNhbnZhc1wiIHRhYmluZGV4PVwiLTFcIiBpZD1cIm9mZmNhbnZhc1JpZ2h0XCIgYXJpYS1sYWJlbGxlZGJ5PVwib2ZmY2FudmFzUmlnaHRMYWJlbFwiXHJcbiAgICBkYXRhLWJzLWJhY2tkcm9wPVwiZmFsc2VcIlxyXG4gICAgW25nQ2xhc3NdPVwieydvZmZjYW52YXMtZW5kJyA6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMScgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIzJywgJ29mZmNhbnZhcy1zdGFydCc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0J31cIj5cclxuXHJcbiAgICA8IS0tIFRPUCBCQVIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXRvcGJhclwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1sb2dvXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZUxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZHJhd2VyLWNsb3NlLWJ0blwiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiIGFyaWEtbGFiZWw9XCJDbG9zZSBtZW51XCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBCT0RZIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cIm9mZmNhbnZhcy1ib2R5IGRyYXdlci1ib2R5XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlTWVudUxpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIERJVklERVIgKyBRVUlDSyBBQ1RJT05TIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1mb290ZXJcIiAqbmdJZj1cImFjdGlvbj8uZGlzcGxheSAmJiBhY3Rpb24/LmJ1dHRvbnM/Lmxlbmd0aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRpdmlkZXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWFjdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWFjdGlvblwiICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWN0aW9uPy5idXR0b25zXCI+XHJcbiAgICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50IFtidXR0b25Db250ZW50XT1cImJ1dHRvbi5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgICAgW2VkaXRdPVwiZWRpdFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW2J1dHRvbklkXT1cImJ1dHRvbi5pZFwiXHJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbaXNGdWxsV2lkdGhdPVwidHJ1ZVwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZWNvbVByb2ZpbGVUZW1wbGF0ZT5cclxuICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cImgtMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBici01MCBmcy0yMiBweC0zIHB5LTFcIlxyXG4gICAgKGNsaWNrKT1cInNob3dTZWFyY2hCYXJNb2JpbGUgPSAhc2hvd1NlYXJjaEJhck1vYmlsZVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgYmFja2dyb3VuZEluZm8/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknfVwiXHJcbiAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmNvbG9yXCI+c2VhcmNoPC9tYXQtaWNvbj4gLS0+XHJcblxyXG5cclxuICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG1vYi1mb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0XCIgYXJpYS1sYWJlbD1cIlNlYXJjaCBQcm9kdWN0XCJcclxuICAgICpuZ0lmPVwic2hvd1NlYXJjaEJhck1vYmlsZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIndhaXRCZWZvcmVTZWFyY2goKVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcicgOiAnMXB4IHNvbGlkICcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9XCI+IC0tPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA4cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiXHJcbiAgICAqbmdJZj1cImxvZ2dlZEluXCI+XHJcbiAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAyN3B4O1wiPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVMb2dvU2VjdGlvblRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24tY2VudGVyIGN1cnNvci1wb2ludGVyIGgtMTAwXCJcclxuICAgICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb24gJiYgY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgY2xhc3M9XCJoLTEwMFwiPlxyXG4gICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgY2xhc3M9XCJoLTEwMFwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICA8Yj57e2NvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9iPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj4gLS0+XHJcbiAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJsb2dvXCIgY2xhc3M9XCJoLTEwMFwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XHJcbiAgPCEtLSA8L2Rpdj4gLS0+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NhdGVnb3JpZXNIZWFkZXI+XHJcbiAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMtd3JhcHBlclwiICpuZ0lmPVwiIWlzTW9iaWxlXCIgKG1vdXNlbGVhdmUpPVwic2hvd0xpc3QgPSBmYWxzZTsgc2hvd0NvbGxlY3Rpb25zID0gZmFsc2VcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYmx1ci1vdmVybGF5XCIgW2NsYXNzLmFjdGl2ZV09XCJzaG93TGlzdCB8fCBzaG93Q29sbGVjdGlvbnNcIj48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkZXIgZC1mbGV4IGdhcC0zIHB5LTIgcG9zaXRpb24tcmVsYXRpdmVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcclxuICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5IGN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW3N0eWxlLi0tYm9yZGVyLWNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgICAobW91c2VlbnRlcik9XCJzZXRDaGlsZE1lbnUoZWxlKVwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiPlxyXG4gICAgICAgIHt7ZWxlPy5sYWJlbH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBbY2xhc3MuaGlkZS1kcm9wZG93bl09XCIhc2hvd0xpc3RcIiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWNhdGVnb3J5XCIgW2NsYXNzLnNob3ctZHJvcGRvd25dPVwic2hvd0xpc3RcIiBbY2xhc3MuaGlkZS1kcm9wZG93bl09XCIhc2hvd0xpc3RcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyB3LTEwMCBoLTEwMCBtZWdhLW1lbnUtc2Nyb2xsLXJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZSBvZiBzZWxlY3RlZENhdGVnb3J5OyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZWdhLW1lbnUtc2Nyb2xsLWNvbFwiIFtuZ0NsYXNzXT1cIltcclxuICAgICAgICAgICAgICBlbGU/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoZWxlLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgZWxlLnR5cGU9PSdDQVRFR09SSUVTJykgPyAnY29sLTMnIDogJ2NvbC0yJyxcclxuICAgICAgICAgICAgICBlbGU/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmICFsYXN0ID8gJ2hhcy1yaWdodC1ib3JkZXInIDogJydcclxuICAgICAgICAgICAgXVwiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChlbGUudHlwZT09J0NPTExFQ1RJT05TJyB8fCBlbGUudHlwZT09J0NBVEVHT1JJRVMnIClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FyZCBtYi0zXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShlbGUpXCIgKm5nSWY9XCJlbGUuaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJlbGUuaW1hZ2VVcmxcIiBbYWx0XT1cImVsZT8ubGFiZWxcIiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWltYWdlIGNvbGxlY3Rpb25JbWFnZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FwdGlvblwiPnt7ZWxlPy5sYWJlbCB8IHVwcGVyY2FzZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaGVhZGVyIG1iLTMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIiAqbmdJZj1cIiFlbGUuaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgIHt7ZWxlPy5sYWJlbCB8IHRpdGxlY2FzZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaGVhZGVyIG1iLTMgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIHt7ZWxlPy5sYWJlbCB8IHRpdGxlY2FzZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlPy5jaGlsZHJlbiAmJiBlbGU/LmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zIGxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgZWxlPy5jaGlsZHJlblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImNoaWxkPy5sb2dvVXJsXCIgW3NyY109XCJjaGlsZD8ubG9nb1VybFwiIFthbHRdPVwiY2hpbGQ/LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVnYS1tZW51LWNoaWxkLWxvZ29cIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjaGlsZD8uZGVzY3JpcHRpb25cIiBjbGFzcz1cIm1lZ2EtbWVudS1jaGlsZC1kZXNjXCI+e3tjaGlsZD8uZGVzY3JpcHRpb259fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVNZW51TGlzdFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2JpbGUtbWVudS1jb250YWluZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvd3NcIiAqbmdJZj1cIiFzZWxlY3RlZE1vYmlsZU1lbnVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIG1lZ2FNZW51XCJcclxuICAgICAgICAoY2xpY2spPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID8gc2VsZWN0TW9iaWxlTWVudShlbGUpIDogcmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIlxyXG4gICAgICAgIFthdHRyLmRhdGEtYnMtZGlzbWlzc109XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPyBudWxsIDogJ29mZmNhbnZhcydcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgZWxlPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkcmF3ZXItcm93LWNoZXZyb25cIiAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWxcIiAqbmdJZj1cInNlbGVjdGVkTW9iaWxlTWVudVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRldGFpbC1iYWNrXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3tzZWxlY3RlZE1vYmlsZU1lbnU/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtc2VjdGlvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBzZWxlY3RlZE1vYmlsZU1lbnU/LmNoaWxkcmVuXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRldGFpbC1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoID09IDAgJiYgKGNoaWxkLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgY2hpbGQudHlwZT09J0NBVEVHT1JJRVMnIClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtY2FyZFwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpbGQuaW1hZ2VVcmxcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJjaGlsZC5pbWFnZVVybFwiIFthbHRdPVwiY2hpbGQ/LmxhYmVsXCIgY2xhc3M9XCJtb2JpbGUtc3VibWVudS1pbWFnZSBjb2xsZWN0aW9uSW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcHRpb25cIj57e2NoaWxkPy5sYWJlbCB8IHVwcGVyY2FzZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIShjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChjaGlsZC50eXBlPT0nQ09MTEVDVElPTlMnIHx8IGNoaWxkLnR5cGU9PSdDQVRFR09SSUVTJyApICYmIGNoaWxkLmltYWdlVXJsKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93IGRyYXdlci1yb3ctLXN1YlwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiY2hpbGQ/LmxvZ29VcmxcIiBbc3JjXT1cImNoaWxkPy5sb2dvVXJsXCIgW2FsdF09XCJjaGlsZD8ubGFiZWxcIiBjbGFzcz1cIm1lZ2EtbWVudS1jaGlsZC1sb2dvXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJhd2VyLXJvdy1sYWJlbFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsLWdyaWRcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWNoaXBcIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKVwiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7e3N1Yj8ubGFiZWwgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNtb2JpbGVDYXRlZ29yeUhlYWRlcj5cclxuICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkZXIgZC1mbGV4IGdhcC0zICBweS0yIG92ZXJmbG93LWF1dG9cIiAqbmdJZj1cImNhdGVnb3J5TGlzdD8ubGVuZ3RoID4gMCAmJiBpc01vYmlsZVwiXHJcbiAgICBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCIgW2NsYXNzLm1hcmdpbi10b3AtbW9iXT1cImlzSGVhZGVyU3RpY2t5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnkgY3Vyc29yLXBvaW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBjYXRlZ29yeUxpc3Q7bGV0IGkgPSBpbmRleFwiXHJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInNlbGVjdGVkQ2F0ZWdvcnkgPSBlbGU7IGZpbHRlckJ5Q2F0ZWdvcnkoKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0LWltZyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiZWxlPy5pbWFnZVVybHNbMF1cIiBbYWx0XT1cImVsZT8uY2F0ZWdvcnlOYW1lXCIgY2xhc3M9XCJici0xMiBtb2JpbGUtY2F0ZWdvcnktaW1hZ2VcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBjYXRlZ29yeS1uYW1lXCI+e3tlbGU/LmNhdGVnb3J5TmFtZX19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZWNvbW1lcmNlX2hlYWRlcj5cclxuICA8aGVhZGVyIGNsYXNzPVwic2l0ZS1oZWFkZXJcIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdlY29tLWhlYWRlcjEnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjEnLFxyXG4gICAgICAnZWNvbS1oZWFkZXIyJzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIyJyxcclxuICAgICAgJ2Vjb20taGVhZGVyMyc6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMycsXHJcbiAgICAgICdlY29tLWhlYWRlcjQnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjQnXHJcbiAgICB9XCI+XHJcbiAgICA8IS0tIFRvcCBCYXI6IExvZ28sIFNlYXJjaCwgVXNlciBBY3Rpb25zIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvcC1iYXJcIj5cclxuXHJcbiAgICAgIDwhLS0gTW9iaWxlIE1lbnUgVG9nZ2xlIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxvZ28tYXJlYVwiIFtuZ0NsYXNzXT1cInsnbW9iaWxlLWhlYWRlci1sZWZ0LXNpZGUnOiBzY3JlZW5XaWR0aCA8PSA0NzV9XCI+XHJcbiAgICAgICAgPCEtLSBIQU1CVVJHRVIgLS0+XHJcbiAgICAgICAgPGxhYmVsICpuZ0lmPVwicmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCIgZm9yPVwibW9iaWxlLW1lbnUtY2hlY2tib3hcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtb2JpbGUtbWVudS1idG5cIiBkYXRhLWJzLXRvZ2dsZT1cIm9mZmNhbnZhc1wiIGRhdGEtYnMtdGFyZ2V0PVwiI29mZmNhbnZhc1JpZ2h0XCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgbWVudVwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5cclxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNPZmZjYW52YXNPcGVuXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMTJcIiB4Mj1cIjIwXCIgeTI9XCIxMlwiPjwvbGluZT5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCI2XCIgeDI9XCIyMFwiIHkyPVwiNlwiPjwvbGluZT5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxOFwiIHgyPVwiMjBcIiB5Mj1cIjE4XCI+PC9saW5lPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNPZmZjYW52YXNPcGVuXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNlwiIHkxPVwiNlwiIHgyPVwiMThcIiB5Mj1cIjE4XCI+PC9saW5lPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjE4XCIgeDI9XCIxOFwiIHkyPVwiNlwiPjwvbGluZT5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cclxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiIGNsYXNzPVwibW9iaWxlLW1lbnUtYnRuXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJUb2dnbGUgbWVudVwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxMlwiIHgyPVwiMjBcIiB5Mj1cIjEyXCI+PC9saW5lPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjZcIiB4Mj1cIjIwXCIgeTI9XCI2XCI+PC9saW5lPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjE4XCIgeDI9XCIyMFwiIHkyPVwiMThcIj48L2xpbmU+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICA8IS0tIExvZ28gU2VjdGlvbiAtLT5cclxuICAgICAgICA8YSBjbGFzcz1cImxvZ29cIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJMb2dvXCIgY2xhc3M9XCJsb2dvLWltZ1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplICArIDE1XCJcclxuICAgICAgICAgICAgW2hlaWdodF09XCJjb250ZW50Py5sb2dvPy5zaXplXCI+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cInRleHRQbHVzbG9nb1wiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgXHJcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHQgXHJcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc0ljb24gXHJcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuXHJcbiAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJJY29uXCIgY2xhc3M9XCJsb2dvLWljb25cIlxyXG4gICAgICAgICAgICBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZSArIDE1XCIgW2hlaWdodF09XCJjb250ZW50Py5sb2dvPy5zaXplXCI+XHJcblxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dvLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgICAgICB7eyBjb250ZW50Py5zaXRlTmFtZT8udmFsdWUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgIDxhIGNsYXNzPVwibG9nb1wiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgXHJcbiAgICAgICAgICAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHQgXHJcbiAgICAgICAgICAmJiAhY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uXCI+XHJcblxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2dvLW1haW5cIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZSB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFNlYXJjaCBCYXIgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiXHJcbiAgICAgICAgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NSAmJiBjb250ZW50Py5zaG93U2VhcmNoQmFyICYmIGRhdGE/LnN0eWxlcz8ubWVudVR5cGUgIT09ICdEUk9QRE9XTl9NRU5VJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmFyXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBmb3IgaXRlbVwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlYXJjaFByb2R1Y3RzKClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCI+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cclxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIERyb3Bkb3duIG1lbnUgc3R5bGUgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bl9tZW51XCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NSAmJiBkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnRFJPUERPV05fTUVOVSdcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRkLW5hdi1zY3JvbGxcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXRhYi13cmFwXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZGQtdGFiXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kZC10YWItYWN0aXZlXT1cInNob3dMaXN0ICYmIHNlbGVjdGVkQ2F0ZWdvcnkgPT09IGVsZT8uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHRvZ2dsZUNoaWxkTWVudShlbGUsICRldmVudCkgOiByZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7ZWxlPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCJcclxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43MDcxIDE0LjcwNzFDMTIuMzE2NiAxNS4wOTc2IDExLjY4MzQgMTUuMDk3NiAxMS4yOTI5IDE0LjcwNzFMNi4yOTI4OSA5LjcwNzExQzUuOTAyMzcgOS4zMTY1OCA1LjkwMjM3IDguNjgzNDIgNi4yOTI4OSA4LjI5Mjg5QzYuNjgzNDIgNy45MDIzNyA3LjMxNjU4IDcuOTAyMzcgNy43MDcxMSA4LjI5Mjg5TDEyIDEyLjU4NThMMTYuMjkyOSA4LjI5Mjg5QzE2LjY4MzQgNy45MDIzNyAxNy4zMTY2IDcuOTAyMzcgMTcuNzA3MSA4LjI5Mjg5QzE4LjA5NzYgOC42ODM0MiAxOC4wOTc2IDkuMzE2NTggMTcuNzA3MSA5LjcwNzExTDEyLjcwNzEgMTQuNzA3MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMDAwMDAwXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtcGFuZWxcIiAqbmdJZj1cInNob3dMaXN0ICYmIHNlbGVjdGVkQ2F0ZWdvcnk/Lmxlbmd0aFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCIgW3N0eWxlLnRvcC5weF09XCJkcm9wZG93blRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRDYXRlZ29yeVwiIFtjbGFzcy5vcGVuLXN1Ym1lbnVdPVwib3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiIWNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoID8gcmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKSA6IHRvZ2dsZVN1Yk1lbnUoY2hpbGQsICRldmVudClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGQtaXRlbS1hcnJvd1wiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGhcIj4mIzgyNTA7PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Ym1lbnVcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoICYmIG9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1zdWItaXRlbVwiICpuZ0Zvcj1cImxldCBzdWIgb2YgY2hpbGQ/LmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDwhLS0gUmlnaHQgQWN0aW9ucyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItYWN0aW9uc1wiPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ0RST1BET1dOX01FTlUnICYmIHNjcmVlbldpZHRoID4gNDc1ICYmIGNvbnRlbnQ/LnNob3dTZWFyY2hCYXJcIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGRyb3Bkb3duLXNlYXJjaC10b2dnbGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaCA9ICFzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBzZWFyY2hcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yZUF2YWlhYmxlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIHN0b3JlLWxpbmtcIiAobW91c2VlbnRlcik9XCJzaG93UGluY29kZUlucHV0ID0gdHJ1ZTtzaG93TG9naW4gPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWdldFBpbmNvZGVcIj5cclxuICAgICAgICAgICAgPCEtLSA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMTcgMTdcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNOC41IDAuNWMtMy4wMzIgMC01LjUgMi40NjctNS41IDUuNSAwIDQuMzczIDQuOTEzIDEwLjA4NiA1LjEyMiAxMC4zMjhsMC4zNzggMC40MzUgMC4zNzgtMC40MzZjMC4yMDktMC4yNDEgNS4xMjItNS45NTQgNS4xMjItMTAuMzI3IDAtMy4wMzMtMi40NjgtNS41LTUuNS01LjV6TTguNSAxNS4yMTVjLTEuMTQ2LTEuNDI0LTQuNS01Ljg3OS00LjUtOS4yMTUgMC0yLjQ4MSAyLjAxOS00LjUgNC41LTQuNXM0LjUgMi4wMTkgNC41IDQuNWMwIDMuMzMzLTMuMzU0IDcuNzkxLTQuNSA5LjIxNXpNOC41IDMuMTM5Yy0xLjY1NCAwLTMgMS4zNDYtMyAzczEuMzQ2IDMgMyAzIDMtMS4zNDYgMy0zLTEuMzQ2LTMtMy0zek04LjUgOC4xMzljLTEuMTAzIDAtMi0wLjg5Ny0yLTJzMC44OTctMiAyLTIgMiAwLjg5NyAyIDItMC44OTcgMi0yIDJ6XCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCIjMDAwMDAwXCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+IC0tPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCJcclxuICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgZD1cIk0zNDEuNDc2IDMzOC4yODVjNTQuNDgzLTg1LjQ5MyA0Ny42MzQtNzQuODI3IDQ5LjIwNC03Ny4wNTZDNDEwLjUxNiAyMzMuMjUxIDQyMSAyMDAuMzIyIDQyMSAxNjYgNDIxIDc0Ljk4IDM0Ny4xMzkgMCAyNTYgMCAxNjUuMTU4IDAgOTEgNzQuODMyIDkxIDE2NmMwIDM0LjMgMTAuNzA0IDY4LjA5MSAzMS4xOSA5Ni40NDZsNDguMzMyIDc1Ljg0QzExOC44NDcgMzQ2LjIyNyAzMSAzNjkuODkyIDMxIDQyMmMwIDE4Ljk5NSAxMi4zOTggNDYuMDY1IDcxLjQ2MiA2Ny4xNTlDMTQzLjcwNCA1MDMuODg4IDE5OC4yMzEgNTEyIDI1NiA1MTJjMTA4LjAyNSAwIDIyNS0zMC40NzIgMjI1LTkwIDAtNTIuMTE3LTg3Ljc0NC03NS43NTctMTM5LjUyNC04My43MTV6bS0xOTQuMjI3LTkyLjM0YTE1LjU3IDE1LjU3IDAgMCAwLS41MTctLjc1OEMxMjkuNjg1IDIyMS43MzUgMTIxIDE5My45NDEgMTIxIDE2NmMwLTc1LjAxOCA2MC40MDYtMTM2IDEzNS0xMzYgNzQuNDM5IDAgMTM1IDYxLjAwOSAxMzUgMTM2IDAgMjcuOTg2LTguNTIxIDU0LjgzNy0yNC42NDYgNzcuNjcxLTEuNDQ1IDEuOTA2IDYuMDk0LTkuODA2LTExMC4zNTQgMTcyLjkxOEwxNDcuMjQ5IDI0NS45NDV6TTI1NiA0ODJjLTExNy45OTQgMC0xOTUtMzQuNjgzLTE5NS02MCAwLTE3LjAxNiAzOS41NjgtNDQuOTk1IDEyNy4yNDgtNTUuOTAxbDU1LjEwMiA4Ni40NjNhMTQuOTk4IDE0Ljk5OCAwIDAgMCAyNS4yOTggMGw1NS4xMDEtODYuNDYzQzQxMS40MzEgMzc3LjAwNSA0NTEgNDA0Ljk4NCA0NTEgNDIyYzAgMjUuMTAyLTc2LjMxMyA2MC0xOTUgNjB6XCI+XHJcbiAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTI1NiA5MWMtNDEuMzU1IDAtNzUgMzMuNjQ1LTc1IDc1czMzLjY0NSA3NSA3NSA3NSA3NS0zMy42NDUgNzUtNzUtMzMuNjQ1LTc1LTc1LTc1em0wIDEyMGMtMjQuODEzIDAtNDUtMjAuMTg3LTQ1LTQ1czIwLjE4Ny00NSA0NS00NSA0NSAyMC4xODcgNDUgNDUtMjAuMTg3IDQ1LTQ1IDQ1elwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b3JlLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+RW50ZXIgUGluY29kZTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBzdG9yZS1saW5rXCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7O3Nob3dMb2dpbiA9IGZhbHNlXCJcclxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiZ2V0UGluY29kZSAmJiBnZXRQaW5jb2RlLmxlbmd0aCA9PSA2XCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwibTIgNyA0LjQxLTQuNDFBMiAyIDAgMCAxIDcuODMgMmg4LjM0YTIgMiAwIDAgMSAxLjQyLjU5TDIyIDdcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgPHBhdGggZD1cIk00IDEydjhhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ydi04XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgMjJ2LTRhMiAyIDAgMCAwLTItMmgtMmEyIDIgMCAwIDAtMiAydjRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDdoMjBcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMjIgN3YzYTIgMiAwIDAgMS0yIDJ2MGEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDE2IDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgMTIgMTJhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSA4IDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgNCAxMnYwYTIgMiAwIDAgMS0yLTJWN1wiPlxyXG4gICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvcmUtdGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57e1wiRGVsaXZlcmluZyB0bzogXCIgK1xyXG4gICAgICAgICAgICAgIGdldFBpbmNvZGV9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBpbmNvZGUtY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd1BpbmNvZGVJbnB1dFwiIChtb3VzZWxlYXZlKT1cInNob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxyXG4gICAgICAgICAgICAgIFlvdXIgUElOIENvZGUgdW5sb2Nrc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTQgcGluY29kZS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgRmFzdGVzdCBkZWxpdmVyeSBkYXRlLCBUcnktYXQtSG9tZSBhdmFpbGFiaWxpdHksXHJcbiAgICAgICAgICAgICAgTmVhcmVzdCBzdG9yZSBhbmQgSW4tc3RvcmUgZGVzaWduIVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG10LTIgYnItNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTNcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwicGluRXJyb3JcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiUGluY29kZVwiIGFyaWEtbGFiZWw9XCJQaW5jb2RlXCIgWyhuZ01vZGVsKV09XCJwaW5jb2RlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy03NSBwLTBcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc3ViLXRleHQgZi0xMSB3LTI1IHRleHQtZW5kIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNldFBpbmNvZGUoKVwiPlNVQk1JVDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMiBmLTExXCIgKm5nSWY9XCJwaW5FcnJvclwiPlxyXG4gICAgICAgICAgICAgIFBsZWFzZSBlbnRlciBhIHZhbGlkIHBpbmNvZGVcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgbG9naW4tYnRuXCIgKm5nSWY9XCIhbG9nZ2VkSW5cIlxyXG4gICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd0xvZ2luID0gdHJ1ZTtzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIiAoY2xpY2spPVwic2hvd0xvZ2luID0gIXNob3dMb2dpblwiPlxyXG4gICAgICAgICAgPCEtLSBVc2VyIEljb24gU1ZHIC0tPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xOSAyMXYtMmE0IDQgMCAwIDAtNC00SDlhNCA0IDAgMCAwLTQgNHYyXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjdcIiByPVwiNFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seVwiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCIgKm5nSWY9XCJsb2dnZWRJblwiPlxyXG4gICAgICAgICAgPCEtLSBVc2VyIEljb24gU1ZHIC0tPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xOSAyMXYtMmE0IDQgMCAwIDAtNC00SDlhNCA0IDAgMCAwLTQgNHYyXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjdcIiByPVwiNFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93TG9naW5cIiAobW91c2VsZWF2ZSk9XCJzaG93TG9naW4gPSBmYWxzZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgbWItMiBmLTE4IGZ3LWJvbGRcIj5cclxuICAgICAgICAgICAgWW91ciBBY2NvdW50XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB0ZXh0LWNlbnRlciBmLTE0XCI+XHJcbiAgICAgICAgICAgIEFjY2VzcyBhY2NvdW50ICYgbWFuYWdlIHlvdXIgb3JkZXJzLlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWNvbnRhaW5lciB3LTEwMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMyBnYXAtM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnb1RvQWNjb3VudCgnU0lHTlVQJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG4gYm9yZGVyLTBcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT0gJ1NvbGlkJyA/ICAgYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIj5TaWduIFVwPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdMT0dJTicpXCIgY2xhc3M9XCJ3LTUwIHRleHQtY2VudGVyIHNpZ24tYnRuXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCIgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPkxvZyBJbjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGljb24tY29udGFpbmVyIHdpc2hsaXN0LWljb25cIiAoY2xpY2spPVwiZ29Ub1dpc2hsaXN0KClcIj5cclxuICAgICAgICAgIDwhLS0gSGVhcnQgSWNvbiBTVkcgLS0+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTkgMTRjMS40OS0xLjQ2IDMtMy4yMSAzLTUuNUE1LjUgNS41IDAgMCAwIDE2LjUgM2MtMS43NiAwLTMgLjUtNC41IDItMS41LTEuNS0yLjc0LTItNC41LTJBNS41IDUuNSAwIDAgMCAyIDguNWMwIDIuMyAxLjUgNC4wNSAzIDUuNWw3IDdaXCI+XHJcbiAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0V2lzaGxpc3RJdGVtc0NvdW50XCI+e3tnZXRXaXNobGlzdEl0ZW1zQ291bnR9fTwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGljb24tY29udGFpbmVyIGNhcnQtaWNvblwiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XHJcbiAgICAgICAgICA8IS0tIFNob3BwaW5nIEJhZyBJY29uIFNWRyAtLT5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAyIDMgNnYxNGEyIDIgMCAwIDAgMiAyaDE0YTIgMiAwIDAgMCAyLTJWNmwtMy00WlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0zIDZoMThcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYgMTBhNCA0IDAgMCAxLTggMFwiPjwvcGF0aD5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0Q2FydEl0ZW1zQ291bnRcIj57e2dldENhcnRJdGVtc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBpY29uLWNvbnRhaW5lciBib29raW5ncy1pY29uXCIgKGNsaWNrKT1cImdvVG9Cb29raW5ncygpXCI+XHJcbiAgICAgICAgICA8IS0tIEJvb2tpbmdzIChjYWxlbmRhci1jaGVjaykgSWNvbiBTVkcgLS0+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI3LjVcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTIuNVwiIHJ4PVwiMlwiPjwvcmVjdD5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk04IDcuNVY2YTQgNCAwIDAgMSA4IDB2MS41XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTkuMiAxMy42bDEuOSAxLjkgMy43LTMuOVwiPjwvcGF0aD5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudC1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0Qm9va2luZ0l0ZW1zQ291bnRcIj57e2dldEJvb2tpbmdJdGVtc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc2VhcmNoLWV4cGFuZFwiXHJcbiAgICAgICAgICAqbmdJZj1cImRhdGE/LnN0eWxlcz8ubWVudVR5cGUgPT09ICdEUk9QRE9XTl9NRU5VJyAmJiBzY3JlZW5XaWR0aCA+IDQ3NSAmJiBjb250ZW50Py5zaG93U2VhcmNoQmFyICYmIHNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2hcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1zZWFyY2gtYm94XCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIyMVwiIHgyPVwiMTYuNjVcIiB5Mj1cIjE2LjY1XCI+PC9saW5lPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yLi4uXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWFyY2hQcm9kdWN0cygpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VhcmNoLWNsb3NlXCIgKGNsaWNrKT1cInNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2ggPSBmYWxzZVwiIGFyaWEtbGFiZWw9XCJDbG9zZSBzZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjE4XCIgeTE9XCI2XCIgeDI9XCI2XCIgeTI9XCIxOFwiPjwvbGluZT5cclxuICAgICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjZcIiB4Mj1cIjE4XCIgeTI9XCIxOFwiPjwvbGluZT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIiAqbmdJZj1cInNjcmVlbldpZHRoIDw9IDQ3NSAmJiBjb250ZW50Py5zaG93U2VhcmNoQmFyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmFyXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGl0ZW1cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoUHJvZHVjdHMoKVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pY29uIHNlYXJjaC1idG5cIiAoY2xpY2spPVwic2VhcmNoUHJvZHVjdHMoKVwiPlxyXG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIyMVwiIHgyPVwiMTYuNjVcIiB5Mj1cIjE2LjY1XCI+PC9saW5lPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2hlYWRlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZnVsbFNjcmVlbk1lbnVUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZnMtbWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtYmdcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1oZWFkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtbG9nb1wiIChjbGljayk9XCJjbG9zZUZ1bGxTY3JlZW5NZW51KClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVMb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZzLW1lbnUtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VGdWxsU2NyZWVuTWVudSgpXCIgYXJpYS1sYWJlbD1cIkNsb3NlIG1lbnVcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBNYWluIGxldmVsIC0tPlxyXG4gICAgICA8bmF2IGNsYXNzPVwiZnMtbWVudS1uYXZcIiAqbmdJZj1cIiFzZWxlY3RlZE1vYmlsZU1lbnVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvb3Rlck1lbnVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy1tZW51LWxpbmtcIiBbY2xhc3MuYWN0aXZlXT1cImlzTmF2SXRlbUFjdGl2ZShpdGVtKVwiIFtzdHlsZS4tLWFjY2VudF09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRnVsbFNjcmVlbkl0ZW1DbGljayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtbWVudS1kb3RcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJhY2NlbnRDb2xvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLW1lbnUtdGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBpdGVtPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJmcy1tZW51LWFycm93XCIgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmF2PlxyXG5cclxuICAgICAgPCEtLSBTdWJtZW51IChkcmlsbC1pbikgbGV2ZWwgLS0+XHJcbiAgICAgIDxuYXYgY2xhc3M9XCJmcy1tZW51LW5hdiBmcy1tZW51LXN1YlwiICpuZ0lmPVwic2VsZWN0ZWRNb2JpbGVNZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZzLW1lbnUtYmFja1wiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9sZWZ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBzZWxlY3RlZE1vYmlsZU1lbnU/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkTW9iaWxlTWVudT8uY2hpbGRyZW5cIj5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiZnMtbWVudS1saW5rXCIgW3N0eWxlLi0tYWNjZW50XT1cImFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShjaGlsZCk7IGNsb3NlRnVsbFNjcmVlbk1lbnUoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLW1lbnUtdGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57eyBjaGlsZD8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImZzLW1lbnUtc3VibGlua1wiICpuZ0Zvcj1cImxldCBzdWIgb2YgY2hpbGQ/LmNoaWxkcmVuXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgY2xvc2VGdWxsU2NyZWVuTWVudSgpXCI+e3sgc3ViPy5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvYT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uYXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWN0YVwiICpuZ0lmPVwiYWN0aW9uPy5kaXNwbGF5ICYmIGFjdGlvbj8uYnV0dG9ucz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9ucyB8IHNsaWNlOjA6MVwiPlxyXG4gICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxyXG4gICAgICAgICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lzRnVsbFdpZHRoXT1cInRydWVcIj48L2FwcC1idXR0b24tZWxlbWVudD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYm90dG9tU3RpY2t5TmF2VGVtcGxhdGU+XHJcbiAgPG5hdiBjbGFzcz1cImJzLW5hdlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJzLW5hdi1iYXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJicy10YWJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBib3R0b21TdGlja3lOYXZJdGVtczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBhY3RpdmVCb3R0b21OYXZJbmRleFwiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoaXRlbSlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJzLXRhYi1sYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJpID09PSBhY3RpdmVCb3R0b21OYXZJbmRleCA/IGFjY2VudENvbG9yIDogbnVsbFwiXHJcbiAgICAgICAgICBbc2ltcG9Db2xvcl09XCJpID09PSBhY3RpdmVCb3R0b21OYXZJbmRleCA/IG51bGwgOiBzaW1wb0NvbG9yXCI+e3sgaXRlbT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uYXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
726
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9oZWFkZXItc2VjdGlvbi9oZWFkZXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2hlYWRlci1zZWN0aW9uL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBRXRILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUVwRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7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QXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsVUFBVTt3QkFDVixPQUFPO3dCQUNQLDRCQUE0Qjt3QkFDNUIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3FCQUNwQjs7MEJBNENFLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTt5Q0F6Q1QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUN1QixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkEyTjVCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFBMQVRGT1JNX0lELCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSGVhZGVyQ29udGVudE1vZGVsLCBIZWFkZXJTZWN0aW9uTW9kZWwsIEhlYWRlclN0eWxlTW9kZWwgfSBmcm9tICcuL2hlYWRlci1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTaW1wb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3NpbXBvLWJ1dHRvbi9zaW1wby1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9uYXZiYXItYnV0dG9uLWVsZW1lbnQvbmF2YmFyLWJ1dHRvbi1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL292ZXJsYXktZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3N0aWNreS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBHZW5kZXJJY29uIH0gZnJvbSAnLi4vLi4vcGlwZXMvZ2VuZGVyLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcbmltcG9ydCB7IENhcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lY29tbWVyY2Uvc2VjdGlvbnMvY2FydC9jYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJvb2tpbmdDYXJ0R3JvdXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvYm9va2luZy1jYXJ0LWdyb3Vwcy9ib29raW5nLWNhcnQtZ3JvdXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlYWRlcl9UeXBlLCBNb2JpbGVfTWVudV9UeXBlLCBQcm9kdWN0Q2FyZFRoZW1lLCBTdGlja3lfVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IE1vdmluZ1RleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWN0aW9ucy9tb3ZpbmctdGV4dC9tb3ZpbmctdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3VudGRvd25CYW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zZWN0aW9ucy9jb3VudGRvd24tYmFubmVyL2NvdW50ZG93bi1iYW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW92aW5nVGV4dE1vZGFsIH0gZnJvbSAnLi4vbW92aW5nLXRleHQvbW92aW5nLXRleHQubW9kYWwnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFNvY2lhSWNvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMT0NBTF9TVE9SQUdFIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZS50b2tlbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VMaWtlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS1saWtlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1oZWFkZXItc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaW1wb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIEdlbmRlckljb24sXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTmF2YmFyQnV0dG9uRWxlbWVudENvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBPdmVybGF5RGlyZWN0aXZlLFxyXG4gICAgU2ltcG9TdGlja3lEaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgTW92aW5nVGV4dENvbXBvbmVudCxcclxuICAgIENvdW50ZG93bkJhbm5lckNvbXBvbmVudCxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBTb2NpYUljb25zQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGVhZGVyLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlclNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZGF0YT86IEhlYWRlclNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50OiBhbnk7XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBWaWV3Q2hpbGQoXCJjaGlsZENvbnRhaW5lclwiKSBjaGlsZENvbnRhaW5lcjogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ21vYmlsZU9mZmNhbnZhcycpIG1vYmlsZU9mZmNhbnZhcz86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcclxuICBwcml2YXRlIHF1ZXJ5UGFyYW1TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBpc0Jyb3dzZXIgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNPZmZjYW52YXNPcGVuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzRnVsbFNjcmVlbk1lbnVPcGVuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBvZmZjYW52YXNTaG93bkhhbmRsZXI/OiAoKSA9PiB2b2lkO1xyXG4gIHByaXZhdGUgb2ZmY2FudmFzSGlkZGVuSGFuZGxlcj86ICgpID0+IHZvaWQ7XHJcbiAgY29udGVudD86IEhlYWRlckNvbnRlbnRNb2RlbCB8IGFueTtcclxuICBzdHlsZT86IEhlYWRlclN0eWxlTW9kZWxcclxuICBhY3Rpb24/OiBBY3Rpb25Nb2RlbFxyXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgdGhlbWUgPSBQcm9kdWN0Q2FyZFRoZW1lO1xyXG4gIEhlYWRlclN0eWxpbmcgPSBIZWFkZXJfVHlwZTtcclxuICBTdGlja3lUeXBlID0gU3RpY2t5X1R5cGU7XHJcbiAgTW9iaWxlTWVudVR5cGUgPSBNb2JpbGVfTWVudV9UeXBlO1xyXG4gIHBhcmVudEhlaWdodDogbnVtYmVyID0gNzA7XHJcbiAgY3VycmVudFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBwbGFjZWhvbGRlckluZGV4OiBudW1iZXIgPSAwO1xyXG4gIGFuaW1hdGVQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2Nyb2xsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9ldmVudFN1YnNjcmliZXI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxfU1RPUkFHRSkgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlTGlrZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcclxuICAgIC8vIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XHJcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlQWxsRGF0YSgpO1xyXG4gIH1cclxuICBzZWFyY2hDaGFuZ2VUaW1lb3V0OiBhbnk7XHJcbiAgd2FpdEJlZm9yZVNlYXJjaCgpIHtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaENoYW5nZVRpbWVvdXQpO1xyXG4gICAgdGhpcy5zZWFyY2hDaGFuZ2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUHJvZHVjdHMoKTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG4gIHNlYXJjaFByb2R1Y3RzKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IHNlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0IH0gfSk7XHJcbiAgfVxyXG4gIGdvVG9GYXYoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93aXNobGlzdCddKTtcclxuICB9XHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGU/LmxheW91dCB9IGFzIExheU91dE1vZGVsO1xyXG4gIH1cclxuICBnb1RvQWNjb3VudChyZWRpcmVjdFRvOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHJlZGlyZWN0VG8gPT0gJ1NJR05VUCcgfHwgcmVkaXJlY3RUbyA9PSAnTE9HSU4nKVxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10sIHsgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RUbzogcmVkaXJlY3RUbyB9IH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxvZ2dlZEluKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0VXNlck5hbWUoKSB7XHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICByZXR1cm4gdXNlcj8uY29udGFjdC5uYW1lO1xyXG4gIH1cclxuICAvLyBjaGFuZ2VQbGFjZWhvbGRlcigpIHtcclxuICAvLyAgIHRoaXMuYW5pbWF0ZVBsYWNlaG9sZGVyID0gdHJ1ZTtcclxuXHJcbiAgLy8gICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAvLyAgICAgdGhpcy5wbGFjZWhvbGRlckluZGV4ID1cclxuICAvLyAgICAgICAodGhpcy5wbGFjZWhvbGRlckluZGV4ICsgMSkgJVxyXG4gIC8vICAgICAgIHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdC5sZW5ndGg7XHJcblxyXG4gIC8vICAgICB0aGlzLmN1cnJlbnRQbGFjZWhvbGRlciA9XHJcbiAgLy8gICAgICAgdGhpcy5zdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0W3RoaXMucGxhY2Vob2xkZXJJbmRleF0udmFsdWU7XHJcblxyXG4gIC8vICAgICB0aGlzLmFuaW1hdGVQbGFjZWhvbGRlciA9IGZhbHNlO1xyXG4gIC8vICAgfSwgNDAwKTsgLy8gYW5pbWF0aW9uIGR1cmF0aW9uXHJcbiAgLy8gfVxyXG4gIGdvVG9XaXNobGlzdCgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dpc2hsaXN0J10pO1xyXG4gIH1cclxuICBnb1RvQ2FydCgpIHtcclxuICAgIGlmIChmYWxzZSkge1xyXG4gICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKENhcnRDb21wb25lbnQsIHsgd2lkdGg6ICcyOHZ3JywgcGFuZWxDbGFzczogJ3NpZGVwYW5lbC1jbGFzcycsIGRhdGE6IHsgd2luZG93OiB0cnVlIH0gfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jYXJ0J10pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnb1RvQm9va2luZ3MoKSB7XHJcbiAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEJvb2tpbmdDYXJ0R3JvdXBzQ29tcG9uZW50LCB7IHBhbmVsQ2xhc3M6ICdzaWRlcGFuZWwtY2xhc3MnIH0pO1xyXG4gIH1cclxuICBhcHBseUZpbHRlcih2YWx1ZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHZhbHVlID0gdmFsdWVbMF0/LnJlcGxhY2UoXCIgXCIsIFwiX1wiKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH0gfSk7XHJcbiAgfVxyXG4gIG1vdmluZ1RleHQ/OiBNb3ZpbmdUZXh0TW9kYWxcclxuICB0b1Nob3dJbkpld2VsbGVyeTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgZGlmZmVyOiBhbnk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmFjdGlvbiA9IHRoaXMuZGF0YT8uYWN0aW9uO1xyXG4gICAgdGhpcy5xdWVyeVBhcmFtU3Vic2NyaXB0aW9uID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHFQYXJhbSkgPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICB9KVxyXG4gICAgdGhpcy5nZXRNZW51SXRlbXMoKTtcclxuICAgIC8vIHRoaXMuZXZlbnRTZXJ2aWNlLmFjdGl2YXRlU21hcnRTZWFyY2guc3Vic2NyaWJlKChyZXM6IGJvb2xlYW4pID0+IHtcclxuICAgIC8vICAgaWYgKHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdD8ubGVuZ3RoID4gMCAmJiByZXMpIHtcclxuICAgIC8vICAgICB0aGlzLmN1cnJlbnRQbGFjZWhvbGRlciA9IHRoaXMuc3R5bGU/LnNlYXJjaEJhclBsYWNlaG9sZGVyTGlzdFswXS52YWx1ZTtcclxuXHJcbiAgICAvLyAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcigpO1xyXG4gICAgLy8gICAgIH0sIDMwMDApO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KVxyXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyICYmICh3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdjYXJhdGxhbmUnKSB8fCB3aW5kb3cubG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdvcnJhJykpKSB7XHJcbiAgICAgIHRoaXMudG9TaG93SW5KZXdlbGxlcnkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNFY29tbWVyY2VXZWJzaXRlKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q2F0ZWdvcmllc0hlYWRlcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XHJcbiAgICB0aGlzLmNoZWNrUGFzc2Jvb2tBcHAoKTtcclxuICAgIHRoaXMuY2hlY2tBcHBvaW50bWVudEFwcCgpO1xyXG5cclxuICAgIHRoaXMuX2V2ZW50U3Vic2NyaWJlciA9IHRoaXMuX2V2ZW50U2VydmljZS5tZW51TGlzdC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXRNZW51SXRlbXMoKTtcclxuICAgIH0pXHJcbiAgICBcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5jaGlsZENvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCAmJiB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGVQYXJlbnRIZWlnaHRDYWxjdWxhdGlvbigpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuY2hpbGRDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVQYXJlbnRIZWlnaHRDYWxjdWxhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vYmlsZU9mZmNhbnZhcz8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBvZmZjYW52YXNFbGVtZW50ID0gdGhpcy5tb2JpbGVPZmZjYW52YXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgdGhpcy5vZmZjYW52YXNTaG93bkhhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc09mZmNhbnZhc09wZW4gPSB0cnVlO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLm9mZmNhbnZhc0hpZGRlbkhhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc09mZmNhbnZhc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdvQmFja01vYmlsZU1lbnUoKTtcclxuICAgICAgfTtcclxuICAgICAgb2ZmY2FudmFzRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzaG93bi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcclxuICAgICAgb2ZmY2FudmFzRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdoaWRkZW4uYnMub2ZmY2FudmFzJywgdGhpcy5vZmZjYW52YXNIaWRkZW5IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzQnJvd3NlciAmJiB0aGlzLnJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZV9NZW51X1R5cGUuQk9UVE9NX1NUSUNLWSkge1xyXG4gICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1ib3R0b20tbmF2LWhlaWdodCcsICdjYWxjKDY0cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICAgIHRoaXMucXVlcnlQYXJhbVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xyXG4gICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tYm90dG9tLW5hdi1oZWlnaHQnKTtcclxuICAgIGlmICh0aGlzLm1vYmlsZU9mZmNhbnZhcz8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBvZmZjYW52YXNFbGVtZW50ID0gdGhpcy5tb2JpbGVPZmZjYW52YXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgaWYgKHRoaXMub2ZmY2FudmFzU2hvd25IYW5kbGVyKSB7XHJcbiAgICAgICAgb2ZmY2FudmFzRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzaG93bi5icy5vZmZjYW52YXMnLCB0aGlzLm9mZmNhbnZhc1Nob3duSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5vZmZjYW52YXNIaWRkZW5IYW5kbGVyKSB7XHJcbiAgICAgICAgb2ZmY2FudmFzRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdoaWRkZW4uYnMub2ZmY2FudmFzJywgdGhpcy5vZmZjYW52YXNIaWRkZW5IYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwYXNzYm9va0FwcFN0YXR1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoZWNrUGFzc2Jvb2tBcHAoKSB7XHJcbiAgICBjb25zdCBkZXRhaWxzID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ2JJZCcpO1xyXG4gICAgY29uc3QgYklkID0gZGV0YWlscyA/PyAnJztcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuUGFzc2Jvb2tBcHBTdGF0dXMoYklkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXM/LmRhdGEpIHtcclxuICAgICAgICB0aGlzLnBhc3Nib29rQXBwU3RhdHVzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIC8qKiBMb2dpbi9zaWdudXAgZm9yIGEgbm9uLWVjb21tZXJjZSBoZWFkZXIgYWxzbyBuZWVkcyB0byBzaG93IGZvciBhIGJ1c2luZXNzIHdpdGggb25seSB0aGVcclxuICAgKiBBcHBvaW50bWVudCBhcHAgaW5zdGFsbGVkIChib29raW5nIG5vdyByZXF1aXJlcyBsb2dpbikgLSBtaXJyb3JzIGNoZWNrUGFzc2Jvb2tBcHAoKSBleGFjdGx5LFxyXG4gICAqIHJldXNpbmcgdGhlIHNhbWUgZ2VuZXJpYyBcImlzIGFwcCBpbnN0YWxsZWRcIiBjaGVjayBhbHJlYWR5IHVzZWQgZm9yIFBhc3Nib29rLiAqL1xyXG4gIGFwcG9pbnRtZW50QXBwU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hlY2tBcHBvaW50bWVudEFwcCgpIHtcclxuICAgIGNvbnN0IGRldGFpbHMgPSB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnYklkJyk7XHJcbiAgICBjb25zdCBiSWQgPSBkZXRhaWxzID8/ICcnO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5jaGVja0FwcEluc3RhbGxlZChiSWQsICdBcHBvaW50bWVudCcpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcz8uZGF0YSkge1xyXG4gICAgICAgIHRoaXMuYXBwb2ludG1lbnRBcHBTdGF0dXMgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzaG93U2VhcmNoQmFyTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzTmF2YmFyT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgdGhpcy5zY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCk7XHJcbiAgfVxyXG4gIGhlaWdodDogYW55XHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVBhcmVudEhlaWdodENhbGN1bGF0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5nZXRQYXJlbnRIZWlnaHQoKSwgMCk7XHJcbiAgfVxyXG5cclxuICBvblN0aWNreVNjcm9sbGVkKHNjcm9sbGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzU2Nyb2xsZWQgPSBzY3JvbGxlZDtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudEhlaWdodCgpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMuY2hpbGRDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jaGlsZENvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgcmVjdEhlaWdodCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgdGhpcy5oZWlnaHQgPSBNYXRoLmNlaWwocmVjdEhlaWdodCB8fCBlbGVtZW50Lm9mZnNldEhlaWdodCB8fCBlbGVtZW50LnNjcm9sbEhlaWdodCB8fCAwKTtcclxuICAgIGlmICh0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UpXHJcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmVsZW1lbnRIZWlnaHQuZW1pdCh0aGlzLmhlaWdodClcclxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS1tYXJnaW4tdG9wXCIsIHRoaXMuaGVpZ2h0ICsgXCJweFwiKVxyXG4gIH1cclxuICBnZXQgZ2V0RHJvcGRvd25MaW5rcygpIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcyAmJiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZSlcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udGVudD8uZWNvbWxpbmtzKTtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcbiAgZ2V0IGlzRWNvbW1lcmNlV2Vic2l0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnR5cGUgPT0gXCJFX0NPTU1FUkNFXCI7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuaXNOYXZiYXJPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzaG93RWRpdG9yczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzaG93RWRpdFRhYnMoaXNTaG93OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xyXG4gIH1cclxuICBnb1RvSG9tZSgpIHtcclxuICAgIGlmICh0aGlzLnN0b3JhZ2UuZ2V0SXRlbSgnUkVRVUVTVF9GUk9NJykgPT09ICdFX0NPTU1FUkNFJylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnJ10pO1xyXG4gIH1cclxuICBnZXQgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSgpOiBNb2JpbGVfTWVudV9UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5tb2JpbGVNZW51VHlwZSA/PyBNb2JpbGVfTWVudV9UeXBlLkhBTUJVUkdFUjtcclxuICB9XHJcblxyXG4gIGdldCBib3R0b21TdGlja3lOYXZJdGVtcygpOiBhbnlbXSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZm9vdGVyTWVudT8ubGVuZ3RoID8gdGhpcy5mb290ZXJNZW51IDogKHRoaXMuY29udGVudD8ubmF2YmFyQnV0dG9ucyA/PyBbXSk7XHJcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0uc2hvd0hlYWRlciAhPT0gZmFsc2UpLnNsaWNlKDAsIDUpO1xyXG4gIH1cclxuXHJcbiAgaXNOYXZJdGVtQWN0aXZlKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdXJsID0gKHRoaXMucm91dGVyLnVybCB8fCAnJykuc3BsaXQoJz8nKVswXTtcclxuICAgIGNvbnN0IHRhcmdldCA9IChpdGVtPy5yZWRpcmVjdGlvblVybCA/PyBpdGVtPy5yZWRpcmVjdGlvbmFsVXJsID8/ICcnKS5zcGxpdCgnPycpWzBdO1xyXG4gICAgaWYgKGl0ZW0/LnR5cGUgPT09ICdIT01FX1BBR0UnKSByZXR1cm4gdXJsID09PSAnJyB8fCB1cmwgPT09ICcvJztcclxuICAgIGlmICghdGFyZ2V0KSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdXJsID09PSB0YXJnZXQgfHwgKHRhcmdldCAhPT0gJy8nICYmIHVybC5zdGFydHNXaXRoKHRhcmdldCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZUJvdHRvbU5hdkluZGV4KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHRoaXMuYm90dG9tU3RpY2t5TmF2SXRlbXMgfHwgW10pLmZpbmRJbmRleCgoaXQ6IGFueSkgPT4gdGhpcy5pc05hdkl0ZW1BY3RpdmUoaXQpKTtcclxuICB9XHJcblxyXG4gIG9wZW5GdWxsU2NyZWVuTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGdWxsU2NyZWVuTWVudU9wZW4gPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZE1vYmlsZU1lbnUgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcclxuICB9XHJcblxyXG4gIGNsb3NlRnVsbFNjcmVlbk1lbnUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRnVsbFNjcmVlbk1lbnVPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9iaWxlTWVudSA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZ1bGwtc2NyZWVuIG1lbnUgaXRlbSB0YXA6IGRyaWxsIGludG8gc3VibWVudSBpZiBpdCBoYXMgY2hpbGRyZW4sIGVsc2UgbmF2aWdhdGUgKyBjbG9zZS4gKi9cclxuICBvbkZ1bGxTY3JlZW5JdGVtQ2xpY2soaXRlbTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnNlbGVjdE1vYmlsZU1lbnUoaXRlbSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlZGlyZWN0aW9uc09mTWVudShpdGVtKTtcclxuICAgICAgdGhpcy5jbG9zZUZ1bGxTY3JlZW5NZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzb2x2ZWRTdGlja3lUeXBlKCk6IFN0aWNreV9UeXBlIHtcclxuICAgIGlmICh0aGlzLnN0eWxlPy5zdGlja3lUeXBlKSByZXR1cm4gdGhpcy5zdHlsZS5zdGlja3lUeXBlO1xyXG4gICAgaWYgKHRoaXMuc3R5bGU/LnN0aWNreSAmJiB0aGlzLnN0eWxlPy5zaHJpbmtPblNjcm9sbCkgcmV0dXJuIFN0aWNreV9UeXBlLlNIUklOS19PTl9TQ1JPTEw7XHJcbiAgICBpZiAodGhpcy5zdHlsZT8uc3RpY2t5KSByZXR1cm4gU3RpY2t5X1R5cGUuU1RJQ0tZO1xyXG4gICAgcmV0dXJuIFN0aWNreV9UeXBlLk5PTkU7XHJcbiAgfVxyXG4gIGdldCBpc0hlYWRlclN0aWNreSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc29sdmVkU3RpY2t5VHlwZSAhPT0gU3RpY2t5X1R5cGUuTk9ORTtcclxuICB9XHJcbiAgZ2V0IGJhY2tncm91bmRJbmZvKCkge1xyXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lfVHlwZS5UUkFOU1BBUkVOVF9PTl9TQ1JPTEwgJiYgIXRoaXMuaXNTY3JvbGxlZCAmJiAhdGhpcy5pc01vYmlsZSkge1xyXG4gICAgICByZXR1cm4geyAuLi50aGlzLmRhdGE/LnN0eWxlcy5iYWNrZ3JvdW5kLCBjb2xvcjogJ3RyYW5zcGFyZW50Jywgc2hvd0ltYWdlOiBmYWxzZSB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiAhdGhpcy5pc1Njcm9sbGVkICYmICF0aGlzLmlzTW9iaWxlXHJcbiAgICAgID8geyAuLi50aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQgfVxyXG4gICAgICA6IHsgLi4udGhpcy5kYXRhPy5zdHlsZXMuYmFja2dyb3VuZCB9O1xyXG4gIH1cclxuICBnZXQgc2ltcG9Db2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2VcclxuICAgICAgPyAodGhpcy5pc1Njcm9sbGVkID8gdGhpcy5zdHlsZT8uYmFja2dyb3VuZC5jb2xvciA6IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yKVxyXG4gICAgICA6IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yO1xyXG4gIH1cclxuICBnZXQgYWNjZW50Q29sb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlXHJcbiAgICAgID8gKHRoaXMuaXNTY3JvbGxlZCA/IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXHJcbiAgICAgIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3I7XHJcbiAgfVxyXG4gIGdldCBpc1RyYW5zcGFyZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubmV4dENvbXBvbmVudD8uc3R5bGVzPy5tZXJnZSAmJiAhdGhpcy5pc1Njcm9sbGVkO1xyXG4gIH1cclxuICByZWRpcmVjdFRvKGNvbnRlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmJ1dHRvblJlZGlyZWN0aW9uLmVtaXQoeyBkYXRhOiBjb250ZW50IH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd1NlYXJjaEJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgaXNDb21wb25lbnRNZXJnZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FuU2hvd01vYmlsZUZvb3RlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZTtcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRSZXNlcnZlTW9iaWxlSGVhZGVyU3BhY2UoKSB7XHJcbiAgICBjb25zdCB0eXBlID0gdGhpcy5yZXNvbHZlZFN0aWNreVR5cGU7XHJcbiAgICBpZiAodHlwZSA9PT0gU3RpY2t5X1R5cGUuTk9ORSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKHR5cGUgPT09IFN0aWNreV9UeXBlLlNUSUNLWV9BRlRFUl9TQ1JPTEwpIHJldHVybiB0aGlzLmlzU2Nyb2xsZWQ7XHJcbiAgICBpZiAodGhpcy5pc01vYmlsZSkgcmV0dXJuICF0aGlzLnNob3VsZFNob3dNb2JpbGVDYXRlZ29yeUhlYWRlcjtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZFNob3dNb2JpbGVDYXRlZ29yeUhlYWRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmlzRWNvbW1lcmNlV2Vic2l0ZSAmJiB0aGlzLmlzTW9iaWxlICYmIHRoaXMuc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKCkgJiYgKHRoaXMuY2F0ZWdvcnlMaXN0Py5sZW5ndGggPz8gMCkgPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dNb2JpbGVIb21lSWNvbigpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB0cnVlO1xyXG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICByZXR1cm4gISh1cmwuaW5jbHVkZXMoXCJjYXJ0XCIpIHx8IHVybC5pbmNsdWRlcyhcInByb2ZpbGVcIikgfHwgdXJsLmluY2x1ZGVzKFwid2lzaGxpc3RcIikpO1xyXG4gIH1cclxuICBnZXQgZ2V0Q2FydEl0ZW1zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFRvdGFsQ2FydEl0ZW1zO1xyXG4gIH1cclxuICBnZXQgZ2V0V2lzaGxpc3RJdGVtc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbFdpc2hsaXN0SXRlbXM7XHJcbiAgfVxyXG4gIGdldCBnZXRCb29raW5nSXRlbXNDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VG90YWxCb29raW5nSXRlbXM7XHJcbiAgfVxyXG4gIGdldCBnZXRDYXJ0VG90YWxBbW91bnQoKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldENhcnRBbW91bnQoKSk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDYXJ0QW1vdW50KCk7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDYXJ0VG90YWxBbW91bnQ7XHJcbiAgfVxyXG4gIGdldCBnZXRIZWFkZXJTdHlsaW5nKCk6IEhlYWRlcl9UeXBlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnN0eWxlPy5zdHlsaW5nO1xyXG4gIH1cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDQ3NTtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDQ3NTtcclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gIH1cclxuICBnZXRWYWx1ZXMob2JqZWN0OiBhbnkpOiB1bmtub3duW10ge1xyXG4gICAgY29uc3Qga2V5czogdW5rbm93bltdID0gW107XHJcbiAgICBvYmplY3QuZm9yRWFjaCgoa2V5OiBhbnkpID0+IGtleXMucHVzaChPYmplY3QudmFsdWVzKGtleSkpKTtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldChrZXlzKV07XHJcbiAgfVxyXG4gIGdldCB1c2VyR2VuZGVyKCkge1xyXG4gICAgY29uc3QgdXNlciA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyKTtcclxuICAgIGlmICh1c2VyKVxyXG4gICAgICByZXR1cm4gdXNlci5nZW5kZXI7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBnZXROYXZiYXJCdXR0b24oKSB7XHJcbiAgICBsZXQgY291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgcGFnZTogYW55W10gPSBbXVxyXG4gICAgZm9yIChsZXQgYnV0dG9uIG9mIHRoaXMuY29udGVudD8ubmF2YmFyQnV0dG9ucyB8fCBbXSkge1xyXG4gICAgICBpZiAoW1xyXG4gICAgICAgICdIb21lJyxcclxuICAgICAgICAnUHJvZHVjdCBEZXNjcmlwdGlvbicsXHJcbiAgICAgICAgJ0NhcnQnLFxyXG4gICAgICAgICdXaXNobGlzdCcsXHJcbiAgICAgICAgJ1VzZXIgcHJvZmlsZScsXHJcbiAgICAgICAgJ1Byb2R1Y3QgTGlzdCcsXHJcbiAgICAgICAgJ0NoZWNrb3V0JyxcclxuICAgICAgICAnQXV0aCcsXHJcbiAgICAgICAgJ1BheW1lbnQgVmVyaWZpY2F0aW9uJyxcclxuICAgICAgICAnTGlzdCBDYXRlZ29yeScsXHJcbiAgICAgICAgJ0F1dGhlbnRpY2F0aW9uIFJlcXVpcmVkJ1xyXG4gICAgICBdLmluY2x1ZGVzKGJ1dHRvbi5sYWJlbCkpIHtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvdW50IDwgNiAmJiBidXR0b24uc2hvd0hlYWRlcikge1xyXG4gICAgICAgIHBhZ2UucHVzaChidXR0b24pO1xyXG4gICAgICAgIGNvdW50Kys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFnZTtcclxuICB9XHJcblxyXG5cclxuICAvLyBpc1Njcm9sbGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxyXG4gIC8vIG9uV2luZG93U2Nyb2xsKCkge1xyXG4gIC8vICAgdGhpcy5pc1Njcm9sbGVkID0gIHdpbmRvdy5zY3JvbGxZID4gNTA7XHJcbiAgLy8gfVxyXG4gIHNldENvbG9yKCkge1xyXG4gICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQodGhpcy5iYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KHRoaXMuYmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3Iuc2xpY2UoMywgNSksIDE2KTtcclxuICAgIGNvbnN0IGIgPSBwYXJzZUludCh0aGlzLmJhY2tncm91bmRJbmZvLmFjY2VudENvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xyXG5cclxuICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xyXG4gIH1cclxuICBzaG93TGlzdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgZHJvcGRvd25MZWZ0OiBudW1iZXIgPSAwO1xyXG4gIGRyb3Bkb3duVG9wOiBudW1iZXIgPSAwO1xyXG4gIHNob3dDb2xsZWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhdGVnb3J5TGlzdDogYW55O1xyXG4gIGNvbGxlY3Rpb25MaXN0OiBhbnk7XHJcbiAgc2VsZWN0ZWRDYXRlZ29yeTogYW55O1xyXG4gIHN0b3JlQXZhaWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnZXRDYXRlZ29yaWVzSGVhZGVyKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRDYXRlZ29yaWVzSGVhZGVyRGF0YSgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zdG9yZUF2YWlhYmxlID0gcmVzPy5kYXRhPy5zdG9yZUF2YWlsYWJsZTtcclxuICAgICAgdGhpcy5zY2hlbWVBdmFpbGFibGUgPSByZXM/LmRhdGE/LnNjaGVtZXNBdmFpbGFibGVcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSByZXM/LmRhdGE/LmNhdGVnb3J5RGV0YWlscztcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uTGlzdCA9IHJlcz8uZGF0YT8uaXRlbUNvbGxlY3Rpb25zO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlc3RyaWN0SW5QYWdlcygpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcclxuICAgIGxldCBwYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcclxuICAgIGlmIChwYXRobmFtZS5pbmNsdWRlcygnL2xvZ2luJykpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHJlc3RyaWN0Q2FydEJhckluUGFnZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gZmFsc2U7XHJcbiAgICBsZXQgcGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XHJcbiAgICBpZiAocGF0aG5hbWUuaW5jbHVkZXMoJy9sb2dpbicpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKCcvY2FydCcpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKCcvd2lzaGxpc3QnKSB8fCBwYXRobmFtZS5pbmNsdWRlcygnL2RldGFpbHMnKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgc2NoZW1lQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2VcclxuICBnb1RvU3RvcmVzKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc3RvcmUtbGlzdCddKTtcclxuICB9XHJcbiAgT2JqZWN0ID0gT2JqZWN0XHJcbiAgYXBwbHlGaWx0ZXJUb0xpc3Qob2JqOiBhbnksIHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gJ3ByaWNlJykge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeT8uY2F0ZWdvcnlOYW1lLCBtaW5QcmljZTogb2JqPy5taW5QcmljZSwgbWF4UHJpY2U6IG9iaj8ubWF4UHJpY2UsIHBhZ2VObzogMSB9IH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGUgPT0gJ2NvbGxlY3Rpb24nKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xpc3QnXSwgeyBxdWVyeVBhcmFtczogeyBjYXRlZ29yeTogdGhpcy5zZWxlY3RlZENhdGVnb3J5Py5jYXRlZ29yeU5hbWUsIGNvbGxlY3Rpb25zOiBvYmo/LnJlcGxhY2VBbGwoXCIgXCIsICdfJyksIHBhZ2VObzogMSB9IH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGUgPT0gJ2NvbGxlY3Rpb25zJykge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHsgcXVlcnlQYXJhbXM6IHsgY29sbGVjdGlvbnM6IG9iaj8ucmVwbGFjZUFsbChcIiBcIiwgJ18nKSwgcGFnZU5vOiAxIH0gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJCeUNhdGVnb3J5KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbGlzdCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnk/LmNhdGVnb3J5TmFtZSwgcGFnZU5vOiAxIH0gfSk7XHJcbiAgfVxyXG5cclxuICBzaG93UGluY29kZUlucHV0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGluY29kZTogYW55ID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSA/PyBcIlwiO1xyXG4gIGdldFBpbmNvZGU6IHN0cmluZyA9IHRoaXMuc3RvcmFnZS5nZXRJdGVtKCdwaW5jb2RlJykgfHwgJyc7XHJcbiAgcGluRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZXRQaW5jb2RlKCkge1xyXG4gICAgaWYgKHRoaXMucGluY29kZSAmJiB0aGlzLnBpbmNvZGU/Lmxlbmd0aCA9PSA2KSB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKCdwaW5jb2RlJywgdGhpcy5waW5jb2RlKTtcclxuICAgICAgdGhpcy5nZXRQaW5jb2RlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSB8fCAnJztcclxuICAgICAgdGhpcy5waW5FcnJvciA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5waW5FcnJvciA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TG9naW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ29Ub1NjaGVtZXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zY2hlbWUtZW5yb2xsbWVudCddKTtcclxuICB9XHJcblxyXG4gIGdldFJHQkEoYmdDb2xvcjogYW55LCBvcGFjaXR5OiBudW1iZXIpOiBhbnkge1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7b3BhY2l0eSAvIDEwMH0pYDtcclxuICB9XHJcblxyXG4gIHNob3dDYXRlZ29yeU1vYmlsZUhlYWRlcigpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IHBhdGhuYW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xyXG4gICAgcmV0dXJuIHBhdGhuYW1lLmluY2x1ZGVzKCcvbGlzdCcpIHx8IHBhdGhuYW1lID09PSAnLycgfHwgcGF0aG5hbWUgPT09ICcnO1xyXG4gIH1cclxuXHJcbiAgYnlNZXRhbEFuZFN0b25lOiBhbnkgPSBbXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdHb2xkJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvMjJrdC1Hb2xkLTJ4LnBuZycsXHJcbiAgICAgIHN0YXR1czogZmFsc2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdEaWFtb25kJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvRGlhbW9uZC0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnUGVhcmwnLFxyXG4gICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLmNhcmF0bGFuZS5jb20vc3RhdGljL2ltYWdlcy9kaXNjb3ZlcnkvcmVzcG9uc2l2ZS1oYW1idXJnZXItbWVudS9wcm9kdWN0cy1hbmQtc2VydmljZXMvcGVhcmwtMXgucG5nJyxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ0dlbXN0b25lJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvR2Vtc3RvbmUtMXgucG5nJyxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1llbGxvdyBHb2xkJyxcclxuICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvd2ViL21lbnUvWWVsbG93LUdvbGQtMXgucG5nJyxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogJ1Jvc2UgR29sZCcsXHJcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L1Jvc2UtR29sZC0xeC5wbmcnLFxyXG4gICAgICBzdGF0dXM6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnV2hpdGUgR29sZCcsXHJcbiAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4uY2FyYXRsYW5lLmNvbS9tZWRpYS9zdGF0aWMvaW1hZ2VzL3dlYi9tZW51L3doaXRlLUdvbGQtMXgucG5nJyxcclxuICAgICAgc3RhdHVzOiBmYWxzZVxyXG4gICAgfVxyXG4gIF1cclxuICBuYXZpZ2F0ZUxvZ2luKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSlcclxuICB9XHJcblxyXG4gIG1lZ2FNZW51OiBhbnkgPSBbXVxyXG4gIGZvb3Rlck1lbnU6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkTW9iaWxlTWVudTogYW55ID0gbnVsbDtcclxuXHJcbiAgc2VsZWN0TW9iaWxlTWVudShpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNb2JpbGVNZW51ID0gaXRlbTtcclxuICB9XHJcblxyXG4gIGdvQmFja01vYmlsZU1lbnUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTW9iaWxlTWVudSA9IG51bGw7XHJcbiAgfVxyXG4gIGdldE1lbnVJdGVtcygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0TWVudUl0ZW1zKHRoaXMuY29udGVudD8ubWVudUlkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgIHRoaXMubWVnYU1lbnUgPSByZXMuZGF0YS5kYXRhIHx8IFtdO1xyXG4gICAgICBjb25zdCBtZW51SXRlbXMgPSByZXM/LmRhdGE/LmRhdGEgfHwgW107XHJcbiAgICAgIHRoaXMuZm9vdGVyTWVudSA9IG1lbnVJdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5ub3JtYWxpemVNZWdhTWVudUl0ZW0oaXRlbSkpO1xyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBub3JtYWxpemVNZWdhTWVudUl0ZW0oaXRlbTogYW55KSB7XHJcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmlzQXJyYXkoaXRlbT8uY2hpbGRyZW4pID8gaXRlbS5jaGlsZHJlbiA6IFtdO1xyXG4gICAgY29uc3QgcGFnZXMgPSBjaGlsZHJlblxyXG4gICAgICAubWFwKChjaGlsZDogYW55KSA9PiAoe1xyXG4gICAgICAgIGxhYmVsOiBjaGlsZD8ubGFiZWwgPz8gJycsXHJcbiAgICAgICAgcGFnZUlkOiBjaGlsZD8ucGFnZUlkID8/IGNoaWxkPy5pZCA/PyAnJyxcclxuICAgICAgICByZWRpcmVjdGlvblVybDogY2hpbGQ/LnJlZGlyZWN0aW9uVXJsID8/IGNoaWxkPy5yZWRpcmVjdGlvbmFsVXJsID8/ICcnXHJcbiAgICAgIH0pKVxyXG4gICAgICAuZmlsdGVyKChjaGlsZDogYW55KSA9PiBjaGlsZC5sYWJlbCB8fCBjaGlsZC5yZWRpcmVjdGlvblVybCk7XHJcbiAgICBjb25zdCBmb2xkZXIgPSBpdGVtPy5mb2xkZXIgPz8gKHBhZ2VzLmxlbmd0aCA/IHsgZm9sZGVySWQ6IGl0ZW0/LmZvbGRlcklkID8/IGl0ZW0/LmlkID8/ICcnLCBwYWdlcyB9IDogdW5kZWZpbmVkKTtcclxuXHJcbiAgICByZXR1cm4geyBcclxuICAgICAgLi4uaXRlbSwgXHJcbiAgICAgIHNob3dIZWFkZXI6IGl0ZW0/LnNob3dIZWFkZXIgPz8gdHJ1ZSxcclxuICAgICAgcmVkaXJlY3Rpb25Vcmw6IGl0ZW0/LnJlZGlyZWN0aW9uVXJsID8/IGl0ZW0/LnJlZGlyZWN0aW9uYWxVcmwgPz8gJycsXHJcbiAgICAgIGZvbGRlclxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0aW9uc09mTWVudShlbGU6IGFueSkge1xyXG4gICAgaWYgKGVsZT8udHlwZSA9PT0gJ0hPTUVfUEFHRScpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZWRpcmVjdFVybCA9IGVsZT8ucmVkaXJlY3Rpb25hbFVybCA/PyBlbGU/LnJlZGlyZWN0aW9uVXJsID8/ICcnO1xyXG4gICAgaWYgKCFyZWRpcmVjdFVybCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFVybCk7XHJcbiAgfVxyXG5cclxuICBvcGVuU3VibWVudUNoaWxkOiBhbnkgPSBudWxsO1xyXG5cclxuICB0b2dnbGVTdWJNZW51KGNoaWxkOiBhbnksIGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5vcGVuU3VibWVudUNoaWxkID09PSBjaGlsZCkge1xyXG4gICAgICB0aGlzLm9wZW5TdWJtZW51Q2hpbGQgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuU3VibWVudUNoaWxkID0gY2hpbGQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oZXZlbnQ/OiBFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCAhZXZlbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICAgIGlmICghdGFyZ2V0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bl9tZW51LCAuZHJvcGRvd25fbWVudV9zdGF0aWMnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgICBpZiAoIWNvbnRhaW5lcikgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgIHRoaXMuZHJvcGRvd25MZWZ0ID0gdGFyZ2V0UmVjdC5sZWZ0IC0gY29udGFpbmVyUmVjdC5sZWZ0O1xyXG4gICAgdGhpcy5kcm9wZG93blRvcCA9IHRhcmdldFJlY3QuYm90dG9tIC0gY29udGFpbmVyUmVjdC50b3A7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVDaGlsZE1lbnUoZWxlOiBhbnksIGV2ZW50PzogRXZlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlRHJvcGRvd25Qb3NpdGlvbihldmVudCk7XHJcbiAgICBpZiAodGhpcy5zaG93TGlzdCAmJiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPT09IGVsZS5jaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldENoaWxkTWVudShlbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2hpbGRNZW51KGVsZTogYW55KSB7XHJcbiAgICB0aGlzLm9wZW5TdWJtZW51Q2hpbGQgPSBudWxsO1xyXG4gICAgaWYgKGVsZS5jaGlsZHJlbiAmJiBlbGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNob3dMaXN0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gZWxlLmNoaWxkcmVuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNlY3Rpb24gW2lkXT1cImRhdGE/LmlkXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgdy0xMDBcIiBbY2xhc3Muei1pbmRleC0xMF09XCIhaXNIZWFkZXJTdGlja3kgJiYgaXNDb21wb25lbnRNZXJnZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwidy0xMDBcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW25nQ2xhc3NdPVwieydib3gtc2hhZG93JzogaXNFY29tbWVyY2VXZWJzaXRlfVwiXHJcbiAgICBbY2xhc3MubWFyZ2luLWJvdHRvbV09XCJzaG91bGRSZXNlcnZlTW9iaWxlSGVhZGVyU3BhY2VcIj5cclxuICAgIDxkaXYgW3NpbXBvU3RpY2t5XT1cInJlc29sdmVkU3RpY2t5VHlwZVwiIChzdGlja3lTY3JvbGxlZCk9XCJvblN0aWNreVNjcm9sbGVkKCRldmVudClcIlxyXG4gICAgICBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCIgY2xhc3M9XCJ3LTEwMFwiICNjaGlsZENvbnRhaW5lclxyXG4gICAgICBbY2F0ZWdvcnlIZWFkZXJdPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGNhdGVnb3J5TGlzdD8ubGVuZ3RoID4gMCAmJiAhaXNNb2JpbGUgJiYgIXNob3dDYXRlZ29yeU1vYmlsZUhlYWRlcigpXCJcclxuICAgICAgc2ltcG9Ib3ZlciBbY2xhc3MuYmctdHJhbnNwYXJlbnRdPVwiaXNDb21wb25lbnRNZXJnZWQgJiYgIWlzU2Nyb2xsZWQgJiYgIWlzTW9iaWxlXCJcclxuICAgICAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgW2lkXT1cImRhdGE/LmlkXCIgW2NsYXNzLmRyb3Bkb3duLW9wZW5dPVwic2hvd0xpc3RcIj5cclxuICAgICAgPCEtLSBbY2xhc3MuYmFja2dyb3VuZC1wb3NpdGlvbl09XCJpc0NvbXBvbmVudE1lcmdlZCAmJiBiYWNrZ3JvdW5kSW5mbz8uc2hvd0ltYWdlXCIgLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uaGVhZGxpbmU/LmRpc3BsYXlcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNpbXBvLW1vdmluZy10ZXh0IFtlZGl0XT1cImZhbHNlXCIgW2RlbGV0ZV09XCJmYWxzZVwiIFtkYXRhXT1cImRhdGFcIj48L3NpbXBvLW1vdmluZy10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uY291bnRkb3duPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgPHNpbXBvLWNvdW50ZG93bi1iYW5uZXIgW2RhdGFdPVwiZGF0YT8uY29udGVudD8uY291bnRkb3duQmFubmVyXCIgW2VkaXRdPVwiZmFsc2VcIiBbZGVsZXRlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtpc0hlYWRlclJlbmRlcmVyXT1cInRydWVcIj5cclxuICAgICAgICA8L3NpbXBvLWNvdW50ZG93bi1iYW5uZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMScgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgIFtzaW1wb092ZXJsYXldPVwiYmFja2dyb3VuZEluZm9cIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzTGF5b3V0XCIgW2lzSGVhZGVyXT1cInRydWVcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXIxVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjInICYmICFpc0Vjb21tZXJjZVdlYnNpdGVcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCJcclxuICAgICAgICBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICBbY2xhc3MucC0yXT1cInJlc29sdmVkU3RpY2t5VHlwZSA9PT0gU3RpY2t5VHlwZS5TSFJJTktfT05fU0NST0xMICYmIGlzU2Nyb2xsZWQgJiYgIWVkaXRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyMlRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIzJyAmJiAhaXNFY29tbWVyY2VXZWJzaXRlXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgICAgICAgW3NpbXBvT3ZlcmxheV09XCJiYWNrZ3JvdW5kSW5mb1wiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbaXNIZWFkZXJdPVwidHJ1ZVwiIFtpZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgW2NsYXNzLnAtMl09XCJyZXNvbHZlZFN0aWNreVR5cGUgPT09IFN0aWNreVR5cGUuU0hSSU5LX09OX1NDUk9MTCAmJiBpc1Njcm9sbGVkICYmICFlZGl0XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcjNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyNCcgJiYgIWlzRWNvbW1lcmNlV2Vic2l0ZVwiIFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgIFtzaW1wb092ZXJsYXldPVwiYmFja2dyb3VuZEluZm9cIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzTGF5b3V0XCIgW2lzSGVhZGVyXT1cInRydWVcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgIFtjbGFzcy5wLTJdPVwicmVzb2x2ZWRTdGlja3lUeXBlID09PSBTdGlja3lUeXBlLlNIUklOS19PTl9TQ1JPTEwgJiYgaXNTY3JvbGxlZCAmJiAhZWRpdFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXI0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IFtzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9PdmVybGF5XT1cImJhY2tncm91bmRJbmZvXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIlxyXG4gICAgICAgIFtzaW1wb0xheW91dF09XCJzY3JlZW5XaWR0aCA+IDQ3NSA/IHN0eWxlc0xheW91dCA6IHVuZGVmaW5lZFwiIFtpc0hlYWRlcl09XCJ0cnVlXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21tZXJjZV9oZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBteC0yIG1iLTIgdy05NlwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgaXNFY29tbWVyY2VXZWJzaXRlICYmICFyZXN0cmljdENhcnRCYXJJblBhZ2VzKClcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBpdGVtc1wiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJ3YWl0QmVmb3JlU2VhcmNoKClcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXInIDogJzFweCBzb2xpZCAnICsgYWNjZW50Q29sb3J9XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaC0xMDBcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IHN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID8gICBhY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArIHN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciArICcgMCUnICsgJywnICsgc3R5bGU/LmJhY2tncm91bmQ/LnNlY29uZGFyeUFjY2VudENvbG9yICsnIDEwMCUnICsgJyknfVwiXHJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCI+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZSAmJiAhaXNNb2JpbGUgJiYgZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ01FR0FfTUVOVSdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2F0ZWdvcmllc0hlYWRlclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgc2hvd0NhdGVnb3J5TW9iaWxlSGVhZGVyKCkgJiYgZGF0YT8uc3R5bGVzPy5lbmFibGVIZWFkZXJDYXJvdXNlbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlQ2F0ZWdvcnlIZWFkZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgaXNNb2JpbGUgJiYgIXJlc3RyaWN0SW5QYWdlcygpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlRm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTiAmJiBpc0Z1bGxTY3JlZW5NZW51T3BlblwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZ1bGxTY3JlZW5NZW51VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkJPVFRPTV9TVElDS1kgJiYgaXNNb2JpbGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib3R0b21TdGlja3lOYXZUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRlcjFUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxyXG4gICAgPGRpdiBbY2xhc3Mudy0xNV09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoID4gNDc1XCJcclxuICAgICAgW2NsYXNzLnctNDBdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA8PSA0NzVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCIhaXNNb2JpbGVcIiBbc3R5bGUud2lkdGguJV09XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyA5NCA6ICcnXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNFY29tbWVyY2VXZWJzaXRlID8gZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiIWlzRWNvbW1lcmNlV2Vic2l0ZSA/IGJ1dHRvbnNUZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBIQU1CVVJHRVIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiXHJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5tZW51PC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRlcjJUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyMVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCIhaXNNb2JpbGVcIiBbc3R5bGUud2lkdGguJV09XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyA5MyA6ICcnXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNFY29tbWVyY2VXZWJzaXRlID8gZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBIQU1CVVJHRVIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0xNSBhbGlnbi1jZW50ZXJcIiAqbmdJZj1cImlzTW9iaWxlICYmIHJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiXHJcbiAgICAgIGRhdGEtYnMtdG9nZ2xlPVwib2ZmY2FudmFzXCIgZGF0YS1icy10YXJnZXQ9XCIjb2ZmY2FudmFzUmlnaHRcIiBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+bWVudTwvbWF0LWljb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWNvbVByb2ZpbGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBGVUxMIFNDUkVFTiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIiAoY2xpY2spPVwib3BlbkZ1bGxTY3JlZW5NZW51KClcIj5tZW51PC9tYXQtaWNvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIiBbY2xhc3Mudy0xNV09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoID4gNDc1XCJcclxuICAgICAgW2NsYXNzLnctNDBdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA8PSA0NzVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvZ29TZWN0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNoZWFkZXIzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlcjFcIj5cclxuICAgIDxkaXYgW2NsYXNzLnctMTVdPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiXHJcbiAgICAgIFtjbGFzcy53LTQwXT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPD0gNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Vjb21tZXJjZVdlYnNpdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZUxpbmtzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0Vjb21tZXJjZVdlYnNpdGUgPyBlY29tbWVyY2VCdXR0b25zVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIEhBTUJVUkdFUiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcclxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cImdvQmFja01vYmlsZU1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKGNsaWNrKT1cIm9wZW5GdWxsU2NyZWVuTWVudSgpXCI+bWVudTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaGVhZGVyNFRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXIxXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIhaXNFY29tbWVyY2VXZWJzaXRlID8gYnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNFY29tbWVyY2VXZWJzaXRlID8gZWNvbW1lcmNlQnV0dG9uc1RlbXBsYXRlIDogbnVsbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGlua3NUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj4gPC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tIEhBTUJVUkdFUiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTE1IGFsaWduLWNlbnRlclwiICpuZ0lmPVwiaXNNb2JpbGUgJiYgcmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuSEFNQlVSR0VSXCJcclxuICAgICAgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiIGFyaWEtY29udHJvbHM9XCJvZmZjYW52YXNSaWdodFwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5tZW51PC9tYXQtaWNvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlY29tUHJvZmlsZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIEZVTEwgU0NSRUVOIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMTUgYWxpZ24tY2VudGVyXCIgKm5nSWY9XCJpc01vYmlsZSAmJiByZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5GVUxMX1NDUkVFTlwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIChjbGljayk9XCJvcGVuRnVsbFNjcmVlbk1lbnUoKVwiPm1lbnU8L21hdC1pY29uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVjb21Qcm9maWxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiIFtjbGFzcy53LTE1XT1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgc2NyZWVuV2lkdGggPiA0NzVcIlxyXG4gICAgICBbY2xhc3Mudy00MF09XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIHNjcmVlbldpZHRoIDw9IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2dvU2VjdGlvblRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24tY2VudGVyIGN1cnNvci1wb2ludGVyIG14LTFcIlxyXG4gICAgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplICsgODBcIiBsb2FkaW5nPVwibGF6eVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1zbWFsbFwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICA8Yj57e2NvbnRlbnQ/LnNpdGVOYW1lPy52YWx1ZX19PC9iPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cImdvVG9Ib21lKClcIj4gLS0+XHJcbiAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIiBbc3R5bGUud2lkdGguJV09XCJzY3JlZW5XaWR0aCA+IDQ3NSB8fCAoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgPCA1MCA/IGNvbnRlbnQ/LmxvZ28/LnNpemUgOiBcclxuICAgICgoY29udGVudD8ubG9nbz8uc2l6ZSA+PSA2MCAgJiYgY29udGVudD8ubG9nbz8uc2l6ZSA8PSAxMDApID8gKDIwKSA6ICgoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgLSAxMCkpXCJcclxuICAgIFtjbGFzcy53LTc1XT1cInNjcmVlbldpZHRoIDwgNDc1XCIgbG9hZGluZz1cImxhenlcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiXHJcbiAgICAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIj5cclxuICA8IS0tIDwvZGl2PiAtLT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGFnZUxpbmtzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1uYXYgcGFnZUxpbmtzXCIgW25nQ2xhc3NdPVwieydhbGlnbi1pdGVtcy1jZW50ZXInIDogIWlzTW9iaWxlfVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNjcmVlbldpZHRoID4gNDc1OyBlbHNlIHBhZ2VMaW5rc0RlZmF1bHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duX21lbnVfc3RhdGljIHctMTAwXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJzaG93TGlzdCA9IGZhbHNlOyBzZWxlY3RlZENhdGVnb3J5ID0gbnVsbDsgb3BlblN1Ym1lbnVDaGlsZCA9IG51bGxcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtbmF2LXNjcm9sbFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLW5hdlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvb3Rlck1lbnVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtdGFiLXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkZC10YWJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kZC10YWItYWN0aXZlXT1cInNob3dMaXN0ICYmIHNlbGVjdGVkQ2F0ZWdvcnkgPT09IGl0ZW0/LmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHRvZ2dsZUNoaWxkTWVudShpdGVtLCAkZXZlbnQpIDogcmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57e2l0ZW0/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzA3MSAxNC43MDcxQzEyLjMxNjYgMTUuMDk3NiAxMS42ODM0IDE1LjA5NzYgMTEuMjkyOSAxNC43MDcxTDYuMjkyODkgOS43MDcxMUM1LjkwMjM3IDkuMzE2NTggNS45MDIzNyA4LjY4MzQyIDYuMjkyODkgOC4yOTI4OUM2LjY4MzQyIDcuOTAyMzcgNy4zMTY1OCA3LjkwMjM3IDcuNzA3MTEgOC4yOTI4OUwxMiAxMi41ODU4TDE2LjI5MjkgOC4yOTI4OUMxNi42ODM0IDcuOTAyMzcgMTcuMzE2NiA3LjkwMjM3IDE3LjcwNzEgOC4yOTI4OUMxOC4wOTc2IDguNjgzNDIgMTguMDk3NiA5LjMxNjU4IDE3LjcwNzEgOS43MDcxMUwxMi43MDcxIDE0LjcwNzFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMwMDAwMDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtcGFuZWxcIiAqbmdJZj1cInNob3dMaXN0ICYmIHNlbGVjdGVkQ2F0ZWdvcnk/Lmxlbmd0aFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCIgW3N0eWxlLnRvcC5weF09XCJkcm9wZG93blRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRkLWl0ZW1cIiAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRDYXRlZ29yeVwiIFtjbGFzcy5vcGVuLXN1Ym1lbnVdPVwib3BlblN1Ym1lbnVDaGlsZCA9PT0gY2hpbGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiIWNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoID8gcmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKSA6IHRvZ2dsZVN1Yk1lbnUoY2hpbGQsICRldmVudClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7Y2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGQtaXRlbS1hcnJvd1wiICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGhcIj4mIzgyNTA7PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRkLXN1Ym1lbnVcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoICYmIG9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1zdWItaXRlbVwiICpuZ0Zvcj1cImxldCBzdWIgb2YgY2hpbGQ/LmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoc3ViKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+e3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNwYWdlTGlua3NEZWZhdWx0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvd3NcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvb3Rlck1lbnVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pXCIgZGF0YS1icy1kaXNtaXNzPVwib2ZmY2FudmFzXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmF3ZXItcm93LWxhYmVsXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7IGl0ZW0/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYXdlci1yb3ctY2hldnJvblwiICpuZ0lmPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc1RlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5IG10LTBcIiBbbmdDbGFzc109XCJ7J3ctMTAwIGp1c3RpZnktc3BhY2UtYXJvdW5kJzogaXNNb2JpbGV9XCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICA8YXBwLWJ1dHRvbi1lbGVtZW50IFtidXR0b25Db250ZW50XT1cImJ1dHRvbi5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxyXG4gICAgICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiPjwvYXBwLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN0YXRpY19sb2dpbl9idG4gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlTG9naW4oKVwiICpuZ0lmPVwiKHBhc3Nib29rQXBwU3RhdHVzIHx8IGFwcG9pbnRtZW50QXBwU3RhdHVzKSAmJiAhbG9nZ2VkSW5cIlxyXG4gICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5cclxuICAgICAgICA8bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPlxyXG4gICAgICAgIExvZ2luXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiA4cHg7IGN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiXHJcbiAgICAgICAgKm5nSWY9XCJsb2dnZWRJbiAmJiAhaXNNb2JpbGVcIj5cclxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJ1c2VyR2VuZGVyIHwgZ2VuZGVySWNvblwiIHN0eWxlPVwiaGVpZ2h0OiAyN3B4O1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxidXR0b24gY2xhc3M9XCJtb2JpbGVMb2dpbkJ1dHRvblwiICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGlzTW9iaWxlICYmICFsb2dnZWRJblwiIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ0xPR0lOJylcIj5cclxuICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICA8cGF0aFxyXG4gICAgICAgIGQ9XCJNMTIgMTNDMTQuNzYxNCAxMyAxNyAxMC43NjE0IDE3IDhDMTcgNS4yMzg1OCAxNC43NjE0IDMgMTIgM0M5LjIzODU4IDMgNyA1LjIzODU4IDcgOEM3IDEwLjc2MTQgOS4yMzg1OCAxMyAxMiAxM1pcIlxyXG4gICAgICAgIHN0cm9rZT1cIiMzMzMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgIDxwYXRoXHJcbiAgICAgICAgZD1cIk0yMCAyMUMyMCAxOC44NzgzIDE5LjE1NzEgMTYuODQzNCAxNy42NTY5IDE1LjM0MzFDMTYuMTU2NiAxMy44NDI5IDE0LjEyMTcgMTMgMTIgMTNDOS44NzgyNyAxMyA3Ljg0MzQ0IDEzLjg0MjkgNi4zNDMxNSAxNS4zNDMxQzQuODQyODUgMTYuODQzNCA0IDE4Ljg3ODMgNCAyMVwiXHJcbiAgICAgICAgc3Ryb2tlPVwiIzMzMzMzM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgIDwvc3ZnPlxyXG4gICAgJm5ic3A7XHJcbiAgICBMb2dpbjwvYnV0dG9uPlxyXG4gIDxidXR0b24gY2xhc3M9XCJtb2JpbGVMb2dpbkJ1dHRvblwiICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlICYmIGlzTW9iaWxlICYmIGxvZ2dlZEluXCIgW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcclxuICAgIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCI+XHJcbiAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgPHBhdGhcclxuICAgICAgICBkPVwiTTEyIDEzQzE0Ljc2MTQgMTMgMTcgMTAuNzYxNCAxNyA4QzE3IDUuMjM4NTggMTQuNzYxNCAzIDEyIDNDOS4yMzg1OCAzIDcgNS4yMzg1OCA3IDhDNyAxMC43NjE0IDkuMjM4NTggMTMgMTIgMTNaXCJcclxuICAgICAgICBzdHJva2U9XCIjMzMzMzMzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+PC9wYXRoPlxyXG4gICAgICA8cGF0aFxyXG4gICAgICAgIGQ9XCJNMjAgMjFDMjAgMTguODc4MyAxOS4xNTcxIDE2Ljg0MzQgMTcuNjU2OSAxNS4zNDMxQzE2LjE1NjYgMTMuODQyOSAxNC4xMjE3IDEzIDEyIDEzQzkuODc4MjcgMTMgNy44NDM0NCAxMy44NDI5IDYuMzQzMTUgMTUuMzQzMUM0Ljg0Mjg1IDE2Ljg0MzQgNCAxOC44NzgzIDQgMjFcIlxyXG4gICAgICAgIHN0cm9rZT1cIiMzMzMzMzNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICA8L3N2Zz5cclxuICAgICZuYnNwO0FjY291bnQ8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlRm9vdGVyVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImNhcnQtZm9vdGVyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiYWNjZW50Q29sb3JcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50ID4gMCAmJiAhcmVzdHJpY3RDYXJ0QmFySW5QYWdlcygpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTMgcHktMiBoLTEwMCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY291bnQgZnctYm9sZFwiPlxyXG4gICAgICAgIHt7IGdldENhcnRJdGVtc0NvdW50ID8/IDMgfX0ge3sgZ2V0Q2FydEl0ZW1zQ291bnQgPiAxID8gJ2l0ZW1zJyA6ICdpdGVtJyB9fSBpbiBjYXJ0XHJcbiAgICAgICAgPCEtLSBUb3RhbCA6IOKCuXt7IGdldENhcnRUb3RhbEFtb3VudCB9fSAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGZ3LWJvbGRcIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxyXG4gICAgICAgIFZpZXcgQ2FydCA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vYmlsZS1mb290ZXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+SG9tZTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5ncmlkX29uPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlNob3A8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJnb1RvV2lzaGxpc3QoKVwiPlxyXG4gICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmZhdm9yaXRlX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5XaXNobGlzdDwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiPnt7Z2V0V2lzaGxpc3RJdGVtc0NvdW50fX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImljb25zIHBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrKT1cImdvVG9DYXJ0KClcIj5cclxuICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5zaG9wcGluZ19jYXJ0PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPkNhcnQ8L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjYXJ0SXRlbUNvdW50XCIgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiPnt7Z2V0Q2FydEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Vjb21tZXJjZUJ1dHRvbnNUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWJldHdlZW4gcHItMCBkLWZsZXggcG9zaXRpb24tcmVsYXRpdmUgZ2FwLTEwIHctMTAwXCJcclxuICAgIFtzdHlsZS5mbGV4RGlyZWN0aW9uXT1cInN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicgfHwgc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0JyA/ICdyb3ctcmV2ZXJzZScgOiAnJ1wiPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwic2VhcmNoLWljb25cIiAoY2xpY2spPVwic2hvd1NlYXJjaEJhciA9ICFzaG93U2VhcmNoQmFyXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInctNzUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAhcGFzc2Jvb2tBcHBTdGF0dXN9XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTc1IG1sLTJcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIEZvciBJdGVtc1wiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJ3YWl0QmVmb3JlU2VhcmNoKClcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXInIDogJzFweCBzb2xpZCAnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yfVwiXHJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cImFuaW1hdGVkLXBsYWNlaG9sZGVyIHBvc2l0aW9uLWFic29sdXRlXCIgXHJcbiAgICAgICAgICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzdHlsZT8uc2VhcmNoQmFyUGxhY2Vob2xkZXJMaXN0Lmxlbmd0aCA+IDEgJiYgc3R5bGU/LnNtYXJ0U2VhcmNoQmFyXCI+XHJcbiAgICAgICAgICB7eyBjdXJyZW50UGxhY2Vob2xkZXIgfX1cclxuICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImgtMTAwXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCcgOiBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT09ICdTb2xpZCcgPyAgIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciA6ICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJyArICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArICBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcclxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uY29sb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMSBweC0zIGItMSBzdG9yZXNcIlxyXG4gICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwiZ29Ub1NjaGVtZXMoKVwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0UkdCQShiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgLCAxMClcIiAqbmdJZj1cInBhc3Nib29rQXBwU3RhdHVzXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcclxuICAgICAgICAgIHhtbG5zOnN2Z2pzPVwiaHR0cDovL3N2Z2pzLmRldi9zdmdqc1wiIGlkPVwiTGF5ZXJfMlwiIHZpZXdCb3g9XCIwIDAgNjAgNjBcIiBkYXRhLW5hbWU9XCJMYXllciAyXCIgd2lkdGg9XCIzMFwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIzMFwiIHZlcnNpb249XCIxLjFcIj5cclxuICAgICAgICAgIDxnIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB0cmFuc2Zvcm09XCJtYXRyaXgoMSwwLDAsMSwwLDApXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTQuMzYgNDYuNjYuNTEtOS44Ni0xMS45My03LjE2LTEuOTQgOC40M3pcIiBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwibTE3LjE3IDM4LjFzMC0uMDIuMDItLjAzYzAgMCAwLS4wMi4wMi0uMDIuMDQtLjA1LjEtLjA4LjE1LS4xMS4wMi0uMDEuMDMtLjAzLjA1LS4wNGw0LjY2LTEuOTRoLS4wMnMtMS44Ny0xLjIxLTEuODctMS4yMWwtMy4xOCAxLjU3LTEuMDcuNTMtLjQzIDguMzIgMS41OC02LjljLjAxLS4wNi4wNS0uMTIuMDktLjE3elwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTkuMTQgMzQuMDgtNi4yNy00LjA0Yy0uMTktLjEyLS4yOC0uMzQtLjIzLS41NmwxLjA4LTQuNzItOS45NiA0LjE0IDExLjY4IDcuMDF6XCJcclxuICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIm0zMC45MyA0Ni40Mi0uNSA5Ljc5IDMyLjU3LTE4LjY3LTEuMjEtNi40LTIzLjE2IDExLjQ2elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwibTE2IDQ3LjY1IDEzLjM4IDguNTguNDktOS44Ni0xMS45My03LjE3elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJtMjcuODUgMzkuMzRzMCAwLS4wMSAwYzAgMCAwIDAtLjAxIDAtLjA4LjA0LS4xNi4wNi0uMjQuMDYtLjA1IDAtLjEtLjAzLS4xNS0uMDQtLjA0LS4wMS0uMDgtLjAxLS4xMS0uMDNsLTQuMTYtMi42Ny00LjM3IDEuODIgMTEuNjggNy4wMSAzMC40LTE1LjA1LTEwLjcxLTMuODgtMjIuMjggMTIuNzh6XCJcclxuICAgICAgICAgICAgICBbYXR0ci5maWxsXT1cImFjY2VudENvbG9yXCIgZmlsbC1vcGFjaXR5PVwiMVwiIGRhdGEtb3JpZ2luYWwtY29sb3I9XCIjMDAwMDAwZmZcIiBzdHJva2U9XCJub25lXCJcclxuICAgICAgICAgICAgICBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwibTI4LjI2IDM2LjAxLS4xIDEuOTMgMzIuNTgtMTguNjktMS4yMi02LjM5LTMwLjg2IDE1LjI4elwiIFthdHRyLmZpbGxdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCJcclxuICAgICAgICAgICAgICBmaWxsLW9wYWNpdHk9XCIxXCIgZGF0YS1vcmlnaW5hbC1jb2xvcj1cIiMwMDAwMDBmZlwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utb3BhY2l0eT1cIjFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwibTI3LjYxIDI4LjA5LTExLjkzLTcuMTYtMS45NCA4LjQzIDEzLjM2IDguNTh6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJtNTguNTcgMTIuMTUtMTIuMS00LjM4LTI5Ljk3IDEyLjQzIDExLjY4IDd6XCIgW2F0dHIuZmlsbF09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIGZpbGwtb3BhY2l0eT1cIjFcIiBkYXRhLW9yaWdpbmFsLWNvbG9yPVwiIzAwMDAwMGZmXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS1vcGFjaXR5PVwiMVwiIC8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGRpdiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIj5TY2hlbWVzPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3RvcmVzIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgcHktMiBweC0zXCIgKGNsaWNrKT1cImdvVG9TdG9yZXMoKVwiXHJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwic3RvcmVBdmFpYWJsZVwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0UkdCQShiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgLCAxMClcIj5cclxuICAgICAgICA8bWF0LWljb24gW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiPnN0b3JlPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwiYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yXCI+U3RvcmVzPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBpbi10ZXh0XCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7c2hvd0xvZ2luID0gZmFsc2VcIlxyXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAqbmdJZj1cIiFnZXRQaW5jb2RlXCI+RW50ZXJcclxuICAgICAgICBQaW5jb2RlXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGluLXRleHRcIiAobW91c2VlbnRlcik9XCJzaG93UGluY29kZUlucHV0ID0gdHJ1ZTs7c2hvd0xvZ2luID0gZmFsc2VcIlxyXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAqbmdJZj1cImdldFBpbmNvZGUgJiYgZ2V0UGluY29kZS5sZW5ndGggPT0gNlwiPnt7XCJEZWxpdmVyaW5nIHRvOiBcIiArXHJcbiAgICAgICAgZ2V0UGluY29kZX19PC9kaXY+XHJcblxyXG4gICAgICA8IS0tIChtb3VzZWxlYXZlKT1cInNob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGluY29kZS1jb250YWluZXIgcC0zXCIgKm5nSWY9XCJzaG93UGluY29kZUlucHV0XCIgKG1vdXNlbGVhdmUpPVwic2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgbWItMiBmLTE4IGZ3LWJvbGRcIj5cclxuICAgICAgICAgIFlvdXIgUElOIENvZGUgdW5sb2Nrc1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB0ZXh0LWNlbnRlciBmLTE0IHBpbmNvZGUtdGV4dFwiPlxyXG4gICAgICAgICAgRmFzdGVzdCBkZWxpdmVyeSBkYXRlLCBUcnktYXQtSG9tZSBhdmFpbGFiaWxpdHksXHJcbiAgICAgICAgICBOZWFyZXN0IHN0b3JlIGFuZCBJbi1zdG9yZSBkZXNpZ24hXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG10LTIgYnItNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB4LTNcIlxyXG4gICAgICAgICAgW2NsYXNzLmVycm9yLWJvcmRlcl09XCJwaW5FcnJvclwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlBpbmNvZGVcIiBhcmlhLWxhYmVsPVwiUGluY29kZVwiIFsobmdNb2RlbCldPVwicGluY29kZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidy03NSBwLTBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1zdWItdGV4dCBmLTExIHctMjUgdGV4dC1lbmQgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic2V0UGluY29kZSgpXCI+U1VCTUlUPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXQtMiBmLTExXCIgKm5nSWY9XCJwaW5FcnJvclwiPlxyXG4gICAgICAgICAgUGxlYXNlIGVudGVyIGEgdmFsaWQgcGluY29kZVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9GYXYoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBbc2ltcG9Db2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uY29sb3JcIj5mYXZvcml0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKScgLCAnY29sb3InIDogc2V0Q29sb3IoKX1cIj5cclxuICAgICAgICAgIHt7Z2V0V2lzaGxpc3RJdGVtc0NvdW50fX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJnYXA6IDVweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPnNob3BwaW5nX2NhcnQ8L21hdC1pY29uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBjYXJ0SXRlbUNvdW50XCIgKm5nSWY9XCJnZXRDYXJ0SXRlbXNDb3VudFwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKScgLCAnY29sb3InIDogc2V0Q29sb3IoKX1cIj5cclxuICAgICAgICAgIHt7Z2V0Q2FydEl0ZW1zQ291bnR9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxvZ2luQnV0dG9uXCIgKm5nSWY9XCIhbG9nZ2VkSW5cIiAobW91c2VlbnRlcik9XCJzaG93TG9naW4gPSB0cnVlO3Nob3dQaW5jb2RlSW5wdXQgPSBmYWxzZVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIyN1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk0xMi4xMiAxMi43OEMxMi4wNSAxMi43NyAxMS45NiAxMi43NyAxMS44OCAxMi43OEMxMC4xMiAxMi43MiA4LjcxOTk3IDExLjI4IDguNzE5OTcgOS41MDk5OEM4LjcxOTk3IDcuNjk5OTggMTAuMTggNi4yMjk5OCAxMiA2LjIyOTk4QzEzLjgxIDYuMjI5OTggMTUuMjggNy42OTk5OCAxNS4yOCA5LjUwOTk4QzE1LjI3IDExLjI4IDEzLjg4IDEyLjcyIDEyLjEyIDEyLjc4WlwiXHJcbiAgICAgICAgICAgIGZpbGw9XCIjMjkyRDMyXCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTE4Ljc0IDE5LjM4QzE2Ljk2IDIxLjAxIDE0LjYgMjIgMTIgMjJDOS40MDAwMSAyMiA3LjA0MDAxIDIxLjAxIDUuMjYwMDEgMTkuMzhDNS4zNjAwMSAxOC40NCA1Ljk2MDAxIDE3LjUyIDcuMDMwMDEgMTYuOEM5Ljc3MDAxIDE0Ljk4IDE0LjI1IDE0Ljk4IDE2Ljk3IDE2LjhDMTguMDQgMTcuNTIgMTguNjQgMTguNDQgMTguNzQgMTkuMzhaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiMyOTJEMzJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMTIgMjJDMTcuNTIyOCAyMiAyMiAxNy41MjI4IDIyIDEyQzIyIDYuNDc3MTUgMTcuNTIyOCAyIDEyIDJDNi40NzcxNSAyIDIgNi40NzcxNSAyIDEyQzIgMTcuNTIyOCA2LjQ3NzE1IDIyIDEyIDIyWlwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPiA8IS0tIDxzcGFuIGNsYXNzPVwiZnctbm9ybWFsIGZzLTZcIiBbc2ltcG9Db2xvcl09XCJhY2NlbnRDb2xvclwiPkxvZ2luPC9zcGFuPiAtLT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gKG1vdXNlbGVhdmUpPVwic2hvd0xvZ2luID0gZmFsc2VcIiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd0xvZ2luXCIgKG1vdXNlbGVhdmUpPVwic2hvd0xvZ2luID0gZmFsc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0ZXh0LWNlbnRlciBtYi0yIGYtMTggZnctYm9sZFwiPlxyXG4gICAgICAgICAgWW91ciBBY2NvdW50XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0IHRleHQtY2VudGVyIGYtMTRcIj5cclxuICAgICAgICAgIEFjY2VzcyBhY2NvdW50ICYgbWFuYWdlIHlvdXIgb3JkZXJzLlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tY29udGFpbmVyIHctMTAwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGdhcC0zXCI+XHJcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJnb1RvQWNjb3VudCgnU0lHTlVQJylcIiBjbGFzcz1cInctNTAgdGV4dC1jZW50ZXIgc2lnbi1idG4gYm9yZGVyLTBcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcclxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlNpZ24gVXA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdMT0dJTicpXCIgY2xhc3M9XCJ3LTUwIHRleHQtY2VudGVyIHNpZ24tYnRuXCJcclxuICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5Mb2cgSW48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJnYXA6IDhweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgnUFJPRklMRScpXCJcclxuICAgICAgICAqbmdJZj1cImxvZ2dlZEluXCI+XHJcbiAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwidXNlckdlbmRlciB8IGdlbmRlckljb25cIiBzdHlsZT1cImhlaWdodDogMjdweDtcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gPGRpdj4gLS0+XHJcbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoKVwiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJzZWN0aW9uSWQrYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uU3R5bGVcIiBbY29sb3JdPVwiY29sb3JcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIiBbYnV0dG9uRGF0YV09XCJidXR0b25Db250ZW50XCI+e3tidXR0b25Db250ZW50Py5sYWJlbH19PC9idXR0b24+IC0tPlxyXG4gICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI25hdmJhckxpbmtzVGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBmcy02IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleFwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tbGVmdDogMjVweDtcIlxyXG4gICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA3NjhcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TmF2YmFyQnV0dG9uXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICA8c2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50IFtidXR0b25EYXRhXT1cIml0ZW1cIiBbc2VsZWN0ZWRTdHlsZV09XCJzdHlsZT8ubmF2aWdhdGlvblN0eWxlXCJcclxuICAgICAgICAgIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIiBbYmdDb2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGdldERyb3Bkb3duTGlua3M7IGxldCBpZHggPSBpbmRleFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudD8uZWNvbWxpbmtzPy5bbGlua10/Lmxlbmd0aCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwibWF0LWJ0biBkcm9wZG93bi10b2dnbGVcIiB0eXBlPVwiYnV0dG9uXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIGlkPVwibGlua1wiXHJcbiAgICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICB7e2xpbmsgfCB1cHBlcmNhc2V9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImxpbmtcIj5cclxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IG1lbnUgb2YgZ2V0VmFsdWVzKGNvbnRlbnQ/LmVjb21saW5rcz8uW2xpbmtdKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5RmlsdGVyKG1lbnUsIGxpbmspXCI+e3ttZW51fX08L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNvbHZlZE1vYmlsZU1lbnVUeXBlID09PSBNb2JpbGVNZW51VHlwZS5IQU1CVVJHRVJcIj5cclxuICA8ZGl2ICNtb2JpbGVPZmZjYW52YXMgY2xhc3M9XCJvZmZjYW52YXNcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJvZmZjYW52YXNSaWdodFwiIGFyaWEtbGFiZWxsZWRieT1cIm9mZmNhbnZhc1JpZ2h0TGFiZWxcIlxyXG4gICAgZGF0YS1icy1iYWNrZHJvcD1cImZhbHNlXCJcclxuICAgIFtuZ0NsYXNzXT1cInsnb2ZmY2FudmFzLWVuZCcgOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjEnIHx8IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMycsICdvZmZjYW52YXMtc3RhcnQnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjInIHx8IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyNCd9XCI+XHJcblxyXG4gICAgPCEtLSBUT1AgQkFSIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci10b3BiYXJcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cImJhY2tncm91bmRJbmZvXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItbG9nb1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGVMb2dvU2VjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyYXdlci1jbG9zZS1idG5cIiBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIiBhcmlhLWxhYmVsPVwiQ2xvc2UgbWVudVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQk9EWSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJvZmZjYW52YXMtYm9keSBkcmF3ZXItYm9keVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vYmlsZU1lbnVMaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMaW5rc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBESVZJREVSICsgUVVJQ0sgQUNUSU9OUyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZm9vdGVyXCIgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXkgJiYgYWN0aW9uPy5idXR0b25zPy5sZW5ndGhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kaXZpZGVyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiYWNjZW50Q29sb3JcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1hY3Rpb25zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1hY3Rpb25cIiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgIFtlZGl0XT1cImVkaXRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIFtidXR0b25JZF09XCJidXR0b24uaWRcIlxyXG4gICAgICAgICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lzRnVsbFdpZHRoXT1cInRydWVcIj48L2FwcC1idXR0b24tZWxlbWVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2Vjb21Qcm9maWxlVGVtcGxhdGU+XHJcbiAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJoLTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYnItNTAgZnMtMjIgcHgtMyBweS0xXCJcclxuICAgIChjbGljayk9XCJzaG93U2VhcmNoQmFyTW9iaWxlID0gIXNob3dTZWFyY2hCYXJNb2JpbGVcIlxyXG4gICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJyA6IGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PSAnU29saWQnID8gICBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgOiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCcgKyBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgKyAnIDAlJyArICcsJyArIGJhY2tncm91bmRJbmZvPy5zZWNvbmRhcnlBY2NlbnRDb2xvciArJyAxMDAlJyArICcpJ31cIlxyXG4gICAgW3N0eWxlLmNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5jb2xvclwiPnNlYXJjaDwvbWF0LWljb24+IC0tPlxyXG5cclxuXHJcbiAgPCEtLSA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtb2ItZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUHJvZHVjdFwiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiXHJcbiAgICAqbmdJZj1cInNob3dTZWFyY2hCYXJNb2JpbGVcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJ3YWl0QmVmb3JlU2VhcmNoKClcIlxyXG4gICAgW25nU3R5bGVdPVwieydib3JkZXInIDogJzFweCBzb2xpZCAnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yfVwiPiAtLT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogOHB4OyBjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImdvVG9BY2NvdW50KCdQUk9GSUxFJylcIlxyXG4gICAgKm5nSWY9XCJsb2dnZWRJblwiPlxyXG4gICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwidXNlckdlbmRlciB8IGdlbmRlckljb25cIiBzdHlsZT1cImhlaWdodDogMjdweDtcIj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlTG9nb1NlY3Rpb25UZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWNlbnRlciBjdXJzb3ItcG9pbnRlciBoLTEwMFwiXHJcbiAgICAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIHx8ICFjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGNsYXNzPVwiaC0xMDBcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIGNsYXNzPVwiaC0xMDBcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cclxuICAgICAgPGI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+IC0tPlxyXG4gIDxpbWcgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwibG9nb1wiIGNsYXNzPVwiaC0xMDBcIiBsb2FkaW5nPVwibGF6eVwiXHJcbiAgICAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgJiYgY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCIhZWRpdCA/IGdvVG9Ib21lKCkgOiAnJ1wiPlxyXG4gIDwhLS0gPC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjYXRlZ29yaWVzSGVhZGVyPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLXdyYXBwZXJcIiAqbmdJZj1cIiFpc01vYmlsZVwiIChtb3VzZWxlYXZlKT1cInNob3dMaXN0ID0gZmFsc2U7IHNob3dDb2xsZWN0aW9ucyA9IGZhbHNlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImJsdXItb3ZlcmxheVwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd0xpc3QgfHwgc2hvd0NvbGxlY3Rpb25zXCI+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMtaGVhZGVyIGQtZmxleCBnYXAtMyBweS0yIHBvc2l0aW9uLXJlbGF0aXZlXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiXHJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeSBjdXJzb3ItcG9pbnRlclwiICpuZ0Zvcj1cImxldCBlbGUgb2YgbWVnYU1lbnU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiXHJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2V0Q2hpbGRNZW51KGVsZSlcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIj5cclxuICAgICAgICB7e2VsZT8ubGFiZWx9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gW2NsYXNzLmhpZGUtZHJvcGRvd25dPVwiIXNob3dMaXN0XCIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1jYXRlZ29yeVwiIFtjbGFzcy5zaG93LWRyb3Bkb3duXT1cInNob3dMaXN0XCIgW2NsYXNzLmhpZGUtZHJvcGRvd25dPVwiIXNob3dMaXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgdy0xMDAgaC0xMDAgbWVnYS1tZW51LXNjcm9sbC1yb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRDYXRlZ29yeTsgbGV0IGkgPSBpbmRleDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVnYS1tZW51LXNjcm9sbC1jb2xcIiBbbmdDbGFzc109XCJbXHJcbiAgICAgICAgICAgICAgZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID09IDAgJiYgKGVsZS50eXBlPT0nQ09MTEVDVElPTlMnIHx8IGVsZS50eXBlPT0nQ0FURUdPUklFUycpID8gJ2NvbC0zJyA6ICdjb2wtMicsXHJcbiAgICAgICAgICAgICAgZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiAhbGFzdCA/ICdoYXMtcmlnaHQtYm9yZGVyJyA6ICcnXHJcbiAgICAgICAgICAgIF1cIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoZWxlLnR5cGU9PSdDT0xMRUNUSU9OUycgfHwgZWxlLnR5cGU9PSdDQVRFR09SSUVTJyApXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcmQgbWItM1wiIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoZWxlKVwiICpuZ0lmPVwiZWxlLmltYWdlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlLmltYWdlVXJsXCIgW2FsdF09XCJlbGU/LmxhYmVsXCIgY2xhc3M9XCJtb2JpbGUtc3VibWVudS1pbWFnZSBjb2xsZWN0aW9uSW1hZ2VcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcHRpb25cIj57e2VsZT8ubGFiZWwgfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWhlYWRlciBtYi0zIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShlbGUpXCIgKm5nSWY9XCIhZWxlLmltYWdlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICB7e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWhlYWRlciBtYi0zIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlZGlyZWN0aW9uc09mTWVudShlbGUpXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICB7e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZT8uY2hpbGRyZW4gJiYgZWxlPy5jaGlsZHJlbi5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMyBsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGVsZT8uY2hpbGRyZW5cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJjaGlsZD8ubG9nb1VybFwiIFtzcmNdPVwiY2hpbGQ/LmxvZ29VcmxcIiBbYWx0XT1cImNoaWxkPy5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lZ2EtbWVudS1jaGlsZC1sb2dvXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj57e2NoaWxkPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hpbGQ/LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtZWdhLW1lbnUtY2hpbGQtZGVzY1wiPnt7Y2hpbGQ/LmRlc2NyaXB0aW9ufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlTWVudUxpc3RUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLW1lbnUtY29udGFpbmVyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1yb3dzXCIgKm5nSWY9XCIhc2VsZWN0ZWRNb2JpbGVNZW51XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItcm93XCIgKm5nRm9yPVwibGV0IGVsZSBvZiBtZWdhTWVudVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImVsZT8uY2hpbGRyZW4/Lmxlbmd0aCA/IHNlbGVjdE1vYmlsZU1lbnUoZWxlKSA6IHJlZGlyZWN0aW9uc09mTWVudShlbGUpXCJcclxuICAgICAgICBbYXR0ci5kYXRhLWJzLWRpc21pc3NdPVwiZWxlPy5jaGlsZHJlbj8ubGVuZ3RoID8gbnVsbCA6ICdvZmZjYW52YXMnXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmF3ZXItcm93LWxhYmVsXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7IGVsZT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZHJhd2VyLXJvdy1jaGV2cm9uXCIgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGhcIlxyXG4gICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNoZXZyb25fcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsXCIgKm5nSWY9XCJzZWxlY3RlZE1vYmlsZU1lbnVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtYmFja1wiIChjbGljayk9XCJnb0JhY2tNb2JpbGVNZW51KClcIj5cclxuICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnt7c2VsZWN0ZWRNb2JpbGVNZW51Py5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItZGV0YWlsLXNlY3Rpb25zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2Ygc2VsZWN0ZWRNb2JpbGVNZW51Py5jaGlsZHJlblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1kZXRhaWwtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA9PSAwICYmIChjaGlsZC50eXBlPT0nQ09MTEVDVElPTlMnIHx8IGNoaWxkLnR5cGU9PSdDQVRFR09SSUVTJyApXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vYmlsZS1zdWJtZW51LWNhcmRcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKVwiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkLmltYWdlVXJsXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2hpbGQuaW1hZ2VVcmxcIiBbYWx0XT1cImNoaWxkPy5sYWJlbFwiIGNsYXNzPVwibW9iaWxlLXN1Ym1lbnUtaW1hZ2UgY29sbGVjdGlvbkltYWdlXCIgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc3VibWVudS1jYXB0aW9uXCI+e3tjaGlsZD8ubGFiZWwgfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAqbmdJZj1cIiEoY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPT0gMCAmJiAoY2hpbGQudHlwZT09J0NPTExFQ1RJT05TJyB8fCBjaGlsZC50eXBlPT0nQ0FURUdPUklFUycgKSAmJiBjaGlsZC5pbWFnZVVybClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXJvdyBkcmF3ZXItcm93LS1zdWJcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGNoaWxkKVwiIGRhdGEtYnMtZGlzbWlzcz1cIm9mZmNhbnZhc1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImNoaWxkPy5sb2dvVXJsXCIgW3NyY109XCJjaGlsZD8ubG9nb1VybFwiIFthbHRdPVwiY2hpbGQ/LmxhYmVsXCIgY2xhc3M9XCJtZWdhLW1lbnUtY2hpbGQtbG9nb1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyYXdlci1yb3ctbGFiZWxcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgY2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWRldGFpbC1ncmlkXCIgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1jaGlwXCIgKm5nRm9yPVwibGV0IHN1YiBvZiBjaGlsZD8uY2hpbGRyZW5cIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KHN1YilcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLWJzLWRpc21pc3M9XCJvZmZjYW52YXNcIj5cclxuICAgICAgICAgICAgICAgICAge3tzdWI/LmxhYmVsIHwgdGl0bGVjYXNlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbW9iaWxlQ2F0ZWdvcnlIZWFkZXI+XHJcbiAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMtaGVhZGVyIGQtZmxleCBnYXAtMyAgcHktMiBvdmVyZmxvdy1hdXRvXCIgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lmxlbmd0aCA+IDAgJiYgaXNNb2JpbGVcIlxyXG4gICAgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtjbGFzcy5tYXJnaW4tdG9wLW1vYl09XCJpc0hlYWRlclN0aWNreVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5IGN1cnNvci1wb2ludGVyIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiICpuZ0Zvcj1cImxldCBlbGUgb2YgY2F0ZWdvcnlMaXN0O2xldCBpID0gaW5kZXhcIlxyXG4gICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJzZWxlY3RlZENhdGVnb3J5ID0gZWxlOyBmaWx0ZXJCeUNhdGVnb3J5KClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhdC1pbWcgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHctMTAwXCI+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cImVsZT8uaW1hZ2VVcmxzWzBdXCIgW2FsdF09XCJlbGU/LmNhdGVnb3J5TmFtZVwiIGNsYXNzPVwiYnItMTIgbW9iaWxlLWNhdGVnb3J5LWltYWdlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2F0ZWdvcnktbmFtZVwiPnt7ZWxlPy5jYXRlZ29yeU5hbWV9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Vjb21tZXJjZV9oZWFkZXI+XHJcbiAgPGhlYWRlciBjbGFzcz1cInNpdGUtaGVhZGVyXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnZWNvbS1oZWFkZXIxJzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXIxJyxcclxuICAgICAgJ2Vjb20taGVhZGVyMic6IHN0eWxlPy5zdHlsaW5nID09PSAnSGVhZGVyMicsXHJcbiAgICAgICdlY29tLWhlYWRlcjMnOiBzdHlsZT8uc3R5bGluZyA9PT0gJ0hlYWRlcjMnLFxyXG4gICAgICAnZWNvbS1oZWFkZXI0Jzogc3R5bGU/LnN0eWxpbmcgPT09ICdIZWFkZXI0J1xyXG4gICAgfVwiPlxyXG4gICAgPCEtLSBUb3AgQmFyOiBMb2dvLCBTZWFyY2gsIFVzZXIgQWN0aW9ucyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtYmFyXCI+XHJcblxyXG4gICAgICA8IS0tIE1vYmlsZSBNZW51IFRvZ2dsZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvLWFyZWFcIiBbbmdDbGFzc109XCJ7J21vYmlsZS1oZWFkZXItbGVmdC1zaWRlJzogc2NyZWVuV2lkdGggPD0gNDc1fVwiPlxyXG4gICAgICAgIDwhLS0gSEFNQlVSR0VSIC0tPlxyXG4gICAgICAgIDxsYWJlbCAqbmdJZj1cInJlc29sdmVkTW9iaWxlTWVudVR5cGUgPT09IE1vYmlsZU1lbnVUeXBlLkhBTUJVUkdFUlwiIGZvcj1cIm1vYmlsZS1tZW51LWNoZWNrYm94XCJcclxuICAgICAgICAgIGNsYXNzPVwibW9iaWxlLW1lbnUtYnRuXCIgZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIiBkYXRhLWJzLXRhcmdldD1cIiNvZmZjYW52YXNSaWdodFwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwib2ZmY2FudmFzUmlnaHRcIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIG1lbnVcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+XHJcbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzT2ZmY2FudmFzT3BlblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjRcIiB5MT1cIjEyXCIgeDI9XCIyMFwiIHkyPVwiMTJcIj48L2xpbmU+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiNlwiIHgyPVwiMjBcIiB5Mj1cIjZcIj48L2xpbmU+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMThcIiB4Mj1cIjIwXCIgeTI9XCIxOFwiPjwvbGluZT5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPHN2ZyAqbmdJZj1cImlzT2ZmY2FudmFzT3BlblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjZcIiB5MT1cIjZcIiB4Mj1cIjE4XCIgeTI9XCIxOFwiPjwvbGluZT5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI2XCIgeTE9XCIxOFwiIHgyPVwiMThcIiB5Mj1cIjZcIj48L2xpbmU+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwhLS0gRlVMTCBTQ1JFRU4gLS0+XHJcbiAgICAgICAgPGxhYmVsICpuZ0lmPVwicmVzb2x2ZWRNb2JpbGVNZW51VHlwZSA9PT0gTW9iaWxlTWVudVR5cGUuRlVMTF9TQ1JFRU5cIiBjbGFzcz1cIm1vYmlsZS1tZW51LWJ0blwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiVG9nZ2xlIG1lbnVcIiAoY2xpY2spPVwib3BlbkZ1bGxTY3JlZW5NZW51KClcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxsaW5lIHgxPVwiNFwiIHkxPVwiMTJcIiB4Mj1cIjIwXCIgeTI9XCIxMlwiPjwvbGluZT5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCI2XCIgeDI9XCIyMFwiIHkyPVwiNlwiPjwvbGluZT5cclxuICAgICAgICAgICAgPGxpbmUgeDE9XCI0XCIgeTE9XCIxOFwiIHgyPVwiMjBcIiB5Mj1cIjE4XCI+PC9saW5lPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgPCEtLSBMb2dvIFNlY3Rpb24gLS0+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJsb2dvXCIgKGNsaWNrKT1cIiFlZGl0ID8gZ29Ub0hvbWUoKSA6ICcnXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIj5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIgYWx0PVwiTG9nb1wiIGNsYXNzPVwibG9nby1pbWdcIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZSAgKyAxNVwiXHJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0UGx1c2xvZ29cIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIiAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIFxyXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0IFxyXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uIFxyXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8udXJsXCI+XHJcblxyXG4gICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwiSWNvblwiIGNsYXNzPVwibG9nby1pY29uXCJcclxuICAgICAgICAgICAgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemUgKyAxNVwiIFtoZWlnaHRdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nby10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzVcIj5cclxuICAgICAgICAgICAge3sgY29udGVudD8uc2l0ZU5hbWU/LnZhbHVlIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cImxvZ29cIiAoY2xpY2spPVwiIWVkaXQgPyBnb1RvSG9tZSgpIDogJydcIiAqbmdJZj1cIiFjb250ZW50Py5sb2dvPy5pc0ltYWdlIFxyXG4gICAgICAgICAgJiYgY29udGVudD8ubG9nbz8udGV4dD8uaXNUZXh0IFxyXG4gICAgICAgICAgJiYgIWNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvblwiPlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nby1tYWluXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPlxyXG4gICAgICAgICAgICB7eyBjb250ZW50Py5zaXRlTmFtZT8udmFsdWUgfX1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBTZWFyY2ggQmFyIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXdyYXBwZXJcIlxyXG4gICAgICAgICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhciAmJiBkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlICE9PSAnRFJPUERPV05fTUVOVSdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhclwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIGl0ZW1cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZWFyY2hQcm9kdWN0cygpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWljb24gc2VhcmNoLWJ0blwiIChjbGljayk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XHJcbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICA8bGluZSB4MT1cIjIxXCIgeTE9XCIyMVwiIHgyPVwiMTYuNjVcIiB5Mj1cIjE2LjY1XCI+PC9saW5lPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBEcm9wZG93biBtZW51IHN0eWxlIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fbWVudVwiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzUgJiYgZGF0YT8uc3R5bGVzPy5tZW51VHlwZSA9PT0gJ0RST1BET1dOX01FTlUnXCJcclxuICAgICAgICAobW91c2VsZWF2ZSk9XCJzaG93TGlzdCA9IGZhbHNlOyBzZWxlY3RlZENhdGVnb3J5ID0gbnVsbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZC1uYXYtc2Nyb2xsXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtbmF2XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC10YWItd3JhcFwiICpuZ0Zvcj1cImxldCBlbGUgb2YgbWVnYU1lbnVcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRkLXRhYlwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZGQtdGFiLWFjdGl2ZV09XCJzaG93TGlzdCAmJiBzZWxlY3RlZENhdGVnb3J5ID09PSBlbGU/LmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGggPyB0b2dnbGVDaGlsZE1lbnUoZWxlLCAkZXZlbnQpIDogcmVkaXJlY3Rpb25zT2ZNZW51KGVsZSlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIiBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj57e2VsZT8ubGFiZWwgfCB0aXRsZWNhc2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJlbGU/LmNoaWxkcmVuPy5sZW5ndGhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiXHJcbiAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNzA3MSAxNC43MDcxQzEyLjMxNjYgMTUuMDk3NiAxMS42ODM0IDE1LjA5NzYgMTEuMjkyOSAxNC43MDcxTDYuMjkyODkgOS43MDcxMUM1LjkwMjM3IDkuMzE2NTggNS45MDIzNyA4LjY4MzQyIDYuMjkyODkgOC4yOTI4OUM2LjY4MzQyIDcuOTAyMzcgNy4zMTY1OCA3LjkwMjM3IDcuNzA3MTEgOC4yOTI4OUwxMiAxMi41ODU4TDE2LjI5MjkgOC4yOTI4OUMxNi42ODM0IDcuOTAyMzcgMTcuMzE2NiA3LjkwMjM3IDE3LjcwNzEgOC4yOTI4OUMxOC4wOTc2IDguNjgzNDIgMTguMDk3NiA5LjMxNjU4IDE3LjcwNzEgOS43MDcxMUwxMi43MDcxIDE0LjcwNzFaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRkLXBhbmVsXCIgKm5nSWY9XCJzaG93TGlzdCAmJiBzZWxlY3RlZENhdGVnb3J5Py5sZW5ndGhcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImRyb3Bkb3duTGVmdFwiIFtzdHlsZS50b3AucHhdPVwiZHJvcGRvd25Ub3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1pdGVtXCIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHNlbGVjdGVkQ2F0ZWdvcnlcIiBbY2xhc3Mub3Blbi1zdWJtZW51XT1cIm9wZW5TdWJtZW51Q2hpbGQgPT09IGNoaWxkXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIiFjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCA/IHJlZGlyZWN0aW9uc09mTWVudShjaGlsZCkgOiB0b2dnbGVTdWJNZW51KGNoaWxkLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ub3dyYXBcIj57e2NoaWxkPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRkLWl0ZW0tYXJyb3dcIiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoXCI+JiM4MjUwOzwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZC1zdWJtZW51XCIgKm5nSWY9XCJjaGlsZD8uY2hpbGRyZW4/Lmxlbmd0aCAmJiBvcGVuU3VibWVudUNoaWxkID09PSBjaGlsZFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBibG9jaztcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGQtc3ViLWl0ZW1cIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KHN1Yik7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5vd3JhcFwiPnt7c3ViPy5sYWJlbCB8IHRpdGxlY2FzZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8IS0tIFJpZ2h0IEFjdGlvbnMgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWFjdGlvbnNcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGE/LnN0eWxlcz8ubWVudVR5cGUgPT09ICdEUk9QRE9XTl9NRU5VJyAmJiBzY3JlZW5XaWR0aCA+IDQ3NSAmJiBjb250ZW50Py5zaG93U2VhcmNoQmFyXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBkcm9wZG93bi1zZWFyY2gtdG9nZ2xlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEcm9wZG93bkRlc2t0b3BTZWFyY2ggPSAhc2hvd0Ryb3Bkb3duRGVza3RvcFNlYXJjaFwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RvcmVBdmFpYWJsZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBzdG9yZS1saW5rXCIgKG1vdXNlZW50ZXIpPVwic2hvd1BpbmNvZGVJbnB1dCA9IHRydWU7c2hvd0xvZ2luID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIiFnZXRQaW5jb2RlXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDE3IDE3XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTguNSAwLjVjLTMuMDMyIDAtNS41IDIuNDY3LTUuNSA1LjUgMCA0LjM3MyA0LjkxMyAxMC4wODYgNS4xMjIgMTAuMzI4bDAuMzc4IDAuNDM1IDAuMzc4LTAuNDM2YzAuMjA5LTAuMjQxIDUuMTIyLTUuOTU0IDUuMTIyLTEwLjMyNyAwLTMuMDMzLTIuNDY4LTUuNS01LjUtNS41ek04LjUgMTUuMjE1Yy0xLjE0Ni0xLjQyNC00LjUtNS44NzktNC41LTkuMjE1IDAtMi40ODEgMi4wMTktNC41IDQuNS00LjVzNC41IDIuMDE5IDQuNSA0LjVjMCAzLjMzMy0zLjM1NCA3Ljc5MS00LjUgOS4yMTV6TTguNSAzLjEzOWMtMS42NTQgMC0zIDEuMzQ2LTMgM3MxLjM0NiAzIDMgMyAzLTEuMzQ2IDMtMy0xLjM0Ni0zLTMtM3pNOC41IDguMTM5Yy0xLjEwMyAwLTItMC44OTctMi0yczAuODk3LTIgMi0yIDIgMC44OTcgMiAyLTAuODk3IDItMiAyelwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiIzAwMDAwMFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPiAtLT5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgNTEyIDUxMlwiXHJcbiAgICAgICAgICAgICAgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMzQxLjQ3NiAzMzguMjg1YzU0LjQ4My04NS40OTMgNDcuNjM0LTc0LjgyNyA0OS4yMDQtNzcuMDU2QzQxMC41MTYgMjMzLjI1MSA0MjEgMjAwLjMyMiA0MjEgMTY2IDQyMSA3NC45OCAzNDcuMTM5IDAgMjU2IDAgMTY1LjE1OCAwIDkxIDc0LjgzMiA5MSAxNjZjMCAzNC4zIDEwLjcwNCA2OC4wOTEgMzEuMTkgOTYuNDQ2bDQ4LjMzMiA3NS44NEMxMTguODQ3IDM0Ni4yMjcgMzEgMzY5Ljg5MiAzMSA0MjJjMCAxOC45OTUgMTIuMzk4IDQ2LjA2NSA3MS40NjIgNjcuMTU5QzE0My43MDQgNTAzLjg4OCAxOTguMjMxIDUxMiAyNTYgNTEyYzEwOC4wMjUgMCAyMjUtMzAuNDcyIDIyNS05MCAwLTUyLjExNy04Ny43NDQtNzUuNzU3LTEzOS41MjQtODMuNzE1em0tMTk0LjIyNy05Mi4zNGExNS41NyAxNS41NyAwIDAgMC0uNTE3LS43NThDMTI5LjY4NSAyMjEuNzM1IDEyMSAxOTMuOTQxIDEyMSAxNjZjMC03NS4wMTggNjAuNDA2LTEzNiAxMzUtMTM2IDc0LjQzOSAwIDEzNSA2MS4wMDkgMTM1IDEzNiAwIDI3Ljk4Ni04LjUyMSA1NC44MzctMjQuNjQ2IDc3LjY3MS0xLjQ0NSAxLjkwNiA2LjA5NC05LjgwNi0xMTAuMzU0IDE3Mi45MThMMTQ3LjI0OSAyNDUuOTQ1ek0yNTYgNDgyYy0xMTcuOTk0IDAtMTk1LTM0LjY4My0xOTUtNjAgMC0xNy4wMTYgMzkuNTY4LTQ0Ljk5NSAxMjcuMjQ4LTU1LjkwMWw1NS4xMDIgODYuNDYzYTE0Ljk5OCAxNC45OTggMCAwIDAgMjUuMjk4IDBsNTUuMTAxLTg2LjQ2M0M0MTEuNDMxIDM3Ny4wMDUgNDUxIDQwNC45ODQgNDUxIDQyMmMwIDI1LjEwMi03Ni4zMTMgNjAtMTk1IDYwelwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgZD1cIk0yNTYgOTFjLTQxLjM1NSAwLTc1IDMzLjY0NS03NSA3NXMzMy42NDUgNzUgNzUgNzUgNzUtMzMuNjQ1IDc1LTc1LTMzLjY0NS03NS03NS03NXptMCAxMjBjLTI0LjgxMyAwLTQ1LTIwLjE4Ny00NS00NXMyMC4xODctNDUgNDUtNDUgNDUgMjAuMTg3IDQ1IDQ1LTIwLjE4NyA0NS00NSA0NXpcIj5cclxuICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9yZS10ZXh0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPkVudGVyIFBpbmNvZGU8L3NwYW4+XHJcblxyXG4gICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgc3RvcmUtbGlua1wiIChtb3VzZWVudGVyKT1cInNob3dQaW5jb2RlSW5wdXQgPSB0cnVlOztzaG93TG9naW4gPSBmYWxzZVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIiAqbmdJZj1cImdldFBpbmNvZGUgJiYgZ2V0UGluY29kZS5sZW5ndGggPT0gNlwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGggZD1cIm0yIDcgNC40MS00LjQxQTIgMiAwIDAgMSA3LjgzIDJoOC4zNGEyIDIgMCAwIDEgMS40Mi41OUwyMiA3XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNCAxMnY4YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMnYtOFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDIydi00YTIgMiAwIDAgMC0yLTJoLTJhMiAyIDAgMCAwLTIgMnY0XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMiA3aDIwXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTIyIDd2M2EyIDIgMCAwIDEtMiAydjBhMi43IDIuNyAwIDAgMS0xLjU5LS42My43LjcgMCAwIDAtLjgyIDBBMi43IDIuNyAwIDAgMSAxNiAxMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDEyIDEyYTIuNyAyLjcgMCAwIDEtMS41OS0uNjMuNy43IDAgMCAwLS44MiAwQTIuNyAyLjcgMCAwIDEgOCAxMmEyLjcgMi43IDAgMCAxLTEuNTktLjYzLjcuNyAwIDAgMC0uODIgMEEyLjcgMi43IDAgMCAxIDQgMTJ2MGEyIDIgMCAwIDEtMi0yVjdcIj5cclxuICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b3JlLXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3tcIkRlbGl2ZXJpbmcgdG86IFwiICtcclxuICAgICAgICAgICAgICBnZXRQaW5jb2RlfX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwaW5jb2RlLWNvbnRhaW5lciBwLTNcIiAqbmdJZj1cInNob3dQaW5jb2RlSW5wdXRcIiAobW91c2VsZWF2ZSk9XCJzaG93UGluY29kZUlucHV0ID0gZmFsc2VcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQgdGV4dC1jZW50ZXIgbWItMiBmLTE4IGZ3LWJvbGRcIj5cclxuICAgICAgICAgICAgICBZb3VyIFBJTiBDb2RlIHVubG9ja3NcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB0ZXh0LWNlbnRlciBmLTE0IHBpbmNvZGUtdGV4dFwiPlxyXG4gICAgICAgICAgICAgIEZhc3Rlc3QgZGVsaXZlcnkgZGF0ZSwgVHJ5LWF0LUhvbWUgYXZhaWxhYmlsaXR5LFxyXG4gICAgICAgICAgICAgIE5lYXJlc3Qgc3RvcmUgYW5kIEluLXN0b3JlIGRlc2lnbiFcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBtdC0yIGJyLTUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBweC0zXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cInBpbkVycm9yXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlBpbmNvZGVcIiBhcmlhLWxhYmVsPVwiUGluY29kZVwiIFsobmdNb2RlbCldPVwicGluY29kZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctNzUgcC0wXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LXN1Yi10ZXh0IGYtMTEgdy0yNSB0ZXh0LWVuZCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzZXRQaW5jb2RlKClcIj5TVUJNSVQ8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG10LTIgZi0xMVwiICpuZ0lmPVwicGluRXJyb3JcIj5cclxuICAgICAgICAgICAgICBQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaW5jb2RlXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxhIGNsYXNzPVwiYWN0aW9uLWxpbmsgaWNvbi1vbmx5IGxvZ2luLWJ0blwiICpuZ0lmPVwiIWxvZ2dlZEluXCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dMb2dpbiA9IHRydWU7c2hvd1BpbmNvZGVJbnB1dCA9IGZhbHNlXCIgKGNsaWNrKT1cInNob3dMb2dpbiA9ICFzaG93TG9naW5cIj5cclxuICAgICAgICAgIDwhLS0gVXNlciBJY29uIFNWRyAtLT5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCI3XCIgcj1cIjRcIj48L2NpcmNsZT5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHlcIiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1BST0ZJTEUnKVwiICpuZ0lmPVwibG9nZ2VkSW5cIj5cclxuICAgICAgICAgIDwhLS0gVXNlciBJY29uIFNWRyAtLT5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCJcclxuICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgZmlsbD1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCI3XCIgcj1cIjRcIj48L2NpcmNsZT5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tY29udGFpbmVyIHAtM1wiICpuZ0lmPVwic2hvd0xvZ2luXCIgKG1vdXNlbGVhdmUpPVwic2hvd0xvZ2luID0gZmFsc2VcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IHRleHQtY2VudGVyIG1iLTIgZi0xOCBmdy1ib2xkXCI+XHJcbiAgICAgICAgICAgIFlvdXIgQWNjb3VudFxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdGV4dC1jZW50ZXIgZi0xNFwiPlxyXG4gICAgICAgICAgICBBY2Nlc3MgYWNjb3VudCAmIG1hbmFnZSB5b3VyIG9yZGVycy5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTMgZ2FwLTNcIj5cclxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ29Ub0FjY291bnQoJ1NJR05VUCcpXCIgY2xhc3M9XCJ3LTUwIHRleHQtY2VudGVyIHNpZ24tYnRuIGJvcmRlci0wXCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQnIDogYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09ICdTb2xpZCcgPyAgIGFjY2VudENvbG9yIDogJ2xpbmVhci1ncmFkaWVudCh0byByaWdodCwnICsgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yICsgJyAwJScgKyAnLCcgKyBiYWNrZ3JvdW5kSW5mbz8uc2Vjb25kYXJ5QWNjZW50Q29sb3IgKycgMTAwJScgKyAnKSd9XCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCI+U2lnbiBVcDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnb1RvQWNjb3VudCgnTE9HSU4nKVwiIGNsYXNzPVwidy01MCB0ZXh0LWNlbnRlciBzaWduLWJ0blwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cImJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvclwiIFtzdHlsZS5jb2xvcl09XCJiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3JcIj5Mb2cgSW48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBpY29uLWNvbnRhaW5lciB3aXNobGlzdC1pY29uXCIgKGNsaWNrKT1cImdvVG9XaXNobGlzdCgpXCI+XHJcbiAgICAgICAgICA8IS0tIEhlYXJ0IEljb24gU1ZHIC0tPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTE5IDE0YzEuNDktMS40NiAzLTMuMjEgMy01LjVBNS41IDUuNSAwIDAgMCAxNi41IDNjLTEuNzYgMC0zIC41LTQuNSAyLTEuNS0xLjUtMi43NC0yLTQuNS0yQTUuNSA1LjUgMCAwIDAgMiA4LjVjMCAyLjMgMS41IDQuMDUgMyA1LjVsNyA3WlwiPlxyXG4gICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImdldFdpc2hsaXN0SXRlbXNDb3VudFwiPnt7Z2V0V2lzaGxpc3RJdGVtc0NvdW50fX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1saW5rIGljb24tb25seSBpY29uLWNvbnRhaW5lciBjYXJ0LWljb25cIiAoY2xpY2spPVwiZ29Ub0NhcnQoKVwiPlxyXG4gICAgICAgICAgPCEtLSBTaG9wcGluZyBCYWcgSWNvbiBTVkcgLS0+XHJcbiAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyXCIgaGVpZ2h0PVwiMjJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTYgMiAzIDZ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0yVjZsLTMtNFpcIj48L3BhdGg+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyA2aDE4XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE2IDEwYTQgNCAwIDAgMS04IDBcIj48L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24tbGluayBpY29uLW9ubHkgaWNvbi1jb250YWluZXIgYm9va2luZ3MtaWNvblwiIChjbGljayk9XCJnb1RvQm9va2luZ3MoKVwiPlxyXG4gICAgICAgICAgPCEtLSBCb29raW5ncyAoY2FsZW5kYXItY2hlY2spIEljb24gU1ZHIC0tPlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMlwiIGhlaWdodD1cIjIyXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNy41XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjEyLjVcIiByeD1cIjJcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOCA3LjVWNmE0IDQgMCAwIDEgOCAwdjEuNVwiPjwvcGF0aD5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjIgMTMuNmwxLjkgMS45IDMuNy0zLjlcIj48L3BhdGg+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY291bnQtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImFjY2VudENvbG9yXCIgW3NpbXBvQ29sb3JdPVwiYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImdldEJvb2tpbmdJdGVtc0NvdW50XCI+e3tnZXRCb29raW5nSXRlbXNDb3VudH19PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1leHBhbmRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJkYXRhPy5zdHlsZXM/Lm1lbnVUeXBlID09PSAnRFJPUERPV05fTUVOVScgJiYgc2NyZWVuV2lkdGggPiA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhciAmJiBzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tc2VhcmNoLWJveFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VhcmNoLWljb24gc2VhcmNoLWJ0blwiIChjbGljayk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XHJcbiAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvci4uLlwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2VhcmNoUHJvZHVjdHMoKVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlYXJjaC1jbG9zZVwiIChjbGljayk9XCJzaG93RHJvcGRvd25EZXNrdG9wU2VhcmNoID0gZmFsc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2Ugc2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxOFwiIHkxPVwiNlwiIHgyPVwiNlwiIHkyPVwiMThcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgPGxpbmUgeDE9XCI2XCIgeTE9XCI2XCIgeDI9XCIxOFwiIHkyPVwiMThcIj48L2xpbmU+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8PSA0NzUgJiYgY29udGVudD8uc2hvd1NlYXJjaEJhclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhclwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGZvciBpdGVtXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcclxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNlYXJjaFByb2R1Y3RzKClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaWNvbiBzZWFyY2gtYnRuXCIgKGNsaWNrKT1cInNlYXJjaFByb2R1Y3RzKClcIj5cclxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9oZWFkZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Z1bGxTY3JlZW5NZW51VGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImZzLW1lbnVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWJnXCIgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtaW5uZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZzLW1lbnUtaGVhZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy1tZW51LWxvZ29cIiAoY2xpY2spPVwiY2xvc2VGdWxsU2NyZWVuTWVudSgpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibW9iaWxlTG9nb1NlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmcy1tZW51LWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlRnVsbFNjcmVlbk1lbnUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZSBtZW51XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gTWFpbiBsZXZlbCAtLT5cclxuICAgICAgPG5hdiBjbGFzcz1cImZzLW1lbnUtbmF2XCIgKm5nSWY9XCIhc2VsZWN0ZWRNb2JpbGVNZW51XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb290ZXJNZW51XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5zaG93SGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiZnMtbWVudS1saW5rXCIgW2NsYXNzLmFjdGl2ZV09XCJpc05hdkl0ZW1BY3RpdmUoaXRlbSlcIiBbc3R5bGUuLS1hY2NlbnRdPVwiYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkZ1bGxTY3JlZW5JdGVtQ2xpY2soaXRlbSlcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLW1lbnUtZG90XCIgW3N0eWxlLmJhY2tncm91bmRdPVwiYWNjZW50Q29sb3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy1tZW51LXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgaXRlbT8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZnMtbWVudS1hcnJvd1wiICpuZ0lmPVwiaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25hdj5cclxuXHJcbiAgICAgIDwhLS0gU3VibWVudSAoZHJpbGwtaW4pIGxldmVsIC0tPlxyXG4gICAgICA8bmF2IGNsYXNzPVwiZnMtbWVudS1uYXYgZnMtbWVudS1zdWJcIiAqbmdJZj1cInNlbGVjdGVkTW9iaWxlTWVudVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJmcy1tZW51LWJhY2tcIiAoY2xpY2spPVwiZ29CYWNrTW9iaWxlTWVudSgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3BhbiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgc2VsZWN0ZWRNb2JpbGVNZW51Py5sYWJlbCB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBzZWxlY3RlZE1vYmlsZU1lbnU/LmNoaWxkcmVuXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImZzLW1lbnUtbGlua1wiIFtzdHlsZS4tLWFjY2VudF09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdGlvbnNPZk1lbnUoY2hpbGQpOyBjbG9zZUZ1bGxTY3JlZW5NZW51KClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy1tZW51LXRleHRcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCI+e3sgY2hpbGQ/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJmcy1tZW51LXN1YmxpbmtcIiAqbmdGb3I9XCJsZXQgc3ViIG9mIGNoaWxkPy5jaGlsZHJlblwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KHN1Yik7IGNsb3NlRnVsbFNjcmVlbk1lbnUoKVwiPnt7IHN1Yj8ubGFiZWwgfCB0aXRsZWNhc2UgfX08L2E+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmF2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtbWVudS1jdGFcIiAqbmdJZj1cImFjdGlvbj8uZGlzcGxheSAmJiBhY3Rpb24/LmJ1dHRvbnM/Lmxlbmd0aFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnMgfCBzbGljZTowOjFcIj5cclxuICAgICAgICAgIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICBbZWRpdF09XCJlZGl0XCIgW2NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbYnV0dG9uSWRdPVwiYnV0dG9uLmlkXCJcclxuICAgICAgICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiIFtpc0Z1bGxXaWR0aF09XCJ0cnVlXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JvdHRvbVN0aWNreU5hdlRlbXBsYXRlPlxyXG4gIDxuYXYgY2xhc3M9XCJicy1uYXZcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJicy1uYXYtYmFyXCIgW3NpbXBvQmFja2dyb3VuZF09XCJiYWNrZ3JvdW5kSW5mb1wiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnMtdGFiXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYm90dG9tU3RpY2t5TmF2SXRlbXM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gYWN0aXZlQm90dG9tTmF2SW5kZXhcIiAoY2xpY2spPVwicmVkaXJlY3Rpb25zT2ZNZW51KGl0ZW0pXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJicy10YWItbGFiZWxcIiBbc3R5bGUuY29sb3JdPVwiaSA9PT0gYWN0aXZlQm90dG9tTmF2SW5kZXggPyBhY2NlbnRDb2xvciA6IG51bGxcIlxyXG4gICAgICAgICAgW3NpbXBvQ29sb3JdPVwiaSA9PT0gYWN0aXZlQm90dG9tTmF2SW5kZXggPyBudWxsIDogc2ltcG9Db2xvclwiPnt7IGl0ZW0/LmxhYmVsIHwgdGl0bGVjYXNlIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmF2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==