@eui/showcase 18.0.0-next.23 → 18.0.0-next.25

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.
@@ -255,8 +255,8 @@ export class DocPageComponent {
255
255
  }
256
256
  return result;
257
257
  }
258
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.EuiAppShellService }, { token: i3.DomSanitizer }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
259
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i0.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageOverviewDefaultContent", predicate: i0.forwardRef(() => DocPageOverviewDefaultContentDirective) }, { propertyName: "pageSamplesContent", predicate: i0.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i0.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i0.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i0.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i0.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i0.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i0, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview</div>\n\n <div *ngIf=\"pageOverviewContent.length > 0\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"samplesInput.length !== 0\">\n <div class=\"doc-page-section-subtitle\">Component API summary</div>\n <table class=\"eui-table-default eui-table-default--compact eui-table-default--responsive eui-table-default--bordered eui-u-mb-xl\">\n <thead>\n <tr>\n <th class=\"eui-u-text-left\">name</th>\n <th class=\"eui-u-text-left\">Description</th>\n <th class=\"eui-u-text-left\">Default</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let sample of samplesInput\">\n <td>{{sample?.id}}</td>\n <td>{{sample?.description}}</td>\n <td>{{sample?.defaultValue}}</td>\n <td><a class=\"eui-u-text-link\" (click)=\"onNavClick(sample?.id,0)\">Sample link</a></td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <div *ngIf=\"pageOverviewDefaultContent.length > 0\">\n <ng-content select=\"docPageOverviewDefault\"></ng-content>\n </div>\n <br />\n\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n\n <ng-container *ngIf=\"hasCategories; else noCategories\">\n\n <ul *ngFor=\"let sample of samplesDefault\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n\n <ng-container *ngIf=\"samplesVariant.length !==0\">\n <div class=\"doc-page-navigation-category\">Variants</div>\n <ul *ngFor=\"let sample of samplesVariant\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesInput.length !==0\">\n <div class=\"doc-page-navigation-category\">Inputs</div>\n <ul *ngFor=\"let sample of samplesInput\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesContent.length !==0\">\n <div class=\"doc-page-navigation-category\">Sub contents</div>\n <ul *ngFor=\"let sample of samplesContent\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesOther.length !==0\">\n <div class=\"doc-page-navigation-category\">Other samples</div>\n <ul *ngFor=\"let sample of samplesOther\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n\n <ng-template #noCategories>\n <ng-container *ngIf=\"samplesOther.length !==0\">\n <ul *ngFor=\"let sample of samplesOther\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n </ng-template>\n </li>\n\n\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-wrapper .language-javascript:focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-primary-10);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-base-spacing-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-base-spacing-m);color:var(--eui-base-color-text);margin-top:var(--eui-base-spacing-m);font-weight:700}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2.5rem var(--eui-base-font-family);font-weight:700}.doc-page-section-subtitle{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i5.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i5.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i5.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i6.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i6.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i6.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "isHeaderMultilines", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "component", type: i6.EuiPageHeaderActionItemsComponent, selector: "eui-page-header-action-items" }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i8.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["ariaDescribedBy", "e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "component", type: i8.EuiAlertTitleComponent, selector: "eui-alert-title" }, { kind: "component", type: i9.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i10.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i11.DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i0.ViewEncapsulation.None }); }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.EuiAppShellService }, { token: i3.DomSanitizer }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageComponent, selector: "eui-showcase-doc-page", inputs: { id: "id", label: "label", subLabel: "subLabel", isNotReady: "isNotReady", isDeprecated: "isDeprecated", isLegacy: "isLegacy", codeFolder: "codeFolder", showcase: "showcase", isNavigationVisible: "isNavigationVisible", hasApi: "hasApi", hasA11y: "hasA11y" }, queries: [{ propertyName: "samples", predicate: DocSampleComponent, descendants: true }, { propertyName: "sections", predicate: DocSectionComponent, descendants: true }, { propertyName: "pageOverviewContent", predicate: i0.forwardRef(() => DocPageOverviewContentDirective) }, { propertyName: "pageOverviewDefaultContent", predicate: i0.forwardRef(() => DocPageOverviewDefaultContentDirective) }, { propertyName: "pageSamplesContent", predicate: i0.forwardRef(() => DocPageSamplesContentDirective) }, { propertyName: "pageSectionsContent", predicate: i0.forwardRef(() => DocPageSectionsContentDirective) }, { propertyName: "pageInteractiveContent", predicate: i0.forwardRef(() => DocPageInteractiveContentDirective) }, { propertyName: "pageAccessibilityContent", predicate: i0.forwardRef(() => DocPageAccessibilityContentDirective) }, { propertyName: "pageApiContent", predicate: i0.forwardRef(() => DocPageApiContentDirective) }, { propertyName: "pageThemingContent", predicate: i0.forwardRef(() => DocPageThemingContentDirective) }], viewQueries: [{ propertyName: "tabsContent", first: true, predicate: ["tabsContent"], descendants: true }], ngImport: i0, template: "<div class=\"doc-page-navigation-wrapper\" [class.eui-u-hidden]=\"isLoading\">\n <div class=\"doc-page-main-column\">\n <eui-page>\n <eui-page-header label=\"{{ label }}\" subLabel=\"{{ subLabel }}\">\n <eui-page-header-action-items>\n <eui-showcase-doc-page-code\n *ngIf=\"codeFolder\"\n codeFolder=\"{{ codeFolder }}\"\n showcase=\"{{ showcase }}\"></eui-showcase-doc-page-code>\n <eui-chip\n *ngIf=\"stateLabel\"\n [euiSuccess]=\"stateLabel === 'ACTIVE'\"\n [euiWarning]=\"stateLabel === 'DEPRECATED - will be removed in eUI 18'\"\n [euiDanger]=\"isLegacy\">\n <span euiLabel>\n <strong>{{ stateLabel }}</strong>\n </span>\n </eui-chip>\n </eui-page-header-action-items>\n </eui-page-header>\n\n <eui-page-content>\n <eui-alert *ngIf=\"stateLabel === 'LEGACY' || isLegacy\" euiDanger class=\"eui-u-mb-xl\">\n <eui-alert-title>LEGACY component</eui-alert-title>\n <strong class=\"eui-u-color-danger\">This component will be removed in eUI 18 release (end of 2023)</strong>\n <div *ngIf=\"cmp\">\n <div *ngIf=\"cmp.cmpReplacement !== 'NONE'\">\n It has been replaced by :\n <strong class=\"eui-u-color-success-darkest\">{{ cmp.cmpReplacement }}</strong>\n <!-- <div *ngIf=\"cmp.cmpReplacementUrl\">\n <br><br>\n You can find more information on the new component here : <a [routerLink]=\"cmp.cmpReplacementUrl\">{{cmp.cmpReplacementUrl}}</a>\n </div> -->\n </div>\n <div *ngIf=\"cmp.cmpReplacement === 'NONE'\">\n <strong class=\"eui-u-color-danger\"> This component will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n <div *ngIf=\"cmp.cmpReplacementNote\">\n <strong class=\"eui-u-color-warning\">{{ cmp.cmpReplacementNote }}</strong>\n </div>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'DEPRECATED' || isDeprecated\" euiWarning class=\"eui-u-mb-xl\">\n <eui-alert-title>DEPRECATED component</eui-alert-title>\n This component has been <strong class=\"eui-u-color-danger\">deprecated</strong>\n <div *ngIf=\"cmp\">\n This component has no replacement in current version AND won't have replacement in next version of eUI,\n <strong class=\"eui-u-color-danger\">it will be removed in eUI 18 release (end of 2023)</strong>\n </div>\n </eui-alert>\n\n <eui-alert *ngIf=\"stateLabel === 'NOT_READY' || isNotReady\" euiInfo class=\"eui-u-mb-xl\">\n <eui-alert-title>NOT READY for production usage</eui-alert-title>\n <div *ngIf=\"cmp\">\n This component is under development / some features might be missing, it'll be available in a future release once\n validated.\n </div>\n </eui-alert>\n\n <div *ngIf=\"(stateLabel || isNotReady || isDeprecated) && stateLabel !== 'ACTIVE'\" class=\"mb-5\"></div>\n\n <eui-tabs #tabsContent *ngIf=\"pageSectionsContent.length === 0\" (tabSelect)=\"onTabSelected($event)\">\n <eui-tab>\n <euiTabLabel> OPTIONS & SAMPLES </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"cmp && cmp.metadata\">\n <div class=\"doc-page-section-title\">Module import</div>\n <pre><code class=\"language-javascript eui-u-bg-color-grey-5\" euiCode>{{ cmpModuleImport }}</code></pre>\n <br />\n </ng-container>\n\n <div id=\"overview\" class=\"doc-page-section-title\">Overview</div>\n\n <div *ngIf=\"pageOverviewContent.length > 0\">\n <ng-content select=\"docPageOverview\"></ng-content>\n </div>\n\n <ng-container *ngIf=\"samplesInput.length !== 0\">\n <div class=\"doc-page-section-subtitle\">Component API summary</div>\n <table class=\"eui-table-default eui-table-default--compact eui-table-default--responsive eui-table-default--bordered eui-u-mb-xl\">\n <thead>\n <tr>\n <th class=\"eui-u-text-left\">name</th>\n <th class=\"eui-u-text-left\">Description</th>\n <th class=\"eui-u-text-left\">Default</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let sample of samplesInput\">\n <td>{{sample?.id}}</td>\n <td>{{sample?.description}}</td>\n <td>{{sample?.defaultValue}}</td>\n <td><a class=\"eui-u-text-link\" (click)=\"onNavClick(sample?.id,0)\">Sample link</a></td>\n </tr>\n </tbody>\n </table>\n </ng-container>\n\n <div *ngIf=\"pageOverviewDefaultContent.length > 0\">\n <ng-content select=\"docPageOverviewDefault\"></ng-content>\n </div>\n <br />\n\n\n <div id=\"samples\" class=\"doc-page-section-title\">Options & samples</div>\n <ng-content select=\"docPageSamples\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasApi\">\n <euiTabLabel> API </euiTabLabel>\n <euiTabContent>\n <ng-container *ngIf=\"apiUrlSafe\">\n <div class=\"flex-container\">\n <a href=\"{{ apiUrl }}\" target=\"_blank\" class=\"ms-auto pb-2 eui-u-text-link-external\">Open API page</a>\n </div>\n <div class=\"doc-page-api-iframe-wrapper\">\n <iframe id=\"iframe_api\" [width]=\"'100%'\" height=\"700px\" frameBorder=\"0\" [src]=\"apiUrlSafe\"></iframe>\n </div>\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"hasA11y\">\n <euiTabLabel> A11Y </euiTabLabel>\n <euiTabContent>\n <div id=\"accessibility\" class=\"doc-page-section-title\">Accessibility</div>\n <ng-container *ngIf=\"pageAccessibilityContent.length !== 0\">\n <ng-content select=\"docPageAccessibility\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"pageAccessibilityContent.length === 0\">\n No accessibility rules applicable\n </ng-container>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageThemingContent.length > 0\">\n <euiTabLabel> THEMING </euiTabLabel>\n <euiTabContent>\n <div id=\"theming\" class=\"doc-page-section-title\">Theming</div>\n <ng-content select=\"docPageTheming\"></ng-content>\n </euiTabContent>\n </eui-tab>\n\n <eui-tab *ngIf=\"pageInteractiveContent.length > 0\">\n <euiTabLabel>\n {{ pageInteractiveContent.first.title }}\n </euiTabLabel>\n <euiTabContent>\n <div id=\"interactive\" class=\"doc-page-section-title\">\n {{ pageInteractiveContent.first.subTitle }}\n </div>\n <ng-content select=\"docPageInteractive\"></ng-content>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <div id=\"demo\" *ngIf=\"sections.length === 0\" class=\"doc-page-section-title\">Demo</div>\n <ng-content select=\"docPageSections\"></ng-content>\n </ng-container>\n </eui-page-content>\n </eui-page>\n </div>\n\n <div *ngIf=\"isNavigationVisible\" class=\"doc-page-navigation-column eui-u-hidden-desktop-down\">\n <div id=\"doc-page-nav\">\n <div class=\"doc-page-navigation-title\">In this page</div>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <ng-container *ngIf=\"pageSectionsContent.length === 0\">\n <li\n *ngIf=\"hasApi\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'api'\"\n (click)=\"onNavClick('api', 1)\">\n <span>API</span>\n </li>\n <li\n *ngIf=\"hasA11y\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'a11y'\"\n (click)=\"onNavClick('a11y', 2)\">\n <span>A11Y</span>\n </li>\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'samples'\"\n (click)=\"onNavClick('samples', 0)\">\n <span>OPTIONS & SAMPLES</span>\n </li>\n <li class=\"doc-page-navigation-item doc-page-navigation-sub\">\n\n <ng-container *ngIf=\"hasCategories; else noCategories\">\n\n <ul *ngFor=\"let sample of samplesDefault\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n\n <ng-container *ngIf=\"samplesVariant.length !==0\">\n <div class=\"doc-page-navigation-category\">Variants</div>\n <ul *ngFor=\"let sample of samplesVariant\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesInput.length !==0\">\n <div class=\"doc-page-navigation-category\">Inputs</div>\n <ul *ngFor=\"let sample of samplesInput\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesContent.length !==0\">\n <div class=\"doc-page-navigation-category\">Sub contents</div>\n <ul *ngFor=\"let sample of samplesContent\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n\n <ng-container *ngIf=\"samplesOther.length !==0\">\n <div class=\"doc-page-navigation-category\">Other samples</div>\n <ul *ngFor=\"let sample of samplesOther\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n\n <ng-template #noCategories>\n <ng-container *ngIf=\"samplesOther.length !==0\">\n <ul *ngFor=\"let sample of samplesOther\" class=\"doc-page-navigation-list\">\n <li\n class=\"doc-page-navigation-item doc-page-navigation-item-sub\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === sample.id\"\n (click)=\"onNavClick(sample.id, 0)\">\n <span>{{ sample.label }}</span>\n </li>\n </ul>\n </ng-container>\n </ng-template>\n </li>\n\n\n\n <!-- OPTIONAL TABS-->\n <ng-container *ngIf=\"pageThemingContent.length > 0\">\n <li\n *ngIf=\"pageThemingContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'theming'\"\n (click)=\"onNavClick('theming', 3)\">\n <span>THEMING</span>\n </li>\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 4)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n <ng-container *ngIf=\"pageThemingContent.length === 0\">\n <li\n *ngIf=\"pageInteractiveContent.length > 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'advanced'\"\n (click)=\"onNavClick('advanced', 3)\">\n <span>{{ pageInteractiveContent.first.title }}</span>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"pageSectionsContent.length > 0\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'sections'\"\n (click)=\"onNavClick('sections', null)\">\n <span>Sections</span>\n </li>\n <li\n *ngIf=\"sections.length === 0\"\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === 'demo'\"\n (click)=\"onNavClick('demo', null)\">\n <span>Demo</span>\n </li>\n <li *ngIf=\"sections.length > 0\" class=\"doc-page-navigation-item doc-page-navigation-sub\">\n <ul *ngFor=\"let section of sections\">\n <li\n class=\"doc-page-navigation-item\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === section.id\"\n (click)=\"onNavClick(section.id, null)\">\n <span>{{ section.label }}</span>\n </li>\n </ul>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n</div>\n", styles: [".doc-page-navigation-wrapper{display:flex;flex-wrap:wrap;width:100%}.doc-page-navigation-wrapper .doc-page-main-column{padding-right:var(--eui-base-spacing-m);width:calc(100% - 400px)}.doc-page-navigation-wrapper .doc-page-navigation-column{background:var(--eui-base-color-white);box-shadow:0 8px 10px #b7c0ce33;position:fixed;right:0;transition:all ease-in-out .25s;width:400px;z-index:auto;box-shadow:var(--eui-base-shadow-1)}.doc-page-navigation-wrapper .doc-page-navigation-column:hover{width:400px}.doc-page-navigation-wrapper .language-javascript:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-wrapper .language-javascript:focus-visible:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-wrapper .language-javascript [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-ctx-color-focus-visible)!important;outline-offset:0!important;transition:none!important}.doc-page-navigation-title{font-weight:700;padding:var(--eui-base-spacing-s)}.doc-page-navigation-content{display:block;height:100vh;max-height:calc(100vh - 6rem);overflow-y:auto;width:100%}.doc-page-navigation-content::-webkit-scrollbar{display:inherit;height:6px;width:6px;background-color:var(--eui-base-color-grey-5)}.doc-page-navigation-content::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.doc-page-navigation-content::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.doc-page-navigation-content::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.doc-page-navigation{background-color:transparent;border-left:2px solid transparent;padding-top:var(--eui-base-spacing-xs);margin:0;padding:0}.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-base-color-primary-100);cursor:pointer;line-height:1.5;overflow:hidden;padding:var(--eui-base-spacing-2xs);text-overflow:ellipsis;transition:background-color ease-in .2s;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-base-color-primary-100);padding-left:var(--eui-base-spacing-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-base-spacing-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-base-color-grey-5);border-left:2px solid var(--eui-base-color-grey-15)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-base-color-primary-10);border-left:2px solid var(--eui-base-color-info-100)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-base-spacing-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-base-spacing-m);color:var(--eui-base-color-text);margin-top:var(--eui-base-spacing-m);font-weight:700}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-base-spacing-2xl);margin-bottom:var(--eui-base-spacing-xl);color:var(--eui-base-color-info-120);font:normal normal 400 1.75rem/2.5rem var(--eui-base-font-family);font-weight:700}.doc-page-section-subtitle{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}@media screen and (max-width: 767px){.doc-page-navigation-wrapper .doc-page-main-column{padding-right:0;width:100%}.doc-page-navigation-wrapper .doc-page-navigation-column{display:none;width:0}}@media screen and (min-width: 768px) and (max-width: 995px){.doc-page-navigation-wrapper .doc-page-main-column{width:80%}.doc-page-navigation-wrapper .doc-page-navigation-column{width:20%}}@media screen and (max-width: 1550px){.doc-page-api-iframe-wrapper{display:none}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i5.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i5.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "component", type: i5.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i6.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i6.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i6.EuiPageHeaderComponent, selector: "eui-page-header", inputs: ["label", "subLabel", "labelTooltip", "subLabelTooltip", "isCollapsible", "isCollapsed", "isHeaderMultilines", "collapsedLabel", "expandedLabel"], outputs: ["collapse"] }, { kind: "component", type: i6.EuiPageHeaderActionItemsComponent, selector: "eui-page-header-action-items" }, { kind: "component", type: i7.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i8.EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: ["ariaDescribedBy", "e2eAttr", "isMuted", "isCloseable", "isFocusable"], outputs: ["closeAlert"] }, { kind: "component", type: i8.EuiAlertTitleComponent, selector: "eui-alert-title" }, { kind: "component", type: i9.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i10.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i11.DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: ["codeFolder", "showcase"] }], encapsulation: i0.ViewEncapsulation.None }); }
260
260
  }
261
261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageComponent, decorators: [{
262
262
  type: Component,
@@ -319,16 +319,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
319
319
  }] } });
320
320
  /* eslint-disable @angular-eslint/directive-selector */
321
321
  export class DocPageOverviewContentDirective {
322
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
323
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageOverviewContentDirective, selector: "docPageOverview", ngImport: i0 }); }
322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
323
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageOverviewContentDirective, selector: "docPageOverview", ngImport: i0 }); }
324
324
  }
325
325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewContentDirective, decorators: [{
326
326
  type: Directive,
327
327
  args: [{ selector: 'docPageOverview' }]
328
328
  }] });
329
329
  export class DocPageOverviewDefaultContentDirective {
330
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewDefaultContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
331
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageOverviewDefaultContentDirective, selector: "docPageOverviewDefault", ngImport: i0 }); }
330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewDefaultContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
331
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageOverviewDefaultContentDirective, selector: "docPageOverviewDefault", ngImport: i0 }); }
332
332
  }
333
333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageOverviewDefaultContentDirective, decorators: [{
334
334
  type: Directive,
@@ -339,8 +339,8 @@ export class DocPageInteractiveContentDirective {
339
339
  this.title = 'ADVANCED EXAMPLES';
340
340
  this.subTitle = 'Advanced use cases';
341
341
  }
342
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageInteractiveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
343
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageInteractiveContentDirective, selector: "docPageInteractive", inputs: { title: "title", subTitle: "subTitle" }, ngImport: i0 }); }
342
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageInteractiveContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
343
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageInteractiveContentDirective, selector: "docPageInteractive", inputs: { title: "title", subTitle: "subTitle" }, ngImport: i0 }); }
344
344
  }
345
345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageInteractiveContentDirective, decorators: [{
346
346
  type: Directive,
@@ -351,43 +351,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
351
351
  type: Input
352
352
  }] } });
353
353
  export class DocPageSamplesContentDirective {
354
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSamplesContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageSamplesContentDirective, selector: "docPageSamples", ngImport: i0 }); }
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSamplesContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
355
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageSamplesContentDirective, selector: "docPageSamples", ngImport: i0 }); }
356
356
  }
357
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSamplesContentDirective, decorators: [{
358
358
  type: Directive,
359
359
  args: [{ selector: 'docPageSamples' }]
360
360
  }] });
361
361
  export class DocPageSectionsContentDirective {
362
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSectionsContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
363
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageSectionsContentDirective, selector: "docPageSections", ngImport: i0 }); }
362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSectionsContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
363
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageSectionsContentDirective, selector: "docPageSections", ngImport: i0 }); }
364
364
  }
365
365
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageSectionsContentDirective, decorators: [{
366
366
  type: Directive,
367
367
  args: [{ selector: 'docPageSections' }]
368
368
  }] });
369
369
  export class DocPageAccessibilityContentDirective {
370
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageAccessibilityContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
371
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageAccessibilityContentDirective, selector: "docPageAccessibility", ngImport: i0 }); }
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageAccessibilityContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
371
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageAccessibilityContentDirective, selector: "docPageAccessibility", ngImport: i0 }); }
372
372
  }
373
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageAccessibilityContentDirective, decorators: [{
374
374
  type: Directive,
375
375
  args: [{ selector: 'docPageAccessibility' }]
376
376
  }] });
377
377
  export class DocPageApiContentDirective {
378
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageApiContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
379
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageApiContentDirective, selector: "docPageApi", ngImport: i0 }); }
378
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageApiContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
379
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageApiContentDirective, selector: "docPageApi", ngImport: i0 }); }
380
380
  }
381
381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageApiContentDirective, decorators: [{
382
382
  type: Directive,
383
383
  args: [{ selector: 'docPageApi' }]
384
384
  }] });
385
385
  export class DocPageThemingContentDirective {
386
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageThemingContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
387
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageThemingContentDirective, selector: "docPageTheming", ngImport: i0 }); }
386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageThemingContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
387
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageThemingContentDirective, selector: "docPageTheming", ngImport: i0 }); }
388
388
  }
389
389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageThemingContentDirective, decorators: [{
390
390
  type: Directive,
391
391
  args: [{ selector: 'docPageTheming' }]
392
392
  }] });
393
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBb0IzRSxNQUFNLE9BQU8sZ0JBQWdCO0lBeUV6QixZQUNZLE1BQWMsRUFDZCxLQUFxQixFQUNyQixTQUE2QixFQUM5QixTQUF1QixFQUN0QixRQUFrQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBMUVyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFheEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVwQixp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QkFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW0sIFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQsIEV1aVRhYnNDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXRhYnMnO1xuXG50eXBlIENvbXBvbmVudFN0YXR1cyA9IEV1aU1lbnVJdGVtICYge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjbXBSZXBsYWNlbWVudDogc3RyaW5nO1xuICAgIGNtcFJlcGxhY2VtZW50VXJsOiBzdHJpbmc7XG4gICAgY21wUmVwbGFjZW1lbnROb3RlOiBzdHJpbmc7XG4gICAgYWx0ZXJuYXRlQXBpQ2F0ZWdvcnk6IHN0cmluZztcbiAgICBhbHRlcm5hdGVJZDogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvYy1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgbGFiZWw7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc05vdFJlYWR5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNMZWdhY3kgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjb2RlRm9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hvd2Nhc2UgPSAndXgnO1xuICAgIEBJbnB1dCgpIGlzTmF2aWdhdGlvblZpc2libGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGhhc0FwaSA9IHRydWU7XG4gICAgQElucHV0KCkgaGFzQTExeSA9IHRydWU7XG5cbiAgICBzdGF0ZVR5cGVDbGFzcztcbiAgICBzdGF0ZUxhYmVsO1xuICAgIGNtcDtcbiAgICBmcmFnbWVudElkO1xuICAgIGNtcE1vZHVsZUltcG9ydDtcbiAgICBhcHBNZXRhZGF0YTtcblxuICAgIGFwaVVybFNhZmU6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBhcGlVcmw6IHN0cmluZztcbiAgICBpRnJhbWVDb250ZW50O1xuXG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpc05hdkNsaWNrZWQgPSB0cnVlO1xuXG4gICAgc2FtcGxlc0lucHV0ID0gW107XG4gICAgc2FtcGxlc0NvbnRlbnQgPSBbXTtcbiAgICBzYW1wbGVzVmFyaWFudCA9IFtdO1xuICAgIHNhbXBsZXNPdGhlciA9IFtdO1xuICAgIHNhbXBsZXNEZWZhdWx0ID0gW107XG4gICAgaGFzQ2F0ZWdvcmllcyA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTYW1wbGVDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBzYW1wbGVzOiBRdWVyeUxpc3Q8RG9jU2FtcGxlQ29tcG9uZW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKERvY1NlY3Rpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBzZWN0aW9uczogUXVlcnlMaXN0PERvY1NlY3Rpb25Db21wb25lbnQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VPdmVydmlld0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3RGVmYXVsdENvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2FtcGxlc0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlU2FtcGxlc0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTZWN0aW9uc0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VTZWN0aW9uc0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlSW50ZXJhY3RpdmVDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlQXBpQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VUaGVtaW5nQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VUaGVtaW5nQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCd0YWJzQ29udGVudCcpIHRhYnNDb250ZW50OiBFdWlUYWJzQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBUQUJTX0RFRiA9IFtcbiAgICAgICAgeyBpbmRleDogMCwgaWQ6ICdzYW1wbGVzJyB9LFxuICAgICAgICB7IGluZGV4OiAxLCBpZDogJ2FwaScgfSxcbiAgICAgICAgeyBpbmRleDogMiwgaWQ6ICdhMTF5JyB9LFxuICAgICAgICB7IGluZGV4OiAzLCBpZDogJ3RoZW1pbmcnIH0sXG4gICAgICAgIHsgaW5kZXg6IDQsIGlkOiAnYWR2YW5jZWQnIH0sXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5pc0Jsb2NrRG9jdW1lbnRBY3RpdmUgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwcE1ldGFkYXRhID0gdGhpcy5hc1NlcnZpY2Uuc3RhdGUuYXBwTWV0YWRhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgIXRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY21wID0gdGhpcy5fZ2V0Q29tcG9uZW50U3RhdHVzKHRoaXMuaWQpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jbXApIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY21wLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdBQ1RJVkUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0RFUFJFQ0FURUQgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnd2FybmluZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGVwcmVjYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdkYW5nZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0xFR0FDWSAtIHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdkYW5nZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xlZ2FjeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdOT1QgUkVBRFknO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdhY2NlbnQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05vdFJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBjbXAgbW9kdWxlIGltcG9ydCBzdHJpbmdcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICB0aGlzLmNtcE1vZHVsZUltcG9ydCA9IGBpbXBvcnQgeyAke3RoaXMuY21wLm1ldGFkYXRhPy5tb2R1bGVOYW1lfSB9IGZyb20gJ0BldWkvJHt0aGlzLmNtcC5tZXRhZGF0YT8uc3ViRW50cnlOYW1lfSc7YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1dhcm5pbmcsIGVycm9ycyBkZXRlY3RlZCB3aGlsZSBnZXR0aW5nIHBhZ2Ugc3RhdGUnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBnZXR0aW5nIEFQSSB1cmxcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuYXBpVXJsID0gdGhpcy5fZ2V0QXBpVXJsKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgQVBJIHVybCBmcm9tIDogJHt0aGlzLmFwaVVybH1gKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGlVcmxTYWZlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuYXBpVXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFiID0gdGhpcy5UQUJTX0RFRi5maWx0ZXIoKHQpID0+IHQuaWQgPT09IHRoaXMuZnJhZ21lbnRJZClbMF07XG4gICAgICAgICAgICBjb25zdCBzYW1wbGVUYWJJbmRleCA9IDA7XG5cbiAgICAgICAgICAgIGxldCB0YWJJbmRleDtcblxuICAgICAgICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHNhbXBsZVRhYkluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYi5pbmRleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuc2FtcGxlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlc0RlZmF1bHQgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKHMgPT4gcy5pZCA9PT0gJ19kZWZhdWx0Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzSW5wdXQgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKHMgPT4gcy5jYXRlZ29yeSA9PT0gJ0lOUFVUJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzQ29udGVudCA9IHRoaXMuc2FtcGxlcy5maWx0ZXIocyA9PiBzLmNhdGVnb3J5ID09PSAnU1VCX0NPTlRFTlQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXNWYXJpYW50ID0gdGhpcy5zYW1wbGVzLmZpbHRlcihzID0+IHMuY2F0ZWdvcnkgPT09ICdWQVJJQU5UJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzT3RoZXIgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICBzID0+IHMuY2F0ZWdvcnkgIT09ICdTVUJfQ09OVEVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcy5jYXRlZ29yeSAhPT0gJ0lOUFVUJyAmJlxuICAgICAgICAgICAgICAgICAgICBzLmNhdGVnb3J5ICE9PSAnVkFSSUFOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcy5pZCAhPT0gJ19kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzQ2F0ZWdvcmllcyA9IHRoaXMuc2FtcGxlc090aGVyLmxlbmd0aCAhPT0gdGhpcy5zYW1wbGVzLmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0aGlzLmZyYWdtZW50SWQsIHRhYkluZGV4LCB0cnVlLCB0cnVlKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2UuaXNCbG9ja0RvY3VtZW50QWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk5hdkNsaWNrKGZyYWdtZW50SWQ6IHN0cmluZywgdGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSBmcmFnbWVudElkO1xuICAgICAgICB0aGlzLmlzTmF2Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGhpcy5mcmFnbWVudElkLCB0YWJJbmRleCwgZmFsc2UsIHRydWUpO1xuICAgIH1cblxuICAgIG9uVGFiU2VsZWN0ZWQoZXZlbnQ6IHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2FkaW5nICYmICF0aGlzLmlzTmF2Q2xpY2tlZCkge1xuICAgICAgICAgICAgY29uc3QgdGFiSWQgPSB0aGlzLlRBQlNfREVGLmZpbHRlcigodCkgPT4gdC5pbmRleCA9PT0gZXZlbnQuaW5kZXgpWzBdLmlkO1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0YWJJZCwgZXZlbnQuaW5kZXgsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0ZyYWdtZW50KGZyYWdtZW50SWQ6IHN0cmluZywgdGFiSW5kZXg6IG51bWJlciwgaW5pdDogYm9vbGVhbiwgY2hhbmdlVGFiOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpbml0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzQ29udGVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFic0NvbnRlbnQuY2hhbmdlVGFiKHRhYkluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmdtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZnJhZ21lbnRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5T2Zmc2V0ID0gLTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZnbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBmZ20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgeU9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHkgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5vblNhbWVVcmxOYXZpZ2F0aW9uID0gJ3JlbG9hZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgZnJhZ21lbnQ6IGZyYWdtZW50SWQgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVSb290ID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5nbyhgJHtyb3V0ZVJvb3R9IyR7ZnJhZ21lbnRJZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldENvbXBvbmVudFN0YXR1cyhpZCk6IENvbXBvbmVudFN0YXR1cyB7XG5cbiAgICAgICAgY29uc3QgZmxhdHRlbiA9IChsaW5rczogRXVpTWVudUl0ZW1bXSk6IENvbXBvbmVudFN0YXR1c1tdID0+XG4gICAgICAgICAgICBsaW5rc1xuICAgICAgICAgICAgICAgID8gbGlua3MucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGl0ZW06IENvbXBvbmVudFN0YXR1cykgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlSWQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaXRlbS5tYXJrZXJUeXBlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudDogaXRlbS5jbXBSZXBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50VXJsOiBpdGVtLmNtcFJlcGxhY2VtZW50VXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnROb3RlOiBpdGVtLmNtcFJlcGxhY2VtZW50Tm90ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUFwaUNhdGVnb3J5OiBpdGVtLmFsdGVybmF0ZUFwaUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IGl0ZW0ubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZsYXR0ZW4oaXRlbS5jaGlsZHJlbiksXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIGNvbnN0IGZsYXRMaW5rcyA9IGZsYXR0ZW4odGhpcy5hc1NlcnZpY2Uuc3RhdGUuc2lkZWJhckxpbmtzKTtcbiAgICAgICAgY29uc3QgaWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKVswXTtcbiAgICAgICAgaWYgKGlkQmFzZWRDbXApIHtcbiAgICAgICAgICAgIHJldHVybiBpZEJhc2VkQ21wO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWx0ZXJuYXRlSWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYWx0ZXJuYXRlSWQgPT09IGlkKVswXTtcbiAgICAgICAgICAgIHJldHVybiBhbHRlcm5hdGVJZEJhc2VkQ21wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QXBpVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2w7XG4gICAgICAgIGNvbnN0IGhvc3QgPSB1cmwuaG9zdDtcbiAgICAgICAgY29uc3QgcGF0aE5hbWUgPSB1cmwucGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IHBhdGhOYW1lQXJyYXkgPSBwYXRoTmFtZS5zcGxpdCgnLycpO1xuICAgICAgICBjb25zdCBuYW1lID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDFdO1xuICAgICAgICBsZXQgY2F0ZWdvcnkgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gMl07XG5cbiAgICAgICAgbGV0IHNob3djYXNlVHlwZTtcbiAgICAgICAgc2hvd2Nhc2VUeXBlID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDNdO1xuICAgICAgICBpZiAoc2hvd2Nhc2VUeXBlLmluZGV4T2YoJ2V1aS1zaG93Y2FzZScpID09PSAtMSkge1xuICAgICAgICAgICAgc2hvd2Nhc2VUeXBlID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDRdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb3RvY29sR2VuID0gcHJvdG9jb2w7XG4gICAgICAgIGxldCBob3N0R2VuID0gaG9zdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVmVyc2lvbk51bWJlciA9IHRoaXMuYXBwTWV0YWRhdGEuYXBwVmVyc2lvbi5zcGxpdCgnLicpWzBdO1xuXG4gICAgICAgIGxldCBkb2NUeXBlUm9vdCA9IGBldWktZG9jcy1ldWktJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctZWNsJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtZWNsLSR7YXBwVmVyc2lvbk51bWJlcn0ueGA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctbW9iaWxlJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtbW9iaWxlLWNvcmUtJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXRlZ29yeSA9PT0gJ2xheW91dC1jb21wb25lbnRzJyB8fCBjYXRlZ29yeSA9PT0gJ2V4dGVybmFscycgfHwgY2F0ZWdvcnkgPT09ICdsYXlvdXQnIHx8IGNhdGVnb3J5ID09PSAnYXRvbXMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wICYmIGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeSkge1xuICAgICAgICAgICAgY2F0ZWdvcnkgPSBjbXAuYWx0ZXJuYXRlQXBpQ2F0ZWdvcnk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtYXR0ZWROYW1lID0gdGhpcy5fY2FtZWxDYXNlU3RyaW5nKG5hbWUgKyAnLScgKyBjYXRlZ29yeS5zbGljZSgwLCAtMSksICctJywgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGRvY1BhdGggPSBgJHtwcm90b2NvbEdlbn0vLyR7aG9zdEdlbn0vJHtkb2NUeXBlUm9vdH0vJHtjYXRlZ29yeX0vJHtmb3JtYXR0ZWROYW1lfS5odG1sYDtcblxuICAgICAgICBjb25zb2xlLmxvZyhgZmV0Y2hpbmcgQVBJIGZyb206ICR7ZG9jUGF0aH1gKTtcblxuICAgICAgICByZXR1cm4gZG9jUGF0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW1lbENhc2VTdHJpbmcoc3RyaW5nLCBzZXBhcmF0b3IsIGZpcnN0KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nQXJyYXkgPSBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBsZXQgcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzID0gc3RyaW5nQXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHMuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlT3ZlcnZpZXcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZU92ZXJ2aWV3RGVmYXVsdCcgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUludGVyYWN0aXZlJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJ0FEVkFOQ0VEIEVYQU1QTEVTJztcbiAgICBASW5wdXQoKSBzdWJUaXRsZSA9ICdBZHZhbmNlZCB1c2UgY2FzZXMnO1xufVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVNhbXBsZXMnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlU2VjdGlvbnMnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFjY2Vzc2liaWxpdHknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlQXBpJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlIHt9XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VUaGVtaW5nJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VUaGVtaW5nQ29udGVudERpcmVjdGl2ZSB7fVxuLyogZXNsaW50LWVuYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG4iLCI8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi13cmFwcGVyXCIgW2NsYXNzLmV1aS11LWhpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbWFpbi1jb2x1bW5cIj5cbiAgICAgICAgPGV1aS1wYWdlPlxuICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlciBsYWJlbD1cInt7IGxhYmVsIH19XCIgc3ViTGFiZWw9XCJ7eyBzdWJMYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktcGFnZS1oZWFkZXItYWN0aW9uLWl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXNob3djYXNlLWRvYy1wYWdlLWNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29kZUZvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlRm9sZGVyPVwie3sgY29kZUZvbGRlciB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93Y2FzZT1cInt7IHNob3djYXNlIH19XCI+PC9ldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1jaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXRlTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVN1Y2Nlc3NdPVwic3RhdGVMYWJlbCA9PT0gJ0FDVElWRSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVdhcm5pbmddPVwic3RhdGVMYWJlbCA9PT0gJ0RFUFJFQ0FURUQgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGFuZ2VyXT1cImlzTGVnYWN5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBldWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHN0YXRlTGFiZWwgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktY2hpcD5cbiAgICAgICAgICAgICAgICA8L2V1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWhlYWRlcj5cblxuICAgICAgICAgICAgPGV1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdMRUdBQ1knIHx8IGlzTGVnYWN5XCIgZXVpRGFuZ2VyIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5MRUdBQ1kgY29tcG9uZW50PC9ldWktYWxlcnQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj5UaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4IHJlbGVhc2UgKGVuZCBvZiAyMDIzKTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50ICE9PSAnTk9ORSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLXN1Y2Nlc3MtZGFya2VzdFwiPnt7IGNtcC5jbXBSZXBsYWNlbWVudCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudFVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgY2FuIGZpbmQgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbmV3IGNvbXBvbmVudCBoZXJlIDogPGEgW3JvdXRlckxpbmtdPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+e3tjbXAuY21wUmVwbGFjZW1lbnRVcmx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgPT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj4gVGhpcyBjb21wb25lbnQgd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCByZWxlYXNlIChlbmQgb2YgMjAyMyk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudE5vdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itd2FybmluZ1wiPnt7IGNtcC5jbXBSZXBsYWNlbWVudE5vdGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2V1aS1hbGVydD5cblxuICAgICAgICAgICAgICAgIDxldWktYWxlcnQgKm5nSWY9XCJzdGF0ZUxhYmVsID09PSAnREVQUkVDQVRFRCcgfHwgaXNEZXByZWNhdGVkXCIgZXVpV2FybmluZyBjbGFzcz1cImV1aS11LW1iLXhsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktYWxlcnQtdGl0bGU+REVQUkVDQVRFRCBjb21wb25lbnQ8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIGJlZW4gPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRlcHJlY2F0ZWQ8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIG5vIHJlcGxhY2VtZW50IGluIGN1cnJlbnQgdmVyc2lvbiBBTkQgd29uJ3QgaGF2ZSByZXBsYWNlbWVudCBpbiBuZXh0IHZlcnNpb24gb2YgZVVJLFxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPml0IHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTggcmVsZWFzZSAoZW5kIG9mIDIwMjMpPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdOT1RfUkVBRFknIHx8IGlzTm90UmVhZHlcIiBldWlJbmZvIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5OT1QgUkVBRFkgZm9yIHByb2R1Y3Rpb24gdXNhZ2U8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaXMgdW5kZXIgZGV2ZWxvcG1lbnQgLyBzb21lIGZlYXR1cmVzIG1pZ2h0IGJlIG1pc3NpbmcsIGl0J2xsIGJlIGF2YWlsYWJsZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9uY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHN0YXRlTGFiZWwgfHwgaXNOb3RSZWFkeSB8fCBpc0RlcHJlY2F0ZWQpICYmIHN0YXRlTGFiZWwgIT09ICdBQ1RJVkUnXCIgY2xhc3M9XCJtYi01XCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLXRhYnMgI3RhYnNDb250ZW50ICpuZ0lmPVwicGFnZVNlY3Rpb25zQ29udGVudC5sZW5ndGggPT09IDBcIiAodGFiU2VsZWN0KT1cIm9uVGFiU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gT1BUSU9OUyAmIFNBTVBMRVMgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbXAgJiYgY21wLm1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+TW9kdWxlIGltcG9ydDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtamF2YXNjcmlwdCBldWktdS1iZy1jb2xvci1ncmV5LTVcIiBldWlDb2RlPnt7IGNtcE1vZHVsZUltcG9ydCB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwib3ZlcnZpZXdcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5PdmVydmlldzwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VPdmVydmlld0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlT3ZlcnZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0lucHV0Lmxlbmd0aCAhPT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi1zdWJ0aXRsZVwiPkNvbXBvbmVudCBBUEkgc3VtbWFyeTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJldWktdGFibGUtZGVmYXVsdCBldWktdGFibGUtZGVmYXVsdC0tY29tcGFjdCBldWktdGFibGUtZGVmYXVsdC0tcmVzcG9uc2l2ZSBldWktdGFibGUtZGVmYXVsdC0tYm9yZGVyZWQgZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImV1aS11LXRleHQtbGVmdFwiPm5hbWU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJldWktdS10ZXh0LWxlZnRcIj5EZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImV1aS11LXRleHQtbGVmdFwiPkRlZmF1bHQ8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzSW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5pZH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5kZXNjcmlwdGlvbn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5kZWZhdWx0VmFsdWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz1cImV1aS11LXRleHQtbGlua1wiIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZT8uaWQsMClcIj5TYW1wbGUgbGluazwvYT48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VPdmVydmlld0RlZmF1bHRDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZU92ZXJ2aWV3RGVmYXVsdFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInNhbXBsZXNcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5PcHRpb25zICYgc2FtcGxlczwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VTYW1wbGVzXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJoYXNBcGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gQVBJIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBpVXJsU2FmZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJ7eyBhcGlVcmwgfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm1zLWF1dG8gcGItMiBldWktdS10ZXh0LWxpbmstZXh0ZXJuYWxcIj5PcGVuIEFQSSBwYWdlPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLWFwaS1pZnJhbWUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD1cImlmcmFtZV9hcGlcIiBbd2lkdGhdPVwiJzEwMCUnXCIgaGVpZ2h0PVwiNzAwcHhcIiBmcmFtZUJvcmRlcj1cIjBcIiBbc3JjXT1cImFwaVVybFNhZmVcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cImhhc0ExMXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gQTExWSA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImFjY2Vzc2liaWxpdHlcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5BY2Nlc3NpYmlsaXR5PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggIT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUFjY2Vzc2liaWxpdHlcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gYWNjZXNzaWJpbGl0eSBydWxlcyBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IFRIRU1JTkcgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJ0aGVtaW5nXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+VGhlbWluZzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VUaGVtaW5nXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImludGVyYWN0aXZlXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3Quc3ViVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlSW50ZXJhY3RpdmVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWJzPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiZGVtb1wiICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+RGVtbzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2VjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLXBhZ2U+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNOYXZpZ2F0aW9uVmlzaWJsZVwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gZXVpLXUtaGlkZGVuLWRlc2t0b3AtZG93blwiPlxuICAgICAgICA8ZGl2IGlkPVwiZG9jLXBhZ2UtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi10aXRsZVwiPkluIHRoaXMgcGFnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29udGVudFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0FwaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhcGknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYXBpJywgMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BUEk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNBMTF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2ExMXknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYTExeScsIDIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QTExWTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NhbXBsZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnc2FtcGxlcycsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T1BUSU9OUyAmIFNBTVBMRVM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24tc3ViXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2F0ZWdvcmllczsgZWxzZSBub0NhdGVnb3JpZXNcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzRGVmYXVsdFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc1ZhcmlhbnQubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWNhdGVnb3J5XCI+VmFyaWFudHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2FtcGxlIG9mIHNhbXBsZXNWYXJpYW50XCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLXN1YlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNhbXBsZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZS5pZCwgMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0lucHV0Lmxlbmd0aCAhPT0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jYXRlZ29yeVwiPklucHV0czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBzYW1wbGUgb2Ygc2FtcGxlc0lucHV0XCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLXN1YlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNhbXBsZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZS5pZCwgMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0NvbnRlbnQubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWNhdGVnb3J5XCI+U3ViIGNvbnRlbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzQ29udGVudFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS1zdWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzYW1wbGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNhbXBsZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNhbXBsZXNPdGhlci5sZW5ndGggIT09MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY2F0ZWdvcnlcIj5PdGhlciBzYW1wbGVzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzT3RoZXJcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbSBkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tc3ViXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soc2FtcGxlLmlkLCAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzYW1wbGUubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NhdGVnb3JpZXM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzYW1wbGVzT3RoZXIubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2FtcGxlIG9mIHNhbXBsZXNPdGhlclwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS1zdWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzYW1wbGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNhbXBsZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE9QVElPTkFMIFRBQlMtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAndGhlbWluZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygndGhlbWluZycsIDMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlRIRU1JTkc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYWR2YW5jZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FkdmFuY2VkJywgMylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnc2VjdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnc2VjdGlvbnMnLCBudWxsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlY3Rpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2RlbW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnZGVtbycsIG51bGwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGVtbzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzZWN0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNlY3Rpb24uaWQsIG51bGwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzZWN0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBRVQsZUFBZSxFQUNmLFVBQVUsRUFHVixpQkFBaUIsRUFDakIsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBb0IzRSxNQUFNLE9BQU8sZ0JBQWdCO0lBeUV6QixZQUNZLE1BQWMsRUFDZCxLQUFxQixFQUNyQixTQUE2QixFQUM5QixTQUF1QixFQUN0QixRQUFrQjtRQUpsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBMUVyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFheEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVwQixp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QkFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybCwgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERvY1NhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zYW1wbGUvZG9jLXNhbXBsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2RvYy1zZWN0aW9uL2RvYy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpTWVudUl0ZW0sIFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQsIEV1aVRhYnNDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXRhYnMnO1xuXG50eXBlIENvbXBvbmVudFN0YXR1cyA9IEV1aU1lbnVJdGVtICYge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjbXBSZXBsYWNlbWVudDogc3RyaW5nO1xuICAgIGNtcFJlcGxhY2VtZW50VXJsOiBzdHJpbmc7XG4gICAgY21wUmVwbGFjZW1lbnROb3RlOiBzdHJpbmc7XG4gICAgYWx0ZXJuYXRlQXBpQ2F0ZWdvcnk6IHN0cmluZztcbiAgICBhbHRlcm5hdGVJZDogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RvYy1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgbGFiZWw7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc05vdFJlYWR5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNMZWdhY3kgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjb2RlRm9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2hvd2Nhc2UgPSAndXgnO1xuICAgIEBJbnB1dCgpIGlzTmF2aWdhdGlvblZpc2libGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGhhc0FwaSA9IHRydWU7XG4gICAgQElucHV0KCkgaGFzQTExeSA9IHRydWU7XG5cbiAgICBzdGF0ZVR5cGVDbGFzcztcbiAgICBzdGF0ZUxhYmVsO1xuICAgIGNtcDtcbiAgICBmcmFnbWVudElkO1xuICAgIGNtcE1vZHVsZUltcG9ydDtcbiAgICBhcHBNZXRhZGF0YTtcblxuICAgIGFwaVVybFNhZmU6IFNhZmVSZXNvdXJjZVVybDtcbiAgICBhcGlVcmw6IHN0cmluZztcbiAgICBpRnJhbWVDb250ZW50O1xuXG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBpc05hdkNsaWNrZWQgPSB0cnVlO1xuXG4gICAgc2FtcGxlc0lucHV0ID0gW107XG4gICAgc2FtcGxlc0NvbnRlbnQgPSBbXTtcbiAgICBzYW1wbGVzVmFyaWFudCA9IFtdO1xuICAgIHNhbXBsZXNPdGhlciA9IFtdO1xuICAgIHNhbXBsZXNEZWZhdWx0ID0gW107XG4gICAgaGFzQ2F0ZWdvcmllcyA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihEb2NTYW1wbGVDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBzYW1wbGVzOiBRdWVyeUxpc3Q8RG9jU2FtcGxlQ29tcG9uZW50PjtcbiAgICBAQ29udGVudENoaWxkcmVuKERvY1NlY3Rpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBzZWN0aW9uczogUXVlcnlMaXN0PERvY1NlY3Rpb25Db21wb25lbnQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VPdmVydmlld0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VPdmVydmlld0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlT3ZlcnZpZXdDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZSkpXG4gICAgcGFnZU92ZXJ2aWV3RGVmYXVsdENvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlU2FtcGxlc0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlU2FtcGxlc0NvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VTZWN0aW9uc0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VTZWN0aW9uc0NvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlU2VjdGlvbnNDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlSW50ZXJhY3RpdmVDb250ZW50OiBRdWVyeUxpc3Q8RG9jUGFnZUludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnQ6IFF1ZXJ5TGlzdDxEb2NQYWdlQWNjZXNzaWJpbGl0eUNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlKSlcbiAgICBwYWdlQXBpQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEb2NQYWdlVGhlbWluZ0NvbnRlbnREaXJlY3RpdmUpKVxuICAgIHBhZ2VUaGVtaW5nQ29udGVudDogUXVlcnlMaXN0PERvY1BhZ2VUaGVtaW5nQ29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCd0YWJzQ29udGVudCcpIHRhYnNDb250ZW50OiBFdWlUYWJzQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSBUQUJTX0RFRiA9IFtcbiAgICAgICAgeyBpbmRleDogMCwgaWQ6ICdzYW1wbGVzJyB9LFxuICAgICAgICB7IGluZGV4OiAxLCBpZDogJ2FwaScgfSxcbiAgICAgICAgeyBpbmRleDogMiwgaWQ6ICdhMTF5JyB9LFxuICAgICAgICB7IGluZGV4OiAzLCBpZDogJ3RoZW1pbmcnIH0sXG4gICAgICAgIHsgaW5kZXg6IDQsIGlkOiAnYWR2YW5jZWQnIH0sXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmFzU2VydmljZS5pc0Jsb2NrRG9jdW1lbnRBY3RpdmUgPSB0cnVlO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFwcE1ldGFkYXRhID0gdGhpcy5hc1NlcnZpY2Uuc3RhdGUuYXBwTWV0YWRhdGE7XG5cbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgIXRoaXMubGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmlkO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY21wID0gdGhpcy5fZ2V0Q29tcG9uZW50U3RhdHVzKHRoaXMuaWQpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jbXApIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY21wLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdBQ1RJVkUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0RFUFJFQ0FURUQgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVUeXBlQ2xhc3MgPSAnd2FybmluZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRGVwcmVjYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdkYW5nZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUxhYmVsID0gJ0xFR0FDWSAtIHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTgnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdkYW5nZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xlZ2FjeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVMYWJlbCA9ICdOT1QgUkVBRFknO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0ZVR5cGVDbGFzcyA9ICdhY2NlbnQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc05vdFJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdCBjbXAgbW9kdWxlIGltcG9ydCBzdHJpbmdcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICB0aGlzLmNtcE1vZHVsZUltcG9ydCA9IGBpbXBvcnQgeyAke3RoaXMuY21wLm1ldGFkYXRhPy5tb2R1bGVOYW1lfSB9IGZyb20gJ0BldWkvJHt0aGlzLmNtcC5tZXRhZGF0YT8uc3ViRW50cnlOYW1lfSc7YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1dhcm5pbmcsIGVycm9ycyBkZXRlY3RlZCB3aGlsZSBnZXR0aW5nIHBhZ2Ugc3RhdGUnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBnZXR0aW5nIEFQSSB1cmxcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuYXBpVXJsID0gdGhpcy5fZ2V0QXBpVXJsKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRmV0Y2hpbmcgQVBJIHVybCBmcm9tIDogJHt0aGlzLmFwaVVybH1gKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGlVcmxTYWZlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMuYXBpVXJsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFiID0gdGhpcy5UQUJTX0RFRi5maWx0ZXIoKHQpID0+IHQuaWQgPT09IHRoaXMuZnJhZ21lbnRJZClbMF07XG4gICAgICAgICAgICBjb25zdCBzYW1wbGVUYWJJbmRleCA9IDA7XG5cbiAgICAgICAgICAgIGxldCB0YWJJbmRleDtcblxuICAgICAgICAgICAgaWYgKCF0YWIpIHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHNhbXBsZVRhYkluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYi5pbmRleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuc2FtcGxlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlc0RlZmF1bHQgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKHMgPT4gcy5pZCA9PT0gJ19kZWZhdWx0Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzSW5wdXQgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKHMgPT4gcy5jYXRlZ29yeSA9PT0gJ0lOUFVUJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzQ29udGVudCA9IHRoaXMuc2FtcGxlcy5maWx0ZXIocyA9PiBzLmNhdGVnb3J5ID09PSAnU1VCX0NPTlRFTlQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbXBsZXNWYXJpYW50ID0gdGhpcy5zYW1wbGVzLmZpbHRlcihzID0+IHMuY2F0ZWdvcnkgPT09ICdWQVJJQU5UJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zYW1wbGVzT3RoZXIgPSB0aGlzLnNhbXBsZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICBzID0+IHMuY2F0ZWdvcnkgIT09ICdTVUJfQ09OVEVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcy5jYXRlZ29yeSAhPT0gJ0lOUFVUJyAmJlxuICAgICAgICAgICAgICAgICAgICBzLmNhdGVnb3J5ICE9PSAnVkFSSUFOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgcy5pZCAhPT0gJ19kZWZhdWx0JyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzQ2F0ZWdvcmllcyA9IHRoaXMuc2FtcGxlc090aGVyLmxlbmd0aCAhPT0gdGhpcy5zYW1wbGVzLmxlbmd0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0aGlzLmZyYWdtZW50SWQsIHRhYkluZGV4LCB0cnVlLCB0cnVlKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hc1NlcnZpY2UuaXNCbG9ja0RvY3VtZW50QWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbk5hdkNsaWNrKGZyYWdtZW50SWQ6IHN0cmluZywgdGFiSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZyYWdtZW50SWQgPSBmcmFnbWVudElkO1xuICAgICAgICB0aGlzLmlzTmF2Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Njcm9sbFRvRnJhZ21lbnQodGhpcy5mcmFnbWVudElkLCB0YWJJbmRleCwgZmFsc2UsIHRydWUpO1xuICAgIH1cblxuICAgIG9uVGFiU2VsZWN0ZWQoZXZlbnQ6IHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2FkaW5nICYmICF0aGlzLmlzTmF2Q2xpY2tlZCkge1xuICAgICAgICAgICAgY29uc3QgdGFiSWQgPSB0aGlzLlRBQlNfREVGLmZpbHRlcigodCkgPT4gdC5pbmRleCA9PT0gZXZlbnQuaW5kZXgpWzBdLmlkO1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudCh0YWJJZCwgZXZlbnQuaW5kZXgsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc05hdkNsaWNrZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0ZyYWdtZW50KGZyYWdtZW50SWQ6IHN0cmluZywgdGFiSW5kZXg6IG51bWJlciwgaW5pdDogYm9vbGVhbiwgY2hhbmdlVGFiOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpbml0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzQ29udGVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFic0NvbnRlbnQuY2hhbmdlVGFiKHRhYkluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmdtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZnJhZ21lbnRJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5T2Zmc2V0ID0gLTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZnbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBmZ20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0ICsgeU9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHkgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5vblNhbWVVcmxOYXZpZ2F0aW9uID0gJ3JlbG9hZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgZnJhZ21lbnQ6IGZyYWdtZW50SWQgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnNDb250ZW50LmNoYW5nZVRhYih0YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVSb290ID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5nbyhgJHtyb3V0ZVJvb3R9IyR7ZnJhZ21lbnRJZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldENvbXBvbmVudFN0YXR1cyhpZCk6IENvbXBvbmVudFN0YXR1cyB7XG5cbiAgICAgICAgY29uc3QgZmxhdHRlbiA9IChsaW5rczogRXVpTWVudUl0ZW1bXSk6IENvbXBvbmVudFN0YXR1c1tdID0+XG4gICAgICAgICAgICBsaW5rc1xuICAgICAgICAgICAgICAgID8gbGlua3MucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHQsIGl0ZW06IENvbXBvbmVudFN0YXR1cykgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlSWQ6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogaXRlbS5tYXJrZXJUeXBlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXBSZXBsYWNlbWVudDogaXRlbS5jbXBSZXBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcFJlcGxhY2VtZW50VXJsOiBpdGVtLmNtcFJlcGxhY2VtZW50VXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wUmVwbGFjZW1lbnROb3RlOiBpdGVtLmNtcFJlcGxhY2VtZW50Tm90ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZUFwaUNhdGVnb3J5OiBpdGVtLmFsdGVybmF0ZUFwaUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IGl0ZW0ubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZsYXR0ZW4oaXRlbS5jaGlsZHJlbiksXG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIGNvbnN0IGZsYXRMaW5rcyA9IGZsYXR0ZW4odGhpcy5hc1NlcnZpY2Uuc3RhdGUuc2lkZWJhckxpbmtzKTtcbiAgICAgICAgY29uc3QgaWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKVswXTtcbiAgICAgICAgaWYgKGlkQmFzZWRDbXApIHtcbiAgICAgICAgICAgIHJldHVybiBpZEJhc2VkQ21wO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWx0ZXJuYXRlSWRCYXNlZENtcCA9IGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uYWx0ZXJuYXRlSWQgPT09IGlkKVswXTtcbiAgICAgICAgICAgIHJldHVybiBhbHRlcm5hdGVJZEJhc2VkQ21wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0QXBpVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgY29uc3QgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2w7XG4gICAgICAgIGNvbnN0IGhvc3QgPSB1cmwuaG9zdDtcbiAgICAgICAgY29uc3QgcGF0aE5hbWUgPSB1cmwucGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IHBhdGhOYW1lQXJyYXkgPSBwYXRoTmFtZS5zcGxpdCgnLycpO1xuICAgICAgICBjb25zdCBuYW1lID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDFdO1xuICAgICAgICBsZXQgY2F0ZWdvcnkgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gMl07XG5cbiAgICAgICAgbGV0IHNob3djYXNlVHlwZTtcbiAgICAgICAgc2hvd2Nhc2VUeXBlID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDNdO1xuICAgICAgICBpZiAoc2hvd2Nhc2VUeXBlLmluZGV4T2YoJ2V1aS1zaG93Y2FzZScpID09PSAtMSkge1xuICAgICAgICAgICAgc2hvd2Nhc2VUeXBlID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDRdO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb3RvY29sR2VuID0gcHJvdG9jb2w7XG4gICAgICAgIGxldCBob3N0R2VuID0gaG9zdDtcblxuICAgICAgICBpZiAoaG9zdC5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICBwcm90b2NvbEdlbiA9ICdodHRwczonO1xuICAgICAgICAgICAgaG9zdEdlbiA9ICdldWlkZXYuZWNkZXZvcHMuZXUnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVmVyc2lvbk51bWJlciA9IHRoaXMuYXBwTWV0YWRhdGEuYXBwVmVyc2lvbi5zcGxpdCgnLicpWzBdO1xuXG4gICAgICAgIGxldCBkb2NUeXBlUm9vdCA9IGBldWktZG9jcy1ldWktJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctZWNsJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtZWNsLSR7YXBwVmVyc2lvbk51bWJlcn0ueGA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3djYXNlVHlwZS5pbmRleE9mKCctbW9iaWxlJykgPiAtMSkge1xuICAgICAgICAgICAgZG9jVHlwZVJvb3QgPSBgZXVpLWRvY3MtbW9iaWxlLWNvcmUtJHthcHBWZXJzaW9uTnVtYmVyfS54YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXRlZ29yeSA9PT0gJ2xheW91dC1jb21wb25lbnRzJyB8fCBjYXRlZ29yeSA9PT0gJ2V4dGVybmFscycgfHwgY2F0ZWdvcnkgPT09ICdsYXlvdXQnIHx8IGNhdGVnb3J5ID09PSAnYXRvbXMnKSB7XG4gICAgICAgICAgICBjYXRlZ29yeSA9ICdjb21wb25lbnRzJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNtcCA9IHRoaXMuX2dldENvbXBvbmVudFN0YXR1cyhuYW1lKTtcblxuICAgICAgICBpZiAoY21wICYmIGNtcC5hbHRlcm5hdGVBcGlDYXRlZ29yeSkge1xuICAgICAgICAgICAgY2F0ZWdvcnkgPSBjbXAuYWx0ZXJuYXRlQXBpQ2F0ZWdvcnk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmb3JtYXR0ZWROYW1lID0gdGhpcy5fY2FtZWxDYXNlU3RyaW5nKG5hbWUgKyAnLScgKyBjYXRlZ29yeS5zbGljZSgwLCAtMSksICctJywgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGRvY1BhdGggPSBgJHtwcm90b2NvbEdlbn0vLyR7aG9zdEdlbn0vJHtkb2NUeXBlUm9vdH0vJHtjYXRlZ29yeX0vJHtmb3JtYXR0ZWROYW1lfS5odG1sYDtcblxuICAgICAgICBjb25zb2xlLmxvZyhgZmV0Y2hpbmcgQVBJIGZyb206ICR7ZG9jUGF0aH1gKTtcblxuICAgICAgICByZXR1cm4gZG9jUGF0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW1lbENhc2VTdHJpbmcoc3RyaW5nLCBzZXBhcmF0b3IsIGZpcnN0KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nQXJyYXkgPSBzdHJpbmcuc3BsaXQoc2VwYXJhdG9yKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBsZXQgcztcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzID0gc3RyaW5nQXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gcy5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHMuc3Vic3RyKDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHMuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlT3ZlcnZpZXcnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZU92ZXJ2aWV3Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZU92ZXJ2aWV3RGVmYXVsdCcgfSlcbmV4cG9ydCBjbGFzcyBEb2NQYWdlT3ZlcnZpZXdEZWZhdWx0Q29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUludGVyYWN0aXZlJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VJbnRlcmFjdGl2ZUNvbnRlbnREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJ0FEVkFOQ0VEIEVYQU1QTEVTJztcbiAgICBASW5wdXQoKSBzdWJUaXRsZSA9ICdBZHZhbmNlZCB1c2UgY2FzZXMnO1xufVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZVNhbXBsZXMnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVNhbXBsZXNDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlU2VjdGlvbnMnIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZVNlY3Rpb25zQ29udGVudERpcmVjdGl2ZSB7fVxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZG9jUGFnZUFjY2Vzc2liaWxpdHknIH0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUFjY2Vzc2liaWxpdHlDb250ZW50RGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdkb2NQYWdlQXBpJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VBcGlDb250ZW50RGlyZWN0aXZlIHt9XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2RvY1BhZ2VUaGVtaW5nJyB9KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VUaGVtaW5nQ29udGVudERpcmVjdGl2ZSB7fVxuLyogZXNsaW50LWVuYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yICovXG4iLCI8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi13cmFwcGVyXCIgW2NsYXNzLmV1aS11LWhpZGRlbl09XCJpc0xvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbWFpbi1jb2x1bW5cIj5cbiAgICAgICAgPGV1aS1wYWdlPlxuICAgICAgICAgICAgPGV1aS1wYWdlLWhlYWRlciBsYWJlbD1cInt7IGxhYmVsIH19XCIgc3ViTGFiZWw9XCJ7eyBzdWJMYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxldWktcGFnZS1oZWFkZXItYWN0aW9uLWl0ZW1zPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXNob3djYXNlLWRvYy1wYWdlLWNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29kZUZvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlRm9sZGVyPVwie3sgY29kZUZvbGRlciB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93Y2FzZT1cInt7IHNob3djYXNlIH19XCI+PC9ldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1jaGlwXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXRlTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVN1Y2Nlc3NdPVwic3RhdGVMYWJlbCA9PT0gJ0FDVElWRSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVdhcm5pbmddPVwic3RhdGVMYWJlbCA9PT0gJ0RFUFJFQ0FURUQgLSB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGFuZ2VyXT1cImlzTGVnYWN5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBldWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHN0YXRlTGFiZWwgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWktY2hpcD5cbiAgICAgICAgICAgICAgICA8L2V1aS1wYWdlLWhlYWRlci1hY3Rpb24taXRlbXM+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWhlYWRlcj5cblxuICAgICAgICAgICAgPGV1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdMRUdBQ1knIHx8IGlzTGVnYWN5XCIgZXVpRGFuZ2VyIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5MRUdBQ1kgY29tcG9uZW50PC9ldWktYWxlcnQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj5UaGlzIGNvbXBvbmVudCB3aWxsIGJlIHJlbW92ZWQgaW4gZVVJIDE4IHJlbGVhc2UgKGVuZCBvZiAyMDIzKTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY21wLmNtcFJlcGxhY2VtZW50ICE9PSAnTk9ORSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLXN1Y2Nlc3MtZGFya2VzdFwiPnt7IGNtcC5jbXBSZXBsYWNlbWVudCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudFVybFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgY2FuIGZpbmQgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbmV3IGNvbXBvbmVudCBoZXJlIDogPGEgW3JvdXRlckxpbmtdPVwiY21wLmNtcFJlcGxhY2VtZW50VXJsXCI+e3tjbXAuY21wUmVwbGFjZW1lbnRVcmx9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjbXAuY21wUmVwbGFjZW1lbnQgPT09ICdOT05FJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJldWktdS1jb2xvci1kYW5nZXJcIj4gVGhpcyBjb21wb25lbnQgd2lsbCBiZSByZW1vdmVkIGluIGVVSSAxOCByZWxlYXNlIChlbmQgb2YgMjAyMyk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcC5jbXBSZXBsYWNlbWVudE5vdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZXVpLXUtY29sb3Itd2FybmluZ1wiPnt7IGNtcC5jbXBSZXBsYWNlbWVudE5vdGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2V1aS1hbGVydD5cblxuICAgICAgICAgICAgICAgIDxldWktYWxlcnQgKm5nSWY9XCJzdGF0ZUxhYmVsID09PSAnREVQUkVDQVRFRCcgfHwgaXNEZXByZWNhdGVkXCIgZXVpV2FybmluZyBjbGFzcz1cImV1aS11LW1iLXhsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktYWxlcnQtdGl0bGU+REVQUkVDQVRFRCBjb21wb25lbnQ8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIGJlZW4gPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPmRlcHJlY2F0ZWQ8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaGFzIG5vIHJlcGxhY2VtZW50IGluIGN1cnJlbnQgdmVyc2lvbiBBTkQgd29uJ3QgaGF2ZSByZXBsYWNlbWVudCBpbiBuZXh0IHZlcnNpb24gb2YgZVVJLFxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImV1aS11LWNvbG9yLWRhbmdlclwiPml0IHdpbGwgYmUgcmVtb3ZlZCBpbiBlVUkgMTggcmVsZWFzZSAoZW5kIG9mIDIwMjMpPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLWFsZXJ0PlxuXG4gICAgICAgICAgICAgICAgPGV1aS1hbGVydCAqbmdJZj1cInN0YXRlTGFiZWwgPT09ICdOT1RfUkVBRFknIHx8IGlzTm90UmVhZHlcIiBldWlJbmZvIGNsYXNzPVwiZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1hbGVydC10aXRsZT5OT1QgUkVBRFkgZm9yIHByb2R1Y3Rpb24gdXNhZ2U8L2V1aS1hbGVydC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNtcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb21wb25lbnQgaXMgdW5kZXIgZGV2ZWxvcG1lbnQgLyBzb21lIGZlYXR1cmVzIG1pZ2h0IGJlIG1pc3NpbmcsIGl0J2xsIGJlIGF2YWlsYWJsZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9uY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZC5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9ldWktYWxlcnQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHN0YXRlTGFiZWwgfHwgaXNOb3RSZWFkeSB8fCBpc0RlcHJlY2F0ZWQpICYmIHN0YXRlTGFiZWwgIT09ICdBQ1RJVkUnXCIgY2xhc3M9XCJtYi01XCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZXVpLXRhYnMgI3RhYnNDb250ZW50ICpuZ0lmPVwicGFnZVNlY3Rpb25zQ29udGVudC5sZW5ndGggPT09IDBcIiAodGFiU2VsZWN0KT1cIm9uVGFiU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gT1BUSU9OUyAmIFNBTVBMRVMgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbXAgJiYgY21wLm1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+TW9kdWxlIGltcG9ydDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPjxjb2RlIGNsYXNzPVwibGFuZ3VhZ2UtamF2YXNjcmlwdCBldWktdS1iZy1jb2xvci1ncmV5LTVcIiBldWlDb2RlPnt7IGNtcE1vZHVsZUltcG9ydCB9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwib3ZlcnZpZXdcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5PdmVydmlldzwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VPdmVydmlld0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlT3ZlcnZpZXdcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0lucHV0Lmxlbmd0aCAhPT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2Utc2VjdGlvbi1zdWJ0aXRsZVwiPkNvbXBvbmVudCBBUEkgc3VtbWFyeTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJldWktdGFibGUtZGVmYXVsdCBldWktdGFibGUtZGVmYXVsdC0tY29tcGFjdCBldWktdGFibGUtZGVmYXVsdC0tcmVzcG9uc2l2ZSBldWktdGFibGUtZGVmYXVsdC0tYm9yZGVyZWQgZXVpLXUtbWIteGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImV1aS11LXRleHQtbGVmdFwiPm5hbWU8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJldWktdS10ZXh0LWxlZnRcIj5EZXNjcmlwdGlvbjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImV1aS11LXRleHQtbGVmdFwiPkRlZmF1bHQ8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzSW5wdXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5pZH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5kZXNjcmlwdGlvbn19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2FtcGxlPy5kZWZhdWx0VmFsdWV9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz1cImV1aS11LXRleHQtbGlua1wiIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZT8uaWQsMClcIj5TYW1wbGUgbGluazwvYT48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInBhZ2VPdmVydmlld0RlZmF1bHRDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZU92ZXJ2aWV3RGVmYXVsdFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInNhbXBsZXNcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5PcHRpb25zICYgc2FtcGxlczwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VTYW1wbGVzXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJoYXNBcGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gQVBJIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBpVXJsU2FmZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJ7eyBhcGlVcmwgfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cIm1zLWF1dG8gcGItMiBldWktdS10ZXh0LWxpbmstZXh0ZXJuYWxcIj5PcGVuIEFQSSBwYWdlPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLWFwaS1pZnJhbWUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD1cImlmcmFtZV9hcGlcIiBbd2lkdGhdPVwiJzEwMCUnXCIgaGVpZ2h0PVwiNzAwcHhcIiBmcmFtZUJvcmRlcj1cIjBcIiBbc3JjXT1cImFwaVVybFNhZmVcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cImhhc0ExMXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD4gQTExWSA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImFjY2Vzc2liaWxpdHlcIiBjbGFzcz1cImRvYy1wYWdlLXNlY3Rpb24tdGl0bGVcIj5BY2Nlc3NpYmlsaXR5PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggIT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZG9jUGFnZUFjY2Vzc2liaWxpdHlcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VBY2Nlc3NpYmlsaXR5Q29udGVudC5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gYWNjZXNzaWJpbGl0eSBydWxlcyBhcHBsaWNhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cblxuICAgICAgICAgICAgICAgICAgICA8ZXVpLXRhYiAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+IFRIRU1JTkcgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJ0aGVtaW5nXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+VGhlbWluZzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRvY1BhZ2VUaGVtaW5nXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS10YWIgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImludGVyYWN0aXZlXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHBhZ2VJbnRlcmFjdGl2ZUNvbnRlbnQuZmlyc3Quc3ViVGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlSW50ZXJhY3RpdmVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWJzPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiZGVtb1wiICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJkb2MtcGFnZS1zZWN0aW9uLXRpdGxlXCI+RGVtbzwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkb2NQYWdlU2VjdGlvbnNcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLXBhZ2U+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNOYXZpZ2F0aW9uVmlzaWJsZVwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb2x1bW4gZXVpLXUtaGlkZGVuLWRlc2t0b3AtZG93blwiPlxuICAgICAgICA8ZGl2IGlkPVwiZG9jLXBhZ2UtbmF2XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi10aXRsZVwiPkluIHRoaXMgcGFnZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY29udGVudFwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VTZWN0aW9uc0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0FwaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhcGknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYXBpJywgMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BUEk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNBMTF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2ExMXknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYTExeScsIDIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QTExWTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ3NhbXBsZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnc2FtcGxlcycsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+T1BUSU9OUyAmIFNBTVBMRVM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24tc3ViXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ2F0ZWdvcmllczsgZWxzZSBub0NhdGVnb3JpZXNcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzRGVmYXVsdFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc1ZhcmlhbnQubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWNhdGVnb3J5XCI+VmFyaWFudHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2FtcGxlIG9mIHNhbXBsZXNWYXJpYW50XCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLXN1YlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNhbXBsZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZS5pZCwgMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0lucHV0Lmxlbmd0aCAhPT0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jYXRlZ29yeVwiPklucHV0czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBzYW1wbGUgb2Ygc2FtcGxlc0lucHV0XCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLXN1YlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IHNhbXBsZS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNhbXBsZS5pZCwgMClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2FtcGxlLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2FtcGxlc0NvbnRlbnQubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWNhdGVnb3J5XCI+U3ViIGNvbnRlbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzQ29udGVudFwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS1zdWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzYW1wbGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNhbXBsZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNhbXBsZXNPdGhlci5sZW5ndGggIT09MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tY2F0ZWdvcnlcIj5PdGhlciBzYW1wbGVzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNhbXBsZSBvZiBzYW1wbGVzT3RoZXJcIiBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbSBkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tc3ViXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gc2FtcGxlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soc2FtcGxlLmlkLCAwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzYW1wbGUubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NhdGVnb3JpZXM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzYW1wbGVzT3RoZXIubGVuZ3RoICE9PTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgc2FtcGxlIG9mIHNhbXBsZXNPdGhlclwiIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtIGRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS1zdWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzYW1wbGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljayhzYW1wbGUuaWQsIDApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNhbXBsZS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG5cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE9QVElPTkFMIFRBQlMtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VUaGVtaW5nQ29udGVudC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAndGhlbWluZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygndGhlbWluZycsIDMpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlRIRU1JTkc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlSW50ZXJhY3RpdmVDb250ZW50Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09ICdhZHZhbmNlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnYWR2YW5jZWQnLCA0KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwYWdlSW50ZXJhY3RpdmVDb250ZW50LmZpcnN0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlVGhlbWluZ0NvbnRlbnQubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFnZUludGVyYWN0aXZlQ29udGVudC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnYWR2YW5jZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTmF2Q2xpY2soJ2FkdmFuY2VkJywgMylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcGFnZUludGVyYWN0aXZlQ29udGVudC5maXJzdC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYWdlU2VjdGlvbnNDb250ZW50Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSAnc2VjdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnc2VjdGlvbnMnLCBudWxsKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlNlY3Rpb25zPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRvYy1wYWdlLW5hdmlnYXRpb24taXRlbS0tc2VsZWN0ZWRdPVwiZnJhZ21lbnRJZCA9PT0gJ2RlbW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25OYXZDbGljaygnZGVtbycsIG51bGwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+RGVtbzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJzZWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0gZG9jLXBhZ2UtbmF2aWdhdGlvbi1zdWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvYy1wYWdlLW5hdmlnYXRpb24taXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtLS1zZWxlY3RlZF09XCJmcmFnbWVudElkID09PSBzZWN0aW9uLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5hdkNsaWNrKHNlY3Rpb24uaWQsIG51bGwpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBzZWN0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -12,8 +12,8 @@ export class DocPageCodeComponent {
12
12
  const sourceRootPath = `https://citnet.tech.ec.europa.eu/CITnet/stash/projects/CSDR/repos/app-eui-showcase-${this.showcase}/browse/src/app/`;
13
13
  window.open(sourceRootPath + this.codeFolder, '_blank');
14
14
  }
15
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, ngImport: i0, template: "<button type=\"button\" euiButton euiAccent (click)=\"onOpenCode()\">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass=\"eui-icon eui-icon-code\"></span>\n</button>\n", dependencies: [{ kind: "component", type: i1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i2.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.3", type: DocPageCodeComponent, selector: "eui-showcase-doc-page-code", inputs: { codeFolder: "codeFolder", showcase: "showcase" }, ngImport: i0, template: "<button type=\"button\" euiButton euiAccent (click)=\"onOpenCode()\">\n <span euiLabel>Check the code</span>\n <span euiIcon iconClass=\"eui-icon eui-icon-code\"></span>\n</button>\n", dependencies: [{ kind: "component", type: i1.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i2.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }] }); }
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3", ngImport: i0, type: DocPageCodeComponent, decorators: [{
19
19
  type: Component,
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.3",
23
23
  }], showcase: [{
24
24
  type: Input
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UtY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZG9jLXBhZ2UtY29kZS9kb2MtcGFnZS1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS1jb2RlL2RvYy1wYWdlLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNakQsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUthLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQztLQU81QjtJQUxHLFVBQVU7UUFDTixtQ0FBbUM7UUFDbkMsTUFBTSxjQUFjLEdBQUcsc0ZBQXNGLElBQUksQ0FBQyxRQUFRLGtCQUFrQixDQUFDO1FBQzdJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQzt3SUFSUSxvQkFBb0I7NEhBQXBCLG9CQUFvQiw4SENOakMsOExBSUE7O2tHREVhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSw0QkFBNEI7OEJBSTdCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkb2MtcGFnZS1jb2RlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvZGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvZGVGb2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBzaG93Y2FzZSA9ICd1eCc7XG5cbiAgICBvbk9wZW5Db2RlKCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICBjb25zdCBzb3VyY2VSb290UGF0aCA9IGBodHRwczovL2NpdG5ldC50ZWNoLmVjLmV1cm9wYS5ldS9DSVRuZXQvc3Rhc2gvcHJvamVjdHMvQ1NEUi9yZXBvcy9hcHAtZXVpLXNob3djYXNlLSR7dGhpcy5zaG93Y2FzZX0vYnJvd3NlL3NyYy9hcHAvYDtcbiAgICAgICAgd2luZG93Lm9wZW4oc291cmNlUm9vdFBhdGggKyB0aGlzLmNvZGVGb2xkZXIsICdfYmxhbmsnKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBldWlCdXR0b24gZXVpQWNjZW50IChjbGljayk9XCJvbk9wZW5Db2RlKClcIj5cbiAgICA8c3BhbiBldWlMYWJlbD5DaGVjayB0aGUgY29kZTwvc3Bhbj5cbiAgICA8c3BhbiBldWlJY29uIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLWNvZGVcIj48L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UtY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZG9jLXBhZ2UtY29kZS9kb2MtcGFnZS1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS1jb2RlL2RvYy1wYWdlLWNvZGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNakQsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUthLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBUSxHQUFHLElBQUksQ0FBQztLQU81QjtJQUxHLFVBQVU7UUFDTixtQ0FBbUM7UUFDbkMsTUFBTSxjQUFjLEdBQUcsc0ZBQXNGLElBQUksQ0FBQyxRQUFRLGtCQUFrQixDQUFDO1FBQzdJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQztxSEFSUSxvQkFBb0I7eUdBQXBCLG9CQUFvQiw4SENOakMsOExBSUE7O2tHREVhLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDSSw0QkFBNEI7OEJBSTdCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UtY29kZScsXG4gICAgdGVtcGxhdGVVcmw6ICdkb2MtcGFnZS1jb2RlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRG9jUGFnZUNvZGVDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvZGVGb2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBzaG93Y2FzZSA9ICd1eCc7XG5cbiAgICBvbk9wZW5Db2RlKCk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICBjb25zdCBzb3VyY2VSb290UGF0aCA9IGBodHRwczovL2NpdG5ldC50ZWNoLmVjLmV1cm9wYS5ldS9DSVRuZXQvc3Rhc2gvcHJvamVjdHMvQ1NEUi9yZXBvcy9hcHAtZXVpLXNob3djYXNlLSR7dGhpcy5zaG93Y2FzZX0vYnJvd3NlL3NyYy9hcHAvYDtcbiAgICAgICAgd2luZG93Lm9wZW4oc291cmNlUm9vdFBhdGggKyB0aGlzLmNvZGVGb2xkZXIsICdfYmxhbmsnKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBldWlCdXR0b24gZXVpQWNjZW50IChjbGljayk9XCJvbk9wZW5Db2RlKClcIj5cbiAgICA8c3BhbiBldWlMYWJlbD5DaGVjayB0aGUgY29kZTwvc3Bhbj5cbiAgICA8c3BhbiBldWlJY29uIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLWNvZGVcIj48L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==