@mozaic-ds/angular 0.24.0-beta.15 → 0.24.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/adeo/esm2020/components/pagination/pagination.component.mjs +3 -3
- package/adeo/fesm2015/mozaic-ds-angular.mjs +4 -4
- package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/fesm2020/mozaic-ds-angular.mjs +4 -4
- package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/adeo/package.json +1 -1
- package/bricoman/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/bricoman/esm2020/components/pagination/pagination.component.mjs +3 -3
- package/bricoman/fesm2015/mozaic-ds-angular.mjs +4 -4
- package/bricoman/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/fesm2020/mozaic-ds-angular.mjs +4 -4
- package/bricoman/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/bricoman/package.json +1 -1
- package/esm2020/components/datatable/moz-datatable.component.mjs +3 -3
- package/esm2020/components/pagination/pagination.component.mjs +3 -3
- package/fesm2015/mozaic-ds-angular.mjs +4 -4
- package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
- package/fesm2020/mozaic-ds-angular.mjs +4 -4
- package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -130,10 +130,10 @@ export class MozDatatableComponent {
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
MozDatatableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
-
MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", allowAllSelected: "allowAllSelected", datatableSettings: "datatableSettings", tableSummary: "tableSummary" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "allowAllSelected", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
|
|
133
|
+
MozDatatableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MozDatatableComponent, selector: "moz-datatable", inputs: { footerSettings: "footerSettings", selectionSettings: "selectionSettings", allowAllSelected: "allowAllSelected", datatableSettings: "datatableSettings", tableSummary: "tableSummary" }, outputs: { rowClick: "rowClick", sortColumn: "sortColumn", rowSelected: "rowSelected", rowAllSelected: "rowAllSelected", emptyBodyButtonClicked: "emptyBodyButtonClicked", pageChange: "pageChange", rowPerPageChange: "rowPerPageChange" }, queries: [{ propertyName: "expansionContentComponent", first: true, predicate: MozDatatableRowExpansionContentComponent, descendants: true }, { propertyName: "headerCellComponents", predicate: MozDatatableHeaderCellComponent }, { propertyName: "contentCellComponents", predicate: MozDatatableContentCellComponent }], viewQueries: [{ propertyName: "selectionComponent", first: true, predicate: MozDatatableSelectionComponent, descendants: true }, { propertyName: "thSelectionRef", first: true, predicate: ["thSelection"], descendants: true }, { propertyName: "thSubRowRef", first: true, predicate: ["thSubRow"], descendants: true }], ngImport: i0, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[moz-button]", inputs: ["iconPosition", "onlyIcon", "theme", "variation", "widthBehavior", "size"] }, { kind: "component", type: i4.CheckboxComponent, selector: "moz-checkbox", inputs: ["disabled", "indeterminate", "invalid", "id", "checked"] }, { kind: "component", type: i5.IconComponent, selector: "moz-icon", inputs: ["iconName"] }, { kind: "component", type: i6.MozDatatableFooterComponent, selector: "moz-datatable-footer", inputs: ["footerSettings", "isLoading"], outputs: ["rowPerPageChangeEmitter", "pageChangeEmitter"] }, { kind: "component", type: i7.MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: ["selectionSettings", "paginationEnabled", "allowAllSelected", "rowData"], outputs: ["updateSelectionAllEmitter"] }, { kind: "directive", type: i8.MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: ["mozDatatableSort"], outputs: ["sortEmitter"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }], encapsulation: i0.ViewEncapsulation.None });
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MozDatatableComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
|
|
136
|
+
args: [{ selector: 'moz-datatable', encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-datatable\" [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\">\n <div class=\"mc-datatable__header\">\n <ng-content select=\"moz-datatable-caption\"></ng-content>\n <div>\n <moz-datatable-selection\n [selectionSettings]=\"selectionSettings\"\n [allowAllSelected]=\"allowAllSelected\"\n [paginationEnabled]=\"datatableSettings?.activatePagination\"\n [rowData]=\"datatableSettings?.rowData\"\n (updateSelectionAllEmitter)=\"selectionAllRowEvent($event)\"\n ></moz-datatable-selection>\n </div>\n </div>\n <div\n class=\"mc-datatable__container\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <div\n class=\"mc-datatable__main\"\n [ngClass]=\"{ ' mc-datatable-height': datatableSettings?.fixHeaderRow }\"\n >\n <table class=\"mc-datatable__table\" summary=\"{{ tableSummary }}\">\n <thead [ngClass]=\"{ 'fix-header-row': datatableSettings?.fixHeaderRow }\">\n <tr *ngIf=\"getColumns() && getColumns().length > 0\">\n <th\n class=\"mc-datatable__cell-checkbox moz-datatable__th mc-datatable__fix-first-column\"\n *ngIf=\"\n datatableSettings?.activateSelection &&\n selectionComponent &&\n selectionSettings &&\n ((datatableSettings?.rowData || []).length > 0 || datatableSettings?.isLoading)\n \"\n id=\"checkAllPageRows\"\n #thSelection\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionAllPageRows($event);\n selectionRowEvent($event)\n \"\n [indeterminate]=\"selectionComponent.isIndeterminate\"\n [checked]=\"\n (selectionSettings.allSelected && !selectionComponent.isIndeterminate) ||\n (!selectionSettings.allSelected &&\n !selectionComponent.isIndeterminate &&\n (this.selectionSettings.selectedIds || []).length > 0)\n \"\n [disabled]=\"datatableSettings?.isLoading || false\"\n >\n </moz-checkbox>\n </ng-template>\n </th>\n <th\n *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\"\n class=\"mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n #thSubRow\n ></th>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <th\n class=\"moz-datatable__th\"\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"th-{{ columnDef.field }}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingHeading\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n\n <ng-template #notLoadingHeading>\n <div\n [mozDatatableSort]=\"columnDef\"\n [ngClass]=\"{ header: columnDef.sort }\"\n (sortEmitter)=\"sortEvent($event)\"\n >\n <ng-container\n *ngIf=\"\n getCustomHeader(columnDef.field) as customHeader;\n else defaultHeaderCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customHeader;\n context: {\n $implicit: {\n content: columnDef\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultHeaderCell>\n {{ columnDef.headerName | uppercase }}\n </ng-template>\n </div>\n </ng-template>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <ng-container\n *ngIf=\"\n (datatableSettings?.rowData?.length || 0) > 0 || datatableSettings?.isLoading;\n else emptyBody\n \"\n >\n <ng-container *ngFor=\"let row of getFields(); index as i\">\n <tr class=\"mc-datatable__row-parent\" (click)=\"rowClickEvent($event, row)\">\n <td\n class=\"mc-datatable__fix-first-column\"\n *ngIf=\"datatableSettings?.activateSelection && selectionComponent\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCheckbox\">\n <div class=\"skeleton-box mu-mb-100 checkbox-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCheckbox>\n <moz-checkbox\n (change)=\"\n selectionComponent.onUdpateSelectionRow(row); selectionRowEvent($event)\n \"\n [(ngModel)]=\"row.selected\"\n [checked]=\"row.selected || false\"\n [disabled]=\"row.disableSelection || false\"\n id=\"checkRow-{{ i }}\"\n >\n </moz-checkbox>\n </ng-template>\n </td>\n <ng-container *ngIf=\"hasSubRow() && !datatableSettings?.isLoading\">\n <td\n *ngIf=\"row['subRow']; else noSubRow\"\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n >\n <button\n class=\"mc-datatable__expand mc-datatable__btn\"\n (click)=\"toggleRowExpansion(i); $event.stopPropagation()\"\n >\n <span class=\"mc-datatable__btn-icon\">\n <ng-container *ngIf=\"!expandedRows[i]; else subrowClosed\">\n <moz-icon [iconName]=\"'Navigation_Control_Circle--More_24px'\"></moz-icon>\n </ng-container>\n <ng-template #subrowClosed>\n <moz-icon [iconName]=\"'Navigation_Control_Circle--Less_24px'\"></moz-icon>\n </ng-template>\n </span>\n </button>\n </td>\n <ng-template #noSubRow\n ><td\n class=\"mc-datatable__cell-button mc-datatable__fix-first-column\"\n [style.left.px]=\"getStyleLeftForColumnFixed()\"\n ></td\n ></ng-template>\n </ng-container>\n <ng-container *ngFor=\"let columnDef of getColumns()\">\n <td\n *ngIf=\"!columnDef.hide\"\n [ngClass]=\"{\n 'mc-datatable__fix-first-column':\n datatableSettings?.fixFirstColumn &&\n getUnhiddenColumns()[0].field === columnDef.field\n }\"\n [style.left.px]=\"getLeftValueFixFirstColumn()\"\n id=\"row-{{ i }}-{{ columnDef.field}}\"\n >\n <ng-container *ngIf=\"datatableSettings?.isLoading; else notLoadingCells\">\n <div class=\"skeleton-box mu-mb-100 cells-loading\"></div>\n </ng-container>\n <ng-template #notLoadingCells>\n <ng-container\n *ngIf=\"\n getCustomContent(columnDef.field) as customContent;\n else defaultContentCell\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n customContent;\n context: {\n $implicit: {\n row: row,\n index: i,\n columnDefs: datatableSettings?.columnDefs,\n content: row[columnDef.field]\n }\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultContentCell>\n {{ row[columnDef.field] }}\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n <ng-container>\n <tr *ngIf=\"expandedRows[i]\">\n <td [attr.colspan]=\"getColspanForExpansionRow()\">\n <ng-container\n *ngIf=\"getCustomExpansionRowContent() as expansionRowContentComponent\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n expansionRowContentComponent;\n context: {\n $implicit: {\n subRowContent: row['subRow'],\n index: i,\n }\n }\n \"\n ></ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyBody>\n <tr class=\"mc-datatable__empty\">\n <td colspan=\"5\" class=\"mc-datatable__empty-cell\">\n <div class=\"mc-datatable__empty-content\">\n <div>\n <div>\n <p>\n <strong>\n {{\n datatableSettings?.labels?.emptyBodyTitle || 'There is no result.'\n }}</strong\n ><br />\n {{\n datatableSettings?.labels?.emptyBodyDescription ||\n 'Please try changing your filters.'\n }}\n </p>\n </div>\n <div *ngIf=\"datatableSettings?.activateEmptyBodyButton\">\n <button\n moz-button\n [theme]=\"'neutral'\"\n [size]=\"'s'\"\n [variation]=\"'bordered'\"\n (click)=\"emptyButtonClickEvent()\"\n >\n <moz-icon\n iconName=\"{{\n datatableSettings?.icons?.emptyBodyButtonIcon ||\n 'Navigation_Display_Filter_24px'\n }}\"\n ></moz-icon>\n {{ datatableSettings?.labels?.emptyBodyButtonTitle || 'Change filters' }}\n </button>\n </div>\n </div>\n </div>\n </td>\n </tr></ng-template\n >\n </tbody>\n </table>\n </div>\n <moz-datatable-footer\n *ngIf=\"datatableSettings?.activatePagination\"\n [footerSettings]=\"footerSettings\"\n [isLoading]=\"datatableSettings?.isLoading\"\n (rowPerPageChangeEmitter)=\"rowPerPageChangeEvent($event)\"\n (pageChangeEmitter)=\"pageChangeEvent($event)\"\n ></moz-datatable-footer>\n </div>\n</div>\n", styles: [".mc-datatable{font-family:Roboto,sans-serif;box-sizing:border-box}.mc-datatable *,.mc-datatable :after,.mc-datatable :before{box-sizing:inherit}.mc-datatable__container{border-radius:4px;box-shadow:0 1px 5px #19191933;background-color:#e7e7f0;overflow:hidden}.mc-datatable__main{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;overflow:auto}.mc-datatable__main::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable__main::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable__main::-webkit-scrollbar-thumb{background:#666666}.mc-datatable__table tr,.mc-datatable thead th,.mc-datatable thead td{height:2.9375rem}.mc-datatable__table{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%}.mc-datatable__table>thead,.mc-datatable__table>tbody{background-color:#fff}.mc-datatable__table th,.mc-datatable__table td{border-bottom:1px solid #b3b3b3;text-align:left;vertical-align:middle;padding-right:1rem;padding-left:1rem}.mc-datatable thead th,.mc-datatable thead td{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase}.mc-datatable__head{align-items:center;display:flex;justify-content:space-between}.mc-datatable tbody tr:hover:not(.mc-datatable__empty){background-color:#eaedef}.mc-datatable tbody tr.selected{background-color:#d9f0f3}.mc-datatable tbody th,.mc-datatable tbody td{font-size:.875rem;line-height:1.2857142857;color:#191919}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable{height:0}.mc-datatable__row-parent:not(.mc-datatable__row-parent--expanded)+.mc-datatable__row-expandable .mc-datatable__row-inner{overflow:hidden;max-height:0}.mc-datatable__row-parent.mc-datatable__row-parent--expanded+.mc-datatable__row-expandable .mc-datatable__row-inner{max-height:100%}.mc-datatable__row-expandable>td{padding:0;border-bottom:0}.mc-datatable__row-expandable--offset-1 table th:first-child,.mc-datatable__row-expandable--offset-1 table td:first-child{padding-left:4.25rem}.mc-datatable__row-expandable--offset-2 table th:first-child,.mc-datatable__row-expandable--offset-2 table td:first-child{padding-left:7.75rem}.mc-datatable__cell-checkbox{width:3.25rem}.mc-datatable__cell-button{width:3.5rem}.mc-datatable__cell-field{min-width:9.375rem}td.mc-datatable__cell-number{text-align:right}.mc-datatable__empty,.mc-datatable__empty:hover{background-color:#e7e7f0}.mc-datatable__empty-cell{color:#4b4a8c}.mc-datatable__empty-content{font-size:1rem;line-height:1.375;align-items:center;color:#4b4a8c;display:flex;gap:1.5rem;min-height:19.375rem;justify-content:center;text-align:center}.mc-datatable__empty-content strong{font-size:1.125rem;line-height:1.3333333333}.mc-datatable--s .mc-datatable__table tr,.mc-datatable--s .mc-datatable thead th,.mc-datatable--s .mc-datatable thead td{height:2.4375rem}.mc-datatable--l .mc-datatable__table tr,.mc-datatable--l .mc-datatable thead th,.mc-datatable--l .mc-datatable thead td{height:3.4375rem}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky-header .mc-datatable__table>thead{box-shadow:0 4px 20px #19191933;top:0;z-index:2}.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky .mc-datatable__table>tbody tr:last-child td,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child th,.mc-datatable--sticky-header .mc-datatable__table>tbody tr:last-child td{border-bottom:transparent}.mc-datatable--sticky .mc-datatable__footer,.mc-datatable--sticky-header .mc-datatable__footer{border-top:1px solid #b3b3b3;position:relative;z-index:2}.mc-datatable--sticky .mc-datatable__main{padding-top:2.9375rem;transform:translateZ(0)}.mc-datatable--sticky .mc-datatable__table{scrollbar-color:#666666 #e6e6e6;scrollbar-width:thin;display:block;overflow-y:auto}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar{background-color:#e6e6e6;height:.5rem;width:.5rem}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-track{background:#e6e6e6}.mc-datatable--sticky .mc-datatable__table::-webkit-scrollbar-thumb{background:#666666}.mc-datatable--sticky .mc-datatable__table>thead{position:fixed;width:100%}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr,.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{display:flex}.mc-datatable--sticky .mc-datatable__table>thead,.mc-datatable--sticky .mc-datatable__table>tbody,.mc-datatable--sticky .mc-datatable__table>thead tr,.mc-datatable--sticky .mc-datatable__table>tbody tr{width:100%}.mc-datatable--sticky .mc-datatable__table>tbody{flex-direction:column}.mc-datatable--sticky .mc-datatable__table>thead th,.mc-datatable--sticky .mc-datatable__table>thead td,.mc-datatable--sticky .mc-datatable__table>tbody th,.mc-datatable--sticky .mc-datatable__table>tbody td{align-items:center}.mc-datatable--sticky .mc-datatable__table>thead th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>thead td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody th:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button),.mc-datatable--sticky .mc-datatable__table>tbody td:not(.mc-datatable__cell-checkbox):not(.mc-datatable__cell-button){flex:1}.mc-datatable--sticky .mc-datatable__cell-checkbox,.mc-datatable--sticky .mc-datatable__cell-button,.mc-datatable--sticky .mc-datatable__cell-field,.mc-datatable--sticky .mc-datatable__cell-number{flex-shrink:0}.mc-datatable--sticky .mc-datatable__cell-number{justify-content:flex-end}.mc-datatable--sticky-header .mc-datatable__main{overflow-y:auto}.mc-datatable--sticky-header .mc-datatable__table>thead{position:sticky}.mc-datatable--overflow-visible .mc-datatable__container,.mc-datatable--overflow-visible .mc-datatable__main{overflow:visible}.mc-datatable__btn{margin:0;box-shadow:none;text-decoration:none;outline:none;border:none;cursor:pointer;padding:0;align-items:center;background-color:transparent;display:flex}.mc-datatable__btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__btn-icon,.mc-datatable__btn svg{width:1.5rem;height:1.5rem}.mc-datatable__sort{font-weight:700;font-size:.75rem;line-height:1.3333333333;color:#393879;text-transform:uppercase;align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.mc-datatable__sort-arrow{align-items:center;display:flex;flex-direction:column;height:1.5rem;justify-content:space-around;margin-left:.5rem;width:1.5rem}.mc-datatable__sort-arrow:after,.mc-datatable__sort-arrow:before{background-color:#cdd4d8;content:\"\";flex-shrink:0;height:.5rem;width:.75rem}.mc-datatable__sort-arrow:before{clip-path:polygon(50% 0%,0% 100%,100% 100%)}.asc .mc-datatable__sort-arrow:before{background-color:#605f9d}.desc .mc-datatable__sort-arrow:before{display:none}.mc-datatable__sort-arrow:after{clip-path:polygon(0 0,100% 0,50% 100%)}.asc .mc-datatable__sort-arrow:after{display:none}.desc .mc-datatable__sort-arrow:after{background-color:#605f9d}.mc-datatable__options{width:1.5rem;height:1.5rem}.mc-datatable__expand .mc-datatable__btn-icon{fill:#007f8c}.mc-datatable .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mc-datatable__topbar,.mc-datatable__filters{padding-bottom:1rem}.mc-datatable__topbar{justify-content:space-between}.mc-datatable__topbar,.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{display:flex;gap:1rem}.mc-datatable__topbar-edition,.mc-datatable__topbar-actions{flex-wrap:wrap}.mc-datatable__topbar-edition{flex-shrink:0}.mc-datatable__topbar-actions{align-items:center;justify-content:flex-end;margin-left:auto}.mc-datatable__filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.mc-datatable__filters:not(:only-child){border-top:1px solid #b0bbc0;padding-top:1rem}.mc-datatable__footer{align-items:center;background-color:#fff;display:flex;padding:.75rem 1rem;gap:1rem}@media screen and (max-width: 679px){.mc-datatable__footer{flex-direction:column}}.mc-datatable__select{display:flex;align-items:center;gap:.5rem}.mc-datatable__select-label{font-size:.875rem;line-height:1.2857142857;color:#333;flex-shrink:0}.mc-datatable__count{font-size:.75rem;line-height:1.3333333333;color:#666}.mc-datatable__pagination{margin-left:auto}.mc-datatable__subtable{border-collapse:collapse;border-spacing:0;caption-side:bottom;width:100%;background-color:#e7e7f0}.mc-datatable__subtable th,.mc-datatable__subtable td{border-bottom-color:#a4a3c7}.mc-datatable__subtable thead th,.mc-datatable__subtable thead td{font-size:.75rem;line-height:1.3333333333;color:#1a1a4b}.mc-datatable__subtable tbody th,.mc-datatable__subtable tbody td{color:#1a1a4b}.fix-header-row{position:sticky;top:0;box-shadow:0 1px 5px #22202033;z-index:1}.header{align-items:center;display:flex;height:100%;font-family:inherit;justify-content:space-between;width:100%}.is-sorted-asc:before{background-color:var(--color-datatable-sort-arrow-active, #333333)}.is-sorted-desc:after{background-color:var(--color-datatable-sort-arrow-active, #333333)}.mc-datatable-height{height:100%}.mc-datatable__sort-arrow{cursor:pointer}.mc-datatable__fix-first-column{position:sticky;background-color:#fff;left:0}.skeleton-box{display:inline-block;position:relative;overflow:hidden;background-color:#ccc}.skeleton-box:after{position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0));animation:shimmer 2s infinite;content:\"\"}@keyframes shimmer{to{transform:translate(100%)}}.checkbox-loading{width:25px;height:25px}.cells-loading{width:250px;height:25px}\n"] }]
|
|
137
137
|
}], propDecorators: { footerSettings: [{
|
|
138
138
|
type: Input
|
|
139
139
|
}], selectionSettings: [{
|
|
@@ -177,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
177
177
|
type: ContentChild,
|
|
178
178
|
args: [MozDatatableRowExpansionContentComponent]
|
|
179
179
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU2tCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLHVCQUF1QixDQUFDO1FBRXZELHNCQUFzQjtRQUNaLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSy9ELHlCQUF5QjtRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FB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LEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJL0IsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGFsbG93QWxsU2VsZWN0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YXRhYmxlU2V0dGluZ3M/OiBEYXRhdGFibGVTZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIHRhYmxlU3VtbWFyeSA9ICdUYWJsZSBkaXNwbGF5aW5nIGRhdGEnO1xuXG4gIC8vIEZST00gQk9EWSBEQVRBVEFCTEVcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEYXRhPigpO1xuICBAT3V0cHV0KCkgc29ydENvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIHJvd0FsbFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIGVtcHR5Qm9keUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQpXG4gIHB1YmxpYyBzZWxlY3Rpb25Db21wb25lbnQ/OiBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgLy8gRlJPTSBQQUdJTkFUSU9OIEZPT1RFUlxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcm93UGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RoU2VsZWN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRoU2VsZWN0aW9uUmVmPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGhTdWJSb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTdWJSb3dSZWY/OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudClcbiAgcHVibGljIGhlYWRlckNlbGxDb21wb25lbnRzPzogUXVlcnlMaXN0PE1vekRhdGF0YWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQpXG4gIHB1YmxpYyBjb250ZW50Q2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudClcbiAgcHVibGljIGV4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ/OiBNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBjdXN0b21IZWFkZXJDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGN1c3RvbUNvbnRlbnRDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGV4cGFuZGVkUm93czogYm9vbGVhbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRDdXN0b21IZWFkZXJNYXAoKTtcbiAgICB0aGlzLmJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50Py5jbGVhckFsbCgpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tSGVhZGVyTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzKSB7XG4gICAgICB0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzLmZvckVhY2goKGhlYWRlcikgPT4ge1xuICAgICAgICBpZiAoaGVhZGVyLmZpZWxkICYmIGhlYWRlci50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tSGVhZGVyQ2VsbHNNYXAuc2V0KGhlYWRlci5maWVsZCwgaGVhZGVyLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuY29udGVudENlbGxDb21wb25lbnRzLmZvckVhY2goKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwuZmllbGQgJiYgY2VsbC50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLnNldChjZWxsLmZpZWxkLCBjZWxsLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD8udGVtcGxhdGVSZWY7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93RXhwYW5zaW9uKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkUm93c1tpbmRleF0gPSAhdGhpcy5leHBhbmRlZFJvd3NbaW5kZXhdO1xuICB9XG5cbiAgcHVibGljIGhhc1N1YlJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHJvd1snc3ViUm93J10pLmxlbmd0aCB8fCAwKSA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tSGVhZGVyKGNvbHVtbklkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRlbnRDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb25cbiAgICAgID8gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDJcbiAgICAgIDogKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDE7XG4gIH1cblxuICBwdWJsaWMgZW1wdHlCdXR0b25DbGlja0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJvd0NsaWNrRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvd0NsaWNrOiBSb3dEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93Q2xpY2spO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudDogU2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICB0aGlzLnJvd0FsbFNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25Sb3dFdmVudCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyByb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJvd1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgc29ydEV2ZW50KCRldmVudDogdW5rbm93bikge1xuICAgIHRoaXMuc29ydENvbHVtbi5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZlxuICAgICAgPyB0aGlzLnRoU2VsZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgIDogMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWZ0VmFsdWVGaXhGaXJzdENvbHVtbigpOiBudW1iZXIge1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgaWYgKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHRoaXMudGhTZWxlY3Rpb25SZWYpIHtcbiAgICAgIHZhbHVlICs9IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzU3ViUm93KCkgJiYgdGhpcy50aFN1YlJvd1JlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFN1YlJvd1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5oaWRkZW5Db2x1bW5zKCk6IENvbHVtbkRlZltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcy5maWx0ZXIoKGhlYWRUaXRsZSkgPT4gIWhlYWRUaXRsZS5oaWRlKSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcbiAgICAgID8gWycnLCAnJywgJycsICcnLCAnJ11cbiAgICAgIDogdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZVwiIFtuZ0NsYXNzXT1cInsgJyBtYy1kYXRhdGFibGUtaGVpZ2h0JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2hlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vei1kYXRhdGFibGUtY2FwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2PlxuICAgICAgPG1vei1kYXRhdGFibGUtc2VsZWN0aW9uXG4gICAgICAgIFtzZWxlY3Rpb25TZXR0aW5nc109XCJzZWxlY3Rpb25TZXR0aW5nc1wiXG4gICAgICAgIFthbGxvd0FsbFNlbGVjdGVkXT1cImFsbG93QWxsU2VsZWN0ZWRcIlxuICAgICAgICBbcGFnaW5hdGlvbkVuYWJsZWRdPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhXCJcbiAgICAgICAgKHVwZGF0ZVNlbGVjdGlvbkFsbEVtaXR0ZXIpPVwic2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50KVwiXG4gICAgICA+PC9tb3otZGF0YXRhYmxlLXNlbGVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fbWFpblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwibWMtZGF0YXRhYmxlX190YWJsZVwiIHN1bW1hcnk9XCJ7eyB0YWJsZVN1bW1hcnkgfX1cIj5cbiAgICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2ZpeC1oZWFkZXItcm93JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZ2V0Q29sdW1ucygpICYmIGdldENvbHVtbnMoKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtY2hlY2tib3ggbW96LWRhdGF0YWJsZV9fdGggbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICgoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEgfHwgW10pLmxlbmd0aCA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgaWQ9XCJjaGVja0FsbFBhZ2VSb3dzXCJcbiAgICAgICAgICAgICAgI3RoU2VsZWN0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5vblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgIXNlbGVjdGlvbkNvbXBvbmVudC5pc0luZGV0ZXJtaW5hdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICghc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0aW9uQ29tcG9uZW50LmlzSW5kZXRlcm1pbmF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzIHx8IFtdKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAjdGhTdWJSb3dcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uRGVmIG9mIGdldENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vei1kYXRhdGFibGVfX3RoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICBnZXRVbmhpZGRlbkNvbHVtbnMoKVswXS5maWVsZCA9PT0gY29sdW1uRGVmLmZpZWxkXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nSGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWJveCBtdS1tYi0xMDAgY2VsbHMtbG9hZGluZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nSGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW21vekRhdGF0YWJsZVNvcnRdPVwiY29sdW1uRGVmXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBoZWFkZXI6IGNvbHVtbkRlZi5zb3J0IH1cIlxuICAgICAgICAgICAgICAgICAgICAoc29ydEVtaXR0ZXIpPVwic29ydEV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldEN1c3RvbUhlYWRlcihjb2x1bW5EZWYuZmllbGQpIGFzIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZGVmYXVsdEhlYWRlckNlbGxcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tSGVhZGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBjb2x1bW5EZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBjb2x1bW5EZWYuaGVhZGVyTmFtZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGE/Lmxlbmd0aCB8fCAwKSA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZztcbiAgICAgICAgICAgICAgZWxzZSBlbXB0eUJvZHlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIGdldEZpZWxkcygpOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fcm93LXBhcmVudFwiIChjbGljayk9XCJyb3dDbGlja0V2ZW50KCRldmVudCwgcm93KVwiPlxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2ZpeC1maXJzdC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgc2VsZWN0aW9uQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWJveCBtdS1tYi0xMDAgY2hlY2tib3gtbG9hZGluZ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPG1vei1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQub25VZHBhdGVTZWxlY3Rpb25Sb3cocm93KTsgc2VsZWN0aW9uUm93RXZlbnQoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyb3cuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJvdy5zZWxlY3RlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvdy5kaXNhYmxlU2VsZWN0aW9uIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21vei1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1snc3ViUm93J107IGVsc2Ugbm9TdWJSb3dcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZXhwYW5kIG1jLWRhdGF0YWJsZV9fYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RXhwYW5zaW9uKGkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1kYXRhdGFibGVfX2J0bi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkUm93c1tpXTsgZWxzZSBzdWJyb3dDbG9zZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTW9yZV8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3Vicm93Q2xvc2VkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb24gW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfQ2lyY2xlLS1MZXNzXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3ViUm93XG4gICAgICAgICAgICAgICAgICAgID48dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGRcbiAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDZWxsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NlbGxzPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21Db250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRDb250ZW50Q2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93OiByb3csXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5EZWZzOiBkYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogcm93W2NvbHVtbkRlZi5maWVsZF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29udGVudENlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyByb3dbY29sdW1uRGVmLmZpZWxkXSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cImV4cGFuZGVkUm93c1tpXVwiPlxuICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiZ2V0Q29sc3BhbkZvckV4cGFuc2lvblJvdygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKSBhcyBleHBhbnNpb25Sb3dDb250ZW50Q29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbnNpb25Sb3dDb250ZW50Q29tcG9uZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJSb3dDb250ZW50OiByb3dbJ3N1YlJvdyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlCb2R5PlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eVwiPlxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIiBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHktY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5sYWJlbHM/LmVtcHR5Qm9keVRpdGxlIHx8ICdUaGVyZSBpcyBubyByZXN1bHQuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Ryb25nXG4gICAgICAgICAgICAgICAgICAgICAgICA+PGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlEZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgdHJ5IGNoYW5naW5nIHlvdXIgZmlsdGVycy4nXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVFbXB0eUJvZHlCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3otYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwiJ25ldXRyYWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFyaWF0aW9uXT1cIidib3JkZXJlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtcHR5QnV0dG9uQ2xpY2tFdmVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJ7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5pY29ucz8uZW1wdHlCb2R5QnV0dG9uSWNvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05hdmlnYXRpb25fRGlzcGxheV9GaWx0ZXJfMjRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlCdXR0b25UaXRsZSB8fCAnQ2hhbmdlIGZpbHRlcnMnIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPjwvbmctdGVtcGxhdGVcbiAgICAgICAgICA+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxtb3otZGF0YXRhYmxlLWZvb3RlclxuICAgICAgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVQYWdpbmF0aW9uXCJcbiAgICAgIFtmb290ZXJTZXR0aW5nc109XCJmb290ZXJTZXR0aW5nc1wiXG4gICAgICBbaXNMb2FkaW5nXT1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgKHJvd1BlclBhZ2VDaGFuZ2VFbWl0dGVyKT1cInJvd1BlclBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQpXCJcbiAgICAgIChwYWdlQ2hhbmdlRW1pdHRlcik9XCJwYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgPjwvbW96LWRhdGF0YWJsZS1mb290ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW96LWRhdGF0YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxlQUFlLEVBSWYsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUc3RyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7OztBQVMxSCxNQUFNLE9BQU8scUJBQXFCO0lBTmxDO1FBU2tCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUV4QixpQkFBWSxHQUFHLHVCQUF1QixDQUFDO1FBRXZELHNCQUFzQjtRQUNaLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSy9ELHlCQUF5QjtRQUNmLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFjakQseUJBQW9CLEdBQWtDLElBQUksR0FBRyxFQUE0QixDQUFDO1FBQzFGLDBCQUFxQixHQUFrQyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUMzRixpQkFBWSxHQUFjLEVBQUUsQ0FBQztLQTBIckM7SUF4SEMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7b0JBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ2pFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDOUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLDRCQUE0QjtRQUNqQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxXQUFXLENBQUM7SUFDckQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLGVBQWUsQ0FBQyxRQUFnQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0seUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQjtZQUM5QyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFpQixFQUFFLFFBQWlCO1FBQ3ZELElBQUksS0FBSyxDQUFDLE1BQU0sWUFBWSxnQkFBZ0IsRUFBRTtZQUM1QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQXlCO1FBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxNQUFhO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBYztRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWU7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsY0FBYztZQUNyRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsV0FBVztZQUMvQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVNLDBCQUEwQjtRQUMvQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BFLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7U0FDeEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3hDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7U0FDckQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pGLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsU0FBUztZQUN0QyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsU0FBUztZQUN0QyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQ3RDLENBQUM7O21IQTVKVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiwyaEJBOEJsQix3Q0FBd0MsMEVBTnJDLCtCQUErQix3REFHL0IsZ0NBQWdDLGlGQWJ0Qyw4QkFBOEIsME9DNUMzQyxvMllBMlJBOzRGRDdQYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJOzhCQUdyQixjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBR0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLDhCQUE4QjtnQkFJL0IsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRXNDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxXQUFXO3NCQUFwRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR2pDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQywrQkFBK0I7Z0JBSXpDLHFCQUFxQjtzQkFEM0IsZUFBZTt1QkFBQyxnQ0FBZ0M7Z0JBSTFDLHlCQUF5QjtzQkFEL0IsWUFBWTt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm93RGF0YSB9IGZyb20gJy4vbW9kZWwvcm93LWRhdGEnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU2V0dGluZ3MgfSBmcm9tICcuL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9tb3otZGF0YXRhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3pEYXRhdGFibGVDb250ZW50Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb250ZW50L21vei1kYXRhdGFibGUtY29udGVudC1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhdGFibGVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWwvZGF0YXRhYmxlLXNldHRpbmdzJztcbmltcG9ydCB7IEZvb3RlclNldHRpbmdzIH0gZnJvbSAnLi9tb2RlbC9mb290ZXItc2V0dGluZ3MnO1xuaW1wb3J0IHsgTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb3cvbW96LWRhdGF0YWJsZS1yb3ctZXhwYW5zaW9uLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gJy4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3otZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTW96RGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTZXR0aW5ncz86IEZvb3RlclNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uU2V0dGluZ3M/OiBTZWxlY3Rpb25TZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIGFsbG93QWxsU2VsZWN0ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGF0YXRhYmxlU2V0dGluZ3M/OiBEYXRhdGFibGVTZXR0aW5ncztcbiAgQElucHV0KCkgcHVibGljIHRhYmxlU3VtbWFyeSA9ICdUYWJsZSBkaXNwbGF5aW5nIGRhdGEnO1xuXG4gIC8vIEZST00gQk9EWSBEQVRBVEFCTEVcbiAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dEYXRhPigpO1xuICBAT3V0cHV0KCkgc29ydENvbHVtbiA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcbiAgQE91dHB1dCgpIHJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIHJvd0FsbFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcbiAgQE91dHB1dCgpIGVtcHR5Qm9keUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQpXG4gIHB1YmxpYyBzZWxlY3Rpb25Db21wb25lbnQ/OiBNb3pEYXRhdGFibGVTZWxlY3Rpb25Db21wb25lbnQ7XG5cbiAgLy8gRlJPTSBQQUdJTkFUSU9OIEZPT1RFUlxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcm93UGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RoU2VsZWN0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRoU2VsZWN0aW9uUmVmPzogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGhTdWJSb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgdGhTdWJSb3dSZWY/OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlSGVhZGVyQ2VsbENvbXBvbmVudClcbiAgcHVibGljIGhlYWRlckNlbGxDb21wb25lbnRzPzogUXVlcnlMaXN0PE1vekRhdGF0YWJsZUhlYWRlckNlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQpXG4gIHB1YmxpYyBjb250ZW50Q2VsbENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8TW96RGF0YXRhYmxlQ29udGVudENlbGxDb21wb25lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoTW96RGF0YXRhYmxlUm93RXhwYW5zaW9uQ29udGVudENvbXBvbmVudClcbiAgcHVibGljIGV4cGFuc2lvbkNvbnRlbnRDb21wb25lbnQ/OiBNb3pEYXRhdGFibGVSb3dFeHBhbnNpb25Db250ZW50Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBjdXN0b21IZWFkZXJDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGN1c3RvbUNvbnRlbnRDZWxsc01hcDogTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4gPSBuZXcgTWFwPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHVibGljIGV4cGFuZGVkUm93czogYm9vbGVhbltdID0gW107XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYnVpbGRDdXN0b21IZWFkZXJNYXAoKTtcbiAgICB0aGlzLmJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50Py5jbGVhckFsbCgpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tSGVhZGVyTWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzKSB7XG4gICAgICB0aGlzLmhlYWRlckNlbGxDb21wb25lbnRzLmZvckVhY2goKGhlYWRlcikgPT4ge1xuICAgICAgICBpZiAoaGVhZGVyLmZpZWxkICYmIGhlYWRlci50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tSGVhZGVyQ2VsbHNNYXAuc2V0KGhlYWRlci5maWVsZCwgaGVhZGVyLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ3VzdG9tQ29udGVudE1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50Q2VsbENvbXBvbmVudHMpIHtcbiAgICAgIHRoaXMuY29udGVudENlbGxDb21wb25lbnRzLmZvckVhY2goKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwuZmllbGQgJiYgY2VsbC50ZW1wbGF0ZVJlZikge1xuICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudENlbGxzTWFwLnNldChjZWxsLmZpZWxkLCBjZWxsLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUV4cGFuc2lvblJvd0NvbnRlbnQoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5zaW9uQ29udGVudENvbXBvbmVudD8udGVtcGxhdGVSZWY7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93RXhwYW5zaW9uKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkUm93c1tpbmRleF0gPSAhdGhpcy5leHBhbmRlZFJvd3NbaW5kZXhdO1xuICB9XG5cbiAgcHVibGljIGhhc1N1YlJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEuZmlsdGVyKChyb3cpID0+IHJvd1snc3ViUm93J10pLmxlbmd0aCB8fCAwKSA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tSGVhZGVyKGNvbHVtbklkOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21IZWFkZXJDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbUNvbnRlbnQoY29sdW1uSWQ6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUNvbnRlbnRDZWxsc01hcC5nZXQoY29sdW1uSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb25cbiAgICAgID8gKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDJcbiAgICAgIDogKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnM/Lmxlbmd0aCB8fCAwKSArIDE7XG4gIH1cblxuICBwdWJsaWMgZW1wdHlCdXR0b25DbGlja0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuZW1wdHlCb2R5QnV0dG9uQ2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJvd0NsaWNrRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvd0NsaWNrOiBSb3dEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQocm93Q2xpY2spO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGlvbkFsbFJvd0V2ZW50KCRldmVudDogU2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICB0aGlzLnJvd0FsbFNlbGVjdGVkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Rpb25Sb3dFdmVudCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5yb3dTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyByb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJvd1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHBhZ2VDaGFuZ2VFdmVudCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgc29ydEV2ZW50KCRldmVudDogdW5rbm93bikge1xuICAgIHRoaXMuc29ydENvbHVtbi5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiYgdGhpcy50aFNlbGVjdGlvblJlZlxuICAgICAgPyB0aGlzLnRoU2VsZWN0aW9uUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgIDogMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWZ0VmFsdWVGaXhGaXJzdENvbHVtbigpOiBudW1iZXIge1xuICAgIGxldCB2YWx1ZSA9IDA7XG4gICAgaWYgKHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHRoaXMudGhTZWxlY3Rpb25SZWYpIHtcbiAgICAgIHZhbHVlICs9IHRoaXMudGhTZWxlY3Rpb25SZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzU3ViUm93KCkgJiYgdGhpcy50aFN1YlJvd1JlZikge1xuICAgICAgdmFsdWUgKz0gdGhpcy50aFN1YlJvd1JlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5oaWRkZW5Db2x1bW5zKCk6IENvbHVtbkRlZltdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8uY29sdW1uRGVmcy5maWx0ZXIoKGhlYWRUaXRsZSkgPT4gIWhlYWRUaXRsZS5oaWRlKSB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZ1xuICAgICAgPyBbJycsICcnLCAnJywgJycsICcnXVxuICAgICAgOiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5jb2x1bW5EZWZzO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcbiAgICAgID8gWycnLCAnJywgJycsICcnLCAnJ11cbiAgICAgIDogdGhpcy5kYXRhdGFibGVTZXR0aW5ncz8ucm93RGF0YTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZVwiIFtuZ0NsYXNzXT1cInsgJyBtYy1kYXRhdGFibGUtaGVpZ2h0JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2hlYWRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1vei1kYXRhdGFibGUtY2FwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2PlxuICAgICAgPG1vei1kYXRhdGFibGUtc2VsZWN0aW9uXG4gICAgICAgIFtzZWxlY3Rpb25TZXR0aW5nc109XCJzZWxlY3Rpb25TZXR0aW5nc1wiXG4gICAgICAgIFthbGxvd0FsbFNlbGVjdGVkXT1cImFsbG93QWxsU2VsZWN0ZWRcIlxuICAgICAgICBbcGFnaW5hdGlvbkVuYWJsZWRdPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICAgIFtyb3dEYXRhXT1cImRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhXCJcbiAgICAgICAgKHVwZGF0ZVNlbGVjdGlvbkFsbEVtaXR0ZXIpPVwic2VsZWN0aW9uQWxsUm93RXZlbnQoJGV2ZW50KVwiXG4gICAgICA+PC9tb3otZGF0YXRhYmxlLXNlbGVjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fbWFpblwiXG4gICAgICBbbmdDbGFzc109XCJ7ICcgbWMtZGF0YXRhYmxlLWhlaWdodCc6IGRhdGF0YWJsZVNldHRpbmdzPy5maXhIZWFkZXJSb3cgfVwiXG4gICAgPlxuICAgICAgPHRhYmxlIGNsYXNzPVwibWMtZGF0YXRhYmxlX190YWJsZVwiIHN1bW1hcnk9XCJ7eyB0YWJsZVN1bW1hcnkgfX1cIj5cbiAgICAgICAgPHRoZWFkIFtuZ0NsYXNzXT1cInsgJ2ZpeC1oZWFkZXItcm93JzogZGF0YXRhYmxlU2V0dGluZ3M/LmZpeEhlYWRlclJvdyB9XCI+XG4gICAgICAgICAgPHRyICpuZ0lmPVwiZ2V0Q29sdW1ucygpICYmIGdldENvbHVtbnMoKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2NlbGwtY2hlY2tib3ggbW96LWRhdGF0YWJsZV9fdGggbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uYWN0aXZhdGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncyAmJlxuICAgICAgICAgICAgICAgICgoZGF0YXRhYmxlU2V0dGluZ3M/LnJvd0RhdGEgfHwgW10pLmxlbmd0aCA+IDAgfHwgZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZylcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgaWQ9XCJjaGVja0FsbFBhZ2VSb3dzXCJcbiAgICAgICAgICAgICAgI3RoU2VsZWN0aW9uXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nOyBlbHNlIG5vdExvYWRpbmdDaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0NoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5vblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25Db21wb25lbnQuaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgIXNlbGVjdGlvbkNvbXBvbmVudC5pc0luZGV0ZXJtaW5hdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICghc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0aW9uQ29tcG9uZW50LmlzSW5kZXRlcm1pbmF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzIHx8IFtdKS5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tb3otY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtblwiXG4gICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdldFN0eWxlTGVmdEZvckNvbHVtbkZpeGVkKClcIlxuICAgICAgICAgICAgICAjdGhTdWJSb3dcbiAgICAgICAgICAgID48L3RoPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uRGVmIG9mIGdldENvbHVtbnMoKVwiPlxuICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vei1kYXRhdGFibGVfX3RoXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgJ21jLWRhdGF0YWJsZV9fZml4LWZpcnN0LWNvbHVtbic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICBnZXRVbmhpZGRlbkNvbHVtbnMoKVswXS5maWVsZCA9PT0gY29sdW1uRGVmLmZpZWxkXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0aC17eyBjb2x1bW5EZWYuZmllbGQgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0hlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNlbGxzLWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9hZGluZ0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFttb3pEYXRhdGFibGVTb3J0XT1cImNvbHVtbkRlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgaGVhZGVyOiBjb2x1bW5EZWYuc29ydCB9XCJcbiAgICAgICAgICAgICAgICAgICAgKHNvcnRFbWl0dGVyKT1cInNvcnRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21IZWFkZXIoY29sdW1uRGVmLmZpZWxkKSBhcyBjdXN0b21IZWFkZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGRlZmF1bHRIZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUhlYWRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogY29sdW1uRGVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEhlYWRlckNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY29sdW1uRGVmLmhlYWRlck5hbWUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgKGRhdGF0YWJsZVNldHRpbmdzPy5yb3dEYXRhPy5sZW5ndGggfHwgMCkgPiAwIHx8IGRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7XG4gICAgICAgICAgICAgIGVsc2UgZW1wdHlCb2R5XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiBnZXRGaWVsZHMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX3Jvdy1wYXJlbnRcIiAoY2xpY2spPVwicm93Q2xpY2tFdmVudCgkZXZlbnQsIHJvdylcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlU2VsZWN0aW9uICYmIHNlbGVjdGlvbkNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmc7IGVsc2Ugbm90TG9hZGluZ0NoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsZXRvbi1ib3ggbXUtbWItMTAwIGNoZWNrYm94LWxvYWRpbmdcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxtb3otY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50Lm9uVWRwYXRlU2VsZWN0aW9uUm93KHJvdyk7IHNlbGVjdGlvblJvd0V2ZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicm93LnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJyb3cuc2VsZWN0ZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3cuZGlzYWJsZVNlbGVjdGlvbiB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjaGVja1Jvdy17eyBpIH19XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L21vei1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzU3ViUm93KCkgJiYgIWRhdGF0YWJsZVNldHRpbmdzPy5pc0xvYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJvd1snc3ViUm93J107IGVsc2Ugbm9TdWJSb3dcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0U3R5bGVMZWZ0Rm9yQ29sdW1uRml4ZWQoKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZXhwYW5kIG1jLWRhdGF0YWJsZV9fYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUm93RXhwYW5zaW9uKGkpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYy1kYXRhdGFibGVfX2J0bi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWV4cGFuZGVkUm93c1tpXTsgZWxzZSBzdWJyb3dDbG9zZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uIFtpY29uTmFtZV09XCInTmF2aWdhdGlvbl9Db250cm9sX0NpcmNsZS0tTW9yZV8yNHB4J1wiPjwvbW96LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3Vicm93Q2xvc2VkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bW96LWljb24gW2ljb25OYW1lXT1cIidOYXZpZ2F0aW9uX0NvbnRyb2xfQ2lyY2xlLS1MZXNzXzI0cHgnXCI+PC9tb3otaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU3ViUm93XG4gICAgICAgICAgICAgICAgICAgID48dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fY2VsbC1idXR0b24gbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJnZXRTdHlsZUxlZnRGb3JDb2x1bW5GaXhlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGRcbiAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbkRlZiBvZiBnZXRDb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFjb2x1bW5EZWYuaGlkZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAnbWMtZGF0YXRhYmxlX19maXgtZmlyc3QtY29sdW1uJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGF0YWJsZVNldHRpbmdzPy5maXhGaXJzdENvbHVtbiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0VW5oaWRkZW5Db2x1bW5zKClbMF0uZmllbGQgPT09IGNvbHVtbkRlZi5maWVsZFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZ2V0TGVmdFZhbHVlRml4Rmlyc3RDb2x1bW4oKVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwicm93LXt7IGkgfX0te3sgY29sdW1uRGVmLmZpZWxkfX1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmlzTG9hZGluZzsgZWxzZSBub3RMb2FkaW5nQ2VsbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tYm94IG11LW1iLTEwMCBjZWxscy1sb2FkaW5nXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmdDZWxscz5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDdXN0b21Db250ZW50KGNvbHVtbkRlZi5maWVsZCkgYXMgY3VzdG9tQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBkZWZhdWx0Q29udGVudENlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRGVmczogZGF0YXRhYmxlU2V0dGluZ3M/LmNvbHVtbkRlZnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJvd1tjb2x1bW5EZWYuZmllbGRdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnRDZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93W2NvbHVtbkRlZi5maWVsZF0gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJleHBhbmRlZFJvd3NbaV1cIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cImdldENvbHNwYW5Gb3JFeHBhbnNpb25Sb3coKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRDdXN0b21FeHBhbnNpb25Sb3dDb250ZW50KCkgYXMgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uUm93Q29udGVudENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViUm93Q29udGVudDogcm93WydzdWJSb3cnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5Qm9keT5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fZW1wdHlcIj5cbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCIgY2xhc3M9XCJtYy1kYXRhdGFibGVfX2VtcHR5LWNlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlX19lbXB0eS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8ubGFiZWxzPy5lbXB0eUJvZHlUaXRsZSB8fCAnVGhlcmUgaXMgbm8gcmVzdWx0LidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICAgICAgPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5RGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHRyeSBjaGFuZ2luZyB5b3VyIGZpbHRlcnMuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlRW1wdHlCb2R5QnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbW96LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cIiduZXV0cmFsJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIncydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhdGlvbl09XCInYm9yZGVyZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbXB0eUJ1dHRvbkNsaWNrRXZlbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vei1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb25OYW1lPVwie3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhdGFibGVTZXR0aW5ncz8uaWNvbnM/LmVtcHR5Qm9keUJ1dHRvbkljb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOYXZpZ2F0aW9uX0Rpc3BsYXlfRmlsdGVyXzI0cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L21vei1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGF0YXRhYmxlU2V0dGluZ3M/LmxhYmVscz8uZW1wdHlCb2R5QnV0dG9uVGl0bGUgfHwgJ0NoYW5nZSBmaWx0ZXJzJyB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj48L25nLXRlbXBsYXRlXG4gICAgICAgICAgPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8bW96LWRhdGF0YWJsZS1mb290ZXJcbiAgICAgICpuZ0lmPVwiZGF0YXRhYmxlU2V0dGluZ3M/LmFjdGl2YXRlUGFnaW5hdGlvblwiXG4gICAgICBbZm9vdGVyU2V0dGluZ3NdPVwiZm9vdGVyU2V0dGluZ3NcIlxuICAgICAgW2lzTG9hZGluZ109XCJkYXRhdGFibGVTZXR0aW5ncz8uaXNMb2FkaW5nXCJcbiAgICAgIChyb3dQZXJQYWdlQ2hhbmdlRW1pdHRlcik9XCJyb3dQZXJQYWdlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAocGFnZUNoYW5nZUVtaXR0ZXIpPVwicGFnZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgID48L21vei1kYXRhdGFibGUtZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -77,12 +77,12 @@ export class PaginationComponent {
|
|
|
77
77
|
}
|
|
78
78
|
nextPage() {
|
|
79
79
|
this.writeValue(this.currentPage + PAGINATION_PAGE_STEP);
|
|
80
|
-
this.pageChangeEvent.emit(this.currentPage
|
|
80
|
+
this.pageChangeEvent.emit(this.currentPage);
|
|
81
81
|
this.cd.markForCheck();
|
|
82
82
|
}
|
|
83
83
|
previousPage() {
|
|
84
84
|
this.writeValue(this.currentPage - PAGINATION_PAGE_STEP);
|
|
85
|
-
this.pageChangeEvent.emit(this.currentPage
|
|
85
|
+
this.pageChangeEvent.emit(this.currentPage);
|
|
86
86
|
this.cd.markForCheck();
|
|
87
87
|
}
|
|
88
88
|
compareWithPages(page, currentPage) {
|
|
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
144
144
|
}], pageChangeEvent: [{
|
|
145
145
|
type: Output
|
|
146
146
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLG9CQUFvQixHQUNyQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjlCLFlBQ21CLGtCQUF1QyxFQUN2QyxFQUFxQjtRQURyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBN0IvQixrQkFBYSxHQUFH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RUcsYUFBYTtzQkFBckIsS0FBSztnQkFHSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uU2l6ZSB9IGZyb20gJy4uL2ljb24vaWNvbi1zaXplJztcbmltcG9ydCB7IFNFTEVDVF9TSVpFLCBTZWxlY3RTaXplIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC1zaXplJztcbmltcG9ydCB7XG4gIFBhZ2UsXG4gIFBBR0lOQVRJT05fRklSU1RfUEFHRSxcbiAgUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTLFxuICBQQUdJTkFUSU9OX1BBR0VfU1RFUCxcbn0gZnJvbSAnLi9wYWdpbmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFnaW5hdGlvbkNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1BBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG51bWJlck9mUGFnZXMgPSBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVM7XG5cbiAgQElucHV0KCkgbGlnaHQgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnZUxhYmVsID0gJ1BhZ2UnO1xuICBASW5wdXQoKSBwYWdlT2ZMYWJlbCA9ICdvZic7XG5cbiAgQElucHV0KCkgcGFnZVRpdGxlTWFzayA9IChwYWdlOiBudW1iZXIsIG51bWJlck9mUGFnZXM6IG51bWJlcikgPT5cbiAgICBgJHt0aGlzLnBhZ2VMYWJlbH0gJHtwYWdlfSAke3RoaXMucGFnZU9mTGFiZWx9ICR7bnVtYmVyT2ZQYWdlc31gO1xuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIHB1YmxpYyBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICBwdWJsaWMgY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG5cbiAgcHVibGljIHBhZ2VzOiBQYWdlW10gPSBbXTtcblxuICBwdWJsaWMgcmlnaHRJY29uTmFtZSE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgbGVmdEljb25OYW1lITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHB1YmxpYyBzZWxlY3RTaXplOiBPYnNlcnZhYmxlPFNlbGVjdFNpemU+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc21hbGxSZXNvbHV0aW9uID0gMTAyNDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50U2VydmljZTogR2xvYmFsRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5kaXNwbGF5SXNTbWFsbCgpLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSk7XG4gICAgdGhpcy5pbml0aWFsaXplSWNvbnMoaXNTbWFsbCk7XG4gICAgdGhpcy5zZWxlY3RTaXplID0gaXNTbWFsbC5waXBlKG1hcCgoaXNTbWFsbCkgPT4gdGhpcy5jaG9vc2VTZWxlY3RTaXplKGlzU21hbGwpKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKTtcbiAgICBpZiAodGhpcy52aWV3U2VsZWN0KSB7XG4gICAgICB0aGlzLnBhZ2VzID0gdGhpcy5pbml0aWFsaXplUGFnZXModGhpcy5udW1iZXJPZlBhZ2VzKTtcbiAgICB9XG4gICAgdGhpcy5yZWluaXRpYWxpemVDdXJyZW50UGFnZUF0T3ZlcmZsb3coKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgbnVtYmVyT2ZQYWdlcywgcGFnZVRpdGxlTWFzayB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZWVkUmVuZGVyUGFnZXMoXG4gICAgICAgIHRoaXMudmlld1NlbGVjdCxcbiAgICAgICAgbnVtYmVyT2ZQYWdlcz8uY3VycmVudFZhbHVlLFxuICAgICAgICBudW1iZXJPZlBhZ2VzPy5wcmV2aW91c1ZhbHVlLFxuICAgICAgICBwYWdlVGl0bGVNYXNrPy5jdXJyZW50VmFsdWUsXG4gICAgICAgIHBhZ2VUaXRsZU1hc2s/LnByZXZpb3VzVmFsdWVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMucmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCk7XG4gICAgfVxuICAgIHRoaXMucGFnZXMgPSB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLm51bWJlck9mUGFnZXMpO1xuICAgIHRoaXMucmVpbml0aWFsaXplQ3VycmVudFBhZ2VBdE92ZXJmbG93KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdTZWxlY3QoKSB7XG4gICAgcmV0dXJuICF0aGlzLmxpZ2h0O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8PSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPj0gdGhpcy5udW1iZXJPZlBhZ2VzO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZFNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJPZlBhZ2VzIDw9IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUztcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSB0aGlzLmN1cnJlbnRQYWdlIHx8IHZhbHVlID4gdGhpcy5udW1iZXJPZlBhZ2VzKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHZhbHVlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0UGFnZSgpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5jdXJyZW50UGFnZSArIFBBR0lOQVRJT05fUEFHRV9TVEVQKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KHRoaXMuY3VycmVudFBhZ2UgKyBQQUdJTkFUSU9OX1BBR0VfU1RFUCk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuY3VycmVudFBhZ2UgLSBQQUdJTkFUSU9OX1BBR0VfU1RFUCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlRXZlbnQuZW1pdCh0aGlzLmN1cnJlbnRQYWdlIC0gUEFHSU5BVElPTl9QQUdFX1NURVApO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZVdpdGhQYWdlcyhwYWdlOiBudW1iZXIsIGN1cnJlbnRQYWdlPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IGN1cnJlbnRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplUGFnZXMobnVtYmVyT2ZQYWdlczogbnVtYmVyKTogUGFnZVtdIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG51bWJlck9mUGFnZXMpLmZpbGwobnVsbCkubWFwKChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRpdGxlOiB0aGlzLnBhZ2VUaXRsZU1hc2soaW5kZXggKyAxLCBudW1iZXJPZlBhZ2VzKSxcbiAgICAgIHZhbHVlOiBpbmRleCArIDEsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplSWNvbnMoaXNTbWFsbDogT2JzZXJ2YWJsZTxib29sZWFuPikge1xuICAgIGNvbnN0IGljb25TaXplID0gaXNTbWFsbC5waXBlKFxuICAgICAgbWFwKChpc1NtYWxsKSA9PiB0aGlzLmNob29zZUljb25TaXplKGlzU21hbGwpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSlcbiAgICApO1xuXG4gICAgdGhpcy5sZWZ0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLUxlZnRfJHtpY29uU2l6ZX1gKVxuICAgICk7XG5cbiAgICB0aGlzLnJpZ2h0SWNvbk5hbWUgPSBpY29uU2l6ZS5waXBlKFxuICAgICAgbWFwKChpY29uU2l6ZSkgPT4gYE5hdmlnYXRpb25fQXJyb3dfQXJyb3ctLVJpZ2h0XyR7aWNvblNpemV9YClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5SXNTbWFsbCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXNpemVFdmVudCA9IHRoaXMuZ2xvYmFsRXZlbnRTZXJ2aWNlLmdldFdpbmRvd0V2ZW50KCdyZXNpemUnKS5waXBlKGRlYm91bmNlVGltZSgxMDApKTtcbiAgICBjb25zdCBkaXNwbGF5V2lkdGggPSByZXNpemVFdmVudC5waXBlKFxuICAgICAgbWFwKChldmVudCkgPT4gKGV2ZW50Py50YXJnZXQgYXMgV2luZG93KT8uaW5uZXJXaWR0aCksXG4gICAgICBzdGFydFdpdGgodGhpcy5nbG9iYWxFdmVudFNlcnZpY2Uud2luZG93LmlubmVyV2lkdGgpXG4gICAgKTtcbiAgICByZXR1cm4gZGlzcGxheVdpZHRoLnBpcGUobWFwKCh3aWR0aCkgPT4gd2lkdGggPCB0aGlzLnNtYWxsUmVzb2x1dGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWluaXRpYWxpemVDdXJyZW50UGFnZUF0T3ZlcmZsb3coKSB7XG4gICAgaWYgKHRoaXMubnVtYmVyT2ZQYWdlcyA8IHRoaXMuY3VycmVudFBhZ2UpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZShQQUdJTkFUSU9OX0ZJUlNUX1BBR0UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCkge1xuICAgIGlmICghdGhpcy5udW1iZXJPZlBhZ2VzIHx8IHRoaXMubnVtYmVyT2ZQYWdlcyA8IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUykge1xuICAgICAgdGhpcy5udW1iZXJPZlBhZ2VzID0gUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hvb3NlSWNvblNpemUoaXNTbWFsbDogYm9vbGVhbik6IEljb25TaXplIHtcbiAgICByZXR1cm4gaXNTbWFsbCA/IEljb25TaXplLkwgOiBJY29uU2l6ZS5NO1xuICB9XG5cbiAgcHJpdmF0ZSBjaG9vc2VTZWxlY3RTaXplKGlzU21hbGw6IGJvb2xlYW4pOiBTZWxlY3RTaXplIHtcbiAgICByZXR1cm4gaXNTbWFsbCA/IFNFTEVDVF9TSVpFLk0gOiBTRUxFQ1RfU0laRS5TO1xuICB9XG5cbiAgcHJpdmF0ZSBuZWVkUmVuZGVyUGFnZXMoXG4gICAgdmlld1NlbGVjdDogYm9vbGVhbixcbiAgICBudW1iZXJPZlBhZ2VzUHJldmlvdXM/OiBudW1iZXIsXG4gICAgbnVtYmVyT2ZQYWdlc0N1cnJlbnQ/OiBudW1iZXIsXG4gICAgcGFnZVRpdGxlTWFza1ByZXZpb3VzPzogdW5rbm93bixcbiAgICBwYWdlVGl0bGVNYXNrQ3VycmVudD86IHVua25vd25cbiAgKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbnVtYmVyT2ZQYWdlSGFzQ2hhbmdlcyA9IG51bWJlck9mUGFnZXNQcmV2aW91cyAhPT0gbnVtYmVyT2ZQYWdlc0N1cnJlbnQ7XG4gICAgY29uc3QgbWFza0hhc0NoYW5nZXMgPSBwYWdlVGl0bGVNYXNrUHJldmlvdXMgIT09IHBhZ2VUaXRsZU1hc2tDdXJyZW50O1xuICAgIHJldHVybiB2aWV3U2VsZWN0ICYmIChudW1iZXJPZlBhZ2VIYXNDaGFuZ2VzIHx8IG1hc2tIYXNDaGFuZ2VzKTtcbiAgfVxufVxuIiwiPG5hdiBjbGFzcz1cIm1jLXBhZ2luYXRpb25cIiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJwYWdpbmF0aW9uXCI+XG4gIDxidXR0b25cbiAgICBtb3otYnV0dG9uXG4gICAgdGhlbWU9XCJuZXV0cmFsXCJcbiAgICBjbGFzcz1cIm1jLXBhZ2luYXRpb25fX2J1dHRvblwiXG4gICAgW2Rpc2FibGVkXT1cImlzRmlyc3RQYWdlXCJcbiAgICBbb25seUljb25dPVwidHJ1ZVwiXG4gICAgW3NpemVdPVwiKHNlbGVjdFNpemUgfCBhc3luYykhXCJcbiAgICAoY2xpY2spPVwicHJldmlvdXNQYWdlKClcIlxuICAgICpuZ0lmPVwibGVmdEljb25OYW1lIHwgYXN5bmM7IGxldCBpY29uXCJcbiAgPlxuICAgIDxtb3otaWNvbiBbaWNvbk5hbWVdPVwiaWNvblwiPjwvbW96LWljb24+XG4gIDwvYnV0dG9uPlxuICA8ZGl2ICpuZ0lmPVwidmlld1NlbGVjdFwiPlxuICAgIDxzZWxlY3RcbiAgICAgIG1vei1zZWxlY3RcbiAgICAgIFtuZ01vZGVsXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoY3VycmVudFBhZ2UpOyB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KHRoaXMuY3VycmVudFBhZ2UpXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIndyaXRlVmFsdWUoJGV2ZW50KVwiXG4gICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVdpdGhQYWdlc1wiXG4gICAgICBbc2l6ZV09XCIoc2VsZWN0U2l6ZSB8IGFzeW5jKSFcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkU2VsZWN0XCJcbiAgICA+XG4gICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCIgW25nVmFsdWVdPVwicGFnZS52YWx1ZVwiPnt7IHBhZ2UudGl0bGUgfX08L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGJ1dHRvblxuICAgIG1vei1idXR0b25cbiAgICB0aGVtZT1cIm5ldXRyYWxcIlxuICAgIGNsYXNzPVwibWMtcGFnaW5hdGlvbl9fYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNMYXN0UGFnZVwiXG4gICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgIFtzaXplXT1cIihzZWxlY3RTaXplIHwgYXN5bmMpIVwiXG4gICAgW29ubHlJY29uXT1cInRydWVcIlxuICAgICpuZ0lmPVwicmlnaHRJY29uTmFtZSB8IGFzeW5jOyBsZXQgaWNvblwiXG4gID5cbiAgICA8bW96LWljb24gW2ljb25OYW1lXT1cImljb25cIj48L21vei1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmF2PlxuIl19
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsOEJBQThCLEVBQzlCLG9CQUFvQixHQUNyQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQVE7SUFDcEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjlCLFlBQ21CLGtCQUF1QyxFQUN2QyxFQUFxQjtRQURyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBN0IvQixrQkFBYSxHQUFH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SSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uU2l6ZSB9IGZyb20gJy4uL2ljb24vaWNvbi1zaXplJztcbmltcG9ydCB7IFNFTEVDVF9TSVpFLCBTZWxlY3RTaXplIH0gZnJvbSAnLi4vc2VsZWN0L3NlbGVjdC1zaXplJztcbmltcG9ydCB7XG4gIFBhZ2UsXG4gIFBBR0lOQVRJT05fRklSU1RfUEFHRSxcbiAgUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTLFxuICBQQUdJTkFUSU9OX1BBR0VfU1RFUCxcbn0gZnJvbSAnLi9wYWdpbmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGFnaW5hdGlvbkNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW96LXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1BBR0lOQVRJT05fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG51bWJlck9mUGFnZXMgPSBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVM7XG5cbiAgQElucHV0KCkgbGlnaHQgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnZUxhYmVsID0gJ1BhZ2UnO1xuICBASW5wdXQoKSBwYWdlT2ZMYWJlbCA9ICdvZic7XG5cbiAgQElucHV0KCkgcGFnZVRpdGxlTWFzayA9IChwYWdlOiBudW1iZXIsIG51bWJlck9mUGFnZXM6IG51bWJlcikgPT5cbiAgICBgJHt0aGlzLnBhZ2VMYWJlbH0gJHtwYWdlfSAke3RoaXMucGFnZU9mTGFiZWx9ICR7bnVtYmVyT2ZQYWdlc31gO1xuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwdWJsaWMgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIHB1YmxpYyBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICBwdWJsaWMgY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG5cbiAgcHVibGljIHBhZ2VzOiBQYWdlW10gPSBbXTtcblxuICBwdWJsaWMgcmlnaHRJY29uTmFtZSE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgbGVmdEljb25OYW1lITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHB1YmxpYyBzZWxlY3RTaXplOiBPYnNlcnZhYmxlPFNlbGVjdFNpemU+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc21hbGxSZXNvbHV0aW9uID0gMTAyNDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50U2VydmljZTogR2xvYmFsRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBjb25zdCBpc1NtYWxsID0gdGhpcy5kaXNwbGF5SXNTbWFsbCgpLnBpcGUoc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KSk7XG4gICAgdGhpcy5pbml0aWFsaXplSWNvbnMoaXNTbWFsbCk7XG4gICAgdGhpcy5zZWxlY3RTaXplID0gaXNTbWFsbC5waXBlKG1hcCgoaXNTbWFsbCkgPT4gdGhpcy5jaG9vc2VTZWxlY3RTaXplKGlzU21hbGwpKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKTtcbiAgICBpZiAodGhpcy52aWV3U2VsZWN0KSB7XG4gICAgICB0aGlzLnBhZ2VzID0gdGhpcy5pbml0aWFsaXplUGFnZXModGhpcy5udW1iZXJPZlBhZ2VzKTtcbiAgICB9XG4gICAgdGhpcy5yZWluaXRpYWxpemVDdXJyZW50UGFnZUF0T3ZlcmZsb3coKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHsgbnVtYmVyT2ZQYWdlcywgcGFnZVRpdGxlTWFzayB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uZWVkUmVuZGVyUGFnZXMoXG4gICAgICAgIHRoaXMudmlld1NlbGVjdCxcbiAgICAgICAgbnVtYmVyT2ZQYWdlcz8uY3VycmVudFZhbHVlLFxuICAgICAgICBudW1iZXJPZlBhZ2VzPy5wcmV2aW91c1ZhbHVlLFxuICAgICAgICBwYWdlVGl0bGVNYXNrPy5jdXJyZW50VmFsdWUsXG4gICAgICAgIHBhZ2VUaXRsZU1hc2s/LnByZXZpb3VzVmFsdWVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRoaXMucmVpbml0aWFsaXplTnVtYmVyT2ZQYWdlc0F0SW52YWxpZFZhbHVlKCk7XG4gICAgfVxuICAgIHRoaXMucGFnZXMgPSB0aGlzLmluaXRpYWxpemVQYWdlcyh0aGlzLm51bWJlck9mUGFnZXMpO1xuICAgIHRoaXMucmVpbml0aWFsaXplQ3VycmVudFBhZ2VBdE92ZXJmbG93KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdTZWxlY3QoKSB7XG4gICAgcmV0dXJuICF0aGlzLmxpZ2h0O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8PSBQQUdJTkFUSU9OX0ZJUlNUX1BBR0U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPj0gdGhpcy5udW1iZXJPZlBhZ2VzO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZFNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJPZlBhZ2VzIDw9IFBBR0lOQVRJT05fTUlOX05VTUJFUl9PRl9QQUdFUztcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHZhbHVlID09PSB0aGlzLmN1cnJlbnRQYWdlIHx8IHZhbHVlID4gdGhpcy5udW1iZXJPZlBhZ2VzKSByZXR1cm47XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHZhbHVlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0UGFnZSgpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5jdXJyZW50UGFnZSArIFBBR0lOQVRJT05fUEFHRV9TVEVQKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VFdmVudC5lbWl0KHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNQYWdlKCkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmN1cnJlbnRQYWdlIC0gUEFHSU5BVElPTl9QQUdFX1NURVApO1xuICAgIHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50UGFnZSk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJlV2l0aFBhZ2VzKHBhZ2U6IG51bWJlciwgY3VycmVudFBhZ2U/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFnZSA9PT0gY3VycmVudFBhZ2U7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVQYWdlcyhudW1iZXJPZlBhZ2VzOiBudW1iZXIpOiBQYWdlW10ge1xuICAgIHJldHVybiBuZXcgQXJyYXkobnVtYmVyT2ZQYWdlcykuZmlsbChudWxsKS5tYXAoKF8sIGluZGV4KSA9PiAoe1xuICAgICAgdGl0bGU6IHRoaXMucGFnZVRpdGxlTWFzayhpbmRleCArIDEsIG51bWJlck9mUGFnZXMpLFxuICAgICAgdmFsdWU6IGluZGV4ICsgMSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVJY29ucyhpc1NtYWxsOiBPYnNlcnZhYmxlPGJvb2xlYW4+KSB7XG4gICAgY29uc3QgaWNvblNpemUgPSBpc1NtYWxsLnBpcGUoXG4gICAgICBtYXAoKGlzU21hbGwpID0+IHRoaXMuY2hvb3NlSWNvblNpemUoaXNTbWFsbCkpLFxuICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICB0aGlzLmxlZnRJY29uTmFtZSA9IGljb25TaXplLnBpcGUoXG4gICAgICBtYXAoKGljb25TaXplKSA9PiBgTmF2aWdhdGlvbl9BcnJvd19BcnJvdy0tTGVmdF8ke2ljb25TaXplfWApXG4gICAgKTtcblxuICAgIHRoaXMucmlnaHRJY29uTmFtZSA9IGljb25TaXplLnBpcGUoXG4gICAgICBtYXAoKGljb25TaXplKSA9PiBgTmF2aWdhdGlvbl9BcnJvd19BcnJvdy0tUmlnaHRfJHtpY29uU2l6ZX1gKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlJc1NtYWxsKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc2l6ZUV2ZW50ID0gdGhpcy5nbG9iYWxFdmVudFNlcnZpY2UuZ2V0V2luZG93RXZlbnQoJ3Jlc2l6ZScpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuICAgIGNvbnN0IGRpc3BsYXlXaWR0aCA9IHJlc2l6ZUV2ZW50LnBpcGUoXG4gICAgICBtYXAoKGV2ZW50KSA9PiAoZXZlbnQ/LnRhcmdldCBhcyBXaW5kb3cpPy5pbm5lcldpZHRoKSxcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmdsb2JhbEV2ZW50U2VydmljZS53aW5kb3cuaW5uZXJXaWR0aClcbiAgICApO1xuICAgIHJldHVybiBkaXNwbGF5V2lkdGgucGlwZShtYXAoKHdpZHRoKSA9PiB3aWR0aCA8IHRoaXMuc21hbGxSZXNvbHV0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIHJlaW5pdGlhbGl6ZUN1cnJlbnRQYWdlQXRPdmVyZmxvdygpIHtcbiAgICBpZiAodGhpcy5udW1iZXJPZlBhZ2VzIDwgdGhpcy5jdXJyZW50UGFnZSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKFBBR0lOQVRJT05fRklSU1RfUEFHRSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWluaXRpYWxpemVOdW1iZXJPZlBhZ2VzQXRJbnZhbGlkVmFsdWUoKSB7XG4gICAgaWYgKCF0aGlzLm51bWJlck9mUGFnZXMgfHwgdGhpcy5udW1iZXJPZlBhZ2VzIDwgUEFHSU5BVElPTl9NSU5fTlVNQkVSX09GX1BBR0VTKSB7XG4gICAgICB0aGlzLm51bWJlck9mUGFnZXMgPSBQQUdJTkFUSU9OX01JTl9OVU1CRVJfT0ZfUEFHRVM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaG9vc2VJY29uU2l6ZShpc1NtYWxsOiBib29sZWFuKTogSWNvblNpemUge1xuICAgIHJldHVybiBpc1NtYWxsID8gSWNvblNpemUuTCA6IEljb25TaXplLk07XG4gIH1cblxuICBwcml2YXRlIGNob29zZVNlbGVjdFNpemUoaXNTbWFsbDogYm9vbGVhbik6IFNlbGVjdFNpemUge1xuICAgIHJldHVybiBpc1NtYWxsID8gU0VMRUNUX1NJWkUuTSA6IFNFTEVDVF9TSVpFLlM7XG4gIH1cblxuICBwcml2YXRlIG5lZWRSZW5kZXJQYWdlcyhcbiAgICB2aWV3U2VsZWN0OiBib29sZWFuLFxuICAgIG51bWJlck9mUGFnZXNQcmV2aW91cz86IG51bWJlcixcbiAgICBudW1iZXJPZlBhZ2VzQ3VycmVudD86IG51bWJlcixcbiAgICBwYWdlVGl0bGVNYXNrUHJldmlvdXM/OiB1bmtub3duLFxuICAgIHBhZ2VUaXRsZU1hc2tDdXJyZW50PzogdW5rbm93blxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCBudW1iZXJPZlBhZ2VIYXNDaGFuZ2VzID0gbnVtYmVyT2ZQYWdlc1ByZXZpb3VzICE9PSBudW1iZXJPZlBhZ2VzQ3VycmVudDtcbiAgICBjb25zdCBtYXNrSGFzQ2hhbmdlcyA9IHBhZ2VUaXRsZU1hc2tQcmV2aW91cyAhPT0gcGFnZVRpdGxlTWFza0N1cnJlbnQ7XG4gICAgcmV0dXJuIHZpZXdTZWxlY3QgJiYgKG51bWJlck9mUGFnZUhhc0NoYW5nZXMgfHwgbWFza0hhc0NoYW5nZXMpO1xuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwibWMtcGFnaW5hdGlvblwiIHJvbGU9XCJuYXZpZ2F0aW9uXCIgYXJpYS1sYWJlbD1cInBhZ2luYXRpb25cIj5cbiAgPGJ1dHRvblxuICAgIG1vei1idXR0b25cbiAgICB0aGVtZT1cIm5ldXRyYWxcIlxuICAgIGNsYXNzPVwibWMtcGFnaW5hdGlvbl9fYnV0dG9uXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2VcIlxuICAgIFtvbmx5SWNvbl09XCJ0cnVlXCJcbiAgICBbc2l6ZV09XCIoc2VsZWN0U2l6ZSB8IGFzeW5jKSFcIlxuICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiXG4gICAgKm5nSWY9XCJsZWZ0SWNvbk5hbWUgfCBhc3luYzsgbGV0IGljb25cIlxuICA+XG4gICAgPG1vei1pY29uIFtpY29uTmFtZV09XCJpY29uXCI+PC9tb3otaWNvbj5cbiAgPC9idXR0b24+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3U2VsZWN0XCI+XG4gICAgPHNlbGVjdFxuICAgICAgbW96LXNlbGVjdFxuICAgICAgW25nTW9kZWxdPVwiY3VycmVudFBhZ2VcIlxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZShjdXJyZW50UGFnZSk7IHRoaXMucGFnZUNoYW5nZUV2ZW50LmVtaXQodGhpcy5jdXJyZW50UGFnZSlcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwid3JpdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlV2l0aFBhZ2VzXCJcbiAgICAgIFtzaXplXT1cIihzZWxlY3RTaXplIHwgYXN5bmMpIVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRTZWxlY3RcIlxuICAgID5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIiBbbmdWYWx1ZV09XCJwYWdlLnZhbHVlXCI+e3sgcGFnZS50aXRsZSB9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8YnV0dG9uXG4gICAgbW96LWJ1dHRvblxuICAgIHRoZW1lPVwibmV1dHJhbFwiXG4gICAgY2xhc3M9XCJtYy1wYWdpbmF0aW9uX19idXR0b25cIlxuICAgIFtkaXNhYmxlZF09XCJpc0xhc3RQYWdlXCJcbiAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgW3NpemVdPVwiKHNlbGVjdFNpemUgfCBhc3luYykhXCJcbiAgICBbb25seUljb25dPVwidHJ1ZVwiXG4gICAgKm5nSWY9XCJyaWdodEljb25OYW1lIHwgYXN5bmM7IGxldCBpY29uXCJcbiAgPlxuICAgIDxtb3otaWNvbiBbaWNvbk5hbWVdPVwiaWNvblwiPjwvbW96LWljb24+XG4gIDwvYnV0dG9uPlxuPC9uYXY+XG4iXX0=
|