desy-angular 13.0.0 → 13.0.2

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.
@@ -57,7 +57,7 @@ export class SelectComponent extends FormFieldComponent {
57
57
  useExisting: forwardRef(() => SelectComponent),
58
58
  multi: true
59
59
  }
60
- ], queries: [{ propertyName: "itemComponents", predicate: SelectItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: i4.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: i5.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i6.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i7.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: i8.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
60
+ ], queries: [{ propertyName: "itemComponents", predicate: SelectItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [disabled]=\"disabled\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: i4.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: i5.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i6.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i7.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: i8.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
63
63
  type: Component,
@@ -67,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
67
67
  useExisting: forwardRef(() => SelectComponent),
68
68
  multi: true
69
69
  }
70
- ], template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>" }]
70
+ ], template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [disabled]=\"disabled\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>" }]
71
71
  }], propDecorators: { name: [{
72
72
  type: Input
73
73
  }], items: [{
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
91
91
  type: ContentChildren,
92
92
  args: [SelectItemComponent]
93
93
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xKLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0FBYTFFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUF1QjtJQVg1RDs7UUFtQnFDLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFPOUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0F5Q3JCO0lBdkNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLHFCQUFxQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELElBQUksWUFBWSxFQUFFO2dCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFvQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQW9CO1FBQ2hDLE9BQU8sSUFBSSxZQUFZLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixJQUFJLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBNEIsQ0FBQyxLQUFLLENBQUE7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0F0RFUsZUFBZTttR0FBZixlQUFlLDhTQVJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix5REFnQmdCLG1CQUFtQix5RUNqQ3RDLHVnTUErR1M7OzRGRDVGSSxlQUFlO2tCQVgzQixTQUFTOytCQUNFLGFBQWEsYUFFWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUk2QixHQUFHO3NCQUFyQyxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUyxJQUFJO3NCQUE3QyxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDVCxnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFFcEIsT0FBTztzQkFBZixLQUFLO2dCQUVnQyxjQUFjO3NCQUFuRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2VsZWN0SXRlbURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbi1ncm91cC9vcHRpb24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1pdGVtL3NlbGVjdC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGl0ZW1zOiBTZWxlY3RJdGVtRGF0YVtdO1xuICBASW5wdXQoKSBkZXNjcmliZWRCeT86IHN0cmluZztcblxuXG4gIC8vICBmb3JtIGdyb3VwIGNsYXNzIC0gYXNpZ25hciBjbGFzZXMgYSBsYSBldGlxdWV0YSBkZXN5LXNlbGVjdFxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmMtZm9ybS1ncm91cCcpIGNmZyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYy1mb3JtLWdyb3VwLS1lcnJvcicpIGNmZ3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBmb3JtR3JvdXBDbGFzc2VzOiBhbnk7XG5cbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VsZWN0SXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTZWxlY3RJdGVtQ29tcG9uZW50PjtcbiAgY29udGVudEluaXQgPSBmYWxzZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jZmdyID0gKHRoaXMuaGFzRXJyb3JzTWVzc2FnZSgpIHx8IHRoaXMuZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0ID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gaXRlbXM/LmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgIGlmIChpdGVtU2VsZWN0ZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLndyaXRlVmFsdWUoaXRlbVNlbGVjdGVkLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0SXRlbXMoKTogU2VsZWN0SXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbXMgPSAgKHRoaXMuaXRlbUNvbXBvbmVudHMubGVuZ3RoID4gMCkgPyB0aGlzLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgaXNJdGVtU2VsZWN0ZWQoaXRlbTogU2VsZWN0SXRlbURhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgPT0gaXRlbS52YWx1ZSA6IGl0ZW0uc2VsZWN0ZWQ7XG4gIH1cblxuICBpc09wdGlvbkdyb3VwKGl0ZW06IFNlbGVjdEl0ZW1EYXRhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBPcHRpb25Hcm91cENvbXBvbmVudDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWVcbiAgICB0aGlzLnZhbHVlID0gIWlzTmFOKE51bWJlcih2YWx1ZSkpICYmIHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gXCJcIiAmJiB2YWx1ZSAhPSB1bmRlZmluZWQgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxDb21wb25lbnRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1sYWJlbFwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsUmVmXCI+PC9uZy1jb250YWluZXI+XG48ZGVzeS1sYWJlbCAqbmdJZj1cIiFsYWJlbFJlZiAmJiBsYWJlbERhdGEgJiYgIWxhYmVsQ29tcG9uZW50XCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImxhYmVsRGF0YS50ZXh0XCJcbiAgICAgICAgICAgIFtodG1sXT1cImxhYmVsRGF0YS5odG1sXCJcbiAgICAgICAgICAgIFtjbGFzc2VzXT1cImxhYmVsRGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgIFtpc1BhZ2VIZWFkaW5nXT1cImxhYmVsRGF0YS5pc1BhZ2VIZWFkaW5nXCJcbiAgICAgICAgICAgIFtmb3JdPVwiaWRcIlxuICAgICAgICAgICAgW3JvbGVdPVwibGFiZWxEYXRhLnJvbGVcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJsYWJlbERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwibGFiZWxEYXRhLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwibGFiZWxEYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImxhYmVsRGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwibGFiZWxEYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImxhYmVsRGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImxhYmVsRGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICBbYXJpYUxpdmVdPVwibGFiZWxEYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwibGFiZWxEYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJsYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImxhYmVsRGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cImxhYmVsRGF0YS50YWJpbmRleFwiPjwvZGVzeS1sYWJlbD5cbjxkZXN5LWxhYmVsICpuZ0lmPVwiIWxhYmVsUmVmICYmICFsYWJlbERhdGEgJiYgbGFiZWxUZXh0ICYmICFsYWJlbENvbXBvbmVudFwiXG4gICAgICAgICAgICBbdGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgICAgICAgW2Zvcl09XCJpZFwiPjwvZGVzeS1sYWJlbD5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50UmVmXCI+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGludENvbXBvbmVudFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbjxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiBoaW50RGF0YSAmJiAhaGludENvbXBvbmVudFwiXG4gICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgIFt0ZXh0XT1cImhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICBbaHRtbF09XCJoaW50RGF0YS5odG1sXCJcbiAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgIFtyb2xlXT1cImhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICBbYXJpYUxhYmVsXT1cImhpbnREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaGludERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJoaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaGludERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImhpbnREYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgIFt0YWJpbmRleF09XCJoaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmICFoaW50RGF0YSAmJiBoaW50VGV4dCAmJiAhaGludENvbXBvbmVudFwiXG4gICAgICAgICAgIFt0ZXh0XT1cImhpbnRUZXh0XCJcbiAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZCgpXCI+PC9kZXN5LWhpbnQ+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvck1lc3NhZ2VDb21wb25lbnRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JNZXNzYWdlUmVmXCI+PC9uZy1jb250YWluZXI+XG48ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiBlcnJvck1lc3NhZ2VEYXRhICYmICFlcnJvck1lc3NhZ2VDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiZXJyb3JNZXNzYWdlRGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImVycm9yTWVzc2FnZURhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJlcnJvck1lc3NhZ2VEYXRhLnRhYmluZGV4XCI+PC9kZXN5LWVycm9yLW1lc3NhZ2U+XG48ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiAhZXJyb3JNZXNzYWdlRGF0YSAmJiAhZXJyb3JNZXNzYWdlQ29tcG9uZW50ICYmIGVycm9yTWVzc2FnZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuPHNlbGVjdCBbY2xhc3NdPVwiWydjLXNlbGVjdCBibG9jayBtdC1zbSB0cmFuc2l0aW9uIGR1cmF0aW9uLTE1MCBlYXNlLWluLW91dCBib3JkZXItYmxhY2sgcm91bmRlZCBmb250LXNlbWlib2xkIGZvY3VzOmJvcmRlci1ibGFjayBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cy1pbnB1dCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy13YXJuaW5nLWJhc2UgZGlzYWJsZWQ6YmctbmV1dHJhbC1saWdodCBkaXNhYmxlZDpib3JkZXItbmV1dHJhbC1iYXNlJyxcbiAgICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgICAgaGFzRXJyb3JzTWVzc2FnZSgpID8gJ2Mtc2VsZWN0LS1lcnJvciBib3JkZXItYWxlcnQtYmFzZSByaW5nLTIgcmluZy1hbGVydC1iYXNlJyA6IG51bGxdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmlkXT1cImlkID8gaWQgOiBudWxsXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lID8gbmFtZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIlthcmlhRGVzY3JpYmVkQnksIGRlc2NyaWJlZEJ5LCBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiAoaGFzRXJyb3JzTWVzc2FnZSgpID8gZ2V0RXJyb3JJZCgpIDogbnVsbClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiKGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBhcmlhRXJyb3JNZXNzYWdlKSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEl0ZW1zKClcIj5cbiAgICA8b3B0Z3JvdXAgKm5nSWY9XCJpc09wdGlvbkdyb3VwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cIml0ZW1cIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHN1Ykl0ZW0gb2YgaXRlbS5pdGVtc1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzdWJJdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Ykl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoc3ViSXRlbSlcIlxuICAgICAgICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwic3ViSXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IHN1Ykl0ZW0sIHRleHQ6IHN1Ykl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L29wdGlvbj5cbiAgICA8L29wdGdyb3VwPlxuICAgIDxvcHRpb24gKm5nSWY9XCIhaXNPcHRpb25Hcm91cChpdGVtKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwiaXRlbVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvb3B0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc2VsZWN0PiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xKLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0FBYTFFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUF1QjtJQVg1RDs7UUFtQnFDLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFPOUMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0F5Q3JCO0lBdkNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLHFCQUFxQixDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELElBQUksWUFBWSxFQUFFO2dCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFvQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQW9CO1FBQ2hDLE9BQU8sSUFBSSxZQUFZLG9CQUFvQixDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixJQUFJLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBNEIsQ0FBQyxLQUFLLENBQUE7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0F0RFUsZUFBZTttR0FBZixlQUFlLDhTQVJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix5REFnQmdCLG1CQUFtQix5RUNqQ3RDLHdpTUFnSFM7OzRGRDdGSSxlQUFlO2tCQVgzQixTQUFTOytCQUNFLGFBQWEsYUFFWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUk2QixHQUFHO3NCQUFyQyxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUyxJQUFJO3NCQUE3QyxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDVCxnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFFcEIsT0FBTztzQkFBZixLQUFLO2dCQUVnQyxjQUFjO3NCQUFuRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2VsZWN0SXRlbURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3B0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbi1ncm91cC9vcHRpb24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1pdGVtL3NlbGVjdC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGl0ZW1zOiBTZWxlY3RJdGVtRGF0YVtdO1xuICBASW5wdXQoKSBkZXNjcmliZWRCeT86IHN0cmluZztcblxuXG4gIC8vICBmb3JtIGdyb3VwIGNsYXNzIC0gYXNpZ25hciBjbGFzZXMgYSBsYSBldGlxdWV0YSBkZXN5LXNlbGVjdFxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmMtZm9ybS1ncm91cCcpIGNmZyA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYy1mb3JtLWdyb3VwLS1lcnJvcicpIGNmZ3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBmb3JtR3JvdXBDbGFzc2VzOiBhbnk7XG5cbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VsZWN0SXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTZWxlY3RJdGVtQ29tcG9uZW50PjtcbiAgY29udGVudEluaXQgPSBmYWxzZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jZmdyID0gKHRoaXMuaGFzRXJyb3JzTWVzc2FnZSgpIHx8IHRoaXMuZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnRJbml0ID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgY29uc3QgaXRlbVNlbGVjdGVkID0gaXRlbXM/LmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgIGlmIChpdGVtU2VsZWN0ZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLndyaXRlVmFsdWUoaXRlbVNlbGVjdGVkLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0SXRlbXMoKTogU2VsZWN0SXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbXMgPSAgKHRoaXMuaXRlbUNvbXBvbmVudHMubGVuZ3RoID4gMCkgPyB0aGlzLml0ZW1Db21wb25lbnRzLnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgaXNJdGVtU2VsZWN0ZWQoaXRlbTogU2VsZWN0SXRlbURhdGEpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgPT0gaXRlbS52YWx1ZSA6IGl0ZW0uc2VsZWN0ZWQ7XG4gIH1cblxuICBpc09wdGlvbkdyb3VwKGl0ZW06IFNlbGVjdEl0ZW1EYXRhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBPcHRpb25Hcm91cENvbXBvbmVudDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWVcbiAgICB0aGlzLnZhbHVlID0gIWlzTmFOKE51bWJlcih2YWx1ZSkpICYmIHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT0gXCJcIiAmJiB2YWx1ZSAhPSB1bmRlZmluZWQgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxDb21wb25lbnRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1sYWJlbFwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsUmVmXCI+PC9uZy1jb250YWluZXI+XG48ZGVzeS1sYWJlbCAqbmdJZj1cIiFsYWJlbFJlZiAmJiBsYWJlbERhdGEgJiYgIWxhYmVsQ29tcG9uZW50XCJcbiAgICAgICAgICAgIFt0ZXh0XT1cImxhYmVsRGF0YS50ZXh0XCJcbiAgICAgICAgICAgIFtodG1sXT1cImxhYmVsRGF0YS5odG1sXCJcbiAgICAgICAgICAgIFtjbGFzc2VzXT1cImxhYmVsRGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgIFtpc1BhZ2VIZWFkaW5nXT1cImxhYmVsRGF0YS5pc1BhZ2VIZWFkaW5nXCJcbiAgICAgICAgICAgIFtmb3JdPVwiaWRcIlxuICAgICAgICAgICAgW3JvbGVdPVwibGFiZWxEYXRhLnJvbGVcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJsYWJlbERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwibGFiZWxEYXRhLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwibGFiZWxEYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImxhYmVsRGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwibGFiZWxEYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImxhYmVsRGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImxhYmVsRGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICBbYXJpYUxpdmVdPVwibGFiZWxEYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwibGFiZWxEYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJsYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImxhYmVsRGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cImxhYmVsRGF0YS50YWJpbmRleFwiPjwvZGVzeS1sYWJlbD5cbjxkZXN5LWxhYmVsICpuZ0lmPVwiIWxhYmVsUmVmICYmICFsYWJlbERhdGEgJiYgbGFiZWxUZXh0ICYmICFsYWJlbENvbXBvbmVudFwiXG4gICAgICAgICAgICBbdGV4dF09XCJsYWJlbFRleHRcIlxuICAgICAgICAgICAgW2Zvcl09XCJpZFwiPjwvZGVzeS1sYWJlbD5cbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50UmVmXCI+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGludENvbXBvbmVudFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbjxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiBoaW50RGF0YSAmJiAhaGludENvbXBvbmVudFwiXG4gICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgIFt0ZXh0XT1cImhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICBbaHRtbF09XCJoaW50RGF0YS5odG1sXCJcbiAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgIFtyb2xlXT1cImhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICBbYXJpYUxhYmVsXT1cImhpbnREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaGludERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJoaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaGludERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImhpbnREYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgIFt0YWJpbmRleF09XCJoaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmICFoaW50RGF0YSAmJiBoaW50VGV4dCAmJiAhaGludENvbXBvbmVudFwiXG4gICAgICAgICAgIFt0ZXh0XT1cImhpbnRUZXh0XCJcbiAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZCgpXCI+PC9kZXN5LWhpbnQ+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvck1lc3NhZ2VDb21wb25lbnRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZXJyb3JNZXNzYWdlUmVmXCI+PC9uZy1jb250YWluZXI+XG48ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiBlcnJvck1lc3NhZ2VEYXRhICYmICFlcnJvck1lc3NhZ2VDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiZXJyb3JNZXNzYWdlRGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImVycm9yTWVzc2FnZURhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJlcnJvck1lc3NhZ2VEYXRhLnRhYmluZGV4XCI+PC9kZXN5LWVycm9yLW1lc3NhZ2U+XG48ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiAhZXJyb3JNZXNzYWdlRGF0YSAmJiAhZXJyb3JNZXNzYWdlQ29tcG9uZW50ICYmIGVycm9yTWVzc2FnZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuPHNlbGVjdCBbY2xhc3NdPVwiWydjLXNlbGVjdCBibG9jayBtdC1zbSB0cmFuc2l0aW9uIGR1cmF0aW9uLTE1MCBlYXNlLWluLW91dCBib3JkZXItYmxhY2sgcm91bmRlZCBmb250LXNlbWlib2xkIGZvY3VzOmJvcmRlci1ibGFjayBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cy1pbnB1dCBmb2N1czpyaW5nLTQgZm9jdXM6cmluZy13YXJuaW5nLWJhc2UgZGlzYWJsZWQ6YmctbmV1dHJhbC1saWdodCBkaXNhYmxlZDpib3JkZXItbmV1dHJhbC1iYXNlJyxcbiAgICAgICAgICAgICAgY2xhc3NlcyxcbiAgICAgICAgICAgICAgaGFzRXJyb3JzTWVzc2FnZSgpID8gJ2Mtc2VsZWN0LS1lcnJvciBib3JkZXItYWxlcnQtYmFzZSByaW5nLTIgcmluZy1hbGVydC1iYXNlJyA6IG51bGxdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmlkXT1cImlkID8gaWQgOiBudWxsXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lID8gbmFtZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIlthcmlhRGVzY3JpYmVkQnksIGRlc2NyaWJlZEJ5LCBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiAoaGFzRXJyb3JzTWVzc2FnZSgpID8gZ2V0RXJyb3JJZCgpIDogbnVsbClcIlxuICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiKGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBhcmlhRXJyb3JNZXNzYWdlKSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEl0ZW1zKClcIj5cbiAgICA8b3B0Z3JvdXAgKm5nSWY9XCJpc09wdGlvbkdyb3VwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cIml0ZW1cIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHN1Ykl0ZW0gb2YgaXRlbS5pdGVtc1wiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzdWJJdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Ykl0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoc3ViSXRlbSlcIlxuICAgICAgICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwic3ViSXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IHN1Ykl0ZW0sIHRleHQ6IHN1Ykl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L29wdGlvbj5cbiAgICA8L29wdGdyb3VwPlxuICAgIDxvcHRpb24gKm5nSWY9XCIhaXNPcHRpb25Hcm91cChpdGVtKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwiaXRlbVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvb3B0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvc2VsZWN0PiJdfQ==
@@ -234,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
234
234
  }], itemsPerPageChange: [{
235
235
  type: Output
236
236
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXBhZ2luYXRpb24vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1wYWdpbmF0aW9uL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDL0ssT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7Ozs7Ozs7QUFPakgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQWtEN0QsWUFBb0IsY0FBaUM7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUE3QzVDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIs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RyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUV5QixnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSSxFQUFFO3NCQUFsQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLFNBQVM7Z0JBR21CLFlBQVk7c0JBQTdELGVBQWU7dUJBQUMsK0JBQStCO2dCQUVDLG1CQUFtQjtzQkFBbkUsZUFBZTt1QkFBQyw4QkFBOEI7Z0JBRXRDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUdFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UvcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0aW9uLWxpc3Rib3gtbGFiZWwvcGFnaW5hdGlvbi1saXN0Ym94LWxhYmVsLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcblxuICBASW5wdXQoKSBoYXNTZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcbiAgQElucHV0KCkgaGFzUHJldmlvdXM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNOZXh0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaGFzRmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNMYXN0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1ByZXZpb3VzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd05leHQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Rmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0xhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHJldmlvdXNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5leHRUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpcnN0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBsYXN0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBoYXNTZWxlY3RJdGVtc1BlclBhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzQ29udGFpbmVyOiBhbnk7XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkOiBhbnk7XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQpIGxpc3Rib3hMYWJlbDogUGFnaW5hdGlvbkxpc3Rib3hMYWJlbENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudCkgbGlzdGJveEl0ZW1zUGVyUGFnZTogUXVlcnlMaXN0PFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgY3VycmVudFBhZ2UgPSAxOyAvLyA9PSBjdXJyZW50UGFnZWluZGV4ICsgMVxuICBAT3V0cHV0KCkgY3VycmVudFBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBAT3V0cHV0KCkgaXRlbXNQZXJQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgblBhZ2VzOiBudW1iZXI7XG4gIGl0ZW1zOiBQYWdpbmF0aW9uSXRlbVBlclBhZ2VDb21wb25lbnRbXTtcbiAgdmFsdWU6IG51bWJlcjtcbiAgaXRlbXNQZXJQYWdlTGlzdDogUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50W107XG4gIHZhbHVlUGVyUGFnZTogbnVtYmVyO1xuICBuUGFnZXNIaXN0b3J5ID0gMDtcblxuICBkZWZhdWx0VGV4dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHByZXZpb3VzSWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE0MCAxNDBcIiAgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1yLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxwYXRoIGQ9XCJNNTQuODcgNzEuNzdhMi41IDIuNSAwIDAxMC0zLjU0TDEwNiAxNy4wN0ExMCAxMCAwIDEwOTEuODkgMi45M0wzNS40MyA1OS4zOWExNSAxNSAwIDAwMCAyMS4yMmw1Ni40NiA1Ni40NkExMCAxMCAwIDEwMTA2IDEyMi45M3pcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz48L3N2Zz4nO1xuICByZWFkb25seSBuZXh0SWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE0MCAxNDBcIiB3aWR0aD1cIjFlbVwiIGhlaWdodD1cIjFlbVwiIGNsYXNzPVwic2VsZi1jZW50ZXIgaC0yLjUgdy0yLjUgbWwtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+PHBhdGggZD1cIk0zNCAxMzcuMDdhMTAgMTAgMCAwMTAtMTQuMTRsNTEuMTMtNTEuMTZhMi41IDIuNSAwIDAwMC0zLjU0TDM0IDE3LjA3QTEwIDEwIDAgMDE0OC4xMSAyLjkzbDU2LjQ2IDU2LjQ2YTE1IDE1IDAgMDEwIDIxLjIybC01Ni40NiA1Ni40NmExMCAxMCAwIDAxLTE0LjExIDB6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+PC9zdmc+JztcbiAgcmVhZG9ubHkgZmlyc3RJY29uID0gJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjFlbVwiIGhlaWdodD1cIjFlbVwiIGNsYXNzPVwic2VsZi1jZW50ZXIgaC0yLjUgdy0yLjUgbXItMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+PGc+PHBhdGggZD1cIk0xMC40MiwxMmEyLjY0LDIuNjQsMCwwLDEsLjc3LTEuODhMMjAuNzMuNThhMS43NywxLjc3LDAsMCwxLDIuNSwyLjVsLTguNzQsOC43NGEuMjcuMjcsMCwwLDAsMCwuMzZsOC43NCw4Ljc0YTEuNzcsMS43NywwLDAsMS0yLjUsMi41bC05LjU0LTkuNTRBMi42NCwyLjY0LDAsMCwxLDEwLjQyLDEyWlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+PHBhdGggZD1cIk0uMjUsMTJBMi42NSwyLjY1LDAsMCwxLDEsMTAuMTJMMTAuNTcuNThhMS43NywxLjc3LDAsMCwxLDIuNSwyLjVMNC4zMywxMS44MmEuMjUuMjUsMCwwLDAsMCwuMzZsOC43NCw4Ljc0YTEuNzcsMS43NywwLDAsMS0yLjUsMi41TDEsMTMuODhBMi42NSwyLjY1LDAsMCwxLC4yNSwxMlpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjwvZz48L3N2Zz4nO1xuICByZWFkb25seSBsYXN0SWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1sLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxnPjxwYXRoIGQ9XCJNMTMuNTgsMTJhMi42NCwyLjY0LDAsMCwxLS43NywxLjg4TDMuMjcsMjMuNDJhMS43NywxLjc3LDAsMCwxLTIuNS0yLjVsOC43NC04Ljc0YS4yNy4yNywwLDAsMCwwLS4zNkwuNzcsMy4wOEExLjc3LDEuNzcsMCwwLDEsMy4yNy41OGw5LjU0LDkuNTRBMi42NCwyLjY0LDAsMCwxLDEzLjU4LDEyWlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+PHBhdGggZD1cIk0yMy43NSwxMkEyLjY1LDIuNjUsMCwwLDEsMjMsMTMuODhsLTkuNTQsOS41NGExLjc3LDEuNzcsMCwwLDEtMi41LTIuNWw4Ljc0LTguNzRhLjI1LjI1LDAsMCwwLDAtLjM2TDEwLjkzLDMuMDhhMS43NywxLjc3LDAsMCwxLDIuNS0yLjVMMjMsMTAuMTJBMi42NSwyLjY1LDAsMCwxLDIzLjc1LDEyWlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+PC9nPjwvc3ZnPic7XG4gIHJlYWRvbmx5IHByZWZpeCA9ICc8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Qw6FnaW5hJm5ic3A7PC9zcGFuPic7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID09PSBudWxsIHx8IHRoaXMuY3VycmVudFBhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tDaGFuZ2VzKCk7XG4gICAgdGhpcy5jbGFzc2VzQ29udGFpbmVyID0gdGhpcy5jbGFzc2VzQ29udGFpbmVyID8gdGhpcy5jbGFzc2VzQ29udGFpbmVyICs9ICcgbGc6ZmxleCBsZzpmbGV4LXdyYXAgbGc6aXRlbXMtY2VudGVyIGxnOmdhcC1iYXNlJyA6ICdsZzpmbGV4IGxnOmZsZXgtd3JhcCBsZzppdGVtcy1jZW50ZXIgbGc6Z2FwLWJhc2UnXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogbnVsbFxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UpIHtcbiAgICAgIHRoaXMuc2V0dXBJdGVtc1BlclBhZ2UoKTtcbiAgICAgIHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZS5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0dXBJdGVtc1BlclBhZ2UoKTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY2hlY2tDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMublBhZ2VzID0gTWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcyAvIHRoaXMuaXRlbXNQZXJQYWdlKTtcblxuICAgIGlmICghdGhpcy5jdXJyZW50UGFnZSB8fCB0aGlzLmN1cnJlbnRQYWdlIDwgMSB8fCB0aGlzLmN1cnJlbnRQYWdlID4gdGhpcy5uUGFnZXMpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgdGhpcy5jdXJyZW50UGFnZUNoYW5nZS5lbWl0KHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZmlyc3RUZXh0KSB7XG4gICAgICB0aGlzLmZpcnN0VGV4dCA9ICdQcmltZXJhJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByZXZpb3VzVGV4dCkge1xuICAgICAgdGhpcy5wcmV2aW91c1RleHQgPSAnQW50ZXJpb3InO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubmV4dFRleHQpIHtcbiAgICAgIHRoaXMubmV4dFRleHQgPSAnU2lndWllbnRlJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxhc3RUZXh0KSB7XG4gICAgICB0aGlzLmxhc3RUZXh0ID0gJ8OabHRpbWEnO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkUGFnZXMoKTtcbiAgfVxuXG4gIGdldFN1ZmZpeChwYWdlOiBudW1iZXIsIGlzTnVtYmVyID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYWdlID49IDAgJiYgcGFnZSAqIHRoaXMuaXRlbXNQZXJQYWdlIDwgdGhpcy50b3RhbEl0ZW1zID9cbiAgICAgIChpc051bWJlciA/IGA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj46Jm5ic3A7IGNvbiBsb3MgcmVzdWx0YWRvcyBkZWwgJHtwYWdlICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxfSBhbCAke3RoaXMuZ2V0TGFzdEl0ZW1OdW1iZXIocGFnZSl9PC9zcGFuPmAgOiBgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+OiZuYnNwO1DDoWdpbmEgJHtwYWdlICsgMX0gY29uIGxvcyByZXN1bHRhZG9zIGRlbCAke3BhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDF9IGFsICR7dGhpcy5nZXRMYXN0SXRlbU51bWJlcihwYWdlKX08L3NwYW4+YClcbiAgICAgIDogJyc7XG4gIH1cblxuICBnZXRMYXN0SXRlbU51bWJlcihwYWdlSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgubWluKChwYWdlSW5kZXggKyAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlLCB0aGlzLnRvdGFsSXRlbXMpO1xuICB9XG5cbiAgYnVpbGRQYWdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uUGFnZXNIaXN0b3J5ICE9IHRoaXMublBhZ2VzKSB7XG4gICAgICB0aGlzLm5QYWdlc0hpc3RvcnkgPSB0aGlzLm5QYWdlc1xuICAgICAgY29uc3QgaXRlbUxpc3QgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uUGFnZXM7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0ge1xuICAgICAgICAgIHZhbHVlOiBpICsgMSxcbiAgICAgICAgICB0ZXh0OiBpICsgMSxcbiAgICAgICAgICBzZWxlY3RlZDogKChpICsgMSkgPT09IHRoaXMuY3VycmVudFBhZ2UpXG4gICAgICAgIH07XG4gICAgICAgIGl0ZW1MaXN0LnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5jdXJyZW50UGFnZVxuICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1MaXN0O1xuICAgIH1cbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ3BhZ2luYXRpb24taXRlbSc7XG4gIH1cblxuICBnZXRCdXR0b25JZChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZFByZWZpeCgpICsgJy0nICsgKytpbmRleDtcbiAgfVxuXG4gIGNoYW5nZVBhZ2UoY3VycmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgaGFzUGFnZUNoYW5nZSA9IGN1cnJlbnQgIT09IHRoaXMuY3VycmVudFBhZ2U7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IGN1cnJlbnQ7XG4gICAgaWYgKGhhc1BhZ2VDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLml0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtc1tpXTtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSAoKGkgKyAxKSA9PT0gdGhpcy5jdXJyZW50UGFnZSk7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5jdXJyZW50UGFnZVxuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UgLSAxKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy5uUGFnZXMpIHtcbiAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmN1cnJlbnRQYWdlICsgMSk7XG4gICAgfVxuICB9XG5cbiAgZmlyc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UoMSk7XG4gICAgfVxuICB9XG5cbiAgbGFzdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8IHRoaXMublBhZ2VzKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UodGhpcy5uUGFnZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldExpc3Rib3hMYWJlbCgpOiBQYWdpbmF0aW9uTGlzdGJveExhYmVsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5saXN0Ym94TGFiZWwgPyB0aGlzLmxpc3Rib3hMYWJlbCA6IG51bGw7XG4gIH1cblxuICBjaGFuZ2VJdGVtc1BlclBhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgbGV0IG5ld1ZhbHVlID0gZXZlbnQ7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5jaGVja0NoYW5nZXMoKTtcbiAgICAgIHRoaXMuaXRlbXNQZXJQYWdlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQWN0aXZlSXRlbUNoYW5nZShldmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwSXRlbXNQZXJQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlTGlzdCA9IHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZSAmJiB0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UubGVuZ3RoID4gMCA/IHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZS50b0FycmF5KCkgOiBudWxsO1xuICAgIGlmICh0aGlzLml0ZW1zUGVyUGFnZUxpc3QpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtc1BlclBhZ2VJdGVtID0gdGhpcy5pdGVtc1BlclBhZ2VMaXN0LmZpbmQoaSA9PiBpLnZhbHVlID09PSB0aGlzLml0ZW1zUGVyUGFnZSk7XG4gICAgICBpZiAoY3VycmVudEl0ZW1zUGVyUGFnZUl0ZW0pIHtcbiAgICAgICAgY3VycmVudEl0ZW1zUGVyUGFnZUl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgaGFzQWN0aXZlID0gdGhpcy5pdGVtc1BlclBhZ2VMaXN0LmZpbmQoaSA9PiBpLnNlbGVjdGVkKTtcbiAgICAgIGlmICghaGFzQWN0aXZlICYmIHRoaXMuaXRlbXNQZXJQYWdlTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXRlbXNQZXJQYWdlTGlzdFswXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNTZWxlY3RcIj5cbiAgPHAgW2F0dHIuaWRdPVwiaWQgKyAnLWxhYmVsJ1wiIGNsYXNzPVwidy1mdWxsIG1iLXhzIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmtcIj5cbiAgICBTZWxlY2Npb25hIHBhcmEgY2FyZ2FyIGRhdG9zIGF1dG9tw6F0aWNhbWVudGVcbiAgPC9wPlxuICA8bmF2IFtjbGFzc109XCJbJ2ZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBmbGV4LTEgbWItYmFzZSBsZzptYi0wIHRleHQtc20nLCBjbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgIFtkZXN5QXBwQWNjZXNzaWJpbGl0eV09XCJ0aGlzXCI+XG4gICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwic2hvd0ZpcnN0XCIgKGNsaWNrRXZlbnQpPVwiZmlyc3QoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1maXJzdCdcIlxuICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiZmlyc3RJY29uICsgcHJlZml4ICsgZmlyc3RUZXh0ICsgZ2V0U3VmZml4KGN1cnJlbnRQYWdlIC0gMilcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDEgfHwgIWhhc0ZpcnN0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICA8ZGVzeS1idXR0b24gKm5nSWY9XCJzaG93UHJldmlvdXNcIiAoY2xpY2tFdmVudCk9XCJwcmV2aW91cygpXCIgW2lkXT1cImdldElkUHJlZml4KCkgKyAnLXByZXZpb3VzJ1wiXG4gICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmV2aW91c0ljb24gKyBwcmVmaXggKyBwcmV2aW91c1RleHQgKyBnZXRTdWZmaXgoY3VycmVudFBhZ2UgLSAyKVwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMSB8fCAhaGFzUHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cImMtYnV0dG9uLS1zbSBjLWJ1dHRvbi0tdHJhbnNwYXJlbnQgbXIteHNcIj48L2Rlc3ktYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgcGwtc21cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsndy1mdWxsIGxnOnctYXV0byc6IHNob3dGaXJzdCB8fCBzaG93TGFzdH1cIj5cbiAgICAgIDxwICpuZ0lmPVwic2hvd0ZpcnN0IHx8IHNob3dMYXN0XCIgY2xhc3M9XCJsZzpoaWRkZW4gbXIteHMgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFya1wiPlDDoWdpbmEgYWN0dWFsOjwvcD5cbiAgICAgICAgICA8ZGVzeS1zZWxlY3QgW2NsYXNzZXNdPVwiJ2Mtc2VsZWN0LS1zbSBjLXNlbGVjdC0tdHJhbnNwYXJlbnQnXCIgXG4gICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBDbGFzc2VzXT1cIictbXQtc20gbWItMCBtci14cydcIiBcbiAgICAgICAgICAgICAgICAgW2lkXT1cImlkICsgJy1pdGVtcy1saXN0Ym94LSdcIlxuICAgICAgICAgICAgICAgICBbbmFtZV09XCJpZCArICdpdGVtcy1saXN0Ym94LSdcIlxuICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlSXRlbUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgPGRlc3ktbGFiZWwgW2NsYXNzZXNdPVwiJ3NyLW9ubHknXCI+XG4gICAgICAgICAgICAgICAgU2VsZWNjaW9uYSB1bmEgcMOhZ2luYVxuICAgICAgICAgICAgIDwvZGVzeS1sYWJlbD5cbiAgICAgICAgICA8L2Rlc3ktc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkZXN5LWJ1dHRvbiAqbmdJZj1cInNob3dOZXh0XCIgKGNsaWNrRXZlbnQpPVwibmV4dCgpXCIgW2lkXT1cImdldElkUHJlZml4KCkgKyAnLW5leHQnXCJcbiAgICAgICAgICAgICAgICAgIFtodG1sXT1cInByZWZpeCArIG5leHRUZXh0ICsgZ2V0U3VmZml4KGN1cnJlbnRQYWdlKSArIG5leHRJY29uXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSBuUGFnZXMgfHwgIWhhc05leHRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cImMtYnV0dG9uLS1zbSBjLWJ1dHRvbi0tdHJhbnNwYXJlbnQgbXIteHNcIj48L2Rlc3ktYnV0dG9uPlxuICAgIDxkZXN5LWJ1dHRvbiAqbmdJZj1cInNob3dMYXN0XCIgKGNsaWNrRXZlbnQpPVwibGFzdCgpXCIgW2lkXT1cImdldElkUHJlZml4KCkgKyAnLWxhc3QnXCJcbiAgICAgICAgICAgICAgICAgIFtodG1sXT1cInByZWZpeCArIGxhc3RUZXh0ICsgZ2V0U3VmZml4KGN1cnJlbnRQYWdlKSArIGxhc3RJY29uXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSBuUGFnZXMgfHwgIWhhc0xhc3RcIlxuICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cImMtYnV0dG9uLS1zbSBjLWJ1dHRvbi0tdHJhbnNwYXJlbnQgbXIteHNcIj48L2Rlc3ktYnV0dG9uPlxuICA8L25hdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNTZWxlY3RcIj5cbiAgPG5hdiBbY2xhc3NdPVwiWydmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xIG1iLWJhc2UgbGc6bWItMCB0ZXh0LXNtJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwidGhpc1wiPlxuICAgIDx1bCBjbGFzcz1cImZsZXggZmxleC13cmFwXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwiaXRlbS5hY3RpdmVcIiBbaWRdPVwiZ2V0QnV0dG9uSWQoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIic8c3Ryb25nPicgKyBwcmVmaXggKyAoaSArIDEpICsgZ2V0U3VmZml4KGksdHJ1ZSkgKyAnPC9zdHJvbmc+J1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cImMtYnV0dG9uLS1wcmltYXJ5IGMtYnV0dG9uLS1kaXNhYmxlZCBtYi1zbSBtci1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIiBhcmlhQ3VycmVudD1cInBhZ2VcIiB0YWJpbmRleD1cIi0xXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICAgICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwiIWl0ZW0uYWN0aXZlXCIgW2lkXT1cImdldEJ1dHRvbklkKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmVmaXggKyAoaSArIDEpICsgZ2V0U3VmZml4KGksdHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGlja0V2ZW50KT1cImNoYW5nZVBhZ2UoaSArIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPVwibWItc20gbXItc21cIj48L2Rlc3ktYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvbmctY29udGFpbmVyPlxuICBcbjxkaXYgKm5nSWY9XCJoYXNTZWxlY3RJdGVtc1BlclBhZ2VcIiBjbGFzcz1cImJsb2NrIHJlbGF0aXZlIC10b3AteHMgbGc6bWwtYXV0byB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrXCI+XG4gICAgPGRlc3ktc2VsZWN0IFtjbGFzc2VzXT1cIidjLXNlbGVjdC0tc20gYy1zZWxlY3QtLXRyYW5zcGFyZW50J1wiIFxuICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwQ2xhc3Nlc109XCInZmxleCBmbGV4LXdyYXAgcGxhY2UtaXRlbXMtYmFzZWxpbmUgZ2FwLXhzIC1tdC1zbSBtYi0wIG1yLXhzJ1wiIFxuICAgICAgICAgICAgICAgICBbaWRdPVwiJ2l0ZW1zLWxpc3Rib3gtJyArIGdldElkUHJlZml4KClcIlxuICAgICAgICAgICAgICAgICBbbmFtZV09XCInaXRlbXMtbGlzdGJveC0nICsgZ2V0SWRQcmVmaXgoKVwiXG4gICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJpZCArICctbGFiZWwnXCJcbiAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zUGVyUGFnZUxpc3RcIlxuICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVBlclBhZ2VcIlxuICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VJdGVtc1BlclBhZ2UoJGV2ZW50KVwiPlxuICAgICAgPGRlc3ktbGFiZWwgW2NsYXNzZXNdPVwibGlzdGJveExhYmVsICYmIGxpc3Rib3hMYWJlbC5jbGFzc2VzID8gbGlzdGJveExhYmVsLmNsYXNzZXMgOiAnaW5saW5lLWJsb2NrIGZsZXggYWxpZ24tbWlkZGxlIG1iLVswXSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3Rib3hMYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogbGlzdGJveExhYmVsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdGJveExhYmVsXCI+XG4gICAgICAgICAgSXRlbXMgcG9yIHDDoWdpbmFcbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rlc3ktbGFiZWw+XG4gICA8L2Rlc3ktc2VsZWN0PlxuPC9kaXY+XG5cblxuPHAgW2F0dHIuaWRdPVwiaWRQcmVmaXggKyAnLXN0YXR1cydcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3M9XCJibG9jayByZWxhdGl2ZSAtdG9wLXhzIGxnOm1sLWF1dG8gdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFya1wiICpuZ0lmPVwidG90YWxJdGVtcyAmJiBpdGVtc1BlclBhZ2VcIj5cbiAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UG9zaWNpw7NuIGRlIHBhZ2luYWNpw7NuOiA8L3NwYW4+e3soY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZSArIDF9fSAtIHt7Z2V0TGFzdEl0ZW1OdW1iZXIoY3VycmVudFBhZ2UgLSAxKX19IGRlIHt7dG90YWxJdGVtc319XG48L3A+XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXBhZ2luYXRpb24vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1wYWdpbmF0aW9uL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDL0ssT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7Ozs7Ozs7Ozs7QUFPakgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQWtEN0QsWUFBb0IsY0FBaUM7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUE3QzVDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3hCLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQzdCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIs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RyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUV5QixnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSSxFQUFFO3NCQUFsQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLFNBQVM7Z0JBR21CLFlBQVk7c0JBQTdELGVBQWU7dUJBQUMsK0JBQStCO2dCQUVDLG1CQUFtQjtzQkFBbkUsZUFBZTt1QkFBQyw4QkFBOEI7Z0JBRXRDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUdFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UvcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0aW9uLWxpc3Rib3gtbGFiZWwvcGFnaW5hdGlvbi1saXN0Ym94LWxhYmVsLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHtcblxuICBASW5wdXQoKSBoYXNTZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcbiAgQElucHV0KCkgaGFzUHJldmlvdXM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNOZXh0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaGFzRmlyc3Q6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBoYXNMYXN0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1ByZXZpb3VzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd05leHQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Rmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0xhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHJldmlvdXNUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5leHRUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpcnN0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBsYXN0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBoYXNTZWxlY3RJdGVtc1BlclBhZ2U6IHN0cmluZyB8IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcblxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3Nlc0NvbnRhaW5lcjogYW55O1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBpZDogYW55O1xuXG4gIEBEZXN5Q29udGVudENoaWxkKClcbiAgQENvbnRlbnRDaGlsZHJlbihQYWdpbmF0aW9uTGlzdGJveExhYmVsQ29tcG9uZW50KSBsaXN0Ym94TGFiZWw6IFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihQYWdpbmF0aW9uSXRlbVBlclBhZ2VDb21wb25lbnQpIGxpc3Rib3hJdGVtc1BlclBhZ2U6IFF1ZXJ5TGlzdDxQYWdpbmF0aW9uSXRlbVBlclBhZ2VDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlID0gMTsgLy8gPT0gY3VycmVudFBhZ2VpbmRleCArIDFcbiAgQE91dHB1dCgpIGN1cnJlbnRQYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cblxuICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcbiAgQE91dHB1dCgpIGl0ZW1zUGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIG5QYWdlczogbnVtYmVyO1xuICBpdGVtczogUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50W107XG4gIHZhbHVlOiBudW1iZXI7XG4gIGl0ZW1zUGVyUGFnZUxpc3Q6IFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudFtdO1xuICB2YWx1ZVBlclBhZ2U6IG51bWJlcjtcbiAgblBhZ2VzSGlzdG9yeSA9IDA7XG5cbiAgZGVmYXVsdFRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBwcmV2aW91c0ljb24gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgY2xhc3M9XCJzZWxmLWNlbnRlciBoLTIuNSB3LTIuNSBtci0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48cGF0aCBkPVwiTTU0Ljg3IDcxLjc3YTIuNSAyLjUgMCAwMTAtMy41NEwxMDYgMTcuMDdBMTAgMTAgMCAxMDkxLjg5IDIuOTNMMzUuNDMgNTkuMzlhMTUgMTUgMCAwMDAgMjEuMjJsNTYuNDYgNTYuNDZBMTAgMTAgMCAxMDEwNiAxMjIuOTN6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+PC9zdmc+JztcbiAgcmVhZG9ubHkgbmV4dEljb24gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1sLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxwYXRoIGQ9XCJNMzQgMTM3LjA3YTEwIDEwIDAgMDEwLTE0LjE0bDUxLjEzLTUxLjE2YTIuNSAyLjUgMCAwMDAtMy41NEwzNCAxNy4wN0ExMCAxMCAwIDAxNDguMTEgMi45M2w1Ni40NiA1Ni40NmExNSAxNSAwIDAxMCAyMS4yMmwtNTYuNDYgNTYuNDZhMTAgMTAgMCAwMS0xNC4xMSAwelwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPjwvc3ZnPic7XG4gIHJlYWRvbmx5IGZpcnN0SWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1yLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxnPjxwYXRoIGQ9XCJNMTAuNDIsMTJhMi42NCwyLjY0LDAsMCwxLC43Ny0xLjg4TDIwLjczLjU4YTEuNzcsMS43NywwLDAsMSwyLjUsMi41bC04Ljc0LDguNzRhLjI3LjI3LDAsMCwwLDAsLjM2bDguNzQsOC43NGExLjc3LDEuNzcsMCwwLDEtMi41LDIuNWwtOS41NC05LjU0QTIuNjQsMi42NCwwLDAsMSwxMC40MiwxMlpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjxwYXRoIGQ9XCJNLjI1LDEyQTIuNjUsMi42NSwwLDAsMSwxLDEwLjEyTDEwLjU3LjU4YTEuNzcsMS43NywwLDAsMSwyLjUsMi41TDQuMzMsMTEuODJhLjI1LjI1LDAsMCwwLDAsLjM2bDguNzQsOC43NGExLjc3LDEuNzcsMCwwLDEtMi41LDIuNUwxLDEzLjg4QTIuNjUsMi42NSwwLDAsMSwuMjUsMTJaXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiPjwvcGF0aD48L2c+PC9zdmc+JztcbiAgcmVhZG9ubHkgbGFzdEljb24gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgY2xhc3M9XCJzZWxmLWNlbnRlciBoLTIuNSB3LTIuNSBtbC0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48Zz48cGF0aCBkPVwiTTEzLjU4LDEyYTIuNjQsMi42NCwwLDAsMS0uNzcsMS44OEwzLjI3LDIzLjQyYTEuNzcsMS43NywwLDAsMS0yLjUtMi41bDguNzQtOC43NGEuMjcuMjcsMCwwLDAsMC0uMzZMLjc3LDMuMDhBMS43NywxLjc3LDAsMCwxLDMuMjcuNThsOS41NCw5LjU0QTIuNjQsMi42NCwwLDAsMSwxMy41OCwxMlpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjxwYXRoIGQ9XCJNMjMuNzUsMTJBMi42NSwyLjY1LDAsMCwxLDIzLDEzLjg4bC05LjU0LDkuNTRhMS43NywxLjc3LDAsMCwxLTIuNS0yLjVsOC43NC04Ljc0YS4yNS4yNSwwLDAsMCwwLS4zNkwxMC45MywzLjA4YTEuNzcsMS43NywwLDAsMSwyLjUtMi41TDIzLDEwLjEyQTIuNjUsMi42NSwwLDAsMSwyMy43NSwxMlpcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPjwvZz48L3N2Zz4nO1xuICByZWFkb25seSBwcmVmaXggPSAnPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UMOhZ2luYSZuYnNwOzwvc3Bhbj4nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA9PT0gbnVsbCB8fCB0aGlzLmN1cnJlbnRQYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrQ2hhbmdlcygpO1xuICAgIHRoaXMuY2xhc3Nlc0NvbnRhaW5lciA9IHRoaXMuY2xhc3Nlc0NvbnRhaW5lciA/IHRoaXMuY2xhc3Nlc0NvbnRhaW5lciArPSAnIGxnOmZsZXggbGc6ZmxleC13cmFwIGxnOml0ZW1zLWNlbnRlciBsZzpnYXAtYmFzZScgOiAnbGc6ZmxleCBsZzpmbGV4LXdyYXAgbGc6aXRlbXMtY2VudGVyIGxnOmdhcC1iYXNlJ1xuICAgIHRoaXMuaWQgPSB0aGlzLmlkID8gdGhpcy5pZCA6IG51bGxcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0Ym94SXRlbXNQZXJQYWdlKSB7XG4gICAgICB0aGlzLnNldHVwSXRlbXNQZXJQYWdlKCk7XG4gICAgICB0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldHVwSXRlbXNQZXJQYWdlKCk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLm5QYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMgLyB0aGlzLml0ZW1zUGVyUGFnZSk7XG5cbiAgICBpZiAoIXRoaXMuY3VycmVudFBhZ2UgfHwgdGhpcy5jdXJyZW50UGFnZSA8IDEgfHwgdGhpcy5jdXJyZW50UGFnZSA+IHRoaXMublBhZ2VzKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmZpcnN0VGV4dCkge1xuICAgICAgdGhpcy5maXJzdFRleHQgPSAnUHJpbWVyYSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcmV2aW91c1RleHQpIHtcbiAgICAgIHRoaXMucHJldmlvdXNUZXh0ID0gJ0FudGVyaW9yJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLm5leHRUZXh0KSB7XG4gICAgICB0aGlzLm5leHRUZXh0ID0gJ1NpZ3VpZW50ZSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5sYXN0VGV4dCkge1xuICAgICAgdGhpcy5sYXN0VGV4dCA9ICfDmmx0aW1hJztcbiAgICB9XG4gICAgdGhpcy5idWlsZFBhZ2VzKCk7XG4gIH1cblxuICBnZXRTdWZmaXgocGFnZTogbnVtYmVyLCBpc051bWJlciA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGFnZSA+PSAwICYmIHBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSA8IHRoaXMudG90YWxJdGVtcyA/XG4gICAgICAoaXNOdW1iZXIgPyBgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+OiZuYnNwOyBjb24gbG9zIHJlc3VsdGFkb3MgZGVsICR7cGFnZSAqIHRoaXMuaXRlbXNQZXJQYWdlICsgMX0gYWwgJHt0aGlzLmdldExhc3RJdGVtTnVtYmVyKHBhZ2UpfTwvc3Bhbj5gIDogYDxzcGFuIGNsYXNzPVwic3Itb25seVwiPjombmJzcDtQw6FnaW5hICR7cGFnZSArIDF9IGNvbiBsb3MgcmVzdWx0YWRvcyBkZWwgJHtwYWdlICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxfSBhbCAke3RoaXMuZ2V0TGFzdEl0ZW1OdW1iZXIocGFnZSl9PC9zcGFuPmApXG4gICAgICA6ICcnO1xuICB9XG5cbiAgZ2V0TGFzdEl0ZW1OdW1iZXIocGFnZUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbigocGFnZUluZGV4ICsgMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSwgdGhpcy50b3RhbEl0ZW1zKTtcbiAgfVxuXG4gIGJ1aWxkUGFnZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMublBhZ2VzSGlzdG9yeSAhPSB0aGlzLm5QYWdlcykge1xuICAgICAgdGhpcy5uUGFnZXNIaXN0b3J5ID0gdGhpcy5uUGFnZXNcbiAgICAgIGNvbnN0IGl0ZW1MaXN0ID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMublBhZ2VzOyBpKyspIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHtcbiAgICAgICAgICB2YWx1ZTogaSArIDEsXG4gICAgICAgICAgdGV4dDogaSArIDEsXG4gICAgICAgICAgc2VsZWN0ZWQ6ICgoaSArIDEpID09PSB0aGlzLmN1cnJlbnRQYWdlKVxuICAgICAgICB9O1xuICAgICAgICBpdGVtTGlzdC5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY3VycmVudFBhZ2VcbiAgICAgIHRoaXMuaXRlbXMgPSBpdGVtTGlzdDtcbiAgICB9XG4gIH1cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6ICdwYWdpbmF0aW9uLWl0ZW0nO1xuICB9XG5cbiAgZ2V0QnV0dG9uSWQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRQcmVmaXgoKSArICctJyArICsraW5kZXg7XG4gIH1cblxuICBjaGFuZ2VQYWdlKGN1cnJlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGhhc1BhZ2VDaGFuZ2UgPSBjdXJyZW50ICE9PSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjdXJyZW50O1xuICAgIGlmIChoYXNQYWdlQ2hhbmdlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbaV07XG4gICAgICBpdGVtLnNlbGVjdGVkID0gKChpICsgMSkgPT09IHRoaXMuY3VycmVudFBhZ2UpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY3VycmVudFBhZ2VcbiAgICB9XG4gIH1cblxuICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmN1cnJlbnRQYWdlIC0gMSk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA8IHRoaXMublBhZ2VzKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UodGhpcy5jdXJyZW50UGFnZSArIDEpO1xuICAgIH1cbiAgfVxuXG4gIGZpcnN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKDEpO1xuICAgIH1cbiAgfVxuXG4gIGxhc3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLm5QYWdlcykge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMublBhZ2VzKTtcbiAgICB9XG4gIH1cblxuICBnZXRMaXN0Ym94TGFiZWwoKTogUGFnaW5hdGlvbkxpc3Rib3hMYWJlbENvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMubGlzdGJveExhYmVsID8gdGhpcy5saXN0Ym94TGFiZWwgOiBudWxsO1xuICB9XG5cbiAgY2hhbmdlSXRlbXNQZXJQYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGxldCBuZXdWYWx1ZSA9IGV2ZW50O1xuICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSBuZXdWYWx1ZTtcbiAgICAgIHRoaXMuY2hlY2tDaGFuZ2VzKCk7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KG5ld1ZhbHVlKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUFjdGl2ZUl0ZW1DaGFuZ2UoZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBzZXR1cEl0ZW1zUGVyUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUxpc3QgPSB0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UgJiYgdGhpcy5saXN0Ym94SXRlbXNQZXJQYWdlLmxlbmd0aCA+IDAgPyB0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UudG9BcnJheSgpIDogbnVsbDtcbiAgICBpZiAodGhpcy5pdGVtc1BlclBhZ2VMaXN0KSB7XG4gICAgICBjb25zdCBjdXJyZW50SXRlbXNQZXJQYWdlSXRlbSA9IHRoaXMuaXRlbXNQZXJQYWdlTGlzdC5maW5kKGkgPT4gaS52YWx1ZSA9PT0gdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgICAgaWYgKGN1cnJlbnRJdGVtc1BlclBhZ2VJdGVtKSB7XG4gICAgICAgIGN1cnJlbnRJdGVtc1BlclBhZ2VJdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0FjdGl2ZSA9IHRoaXMuaXRlbXNQZXJQYWdlTGlzdC5maW5kKGkgPT4gaS5zZWxlY3RlZCk7XG4gICAgICBpZiAoIWhhc0FjdGl2ZSAmJiB0aGlzLml0ZW1zUGVyUGFnZUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLml0ZW1zUGVyUGFnZUxpc3RbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU2VsZWN0XCI+XG4gIDxwIFthdHRyLmlkXT1cImlkICsgJy1sYWJlbCdcIiBjbGFzcz1cInctZnVsbCBtYi14cyB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrXCI+XG4gICAgU2VsZWNjaW9uYSBwYXJhIGNhcmdhciBkYXRvcyBhdXRvbcOhdGljYW1lbnRlXG4gIDwvcD5cbiAgPG5hdiBbY2xhc3NdPVwiWydmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xIG1iLWJhc2UgbGc6bWItMCB0ZXh0LXNtJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICBbZGVzeUFwcEFjY2Vzc2liaWxpdHldPVwidGhpc1wiPlxuICAgIDxkZXN5LWJ1dHRvbiAqbmdJZj1cInNob3dGaXJzdFwiIChjbGlja0V2ZW50KT1cImZpcnN0KClcIiBbaWRdPVwiZ2V0SWRQcmVmaXgoKSArICctZmlyc3QnXCJcbiAgICAgICAgICAgICAgICAgIFtodG1sXT1cImZpcnN0SWNvbiArIHByZWZpeCArIGZpcnN0VGV4dCArIGdldFN1ZmZpeChjdXJyZW50UGFnZSAtIDIpXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxIHx8ICFoYXNGaXJzdFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc2VzPVwiYy1idXR0b24tLXNtIGMtYnV0dG9uLS10cmFuc3BhcmVudCBtci14c1wiPjwvZGVzeS1idXR0b24+XG4gICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwic2hvd1ByZXZpb3VzXCIgKGNsaWNrRXZlbnQpPVwicHJldmlvdXMoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1wcmV2aW91cydcIlxuICAgICAgICAgICAgICAgICAgW2h0bWxdPVwicHJldmlvdXNJY29uICsgcHJlZml4ICsgcHJldmlvdXNUZXh0ICsgZ2V0U3VmZml4KGN1cnJlbnRQYWdlIC0gMilcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDEgfHwgIWhhc1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIHBsLXNtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3ctZnVsbCBsZzp3LWF1dG8nOiBzaG93Rmlyc3QgfHwgc2hvd0xhc3R9XCI+XG4gICAgICA8cCAqbmdJZj1cInNob3dGaXJzdCB8fCBzaG93TGFzdFwiIGNsYXNzPVwibGc6aGlkZGVuIG1yLXhzIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmtcIj5Qw6FnaW5hIGFjdHVhbDo8L3A+XG4gICAgICAgICAgPGRlc3ktc2VsZWN0IFtjbGFzc2VzXT1cIidjLXNlbGVjdC0tc20gYy1zZWxlY3QtLXRyYW5zcGFyZW50J1wiIFxuICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwQ2xhc3Nlc109XCInLW10LXNtIG1iLTAgbXIteHMnXCIgXG4gICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICctaXRlbXMtbGlzdGJveC0nXCJcbiAgICAgICAgICAgICAgICAgW25hbWVdPVwiaWQgKyAnaXRlbXMtbGlzdGJveC0nXCJcbiAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cImlkICsgJy1sYWJlbCdcIlxuICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUFjdGl2ZUl0ZW1DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgIDxkZXN5LWxhYmVsIFtjbGFzc2VzXT1cIidzci1vbmx5J1wiPlxuICAgICAgICAgICAgICAgIFNlbGVjY2lvbmEgdW5hIHDDoWdpbmFcbiAgICAgICAgICAgICA8L2Rlc3ktbGFiZWw+XG4gICAgICAgICAgPC9kZXN5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGVzeS1idXR0b24gKm5nSWY9XCJzaG93TmV4dFwiIChjbGlja0V2ZW50KT1cIm5leHQoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1uZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmVmaXggKyBuZXh0VGV4dCArIGdldFN1ZmZpeChjdXJyZW50UGFnZSkgKyBuZXh0SWNvblwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gblBhZ2VzIHx8ICFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICA8ZGVzeS1idXR0b24gKm5nSWY9XCJzaG93TGFzdFwiIChjbGlja0V2ZW50KT1cImxhc3QoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1sYXN0J1wiXG4gICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmVmaXggKyBsYXN0VGV4dCArIGdldFN1ZmZpeChjdXJyZW50UGFnZSkgKyBsYXN0SWNvblwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gblBhZ2VzIHx8ICFoYXNMYXN0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgPC9uYXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzU2VsZWN0XCI+XG4gIDxuYXYgW2NsYXNzXT1cIlsnZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGZsZXgtMSBtYi1iYXNlIGxnOm1iLTAgdGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cbiAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcFwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpXCI+XG4gICAgICAgIDxkZXN5LWJ1dHRvbiAqbmdJZj1cIml0ZW0uYWN0aXZlXCIgW2lkXT1cImdldEJ1dHRvbklkKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCInPHN0cm9uZz4nICsgcHJlZml4ICsgKGkgKyAxKSArIGdldFN1ZmZpeChpLHRydWUpICsgJzwvc3Ryb25nPidcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tcHJpbWFyeSBjLWJ1dHRvbi0tZGlzYWJsZWQgbWItc20gbXItc21cIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCIgYXJpYUN1cnJlbnQ9XCJwYWdlXCIgdGFiaW5kZXg9XCItMVwiPjwvZGVzeS1idXR0b24+XG4gICAgICAgIDxkZXN5LWJ1dHRvbiAqbmdJZj1cIiFpdGVtLmFjdGl2ZVwiIFtpZF09XCJnZXRCdXR0b25JZChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwicHJlZml4ICsgKGkgKyAxKSArIGdldFN1ZmZpeChpLHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tFdmVudCk9XCJjaGFuZ2VQYWdlKGkgKyAxKVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cIm1iLXNtIG1yLXNtXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9uYXY+XG48L25nLWNvbnRhaW5lcj5cbiAgXG48ZGl2ICpuZ0lmPVwiaGFzU2VsZWN0SXRlbXNQZXJQYWdlXCIgY2xhc3M9XCJibG9jayByZWxhdGl2ZSAtdG9wLXhzIGxnOm1sLWF1dG8gdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFya1wiPlxuICAgIDxkZXN5LXNlbGVjdCBbY2xhc3Nlc109XCInYy1zZWxlY3QtLXNtIGMtc2VsZWN0LS10cmFuc3BhcmVudCdcIiBcbiAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cENsYXNzZXNdPVwiJ2ZsZXggZmxleC13cmFwIHBsYWNlLWl0ZW1zLWJhc2VsaW5lIGdhcC14cyAtbXQtc20gbWItMCBtci14cydcIiBcbiAgICAgICAgICAgICAgICAgW2lkXT1cIidpdGVtcy1saXN0Ym94LScgKyBnZXRJZFByZWZpeCgpXCJcbiAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ2l0ZW1zLWxpc3Rib3gtJyArIGdldElkUHJlZml4KClcIlxuICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1BlclBhZ2VMaXN0XCJcbiAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVQZXJQYWdlXCJcbiAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlSXRlbXNQZXJQYWdlKCRldmVudClcIj5cbiAgICAgIDxkZXN5LWxhYmVsIFtjbGFzc2VzXT1cImxpc3Rib3hMYWJlbCAmJiBsaXN0Ym94TGFiZWwuY2xhc3NlcyA/IGxpc3Rib3hMYWJlbC5jbGFzc2VzIDogJ2lubGluZS1ibG9jayBmbGV4IGFsaWduLW1pZGRsZSBtYi1bMF0nXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0Ym94TGFiZWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGxpc3Rib3hMYWJlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxpc3Rib3hMYWJlbFwiPlxuICAgICAgICAgIEl0ZW1zIHBvciBww6FnaW5hXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kZXN5LWxhYmVsPlxuICAgPC9kZXN5LXNlbGVjdD5cbjwvZGl2PlxuXG5cbjxwIFthdHRyLmlkXT1cImlkUHJlZml4ICsgJy1zdGF0dXMnXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzPVwiYmxvY2sgcmVsYXRpdmUgLXRvcC14cyBsZzptbC1hdXRvIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmtcIiAqbmdJZj1cInRvdGFsSXRlbXMgJiYgaXRlbXNQZXJQYWdlXCI+XG4gIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlBvc2ljacOzbiBkZSBwYWdpbmFjacOzbjogPC9zcGFuPnt7KGN1cnJlbnRQYWdlIC0gMSkgKiBpdGVtc1BlclBhZ2UgKyAxfX0gLSB7e2dldExhc3RJdGVtTnVtYmVyKGN1cnJlbnRQYWdlIC0gMSl9fSBkZSB7e3RvdGFsSXRlbXN9fVxuPC9wPlxuIl19
@@ -4171,7 +4171,7 @@ class SelectComponent extends FormFieldComponent {
4171
4171
  useExisting: forwardRef(() => SelectComponent),
4172
4172
  multi: true
4173
4173
  }
4174
- ], queries: [{ propertyName: "itemComponents", predicate: SelectItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: MakeHtmlListPipe, name: "makeHtmlList" }] }); }
4174
+ ], queries: [{ propertyName: "itemComponents", predicate: SelectItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [disabled]=\"disabled\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: MakeHtmlListPipe, name: "makeHtmlList" }] }); }
4175
4175
  }
4176
4176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectComponent, decorators: [{
4177
4177
  type: Component,
@@ -4181,7 +4181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4181
4181
  useExisting: forwardRef(() => SelectComponent),
4182
4182
  multi: true
4183
4183
  }
4184
- ], template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>" }]
4184
+ ], template: "<ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\"\n [text]=\"labelText\"\n [for]=\"id\"></desy-label>\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n</ng-container>\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n<select [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\"\n (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [disabled]=\"disabled\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\"\n [label]=\"item?.label\"\n [attr.disabled]=\"item.disabled ? true : null\"\n [desyAppAccessibility]=\"item\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [desyAppAccessibility]=\"subItem\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\"\n [value]=\"item.value\"\n [disabled]=\"item.disabled ? true : null\"\n [selected]=\"isItemSelected(item)\"\n [desyAppAccessibility]=\"item\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n</select>" }]
4185
4185
  }], propDecorators: { name: [{
4186
4186
  type: Input
4187
4187
  }], items: [{