@recursyve/nice-data-filter-kit 15.3.4 → 16.0.0
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/{esm2020 → esm2022}/lib/components/base-list/base-list.component.mjs +8 -8
- package/{esm2020 → esm2022}/lib/components/base-list/base-list.module.mjs +40 -40
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-buttons.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-cards.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-custom-content.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-directives.module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-empty-search-result-state.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-empty-state.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-filters.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-table.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-title.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/providers/base-filter.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/providers/base-list-saved-report.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/store/base-list.query.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/store/base-list.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/base-list/store/base-list.store.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/multi-state-list/multi-state-list.component.mjs +8 -8
- package/{esm2020 → esm2022}/lib/components/multi-state-list/multi-state-list.module.mjs +40 -40
- package/{esm2020 → esm2022}/lib/components/multi-state-list/store/multi-state-list.query.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/multi-state-list/store/multi-state-list.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/multi-state-list/store/multi-state-list.store.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.mjs +4 -4
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +119 -0
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.mjs +52 -52
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.mjs +4 -4
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +40 -0
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.mjs +4 -4
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +28 -0
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +30 -0
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +60 -0
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.mjs +4 -4
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +79 -0
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/common/data.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/search/search.component.mjs +5 -5
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/directives/mat-paginator.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/directives/mat-sort.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/directives/mat-tables.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/directives/query-params.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/nice-filter-view.component.mjs +8 -8
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/nice-filter-view.module.mjs +40 -40
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/nice-nested-filter-view.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/query-builder/filter-selection/filter-selection.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/query-builder/query-builder-trigger.directive.mjs +4 -4
- package/esm2022/lib/components/query-builder/query-builder.component.mjs +100 -0
- package/{esm2020 → esm2022}/lib/components/query-builder/query-builder.module.mjs +45 -45
- package/esm2022/lib/components/query-builder/rule/components/date/date-filter.component.mjs +40 -0
- package/{esm2020 → esm2022}/lib/components/query-builder/rule/components/filter.component.mjs +4 -4
- package/esm2022/lib/components/query-builder/rule/components/number/number-filter.component.mjs +28 -0
- package/esm2022/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +30 -0
- package/esm2022/lib/components/query-builder/rule/components/select/select-filter.component.mjs +87 -0
- package/esm2022/lib/components/query-builder/rule/components/text/text-filter.component.mjs +31 -0
- package/{esm2020 → esm2022}/lib/components/query-builder/rule/rule.component.mjs +4 -4
- package/esm2022/lib/components/query-builder/utils/qb-filter.utils.mjs +89 -0
- package/{esm2020 → esm2022}/lib/directive/selectable-list/providers/preload-selected-entities.provider.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/providers/selectable-list-content.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list-select-all.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list-state.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/directive/selectable-list/store/selectable-list.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/utils/date.adapter.mjs +4 -4
- package/{fesm2020 → fesm2022}/recursyve-nice-data-filter-kit.mjs +572 -572
- package/{fesm2020 → fesm2022}/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/lib/components/base-list/base-list.component.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-buttons.directive.d.ts +1 -1
- package/lib/components/base-list/directives/base-list-table.directive.d.ts +1 -1
- package/lib/components/multi-state-list/multi-state-list.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +1 -1
- package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +1 -1
- package/lib/components/nice-filter-view/components/search/search.component.d.ts +1 -1
- package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +1 -1
- package/lib/components/query-builder/filter-selection/filter-selection.component.d.ts +1 -1
- package/lib/components/query-builder/query-builder-trigger.directive.d.ts +1 -1
- package/lib/components/query-builder/query-builder.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/radio/radio-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/select/select-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/components/text/text-filter.component.d.ts +1 -1
- package/lib/components/query-builder/rule/rule.component.d.ts +1 -1
- package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +1 -1
- package/lib/directive/selectable-list/selectable-list-select-all.directive.d.ts +1 -1
- package/lib/directive/selectable-list/selectable-list.directive.d.ts +1 -1
- package/package.json +13 -19
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +0 -119
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +0 -40
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +0 -28
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +0 -30
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +0 -60
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +0 -31
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +0 -79
- package/esm2020/lib/components/query-builder/query-builder.component.mjs +0 -100
- package/esm2020/lib/components/query-builder/rule/components/date/date-filter.component.mjs +0 -40
- package/esm2020/lib/components/query-builder/rule/components/number/number-filter.component.mjs +0 -28
- package/esm2020/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +0 -30
- package/esm2020/lib/components/query-builder/rule/components/select/select-filter.component.mjs +0 -87
- package/esm2020/lib/components/query-builder/rule/components/text/text-filter.component.mjs +0 -31
- package/esm2020/lib/components/query-builder/utils/qb-filter.utils.mjs +0 -89
- package/fesm2015/recursyve-nice-data-filter-kit.mjs +0 -5586
- package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/api/dto/saved-reports.dto.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/filter.api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/models/saved-reports.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/api/saved-report.api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/base-list.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/models/columns.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/models/export.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/models/icons.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/models/layout.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/base-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/multi-state-list/models/list-states.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/multi-state-list/multi-state-list.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/multi-state-list/providers/multi-state-filter.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/multi-state-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/components/advanced-filters/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/models/order-options.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/nice-filter-view.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/nice-filter-view/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/query-builder/models/icons.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/query-builder/providers/filter-group.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/query-builder/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/query-builder/query-builder.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/query-builder/query-builder.form.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/model/load-all-entities-options.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/model/selectable-list-options.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/selectable-list.constant.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/store/selectable-list-state.query.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/store/selectable-list-state.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directive/selectable-list/store/selectable-list.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/filter.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/query.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/filter.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/order.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/query-params.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/string.utils.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/recursyve-nice-data-filter-kit.mjs +0 -0
|
@@ -249,14 +249,14 @@ export class NiceBaseListComponent {
|
|
|
249
249
|
]);
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListComponent, deps: [{ token: ENABLE_QUERY_BUILDER, optional: true }, { token: BASE_LIST_ICONS }, { token: BASE_LIST_LAYOUT }, { token: TABLE_COLUMNS }, { token: EXPORTS_SETTINGS }, { token: i1.NiceBaseListQuery }, { token: i2.NiceBaseListService }, { token: i3.ActivatedRoute }, { token: i4.MatBottomSheet }, { token: i3.Router }, { token: i5.NiceMediaWatcherService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: NiceBaseListComponent, selector: "nice-base-list", inputs: { mode: "mode", layout: "layout", layoutContent: "layoutContent", autoChangeLayout: "autoChangeLayout", baseRoute: "baseRoute", routeFn: "routeFn", navigateFn: "navigateFn", autoLoad: "autoLoad", pageTitle: "pageTitle", canExport: "canExport", disableRouting: "disableRouting", customExport: "customExport", queryParams: "queryParams", configQueryParams: "configQueryParams" }, outputs: { newPage: "newPage" }, providers: [
|
|
254
|
+
NiceBaseListQuery,
|
|
255
|
+
NiceBaseListService,
|
|
256
|
+
NiceBaseListStore
|
|
257
|
+
], queries: [{ propertyName: "title", first: true, predicate: NiceBaseListTitleDirective, descendants: true, read: TemplateRef }, { propertyName: "table", first: true, predicate: NiceBaseListTableDirective, descendants: true }, { propertyName: "cards", first: true, predicate: NiceBaseListCardsDirective, descendants: true, read: TemplateRef }, { propertyName: "customContent", first: true, predicate: NiceBaseListCustomContentDirective, descendants: true, read: TemplateRef }, { propertyName: "filters", first: true, predicate: NiceBaseListFiltersDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyState", first: true, predicate: NiceBaseListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "emptySearchResultState", first: true, predicate: NiceBaseListEmptySearchResultStateDirective, descendants: true, read: TemplateRef }, { propertyName: "buttons", predicate: NiceBaseListButtonsDirective }], usesOnChanges: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i5.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i16.NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: i17.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i19.TranslatePipe, name: "translate" }] }); }
|
|
252
258
|
}
|
|
253
|
-
|
|
254
|
-
NiceBaseListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseListComponent, selector: "nice-base-list", inputs: { mode: "mode", layout: "layout", layoutContent: "layoutContent", autoChangeLayout: "autoChangeLayout", baseRoute: "baseRoute", routeFn: "routeFn", navigateFn: "navigateFn", autoLoad: "autoLoad", pageTitle: "pageTitle", canExport: "canExport", disableRouting: "disableRouting", customExport: "customExport", queryParams: "queryParams", configQueryParams: "configQueryParams" }, outputs: { newPage: "newPage" }, providers: [
|
|
255
|
-
NiceBaseListQuery,
|
|
256
|
-
NiceBaseListService,
|
|
257
|
-
NiceBaseListStore
|
|
258
|
-
], queries: [{ propertyName: "title", first: true, predicate: NiceBaseListTitleDirective, descendants: true, read: TemplateRef }, { propertyName: "table", first: true, predicate: NiceBaseListTableDirective, descendants: true }, { propertyName: "cards", first: true, predicate: NiceBaseListCardsDirective, descendants: true, read: TemplateRef }, { propertyName: "customContent", first: true, predicate: NiceBaseListCustomContentDirective, descendants: true, read: TemplateRef }, { propertyName: "filters", first: true, predicate: NiceBaseListFiltersDirective, descendants: true, read: TemplateRef }, { propertyName: "emptyState", first: true, predicate: NiceBaseListEmptyStateDirective, descendants: true, read: TemplateRef }, { propertyName: "emptySearchResultState", first: true, predicate: NiceBaseListEmptySearchResultStateDirective, descendants: true, read: TemplateRef }, { propertyName: "buttons", predicate: NiceBaseListButtonsDirective }], usesOnChanges: true, ngImport: i0, template: "<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div class=\"hidden xl:block\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl, active: xlActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div class=\"hidden lg:block xl:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg, active: lgActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div class=\"hidden md:block lg:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md, active: mdActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div class=\"hidden sm:block md:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm, active: smActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div class=\"block sm:hidden\">\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs, active: xsActive$ | async }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [class.hidden]=\"!!listLayout.xs\"\n [class.block]=\"!listLayout.xs\"\n [class.sm:hidden]=\"!!listLayout.sm\"\n [class.sm:block]=\"!listLayout.sm\"\n [class.md:hidden]=\"!!listLayout.md\"\n [class.md:block]=\"!listLayout.md\"\n [class.lg:hidden]=\"!!listLayout.lg\"\n [class.lg:block]=\"!listLayout.lg\"\n [class.xl:hidden]=\"!!listLayout.xl\"\n [class.xl:block]=\"!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default, active: defaultActive$ | async }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\" let-active=\"active\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { classes: ['flex flex-col'], items: layout }, active }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout, active }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\" let-active=\"active\">\n <div [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item, active }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\" let-active=\"active\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search flex flex-auto justify-start items-center\">\n <mat-icon [svgIcon]=\"icons.search.svgIcon\">{{ icons.search.matIcon }}</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n\n <ng-container *ngIf=\"searchButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"searchButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async) && (filterConfig$ | async).length > 0\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [svgIcon]=\"icons.queryBuilder.svgIcon\"\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n {{ icons.queryBuilder.matIcon }}\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"((isEmpty$ | async) && emptyState) || ((isSearchResultEmpty$ | async) && emptySearchResultState); else showData\">\n\n <ng-container *ngIf=\"(isSearchResultEmpty$ | async)\">\n <ng-container *ngTemplateOutlet=\"emptySearchResultState\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isEmpty$ | async\">\n <ng-container *ngTemplateOutlet=\"emptyState\"></ng-container>\n </ng-container>\n\n </ng-container>\n <ng-template #showData>\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item, active }\"></ng-container>\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div class=\"flex flex-col\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content class=\"flex flex-col\">\n <div class=\"flex-auto\">\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'filters' && filters\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"filters\"></ng-container>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list flex flex-col justify-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n class=\"flex flex-col flex-auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: table.stickyHeader\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table.template; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data, active }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\" let-active=\"active\">\n <div [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { $implicit: data$ | async, data: data$ | async, total: recordsFiltered$ | async, active }\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i5.NiceLoadingDirective, selector: "[niceLoadingOverlay]", inputs: ["niceLoadingOverlay"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i14.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i14.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i16.NiceQueryBuilderComponent, selector: "nice-query-builder", inputs: ["filterConfigs", "currentSavedReport", "loading"], outputs: ["close", "createReport", "updateReport"] }, { kind: "directive", type: i17.QueryBuilderTriggerDirective, selector: "[niceQueryBuilderTrigger]", inputs: ["queryBuilderFilters", "queryBuilderFiltersLoading"], outputs: ["queryBuilderFilterSelected"] }, { kind: "directive", type: i18.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i19.TranslatePipe, name: "translate" }] });
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListComponent, decorators: [{
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
261
|
args: [{ selector: "nice-base-list", providers: [
|
|
262
262
|
NiceBaseListQuery,
|
|
@@ -335,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
335
335
|
}], newPage: [{
|
|
336
336
|
type: Output
|
|
337
337
|
}] } });
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBa0IsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRixPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUs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QUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgRXhwb3J0Qm90dG9tU2hlZXRDb21wb25lbnQsIEV4cG9ydFN0cmF0ZWd5LCBOaWNlTWVkaWFXYXRjaGVyU2VydmljZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gXCIuLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBCQVNFX0xJU1RfSUNPTlMsXG4gICAgQkFTRV9MSVNUX0xBWU9VVCxcbiAgICBFTkFCTEVfUVVFUllfQlVJTERFUixcbiAgICBFWFBPUlRTX1NFVFRJTkdTLFxuICAgIFRBQkxFX0NPTFVNTlNcbn0gZnJvbSBcIi4vYmFzZS1saXN0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtYnV0dG9ucy5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE5pY2VCYXNlTGlzdENhcmRzRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtY2FyZHMuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RDdXN0b21Db250ZW50RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtY3VzdG9tLWNvbnRlbnQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RFbXB0eVN0YXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZW1wdHktc3RhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RGaWx0ZXJzRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZmlsdGVycy5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE5pY2VCYXNlTGlzdFRhYmxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtdGFibGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LXRpdGxlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5zIH0gZnJvbSBcIi4vbW9kZWxzL2NvbHVtbnMubW9kZWxcIjtcbmltcG9ydCB7IEV4cG9ydFNldHRpbmdzIH0gZnJvbSBcIi4vbW9kZWxzL2V4cG9ydC5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUJhc2VJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQmFzZUxpc3RMYXlvdXQsIExheW91dENvbnRlbnQgfSBmcm9tIFwiLi9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RRdWVyeSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RTdG9yZSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5zdG9yZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0RW1wdHlTZWFyY2hSZXN1bHRTdGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LWVtcHR5LXNlYXJjaC1yZXN1bHQtc3RhdGUuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYmFzZS1saXN0XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9iYXNlLWxpc3QudGVtcGxhdGUuaHRtbFwiLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOaWNlQmFzZUxpc3RRdWVyeSxcbiAgICAgICAgTmljZUJhc2VMaXN0U2VydmljZSxcbiAgICAgICAgTmljZUJhc2VMaXN0U3RvcmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VCYXNlTGlzdENvbXBvbmVudDxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdFRpdGxlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIHRpdGxlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBidXR0b25zOiBOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlW107XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdFRhYmxlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyB0YWJsZTogTmljZUJhc2VMaXN0VGFibGVEaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdENhcmRzRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGNhcmRzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQmFzZUxpc3RDdXN0b21Db250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGN1c3RvbUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdEZpbHRlcnNEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgZmlsdGVyczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoTmljZUJhc2VMaXN0RW1wdHlTdGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHB1YmxpYyBlbXB0eVN0YXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQmFzZUxpc3RFbXB0eVNlYXJjaFJlc3VsdFN0YXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGVtcHR5U2VhcmNoUmVzdWx0U3RhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb2RlOiBcIm5vcm1hbFwiIHwgXCJpbmZpbml0ZS1zY3JvbGxcIiA9IFwibm9ybWFsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYXlvdXQ6IFwicGFnZVwiIHwgXCJjb21wb25lbnRcIiA9IFwicGFnZVwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGF5b3V0Q29udGVudCA9IExheW91dENvbnRlbnQuVGFibGU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvQ2hhbmdlTGF5b3V0ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhc2VSb3V0ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm91dGVGbjogKGl0ZW06IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYXZpZ2F0ZUZuOiAoYmFzZVJvdXRlOiBzdHJpbmcsIGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0xvYWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5FeHBvcnQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZVJvdXRpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGN1c3RvbUV4cG9ydDogRXhwb3J0U3RyYXRlZ3lbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBuZXdQYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgZGVmYXVsdFBhZ2VTaXplT3B0aW9ucyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuICAgIHB1YmxpYyBjb2x1bW5OYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIHB1YmxpYyBsb2FkaW5nJCA9IHRoaXMucXVlcnkuc2VsZWN0TG9hZGluZygpO1xuXG4gICAgcHVibGljIGZpbHRlclJlc3VsdCQgPSB0aGlzLnF1ZXJ5LnNlbGVjdEZpbHRlclJlc3VsdCgpO1xuICAgIHB1YmxpYyBkYXRhJCA9IHRoaXMucXVlcnkuc2VsZWN0RGF0YSgpO1xuICAgIHB1YmxpYyByZWNvcmRzRmlsdGVyZWQkID0gdGhpcy5maWx0ZXJSZXN1bHQkLnBpcGUobWFwKGYgPT4gZiAmJiBmLnRvdGFsKSk7XG4gICAgcHVibGljIGlzRW1wdHkkID0gdGhpcy5xdWVyeS5zZWxlY3RFbXB0eSgpO1xuICAgIHB1YmxpYyBpc1NlYXJjaFJlc3VsdEVtcHR5JCA9IHRoaXMucXVlcnkuc2VsZWN0U2VhcmNoUmVzdWx0RW1wdHkoKTtcblxuICAgIHB1YmxpYyBzaG93UXVlcnlCdWlsZGVyJCA9IHRoaXMucXVlcnkuc2VsZWN0U2hvd1F1ZXJ5QnVpbGRlcigpO1xuICAgIHB1YmxpYyBmaWx0ZXJQYXJhbWV0ZXJzJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyUGFyYW1ldGVycygpO1xuICAgIHB1YmxpYyBpbmRleCQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKGYgPT4gTWF0aC5mbG9vcigoZi5zdGFydCA/PyAwKSAvIChmLmxlbmd0aCA/PyAxKSkpKTtcbiAgICBwdWJsaWMgbGVuZ3RoJCA9IHRoaXMuZmlsdGVyUGFyYW1ldGVycyQucGlwZShtYXAoZiA9PiBmLmxlbmd0aCkpO1xuICAgIHB1YmxpYyBzZWFyY2hRdWVyeSQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKGYgPT4gZi5zZWFyY2gpKTtcbiAgICBwdWJsaWMgZmlsdGVyQ29uZmlnJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnKCk7XG4gICAgcHVibGljIHNvcnRDb2x1bW4kID0gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKG1hcChmID0+IChmLm9yZGVyICYmIGYub3JkZXIuY29sdW1uKSA/PyBcIlwiKSk7XG4gICAgcHVibGljIHNvcnREaXJlY3Rpb24kID0gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKG1hcChmID0+IGYub3JkZXIgJiYgZi5vcmRlci5kaXJlY3Rpb24pKTtcblxuICAgIHB1YmxpYyBmaWx0ZXJDb25maWdMb2FkaW5nJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnTG9hZGluZygpO1xuICAgIHB1YmxpYyBydWxlcyQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKHBhcmFtZXRlcnMgPT4gcGFyYW1ldGVycy5ydWxlcykpO1xuICAgIHB1YmxpYyBydWxlc0NvdW50JCA9IHRoaXMuZmlsdGVyUGFyYW1ldGVycyQucGlwZShtYXAocGFyYW1ldGVycyA9PiBwYXJhbWV0ZXJzLnJ1bGVzPy5sZW5ndGggPz8gMCkpO1xuXG4gICAgcHVibGljIHhzQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnhzQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIHNtQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnNtQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIG1kQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLm1kQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIGxnQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLmxnQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIHhsQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnhsQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIGRlZmF1bHRBY3RpdmUkID0gY29tYmluZUxhdGVzdChbdGhpcy54c0FjdGl2ZSQsIHRoaXMuc21BY3RpdmUkLCB0aGlzLm1kQWN0aXZlJCwgdGhpcy5sZ0FjdGl2ZSQsIHRoaXMueGxBY3RpdmUkXSkucGlwZShcbiAgICAgICAgbWFwKChbeHMsIHNtLCBtZCwgbGcsIHhsXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHhzICYmICF0aGlzLmxpc3RMYXlvdXQueHNcbiAgICAgICAgICAgICAgICB8fCBzbSAmJiAhdGhpcy5saXN0TGF5b3V0LnNtXG4gICAgICAgICAgICAgICAgfHwgbWQgJiYgIXRoaXMubGlzdExheW91dC5tZFxuICAgICAgICAgICAgICAgIHx8IGxnICYmICF0aGlzLmxpc3RMYXlvdXQubGdcbiAgICAgICAgICAgICAgICB8fCB4bCAmJiAhdGhpcy5saXN0TGF5b3V0LnhsO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBwcml2YXRlIHNlYXJjaFRleHQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRU5BQkxFX1FVRVJZX0JVSUxERVIpXG4gICAgICAgIHB1YmxpYyBlbmFibGVRdWVyeUJ1aWxkZXI6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0lDT05TKVxuICAgICAgICBwdWJsaWMgaWNvbnM6IE5pY2VCYXNlSWNvbk9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0xBWU9VVClcbiAgICAgICAgcHVibGljIGxpc3RMYXlvdXQ6IEJhc2VMaXN0TGF5b3V0LFxuICAgICAgICBASW5qZWN0KFRBQkxFX0NPTFVNTlMpXG4gICAgICAgIHB1YmxpYyBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSxcbiAgICAgICAgQEluamVjdChFWFBPUlRTX1NFVFRJTkdTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHNTZXR0aW5nczogRXhwb3J0U2V0dGluZ3MsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBxdWVyeTogTmljZUJhc2VMaXN0UXVlcnksXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBOaWNlQmFzZUxpc3RTZXJ2aWNlPEZpbHRlcj4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZWRpYVdhdGNoZXI6IE5pY2VNZWRpYVdhdGNoZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByZWZpeEJ1dHRvbnMoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbnM/LmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSBcInByZWZpeFwiKT8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWZmaXhCdXR0b25zKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b25zPy5maW5kKHggPT4geC5wb3NpdGlvbiA9PT0gXCJzdWZmaXhcIik/LnRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VhcmNoQnV0dG9ucygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9ucz8uZmluZCh4ID0+IHgucG9zaXRpb24gPT09IFwic2VhcmNoXCIpPy50ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbml0KHRoaXMuY29uZmlnUXVlcnlQYXJhbXMpO1xuICAgICAgICB0aGlzLnNlcnZpY2UubG9hZFF1ZXJ5UGFyYW1zKHRoaXMuYXV0b0xvYWQpO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzZWFyY2gpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlc2V0UGFnaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2Uuc2VhcmNoRGF0YShzZWFyY2gpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5tZWRpYVdhdGNoZXIuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hdXRvQ2hhbmdlTGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5tZWRpYVdhdGNoZXIuaXNBY3RpdmUoXCJsdC1tZFwiKSAmJiB0aGlzLmxheW91dENvbnRlbnQgPT09IExheW91dENvbnRlbnQuVGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dENvbnRlbnQgPSBMYXlvdXRDb250ZW50LkNhcmRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dENvbnRlbnQgPSBMYXlvdXRDb250ZW50LlRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jbG9zZVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXCJtb2RlXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldE1vZGUoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwicXVlcnlQYXJhbXNcIiBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0UXVlcnlQYXJhbXMoY2hhbmdlcy5xdWVyeVBhcmFtcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tUb2dnbGVTaG93UXVlcnlCdWlsZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudG9nZ2xlUXVlcnlCdWlsZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlUnVsZXMocnVsZXM6IFF1ZXJ5TW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlR2xvYmFsUnVsZXMocnVsZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblF1ZXJ5QnVpbGRlckZpbHRlclNlbGVjdGVkKGZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbDogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRSdWxlRnJvbUNvbmZpZyhmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZVBhZ2UocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmxvYWROZXdQYWdlKHBhZ2VFdmVudC5wYWdlSW5kZXggKiBwYWdlRXZlbnQucGFnZVNpemUsIHBhZ2VFdmVudC5wYWdlU2l6ZSk7XG4gICAgICAgIHRoaXMubmV3UGFnZS5lbWl0KHBhZ2VFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCQubmV4dChzZWFyY2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWx0ZXJSdWxlJChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdWVyeVJ1bGVNb2RlbCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKFxuICAgICAgICAgICAgbWFwKGYgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGYucnVsZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgZi5ydWxlc1swXSAmJlxuICAgICAgICAgICAgICAgICAgICBmLnJ1bGVzWzBdLnJ1bGVzICYmXG4gICAgICAgICAgICAgICAgICAgIChmLnJ1bGVzWzBdLnJ1bGVzLmZpbmQoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCA9PT0gaWQpIGFzIFF1ZXJ5UnVsZU1vZGVsKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZVNvcnQoc29ydDogU29ydCk6IHZvaWQge1xuICAgICAgICBjb25zdCBudWxsTGFzdCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LmlkID09PSBzb3J0LmFjdGl2ZSk/Lm51bGxMYXN0O1xuICAgICAgICBpZiAoIXNvcnQuYWN0aXZlIHx8ICFzb3J0LmRpcmVjdGlvbikge1xuICAgICAgICAgICAgc29ydCA9IHtcbiAgICAgICAgICAgICAgICBhY3RpdmU6IFwiaWRcIixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYXNjXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlcnZpY2UubG9hZERhdGEoe1xuICAgICAgICAgICAgb3JkZXI6IHNvcnQuYWN0aXZlICYmIHNvcnQuZGlyZWN0aW9uID8geyBjb2x1bW46IHNvcnQuYWN0aXZlLCBkaXJlY3Rpb246IHNvcnQuZGlyZWN0aW9uLCBudWxsTGFzdCB9IDogbnVsbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBRdWVyeVJ1bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlUnVsZShpZCwgbmV3UnVsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJ1bGVzKHJ1bGVzOiBRdWVyeVJ1bGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVSdWxlcyhydWxlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrRXhwb3J0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHBvcnRzID0gW107XG4gICAgICAgIGlmICh0aGlzLmV4cG9ydHNTZXR0aW5ncy54bHN4KSB7XG4gICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwieGxzeFwiLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tYbHN4KClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwb3J0c1NldHRpbmdzLmNzdikge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNzdlwiLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tDc3YoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5leHBvcnRzU2V0dGluZ3MucGRmKSB7XG4gICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwicGRmXCIsXG4gICAgICAgICAgICAgICAgb25DbGlja0V4cG9ydDogKCkgPT4gdGhpcy5jbGlja1BkZigpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJvdHRvbVNoZWV0Lm9wZW4oRXhwb3J0Qm90dG9tU2hlZXRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBleHBvcnRTdHJhdGVnaWVzOiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY3VzdG9tRXhwb3J0XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmF2aWdhdGUoaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRlRm4pIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVGbih0aGlzLmJhc2VSb3V0ZSwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGVGbiA/IHRoaXMucm91dGVGbihpdGVtKSA6IFsodGhpcy5iYXNlUm91dGUgfHwgXCJcIikgKyBpdGVtPy5pZF07XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0eXBlb2Ygcm91dGUgPT09IFwic3RyaW5nXCIgPyBbcm91dGVdIDogcm91dGUsIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja1hsc3goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5kb3dubG9hZERhdGEoXCJ4bHN4XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0NzdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcImNzdlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tQcmludCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnByaW50RGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja1BkZigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcInBkZlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q29sdW1ucyhjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgICAgICB0aGlzLmNvbHVtbk5hbWVzID0gY29sdW1ucy5tYXAoeCA9PiB4LmlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1ucyhjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSwgcHJlcGVuZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChwcmVwZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbHVtbnMoW1xuICAgICAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5jb2x1bW5zXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1ucyhbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgIC4uLmNvbHVtbnNcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QgcGFnZS1sYXlvdXQgY2FyZGVkIGZ1bGx3aWR0aCBpbm5lci1zY3JvbGxcIiAqbmdJZj1cImxheW91dCA9PT0gJ3BhZ2UnOyBlbHNlIGNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0TGF5b3V0LnhsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4geGw6YmxvY2tcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC54bCwgYWN0aXZlOiB4bEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQubGdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBsZzpibG9jayB4bDpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5sZywgYWN0aXZlOiBsZ0FjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQubWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9jayBsZzpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5tZCwgYWN0aXZlOiBtZEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQuc21cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBzbTpibG9jayBtZDpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5zbSwgYWN0aXZlOiBzbUFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQueHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnhzLCBhY3RpdmU6IHhzQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiISFsaXN0TGF5b3V0LnhzXCJcbiAgICAgICAgW2NsYXNzLmJsb2NrXT1cIiFsaXN0TGF5b3V0LnhzXCJcbiAgICAgICAgW2NsYXNzLnNtOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQuc21cIlxuICAgICAgICBbY2xhc3Muc206YmxvY2tdPVwiIWxpc3RMYXlvdXQuc21cIlxuICAgICAgICBbY2xhc3MubWQ6aGlkZGVuXT1cIiEhbGlzdExheW91dC5tZFwiXG4gICAgICAgIFtjbGFzcy5tZDpibG9ja109XCIhbGlzdExheW91dC5tZFwiXG4gICAgICAgIFtjbGFzcy5sZzpoaWRkZW5dPVwiISFsaXN0TGF5b3V0LmxnXCJcbiAgICAgICAgW2NsYXNzLmxnOmJsb2NrXT1cIiFsaXN0TGF5b3V0LmxnXCJcbiAgICAgICAgW2NsYXNzLnhsOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQueGxcIlxuICAgICAgICBbY2xhc3MueGw6YmxvY2tdPVwiIWxpc3RMYXlvdXQueGxcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LmRlZmF1bHQsIGFjdGl2ZTogZGVmYXVsdEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VMYXlvdXQgbGV0LWxheW91dD1cImxheW91dFwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0Py5sZW5ndGg7IGVsc2UgaXNPYmplY3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiB7IGNsYXNzZXM6IFsnZmxleCBmbGV4LWNvbCddLCBpdGVtczogbGF5b3V0IH0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2lzT2JqZWN0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudExheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxheW91dCwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50TGF5b3V0IGxldC1sYXlvdXQ9XCJsYXlvdXRcIiBsZXQtYWN0aXZlPVwiYWN0aXZlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJsYXlvdXQuY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dC5pdGVtc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZTsgZWxzZSBjaGlsZElzTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxheW91dEl0ZW07IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjaGlsZElzTGF5b3V0PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50TGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsYXlvdXRJdGVtIGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAndGl0bGUnICYmIHRpdGxlXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnc2VhcmNoJ1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyIG14LW1kLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoIGZsZXggZmxleC1hdXRvIGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5zZWFyY2guc3ZnSWNvblwiPnt7IGljb25zLnNlYXJjaC5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cInNlYXJjaFF1ZXJ5JCB8IGFzeW5jXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25VcGRhdGVTZWFyY2goJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCInZ2VuZXJhbC5zZWFyY2gnIHwgdHJhbnNsYXRlXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoQnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoQnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVRdWVyeUJ1aWxkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKHNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmMpICYmICEocnVsZXNDb3VudCQgfCBhc3luYykgJiYgKGZpbHRlckNvbmZpZyQgfCBhc3luYykubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWNlUXVlcnlCdWlsZGVyVHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlCdWlsZGVyRmlsdGVyc109XCJmaWx0ZXJDb25maWckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlCdWlsZGVyRmlsdGVyc0xvYWRpbmddPVwiKGZpbHRlckNvbmZpZ0xvYWRpbmckIHwgYXN5bmMpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1ZXJ5QnVpbGRlckZpbHRlclNlbGVjdGVkKT1cIm9uUXVlcnlCdWlsZGVyRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnF1ZXJ5X2J1aWxkZXIuc2hvd19hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwicnVsZXNDb3VudCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhKHJ1bGVzQ291bnQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIShzaG93UXVlcnlCdWlsZGVyJCB8IGFzeW5jKSAmJiAocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvZ2dsZVNob3dRdWVyeUJ1aWxkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnF1ZXJ5X2J1aWxkZXIuc2hvd19hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwicnVsZXNDb3VudCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhKHJ1bGVzQ291bnQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvZ2dsZVNob3dRdWVyeUJ1aWxkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5jbG9zZV9hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3ByZWZpeEJ1dHRvbnMnICYmIHByZWZpeEJ1dHRvbnNcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVmaXhCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3N1ZmZpeEJ1dHRvbnMnICYmIHN1ZmZpeEJ1dHRvbnNcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ2V4cG9ydEJ1dHRvbnMnICYmIGNhbkV4cG9ydFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiIFtjbGFzcy5tci0yXT1cIiEhc3VmZml4QnV0dG9uc1wiIFtjbGFzcy5tbC0yXT1cIiEhcHJlZml4QnV0dG9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tQcmludCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2VuZXJhbC5wcmludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtYnV0dG9uIG1yLTJcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWluaS1mYWJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMucHJpbnQuc3ZnSWNvblwiPnt7IGljb25zLnByaW50Lm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrRXhwb3J0KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLmV4cG9ydCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtYnV0dG9uIG1yLTJcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWluaS1mYWJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuZG93bmxvYWQuc3ZnSWNvblwiPnt7IGljb25zLmRvd25sb2FkLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ2NvbnRlbnQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoKGlzRW1wdHkkIHwgYXN5bmMpICAmJiBlbXB0eVN0YXRlKSB8fCAoKGlzU2VhcmNoUmVzdWx0RW1wdHkkIHwgYXN5bmMpICYmIGVtcHR5U2VhcmNoUmVzdWx0U3RhdGUpOyBlbHNlIHNob3dEYXRhXCI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaXNTZWFyY2hSZXN1bHRFbXB0eSQgfCBhc3luYylcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlTZWFyY2hSZXN1bHRTdGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VtcHR5JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5U3RhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dEYXRhPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICd0YWJsZScgJiYgdGFibGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVMYXlvdXQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICdjYXJkcycgJiYgY2FyZHNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZHNMYXlvdXQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICdjdXN0b20nICYmIGN1c3RvbUNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdwYWdpbmF0aW9uJyAmJiBsYXlvdXRDb250ZW50ICE9PSAnY3VzdG9tJ1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICAgICAgICAgICAocGFnZSk9XCJvblVwZGF0ZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2xlbmd0aF09XCJyZWNvcmRzRmlsdGVyZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwiaW5kZXgkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiZGVmYXVsdFBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cImxlbmd0aCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dGaXJzdExhc3RCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdxdWVyeUJ1aWxkZXInICYmIGVuYWJsZVF1ZXJ5QnVpbGRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwic2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibXktNFwiIFtuaWNlTG9hZGluZ092ZXJsYXldPVwiZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1xdWVyeS1idWlsZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ3NdPVwiZmlsdGVyQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJydWxlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25VcGRhdGVSdWxlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwiY2xpY2tUb2dnbGVTaG93UXVlcnlCdWlsZGVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1xdWVyeS1idWlsZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdmaWx0ZXJzJyAmJiBmaWx0ZXJzXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVMYXlvdXQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuaWNlTG9hZGluZ092ZXJsYXldPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWNhcmQgYmFzZS1saXN0IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC10YWJsZVxuICAgICAgICAgICAgICAgICAgICAobWF0U29ydENoYW5nZSk9XCJvblVwZGF0ZVNvcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGEkXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFNvcnRBY3RpdmVdPVwiKHNvcnRDb2x1bW4kIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFNvcnREaXJlY3Rpb25dPVwiKHNvcnREaXJlY3Rpb24kIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdFNvcnRcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbk5hbWVzOyBzdGlja3k6IHRhYmxlLnN0aWNreUhlYWRlclwiPjwvbWF0LWhlYWRlci1yb3c+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4uaWQsIGhlYWRlcjogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4uaWQsIGhlYWRlcjogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZS50ZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbi5pZCwgZGF0YTogdHJ1ZSwgaXRlbTogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNhYmxlUm91dGluZzsgZWxzZSB3aXRoUm91dGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGNvbHVtbnM6IGNvbHVtbk5hbWVzO1wiIGNsYXNzPVwiaXRlbVwiPjwvbWF0LXJvdz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjd2l0aFJvdXRpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBjb2x1bW5OYW1lcztcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtIGNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcm93PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NhcmRzTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIGRhdGEkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkczsgY29udGV4dDogeyBpdGVtOiBkYXRhLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEkIHwgYXN5bmMsIGRhdGE6IGRhdGEkIHwgYXN5bmMsIHRvdGFsOiByZWNvcmRzRmlsdGVyZWQkIHwgYXN5bmMsIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBa0IsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRixPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUUs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QUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgU29ydCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgRXhwb3J0Qm90dG9tU2hlZXRDb21wb25lbnQsIEV4cG9ydFN0cmF0ZWd5LCBOaWNlTWVkaWFXYXRjaGVyU2VydmljZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gXCIuLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHtcbiAgICBCQVNFX0xJU1RfSUNPTlMsXG4gICAgQkFTRV9MSVNUX0xBWU9VVCxcbiAgICBFTkFCTEVfUVVFUllfQlVJTERFUixcbiAgICBFWFBPUlRTX1NFVFRJTkdTLFxuICAgIFRBQkxFX0NPTFVNTlNcbn0gZnJvbSBcIi4vYmFzZS1saXN0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtYnV0dG9ucy5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE5pY2VCYXNlTGlzdENhcmRzRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtY2FyZHMuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RDdXN0b21Db250ZW50RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtY3VzdG9tLWNvbnRlbnQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RFbXB0eVN0YXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZW1wdHktc3RhdGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RGaWx0ZXJzRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZmlsdGVycy5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE5pY2VCYXNlTGlzdFRhYmxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtdGFibGUuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LXRpdGxlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVGFibGVDb2x1bW5zIH0gZnJvbSBcIi4vbW9kZWxzL2NvbHVtbnMubW9kZWxcIjtcbmltcG9ydCB7IEV4cG9ydFNldHRpbmdzIH0gZnJvbSBcIi4vbW9kZWxzL2V4cG9ydC5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUJhc2VJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQmFzZUxpc3RMYXlvdXQsIExheW91dENvbnRlbnQgfSBmcm9tIFwiLi9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RRdWVyeSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5xdWVyeVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0U2VydmljZSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RTdG9yZSB9IGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5zdG9yZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0RW1wdHlTZWFyY2hSZXN1bHRTdGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LWVtcHR5LXNlYXJjaC1yZXN1bHQtc3RhdGUuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYmFzZS1saXN0XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9iYXNlLWxpc3QudGVtcGxhdGUuaHRtbFwiLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOaWNlQmFzZUxpc3RRdWVyeSxcbiAgICAgICAgTmljZUJhc2VMaXN0U2VydmljZSxcbiAgICAgICAgTmljZUJhc2VMaXN0U3RvcmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VCYXNlTGlzdENvbXBvbmVudDxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdFRpdGxlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIHRpdGxlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBidXR0b25zOiBOaWNlQmFzZUxpc3RCdXR0b25zRGlyZWN0aXZlW107XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdFRhYmxlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyB0YWJsZTogTmljZUJhc2VMaXN0VGFibGVEaXJlY3RpdmU7XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdENhcmRzRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGNhcmRzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQmFzZUxpc3RDdXN0b21Db250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGN1c3RvbUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAQ29udGVudENoaWxkKE5pY2VCYXNlTGlzdEZpbHRlcnNEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgZmlsdGVyczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGQoTmljZUJhc2VMaXN0RW1wdHlTdGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHB1YmxpYyBlbXB0eVN0YXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQENvbnRlbnRDaGlsZChOaWNlQmFzZUxpc3RFbXB0eVNlYXJjaFJlc3VsdFN0YXRlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHVibGljIGVtcHR5U2VhcmNoUmVzdWx0U3RhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb2RlOiBcIm5vcm1hbFwiIHwgXCJpbmZpbml0ZS1zY3JvbGxcIiA9IFwibm9ybWFsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYXlvdXQ6IFwicGFnZVwiIHwgXCJjb21wb25lbnRcIiA9IFwicGFnZVwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGF5b3V0Q29udGVudCA9IExheW91dENvbnRlbnQuVGFibGU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvQ2hhbmdlTGF5b3V0ID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhc2VSb3V0ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm91dGVGbjogKGl0ZW06IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYXZpZ2F0ZUZuOiAoYmFzZVJvdXRlOiBzdHJpbmcsIGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYXV0b0xvYWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYW5FeHBvcnQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZVJvdXRpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGN1c3RvbUV4cG9ydDogRXhwb3J0U3RyYXRlZ3lbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcXVlcnlQYXJhbXM6IFF1ZXJ5UGFyYW1zID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBuZXdQYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgZGVmYXVsdFBhZ2VTaXplT3B0aW9ucyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuICAgIHB1YmxpYyBjb2x1bW5OYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIHB1YmxpYyBsb2FkaW5nJCA9IHRoaXMucXVlcnkuc2VsZWN0TG9hZGluZygpO1xuXG4gICAgcHVibGljIGZpbHRlclJlc3VsdCQgPSB0aGlzLnF1ZXJ5LnNlbGVjdEZpbHRlclJlc3VsdCgpO1xuICAgIHB1YmxpYyBkYXRhJCA9IHRoaXMucXVlcnkuc2VsZWN0RGF0YSgpO1xuICAgIHB1YmxpYyByZWNvcmRzRmlsdGVyZWQkID0gdGhpcy5maWx0ZXJSZXN1bHQkLnBpcGUobWFwKGYgPT4gZiAmJiBmLnRvdGFsKSk7XG4gICAgcHVibGljIGlzRW1wdHkkID0gdGhpcy5xdWVyeS5zZWxlY3RFbXB0eSgpO1xuICAgIHB1YmxpYyBpc1NlYXJjaFJlc3VsdEVtcHR5JCA9IHRoaXMucXVlcnkuc2VsZWN0U2VhcmNoUmVzdWx0RW1wdHkoKTtcblxuICAgIHB1YmxpYyBzaG93UXVlcnlCdWlsZGVyJCA9IHRoaXMucXVlcnkuc2VsZWN0U2hvd1F1ZXJ5QnVpbGRlcigpO1xuICAgIHB1YmxpYyBmaWx0ZXJQYXJhbWV0ZXJzJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyUGFyYW1ldGVycygpO1xuICAgIHB1YmxpYyBpbmRleCQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKGYgPT4gTWF0aC5mbG9vcigoZi5zdGFydCA/PyAwKSAvIChmLmxlbmd0aCA/PyAxKSkpKTtcbiAgICBwdWJsaWMgbGVuZ3RoJCA9IHRoaXMuZmlsdGVyUGFyYW1ldGVycyQucGlwZShtYXAoZiA9PiBmLmxlbmd0aCkpO1xuICAgIHB1YmxpYyBzZWFyY2hRdWVyeSQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKGYgPT4gZi5zZWFyY2gpKTtcbiAgICBwdWJsaWMgZmlsdGVyQ29uZmlnJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnKCk7XG4gICAgcHVibGljIHNvcnRDb2x1bW4kID0gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKG1hcChmID0+IChmLm9yZGVyICYmIGYub3JkZXIuY29sdW1uKSA/PyBcIlwiKSk7XG4gICAgcHVibGljIHNvcnREaXJlY3Rpb24kID0gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKG1hcChmID0+IGYub3JkZXIgJiYgZi5vcmRlci5kaXJlY3Rpb24pKTtcblxuICAgIHB1YmxpYyBmaWx0ZXJDb25maWdMb2FkaW5nJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnTG9hZGluZygpO1xuICAgIHB1YmxpYyBydWxlcyQgPSB0aGlzLmZpbHRlclBhcmFtZXRlcnMkLnBpcGUobWFwKHBhcmFtZXRlcnMgPT4gcGFyYW1ldGVycy5ydWxlcykpO1xuICAgIHB1YmxpYyBydWxlc0NvdW50JCA9IHRoaXMuZmlsdGVyUGFyYW1ldGVycyQucGlwZShtYXAocGFyYW1ldGVycyA9PiBwYXJhbWV0ZXJzLnJ1bGVzPy5sZW5ndGggPz8gMCkpO1xuXG4gICAgcHVibGljIHhzQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnhzQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIHNtQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnNtQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIG1kQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLm1kQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIGxnQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLmxnQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIHhsQWN0aXZlJCA9IHRoaXMubWVkaWFXYXRjaGVyLnhsQnJlYWtwb2ludEFjdGl2ZSQ7XG4gICAgcHVibGljIGRlZmF1bHRBY3RpdmUkID0gY29tYmluZUxhdGVzdChbdGhpcy54c0FjdGl2ZSQsIHRoaXMuc21BY3RpdmUkLCB0aGlzLm1kQWN0aXZlJCwgdGhpcy5sZ0FjdGl2ZSQsIHRoaXMueGxBY3RpdmUkXSkucGlwZShcbiAgICAgICAgbWFwKChbeHMsIHNtLCBtZCwgbGcsIHhsXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHhzICYmICF0aGlzLmxpc3RMYXlvdXQueHNcbiAgICAgICAgICAgICAgICB8fCBzbSAmJiAhdGhpcy5saXN0TGF5b3V0LnNtXG4gICAgICAgICAgICAgICAgfHwgbWQgJiYgIXRoaXMubGlzdExheW91dC5tZFxuICAgICAgICAgICAgICAgIHx8IGxnICYmICF0aGlzLmxpc3RMYXlvdXQubGdcbiAgICAgICAgICAgICAgICB8fCB4bCAmJiAhdGhpcy5saXN0TGF5b3V0LnhsO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBwcml2YXRlIHNlYXJjaFRleHQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoRU5BQkxFX1FVRVJZX0JVSUxERVIpXG4gICAgICAgIHB1YmxpYyBlbmFibGVRdWVyeUJ1aWxkZXI6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0lDT05TKVxuICAgICAgICBwdWJsaWMgaWNvbnM6IE5pY2VCYXNlSWNvbk9wdGlvbnMsXG4gICAgICAgIEBJbmplY3QoQkFTRV9MSVNUX0xBWU9VVClcbiAgICAgICAgcHVibGljIGxpc3RMYXlvdXQ6IEJhc2VMaXN0TGF5b3V0LFxuICAgICAgICBASW5qZWN0KFRBQkxFX0NPTFVNTlMpXG4gICAgICAgIHB1YmxpYyBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSxcbiAgICAgICAgQEluamVjdChFWFBPUlRTX1NFVFRJTkdTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydHNTZXR0aW5nczogRXhwb3J0U2V0dGluZ3MsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBxdWVyeTogTmljZUJhc2VMaXN0UXVlcnksXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBOaWNlQmFzZUxpc3RTZXJ2aWNlPEZpbHRlcj4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZWRpYVdhdGNoZXI6IE5pY2VNZWRpYVdhdGNoZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0Q29sdW1ucyhjb2x1bW5zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByZWZpeEJ1dHRvbnMoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbnM/LmZpbmQoeCA9PiB4LnBvc2l0aW9uID09PSBcInByZWZpeFwiKT8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWZmaXhCdXR0b25zKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b25zPy5maW5kKHggPT4geC5wb3NpdGlvbiA9PT0gXCJzdWZmaXhcIik/LnRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VhcmNoQnV0dG9ucygpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9ucz8uZmluZCh4ID0+IHgucG9zaXRpb24gPT09IFwic2VhcmNoXCIpPy50ZW1wbGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbml0KHRoaXMuY29uZmlnUXVlcnlQYXJhbXMpO1xuICAgICAgICB0aGlzLnNlcnZpY2UubG9hZFF1ZXJ5UGFyYW1zKHRoaXMuYXV0b0xvYWQpO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzZWFyY2gpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlc2V0UGFnaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2Uuc2VhcmNoRGF0YShzZWFyY2gpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5tZWRpYVdhdGNoZXIuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hdXRvQ2hhbmdlTGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5tZWRpYVdhdGNoZXIuaXNBY3RpdmUoXCJsdC1tZFwiKSAmJiB0aGlzLmxheW91dENvbnRlbnQgPT09IExheW91dENvbnRlbnQuVGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dENvbnRlbnQgPSBMYXlvdXRDb250ZW50LkNhcmRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxheW91dENvbnRlbnQgPSBMYXlvdXRDb250ZW50LlRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5jbG9zZVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXCJtb2RlXCIgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldE1vZGUoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwicXVlcnlQYXJhbXNcIiBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0UXVlcnlQYXJhbXMoY2hhbmdlcy5xdWVyeVBhcmFtcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tUb2dnbGVTaG93UXVlcnlCdWlsZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudG9nZ2xlUXVlcnlCdWlsZGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlUnVsZXMocnVsZXM6IFF1ZXJ5TW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlR2xvYmFsUnVsZXMocnVsZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblF1ZXJ5QnVpbGRlckZpbHRlclNlbGVjdGVkKGZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbDogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRSdWxlRnJvbUNvbmZpZyhmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZVBhZ2UocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmxvYWROZXdQYWdlKHBhZ2VFdmVudC5wYWdlSW5kZXggKiBwYWdlRXZlbnQucGFnZVNpemUsIHBhZ2VFdmVudC5wYWdlU2l6ZSk7XG4gICAgICAgIHRoaXMubmV3UGFnZS5lbWl0KHBhZ2VFdmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCQubmV4dChzZWFyY2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWx0ZXJSdWxlJChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdWVyeVJ1bGVNb2RlbCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQYXJhbWV0ZXJzJC5waXBlKFxuICAgICAgICAgICAgbWFwKGYgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGYucnVsZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgZi5ydWxlc1swXSAmJlxuICAgICAgICAgICAgICAgICAgICBmLnJ1bGVzWzBdLnJ1bGVzICYmXG4gICAgICAgICAgICAgICAgICAgIChmLnJ1bGVzWzBdLnJ1bGVzLmZpbmQoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCA9PT0gaWQpIGFzIFF1ZXJ5UnVsZU1vZGVsKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblVwZGF0ZVNvcnQoc29ydDogU29ydCk6IHZvaWQge1xuICAgICAgICBjb25zdCBudWxsTGFzdCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LmlkID09PSBzb3J0LmFjdGl2ZSk/Lm51bGxMYXN0O1xuICAgICAgICBpZiAoIXNvcnQuYWN0aXZlIHx8ICFzb3J0LmRpcmVjdGlvbikge1xuICAgICAgICAgICAgc29ydCA9IHtcbiAgICAgICAgICAgICAgICBhY3RpdmU6IFwiaWRcIixcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYXNjXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlcnZpY2UubG9hZERhdGEoe1xuICAgICAgICAgICAgb3JkZXI6IHNvcnQuYWN0aXZlICYmIHNvcnQuZGlyZWN0aW9uID8geyBjb2x1bW46IHNvcnQuYWN0aXZlLCBkaXJlY3Rpb246IHNvcnQuZGlyZWN0aW9uLCBudWxsTGFzdCB9IDogbnVsbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBRdWVyeVJ1bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlUnVsZShpZCwgbmV3UnVsZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJ1bGVzKHJ1bGVzOiBRdWVyeVJ1bGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVSdWxlcyhydWxlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrRXhwb3J0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHBvcnRzID0gW107XG4gICAgICAgIGlmICh0aGlzLmV4cG9ydHNTZXR0aW5ncy54bHN4KSB7XG4gICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwieGxzeFwiLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tYbHN4KClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwb3J0c1NldHRpbmdzLmNzdikge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImNzdlwiLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tDc3YoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5leHBvcnRzU2V0dGluZ3MucGRmKSB7XG4gICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwicGRmXCIsXG4gICAgICAgICAgICAgICAgb25DbGlja0V4cG9ydDogKCkgPT4gdGhpcy5jbGlja1BkZigpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJvdHRvbVNoZWV0Lm9wZW4oRXhwb3J0Qm90dG9tU2hlZXRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBleHBvcnRTdHJhdGVnaWVzOiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmV4cG9ydHMsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuY3VzdG9tRXhwb3J0XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmF2aWdhdGUoaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRlRm4pIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVGbih0aGlzLmJhc2VSb3V0ZSwgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGVGbiA/IHRoaXMucm91dGVGbihpdGVtKSA6IFsodGhpcy5iYXNlUm91dGUgfHwgXCJcIikgKyBpdGVtPy5pZF07XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0eXBlb2Ygcm91dGUgPT09IFwic3RyaW5nXCIgPyBbcm91dGVdIDogcm91dGUsIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja1hsc3goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5kb3dubG9hZERhdGEoXCJ4bHN4XCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0NzdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcImNzdlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tQcmludCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnByaW50RGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja1BkZigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcInBkZlwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q29sdW1ucyhjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgICAgICB0aGlzLmNvbHVtbk5hbWVzID0gY29sdW1ucy5tYXAoeCA9PiB4LmlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ29sdW1ucyhjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXSwgcHJlcGVuZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChwcmVwZW5kKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbHVtbnMoW1xuICAgICAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5jb2x1bW5zXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q29sdW1ucyhbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgIC4uLmNvbHVtbnNcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QgcGFnZS1sYXlvdXQgY2FyZGVkIGZ1bGx3aWR0aCBpbm5lci1zY3JvbGxcIiAqbmdJZj1cImxheW91dCA9PT0gJ3BhZ2UnOyBlbHNlIGNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0TGF5b3V0LnhsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4geGw6YmxvY2tcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC54bCwgYWN0aXZlOiB4bEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQubGdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBsZzpibG9jayB4bDpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5sZywgYWN0aXZlOiBsZ0FjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQubWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9jayBsZzpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5tZCwgYWN0aXZlOiBtZEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQuc21cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhpZGRlbiBzbTpibG9jayBtZDpoaWRkZW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYWdlTGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogbGlzdExheW91dC5zbSwgYWN0aXZlOiBzbUFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3RMYXlvdXQueHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHNtOmhpZGRlblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LnhzLCBhY3RpdmU6IHhzQWN0aXZlJCB8IGFzeW5jIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2XG4gICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiISFsaXN0TGF5b3V0LnhzXCJcbiAgICAgICAgW2NsYXNzLmJsb2NrXT1cIiFsaXN0TGF5b3V0LnhzXCJcbiAgICAgICAgW2NsYXNzLnNtOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQuc21cIlxuICAgICAgICBbY2xhc3Muc206YmxvY2tdPVwiIWxpc3RMYXlvdXQuc21cIlxuICAgICAgICBbY2xhc3MubWQ6aGlkZGVuXT1cIiEhbGlzdExheW91dC5tZFwiXG4gICAgICAgIFtjbGFzcy5tZDpibG9ja109XCIhbGlzdExheW91dC5tZFwiXG4gICAgICAgIFtjbGFzcy5sZzpoaWRkZW5dPVwiISFsaXN0TGF5b3V0LmxnXCJcbiAgICAgICAgW2NsYXNzLmxnOmJsb2NrXT1cIiFsaXN0TGF5b3V0LmxnXCJcbiAgICAgICAgW2NsYXNzLnhsOmhpZGRlbl09XCIhIWxpc3RMYXlvdXQueGxcIlxuICAgICAgICBbY2xhc3MueGw6YmxvY2tdPVwiIWxpc3RMYXlvdXQueGxcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhZ2VMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiBsaXN0TGF5b3V0LmRlZmF1bHQsIGFjdGl2ZTogZGVmYXVsdEFjdGl2ZSQgfCBhc3luYyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VMYXlvdXQgbGV0LWxheW91dD1cImxheW91dFwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0Py5sZW5ndGg7IGVsc2UgaXNPYmplY3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRMYXlvdXQ7IGNvbnRleHQ6IHsgbGF5b3V0OiB7IGNsYXNzZXM6IFsnZmxleCBmbGV4LWNvbCddLCBpdGVtczogbGF5b3V0IH0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2lzT2JqZWN0PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudExheW91dDsgY29udGV4dDogeyBsYXlvdXQ6IGxheW91dCwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50TGF5b3V0IGxldC1sYXlvdXQ9XCJsYXlvdXRcIiBsZXQtYWN0aXZlPVwiYWN0aXZlXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJsYXlvdXQuY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxheW91dC5pdGVtc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZTsgZWxzZSBjaGlsZElzTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxheW91dEl0ZW07IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjaGlsZElzTGF5b3V0PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50TGF5b3V0OyBjb250ZXh0OiB7IGxheW91dDogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsYXlvdXRJdGVtIGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAndGl0bGUnICYmIHRpdGxlXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5uYW1lID09PSAnc2VhcmNoJ1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyIG14LW1kLTBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoIGZsZXggZmxleC1hdXRvIGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5zZWFyY2guc3ZnSWNvblwiPnt7IGljb25zLnNlYXJjaC5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cInNlYXJjaFF1ZXJ5JCB8IGFzeW5jXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25VcGRhdGVTZWFyY2goJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCInZ2VuZXJhbC5zZWFyY2gnIHwgdHJhbnNsYXRlXCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoQnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoQnV0dG9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVRdWVyeUJ1aWxkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhKHNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmMpICYmICEocnVsZXNDb3VudCQgfCBhc3luYykgJiYgKGZpbHRlckNvbmZpZyQgfCBhc3luYykubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWNlUXVlcnlCdWlsZGVyVHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlCdWlsZGVyRmlsdGVyc109XCJmaWx0ZXJDb25maWckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlCdWlsZGVyRmlsdGVyc0xvYWRpbmddPVwiKGZpbHRlckNvbmZpZ0xvYWRpbmckIHwgYXN5bmMpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHF1ZXJ5QnVpbGRlckZpbHRlclNlbGVjdGVkKT1cIm9uUXVlcnlCdWlsZGVyRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnF1ZXJ5X2J1aWxkZXIuc2hvd19hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwicnVsZXNDb3VudCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhKHJ1bGVzQ291bnQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIShzaG93UXVlcnlCdWlsZGVyJCB8IGFzeW5jKSAmJiAocnVsZXNDb3VudCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvZ2dsZVNob3dRdWVyeUJ1aWxkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLnF1ZXJ5X2J1aWxkZXIuc2hvd19hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiaWNvbnMucXVlcnlCdWlsZGVyLnN2Z0ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QmFkZ2VdPVwicnVsZXNDb3VudCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIhKHJ1bGVzQ291bnQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpY29ucy5xdWVyeUJ1aWxkZXIubWF0SWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dRdWVyeUJ1aWxkZXIkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvZ2dsZVNob3dRdWVyeUJ1aWxkZXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucXVlcnlfYnVpbGRlci5jbG9zZV9hZHZhbmNlZF9zZWFyY2gnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3ByZWZpeEJ1dHRvbnMnICYmIHByZWZpeEJ1dHRvbnNcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVmaXhCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ3N1ZmZpeEJ1dHRvbnMnICYmIHN1ZmZpeEJ1dHRvbnNcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhCdXR0b25zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ2V4cG9ydEJ1dHRvbnMnICYmIGNhbkV4cG9ydFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiIFtjbGFzcy5tci0yXT1cIiEhc3VmZml4QnV0dG9uc1wiIFtjbGFzcy5tbC0yXT1cIiEhcHJlZml4QnV0dG9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tQcmludCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZ2VuZXJhbC5wcmludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtYnV0dG9uIG1yLTJcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWluaS1mYWJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMucHJpbnQuc3ZnSWNvblwiPnt7IGljb25zLnByaW50Lm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrRXhwb3J0KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidnZW5lcmFsLmV4cG9ydCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtYnV0dG9uIG1yLTJcIlxuICAgICAgICAgICAgICAgICAgICBtYXQtbWluaS1mYWJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuZG93bmxvYWQuc3ZnSWNvblwiPnt7IGljb25zLmRvd25sb2FkLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ubmFtZSA9PT0gJ2NvbnRlbnQnXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoKGlzRW1wdHkkIHwgYXN5bmMpICAmJiBlbXB0eVN0YXRlKSB8fCAoKGlzU2VhcmNoUmVzdWx0RW1wdHkkIHwgYXN5bmMpICYmIGVtcHR5U2VhcmNoUmVzdWx0U3RhdGUpOyBlbHNlIHNob3dEYXRhXCI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoaXNTZWFyY2hSZXN1bHRFbXB0eSQgfCBhc3luYylcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlTZWFyY2hSZXN1bHRTdGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VtcHR5JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5U3RhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dEYXRhPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICd0YWJsZScgJiYgdGFibGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGVMYXlvdXQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICdjYXJkcycgJiYgY2FyZHNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2FyZHNMYXlvdXQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgYWN0aXZlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dENvbnRlbnQgPT09ICdjdXN0b20nICYmIGN1c3RvbUNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGF5b3V0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdwYWdpbmF0aW9uJyAmJiBsYXlvdXRDb250ZW50ICE9PSAnY3VzdG9tJ1wiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICAgICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICAgICAgICAgICAocGFnZSk9XCJvblVwZGF0ZVBhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2xlbmd0aF09XCJyZWNvcmRzRmlsdGVyZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwiaW5kZXgkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwiZGVmYXVsdFBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3BhZ2VTaXplXT1cImxlbmd0aCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dGaXJzdExhc3RCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdxdWVyeUJ1aWxkZXInICYmIGVuYWJsZVF1ZXJ5QnVpbGRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiICpuZ0lmPVwic2hvd1F1ZXJ5QnVpbGRlciQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibXktNFwiIFtuaWNlTG9hZGluZ092ZXJsYXldPVwiZmlsdGVyQ29uZmlnTG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1xdWVyeS1idWlsZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ3NdPVwiZmlsdGVyQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJydWxlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25VcGRhdGVSdWxlcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwiY2xpY2tUb2dnbGVTaG93UXVlcnlCdWlsZGVyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1xdWVyeS1idWlsZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLm5hbWUgPT09ICdmaWx0ZXJzJyAmJiBmaWx0ZXJzXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc2VzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVMYXlvdXQgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBbbmdDbGFzc109XCJpdGVtLmNsYXNzZXNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuaWNlTG9hZGluZ092ZXJsYXldPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWNhcmQgYmFzZS1saXN0IGZsZXggZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC10YWJsZVxuICAgICAgICAgICAgICAgICAgICAobWF0U29ydENoYW5nZSk9XCJvblVwZGF0ZVNvcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhU291cmNlXT1cImRhdGEkXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFNvcnRBY3RpdmVdPVwiKHNvcnRDb2x1bW4kIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFNvcnREaXJlY3Rpb25dPVwiKHNvcnREaXJlY3Rpb24kIHwgYXN5bmMpIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgIG1hdFNvcnRcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbk5hbWVzOyBzdGlja3k6IHRhYmxlLnN0aWNreUhlYWRlclwiPjwvbWF0LWhlYWRlci1yb3c+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4uaWQsIGhlYWRlcjogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY29sdW1uLnNvcnRhYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFibGUudGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uOiBjb2x1bW4uaWQsIGhlYWRlcjogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWJsZS50ZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW46IGNvbHVtbi5pZCwgZGF0YTogdHJ1ZSwgaXRlbTogaXRlbSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNhYmxlUm91dGluZzsgZWxzZSB3aXRoUm91dGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGNvbHVtbnM6IGNvbHVtbk5hbWVzO1wiIGNsYXNzPVwiaXRlbVwiPjwvbWF0LXJvdz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjd2l0aFJvdXRpbmc+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBjb2x1bW5zOiBjb2x1bW5OYW1lcztcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpdGVtIGNsaWNrYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcm93PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NhcmRzTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhIG9mIGRhdGEkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYXJkczsgY29udGV4dDogeyBpdGVtOiBkYXRhLCBhY3RpdmUgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tTGF5b3V0IGxldC1pdGVtPVwiaXRlbVwiIGxldC1hY3RpdmU9XCJhY3RpdmVcIj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3Nlc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEkIHwgYXN5bmMsIGRhdGE6IGRhdGEkIHwgYXN5bmMsIHRvdGFsOiByZWNvcmRzRmlsdGVyZWQkIHwgYXN5bmMsIGFjdGl2ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -111,46 +111,46 @@ export class NiceBaseListModule {
|
|
|
111
111
|
] : [])
|
|
112
112
|
].filter(x => !!x);
|
|
113
113
|
}
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
115
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListModule, declarations: [NiceBaseListComponent], imports: [NiceExportBottomSheetModule,
|
|
116
|
+
NiceBaseListDirectiveModule,
|
|
117
|
+
CommonModule,
|
|
118
|
+
FormsModule,
|
|
119
|
+
RouterModule,
|
|
120
|
+
MatButtonModule,
|
|
121
|
+
MatIconModule,
|
|
122
|
+
MatTooltipModule,
|
|
123
|
+
MatCardModule,
|
|
124
|
+
MatPaginatorModule,
|
|
125
|
+
TranslateModule,
|
|
126
|
+
NiceLoadingSpinnerModule,
|
|
127
|
+
MatTableModule,
|
|
128
|
+
MatSortModule,
|
|
129
|
+
MatRippleModule,
|
|
130
|
+
MatBottomSheetModule,
|
|
131
|
+
NiceQueryBuilderModule,
|
|
132
|
+
MatBadgeModule], exports: [NiceBaseListComponent,
|
|
133
|
+
NiceBaseListDirectiveModule] }); }
|
|
134
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListModule, imports: [NiceExportBottomSheetModule,
|
|
135
|
+
NiceBaseListDirectiveModule,
|
|
136
|
+
CommonModule,
|
|
137
|
+
FormsModule,
|
|
138
|
+
RouterModule,
|
|
139
|
+
MatButtonModule,
|
|
140
|
+
MatIconModule,
|
|
141
|
+
MatTooltipModule,
|
|
142
|
+
MatCardModule,
|
|
143
|
+
MatPaginatorModule,
|
|
144
|
+
TranslateModule,
|
|
145
|
+
NiceLoadingSpinnerModule,
|
|
146
|
+
MatTableModule,
|
|
147
|
+
MatSortModule,
|
|
148
|
+
MatRippleModule,
|
|
149
|
+
MatBottomSheetModule,
|
|
150
|
+
NiceQueryBuilderModule,
|
|
151
|
+
MatBadgeModule, NiceBaseListDirectiveModule] }); }
|
|
114
152
|
}
|
|
115
|
-
|
|
116
|
-
NiceBaseListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListModule, declarations: [NiceBaseListComponent], imports: [NiceExportBottomSheetModule,
|
|
117
|
-
NiceBaseListDirectiveModule,
|
|
118
|
-
CommonModule,
|
|
119
|
-
FormsModule,
|
|
120
|
-
RouterModule,
|
|
121
|
-
MatButtonModule,
|
|
122
|
-
MatIconModule,
|
|
123
|
-
MatTooltipModule,
|
|
124
|
-
MatCardModule,
|
|
125
|
-
MatPaginatorModule,
|
|
126
|
-
TranslateModule,
|
|
127
|
-
NiceLoadingSpinnerModule,
|
|
128
|
-
MatTableModule,
|
|
129
|
-
MatSortModule,
|
|
130
|
-
MatRippleModule,
|
|
131
|
-
MatBottomSheetModule,
|
|
132
|
-
NiceQueryBuilderModule,
|
|
133
|
-
MatBadgeModule], exports: [NiceBaseListComponent,
|
|
134
|
-
NiceBaseListDirectiveModule] });
|
|
135
|
-
NiceBaseListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListModule, imports: [NiceExportBottomSheetModule,
|
|
136
|
-
NiceBaseListDirectiveModule,
|
|
137
|
-
CommonModule,
|
|
138
|
-
FormsModule,
|
|
139
|
-
RouterModule,
|
|
140
|
-
MatButtonModule,
|
|
141
|
-
MatIconModule,
|
|
142
|
-
MatTooltipModule,
|
|
143
|
-
MatCardModule,
|
|
144
|
-
MatPaginatorModule,
|
|
145
|
-
TranslateModule,
|
|
146
|
-
NiceLoadingSpinnerModule,
|
|
147
|
-
MatTableModule,
|
|
148
|
-
MatSortModule,
|
|
149
|
-
MatRippleModule,
|
|
150
|
-
MatBottomSheetModule,
|
|
151
|
-
NiceQueryBuilderModule,
|
|
152
|
-
MatBadgeModule, NiceBaseListDirectiveModule] });
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListModule, decorators: [{
|
|
153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListModule, decorators: [{
|
|
154
154
|
type: NgModule,
|
|
155
155
|
args: [{
|
|
156
156
|
imports: [
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
182
182
|
]
|
|
183
183
|
}]
|
|
184
184
|
}] });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztB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QU1kLHFCQUFxQjtRQUNyQiwyQkFBMkI7Z0hBR3RCLGtCQUFrQixZQTNCdkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixZQUFZO1FBQ1osV0FBVztRQUNYLFlBQVk7UUFDWixlQUFlO1FBQ2YsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLGFBQWE7UUFDYixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixjQUFjLEVBT2QsMkJBQTJCOzJGQUd0QixrQkFBa0I7a0JBN0I5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsY0FBYztxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQjt3QkFDckIsMkJBQTJCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2VcIjtcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlRXhwb3J0Qm90dG9tU2hlZXRNb2R1bGUsIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJHcm91cFNlcnZpY2UgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9wcm92aWRlcnMvZmlsdGVyLWdyb3VwLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VRdWVyeUJ1aWxkZXJNb2R1bGUgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLm1vZHVsZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vYmFzZS1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgICBCQVNFX0xJU1RfSUNPTlMsXG4gICAgQkFTRV9MSVNUX0xBWU9VVCxcbiAgICBERUZBVUxUX1BBUkFNRVRFUlMsIERFRkFVTFRfUlVMRVMsIERJU0FCTEVfUVVFUllfUEFSQU1TLFxuICAgIEVOQUJMRV9RVUVSWV9CVUlMREVSLFxuICAgIEVYUE9SVFNfU0VUVElOR1MsXG4gICAgTElTVF9UQUJMRSxcbiAgICBUQUJMRV9DT0xVTU5TXG59IGZyb20gXCIuL2Jhc2UtbGlzdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZGlyZWN0aXZlcy5tb2R1bGVcIjtcbmltcG9ydCB7IFRhYmxlQ29sdW1ucyB9IGZyb20gXCIuL21vZGVscy9jb2x1bW5zLm1vZGVsXCI7XG5pbXBvcnQgeyBFeHBvcnRTZXR0aW5ncyB9IGZyb20gXCIuL21vZGVscy9leHBvcnQubW9kZWxcIjtcbmltcG9ydCB7IGRlZmF1bHRJY29ucywgTmljZUJhc2VJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQmFzZUxpc3RMYXlvdXQsIGRlZmF1bHRMYXlvdXQgfSBmcm9tIFwiLi9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlU2F2ZWRSZXBvcnRTZXJ2aWNlIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2Jhc2UtbGlzdC1zYXZlZC1yZXBvcnQuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VMaXN0T3B0aW9uczxUPiB7XG4gICAgdGFibGU6IHN0cmluZztcbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXTtcbiAgICBmaWx0ZXJTZXJ2aWNlOiBUeXBlPE5pY2VGaWx0ZXJTZXJ2aWNlPFQ+PjtcbiAgICBkZWZhdWx0UnVsZXM/OiBRdWVyeU1vZGVsW107XG4gICAgZGVmYXVsdFBhcmFtZXRlcnM/OiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWw7XG4gICAgbGF5b3V0PzogQmFzZUxpc3RMYXlvdXQ7XG4gICAgZXhwb3J0cz86IEV4cG9ydFNldHRpbmdzO1xuICAgIGRpc2FibGVRdWVyeUJ1aWxkZXI/OiBib29sZWFuO1xuICAgIGRpc2FibGVRdWVyeVBhcmFtcz86IGJvb2xlYW47XG4gICAgcXVlcnlCdWlsZGVyPzoge1xuICAgICAgICBmaWx0ZXJHcm91cFNlcnZpY2U6IFR5cGU8TmljZUZpbHRlckdyb3VwU2VydmljZTxhbnk+PjtcbiAgICAgICAgc2F2ZWRSZXBvcnRTZXJ2aWNlPzogVHlwZTxOaWNlU2F2ZWRSZXBvcnRTZXJ2aWNlPjtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VMaXN0R2xvYmFsT3B0aW9ucyB7XG4gICAgbGF5b3V0PzogQmFzZUxpc3RMYXlvdXQ7XG4gICAgaWNvbnM/OiBOaWNlQmFzZUljb25PcHRpb25zO1xuICAgIHF1ZXJ5QnVpbGRlcj86IHtcbiAgICAgICAgZmlsdGVyR3JvdXBTZXJ2aWNlOiBUeXBlPE5pY2VGaWx0ZXJHcm91cFNlcnZpY2U8YW55Pj47XG4gICAgICAgIHNhdmVkUmVwb3J0U2VydmljZT86IFR5cGU8TmljZVNhdmVkUmVwb3J0U2VydmljZT47XG4gICAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5pY2VFeHBvcnRCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTWF0VGFibGVNb2R1bGUsXG4gICAgICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgIE5pY2VRdWVyeUJ1aWxkZXJNb2R1bGUsXG4gICAgICAgIE1hdEJhZGdlTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTmljZUJhc2VMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5pY2VCYXNlTGlzdENvbXBvbmVudCxcbiAgICAgICAgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQmFzZUxpc3RNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChvcHRpb25zPzogQmFzZUxpc3RHbG9iYWxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOaWNlQmFzZUxpc3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOaWNlQmFzZUxpc3RNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJBU0VfTElTVF9MQVlPVVQsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zPy5sYXlvdXQgPz8gZGVmYXVsdExheW91dFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCQVNFX0xJU1RfSUNPTlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0SWNvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucz8uaWNvbnMgPz8ge30pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC4uLihvcHRpb25zPy5xdWVyeUJ1aWxkZXIgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVOQUJMRV9RVUVSWV9CVUlMREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZUZpbHRlckdyb3VwU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5maWx0ZXJHcm91cFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5xdWVyeUJ1aWxkZXIuc2F2ZWRSZXBvcnRTZXJ2aWNlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZVNhdmVkUmVwb3J0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIF0gOiBbXSlcbiAgICAgICAgICAgIF0uZmlsdGVyKHggPT4gISF4KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcHJvdmlkZXJGYWN0b3J5PFQ+KG9wdGlvbnM6IEJhc2VMaXN0T3B0aW9uczxUPik6IFByb3ZpZGVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLmZpbHRlclNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTElTVF9UQUJMRSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy50YWJsZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUQUJMRV9DT0xVTU5TLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmNvbHVtbnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IERFRkFVTFRfUlVMRVMsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZGVmYXVsdFJ1bGVzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IERFRkFVTFRfUEFSQU1FVEVSUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5kZWZhdWx0UGFyYW1ldGVyc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wdGlvbnMubGF5b3V0ID8ge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJBU0VfTElTVF9MQVlPVVQsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMubGF5b3V0XG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVYUE9SVFNfU0VUVElOR1MsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZXhwb3J0cyA/PyB7XG4gICAgICAgICAgICAgICAgICAgIHBkZjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgeGxzeDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY3N2OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBESVNBQkxFX1FVRVJZX1BBUkFNUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5kaXNhYmxlUXVlcnlQYXJhbXMgPz8gZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVRdWVyeUJ1aWxkZXIgIT09IHVuZGVmaW5lZCA/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBFTkFCTEVfUVVFUllfQlVJTERFUixcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogIW9wdGlvbnMuZGlzYWJsZVF1ZXJ5QnVpbGRlclxuICAgICAgICAgICAgfSA6IG51bGwsXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5xdWVyeUJ1aWxkZXIgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBOaWNlRmlsdGVyR3JvdXBTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5xdWVyeUJ1aWxkZXIuZmlsdGVyR3JvdXBTZXJ2aWNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2UgPyB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VTYXZlZFJlcG9ydFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2VcbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICBdIDogW10pXG4gICAgICAgIF0uZmlsdGVyKHggPT4gISF4KTtcbiAgICB9XG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvYmFzZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztB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TWQscUJBQXFCO1lBQ3JCLDJCQUEyQjsrR0FHdEIsa0JBQWtCLFlBM0J2QiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLFlBQVk7WUFDWixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWU7WUFDZixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsYUFBYTtZQUNiLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLGNBQWMsRUFPZCwyQkFBMkI7OzJGQUd0QixrQkFBa0I7a0JBN0I5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsY0FBYztxQkFDakI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQjt3QkFDckIsMkJBQTJCO3FCQUM5QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2VcIjtcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldFwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jYXJkXCI7XG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlRXhwb3J0Qm90dG9tU2hlZXRNb2R1bGUsIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJHcm91cFNlcnZpY2UgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9wcm92aWRlcnMvZmlsdGVyLWdyb3VwLnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VRdWVyeUJ1aWxkZXJNb2R1bGUgfSBmcm9tIFwiLi4vcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLm1vZHVsZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vYmFzZS1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgICBCQVNFX0xJU1RfSUNPTlMsXG4gICAgQkFTRV9MSVNUX0xBWU9VVCxcbiAgICBERUZBVUxUX1BBUkFNRVRFUlMsIERFRkFVTFRfUlVMRVMsIERJU0FCTEVfUVVFUllfUEFSQU1TLFxuICAgIEVOQUJMRV9RVUVSWV9CVUlMREVSLFxuICAgIEVYUE9SVFNfU0VUVElOR1MsXG4gICAgTElTVF9UQUJMRSxcbiAgICBUQUJMRV9DT0xVTU5TXG59IGZyb20gXCIuL2Jhc2UtbGlzdC5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZGlyZWN0aXZlcy5tb2R1bGVcIjtcbmltcG9ydCB7IFRhYmxlQ29sdW1ucyB9IGZyb20gXCIuL21vZGVscy9jb2x1bW5zLm1vZGVsXCI7XG5pbXBvcnQgeyBFeHBvcnRTZXR0aW5ncyB9IGZyb20gXCIuL21vZGVscy9leHBvcnQubW9kZWxcIjtcbmltcG9ydCB7IGRlZmF1bHRJY29ucywgTmljZUJhc2VJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQmFzZUxpc3RMYXlvdXQsIGRlZmF1bHRMYXlvdXQgfSBmcm9tIFwiLi9tb2RlbHMvbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlU2F2ZWRSZXBvcnRTZXJ2aWNlIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2Jhc2UtbGlzdC1zYXZlZC1yZXBvcnQuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VMaXN0T3B0aW9uczxUPiB7XG4gICAgdGFibGU6IHN0cmluZztcbiAgICBjb2x1bW5zOiBUYWJsZUNvbHVtbnNbXTtcbiAgICBmaWx0ZXJTZXJ2aWNlOiBUeXBlPE5pY2VGaWx0ZXJTZXJ2aWNlPFQ+PjtcbiAgICBkZWZhdWx0UnVsZXM/OiBRdWVyeU1vZGVsW107XG4gICAgZGVmYXVsdFBhcmFtZXRlcnM/OiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWw7XG4gICAgbGF5b3V0PzogQmFzZUxpc3RMYXlvdXQ7XG4gICAgZXhwb3J0cz86IEV4cG9ydFNldHRpbmdzO1xuICAgIGRpc2FibGVRdWVyeUJ1aWxkZXI/OiBib29sZWFuO1xuICAgIGRpc2FibGVRdWVyeVBhcmFtcz86IGJvb2xlYW47XG4gICAgcXVlcnlCdWlsZGVyPzoge1xuICAgICAgICBmaWx0ZXJHcm91cFNlcnZpY2U6IFR5cGU8TmljZUZpbHRlckdyb3VwU2VydmljZTxhbnk+PjtcbiAgICAgICAgc2F2ZWRSZXBvcnRTZXJ2aWNlPzogVHlwZTxOaWNlU2F2ZWRSZXBvcnRTZXJ2aWNlPjtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VMaXN0R2xvYmFsT3B0aW9ucyB7XG4gICAgbGF5b3V0PzogQmFzZUxpc3RMYXlvdXQ7XG4gICAgaWNvbnM/OiBOaWNlQmFzZUljb25PcHRpb25zO1xuICAgIHF1ZXJ5QnVpbGRlcj86IHtcbiAgICAgICAgZmlsdGVyR3JvdXBTZXJ2aWNlOiBUeXBlPE5pY2VGaWx0ZXJHcm91cFNlcnZpY2U8YW55Pj47XG4gICAgICAgIHNhdmVkUmVwb3J0U2VydmljZT86IFR5cGU8TmljZVNhdmVkUmVwb3J0U2VydmljZT47XG4gICAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5pY2VFeHBvcnRCb3R0b21TaGVldE1vZHVsZSxcbiAgICAgICAgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgTWF0VGFibGVNb2R1bGUsXG4gICAgICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgTWF0Qm90dG9tU2hlZXRNb2R1bGUsXG4gICAgICAgIE5pY2VRdWVyeUJ1aWxkZXJNb2R1bGUsXG4gICAgICAgIE1hdEJhZGdlTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTmljZUJhc2VMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5pY2VCYXNlTGlzdENvbXBvbmVudCxcbiAgICAgICAgTmljZUJhc2VMaXN0RGlyZWN0aXZlTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQmFzZUxpc3RNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChvcHRpb25zPzogQmFzZUxpc3RHbG9iYWxPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOaWNlQmFzZUxpc3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOaWNlQmFzZUxpc3RNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJBU0VfTElTVF9MQVlPVVQsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zPy5sYXlvdXQgPz8gZGVmYXVsdExheW91dFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCQVNFX0xJU1RfSUNPTlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5kZWZhdWx0SWNvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucz8uaWNvbnMgPz8ge30pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC4uLihvcHRpb25zPy5xdWVyeUJ1aWxkZXIgPyBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVOQUJMRV9RVUVSWV9CVUlMREVSLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZUZpbHRlckdyb3VwU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5maWx0ZXJHcm91cFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5xdWVyeUJ1aWxkZXIuc2F2ZWRSZXBvcnRTZXJ2aWNlID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZVNhdmVkUmVwb3J0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIF0gOiBbXSlcbiAgICAgICAgICAgIF0uZmlsdGVyKHggPT4gISF4KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcHJvdmlkZXJGYWN0b3J5PFQ+KG9wdGlvbnM6IEJhc2VMaXN0T3B0aW9uczxUPik6IFByb3ZpZGVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLmZpbHRlclNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTElTVF9UQUJMRSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy50YWJsZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUQUJMRV9DT0xVTU5TLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmNvbHVtbnMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IERFRkFVTFRfUlVMRVMsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZGVmYXVsdFJ1bGVzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IERFRkFVTFRfUEFSQU1FVEVSUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5kZWZhdWx0UGFyYW1ldGVyc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wdGlvbnMubGF5b3V0ID8ge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJBU0VfTElTVF9MQVlPVVQsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMubGF5b3V0XG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVYUE9SVFNfU0VUVElOR1MsXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZXhwb3J0cyA/PyB7XG4gICAgICAgICAgICAgICAgICAgIHBkZjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgeGxzeDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY3N2OiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBESVNBQkxFX1FVRVJZX1BBUkFNUyxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5kaXNhYmxlUXVlcnlQYXJhbXMgPz8gZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVRdWVyeUJ1aWxkZXIgIT09IHVuZGVmaW5lZCA/IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBFTkFCTEVfUVVFUllfQlVJTERFUixcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogIW9wdGlvbnMuZGlzYWJsZVF1ZXJ5QnVpbGRlclxuICAgICAgICAgICAgfSA6IG51bGwsXG4gICAgICAgICAgICAuLi4ob3B0aW9ucy5xdWVyeUJ1aWxkZXIgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBOaWNlRmlsdGVyR3JvdXBTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogb3B0aW9ucy5xdWVyeUJ1aWxkZXIuZmlsdGVyR3JvdXBTZXJ2aWNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2UgPyB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE5pY2VTYXZlZFJlcG9ydFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBvcHRpb25zLnF1ZXJ5QnVpbGRlci5zYXZlZFJlcG9ydFNlcnZpY2VcbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICBdIDogW10pXG4gICAgICAgIF0uZmlsdGVyKHggPT4gISF4KTtcbiAgICB9XG59XG4iXX0=
|
package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-buttons.directive.mjs
RENAMED
|
@@ -5,13 +5,13 @@ export class NiceBaseListButtonsDirective {
|
|
|
5
5
|
this.template = template;
|
|
6
6
|
this.position = "suffix";
|
|
7
7
|
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListButtonsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: NiceBaseListButtonsDirective, selector: "[niceListButton]", inputs: { position: "position" }, ngImport: i0 }); }
|
|
8
10
|
}
|
|
9
|
-
|
|
10
|
-
NiceBaseListButtonsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseListButtonsDirective, selector: "[niceListButton]", inputs: { position: "position" }, ngImport: i0 });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListButtonsDirective, decorators: [{
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListButtonsDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{ selector: "[niceListButton]" }]
|
|
14
14
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { position: [{
|
|
15
15
|
type: Input
|
|
16
16
|
}] } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LWJ1dHRvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGlzdC9kaXJlY3RpdmVzL2Jhc2UtbGlzdC1idXR0b25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzlELE1BQU0sT0FBTyw0QkFBNEI7SUFJckMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFGdEMsYUFBUSxHQUFtQyxRQUFRLENBQUM7SUFHM0QsQ0FBQzs4R0FMUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtrR0FHaEMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6IFwiW25pY2VMaXN0QnV0dG9uXVwiIH0pXG5leHBvcnQgY2xhc3MgTmljZUJhc2VMaXN0QnV0dG9uc0RpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcG9zaXRpb246IFwicHJlZml4XCIgfCBcInN1ZmZpeFwiIHwgXCJzZWFyY2hcIiA9IFwic3VmZml4XCI7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG59XG4iXX0=
|
package/{esm2020 → esm2022}/lib/components/base-list/directives/base-list-cards.directive.mjs
RENAMED
|
@@ -4,11 +4,11 @@ export class NiceBaseListCardsDirective {
|
|
|
4
4
|
constructor(template) {
|
|
5
5
|
this.template = template;
|
|
6
6
|
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListCardsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.5", type: NiceBaseListCardsDirective, selector: "[niceListCards]", ngImport: i0 }); }
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
NiceBaseListCardsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: NiceBaseListCardsDirective, selector: "[niceListCards]", ngImport: i0 });
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NiceBaseListCardsDirective, decorators: [{
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: NiceBaseListCardsDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{ selector: "[niceListCards]" }]
|
|
13
13
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LWNhcmRzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvZGlyZWN0aXZlcy9iYXNlLWxpc3QtY2FyZHMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RCxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQzdDLENBQUM7OEdBRlEsMEJBQTBCO2tHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltuaWNlTGlzdENhcmRzXVwiIH0pXG5leHBvcnQgY2xhc3MgTmljZUJhc2VMaXN0Q2FyZHNEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIH1cbn1cbiJdfQ==
|