@hmcts/ccpay-web-component 6.2.8 → 6.2.9-beta1

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.
@@ -253,6 +253,7 @@ export class PaymentViewComponent {
253
253
  this.viewStatus = 'paymentview';
254
254
  }
255
255
  issueRefund(paymentgrp) {
256
+ this.paymentLibComponent.addPaymentGroup(this.paymentGroup);
256
257
  if (paymentgrp !== null && paymentgrp !== undefined) {
257
258
  if (this.chkIsIssueRefundBtnEnable(paymentgrp.payments[0])) {
258
259
  // No refund and no over payment --> showIssueRefundPage()
@@ -463,4 +464,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
463
464
  type: Input,
464
465
  args: ["isServiceRequest"]
465
466
  }] } });
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFLckYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFbkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1B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LG9CQUFvQixhQUduQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsV0FDcEY7d0JBQ1AsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDckQsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO3dCQUNqRSx1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLG9CQUFvQjtxQkFDckIsY0FDVyxJQUFJOzswQkEwRGIsTUFBTTsyQkFBQyxhQUFhO3lHQXREZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR3FCLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BheW1lbnRWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7SVBheW1lbnRHcm91cH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7SUZlZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7SVBheW1lbnR9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHtJUmVtaXNzaW9ufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuaW1wb3J0IHtQb3N0UmVmdW5kUmV0cm9SZW1pc3Npb259IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7SVBheW1lbnRGYWlsdXJlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50RmFpbHVyZSc7XG5pbXBvcnQge09yZGVyc2xpc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtJUmVmdW5kQ29udGFjdERldGFpbHN9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmltcG9ydCB7QWRkUmVtaXNzaW9uQ29tcG9uZW50fSBmcm9tICcuLi9hZGQtcmVtaXNzaW9uL2FkZC1yZW1pc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTdGF0dXNIaXN0b3J5Q29tcG9uZW50fSBmcm9tICcuLi9zdGF0dXMtaGlzdG9yeS9zdGF0dXMtaGlzdG9yeS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZXJ2aWNlUmVxdWVzdENvbXBvbmVudH0gZnJvbSAnLi4vc2VydmljZS1yZXF1ZXN0L3NlcnZpY2UtcmVxdWVzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb250YWN0RGV0YWlsc0NvbXBvbmVudH0gZnJvbSAnLi4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25QcmV2aWV3Q29tcG9uZW50fSBmcm9tICcuLi9ub3RpZmljYXRpb24tcHJldmlldy9ub3RpZmljYXRpb24tcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtDY2RIeXBoZW5zUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvY2NkLWh5cGhlbnMucGlwZSc7XG5pbXBvcnQge0NhcGl0YWxpemVQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xuaW1wb3J0IHtScHhUcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgdHlwZSB7UGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5cbnR5cGUgUGF5bWVudExpYkFsaWFzID0gUGF5bWVudExpYkNvbXBvbmVudDtcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGF5bWVudC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BheW1lbnQtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdQQVlNRU5UX1ZJRVcnLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYXltZW50Vmlld0NvbXBvbmVudCkgfV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQWRkUmVtaXNzaW9uQ29tcG9uZW50KSxcbiAgICBTdGF0dXNIaXN0b3J5Q29tcG9uZW50LCBmb3J3YXJkUmVmKCgpID0+IFNlcnZpY2VSZXF1ZXN0Q29tcG9uZW50KSxcbiAgICBDb250YWN0RGV0YWlsc0NvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25QcmV2aWV3Q29tcG9uZW50LFxuICAgIENjZEh5cGhlbnNQaXBlLFxuICAgIENhcGl0YWxpemVQaXBlLFxuICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5cbmV4cG9ydCBjbGFzcyBQYXltZW50Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzVHVybk9mZjogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FzZVR5cGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9yZGVyUmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyVG90YWxQYXltZW50czogbnVtYmVyO1xuICBASW5wdXQoKSBwYXltZW50OiBJUGF5bWVudDtcbiAgQElucHV0KCkgTE9HR0VESU5VU0VSUk9MRVM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBJU1BBWU1FTlRTVEFUVVNFTkFCTEVEOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyUGFydHk6IHN0cmluZztcbiAgQElucHV0KCkgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBASW5wdXQoKSBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyRmVlc1RvdGFsOiBudW1iZXI7XG4gIEBJbnB1dCgpIG9yZGVyUmVtaXNzaW9uVG90YWw6IG51bWJlcjtcbiAgQElucHV0KCkgb3JkZXJEZXRhaWw6IGFueVtdO1xuICBmZWVzOiBhbnk7XG4gIGlzRnVsbHlSZWZ1bmQ6IGJvb2xlYW47XG4gIEBJbnB1dChcImlzU2VydmljZVJlcXVlc3RcIikgaXNTZXJ2aWNlUmVxdWVzdDogc3RyaW5nO1xuICBlcnJvck1zZzogc3RyaW5nO1xuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBjY2RDYXNlTnVtYmVyOiBzdHJpbmc7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGRjbk51bWJlcjogc3RyaW5nO1xuICBpc1N0YXR1c0FsbG9jYXRlZDogYm9vbGVhbjtcbiAgaXNSZW1pc3Npb25zTWF0Y2g6IGJvb2xlYW47XG4gIGZlZUlkOiBJRmVlO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIGlzUmVmdW5kUmVtaXNzaW9uOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBpc0FkZEZlZUJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZCA9IFsncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJywgJ3BheW1lbnRzLXJlZnVuZCddO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10gPSBbXTtcbiAgYWxsUGF5bWVudHNGYWlsdXJlOiBJUGF5bWVudEZhaWx1cmVbXSA9IFtdO1xuICBzZWxlY3RlZFBheW1lbnRzU3RhdHVzOiBJUGF5bWVudEZhaWx1cmU7XG4gIHJlbWlzc2lvbkZlZUFtdDogbnVtYmVyO1xuICBpc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZTogYm9vbGVhbjtcbiAgc2VydmljZVJlZmVyZW5jZTogc3RyaW5nO1xuICBpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U6IGJvb2xlYW47XG4gIGlzRnJvbVBheW1lbnREZXRhaWxQYWdlOiBib29sZWFuO1xuICBwYXltZW50RmVlczogSUZlZVtdO1xuICBwYXltZW50VHlwZTogc3RyaW5nO1xuICBpc0NvbnRpbnVlQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICB2aWV3Q29tcFN0YXR1czogc3RyaW5nO1xuICBjb250YWN0RGV0YWlsc09iajogSVJlZnVuZENvbnRhY3REZXRhaWxzXG4gIG5vdGlmaWNhdGlvbjogYW55O1xuICBpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkOiBib29sZWFuO1xuICByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgcmVmdW5kQW1vdW50OiBzdHJpbmc7XG4gIHRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlOiBzdHJpbmc7XG4gIG5vdGlmaWNhdGlvblByZXZpZXc6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoJ1BBWU1FTlRfTElCJykgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQWxpYXMsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT047XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5zZXJ2aWNlUmVmZXJlbmNlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICBsZXQgZmVlcyA9IFtdO1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuXG4gICAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW0gPT4ge1xuICAgICAgICAgICAgaWYgKHJlbS5mZWVfY29kZSA9PT0gZmVlLmNvZGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgIGZlZVsncmVtaXNzaW9ucyddID0gcmVtO1xuICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNSZW1pc3Npb25zTWF0Y2gpIHtcbiAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHBheW1lbnRHcm91cC5mZWVzID0gZmVlc1xuICAgICAgICB0aGlzLnBheW1lbnRGZWVzID0gZmVlcztcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5hZGRQYXltZW50R3JvdXAodGhpcy5wYXltZW50R3JvdXApO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXltZW50RmFpbHVyZSh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgSlNPTi5wYXJzZShyZXMpLnBheW1lbnRfZmFpbHVyZV9saXN0LnJldmVyc2UoKS5mb3JFYWNoKHBheW1lbnRzID0+IHtcblxuICAgICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlLnB1c2gocGF5bWVudHMucGF5bWVudF9mYWlsdXJlX2luaXRpYXRlZCk7XG4gICAgICAgICAgaWYgKHBheW1lbnRzLnBheW1lbnRfZmFpbHVyZV9jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlLnB1c2gocGF5bWVudHMucGF5bWVudF9mYWlsdXJlX2Nsb3NlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hbGxQYXltZW50c0ZhaWx1cmUgPSB0aGlzLmFsbFBheW1lbnRzRmFpbHVyZS5yZXZlcnNlKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlID0gW107XG4gICAgICAgIHRoaXMuZXJyb3JNc2cgPSBcIlNlcnZlciBlcnJvclwiXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldCBpc0NhcmRQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5tZXRob2QgPT09ICdjYXJkJztcbiAgfVxuXG4gIGdldCBpc1RlbGVwaG9ueVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmNoYW5uZWwgPT09ICd0ZWxlcGhvbnknO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXltZW50TGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncGF5bWVudC1saXN0JztcbiAgfVxuICBnZXRPdmVyUGF5bWVudFZhbHVlKCkge1xuICAgIGxldCBmZWVzT3ZlclBheW1lbnQgPSAwO1xuICAgIHRoaXMucGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgZmVlc092ZXJQYXltZW50ICs9IGZlZS5vdmVyX3BheW1lbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZlZXNPdmVyUGF5bWVudCA+IDAgPyBmZWVzT3ZlclBheW1lbnQgOiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQub3ZlclBheW1lbnRBbW91bnRcblxuICB9XG4gIGdvVG9TZXJ2aWNlUmVxdWVzdFBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VSVklDRVJFUVVFU1QgPSAndHJ1ZSc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG4gIGdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgdGhpcy5yZXNldE9yZGVyRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUmVmcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclJlZiA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckNDREV2ZW50cygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckNDREV2ZW50ID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyQ3JlYXRlZHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJDcmVhdGVkID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyRGV0YWlsKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyRGV0YWlsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUGFydHlzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUGFydHkgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJSZW1pc3Npb25Ub3RhbHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckZlZXNUb3RhbHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJGZWVzVG90YWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b29yZGVyVG90YWxQYXltZW50c3MoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJUb3RhbFBheW1lbnRzID0gZGF0YSk7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnb3JkZXItZnVsbC12aWV3JztcbiAgICB9XG5cbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICBpZiAodGhpcy5jaGtJc0FkZFJlbWlzc2lvbkJ0bkVuYWJsZShmZWUpKSB7XG4gICAgICB0aGlzLmZlZUlkID0gZmVlO1xuICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVtaXNzaW9uJztcbiAgICAgICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JGZWVzKHBheW1lbnRHcm91cDogYW55KSB7XG4gICAgaWYgKHBheW1lbnRHcm91cCAhPT0gbnVsbCAmJiBwYXltZW50R3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzICE9PSBudWxsICYmIHBheW1lbnRHcm91cC5mZWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb2Nlc3NSZWZ1bmQoKSB7XG4gICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG9iaiA9IHRoaXMucGF5bWVudEdyb3VwLmZlZXNbMF07XG4gICAgdGhpcy5mZWVzID0gW3tcbiAgICAgIGlkOiBvYmouaWQsXG4gICAgICBjb2RlOiBvYmouY29kZSxcbiAgICAgIHZlcnNpb246IG9iai52ZXJzaW9uLFxuICAgICAgYXBwb3J0aW9uX2Ftb3VudDogb2JqLmFwcG9ydGlvbl9hbW91bnQsXG4gICAgICBjYWxjdWxhdGVkX2Ftb3VudDogb2JqLmNhbGN1bGF0ZWRfYW1vdW50LFxuICAgICAgdXBkYXRlZF92b2x1bWU6IG9iai51cGRhdGVkX3ZvbHVtZSA/IG9iai51cGRhdGVkX3ZvbHVtZSA6IG9iai52b2x1bWUsXG4gICAgICB2b2x1bWU6IG9iai52b2x1bWUsXG4gICAgICByZWZ1bmRfYW1vdW50OiB0aGlzLmdldE92ZXJQYXltZW50VmFsdWUoKVxuICAgIH1dO1xuICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0gbmV3IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbih0aGlzLmNvbnRhY3REZXRhaWxzT2JqLCB0aGlzLmZlZXMsIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnJlZmVyZW5jZSwgJ1JSMDM3JyxcbiAgICAgIHRoaXMuZ2V0T3ZlclBheW1lbnRWYWx1ZSgpLCAnb3AnKTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0UmVmdW5kc1JlYXNvbihyZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKFxuICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoSlNPTi5wYXJzZShyZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJyc7XG4gICAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ3JlZnVuZGNvbmZpcm1hdGlvbnBhZ2UnO1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVmZXJlbmNlID0gSlNPTi5wYXJzZShyZXNwb25zZSkucmVmdW5kX3JlZmVyZW5jZTtcbiAgICAgICAgICB0aGlzLnJlZnVuZEFtb3VudCA9IEpTT04ucGFyc2UocmVzcG9uc2UpLnJlZnVuZF9hbW91bnQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICB9XG4gIGdvdG9BZGRyZXNzUGFnZShub3RlPzogSVJlZnVuZENvbnRhY3REZXRhaWxzKSB7XG4gICAgaWYgKG5vdGUpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uID0geyBjb250YWN0X2RldGFpbHM6IG5vdGUsIG5vdGlmaWNhdGlvbl90eXBlOiBub3RlLm5vdGlmaWNhdGlvbl90eXBlIH07XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJztcbiAgfVxuICBhZGRSZWZ1bmRGb3JSZW1pc3Npb24ocGF5bWVudDogSVBheW1lbnQsIHJlbWlzc2lvbjogSVJlbWlzc2lvbltdLCBmZWVzOiBhbnkpIHtcbiAgICAvL2lmKCF0aGlzLmNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudCkpIHtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyhwYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXMocGF5bWVudC5yZWZlcmVuY2UpKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgIHRoaXMucmVtaXNzaW9ucyA9IHJlbWlzc2lvbjtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25GZWVBbXQgPSBmZWVzLmZpbHRlcihkYXRhID0+IGRhdGEuY29kZSA9PT0gdGhpcy5yZW1pc3Npb25zWydmZWVfY29kZSddKVswXS5uZXRfYW1vdW50O1xuICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVmdW5kZm9ycmVtaXNzaW9uJztcbiAgICAgICAgLy8gY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIC8vIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuICAgIC8vfVxuICB9XG5cbiAgZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KCkge1xuICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnJztcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICB9XG5cbiAgaXNzdWVSZWZ1bmQocGF5bWVudGdycDogSVBheW1lbnRHcm91cCkge1xuXG4gICAgaWYgKHBheW1lbnRncnAgIT09IG51bGwgJiYgcGF5bWVudGdycCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5jaGtJc0lzc3VlUmVmdW5kQnRuRW5hYmxlKHBheW1lbnRncnAucGF5bWVudHNbMF0pKSB7XG5cbiAgICAgICAgLy8gTm8gcmVmdW5kIGFuZCBubyBvdmVyIHBheW1lbnQgLS0+IHNob3dJc3N1ZVJlZnVuZFBhZ2UoKVxuICAgICAgICBpZiAoIXRoaXMuaXNBbnlSZWZ1bmRzRm9yVGhpc0Nhc2UoKSAmJiB0aGlzLmdldEJhbGFuY2VUb0JlUGFpZCgpID09IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dJc3N1ZVJlZnVuZFBhZ2UocGF5bWVudGdycCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgLy8gTm8gcmVmdW5kIGFuZCBvdmVyIHBheW1lbnQgLS0+IHNob3dPdmVyUGF5bWVudCgpXG4gICAgICAgIGlmICghdGhpcy5pc0FueVJlZnVuZHNGb3JUaGlzQ2FzZSgpICYmIHRoaXMuZ2V0QmFsYW5jZVRvQmVQYWlkKCkgPiAwKSB7XG4gICAgICAgICAgdGhpcy5zaG93T3ZlclBheW1lbnQoKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICAvLyBSZWZ1bmRzID4gMCAgYW5kIG92ZXJQYXltZW50ID09IDAgLS0tPiByZWZ1bmRzIGFjY2VwdGVkLiBzaG93SXNzdWVSZWZ1bmRQYWdlKHMpXG4gICAgICAgIGlmICh0aGlzLmlzQW55UmVmdW5kc0ZvclRoaXNDYXNlKCkgJiYgdGhpcy5nZXRCYWxhbmNlVG9CZVBhaWQoKSA9PSAwKSB7XG4gICAgICAgICAgdGhpcy5zaG93SXNzdWVSZWZ1bmRQYWdlKHBheW1lbnRncnApO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIC8vIFJlZnVuZHMgPiAwIGFuZCBvdmVyUGF5bWVudCA+IDAgLS0+IHJlZnVuZHMgaW4gcHJvY2VzcyBvciBSZWplY3RlZC5cbiAgICAgICAgaWYgKHRoaXMuaXNBbnlSZWZ1bmRzRm9yVGhpc0Nhc2UoKSAmJiB0aGlzLmdldEJhbGFuY2VUb0JlUGFpZCgpID4gMCkge1xuXG4gICAgICAgICAgLy8gcmVqZWN0ZWQgYnkgZmVlIHJlZnVuZHMgPT09IHJlZnVuZHMgYnkgZmVlIGl0IG1lYW5zIHRoYXQgcmVmdW5kIGZvciB0aGUgY3VycmVudCBmZWUgaXMgcmVqZWN0ZWQuXG4gICAgICAgICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1RoZUN1cnJlbnRSZWZ1bmRSZWplY3RlZEZvclRoZUZlZSh0aGlzLnBheW1lbnRGZWVzLmF0KDApLmlkLnRvU3RyaW5nKCkpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dPdmVyUGF5bWVudCgpO1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHJlZnVuZHMgaW4gcHJvY2VzcyBTZW50IGZvciBhcHByb3ZhbCxBcHByb3ZlZFxuICAgICAgICAgIHRoaXMuc2hvd0lzc3VlUmVmdW5kUGFnZShwYXltZW50Z3JwKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgaXNBbnlSZWZ1bmRzRm9yVGhpc0Nhc2UoKXtcbiAgICByZXR1cm4gKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5yZWZ1bmRzICE9IG51bGwpICYmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucmVmdW5kcy5sZW5ndGggPiAwKTtcbiAgfVxuICBzaG93T3ZlclBheW1lbnQoKSB7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVycGF5bWVudCc7XG4gIH1cblxuICBzaG93SXNzdWVSZWZ1bmRQYWdlKHBheW1lbnRncnA6IElQYXltZW50R3JvdXApIHtcblxuICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudGdycDtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnaXNzdWVyZWZ1bmQnO1xuICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgdGhpcy5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgdGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSBmYWxzZTtcbiAgfVxuXG4gIGdldEJhbGFuY2VUb0JlUGFpZCgpe1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQub3ZlclBheW1lbnRBbW91bnRcbiAgfVxuXG5cblxuICBnZXRSZW1pc3Npb25CeUZlZUNvZGUoZmVlQ29kZTogc3RyaW5nLCByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10pOiBJUmVtaXNzaW9uIHtcbiAgICBpZiAocmVtaXNzaW9ucyAmJiByZW1pc3Npb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgcmVtaXNzaW9uIG9mIHJlbWlzc2lvbnMpIHtcbiAgICAgICAgaWYgKHJlbWlzc2lvbi5mZWVfY29kZSA9PT0gZmVlQ29kZSkge1xuICAgICAgICAgIHJldHVybiByZW1pc3Npb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjaGtJc0lzc3VlUmVmdW5kQnRuRW5hYmxlKHBheW1lbnQ6IElQYXltZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHBheW1lbnQgIT09IG51bGwgJiYgcGF5bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcGF5bWVudC5pc3N1ZV9yZWZ1bmQgJiYgcGF5bWVudC5yZWZ1bmRfZW5hYmxlXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGtJc0FkZFJlZnVuZEJ0bkVuYWJsZShyZW1pc3Npb246IElSZW1pc3Npb24pOiBib29sZWFuIHtcbiAgICBpZiAocmVtaXNzaW9uICE9PSBudWxsICYmIHJlbWlzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcmVtaXNzaW9uLmFkZF9yZWZ1bmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuXG4gIGNhbkl0QmVSZWZ1bmRlZChyZW1pc3Npb246IElSZW1pc3Npb24pOiBib29sZWFuIHtcbiAgICBpZiAocmVtaXNzaW9uICE9PSBudWxsICYmIHJlbWlzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocmVtaXNzaW9uLmFkZF9yZWZ1bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHJlbWlzc2lvbi5vdmVyYWxsX2JhbGFuY2UgPiAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGtJc0FkZFJlbWlzc2lvbkJ0bkVuYWJsZShmZWU6IElGZWUpOiBib29sZWFuIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYWRkUGF5bWVudEdyb3VwKHRoaXMucGF5bWVudEdyb3VwKTtcbiAgICBpZiAoZmVlICE9PSBudWxsICYmIGZlZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50Lm92ZXJQYXltZW50QW1vdW50ID4gMCkge1xuICAgICAgICByZXR1cm4gZmVlLmFkZF9yZW1pc3Npb24gJiYgZmVlLnJlbWlzc2lvbl9lbmFibGUgJiYgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVGhlQ3VycmVudFJlZnVuZEluUHJvY2Vzc0ZvclRoaXNGZWUoZmVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmZWUuYWRkX3JlbWlzc2lvbiAmJiBmZWUucmVtaXNzaW9uX2VuYWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cblxuICBzZWxlY3RQeW1lbnRPcHRpb24ocGF5bWVudFR5cGU6IHN0cmluZykge1xuICAgIHRoaXMucGF5bWVudFR5cGUgPSBwYXltZW50VHlwZTtcbiAgICB0aGlzLmlzQ29udGludWVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICB9XG4gIGNvbnRpbnVlUGF5bWVudChwYXltZW50Z3JwOiBJUGF5bWVudEdyb3VwKSB7XG5cbiAgICBpZiAodGhpcy5wYXltZW50VHlwZSA9PT0gJ29wJykge1xuICAgICAgdGhpcy5pc0Z1bGx5UmVmdW5kID0gZmFsc2VcbiAgICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBheW1lbnRUeXBlID09PSAnZnAnKSB7XG4gICAgICB0aGlzLmlzRnVsbHlSZWZ1bmQgPSB0cnVlXG4gICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRncnA7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnaXNzdWVyZWZ1bmQnO1xuICAgICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9IFwiXCI7XG4gICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21QYXltZW50RGV0YWlsUGFnZSA9IHRydWU7XG4gICAgICB0aGlzLmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTtcbiAgICB9XG4gIH1cbiAgZ290b1BheW1lbnRTZWxlY3RQYWdlKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVycGF5bWVudCc7XG4gIH1cbiAgZ2V0Q29udGFjdERldGFpbHMob2JqOiBJUmVmdW5kQ29udGFjdERldGFpbHMpIHtcbiAgICB0aGlzLmNvbnRhY3REZXRhaWxzT2JqID0gb2JqO1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuZ2V0VGVtcGxhdGVJbnN0cnVjdGlvblR5cGUodGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0pO1xuICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcic7XG5cbiAgfVxuXG4gIHJlc2V0T3JkZXJEYXRhKCkge1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJSZWYobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNDREV2ZW50KG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJDcmVhdGVkKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJEZXRhaWwobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclBhcnR5KG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJUb3RhbFBheW1lbnRzKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJSZW1pc3Npb25Ub3RhbChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyRmVlc1RvdGFsKG51bGwpO1xuICB9XG5cbiAgZ29Ub1BheW1lbnRGYWlsdWVQYWdlKHBheW1lbnQ6IGFueSkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYXltZW50LWZhaWx1cmUnO1xuICAgIHRoaXMuc2VsZWN0ZWRQYXltZW50c1N0YXR1cyA9IHBheW1lbnQ7XG4gIH1cbiAgZ29CYWNrVG9QYXltZW50VmlldyhldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVJbnN0cnVjdGlvblR5cGUocGF5bWVudDogSVBheW1lbnQpOiB2b2lkIHtcblxuICAgIGlmIChwYXltZW50ID09IHVuZGVmaW5lZCB8fCBwYXltZW50ID09IG51bGwpIHtcbiAgICAgIHRoaXMudGVtcGxhdGVJbnN0cnVjdGlvblR5cGUgPSAnVGVtcGxhdGUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlID0gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmdldE5vdGlmaWNhdGlvbkluc3RydWN0aW9uVHlwZShwYXltZW50LmNoYW5uZWwsIHBheW1lbnQubWV0aG9kKTtcbiAgICB9XG5cbiAgfVxuXG4gIHNob3dOb3RpZmljYXRpb25QcmV2aWV3KCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IHRydWU7XG4gIH1cblxuICBoaWRlTm90aWZpY2F0aW9uUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblByZXZpZXcgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBheW1lbnQtdmlldy1zZWN0aW9uXCI+XG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ3BheW1lbnR2aWV3JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cbjxkaXYgY2xhc3M9XCJnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cblxuICA8ZGl2ICBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzXCI+XG4gICAgPG9sIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3RcIj5cbiAgICAgIDxsaSBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW1cIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKCRldmVudClcIiBjbGFzcz1cImdvdnVrLWJhY2stbGlua1wiPnt7IFwiQmFja1wiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgPC9saT5cbiAgICA8L29sPlxuICA8L2Rpdj5cblxuICA8bWFpbiBjbGFzcz1cImdvdnVrLW1haW4td3JhcHBlciBnb3Z1ay0hLXBhZGRpbmctdG9wLTBcIiBpZD1cIm1haW4tY29udGVudFwiIHJvbGU9XCJtYWluXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3Itc3VtbWFyeVwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWxsZWRieT1cImZhaWx1cmUtZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImZhaWx1cmUtZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCI+XG4gICAgICAgICAge3sgXCJQYXltZW50IGRldGFpbHMgY291bGQgbm90IGJlIHJldHJpZXZlZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC12aWV3LWFsaWdubWVudFwiICpuZ0lmPVwiIWVycm9yTWVzc2FnZSAmJiBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdXCI+XG5cbiAgICAgIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0nUEFZTUVOVERFVEFJTFMnPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGdvdnVrLSEtbWFyZ2luLXRvcC0wXCI+e3sgXCJQYXltZW50IGRldGFpbHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8dGFibGU+XG4gICAgICAgIDx0Ym9keT5cblxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiU2VydmljZSByZXF1ZXN0IHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPnt7IHNlcnZpY2VSZWZlcmVuY2UgIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIlBheW1lbnQgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ucmVmZXJlbmNlIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIlBheW1lbnQgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+wqN7eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5hbW91bnQgfCBudW1iZXI6Jy4yJyB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm92ZXJfcGF5bWVudCA+IDBcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJPdmVyIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj7Co3t7IGdldE92ZXJQYXltZW50VmFsdWUoKSB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXSAmJiBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5kb2N1bWVudF9jb250cm9sX251bWJlciAmJiAhcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uZXh0ZXJuYWxfcmVmZXJlbmNlXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiUGF5bWVudCBhc3NldCBudW1iZXJcIiB8IHJweFRyYW5zbGF0ZX19KERDTik8L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uZG9jdW1lbnRfY29udHJvbF9udW1iZXIgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdICYmIHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmRvY3VtZW50X2NvbnRyb2xfbnVtYmVyICYmICFwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5leHRlcm5hbF9yZWZlcmVuY2VcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJCYW5rZWQgZGF0ZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmJhbmtlZF9kYXRlIHwgZGF0ZTonZGQgTU1NIHl5eXknIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXSAmJiBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5leHRlcm5hbF9yZWZlcmVuY2VcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJHb3ZQYXkgVHJhbnNhY3Rpb24gSURcIiB8IHJweFRyYW5zbGF0ZToge2dvdjogXCJHb3ZQYXlcIiwgaWQ6IFwiSURcIn0gfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uZXh0ZXJuYWxfcmVmZXJlbmNlIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiID5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIlBheW1lbnQgbWV0aG9kXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXcgdGV4dC10cmFuc2Zvcm1cIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5tZXRob2QgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5tZXRob2QgPT09ICdwYXltZW50IGJ5IGFjY291bnQnXCIgPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiVHlwZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5tZXRob2QgIT09ICdjYXJkJ1wiPnt7IFwiQ3JlZGl0XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCA9PT0gJ2NhcmQnXCI+e3sgXCJDYXJkXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJDaGFubmVsXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXcgdGV4dC10cmFuc2Zvcm1cIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5jaGFubmVsIHwgcnB4VHJhbnNsYXRlICB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDwhLS0gPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPk1ldGhvZDwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5tZXRob2QgIT09ICdjYXJkJ1wiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5tZXRob2QgPT09ICdjYXJkJ1wiPkNBUkQ8L3RkPlxuICAgICAgICA8L3RyPiAtLT5cbiAgICAgICAgPCEtLSA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5jaGFubmVsICE9PSAndGVsZXBob255J1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlN0YXR1czwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uc3RhdHVzIH19PC90ZD5cbiAgICAgICAgIDwvdHI+IC0tPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5wYXltZW50X2FsbG9jYXRpb25bMF0gIT09IHVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiQWxsb2NhdG9uIHN0YXR1c1wiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ucGF5bWVudF9hbGxvY2F0aW9uWzBdPy5hbGxvY2F0aW9uX3N0YXR1cyB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cblxuICAgICAgICAgIDx0ciAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0ub3JnYW5pc2F0aW9uX25hbWVcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIlBCQSBhY2NvdW50IG5hbWVcIiB8IHJweFRyYW5zbGF0ZToge3BiYTogXCJQQkFcIn0gfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5vcmdhbmlzYXRpb25fbmFtZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cblxuICAgICAgICAgIDx0ciAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0uYWNjb3VudF9udW1iZXJcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj5QQkEge3sgXCJudW1iZXJcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmFjY291bnRfbnVtYmVyIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXS5jdXN0b21lcl9yZWZlcmVuY2VcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIkN1c3RvbWVyIGludGVybmFsIHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uY3VzdG9tZXJfcmVmZXJlbmNlIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuXG4gICAgICA8ZGl2PlxuICAgICAgICAgICAgPCEtLSBTdGF0dXMgaGlzdG9yaWVzIC0tPlxuICAgICAgPGNjcGF5LXBheW1lbnQtc3RhdHVzZXMgKm5nSWY9XCJpc1N0YXR1c0FsbG9jYXRlZFwiIFtpc1Rha2VQYXltZW50XT1cImlzVGFrZVBheW1lbnRcIj48L2NjcGF5LXBheW1lbnQtc3RhdHVzZXM+XG4gICAgICA8L2Rpdj5cbiAgICAgPGRpdiBjbGFzcz1cInJlbWlzc2lvblwiPlxuICAgICAgICA8YnV0dG9uICBbZGlzYWJsZWRdPVwiIWNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudEdyb3VwPy5wYXltZW50c1swXSlcIiAgKGNsaWNrKT1cImlzc3VlUmVmdW5kKHBheW1lbnRHcm91cClcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiPnt7IFwiSXNzdWUgcmVmdW5kXCIgfCBycHhUcmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICAgPC9kaXY+XG48ZGl2ICpuZ0lmPVwiSVNQQVlNRU5UU1RBVFVTRU5BQkxFRFwiPlxuICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiRGlzcHV0ZWQgcGF5bWVudCBoaXN0b3J5XCIgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXY+XG4gICAgICA8dGFibGU+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGg+e3sgXCJTdGF0dXNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICAgIDx0aD57eyBcIkFtb3VudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7IFwiRGF0ZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7IFwiUGF5bWVudCByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICAgIDx0aD57eyBcIkV2ZW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD4gXG4gICAgICAgICAgPHRib2R5ICpuZ0lmPVwiIWVycm9yTXNnICYmIGFsbFBheW1lbnRzRmFpbHVyZS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHBheW1lbnQgb2YgYWxsUGF5bWVudHNGYWlsdXJlXCI+XG4gICAgICAgICAgICAgIDx0ZD57eyBwYXltZW50LnN0YXR1cyB8IGNhcGl0YWxpemUgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQ+wqN7eyBwYXltZW50LmRpc3B1dGVkX2Ftb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7KHBheW1lbnQucmVwcmVzZW50bWVudF9kYXRlID8gcGF5bWVudC5yZXByZXNlbnRtZW50X2RhdGUgOiBwYXltZW50LmZhaWx1cmVfZXZlbnRfZGF0ZV90aW1lKSB8IGRhdGU6J2RkIE1NTSB5eXl5J319PC90ZD5cbiAgICAgICAgICAgICAgPHRkPnt7IHBheW1lbnQucGF5bWVudF9yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgPnt7IHBheW1lbnQuZmFpbHVyZV90eXBlIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZ29Ub1BheW1lbnRGYWlsdWVQYWdlKHBheW1lbnQpXCI+e3sgXCJTaG93IGRldGFpbFwiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuXG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPHRib2R5ICAqbmdJZj1cImVycm9yTXNnIHx8IGFsbFBheW1lbnRzRmFpbHVyZS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI2XCI+IHt7IFwiTm8gZGlzcHV0ZWQgcGF5bWVudCBoaXN0b3J5IGF2YWlsYWJsZS5cIiB8IHJweFRyYW5zbGF0ZSB9fSA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGJyLz5cbiAgICA8YnIvPlxuICA8L2Rpdj5cbiAgICAgIFxuICAgICA8ZGl2ICAqbmdJZj1cImNoZWNrRm9yRmVlcyhwYXltZW50R3JvdXApXCI+XG4gICAgICA8ZGl2ICAqbmdJZj1cInBheW1lbnRHcm91cC5mZWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICAgIDxici8+XG4gICAgICAgICAgPGJyLz5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+e3sgXCJGZWUgYW5kIHJlbWlzc2lvbiBkZXRhaWxzXCIgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZlZSBvZiBwYXltZW50R3JvdXAuZmVlc1wiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJEZXNjcmlwdGlvblwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgXCJBcHBsaWNhdGlvbiBmb3JcIiB8IHJweFRyYW5zbGF0ZSB9fSB7eyBmZWUuZGVzY3JpcHRpb24gfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiRmVlIGNvZGVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPnt7IGZlZT8uY29kZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCIgW25nQ2xhc3NdPVwieyd0ci1ib3JkZXInOiAhZmVlLmFwcG9ydGlvbl9hbW91bnQgJiYgIWZlZS5yZW1pc3Npb25zICYmICFpc1R1cm5PZmYgfVwiPnt7IFwiRmVlIGFtb3VudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCJ7J3RyLWJvcmRlcic6ICFmZWUuYXBwb3J0aW9uX2Ftb3VudCAmJiAhZmVlLnJlbWlzc2lvbnMgJiYgIWlzVHVybk9mZn1cIj7Co3t7IGZlZT8uY2FsY3VsYXRlZF9hbW91bnQgfCBudW1iZXI6Jy4yJyB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cblxuICAgICAgICAgIDx0ciAqbmdJZj1cImZlZS5hcHBvcnRpb25fYW1vdW50XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13IHRyLWJvcmRlclwiIFtuZ0NsYXNzXT1cInsndHItYm9yZGVyJzogIWZlZS5yZW1pc3Npb25zfVwiPnt7IFwiQWxsb2NhdGVkIGFtb3VudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBbbmdDbGFzc109XCJ7J3RyLWJvcmRlcic6ICFmZWUucmVtaXNzaW9uc31cIj7Co3t7IGZlZT8uYXBwb3J0aW9uX2Ftb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWNoa0lzQWRkUmVtaXNzaW9uQnRuRW5hYmxlKGZlZSlcIiAoY2xpY2spPVwiYWRkUmVtaXNzaW9uKGZlZSlcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiPiB7eyBcIkFkZCByZW1pc3Npb25cIiB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIHJlbWlzc2lvbnMgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZGVyLWNsYXNzXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgIDx0aGVhZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjb2wtMjQgd2hpdGVzcGFjZS1pbmhlcml0XCIgc2NvcGU9XCJjb2xcIj57eyBcIkhlbHAgd2l0aCBmZWVzIG9yIHJlbWlzc2lvbiBjb2RlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjb2wtMjcgd2hpdGVzcGFjZS1pbmhlcml0XCIgc2NvcGU9XCJjb2xcIj57eyBcIlJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgd2hpdGVzcGFjZS1pbmhlcml0XCIgc2NvcGU9XCJjb2xcIj57eyBcIkZlZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgd2hpdGVzcGFjZS1pbmhlcml0XCIgc2NvcGU9XCJjb2xcIj57eyBcIlJlbWlzc2lvbiBBbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciB3aGl0ZXNwYWNlLWluaGVyaXQgcmVmdW5kQnRuXCIgc2NvcGU9XCJjb2xcIj48L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIiAgKm5nRm9yPVwibGV0IHJlbWlzc2lvbiBvZiBwYXltZW50R3JvdXAucmVtaXNzaW9uc1wiPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPnt7IHJlbWlzc2lvbj8uaHdmX3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCB3aGl0ZXNwYWNlLWluaGVyaXRcIj57eyByZW1pc3Npb24/LnJlbWlzc2lvbl9yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgd2hpdGVzcGFjZS1pbmhlcml0XCI+e3sgcmVtaXNzaW9uPy5mZWVfY29kZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCB3aGl0ZXNwYWNlLWluaGVyaXRcIj57eyByZW1pc3Npb24/Lmh3Zl9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJ319PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHJlZnVuZEJ0biB3aGl0ZXNwYWNlLWluaGVyaXRcIiAgPlxuICAgICAgICAgICAgICAgPGJ1dHRvbiAgW2Rpc2FibGVkXT1cIiFjYW5JdEJlUmVmdW5kZWQocmVtaXNzaW9uKVwiIChjbGljayk9XCJhZGRSZWZ1bmRGb3JSZW1pc3Npb24ocGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLHJlbWlzc2lvbixwYXltZW50R3JvdXAuZmVlcylcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiPiBBZGQgcmVmdW5kPC9idXR0b24+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuXG5cbiAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+PC9kaXY+XG5cbiAgIDxkaXYgKm5nSWY9XCJwYXltZW50R3JvdXAucmVtaXNzaW9ucz8ubGVuZ3RoID09PSAwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1hci0xN1wiID57eyBcIk5vIGhlbHAgd2l0aCBmZWVzIG9yIHJlbWlzc2lvbnMuXCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICA8L2Rpdj5cblxuICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYWluPlxuPC9kaXY+XG5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdhZGRyZW1pc3Npb24nICYmIGZlZUlkICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnQnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZScgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJ1wiPlxuPGNjcGF5LWFkZC1yZW1pc3Npb24gXG5baXNUdXJuT2ZmXT1cImlzVHVybk9mZlwiXG5baXNTdHJhdGVnaWNGaXhFbmFibGVdPVwiaXNTdHJhdGVnaWNGaXhFbmFibGVcIlxuW3ZpZXdDb21wU3RhdHVzXT0gXCJ2aWV3U3RhdHVzXCJcbltmZWVdPVwiZmVlSWRcIlxuW3BheW1lbnRdID0gXCJwYXltZW50XCJcbltvcmRlclN0YXR1c10gPVwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnN0YXR1c1wiXG5bcGFpZEFtb3VudF09IFwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmFtb3VudFwiXG5baXNSZWZ1bmRSZW1pc3Npb25dPVwiaXNSZWZ1bmRSZW1pc3Npb25cIlxuW2Nhc2VUeXBlXT1cImNhc2VUeXBlXCJcbltwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlXCJcbltpc0Zyb21QYXltZW50RGV0YWlsUGFnZV0gPSBcInRydWVcIlxuW2NjZENhc2VOdW1iZXJdPVwiY2NkQ2FzZU51bWJlclwiXG5bb3JkZXJGZWVzVG90YWxdID0gXCJvcmRlckZlZXNUb3RhbFwiXG5bb3JkZXJUb3RhbFBheW1lbnRzXSA9IFwib3JkZXJUb3RhbFBheW1lbnRzXCJcbltvcmRlclJlbWlzc2lvblRvdGFsXSA9IFwib3JkZXJSZW1pc3Npb25Ub3RhbFwiXG5bb3JkZXJSZWZdID0gXCJvcmRlclJlZlwiXG5bb3JkZXJDcmVhdGVkXSA9IFwib3JkZXJDcmVhdGVkXCJcbltvcmRlclBhcnR5XSA9IFwib3JkZXJQYXJ0eVwiXG5bb3JkZXJDQ0RFdmVudF0gPSBcIm9yZGVyQ0NERXZlbnRcIlxuW29yZGVyRGV0YWlsXSA9IFwib3JkZXJEZXRhaWxcIlxuW0xPR0dFRElOVVNFUlJPTEVTXSA9IFwiTE9HR0VESU5VU0VSUk9MRVNcIj48L2NjcGF5LWFkZC1yZW1pc3Npb24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdhZGRyZWZ1bmRmb3JyZW1pc3Npb24nICYmIHBheW1lbnQgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudCcgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50Y2hlY2thbmRhbnN3ZXInXCI+XG5cbjxjY3BheS1hZGQtcmVtaXNzaW9uXG5baXNUdXJuT2ZmXT1cImlzVHVybk9mZlwiXG5baXNTdHJhdGVnaWNGaXhFbmFibGVdPVwiaXNTdHJhdGVnaWNGaXhFbmFibGVcIlxuW3ZpZXdDb21wU3RhdHVzXT0gXCJ2aWV3U3RhdHVzXCJcbltwYXltZW50XT1cInBheW1lbnRcIlxuW29yZGVyU3RhdHVzXSA9XCJvcmRlclN0YXR1c1wiXG5bcGFpZEFtb3VudF09IFwib3JkZXJUb3RhbFBheW1lbnRzXCJcbltpc1JlZnVuZFJlbWlzc2lvbl09XCJpc1JlZnVuZFJlbWlzc2lvblwiXG5bY2FzZVR5cGVdPVwiY2FzZVR5cGVcIlxuW2ZlZWFtb3VudF09XCJyZW1pc3Npb25GZWVBbXRcIlxuW3JlbWlzc2lvbl0gPSBcInJlbWlzc2lvbnNcIlxuW2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZV09XCJmYWxzZVwiXG5bcGF5bWVudEdyb3VwUmVmXT1cInBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZVwiXG5bY2NkQ2FzZU51bWJlcl09XCJjY2RDYXNlTnVtYmVyXCJcbltvcmRlckZlZXNUb3RhbF0gPSBcIm9yZGVyRmVlc1RvdGFsXCJcbltvcmRlclRvdGFsUGF5bWVudHNdID0gXCJvcmRlclRvdGFsUGF5bWVudHNcIlxuW29yZGVyUmVtaXNzaW9uVG90YWxdID0gXCJvcmRlclJlbWlzc2lvblRvdGFsXCJcbltvcmRlclJlZl0gPSBcIm9yZGVyUmVmXCJcbltvcmRlckNyZWF0ZWRdID0gXCJvcmRlckNyZWF0ZWRcIlxuW29yZGVyUGFydHldID0gXCJvcmRlclBhcnR5XCJcbltvcmRlckNDREV2ZW50XSA9IFwib3JkZXJDQ0RFdmVudFwiXG5bb3JkZXJEZXRhaWxdID0gXCJvcmRlckRldGFpbFwiXG5bTE9HR0VESU5VU0VSUk9MRVNdID0gXCJMT0dHRURJTlVTRVJST0xFU1wiPjwvY2NwYXktYWRkLXJlbWlzc2lvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ2lzc3VlcmVmdW5kJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cbiAgICA8Y2NwYXktYWRkLXJlbWlzc2lvbiBcbiAgICBbaXNUdXJuT2ZmXT1cImlzVHVybk9mZlwiXG4gICAgW2lzU3RyYXRlZ2ljRml4RW5hYmxlXT1cImlzU3RyYXRlZ2ljRml4RW5hYmxlXCJcbiAgICBbcGF5bWVudF0gPSAncGF5bWVudEdyb3VwLnBheW1lbnRzWzBdJ1xuICAgIFt2aWV3Q29tcFN0YXR1c109IFwidmlld1N0YXR1c1wiXG4gICAgW29yZGVyU3RhdHVzXSA9XCJwYXltZW50R3JvdXAucGF5bWVudHNbMF0uc3RhdHVzXCJcbiAgICBbcGFpZEFtb3VudF09IFwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmFtb3VudFwiXG4gICAgW2lzUmVmdW5kUmVtaXNzaW9uXT1cImlzUmVmdW5kUmVtaXNzaW9uXCJcbiAgICBbY2FzZVR5cGVdPVwiY2FzZVR5cGVcIlxuICAgIFtpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VdPVwiaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlXCJcbiAgICBbaXNGcm9tUGF5bWVudERldGFpbFBhZ2VdID0gXCJpc0Zyb21QYXltZW50RGV0YWlsUGFnZVwiXG4gICAgW3BheW1lbnRHcm91cFJlZl09XCJwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2VcIlxuICAgIFtjY2RDYXNlTnVtYmVyXT1cImNjZENhc2VOdW1iZXJcIlxuICAgIFtvcmRlckZlZXNUb3RhbF0gPSBcIm9yZGVyRmVlc1RvdGFsXCJcbiAgICBbb3JkZXJUb3RhbFBheW1lbnRzXSA9IFwib3JkZXJUb3RhbFBheW1lbnRzXCJcbiAgICBbb3JkZXJSZW1pc3Npb25Ub3RhbF0gPSBcIm9yZGVyUmVtaXNzaW9uVG90YWxcIlxuICAgIFtvcmRlclJlZl0gPSBcIm9yZGVyUmVmXCJcbiAgICBbb3JkZXJDcmVhdGVkXSA9IFwib3JkZXJDcmVhdGVkXCJcbiAgICBbb3JkZXJQYXJ0eV0gPSBcIm9yZGVyUGFydHlcIlxuICAgIFtvcmRlckNDREV2ZW50XSA9IFwib3JkZXJDQ0RFdmVudFwiXG4gICAgW29yZGVyRGV0YWlsXSA9IFwib3JkZXJEZXRhaWxcIlxuICAgIFtmZWVzXSA9XCJwYXltZW50RmVlc1wiXG4gICAgW2lzRnVsbHlSZWZ1bmRdID0gXCJpc0Z1bGx5UmVmdW5kXCJcbiAgICBbTE9HR0VESU5VU0VSUk9MRVNdID0gXCJMT0dHRURJTlVTRVJST0xFU1wiPlxuICAgIFxuICA+PC9jY3BheS1hZGQtcmVtaXNzaW9uPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ29yZGVyLWZ1bGwtdmlldycgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudCcgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50Y2hlY2thbmRhbnN3ZXInXCI+XG4gIDxjY3BheS1zZXJ2aWNlLXJlcXVlc3RcbiAgW3ZpZXdTdGF0dXNdID0gXCJ2aWV3U3RhdHVzXCJcbiAgW29yZGVyUmVmXSA9IFwib3JkZXJSZWZcIlxuICBbb3JkZXJTdGF0dXNdID0gXCJvcmRlclN0YXR1c1wiXG4gIFtvcmRlckNyZWF0ZWRdID0gXCJvcmRlckNyZWF0ZWRcIlxuICBbb3JkZXJQYXJ0eV0gPSBcIm9yZGVyUGFydHlcIlxuICBbb3JkZXJDQ0RFdmVudF0gPSBcIm9yZGVyQ0NERXZlbnRcIlxuICBbb3JkZXJEZXRhaWxdID0gXCJvcmRlckRldGFpbFwiXG4gIFtMT0dHRURJTlVTRVJST0xFU10gPSBcIkxPR0dFRElOVVNFUlJPTEVTXCJcbiAgW3Rha2VQYXltZW50XSA9IFwiaXNUYWtlUGF5bWVudFwiXG4gIFtjY2RDYXNlTnVtYmVyXSA9IFwiY2NkQ2FzZU51bWJlclwiXG4gIFtvcmRlckZlZXNUb3RhbF0gPSBcIm9yZGVyRmVlc1RvdGFsXCJcbiAgW29yZGVyVG90YWxQYXltZW50c10gPSBcIm9yZGVyVG90YWxQYXltZW50c1wiXG4gIFtvcmRlclJlbWlzc2lvblRvdGFsXSA9IFwib3JkZXJSZW1pc3Npb25Ub3RhbFwiXG4gIFtpc1NlcnZpY2VSZXF1ZXN0XSA9IFwiaXNTZXJ2aWNlUmVxdWVzdFwiXG4gIChnb1RvU2VydmljZVJxdWVzdENvbXBvbmVudCkgPSBcImdvVG9TZXJ2aWNlUmVxdWVzdFBhZ2UoKVwiXG4+XG48L2NjcGF5LXNlcnZpY2UtcmVxdWVzdD5cblxuPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJvdmVyLXBheW1lbnRcIj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3Q29tcFN0YXR1cyA9PT0gJ292ZXJwYXltZW50J1wiPlxuICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J09WRVJQQVlNRU5UUEFHRSc+IFxuICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+e3sgXCJJc3N1ZSByZWZ1bmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDE+XG4gIDxoMSBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJDYXNlIHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlfX06IHt7Y2NkQ2FzZU51bWJlciB8IGNjZEh5cGhlbnMgfX08L2gxPlxuICA8c3BhbiBpZD1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWwtaGludCBnb3Z1ay1mb250MTlweFwiIGNsYXNzPVwiZm9ybS1oaW50XCI+XG4gICAge3sgXCJQYXltZW50IHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19OiB7e3BheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LnJlZmVyZW5jZX19XG4gIDwvc3Bhbj5cbjxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCI+XG4gICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbFwiPlxuICAgICAgPGgxIGNsYXNzPVwiaGVhZGluZy1tZWRpdW1cIj57eyBcIlNlbGVjdCBwYXltZW50IHRvIHJlZnVuZFwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMT5cbiAgICA8L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwib3Zlci1wYXltZW50XCIgbmFtZT1cIm92ZXItcGF5bWVudFwiIHR5cGU9XCJyYWRpb1wiIChjbGljayk9XCJzZWxlY3RQeW1lbnRPcHRpb24oJ29wJylcIiB2YWx1ZT1cIm9wXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWwgZ292dWstZm9udDE5cHhcIiBmb3I9XCJ3aGVyZS1kby15b3UtbGl2ZVwiPlxuICAgICAgICAgIHt7IFwiT3ZlciBwYXltZW50XCIgfCBycHhUcmFuc2xhdGUgfX0gwqN7e2dldE92ZXJQYXltZW50VmFsdWUoKSB8IG51bWJlcjonLjInfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJmdWxsLXBheW1lbnRcIiBuYW1lPVwib3Zlci1wYXltZW50XCIgdHlwZT1cInJhZGlvXCIgKGNsaWNrKT1cInNlbGVjdFB5bWVudE9wdGlvbignZnAnKVwiIHZhbHVlPVwiZnBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBnb3Z1ay1mb250MTlweFwiIGZvcj1cIndoZXJlLWRvLXlvdS1saXZlLTJcIj5cbiAgICAgICAgICB7eyBcIkZ1bGwgcGF5bWVudFwiIHwgcnB4VHJhbnNsYXRlIH19IMKje3twYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5hbW91bnQgfCBudW1iZXI6Jy4yJ319XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgb3Zlci1wYXltZW50LWFsaWdubWVudCBnb3Z1ay1mb250MTlweFwiXG4gICAgICAoY2xpY2spPVwiZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KClcIj4ge3sgXCJQcmV2aW91c1wiIHwgcnB4VHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgICA8YnV0dG9uIFxuICAgICAgKGNsaWNrKT1cImNvbnRpbnVlUGF5bWVudChwYXltZW50R3JvdXApXCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0NvbnRpbnVlQnRuRGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPSdpc0NvbnRpbnVlQnRuRGlzYWJsZWQgPyBcImJ1dHRvbiBidXR0b24tLWRpc2FibGVkIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTEgZ292dWstZm9udDE5cHhcIiA6IFwiYnV0dG9uIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTEgZ292dWstZm9udDE5cHhcIidcbiAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uXCI+IHt7IFwiQ29udGludWVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8L2ZpZWxkc2V0PlxuPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdDb21wU3RhdHVzID09PSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZSdcIj5cbiAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdPVkVSUEFZTUVOVEFERFJFU1NDQVBUVVJFUEFHRSc+ICAgICAgXG4gIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPnt7IFwiSXNzdWUgcmVmdW5kXCIgfCBycHhUcmFuc2xhdGUgfX08L2gxPlxuICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW0gZ292dWstZm9udDE5cHhcIj57eyBcIkNhc2UgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX06IHt7Y2NkQ2FzZU51bWJlciB8IGNjZEh5cGhlbnMgfX08L2gyPlxuICA8c3BhbiBpZD1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWwtaGludFwiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1mb250MTlweFwiPlxuICAgIHt7IFwiUGF5bWVudCByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fToge3twYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5yZWZlcmVuY2V9fVxuICA8L3NwYW4+XG48Y2NwYXktY29udGFjdC1kZXRhaWxzIFxuW2FkZHJlc3NPYmpdID0gbm90aWZpY2F0aW9uXG4oYXNzaWduQ29udGFjdERldGFpbHMpPVwiZ2V0Q29udGFjdERldGFpbHMoJGV2ZW50KVwiXG4ocmVkaXJlY3RUb0lzc3VlUmVmdW5kKT1cImdvdG9QYXltZW50U2VsZWN0UGFnZSgkZXZlbnQpXCIgPjwvY2NwYXktY29udGFjdC1kZXRhaWxzPlxuPHA+XG4gICAgPGEgKGNsaWNrKT1cImdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZ292dWstbGlua1wiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCI+XG4gICAgICAgIHt7IFwiQ2FuY2VsXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICA8L2E+XG48L3A+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdDb21wU3RhdHVzID09PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cbiAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdBRERSRUZVTkRGT1JSRU1JU1NJT04nPiBcbiAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dFwiPlxuICAgXG4gICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+IHt7IFwiQ2hlY2sgeW91ciBhbnN3ZXJzXCIgfCBycHhUcmFuc2xhdGUgfX08L2gxPlxuICA8L2Rpdj5cbiAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIlBheW1lbnQgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+IHt7cGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnJlZmVyZW5jZX19IDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IFwiUGF5bWVudCBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e3BheW1lbnRHcm91cC5wYXltZW50c1swXS5hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJ319PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJGZWUgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3twYXltZW50R3JvdXA/LmZlZXNbMF0/Lm5ldF9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJ319PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJSZWZ1bmQgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3tnZXRPdmVyUGF5bWVudFZhbHVlKCkgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJ319PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJSZWZ1bmQgcmVhc29uXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3sgXCJPdmVyIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIlNlbmQgdG9cIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+e3tvcmRlclBhcnR5fX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJTZW5kIHZpYVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGFjdERldGFpbHNPYmo/Lm5vdGlmaWNhdGlvbl90eXBlID09PSAnRU1BSUwnXCIgY2xhc3M9XCJjb250YWN0RGV0YWlscy13aWR0aFwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgXCJFbWFpbFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zdHJvbmc+XG4gICAgICAgICAgPGJyLz5cbiAgICAgICAgICB7e2NvbnRhY3REZXRhaWxzT2JqPy5lbWFpbD8udHJpbSgpfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0RGV0YWlsc09iaj8ubm90aWZpY2F0aW9uX3R5cGUgPT09ICdMRVRURVInXCIgY2xhc3M9XCJjb250YWN0RGV0YWlscy13aWR0aFwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgXCJQb3N0XCIgfCBycHhUcmFuc2xhdGUgfX08L3N0cm9uZz5cbiAgICAgICAgICA8YnIvPlxuICAgICAgICAgIHt7Y29udGFjdERldGFpbHNPYmo/LmFkZHJlc3NfbGluZT8udHJpbSgpfX0mbmJzcDt7e2NvbnRhY3REZXRhaWxzT2JqPy5jaXR5Py50cmltKCl9fSZuYnNwO3t7Y29udGFjdERldGFpbHNPYmo/LmNvdW50eT8udHJpbSgpfX0mbmJzcDt7e2NvbnRhY3REZXRhaWxzT2JqPy5jb3VudHJ5Py50cmltKCl9fSZuYnNwO3t7Y29udGFjdERldGFpbHNPYmo/LnBvc3RhbF9jb2RlPy50cmltKCl9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGEgKGNsaWNrKT1cImdvdG9BZGRyZXNzUGFnZShjb250YWN0RGV0YWlsc09iailcIiBjbGFzcz1cImdvdnVrLWxpbmsgcmlnaHRcIiA+e3sgXCJDaGFuZ2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cblxuICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IFwiTm90aWZpY2F0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e3RlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlfX1cbiAgICAgICAgICA8YSAqbmdJZj1cIiFub3RpZmljYXRpb25QcmV2aWV3XCIgaHJlZj1cIkphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGluayByaWdodFwiIChjbGljayk9XCJzaG93Tm90aWZpY2F0aW9uUHJldmlldygpXCI+XG4gICAgICAgICAgICB7eyBcIlByZXZpZXdcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSAqbmdJZj1cIm5vdGlmaWNhdGlvblByZXZpZXdcIiBocmVmPVwiSmF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rIHJpZ2h0XCIgKGNsaWNrKT1cImhpZGVOb3RpZmljYXRpb25QcmV2aWV3KClcIj5cbiAgICAgICAgICAgIHt7IFwiSGlkZSBQcmV2aWV3XCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvdGFibGU+XG5cbiAgPGFwcC1ub3RpZmljYXRpb24tcHJldmlldyAqbmdJZj1cIm5vdGlmaWNhdGlvblByZXZpZXdcIiBcbiAgW3BheW1lbnRdPVwicGF5bWVudEdyb3VwLnBheW1lbnRzWzBdXCIgXG4gIFtjb250YWN0RGV0YWlsc109XCJjb250YWN0RGV0YWlsc09ialwiXG4gIFtyZWZ1bmRSZWFzb25dPVwiJ1JSMDM3J1wiXG4gIFtyZWZ1bmRBbW91bnRdPVwiZ2V0T3ZlclBheW1lbnRWYWx1ZSgpXCI+PC9hcHAtbm90aWZpY2F0aW9uLXByZXZpZXc+XG5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgb3Zlci1wYXltZW50LWFsaWdubWVudCBnb3Z1ay1mb250MTlweFwiIChjbGljayk9XCJnb3RvQWRkcmVzc1BhZ2UoY29udGFjdERldGFpbHNPYmopXCI+e3sgXCJQcmV2aW91c1wiIHwgcnB4VHJhbnNsYXRlIH19PC9idXR0b24+XG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXG4gIFtuZ0NsYXNzXT0naXNDb250aW51ZUJ0bkRpc2FibGVkID8gXCJidXR0b24gYnV0dG9uLS1kaXNhYmxlZCBnb3Z1ay0hLW1hcmdpbi1yaWdodC0xIGdvdnVrLWZvbnQxOXB4XCIgOiBcImJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1yaWdodC0xIGdvdnVrLWZvbnQxOXB4XCInXG4gIChjbGljayk9XCJwcm9jZXNzUmVmdW5kKClcIj5cbiAgICB7eyBcIlN1Ym1pdCByZWZ1bmRcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPHA+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgIChjbGljayk9XCJnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKCRldmVudClcIiBjbGFzcz1cImdvdnVrLWxpbmsgZ292dWstZm9udDE5cHhcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiPlxuICAgICAgICAgIHt7IFwiQ2FuY2VsXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvYT5cbiAgPC9wPlxuXG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAncmVmdW5kY29uZmlybWF0aW9ucGFnZScgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudCcgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50Y2hlY2thbmRhbnN3ZXInXCI+XG4gIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGlkPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0nUkVUUk9SRU1JU1NJT05SRUZVTkRDT05GSVJNQVRJT05QQUdFJz4gXG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvdyBwYWdlc2l6ZVwiPlxuICAgIDxkaXYgPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXBhbmVsIGdvdnVrLXBhbmVsLS1jb25maXJtYXRpb25cIj5cbiAgICAgICAgPGgxIGNsYXNzPVwiZ292dWstcGFuZWxfdmlld190aXRsZVwiPlxuICAgICAgICAgIHt7IFwiUmVmdW5kIHN1Ym1pdHRlZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvaDE+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWxfX2JvZHlcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHkgd2hpdGVcIj48c3Ryb25nIGNsYXNzPVwid2hpdGVcIj57eyBcIlJlZnVuZCByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZX19OiB7e3JlZnVuZFJlZmVyZW5jZX19PC9zdHJvbmc+PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICA8L2Rpdj5cbiAgICAgIDxoMiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPnt7XCJXaGF0IGhhcHBlbnMgbmV4dFwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgICB7e1wiQSByZWZ1bmQgcmVxdWVzdCBmb3JcIiB8IHJweFRyYW5zbGF0ZSB9fSB7e3JlZnVuZEFtb3VudCAgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJyB9fSB7eyBcImhhcyBiZWVuIGNyZWF0ZWQgYW5kIHdpbGwgYmUgcGFzc2VkIHRvIGEgdGVhbSBsZWFkZXIgdG8gYXBwcm92ZS5cIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiZ29Ub0Nhc2VUcmFuc2F0aW9uUGFnZSgkZXZlbnQpXCIgY2xhc3M9XCJnb3Z1ay1saW5rIHBvaW50ZXJcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiPlxuICAgICAge3sgXCJSZXR1cm4gdG8gY2FzZVwiIHwgcnB4VHJhbnNsYXRlIH19XG4gIDwvYT5cbiAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ3BheW1lbnQtZmFpbHVyZSdcIj5cbiAgPGRpdiBjbGFzcz1cInBheW1lbnQtZmFpbHVyZS1hbGlnbm1lbnRcIj5cbiAgICA8ZGl2ICBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzXCI+XG4gICAgICA8b2wgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb0JhY2tUb1BheW1lbnRWaWV3KCRldmVudClcIiBjbGFzcz1cImdvdnVrLWJhY2stbGlua1wiPnt7IFwiQmFja1wiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC9vbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgICAgPGgxIGNsYXNzPVwiaGVhZGluZy1sYXJnZSBnb3Z1ay0hLW1hcmdpbi10b3AtMFwiPnt7IFwiRmFpbHVyZSBldmVudCBkZXRhaWxzXCIgfCBycHhUcmFuc2xhdGUgfX08L2gxPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHRhYmxlPlxuICAgICAgPHRib2R5PlxuXG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkZhaWx1cmUgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICA8dGQ+XHR7e3NlbGVjdGVkUGF5bWVudHNTdGF0dXMuZmFpbHVyZV9yZWZlcmVuY2V9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJGYWlsdXJlIHJlYXNvblwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3tzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmZhaWx1cmVfcmVhc29uIHwgcnB4VHJhbnNsYXRlfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJQYXltZW50IHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgc2VsZWN0ZWRQYXltZW50c1N0YXR1cy5wYXltZW50X3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIlBheW1lbnQgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZD4gwqN7eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5hbW91bnQgfCBudW1iZXI6Jy4yJyB9fTwvdGQ+XG5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiPnt7IFwiRGlzcHV0ZWQgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZD5cdMKje3tzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmRpc3B1dGVkX2Ftb3VudCAgfCBudW1iZXI6Jy4yJ319PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkFkZGl0aW9uYWwgaW5mb3JtYXRpb25cIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7c2VsZWN0ZWRQYXltZW50c1N0YXR1cy5hZGRpdGlvbmFsX3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJGYWlsdXJlIHR5cGVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7IHNlbGVjdGVkUGF5bWVudHNTdGF0dXMuZmFpbHVyZV90eXBlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkZhaWx1cmUgZXZlbnQgZGF0ZSBhbmQgdGltZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPiB7eyBzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmZhaWx1cmVfZXZlbnRfZGF0ZV90aW1lIHwgZGF0ZTonZGQgTU1NIHl5eXkgSEg6bW06c3MnIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmhhc19hbW91bnRfZGViaXRlZFwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJIYXMgZGlzcHV0ZWQgYW1vdW50IGRlYml0ZWRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7c2VsZWN0ZWRQYXltZW50c1N0YXR1cy5oYXNfYW1vdW50X2RlYml0ZWR9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiICpuZ0lmPVwic2VsZWN0ZWRQYXltZW50c1N0YXR1cy5yZXByZXNlbnRtZW50X3N0YXR1c1wiPlxuICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJTdGF0dXMgZm9sbG93aW5nIHJlcHJlc2VudGF0aW9uIG9mIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7KHNlbGVjdGVkUGF5bWVudHNTdGF0dXMucmVwcmVzZW50bWVudF9zdGF0dXMgPT09ICdZZXMnIHx8IHNlbGVjdGVkUGF5bWVudHNTdGF0dXMucmVwcmVzZW50bWVudF9zdGF0dXMgPT09ICd5ZXMnKSA/ICdTdWNjZXNzJyA6ICdGYWlsdXJlJ319PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJzZWxlY3RlZFBheW1lbnRzU3RhdHVzLnJlcHJlc2VudG1lbnRfZGF0ZVwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJEYXRlIHBheW1lbnQgcmVwcmVzZW50ZWRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7c2VsZWN0ZWRQYXltZW50c1N0YXR1cy5yZXByZXNlbnRtZW50X2RhdGUgIHwgZGF0ZTonZGQgTU1NIHl5eXkgSEg6bW06c3MnfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cblxuICAgIDxkaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BheW1lbnQtbGliL3NyYy9saWIvY29tcG9uZW50cy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFLckYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFbkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1B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QixjQUFjLG1FQUNkLGNBQWMsdUVBQ2Qsb0JBQW9COzsyRkFLWCxvQkFBb0I7a0JBakJoQyxTQUFTOytCQUNFLG9CQUFvQixhQUduQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsV0FDcEY7d0JBQ1AsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDckQsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO3dCQUNqRSx1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLG9CQUFvQjtxQkFDckIsY0FDVyxJQUFJOzswQkEwRGIsTUFBTTsyQkFBQyxhQUFhO3lHQXREZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR3FCLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BheW1lbnRWaWV3U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7SVBheW1lbnRHcm91cH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7SUZlZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7SVBheW1lbnR9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHtJUmVtaXNzaW9ufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuaW1wb3J0IHtQb3N0UmVmdW5kUmV0cm9SZW1pc3Npb259IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7SVBheW1lbnRGYWlsdXJlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50RmFpbHVyZSc7XG5pbXBvcnQge09yZGVyc2xpc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtJUmVmdW5kQ29udGFjdERldGFpbHN9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZENvbnRhY3REZXRhaWxzJztcbmltcG9ydCB7QWRkUmVtaXNzaW9uQ29tcG9uZW50fSBmcm9tICcuLi9hZGQtcmVtaXNzaW9uL2FkZC1yZW1pc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTdGF0dXNIaXN0b3J5Q29tcG9uZW50fSBmcm9tICcuLi9zdGF0dXMtaGlzdG9yeS9zdGF0dXMtaGlzdG9yeS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZXJ2aWNlUmVxdWVzdENvbXBvbmVudH0gZnJvbSAnLi4vc2VydmljZS1yZXF1ZXN0L3NlcnZpY2UtcmVxdWVzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDb250YWN0RGV0YWlsc0NvbXBvbmVudH0gZnJvbSAnLi4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25QcmV2aWV3Q29tcG9uZW50fSBmcm9tICcuLi9ub3RpZmljYXRpb24tcHJldmlldy9ub3RpZmljYXRpb24tcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtDY2RIeXBoZW5zUGlwZX0gZnJvbSAnLi4vLi4vcGlwZXMvY2NkLWh5cGhlbnMucGlwZSc7XG5pbXBvcnQge0NhcGl0YWxpemVQaXBlfSBmcm9tICcuLi8uLi9waXBlcy9jYXBpdGFsaXplLnBpcGUnO1xuaW1wb3J0IHtScHhUcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgdHlwZSB7UGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5cbnR5cGUgUGF5bWVudExpYkFsaWFzID0gUGF5bWVudExpYkNvbXBvbmVudDtcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGF5bWVudC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BheW1lbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BheW1lbnQtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdQQVlNRU5UX1ZJRVcnLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYXltZW50Vmlld0NvbXBvbmVudCkgfV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIGZvcndhcmRSZWYoKCkgPT4gQWRkUmVtaXNzaW9uQ29tcG9uZW50KSxcbiAgICBTdGF0dXNIaXN0b3J5Q29tcG9uZW50LCBmb3J3YXJkUmVmKCgpID0+IFNlcnZpY2VSZXF1ZXN0Q29tcG9uZW50KSxcbiAgICBDb250YWN0RGV0YWlsc0NvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25QcmV2aWV3Q29tcG9uZW50LFxuICAgIENjZEh5cGhlbnNQaXBlLFxuICAgIENhcGl0YWxpemVQaXBlLFxuICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5cbmV4cG9ydCBjbGFzcyBQYXltZW50Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzVHVybk9mZjogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FzZVR5cGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9yZGVyUmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyVG90YWxQYXltZW50czogbnVtYmVyO1xuICBASW5wdXQoKSBwYXltZW50OiBJUGF5bWVudDtcbiAgQElucHV0KCkgTE9HR0VESU5VU0VSUk9MRVM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBJU1BBWU1FTlRTVEFUVVNFTkFCTEVEOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyUGFydHk6IHN0cmluZztcbiAgQElucHV0KCkgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBASW5wdXQoKSBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZGVyRmVlc1RvdGFsOiBudW1iZXI7XG4gIEBJbnB1dCgpIG9yZGVyUmVtaXNzaW9uVG90YWw6IG51bWJlcjtcbiAgQElucHV0KCkgb3JkZXJEZXRhaWw6IGFueVtdO1xuICBmZWVzOiBhbnk7XG4gIGlzRnVsbHlSZWZ1bmQ6IGJvb2xlYW47XG4gIEBJbnB1dChcImlzU2VydmljZVJlcXVlc3RcIikgaXNTZXJ2aWNlUmVxdWVzdDogc3RyaW5nO1xuICBlcnJvck1zZzogc3RyaW5nO1xuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBjY2RDYXNlTnVtYmVyOiBzdHJpbmc7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGRjbk51bWJlcjogc3RyaW5nO1xuICBpc1N0YXR1c0FsbG9jYXRlZDogYm9vbGVhbjtcbiAgaXNSZW1pc3Npb25zTWF0Y2g6IGJvb2xlYW47XG4gIGZlZUlkOiBJRmVlO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIGlzUmVmdW5kUmVtaXNzaW9uOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBpc0FkZEZlZUJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZCA9IFsncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJywgJ3BheW1lbnRzLXJlZnVuZCddO1xuICByZW1pc3Npb25zOiBJUmVtaXNzaW9uW10gPSBbXTtcbiAgYWxsUGF5bWVudHNGYWlsdXJlOiBJUGF5bWVudEZhaWx1cmVbXSA9IFtdO1xuICBzZWxlY3RlZFBheW1lbnRzU3RhdHVzOiBJUGF5bWVudEZhaWx1cmU7XG4gIHJlbWlzc2lvbkZlZUFtdDogbnVtYmVyO1xuICBpc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZTogYm9vbGVhbjtcbiAgc2VydmljZVJlZmVyZW5jZTogc3RyaW5nO1xuICBpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2U6IGJvb2xlYW47XG4gIGlzRnJvbVBheW1lbnREZXRhaWxQYWdlOiBib29sZWFuO1xuICBwYXltZW50RmVlczogSUZlZVtdO1xuICBwYXltZW50VHlwZTogc3RyaW5nO1xuICBpc0NvbnRpbnVlQnRuRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICB2aWV3Q29tcFN0YXR1czogc3RyaW5nO1xuICBjb250YWN0RGV0YWlsc09iajogSVJlZnVuZENvbnRhY3REZXRhaWxzXG4gIG5vdGlmaWNhdGlvbjogYW55O1xuICBpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkOiBib29sZWFuO1xuICByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZztcbiAgcmVmdW5kQW1vdW50OiBzdHJpbmc7XG4gIHRlbXBsYXRlSW5zdHJ1Y3Rpb25UeXBlOiBzdHJpbmc7XG4gIG5vdGlmaWNhdGlvblByZXZpZXc6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoJ1BBWU1FTlRfTElCJykgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQWxpYXMsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT047XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5zZXJ2aWNlUmVmZXJlbmNlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICBsZXQgZmVlcyA9IFtdO1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuXG4gICAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW0gPT4ge1xuICAgICAgICAgICAgaWYgKHJlbS5mZWVfY29kZSA9PT0gZmVlLmNvZGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgIGZlZVsncmVtaXNzaW9ucyddID0gcmVtO1xuICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXRoaXMuaXNSZW1pc3Npb25zTWF0Y2gpIHtcbiAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHBheW1lbnRHcm91cC5mZWVzID0gZmVlc1xuICAgICAgICB0aGlzLnBheW1lbnRGZWVzID0gZmVlcztcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRSZWZlcmVuY2UpKTtcbiAgICAgICAgY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5hZGRQYXltZW50R3JvdXAodGhpcy5wYXltZW50R3JvdXApO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXltZW50RmFpbHVyZSh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgSlNPTi5wYXJzZShyZXMpLnBheW1lbnRfZmFpbHVyZV9saXN0LnJldmVyc2UoKS5mb3JFYWNoKHBheW1lbnRzID0+IHtcblxuICAgICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlLnB1c2gocGF5bWVudHMucGF5bWVudF9mYWlsdXJlX2luaXRpYXRlZCk7XG4gICAgICAgICAgaWYgKHBheW1lbnRzLnBheW1lbnRfZmFpbHVyZV9jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlLnB1c2gocGF5bWVudHMucGF5bWVudF9mYWlsdXJlX2Nsb3NlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hbGxQYXltZW50c0ZhaWx1cmUgPSB0aGlzLmFsbFBheW1lbnRzRmFpbHVyZS5yZXZlcnNlKCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuYWxsUGF5bWVudHNGYWlsdXJlID0gW107XG4gICAgICAgIHRoaXMuZXJyb3JNc2cgPSBcIlNlcnZlciBlcnJvclwiXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldCBpc0NhcmRQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5tZXRob2QgPT09ICdjYXJkJztcbiAgfVxuXG4gIGdldCBpc1RlbGVwaG9ueVBheW1lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmNoYW5uZWwgPT09ICd0ZWxlcGhvbnknO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYXltZW50TGlzdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncGF5bWVudC1saXN0JztcbiAgfVxuICBnZXRPdmVyUGF5bWVudFZhbHVlKCkge1xuICAgIGxldCBmZWVzT3ZlclBheW1lbnQgPSAwO1xuICAgIHRoaXMucGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgZmVlc092ZXJQYXltZW50ICs9IGZlZS5vdmVyX3BheW1lbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZlZXNPdmVyUGF5bWVudCA+IDAgPyBmZWVzT3ZlclBheW1lbnQgOiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQub3ZlclBheW1lbnRBbW91bnRcblxuICB9XG4gIGdvVG9TZXJ2aWNlUmVxdWVzdFBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VSVklDRVJFUVVFU1QgPSAndHJ1ZSc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG4gIGdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG5hdmlnYXRpb25QYWdlKCdjYXNldHJhbnNhY3Rpb25zJyk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZShmYWxzZSk7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgICAgdGhpcy5yZXNldE9yZGVyRGF0YSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUmVmcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclJlZiA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckNDREV2ZW50cygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlckNDREV2ZW50ID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyQ3JlYXRlZHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJDcmVhdGVkID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyRGV0YWlsKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyRGV0YWlsID0gZGF0YSk7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG9yZGVyUGFydHlzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUGFydHkgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b3JkZXJSZW1pc3Npb25Ub3RhbHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA9IGRhdGEpO1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRvcmRlckZlZXNUb3RhbHMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJGZWVzVG90YWwgPSBkYXRhKTtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0b29yZGVyVG90YWxQYXltZW50c3MoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMub3JkZXJUb3RhbFBheW1lbnRzID0gZGF0YSk7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnb3JkZXItZnVsbC12aWV3JztcbiAgICB9XG5cbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICBpZiAodGhpcy5jaGtJc0FkZFJlbWlzc2lvbkJ0bkVuYWJsZShmZWUpKSB7XG4gICAgICB0aGlzLmZlZUlkID0gZmVlO1xuICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVtaXNzaW9uJztcbiAgICAgICAgICB0aGlzLmlzUmVmdW5kUmVtaXNzaW9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JGZWVzKHBheW1lbnRHcm91cDogYW55KSB7XG4gICAgaWYgKHBheW1lbnRHcm91cCAhPT0gbnVsbCAmJiBwYXltZW50R3JvdXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzICE9PSBudWxsICYmIHBheW1lbnRHcm91cC5mZWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb2Nlc3NSZWZ1bmQoKSB7XG4gICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG9iaiA9IHRoaXMucGF5bWVudEdyb3VwLmZlZXNbMF07XG4gICAgdGhpcy5mZWVzID0gW3tcbiAgICAgIGlkOiBvYmouaWQsXG4gICAgICBjb2RlOiBvYmouY29kZSxcbiAgICAgIHZlcnNpb246IG9iai52ZXJzaW9uLFxuICAgICAgYXBwb3J0aW9uX2Ftb3VudDogb2JqLmFwcG9ydGlvbl9hbW91bnQsXG4gICAgICBjYWxjdWxhdGVkX2Ftb3VudDogb2JqLmNhbGN1bGF0ZWRfYW1vdW50LFxuICAgICAgdXBkYXRlZF92b2x1bWU6IG9iai51cGRhdGVkX3ZvbHVtZSA/IG9iai51cGRhdGVkX3ZvbHVtZSA6IG9iai52b2x1bWUsXG4gICAgICB2b2x1bWU6IG9iai52b2x1bWUsXG4gICAgICByZWZ1bmRfYW1vdW50OiB0aGlzLmdldE92ZXJQYXltZW50VmFsdWUoKVxuICAgIH1dO1xuICAgIGNvbnN0IHJlcXVlc3RCb2R5ID0gbmV3IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbih0aGlzLmNvbnRhY3REZXRhaWxzT2JqLCB0aGlzLmZlZXMsIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnJlZmVyZW5jZSwgJ1JSMDM3JyxcbiAgICAgIHRoaXMuZ2V0T3ZlclBheW1lbnRWYWx1ZSgpLCAnb3AnKTtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0UmVmdW5kc1JlYXNvbihyZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKFxuICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoSlNPTi5wYXJzZShyZXNwb25zZSkpIHtcbiAgICAgICAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJyc7XG4gICAgICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ3JlZnVuZGNvbmZpcm1hdGlvbnBhZ2UnO1xuICAgICAgICAgIHRoaXMucmVmdW5kUmVmZXJlbmNlID0gSlNPTi5wYXJzZShyZXNwb25zZSkucmVmdW5kX3JlZmVyZW5jZTtcbiAgICAgICAgICB0aGlzLnJlZnVuZEFtb3VudCA9IEpTT04ucGFyc2UocmVzcG9uc2UpLnJlZnVuZF9hbW91bnQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICB9XG4gIGdvdG9BZGRyZXNzUGFnZShub3RlPzogSVJlZnVuZENvbnRhY3REZXRhaWxzKSB7XG4gICAgaWYgKG5vdGUpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uID0geyBjb250YWN0X2RldGFpbHM6IG5vdGUsIG5vdGlmaWNhdGlvbl90eXBlOiBub3RlLm5vdGlmaWNhdGlvbl90eXBlIH07XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJztcbiAgfVxuICBhZGRSZWZ1bmRGb3JSZW1pc3Npb24ocGF5bWVudDogSVBheW1lbnQsIHJlbWlzc2lvbjogSVJlbWlzc2lvbltdLCBmZWVzOiBhbnkpIHtcbiAgICAvL2lmKCF0aGlzLmNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudCkpIHtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyhwYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXMocGF5bWVudC5yZWZlcmVuY2UpKTtcbiAgICAgICAgdGhpcy5wYXltZW50ID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF07XG4gICAgICAgIHRoaXMucmVtaXNzaW9ucyA9IHJlbWlzc2lvbjtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25GZWVBbXQgPSBmZWVzLmZpbHRlcihkYXRhID0+IGRhdGEuY29kZSA9PT0gdGhpcy5yZW1pc3Npb25zWydmZWVfY29kZSddKVswXS5uZXRfYW1vdW50O1xuICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVmdW5kZm9ycmVtaXNzaW9uJztcbiAgICAgICAgLy8gY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIC8vIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3JcbiAgICApO1xuICAgIC8vfVxuICB9XG5cbiAgZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KCkge1xuICAgIHRoaXMudmlld0NvbXBTdGF0dXMgPSAnJztcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGF5bWVudHZpZXcnO1xuICB9XG5cbiAgaXNzdWVSZWZ1bmQocGF5bWVudGdycDogSVBheW1lbnRHcm91cCkge1xuXG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmFkZFBheW1lbnRHcm91cCh0aGlzLnBheW1lbnRHcm91cCk7XG5cbiAgICBpZiAocGF5bWVudGdycCAhPT0gbnVsbCAmJiBwYXltZW50Z3JwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLmNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudGdycC5wYXltZW50c1swXSkpIHtcblxuICAgICAgICAvLyBObyByZWZ1bmQgYW5kIG5vIG92ZXIgcGF5bWVudCAtLT4gc2hvd0lzc3VlUmVmdW5kUGFnZSgpXG4gICAgICAgIGlmICghdGhpcy5pc0FueVJlZnVuZHNGb3JUaGlzQ2FzZSgpICYmIHRoaXMuZ2V0QmFsYW5jZVRvQmVQYWlkKCkgPT0gMCkge1xuICAgICAgICAgIHRoaXMuc2hvd0lzc3VlUmVmdW5kUGFnZShwYXltZW50Z3JwKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICAvLyBObyByZWZ1bmQgYW5kIG92ZXIgcGF5bWVudCAtLT4gc2hvd092ZXJQYXltZW50KClcbiAgICAgICAgaWYgKCF0aGlzLmlzQW55UmVmdW5kc0ZvclRoaXNDYXNlKCkgJiYgdGhpcy5nZXRCYWxhbmNlVG9CZVBhaWQoKSA+IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dPdmVyUGF5bWVudCgpO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIC8vIFJlZnVuZHMgPiAwICBhbmQgb3ZlclBheW1lbnQgPT0gMCAtLS0+IHJlZnVuZHMgYWNjZXB0ZWQuIHNob3dJc3N1ZVJlZnVuZFBhZ2UocylcbiAgICAgICAgaWYgKHRoaXMuaXNBbnlSZWZ1bmRzRm9yVGhpc0Nhc2UoKSAmJiB0aGlzLmdldEJhbGFuY2VUb0JlUGFpZCgpID09IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dJc3N1ZVJlZnVuZFBhZ2UocGF5bWVudGdycCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVmdW5kcyA+IDAgYW5kIG92ZXJQYXltZW50ID4gMCAtLT4gcmVmdW5kcyBpbiBwcm9jZXNzIG9yIFJlamVjdGVkLlxuICAgICAgICBpZiAodGhpcy5pc0FueVJlZnVuZHNGb3JUaGlzQ2FzZSgpICYmIHRoaXMuZ2V0QmFsYW5jZVRvQmVQYWlkKCkgPiAwKSB7XG5cbiAgICAgICAgICAvLyByZWplY3RlZCBieSBmZWUgcmVmdW5kcyA9PT0gcmVmdW5kcyBieSBmZWUgaXQgbWVhbnMgdGhhdCByZWZ1bmQgZm9yIHRoZSBjdXJyZW50IGZlZSBpcyByZWplY3RlZC5cbiAgICAgICAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVGhlQ3VycmVudFJlZnVuZFJlamVjdGVkRm9yVGhlRmVlKHRoaXMucGF5bWVudEZlZXMuYXQoMCkuaWQudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJQYXltZW50KCk7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gcmVmdW5kcyBpbiBwcm9jZXNzIFNlbnQgZm9yIGFwcHJvdmFsLEFwcHJvdmVkXG4gICAgICAgICAgdGhpcy5zaG93SXNzdWVSZWZ1bmRQYWdlKHBheW1lbnRncnApO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICBpc0FueVJlZnVuZHNGb3JUaGlzQ2FzZSgpe1xuICAgIHJldHVybiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LnJlZnVuZHMgIT0gbnVsbCkgJiYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5yZWZ1bmRzLmxlbmd0aCA+IDApO1xuICB9XG4gIHNob3dPdmVyUGF5bWVudCgpIHtcbiAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJ292ZXJwYXltZW50JztcbiAgfVxuXG4gIHNob3dJc3N1ZVJlZnVuZFBhZ2UocGF5bWVudGdycDogSVBheW1lbnRHcm91cCkge1xuXG4gICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50Z3JwO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdpc3N1ZXJlZnVuZCc7XG4gICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbiA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IGZhbHNlO1xuICB9XG5cbiAgZ2V0QmFsYW5jZVRvQmVQYWlkKCl7XG4gICAgcmV0dXJuIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5vdmVyUGF5bWVudEFtb3VudFxuICB9XG5cblxuXG4gIGdldFJlbWlzc2lvbkJ5RmVlQ29kZShmZWVDb2RlOiBzdHJpbmcsIHJlbWlzc2lvbnM6IElSZW1pc3Npb25bXSk6IElSZW1pc3Npb24ge1xuICAgIGlmIChyZW1pc3Npb25zICYmIHJlbWlzc2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCByZW1pc3Npb24gb2YgcmVtaXNzaW9ucykge1xuICAgICAgICBpZiAocmVtaXNzaW9uLmZlZV9jb2RlID09PSBmZWVDb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbWlzc2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNoa0lzSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudDogSVBheW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAocGF5bWVudCAhPT0gbnVsbCAmJiBwYXltZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBwYXltZW50Lmlzc3VlX3JlZnVuZCAmJiBwYXltZW50LnJlZnVuZF9lbmFibGVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNoa0lzQWRkUmVmdW5kQnRuRW5hYmxlKHJlbWlzc2lvbjogSVJlbWlzc2lvbik6IGJvb2xlYW4ge1xuICAgIGlmIChyZW1pc3Npb24gIT09IG51bGwgJiYgcmVtaXNzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZW1pc3Npb24uYWRkX3JlZnVuZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG5cbiAgY2FuSXRCZVJlZnVuZGVkKHJlbWlzc2lvbjogSVJlbWlzc2lvbik6IGJvb2xlYW4ge1xuICAgIGlmIChyZW1pc3Npb24gIT09IG51bGwgJiYgcmVtaXNzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChyZW1pc3Npb24uYWRkX3JlZnVuZCA9PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAocmVtaXNzaW9uLm92ZXJhbGxfYmFsYW5jZSA+IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNoa0lzQWRkUmVtaXNzaW9uQnRuRW5hYmxlKGZlZTogSUZlZSk6IGJvb2xlYW4ge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5hZGRQYXltZW50R3JvdXAodGhpcy5wYXltZW50R3JvdXApO1xuICAgIGlmIChmZWUgIT09IG51bGwgJiYgZmVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQub3ZlclBheW1lbnRBbW91bnQgPiAwKSB7XG4gICAgICAgIHJldHVybiBmZWUuYWRkX3JlbWlzc2lvbiAmJiBmZWUucmVtaXNzaW9uX2VuYWJsZSAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUaGVDdXJyZW50UmVmdW5kSW5Qcm9jZXNzRm9yVGhpc0ZlZShmZWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZlZS5hZGRfcmVtaXNzaW9uICYmIGZlZS5yZW1pc3Npb25fZW5hYmxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuXG4gIHNlbGVjdFB5bWVudE9wdGlvbihwYXltZW50VHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXltZW50VHlwZSA9IHBheW1lbnRUeXBlO1xuICAgIHRoaXMuaXNDb250aW51ZUJ0bkRpc2FibGVkID0gZmFsc2U7XG4gIH1cbiAgY29udGludWVQYXltZW50KHBheW1lbnRncnA6IElQYXltZW50R3JvdXApIHtcblxuICAgIGlmICh0aGlzLnBheW1lbnRUeXBlID09PSAnb3AnKSB7XG4gICAgICB0aGlzLmlzRnVsbHlSZWZ1bmQgPSBmYWxzZVxuICAgICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMucGF5bWVudFR5cGUgPT09ICdmcCcpIHtcbiAgICAgIHRoaXMuaXNGdWxseVJlZnVuZCA9IHRydWVcbiAgICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudGdycDtcbiAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdpc3N1ZXJlZnVuZCc7XG4gICAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gXCJcIjtcbiAgICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVBheW1lbnREZXRhaWxQYWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNGcm9tUGF5bWVudERldGFpbFBhZ2UgPSB0cnVlO1xuICAgICAgdGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlO1xuICAgIH1cbiAgfVxuICBnb3RvUGF5bWVudFNlbGVjdFBhZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnZpZXdDb21wU3RhdHVzID0gJ292ZXJwYXltZW50JztcbiAgfVxuICBnZXRDb250YWN0RGV0YWlscyhvYmo6IElSZWZ1bmRDb250YWN0RGV0YWlscykge1xuICAgIHRoaXMuY29udGFjdERldGFpbHNPYmogPSBvYmo7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5nZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZSh0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXSk7XG4gICAgdGhpcy52aWV3Q29tcFN0YXR1cyA9ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJztcblxuICB9XG5cbiAgcmVzZXRPcmRlckRhdGEoKSB7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRPcmRlclJlZihudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyQ0NERXZlbnQobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckNyZWF0ZWQobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlckRldGFpbChudWxsKTtcbiAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLnNldG9yZGVyUGFydHkobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclRvdGFsUGF5bWVudHMobnVsbCk7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRvcmRlclJlbWlzc2lvblRvdGFsKG51bGwpO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0b3JkZXJGZWVzVG90YWwobnVsbCk7XG4gIH1cblxuICBnb1RvUGF5bWVudEZhaWx1ZVBhZ2UocGF5bWVudDogYW55KSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ3BheW1lbnQtZmFpbHVyZSc7XG4gICAgdGhpcy5zZWxlY3RlZFBheW1lbnRzU3RhdHVzID0gcGF5bWVudDtcbiAgfVxuICBnb0JhY2tUb1BheW1lbnRWaWV3KGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYXltZW50dmlldyc7XG4gIH1cblxuICBnZXRUZW1wbGF0ZUluc3RydWN0aW9uVHlwZShwYXltZW50OiBJUGF5bWVudCk6IHZvaWQge1xuXG4gICAgaWYgKHBheW1lbnQgPT0gdW5kZWZpbmVkIHx8IHBheW1lbnQgPT0gbnVsbCkge1xuICAgICAgdGhpcy50ZW1wbGF0ZUluc3RydWN0aW9uVHlwZSA9ICdUZW1wbGF0ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGVtcGxhdGVJbnN0cnVjdGlvblR5cGUgPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uSW5zdHJ1Y3Rpb25UeXBlKHBheW1lbnQuY2hhbm5lbCwgcGF5bWVudC5tZXRob2QpO1xuICAgIH1cblxuICB9XG5cbiAgc2hvd05vdGlmaWNhdGlvblByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25QcmV2aWV3ID0gdHJ1ZTtcbiAgfVxuXG4gIGhpZGVOb3RpZmljYXRpb25QcmV2aWV3KCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uUHJldmlldyA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGF5bWVudC12aWV3LXNlY3Rpb25cIj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAncGF5bWVudHZpZXcnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnQnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZScgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJ1wiPlxuPGRpdiBjbGFzcz1cImdvdnVrLXdpZHRoLWNvbnRhaW5lclwiPlxuXG4gIDxkaXYgIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIj5cbiAgICA8b2wgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic19fbGlzdFwiPlxuICAgICAgPGxpIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbVwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZ292dWstYmFjay1saW5rXCI+e3sgXCJCYWNrXCIgfCBycHhUcmFuc2xhdGUgfX08L2E+XG4gICAgICA8L2xpPlxuICAgIDwvb2w+XG4gIDwvZGl2PlxuXG4gIDxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyIGdvdnVrLSEtcGFkZGluZy10b3AtMFwiIGlkPVwibWFpbi1jb250ZW50XCIgcm9sZT1cIm1haW5cIj5cblxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIGVycm9yLXN1bW1hcnktaGVhZGluZ1wiIGlkPVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICAgICAgICB7eyBcIlBheW1lbnQgZGV0YWlscyBjb3VsZCBub3QgYmUgcmV0cmlldmVkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LXZpZXctYWxpZ25tZW50XCIgKm5nSWY9XCIhZXJyb3JNZXNzYWdlICYmIHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF1cIj5cblxuICAgICAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdQQVlNRU5UREVUQUlMUyc+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICAgIDxoMSBjbGFzcz1cImhlYWRpbmctbGFyZ2UgZ292dWstIS1tYXJnaW4tdG9wLTBcIj57eyBcIlBheW1lbnQgZGV0YWlsc1wiIHwgcnB4VHJhbnNsYXRlIH19PC9oMT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRib2R5PlxuXG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJTZXJ2aWNlIHJlcXVlc3QgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgc2VydmljZVJlZmVyZW5jZSAgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiUGF5bWVudCByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiUGF5bWVudCBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj7Co3t7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmFtb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ub3Zlcl9wYXltZW50ID4gMFwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIk92ZXIgcGF5bWVudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPsKje3sgZ2V0T3ZlclBheW1lbnRWYWx1ZSgpIHwgbnVtYmVyOicuMicgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdICYmIHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmRvY3VtZW50X2NvbnRyb2xfbnVtYmVyICYmICFwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5leHRlcm5hbF9yZWZlcmVuY2VcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJQYXltZW50IGFzc2V0IG51bWJlclwiIHwgcnB4VHJhbnNsYXRlfX0oRENOKTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5kb2N1bWVudF9jb250cm9sX251bWJlciB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0gJiYgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uZG9jdW1lbnRfY29udHJvbF9udW1iZXIgJiYgIXBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmV4dGVybmFsX3JlZmVyZW5jZVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIkJhbmtlZCBkYXRlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uYmFua2VkX2RhdGUgfCBkYXRlOidkZCBNTU0geXl5eScgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdICYmIHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmV4dGVybmFsX3JlZmVyZW5jZVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIkdvdlBheSBUcmFuc2FjdGlvbiBJRFwiIHwgcnB4VHJhbnNsYXRlOiB7Z292OiBcIkdvdlBheVwiLCBpZDogXCJJRFwifSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5leHRlcm5hbF9yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiUGF5bWVudCBtZXRob2RcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtdyB0ZXh0LXRyYW5zZm9ybVwiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCdcIiA+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJUeXBlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCAhPT0gJ2NhcmQnXCI+e3sgXCJDcmVkaXRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ubWV0aG9kID09PSAnY2FyZCdcIj57eyBcIkNhcmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIkNoYW5uZWxcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtdyB0ZXh0LXRyYW5zZm9ybVwiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmNoYW5uZWwgfCBycHhUcmFuc2xhdGUgIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPCEtLSA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+TWV0aG9kPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCAhPT0gJ2NhcmQnXCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ubWV0aG9kIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm1ldGhvZCA9PT0gJ2NhcmQnXCI+Q0FSRDwvdGQ+XG4gICAgICAgIDwvdHI+IC0tPlxuICAgICAgICA8IS0tIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmNoYW5uZWwgIT09ICd0ZWxlcGhvbnknXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+U3RhdHVzPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5zdGF0dXMgfX08L3RkPlxuICAgICAgICAgPC90cj4gLS0+XG4gICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LnBheW1lbnRfYWxsb2NhdGlvblswXSAhPT0gdW5kZWZpbmVkXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJBbGxvY2F0b24gc3RhdHVzXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5wYXltZW50X2FsbG9jYXRpb25bMF0/LmFsbG9jYXRpb25fc3RhdHVzIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXS5vcmdhbmlzYXRpb25fbmFtZVwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiUEJBIGFjY291bnQgbmFtZVwiIHwgcnB4VHJhbnNsYXRlOiB7cGJhOiBcIlBCQVwifSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0Yi1jb2wtd1wiPnt7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/Lm9yZ2FuaXNhdGlvbl9uYW1lIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwicGF5bWVudEdyb3VwPy5wYXltZW50c1swXS5hY2NvdW50X251bWJlclwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPlBCQSB7eyBcIm51bWJlclwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgcGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8uYWNjb3VudF9udW1iZXIgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICA8dHIgKm5nSWY9XCJwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdLmN1c3RvbWVyX3JlZmVyZW5jZVwiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZCB0Yi1jb2wtd1wiPnt7IFwiQ3VzdG9tZXIgaW50ZXJuYWwgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdPy5jdXN0b21lcl9yZWZlcmVuY2UgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgICAgICA8IS0tIFN0YXR1cyBoaXN0b3JpZXMgLS0+XG4gICAgICA8Y2NwYXktcGF5bWVudC1zdGF0dXNlcyAqbmdJZj1cImlzU3RhdHVzQWxsb2NhdGVkXCIgW2lzVGFrZVBheW1lbnRdPVwiaXNUYWtlUGF5bWVudFwiPjwvY2NwYXktcGF5bWVudC1zdGF0dXNlcz5cbiAgICAgIDwvZGl2PlxuICAgICA8ZGl2IGNsYXNzPVwicmVtaXNzaW9uXCI+XG4gICAgICAgIDxidXR0b24gIFtkaXNhYmxlZF09XCIhY2hrSXNJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50R3JvdXA/LnBheW1lbnRzWzBdKVwiICAoY2xpY2spPVwiaXNzdWVSZWZ1bmQocGF5bWVudEdyb3VwKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCI+e3sgXCJJc3N1ZSByZWZ1bmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICA8L2Rpdj5cbjxkaXYgKm5nSWY9XCJJU1BBWU1FTlRTVEFUVVNFTkFCTEVEXCI+XG4gICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtXCI+e3sgXCJEaXNwdXRlZCBwYXltZW50IGhpc3RvcnlcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdj5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aD57eyBcIlN0YXR1c1wiIHwgcnB4VHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7IFwiQW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+e3sgXCJEYXRlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RoPlxuICAgICAgICAgICAgICA8dGg+e3sgXCJQYXltZW50IHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt7IFwiRXZlbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGg+XG4gICAgICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPiBcbiAgICAgICAgICA8dGJvZHkgKm5nSWY9XCIhZXJyb3JNc2cgJiYgYWxsUGF5bWVudHNGYWlsdXJlLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcGF5bWVudCBvZiBhbGxQYXltZW50c0ZhaWx1cmVcIj5cbiAgICAgICAgICAgICAgPHRkPnt7IHBheW1lbnQuc3RhdHVzIHwgY2FwaXRhbGl6ZSB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZD7Co3t7IHBheW1lbnQuZGlzcHV0ZWRfYW1vdW50IHwgbnVtYmVyOicuMicgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQ+e3socGF5bWVudC5yZXByZXNlbnRtZW50X2RhdGUgPyBwYXltZW50LnJlcHJlc2VudG1lbnRfZGF0ZSA6IHBheW1lbnQuZmFpbHVyZV9ldmVudF9kYXRlX3RpbWUpIHwgZGF0ZTonZGQgTU1NIHl5eXknfX08L3RkPlxuICAgICAgICAgICAgICA8dGQ+e3sgcGF5bWVudC5wYXltZW50X3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCA+e3sgcGF5bWVudC5mYWlsdXJlX3R5cGUgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb1RvUGF5bWVudEZhaWx1ZVBhZ2UocGF5bWVudClcIj57eyBcIlNob3cgZGV0YWlsXCIgfCBycHhUcmFuc2xhdGUgfX08L2E+XG5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8dGJvZHkgICpuZ0lmPVwiZXJyb3JNc2cgfHwgYWxsUGF5bWVudHNGYWlsdXJlLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjZcIj4ge3sgXCJObyBkaXNwdXRlZCBwYXltZW50IGhpc3RvcnkgYXZhaWxhYmxlLlwiIHwgcnB4VHJhbnNsYXRlIH19IDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8YnIvPlxuICAgIDxici8+XG4gIDwvZGl2PlxuICAgICAgXG4gICAgIDxkaXYgICpuZ0lmPVwiY2hlY2tGb3JGZWVzKHBheW1lbnRHcm91cClcIj5cbiAgICAgIDxkaXYgICpuZ0lmPVwicGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICAgICAgPGJyLz5cbiAgICAgICAgICA8YnIvPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj57eyBcIkZlZSBhbmQgcmVtaXNzaW9uIGRldGFpbHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDI+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmVlIG9mIHBheW1lbnRHcm91cC5mZWVzXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIj57eyBcIkRlc2NyaXB0aW9uXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGItY29sLXdcIj57eyBcIkFwcGxpY2F0aW9uIGZvclwiIHwgcnB4VHJhbnNsYXRlIH19IHt7IGZlZS5kZXNjcmlwdGlvbiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkIHRiLWNvbC13XCI+e3sgXCJGZWUgY29kZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRiLWNvbC13XCI+e3sgZmVlPy5jb2RlIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXdcIiBbbmdDbGFzc109XCJ7J3RyLWJvcmRlcic6ICFmZWUuYXBwb3J0aW9uX2Ftb3VudCAmJiAhZmVlLnJlbWlzc2lvbnMgJiYgIWlzVHVybk9mZiB9XCI+e3sgXCJGZWUgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIFtuZ0NsYXNzXT1cInsndHItYm9yZGVyJzogIWZlZS5hcHBvcnRpb25fYW1vdW50ICYmICFmZWUucmVtaXNzaW9ucyAmJiAhaXNUdXJuT2ZmfVwiPsKje3sgZmVlPy5jYWxjdWxhdGVkX2Ftb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgPHRyICpuZ0lmPVwiZmVlLmFwcG9ydGlvbl9hbW91bnRcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGQgdGItY29sLXcgdHItYm9yZGVyXCIgW25nQ2xhc3NdPVwieyd0ci1ib3JkZXInOiAhZmVlLnJlbWlzc2lvbnN9XCI+e3sgXCJBbGxvY2F0ZWQgYW1vdW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIFtuZ0NsYXNzXT1cInsndHItYm9yZGVyJzogIWZlZS5yZW1pc3Npb25zfVwiPsKje3sgZmVlPy5hcHBvcnRpb25fYW1vdW50IHwgbnVtYmVyOicuMicgfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhY2hrSXNBZGRSZW1pc3Npb25CdG5FbmFibGUoZmVlKVwiIChjbGljayk9XCJhZGRSZW1pc3Npb24oZmVlKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCI+IHt7IFwiQWRkIHJlbWlzc2lvblwiIHwgcnB4VHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gcmVtaXNzaW9ucyAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JkZXItY2xhc3NcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cbiAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNvbC0yNCB3aGl0ZXNwYWNlLWluaGVyaXRcIiBzY29wZT1cImNvbFwiPnt7IFwiSGVscCB3aXRoIGZlZXMgb3IgcmVtaXNzaW9uIGNvZGVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNvbC0yNyB3aGl0ZXNwYWNlLWluaGVyaXRcIiBzY29wZT1cImNvbFwiPnt7IFwiUmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciB3aGl0ZXNwYWNlLWluaGVyaXRcIiBzY29wZT1cImNvbFwiPnt7IFwiRmVlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciB3aGl0ZXNwYWNlLWluaGVyaXRcIiBzY29wZT1cImNvbFwiPnt7IFwiUmVtaXNzaW9uIEFtb3VudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCAgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIHdoaXRlc3BhY2UtaW5oZXJpdCByZWZ1bmRCdG5cIiBzY29wZT1cImNvbFwiPjwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICAqbmdGb3I9XCJsZXQgcmVtaXNzaW9uIG9mIHBheW1lbnRHcm91cC5yZW1pc3Npb25zXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgd2hpdGVzcGFjZS1pbmhlcml0XCI+e3sgcmVtaXNzaW9uPy5od2ZfcmVmZXJlbmNlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPnt7IHJlbWlzc2lvbj8ucmVtaXNzaW9uX3JlZmVyZW5jZSB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCB3aGl0ZXNwYWNlLWluaGVyaXRcIj57eyByZW1pc3Npb24/LmZlZV9jb2RlIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIHdoaXRlc3BhY2UtaW5oZXJpdFwiPnt7IHJlbWlzc2lvbj8uaHdmX2Ftb3VudCB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgcmVmdW5kQnRuIHdoaXRlc3BhY2UtaW5oZXJpdFwiICA+XG4gICAgICAgICAgICAgICA8YnV0dG9uICBbZGlzYWJsZWRdPVwiIWNhbkl0QmVSZWZ1bmRlZChyZW1pc3Npb24pXCIgKGNsaWNrKT1cImFkZFJlZnVuZEZvclJlbWlzc2lvbihwYXltZW50R3JvdXAucGF5bWVudHNbMF0scmVtaXNzaW9uLHBheW1lbnRHcm91cC5mZWVzKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCI+IEFkZCByZWZ1bmQ8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG5cblxuICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj48L2Rpdj5cblxuICAgPGRpdiAqbmdJZj1cInBheW1lbnRHcm91cC5yZW1pc3Npb25zPy5sZW5ndGggPT09IDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWFyLTE3XCIgPnt7IFwiTm8gaGVscCB3aXRoIGZlZXMgb3IgcmVtaXNzaW9ucy5cIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21haW4+XG48L2Rpdj5cblxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ2FkZHJlbWlzc2lvbicgJiYgZmVlSWQgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudCcgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50Y2hlY2thbmRhbnN3ZXInXCI+XG48Y2NwYXktYWRkLXJlbWlzc2lvbiBcbltpc1R1cm5PZmZdPVwiaXNUdXJuT2ZmXCJcbltpc1N0cmF0ZWdpY0ZpeEVuYWJsZV09XCJpc1N0cmF0ZWdpY0ZpeEVuYWJsZVwiXG5bdmlld0NvbXBTdGF0dXNdPSBcInZpZXdTdGF0dXNcIlxuW2ZlZV09XCJmZWVJZFwiXG5bcGF5bWVudF0gPSBcInBheW1lbnRcIlxuW29yZGVyU3RhdHVzXSA9XCJwYXltZW50R3JvdXAucGF5bWVudHNbMF0uc3RhdHVzXCJcbltwYWlkQW1vdW50XT0gXCJwYXltZW50R3JvdXAucGF5bWVudHNbMF0uYW1vdW50XCJcbltpc1JlZnVuZFJlbWlzc2lvbl09XCJpc1JlZnVuZFJlbWlzc2lvblwiXG5bY2FzZVR5cGVdPVwiY2FzZVR5cGVcIlxuW3BheW1lbnRHcm91cFJlZl09XCJwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2VcIlxuW2lzRnJvbVBheW1lbnREZXRhaWxQYWdlXSA9IFwidHJ1ZVwiXG5bY2NkQ2FzZU51bWJlcl09XCJjY2RDYXNlTnVtYmVyXCJcbltvcmRlckZlZXNUb3RhbF0gPSBcIm9yZGVyRmVlc1RvdGFsXCJcbltvcmRlclRvdGFsUGF5bWVudHNdID0gXCJvcmRlclRvdGFsUGF5bWVudHNcIlxuW29yZGVyUmVtaXNzaW9uVG90YWxdID0gXCJvcmRlclJlbWlzc2lvblRvdGFsXCJcbltvcmRlclJlZl0gPSBcIm9yZGVyUmVmXCJcbltvcmRlckNyZWF0ZWRdID0gXCJvcmRlckNyZWF0ZWRcIlxuW29yZGVyUGFydHldID0gXCJvcmRlclBhcnR5XCJcbltvcmRlckNDREV2ZW50XSA9IFwib3JkZXJDQ0RFdmVudFwiXG5bb3JkZXJEZXRhaWxdID0gXCJvcmRlckRldGFpbFwiXG5bTE9HR0VESU5VU0VSUk9MRVNdID0gXCJMT0dHRURJTlVTRVJST0xFU1wiPjwvY2NwYXktYWRkLXJlbWlzc2lvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ2FkZHJlZnVuZGZvcnJlbWlzc2lvbicgJiYgcGF5bWVudCAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cblxuPGNjcGF5LWFkZC1yZW1pc3Npb25cbltpc1R1cm5PZmZdPVwiaXNUdXJuT2ZmXCJcbltpc1N0cmF0ZWdpY0ZpeEVuYWJsZV09XCJpc1N0cmF0ZWdpY0ZpeEVuYWJsZVwiXG5bdmlld0NvbXBTdGF0dXNdPSBcInZpZXdTdGF0dXNcIlxuW3BheW1lbnRdPVwicGF5bWVudFwiXG5bb3JkZXJTdGF0dXNdID1cIm9yZGVyU3RhdHVzXCJcbltwYWlkQW1vdW50XT0gXCJvcmRlclRvdGFsUGF5bWVudHNcIlxuW2lzUmVmdW5kUmVtaXNzaW9uXT1cImlzUmVmdW5kUmVtaXNzaW9uXCJcbltjYXNlVHlwZV09XCJjYXNlVHlwZVwiXG5bZmVlYW1vdW50XT1cInJlbWlzc2lvbkZlZUFtdFwiXG5bcmVtaXNzaW9uXSA9IFwicmVtaXNzaW9uc1wiXG5baXNGcm9tU2VydmljZVJlcXVlc3RQYWdlXT1cImZhbHNlXCJcbltwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlXCJcbltjY2RDYXNlTnVtYmVyXT1cImNjZENhc2VOdW1iZXJcIlxuW29yZGVyRmVlc1RvdGFsXSA9IFwib3JkZXJGZWVzVG90YWxcIlxuW29yZGVyVG90YWxQYXltZW50c10gPSBcIm9yZGVyVG90YWxQYXltZW50c1wiXG5bb3JkZXJSZW1pc3Npb25Ub3RhbF0gPSBcIm9yZGVyUmVtaXNzaW9uVG90YWxcIlxuW29yZGVyUmVmXSA9IFwib3JkZXJSZWZcIlxuW29yZGVyQ3JlYXRlZF0gPSBcIm9yZGVyQ3JlYXRlZFwiXG5bb3JkZXJQYXJ0eV0gPSBcIm9yZGVyUGFydHlcIlxuW29yZGVyQ0NERXZlbnRdID0gXCJvcmRlckNDREV2ZW50XCJcbltvcmRlckRldGFpbF0gPSBcIm9yZGVyRGV0YWlsXCJcbltMT0dHRURJTlVTRVJST0xFU10gPSBcIkxPR0dFRElOVVNFUlJPTEVTXCI+PC9jY3BheS1hZGQtcmVtaXNzaW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAnaXNzdWVyZWZ1bmQnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnQnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlclBheW1lbnRBZGRyZXNzQ2FwdHVyZScgJiYgdmlld0NvbXBTdGF0dXMgIT09ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJ1wiPlxuICAgIDxjY3BheS1hZGQtcmVtaXNzaW9uIFxuICAgIFtpc1R1cm5PZmZdPVwiaXNUdXJuT2ZmXCJcbiAgICBbaXNTdHJhdGVnaWNGaXhFbmFibGVdPVwiaXNTdHJhdGVnaWNGaXhFbmFibGVcIlxuICAgIFtwYXltZW50XSA9ICdwYXltZW50R3JvdXAucGF5bWVudHNbMF0nXG4gICAgW3ZpZXdDb21wU3RhdHVzXT0gXCJ2aWV3U3RhdHVzXCJcbiAgICBbb3JkZXJTdGF0dXNdID1cInBheW1lbnRHcm91cC5wYXltZW50c1swXS5zdGF0dXNcIlxuICAgIFtwYWlkQW1vdW50XT0gXCJwYXltZW50R3JvdXAucGF5bWVudHNbMF0uYW1vdW50XCJcbiAgICBbaXNSZWZ1bmRSZW1pc3Npb25dPVwiaXNSZWZ1bmRSZW1pc3Npb25cIlxuICAgIFtjYXNlVHlwZV09XCJjYXNlVHlwZVwiXG4gICAgW2lzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZV09XCJpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VcIlxuICAgIFtpc0Zyb21QYXltZW50RGV0YWlsUGFnZV0gPSBcImlzRnJvbVBheW1lbnREZXRhaWxQYWdlXCJcbiAgICBbcGF5bWVudEdyb3VwUmVmXT1cInBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZVwiXG4gICAgW2NjZENhc2VOdW1iZXJdPVwiY2NkQ2FzZU51bWJlclwiXG4gICAgW29yZGVyRmVlc1RvdGFsXSA9IFwib3JkZXJGZWVzVG90YWxcIlxuICAgIFtvcmRlclRvdGFsUGF5bWVudHNdID0gXCJvcmRlclRvdGFsUGF5bWVudHNcIlxuICAgIFtvcmRlclJlbWlzc2lvblRvdGFsXSA9IFwib3JkZXJSZW1pc3Npb25Ub3RhbFwiXG4gICAgW29yZGVyUmVmXSA9IFwib3JkZXJSZWZcIlxuICAgIFtvcmRlckNyZWF0ZWRdID0gXCJvcmRlckNyZWF0ZWRcIlxuICAgIFtvcmRlclBhcnR5XSA9IFwib3JkZXJQYXJ0eVwiXG4gICAgW29yZGVyQ0NERXZlbnRdID0gXCJvcmRlckNDREV2ZW50XCJcbiAgICBbb3JkZXJEZXRhaWxdID0gXCJvcmRlckRldGFpbFwiXG4gICAgW2ZlZXNdID1cInBheW1lbnRGZWVzXCJcbiAgICBbaXNGdWxseVJlZnVuZF0gPSBcImlzRnVsbHlSZWZ1bmRcIlxuICAgIFtMT0dHRURJTlVTRVJST0xFU10gPSBcIkxPR0dFRElOVVNFUlJPTEVTXCI+XG4gICAgXG4gID48L2NjcGF5LWFkZC1yZW1pc3Npb24+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAnb3JkZXItZnVsbC12aWV3JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cbiAgPGNjcGF5LXNlcnZpY2UtcmVxdWVzdFxuICBbdmlld1N0YXR1c10gPSBcInZpZXdTdGF0dXNcIlxuICBbb3JkZXJSZWZdID0gXCJvcmRlclJlZlwiXG4gIFtvcmRlclN0YXR1c10gPSBcIm9yZGVyU3RhdHVzXCJcbiAgW29yZGVyQ3JlYXRlZF0gPSBcIm9yZGVyQ3JlYXRlZFwiXG4gIFtvcmRlclBhcnR5XSA9IFwib3JkZXJQYXJ0eVwiXG4gIFtvcmRlckNDREV2ZW50XSA9IFwib3JkZXJDQ0RFdmVudFwiXG4gIFtvcmRlckRldGFpbF0gPSBcIm9yZGVyRGV0YWlsXCJcbiAgW0xPR0dFRElOVVNFUlJPTEVTXSA9IFwiTE9HR0VESU5VU0VSUk9MRVNcIlxuICBbdGFrZVBheW1lbnRdID0gXCJpc1Rha2VQYXltZW50XCJcbiAgW2NjZENhc2VOdW1iZXJdID0gXCJjY2RDYXNlTnVtYmVyXCJcbiAgW29yZGVyRmVlc1RvdGFsXSA9IFwib3JkZXJGZWVzVG90YWxcIlxuICBbb3JkZXJUb3RhbFBheW1lbnRzXSA9IFwib3JkZXJUb3RhbFBheW1lbnRzXCJcbiAgW29yZGVyUmVtaXNzaW9uVG90YWxdID0gXCJvcmRlclJlbWlzc2lvblRvdGFsXCJcbiAgW2lzU2VydmljZVJlcXVlc3RdID0gXCJpc1NlcnZpY2VSZXF1ZXN0XCJcbiAgKGdvVG9TZXJ2aWNlUnF1ZXN0Q29tcG9uZW50KSA9IFwiZ29Ub1NlcnZpY2VSZXF1ZXN0UGFnZSgpXCJcbj5cbjwvY2NwYXktc2VydmljZS1yZXF1ZXN0PlxuXG48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm92ZXItcGF5bWVudFwiPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdDb21wU3RhdHVzID09PSAnb3ZlcnBheW1lbnQnXCI+XG4gIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGlkPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0nT1ZFUlBBWU1FTlRQQUdFJz4gXG4gIDxoMSBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj57eyBcIklzc3VlIHJlZnVuZFwiIHwgcnB4VHJhbnNsYXRlIH19PC9oMT5cbiAgPGgxIGNsYXNzPVwiaGVhZGluZy1tZWRpdW1cIj57eyBcIkNhc2UgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGV9fToge3tjY2RDYXNlTnVtYmVyIHwgY2NkSHlwaGVucyB9fTwvaDE+XG4gIDxzcGFuIGlkPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC1oaW50IGdvdnVrLWZvbnQxOXB4XCIgY2xhc3M9XCJmb3JtLWhpbnRcIj5cbiAgICB7eyBcIlBheW1lbnQgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX06IHt7cGF5bWVudEdyb3VwPy5wYXltZW50c1swXT8ucmVmZXJlbmNlfX1cbiAgPC9zcGFuPlxuPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIj5cbiAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1sXCI+XG4gICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bVwiPnt7IFwiU2VsZWN0IHBheW1lbnQgdG8gcmVmdW5kXCIgfCBycHhUcmFuc2xhdGUgfX08L2gxPlxuICAgIDwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NcIiBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJvdmVyLXBheW1lbnRcIiBuYW1lPVwib3Zlci1wYXltZW50XCIgdHlwZT1cInJhZGlvXCIgKGNsaWNrKT1cInNlbGVjdFB5bWVudE9wdGlvbignb3AnKVwiIHZhbHVlPVwib3BcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBnb3Z1ay1mb250MTlweFwiIGZvcj1cIndoZXJlLWRvLXlvdS1saXZlXCI+XG4gICAgICAgICAge3sgXCJPdmVyIHBheW1lbnRcIiB8IHJweFRyYW5zbGF0ZSB9fSDCo3t7Z2V0T3ZlclBheW1lbnRWYWx1ZSgpIHwgbnVtYmVyOicuMid9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCI+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImZ1bGwtcGF5bWVudFwiIG5hbWU9XCJvdmVyLXBheW1lbnRcIiB0eXBlPVwicmFkaW9cIiAoY2xpY2spPVwic2VsZWN0UHltZW50T3B0aW9uKCdmcCcpXCIgdmFsdWU9XCJmcFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIGdvdnVrLWZvbnQxOXB4XCIgZm9yPVwid2hlcmUtZG8teW91LWxpdmUtMlwiPlxuICAgICAgICAgIHt7IFwiRnVsbCBwYXltZW50XCIgfCBycHhUcmFuc2xhdGUgfX0gwqN7e3BheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmFtb3VudCB8IG51bWJlcjonLjInfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBvdmVyLXBheW1lbnQtYWxpZ25tZW50IGdvdnVrLWZvbnQxOXB4XCJcbiAgICAgIChjbGljayk9XCJnb1RvUGF5bWVudFZpZXdDb21wb25lbnQoKVwiPiB7eyBcIlByZXZpb3VzXCIgfCBycHhUcmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gXG4gICAgICAoY2xpY2spPVwiY29udGludWVQYXltZW50KHBheW1lbnRHcm91cClcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzQ29udGludWVCdG5EaXNhYmxlZFwiXG4gICAgICBbbmdDbGFzc109J2lzQ29udGludWVCdG5EaXNhYmxlZCA/IFwiYnV0dG9uIGJ1dHRvbi0tZGlzYWJsZWQgZ292dWstIS1tYXJnaW4tcmlnaHQtMSBnb3Z1ay1mb250MTlweFwiIDogXCJidXR0b24gZ292dWstIS1tYXJnaW4tcmlnaHQtMSBnb3Z1ay1mb250MTlweFwiJ1xuICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b25cIj4ge3sgXCJDb250aW51ZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9idXR0b24+XG4gIDwvZmllbGRzZXQ+XG48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld0NvbXBTdGF0dXMgPT09ICdvdmVyUGF5bWVudEFkZHJlc3NDYXB0dXJlJ1wiPlxuICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J09WRVJQQVlNRU5UQUREUkVTU0NBUFRVUkVQQUdFJz4gICAgICBcbiAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+e3sgXCJJc3N1ZSByZWZ1bmRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDE+XG4gIDxoMiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbSBnb3Z1ay1mb250MTlweFwiPnt7IFwiQ2FzZSByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fToge3tjY2RDYXNlTnVtYmVyIHwgY2NkSHlwaGVucyB9fTwvaDI+XG4gIDxzcGFuIGlkPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWZvbnQxOXB4XCI+XG4gICAge3sgXCJQYXltZW50IHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlIH19OiB7e3BheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LnJlZmVyZW5jZX19XG4gIDwvc3Bhbj5cbjxjY3BheS1jb250YWN0LWRldGFpbHMgXG5bYWRkcmVzc09ial0gPSBub3RpZmljYXRpb25cbihhc3NpZ25Db250YWN0RGV0YWlscyk9XCJnZXRDb250YWN0RGV0YWlscygkZXZlbnQpXCJcbihyZWRpcmVjdFRvSXNzdWVSZWZ1bmQpPVwiZ290b1BheW1lbnRTZWxlY3RQYWdlKCRldmVudClcIiA+PC9jY3BheS1jb250YWN0LWRldGFpbHM+XG48cD5cbiAgICA8YSAoY2xpY2spPVwiZ29Ub0Nhc2VUcmFuc2F0aW9uUGFnZSgkZXZlbnQpXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIj5cbiAgICAgICAge3sgXCJDYW5jZWxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgIDwvYT5cbjwvcD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld0NvbXBTdGF0dXMgPT09ICdvdmVycGF5bWVudGNoZWNrYW5kYW5zd2VyJ1wiPlxuICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J0FERFJFRlVOREZPUlJFTUlTU0lPTic+IFxuICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCI+XG4gICBcbiAgICAgIDxoMSBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj4ge3sgXCJDaGVjayB5b3VyIGFuc3dlcnNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDE+XG4gIDwvZGl2PlxuICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IFwiUGF5bWVudCByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj4ge3twYXltZW50R3JvdXAucGF5bWVudHNbMF0ucmVmZXJlbmNlfX0gPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJQYXltZW50IGFtb3VudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7cGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLmFtb3VudCB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIkZlZSBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e3BheW1lbnRHcm91cD8uZmVlc1swXT8ubmV0X2Ftb3VudCB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIlJlZnVuZCBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e2dldE92ZXJQYXltZW50VmFsdWUoKSB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIlJlZnVuZCByZWFzb25cIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57eyBcIk92ZXIgcGF5bWVudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IFwiU2VuZCB0b1wiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57e29yZGVyUGFydHl9fTwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBcIlNlbmQgdmlhXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgd2hpdGVzcGFjZS1pbmhlcml0XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjb250YWN0RGV0YWlsc09iaj8ubm90aWZpY2F0aW9uX3R5cGUgPT09ICdFTUFJTCdcIiBjbGFzcz1cImNvbnRhY3REZXRhaWxzLXdpZHRoXCI+XG4gICAgICAgICAgPHN0cm9uZz57eyBcIkVtYWlsXCIgfCBycHhUcmFuc2xhdGUgfX08L3N0cm9uZz5cbiAgICAgICAgICA8YnIvPlxuICAgICAgICAgIHt7Y29udGFjdERldGFpbHNPYmo/LmVtYWlsPy50cmltKCl9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRhY3REZXRhaWxzT2JqPy5ub3RpZmljYXRpb25fdHlwZSA9PT0gJ0xFVFRFUidcIiBjbGFzcz1cImNvbnRhY3REZXRhaWxzLXdpZHRoXCI+XG4gICAgICAgICAgPHN0cm9uZz57eyBcIlBvc3RcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDxici8+XG4gICAgICAgICAge3tjb250YWN0RGV0YWlsc09iaj8uYWRkcmVzc19saW5lPy50cmltKCl9fSZuYnNwO3t7Y29udGFjdERldGFpbHNPYmo/LmNpdHk/LnRyaW0oKX19Jm5ic3A7e3tjb250YWN0RGV0YWlsc09iaj8uY291bnR5Py50cmltKCl9fSZuYnNwO3t7Y29udGFjdERldGFpbHNPYmo/LmNvdW50cnk/LnRyaW0oKX19Jm5ic3A7e3tjb250YWN0RGV0YWlsc09iaj8ucG9zdGFsX2NvZGU/LnRyaW0oKX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YSAoY2xpY2spPVwiZ290b0FkZHJlc3NQYWdlKGNvbnRhY3REZXRhaWxzT2JqKVwiIGNsYXNzPVwiZ292dWstbGluayByaWdodFwiID57eyBcIkNoYW5nZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuXG4gICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgXCJOb3RpZmljYXRpb25cIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7dGVtcGxhdGVJbnN0cnVjdGlvblR5cGV9fVxuICAgICAgICAgIDxhICpuZ0lmPVwiIW5vdGlmaWNhdGlvblByZXZpZXdcIiBocmVmPVwiSmF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rIHJpZ2h0XCIgKGNsaWNrKT1cInNob3dOb3RpZmljYXRpb25QcmV2aWV3KClcIj5cbiAgICAgICAgICAgIHt7IFwiUHJldmlld1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxhICpuZ0lmPVwibm90aWZpY2F0aW9uUHJldmlld1wiIGhyZWY9XCJKYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImdvdnVrLWxpbmsgcmlnaHRcIiAoY2xpY2spPVwiaGlkZU5vdGlmaWNhdGlvblByZXZpZXcoKVwiPlxuICAgICAgICAgICAge3sgXCJIaWRlIFByZXZpZXdcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90YWJsZT5cblxuICA8YXBwLW5vdGlmaWNhdGlvbi1wcmV2aWV3ICpuZ0lmPVwibm90aWZpY2F0aW9uUHJldmlld1wiIFxuICBbcGF5bWVudF09XCJwYXltZW50R3JvdXAucGF5bWVudHNbMF1cIiBcbiAgW2NvbnRhY3REZXRhaWxzXT1cImNvbnRhY3REZXRhaWxzT2JqXCJcbiAgW3JlZnVuZFJlYXNvbl09XCInUlIwMzcnXCJcbiAgW3JlZnVuZEFtb3VudF09XCJnZXRPdmVyUGF5bWVudFZhbHVlKClcIj48L2FwcC1ub3RpZmljYXRpb24tcHJldmlldz5cblxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBvdmVyLXBheW1lbnQtYWxpZ25tZW50IGdvdnVrLWZvbnQxOXB4XCIgKGNsaWNrKT1cImdvdG9BZGRyZXNzUGFnZShjb250YWN0RGV0YWlsc09iailcIj57eyBcIlByZXZpb3VzXCIgfCBycHhUcmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgW25nQ2xhc3NdPSdpc0NvbnRpbnVlQnRuRGlzYWJsZWQgPyBcImJ1dHRvbiBidXR0b24tLWRpc2FibGVkIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTEgZ292dWstZm9udDE5cHhcIiA6IFwiYnV0dG9uIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTEgZ292dWstZm9udDE5cHhcIidcbiAgKGNsaWNrKT1cInByb2Nlc3NSZWZ1bmQoKVwiPlxuICAgIHt7IFwiU3VibWl0IHJlZnVuZFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8cD5cbiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAgKGNsaWNrKT1cImdvVG9DYXNlVHJhbnNhdGlvblBhZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZ292dWstbGluayBnb3Z1ay1mb250MTlweFwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCI+XG4gICAgICAgICAge3sgXCJDYW5jZWxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9hPlxuICA8L3A+XG5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdyZWZ1bmRjb25maXJtYXRpb25wYWdlJyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJwYXltZW50JyAmJiB2aWV3Q29tcFN0YXR1cyAhPT0gJ292ZXJQYXltZW50QWRkcmVzc0NhcHR1cmUnICYmIHZpZXdDb21wU3RhdHVzICE9PSAnb3ZlcnBheW1lbnRjaGVja2FuZGFuc3dlcidcIj5cbiAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdSRVRST1JFTUlTU0lPTlJFRlVORENPTkZJUk1BVElPTlBBR0UnPiBcbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93IHBhZ2VzaXplXCI+XG4gICAgPGRpdiA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWwgZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvblwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1wYW5lbF92aWV3X3RpdGxlXCI+XG4gICAgICAgICAge3sgXCJSZWZ1bmQgc3VibWl0dGVkXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMT5cbiAgICAgICAgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1wYW5lbF9fYm9keVwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keSB3aGl0ZVwiPjxzdHJvbmcgY2xhc3M9XCJ3aGl0ZVwiPnt7IFwiUmVmdW5kIHJlZmVyZW5jZVwiIHwgcnB4VHJhbnNsYXRlfX06IHt7cmVmdW5kUmVmZXJlbmNlfX08L3N0cm9uZz48L3A+XG4gICAgICAgIDwvZGl2PlxuICBcbiAgICAgIDwvZGl2PlxuICAgICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+e3tcIldoYXQgaGFwcGVucyBuZXh0XCIgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICAgIHt7XCJBIHJlZnVuZCByZXF1ZXN0IGZvclwiIHwgcnB4VHJhbnNsYXRlIH19IHt7cmVmdW5kQW1vdW50ICB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInIH19IHt7IFwiaGFzIGJlZW4gY3JlYXRlZCBhbmQgd2lsbCBiZSBwYXNzZWQgdG8gYSB0ZWFtIGxlYWRlciB0byBhcHByb3ZlLlwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJnb1RvQ2FzZVRyYW5zYXRpb25QYWdlKCRldmVudClcIiBjbGFzcz1cImdvdnVrLWxpbmsgcG9pbnRlclwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCI+XG4gICAgICB7eyBcIlJldHVybiB0byBjYXNlXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgPC9hPlxuICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAncGF5bWVudC1mYWlsdXJlJ1wiPlxuICA8ZGl2IGNsYXNzPVwicGF5bWVudC1mYWlsdXJlLWFsaWdubWVudFwiPlxuICAgIDxkaXYgIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIj5cbiAgICAgIDxvbCBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW1cIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImdvQmFja1RvUGF5bWVudFZpZXcoJGV2ZW50KVwiIGNsYXNzPVwiZ292dWstYmFjay1saW5rXCI+e3sgXCJCYWNrXCIgfCBycHhUcmFuc2xhdGUgfX08L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L29sPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGdvdnVrLSEtbWFyZ2luLXRvcC0wXCI+e3sgXCJGYWlsdXJlIGV2ZW50IGRldGFpbHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dGFibGU+XG4gICAgICA8dGJvZHk+XG5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiPnt7IFwiRmFpbHVyZSByZWZlcmVuY2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD5cdHt7c2VsZWN0ZWRQYXltZW50c1N0YXR1cy5mYWlsdXJlX3JlZmVyZW5jZX19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkZhaWx1cmUgcmVhc29uXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICA8dGQ+XHR7e3NlbGVjdGVkUGF5bWVudHNTdGF0dXMuZmFpbHVyZV9yZWFzb24gfCBycHhUcmFuc2xhdGV9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIlBheW1lbnQgcmVmZXJlbmNlXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBzZWxlY3RlZFBheW1lbnRzU3RhdHVzLnBheW1lbnRfcmVmZXJlbmNlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiPnt7IFwiUGF5bWVudCBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPiDCo3t7IHBheW1lbnRHcm91cD8ucGF5bWVudHNbMF0/LmFtb3VudCB8IG51bWJlcjonLjInIH19PC90ZD5cblxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJib2xkXCI+e3sgXCJEaXNwdXRlZCBhbW91bnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPlx0wqN7e3NlbGVjdGVkUGF5bWVudHNTdGF0dXMuZGlzcHV0ZWRfYW1vdW50ICB8IG51bWJlcjonLjInfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiPnt7IFwiQWRkaXRpb25hbCBpbmZvcm1hdGlvblwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3tzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmFkZGl0aW9uYWxfcmVmZXJlbmNlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkZhaWx1cmUgdHlwZVwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3sgc2VsZWN0ZWRQYXltZW50c1N0YXR1cy5mYWlsdXJlX3R5cGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgPHRkIGNsYXNzPVwiYm9sZFwiPnt7IFwiRmFpbHVyZSBldmVudCBkYXRlIGFuZCB0aW1lXCIgfCBycHhUcmFuc2xhdGUgfX08L3RkPlxuICAgICAgICA8dGQ+IHt7IHNlbGVjdGVkUGF5bWVudHNTdGF0dXMuZmFpbHVyZV9ldmVudF9kYXRlX3RpbWUgfCBkYXRlOidkZCBNTU0geXl5eSBISDptbTpzcycgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInNlbGVjdGVkUGF5bWVudHNTdGF0dXMuaGFzX2Ftb3VudF9kZWJpdGVkXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkhhcyBkaXNwdXRlZCBhbW91bnQgZGViaXRlZFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3tzZWxlY3RlZFBheW1lbnRzU3RhdHVzLmhhc19hbW91bnRfZGViaXRlZH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHIgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJzZWxlY3RlZFBheW1lbnRzU3RhdHVzLnJlcHJlc2VudG1lbnRfc3RhdHVzXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIlN0YXR1cyBmb2xsb3dpbmcgcmVwcmVzZW50YXRpb24gb2YgcGF5bWVudFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3soc2VsZWN0ZWRQYXltZW50c1N0YXR1cy5yZXByZXNlbnRtZW50X3N0YXR1cyA9PT0gJ1llcycgfHwgc2VsZWN0ZWRQYXltZW50c1N0YXR1cy5yZXByZXNlbnRtZW50X3N0YXR1cyA9PT0gJ3llcycpID8gJ1N1Y2Nlc3MnIDogJ0ZhaWx1cmUnfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cInNlbGVjdGVkUGF5bWVudHNTdGF0dXMucmVwcmVzZW50bWVudF9kYXRlXCI+XG4gICAgICAgIDx0ZCBjbGFzcz1cImJvbGRcIj57eyBcIkRhdGUgcGF5bWVudCByZXByZXNlbnRlZFwiIHwgcnB4VHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgPHRkPlx0e3tzZWxlY3RlZFBheW1lbnRzU3RhdHVzLnJlcHJlc2VudG1lbnRfZGF0ZSAgfCBkYXRlOidkZCBNTU0geXl5eSBISDptbTpzcyd9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuXG4gICAgPGRpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==