fx-form-builder-wrapper 2.0.72 → 2.0.74

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.
@@ -121,7 +121,9 @@ export class RadioGroupComponent extends FxBaseComponent {
121
121
  return [];
122
122
  }
123
123
  onSelectionChange(selection) {
124
- this.showTextArea = selection === this.setting('value-show-text');
124
+ const labelData = this.fxComponent?.fxData?.settings?.find((s) => s.key === 'value-show-text')?.value ??
125
+ '';
126
+ this.showTextArea = selection === labelData;
125
127
  }
126
128
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }, { token: i3.ApiServiceRegistry }], target: i0.ɵɵFactoryTarget.Component });
127
129
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RadioGroupComponent, isStandalone: true, selector: "radio-group-custom", inputs: { showOnSelection: "showOnSelection" }, viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <form [formGroup]=\"confirmationForm\" class=\"flex flex-col gap-4\">\r\n\r\n <!-- Title -->\r\n <label class=\"font-semibold text-gray-800\">\r\n {{ setting('select-label') }}\r\n </label>\r\n\r\n <!-- ROW -->\r\n <div class=\"flex items-start gap-16\">\r\n\r\n <!-- RADIO GROUP -->\r\n <div class=\"flex flex-col\">\r\n <div class=\"flex items-center custom-gap\">\r\n\r\n <label\r\n *ngFor=\"let opt of options\"\r\n class=\"flex items-center gap-2 cursor-pointer text-gray-700\"\r\n >\r\n <input\r\n type=\"radio\"\r\n formControlName=\"confirmation\"\r\n [value]=\"opt.value\"\r\n (change)=\"onSelectionChange(opt.value)\"\r\n class=\"w-4 h-4 accent-blue-600 cursor-pointer\"\r\n />\r\n <span>{{ opt.option }}</span>\r\n </label>\r\n\r\n </div>\r\n\r\n <!-- Radio error -->\r\n <small\r\n *ngIf=\"\r\n confirmationForm.get('confirmation')?.touched &&\r\n confirmationForm.get('confirmation')?.errors?.['required']\r\n \"\r\n class=\"text-red-500 mt-1\"\r\n >\r\n {{ setting('error-msg') }}\r\n </small>\r\n </div>\r\n\r\n <!-- REMARKS -->\r\n <div *ngIf=\"showTextArea\" class=\"flex flex-col w-80 ml-4\">\r\n\r\n <label class=\"mb-2 font-medium text-gray-700\">\r\n {{ setting('additional-field-label') }}\r\n </label>\r\n\r\n <textarea\r\n formControlName=\"remarks\"\r\n rows=\"3\"\r\n placeholder=\" {{ setting('additional-field-label') }}\"\r\n class=\"border border-gray-300 rounded-lg p-3 w-full \r\n resize-none shadow-sm\r\n focus:outline-none focus:ring-2 focus:ring-blue-500\"\r\n ></textarea>\r\n\r\n <!-- Error -->\r\n <small\r\n *ngIf=\"\r\n confirmationForm.get('remarks')?.touched &&\r\n confirmationForm.get('remarks')?.errors?.['required']\r\n \"\r\n class=\"text-red-500 mt-1\"\r\n >\r\n {{ setting('additional-field-error-msg') }}\r\n </small>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </form>\r\n</fx-component>\r\n", styles: [".custom-gap{gap:1rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "ngmodule", type: RadioButtonModule }] });
@@ -135,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
135
137
  type: ViewChild,
136
138
  args: ['fxComponent']
137
139
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBOEIsZUFBZSxFQUFvQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25LLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFzQmhDO0lBQStCO0lBQXlCO0lBQXlEO0lBckJqSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDZixlQUFlLEdBQWlCLEtBQUss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LEVBQUUsQ0FBQztZQUNuRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLEVBQUUsZ0NBQWdDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLENBQUM7WUFDeEksSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQzFGLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSw4QkFBOEIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDbkgsaUdBQWlHO1lBQ2pHLCtPQUErTztZQUMvTywwTkFBME47WUFDMU4sb0pBQW9KO1lBQ3BKLGtIQUFrSDtTQUNuSCxDQUFDO0lBQ0osQ0FBQztJQUVTLFdBQVc7UUFDbkIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBaUI7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7d0dBaklVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLGlRQ2xCaEMsZzFFQTRFQSxnRkQ5RFksWUFBWSwrUEFBRSxtQkFBbUIsK3BDQUFFLFdBQVcsK0JBQUUsV0FBVyw0RUFBRSxjQUFjLDhCQUFDLGlCQUFpQjs7NEZBSTVGLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFDLGlCQUFpQixDQUFDO3NMQVFqRyxlQUFlO3NCQUF2QixLQUFLO2dCQWV3QixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4T3B0aW9uU2V0dGluZywgRnhTZWxlY3RTZXR0aW5nLCBGeFNldHRpbmcsIEZ4U3RyaW5nU2V0dGluZywgRnhWYWxpZGF0aW9uLCBGeFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdyYWRpby1ncm91cC1jdXN0b20nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZ4Q29tcG9uZW50LCBDYWxlbmRhck1vZHVsZSxSYWRpb0J1dHRvbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXR7XHJcbnByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5wcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbkBJbnB1dCgpIHNob3dPblNlbGVjdGlvbjogJ3llcycgfCAnbm8nID0gJ3llcyc7IC8vIGNvbmZpZ3VyYWJsZTogc2hvdyB0ZXh0YXJlYSBvbiBZZXMgb3IgTm9cclxuICBzaG93VGV4dEFyZWEgPSBmYWxzZTtcclxuIHB1YmxpYyBjb25maXJtYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGNvbmZpcm1hdGlvbjogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICByZW1hcmtzOiBbJyddLFxyXG4gICAgICB2YWx1ZVRvU2hvd1RleHRBcmVhOiBbJyddLFxyXG4gICAgICBsYWJlbDpbJyddXHJcbiAgICB9KTtcclxuXHJcbiAgICBvcHRpb25zOiBhbnlbXSA9IFtcclxuICAgICAgeyBvcHRpb246ICdZZXMnLCB2YWx1ZTogJ1lFUycgfSxcclxuICAgICAgeyBvcHRpb246ICdObycsIHZhbHVlOiAnTk8nIH0sXHJcbiAgICAgIHsgb3B0aW9uOiAnTkEnLCB2YWx1ZTogJ05BJyB9XHJcbiAgICBdO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuICAgIHJhZG9pb01hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSxwcml2YXRlIGZ4QXBpU2VydmljZTogQXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgICBzdXBlcihjZHIpXHJcbiAgICAgICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuY29uZmlybWF0aW9uRm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICB9XHJcblxyXG4gICAgICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyAgPSAodGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5zZXR0aW5ncz8uZmluZCgoczogYW55KSA9PiBzLmtleSA9PT0gJ2l0ZW1zJykgYXMgYW55KT8ub3B0aW9ucyB8fCBbXTtcclxuICAgICAgIGNvbnN0IGxhYmVsRGF0YSA9XHJcbiAgKHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8uc2V0dGluZ3M/LmZpbmQoKHM6IGFueSkgPT4gcy5rZXkgPT09ICdzZWxlY3QtbGFiZWwnKSBhcyBhbnkpPy52YWx1ZSA/P1xyXG4gICcnO1xyXG5cclxuICBjb25zb2xlLmxvZygnTGFiZWwgRGF0YTonLCBsYWJlbERhdGEpO1xyXG4gICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuY29uZmlybWF0aW9uRm9ybS5nZXQoJ2xhYmVsJyk7XHJcbiAgICAgICAgIGxhYmVsPy5zZXRWYWx1ZShsYWJlbERhdGEpO1xyXG4gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG5cclxuICBpZiAoa2V5ICYmIHRoaXMucmFkb2lvTWFwLmhhcyhrZXkpKSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkZvcm0ucGF0Y2hWYWx1ZSh0aGlzLnJhZG9pb01hcC5nZXQoa2V5KSk7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5yYWRvaW9NYXAuZ2V0KGtleSk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlKGRhdGEudmFsdWVUb1Nob3dUZXh0QXJlYSk7XHJcbiAgfVxyXG59LCAyMDApO1xyXG5cclxuICAgICAgICBcclxuICAgICAgIH1cclxuICAgICBcclxuICAgICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgICAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICAgICAgLy8gZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgICAgICAgLy8gICBpZiAoa2V5LmluY2x1ZGVzKCdyYWRpby1ncm91cC1jdXN0b20nKSkge1xyXG4gICAgICAgICAgICAvLyAgICB0aGlzLmZvcm1PYmplY3QgPSB2YWx1ZTtcclxuICAgICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgaWYgKFxyXG4gICAgdmFsdWUgJiZcclxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcclxuICAgICdjb25maXJtYXRpb24nIGluIHZhbHVlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJhZG9pb01hcC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgIH0pXHJcblxyXG4gICAgICAgIHRoaXMub3B0aW9ucyAgPSAodGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5zZXR0aW5ncz8uZmluZCgoczogYW55KSA9PiBzLmtleSA9PT0gJ2l0ZW1zJykgYXMgYW55KT8ub3B0aW9ucyB8fCBbXTtcclxuXHJcblxyXG4gICAgICAvLyAgdGhpcy5zZXR0aW5nKCdpdGVtcycpLmxlbmd0aCA+IDAgPyB0aGlzLm9wdGlvbnMgPSB0aGlzLnNldHRpbmcoJ2l0ZW1zJykgOiBudWxsO1xyXG4gICAgIFxyXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uRm9ybS5nZXQoJ2NvbmZpcm1hdGlvbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgY29uc3Qgb3RoZXJDb250cm9sID0gdGhpcy5jb25maXJtYXRpb25Gb3JtLmdldCgncmVtYXJrcycpO1xyXG4gICAgICAgICBjb25zdCB2YWx1ZVRvU2hvd1RleHRBcmVhID0gdGhpcy5jb25maXJtYXRpb25Gb3JtLmdldCgndmFsdWVUb1Nob3dUZXh0QXJlYScpO1xyXG4gICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICBvdGhlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgICB2YWx1ZVRvU2hvd1RleHRBcmVhPy5zZXRWYWx1ZSh0aGlzLnNldHRpbmcoJ3ZhbHVlLXNob3ctdGV4dCcpKTtcclxuXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgIG90aGVyQ29udHJvbD8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gICAgICAgICAgIG90aGVyQ29udHJvbD8ucmVzZXQoKTtcclxuICAgICAgICAgICB2YWx1ZVRvU2hvd1RleHRBcmVhPy5yZXNldCgpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICB9KTtcclxuICAgICAgIFxyXG4gICAgIFxyXG4gICAgIH1cclxuXHJcbiAgICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIC8vIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdjbGluaWNhbE5vdGVzVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgLy8gbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2N1c3RvbUNsYXNzJywgJHRpdGxlOiAnQ3VzdG9tIENsYXNzIE5hbWUnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnc2VsZWN0LWxhYmVsJywgJHRpdGxlOiAnSGVhZGVyIExhYmVsJywgdmFsdWU6ICdIZWFkZXIgTGFiZWwnIH0pLCBcclxuICAgICAgICAgICAgICAvLyBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3B0aW9uLXZhbHVlLW9uZScsICR0aXRsZTogJ1ZhbHVlIG9uZScsIHZhbHVlOiAnVmFsdWUgb25lJyB9KSwgXHJcbiAgICAgICAgICAgICAgLy8gIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdvcHRpb24tdmFsdWUtdHdvJywgJHRpdGxlOiAnVmFsdWUgdHdvJywgdmFsdWU6ICdWYWx1ZSB0d28nIH0pLCBcclxuICAgICAgICAgICAgICAvLyAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdvcHRpb24tbGFiZWwtb25lJywgJHRpdGxlOiAnTGFiZWwgb25lJywgdmFsdWU6ICdMYWJlbCBvbmUnIH0pLCBcclxuICAgICAgICAgICAgICAvLyAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdvcHRpb24tbGFiZWwtdHdvJywgJHRpdGxlOiAnTGFiZWwgdHdvJywgdmFsdWU6ICdMYWJlbCB0d28nIH0pLCBcclxuICAgICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICd2YWx1ZS1zaG93LXRleHQnLCAkdGl0bGU6ICdWYWx1ZSB0byBzaG93IHRleHRhcmVhJywgdmFsdWU6ICdWYWx1ZSB0byBzaG93IHRleHRhcmVhJyB9KSxcclxuICAgICAgICAgICAgICAgIG5ldyBGeE9wdGlvblNldHRpbmcoeyBrZXk6ICdpdGVtcycsICR0aXRsZTogJ09wdGlvbnMnLCB2YWx1ZTogW3tvcHRpb246ICdZZXMnLCB2YWx1ZTogJ3llcyd9LCB7b3B0aW9uOiAnTm8nLCB2YWx1ZTogJ25vJ31dICB9LCBbe29wdGlvbjogJ1llcycsIHZhbHVlOiAneWVzJ30sIHtvcHRpb246ICdObycsIHZhbHVlOiAnbm8nfV0pLCBcclxuICAgICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhZGRpdGlvbmFsLWZpZWxkLWxhYmVsJywgJHRpdGxlOiAnQWRkaXRpb25hbCBmaWVsZCBsYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhZGRpdGlvbmFsLWZpZWxkLWVycm9yLW1zZycsICR0aXRsZTogJ0FkZGl0aW9uYWwgZmllbGQgZXJyb3IgbWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZXJyb3ItbXNnJywgJHRpdGxlOiAnRXJyb3IgbWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIHNlbGVjdCcgfSksXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncmVtYXJrLXBsYWNlaG9sZGVyJywgJHRpdGxlOiAnQWRkaXRpb25hbCBmaWVsZCBwbGFjZWhvbGRlcicsIHZhbHVlOiAnZW50ZXIgaGVyZScgfSksXHJcbiAgICAgICAgICAgIC8vICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ290aGVyLXBsYWNlaG9sZGVyJywgJHRpdGxlOiAnT3RoZXIgUGxhY2Vob2xkZXInLCB2YWx1ZTogJycgfSksICBcclxuICAgICAgICAgICAgLy8gICBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdzZXJ2aWNlTmFtZScsICR0aXRsZTogJ1NlcnZpY2UnLCB2YWx1ZTogJyd9LCBbe29wdGlvbjogJ1VzZXIgU2VydmljZScsIHZhbHVlOiAndXNlcl9zZXJ2aWNlJ30sIHtvcHRpb246ICdQYXRpZW50IFNlcnZpY2UnLCB2YWx1ZTogJ3BhdGllbnRfc2VydmljZSd9LHtvcHRpb246ICdXb3JrZmxvdyBTZXJ2aWNlJywgdmFsdWU6ICd3b3JrZmxvd19zZXJ2aWNlJ31dKSxcclxuICAgICAgICAgICAgLy8gICAvLyBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdzZXJ2aWNlJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnbG9jYWwnfSwgW3tvcHRpb246ICdMb2NhbCcsIHZhbHVlOiAnbG9jYWwnfSwge29wdGlvbjogJ1FBJywgdmFsdWU6ICdxYSd9LHtvcHRpb246ICdVQVQnLCB2YWx1ZTogJ3VhdCd9LHtvcHRpb246ICdQcm9kdWN0aW9uJywgdmFsdWU6ICdwcm9kJ31dKSwgICBcclxuICAgICAgICAgICAgLy8gICAvLyBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdpc1JlcXVpcmVkJywgJHRpdGxlOiAnUmVxdWlyZWQnLCB2YWx1ZTogdHJ1ZX0sIFt7b3B0aW9uOiAnWWVzJywgdmFsdWU6IHRydWV9LCB7b3B0aW9uOiAnTm8nLCB2YWx1ZTogZmFsc2V9XSksICAgIFxyXG4gICAgICAgICAgICAvLyAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZXJyb3JNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksICBcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2hvd1RleHRBcmVhID0gc2VsZWN0aW9uID09PSB0aGlzLnNldHRpbmcoJ3ZhbHVlLXNob3ctdGV4dCcpO1xyXG4gIH1cclxufVxyXG4iLCI8ZngtY29tcG9uZW50IFtmeERhdGFdPVwiZnhEYXRhXCIgI2Z4Q29tcG9uZW50PlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29uZmlybWF0aW9uRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxyXG5cclxuICAgIDwhLS0gVGl0bGUgLS0+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnc2VsZWN0LWxhYmVsJykgfX1cclxuICAgIDwvbGFiZWw+XHJcblxyXG4gICAgPCEtLSBST1cgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBnYXAtMTZcIj5cclxuXHJcbiAgICAgIDwhLS0gUkFESU8gR1JPVVAgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGN1c3RvbS1nYXBcIj5cclxuXHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdCBvZiBvcHRpb25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBjdXJzb3ItcG9pbnRlciB0ZXh0LWdyYXktNzAwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtYXRpb25cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2Uob3B0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTQgaC00IGFjY2VudC1ibHVlLTYwMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IG9wdC5vcHRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBSYWRpbyBlcnJvciAtLT5cclxuICAgICAgICA8c21hbGxcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdjb25maXJtYXRpb24nKT8udG91Y2hlZCAmJlxyXG4gICAgICAgICAgICBjb25maXJtYXRpb25Gb3JtLmdldCgnY29uZmlybWF0aW9uJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgbXQtMVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgc2V0dGluZygnZXJyb3ItbXNnJykgfX1cclxuICAgICAgICA8L3NtYWxsPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gUkVNQVJLUyAtLT5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUZXh0QXJlYVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTgwIG1sLTRcIj5cclxuXHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItMiBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+XHJcbiAgICAgICAgICB7eyBzZXR0aW5nKCdhZGRpdGlvbmFsLWZpZWxkLWxhYmVsJykgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlbWFya3NcIlxyXG4gICAgICAgICAgcm93cz1cIjNcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCIge3sgc2V0dGluZygnYWRkaXRpb25hbC1maWVsZC1sYWJlbCcpIH19XCJcclxuICAgICAgICAgIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIHAtMyB3LWZ1bGwgXHJcbiAgICAgICAgICAgICAgICAgcmVzaXplLW5vbmUgc2hhZG93LXNtXHJcbiAgICAgICAgICAgICAgICAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWJsdWUtNTAwXCJcclxuICAgICAgICA+PC90ZXh0YXJlYT5cclxuXHJcbiAgICAgICAgPCEtLSBFcnJvciAtLT5cclxuICAgICAgICA8c21hbGxcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdyZW1hcmtzJyk/LnRvdWNoZWQgJiZcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uRm9ybS5nZXQoJ3JlbWFya3MnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMCBtdC0xXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBzZXR0aW5nKCdhZGRpdGlvbmFsLWZpZWxkLWVycm9yLW1zZycpIH19XHJcbiAgICAgICAgPC9zbWFsbD5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Zvcm0+XHJcbjwvZngtY29tcG9uZW50PlxyXG4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9yYWRpby1ncm91cC9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3JhZGlvLWdyb3VwL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBOEIsZUFBZSxFQUFvQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25LLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFzQmhDO0lBQStCO0lBQXlCO0lBQXlEO0lBckJqSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDZixlQUFlLEdBQWlCLEtBQUss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akcsZUFBZTtzQkFBdkIsS0FBSztnQkFld0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnkgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2NvcmUnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeE9wdGlvblNldHRpbmcsIEZ4U2VsZWN0U2V0dGluZywgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncmFkaW8tZ3JvdXAtY3VzdG9tJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudCwgQ2FsZW5kYXJNb2R1bGUsUmFkaW9CdXR0b25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYWRpb0dyb3VwQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0e1xyXG5wcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxucHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KCk7XHJcbmZvcm1PYmplY3Q6IG9iamVjdCA9IHt9O1xyXG5ASW5wdXQoKSBzaG93T25TZWxlY3Rpb246ICd5ZXMnIHwgJ25vJyA9ICd5ZXMnOyAvLyBjb25maWd1cmFibGU6IHNob3cgdGV4dGFyZWEgb24gWWVzIG9yIE5vXHJcbiAgc2hvd1RleHRBcmVhID0gZmFsc2U7XHJcbiBwdWJsaWMgY29uZmlybWF0aW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBjb25maXJtYXRpb246IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgcmVtYXJrczogWycnXSxcclxuICAgICAgdmFsdWVUb1Nob3dUZXh0QXJlYTogWycnXSxcclxuICAgICAgbGFiZWw6WycnXVxyXG4gICAgfSk7XHJcblxyXG4gICAgb3B0aW9uczogYW55W10gPSBbXHJcbiAgICAgIHsgb3B0aW9uOiAnWWVzJywgdmFsdWU6ICdZRVMnIH0sXHJcbiAgICAgIHsgb3B0aW9uOiAnTm8nLCB2YWx1ZTogJ05PJyB9LFxyXG4gICAgICB7IG9wdGlvbjogJ05BJywgdmFsdWU6ICdOQScgfVxyXG4gICAgXTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdmeENvbXBvbmVudCcpIGZ4Q29tcG9uZW50ITogRnhDb21wb25lbnQ7XHJcbiAgICByYWRvaW9NYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UscHJpdmF0ZSBmeEFwaVNlcnZpY2U6IEFwaVNlcnZpY2VSZWdpc3RyeSkge1xyXG4gICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmNvbmZpcm1hdGlvbkZvcm0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgXHJcbiAgICAgfVxyXG5cclxuICAgICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgID0gKHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8uc2V0dGluZ3M/LmZpbmQoKHM6IGFueSkgPT4gcy5rZXkgPT09ICdpdGVtcycpIGFzIGFueSk/Lm9wdGlvbnMgfHwgW107XHJcbiAgICAgICBjb25zdCBsYWJlbERhdGEgPVxyXG4gICh0aGlzLmZ4Q29tcG9uZW50Py5meERhdGE/LnNldHRpbmdzPy5maW5kKChzOiBhbnkpID0+IHMua2V5ID09PSAnc2VsZWN0LWxhYmVsJykgYXMgYW55KT8udmFsdWUgPz9cclxuICAnJztcclxuXHJcbiAgY29uc29sZS5sb2coJ0xhYmVsIERhdGE6JywgbGFiZWxEYXRhKTtcclxuICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdsYWJlbCcpO1xyXG4gICAgICAgICBsYWJlbD8uc2V0VmFsdWUobGFiZWxEYXRhKTtcclxuICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gIGNvbnN0IGtleSA9IHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8ubmFtZTtcclxuXHJcbiAgaWYgKGtleSAmJiB0aGlzLnJhZG9pb01hcC5oYXMoa2V5KSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25Gb3JtLnBhdGNoVmFsdWUodGhpcy5yYWRvaW9NYXAuZ2V0KGtleSkpO1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucmFkb2lvTWFwLmdldChrZXkpO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZShkYXRhLnZhbHVlVG9TaG93VGV4dEFyZWEpO1xyXG4gIH1cclxufSwgMjAwKTtcclxuXHJcbiAgICAgICAgXHJcbiAgICAgICB9XHJcbiAgICAgXHJcbiAgICAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgICAgIC8vICAgaWYgKGtleS5pbmNsdWRlcygncmFkaW8tZ3JvdXAtY3VzdG9tJykpIHtcclxuICAgICAgICAgICAgLy8gICAgdGhpcy5mb3JtT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIC8vICAgfVxyXG4gICAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpIGFzIFtzdHJpbmcsIGFueV1bXSkge1xyXG4gIGlmIChcclxuICAgIHZhbHVlICYmXHJcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXHJcbiAgICAnY29uZmlybWF0aW9uJyBpbiB2YWx1ZVxyXG4gICkge1xyXG4gICAgdGhpcy5yYWRvaW9NYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuICAgICAgICAgICAgXHJcbiAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLm9wdGlvbnMgID0gKHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8uc2V0dGluZ3M/LmZpbmQoKHM6IGFueSkgPT4gcy5rZXkgPT09ICdpdGVtcycpIGFzIGFueSk/Lm9wdGlvbnMgfHwgW107XHJcblxyXG5cclxuICAgICAgLy8gIHRoaXMuc2V0dGluZygnaXRlbXMnKS5sZW5ndGggPiAwID8gdGhpcy5vcHRpb25zID0gdGhpcy5zZXR0aW5nKCdpdGVtcycpIDogbnVsbDtcclxuICAgICBcclxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdjb25maXJtYXRpb24nKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuY29uZmlybWF0aW9uRm9ybS5nZXQoJ3JlbWFya3MnKTtcclxuICAgICAgICAgY29uc3QgdmFsdWVUb1Nob3dUZXh0QXJlYSA9IHRoaXMuY29uZmlybWF0aW9uRm9ybS5nZXQoJ3ZhbHVlVG9TaG93VGV4dEFyZWEnKTtcclxuICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgb3RoZXJDb250cm9sPy5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XHJcbiAgICAgICAgICAgdmFsdWVUb1Nob3dUZXh0QXJlYT8uc2V0VmFsdWUodGhpcy5zZXR0aW5nKCd2YWx1ZS1zaG93LXRleHQnKSk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICBvdGhlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgdmFsdWVUb1Nob3dUZXh0QXJlYT8ucmVzZXQoKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICBcclxuICAgICB9XHJcblxyXG4gICAgIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAvLyBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnY2xpbmljYWxOb3Rlc1VSTCcsICR0aXRsZTogJ0FQSSBVcmwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgIC8vIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdjdXN0b21DbGFzcycsICR0aXRsZTogJ0N1c3RvbSBDbGFzcyBOYW1lJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3NlbGVjdC1sYWJlbCcsICR0aXRsZTogJ0hlYWRlciBMYWJlbCcsIHZhbHVlOiAnSGVhZGVyIExhYmVsJyB9KSwgXHJcbiAgICAgICAgICAgICAgLy8gbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ29wdGlvbi12YWx1ZS1vbmUnLCAkdGl0bGU6ICdWYWx1ZSBvbmUnLCB2YWx1ZTogJ1ZhbHVlIG9uZScgfSksIFxyXG4gICAgICAgICAgICAgIC8vICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3B0aW9uLXZhbHVlLXR3bycsICR0aXRsZTogJ1ZhbHVlIHR3bycsIHZhbHVlOiAnVmFsdWUgdHdvJyB9KSwgXHJcbiAgICAgICAgICAgICAgLy8gICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3B0aW9uLWxhYmVsLW9uZScsICR0aXRsZTogJ0xhYmVsIG9uZScsIHZhbHVlOiAnTGFiZWwgb25lJyB9KSwgXHJcbiAgICAgICAgICAgICAgLy8gICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3B0aW9uLWxhYmVsLXR3bycsICR0aXRsZTogJ0xhYmVsIHR3bycsIHZhbHVlOiAnTGFiZWwgdHdvJyB9KSwgXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAndmFsdWUtc2hvdy10ZXh0JywgJHRpdGxlOiAnVmFsdWUgdG8gc2hvdyB0ZXh0YXJlYScsIHZhbHVlOiAnVmFsdWUgdG8gc2hvdyB0ZXh0YXJlYScgfSksXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhPcHRpb25TZXR0aW5nKHsga2V5OiAnaXRlbXMnLCAkdGl0bGU6ICdPcHRpb25zJywgdmFsdWU6IFt7b3B0aW9uOiAnWWVzJywgdmFsdWU6ICd5ZXMnfSwge29wdGlvbjogJ05vJywgdmFsdWU6ICdubyd9XSAgfSwgW3tvcHRpb246ICdZZXMnLCB2YWx1ZTogJ3llcyd9LCB7b3B0aW9uOiAnTm8nLCB2YWx1ZTogJ25vJ31dKSwgXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnYWRkaXRpb25hbC1maWVsZC1sYWJlbCcsICR0aXRsZTogJ0FkZGl0aW9uYWwgZmllbGQgbGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnYWRkaXRpb25hbC1maWVsZC1lcnJvci1tc2cnLCAkdGl0bGU6ICdBZGRpdGlvbmFsIGZpZWxkIGVycm9yIG1lc3NhZ2UnLCB2YWx1ZTogJ1BsZWFzZSBmaWxsIG91dCB0aGUgZmllbGQnIH0pLFxyXG4gICAgICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2Vycm9yLW1zZycsICR0aXRsZTogJ0Vycm9yIG1lc3NhZ2UnLCB2YWx1ZTogJ1BsZWFzZSBzZWxlY3QnIH0pLFxyXG4gICAgICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3JlbWFyay1wbGFjZWhvbGRlcicsICR0aXRsZTogJ0FkZGl0aW9uYWwgZmllbGQgcGxhY2Vob2xkZXInLCB2YWx1ZTogJ2VudGVyIGhlcmUnIH0pLFxyXG4gICAgICAgICAgICAvLyAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdvdGhlci1wbGFjZWhvbGRlcicsICR0aXRsZTogJ090aGVyIFBsYWNlaG9sZGVyJywgdmFsdWU6ICcnIH0pLCAgXHJcbiAgICAgICAgICAgIC8vICAgbmV3IEZ4U2VsZWN0U2V0dGluZyh7a2V5OiAnc2VydmljZU5hbWUnLCAkdGl0bGU6ICdTZXJ2aWNlJywgdmFsdWU6ICcnfSwgW3tvcHRpb246ICdVc2VyIFNlcnZpY2UnLCB2YWx1ZTogJ3VzZXJfc2VydmljZSd9LCB7b3B0aW9uOiAnUGF0aWVudCBTZXJ2aWNlJywgdmFsdWU6ICdwYXRpZW50X3NlcnZpY2UnfSx7b3B0aW9uOiAnV29ya2Zsb3cgU2VydmljZScsIHZhbHVlOiAnd29ya2Zsb3dfc2VydmljZSd9XSksXHJcbiAgICAgICAgICAgIC8vICAgLy8gbmV3IEZ4U2VsZWN0U2V0dGluZyh7a2V5OiAnc2VydmljZScsICR0aXRsZTogJ1NlcnZpY2UnLCB2YWx1ZTogJ2xvY2FsJ30sIFt7b3B0aW9uOiAnTG9jYWwnLCB2YWx1ZTogJ2xvY2FsJ30sIHtvcHRpb246ICdRQScsIHZhbHVlOiAncWEnfSx7b3B0aW9uOiAnVUFUJywgdmFsdWU6ICd1YXQnfSx7b3B0aW9uOiAnUHJvZHVjdGlvbicsIHZhbHVlOiAncHJvZCd9XSksICAgXHJcbiAgICAgICAgICAgIC8vICAgLy8gbmV3IEZ4U2VsZWN0U2V0dGluZyh7a2V5OiAnaXNSZXF1aXJlZCcsICR0aXRsZTogJ1JlcXVpcmVkJywgdmFsdWU6IHRydWV9LCBbe29wdGlvbjogJ1llcycsIHZhbHVlOiB0cnVlfSwge29wdGlvbjogJ05vJywgdmFsdWU6IGZhbHNlfV0pLCAgICBcclxuICAgICAgICAgICAgLy8gICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2Vycm9yTWVzc2FnZScsICR0aXRsZTogJ0Vycm9yIE1lc3NhZ2UnLCB2YWx1ZTogJ1BsZWFzZSBmaWxsIG91dCB0aGUgZmllbGQnIH0pLCAgXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgIH1cclxuICAgICAgXHJcbiAgICAgICAgcHJvdGVjdGVkIHZhbGlkYXRpb25zKCk6IEZ4VmFsaWRhdGlvbltdIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbjogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxEYXRhID1cclxuICAodGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5zZXR0aW5ncz8uZmluZCgoczogYW55KSA9PiBzLmtleSA9PT0gJ3ZhbHVlLXNob3ctdGV4dCcpIGFzIGFueSk/LnZhbHVlID8/XHJcbiAgJyc7XHJcbiAgICB0aGlzLnNob3dUZXh0QXJlYSA9IHNlbGVjdGlvbiA9PT0gbGFiZWxEYXRhO1xyXG4gIH1cclxufVxyXG4iLCI8ZngtY29tcG9uZW50IFtmeERhdGFdPVwiZnhEYXRhXCIgI2Z4Q29tcG9uZW50PlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29uZmlybWF0aW9uRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiPlxyXG5cclxuICAgIDwhLS0gVGl0bGUgLS0+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAge3sgc2V0dGluZygnc2VsZWN0LWxhYmVsJykgfX1cclxuICAgIDwvbGFiZWw+XHJcblxyXG4gICAgPCEtLSBST1cgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBnYXAtMTZcIj5cclxuXHJcbiAgICAgIDwhLS0gUkFESU8gR1JPVVAgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGN1c3RvbS1nYXBcIj5cclxuXHJcbiAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdCBvZiBvcHRpb25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBjdXJzb3ItcG9pbnRlciB0ZXh0LWdyYXktNzAwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtYXRpb25cIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2Uob3B0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LTQgaC00IGFjY2VudC1ibHVlLTYwMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IG9wdC5vcHRpb24gfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBSYWRpbyBlcnJvciAtLT5cclxuICAgICAgICA8c21hbGxcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdjb25maXJtYXRpb24nKT8udG91Y2hlZCAmJlxyXG4gICAgICAgICAgICBjb25maXJtYXRpb25Gb3JtLmdldCgnY29uZmlybWF0aW9uJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgbXQtMVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgc2V0dGluZygnZXJyb3ItbXNnJykgfX1cclxuICAgICAgICA8L3NtYWxsPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gUkVNQVJLUyAtLT5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUZXh0QXJlYVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTgwIG1sLTRcIj5cclxuXHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItMiBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwXCI+XHJcbiAgICAgICAgICB7eyBzZXR0aW5nKCdhZGRpdGlvbmFsLWZpZWxkLWxhYmVsJykgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlbWFya3NcIlxyXG4gICAgICAgICAgcm93cz1cIjNcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCIge3sgc2V0dGluZygnYWRkaXRpb25hbC1maWVsZC1sYWJlbCcpIH19XCJcclxuICAgICAgICAgIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIHAtMyB3LWZ1bGwgXHJcbiAgICAgICAgICAgICAgICAgcmVzaXplLW5vbmUgc2hhZG93LXNtXHJcbiAgICAgICAgICAgICAgICAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWJsdWUtNTAwXCJcclxuICAgICAgICA+PC90ZXh0YXJlYT5cclxuXHJcbiAgICAgICAgPCEtLSBFcnJvciAtLT5cclxuICAgICAgICA8c21hbGxcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvbkZvcm0uZ2V0KCdyZW1hcmtzJyk/LnRvdWNoZWQgJiZcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uRm9ybS5nZXQoJ3JlbWFya3MnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMCBtdC0xXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBzZXR0aW5nKCdhZGRpdGlvbmFsLWZpZWxkLWVycm9yLW1zZycpIH19XHJcbiAgICAgICAgPC9zbWFsbD5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Zvcm0+XHJcbjwvZngtY29tcG9uZW50PlxyXG4iXX0=