@hitsoft/e-donusum 1.0.53 → 1.0.54

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.
@@ -169,11 +169,13 @@ export class HitInboundInvoiceComponent {
169
169
  this.service.getInboundInvoice(new Date().toISOString(), new Date().toISOString()).subscribe(() => this.dxInboundInvoiceInstance.instance.refresh());
170
170
  }
171
171
  getInvoicePreview(record) {
172
- this.invoiceService.getInvoicePreview(record.id, 1000000).subscribe(fatura => {
173
- const source = `data:text/html;base64,${fatura.previewHTML}`;
174
- const newTab = window.open();
175
- newTab.document.title = record.id;
176
- newTab.document.body.innerHTML = `<iframe src="${source}" width="100%" height="100%" style="border:none;"></iframe>`;
172
+ debugger;
173
+ this.service.getInboundInvoiceView(record.uuId).subscribe(item => {
174
+ const source = `data:${item.mimeType};base64,${item.content}`;
175
+ const link = document.createElement('a');
176
+ link.href = source;
177
+ link.download = `${item.filename}`;
178
+ link.click();
177
179
  });
178
180
  }
179
181
  openResponseModal(record) {
@@ -570,4 +572,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
570
572
  type: ViewChild,
571
573
  args: ['tabPanel', { static: false }]
572
574
  }] } });
573
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW5ib3VuZC1pbnZvaWNlcy9oaXQtaW5ib3VuZC1pbnZvaWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJNUQsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRSxPQUFPLEVBQUUsUUFBUSxFQUFPLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFTckMsTUFBTSxPQUFPLDBCQUEwQjtJQTZEbkMsWUFDb0IsSUFBaUIsRUFDaEIsT0FBaUMsRUFDakMsY0FBaUMsRUFDakMsV0FBd0IsRUFDeEIscUJBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLDJCQUEyRCxFQUMzRCxHQUFzQixFQUN0QixZQUFpQztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qiww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MkI7c0JBQXZGLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNMLG9CQUFvQjtzQkFBekUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ1YsUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBpc051bGxPckVtcHR5LCBpc051bGxPclVuZGVmaW5lZCwgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQsIER4VGFiUGFuZWxDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBIaXRJbmJvdW5kSW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWluYm91bmQtaW52b2ljZXMvaGl0LWluYm91bmQtaW52b2ljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0SW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWludm9pY2VzL2hpdC1pbnZvaWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlLCBnZXRMb2NhbGVEYXRlRm9ybWF0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGl0QnVzaW5lc3NQYXJ0bmVyR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1idXNpbmVzcy1wYXJ0bmVyLWdyb3Vwcy9oaXQtYnVzaW5lc3MtcGFydG5lci1ncm91cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnBBZGRyZXNzLCBDb25uZWN0b3JEcmFmdERvY3VtZW50RHRvLCBDb25uZWN0b3JEcmFmdERvY3VtZW50TGluZUR0bywgQ3JlYXRlQnVzaW5lc3NQYXJ0bmVyU3VwcGxpZXJEdG8sIE9wZW5Eb2N1bWVudER0byB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtaW5ib3VuZC1pbnZvaWNlcy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWluYm91bmQtaW52b2ljZScsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEluYm91bmRJbnZvaWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2R4SW5ib3VuZEludm9pY2VJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEluYm91bmRJbnZvaWNlSW5zdGFuY2U6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4UHVyY2hhc2VPcmRlckRvY3VtZW50cycsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFB1cmNoYXNlT3JkZXJEb2N1bWVudHM6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4UHVyY2hhc2VEZXNwYXRjaERvY3VtZW50cycsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHM6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4RHJhZnREb2N1bWVudExpbmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4RHJhZnREb2N1bWVudExpbmVzOiBEeERhdGFHcmlkQ29tcG9uZW50XHJcbiAgICBAVmlld0NoaWxkKCd0YWJQYW5lbCcsIHsgc3RhdGljOiBmYWxzZSB9KSB0YWJQYW5lbDogRHhUYWJQYW5lbENvbXBvbmVudFxyXG5cclxuICAgIGluYm91bmRJbnZvaWNlc0RhdGFTb3VyY2U6IGFueVxyXG4gICAgaW5ib3VuZEludm9pY2VTdGF0dXNMb29rdXA6IGFueVxyXG4gICAgaW5ib3VuZEludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwOiBhbnlcclxuXHJcbiAgICBwYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHM6IEFycmF5PHsgaWQ6IHN0cmluZywgdGV4dDogc3RyaW5nIH0+ID0gW107XHJcbiAgICBvYmplY3RUeXBlc0xvb2t1cDogQXJyYXk8eyBpZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcgfT4gPSBbXHJcbiAgICAgICAgeyBpZDogXCIyMFwiLCB0ZXh0OiBcIlNhdMSxbiBBbG1hIMSwcnNhbGl5ZXNpXCIgfSxcclxuICAgICAgICB7IGlkOiBcIjIyXCIsIHRleHQ6IFwiU2F0xLFuIEFsbWEgU2lwYXJpxZ9pXCIgfVxyXG4gICAgXTsgcGFydG5lckF2YWlsYWJsZVNlcmllczogW107XHJcbiAgICBwYXJ0bmVyQXZhaWxhYmxlR3JvdXBzOiBbXTtcclxuICAgIHBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXM6IFtdO1xyXG4gICAgcGFydG5lckF2YWlsYWJsZVN0YXRlczogW107XHJcbiAgICBvcGVuRG9jdW1lbnRzRm9yUGFydG5lcjogW107XHJcbiAgICBpbnZvaWNlT2JqZWN0c0VudW1Mb29rdXA6IGFueTtcclxuICAgIHB1cmNoYXNlT3JkZXJEb2N1bWVudHM6IFtdO1xyXG4gICAgZHJhZnREb2N1bWVudExpbmVzOiBPcGVuRG9jdW1lbnREdG9bXSA9IFtdO1xyXG4gICAgcHVyY2hhc2VEZXNwYXRjaERvY3VtZW50czogW107XHJcbiAgICBpc01vZGFsQnVzeUZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICBpc01vZGFsT3BlbkZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICBpc01vZGFsQnVzeUZvclBhcnRuZXIgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuRm9yUGFydG5lciA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbEJ1c3lGb3JPcGVuRG9jcyA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbE9wZW5Gb3JPcGVuRG9jcyA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbEJ1c3lGb3JEcmFmdCA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbE9wZW5Gb3JEcmFmdCA9IGZhbHNlO1xyXG4gICAgaXNMb2FkaW5nU3RhdGVzID0gZmFsc2U7XHJcbiAgICBpc0xvYWRpbmdTZXJpZXMgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ0dyb3VwcyA9IGZhbHNlO1xyXG4gICAgaXNMb2FkaW5nQWNjb3VudHMgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ0NvdW50cmllcyA9IGZhbHNlO1xyXG5cclxuICAgIGZhdHVyYU9uaXpsZW1lOiBhbnk7XHJcbiAgICBmb3JtUmVzcG9uc2U6IEZvcm1Hcm91cDtcclxuICAgIGZvcm1QYXJ0bmVyOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgY291bnRyeUdyaWRCb3hWYWx1ZTogYW55XHJcbiAgICBpc0NvdW50cnlHcmlkQm94T3BlbmVkOiBib29sZWFuXHJcblxyXG4gICAgc3RhdGVHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNTdGF0ZUdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBzZXJpYWxHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNTZXJpYWxHcmlkQm94T3BlbmVkOiBib29sZWFuXHJcblxyXG4gICAgZ3JvdXBHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNHcm91cEdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBhY2NvdW50R3JpZEJveFZhbHVlOiBhbnlcclxuICAgIGlzQWNjb3VudEdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBzZWxlY3RlZEluYm91bmRJbnZvaWNlOiBhbnk7XHJcbiAgICBjaXRpZXM6IGFueTtcclxuICAgIGNpdHlTZXJ2aWNlOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogSGl0SW5ib3VuZEludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVNlcnZpY2U6IEhpdEludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXJGb3JQYXJ0bmVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJ1c2luZXNzUGFydG5lckdyb3VwU2VydmljZTogSGl0QnVzaW5lc3NQYXJ0bmVyR3JvdXBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5R3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuY291bnRyeUdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgICAgIHRoaXMuc3RhdGVHcmlkQm94X2Rpc3BsYXlFeHByID0gdGhpcy5zdGF0ZUdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgICAgIHRoaXMuc2VyaWFsR3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuc2VyaWFsR3JpZEJveF9kaXNwbGF5RXhwci5iaW5kKHRoaXMpXHJcbiAgICAgICAgdGhpcy5ncm91cEdyaWRCb3hfZGlzcGxheUV4cHIgPSB0aGlzLmdyb3VwR3JpZEJveF9kaXNwbGF5RXhwci5iaW5kKHRoaXMpXHJcbiAgICAgICAgdGhpcy5hY2NvdW50R3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuYWNjb3VudEdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgfVxyXG4gICAgY291bnRyeUdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvdW50cnlHcmlkQm94VmFsdWUpICYmICFpc051bGxPckVtcHR5KHRoaXMuY291bnRyeUdyaWRCb3hWYWx1ZSkpIHtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhcnRuZXIuY29udHJvbHMucGFydG5lckNvdW50cnkuc2V0VmFsdWUodGhpcy5jb3VudHJ5R3JpZEJveFZhbHVlWzBdLmNvZGUpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhdGVzKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlHcmlkQm94VmFsdWVbMF0ubmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZUdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnN0YXRlR3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLnN0YXRlR3JpZEJveFZhbHVlKSkge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFydG5lci5jb250cm9scy5wYXJ0bmVyU3RhdGUuc2V0VmFsdWUodGhpcy5zdGF0ZUdyaWRCb3hWYWx1ZVswXS5jb2RlKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zdGF0ZUdyaWRCb3hWYWx1ZVswXS5uYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlcmlhbEdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnNlcmlhbEdyaWRCb3hWYWx1ZSkgJiYgIWlzTnVsbE9yRW1wdHkodGhpcy5zZXJpYWxHcmlkQm94VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJTZXJpZXMuc2V0VmFsdWUodGhpcy5zZXJpYWxHcmlkQm94VmFsdWVbMF0uc2VyaWVzKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJpYWxHcmlkQm94VmFsdWVbMF0ubmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cEdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmdyb3VwR3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLmdyb3VwR3JpZEJveFZhbHVlKSkge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFydG5lci5jb250cm9scy5wYXJ0bmVyR3JvdXAuc2V0VmFsdWUodGhpcy5ncm91cEdyaWRCb3hWYWx1ZVswXS5jb2RlKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5ncm91cEdyaWRCb3hWYWx1ZVswXS5uYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjY291bnRHcmlkQm94X2Rpc3BsYXlFeHByKCkge1xyXG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5hY2NvdW50R3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLmFjY291bnRHcmlkQm94VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJBY2NvdW50LnNldFZhbHVlKHRoaXMuYWNjb3VudEdyaWRCb3hWYWx1ZVswXS5pZClcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuYWNjb3VudEdyaWRCb3hWYWx1ZVswXS50ZXh0fWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ291bnRyeUdyaWRCb3hPcHRpb25DaGFuZ2VkKGUpIHtcclxuICAgICAgICBpZiAoZS5uYW1lID09PSAndmFsdWUnKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pc0NvdW50cnlHcmlkQm94T3BlbmVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TdGF0ZUdyaWRCb3hPcHRpb25DaGFuZ2VkKGUpIHtcclxuICAgICAgICBpZiAoZS5uYW1lID09PSAndmFsdWUnKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pc1N0YXRlR3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uU2VyaWFsR3JpZEJveE9wdGlvbkNoYW5nZWQoZSkge1xyXG4gICAgICAgIGlmIChlLm5hbWUgPT09ICd2YWx1ZScpIHtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzU2VyaWFsR3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uR3JvdXBHcmlkQm94T3B0aW9uQ2hhbmdlZChlKSB7XHJcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3ZhbHVlJykge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNHcm91cEdyaWRCb3hPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkFjY291bnRHcmlkQm94T3B0aW9uQ2hhbmdlZChlKSB7XHJcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3ZhbHVlJykge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNBY2NvdW50R3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VzRGF0YVNvdXJjZSA9IHRoaXMuc2VydmljZS5Mb2FkSW5ib3VuZEludm9pY2VzO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0U3RhdHVzZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VTdGF0dXNMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UmVjZWl2ZXJSZXNwb25zZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwID0gbGlzdDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ0NvdW50cmllcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldENvdW50cmllcygpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nQ291bnRyaWVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXMgPSBsaXN0O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiw5xsa2VsZXIgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgY291bnRyaWVzOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nR3JvdXBzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ1c2luZXNzUGFydG5lckdyb3VwU2VydmljZS5nZXRTdXBwbGllckdyb3VwcygpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nR3JvdXBzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVHcm91cHMgPSBsaXN0O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiUGFydG5lciBncnVwbGFyxLEgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgZ3JvdXBzOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0U2FwT2JqZWN0cygpLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlT2JqZWN0c0VudW1Mb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldEluYm91bmRJbnZvaWNlKCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbmJvdW5kSW52b2ljZShuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbnZvaWNlUHJldmlldyhyZWNvcmQpIHtcclxuICAgICAgICB0aGlzLmludm9pY2VTZXJ2aWNlLmdldEludm9pY2VQcmV2aWV3KHJlY29yZC5pZCwgMTAwMDAwMCkuc3Vic2NyaWJlKGZhdHVyYSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGBkYXRhOnRleHQvaHRtbDtiYXNlNjQsJHtmYXR1cmEucHJldmlld0hUTUx9YDtcclxuICAgICAgICAgICAgY29uc3QgbmV3VGFiID0gd2luZG93Lm9wZW4oKTtcclxuICAgICAgICAgICAgbmV3VGFiLmRvY3VtZW50LnRpdGxlID0gcmVjb3JkLmlkXHJcbiAgICAgICAgICAgIG5ld1RhYi5kb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IGA8aWZyYW1lIHNyYz1cIiR7c291cmNlfVwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBzdHlsZT1cImJvcmRlcjpub25lO1wiPjwvaWZyYW1lPmA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlblJlc3BvbnNlTW9kYWwocmVjb3JkKSB7XHJcblxyXG4gICAgICAgIHRoaXMuYnVpbGRGb3JtKHJlY29yZCk7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsT3BlbkZvclJlc3BvbnNlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZEZvcm0ocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtUmVzcG9uc2UgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgaWQ6IHJlY29yZC5pZCxcclxuICAgICAgICAgICAgaW52b2ljZVVVSUQ6IHJlY29yZC51dUlkLFxyXG4gICAgICAgICAgICBpc0FjY2VwdGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgaXNSZWplY3RlZDogZmFsc2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kSW52b2ljZVJlc3BvbnNlKHJlc3BvbnNlOiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1SZXNwb25zZS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIHZhciByZXN1bHQgPSB0aGlzLmZvcm1SZXNwb25zZS52YWx1ZVxyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY2Uuc2VuZEludm9pY2VSZXNwb25zZShyZXN1bHQuaW52b2ljZVVVSUQsIHJlc3BvbnNlLCByZXN1bHQuaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgdGhpcy5pc01vZGFsT3BlbkZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBvcGVuUGFydG5lck1vZGFsKHJlY29yZCkge1xyXG5cclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmluZm8oXCJNdWhhdGFwIGtvbnRyb2zDvCB5YXDEsWzEsXlvciwgbMO8dGZlbiBiZWtsZXlpbml6LlwiKVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jaGVja0J1c2luZXNzUGFydG5lckV4aXN0KHJlY29yZC5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZEZvcm1Gb3JQYXJ0bmVyKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihyZWNvcmQuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuICsgXCIgbnVtYXJhbMSxIHNhdMSxY8SxIHphdGVuIG1ldmN1dC5cIilcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0ZXMoKSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdTdGF0ZXMgPSB0cnVlO1xyXG4gICAgICAgIC8vIMOWbmNlIG1ldmN1dCBzdGF0ZSBzZcOnaW1pbmkgdGVtaXpsZVxyXG4gICAgICAgIHRoaXMuZm9ybVBhcnRuZXIuY29udHJvbHMucGFydG5lclN0YXRlLnNldFZhbHVlKCcnKTtcclxuICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVTdGF0ZXMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFN0YXRlcyh0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJDb3VudHJ5LnZhbHVlKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1N0YXRlcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0bmVyQXZhaWxhYmxlU3RhdGVzID0gbGlzdDtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIsSwbC9leWFsZXQgYmlsZ2lsZXJpIHnDvGtsZW5pcmtlbiBiaXIgaGF0YSBvbHXFn3R1LlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHN0YXRlczonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVGb3JtUGFydG5lcigpIHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yUGFydG5lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JQYXJ0bmVyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mb3JtUGFydG5lci5yZXNldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUJ1c2luZXNzUGFydG5lcigpIHtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICBpZiAodGhpcy5mb3JtUGFydG5lci5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuaXNNb2RhbEJ1c3lGb3JQYXJ0bmVyID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgbGV0IHJlcXVlc3REdG9BZGRyZXNzZXM6IEJwQWRkcmVzc1tdID0gW11cclxuICAgICAgICByZXF1ZXN0RHRvQWRkcmVzc2VzLnB1c2goe1xyXG4gICAgICAgICAgICBhZGRyZXNzTmFtZTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJBZGRyZXNzPy52YWx1ZSxcclxuICAgICAgICAgICAgc3RyZWV0OiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lclN0cmVldD8udmFsdWUsXHJcbiAgICAgICAgICAgIGJsb2NrOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckJsb2NrPy52YWx1ZSxcclxuICAgICAgICAgICAgemlwQ29kZTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJaaXBDb2RlPy52YWx1ZSxcclxuICAgICAgICAgICAgY2l0eTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJDaXR5Py52YWx1ZSxcclxuICAgICAgICAgICAgY291bnR5OiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckNvdW50eT8udmFsdWUsXHJcbiAgICAgICAgICAgIGNvdW50cnk6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQ291bnRyeT8udmFsdWUsXHJcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lclN0YXRlPy52YWx1ZSxcclxuICAgICAgICAgICAgYWRkcmVzc1R5cGU6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQWRkcmVzc1R5cGU/LnZhbHVlXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0RHRvOiBDcmVhdGVCdXNpbmVzc1BhcnRuZXJTdXBwbGllckR0byA9IHtcclxuICAgICAgICAgICAgY2FyZENvZGU6IFwiXCIsXHJcbiAgICAgICAgICAgIHVuaWZpZWRGZWRlcmFsVGF4SUQ6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy52a24/LnZhbHVlLFxyXG4gICAgICAgICAgICBjYXJkTmFtZTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/Lm5hbWU/LnZhbHVlLFxyXG4gICAgICAgICAgICBjYXJkVHlwZTogXCJTXCIsXHJcbiAgICAgICAgICAgIGN1cnJlbmN5OiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckN1cnJlbmN5Py52YWx1ZSxcclxuICAgICAgICAgICAgZGViaXRvckFjY291bnQ6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQWNjb3VudD8udmFsdWUsXHJcbiAgICAgICAgICAgIHNlcmllczogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJTZXJpZXM/LnZhbHVlLFxyXG4gICAgICAgICAgICBncm91cENvZGU6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyR3JvdXA/LnZhbHVlLFxyXG4gICAgICAgICAgICB3ZWJzaXRlOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lcldlYlNpdGVVUkk/LnZhbHVlLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsSUQ6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQWRkSWQ/LnZhbHVlLFxyXG4gICAgICAgICAgICBicEFkZHJlc3NlczogcmVxdWVzdER0b0FkZHJlc3Nlc1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVCdXNpbmVzc1BhcnRuZXJGb3JTdXBwbGllcihyZXF1ZXN0RHRvKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVGb3JtUGFydG5lcigpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MocmVzdWx0LmNhcmRDb2RlICsgXCIga29kbHUgbXVoYXRhcCBiYcWfYXLEsXlsYSBvbHXFn3R1cnVsZHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiTXVoYXRhcCBvbHXFn3R1cnVsdXJrZW4gYmlyIGhhdGEgb2x1xZ90dS5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignTXVoYXRhcCBvbHXFn3R1cnVsdXJrZW4gYmlyIGhhdGEgb2x1xZ90dTonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGJ1aWxkRm9ybUZvclBhcnRuZXIocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFBhcnRuZXJEZXRhaWxzKHJlY29yZC5pZCkuc3Vic2NyaWJlKGludm9pY2UgPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFydG5lciA9IHRoaXMuZm9ybUJ1aWxkZXJGb3JQYXJ0bmVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIHZrbjogW3JlY29yZC5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24gPz8gXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIG5hbWU6IFtyZWNvcmQuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lID8/IFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyQ3VycmVuY3k6IFtyZWNvcmQuZG9jdW1lbnRDdXJyZW5jeUNvZGUgPz8gXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJBY2NvdW50OiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJTZXJpZXM6IFtcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckdyb3VwOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJFbWFpbDogW2ludm9pY2U/LmFjY291bnRpbmdTdXBwbGllclBhcnR5Py5wYXJ0eT8uY29udGFjdD8uZWxlY3Ryb25pY01haWw/LnZhbHVlID8/IFwiXCJdLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lcldlYlNpdGVVUkk6IFtpbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT8ucGFydHk/LndlYnNpdGVVUkk/LnZhbHVlID8/IFwiXCJdLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckFkZElkOiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wYXJ0eVRheFNjaGVtZT8udGF4U2NoZW1lPy5uYW1lPy52YWx1ZSA/PyBcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckFkZHJlc3NUeXBlOiBcIkJcIixcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJBZGRyZXNzOiBcIkZhdHVyYSBBZHJlc2lcIixcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJTdHJlZXQ6IFtpbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT8ucGFydHk/LnBvc3RhbEFkZHJlc3M/LnN0cmVldE5hbWU/LnZhbHVlID8/IFwiXCJdLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckJsb2NrOiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wb3N0YWxBZGRyZXNzPy5ibG9ja05hbWU/LnZhbHVlID8/IFwiXCJdLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckNpdHk6IFtpbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT8ucGFydHk/LnBvc3RhbEFkZHJlc3M/LmNpdHlOYW1lPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJaaXBDb2RlOiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wb3N0YWxBZGRyZXNzPy5wb3N0YWxab25lPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJDb3VudHk6IFtpbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT8ucGFydHk/LnBvc3RhbEFkZHJlc3M/LmNpdHlTdWJkaXZpc2lvbk5hbWU/LnZhbHVlID8/IFwiXCJdLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lclN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckNvdW50cnk6IFwiXCJcclxuXHJcbiAgICAgICAgICAgICAgICAvL3BhcnRuZXJDaXR5OiBpbnZvaWNlRGV0YWlscy5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JQYXJ0bmVyID0gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdBY2NvdW50cyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXJpYWxHcmlkQm94VmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBHcmlkQm94VmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuc3RhdGVHcmlkQm94VmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuY291bnRyeUdyaWRCb3hWYWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5hY2NvdW50R3JpZEJveFZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0QmFua0FjY291bnRCeUN1cnJlbmN5KHJlY29yZC5kb2N1bWVudEN1cnJlbmN5Q29kZSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdBY2NvdW50cyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBsaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFydG5lckF2YWlsYWJsZUFjY291bnRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGVsZW1lbnQuYWNjdENvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBlbGVtZW50LmFjY3RDb2RlICsgXCIgXCIgKyBlbGVtZW50LmFjY3ROYW1lLnRvVXBwZXJDYXNlKCkgKyBcIiBcIiArIGVsZW1lbnQuYWN0Q3Vyci50b1VwcGVyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiQmFua2EgaGVzYXBsYXLEsSB5w7xrbGVuaXJrZW4gYmlyIGhhdGEgb2x1xZ90dS5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBhY2NvdW50czonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmlzTG9hZGluZ1NlcmllcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFBhcnRuZXJOdW1iZXJpbmdTZXJpZXMoKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1NlcmllcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJ0bmVyQXZhaWxhYmxlU2VyaWVzID0gbGlzdDtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIlNlcmkgbnVtYXJhbGFyxLEgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgc2VyaWVzOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFydG5lckF2YWlsYWJsZVN0YXRlcyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EcmFmdEZvcm0ocmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5pbmZvKFwiTXVoYXRhcCBrb250cm9sw7wgeWFwxLFsxLF5b3IsIGzDvHRmZW4gYmVrbGV5aW5pei5cIilcclxuICAgICAgICB0aGlzLnNlcnZpY2UuY2hlY2tCdXNpbmVzc1BhcnRuZXJFeGlzdChyZWNvcmQuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXCLEsGxnaWxpIFZLTid5ZSBhaXQgKFwiICsgcmVjb3JkLmFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrbiArIFwiKSBtdWhhdGFwIGJ1bHVuYW1hZMSxLCBsw7x0ZmVuIMO2bmNlIG11aGF0YXAgb2x1xZ90dXJ1bi5cIilcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UgPSByZWNvcmQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yRHJhZnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk9wZW5Eb2N1bWVudHNGb3JtKCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuaW5mbyhcIkHDp8SxayBiZWxnZSBzYXTEsXJsYXLEsSBzb3JndWxhbsSxeW9yLCBsw7x0ZmVuIGJla2xleWluaXouXCIpXHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRPcGVuRG9jdW1lbnRzKHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZS5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24pLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuRG9jdW1lbnRzRm9yUGFydG5lciA9IGxpc3Q7XHJcblxyXG4gICAgICAgICAgICBpZiAobGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnB1cmNoYXNlT3JkZXJEb2N1bWVudHMgPSBsaXN0LmZpbHRlcihkb2MgPT4gZG9jLm9ialR5cGUgPT09IDIyKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTYXTEsW4gYWxtYSBzaXBhcmnFn2xlcmkgKE9ialR5cGU9MjIpOicsIHRoaXMucHVyY2hhc2VPcmRlckRvY3VtZW50cyk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gT2JqVHlwZT0yMCBvbGFubGFyxLEgc2F0xLFuIGFsbWEgaXJzYWxpeWVzaSB0YWLEsW5hIGZpbHRyZWxlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHMgPSBsaXN0LmZpbHRlcihkb2MgPT4gZG9jLm9ialR5cGUgPT09IDIwKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTYXTEsW4gYWxtYSBpcnNhbGl5ZWxlcmkgKE9ialR5cGU9MjApOicsIHRoaXMucHVyY2hhc2VEZXNwYXRjaERvY3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICAvLyBPYmpUeXBlPTIyIG9sYW5sYXLEsSBzYXTEsW4gYWxtYSBzaXBhcmnFn2kgdGFixLFuYSBmaWx0cmVsZVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JPcGVuRG9jcyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLndhcm4oXCLEsGxnaWxpIG11aGF0YXAgacOnaW4gYcOnxLFrIGJlbGdlIHNhdMSxcsSxIGJ1bHVuYW1hZMSxLlwiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0T3BlbkRvY3VtZW50cygpIHtcclxuICAgICAgICBsZXQgcHVyY2hhc2VEZXNwYXRjaGVzID0gdGhpcy5keFB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpXHJcbiAgICAgICAgbGV0IHB1cmNoYXNlT3JkZXJzID0gdGhpcy5keFB1cmNoYXNlT3JkZXJEb2N1bWVudHMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dzRGF0YSgpXHJcbiAgICAgICAgbGV0IHJlZmVyZW5jZURvY3MgPSBbXTtcclxuICAgICAgICBpZiAocHVyY2hhc2VPcmRlcnMubGVuZ3RoID4gMCAmJiBwdXJjaGFzZURlc3BhdGNoZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiUmVmZXJhbnMgb2xhcmFrIHlhbG7EsXpjYSBiaXIgYmVsZ2UgdMO8csO8IHNlw6dpbGViaWxpci5cIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChwdXJjaGFzZU9yZGVycy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICByZWZlcmVuY2VEb2NzID0gcHVyY2hhc2VPcmRlcnM7XHJcbiAgICAgICAgaWYgKHB1cmNoYXNlRGVzcGF0Y2hlcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICByZWZlcmVuY2VEb2NzID0gcHVyY2hhc2VEZXNwYXRjaGVzO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5kcmFmdERvY3VtZW50TGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBpZiAocmVmZXJlbmNlRG9jcy5zb21lKGUgPT4gIXRoaXMuZHJhZnREb2N1bWVudExpbmVzLnNvbWUoZCA9PiBkLm9ialR5cGUgPT09IGUub2JqVHlwZSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiUmVmZXJhbnMgb2xhcmFrIHlhbG7EsXpjYSBiaXIgYmVsZ2UgdMO8csO8IHNlw6dpbGViaWxpci5cIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlZmVyZW5jZURvY3MuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgIXRoaXMuZHJhZnREb2N1bWVudExpbmVzLnNvbWUoZHJhZnQgPT5cclxuICAgICAgICAgICAgICAgIGRyYWZ0Lm9ialR5cGUgPT09IGVsZW1lbnQub2JqVHlwZSAmJlxyXG4gICAgICAgICAgICAgICAgZHJhZnQuZG9jRW50cnkgPT09IGVsZW1lbnQuZG9jRW50cnkgJiZcclxuICAgICAgICAgICAgICAgIGRyYWZ0LmxpbmVOdW0gPT09IGVsZW1lbnQubGluZU51bVxyXG4gICAgICAgICAgICApICYmIHRoaXMuZHJhZnREb2N1bWVudExpbmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRRdHk6IGVsZW1lbnQub3BlblF0eSxcclxuICAgICAgICAgICAgICAgIG9wZW5RdHk6IGVsZW1lbnQub3BlblF0eSxcclxuICAgICAgICAgICAgICAgIG9ialR5cGU6IGVsZW1lbnQub2JqVHlwZSxcclxuICAgICAgICAgICAgICAgIGRvY0VudHJ5OiBlbGVtZW50LmRvY0VudHJ5LFxyXG4gICAgICAgICAgICAgICAgZG9jTnVtOiBlbGVtZW50LmRvY051bSxcclxuICAgICAgICAgICAgICAgIG51bUF0Q2FyZDogZWxlbWVudC5udW1BdENhcmQsXHJcbiAgICAgICAgICAgICAgICBsaW5lTnVtOiBlbGVtZW50LmxpbmVOdW0sXHJcbiAgICAgICAgICAgICAgICBkb2NEYXRlOiBlbGVtZW50LmRvY0RhdGUsXHJcbiAgICAgICAgICAgICAgICBkb2NEdWVEYXRlOiBlbGVtZW50LmRvY0R1ZURhdGUsXHJcbiAgICAgICAgICAgICAgICBpdGVtQ29kZTogZWxlbWVudC5pdGVtQ29kZSxcclxuICAgICAgICAgICAgICAgIGRzY3JpcHRpb246IGVsZW1lbnQuZHNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIHRleHQ6IGVsZW1lbnQudGV4dCxcclxuICAgICAgICAgICAgICAgIGZyZWVUeHQ6IGVsZW1lbnQuZnJlZVR4dCxcclxuICAgICAgICAgICAgICAgIGNhcmRDb2RlOiBlbGVtZW50LmNhcmRDb2RlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmhpZGVGb3JtT3BlbkRvY3VtZW50cygpO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVGb3JtT3BlbkRvY3VtZW50cygpIHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yT3BlbkRvY3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yT3BlbkRvY3MgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGlkZUZvcm1EcmFmdCgpIHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yRHJhZnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yRHJhZnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRyYWZ0RG9jdW1lbnRMaW5lcyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmREcmFmdChkcmFmdEdyaWRMaW5lczogYW55W10pIHtcclxuICAgICAgICBsZXQgcmVxdWVzdER0b0RvY3VtZW50TGluZXM6IENvbm5lY3RvckRyYWZ0RG9jdW1lbnRMaW5lRHRvW10gPSBbXTtcclxuXHJcbiAgICAgICAgZHJhZnRHcmlkTGluZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgcmVxdWVzdER0b0RvY3VtZW50TGluZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogZWxlbWVudC5kYXRhLnNlbGVjdGVkUXR5LFxyXG4gICAgICAgICAgICAgICAgYmFzZVR5cGU6IGVsZW1lbnQuZGF0YS5vYmpUeXBlLFxyXG4gICAgICAgICAgICAgICAgYmFzZUVudHJ5OiBlbGVtZW50LmRhdGEuZG9jRW50cnksXHJcbiAgICAgICAgICAgICAgICBiYXNlTGluZTogZWxlbWVudC5kYXRhLmxpbmVOdW1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgbGV0IHJlcXVlc3REdG86IENvbm5lY3RvckRyYWZ0RG9jdW1lbnREdG8gPSB7XHJcbiAgICAgICAgICAgIGRvY0VudHJ5OiBudWxsLFxyXG4gICAgICAgICAgICBkb2NOdW06IG51bGwsXHJcbiAgICAgICAgICAgIGRvY0N1cnJlbmN5OiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LmRvY3VtZW50Q3VycmVuY3lDb2RlPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBkb2NPYmplY3RDb2RlOiBcIm9QdXJjaGFzZUludm9pY2VzXCIsXHJcbiAgICAgICAgICAgIGRvY0RhdGU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcclxuICAgICAgICAgICAgdGF4RGF0ZTogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5pc3N1ZURhdGU/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGRvY0R1ZURhdGU6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8ucGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGU/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGRvY1JhdGU6ICh0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LnByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUgPD0gMSB8fCBpc051bGxPckVtcHR5KHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8ucHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSkpID8gMSA6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZS5wcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlLFxyXG4gICAgICAgICAgICBjYXJkQ29kZTogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIG51bUF0Q2FyZDogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5pbnZvaWNlSWQ/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHVfRUZBVE5POiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/Lmludm9pY2VJZD8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgdV9VVUlEOiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LnV1SWQ/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHVfU0VORDogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5pbnZvaWNlVHlwZUNvZGU/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHVfUHJvZmlsZUlkOiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LnByb2ZpbGVJZD8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgZG9jdW1lbnRMaW5lczogcmVxdWVzdER0b0RvY3VtZW50TGluZXNcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlRHJhZnREb2N1bWVudChyZXF1ZXN0RHRvLCB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UuaWQpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZUZvcm1EcmFmdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKHJlc3VsdC5kb2NFbnRyeSArIFwiIG51bWFyYWzEsSB0YXNsYWsgYmVsZ2UgYmHFn2FyxLF5bGEgb2x1xZ90dXJ1bGR1LlwiKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIlRhc2xhayBiZWxnZSBvbHXFn3R1cnVsdXJrZW4gYmlyIGhhdGEgb2x1xZ90dTpcIiArIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRHJhZnREb2N1bWVudCgpIHtcclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yRHJhZnQgPSB0cnVlO1xyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICBsZXQgZHJhZnRHcmlkTGluZXMgPSB0aGlzLmR4RHJhZnREb2N1bWVudExpbmVzLmluc3RhbmNlLmdldFZpc2libGVSb3dzKClcclxuXHJcbiAgICAgICAgaWYgKGRyYWZ0R3JpZExpbmVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uXHJcbiAgICAgICAgICAgICAgICAuaW5mbygnVGFibG9kYSBzYXTEsXIgYnVsdW5tYWTEscSfxLEgacOnaW4gdGFzbGFrIGJlbGdlIGJvxZ8gb2xhcmFrIG9sdcWfdHVydWxhY2FrdMSxci4gRGV2YW0gZXRtZWsgaXN0aXlvciBtdXN1bnV6PycsIHsga2V5OiAnOjpCaWxnaScsIGRlZmF1bHRWYWx1ZTogJycgfSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gXCJjb25maXJtXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kRHJhZnQoZHJhZnRHcmlkTGluZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yRHJhZnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZihkcmFmdEdyaWRMaW5lcy5maWx0ZXIoeCA9PiB4LmRhdGEuc2VsZWN0ZWRRdHkgPiB4LmRhdGEub3BlblF0eSkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAgICAgICAgICAgLmluZm8oJ1Nlw6dpbGVuIG1pa3RhcsSxLCBhw6fEsWsgbWlrdGFyZGFuIGLDvHnDvGsgb2xhbiBzYXTEsXIvc2F0xLFybGFyIG1ldmN1dC4gRGV2YW0gZXRtZWsgaXN0aXlvciBtdXN1bnV6PycsIHsga2V5OiAnOjpCaWxnaScsIGRlZmF1bHRWYWx1ZTogJycgfSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogQ29uZmlybWF0aW9uLlN0YXR1cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gXCJjb25maXJtXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kRHJhZnQoZHJhZnRHcmlkTGluZXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yRHJhZnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VuZERyYWZ0KGRyYWZ0R3JpZExpbmVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzTWFudWFsKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5wcm9jZXNzTWFudWFsKHJlY29yZC5pZCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhcIkJlbGdlIGJhxZ9hcsSxeWxhIG1hbnVlbCBpxZ9sZW5kaS5cIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmR4SW5ib3VuZEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0JveENoYW5nZWQoZXZlbnQpIHtcclxuXHJcbiAgICAgICAgbGV0IGZvcm1Db250cm9scyA9IHRoaXMuZm9ybVJlc3BvbnNlLmNvbnRyb2xzXHJcbiAgICAgICAgdmFyIGlkID0gZXZlbnQudGFyZ2V0LmlkO1xyXG4gICAgICAgIHZhciBjaGVja2JveGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ3Jlc3BvbnNlQ2hlY2snKSBhcyBOb2RlTGlzdE9mPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG4gICAgICAgIGNoZWNrYm94ZXMuZm9yRWFjaChjaGVja2JveCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGVja2JveC5pZCAhPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sc1tjaGVja2JveC5hdHRyaWJ1dGVzW1wiZm9ybWNvbnRyb2xuYW1lXCJdLnZhbHVlXS5zZXRWYWx1ZShjaGVja2JveC5jaGVja2VkKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUm93c0NvbG9yKGUpIHtcclxuXHJcbiAgICAgICAgaWYgKGUucm93VHlwZSA9PSBcImRhdGFcIikge1xyXG5cclxuICAgICAgICAgICAgaWYgKGUuZGF0YS5yZWNlaXZlclJlc3BvbnNlICE9IDApXHJcbiAgICAgICAgICAgICAgICBlLnJvd0VsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gZS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gMSA/IFwiIzNlYmQ2MFwiIDogXCIjY2M0ZjQ1XCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFJlY2VpdmVyUmVzcG9uc2VOYW1lKHJlc3BvbnNlSWQpIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuaW5ib3VuZEludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwLmZpbmQoKHgpID0+IHguaWQgPT09IHJlc3BvbnNlSWQpO1xyXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGlzcGxheU5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEljb25DbGFzcyhyZXNwb25zZUlkKSB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlSWQgPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2xvY2tcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS1jaGVjay1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVzcG9uc2VJZCA9PSAyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImZhcyBmYS10aW1lcy1jaXJjbGVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RG9jT2JqZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgICAgbGV0IG9iak5hbWUgPSAoKGRhdGEuaXNEcmFmdCA/IFwiVGFzbGFrIFwiIDogXCJcIikgKyB0aGlzLmludm9pY2VPYmplY3RzRW51bUxvb2t1cC5maW5kKCh4KSA9PiB4LmlkID09IChkYXRhLmlzRHJhZnQgPyBkYXRhLnJlc291cmNlU3ViRG9jVHlwZSA6IGRhdGEucmVzb3VyY2VEb2NUeXBlKSk/LmRpc3BsYXlOYW1lKTtcclxuICAgICAgICBpZiAob2JqTmFtZSA9PSBcInVuZGVmaW5lZFwiKVxyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuXHJcbiAgICAgICAgcmV0dXJuIG9iak5hbWU7XHJcbiAgICB9XHJcbn0iLCI8YWJwLXBhZ2UgW3RpdGxlXT1cIidlRG9udXN1bTo6SW5ib3VuZEludm9pY2VzJyB8IGFicExvY2FsaXphdGlvblwiPlxyXG4gIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciBjbGFzcz1cImNvbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGctZW5kIHB0LTJcIj5cclxuICAgICAgPGJ1dHRvbiAqYWJwUGVybWlzc2lvbj1cIidlRG9udXN1bS5JbnZvaWNlcy5DcmVhdGUnXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiAoY2xpY2spPVwiZ2V0SW5ib3VuZEludm9pY2UoKVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGUgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnZURvbnVzdW06OkNoZWNrSW5ib3VuZEludm9pY2VzJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgPHA+RW50ZWdyYXTDtnJkZW4gYWzEsW5hbiBmYXR1cmFsYXLEsSBsaXN0ZWxleWVuIGVrcmFuPC9wPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxkeC1kYXRhLWdyaWQgI2R4SW5ib3VuZEludm9pY2VJbnN0YW5jZSBbZGF0YVNvdXJjZV09XCJpbmJvdW5kSW52b2ljZXNEYXRhU291cmNlXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCJcclxuICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiIFthbGxvd0NvbHVtblJlb3JkZXJpbmddPVwidHJ1ZVwiIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA3NXZoO1wiPlxyXG4gICAgICAgIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiIFtzaG93SW5mb109XCJ0cnVlXCIgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzUwLDEwMCwyMDBdXCIgW3Nob3dOYXZpZ2F0aW9uQnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9keG8tcGFnZXI+XHJcbiAgICAgICAgPGR4by1wYWdpbmcgW3BhZ2VTaXplXT1cIjUwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJtdWx0aXBsZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+XHJcbiAgICAgICAgPC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWdyb3VwLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIiBbYWxsb3dDb2x1bW5EcmFnZ2luZ109XCJ0cnVlXCI+PC9keG8tZ3JvdXAtcGFuZWw+XHJcbiAgICAgICAgPGR4by1ncm91cGluZyAjZXhwYW5kIFthdXRvRXhwYW5kQWxsXT1cImZhbHNlXCIgW2FsbG93Q29sbGFwc2luZ109XCJ0cnVlXCJcclxuICAgICAgICAgIFtjb250ZXh0TWVudUVuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWdyb3VwaW5nPlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCIgW2FsbG93RXhwb3J0U2VsZWN0ZWREYXRhXT1cImZhbHNlXCI+PC9keG8tZXhwb3J0PlxyXG4gICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICA8ZHhvLWZpbHRlci1idWlsZGVyIFthbGxvd0hpZXJhcmNoaWNhbEZpZWxkc109XCJ0cnVlXCI+PC9keG8tZmlsdGVyLWJ1aWxkZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcGFuZWwgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1wYW5lbD5cclxuICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIFtmaXhlZF09XCJ0cnVlXCIgZGF0YUZpZWxkPVwiaWRcIiB3aWR0aD1cIjEyMFwiIFthbGxvd0dyb3VwaW5nXT1cImZhbHNlXCIgW2FsbG93RmlsdGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFthbGxvd0hlYWRlckZpbHRlcmluZ109XCJmYWxzZVwiIFthbGxvd0hpZGluZ109XCJmYWxzZVwiIFthbGxvd1Jlb3JkZXJpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwib3BlcmF0aW9uVGVtcGxhdGVcIiBjYXB0aW9uPVwie3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCByb3cgb2YgJ29wZXJhdGlvblRlbXBsYXRlJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duVG9nZ2xlIFtkaXNhYmxlZF09XCJkaXNhYmxlZElkQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNvZyBtci0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAge3sgJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwidXBkYXRlKHJvdy5kYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWRpdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImdldEludm9pY2VQcmV2aWV3KHJvdy5kYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LmRhdGEuc3RhdHVzID09IDYwMCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNzAwIHx8IHJvdy5kYXRhLnN0YXR1cyA9PSA2NTAgfHwgcm93LmRhdGEuc3RhdHVzID09IDc1MCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNjgwIHx8IHJvdy5kYXRhLnN0YXR1cyA9PSA3ODBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1leWVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6R2V0VmlldycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cIm9wZW5SZXNwb25zZU1vZGFsKHJvdy5kYXRhKVwiIHNcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cuZGF0YS5wcm9maWxlSWQgPT0gJ1RJQ0FSSUZBVFVSQScgJiYgcm93LmRhdGEucmVjZWl2ZXJSZXNwb25zZSA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6UmVzcG9uc2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJvcGVuUGFydG5lck1vZGFsKHJvdy5kYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LmRhdGEuaW52b2ljZVR5cGVDb2RlICE9ICdJQURFJyAmJiAocm93LmRhdGEuc3RhdHVzID09IDYwMCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNzAwKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXVzZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6Q3JlYXRlQnVzaW5lc3NQYXJ0bmVyJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwib3BlbkRyYWZ0Rm9ybShyb3cuZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy5kYXRhLmludm9pY2VUeXBlQ29kZSAhPSAnSUFERScgJiYgcm93LmRhdGEuc3RhdHVzID09IDYwMCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNzAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2VEb251c3VtOjpDcmVhdGVEcmFmdERvY3VtZW50JyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwicHJvY2Vzc01hbnVhbChyb3cuZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy5kYXRhLnN0YXR1cyA9PSA2MDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWhhbmQtcGFwZXItb1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2VEb251c3VtOjpQcm9jZXNzTWFudWFsJyB8IGFicExvY2FsaXphdGlvblxyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImlzc3VlRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Oklzc3VlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicGF5bWVudFRlcm1zUGF5bWVudER1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpQYXltZW50RHVlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidXVJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VXVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaW52b2ljZUlkXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJbnZvaWNlSWQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZVwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZSd8YWJwTG9jYWxpemF0aW9ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6QWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuJ3xhYnBMb2NhbGl6YXRpb259fVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJzdGF0dXNcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlN0YXR1cyd8YWJwTG9jYWxpemF0aW9ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgIDxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cImluYm91bmRJbnZvaWNlU3RhdHVzTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cImRpc3BsYXlOYW1lXCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInJlc291cmNlRG9jRW50cnlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlJlc291cmNlRG9jRW50cnknfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBjZWxsVGVtcGxhdGU9XCJkb2NUeXBlVGVtcGxhdGVcIiBkYXRhRmllbGQ9XCJyZXNvdXJjZURvY1R5cGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpSZXNvdXJjZURvY1R5cGUnfGFicExvY2FsaXphdGlvbn19XCI+XHJcbiAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2RvY1R5cGVUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAge3tnZXREb2NPYmplY3ROYW1lKGRhdGEuZGF0YSl9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJyZWNlaXZlclJlc3BvbnNlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpSZWNlaXZlclJlc3BvbnNlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBjZWxsVGVtcGxhdGU9XCJpY29uVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cImluYm91bmRJbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2ljb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cImdldEljb25DbGFzcyhkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSlcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2NvbG9yJzpkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSA9PSAnMScgPyAnZ3JlZW4nIDogZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gJzInID8gJ3JlZCcgOiAnZ3JheSd9XCI+PC9pPlxyXG4gICAgICAgICAge3tnZXRSZWNlaXZlclJlc3BvbnNlTmFtZShkYXRhLmRhdGEucmVjZWl2ZXJSZXNwb25zZSl9fVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwcm9maWxlSWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlByb2ZpbGVJZCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaW52b2ljZVR5cGVDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJbnZvaWNlVHlwZUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImxlZ2FsTW9uZXRhcnlUb3RhbFBheWFibGVBbW91bnRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlBheWFibGVBbW91bnQnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIGRhdGFUeXBlPVwibnVtYmVyXCIgZm9ybWF0PVwiIywjIzAuMDBcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jdW1lbnRDdXJyZW5jeUNvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0N1cnJlbmN5J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJwcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NSYXRlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBkYXRhVHlwZT1cIm51bWJlclwiIGZvcm1hdD1cIiMsIyMwLjAwXCI+PC9keGktY29sdW1uPlxyXG4gICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeUZvclJlc3BvbnNlXCIgWyh2aXNpYmxlKV09XCJpc01vZGFsT3BlbkZvclJlc3BvbnNlXCIgW29wdGlvbnNdPVwieyBzaXplOiAnbScgfVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlNlbmRSZXNwb25zZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtUmVzcG9uc2VcIiBpZD1cImludm9pY2UtcmVzcG9uc2VcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgZmFkZS1pbi10b3BcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6MjBweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OklkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtaWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIiBtYXhsZW5ndGg9XCIyNTZcIiBhdXRvZm9jdXM+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXV1aWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlV1SWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS11dWlkXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImludm9pY2VVVUlEXCIgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1hY2NlcHRcIiBmb3JtQ29udHJvbE5hbWU9XCJpc0FjY2VwdGVkXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cInJlc3BvbnNlQ2hlY2tcIiAoY2hhbmdlKT1cImNoZWNrQm94Q2hhbmdlZCgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWFjY2VwdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkFjY2VwdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXJlamVjdFwiIGZvcm1Db250cm9sTmFtZT1cImlzUmVqZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwicmVzcG9uc2VDaGVja1wiIChjaGFuZ2UpPVwiY2hlY2tCb3hDaGFuZ2VkKCRldmVudClcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtcmVqZWN0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UmVqZWN0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIGZvcm1OYW1lPVwiaW52b2ljZS1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kSW52b2ljZVJlc3BvbnNlKGZhbHNlKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlJlamVjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGZvcm1OYW1lPVwiaW52b2ljZS1yZXNwb25zZVwiXHJcbiAgICAgIChjbGljayk9XCJzZW5kSW52b2ljZVJlc3BvbnNlKHRydWUpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6QWNjZXB0JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzTW9kYWxCdXN5Rm9yUGFydG5lclwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5Gb3JQYXJ0bmVyXCIgW29wdGlvbnNdPVwieyBzaXplOiAneGwnIH1cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgJ2VEb251c3VtOjpDcmVhdGVCdXNpbmVzc1BhcnRuZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVBhcnRuZXJcIiBpZD1cImNyZWF0ZS1wYXJ0bmVyXCIgKG5nU3VibWl0KT1cImNyZWF0ZUJ1c2luZXNzUGFydG5lcigpXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyTmFtZSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1uYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIG1heGxlbmd0aD1cIjI1NlwiIGF1dG9mb2N1cz48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci12a25cIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJWS04nfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItdmtuXCIgW2Rpc2FibGVkXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ2a25cIlxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci1wYXJ0bmVyLWFkZC1pZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckFkZGl0aW9uYWxJZCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1wYXJ0bmVyLWFkZC1pZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckFkZElkXCJcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItY3VycmVuY3lcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJDdXJyZW5jeSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1jdXJyZW5jeVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckN1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLXdlYi1zaXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyV2ViU2l0ZSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci13ZWItc2l0ZVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJXZWJTaXRlVVJJXCJcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItc2VyaWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyU2VyaWVzJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYm94IFsodmFsdWUpXT1cInNlcmlhbEdyaWRCb3hWYWx1ZVwiIFsob3BlbmVkKV09XCJpc1NlcmlhbEdyaWRCb3hPcGVuZWRcIiB2YWx1ZUV4cHI9XCJzZXJpZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbZGVmZXJSZW5kZXJpbmddPVwiZmFsc2VcIiBbZGlzcGxheUV4cHJdPVwic2VyaWFsR3JpZEJveF9kaXNwbGF5RXhwclwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2VEb251c3VtOjpTZWxlY3RBVmFsdWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lclNlcmllc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlU2VyaWVzXCJcclxuICAgICAgICAgICAgICAgICAgKG9uT3B0aW9uQ2hhbmdlZCk9XCJvblNlcmlhbEdyaWRCb3hPcHRpb25DaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlU2VyaWVzXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbaGVpZ2h0XT1cIjI1MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZFJvd0tleXMpXT1cInNlcmlhbEdyaWRCb3hWYWx1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJzZXJpZXNcIiBjYXB0aW9uPVwiU2VyaVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cIkFkXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJpbmZpbml0ZVwiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgICAgIDwvZHgtZHJvcC1kb3duLWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItZ3JvdXBzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyR3JvdXAnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1ncm91cHNcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlR3JvdXBzXCIgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyR3JvdXBcIiBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdHcm91cHNcIiBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgYXV0b2ZvY3VzPjwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ0dyb3Vwc1wiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwIHN0YXJ0LTUwIHRyYW5zbGF0ZS1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydlRG9udXN1bTo6TG9hZGluZyd8YWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGR4LWRyb3AtZG93bi1ib3ggWyh2YWx1ZSldPVwiZ3JvdXBHcmlkQm94VmFsdWVcIiBbKG9wZW5lZCldPVwiaXNHcm91cEdyaWRCb3hPcGVuZWRcIiB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgICAgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2Rpc3BsYXlFeHByXT1cImdyb3VwR3JpZEJveF9kaXNwbGF5RXhwclwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2VEb251c3VtOjpTZWxlY3RBVmFsdWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAob25PcHRpb25DaGFuZ2VkKT1cIm9uR3JvdXBHcmlkQm94T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1kYXRhLWdyaWQgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUdyb3Vwc1wiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW2hlaWdodF09XCIyNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRSb3dLZXlzKV09XCJncm91cEdyaWRCb3hWYWx1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJjb2RlXCIgY2FwdGlvbj1cIktvZFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cIkFkXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJpbmZpbml0ZVwiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgICAgIDwvZHgtZHJvcC1kb3duLWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItYWNjb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckJhbmtBY2NvdW50J3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItYWNjb3VudFwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVBY2NvdW50c1wiIHZhbHVlRXhwcj1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJBY2NvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nQWNjb3VudHNcIiBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC1zZWxlY3QtYm94PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nQWNjb3VudHNcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snZURvbnVzdW06OkxvYWRpbmcnfGFicExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYm94IFsodmFsdWUpXT1cImFjY291bnRHcmlkQm94VmFsdWVcIiBbKG9wZW5lZCldPVwiaXNBY2NvdW50R3JpZEJveE9wZW5lZFwiIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICBbZGVmZXJSZW5kZXJpbmddPVwiZmFsc2VcIiBbZGlzcGxheUV4cHJdPVwiYWNjb3VudEdyaWRCb3hfZGlzcGxheUV4cHJcIiBbZHJvcERvd25PcHRpb25zXT1cInsgd2lkdGg6IDc1MCB9XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZURvbnVzdW06OlNlbGVjdEFWYWx1ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHNcIlxyXG4gICAgICAgICAgICAgICAgICAob25PcHRpb25DaGFuZ2VkKT1cIm9uQWNjb3VudEdyaWRCb3hPcHRpb25DaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHNcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtoZWlnaHRdPVwiMjUwXCJcclxuICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkUm93S2V5cyldPVwiYWNjb3VudEdyaWRCb3hWYWx1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpZFwiIGNhcHRpb249XCJLb2RcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidGV4dFwiIGNhcHRpb249XCJBZFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaW5maW5pdGVcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci1tYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyTWFpbCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1tYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckVtYWlsXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgPGR4LXNlbGVjdC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1jb3VudHJ5XCIgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUNvdW50cmllc1wiIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckNvdW50cnlcIiBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJnZXRTdGF0ZXMoKVwiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdDb3VudHJpZXNcIiBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBhdXRvZm9jdXM+PC9keC1zZWxlY3QtYm94PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nQ291bnRyaWVzXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTAgc3RhcnQtNTAgdHJhbnNsYXRlLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2VEb251c3VtOjpMb2FkaW5nJ3xhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItY291bnRyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6UGFydG5lckNvdW50cnknIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGR4LWRyb3AtZG93bi1ib3ggWyh2YWx1ZSldPVwiY291bnRyeUdyaWRCb3hWYWx1ZVwiIFsob3BlbmVkKV09XCJpc0NvdW50cnlHcmlkQm94T3BlbmVkXCIgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2Rpc3BsYXlFeHByXT1cImNvdW50cnlHcmlkQm94X2Rpc3BsYXlFeHByXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6U2VsZWN0QVZhbHVlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJDb3VudHJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUNvdW50cmllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uT3B0aW9uQ2hhbmdlZCk9XCJvbkNvdW50cnlHcmlkQm94T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlQ291bnRyaWVzXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbaGVpZ2h0XT1cIjI1MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkUm93S2V5cyldPVwiY291bnRyeUdyaWRCb3hWYWx1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNvZGVcIiBjYXB0aW9uPVwiQ29kZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm5hbWVcIiBjYXB0aW9uPVwiTmFtZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaW5maW5pdGVcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItc3RhdGVcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJTdGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGR4LXNlbGVjdC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1zdGF0ZVwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVTdGF0ZXNcIiB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJTdGF0ZVwiIG1heGxlbmd0aD1cIjI1NlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZ1N0YXRlc1wiIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIiBhdXRvZm9jdXM+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1N0YXRlc1wiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwIHN0YXJ0LTUwIHRyYW5zbGF0ZS1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydlRG9udXN1bTo6TG9hZGluZyd8YWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGR4LWRyb3AtZG93bi1ib3ggWyh2YWx1ZSldPVwic3RhdGVHcmlkQm94VmFsdWVcIiBbKG9wZW5lZCldPVwiaXNTdGF0ZUdyaWRCb3hPcGVuZWRcIiB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGVmZXJSZW5kZXJpbmddPVwiZmFsc2VcIiBbZGlzcGxheUV4cHJdPVwic3RhdGVHcmlkQm94X2Rpc3BsYXlFeHByXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6U2VsZWN0QVZhbHVlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVTdGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbk9wdGlvbkNoYW5nZWQpPVwib25TdGF0ZUdyaWRCb3hPcHRpb25DaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVTdGF0ZXNcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtoZWlnaHRdPVwiMjUwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRSb3dLZXlzKV09XCJzdGF0ZUdyaWRCb3hWYWx1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNvZGVcIiBjYXB0aW9uPVwiQ29kZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm5hbWVcIiBjYXB0aW9uPVwiTmFtZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaW5maW5pdGVcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXBhZ2luZyBbZW5hYmxlZF09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cIjEwXCI+PC9keG8tcGFnaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1ib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItemlwY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lclppcGNvZGUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItemlwY29kZVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJaaXBDb2RlXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItY2l0eVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckNpdHknfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItY2l0eVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJDaXR5XCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItY291bnR5XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyQ291bnR5J3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLWNvdW50eVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJDb3VudHlcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci1zdHJlZXRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJTdHJlZXQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItc3RyZWV0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lclN0cmVldFwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyQmxvY2snfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItYmxvY2tcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQmxvY2tcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiaXNNb2RhbEJ1c3lGb3JQYXJ0bmVyXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIlxyXG4gICAgICBmb3JtPVwiY3JlYXRlLXBhcnRuZXJcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpDcmVhdGVCdXNpbmVzc1BhcnRuZXInIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lGb3JEcmFmdFwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5Gb3JEcmFmdFwiIFtvcHRpb25zXT1cInsgc2l6ZTogJ3hsJyB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnZURvbnVzdW06OkNyZWF0ZURyYWZ0JykgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxyXG4gICAgPGZvcm0gaWQ9XCJkcmFmdC1kb2N1bWVudFwiPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkXCI+IC0tPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj4gLS0+XHJcbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTNcIj4gLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC1sYWJlbFwiPiB7eydlRG9udXN1bTo6UGFydG5lclZLTid8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1kcmFmdC12a25cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtbGFiZWxcIj4ge3snZURvbnVzdW06Oklzc3VlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxkeC1kYXRlLWJveCBpZD1cImNyZWF0ZS1kcmFmdC1pc3N1ZS1kYXRlXCIgW2Rpc2FibGVkXT1cInRydWVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlLmlzc3VlRGF0ZVwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtZGF0ZS1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtbGFiZWxcIj4ge3snZURvbnVzdW06OlBhcnRuZXJOYW1lJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC12YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLWRyYWZ0LXBhcnRuZXItbmFtZVwiIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZS5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWVcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLWxhYmVsXCI+IHt7J2VEb251c3VtOjpJbnZvaWNlSWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtZHJhZnQtaW52b2ljZS1pZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZS5pbnZvaWNlSWRcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhEcmFmdERvY3VtZW50TGluZXMgW2RhdGFTb3VyY2VdPVwiZHJhZnREb2N1bWVudExpbmVzXCIgW3Nob3dSb3dMaW5lc109XCJ0cnVlXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgIFtyZW1vdGVPcGVyYXRpb25zXT1cImZhbHNlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIiBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIiBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIiBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICBzdHlsZT1cImhlaWdodDogNTB2aDtcIj5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgPGR4by1lZGl0aW5nIFthbGxvd1VwZGF0aW5nXT1cInRydWVcIiBbYWxsb3dBZGRpbmddPVwiZmFsc2VcIiBbYWxsb3dEZWxldGluZ109XCJ0cnVlXCIgbW9kZT1cImNlbGxcIiBbdXNlSWNvbnNdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhvLWVkaXRpbmc+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwib2JqVHlwZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6T2JqZWN0VHlwZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjxkeG8tbG9va3VwIFtkYXRhU291cmNlXT1cIm9iamVjdFR5cGVzTG9va3VwXCIgdmFsdWVFeHByPVwiaWRcIiBkaXNwbGF5RXhwcj1cInRleHRcIj5cclxuICAgICAgICAgIDwvZHhvLWxvb2t1cD48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRW50cnlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0VudHJ5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY051bVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm51bUF0Q2FyZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6TnVtQXRDYXJkJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImxpbmVOdW1cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkxpbmVOdW0nfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDwhLS0gPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY2FyZENvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkNhcmRDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPiAtLT5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NEYXRlXCIgZGF0YVR5cGU9XCJkYXRlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NEYXRlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0R1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0R1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbUNvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Okl0ZW1Db2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRzY3JpcHRpb25cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRzY3JpcHRpb24nfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInRleHRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlRleHQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImZyZWVUeHRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkZyZWVUeHQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm9wZW5RdHlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Ok9wZW5RdHknfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic2VsZWN0ZWRRdHlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlNlbGVjdGVkUXR5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cInRydWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICA8IS0tIDwvZGl2PiAtLT5cclxuICAgICAgPCEtLSA8L2Rpdj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXdhcm5pbmdcIiAoY2xpY2spPVwib3Blbk9wZW5Eb2N1bWVudHNGb3JtKClcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpSZXNvdXJjZURvY3VtZW50cycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBbZGlzYWJsZWRdPVwiaXNNb2RhbEJ1c3lGb3JEcmFmdFwiIChjbGljayk9XCJjcmVhdGVEcmFmdERvY3VtZW50KClcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpDcmVhdGVEb2N1bWVudCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeUZvck9wZW5Eb2NzXCIgWyh2aXNpYmxlKV09XCJpc01vZGFsT3BlbkZvck9wZW5Eb2NzXCIgW29wdGlvbnNdPVwieyBzaXplOiAneGwnIH1cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdlRG9udXN1bTo6T3BlbkRvY3MnKSB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIGlkPVwib3Blbi1kb2N1bWVudHNcIj5cclxuICAgICAgPCEtLSBEZXZFeHRyZW1lIFRhYiBQYW5lbCAtLT5cclxuICAgICAgPGR4LXRhYi1wYW5lbCBbYW5pbWF0aW9uRW5hYmxlZF09XCJ0cnVlXCIgW3N3aXBlRW5hYmxlZF09XCJ0cnVlXCIgW2xvb3BdPVwiZmFsc2VcIiAjdGFiUGFuZWw+XHJcbiAgICAgICAgPGR4aS1pdGVtIHRpdGxlPVwie3sgJ2VEb251c3VtOjpQdXJjaGFzZU9yZGVyJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGljb249XCJmYXMgZmEtc2hvcHBpbmctY2FydFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeFB1cmNoYXNlT3JkZXJEb2N1bWVudHMgW2RhdGFTb3VyY2VdPVwicHVyY2hhc2VPcmRlckRvY3VtZW50c1wiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJ0cnVlXCIgW3JlbW90ZU9wZXJhdGlvbnNdPVwiZmFsc2VcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIiBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCIgc3R5bGU9XCJoZWlnaHQ6IDUwdmg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWNob29zZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbZW5hYmxlZF09XCJ0cnVlXCIgbW9kZT1cInNlbGVjdFwiPjwvZHhvLWNvbHVtbi1jaG9vc2VyPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwibXVsdGlwbGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tZWRpdGluZyBbYWxsb3dVcGRhdGluZ109XCJmYWxzZVwiIFthbGxvd0FkZGluZ109XCJmYWxzZVwiIFthbGxvd0RlbGV0aW5nXT1cImZhbHNlXCIgbW9kZT1cImNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgPC9keG8tZWRpdGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRW50cnlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0VudHJ5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jTnVtXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NOdW0nfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJudW1BdENhcmRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Ok51bUF0Q2FyZCd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImxpbmVOdW1cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkxpbmVOdW0nfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY2FyZENvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkNhcmRDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0R1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jRHVlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIiBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtQ29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXRlbUNvZGUnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkc2NyaXB0aW9uXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEc2NyaXB0aW9uJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidGV4dFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VGV4dCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImZyZWVUeHRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkZyZWVUeHQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJvcGVuUXR5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpPcGVuUXR5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2R4aS1pdGVtPlxyXG5cclxuICAgICAgICA8ZHhpLWl0ZW0gdGl0bGU9XCJ7eyAnZURvbnVzdW06OlB1cmNoYXNlRGVzcGF0Y2gnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgaWNvbj1cImZhcyBmYS10cnVja1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkICNkeFB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHMgW2RhdGFTb3VyY2VdPVwicHVyY2hhc2VEZXNwYXRjaERvY3VtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCIgW3JlbW90ZU9wZXJhdGlvbnNdPVwiZmFsc2VcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZXBhaW50Q2hhbmdlc09ubHldPVwidHJ1ZVwiIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIiBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIiBbY29sdW1uSGlkaW5nRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDUwdmg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tY29sdW1uLWZpeGluZyBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tY29sdW1uLWZpeGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1oZWFkZXItZmlsdGVyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWhlYWRlci1maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICAgICAgICAgICAgPGR4by1lZGl0aW5nIFthbGxvd1VwZGF0aW5nXT1cImZhbHNlXCIgW2FsbG93QWRkaW5nXT1cImZhbHNlXCIgW2FsbG93RGVsZXRpbmddPVwiZmFsc2VcIiBtb2RlPVwiY2VsbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4by1lZGl0aW5nPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaG9yaXpvbnRhbFwiIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tc2VsZWN0aW9uIG1vZGU9XCJtdWx0aXBsZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHhvLXNlbGVjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRW50cnlcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0VudHJ5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jTnVtXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NOdW0nfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJudW1BdENhcmRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Ok51bUF0Q2FyZCd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImxpbmVOdW1cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkxpbmVOdW0nfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJjYXJkQ29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6Q2FyZENvZGUnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NEYXRlXCIgZGF0YVR5cGU9XCJkYXRlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NEYXRlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRHVlRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NEdWVEYXRlJ3xhYnBMb2NhbGl6YXRpb259fVwiIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIml0ZW1Db2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJdGVtQ29kZSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRzY3JpcHRpb25cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRzY3JpcHRpb24nfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ0ZXh0XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpUZXh0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZnJlZVR4dFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RnJlZVR4dCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm9wZW5RdHlcIiBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06Ok9wZW5RdHknfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktaXRlbT5cclxuICAgICAgPC9keC10YWItcGFuZWw+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgW2Rpc2FibGVkXT1cImlzTW9kYWxCdXN5Rm9yT3BlbkRvY3NcIiAoY2xpY2spPVwic2VsZWN0T3BlbkRvY3VtZW50cygpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6U2VsZWN0RG9jdW1lbnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD4iXX0=
575
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtaW5ib3VuZC1pbnZvaWNlcy9oaXQtaW5ib3VuZC1pbnZvaWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBTyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFrQixNQUFNLGNBQWMsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQTZDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJNUQsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtwRSxPQUFPLEVBQUUsUUFBUSxFQUFPLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFTckMsTUFBTSxPQUFPLDBCQUEwQjtJQTZEbkMsWUFDb0IsSUFBaUIsRUFDaEIsT0FBaUMsRUFDakMsY0FBaUMsRUFDakMsV0FBd0IsRUFDeEIscUJBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLDJCQUEyRCxFQUMzRCxHQUFzQixFQUN0QixZQUFpQztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qiww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TUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDSywyQkFBMkI7c0JBQXZGLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNMLG9CQUFvQjtzQkFBekUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ1YsUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBpc051bGxPckVtcHR5LCBpc051bGxPclVuZGVmaW5lZCwgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZUFkYXB0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRDb21wb25lbnQsIER4VGFiUGFuZWxDb21wb25lbnQgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBIaXRJbmJvdW5kSW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWluYm91bmQtaW52b2ljZXMvaGl0LWluYm91bmQtaW52b2ljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSGl0SW52b2ljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWludm9pY2VzL2hpdC1pbnZvaWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlLCBnZXRMb2NhbGVEYXRlRm9ybWF0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSGl0QnVzaW5lc3NQYXJ0bmVyR3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1idXNpbmVzcy1wYXJ0bmVyLWdyb3Vwcy9oaXQtYnVzaW5lc3MtcGFydG5lci1ncm91cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnBBZGRyZXNzLCBDb25uZWN0b3JEcmFmdERvY3VtZW50RHRvLCBDb25uZWN0b3JEcmFmdERvY3VtZW50TGluZUR0bywgQ3JlYXRlQnVzaW5lc3NQYXJ0bmVyU3VwcGxpZXJEdG8sIE9wZW5Eb2N1bWVudER0byB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtaW5ib3VuZC1pbnZvaWNlcy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLWluYm91bmQtaW52b2ljZScsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgICBwcm92aWRlcnM6IFtMaXN0U2VydmljZSwgeyBwcm92aWRlOiBOZ2JEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IERhdGVBZGFwdGVyIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEluYm91bmRJbnZvaWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2R4SW5ib3VuZEludm9pY2VJbnN0YW5jZScsIHsgc3RhdGljOiBmYWxzZSB9KSBkeEluYm91bmRJbnZvaWNlSW5zdGFuY2U6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4UHVyY2hhc2VPcmRlckRvY3VtZW50cycsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFB1cmNoYXNlT3JkZXJEb2N1bWVudHM6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4UHVyY2hhc2VEZXNwYXRjaERvY3VtZW50cycsIHsgc3RhdGljOiBmYWxzZSB9KSBkeFB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHM6IER4RGF0YUdyaWRDb21wb25lbnRcclxuICAgIEBWaWV3Q2hpbGQoJ2R4RHJhZnREb2N1bWVudExpbmVzJywgeyBzdGF0aWM6IGZhbHNlIH0pIGR4RHJhZnREb2N1bWVudExpbmVzOiBEeERhdGFHcmlkQ29tcG9uZW50XHJcbiAgICBAVmlld0NoaWxkKCd0YWJQYW5lbCcsIHsgc3RhdGljOiBmYWxzZSB9KSB0YWJQYW5lbDogRHhUYWJQYW5lbENvbXBvbmVudFxyXG5cclxuICAgIGluYm91bmRJbnZvaWNlc0RhdGFTb3VyY2U6IGFueVxyXG4gICAgaW5ib3VuZEludm9pY2VTdGF0dXNMb29rdXA6IGFueVxyXG4gICAgaW5ib3VuZEludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwOiBhbnlcclxuXHJcbiAgICBwYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHM6IEFycmF5PHsgaWQ6IHN0cmluZywgdGV4dDogc3RyaW5nIH0+ID0gW107XHJcbiAgICBvYmplY3RUeXBlc0xvb2t1cDogQXJyYXk8eyBpZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcgfT4gPSBbXHJcbiAgICAgICAgeyBpZDogXCIyMFwiLCB0ZXh0OiBcIlNhdMSxbiBBbG1hIMSwcnNhbGl5ZXNpXCIgfSxcclxuICAgICAgICB7IGlkOiBcIjIyXCIsIHRleHQ6IFwiU2F0xLFuIEFsbWEgU2lwYXJpxZ9pXCIgfVxyXG4gICAgXTsgcGFydG5lckF2YWlsYWJsZVNlcmllczogW107XHJcbiAgICBwYXJ0bmVyQXZhaWxhYmxlR3JvdXBzOiBbXTtcclxuICAgIHBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXM6IFtdO1xyXG4gICAgcGFydG5lckF2YWlsYWJsZVN0YXRlczogW107XHJcbiAgICBvcGVuRG9jdW1lbnRzRm9yUGFydG5lcjogW107XHJcbiAgICBpbnZvaWNlT2JqZWN0c0VudW1Mb29rdXA6IGFueTtcclxuICAgIHB1cmNoYXNlT3JkZXJEb2N1bWVudHM6IFtdO1xyXG4gICAgZHJhZnREb2N1bWVudExpbmVzOiBPcGVuRG9jdW1lbnREdG9bXSA9IFtdO1xyXG4gICAgcHVyY2hhc2VEZXNwYXRjaERvY3VtZW50czogW107XHJcbiAgICBpc01vZGFsQnVzeUZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICBpc01vZGFsT3BlbkZvclJlc3BvbnNlID0gZmFsc2U7XHJcbiAgICBpc01vZGFsQnVzeUZvclBhcnRuZXIgPSBmYWxzZTtcclxuICAgIGlzTW9kYWxPcGVuRm9yUGFydG5lciA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbEJ1c3lGb3JPcGVuRG9jcyA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbE9wZW5Gb3JPcGVuRG9jcyA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbEJ1c3lGb3JEcmFmdCA9IGZhbHNlO1xyXG4gICAgaXNNb2RhbE9wZW5Gb3JEcmFmdCA9IGZhbHNlO1xyXG4gICAgaXNMb2FkaW5nU3RhdGVzID0gZmFsc2U7XHJcbiAgICBpc0xvYWRpbmdTZXJpZXMgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ0dyb3VwcyA9IGZhbHNlO1xyXG4gICAgaXNMb2FkaW5nQWNjb3VudHMgPSBmYWxzZTtcclxuICAgIGlzTG9hZGluZ0NvdW50cmllcyA9IGZhbHNlO1xyXG5cclxuICAgIGZhdHVyYU9uaXpsZW1lOiBhbnk7XHJcbiAgICBmb3JtUmVzcG9uc2U6IEZvcm1Hcm91cDtcclxuICAgIGZvcm1QYXJ0bmVyOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgY291bnRyeUdyaWRCb3hWYWx1ZTogYW55XHJcbiAgICBpc0NvdW50cnlHcmlkQm94T3BlbmVkOiBib29sZWFuXHJcblxyXG4gICAgc3RhdGVHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNTdGF0ZUdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBzZXJpYWxHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNTZXJpYWxHcmlkQm94T3BlbmVkOiBib29sZWFuXHJcblxyXG4gICAgZ3JvdXBHcmlkQm94VmFsdWU6IGFueVxyXG4gICAgaXNHcm91cEdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBhY2NvdW50R3JpZEJveFZhbHVlOiBhbnlcclxuICAgIGlzQWNjb3VudEdyaWRCb3hPcGVuZWQ6IGJvb2xlYW5cclxuXHJcbiAgICBzZWxlY3RlZEluYm91bmRJbnZvaWNlOiBhbnk7XHJcbiAgICBjaXRpZXM6IGFueTtcclxuICAgIGNpdHlTZXJ2aWNlOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogSGl0SW5ib3VuZEludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVNlcnZpY2U6IEhpdEludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXJGb3JQYXJ0bmVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJ1c2luZXNzUGFydG5lckdyb3VwU2VydmljZTogSGl0QnVzaW5lc3NQYXJ0bmVyR3JvdXBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5R3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuY291bnRyeUdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgICAgIHRoaXMuc3RhdGVHcmlkQm94X2Rpc3BsYXlFeHByID0gdGhpcy5zdGF0ZUdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgICAgIHRoaXMuc2VyaWFsR3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuc2VyaWFsR3JpZEJveF9kaXNwbGF5RXhwci5iaW5kKHRoaXMpXHJcbiAgICAgICAgdGhpcy5ncm91cEdyaWRCb3hfZGlzcGxheUV4cHIgPSB0aGlzLmdyb3VwR3JpZEJveF9kaXNwbGF5RXhwci5iaW5kKHRoaXMpXHJcbiAgICAgICAgdGhpcy5hY2NvdW50R3JpZEJveF9kaXNwbGF5RXhwciA9IHRoaXMuYWNjb3VudEdyaWRCb3hfZGlzcGxheUV4cHIuYmluZCh0aGlzKVxyXG4gICAgfVxyXG4gICAgY291bnRyeUdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmNvdW50cnlHcmlkQm94VmFsdWUpICYmICFpc051bGxPckVtcHR5KHRoaXMuY291bnRyeUdyaWRCb3hWYWx1ZSkpIHtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhcnRuZXIuY29udHJvbHMucGFydG5lckNvdW50cnkuc2V0VmFsdWUodGhpcy5jb3VudHJ5R3JpZEJveFZhbHVlWzBdLmNvZGUpXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhdGVzKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNvdW50cnlHcmlkQm94VmFsdWVbMF0ubmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGF0ZUdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnN0YXRlR3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLnN0YXRlR3JpZEJveFZhbHVlKSkge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFydG5lci5jb250cm9scy5wYXJ0bmVyU3RhdGUuc2V0VmFsdWUodGhpcy5zdGF0ZUdyaWRCb3hWYWx1ZVswXS5jb2RlKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zdGF0ZUdyaWRCb3hWYWx1ZVswXS5uYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlcmlhbEdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnNlcmlhbEdyaWRCb3hWYWx1ZSkgJiYgIWlzTnVsbE9yRW1wdHkodGhpcy5zZXJpYWxHcmlkQm94VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJTZXJpZXMuc2V0VmFsdWUodGhpcy5zZXJpYWxHcmlkQm94VmFsdWVbMF0uc2VyaWVzKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJpYWxHcmlkQm94VmFsdWVbMF0ubmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBncm91cEdyaWRCb3hfZGlzcGxheUV4cHIoKSB7XHJcbiAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmdyb3VwR3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLmdyb3VwR3JpZEJveFZhbHVlKSkge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgdGhpcy5mb3JtUGFydG5lci5jb250cm9scy5wYXJ0bmVyR3JvdXAuc2V0VmFsdWUodGhpcy5ncm91cEdyaWRCb3hWYWx1ZVswXS5jb2RlKVxyXG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5ncm91cEdyaWRCb3hWYWx1ZVswXS5uYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjY291bnRHcmlkQm94X2Rpc3BsYXlFeHByKCkge1xyXG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5hY2NvdW50R3JpZEJveFZhbHVlKSAmJiAhaXNOdWxsT3JFbXB0eSh0aGlzLmFjY291bnRHcmlkQm94VmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJBY2NvdW50LnNldFZhbHVlKHRoaXMuYWNjb3VudEdyaWRCb3hWYWx1ZVswXS5pZClcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuYWNjb3VudEdyaWRCb3hWYWx1ZVswXS50ZXh0fWA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ291bnRyeUdyaWRCb3hPcHRpb25DaGFuZ2VkKGUpIHtcclxuICAgICAgICBpZiAoZS5uYW1lID09PSAndmFsdWUnKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pc0NvdW50cnlHcmlkQm94T3BlbmVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TdGF0ZUdyaWRCb3hPcHRpb25DaGFuZ2VkKGUpIHtcclxuICAgICAgICBpZiAoZS5uYW1lID09PSAndmFsdWUnKSB7XHJcbiAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pc1N0YXRlR3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uU2VyaWFsR3JpZEJveE9wdGlvbkNoYW5nZWQoZSkge1xyXG4gICAgICAgIGlmIChlLm5hbWUgPT09ICd2YWx1ZScpIHtcclxuICAgICAgICAgICAgZGVidWdnZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzU2VyaWFsR3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uR3JvdXBHcmlkQm94T3B0aW9uQ2hhbmdlZChlKSB7XHJcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3ZhbHVlJykge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNHcm91cEdyaWRCb3hPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkFjY291bnRHcmlkQm94T3B0aW9uQ2hhbmdlZChlKSB7XHJcbiAgICAgICAgaWYgKGUubmFtZSA9PT0gJ3ZhbHVlJykge1xyXG4gICAgICAgICAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNBY2NvdW50R3JpZEJveE9wZW5lZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VzRGF0YVNvdXJjZSA9IHRoaXMuc2VydmljZS5Mb2FkSW5ib3VuZEludm9pY2VzO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0U3RhdHVzZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VTdGF0dXNMb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0UmVjZWl2ZXJSZXNwb25zZXMoKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5ib3VuZEludm9pY2VSZWNlaXZlclJlc3BvbnNlTG9va3VwID0gbGlzdDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ0NvdW50cmllcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldENvdW50cmllcygpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nQ291bnRyaWVzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXMgPSBsaXN0O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiw5xsa2VsZXIgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgY291bnRyaWVzOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nR3JvdXBzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ1c2luZXNzUGFydG5lckdyb3VwU2VydmljZS5nZXRTdXBwbGllckdyb3VwcygpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nR3JvdXBzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVHcm91cHMgPSBsaXN0O1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwiUGFydG5lciBncnVwbGFyxLEgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgZ3JvdXBzOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaW52b2ljZVNlcnZpY2UuZ2V0U2FwT2JqZWN0cygpLnN1YnNjcmliZShsaXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlT2JqZWN0c0VudW1Mb29rdXAgPSBsaXN0O1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdldEluYm91bmRJbnZvaWNlKCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbmJvdW5kSW52b2ljZShuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHhJbmJvdW5kSW52b2ljZUluc3RhbmNlLmluc3RhbmNlLnJlZnJlc2goKSlcclxuICAgIH1cclxuXHJcbiAgICBnZXRJbnZvaWNlUHJldmlldyhyZWNvcmQpIHtcclxuICAgICAgICBkZWJ1Z2dlclxyXG4gICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0SW5ib3VuZEludm9pY2VWaWV3KHJlY29yZC51dUlkKS5zdWJzY3JpYmUoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGBkYXRhOiR7aXRlbS5taW1lVHlwZX07YmFzZTY0LCR7aXRlbS5jb250ZW50fWA7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IHNvdXJjZTtcclxuICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGAke2l0ZW0uZmlsZW5hbWV9YDtcclxuICAgICAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5SZXNwb25zZU1vZGFsKHJlY29yZCkge1xyXG5cclxuICAgICAgICB0aGlzLmJ1aWxkRm9ybShyZWNvcmQpO1xyXG4gICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JSZXNwb25zZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRGb3JtKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybVJlc3BvbnNlID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGlkOiByZWNvcmQuaWQsXHJcbiAgICAgICAgICAgIGludm9pY2VVVUlEOiByZWNvcmQudXVJZCxcclxuICAgICAgICAgICAgaXNBY2NlcHRlZDogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzUmVqZWN0ZWQ6IGZhbHNlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZEludm9pY2VSZXNwb25zZShyZXNwb25zZTogYm9vbGVhbikge1xyXG5cclxuICAgICAgICBpZiAodGhpcy5mb3JtUmVzcG9uc2UuaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5mb3JtUmVzcG9uc2UudmFsdWVcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNlbmRJbnZvaWNlUmVzcG9uc2UocmVzdWx0Lmludm9pY2VVVUlELCByZXNwb25zZSwgcmVzdWx0LmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmR4SW5ib3VuZEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNNb2RhbE9wZW5Gb3JSZXNwb25zZSA9IGZhbHNlO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgb3BlblBhcnRuZXJNb2RhbChyZWNvcmQpIHtcclxuXHJcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5pbmZvKFwiTXVoYXRhcCBrb250cm9sw7wgeWFwxLFsxLF5b3IsIGzDvHRmZW4gYmVrbGV5aW5pei5cIilcclxuICAgICAgICB0aGlzLnNlcnZpY2UuY2hlY2tCdXNpbmVzc1BhcnRuZXJFeGlzdChyZWNvcmQuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRGb3JtRm9yUGFydG5lcihyZWNvcmQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IocmVjb3JkLmFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrbiArIFwiIG51bWFyYWzEsSBzYXTEsWPEsSB6YXRlbiBtZXZjdXQuXCIpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdGVzKCkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nU3RhdGVzID0gdHJ1ZTtcclxuICAgICAgICAvLyDDlm5jZSBtZXZjdXQgc3RhdGUgc2XDp2ltaW5pIHRlbWl6bGVcclxuICAgICAgICB0aGlzLmZvcm1QYXJ0bmVyLmNvbnRyb2xzLnBhcnRuZXJTdGF0ZS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgdGhpcy5wYXJ0bmVyQXZhaWxhYmxlU3RhdGVzID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRTdGF0ZXModGhpcy5mb3JtUGFydG5lci5jb250cm9scy5wYXJ0bmVyQ291bnRyeS52YWx1ZSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdTdGF0ZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydG5lckF2YWlsYWJsZVN0YXRlcyA9IGxpc3Q7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXCLEsGwvZXlhbGV0IGJpbGdpbGVyaSB5w7xrbGVuaXJrZW4gYmlyIGhhdGEgb2x1xZ90dS5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBzdGF0ZXM6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlRm9ybVBhcnRuZXIoKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvclBhcnRuZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yUGFydG5lciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZm9ybVBhcnRuZXIucmVzZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVCdXNpbmVzc1BhcnRuZXIoKSB7XHJcbiAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybVBhcnRuZXIuaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlzTW9kYWxCdXN5Rm9yUGFydG5lciA9IHRydWU7XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0RHRvQWRkcmVzc2VzOiBCcEFkZHJlc3NbXSA9IFtdXHJcbiAgICAgICAgcmVxdWVzdER0b0FkZHJlc3Nlcy5wdXNoKHtcclxuICAgICAgICAgICAgYWRkcmVzc05hbWU6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQWRkcmVzcz8udmFsdWUsXHJcbiAgICAgICAgICAgIHN0cmVldDogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJTdHJlZXQ/LnZhbHVlLFxyXG4gICAgICAgICAgICBibG9jazogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJCbG9jaz8udmFsdWUsXHJcbiAgICAgICAgICAgIHppcENvZGU6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyWmlwQ29kZT8udmFsdWUsXHJcbiAgICAgICAgICAgIGNpdHk6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyQ2l0eT8udmFsdWUsXHJcbiAgICAgICAgICAgIGNvdW50eTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJDb3VudHk/LnZhbHVlLFxyXG4gICAgICAgICAgICBjb3VudHJ5OiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckNvdW50cnk/LnZhbHVlLFxyXG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJTdGF0ZT8udmFsdWUsXHJcbiAgICAgICAgICAgIGFkZHJlc3NUeXBlOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckFkZHJlc3NUeXBlPy52YWx1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdER0bzogQ3JlYXRlQnVzaW5lc3NQYXJ0bmVyU3VwcGxpZXJEdG8gPSB7XHJcbiAgICAgICAgICAgIGNhcmRDb2RlOiBcIlwiLFxyXG4gICAgICAgICAgICB1bmlmaWVkRmVkZXJhbFRheElEOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8udmtuPy52YWx1ZSxcclxuICAgICAgICAgICAgY2FyZE5hbWU6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5uYW1lPy52YWx1ZSxcclxuICAgICAgICAgICAgY2FyZFR5cGU6IFwiU1wiLFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJDdXJyZW5jeT8udmFsdWUsXHJcbiAgICAgICAgICAgIGRlYml0b3JBY2NvdW50OiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckFjY291bnQ/LnZhbHVlLFxyXG4gICAgICAgICAgICBzZXJpZXM6IHRoaXMuZm9ybVBhcnRuZXI/LmNvbnRyb2xzPy5wYXJ0bmVyU2VyaWVzPy52YWx1ZSxcclxuICAgICAgICAgICAgZ3JvdXBDb2RlOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckdyb3VwPy52YWx1ZSxcclxuICAgICAgICAgICAgd2Vic2l0ZTogdGhpcy5mb3JtUGFydG5lcj8uY29udHJvbHM/LnBhcnRuZXJXZWJTaXRlVVJJPy52YWx1ZSxcclxuICAgICAgICAgICAgYWRkaXRpb25hbElEOiB0aGlzLmZvcm1QYXJ0bmVyPy5jb250cm9scz8ucGFydG5lckFkZElkPy52YWx1ZSxcclxuICAgICAgICAgICAgYnBBZGRyZXNzZXM6IHJlcXVlc3REdG9BZGRyZXNzZXNcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQnVzaW5lc3NQYXJ0bmVyRm9yU3VwcGxpZXIocmVxdWVzdER0bylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlRm9ybVBhcnRuZXIoKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5zdWNjZXNzKHJlc3VsdC5jYXJkQ29kZSArIFwiIGtvZGx1IG11aGF0YXAgYmHFn2FyxLF5bGEgb2x1xZ90dXJ1bGR1LlwiKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIk11aGF0YXAgb2x1xZ90dXJ1bHVya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ011aGF0YXAgb2x1xZ90dXJ1bHVya2VuIGJpciBoYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBidWlsZEZvcm1Gb3JQYXJ0bmVyKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRQYXJ0bmVyRGV0YWlscyhyZWNvcmQuaWQpLnN1YnNjcmliZShpbnZvaWNlID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhcnRuZXIgPSB0aGlzLmZvcm1CdWlsZGVyRm9yUGFydG5lci5ncm91cCh7XHJcbiAgICAgICAgICAgICAgICB2a246IFtyZWNvcmQuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuID8/IFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICBuYW1lOiBbcmVjb3JkLmFjY291bnRpbmdTdXBwbGllclBhcnR5TmFtZSA/PyBcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICAgICAgcGFydG5lckN1cnJlbmN5OiBbcmVjb3JkLmRvY3VtZW50Q3VycmVuY3lDb2RlID8/IFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyQWNjb3VudDogW1wiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyU2VyaWVzOiBbXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJHcm91cDogW1wiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyRW1haWw6IFtpbnZvaWNlPy5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eT8ucGFydHk/LmNvbnRhY3Q/LmVsZWN0cm9uaWNNYWlsPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJXZWJTaXRlVVJJOiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py53ZWJzaXRlVVJJPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJBZGRJZDogW2ludm9pY2U/LmFjY291bnRpbmdTdXBwbGllclBhcnR5Py5wYXJ0eT8ucGFydHlUYXhTY2hlbWU/LnRheFNjaGVtZT8ubmFtZT8udmFsdWUgPz8gXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJBZGRyZXNzVHlwZTogXCJCXCIsXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyQWRkcmVzczogXCJGYXR1cmEgQWRyZXNpXCIsXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyU3RyZWV0OiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wb3N0YWxBZGRyZXNzPy5zdHJlZXROYW1lPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJCbG9jazogW2ludm9pY2U/LmFjY291bnRpbmdTdXBwbGllclBhcnR5Py5wYXJ0eT8ucG9zdGFsQWRkcmVzcz8uYmxvY2tOYW1lPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJDaXR5OiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wb3N0YWxBZGRyZXNzPy5jaXR5TmFtZT8udmFsdWUgPz8gXCJcIl0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyWmlwQ29kZTogW2ludm9pY2U/LmFjY291bnRpbmdTdXBwbGllclBhcnR5Py5wYXJ0eT8ucG9zdGFsQWRkcmVzcz8ucG9zdGFsWm9uZT8udmFsdWUgPz8gXCJcIl0sXHJcbiAgICAgICAgICAgICAgICBwYXJ0bmVyQ291bnR5OiBbaW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHk/LnBhcnR5Py5wb3N0YWxBZGRyZXNzPy5jaXR5U3ViZGl2aXNpb25OYW1lPy52YWx1ZSA/PyBcIlwiXSxcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJTdGF0ZTogXCJcIixcclxuICAgICAgICAgICAgICAgIHBhcnRuZXJDb3VudHJ5OiBcIlwiXHJcblxyXG4gICAgICAgICAgICAgICAgLy9wYXJ0bmVyQ2l0eTogaW52b2ljZURldGFpbHMuXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yUGFydG5lciA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nQWNjb3VudHMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VyaWFsR3JpZEJveFZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLmdyb3VwR3JpZEJveFZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLnN0YXRlR3JpZEJveFZhbHVlID0gXCJcIjtcclxuICAgICAgICB0aGlzLmNvdW50cnlHcmlkQm94VmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYWNjb3VudEdyaWRCb3hWYWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldEJhbmtBY2NvdW50QnlDdXJyZW5jeShyZWNvcmQuZG9jdW1lbnRDdXJyZW5jeUNvZGUpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nQWNjb3VudHMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydG5lckF2YWlsYWJsZUFjY291bnRzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVBY2NvdW50cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBlbGVtZW50LmFjY3RDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogZWxlbWVudC5hY2N0Q29kZSArIFwiIFwiICsgZWxlbWVudC5hY2N0TmFtZS50b1VwcGVyQ2FzZSgpICsgXCIgXCIgKyBlbGVtZW50LmFjdEN1cnIudG9VcHBlckNhc2UoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIkJhbmthIGhlc2FwbGFyxLEgecO8a2xlbmlya2VuIGJpciBoYXRhIG9sdcWfdHUuXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgYWNjb3VudHM6JywgZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdTZXJpZXMgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRQYXJ0bmVyTnVtYmVyaW5nU2VyaWVzKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdTZXJpZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFydG5lckF2YWlsYWJsZVNlcmllcyA9IGxpc3Q7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXCJTZXJpIG51bWFyYWxhcsSxIHnDvGtsZW5pcmtlbiBiaXIgaGF0YSBvbHXFn3R1LlwiKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHNlcmllczonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnBhcnRuZXJBdmFpbGFibGVTdGF0ZXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuRHJhZnRGb3JtKHJlY29yZCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuaW5mbyhcIk11aGF0YXAga29udHJvbMO8IHlhcMSxbMSxeW9yLCBsw7x0ZmVuIGJla2xleWluaXouXCIpXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNoZWNrQnVzaW5lc3NQYXJ0bmVyRXhpc3QocmVjb3JkLmFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrbikuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKFwixLBsZ2lsaSBWS04neWUgYWl0IChcIiArIHJlY29yZC5hY2NvdW50aW5nU3VwcGxpZXJQYXJ0eVZrblRja24gKyBcIikgbXVoYXRhcCBidWx1bmFtYWTEsSwgbMO8dGZlbiDDtm5jZSBtdWhhdGFwIG9sdcWfdHVydW4uXCIpXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlID0gcmVjb3JkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsT3BlbkZvckRyYWZ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5PcGVuRG9jdW1lbnRzRm9ybSgpIHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmluZm8oXCJBw6fEsWsgYmVsZ2Ugc2F0xLFybGFyxLEgc29yZ3VsYW7EsXlvciwgbMO8dGZlbiBiZWtsZXlpbml6LlwiKVxyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T3BlbkRvY3VtZW50cyh0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuKS5zdWJzY3JpYmUobGlzdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbkRvY3VtZW50c0ZvclBhcnRuZXIgPSBsaXN0O1xyXG5cclxuICAgICAgICAgICAgaWYgKGxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wdXJjaGFzZU9yZGVyRG9jdW1lbnRzID0gbGlzdC5maWx0ZXIoZG9jID0+IGRvYy5vYmpUeXBlID09PSAyMik7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2F0xLFuIGFsbWEgc2lwYXJpxZ9sZXJpIChPYmpUeXBlPTIyKTonLCB0aGlzLnB1cmNoYXNlT3JkZXJEb2N1bWVudHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIE9ialR5cGU9MjAgb2xhbmxhcsSxIHNhdMSxbiBhbG1hIGlyc2FsaXllc2kgdGFixLFuYSBmaWx0cmVsZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wdXJjaGFzZURlc3BhdGNoRG9jdW1lbnRzID0gbGlzdC5maWx0ZXIoZG9jID0+IGRvYy5vYmpUeXBlID09PSAyMCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2F0xLFuIGFsbWEgaXJzYWxpeWVsZXJpIChPYmpUeXBlPTIwKTonLCB0aGlzLnB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHMpO1xyXG4gICAgICAgICAgICAgICAgLy8gT2JqVHlwZT0yMiBvbGFubGFyxLEgc2F0xLFuIGFsbWEgc2lwYXJpxZ9pIHRhYsSxbmEgZmlsdHJlbGVcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9kYWxPcGVuRm9yT3BlbkRvY3MgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS53YXJuKFwixLBsZ2lsaSBtdWhhdGFwIGnDp2luIGHDp8SxayBiZWxnZSBzYXTEsXLEsSBidWx1bmFtYWTEsS5cIilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE9wZW5Eb2N1bWVudHMoKSB7XHJcbiAgICAgICAgbGV0IHB1cmNoYXNlRGVzcGF0Y2hlcyA9IHRoaXMuZHhQdXJjaGFzZURlc3BhdGNoRG9jdW1lbnRzLmluc3RhbmNlLmdldFNlbGVjdGVkUm93c0RhdGEoKVxyXG4gICAgICAgIGxldCBwdXJjaGFzZU9yZGVycyA9IHRoaXMuZHhQdXJjaGFzZU9yZGVyRG9jdW1lbnRzLmluc3RhbmNlLmdldFNlbGVjdGVkUm93c0RhdGEoKVxyXG4gICAgICAgIGxldCByZWZlcmVuY2VEb2NzID0gW107XHJcbiAgICAgICAgaWYgKHB1cmNoYXNlT3JkZXJzLmxlbmd0aCA+IDAgJiYgcHVyY2hhc2VEZXNwYXRjaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIlJlZmVyYW5zIG9sYXJhayB5YWxuxLF6Y2EgYmlyIGJlbGdlIHTDvHLDvCBzZcOnaWxlYmlsaXIuXCIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHVyY2hhc2VPcmRlcnMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgcmVmZXJlbmNlRG9jcyA9IHB1cmNoYXNlT3JkZXJzO1xyXG4gICAgICAgIGlmIChwdXJjaGFzZURlc3BhdGNoZXMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgcmVmZXJlbmNlRG9jcyA9IHB1cmNoYXNlRGVzcGF0Y2hlcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZHJhZnREb2N1bWVudExpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHJlZmVyZW5jZURvY3Muc29tZShlID0+ICF0aGlzLmRyYWZ0RG9jdW1lbnRMaW5lcy5zb21lKGQgPT4gZC5vYmpUeXBlID09PSBlLm9ialR5cGUpKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcihcIlJlZmVyYW5zIG9sYXJhayB5YWxuxLF6Y2EgYmlyIGJlbGdlIHTDvHLDvCBzZcOnaWxlYmlsaXIuXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWZlcmVuY2VEb2NzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgICF0aGlzLmRyYWZ0RG9jdW1lbnRMaW5lcy5zb21lKGRyYWZ0ID0+XHJcbiAgICAgICAgICAgICAgICBkcmFmdC5vYmpUeXBlID09PSBlbGVtZW50Lm9ialR5cGUgJiZcclxuICAgICAgICAgICAgICAgIGRyYWZ0LmRvY0VudHJ5ID09PSBlbGVtZW50LmRvY0VudHJ5ICYmXHJcbiAgICAgICAgICAgICAgICBkcmFmdC5saW5lTnVtID09PSBlbGVtZW50LmxpbmVOdW1cclxuICAgICAgICAgICAgKSAmJiB0aGlzLmRyYWZ0RG9jdW1lbnRMaW5lcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkUXR5OiBlbGVtZW50Lm9wZW5RdHksXHJcbiAgICAgICAgICAgICAgICBvcGVuUXR5OiBlbGVtZW50Lm9wZW5RdHksXHJcbiAgICAgICAgICAgICAgICBvYmpUeXBlOiBlbGVtZW50Lm9ialR5cGUsXHJcbiAgICAgICAgICAgICAgICBkb2NFbnRyeTogZWxlbWVudC5kb2NFbnRyeSxcclxuICAgICAgICAgICAgICAgIGRvY051bTogZWxlbWVudC5kb2NOdW0sXHJcbiAgICAgICAgICAgICAgICBudW1BdENhcmQ6IGVsZW1lbnQubnVtQXRDYXJkLFxyXG4gICAgICAgICAgICAgICAgbGluZU51bTogZWxlbWVudC5saW5lTnVtLFxyXG4gICAgICAgICAgICAgICAgZG9jRGF0ZTogZWxlbWVudC5kb2NEYXRlLFxyXG4gICAgICAgICAgICAgICAgZG9jRHVlRGF0ZTogZWxlbWVudC5kb2NEdWVEYXRlLFxyXG4gICAgICAgICAgICAgICAgaXRlbUNvZGU6IGVsZW1lbnQuaXRlbUNvZGUsXHJcbiAgICAgICAgICAgICAgICBkc2NyaXB0aW9uOiBlbGVtZW50LmRzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBlbGVtZW50LnRleHQsXHJcbiAgICAgICAgICAgICAgICBmcmVlVHh0OiBlbGVtZW50LmZyZWVUeHQsXHJcbiAgICAgICAgICAgICAgICBjYXJkQ29kZTogZWxlbWVudC5jYXJkQ29kZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5oaWRlRm9ybU9wZW5Eb2N1bWVudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlRm9ybU9wZW5Eb2N1bWVudHMoKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsT3BlbkZvck9wZW5Eb2NzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvck9wZW5Eb2NzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGhpZGVGb3JtRHJhZnQoKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvckRyYWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsT3BlbkZvckRyYWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5kcmFmdERvY3VtZW50TGluZXMgPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kRHJhZnQoZHJhZnRHcmlkTGluZXM6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IHJlcXVlc3REdG9Eb2N1bWVudExpbmVzOiBDb25uZWN0b3JEcmFmdERvY3VtZW50TGluZUR0b1tdID0gW107XHJcblxyXG4gICAgICAgIGRyYWZ0R3JpZExpbmVzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHJlcXVlc3REdG9Eb2N1bWVudExpbmVzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgcXVhbnRpdHk6IGVsZW1lbnQuZGF0YS5zZWxlY3RlZFF0eSxcclxuICAgICAgICAgICAgICAgIGJhc2VUeXBlOiBlbGVtZW50LmRhdGEub2JqVHlwZSxcclxuICAgICAgICAgICAgICAgIGJhc2VFbnRyeTogZWxlbWVudC5kYXRhLmRvY0VudHJ5LFxyXG4gICAgICAgICAgICAgICAgYmFzZUxpbmU6IGVsZW1lbnQuZGF0YS5saW5lTnVtXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgIGxldCByZXF1ZXN0RHRvOiBDb25uZWN0b3JEcmFmdERvY3VtZW50RHRvID0ge1xyXG4gICAgICAgICAgICBkb2NFbnRyeTogbnVsbCxcclxuICAgICAgICAgICAgZG9jTnVtOiBudWxsLFxyXG4gICAgICAgICAgICBkb2NDdXJyZW5jeTogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5kb2N1bWVudEN1cnJlbmN5Q29kZT8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgZG9jT2JqZWN0Q29kZTogXCJvUHVyY2hhc2VJbnZvaWNlc1wiLFxyXG4gICAgICAgICAgICBkb2NEYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHRheERhdGU6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8uaXNzdWVEYXRlPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBkb2NEdWVEYXRlOiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LnBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBkb2NSYXRlOiAodGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5wcmljaW5nRXhjaGFuZ2VSYXRlQ2FsY3VsYXRpb25SYXRlIDw9IDEgfHwgaXNOdWxsT3JFbXB0eSh0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2U/LnByaWNpbmdFeGNoYW5nZVJhdGVDYWxjdWxhdGlvblJhdGUpKSA/IDEgOiB0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UucHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZSxcclxuICAgICAgICAgICAgY2FyZENvZGU6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8uYWNjb3VudGluZ1N1cHBsaWVyUGFydHlWa25UY2tuPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBudW1BdENhcmQ6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8uaW52b2ljZUlkPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB1X0VGQVROTzogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5pbnZvaWNlSWQ/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHVfVVVJRDogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy51dUlkPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB1X1NFTkQ6IHRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZT8uaW52b2ljZVR5cGVDb2RlPy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB1X1Byb2ZpbGVJZDogdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlPy5wcm9maWxlSWQ/LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGRvY3VtZW50TGluZXM6IHJlcXVlc3REdG9Eb2N1bWVudExpbmVzXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZURyYWZ0RG9jdW1lbnQocmVxdWVzdER0bywgdGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlLmlkKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVGb3JtRHJhZnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmR4SW5ib3VuZEludm9pY2VJbnN0YW5jZS5pbnN0YW5jZS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcyhyZXN1bHQuZG9jRW50cnkgKyBcIiBudW1hcmFsxLEgdGFzbGFrIGJlbGdlIGJhxZ9hcsSxeWxhIG9sdcWfdHVydWxkdS5cIik7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoXCJUYXNsYWsgYmVsZ2Ugb2x1xZ90dXJ1bHVya2VuIGJpciBoYXRhIG9sdcWfdHU6XCIgKyBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZURyYWZ0RG9jdW1lbnQoKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvckRyYWZ0ID0gdHJ1ZTtcclxuICAgICAgICBkZWJ1Z2dlcjtcclxuXHJcbiAgICAgICAgbGV0IGRyYWZ0R3JpZExpbmVzID0gdGhpcy5keERyYWZ0RG9jdW1lbnRMaW5lcy5pbnN0YW5jZS5nZXRWaXNpYmxlUm93cygpXHJcblxyXG4gICAgICAgIGlmIChkcmFmdEdyaWRMaW5lcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAgICAgICAgICAgLmluZm8oJ1RhYmxvZGEgc2F0xLFyIGJ1bHVubWFkxLHEn8SxIGnDp2luIHRhc2xhayBiZWxnZSBib8WfIG9sYXJhayBvbHXFn3R1cnVsYWNha3TEsXIuIERldmFtIGV0bWVrIGlzdGl5b3IgbXVzdW51ej8nLCB7IGtleTogJzo6QmlsZ2knLCBkZWZhdWx0VmFsdWU6ICcnIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZERyYWZ0KGRyYWZ0R3JpZExpbmVzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvckRyYWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYoZHJhZnRHcmlkTGluZXMuZmlsdGVyKHggPT4geC5kYXRhLnNlbGVjdGVkUXR5ID4geC5kYXRhLm9wZW5RdHkpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25cclxuICAgICAgICAgICAgICAgIC5pbmZvKCdTZcOnaWxlbiBtaWt0YXLEsSwgYcOnxLFrIG1pa3RhcmRhbiBiw7x5w7xrIG9sYW4gc2F0xLFyL3NhdMSxcmxhciBtZXZjdXQuIERldmFtIGV0bWVrIGlzdGl5b3IgbXVzdW51ej8nLCB7IGtleTogJzo6QmlsZ2knLCBkZWZhdWx0VmFsdWU6ICcnIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFwiY29uZmlybVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZERyYWZ0KGRyYWZ0R3JpZExpbmVzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc01vZGFsQnVzeUZvckRyYWZ0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmREcmFmdChkcmFmdEdyaWRMaW5lcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc01hbnVhbChyZWNvcmQpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UucHJvY2Vzc01hbnVhbChyZWNvcmQuaWQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoXCJCZWxnZSBiYcWfYXLEsXlsYSBtYW51ZWwgacWfbGVuZGkuXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5keEluYm91bmRJbnZvaWNlSW5zdGFuY2UuaW5zdGFuY2UucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tCb3hDaGFuZ2VkKGV2ZW50KSB7XHJcblxyXG4gICAgICAgIGxldCBmb3JtQ29udHJvbHMgPSB0aGlzLmZvcm1SZXNwb25zZS5jb250cm9sc1xyXG4gICAgICAgIHZhciBpZCA9IGV2ZW50LnRhcmdldC5pZDtcclxuICAgICAgICB2YXIgY2hlY2tib3hlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCdyZXNwb25zZUNoZWNrJykgYXMgTm9kZUxpc3RPZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICAgICAgICBjaGVja2JveGVzLmZvckVhY2goY2hlY2tib3ggPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hlY2tib3guaWQgIT09IGlkKSB7XHJcbiAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbHNbY2hlY2tib3guYXR0cmlidXRlc1tcImZvcm1jb250cm9sbmFtZVwiXS52YWx1ZV0uc2V0VmFsdWUoY2hlY2tib3guY2hlY2tlZClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVJvd3NDb2xvcihlKSB7XHJcblxyXG4gICAgICAgIGlmIChlLnJvd1R5cGUgPT0gXCJkYXRhXCIpIHtcclxuXHJcbiAgICAgICAgICAgIGlmIChlLmRhdGEucmVjZWl2ZXJSZXNwb25zZSAhPSAwKVxyXG4gICAgICAgICAgICAgICAgZS5yb3dFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGUuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09IDEgPyBcIiMzZWJkNjBcIiA6IFwiI2NjNGY0NVwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRSZWNlaXZlclJlc3BvbnNlTmFtZShyZXNwb25zZUlkKSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB0aGlzLmluYm91bmRJbnZvaWNlUmVjZWl2ZXJSZXNwb25zZUxvb2t1cC5maW5kKCh4KSA9PiB4LmlkID09PSByZXNwb25zZUlkKTtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRpc3BsYXlOYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXRJY29uQ2xhc3MocmVzcG9uc2VJZCkge1xyXG4gICAgICAgIGlmIChyZXNwb25zZUlkID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiZmFzIGZhLWNsb2NrXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtY2hlY2stY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlc3BvbnNlSWQgPT0gMikge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJmYXMgZmEtdGltZXMtY2lyY2xlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERvY09iamVjdE5hbWUoZGF0YSkge1xyXG4gICAgICAgIGxldCBvYmpOYW1lID0gKChkYXRhLmlzRHJhZnQgPyBcIlRhc2xhayBcIiA6IFwiXCIpICsgdGhpcy5pbnZvaWNlT2JqZWN0c0VudW1Mb29rdXAuZmluZCgoeCkgPT4geC5pZCA9PSAoZGF0YS5pc0RyYWZ0ID8gZGF0YS5yZXNvdXJjZVN1YkRvY1R5cGUgOiBkYXRhLnJlc291cmNlRG9jVHlwZSkpPy5kaXNwbGF5TmFtZSk7XHJcbiAgICAgICAgaWYgKG9iak5hbWUgPT0gXCJ1bmRlZmluZWRcIilcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcblxyXG4gICAgICAgIHJldHVybiBvYmpOYW1lO1xyXG4gICAgfVxyXG59IiwiPGFicC1wYWdlIFt0aXRsZV09XCInZURvbnVzdW06OkluYm91bmRJbnZvaWNlcycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxidXR0b24gKmFicFBlcm1pc3Npb249XCInZURvbnVzdW0uSW52b2ljZXMuQ3JlYXRlJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCIgKGNsaWNrKT1cImdldEluYm91bmRJbnZvaWNlKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAge3sgJ2VEb251c3VtOjpDaGVja0luYm91bmRJbnZvaWNlcycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FicC1wYWdlLXRvb2xiYXItY29udGFpbmVyPlxyXG4gIDxwPkVudGVncmF0w7ZyZGVuIGFsxLFuYW4gZmF0dXJhbGFyxLEgbGlzdGVsZXllbiBla3JhbjwvcD5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICA8ZHgtZGF0YS1ncmlkICNkeEluYm91bmRJbnZvaWNlSW5zdGFuY2UgW2RhdGFTb3VyY2VdPVwiaW5ib3VuZEludm9pY2VzRGF0YVNvdXJjZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgIFthbGxvd0NvbHVtblJlc2l6aW5nXT1cInRydWVcIiBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIiBbYWxsb3dDb2x1bW5SZW9yZGVyaW5nXT1cInRydWVcIiBbY29sdW1uQXV0b1dpZHRoXT1cInRydWVcIlxyXG4gICAgICAgIFtjb2x1bW5IaWRpbmdFbmFibGVkXT1cInRydWVcIiBbcm93QWx0ZXJuYXRpb25FbmFibGVkXT1cInRydWVcIiBzdHlsZT1cImhlaWdodDogNzV2aDtcIj5cclxuICAgICAgICA8ZHhvLXBhZ2VyIFt2aXNpYmxlXT1cInRydWVcIiBbc2hvd0luZm9dPVwidHJ1ZVwiIFthbGxvd2VkUGFnZVNpemVzXT1cIls1MCwxMDAsMjAwXVwiIFtzaG93TmF2aWdhdGlvbkJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDwvZHhvLXBhZ2VyPlxyXG4gICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCI1MFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwibXVsdGlwbGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPlxyXG4gICAgICAgIDwvZHhvLXNlbGVjdGlvbj5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgPGR4by1ncm91cC1wYW5lbCBbdmlzaWJsZV09XCJ0cnVlXCIgW2FsbG93Q29sdW1uRHJhZ2dpbmddPVwidHJ1ZVwiPjwvZHhvLWdyb3VwLXBhbmVsPlxyXG4gICAgICAgIDxkeG8tZ3JvdXBpbmcgI2V4cGFuZCBbYXV0b0V4cGFuZEFsbF09XCJmYWxzZVwiIFthbGxvd0NvbGxhcHNpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbY29udGV4dE1lbnVFbmFibGVkXT1cInRydWVcIj48L2R4by1ncm91cGluZz5cclxuICAgICAgICA8ZHhvLWhlYWRlci1maWx0ZXIgW2FsbG93U2VhcmNoXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8taGVhZGVyLWZpbHRlcj5cclxuICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgPGR4by1leHBvcnQgW2VuYWJsZWRdPVwidHJ1ZVwiIFthbGxvd0V4cG9ydFNlbGVjdGVkRGF0YV09XCJmYWxzZVwiPjwvZHhvLWV4cG9ydD5cclxuICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgPGR4by1maWx0ZXItYnVpbGRlciBbYWxsb3dIaWVyYXJjaGljYWxGaWVsZHNdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1idWlsZGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXBhbmVsIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcGFuZWw+XHJcbiAgICAgICAgPGR4by1zb3J0aW5nIG1vZGU9XCJzaW5nbGVcIj48L2R4by1zb3J0aW5nPlxyXG4gICAgICAgIDxkeG8tc2Nyb2xsaW5nIG1vZGU9XCJob3Jpem9udGFsXCIgc2hvd1Njcm9sbGJhcj1cImFsd2F5c1wiPjwvZHhvLXNjcm9sbGluZz5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBbZml4ZWRdPVwidHJ1ZVwiIGRhdGFGaWVsZD1cImlkXCIgd2lkdGg9XCIxMjBcIiBbYWxsb3dHcm91cGluZ109XCJmYWxzZVwiIFthbGxvd0ZpbHRlcmluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYWxsb3dIZWFkZXJGaWx0ZXJpbmddPVwiZmFsc2VcIiBbYWxsb3dIaWRpbmddPVwiZmFsc2VcIiBbYWxsb3dSZW9yZGVyaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIGNlbGxUZW1wbGF0ZT1cIm9wZXJhdGlvblRlbXBsYXRlXCIgY2FwdGlvbj1cInt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cIj5cclxuICAgICAgICAgIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgcm93IG9mICdvcGVyYXRpb25UZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRJZENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb2cgbXItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIHt7ICdBYnBVaTo6QWN0aW9ucycgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInVwZGF0ZShyb3cuZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVkaXRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdBYnBVaTo6RWRpdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGUocm93LmRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJnZXRJbnZvaWNlUHJldmlldyhyb3cuZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy5kYXRhLnN0YXR1cyA9PSA2MDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNjUwIHx8IHJvdy5kYXRhLnN0YXR1cyA9PSA3NTAgfHwgcm93LmRhdGEuc3RhdHVzID09IDY4MCB8fCByb3cuZGF0YS5zdGF0dXMgPT0gNzgwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OkdldFZpZXcnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJvcGVuUmVzcG9uc2VNb2RhbChyb3cuZGF0YSlcIiBzXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicm93LmRhdGEucHJvZmlsZUlkID09ICdUSUNBUklGQVRVUkEnICYmIHJvdy5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OlJlc3BvbnNlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwib3BlblBhcnRuZXJNb2RhbChyb3cuZGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInJvdy5kYXRhLmludm9pY2VUeXBlQ29kZSAhPSAnSUFERScgJiYgKHJvdy5kYXRhLnN0YXR1cyA9PSA2MDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMClcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS11c2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyAnZURvbnVzdW06OkNyZWF0ZUJ1c2luZXNzUGFydG5lcicgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cIm9wZW5EcmFmdEZvcm0ocm93LmRhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cuZGF0YS5pbnZvaWNlVHlwZUNvZGUgIT0gJ0lBREUnICYmIHJvdy5kYXRhLnN0YXR1cyA9PSA2MDAgfHwgcm93LmRhdGEuc3RhdHVzID09IDcwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZpbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6Q3JlYXRlRHJhZnREb2N1bWVudCcgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInByb2Nlc3NNYW51YWwocm93LmRhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyb3cuZGF0YS5zdGF0dXMgPT0gNjAwIHx8IHJvdy5kYXRhLnN0YXR1cyA9PSA3MDBcIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1oYW5kLXBhcGVyLW9cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdlRG9udXN1bTo6UHJvY2Vzc01hbnVhbCcgfCBhYnBMb2NhbGl6YXRpb25cclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpc3N1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJc3N1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInBheW1lbnRUZXJtc1BheW1lbnREdWVEYXRlXCIgZGF0YVR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UGF5bWVudER1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInV1SWRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlV1SWQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImludm9pY2VJZFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SW52b2ljZUlkJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJhY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWVcIlxyXG4gICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpBY2NvdW50aW5nU3VwcGxpZXJQYXJ0eU5hbWUnfGFicExvY2FsaXphdGlvbn19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrblwiXHJcbiAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrbid8YWJwTG9jYWxpemF0aW9ufX1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic3RhdHVzXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpTdGF0dXMnfGFicExvY2FsaXphdGlvbn19XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJpbmJvdW5kSW52b2ljZVN0YXR1c0xvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJkaXNwbGF5TmFtZVwiPlxyXG4gICAgICAgICAgPC9keG8tbG9va3VwPlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJyZXNvdXJjZURvY0VudHJ5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpSZXNvdXJjZURvY0VudHJ5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gY2VsbFRlbXBsYXRlPVwiZG9jVHlwZVRlbXBsYXRlXCIgZGF0YUZpZWxkPVwicmVzb3VyY2VEb2NUeXBlXCJcclxuICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVzb3VyY2VEb2NUeXBlJ3xhYnBMb2NhbGl6YXRpb259fVwiPlxyXG4gICAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdkb2NUeXBlVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICAgIHt7Z2V0RG9jT2JqZWN0TmFtZShkYXRhLmRhdGEpfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicmVjZWl2ZXJSZXNwb25zZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6UmVjZWl2ZXJSZXNwb25zZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgY2VsbFRlbXBsYXRlPVwiaWNvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJpbmJvdW5kSW52b2ljZVJlY2VpdmVyUmVzcG9uc2VMb29rdXBcIiB2YWx1ZUV4cHI9XCJpZFwiIGRpc3BsYXlFeHByPVwiZGlzcGxheU5hbWVcIj5cclxuICAgICAgICAgIDwvZHhvLWxvb2t1cD5cclxuICAgICAgICA8L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdpY29uVGVtcGxhdGUnXCI+XHJcbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieydjb2xvcic6ZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UgPT0gJzEnID8gJ2dyZWVuJyA6IGRhdGEuZGF0YS5yZWNlaXZlclJlc3BvbnNlID09ICcyJyA/ICdyZWQnIDogJ2dyYXknfVwiPjwvaT5cclxuICAgICAgICAgIHt7Z2V0UmVjZWl2ZXJSZXNwb25zZU5hbWUoZGF0YS5kYXRhLnJlY2VpdmVyUmVzcG9uc2UpfX1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicHJvZmlsZUlkXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpQcm9maWxlSWQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImludm9pY2VUeXBlQ29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SW52b2ljZVR5cGVDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJsZWdhbE1vbmV0YXJ5VG90YWxQYXlhYmxlQW1vdW50XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpQYXlhYmxlQW1vdW50J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBkYXRhVHlwZT1cIm51bWJlclwiIGZvcm1hdD1cIiMsIyMwLjAwXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY3VtZW50Q3VycmVuY3lDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NDdXJyZW5jeSd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwicHJpY2luZ0V4Y2hhbmdlUmF0ZUNhbGN1bGF0aW9uUmF0ZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jUmF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgZGF0YVR5cGU9XCJudW1iZXJcIiBmb3JtYXQ9XCIjLCMjMC4wMFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9hYnAtcGFnZT5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lGb3JSZXNwb25zZVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5Gb3JSZXNwb25zZVwiIFtvcHRpb25zXT1cInsgc2l6ZTogJ20nIH1cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgJ2VEb251c3VtOjpTZW5kUmVzcG9uc2UnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVJlc3BvbnNlXCIgaWQ9XCJpbnZvaWNlLXJlc3BvbnNlXCIgdmFsaWRhdGVPblN1Ym1pdD5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tdG9wOjIwcHhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpJZCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLWlkXCIgW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlkXCIgbWF4bGVuZ3RoPVwiMjU2XCIgYXV0b2ZvY3VzPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS11dWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpVdUlkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtdXVpZFwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbnZvaWNlVVVJRFwiIG1heGxlbmd0aD1cIjI1NlwiIGF1dG9mb2N1cz48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpbnZvaWNlLXJlc3BvbnNlLWludm9pY2UtYWNjZXB0XCIgZm9ybUNvbnRyb2xOYW1lPVwiaXNBY2NlcHRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZXNwb25zZUNoZWNrXCIgKGNoYW5nZSk9XCJjaGVja0JveENoYW5nZWQoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1hY2NlcHRcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpBY2NlcHQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImludm9pY2UtcmVzcG9uc2UtaW52b2ljZS1yZWplY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJpc1JlamVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cInJlc3BvbnNlQ2hlY2tcIiAoY2hhbmdlKT1cImNoZWNrQm94Q2hhbmdlZCgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaW52b2ljZS1yZXNwb25zZS1pbnZvaWNlLXJlamVjdFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlJlamVjdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgY2xhc3M9XCJidG4gYnRuLXdhcm5pbmdcIiBmb3JtTmFtZT1cImludm9pY2UtcmVzcG9uc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VuZEludm9pY2VSZXNwb25zZShmYWxzZSlcIj5cclxuICAgICAge3sgJ2VEb251c3VtOjpSZWplY3QnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBmb3JtTmFtZT1cImludm9pY2UtcmVzcG9uc2VcIlxyXG4gICAgICAoY2xpY2spPVwic2VuZEludm9pY2VSZXNwb25zZSh0cnVlKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OkFjY2VwdCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvYWJwLW1vZGFsPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeUZvclBhcnRuZXJcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuRm9yUGFydG5lclwiIFtvcHRpb25zXT1cInsgc2l6ZTogJ3hsJyB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6Q3JlYXRlQnVzaW5lc3NQYXJ0bmVyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9oMz5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1QYXJ0bmVyXCIgaWQ9XCJjcmVhdGUtcGFydG5lclwiIChuZ1N1Ym1pdCk9XCJjcmVhdGVCdXNpbmVzc1BhcnRuZXIoKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBmYWRlLWluLXRvcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwibWFyZ2luLXRvcDoyMHB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lck5hbWUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBtYXhsZW5ndGg9XCIyNTZcIiBhdXRvZm9jdXM+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItdmtuXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyVktOJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLXZrblwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidmtuXCJcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItcGFydG5lci1hZGQtaWRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJBZGRpdGlvbmFsSWQnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItcGFydG5lci1hZGQtaWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJBZGRJZFwiXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWN1cnJlbmN5XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyQ3VycmVuY3knfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItY3VycmVuY3lcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJDdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiIGF1dG9mb2N1cz48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci13ZWItc2l0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lcldlYlNpdGUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItd2ViLXNpdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyV2ViU2l0ZVVSSVwiXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLXNlcmllc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lclNlcmllcyd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtZHJvcC1kb3duLWJveCBbKHZhbHVlKV09XCJzZXJpYWxHcmlkQm94VmFsdWVcIiBbKG9wZW5lZCldPVwiaXNTZXJpYWxHcmlkQm94T3BlbmVkXCIgdmFsdWVFeHByPVwic2VyaWVzXCJcclxuICAgICAgICAgICAgICAgICAgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2Rpc3BsYXlFeHByXT1cInNlcmlhbEdyaWRCb3hfZGlzcGxheUV4cHJcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6U2VsZWN0QVZhbHVlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJTZXJpZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZVNlcmllc1wiXHJcbiAgICAgICAgICAgICAgICAgIChvbk9wdGlvbkNoYW5nZWQpPVwib25TZXJpYWxHcmlkQm94T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1kYXRhLWdyaWQgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZVNlcmllc1wiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW2hlaWdodF09XCIyNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsoc2VsZWN0ZWRSb3dLZXlzKV09XCJzZXJpYWxHcmlkQm94VmFsdWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwic2VyaWVzXCIgY2FwdGlvbj1cIlNlcmlcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwibmFtZVwiIGNhcHRpb249XCJBZFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaW5maW5pdGVcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWdyb3Vwc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckdyb3VwJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItZ3JvdXBzXCIgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUdyb3Vwc1wiIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFeHByPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckdyb3VwXCIgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nR3JvdXBzXCIgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiIGF1dG9mb2N1cz48L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdHcm91cHNcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snZURvbnVzdW06OkxvYWRpbmcnfGFicExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYm94IFsodmFsdWUpXT1cImdyb3VwR3JpZEJveFZhbHVlXCIgWyhvcGVuZWQpXT1cImlzR3JvdXBHcmlkQm94T3BlbmVkXCIgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkZWZlclJlbmRlcmluZ109XCJmYWxzZVwiIFtkaXNwbGF5RXhwcl09XCJncm91cEdyaWRCb3hfZGlzcGxheUV4cHJcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdlRG9udXN1bTo6U2VsZWN0QVZhbHVlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlR3JvdXBzXCJcclxuICAgICAgICAgICAgICAgICAgKG9uT3B0aW9uQ2hhbmdlZCk9XCJvbkdyb3VwR3JpZEJveE9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVHcm91cHNcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwidHJ1ZVwiIFtoZWlnaHRdPVwiMjUwXCJcclxuICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkUm93S2V5cyldPVwiZ3JvdXBHcmlkQm94VmFsdWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY29kZVwiIGNhcHRpb249XCJLb2RcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwibmFtZVwiIGNhcHRpb249XCJBZFwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLXNjcm9sbGluZyBtb2RlPVwiaW5maW5pdGVcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8L2R4LWRyb3AtZG93bi1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWFjY291bnRcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJCYW5rQWNjb3VudCd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLWFjY291bnRcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlQWNjb3VudHNcIiB2YWx1ZUV4cHI9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQWNjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9hZGluZ0FjY291bnRzXCIgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ0FjY291bnRzXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTAgc3RhcnQtNTAgdHJhbnNsYXRlLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2VEb251c3VtOjpMb2FkaW5nJ3xhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZHgtZHJvcC1kb3duLWJveCBbKHZhbHVlKV09XCJhY2NvdW50R3JpZEJveFZhbHVlXCIgWyhvcGVuZWQpXT1cImlzQWNjb3VudEdyaWRCb3hPcGVuZWRcIiB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgICAgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2Rpc3BsYXlFeHByXT1cImFjY291bnRHcmlkQm94X2Rpc3BsYXlFeHByXCIgW2Ryb3BEb3duT3B0aW9uc109XCJ7IHdpZHRoOiA3NTAgfVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2VEb251c3VtOjpTZWxlY3RBVmFsdWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckFjY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUFjY291bnRzXCJcclxuICAgICAgICAgICAgICAgICAgKG9uT3B0aW9uQ2hhbmdlZCk9XCJvbkFjY291bnRHcmlkQm94T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1kYXRhLWdyaWQgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUFjY291bnRzXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbaGVpZ2h0XT1cIjI1MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZFJvd0tleXMpXT1cImFjY291bnRHcmlkQm94VmFsdWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaWRcIiBjYXB0aW9uPVwiS29kXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInRleHRcIiBjYXB0aW9uPVwiQWRcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1zZWxlY3Rpb24gbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNlbGVjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImluZmluaXRlXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtlbmFibGVkXT1cInRydWVcIiBbcGFnZVNpemVdPVwiMTBcIj48L2R4by1wYWdpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgICAgICAgPC9keC1kcm9wLWRvd24tYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lck1haWwnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJFbWFpbFwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1zZWxlY3QtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItY291bnRyeVwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXNcIiB2YWx1ZUV4cHI9XCJjb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJDb3VudHJ5XCIgbWF4bGVuZ3RoPVwiMjU2XCJcclxuICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiZ2V0U3RhdGVzKClcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nQ291bnRyaWVzXCIgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzPjwvZHgtc2VsZWN0LWJveD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ0NvdW50cmllc1wiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwIHN0YXJ0LTUwIHRyYW5zbGF0ZS1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydlRG9udXN1bTo6TG9hZGluZyd8YWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWNvdW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OlBhcnRuZXJDb3VudHJ5JyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYm94IFsodmFsdWUpXT1cImNvdW50cnlHcmlkQm94VmFsdWVcIiBbKG9wZW5lZCldPVwiaXNDb3VudHJ5R3JpZEJveE9wZW5lZFwiIHZhbHVlRXhwcj1cImNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZWZlclJlbmRlcmluZ109XCJmYWxzZVwiIFtkaXNwbGF5RXhwcl09XCJjb3VudHJ5R3JpZEJveF9kaXNwbGF5RXhwclwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZURvbnVzdW06OlNlbGVjdEFWYWx1ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQ291bnRyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiIFtkYXRhU291cmNlXT1cInBhcnRuZXJBdmFpbGFibGVDb3VudHJpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbk9wdGlvbkNoYW5nZWQpPVwib25Db3VudHJ5R3JpZEJveE9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeC1kYXRhLWdyaWQgW2RhdGFTb3VyY2VdPVwicGFydG5lckF2YWlsYWJsZUNvdW50cmllc1wiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW2hlaWdodF09XCIyNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZFJvd0tleXMpXT1cImNvdW50cnlHcmlkQm94VmFsdWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJjb2RlXCIgY2FwdGlvbj1cIkNvZGVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cIk5hbWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImluZmluaXRlXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kcm9wLWRvd24tYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLXN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyU3RhdGUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxkeC1zZWxlY3QtYm94IGlkPVwiY3JlYXRlLXBhcnRuZXItc3RhdGVcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlU3RhdGVzXCIgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyU3RhdGVcIiBtYXhsZW5ndGg9XCIyNTZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdTdGF0ZXNcIiBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCIgYXV0b2ZvY3VzPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4LXNlbGVjdC1ib3g+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdTdGF0ZXNcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIHRvcC01MCBzdGFydC01MCB0cmFuc2xhdGUtbWlkZGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snZURvbnVzdW06OkxvYWRpbmcnfGFicExvY2FsaXphdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkeC1kcm9wLWRvd24tYm94IFsodmFsdWUpXT1cInN0YXRlR3JpZEJveFZhbHVlXCIgWyhvcGVuZWQpXT1cImlzU3RhdGVHcmlkQm94T3BlbmVkXCIgdmFsdWVFeHByPVwiY29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RlZmVyUmVuZGVyaW5nXT1cImZhbHNlXCIgW2Rpc3BsYXlFeHByXT1cInN0YXRlR3JpZEJveF9kaXNwbGF5RXhwclwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZURvbnVzdW06OlNlbGVjdEFWYWx1ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIiBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlU3RhdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAob25PcHRpb25DaGFuZ2VkKT1cIm9uU3RhdGVHcmlkQm94T3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCBbZGF0YVNvdXJjZV09XCJwYXJ0bmVyQXZhaWxhYmxlU3RhdGVzXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbaGVpZ2h0XT1cIjI1MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkUm93S2V5cyldPVwic3RhdGVHcmlkQm94VmFsdWVcIiBbcmVtb3RlT3BlcmF0aW9uc109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJjb2RlXCIgY2FwdGlvbj1cIkNvZGVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJuYW1lXCIgY2FwdGlvbj1cIk5hbWVcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwic2luZ2xlXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1maWx0ZXItcm93IFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1maWx0ZXItcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImluZmluaXRlXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGR4by1wYWdpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cclxuICAgICAgICAgICAgICAgICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgICAgICAgICAgICAgPC9keC1kcm9wLWRvd24tYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLXppcGNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJaaXBjb2RlJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLXppcGNvZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyWmlwQ29kZVwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWNpdHlcIj5cclxuICAgICAgICAgICAgICAgICAge3snZURvbnVzdW06OlBhcnRuZXJDaXR5J3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLWNpdHlcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQ2l0eVwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImNyZWF0ZS1wYXJ0bmVyLWNvdW50eVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckNvdW50eSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtcGFydG5lci1jb3VudHlcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJ0bmVyQ291bnR5XCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3JlYXRlLXBhcnRuZXItc3RyZWV0XCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7J2VEb251c3VtOjpQYXJ0bmVyU3RyZWV0J3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLXN0cmVldFwiIGZvcm1Db250cm9sTmFtZT1cInBhcnRuZXJTdHJlZXRcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LXRleHQtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjcmVhdGUtcGFydG5lci1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eydlRG9udXN1bTo6UGFydG5lckJsb2NrJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1wYXJ0bmVyLWJsb2NrXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFydG5lckJsb2NrXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgW2Rpc2FibGVkXT1cImlzTW9kYWxCdXN5Rm9yUGFydG5lclwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCJcclxuICAgICAgZm9ybT1cImNyZWF0ZS1wYXJ0bmVyXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6Q3JlYXRlQnVzaW5lc3NQYXJ0bmVyJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+XHJcblxyXG48YWJwLW1vZGFsIFtidXN5XT1cImlzTW9kYWxCdXN5Rm9yRHJhZnRcIiBbKHZpc2libGUpXT1cImlzTW9kYWxPcGVuRm9yRHJhZnRcIiBbb3B0aW9uc109XCJ7IHNpemU6ICd4bCcgfVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxyXG4gICAgPGgzPlxyXG4gICAgICB7eyAoc2VsZWN0ZWQgPyAnQWJwVWk6OkVkaXQnIDogJ2VEb251c3VtOjpDcmVhdGVEcmFmdCcpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIGlkPVwiZHJhZnQtZG9jdW1lbnRcIj5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZFwiPiAtLT5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+IC0tPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtdC0zXCI+IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtbGFiZWxcIj4ge3snZURvbnVzdW06OlBhcnRuZXJWS04nfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHgtdGV4dC1ib3ggaWQ9XCJjcmVhdGUtZHJhZnQtdmtuXCIgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGhpcy5zZWxlY3RlZEluYm91bmRJbnZvaWNlLmFjY291bnRpbmdTdXBwbGllclBhcnR5VmtuVGNrblwiIG1heGxlbmd0aD1cIjI1NlwiPjwvZHgtdGV4dC1ib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLWxhYmVsXCI+IHt7J2VEb251c3VtOjpJc3N1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHgtZGF0ZS1ib3ggaWQ9XCJjcmVhdGUtZHJhZnQtaXNzdWUtZGF0ZVwiIFtkaXNhYmxlZF09XCJ0cnVlXCIgZGF0YVR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRoaXMuc2VsZWN0ZWRJbmJvdW5kSW52b2ljZS5pc3N1ZURhdGVcIiBtYXhsZW5ndGg9XCIyNTZcIj48L2R4LWRhdGUtYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLWxhYmVsXCI+IHt7J2VEb251c3VtOjpQYXJ0bmVyTmFtZSd8YWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHgtZmllbGQtdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDxkeC10ZXh0LWJveCBpZD1cImNyZWF0ZS1kcmFmdC1wYXJ0bmVyLW5hbWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UuYWNjb3VudGluZ1N1cHBsaWVyUGFydHlOYW1lXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC1sYWJlbFwiPiB7eydlRG9udXN1bTo6SW52b2ljZUlkJ3xhYnBMb2NhbGl6YXRpb259fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC12YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGR4LXRleHQtYm94IGlkPVwiY3JlYXRlLWRyYWZ0LWludm9pY2UtaWRcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aGlzLnNlbGVjdGVkSW5ib3VuZEludm9pY2UuaW52b2ljZUlkXCIgbWF4bGVuZ3RoPVwiMjU2XCI+PC9keC10ZXh0LWJveD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkeC1kYXRhLWdyaWQgI2R4RHJhZnREb2N1bWVudExpbmVzIFtkYXRhU291cmNlXT1cImRyYWZ0RG9jdW1lbnRMaW5lc1wiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIFtzaG93Qm9yZGVyc109XCJ0cnVlXCJcclxuICAgICAgICBbcmVtb3RlT3BlcmF0aW9uc109XCJmYWxzZVwiIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgW3JlcGFpbnRDaGFuZ2VzT25seV09XCJ0cnVlXCIgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCIgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDUwdmg7XCI+XHJcbiAgICAgICAgPGR4by1jb2x1bW4tZml4aW5nIFtlbmFibGVkXT1cInRydWVcIj48L2R4by1jb2x1bW4tZml4aW5nPlxyXG4gICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICAgICAgICA8ZHhvLXNvcnRpbmcgbW9kZT1cInNpbmdsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgICAgICAgPGR4by1jb2x1bW4tY2hvb3NlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFtlbmFibGVkXT1cInRydWVcIiBtb2RlPVwic2VsZWN0XCI+PC9keG8tY29sdW1uLWNob29zZXI+XHJcbiAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgIDxkeG8tZWRpdGluZyBbYWxsb3dVcGRhdGluZ109XCJ0cnVlXCIgW2FsbG93QWRkaW5nXT1cImZhbHNlXCIgW2FsbG93RGVsZXRpbmddPVwidHJ1ZVwiIG1vZGU9XCJjZWxsXCIgW3VzZUljb25zXT1cInRydWVcIj5cclxuICAgICAgICA8L2R4by1lZGl0aW5nPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIm9ialR5cGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Ok9iamVjdFR5cGUnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48ZHhvLWxvb2t1cCBbZGF0YVNvdXJjZV09XCJvYmplY3RUeXBlc0xvb2t1cFwiIHZhbHVlRXhwcj1cImlkXCIgZGlzcGxheUV4cHI9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICA8L2R4by1sb29rdXA+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0VudHJ5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NFbnRyeSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NOdW1cIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY051bSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJudW1BdENhcmRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Ok51bUF0Q2FyZCd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJsaW5lTnVtXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpMaW5lTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG5cclxuICAgICAgICA8IS0tIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNhcmRDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpDYXJkQ29kZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj4gLS0+XHJcbiAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NEdWVEYXRlXCIgZGF0YVR5cGU9XCJkYXRlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NEdWVEYXRlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cIml0ZW1Db2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpJdGVtQ29kZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkc2NyaXB0aW9uXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEc2NyaXB0aW9uJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJ0ZXh0XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpUZXh0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJmcmVlVHh0XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpGcmVlVHh0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJvcGVuUXR5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpPcGVuUXR5J3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInNlbGVjdGVkUXR5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpTZWxlY3RlZFF0eSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgW2FsbG93RWRpdGluZ109XCJ0cnVlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICA8L2R4LWRhdGEtZ3JpZD5cclxuICAgICAgPCEtLSA8L2Rpdj4gLS0+XHJcbiAgICAgIDwhLS0gPC9kaXY+XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZm9ybT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT5cclxuICAgICAge3sgJ0FicFVpOjpDYW5jZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nXCIgKGNsaWNrKT1cIm9wZW5PcGVuRG9jdW1lbnRzRm9ybSgpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6UmVzb3VyY2VEb2N1bWVudHMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgW2Rpc2FibGVkXT1cImlzTW9kYWxCdXN5Rm9yRHJhZnRcIiAoY2xpY2spPVwiY3JlYXRlRHJhZnREb2N1bWVudCgpXCI+XHJcbiAgICAgIHt7ICdlRG9udXN1bTo6Q3JlYXRlRG9jdW1lbnQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuXHJcbjxhYnAtbW9kYWwgW2J1c3ldPVwiaXNNb2RhbEJ1c3lGb3JPcGVuRG9jc1wiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5Gb3JPcGVuRG9jc1wiIFtvcHRpb25zXT1cInsgc2l6ZTogJ3hsJyB9XCI+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBIZWFkZXI+XHJcbiAgICA8aDM+XHJcbiAgICAgIHt7IChzZWxlY3RlZCA/ICdBYnBVaTo6RWRpdCcgOiAnZURvbnVzdW06Ok9wZW5Eb2NzJykgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvaDM+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XHJcbiAgICA8Zm9ybSBpZD1cIm9wZW4tZG9jdW1lbnRzXCI+XHJcbiAgICAgIDwhLS0gRGV2RXh0cmVtZSBUYWIgUGFuZWwgLS0+XHJcbiAgICAgIDxkeC10YWItcGFuZWwgW2FuaW1hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiIFtzd2lwZUVuYWJsZWRdPVwidHJ1ZVwiIFtsb29wXT1cImZhbHNlXCIgI3RhYlBhbmVsPlxyXG4gICAgICAgIDxkeGktaXRlbSB0aXRsZT1cInt7ICdlRG9udXN1bTo6UHVyY2hhc2VPcmRlcicgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBpY29uPVwiZmFzIGZhLXNob3BwaW5nLWNhcnRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhQdXJjaGFzZU9yZGVyRG9jdW1lbnRzIFtkYXRhU291cmNlXT1cInB1cmNoYXNlT3JkZXJEb2N1bWVudHNcIiBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cImZhbHNlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIiBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCIgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiIHN0eWxlPVwiaGVpZ2h0OiA1MHZoO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1jaG9vc2VyIFthbGxvd1NlYXJjaF09XCJ0cnVlXCIgW2VuYWJsZWRdPVwidHJ1ZVwiIG1vZGU9XCJzZWxlY3RcIj48L2R4by1jb2x1bW4tY2hvb3Nlcj5cclxuICAgICAgICAgICAgICAgICAgPGR4by1zZWxlY3Rpb24gbW9kZT1cIm11bHRpcGxlXCIgc2VsZWN0QWxsTW9kZT1cInBhZ2VcIiBzaG93Q2hlY2tCb3hlc01vZGU9XCJhbHdheXNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9keG8tc2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWVkaXRpbmcgW2FsbG93VXBkYXRpbmddPVwiZmFsc2VcIiBbYWxsb3dBZGRpbmddPVwiZmFsc2VcIiBbYWxsb3dEZWxldGluZ109XCJmYWxzZVwiIG1vZGU9XCJjZWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZHhvLWVkaXRpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0VudHJ5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NFbnRyeSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY051bVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwibnVtQXRDYXJkXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpOdW1BdENhcmQnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJsaW5lTnVtXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpMaW5lTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNhcmRDb2RlXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpDYXJkQ29kZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0RhdGVcIiBkYXRhVHlwZT1cImRhdGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0RhdGUnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkb2NEdWVEYXRlXCIgZGF0YVR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBjYXB0aW9uPVwie3snZURvbnVzdW06OkRvY0R1ZURhdGUnfGFicExvY2FsaXphdGlvbn19XCIgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiaXRlbUNvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06Okl0ZW1Db2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZHNjcmlwdGlvblwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RHNjcmlwdGlvbid8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInRleHRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OlRleHQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJmcmVlVHh0XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpGcmVlVHh0J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwib3BlblF0eVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6T3BlblF0eSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9keGktaXRlbT5cclxuXHJcbiAgICAgICAgPGR4aS1pdGVtIHRpdGxlPVwie3sgJ2VEb251c3VtOjpQdXJjaGFzZURlc3BhdGNoJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIGljb249XCJmYXMgZmEtdHJ1Y2tcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGR4LWRhdGEtZ3JpZCAjZHhQdXJjaGFzZURlc3BhdGNoRG9jdW1lbnRzIFtkYXRhU291cmNlXT1cInB1cmNoYXNlRGVzcGF0Y2hEb2N1bWVudHNcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd1Jvd0xpbmVzXT1cInRydWVcIiBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiIFtyZW1vdGVPcGVyYXRpb25zXT1cImZhbHNlXCIgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbcmVwYWludENoYW5nZXNPbmx5XT1cInRydWVcIiBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCIgY29sdW1uUmVzaXppbmdNb2RlPVwid2lkZ2V0XCJcclxuICAgICAgICAgICAgICAgICAgW2FsbG93Q29sdW1uUmVvcmRlcmluZ109XCJ0cnVlXCIgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCIgW2NvbHVtbkhpZGluZ0VuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA1MHZoO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWNvbHVtbi1maXhpbmcgW2VuYWJsZWRdPVwidHJ1ZVwiPjwvZHhvLWNvbHVtbi1maXhpbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8taGVhZGVyLWZpbHRlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFt2aXNpYmxlXT1cInRydWVcIj48L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLWZpbHRlci1yb3cgW3Zpc2libGVdPVwidHJ1ZVwiPjwvZHhvLWZpbHRlci1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tc29ydGluZyBtb2RlPVwic2luZ2xlXCI+PC9keG8tc29ydGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1jb2x1bW4tY2hvb3NlciBbYWxsb3dTZWFyY2hdPVwidHJ1ZVwiIFtlbmFibGVkXT1cInRydWVcIiBtb2RlPVwic2VsZWN0XCI+PC9keG8tY29sdW1uLWNob29zZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxkeG8tZWRpdGluZyBbYWxsb3dVcGRhdGluZ109XCJmYWxzZVwiIFthbGxvd0FkZGluZ109XCJmYWxzZVwiIFthbGxvd0RlbGV0aW5nXT1cImZhbHNlXCIgbW9kZT1cImNlbGxcIj5cclxuICAgICAgICAgICAgICAgICAgPC9keG8tZWRpdGluZz5cclxuICAgICAgICAgICAgICAgICAgPGR4by1zY3JvbGxpbmcgbW9kZT1cImhvcml6b250YWxcIiBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhvLXNlbGVjdGlvbiBtb2RlPVwibXVsdGlwbGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L2R4by1zZWxlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0VudHJ5XCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEb2NFbnRyeSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY051bVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwibnVtQXRDYXJkXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpOdW1BdENhcmQnfGFicExvY2FsaXphdGlvbn19XCJcclxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJsaW5lTnVtXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpMaW5lTnVtJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY2FyZENvZGVcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkNhcmRDb2RlJ3xhYnBMb2NhbGl6YXRpb259fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiZG9jRGF0ZVwiIGRhdGFUeXBlPVwiZGF0ZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFthbGxvd0VkaXRpbmddPVwiZmFsc2VcIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImRvY0R1ZURhdGVcIiBkYXRhVHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNhcHRpb249XCJ7eydlRG9udXN1bTo6RG9jRHVlRGF0ZSd8YWJwTG9jYWxpemF0aW9ufX1cIiBbYWxsb3dFZGl0aW5nXT1cImZhbHNlXCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJpdGVtQ29kZVwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6SXRlbUNvZGUnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkc2NyaXB0aW9uXCIgY2FwdGlvbj1cInt7J2VEb251c3VtOjpEc2NyaXB0aW9uJ3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidGV4dFwiIGNhcHRpb249XCJ7eydlRG9udXN1bTo6VGV4dCd8YWJwTG9jYWxpemF0aW9ufX1cIj48L2R4aS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImZyZWVUeHRcIiBjYXB0aW9uPVwie3snZURvbnVzdW06OkZyZWVUeHQnfGFicExvY2FsaXphdGlvbn19XCI+PC9keGktY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJvcGVuUXR5XCIgW2FsbG93RWRpdGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2FwdGlvbj1cInt7J2VEb251c3VtOjpPcGVuUXR5J3xhYnBMb2NhbGl6YXRpb259fVwiPjwvZHhpLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZHhpLWl0ZW0+XHJcbiAgICAgIDwvZHgtdGFiLXBhbmVsPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgYWJwQ2xvc2U+XHJcbiAgICAgIHt7ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIFtkaXNhYmxlZF09XCJpc01vZGFsQnVzeUZvck9wZW5Eb2NzXCIgKGNsaWNrKT1cInNlbGVjdE9wZW5Eb2N1bWVudHMoKVwiPlxyXG4gICAgICB7eyAnZURvbnVzdW06OlNlbGVjdERvY3VtZW50JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9hYnAtbW9kYWw+Il19