@fundamental-ngx/platform 0.48.0-rc.11 → 0.48.0-rc.13
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.
- package/esm2022/button/button.component.mjs +3 -3
- package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
- package/esm2022/list/base-list-item.mjs +2 -2
- package/esm2022/list/display-list-item/display-list-item.component.mjs +3 -3
- package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +3 -3
- package/esm2022/list/list-group-footer.component.mjs +3 -3
- package/esm2022/list/list-group-header.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +5 -5
- package/esm2022/list/object-list-item/object-list-item.component.mjs +3 -3
- package/esm2022/list/standard-list-item/standard-list-item.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +3 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +21 -21
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +2 -0
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.48.0-rc.13.tgz +0 -0
- package/package.json +4 -4
- package/fundamental-ngx-platform-v0.48.0-rc.11.tgz +0 -0
|
@@ -16,7 +16,7 @@ import * as i0 from "@angular/core";
|
|
|
16
16
|
import * as i1 from "@angular/forms";
|
|
17
17
|
export class StandardListItemComponent extends BaseListItem {
|
|
18
18
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StandardListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: StandardListItemComponent, isStandalone: true, selector: "fdp-standard-list-item", host: { attributes: { "role": "none" } }, providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], usesInheritance: true, ngImport: i0, template: "<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </li>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </li>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "indicationColor", "secondaryIndication", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: StandardListItemComponent, isStandalone: true, selector: "fdp-standard-list-item", host: { attributes: { "role": "none" } }, providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], usesInheritance: true, ngImport: i0, template: "<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </div>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </div>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: ListSecondaryDirective, selector: "[fd-list-secondary], [fdListSecondary]", inputs: ["type"] }, { kind: "directive", type: ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "indicationColor", "secondaryIndication", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
20
20
|
}
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StandardListItemComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
@@ -41,6 +41,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
41
41
|
ObjectStatusComponent,
|
|
42
42
|
FdTranslatePipe,
|
|
43
43
|
AsyncPipe
|
|
44
|
-
], template: "<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </li>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </li>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n" }]
|
|
44
|
+
], template: "<!-- list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </a>\n </div>\n}\n<!-- list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n <div\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n <div\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </div>\n}\n<ng-template #commonTemplate>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n @if (title) {\n <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n }\n @if (secondary !== null && secondary !== undefined) {\n <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n {{ secondary }}\n </span>\n }\n @if (counter !== null && counter !== undefined) {\n <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n {{ counter }}\n </span>\n }\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n @if (icon.glyph) {\n <fd-icon\n class=\"fd-list__icon\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n }\n @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n </div>\n <div class=\"fd-list__content\">\n @if (title) {\n <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n }\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n @if (description) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-template>\n }\n @if (secondary) {\n <ng-template\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-template>\n }\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n <div fd-form-item class=\"fd-list__form-item\">\n @if (selectionMode === 'multi') {\n <fd-checkbox\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n }\n @if (selectionMode === 'single') {\n <fd-radio-button\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n }\n </div>\n }\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n @if (listType === 'detail') {\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n }\n</ng-template>\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n </span>\n }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n @if (!inverted) {\n <span\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n } @else {\n <span\n class=\"fd-list__byline-right\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n </span>\n }\n</ng-template>\n" }]
|
|
45
45
|
}] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGlzdC9zdGFuZGFyZC1saXN0LWl0ZW0vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGlzdC9zdGFuZGFyZC1saXN0LWl0ZW0vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNyQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQWlDakQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7OEdBQTlDLHlCQUF5QjtrR0FBekIseUJBQXlCLCtHQTVCdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsaURDekJwRyxpdFhBcVRBLDRDRHBSUSxpQkFBaUIsOE1BQ2pCLGdCQUFnQixvSkFDaEIsaUJBQWlCLG9JQUNqQixVQUFVLDROQUNWLGtCQUFrQiw2RkFDbEIsYUFBYSwwSUFDYixlQUFlLDJXQUVmLHNCQUFzQixxR0FDdEIsc0JBQXNCLG1GQUN0QixpQkFBaUIsK0ZBQ2pCLGlCQUFpQiwrVUFDakIsV0FBVywrVkFDWCxvQkFBb0Isb09BQ3BCLGVBQWUsd0hBQ2YscUJBQXFCLGlPQUNyQixlQUFlLCtDQUNmLFNBQVM7OzJGQUdKLHlCQUF5QjtrQkEvQnJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBRXZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxtQkFDL0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFFBQ1Y7d0JBQ0YsSUFBSSxFQUFFLE1BQU07cUJBQ2YsV0FDUTt3QkFDTCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsU0FBUztxQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2F2YXRhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7XG4gICAgTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgTGlzdExpbmtEaXJlY3RpdmUsXG4gICAgTGlzdFNlY29uZGFyeURpcmVjdGl2ZSxcbiAgICBMaXN0VGh1bWJuYWlsRGlyZWN0aXZlLFxuICAgIExpc3RUaXRsZURpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGlzdCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9vYmplY3Qtc3RhdHVzJztcbmltcG9ydCB7IEJhc2VMaXN0SXRlbSB9IGZyb20gJy4uL2Jhc2UtbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc3RhbmRhcmQtbGlzdC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEJhc2VMaXN0SXRlbSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCkgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ25vbmUnXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBMaXN0TGlua0RpcmVjdGl2ZSxcbiAgICAgICAgUm91dGVyTGluayxcbiAgICAgICAgTGlzdFRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIExpc3RTZWNvbmRhcnlEaXJlY3RpdmUsXG4gICAgICAgIExpc3RUaHVtYm5haWxEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1JdGVtQ29tcG9uZW50LFxuICAgICAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIE9iamVjdFN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBBc3luY1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlTGlzdEl0ZW0ge31cbiIsIjwhLS0gIGxpc3QgaXRlbSBuYXZpZ2F0aW9uIHdpdGggQXJyb3ctLT5cbkBpZiAobmF2aWdhdGlvbkluZGljYXRvciB8fCAobmF2aWdhdGVkICYmICEobm9EYXRhVGV4dCAhPT0gbnVsbCAmJiBub0RhdGFUZXh0ICE9PSB1bmRlZmluZWQpKSkge1xuICAgIDxsaVxuICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgW3VucmVhZF09XCJ1blJlYWRcIlxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgKGtleXVwKT1cIl9vbktleVVwKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tLWxpbmtcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJhcmlhTGV2ZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cImFyaWFQb3NpbnNldFwiXG4gICAgICAgIFthcmlhUm9sZV09XCJfbGlzdEl0ZW1Sb2xlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfc2VsZWN0ZWRBdHRyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cImFyaWFTZXRTaXplIHwgYXN5bmNcIlxuICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdGlvblRlbXBsYXRlXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxhXG4gICAgICAgICAgICAjbGlua0VsZW1lbnRcbiAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibGlua1wiXG4gICAgICAgICAgICBbbmF2aWdhdGlvbkluZGljYXRvcl09XCJuYXZpZ2F0aW9uSW5kaWNhdG9yXCJcbiAgICAgICAgICAgIFtuYXZpZ2F0ZWRdPVwibmF2aWdhdGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9oYXNCeUxpbmUgPyBieUxpbmVUZW1wbGF0ZSA6IGNvbW1vblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG59XG48IS0tICBsaXN0IGl0ZW0gd2l0aG91dCBuYXZpZ2F0aW9uIGFuZCB1c2VkIGZvciBzaW1wbGUgbGlzdCBkaXNwbGF5LS0+XG5AaWYgKCFuYXZpZ2F0aW9uSW5kaWNhdG9yICYmICFuYXZpZ2F0ZWQgJiYgIShub0RhdGFUZXh0ICE9PSBudWxsICYmIG5vRGF0YVRleHQgIT09IHVuZGVmaW5lZCkpIHtcbiAgICA8bGlcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIFt1bnJlYWRdPVwidW5SZWFkXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChrZXl1cCk9XCJfb25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXJpYVJvbGVdPVwiX2xpc3RJdGVtUm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQXR0clwiXG4gICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJhcmlhU2V0U2l6ZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfaGFzQnlMaW5lID8gYnlMaW5lVGVtcGxhdGUgOiBjb21tb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbn1cbkBpZiAobm9EYXRhVGV4dCAhPT0gbnVsbCAmJiBub0RhdGFUZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICA8bGlcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICAgIFt0YWJpbmRleF09XCIwXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImFyaWFMZXZlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiYXJpYVBvc2luc2V0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cImFyaWFTZXRTaXplIHwgYXN5bmNcIlxuICAgID5cbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vRGF0YVRleHRcIiBbYXR0ci50aXRsZV09XCJub0RhdGFUZXh0XCI+e3sgbm9EYXRhVGV4dCB9fTwvc3Bhbj5cbiAgICA8L2xpPlxufVxuPG5nLXRlbXBsYXRlICNjb21tb25UZW1wbGF0ZT5cbiAgICBAaWYgKGljb24uZ2x5cGgpIHtcbiAgICAgICAgPGZkLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9faWNvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICBbZm9udF09XCJpY29uLmZvbnRcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpY29uLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pY29uPlxuICAgIH1cbiAgICBAaWYgKGF2YXRhci5sYWJlbCB8fCBhdmF0YXIuaW1hZ2UgfHwgYXZhdGFyLmdseXBoIHx8IGF2YXRhci56b29tR2x5cGgpIHtcbiAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgW3NpemVdPVwiYXZhdGFyLnNpemVcIlxuICAgICAgICAgICAgW2dseXBoXT1cImF2YXRhci5nbHlwaFwiXG4gICAgICAgICAgICBbem9vbUdseXBoXT1cImF2YXRhci56b29tR2x5cGhcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImF2YXRhci5sYWJlbFwiXG4gICAgICAgICAgICBbY2lyY2xlXT1cImF2YXRhci5jaXJjbGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF2YXRhci5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbdGlsZV09XCJhdmF0YXIudGlsZVwiXG4gICAgICAgICAgICBbY29sb3JBY2NlbnRdPVwiYXZhdGFyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJhdmF0YXIuaW1hZ2VcIlxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cImF2YXRhci50cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbcmFuZG9tXT1cImF2YXRhci5yYW5kb21cIlxuICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1saXN0X19pY29uICcgKyBhdmF0YXIuY2xhc3NcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxsZWRieV09XCJhdmF0YXIuYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgICAgICAgW2NvbnRhaW5dPVwiYXZhdGFyLmNvbnRhaW5cIlxuICAgICAgICAgICAgW2JvcmRlcl09XCJhdmF0YXIuYm9yZGVyXCJcbiAgICAgICAgICAgIFthbHRlckljb25dPVwiYXZhdGFyLmFsdGVySWNvblwiXG4gICAgICAgICAgICBbYmFja3VwSW1hZ2VdPVwiYXZhdGFyLmJhY2t1cEltYWdlXCJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwiYXZhdGFyLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbYXR0ci5hbHRdPVwiYXZhdGFyLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgIH1cbiAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGlmIChzZWNvbmRhcnkgIT09IG51bGwgJiYgc2Vjb25kYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgPHNwYW4gZmQtbGlzdC1zZWNvbmRhcnkgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnlcIiBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIiBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiPlxuICAgICAgICAgICAge3sgc2Vjb25kYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGlmIChjb3VudGVyICE9PSBudWxsICYmIGNvdW50ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeSBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tY291bnRlclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiY291bnRlclwiIFthdHRyLnRpdGxlXT1cImNvdW50ZXJcIj5cbiAgICAgICAgICAgIHt7IGNvdW50ZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2J5TGluZVRlbXBsYXRlPlxuICAgIDxkaXYgZmRMaXN0VGh1bWJuYWlsPlxuICAgICAgICBAaWYgKGljb24uZ2x5cGgpIHtcbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICAgICAgW2ZvbnRdPVwiaWNvbi5mb250XCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImljb24uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYXZhdGFyLmxhYmVsIHx8IGF2YXRhci5pbWFnZSB8fCBhdmF0YXIuZ2x5cGggfHwgYXZhdGFyLnpvb21HbHlwaCkge1xuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgIFtzaXplXT1cImF2YXRhci5zaXplXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyLmdseXBoXCJcbiAgICAgICAgICAgICAgICBbem9vbUdseXBoXT1cImF2YXRhci56b29tR2x5cGhcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhdmF0YXIubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwiYXZhdGFyLmNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF2YXRhci5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW3RpbGVdPVwiYXZhdGFyLnRpbGVcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFjY2VudF09XCJhdmF0YXIuY29sb3JBY2NlbnRcIlxuICAgICAgICAgICAgICAgIFtpbWFnZV09XCJhdmF0YXIuaW1hZ2VcIlxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJhdmF0YXIudHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtyYW5kb21dPVwiYXZhdGFyLnJhbmRvbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImF2YXRhci5jbGFzc1wiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkYnldPVwiYXZhdGFyLmFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgICAgICAgICBbY29udGFpbl09XCJhdmF0YXIuY29udGFpblwiXG4gICAgICAgICAgICAgICAgW2JvcmRlcl09XCJhdmF0YXIuYm9yZGVyXCJcbiAgICAgICAgICAgICAgICBbYWx0ZXJJY29uXT1cImF2YXRhci5hbHRlckljb25cIlxuICAgICAgICAgICAgICAgIFtiYWNrdXBJbWFnZV09XCJhdmF0YXIuYmFja3VwSW1hZ2VcIlxuICAgICAgICAgICAgICAgIFtjbGlja2FibGVdPVwiYXZhdGFyLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYWx0XT1cImF2YXRhci5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZkLWxpc3RfX2NvbnRlbnRcIj5cbiAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGVcIiBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWxpc3RfX2J5bGluZSBmZC1saXN0X19ieWxpbmUtLTItY29sXCI+XG4gICAgICAgICAgICBAaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9pc0FkdmFuY2VkVGV4dChkZXNjcmlwdGlvbikgPyBhZHZhbmNlZERlc2NyaXB0aW9uIDogc2ltcGxlRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRlc2NyaXB0aW9uIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzZWNvbmRhcnkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2lzQWR2YW5jZWRUZXh0KHNlY29uZGFyeSkgPyBhZHZhbmNlZFNlY29uZGFyeSA6IHNpbXBsZVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2Vjb25kYXJ5IH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3NlbGVjdGlvblRlbXBsYXRlPlxuICAgIEBpZiAoKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aScgfHwgc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpICYmICFyb3dTZWxlY3Rpb24pIHtcbiAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gY2xhc3M9XCJmZC1saXN0X19mb3JtLWl0ZW1cIj5cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJfc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9vbkNoZWNrYm94TW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYWN0aW9uc1RlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIiNzZWNvbmRhcnlBY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChsaXN0VHlwZSA9PT0gJ2RldGFpbCcpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAjZWRpdFxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ2RldGFpbC0nICsgaWRcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImVkaXRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdlZGl0JylcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRldGFpbHNBY3Rpb25BcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ3BsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbS5kZXRhaWxzQWN0aW9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIl9vbktleUJ1dHRvbkNsaWNrKCRldmVudCwgJ2VkaXQnKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnZGVsZXRlJykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICNkZWxldGVcbiAgICAgICAgICAgIFthdHRyLmlkXT1cIidkZWxldGUtJyArIGlkXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdkZWxldGUnKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJfb25LZXlCdXR0b25DbGljaygkZXZlbnQsICdkZWxldGUnKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVEZXNjcmlwdGlvbiBsZXQtZGVzY3JpcHRpb24+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtbGVmdFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFthdHRyLm5vd3JhcF09XCJ0aXRsZVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgZGVzY3JpcHRpb24gfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhZHZhbmNlZERlc2NyaXB0aW9uIGxldC1kZXNjcmlwdGlvbj5cbiAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1sZWZ0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvbi5hcmlhTGFiZWwgPz8gZGVzY3JpcHRpb24udGV4dFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImRlc2NyaXB0aW9uLnRpdGxlID8/IGRlc2NyaXB0aW9uLnRleHRcIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCJcbiAgICA+XG4gICAgICAgIHt7IGRlc2NyaXB0aW9uLnRleHQgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVTZWNvbmRhcnkgbGV0LXNlY29uZGFyeT5cbiAgICBAaWYgKCFpbnZlcnRlZCkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY29uZGFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1yaWdodFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmRwLW9iamVjdC1zdGF0dXMgW3N0YXR1c109XCJzdGF0dXNUeXBlXCIgW2ludmVydGVkXT1cImludmVydGVkXCIgW2xhYmVsXT1cInNlY29uZGFyeVwiPjwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhZHZhbmNlZFNlY29uZGFyeSBsZXQtc2Vjb25kYXJ5PlxuICAgIEBpZiAoIWludmVydGVkKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeS5hcmlhTGFiZWwgPz8gc2Vjb25kYXJ5LnRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeS50aXRsZSA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY29uZGFyeS50ZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5LmFyaWFMYWJlbCA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnkudGl0bGUgPz8gc2Vjb25kYXJ5LnRleHRcIlxuICAgICAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmRwLW9iamVjdC1zdGF0dXMgW3N0YXR1c109XCJzdGF0dXNUeXBlXCIgW2ludmVydGVkXT1cImludmVydGVkXCIgW2xhYmVsXT1cInNlY29uZGFyeS50ZXh0XCI+PC9mZHAtb2JqZWN0LXN0YXR1cz5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGlzdC9zdGFuZGFyZC1saXN0LWl0ZW0vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGlzdC9zdGFuZGFyZC1saXN0LWl0ZW0vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNyQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQWlDakQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7OEdBQTlDLHlCQUF5QjtrR0FBekIseUJBQXlCLCtHQTVCdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsaURDekJwRyx1dFhBcVRBLDRDRHBSUSxpQkFBaUIsOE1BQ2pCLGdCQUFnQixvSkFDaEIsaUJBQWlCLG9JQUNqQixVQUFVLDROQUNWLGtCQUFrQiw2RkFDbEIsYUFBYSwwSUFDYixlQUFlLDJXQUVmLHNCQUFzQixxR0FDdEIsc0JBQXNCLG1GQUN0QixpQkFBaUIsK0ZBQ2pCLGlCQUFpQiwrVUFDakIsV0FBVywrVkFDWCxvQkFBb0Isb09BQ3BCLGVBQWUsd0hBQ2YscUJBQXFCLGlPQUNyQixlQUFlLCtDQUNmLFNBQVM7OzJGQUdKLHlCQUF5QjtrQkEvQnJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBRXZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxtQkFDL0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFFBQ1Y7d0JBQ0YsSUFBSSxFQUFFLE1BQU07cUJBQ2YsV0FDUTt3QkFDTCxpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsU0FBUztxQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2F2YXRhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IEZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7XG4gICAgTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgTGlzdExpbmtEaXJlY3RpdmUsXG4gICAgTGlzdFNlY29uZGFyeURpcmVjdGl2ZSxcbiAgICBMaXN0VGh1bWJuYWlsRGlyZWN0aXZlLFxuICAgIExpc3RUaXRsZURpcmVjdGl2ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbGlzdCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgT2JqZWN0U3RhdHVzQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9vYmplY3Qtc3RhdHVzJztcbmltcG9ydCB7IEJhc2VMaXN0SXRlbSB9IGZyb20gJy4uL2Jhc2UtbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc3RhbmRhcmQtbGlzdC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEJhc2VMaXN0SXRlbSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCkgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ25vbmUnXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBMaXN0TGlua0RpcmVjdGl2ZSxcbiAgICAgICAgUm91dGVyTGluayxcbiAgICAgICAgTGlzdFRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIExpc3RTZWNvbmRhcnlEaXJlY3RpdmUsXG4gICAgICAgIExpc3RUaHVtYm5haWxEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1JdGVtQ29tcG9uZW50LFxuICAgICAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIE9iamVjdFN0YXR1c0NvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlLFxuICAgICAgICBBc3luY1BpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkTGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlTGlzdEl0ZW0ge31cbiIsIjwhLS0gIGxpc3QgaXRlbSBuYXZpZ2F0aW9uIHdpdGggQXJyb3ctLT5cbkBpZiAobmF2aWdhdGlvbkluZGljYXRvciB8fCAobmF2aWdhdGVkICYmICEobm9EYXRhVGV4dCAhPT0gbnVsbCAmJiBub0RhdGFUZXh0ICE9PSB1bmRlZmluZWQpKSkge1xuICAgIDxkaXZcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIFt1bnJlYWRdPVwidW5SZWFkXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJfb25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pdGVtLS1saW5rXCJcbiAgICAgICAgW2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWluYWN0aXZlXT1cImxpc3RUeXBlID09PSAnaW5hY3RpdmUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbYXJpYVJvbGVdPVwiX2xpc3RJdGVtUm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQXR0clwiXG4gICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJhcmlhU2V0U2l6ZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25UZW1wbGF0ZVwiPiA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8YVxuICAgICAgICAgICAgI2xpbmtFbGVtZW50XG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxpbmtcIlxuICAgICAgICAgICAgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwibmF2aWdhdGlvbkluZGljYXRvclwiXG4gICAgICAgICAgICBbbmF2aWdhdGVkXT1cIm5hdmlnYXRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfaGFzQnlMaW5lID8gYnlMaW5lVGVtcGxhdGUgOiBjb21tb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbn1cbjwhLS0gIGxpc3QgaXRlbSB3aXRob3V0IG5hdmlnYXRpb24gYW5kIHVzZWQgZm9yIHNpbXBsZSBsaXN0IGRpc3BsYXktLT5cbkBpZiAoIW5hdmlnYXRpb25JbmRpY2F0b3IgJiYgIW5hdmlnYXRlZCAmJiAhKG5vRGF0YVRleHQgIT09IG51bGwgJiYgbm9EYXRhVGV4dCAhPT0gdW5kZWZpbmVkKSkge1xuICAgIDxkaXZcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIFt1bnJlYWRdPVwidW5SZWFkXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChrZXl1cCk9XCJfb25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXJpYVJvbGVdPVwiX2xpc3RJdGVtUm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQXR0clwiXG4gICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJhcmlhU2V0U2l6ZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3Rpb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfaGFzQnlMaW5lID8gYnlMaW5lVGVtcGxhdGUgOiBjb21tb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG59XG5AaWYgKG5vRGF0YVRleHQgIT09IG51bGwgJiYgbm9EYXRhVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgPGRpdlxuICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIjBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwiYXJpYVNldFNpemUgfCBhc3luY1wiXG4gICAgPlxuICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwibm9EYXRhVGV4dFwiIFthdHRyLnRpdGxlXT1cIm5vRGF0YVRleHRcIj57eyBub0RhdGFUZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxufVxuPG5nLXRlbXBsYXRlICNjb21tb25UZW1wbGF0ZT5cbiAgICBAaWYgKGljb24uZ2x5cGgpIHtcbiAgICAgICAgPGZkLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9faWNvblwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICBbZm9udF09XCJpY29uLmZvbnRcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpY29uLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pY29uPlxuICAgIH1cbiAgICBAaWYgKGF2YXRhci5sYWJlbCB8fCBhdmF0YXIuaW1hZ2UgfHwgYXZhdGFyLmdseXBoIHx8IGF2YXRhci56b29tR2x5cGgpIHtcbiAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgW3NpemVdPVwiYXZhdGFyLnNpemVcIlxuICAgICAgICAgICAgW2dseXBoXT1cImF2YXRhci5nbHlwaFwiXG4gICAgICAgICAgICBbem9vbUdseXBoXT1cImF2YXRhci56b29tR2x5cGhcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImF2YXRhci5sYWJlbFwiXG4gICAgICAgICAgICBbY2lyY2xlXT1cImF2YXRhci5jaXJjbGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF2YXRhci5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbdGlsZV09XCJhdmF0YXIudGlsZVwiXG4gICAgICAgICAgICBbY29sb3JBY2NlbnRdPVwiYXZhdGFyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJhdmF0YXIuaW1hZ2VcIlxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cImF2YXRhci50cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbcmFuZG9tXT1cImF2YXRhci5yYW5kb21cIlxuICAgICAgICAgICAgW2NsYXNzXT1cIidmZC1saXN0X19pY29uICcgKyBhdmF0YXIuY2xhc3NcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxsZWRieV09XCJhdmF0YXIuYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgICAgICAgW2NvbnRhaW5dPVwiYXZhdGFyLmNvbnRhaW5cIlxuICAgICAgICAgICAgW2JvcmRlcl09XCJhdmF0YXIuYm9yZGVyXCJcbiAgICAgICAgICAgIFthbHRlckljb25dPVwiYXZhdGFyLmFsdGVySWNvblwiXG4gICAgICAgICAgICBbYmFja3VwSW1hZ2VdPVwiYXZhdGFyLmJhY2t1cEltYWdlXCJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwiYXZhdGFyLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICBbYXR0ci5hbHRdPVwiYXZhdGFyLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgIH1cbiAgICBAaWYgKHRpdGxlKSB7XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGlmIChzZWNvbmRhcnkgIT09IG51bGwgJiYgc2Vjb25kYXJ5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgPHNwYW4gZmQtbGlzdC1zZWNvbmRhcnkgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnlcIiBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIiBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiPlxuICAgICAgICAgICAge3sgc2Vjb25kYXJ5IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGlmIChjb3VudGVyICE9PSBudWxsICYmIGNvdW50ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeSBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tY291bnRlclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiY291bnRlclwiIFthdHRyLnRpdGxlXT1cImNvdW50ZXJcIj5cbiAgICAgICAgICAgIHt7IGNvdW50ZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2J5TGluZVRlbXBsYXRlPlxuICAgIDxkaXYgZmRMaXN0VGh1bWJuYWlsPlxuICAgICAgICBAaWYgKGljb24uZ2x5cGgpIHtcbiAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICAgICAgW2ZvbnRdPVwiaWNvbi5mb250XCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImljb24uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYXZhdGFyLmxhYmVsIHx8IGF2YXRhci5pbWFnZSB8fCBhdmF0YXIuZ2x5cGggfHwgYXZhdGFyLnpvb21HbHlwaCkge1xuICAgICAgICAgICAgPGZkLWF2YXRhclxuICAgICAgICAgICAgICAgIFtzaXplXT1cImF2YXRhci5zaXplXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyLmdseXBoXCJcbiAgICAgICAgICAgICAgICBbem9vbUdseXBoXT1cImF2YXRhci56b29tR2x5cGhcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhdmF0YXIubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjaXJjbGVdPVwiYXZhdGFyLmNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF2YXRhci5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW3RpbGVdPVwiYXZhdGFyLnRpbGVcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFjY2VudF09XCJhdmF0YXIuY29sb3JBY2NlbnRcIlxuICAgICAgICAgICAgICAgIFtpbWFnZV09XCJhdmF0YXIuaW1hZ2VcIlxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJhdmF0YXIudHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgIFtyYW5kb21dPVwiYXZhdGFyLnJhbmRvbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cImF2YXRhci5jbGFzc1wiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkYnldPVwiYXZhdGFyLmFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgICAgICAgICBbY29udGFpbl09XCJhdmF0YXIuY29udGFpblwiXG4gICAgICAgICAgICAgICAgW2JvcmRlcl09XCJhdmF0YXIuYm9yZGVyXCJcbiAgICAgICAgICAgICAgICBbYWx0ZXJJY29uXT1cImF2YXRhci5hbHRlckljb25cIlxuICAgICAgICAgICAgICAgIFtiYWNrdXBJbWFnZV09XCJhdmF0YXIuYmFja3VwSW1hZ2VcIlxuICAgICAgICAgICAgICAgIFtjbGlja2FibGVdPVwiYXZhdGFyLmNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYWx0XT1cImF2YXRhci5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgPjwvZmQtYXZhdGFyPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZkLWxpc3RfX2NvbnRlbnRcIj5cbiAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgPGRpdiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGVcIiBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkLWxpc3RfX2J5bGluZSBmZC1saXN0X19ieWxpbmUtLTItY29sXCI+XG4gICAgICAgICAgICBAaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9pc0FkdmFuY2VkVGV4dChkZXNjcmlwdGlvbikgPyBhZHZhbmNlZERlc2NyaXB0aW9uIDogc2ltcGxlRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRlc2NyaXB0aW9uIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzZWNvbmRhcnkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2lzQWR2YW5jZWRUZXh0KHNlY29uZGFyeSkgPyBhZHZhbmNlZFNlY29uZGFyeSA6IHNpbXBsZVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc2Vjb25kYXJ5IH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3NlbGVjdGlvblRlbXBsYXRlPlxuICAgIEBpZiAoKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aScgfHwgc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpICYmICFyb3dTZWxlY3Rpb24pIHtcbiAgICAgICAgPGRpdiBmZC1mb3JtLWl0ZW0gY2xhc3M9XCJmZC1saXN0X19mb3JtLWl0ZW1cIj5cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpJykge1xuICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJfc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4VmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9vbkNoZWNrYm94TW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYWN0aW9uc1RlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIiNzZWNvbmRhcnlBY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmIChsaXN0VHlwZSA9PT0gJ2RldGFpbCcpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAjZWRpdFxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ2RldGFpbC0nICsgaWRcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImVkaXRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdlZGl0JylcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRldGFpbHNBY3Rpb25BcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ3BsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbS5kZXRhaWxzQWN0aW9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIl9vbktleUJ1dHRvbkNsaWNrKCRldmVudCwgJ2VkaXQnKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG4gICAgQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnZGVsZXRlJykge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICNkZWxldGVcbiAgICAgICAgICAgIFthdHRyLmlkXT1cIidkZWxldGUtJyArIGlkXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdkZWxldGUnKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJfb25LZXlCdXR0b25DbGljaygkZXZlbnQsICdkZWxldGUnKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVEZXNjcmlwdGlvbiBsZXQtZGVzY3JpcHRpb24+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtbGVmdFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFthdHRyLm5vd3JhcF09XCJ0aXRsZVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgZGVzY3JpcHRpb24gfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhZHZhbmNlZERlc2NyaXB0aW9uIGxldC1kZXNjcmlwdGlvbj5cbiAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1sZWZ0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvbi5hcmlhTGFiZWwgPz8gZGVzY3JpcHRpb24udGV4dFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImRlc2NyaXB0aW9uLnRpdGxlID8/IGRlc2NyaXB0aW9uLnRleHRcIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCJcbiAgICA+XG4gICAgICAgIHt7IGRlc2NyaXB0aW9uLnRleHQgfX1cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzaW1wbGVTZWNvbmRhcnkgbGV0LXNlY29uZGFyeT5cbiAgICBAaWYgKCFpbnZlcnRlZCkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY29uZGFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1yaWdodFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmRwLW9iamVjdC1zdGF0dXMgW3N0YXR1c109XCJzdGF0dXNUeXBlXCIgW2ludmVydGVkXT1cImludmVydGVkXCIgW2xhYmVsXT1cInNlY29uZGFyeVwiPjwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhZHZhbmNlZFNlY29uZGFyeSBsZXQtc2Vjb25kYXJ5PlxuICAgIEBpZiAoIWludmVydGVkKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeS5hcmlhTGFiZWwgPz8gc2Vjb25kYXJ5LnRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeS50aXRsZSA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY29uZGFyeS50ZXh0IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5LmFyaWFMYWJlbCA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnkudGl0bGUgPz8gc2Vjb25kYXJ5LnRleHRcIlxuICAgICAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmRwLW9iamVjdC1zdGF0dXMgW3N0YXR1c109XCJzdGF0dXNUeXBlXCIgW2ludmVydGVkXT1cImludmVydGVkXCIgW2xhYmVsXT1cInNlY29uZGFyeS50ZXh0XCI+PC9mZHAtb2JqZWN0LXN0YXR1cz5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|