@dignite-ng/expand.cms 2.0.0-rc.7 → 2.0.0-rc.9

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.
@@ -181,7 +181,7 @@ export class EntriesComponent {
181
181
  provide: EXTENSIONS_IDENTIFIER,
182
182
  useValue: ECmsComponent.Entries,
183
183
  },
184
- ], ngImport: i0, template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\" >\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i10.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
184
+ ], ngImport: i0, template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"true\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template >\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"true\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i8.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i8.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i8.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i10.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i11.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "pipe", type: i4.LocalizationPipe, name: "abpLocalization" }] }); }
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: EntriesComponent, decorators: [{
187
187
  type: Component,
@@ -194,6 +194,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
194
194
  provide: EXTENSIONS_IDENTIFIER,
195
195
  useValue: ECmsComponent.Entries,
196
196
  },
197
- ], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n \r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\"\r\n [columnMode]=\"ColumnMode.force\" [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\"\r\n [virtualization]=\"false\" [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\" [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\" >\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
197
+ ], template: "<abp-page [title]=\"'Cms::Entries' | abpLocalization\" [toolbar]=\"true\">\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length < 1\" class=\"col \"></abp-page-toolbar-container>\r\n <abp-page-toolbar-container *ngIf=\"entryTypeList.length > 1\" class=\"col \">\r\n <div class=\"row justify-content-end mx-0 gap-2\" *abpPermission=\"'CmsAdmin.Entry.Create'\">\r\n <div class=\"col-auto px-0 pt-0\">\r\n <div ngbDropdown class=\"d-inline-block\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm ms-2\" id=\"dropdownBasic1\" ngbDropdownToggle>\r\n <i class=\"fa fa-plus pe-1\" aria-hidden=\"true\"></i>{{'Cms::New' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <button ngbDropdownItem [routerLink]=\"['/cms/admin/entries/create']\"\r\n [queryParams]=\"{cultureName: filters.culture,sectionId:filters.sectionId,entryTypeId:item.id}\">{{item.displayName}}</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </abp-page-toolbar-container>\r\n <div id=\"sites-page\" class=\"sites-page\">\r\n <div class=\"card\">\r\n <div class=\"card-body px-2 py-sm-2 border-bottom\" [formGroup]=\"filtersForm\">\r\n <div class=\"row align-items-end\">\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'Cms::Sections' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"sectionId\" (change)=\"sectionIdChange()\">\r\n <ng-container *ngFor=\"let item of SiteOfSectionList\">\r\n <option [value]=\"item.id\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Languages' | abpLocalization}}\uFF1A</label>\r\n <select class=\"form-select col-auto\" formControlName=\"culture\" (change)=\"cultureChange()\">\r\n <ng-container *ngFor=\"let item of sectionLanguagesList\">\r\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\r\n </ng-container>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-3 col-3\">\r\n <label class=\"form-label\">{{'AbpUi::Search' | abpLocalization}}\uFF1A</label>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"filter\"\r\n [placeholder]=\"'AbpUi::Search' | abpLocalization\" />\r\n </div>\r\n <div class=\"mb-3 col-3\">\r\n <button class=\"btn btn-primary px-3\" type=\"button\" id=\"button-addon2\" (click)=\"resetData()\">\r\n <i class=\"fa fa-search\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card mb-0\">\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive table-fixed-header\">\r\n <ngx-datatable class=\"material \" [rows]=\"data.items\" [list]=\"list\" [columnMode]=\"ColumnMode.force\"\r\n [headerHeight]=\"50\" [footerHeight]=\"50\" rowHeight=\"auto\" [virtualization]=\"false\"\r\n [externalPaging]=\"true\" [count]=\"data.totalCount\" [scrollbarH]=\"true\">\r\n <ngx-datatable-column [name]=\"'Cms::Title' | abpLocalization\" prop=\"title\" [sortable]=\"true\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::EntryType' | abpLocalization\" prop=\"entryTypeId\" [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template >\r\n <ng-container *ngFor=\"let item of entryTypeList\">\r\n <ng-container *ngIf=\"item.id === value\">{{item.displayName}}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Slug' | abpLocalization\" prop=\"slug\" [sortable]=\"true\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{ value }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::Status' | abpLocalization\" prop=\"status\" [width]=\"80\"\r\n [sortable]=\"false\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <ng-container *ngFor=\"let item of _entryStatusOptions\">\r\n <ng-container *ngIf=\"item.value=== value\">{{ 'Cms::Enum:EntryStatus:'+item.key |\r\n abpLocalization }}</ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [name]=\"'Cms::PublishTime' | abpLocalization\" prop=\"publishTime\"\r\n [width]=\"190\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n {{value | date: 'YYYY/MM/dd HH:mm:s' }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <ngx-datatable-column [sortable]=\"false\" [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [frozenLeft]=\"true\" [width]=\"110\" [maxWidth]=\"110\">\r\n <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\">\r\n <button type=\"button\" class=\"btn btn-primary btn-sm\" ngbDropdownToggle>\r\n <i class=\"me-1 fa fa-cog\"></i> {{'AbpUi::Actions' | abpLocalization}}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <button ngbDropdownItem\r\n routerLink=\"/cms/admin/entries/{{row.id}}/edit\">{{'AbpUi::Edit' |\r\n abpLocalization}}</button>\r\n <button ngbDropdownItem (click)=\"deletefield(row)\">{{'AbpUi::Delete' |\r\n abpLocalization}}</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</abp-page>", styles: ["::ng-deep .sites-page .dignite_page{background:transparent}::ng-deep .sites-page .list-group-flush>.list-group-item:first-child{border-top-width:var(--bs-list-group-border-width)}::ng-deep .sites-page .card-header input{flex:2 1 auto}::ng-deep .sites-page .card-header .form-select{padding:.475rem 3.75rem .475rem 1.25rem}::ng-deep .sites-page .morentr{border:2px solid transparent}::ng-deep .sites-page .borderdrag{border:2px solid var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .borderdragtd{background-color:var(--ck-color-selector-column-resizer-hover)!important}::ng-deep .sites-page .testtr{border-color:transparent}::ng-deep .sites-page .testtr td{padding:2px}::ng-deep .sites-page .testtr:hover{background-color:transparent}.cdk-drag-preview{display:table;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:0}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}::ng-deep .sites-modal-form .form-control{padding:.4rem 1.25rem}\n"] }]
198
198
  }], ctorParameters: () => [{ type: i1.EntryAdminService }, { type: i2.SectionAdminService }, { type: i3.ToasterService }, { type: i3.ConfirmationService }, { type: i4.ConfigStateService }, { type: i5.Router }, { type: i4.LocalizationService }] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUE0QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUIvRixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1Usa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxXQUErQixFQUMvQixNQUFjLEVBQ2Qsb0JBQXlDO1FBTnpDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7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LGdCQUFnQjtrQkFmNUIsU0FBUzsrQkFDRSxhQUFhLGFBR1o7d0JBQ1QsV0FBVzt3QkFDWCw0REFBNEQ7d0JBQzVELHVFQUF1RTt3QkFDdkUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTt3QkFDcEQ7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxPQUFPO3lCQUNoQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSBcIkBhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlXCI7XG5pbXBvcnQgeyBMaXN0U2VydmljZSwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBDb25maWdTdGF0ZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvLCBBQlAgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybWF0aW9uIH0gZnJvbSBcIkBhYnAvbmcudGhlbWUuc2hhcmVkXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vZW51bXNcIjtcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSBcIkBkaWduaXRlLW5nL2V4cGFuZC5jb3JlXCI7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSwgRW50cnlEdG8sIEdldEVudHJpZXNJbnB1dCB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9lbnRyaWVzXCI7XG5pbXBvcnQgeyBTZWN0aW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL3NlY3Rpb25zXCI7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvZW50cmllc1wiO1xuaW1wb3J0IHsgUmVnaW9uYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9kaWduaXRlL2FicC9yZWdpb25hbGl6YXRpb24tbWFuYWdlbWVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZW50cmllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cmllcy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBQcm92aWRlIHRoaXMgdG9rZW4gaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQgZGVib3VuY2UgdGltZS5cbiAgICAvLyBEZWZhdWx0IGlzIDMwMC4gQ2Fubm90IGJlIDAuIEFueSB2YWx1ZSBiZWxvdyAxMDAgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRW50cmllcyxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudHJpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX0VudHJ5QWRtaW5TZXJ2aWNlOiBFbnRyeUFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlOiBTZWN0aW9uQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSlcbiAgcHVibGljIHJlYWRvbmx5IGxpc3QgPSBpbmplY3QoTGlzdFNlcnZpY2UpXG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFBhZ2VEYXRlKClcbiAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0RXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgIH0pO1xuICB9XG5cbiAgLyoq56uZ54K55LiL55qE54mI5Z2XICovXG4gIFNpdGVPZlNlY3Rpb25MaXN0OiBhbnlbYW55XSA9IFtdXG5cblxuICAvKirniYjlnZfkuIvnmoTor63oqIDliJfooaggKi9cbiAgc2VjdGlvbkxhbmd1YWdlc0xpc3Q6IGFueVthbnldID0gW11cbiAgLyoq54mI5Z2X5LiL55qE5p2h55uu57G75Z6L5YiX6KGoICovXG4gIGVudHJ5VHlwZUxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq54q25oCB57yW56CBICovXG4gIF9lbnRyeVN0YXR1c09wdGlvbnMgPSBlbnRyeVN0YXR1c09wdGlvbnNcblxuICAvKirojrflj5bpobXpnaLmlbDmja4gKi9cbiAgYXN5bmMgZ2V0UGFnZURhdGUoKSB7XG4gICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpXG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzRm9ybS52YWx1ZVxuICAgIHRoaXMuaG9va1RvUXVlcnkoKVxuICB9XG5cblxuICAvKirliIfmjaLmnb/lnZcgKi9cbiAgYXN5bmMgc2VjdGlvbklkQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0U2VjdGlvbk9mRW50cnlUeXBlKClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLnJlc2V0RGF0YSgpXG4gIH1cbiAgLyoq5YiH5o2i6K+t6KiAICovXG4gIGFzeW5jIGN1bHR1cmVDaGFuZ2UoKSB7XG4gICAgdGhpcy5yZXNldERhdGEoKVxuICB9XG5cblxuICAvKirojrflj5bnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgIH0pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLlNpdGVPZlNlY3Rpb25MaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzZWN0aW9uSWQnKS5wYXRjaFZhbHVlKHJlcy5pdGVtc1swXT8uaWQgfHwgJycpXG4gICAgICAgIHRoaXMuZ2V0U2VjdGlvbk9mRW50cnlUeXBlKClcbiAgICAgICAgcmVzb2x2ZShyZXMuaXRlbXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bniYjlnZfkuIvnmoTmnaHnm67nsbvlnosgKi9cbiAgZ2V0U2VjdGlvbk9mRW50cnlUeXBlKCkge1xuICAgIGxldCBzZWN0aW9uSWQgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnc2VjdGlvbklkJykudmFsdWVcbiAgICB0aGlzLmVudHJ5VHlwZUxpc3QgPSB0aGlzLlNpdGVPZlNlY3Rpb25MaXN0LmZpbmQoZWwgPT4gZWwuaWQgPT0gc2VjdGlvbklkKT8uZW50cnlUeXBlcyB8fCBbXVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKVxuICBwcml2YXRlIF9SZWdpb25hbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KFJlZ2lvbmFsaXphdGlvblNlcnZpY2UpXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8v6I635Y+W5omA5pyJ6K+t6KiAICovXG4gICAgICBsZXQgbGFuZ3VhZ2VzU3lzdGVtID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgICAgIC8v6I635Y+W57O757uf6buY6K6k6K+t6KiAICovXG4gICAgICBsZXQgRGVmYXVsdExhbmd1YWdlID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkFicC5SZWdpb25hbGl6YXRpb24uRGVmYXVsdEN1bHR1cmVOYW1lXCIpO1xuICAgICAgY29uc3QgY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldFNldHRpbmcoXCJDbXMuU2l0ZS5MYW5ndWFnZXNcIilcbiAgICAgIGlmKCFjb25maWdDbXNTaXRlTGFuZ3VhZ2VzKXtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRTaXRlU2V0dGluZ3NMYW5ndWFnZXMoKVxuICAgICAgfVxuICAgICAgY29uc3QgTGFuZ3VhZ2VzU2l0ZSA9IChjb25maWdDbXNTaXRlTGFuZ3VhZ2VzID8gY29uZmlnQ21zU2l0ZUxhbmd1YWdlcy5zcGxpdCgnLCcpIDogJycpIHx8IHRoaXMuU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXNcbiAgICAgIGxldCBMYW5ndWFnZXNBcnJheSA9IGxhbmd1YWdlc1N5c3RlbS5maWx0ZXIoZWwgPT4gTGFuZ3VhZ2VzU2l0ZS5pbmNsdWRlcyhlbC5jdWx0dXJlTmFtZSkpXG4gICAgICAvL+iOt+WPluW9k+WJjemAieaLqeeahOivreiogFxuICAgICAgbGV0IG5vd2N1bHR1cmUgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAvL+W9k+WJjemAieaLqeeahOivreiogO+8jOaYr+WQpuWcqOeJiOWdl+eahOeahOivreiogOWIl+ihqOS4rVxuICAgICAgbGV0IGlzZXhpc3QgPSBMYW5ndWFnZXNBcnJheS5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IG5vd2N1bHR1cmUpXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnBhdGNoVmFsdWUobm93Y3VsdHVyZSA/IGlzZXhpc3QgPyBub3djdWx0dXJlIDogRGVmYXVsdExhbmd1YWdlIDogRGVmYXVsdExhbmd1YWdlKVxuICAgICAgdGhpcy5zZWN0aW9uTGFuZ3VhZ2VzTGlzdCA9IExhbmd1YWdlc0FycmF5XG4gICAgICByZXNvbHZlKExhbmd1YWdlc0FycmF5KVxuICAgIH0pXG4gIH1cblxuICAvKirnq5nngrnorr7nva7or63oqIAgKi9cbiAgU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXM6IGFueVtdID0gW11cbiAgLyoqXG4gICAqIOiOt+WPluermeeCueiuvue9ruivreiogFxuICAgKi9cbiAgZ2V0U2l0ZVNldHRpbmdzTGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fUmVnaW9uYWxpemF0aW9uU2VydmljZS5nZXQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5TaXRlU2V0dGluZ3NBZG1pbkxhbmd1YWdlcyA9IHJlcy5hdmFpbGFibGVDdWx0dXJlTmFtZXNcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG5cbiAgcmVzZXREYXRhKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVcbiAgICB0aGlzLmxpc3QucGFnZSA9IDBcbiAgICB0aGlzLmRhdGEuaXRlbXMgPSBbXVxuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cbiAgLyoq5paw5aKeLeWNleS4qiAqL1xuICBjcmVhdGVFbnRyaWVzQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuICBjcmVhdGVDb3B5RW50cmllc0J0bigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUtY29weSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIl+ihqOebuOWFsyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RW50cnlEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRFbnRyaWVzSW5wdXQ7XG4gIGZpbHRlcnNGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzaXRlSWQ6IFsnJ10sXG4gICAgc2VjdGlvbklkOiBbJyddLFxuICAgIGN1bHR1cmU6IFsnJ10sXG4gICAgZmlsdGVyOiBbJyddLFxuICB9KVxuXG4gIGhvb2tUb1F1ZXJ5KCkge1xuXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPikgPT4ge1xuICAgICAgdGhpcy5kYXRhID0gbGlzdFxuICAgIH07XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuXG5cbiAgLyoq5Yig6Zmk5p2h55uuICovXG4gIGRlbGV0ZWZpZWxkKHJvdzogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIHJvdy5kaXNwbGF5TmFtZSxcbiAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApLFxuICAgICkuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmRlbGV0ZShyb3cuaWQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6RGVsZXRlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpFbnRyaWVzJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5VHlwZUxpc3QubGVuZ3RoIDwgMVwiIGNsYXNzPVwiY29sIFwiPjwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgKm5nSWY9XCJlbnRyeVR5cGVMaXN0Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvbCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgbXgtMCBnYXAtMlwiICphYnBQZXJtaXNzaW9uPVwiJ0Ntc0FkbWluLkVudHJ5LkNyZWF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHB4LTAgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG1zLTJcIiBpZD1cImRyb3Bkb3duQmFzaWMxXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBwZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPnt7J0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSBbcm91dGVyTGlua109XCJbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIntjdWx0dXJlTmFtZTogZmlsdGVycy5jdWx0dXJlLHNlY3Rpb25JZDpmaWx0ZXJzLnNlY3Rpb25JZCxlbnRyeVR5cGVJZDppdGVtLmlkfVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgaWQ9XCJzaXRlcy1wYWdlXCIgY2xhc3M9XCJzaXRlcy1wYWdlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweC0yIHB5LXNtLTIgYm9yZGVyLWJvdHRvbVwiIFtmb3JtR3JvdXBdPVwiZmlsdGVyc0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6U2VjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWN0aW9uSWRcIiAoY2hhbmdlKT1cInNlY3Rpb25JZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIFNpdGVPZlNlY3Rpb25MaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpMYW5ndWFnZXMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJjdWx0dXJlXCIgKGNoYW5nZSk9XCJjdWx0dXJlQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VjdGlvbkxhbmd1YWdlc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIGNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydBYnBVaTo6U2VhcmNoJyB8IGFicExvY2FsaXphdGlvbn1977yaPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTNcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24yXCIgKGNsaWNrKT1cInJlc2V0RGF0YSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIiBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmlydHVhbGl6YXRpb25dPVwiZmFsc2VcIiBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbc2Nyb2xsYmFySF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpFbnRyeVR5cGUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cImVudHJ5VHlwZUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pZCA9PT0gdmFsdWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInNsdWdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpTdGF0dXMnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInN0YXR1c1wiIFt3aWR0aF09XCI4MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9lbnRyeVN0YXR1c09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udmFsdWU9PT0gdmFsdWVcIj57eyAnQ21zOjpFbnVtOkVudHJ5U3RhdHVzOicraXRlbS5rZXkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9uIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6UHVibGlzaFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInB1Ymxpc2hUaW1lXCIgW3dpZHRoXT1cIjE5MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlIHwgZGF0ZTogJ1lZWVkvTU0vZGQgSEg6bW06cycgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbc29ydGFibGVdPVwiZmFsc2VcIiAgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZnJvemVuTGVmdF09XCJ0cnVlXCIgW3dpZHRoXT1cIjExMFwiIFttYXhXaWR0aF09XCIxMTBcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiBuZ2JEcm9wZG93blRvZ2dsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWUtMSBmYSBmYS1jb2dcIj48L2k+IHt7J0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jbXMvYWRtaW4vZW50cmllcy97e3Jvdy5pZH19L2VkaXRcIj57eydBYnBVaTo6RWRpdCcgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZGVsZXRlZmllbGQocm93KVwiPnt7J0FicFVpOjpEZWxldGUnIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvYWJwLXBhZ2U+Il19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUE0QyxNQUFNLGNBQWMsQ0FBQztBQUVuSSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBaUIvRixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1Usa0JBQXFDLEVBQ3JDLG9CQUF5QyxFQUN6QyxPQUF1QixFQUN2QixZQUFpQyxFQUNqQyxXQUErQixFQUMvQixNQUFjLEVBQ2Qsb0JBQXlDO1FBTnpDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7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LGdCQUFnQjtrQkFmNUIsU0FBUzsrQkFDRSxhQUFhLGFBR1o7d0JBQ1QsV0FBVzt3QkFDWCw0REFBNEQ7d0JBQzVELHVFQUF1RTt3QkFDdkUsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTt3QkFDcEQ7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxPQUFPO3lCQUNoQztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSBcIkBhYnAvbmcuY29tcG9uZW50cy9leHRlbnNpYmxlXCI7XG5pbXBvcnQgeyBMaXN0U2VydmljZSwgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCBDb25maWdTdGF0ZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvLCBBQlAgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybWF0aW9uIH0gZnJvbSBcIkBhYnAvbmcudGhlbWUuc2hhcmVkXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IENvbHVtbk1vZGUgfSBmcm9tIFwiQHN3aW1sYW5lL25neC1kYXRhdGFibGVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vZW51bXNcIjtcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSBcIkBkaWduaXRlLW5nL2V4cGFuZC5jb3JlXCI7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSwgRW50cnlEdG8sIEdldEVudHJpZXNJbnB1dCB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9kaWduaXRlL2Ntcy9hZG1pbi9lbnRyaWVzXCI7XG5pbXBvcnQgeyBTZWN0aW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL3NlY3Rpb25zXCI7XG5pbXBvcnQgeyBlbnRyeVN0YXR1c09wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvZW50cmllc1wiO1xuaW1wb3J0IHsgUmVnaW9uYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9wcm94eS9kaWduaXRlL2FicC9yZWdpb25hbGl6YXRpb24tbWFuYWdlbWVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtZW50cmllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50cmllcy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBMaXN0U2VydmljZSxcbiAgICAvLyBQcm92aWRlIHRoaXMgdG9rZW4gaWYgeW91IHdhbnQgYSBkaWZmZXJlbnQgZGVib3VuY2UgdGltZS5cbiAgICAvLyBEZWZhdWx0IGlzIDMwMC4gQ2Fubm90IGJlIDAuIEFueSB2YWx1ZSBiZWxvdyAxMDAgaXMgbm90IHJlY29tbWVuZGVkLlxuICAgIHsgcHJvdmlkZTogTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLCB1c2VWYWx1ZTogNTAwIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuRW50cmllcyxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudHJpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX0VudHJ5QWRtaW5TZXJ2aWNlOiBFbnRyeUFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIF9TZWN0aW9uQWRtaW5TZXJ2aWNlOiBTZWN0aW9uQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSlcbiAgcHVibGljIHJlYWRvbmx5IGxpc3QgPSBpbmplY3QoTGlzdFNlcnZpY2UpXG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldFBhZ2VEYXRlKClcbiAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0RXZlbnQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubGlzdC5nZXQoKVxuICAgIH0pO1xuICB9XG5cbiAgLyoq56uZ54K55LiL55qE54mI5Z2XICovXG4gIFNpdGVPZlNlY3Rpb25MaXN0OiBhbnlbYW55XSA9IFtdXG5cblxuICAvKirniYjlnZfkuIvnmoTor63oqIDliJfooaggKi9cbiAgc2VjdGlvbkxhbmd1YWdlc0xpc3Q6IGFueVthbnldID0gW11cbiAgLyoq54mI5Z2X5LiL55qE5p2h55uu57G75Z6L5YiX6KGoICovXG4gIGVudHJ5VHlwZUxpc3Q6IGFueVthbnldID0gW11cbiAgLyoq54q25oCB57yW56CBICovXG4gIF9lbnRyeVN0YXR1c09wdGlvbnMgPSBlbnRyeVN0YXR1c09wdGlvbnNcblxuICAvKirojrflj5bpobXpnaLmlbDmja4gKi9cbiAgYXN5bmMgZ2V0UGFnZURhdGUoKSB7XG4gICAgYXdhaXQgdGhpcy5nZXRTaXRlT2ZTZWN0aW9uTGlzdCgpXG4gICAgYXdhaXQgdGhpcy5nZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpXG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzRm9ybS52YWx1ZVxuICAgIHRoaXMuaG9va1RvUXVlcnkoKVxuICB9XG5cblxuICAvKirliIfmjaLmnb/lnZcgKi9cbiAgYXN5bmMgc2VjdGlvbklkQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0U2VjdGlvbk9mRW50cnlUeXBlKClcbiAgICBhd2FpdCB0aGlzLmdldFNlY3Rpb25MYW5ndWFnZXNMaXN0KClcbiAgICB0aGlzLnJlc2V0RGF0YSgpXG4gIH1cbiAgLyoq5YiH5o2i6K+t6KiAICovXG4gIGFzeW5jIGN1bHR1cmVDaGFuZ2UoKSB7XG4gICAgdGhpcy5yZXNldERhdGEoKVxuICB9XG5cblxuICAvKirojrflj5bnq5nngrnkuIvnmoTniYjlnZcgKi9cbiAgZ2V0U2l0ZU9mU2VjdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgIH0pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLlNpdGVPZlNlY3Rpb25MaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHRoaXMuZmlsdGVyc0Zvcm0uZ2V0KCdzZWN0aW9uSWQnKS5wYXRjaFZhbHVlKHJlcy5pdGVtc1swXT8uaWQgfHwgJycpXG4gICAgICAgIHRoaXMuZ2V0U2VjdGlvbk9mRW50cnlUeXBlKClcbiAgICAgICAgcmVzb2x2ZShyZXMuaXRlbXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bniYjlnZfkuIvnmoTmnaHnm67nsbvlnosgKi9cbiAgZ2V0U2VjdGlvbk9mRW50cnlUeXBlKCkge1xuICAgIGxldCBzZWN0aW9uSWQgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnc2VjdGlvbklkJykudmFsdWVcbiAgICB0aGlzLmVudHJ5VHlwZUxpc3QgPSB0aGlzLlNpdGVPZlNlY3Rpb25MaXN0LmZpbmQoZWwgPT4gZWwuaWQgPT0gc2VjdGlvbklkKT8uZW50cnlUeXBlcyB8fCBbXVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKVxuICBwcml2YXRlIF9SZWdpb25hbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KFJlZ2lvbmFsaXphdGlvblNlcnZpY2UpXG4gIC8qKuiOt+WPlueJiOWdl+S4i+eahOivreiogOWIl+ihqCAqL1xuICBnZXRTZWN0aW9uTGFuZ3VhZ2VzTGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIC8v6I635Y+W5omA5pyJ6K+t6KiAICovXG4gICAgICBsZXQgbGFuZ3VhZ2VzU3lzdGVtID0gdGhpcy5jb25maWdTdGF0ZS5nZXREZWVwKCdsb2NhbGl6YXRpb24ubGFuZ3VhZ2VzJylcbiAgICAgIC8v6I635Y+W57O757uf6buY6K6k6K+t6KiAICovXG4gICAgICBsZXQgRGVmYXVsdExhbmd1YWdlID0gdGhpcy5jb25maWcuZ2V0U2V0dGluZyhcIkFicC5SZWdpb25hbGl6YXRpb24uRGVmYXVsdEN1bHR1cmVOYW1lXCIpO1xuICAgICAgY29uc3QgY29uZmlnQ21zU2l0ZUxhbmd1YWdlcyA9IHRoaXMuY29uZmlnLmdldFNldHRpbmcoXCJDbXMuU2l0ZS5MYW5ndWFnZXNcIilcbiAgICAgIGlmKCFjb25maWdDbXNTaXRlTGFuZ3VhZ2VzKXtcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRTaXRlU2V0dGluZ3NMYW5ndWFnZXMoKVxuICAgICAgfVxuICAgICAgY29uc3QgTGFuZ3VhZ2VzU2l0ZSA9IChjb25maWdDbXNTaXRlTGFuZ3VhZ2VzID8gY29uZmlnQ21zU2l0ZUxhbmd1YWdlcy5zcGxpdCgnLCcpIDogJycpIHx8IHRoaXMuU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXNcbiAgICAgIGxldCBMYW5ndWFnZXNBcnJheSA9IGxhbmd1YWdlc1N5c3RlbS5maWx0ZXIoZWwgPT4gTGFuZ3VhZ2VzU2l0ZS5pbmNsdWRlcyhlbC5jdWx0dXJlTmFtZSkpXG4gICAgICAvL+iOt+WPluW9k+WJjemAieaLqeeahOivreiogFxuICAgICAgbGV0IG5vd2N1bHR1cmUgPSB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAvL+W9k+WJjemAieaLqeeahOivreiogO+8jOaYr+WQpuWcqOeJiOWdl+eahOeahOivreiogOWIl+ihqOS4rVxuICAgICAgbGV0IGlzZXhpc3QgPSBMYW5ndWFnZXNBcnJheS5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IG5vd2N1bHR1cmUpXG4gICAgICB0aGlzLmZpbHRlcnNGb3JtLmdldCgnY3VsdHVyZScpLnBhdGNoVmFsdWUobm93Y3VsdHVyZSA/IGlzZXhpc3QgPyBub3djdWx0dXJlIDogRGVmYXVsdExhbmd1YWdlIDogRGVmYXVsdExhbmd1YWdlKVxuICAgICAgdGhpcy5zZWN0aW9uTGFuZ3VhZ2VzTGlzdCA9IExhbmd1YWdlc0FycmF5XG4gICAgICByZXNvbHZlKExhbmd1YWdlc0FycmF5KVxuICAgIH0pXG4gIH1cblxuICAvKirnq5nngrnorr7nva7or63oqIAgKi9cbiAgU2l0ZVNldHRpbmdzQWRtaW5MYW5ndWFnZXM6IGFueVtdID0gW11cbiAgLyoqXG4gICAqIOiOt+WPluermeeCueiuvue9ruivreiogFxuICAgKi9cbiAgZ2V0U2l0ZVNldHRpbmdzTGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fUmVnaW9uYWxpemF0aW9uU2VydmljZS5nZXQoKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5TaXRlU2V0dGluZ3NBZG1pbkxhbmd1YWdlcyA9IHJlcy5hdmFpbGFibGVDdWx0dXJlTmFtZXNcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG5cbiAgcmVzZXREYXRhKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVcbiAgICB0aGlzLmxpc3QucGFnZSA9IDBcbiAgICB0aGlzLmRhdGEuaXRlbXMgPSBbXVxuICAgIHRoaXMubGlzdC5nZXQoKVxuICB9XG5cbiAgLyoq5paw5aKeLeWNleS4qiAqL1xuICBjcmVhdGVFbnRyaWVzQnRuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2Ntcy9hZG1pbi9lbnRyaWVzL2NyZWF0ZSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuICBjcmVhdGVDb3B5RW50cmllc0J0bigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUtY29weSddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyBjdWx0dXJlTmFtZTogdGhpcy5maWx0ZXJzLmN1bHR1cmUsIHNlY3Rpb25JZDogdGhpcy5maWx0ZXJzLnNlY3Rpb25JZCwgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlTGlzdFswXS5pZCB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKuWIl+ihqOebuOWFsyAqL1xuICBDb2x1bW5Nb2RlID0gQ29sdW1uTW9kZTtcbiAgZGF0YTogUGFnZWRSZXN1bHREdG88RW50cnlEdG8+ID0ge1xuICAgIGl0ZW1zOiBbXSxcbiAgICB0b3RhbENvdW50OiAwLFxuICB9O1xuXG4gIGZpbHRlcnMgPSB7fSBhcyBHZXRFbnRyaWVzSW5wdXQ7XG4gIGZpbHRlcnNGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzaXRlSWQ6IFsnJ10sXG4gICAgc2VjdGlvbklkOiBbJyddLFxuICAgIGN1bHR1cmU6IFsnJ10sXG4gICAgZmlsdGVyOiBbJyddLFxuICB9KVxuXG4gIGhvb2tUb1F1ZXJ5KCkge1xuXG4gICAgY29uc3QgZ2V0RGF0YSA9IChxdWVyeTogQUJQLlBhZ2VRdWVyeVBhcmFtcykgPT4gdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXREYXRhID0gKGxpc3Q6IFBhZ2VkUmVzdWx0RHRvPEVudHJ5RHRvPikgPT4ge1xuICAgICAgdGhpcy5kYXRhID0gbGlzdFxuICAgIH07XG4gICAgdGhpcy5saXN0Lmhvb2tUb1F1ZXJ5KGdldERhdGEpLnN1YnNjcmliZShzZXREYXRhKTtcbiAgfVxuXG5cbiAgLyoq5Yig6Zmk5p2h55uuICovXG4gIGRlbGV0ZWZpZWxkKHJvdzogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb24ud2FybihcbiAgICAgIHJvdy5kaXNwbGF5TmFtZSxcbiAgICAgIHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6Okl0ZW1XaWxsQmVEZWxldGVkTWVzc2FnZWApLFxuICAgICkuc3Vic2NyaWJlKChzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMgPT0gJ2NvbmZpcm0nKSB7XG4gICAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmRlbGV0ZShyb3cuaWQpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB9KSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6RGVsZXRlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgICB0aGlzLmxpc3QuZ2V0KClcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpFbnRyaWVzJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cclxuICAgIDxhYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lciAqbmdJZj1cImVudHJ5VHlwZUxpc3QubGVuZ3RoIDwgMVwiIGNsYXNzPVwiY29sIFwiPjwvYWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXI+XHJcbiAgICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgKm5nSWY9XCJlbnRyeVR5cGVMaXN0Lmxlbmd0aCA+IDFcIiBjbGFzcz1cImNvbCBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1lbmQgbXgtMCBnYXAtMlwiICphYnBQZXJtaXNzaW9uPVwiJ0Ntc0FkbWluLkVudHJ5LkNyZWF0ZSdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIHB4LTAgcHQtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtIG1zLTJcIiBpZD1cImRyb3Bkb3duQmFzaWMxXCIgbmdiRHJvcGRvd25Ub2dnbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1cyBwZS0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPnt7J0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSBbcm91dGVyTGlua109XCJbJy9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cIntjdWx0dXJlTmFtZTogZmlsdGVycy5jdWx0dXJlLHNlY3Rpb25JZDpmaWx0ZXJzLnNlY3Rpb25JZCxlbnRyeVR5cGVJZDppdGVtLmlkfVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgaWQ9XCJzaXRlcy1wYWdlXCIgY2xhc3M9XCJzaXRlcy1wYWdlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweC0yIHB5LXNtLTIgYm9yZGVyLWJvdHRvbVwiIFtmb3JtR3JvdXBdPVwiZmlsdGVyc0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6U2VjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWN0aW9uSWRcIiAoY2hhbmdlKT1cInNlY3Rpb25JZENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIFNpdGVPZlNlY3Rpb25MaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpMYW5ndWFnZXMnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgY29sLWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJjdWx0dXJlXCIgKGNoYW5nZSk9XCJjdWx0dXJlQ2hhbmdlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VjdGlvbkxhbmd1YWdlc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9ufX3vvJo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FicFVpOjpTZWFyY2gnIHwgYWJwTG9jYWxpemF0aW9uXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBjb2wtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTNcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJidXR0b24tYWRkb24yXCIgKGNsaWNrKT1cInJlc2V0RGF0YSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgbWItMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmUgdGFibGUtZml4ZWQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUgY2xhc3M9XCJtYXRlcmlhbCBcIiBbcm93c109XCJkYXRhLml0ZW1zXCIgW2xpc3RdPVwibGlzdFwiIFtjb2x1bW5Nb2RlXT1cIkNvbHVtbk1vZGUuZm9yY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjUwXCIgW2Zvb3RlckhlaWdodF09XCI1MFwiIHJvd0hlaWdodD1cImF1dG9cIiBbdmlydHVhbGl6YXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZXJuYWxQYWdpbmddPVwidHJ1ZVwiIFtjb3VudF09XCJkYXRhLnRvdGFsQ291bnRcIiBbc2Nyb2xsYmFySF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBbbmFtZV09XCInQ21zOjpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwidGl0bGVcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OkVudHJ5VHlwZScgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwiZW50cnlUeXBlSWRcIiBbc29ydGFibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGUgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlTGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pZCA9PT0gdmFsdWVcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInNsdWdcIiBbc29ydGFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIFtuYW1lXT1cIidDbXM6OlN0YXR1cycgfCBhYnBMb2NhbGl6YXRpb25cIiBwcm9wPVwic3RhdHVzXCIgW3dpZHRoXT1cIjgwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0YWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9lbnRyeVN0YXR1c09wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udmFsdWU9PT0gdmFsdWVcIj57eyAnQ21zOjpFbnVtOkVudHJ5U3RhdHVzOicraXRlbS5rZXkgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9uIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW25hbWVdPVwiJ0Ntczo6UHVibGlzaFRpbWUnIHwgYWJwTG9jYWxpemF0aW9uXCIgcHJvcD1cInB1Ymxpc2hUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxOTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2YWx1ZSB8IGRhdGU6ICdZWVlZL01NL2RkIEhIOm1tOnMnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW4gW3NvcnRhYmxlXT1cImZhbHNlXCIgW25hbWVdPVwiJ0FicFVpOjpBY3Rpb25zJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnJvemVuTGVmdF09XCJ0cnVlXCIgW3dpZHRoXT1cIjExMFwiIFttYXhXaWR0aF09XCIxMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtZS0xIGZhIGZhLWNvZ1wiPjwvaT4ge3snQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL2Ntcy9hZG1pbi9lbnRyaWVzL3t7cm93LmlkfX0vZWRpdFwiPnt7J0FicFVpOjpFZGl0JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVmaWVsZChyb3cpXCI+e3snQWJwVWk6OkRlbGV0ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25neC1kYXRhdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9hYnAtcGFnZT4iXX0=
@@ -30,6 +30,10 @@ export class CreateOrEditFieldComponent {
30
30
  }
31
31
  set selected(v) {
32
32
  if (v) {
33
+ // let MatrixBlockTypes=v.formConfiguration?.MatrixBlockTypes
34
+ // if(MatrixBlockTypes){
35
+ // v.formConfiguration.MatrixBlockTypes=this.convertKeysToCamelCase(MatrixBlockTypes);
36
+ // }
33
37
  this._selected = v || '';
34
38
  this._selected_copy = v;
35
39
  }
@@ -111,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
111
115
  }], selected: [{
112
116
  type: Input
113
117
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFFTCxXQUFXLEVBR1gsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFVeEIsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDO1FBSDFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBRWpELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFHRCxJQUNXLE1BQU0sQ0FBQyxDQUF3QjtRQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFD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QUcsQ0FBQyxFQUFFO29CQUM3RCxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNSLE9BQU8sQ0FBQzs0QkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FDM0MsK0JBQStCLEVBQy9CLElBQUksQ0FBQyxLQUFLLENBQ1g7eUJBQ0YsQ0FBQyxDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLO0lBRTNCLENBQUM7OEdBaEhVLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlOQUVBLGdCQUFnQixzSkNwQnZELG8yRUFzQ087OzJGRHBCTSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsMEJBQTBCO3dMQU9wQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekIsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWUvQixNQUFNO3NCQURoQixLQUFLO2dCQWNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkLWFic3RyYWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Ntcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEZpZWxkQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvZGlnbml0ZS9jbXMvYWRtaW4vZmllbGRzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS1vci1lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdEZpZWxkQ29tcG9uZW50IHtcbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkKCdGb3JtRHluYW1pY1JlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIEZvcm1EeW5hbWljUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlOiBGaWVsZEFic3RyYWN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZVxuICApIHtcbiAgICBpZiAodGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0ZmllbGRHcm91cExpc3QoKTtcbiAgICB9XG4gIH1cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9FbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBFbnRpdHkodjogRm9ybUdyb3VwIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX0VudGl0eSA9IHY7XG4gICAgICB0aGlzLmRhdGFMb2FkZWQoKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGZvcm1Db250cm9sTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnZm9ybUNvbnRyb2xOYW1lJyk7XG4gIH1cbiAgLyoq6YCJ5oup55qE6KGo5Y2V5L+h5oGvICovXG4gIF9zZWxlY3RlZF9jb3B5OiBhbnk7XG4gIF9zZWxlY3RlZDogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZCA9IHYgfHwgJyc7XG4gICAgICB0aGlzLl9zZWxlY3RlZF9jb3B5ID0gdjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0Lmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX0VudGl0eSkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sTmFtZS52YWx1ZSkge1xuICAgICAgICB0aGlzLl9FbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lOiB0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0WzBdPy5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX0VudGl0eS5zZXRDb250cm9sKFxuICAgICAgICAnbmFtZScsXG4gICAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLm5hbWVJbnB1dC52YWx1ZSB8fCAnJywge1xuICAgICAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiBbdGhpcy5yZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKV0sXG4gICAgICAgICAgdXBkYXRlT246ICdjaGFuZ2UnLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdGNsaWNrLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKm5hbWXooajljZXmjqfku7YgKi9cbiAgZ2V0IG5hbWVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fRW50aXR5LmdldCgnbmFtZScpO1xuICB9XG5cbiAgbmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLm5hbWVJbnB1dC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKuWtl+auteagh+etvmlucHV05aSx5Y675qCH54K555Sf5oiQ5a2X5q615ZCN5a2XICovXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XG4gICAgbGV0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVybjtcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG4gIC8qKuWumuS5ieW8guatpemqjOivgeaWueazlSAqL1xuICByZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGN0cmw6IEFic3RyYWN0Q29udHJvbFxuICAgICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBpZiAoY3RybC52YWx1ZSA9PSB0aGlzLl9zZWxlY3RlZD8ubmFtZSB8fCAhY3RybC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlLm5hbWVFeGlzdHMoY3RybC52YWx1ZSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICBgQ21zOjpGaWVsZE5hbWV7MH1BbHJlYWR5RXhpc3RgLFxuICAgICAgICAgICAgICAgIGN0cmwudmFsdWVcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgZm9ybUNvbnRyb2xOYW1lQ2hhbmdlKGV2ZW50KSB7XG5cbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJfRW50aXR5XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZ3JvdXBJZFwiPnt7J0Ntczo6RmllbGRHcm91cCcgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImdyb3VwSWRcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj57eydDbXM6Ok9wdGlvbmFsR3JvdXBpbmcnIHwgYWJwTG9jYWxpemF0aW9ufX08L29wdGlvbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57e2l0ZW0ubmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRpc3BsYXlOYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZERpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHJlcXVpcmVkIChibHVyKT1cImRpc1BsYXlOYW1lSW5wdXRCbHVyKCRldmVudClcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwibmFtZVwiPnt7J0RpZ25pdGVBYnBGb3Jtczo6RmllbGROYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgKGlucHV0KT1cIm5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwibmFtZUlucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAge3tuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzbWFsbCBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LW11dGVkIGQtYmxvY2sgXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWVIZWxwVGV4dCcgfCBhYnBMb2NhbGl6YXRpb259fTwvc21hbGw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cImRlc2NyaXB0aW9uXCI+e3snQ21zOjpEZXNjcmlwdGlvbicgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZm9ybUNvbnRyb2xOYW1lXCI+e3snQ21zOjpGaWVsZFR5cGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtQ29udHJvbE5hbWVcIiAoY2hhbmdlKT1cImZvcm1Db250cm9sTmFtZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZnJvbUNvbnRyb2xMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0ubmFtZVwiPnt7aXRlbS5kaXNwbGF5TmFtZXxhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfRW50aXR5LnZhbHVlLmZvcm1Db250cm9sTmFtZSYmX0VudGl0eVwiPiBcbiAgICAgICAgPGRmLWR5bmFtaWMgW3R5cGVdPVwiX0VudGl0eS52YWx1ZS5mb3JtQ29udHJvbE5hbWVcIiBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCIgW2VudGl0eV09XCJfRW50aXR5XCIgPjwvZGYtZHluYW1pYz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZm9ybT4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9maWVsZHMvY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFFTCxXQUFXLEVBR1gsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFVeEIsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNTLHNCQUE2QyxFQUM1QyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsb0JBQXlDO1FBSDFDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBRWpELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFHRCxJQUNXLE1BQU0sQ0FBQyxDQUF3QjtRQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFD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QyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDN0QsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixPQUFPLENBQUM7NEJBQ04sVUFBVSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQzNDLCtCQUErQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUNYO3lCQUNGLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztJQUUzQixDQUFDOzhHQXhIVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixpTkFFQSxnQkFBZ0Isc0pDcEJ2RCxvMkVBc0NPOzsyRkRwQk0sMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDBCQUEwQjt3TEFPcEMsY0FBYztzQkFEYixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXpCLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFlL0IsTUFBTTtzQkFEaEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFic3RyYWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZC1hYnN0cmFjdHMuc2VydmljZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL2ZpZWxkcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLW9yLWVkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtb3ItZWRpdC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRGaWVsZENvbXBvbmVudCB7XG4gIC8qKuihqOWNleaOp+S7tuaooeadvy3liqjmgIHooajljZXphY3nva7nu4Tku7YgKi9cbiAgQFZpZXdDaGlsZCgnRm9ybUR5bmFtaWNSZWYnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBGb3JtRHluYW1pY1JlZjogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKirojrflj5bmj5DkuqTmjInpkq7mm7/ouqvvvIznlKjkuo7nnJ/lrp7op6blj5HooajljZXmj5DkuqQgKi9cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX0ZpZWxkQWJzdHJhY3RzU2VydmljZTogRmllbGRBYnN0cmFjdHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgaWYgKHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5maWVsZEdyb3VwTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgdGhpcy5fRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmdldGZpZWxkR3JvdXBMaXN0KCk7XG4gICAgfVxuICB9XG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfRW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgRW50aXR5KHY6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9FbnRpdHkgPSB2O1xuICAgICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gICAgfVxuICB9XG4gIGdldCBmb3JtQ29udHJvbE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX0VudGl0eS5nZXQoJ2Zvcm1Db250cm9sTmFtZScpO1xuICB9XG4gIC8qKumAieaLqeeahOihqOWNleS/oeaBryAqL1xuICBfc2VsZWN0ZWRfY29weTogYW55O1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgXG4gICAgICAvLyBsZXQgTWF0cml4QmxvY2tUeXBlcz12LmZvcm1Db25maWd1cmF0aW9uPy5NYXRyaXhCbG9ja1R5cGVzXG4gICAgICAvLyBpZihNYXRyaXhCbG9ja1R5cGVzKXtcbiAgICAgIC8vICAgdi5mb3JtQ29uZmlndXJhdGlvbi5NYXRyaXhCbG9ja1R5cGVzPXRoaXMuY29udmVydEtleXNUb0NhbWVsQ2FzZShNYXRyaXhCbG9ja1R5cGVzKTtcbiAgICAgIC8vIH1cbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdiB8fCAnJztcbiAgICAgIHRoaXMuX3NlbGVjdGVkX2NvcHkgPSB2O1xuICAgIH1cbiAgfVxuXG5cblxuXG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3QubGVuZ3RoID09IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5nZXRGcm9tQ29udHJvbExpc3QoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fRW50aXR5KSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2xOYW1lLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuX0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU6IHRoaXMuX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3RbMF0/Lm5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5fRW50aXR5LnNldENvbnRyb2woXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgbmV3IEZvcm1Db250cm9sKHRoaXMubmFtZUlucHV0LnZhbHVlIHx8ICcnLCB7XG4gICAgICAgICAgdmFsaWRhdG9yczogVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IFt0aGlzLnJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpXSxcbiAgICAgICAgICB1cGRhdGVPbjogJ2NoYW5nZScsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqbmFtZeihqOWNleaOp+S7tiAqL1xuICBnZXQgbmFtZUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9FbnRpdHkuZ2V0KCduYW1lJyk7XG4gIH1cblxuICBuYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMubmFtZUlucHV0LnBhdGNoVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgLyoq5a2X5q615qCH562+aW5wdXTlpLHljrvmoIfngrnnlJ/miJDlrZfmrrXlkI3lrZcgKi9cbiAgZGlzUGxheU5hbWVJbnB1dEJsdXIoZXZlbnQpIHtcbiAgICBsZXQgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgbGV0IHBpbnlpbiA9IHRoaXMuX0Ntc0FwaVNlcnZpY2UuY2hpbmVzZVRvUGlueWluKHZhbHVlKTtcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXQ7XG4gICAgaWYgKG5hbWVJbnB1dC52YWx1ZSkgcmV0dXJuO1xuICAgIG5hbWVJbnB1dC5wYXRjaFZhbHVlKHBpbnlpbik7XG4gIH1cbiAgLyoq5a6a5LmJ5byC5q2l6aqM6K+B5pa55rOVICovXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgY3RybDogQWJzdHJhY3RDb250cm9sXG4gICAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGlmIChjdHJsLnZhbHVlID09IHRoaXMuX3NlbGVjdGVkPy5uYW1lIHx8ICFjdHJsLnZhbHVlKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UubmFtZUV4aXN0cyhjdHJsLnZhbHVlKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgIGBDbXM6OkZpZWxkTmFtZXswfUFscmVhZHlFeGlzdGAsXG4gICAgICAgICAgICAgICAgY3RybC52YWx1ZVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICBmb3JtQ29udHJvbE5hbWVDaGFuZ2UoZXZlbnQpIHtcblxuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9FbnRpdHlcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJncm91cElkXCI+e3snQ21zOjpGaWVsZEdyb3VwJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ3JvdXBJZFwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7J0Ntczo6T3B0aW9uYWxHcm91cGluZycgfCBhYnBMb2NhbGl6YXRpb259fTwvb3B0aW9uPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfRmllbGRBYnN0cmFjdHNTZXJ2aWNlLmZpZWxkR3JvdXBMaXN0XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS5uYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGlzcGxheU5hbWVcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkRGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgcmVxdWlyZWQgKGJsdXIpPVwiZGlzUGxheU5hbWVJbnB1dEJsdXIoJGV2ZW50KVwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJuYW1lXCI+e3snRGlnbml0ZUFicEZvcm1zOjpGaWVsZE5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoaW5wdXQpPVwibmFtZUlucHV0Qmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJuYW1lSW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICB7e25hbWVJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb259fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtbXV0ZWQgZC1ibG9jayBcIj57eydEaWduaXRlQWJwRm9ybXM6OkZpZWxkTmFtZUhlbHBUZXh0JyB8IGFicExvY2FsaXphdGlvbn19PC9zbWFsbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eydDbXM6OkRlc2NyaXB0aW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJmb3JtQ29udHJvbE5hbWVcIj57eydDbXM6OkZpZWxkVHlwZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImZvcm1Db250cm9sTmFtZVwiIChjaGFuZ2UpPVwiZm9ybUNvbnRyb2xOYW1lQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX0ZpZWxkQWJzdHJhY3RzU2VydmljZS5mcm9tQ29udHJvbExpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5uYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfGFicExvY2FsaXphdGlvbn19PC9vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9FbnRpdHkudmFsdWUuZm9ybUNvbnRyb2xOYW1lJiZfRW50aXR5XCI+IFxuICAgICAgICA8ZGYtZHluYW1pYyBbdHlwZV09XCJfRW50aXR5LnZhbHVlLmZvcm1Db250cm9sTmFtZVwiIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRcIiBbZW50aXR5XT1cIl9FbnRpdHlcIiA+PC9kZi1keW5hbWljPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9mb3JtPiJdfQ==
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImpor
106
106
  type: ViewChild,
107
107
  args: ['submitclick', { static: true }]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFjaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLEVBQWUsRUFDaEIsc0JBQTZDLEVBQzdDLGtCQUFxQyxFQUNwQyxLQUFxQixFQUNyQixPQUF1QixFQUN4QixTQUFtQixFQUNuQixvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxH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QUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbkZVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHlDQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTthQUNuQztTQUNGLG9KQ3hCSCxzeEJBYU87OzJGRGFNLGtCQUFrQjtrQkFYOUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7eUJBQ25DO3FCQUNGO21TQWlDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSwgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL2ZpZWxkcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0VkaXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2VcbiAgKSB7fVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuWtl+autWlkICovXG4gIGZpZWxkSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKuWtl+auteivpuaDhSAqL1xuICBmaWVsZERldGFpbHM6IGFueTtcblxuICBpc1N1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IF9maWVsZElkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgaWYgKF9maWVsZElkKSB7XG4gICAgICB0aGlzLmZpZWxkSWQgPSBfZmllbGRJZDtcbiAgICAgIHRoaXMubmV3RW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSgpKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KCksIHRoaXMuZ2V0RmllbGRFZGl0KCldKTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmZpZWxkRGV0YWlscyxcbiAgICAgICAgZm9ybUNvbmZpZ3VyYXRpb246IHRoaXMuZmllbGREZXRhaWxzLmZvcm1Db25maWd1cmF0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5a2X5q616K+m5oOFICovXG4gIGdldEZpZWxkRWRpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZmllbGRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHJlcy5ncm91cElkID0gcmVzLmdyb3VwSWQgPyByZXMuZ3JvdXBJZCA6ICcnO1xuICAgICAgICB0aGlzLmZpZWxkRGV0YWlscyA9IHJlcztcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKirop6blj5Hmj5DkuqTmjInpkq4gKi9cbiAgc3VibWl0Y2xpY2tCdG4oKSB7XG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXModGhpcy5uZXdFbnRpdHkpO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCAnQ21zJykpIHJldHVybjtcbiAgICBpZiAodGhpcy5pc1N1Ym1pdCkgcmV0dXJuO1xuICAgIHRoaXMuaXNTdWJtaXQgPSB0cnVlO1xuICAgIGxldCBpbnB1dCA9IHRoaXMubmV3RW50aXR5LnZhbHVlO1xuXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuO1xuICAgIHRoaXMuX0ZpZWxkQWRtaW5TZXJ2aWNlXG4gICAgICAudXBkYXRlKHRoaXMuZmllbGRJZCwgaW5wdXQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U2F2ZWRTdWNjZXNzZnVsbHlgKSk7XG4gICAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwicm93IGctMyBuZWVkcy12YWxpZGF0aW9uXCIgW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIFtjbGFzc109XCJ7J3dhcy12YWxpZGF0ZWQnOmZvcm1WYWxpZGF0aW9ufVwiIChzdWJtaXQpPVwic2F2ZSgpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpFZGl0RmllbGQnIHwgYWJwTG9jYWxpemF0aW9uXCIgW3Rvb2xiYXJdPVwidHJ1ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLWZpZWxkLXBhZ2VcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5ld0VudGl0eSYmZmllbGREZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkICBbc2VsZWN0ZWRdPVwiZmllbGREZXRhaWxzXCIgIFtFbnRpdHldPVwibmV3RW50aXR5XCI+PC9jbXMtY3JlYXRlLW9yLWVkaXQtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYWJwLXBhZ2U+XG48L2Zvcm0+Il19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2ZpZWxkcy9lZGl0LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZmllbGRzL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFjaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLEVBQWUsRUFDaEIsc0JBQTZDLEVBQzdDLGtCQUFxQyxFQUNwQyxLQUFxQixFQUNyQixPQUF1QixFQUN4QixTQUFtQixFQUNuQixvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDcEMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRTlCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSXZELFVBQVU7UUFDVixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBS3JCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUI7Ozs7V0FJRztRQUNILG1CQUFjLEdBQVEsRUFBRSxDQUFDO0lBbEJ0QixDQUFDO0lBdUJKLEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQztZQUNuRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN4QixHQUFHLElBQUksQ0FBQyxZQUFZO2dCQUNwQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQjthQUN2RCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7SUFDWixZQUFZO1FBQ1YsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3hELEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxZQUFZO0lBQ1osY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxVQUFVO0lBQ1YsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQzVFLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO2FBQzNCLElBQUksQ0FDSCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBcEZVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHlDQVBsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsVUFBVTthQUNuQztTQUNGLG9KQ3hCSCxzeEJBYU87OzJGRGFNLGtCQUFrQjtrQkFYOUIsU0FBUzsrQkFDRSxnQkFBZ0IsYUFHZjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLFVBQVU7eUJBQ25DO3FCQUNGO21TQWlDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVhURU5TSU9OU19JREVOVElGSUVSIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGUnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZpZWxkQWJzdHJhY3RzU2VydmljZSwgQ21zQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IENyZWF0ZU9yVXBkYXRlRmllbGRJbnB1dEJhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtZmllbGQtaW5wdXQtYmFzZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJ0BkaWduaXRlLW5nL2V4cGFuZC5jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2RpZ25pdGUvY21zL2FkbWluL2ZpZWxkcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1lZGl0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVYVEVOU0lPTlNfSURFTlRJRklFUixcbiAgICAgIHVzZVZhbHVlOiBFQ21zQ29tcG9uZW50LkZpZWxkc0VkaXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHVibGljIF9GaWVsZEFic3RyYWN0c1NlcnZpY2U6IEZpZWxkQWJzdHJhY3RzU2VydmljZSxcbiAgICBwdWJsaWMgX0ZpZWxkQWRtaW5TZXJ2aWNlOiBGaWVsZEFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHB1YmxpYyBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2VcbiAgKSB7fVxuICBwcml2YXRlIF9VcGRhdGVMaXN0U2VydmljZSA9IGluamVjdChVcGRhdGVMaXN0U2VydmljZSk7XG4gIHByaXZhdGUgX1ZhbGlkYXRvcnNTZXJ2aWNlID0gaW5qZWN0KFZhbGlkYXRvcnNTZXJ2aWNlKTtcbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuXG4gIC8qKuWtl+autWlkICovXG4gIGZpZWxkSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKuWtl+auteivpuaDhSAqL1xuICBmaWVsZERldGFpbHM6IGFueTtcblxuICBpc1N1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirooajljZXpqozor4HnirbmgIFcbiAgICoge1xuICAgKiAgdGl0bGU6dHJ1ZSxcbiAgICogfVxuICAgKi9cbiAgZm9ybVZhbGlkYXRpb246IGFueSA9ICcnO1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IF9maWVsZElkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgaWYgKF9maWVsZElkKSB7XG4gICAgICB0aGlzLmZpZWxkSWQgPSBfZmllbGRJZDtcbiAgICAgIHRoaXMubmV3RW50aXR5ID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JVcGRhdGVGaWVsZElucHV0QmFzZSgpKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFt0aGlzLl9GaWVsZEFic3RyYWN0c1NlcnZpY2UuZ2V0RnJvbUNvbnRyb2xMaXN0KCksIHRoaXMuZ2V0RmllbGRFZGl0KCldKTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmZpZWxkRGV0YWlscyxcbiAgICAgICAgZm9ybUNvbmZpZ3VyYXRpb246IHRoaXMuZmllbGREZXRhaWxzLmZvcm1Db25maWd1cmF0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoq6I635Y+W5a2X5q616K+m5oOFICovXG4gIGdldEZpZWxkRWRpdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZmllbGRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHJlcy5ncm91cElkID0gcmVzLmdyb3VwSWQgPyByZXMuZ3JvdXBJZCA6ICcnO1xuICAgICAgICB0aGlzLmZpZWxkRGV0YWlscyA9IHJlcztcbiAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgXG5cbiAgLyoq6Kem5Y+R5o+Q5Lqk5oyJ6ZKuICovXG4gIHN1Ym1pdGNsaWNrQnRuKCkge1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoq5L+d5a2Y6KGo5Y2VICovXG4gIHNhdmUoKSB7XG4gICAgdGhpcy5mb3JtVmFsaWRhdGlvbiA9IHRoaXMuX1ZhbGlkYXRvcnNTZXJ2aWNlLmdldEZvcm1WYWxpZGF0aW9uU3RhdHVzKHRoaXMubmV3RW50aXR5KTtcbiAgICBpZiAodGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuaXNDaGVja0Zvcm0odGhpcy5mb3JtVmFsaWRhdGlvbiwgJ0NtcycpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNTdWJtaXQpIHJldHVybjtcbiAgICB0aGlzLmlzU3VibWl0ID0gdHJ1ZTtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZTtcblxuICAgIGlmICghdGhpcy5uZXdFbnRpdHkudmFsaWQpIHJldHVybjtcbiAgICB0aGlzLl9GaWVsZEFkbWluU2VydmljZVxuICAgICAgLnVwZGF0ZSh0aGlzLmZpZWxkSWQsIGlucHV0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3VibWl0ID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgICB0aGlzLl9sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAoc3VibWl0KT1cInNhdmUoKVwiPlxuICAgIDxhYnAtcGFnZSBbdGl0bGVdPVwiJ0Ntczo6RWRpdEZpZWxkJyB8IGFicExvY2FsaXphdGlvblwiIFt0b29sYmFyXT1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS1maWVsZC1wYWdlXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZXdFbnRpdHkmJmZpZWxkRGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNtcy1jcmVhdGUtb3ItZWRpdC1maWVsZCAgW3NlbGVjdGVkXT1cImZpZWxkRGV0YWlsc1wiICBbRW50aXR5XT1cIm5ld0VudGl0eVwiPjwvY21zLWNyZWF0ZS1vci1lZGl0LWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2FicC1wYWdlPlxuPC9mb3JtPiJdfQ==