@vendure/admin-ui 3.0.3 → 3.0.5
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/catalog/components/collection-data-table/collection-data-table.component.d.ts +3 -5
- package/catalog/components/collection-list/collection-list.component.d.ts +1 -0
- package/catalog/components/facet-list/facet-list.component.d.ts +1 -0
- package/catalog/components/product-list/product-list.component.d.ts +3 -1
- package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
- package/core/common/base-list.component.d.ts +13 -0
- package/core/common/version.d.ts +1 -1
- package/core/data/providers/base-data.service.d.ts +19 -2
- package/core/data/providers/collection-data.service.d.ts +2 -2
- package/core/data/providers/data.service.d.ts +3 -3
- package/core/data/query-result.d.ts +60 -4
- package/core/data/utils/add-custom-fields.d.ts +1 -1
- package/core/providers/alerts/alerts.service.d.ts +3 -0
- package/core/providers/auth/auth.service.d.ts +3 -1
- package/core/providers/data-table/data-table-config.service.d.ts +12 -0
- package/core/public_api.d.ts +1 -0
- package/core/shared/components/data-table-2/data-table2.component.d.ts +5 -5
- package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +3 -4
- package/customer/components/customer-group-list/customer-group-list.component.d.ts +2 -0
- package/customer/components/customer-list/customer-list.component.d.ts +1 -0
- package/esm2022/catalog/catalog.module.mjs +5 -5
- package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +4 -4
- package/esm2022/catalog/components/asset-list/asset-list.component.mjs +4 -4
- package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +4 -4
- package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +11 -13
- package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +4 -4
- package/esm2022/catalog/components/collection-list/collection-list.component.mjs +6 -5
- package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +4 -4
- package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +4 -4
- package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-facet-value-dialog/create-facet-value-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +4 -4
- package/esm2022/catalog/components/facet-list/facet-list.component.mjs +16 -15
- package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +4 -4
- package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +4 -4
- package/esm2022/catalog/components/product-detail/product-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-list/product-list.component.mjs +7 -5
- package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +4 -4
- package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +4 -4
- package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +4 -4
- package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +4 -4
- package/esm2022/catalog/components/variant-price-strategy-detail/variant-price-strategy-detail.component.mjs +4 -4
- package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +4 -4
- package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +4 -4
- package/esm2022/core/app.component.mjs +4 -4
- package/esm2022/core/app.component.module.mjs +5 -5
- package/esm2022/core/common/base-list.component.mjs +26 -10
- package/esm2022/core/common/version.mjs +2 -2
- package/esm2022/core/components/alerts/alerts.component.mjs +4 -4
- package/esm2022/core/components/app-shell/app-shell.component.mjs +5 -5
- package/esm2022/core/components/base-nav/base-nav.component.mjs +4 -4
- package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +4 -4
- package/esm2022/core/components/main-nav/main-nav.component.mjs +4 -4
- package/esm2022/core/components/notification/notification.component.mjs +4 -4
- package/esm2022/core/components/overlay-host/overlay-host.component.mjs +4 -4
- package/esm2022/core/components/settings-nav/settings-nav.component.mjs +4 -4
- package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +4 -4
- package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +4 -4
- package/esm2022/core/components/user-menu/user-menu.component.mjs +4 -4
- package/esm2022/core/core.module.mjs +5 -5
- package/esm2022/core/data/data.module.mjs +7 -7
- package/esm2022/core/data/providers/base-data.service.mjs +10 -11
- package/esm2022/core/data/providers/collection-data.service.mjs +3 -3
- package/esm2022/core/data/providers/data.service.mjs +8 -8
- package/esm2022/core/data/providers/fetch-adapter.mjs +4 -4
- package/esm2022/core/data/providers/interceptor.mjs +4 -4
- package/esm2022/core/data/providers/product-data.service.mjs +4 -2
- package/esm2022/core/data/query-result.mjs +98 -10
- package/esm2022/core/data/server-config.mjs +4 -4
- package/esm2022/core/data/utils/add-custom-fields.mjs +48 -30
- package/esm2022/core/extension/components/angular-route.component.mjs +7 -7
- package/esm2022/core/extension/components/route.component.mjs +4 -4
- package/esm2022/core/extension/providers/page-metadata.service.mjs +4 -4
- package/esm2022/core/providers/alerts/alerts.service.mjs +16 -6
- package/esm2022/core/providers/auth/auth.service.mjs +13 -9
- package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +4 -4
- package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +4 -4
- package/esm2022/core/providers/channel/channel.service.mjs +4 -4
- package/esm2022/core/providers/component-registry/component-registry.service.mjs +4 -4
- package/esm2022/core/providers/currency/currency.service.mjs +4 -4
- package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +4 -4
- package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +4 -4
- package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +4 -4
- package/esm2022/core/providers/data-table/data-table-config.service.mjs +43 -0
- package/esm2022/core/providers/guard/auth.guard.mjs +4 -4
- package/esm2022/core/providers/health-check/health-check.service.mjs +4 -4
- package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +4 -4
- package/esm2022/core/providers/i18n/i18n.service.mjs +4 -4
- package/esm2022/core/providers/job-queue/job-queue.service.mjs +4 -4
- package/esm2022/core/providers/local-storage/local-storage.service.mjs +4 -4
- package/esm2022/core/providers/localization/localization.service.mjs +4 -4
- package/esm2022/core/providers/modal/modal.service.mjs +4 -4
- package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +4 -4
- package/esm2022/core/providers/notification/notification.service.mjs +4 -4
- package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +4 -4
- package/esm2022/core/providers/page/page.service.mjs +4 -4
- package/esm2022/core/providers/permissions/permissions.service.mjs +4 -4
- package/esm2022/core/public_api.mjs +2 -1
- package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +10 -10
- package/esm2022/core/shared/components/action-bar-dropdown-menu/action-bar-dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-base.component.mjs +4 -4
- package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +4 -4
- package/esm2022/core/shared/components/address-form/address-form.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +4 -4
- package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +4 -4
- package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/assets/assets.component.mjs +4 -4
- package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/card/card.component.mjs +7 -7
- package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +4 -4
- package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/chart/chart.component.mjs +4 -4
- package/esm2022/core/shared/components/chip/chip.component.mjs +4 -4
- package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +4 -4
- package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +4 -4
- package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table/data-table.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-component.service.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +5 -5
- package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +45 -53
- package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +25 -37
- package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +4 -4
- package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +4 -4
- package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +4 -4
- package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/core/shared/components/duplicate-entity-dialog/duplicate-entity-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +4 -4
- package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +4 -4
- package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +4 -4
- package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +4 -4
- package/esm2022/core/shared/components/form-field/form-field.component.mjs +4 -4
- package/esm2022/core/shared/components/form-item/form-item.component.mjs +4 -4
- package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +4 -4
- package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +4 -4
- package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +4 -4
- package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +4 -4
- package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +4 -4
- package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +4 -4
- package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +4 -4
- package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +4 -4
- package/esm2022/core/shared/components/page/page.component.mjs +4 -4
- package/esm2022/core/shared/components/page-block/page-block.component.mjs +4 -4
- package/esm2022/core/shared/components/page-body/page-body.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +4 -4
- package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +4 -4
- package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header/page-header.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +4 -4
- package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +4 -4
- package/esm2022/core/shared/components/page-title/page-title.component.mjs +4 -4
- package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +4 -4
- package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +4 -4
- package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +4 -4
- package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +4 -4
- package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.component.mjs +4 -4
- package/esm2022/core/shared/components/split-view/split-view.directive.mjs +7 -7
- package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +4 -4
- package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +4 -4
- package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +4 -4
- package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +4 -4
- package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +4 -4
- package/esm2022/core/shared/components/title-input/title-input.component.mjs +4 -4
- package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +4 -4
- package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +4 -4
- package/esm2022/core/shared/directives/disabled.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-directive-base.mjs +4 -4
- package/esm2022/core/shared/directives/if-multichannel.directive.mjs +4 -4
- package/esm2022/core/shared/directives/if-permissions.directive.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +10 -10
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +4 -4
- package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +4 -4
- package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/channel-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/duration.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/file-size.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/has-permission.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-base.pipe.mjs +6 -6
- package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-date.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/sort.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +4 -4
- package/esm2022/core/shared/pipes/time-ago.pipe.mjs +4 -4
- package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +4 -4
- package/esm2022/core/shared/shared.module.mjs +5 -5
- package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +4 -4
- package/esm2022/customer/components/address-card/address-card.component.mjs +4 -4
- package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +4 -4
- package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +17 -15
- package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +4 -4
- package/esm2022/customer/components/customer-history/customer-history.component.mjs +4 -4
- package/esm2022/customer/components/customer-list/customer-list.component.mjs +29 -28
- package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +4 -4
- package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +4 -4
- package/esm2022/customer/customer.module.mjs +5 -5
- package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +4 -4
- package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +4 -4
- package/esm2022/dashboard/dashboard.module.mjs +5 -5
- package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +4 -4
- package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +8 -8
- package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +8 -8
- package/esm2022/login/components/login/login.component.mjs +4 -4
- package/esm2022/login/login.module.mjs +5 -5
- package/esm2022/login/providers/login.guard.mjs +4 -4
- package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +4 -4
- package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +16 -15
- package/esm2022/marketing/marketing.module.mjs +5 -5
- package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +4 -4
- package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +4 -4
- package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +4 -4
- package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +4 -4
- package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +4 -4
- package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +4 -4
- package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +4 -4
- package/esm2022/order/components/line-refunds/line-refunds.component.mjs +4 -4
- package/esm2022/order/components/modification-detail/modification-detail.component.mjs +4 -4
- package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +4 -4
- package/esm2022/order/components/order-data-table/order-data-table.component.mjs +4 -17
- package/esm2022/order/components/order-data-table/order-total-column.component.mjs +4 -4
- package/esm2022/order/components/order-detail/order-detail.component.mjs +4 -4
- package/esm2022/order/components/order-editor/order-editor.component.mjs +4 -4
- package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +4 -4
- package/esm2022/order/components/order-history/order-history.component.mjs +4 -4
- package/esm2022/order/components/order-list/order-list.component.mjs +6 -5
- package/esm2022/order/components/order-modification-summary/order-modification-summary.component.mjs +4 -4
- package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +4 -4
- package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +4 -4
- package/esm2022/order/components/order-table/order-table.component.mjs +4 -4
- package/esm2022/order/components/payment-detail/payment-detail.component.mjs +4 -4
- package/esm2022/order/components/payment-for-refund-selector/payment-for-refund-selector.component.mjs +4 -4
- package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +4 -4
- package/esm2022/order/components/refund-detail/refund-detail.component.mjs +4 -4
- package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +4 -4
- package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +4 -4
- package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +4 -4
- package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +4 -4
- package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +4 -4
- package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +4 -4
- package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +4 -4
- package/esm2022/order/order.module.mjs +5 -5
- package/esm2022/order/providers/order-transition.service.mjs +4 -4
- package/esm2022/order/providers/routing/order.guard.mjs +4 -4
- package/esm2022/react/components/react-custom-column.component.mjs +4 -4
- package/esm2022/react/components/react-custom-detail.component.mjs +4 -4
- package/esm2022/react/components/react-form-input.component.mjs +4 -4
- package/esm2022/react/components/react-route.component.mjs +4 -4
- package/esm2022/react/directives/react-component-host.directive.mjs +4 -4
- package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +4 -4
- package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +4 -4
- package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +35 -34
- package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +4 -4
- package/esm2022/settings/components/channel-list/channel-list.component.mjs +16 -15
- package/esm2022/settings/components/country-detail/country-detail.component.mjs +4 -4
- package/esm2022/settings/components/country-list/country-list.component.mjs +24 -23
- package/esm2022/settings/components/global-settings/global-settings.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +24 -23
- package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +4 -4
- package/esm2022/settings/components/profile/profile.component.mjs +4 -4
- package/esm2022/settings/components/role-detail/role-detail.component.mjs +4 -4
- package/esm2022/settings/components/role-list/role-list.component.mjs +16 -15
- package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +4 -4
- package/esm2022/settings/components/seller-list/seller-list.component.mjs +21 -20
- package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -4
- package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +24 -23
- package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-detail/stock-location-detail.component.mjs +4 -4
- package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +22 -21
- package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +16 -15
- package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +4 -4
- package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +16 -15
- package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +4 -4
- package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +4 -4
- package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +4 -4
- package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +4 -4
- package/esm2022/settings/components/zone-list/zone-list.component.mjs +21 -20
- package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +4 -4
- package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +4 -4
- package/esm2022/settings/providers/routing/profile-resolver.mjs +4 -4
- package/esm2022/settings/settings.module.mjs +5 -5
- package/esm2022/system/components/health-check/health-check.component.mjs +4 -4
- package/esm2022/system/components/job-list/job-list.component.mjs +4 -4
- package/esm2022/system/components/job-state-label/job-state-label.component.mjs +4 -4
- package/esm2022/system/system.module.mjs +5 -5
- package/fesm2022/vendure-admin-ui-catalog.mjs +130 -128
- package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-core.mjs +1029 -876
- package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-customer.mjs +81 -78
- package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-dashboard.mjs +41 -41
- package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-login.mjs +10 -10
- package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-marketing.mjs +22 -21
- package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-order.mjs +135 -147
- package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-react.mjs +15 -15
- package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-settings.mjs +300 -289
- package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
- package/fesm2022/vendure-admin-ui-system.mjs +13 -13
- package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
- package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -0
- package/order/components/order-data-table/order-data-table.component.d.ts +2 -3
- package/order/components/order-list/order-list.component.d.ts +1 -0
- package/package.json +13 -13
- package/settings/components/administrator-list/administrator-list.component.d.ts +1 -0
- package/settings/components/channel-list/channel-list.component.d.ts +1 -0
- package/settings/components/country-list/country-list.component.d.ts +1 -0
- package/settings/components/payment-method-list/payment-method-list.component.d.ts +1 -0
- package/settings/components/role-list/role-list.component.d.ts +1 -0
- package/settings/components/seller-list/seller-list.component.d.ts +1 -0
- package/settings/components/shipping-method-list/shipping-method-list.component.d.ts +1 -0
- package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -0
- package/settings/components/tax-category-list/tax-category-list.component.d.ts +1 -0
- package/settings/components/tax-rate-list/tax-rate-list.component.d.ts +1 -0
- package/settings/components/zone-list/zone-list.component.d.ts +1 -0
- package/static/theme.min.css +1 -1
|
@@ -8,16 +8,16 @@ import * as i2 from "@clr/angular";
|
|
|
8
8
|
import * as i3 from "@angular/common";
|
|
9
9
|
import * as i4 from "@angular/router";
|
|
10
10
|
import * as i5 from "@ngx-translate/core";
|
|
11
|
-
export const FACET_LIST_QUERY = gql `
|
|
12
|
-
query GetFacetList($options: FacetListOptions, $facetValueListOptions: FacetValueListOptions) {
|
|
13
|
-
facets(options: $options) {
|
|
14
|
-
items {
|
|
15
|
-
...FacetWithValueList
|
|
16
|
-
}
|
|
17
|
-
totalItems
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
${FACET_WITH_VALUE_LIST_FRAGMENT}
|
|
11
|
+
export const FACET_LIST_QUERY = gql `
|
|
12
|
+
query GetFacetList($options: FacetListOptions, $facetValueListOptions: FacetValueListOptions) {
|
|
13
|
+
facets(options: $options) {
|
|
14
|
+
items {
|
|
15
|
+
...FacetWithValueList
|
|
16
|
+
}
|
|
17
|
+
totalItems
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
${FACET_WITH_VALUE_LIST_FRAGMENT}
|
|
21
21
|
`;
|
|
22
22
|
export class FacetListComponent extends TypedBaseListComponent {
|
|
23
23
|
constructor(dataService) {
|
|
@@ -25,6 +25,7 @@ export class FacetListComponent extends TypedBaseListComponent {
|
|
|
25
25
|
this.dataService = dataService;
|
|
26
26
|
this.initialLimit = 3;
|
|
27
27
|
this.displayLimit = {};
|
|
28
|
+
this.dataTableListId = 'facet-list';
|
|
28
29
|
this.customFields = this.getCustomFieldConfig('Facet');
|
|
29
30
|
this.filters = this.createFilterCollection()
|
|
30
31
|
.addIdFilter()
|
|
@@ -81,11 +82,11 @@ export class FacetListComponent extends TypedBaseListComponent {
|
|
|
81
82
|
setLanguage(code) {
|
|
82
83
|
this.dataService.client.setContentLanguage(code).subscribe();
|
|
83
84
|
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FacetListComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FacetListComponent, selector: "vdr-facet-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"facet-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateFacet']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-facet' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"facet-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"facet-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-facet=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', facet.id]\"\r\n ><span>{{ facet.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.visibility' | translate\" id=\"visibility\">\r\n <ng-template let-facet=\"item\">\r\n <vdr-chip *ngIf=\"facet.isPrivate\" colorType=\"warning\">{{\r\n 'common.private' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!facet.isPrivate\" colorType=\"success\">{{\r\n 'common.public' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.values' | translate\" id=\"values\">\r\n <ng-template let-facet=\"item\">\r\n <div class=\"facet-values-list\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let value of facet.valueList.items | slice : 0 : displayLimit[facet.id] || 3\"\r\n [facetValue]=\"value\"\r\n [removable]=\"false\"\r\n [displayFacetName]=\"false\"\r\n ></vdr-facet-value-chip>\r\n <vdr-chip *ngIf=\"displayLimit[facet.id] < facet.valueList.totalItems && (displayLimit[facet.id] || 0) === facet.valueList.items.length\">\r\n ... + {{ facet.valueList.totalItems - facet.valueList.items.length }}\r\n </vdr-chip>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"facet.valueList.items.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(facet)\"\r\n >\r\n <ng-container *ngIf=\"(displayLimit[facet.id] || 0) < facet.valueList.items.length; else collapse\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ facet.valueList.totalItems - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".facet-values-list{max-width:500px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i1.ActionBarComponent, selector: "vdr-action-bar" }, { kind: "component", type: i1.ActionBarLeftComponent, selector: "vdr-ab-left", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarRightComponent, selector: "vdr-ab-right", inputs: ["grow"] }, { kind: "component", type: i1.ActionBarDropdownMenuComponent, selector: "vdr-action-bar-dropdown-menu", inputs: ["alwaysShow"] }, { kind: "component", type: i1.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i1.FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: ["facetValue", "removable", "displayFacetName"], outputs: ["remove"] }, { kind: "component", type: i1.LanguageSelectorComponent, selector: "vdr-language-selector", inputs: ["currentLanguageCode", "availableLanguageCodes", "disabled"], outputs: ["languageCodeChange"] }, { kind: "directive", type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i1.ActionBarItemsComponent, selector: "vdr-action-bar-items" }, { kind: "component", type: i1.BulkActionMenuComponent, selector: "vdr-bulk-action-menu", inputs: ["locationId", "selectionManager", "hostComponent"] }, { kind: "component", type: i1.DataTable2Component, selector: "vdr-data-table-2", inputs: ["id", "items", "itemsPerPage", "currentPage", "totalItems", "emptyStateLabel", "filters", "activeIndex"], outputs: ["pageChange", "itemsPerPageChange", "visibleColumnsChange"] }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i1.DataTableCustomFieldColumnComponent, selector: "vdr-dt2-custom-field-column", inputs: ["customField", "sorts"], exportAs: ["row"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i1.LocaleDatePipe, name: "localeDate" }] }); }
|
|
86
87
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FacetListComponent, decorators: [{
|
|
88
89
|
type: Component,
|
|
89
|
-
args: [{ selector: 'vdr-facet-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"facet-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateFacet']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-facet' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"facet-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n id=\"
|
|
90
|
+
args: [{ selector: 'vdr-facet-list', template: "<vdr-page-block>\r\n <vdr-action-bar>\r\n <vdr-ab-left>\r\n <vdr-language-selector\r\n [availableLanguageCodes]=\"availableLanguages$ | async\"\r\n [currentLanguageCode]=\"contentLanguage$ | async\"\r\n (languageCodeChange)=\"setLanguage($event)\"\r\n ></vdr-language-selector>\r\n </vdr-ab-left>\r\n <vdr-ab-right>\r\n <vdr-action-bar-items locationId=\"facet-list\" />\r\n <a\r\n class=\"btn btn-primary\"\r\n [routerLink]=\"['./create']\"\r\n *vdrIfPermissions=\"['CreateCatalog', 'CreateFacet']\"\r\n >\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.create-new-facet' | translate }}\r\n </a>\r\n <vdr-action-bar-dropdown-menu locationId=\"facet-list\" />\r\n </vdr-ab-right>\r\n </vdr-action-bar>\r\n</vdr-page-block>\r\n<vdr-data-table-2\r\n class=\"mt-2\"\r\n [id]=\"dataTableListId\"\r\n [items]=\"items$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n [filters]=\"filters\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n (visibleColumnsChange)=\"setVisibleColumns($event)\"\r\n>\r\n <vdr-bulk-action-menu\r\n locationId=\"facet-list\"\r\n [hostComponent]=\"this\"\r\n [selectionManager]=\"selectionManager\"\r\n ></vdr-bulk-action-menu>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'catalog.filter-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\" [sort]=\"sorts.get('id')\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.created-at' | translate\" id=\"created-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('createdAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.createdAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column\r\n [heading]=\"'common.updated-at' | translate\" id=\"updated-at\"\r\n [hiddenByDefault]=\"true\"\r\n [sort]=\"sorts.get('updatedAt')\"\r\n >\r\n <ng-template let-facet=\"item\">\r\n {{ facet.updatedAt | localeDate : 'short' }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\" [sort]=\"sorts.get('name')\">\r\n <ng-template let-facet=\"item\">\r\n <a class=\"button-ghost\" [routerLink]=\"['./', facet.id]\"\r\n ><span>{{ facet.name }}</span>\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.code' | translate\" id=\"code\">\r\n <ng-template let-facet=\"item\">\r\n {{ facet.code }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.visibility' | translate\" id=\"visibility\">\r\n <ng-template let-facet=\"item\">\r\n <vdr-chip *ngIf=\"facet.isPrivate\" colorType=\"warning\">{{\r\n 'common.private' | translate\r\n }}</vdr-chip>\r\n <vdr-chip *ngIf=\"!facet.isPrivate\" colorType=\"success\">{{\r\n 'common.public' | translate\r\n }}</vdr-chip>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'catalog.values' | translate\" id=\"values\">\r\n <ng-template let-facet=\"item\">\r\n <div class=\"facet-values-list\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let value of facet.valueList.items | slice : 0 : displayLimit[facet.id] || 3\"\r\n [facetValue]=\"value\"\r\n [removable]=\"false\"\r\n [displayFacetName]=\"false\"\r\n ></vdr-facet-value-chip>\r\n <vdr-chip *ngIf=\"displayLimit[facet.id] < facet.valueList.totalItems && (displayLimit[facet.id] || 0) === facet.valueList.items.length\">\r\n ... + {{ facet.valueList.totalItems - facet.valueList.items.length }}\r\n </vdr-chip>\r\n <button\r\n class=\"button-small\"\r\n *ngIf=\"facet.valueList.items.length > initialLimit\"\r\n (click)=\"toggleDisplayLimit(facet)\"\r\n >\r\n <ng-container *ngIf=\"(displayLimit[facet.id] || 0) < facet.valueList.items.length; else collapse\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ facet.valueList.totalItems - initialLimit }}\r\n </ng-container>\r\n <ng-template #collapse>\r\n <clr-icon shape=\"minus\"></clr-icon>\r\n </ng-template>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-custom-field-column *ngFor=\"let customField of customFields\" [customField]=\"customField\" [sorts]=\"sorts\" />\r\n</vdr-data-table-2>\r\n", styles: [".facet-values-list{max-width:500px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}\n"] }]
|
|
90
91
|
}], ctorParameters: () => [{ type: i1.DataService }] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBSXBCLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVM3Qiw4QkFBOEI7Q0FDbkMsQ0FBQztBQU9GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLHNCQUE2RDtJQStCckUsWUFBc0IsV0FBd0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTVCckMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBNkIsRUFBRSxDQUFDO1FBRW5DLGlCQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDekIsS0FBSyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDNUIsQ0FBQztTQUNMLENBQUM7YUFDRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3hDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsVUFBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRTthQUN2QyxXQUFXLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQzthQUNoQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdkIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUk1QixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ1osUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEVBQUU7b0JBQ0wsSUFBSTtvQkFDSixJQUFJO29CQUNKLE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUU7NEJBQ0YsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO3lCQUN6Qzt3QkFDRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3RDO29CQUNELElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtpQkFDckM7Z0JBQ0QscUJBQXFCLEVBQUU7b0JBQ25CLElBQUksRUFBRSxHQUFHO2lCQUNaO2FBQ0osQ0FBQztZQUNGLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDN0UsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQTBDO1FBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzhHQW5FUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUM5Qi9CLCszS0F1SEE7OzJGRHpGYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBGQUNFVF9XSVRIX1ZBTFVFX0xJU1RfRlJBR01FTlQsXHJcbiAgICBHZXRGYWNldExpc3REb2N1bWVudCxcclxuICAgIEdldEZhY2V0TGlzdFF1ZXJ5LFxyXG4gICAgSXRlbU9mLFxyXG4gICAgTGFuZ3VhZ2VDb2RlLFxyXG4gICAgVHlwZWRCYXNlTGlzdENvbXBvbmVudCxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZBQ0VUX0xJU1RfUVVFUlkgPSBncWxgXHJcbiAgICBxdWVyeSBHZXRGYWNldExpc3QoJG9wdGlvbnM6IEZhY2V0TGlzdE9wdGlvbnMsICRmYWNldFZhbHVlTGlzdE9wdGlvbnM6IEZhY2V0VmFsdWVMaXN0T3B0aW9ucykge1xyXG4gICAgICAgIGZhY2V0cyhvcHRpb25zOiAkb3B0aW9ucykge1xyXG4gICAgICAgICAgICBpdGVtcyB7XHJcbiAgICAgICAgICAgICAgICAuLi5GYWNldFdpdGhWYWx1ZUxpc3RcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0b3RhbEl0ZW1zXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtGQUNFVF9XSVRIX1ZBTFVFX0xJU1RfRlJBR01FTlR9XHJcbmA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWZhY2V0LWxpc3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmFjZXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFjZXRMaXN0Q29tcG9uZW50XHJcbiAgICBleHRlbmRzIFR5cGVkQmFzZUxpc3RDb21wb25lbnQ8dHlwZW9mIEdldEZhY2V0TGlzdERvY3VtZW50LCAnZmFjZXRzJz5cclxuICAgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAgIHJlYWRvbmx5IGluaXRpYWxMaW1pdCA9IDM7XHJcbiAgICBkaXNwbGF5TGltaXQ6IHsgW2lkOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xyXG5cclxuICAgIHJlYWRvbmx5IGN1c3RvbUZpZWxkcyA9IHRoaXMuZ2V0Q3VzdG9tRmllbGRDb25maWcoJ0ZhY2V0Jyk7XHJcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcclxuICAgICAgICAuYWRkSWRGaWx0ZXIoKVxyXG4gICAgICAgIC5hZGREYXRlRmlsdGVycygpXHJcbiAgICAgICAgLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd2aXNpYmlsaXR5JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnYm9vbGVhbicgfSxcclxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi52aXNpYmlsaXR5JyksXHJcbiAgICAgICAgICAgIHRvRmlsdGVySW5wdXQ6IHZhbHVlID0+ICh7XHJcbiAgICAgICAgICAgICAgICBpc1ByaXZhdGU6IHsgZXE6ICF2YWx1ZSB9LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZGRDdXN0b21GaWVsZEZpbHRlcnModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIHJlYWRvbmx5IHNvcnRzID0gdGhpcy5jcmVhdGVTb3J0Q29sbGVjdGlvbigpXHJcbiAgICAgICAgLmRlZmF1bHRTb3J0KCdjcmVhdGVkQXQnLCAnREVTQycpXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnaWQnIH0pXHJcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnY3JlYXRlZEF0JyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSlcclxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICduYW1lJyB9KVxyXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2NvZGUnIH0pXHJcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXHJcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHN1cGVyLmNvbmZpZ3VyZSh7XHJcbiAgICAgICAgICAgIGRvY3VtZW50OiBHZXRGYWNldExpc3REb2N1bWVudCxcclxuICAgICAgICAgICAgZ2V0SXRlbXM6IGRhdGEgPT4gZGF0YS5mYWNldHMsXHJcbiAgICAgICAgICAgIHNldFZhcmlhYmxlczogKHNraXAsIHRha2UpID0+ICh7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluczogdGhpcy5zZWFyY2hUZXJtQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJzLmNyZWF0ZUZpbHRlcklucHV0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0OiB0aGlzLnNvcnRzLmNyZWF0ZVNvcnRJbnB1dCgpLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVMaXN0T3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRha2U6IDEwMCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICByZWZyZXNoTGlzdE9uQ2hhbmdlczogW3RoaXMuZmlsdGVycy52YWx1ZUNoYW5nZXMsIHRoaXMuc29ydHMudmFsdWVDaGFuZ2VzXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVEaXNwbGF5TGltaXQoZmFjZXQ6IEl0ZW1PZjxHZXRGYWNldExpc3RRdWVyeSwgJ2ZhY2V0cyc+KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA9PT0gZmFjZXQudmFsdWVMaXN0Lml0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlMaW1pdFtmYWNldC5pZF0gPSB0aGlzLmluaXRpYWxMaW1pdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlMaW1pdFtmYWNldC5pZF0gPSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRMYW5ndWFnZShjb2RlOiBMYW5ndWFnZUNvZGUpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudC5zZXRDb250ZW50TGFuZ3VhZ2UoY29kZSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1wYWdlLWJsb2NrPlxyXG4gICAgPHZkci1hY3Rpb24tYmFyPlxyXG4gICAgICAgIDx2ZHItYWItbGVmdD5cclxuICAgICAgICAgICAgPHZkci1sYW5ndWFnZS1zZWxlY3RvclxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUxhbmd1YWdlQ29kZXNdPVwiYXZhaWxhYmxlTGFuZ3VhZ2VzJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAgIFtjdXJyZW50TGFuZ3VhZ2VDb2RlXT1cImNvbnRlbnRMYW5ndWFnZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAobGFuZ3VhZ2VDb2RlQ2hhbmdlKT1cInNldExhbmd1YWdlKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC92ZHItbGFuZ3VhZ2Utc2VsZWN0b3I+XHJcbiAgICAgICAgPC92ZHItYWItbGVmdD5cclxuICAgICAgICA8dmRyLWFiLXJpZ2h0PlxyXG4gICAgICAgICAgICA8dmRyLWFjdGlvbi1iYXItaXRlbXMgbG9jYXRpb25JZD1cImZhY2V0LWxpc3RcIiAvPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuL2NyZWF0ZSddXCJcclxuICAgICAgICAgICAgICAgICp2ZHJJZlBlcm1pc3Npb25zPVwiWydDcmVhdGVDYXRhbG9nJywgJ0NyZWF0ZUZhY2V0J11cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwbHVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLmNyZWF0ZS1uZXctZmFjZXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWRyb3Bkb3duLW1lbnUgbG9jYXRpb25JZD1cImZhY2V0LWxpc3RcIiAvPlxyXG4gICAgICAgIDwvdmRyLWFiLXJpZ2h0PlxyXG4gICAgPC92ZHItYWN0aW9uLWJhcj5cclxuPC92ZHItcGFnZS1ibG9jaz5cclxuPHZkci1kYXRhLXRhYmxlLTJcclxuICAgIGNsYXNzPVwibXQtMlwiXHJcbiAgICBpZD1cImZhY2V0LWxpc3RcIlxyXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwic2V0SXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4+XHJcbiAgICA8dmRyLWJ1bGstYWN0aW9uLW1lbnVcclxuICAgICAgICBsb2NhdGlvbklkPVwiZmFjZXQtbGlzdFwiXHJcbiAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXHJcbiAgICAgICAgW3NlbGVjdGlvbk1hbmFnZXJdPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAgICA+PC92ZHItYnVsay1hY3Rpb24tbWVudT5cclxuICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgIFtzZWFyY2hUZXJtQ29udHJvbF09XCJzZWFyY2hUZXJtQ29udHJvbFwiXHJcbiAgICAgICAgW3NlYXJjaFRlcm1QbGFjZWhvbGRlcl09XCInY2F0YWxvZy5maWx0ZXItYnktbmFtZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgPjwvdmRyLWR0Mi1zZWFyY2g+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBpZD1cImlkXCIgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCdpZCcpXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cImNyZWF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuY3JlYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIiBpZD1cInVwZGF0ZWQtYXRcIlxyXG4gICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCd1cGRhdGVkQXQnKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQudXBkYXRlZEF0IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCIgW3NvcnRdPVwic29ydHMuZ2V0KCduYW1lJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cImJ1dHRvbi1naG9zdFwiIFtyb3V0ZXJMaW5rXT1cIlsnLi8nLCBmYWNldC5pZF1cIlxyXG4gICAgICAgICAgICAgICAgPjxzcGFuPnt7IGZhY2V0Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmNvZGUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJjb2RlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgZmFjZXQuY29kZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24udmlzaWJpbGl0eScgfCB0cmFuc2xhdGVcIiBpZD1cInZpc2liaWxpdHlcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJmYWNldC5pc1ByaXZhdGVcIiBjb2xvclR5cGU9XCJ3YXJuaW5nXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24ucHJpdmF0ZScgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCIhZmFjZXQuaXNQcml2YXRlXCIgY29sb3JUeXBlPVwic3VjY2Vzc1wiPnt7XHJcbiAgICAgICAgICAgICAgICAnY29tbW9uLnB1YmxpYycgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3Zkci1jaGlwPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjYXRhbG9nLnZhbHVlcycgfCB0cmFuc2xhdGVcIiBpZD1cInZhbHVlc1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmYWNldC12YWx1ZXMtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mYWNldC12YWx1ZS1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGZhY2V0LnZhbHVlTGlzdC5pdGVtcyB8IHNsaWNlIDogMCA6IGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZhY2V0VmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmFjZXROYW1lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGlwICpuZ0lmPVwiZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA8IGZhY2V0LnZhbHVlTGlzdC50b3RhbEl0ZW1zICYmIChkaXNwbGF5TGltaXRbZmFjZXQuaWRdIHx8IDApID09PSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgLi4uICsge3sgZmFjZXQudmFsdWVMaXN0LnRvdGFsSXRlbXMgLSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoIH19XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1jaGlwPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGggPiBpbml0aWFsTGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEaXNwbGF5TGltaXQoZmFjZXQpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgMCkgPCBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoOyBlbHNlIGNvbGxhcHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBmYWNldC52YWx1ZUxpc3QudG90YWxJdGVtcyAtIGluaXRpYWxMaW1pdCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cIm1pbnVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY3VzdG9tLWZpZWxkLWNvbHVtbiAqbmdGb3I9XCJsZXQgY3VzdG9tRmllbGQgb2YgY3VzdG9tRmllbGRzXCIgW2N1c3RvbUZpZWxkXT1cImN1c3RvbUZpZWxkXCIgW3NvcnRzXT1cInNvcnRzXCIgLz5cclxuPC92ZHItZGF0YS10YWJsZS0yPlxyXG4iXX0=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCw4QkFBOEIsRUFDOUIsb0JBQW9CLEVBSXBCLHNCQUFzQixHQUN6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUVyQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVM3Qiw4QkFBOEI7Q0FDbkMsQ0FBQztBQU9GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLHNCQUE2RDtJQWdDckUsWUFBc0IsV0FBd0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTdCckMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBNkIsRUFBRSxDQUFDO1FBRTVDLG9CQUFlLEdBQUcsWUFBWSxDQUFDO1FBQ3RCLGlCQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFlBQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7YUFDM0MsV0FBVyxFQUFFO2FBQ2IsY0FBYyxFQUFFO2FBQ2hCLFNBQVMsQ0FBQztZQUNQLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDekIsS0FBSyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixhQUFhLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQixTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUU7YUFDNUIsQ0FBQztTQUNMLENBQUM7YUFDRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3hDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsVUFBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRTthQUN2QyxXQUFXLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQzthQUNoQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDdkIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUM5QixPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUk1QixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ1osUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixPQUFPLEVBQUU7b0JBQ0wsSUFBSTtvQkFDSixJQUFJO29CQUNKLE1BQU0sRUFBRTt3QkFDSixJQUFJLEVBQUU7NEJBQ0YsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLO3lCQUN6Qzt3QkFDRCxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7cUJBQ3RDO29CQUNELElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtpQkFDckM7Z0JBQ0QscUJBQXFCLEVBQUU7b0JBQ25CLElBQUksRUFBRSxHQUFHO2lCQUNaO2FBQ0osQ0FBQztZQUNGLG9CQUFvQixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDN0UsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQTBDO1FBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRSxDQUFDOytHQXBFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2RUM5Qi9CLGs4S0F3SEE7OzRGRDFGYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7XG4gICAgRGF0YVNlcnZpY2UsXG4gICAgRkFDRVRfV0lUSF9WQUxVRV9MSVNUX0ZSQUdNRU5ULFxuICAgIEdldEZhY2V0TGlzdERvY3VtZW50LFxuICAgIEdldEZhY2V0TGlzdFF1ZXJ5LFxuICAgIEl0ZW1PZixcbiAgICBMYW5ndWFnZUNvZGUsXG4gICAgVHlwZWRCYXNlTGlzdENvbXBvbmVudCxcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5cbmV4cG9ydCBjb25zdCBGQUNFVF9MSVNUX1FVRVJZID0gZ3FsYFxuICAgIHF1ZXJ5IEdldEZhY2V0TGlzdCgkb3B0aW9uczogRmFjZXRMaXN0T3B0aW9ucywgJGZhY2V0VmFsdWVMaXN0T3B0aW9uczogRmFjZXRWYWx1ZUxpc3RPcHRpb25zKSB7XG4gICAgICAgIGZhY2V0cyhvcHRpb25zOiAkb3B0aW9ucykge1xuICAgICAgICAgICAgaXRlbXMge1xuICAgICAgICAgICAgICAgIC4uLkZhY2V0V2l0aFZhbHVlTGlzdFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWxJdGVtc1xuICAgICAgICB9XG4gICAgfVxuICAgICR7RkFDRVRfV0lUSF9WQUxVRV9MSVNUX0ZSQUdNRU5UfVxuYDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItZmFjZXQtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZhY2V0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZhY2V0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmFjZXRMaXN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBUeXBlZEJhc2VMaXN0Q29tcG9uZW50PHR5cGVvZiBHZXRGYWNldExpc3REb2N1bWVudCwgJ2ZhY2V0cyc+XG4gICAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgICByZWFkb25seSBpbml0aWFsTGltaXQgPSAzO1xuICAgIGRpc3BsYXlMaW1pdDogeyBbaWQ6IHN0cmluZ106IG51bWJlciB9ID0ge307XG5cbiAgICBkYXRhVGFibGVMaXN0SWQgPSAnZmFjZXQtbGlzdCc7XG4gICAgcmVhZG9ubHkgY3VzdG9tRmllbGRzID0gdGhpcy5nZXRDdXN0b21GaWVsZENvbmZpZygnRmFjZXQnKTtcbiAgICByZWFkb25seSBmaWx0ZXJzID0gdGhpcy5jcmVhdGVGaWx0ZXJDb2xsZWN0aW9uKClcbiAgICAgICAgLmFkZElkRmlsdGVyKClcbiAgICAgICAgLmFkZERhdGVGaWx0ZXJzKClcbiAgICAgICAgLmFkZEZpbHRlcih7XG4gICAgICAgICAgICBuYW1lOiAndmlzaWJpbGl0eScsXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdib29sZWFuJyB9LFxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi52aXNpYmlsaXR5JyksXG4gICAgICAgICAgICB0b0ZpbHRlcklucHV0OiB2YWx1ZSA9PiAoe1xuICAgICAgICAgICAgICAgIGlzUHJpdmF0ZTogeyBlcTogIXZhbHVlIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkRmlsdGVycyh0aGlzLmN1c3RvbUZpZWxkcylcbiAgICAgICAgLmNvbm5lY3RUb1JvdXRlKHRoaXMucm91dGUpO1xuXG4gICAgcmVhZG9ubHkgc29ydHMgPSB0aGlzLmNyZWF0ZVNvcnRDb2xsZWN0aW9uKClcbiAgICAgICAgLmRlZmF1bHRTb3J0KCdjcmVhdGVkQXQnLCAnREVTQycpXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ2lkJyB9KVxuICAgICAgICAuYWRkU29ydCh7IG5hbWU6ICdjcmVhdGVkQXQnIH0pXG4gICAgICAgIC5hZGRTb3J0KHsgbmFtZTogJ3VwZGF0ZWRBdCcgfSlcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnbmFtZScgfSlcbiAgICAgICAgLmFkZFNvcnQoeyBuYW1lOiAnY29kZScgfSlcbiAgICAgICAgLmFkZEN1c3RvbUZpZWxkU29ydHModGhpcy5jdXN0b21GaWVsZHMpXG4gICAgICAgIC5jb25uZWN0VG9Sb3V0ZSh0aGlzLnJvdXRlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc3VwZXIuY29uZmlndXJlKHtcbiAgICAgICAgICAgIGRvY3VtZW50OiBHZXRGYWNldExpc3REb2N1bWVudCxcbiAgICAgICAgICAgIGdldEl0ZW1zOiBkYXRhID0+IGRhdGEuZmFjZXRzLFxuICAgICAgICAgICAgc2V0VmFyaWFibGVzOiAoc2tpcCwgdGFrZSkgPT4gKHtcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHNraXAsXG4gICAgICAgICAgICAgICAgICAgIHRha2UsXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiB0aGlzLnNlYXJjaFRlcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVycy5jcmVhdGVGaWx0ZXJJbnB1dCgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzb3J0OiB0aGlzLnNvcnRzLmNyZWF0ZVNvcnRJbnB1dCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUxpc3RPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgIHRha2U6IDEwMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZWZyZXNoTGlzdE9uQ2hhbmdlczogW3RoaXMuZmlsdGVycy52YWx1ZUNoYW5nZXMsIHRoaXMuc29ydHMudmFsdWVDaGFuZ2VzXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRGlzcGxheUxpbWl0KGZhY2V0OiBJdGVtT2Y8R2V0RmFjZXRMaXN0UXVlcnksICdmYWNldHMnPikge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TGltaXRbZmFjZXQuaWRdID09PSBmYWNldC52YWx1ZUxpc3QuaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlMaW1pdFtmYWNldC5pZF0gPSB0aGlzLmluaXRpYWxMaW1pdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSA9IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRMYW5ndWFnZShjb2RlOiBMYW5ndWFnZUNvZGUpIHtcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5jbGllbnQuc2V0Q29udGVudExhbmd1YWdlKGNvZGUpLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYWN0aW9uLWJhcj5cclxuICAgICAgICA8dmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgICAgIDx2ZHItbGFuZ3VhZ2Utc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgIFthdmFpbGFibGVMYW5ndWFnZUNvZGVzXT1cImF2YWlsYWJsZUxhbmd1YWdlcyQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICBbY3VycmVudExhbmd1YWdlQ29kZV09XCJjb250ZW50TGFuZ3VhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgKGxhbmd1YWdlQ29kZUNoYW5nZSk9XCJzZXRMYW5ndWFnZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWxhbmd1YWdlLXNlbGVjdG9yPlxyXG4gICAgICAgIDwvdmRyLWFiLWxlZnQ+XHJcbiAgICAgICAgPHZkci1hYi1yaWdodD5cclxuICAgICAgICAgICAgPHZkci1hY3Rpb24tYmFyLWl0ZW1zIGxvY2F0aW9uSWQ9XCJmYWNldC1saXN0XCIgLz5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnLi9jcmVhdGUnXVwiXHJcbiAgICAgICAgICAgICAgICAqdmRySWZQZXJtaXNzaW9ucz1cIlsnQ3JlYXRlQ2F0YWxvZycsICdDcmVhdGVGYWNldCddXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5jcmVhdGUtbmV3LWZhY2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDx2ZHItYWN0aW9uLWJhci1kcm9wZG93bi1tZW51IGxvY2F0aW9uSWQ9XCJmYWNldC1saXN0XCIgLz5cclxuICAgICAgICA8L3Zkci1hYi1yaWdodD5cclxuICAgIDwvdmRyLWFjdGlvbi1iYXI+XHJcbjwvdmRyLXBhZ2UtYmxvY2s+XHJcbjx2ZHItZGF0YS10YWJsZS0yXHJcbiAgICBjbGFzcz1cIm10LTJcIlxyXG4gICAgW2lkXT1cImRhdGFUYWJsZUxpc3RJZFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtcyQgfCBhc3luY1wiXHJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJzZXRQYWdlTnVtYmVyKCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXHJcbiAgICAodmlzaWJsZUNvbHVtbnNDaGFuZ2UpPVwic2V0VmlzaWJsZUNvbHVtbnMoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItYnVsay1hY3Rpb24tbWVudVxyXG4gICAgICAgIGxvY2F0aW9uSWQ9XCJmYWNldC1saXN0XCJcclxuICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcclxuICAgICAgICBbc2VsZWN0aW9uTWFuYWdlcl09XCJzZWxlY3Rpb25NYW5hZ2VyXCJcclxuICAgID48L3Zkci1idWxrLWFjdGlvbi1tZW51PlxyXG4gICAgPHZkci1kdDItc2VhcmNoXHJcbiAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICAgICAgICBbc2VhcmNoVGVybVBsYWNlaG9sZGVyXT1cIidjYXRhbG9nLmZpbHRlci1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICA+PC92ZHItZHQyLXNlYXJjaD5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIiBbc29ydF09XCJzb3J0cy5nZXQoJ2lkJylcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5pZCB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi5jcmVhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwiY3JlYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ2NyZWF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uXHJcbiAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiIGlkPVwidXBkYXRlZC1hdFwiXHJcbiAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3VwZGF0ZWRBdCcpXCJcclxuICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC51cGRhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiBpZD1cIm5hbWVcIiBbb3B0aW9uYWxdPVwiZmFsc2VcIiBbc29ydF09XCJzb3J0cy5nZXQoJ25hbWUnKVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycuLycsIGZhY2V0LmlkXVwiXHJcbiAgICAgICAgICAgICAgICA+PHNwYW4+e3sgZmFjZXQubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gICAgPHZkci1kdDItY29sdW1uIFtoZWFkaW5nXT1cIidjb21tb24uY29kZScgfCB0cmFuc2xhdGVcIiBpZD1cImNvZGVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWZhY2V0PVwiaXRlbVwiPlxyXG4gICAgICAgICAgICB7eyBmYWNldC5jb2RlIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi52aXNpYmlsaXR5JyB8IHRyYW5zbGF0ZVwiIGlkPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZmFjZXQ9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cImZhY2V0LmlzUHJpdmF0ZVwiIGNvbG9yVHlwZT1cIndhcm5pbmdcIj57e1xyXG4gICAgICAgICAgICAgICAgJ2NvbW1vbi5wcml2YXRlJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgIDx2ZHItY2hpcCAqbmdJZj1cIiFmYWNldC5pc1ByaXZhdGVcIiBjb2xvclR5cGU9XCJzdWNjZXNzXCI+e3tcclxuICAgICAgICAgICAgICAgICdjb21tb24ucHVibGljJyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvdmRyLWNoaXA+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NhdGFsb2cudmFsdWVzJyB8IHRyYW5zbGF0ZVwiIGlkPVwidmFsdWVzXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1mYWNldD1cIml0ZW1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZhY2V0LXZhbHVlcy1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLWNoaXBcclxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZmFjZXQudmFsdWVMaXN0Lml0ZW1zIHwgc2xpY2UgOiAwIDogZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSB8fCAzXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmFjZXRWYWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlGYWNldE5hbWVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPjwvdmRyLWZhY2V0LXZhbHVlLWNoaXA+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nSWY9XCJkaXNwbGF5TGltaXRbZmFjZXQuaWRdIDwgZmFjZXQudmFsdWVMaXN0LnRvdGFsSXRlbXMgJiYgKGRpc3BsYXlMaW1pdFtmYWNldC5pZF0gfHwgMCkgPT09IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAuLi4gKyB7eyBmYWNldC52YWx1ZUxpc3QudG90YWxJdGVtcyAtIGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGggfX1cclxuICAgICAgICAgICAgICAgIDwvdmRyLWNoaXA+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmFjZXQudmFsdWVMaXN0Lml0ZW1zLmxlbmd0aCA+IGluaXRpYWxMaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURpc3BsYXlMaW1pdChmYWNldClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZGlzcGxheUxpbWl0W2ZhY2V0LmlkXSB8fCAwKSA8IGZhY2V0LnZhbHVlTGlzdC5pdGVtcy5sZW5ndGg7IGVsc2UgY29sbGFwc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwicGx1c1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZhY2V0LnZhbHVlTGlzdC50b3RhbEl0ZW1zIC0gaW5pdGlhbExpbWl0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwibWludXNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jdXN0b20tZmllbGQtY29sdW1uICpuZ0Zvcj1cImxldCBjdXN0b21GaWVsZCBvZiBjdXN0b21GaWVsZHNcIiBbY3VzdG9tRmllbGRdPVwiY3VzdG9tRmllbGRcIiBbc29ydHNdPVwic29ydHNcIiAvPlxyXG48L3Zkci1kYXRhLXRhYmxlLTI+XHJcbiJdfQ==
|
package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs
CHANGED
|
@@ -118,10 +118,10 @@ export class GenerateProductVariantsComponent {
|
|
|
118
118
|
? this.variantFormValues[DEFAULT_VARIANT_CODE].get(prop)?.value
|
|
119
119
|
: value;
|
|
120
120
|
}
|
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GenerateProductVariantsComponent, deps: [{ token: i1.DataService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GenerateProductVariantsComponent, selector: "vdr-generate-product-variants", outputs: { variantsChange: "variantsChange" }, viewQueries: [{ propertyName: "groupNameInputs", predicate: ["optionGroupName"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div *ngFor=\"let group of optionGroups\" class=\"option-groups\">\r\n <div class=\"name\">\r\n <label>{{ 'catalog.option' | translate }}</label>\r\n <input\r\n #optionGroupName\r\n placeholder=\"e.g. Size\"\r\n clrInput\r\n [(ngModel)]=\"group.name\"\r\n name=\"name\"\r\n required\r\n (keydown.enter)=\"handleEnter($event, optionValueInputComponent)\"\r\n />\r\n </div>\r\n <div class=\"values\">\r\n <label>{{ 'catalog.option-values' | translate }}</label>\r\n <vdr-option-value-input\r\n #optionValueInputComponent\r\n [(ngModel)]=\"group.values\"\r\n (ngModelChange)=\"generateVariants()\"\r\n (edit)=\"generateVariants()\"\r\n [groupName]=\"group.name\"\r\n [disabled]=\"group.name === ''\"\r\n ></vdr-option-value-input>\r\n </div>\r\n <div class=\"remove-group\">\r\n <button\r\n class=\"button-small mt-2\"\r\n [title]=\"'catalog.remove-option' | translate\"\r\n (click)=\"removeOption(group.name)\"\r\n >\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<button class=\"button mb-2\" (click)=\"addOption()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-option' | translate }}\r\n</button>\r\n\r\n<ng-container *ngIf=\"stockLocations$ | async as stockLocations\">\r\n <clr-alert *ngIf=\"stockLocations.length === 0\" clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.no-stock-locations-available-on-current-channel' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <div class=\"form-grid mb-2\">\r\n <vdr-form-field *ngIf=\"stockLocations.length\" [label]=\"'catalog.add-stock-to-location' | translate\">\r\n <select [(ngModel)]=\"selectedStockLocationId\">\r\n <option *ngFor=\"let location of stockLocations\" [value]=\"location.id\">\r\n {{ location.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n\r\n <div class=\"variants-preview\" *ngIf=\"0 < stockLocations.length\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"1 < variants.length\">{{ 'common.create' | translate }}</th>\r\n <th *ngIf=\"1 < variants.length\">{{ 'catalog.variant' | translate }}</th>\r\n <th>{{ 'catalog.sku' | translate }}</th>\r\n <th>{{ 'catalog.price' | translate }}</th>\r\n <th>{{ 'catalog.stock-on-hand' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr\r\n *ngFor=\"let variant of variants; trackBy: trackByFn\"\r\n [class.disabled]=\"!variantFormValues[variant.id].value.enabled === false\"\r\n [formGroup]=\"variantFormValues[variant.id]\"\r\n >\r\n <td *ngIf=\"1 < variants.length\">\r\n <input type=\"checkbox\" formControlName=\"enabled\" clrCheckbox />\r\n </td>\r\n <td *ngIf=\"1 < variants.length\">\r\n {{ variant.values.join(' ') }}\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <input type=\"text\" formControlName=\"sku\" [placeholder]=\"'catalog.sku' | translate\" />\r\n </vdr-form-field>\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <vdr-currency-input\r\n formControlName=\"price\"\r\n [currencyCode]=\"currencyCode\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <input type=\"number\" formControlName=\"stock\" min=\"0\" step=\"1\" />\r\n </vdr-form-field>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block;margin-bottom:120px}.option-groups{display:flex}.values{flex:1;margin:0 6px}.remove-group{padding-top:18px}.variants-preview tr.disabled td{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}\n"], dependencies: [{ kind: "component", type: i3.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i3.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i3.ClrAlertText, selector: ".alert-text" }, { kind: "directive", type: i3.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: i3.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "directive", type: i3.ClrInput, selector: "[clrInput]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i1.CurrencyInputComponent, selector: "vdr-currency-input", inputs: ["disabled", "readonly", "value", "currencyCode"], outputs: ["valueChange"] }, { kind: "component", type: i1.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"], outputs: ["readOnlyToggleChange"] }, { kind: "directive", type: i1.FormFieldControlDirective, selector: "input, textarea, select, vdr-currency-input" }, { kind: "component", type: i5.OptionValueInputComponent, selector: "vdr-option-value-input", inputs: ["groupName", "options", "disabled"], outputs: ["add", "remove", "edit"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
123
123
|
}
|
|
124
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GenerateProductVariantsComponent, decorators: [{
|
|
125
125
|
type: Component,
|
|
126
126
|
args: [{ selector: 'vdr-generate-product-variants', template: "<div *ngFor=\"let group of optionGroups\" class=\"option-groups\">\r\n <div class=\"name\">\r\n <label>{{ 'catalog.option' | translate }}</label>\r\n <input\r\n #optionGroupName\r\n placeholder=\"e.g. Size\"\r\n clrInput\r\n [(ngModel)]=\"group.name\"\r\n name=\"name\"\r\n required\r\n (keydown.enter)=\"handleEnter($event, optionValueInputComponent)\"\r\n />\r\n </div>\r\n <div class=\"values\">\r\n <label>{{ 'catalog.option-values' | translate }}</label>\r\n <vdr-option-value-input\r\n #optionValueInputComponent\r\n [(ngModel)]=\"group.values\"\r\n (ngModelChange)=\"generateVariants()\"\r\n (edit)=\"generateVariants()\"\r\n [groupName]=\"group.name\"\r\n [disabled]=\"group.name === ''\"\r\n ></vdr-option-value-input>\r\n </div>\r\n <div class=\"remove-group\">\r\n <button\r\n class=\"button-small mt-2\"\r\n [title]=\"'catalog.remove-option' | translate\"\r\n (click)=\"removeOption(group.name)\"\r\n >\r\n <clr-icon shape=\"trash\"></clr-icon>\r\n </button>\r\n </div>\r\n</div>\r\n<button class=\"button mb-2\" (click)=\"addOption()\">\r\n <clr-icon shape=\"plus\"></clr-icon>\r\n {{ 'catalog.add-option' | translate }}\r\n</button>\r\n\r\n<ng-container *ngIf=\"stockLocations$ | async as stockLocations\">\r\n <clr-alert *ngIf=\"stockLocations.length === 0\" clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.no-stock-locations-available-on-current-channel' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n\r\n <div class=\"form-grid mb-2\">\r\n <vdr-form-field *ngIf=\"stockLocations.length\" [label]=\"'catalog.add-stock-to-location' | translate\">\r\n <select [(ngModel)]=\"selectedStockLocationId\">\r\n <option *ngFor=\"let location of stockLocations\" [value]=\"location.id\">\r\n {{ location.name }}\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n </div>\r\n\r\n <div class=\"variants-preview\" *ngIf=\"0 < stockLocations.length\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"1 < variants.length\">{{ 'common.create' | translate }}</th>\r\n <th *ngIf=\"1 < variants.length\">{{ 'catalog.variant' | translate }}</th>\r\n <th>{{ 'catalog.sku' | translate }}</th>\r\n <th>{{ 'catalog.price' | translate }}</th>\r\n <th>{{ 'catalog.stock-on-hand' | translate }}</th>\r\n </tr>\r\n </thead>\r\n <tr\r\n *ngFor=\"let variant of variants; trackBy: trackByFn\"\r\n [class.disabled]=\"!variantFormValues[variant.id].value.enabled === false\"\r\n [formGroup]=\"variantFormValues[variant.id]\"\r\n >\r\n <td *ngIf=\"1 < variants.length\">\r\n <input type=\"checkbox\" formControlName=\"enabled\" clrCheckbox />\r\n </td>\r\n <td *ngIf=\"1 < variants.length\">\r\n {{ variant.values.join(' ') }}\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <input type=\"text\" formControlName=\"sku\" [placeholder]=\"'catalog.sku' | translate\" />\r\n </vdr-form-field>\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <vdr-currency-input\r\n formControlName=\"price\"\r\n [currencyCode]=\"currencyCode\"\r\n ></vdr-currency-input>\r\n </vdr-form-field>\r\n </td>\r\n <td>\r\n <vdr-form-field>\r\n <input type=\"number\" formControlName=\"stock\" min=\"0\" step=\"1\" />\r\n </vdr-form-field>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:block;margin-bottom:120px}.option-groups{display:flex}.values{flex:1;margin:0 6px}.remove-group{padding-top:18px}.variants-preview tr.disabled td{background-color:var(--color-component-bg-100);color:var(--color-grey-400)}\n"] }]
|
|
127
127
|
}], ctorParameters: () => [{ type: i1.DataService }, { type: i2.FormBuilder }], propDecorators: { variantsChange: [{
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
130
130
|
type: ViewChildren,
|
|
131
131
|
args: ['optionGroupName', { read: ElementRef }]
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUdILDRCQUE0QixHQUcvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFJckMsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQW1CbkQsTUFBTSxPQUFPLGdDQUFnQztJQWlCekMsWUFDWSxXQUF3QixFQUN4QixXQUF3QjtRQUR4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUUzRSxpQkFBWSxHQUE4RSxFQUFFLENBQUM7UUFHN0Ysc0JBQWlCLEdBUWIsRUFBRSxDQUFDO1FBRVAsNEJBQXVCLEdBQWtCLElBQUksQ0FBQztJQUkzQyxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXO2FBQ2xDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtZQUNqQyxPQUFPLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLEdBQUc7YUFDWjtTQUNKLENBQUM7YUFDRCxzQkFBc0IsRUFBRTthQUN4QixTQUFTLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2FBQ3ZELElBQUksQ0FDRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRU4sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLENBQUM7WUFDN0QsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sTUFBTSxHQUFHLGdCQUFnQjtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO29CQUNqRCxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUM5QixPQUFPLEVBQUUsSUFBZTtvQkFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUNuRCxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ2hELEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztpQkFDdEQsQ0FBQyxDQUFDO2dCQUNILFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDZCxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ25ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxDQUFDLENBQUMsQ0FBQztvQkFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxDQUFDLENBQUMsQ0FBQztvQkFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ25ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUEyQztRQUNoRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBb0IsRUFBRSx5QkFBb0Q7UUFDbEYsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4Qix5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBZ0MsRUFBRSxXQUFtQztRQUN0RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RELE1BQU0sd0JBQXdCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQWdCLENBQUM7WUFDckUsSUFBSSx3QkFBd0IsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEUsd0JBQXdCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUE0QixDQUFDO2FBQ25FLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNyQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLG9FQUFvRTtZQUNwRSxlQUFlLEVBQUUsSUFBSSxDQUFDLHVCQUF3QjtTQUNqRCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZUFBZSxDQUNuQixTQUFpQixFQUNqQixJQUFPLEVBQ1AsS0FBNkI7UUFFN0IsT0FBTyxTQUFTLEtBQUssb0JBQW9CO1lBQ3JDLENBQUMsQ0FBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBZ0M7WUFDM0YsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoQixDQUFDOzhHQXhJUSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyxzTUFFQSxVQUFVLDZCQ3BDdkQsOHlJQXNHQTs7MkZEcEVhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDSSwrQkFBK0I7MEdBSy9CLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ2dELGVBQWU7c0JBQXJFLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VycmVuY3lDb2RlLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBHZXRTdG9ja0xvY2F0aW9uTGlzdERvY3VtZW50LFxyXG4gICAgR2V0U3RvY2tMb2NhdGlvbkxpc3RRdWVyeSxcclxuICAgIEl0ZW1PZixcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVBbGxDb21iaW5hdGlvbnMgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IERFRkFVTFRfVkFSSUFOVF9DT0RFID0gJ19fREVGQVVMVF9WQVJJQU5UX18nO1xyXG5leHBvcnQgdHlwZSBDcmVhdGVWYXJpYW50VmFsdWVzID0ge1xyXG4gICAgb3B0aW9uVmFsdWVzOiBzdHJpbmdbXTtcclxuICAgIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBza3U6IHN0cmluZztcclxuICAgIHByaWNlOiBudW1iZXI7XHJcbiAgICBzdG9jazogbnVtYmVyO1xyXG59O1xyXG5leHBvcnQgdHlwZSBDcmVhdGVQcm9kdWN0VmFyaWFudHNDb25maWcgPSB7XHJcbiAgICBncm91cHM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZXM6IHN0cmluZ1tdIH0+O1xyXG4gICAgdmFyaWFudHM6IENyZWF0ZVZhcmlhbnRWYWx1ZXNbXTtcclxuICAgIHN0b2NrTG9jYXRpb25JZDogc3RyaW5nO1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSB2YXJpYW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnPigpO1xyXG4gICAgQFZpZXdDaGlsZHJlbignb3B0aW9uR3JvdXBOYW1lJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGdyb3VwTmFtZUlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gICAgb3B0aW9uR3JvdXBzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWVzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgbG9ja2VkOiBib29sZWFuIH0+IH0+ID0gW107XHJcbiAgICBjdXJyZW5jeUNvZGU6IEN1cnJlbmN5Q29kZTtcclxuICAgIHZhcmlhbnRzOiBBcnJheTx7IGlkOiBzdHJpbmc7IHZhbHVlczogc3RyaW5nW10gfT47XHJcbiAgICB2YXJpYW50Rm9ybVZhbHVlczoge1xyXG4gICAgICAgIFtpZDogc3RyaW5nXTogRm9ybUdyb3VwPHtcclxuICAgICAgICAgICAgb3B0aW9uVmFsdWVzOiBGb3JtQ29udHJvbDxzdHJpbmdbXT47XHJcbiAgICAgICAgICAgIGVuYWJsZWQ6IEZvcm1Db250cm9sPGJvb2xlYW4+O1xyXG4gICAgICAgICAgICBwcmljZTogRm9ybUNvbnRyb2w8bnVtYmVyPjtcclxuICAgICAgICAgICAgc2t1OiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG4gICAgICAgICAgICBzdG9jazogRm9ybUNvbnRyb2w8bnVtYmVyPjtcclxuICAgICAgICB9PjtcclxuICAgIH0gPSB7fTtcclxuICAgIHN0b2NrTG9jYXRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0U3RvY2tMb2NhdGlvbkxpc3RRdWVyeSwgJ3N0b2NrTG9jYXRpb25zJz4+PjtcclxuICAgIHNlbGVjdGVkU3RvY2tMb2NhdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3MuZ2V0QWN0aXZlQ2hhbm5lbCgpLnNpbmdsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IGRhdGEuYWN0aXZlQ2hhbm5lbC5kZWZhdWx0Q3VycmVuY3lDb2RlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMkID0gdGhpcy5kYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucXVlcnkoR2V0U3RvY2tMb2NhdGlvbkxpc3REb2N1bWVudCwge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRha2U6IDk5OSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5yZWZldGNoT25DaGFubmVsQ2hhbmdlKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbSgoeyBzdG9ja0xvY2F0aW9ucyB9KSA9PiBzdG9ja0xvY2F0aW9ucy5pdGVtcylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b2NrTG9jYXRpb25JZCA9IGl0ZW1zWzBdLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUNoYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmdlbmVyYXRlVmFyaWFudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRPcHRpb24oKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25Hcm91cHMucHVzaCh7IG5hbWU6ICcnLCB2YWx1ZXM6IFtdIH0pO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25Hcm91cHMubGVuZ3RoIC0gMTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmdyb3VwTmFtZUlucHV0cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBpbnB1dD8uZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVPcHRpb24obmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25Hcm91cHMgPSB0aGlzLm9wdGlvbkdyb3Vwcy5maWx0ZXIoZyA9PiBnLm5hbWUgIT09IG5hbWUpO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVWYXJpYW50cygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlVmFyaWFudHMoKSB7XHJcbiAgICAgICAgY29uc3QgdG90YWxWYWx1ZXNDb3VudCA9IHRoaXMub3B0aW9uR3JvdXBzLnJlZHVjZSgoc3VtLCBncm91cCkgPT4gc3VtICsgZ3JvdXAudmFsdWVzLmxlbmd0aCwgMCk7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdG90YWxWYWx1ZXNDb3VudFxyXG4gICAgICAgICAgICA/IHRoaXMub3B0aW9uR3JvdXBzLm1hcChnID0+IGcudmFsdWVzLm1hcCh2ID0+IHYubmFtZSkpXHJcbiAgICAgICAgICAgIDogW1tERUZBVUxUX1ZBUklBTlRfQ09ERV1dO1xyXG4gICAgICAgIHRoaXMudmFyaWFudHMgPSBnZW5lcmF0ZUFsbENvbWJpbmF0aW9ucyhncm91cHMpLm1hcCh2YWx1ZXMgPT4gKHsgaWQ6IHZhbHVlcy5qb2luKCd8JyksIHZhbHVlcyB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMudmFyaWFudHMuZm9yRWFjaCgodmFyaWFudCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnZhcmlhbnRGb3JtVmFsdWVzW3ZhcmlhbnQuaWRdKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLm5vbk51bGxhYmxlLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZXM6IFt2YXJpYW50LnZhbHVlc10sXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSBhcyBib29sZWFuLFxyXG4gICAgICAgICAgICAgICAgICAgIHByaWNlOiB0aGlzLmNvcHlGcm9tRGVmYXVsdCh2YXJpYW50LmlkLCAncHJpY2UnLCAwKSxcclxuICAgICAgICAgICAgICAgICAgICBza3U6IHRoaXMuY29weUZyb21EZWZhdWx0KHZhcmlhbnQuaWQsICdza3UnLCAnJyksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2s6IHRoaXMuY29weUZyb21EZWZhdWx0KHZhcmlhbnQuaWQsICdzdG9jaycsIDApLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9ybUNoYW5nZSgpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3ByaWNlJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvcHlWYWx1ZXNUb1ByaXN0aW5lKCdwcmljZScsIGZvcm1Hcm91cC5nZXQoJ3ByaWNlJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3NrdScpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3B5VmFsdWVzVG9QcmlzdGluZSgnc2t1JywgZm9ybUdyb3VwLmdldCgnc2t1JykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3N0b2NrJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvcHlWYWx1ZXNUb1ByaXN0aW5lKCdzdG9jaycsIGZvcm1Hcm91cC5nZXQoJ3N0b2NrJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50Rm9ybVZhbHVlc1t2YXJpYW50LmlkXSA9IGZvcm1Hcm91cDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMub25Gb3JtQ2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZhcmlhbnQ6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZXM6IHN0cmluZ1tdIH0pIHtcclxuICAgICAgICByZXR1cm4gdmFyaWFudC52YWx1ZXMuam9pbignfCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBvcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50OiBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBvcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29weVZhbHVlc1RvUHJpc3RpbmUoZmllbGQ6ICdwcmljZScgfCAnc2t1JyB8ICdzdG9jaycsIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy52YXJpYW50Rm9ybVZhbHVlcykuZm9yRWFjaChmb3JtR3JvdXAgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nRm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdGb3JtQ29udHJvbCAmJiBjb3JyZXNwb25kaW5nRm9ybUNvbnRyb2wucHJpc3RpbmUpIHtcclxuICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmdGb3JtQ29udHJvbC5zZXRWYWx1ZShmb3JtQ29udHJvbC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb3JtQ2hhbmdlKCkge1xyXG4gICAgICAgIGNvbnN0IHZhcmlhbnRzVG9DcmVhdGUgPSB0aGlzLnZhcmlhbnRzXHJcbiAgICAgICAgICAgIC5tYXAodiA9PiB0aGlzLnZhcmlhbnRGb3JtVmFsdWVzW3YuaWRdLnZhbHVlIGFzIENyZWF0ZVZhcmlhbnRWYWx1ZXMpXHJcbiAgICAgICAgICAgIC5maWx0ZXIodiA9PiB2LmVuYWJsZWQpO1xyXG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5vcHRpb25Hcm91cHMubWFwKG9nID0+ICh7IG5hbWU6IG9nLm5hbWUsIHZhbHVlczogb2cudmFsdWVzLm1hcCh2ID0+IHYubmFtZSkgfSkpLFxyXG4gICAgICAgICAgICB2YXJpYW50czogdmFyaWFudHNUb0NyZWF0ZSxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgc3RvY2tMb2NhdGlvbklkOiB0aGlzLnNlbGVjdGVkU3RvY2tMb2NhdGlvbklkISxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvcHlGcm9tRGVmYXVsdDxUIGV4dGVuZHMga2V5b2YgQ3JlYXRlVmFyaWFudFZhbHVlcz4oXHJcbiAgICAgICAgdmFyaWFudElkOiBzdHJpbmcsXHJcbiAgICAgICAgcHJvcDogVCxcclxuICAgICAgICB2YWx1ZTogQ3JlYXRlVmFyaWFudFZhbHVlc1tUXSxcclxuICAgICk6IENyZWF0ZVZhcmlhbnRWYWx1ZXNbVF0ge1xyXG4gICAgICAgIHJldHVybiB2YXJpYW50SWQgIT09IERFRkFVTFRfVkFSSUFOVF9DT0RFXHJcbiAgICAgICAgICAgID8gKHRoaXMudmFyaWFudEZvcm1WYWx1ZXNbREVGQVVMVF9WQVJJQU5UX0NPREVdLmdldChwcm9wKT8udmFsdWUgYXMgQ3JlYXRlVmFyaWFudFZhbHVlc1tUXSlcclxuICAgICAgICAgICAgOiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCBncm91cCBvZiBvcHRpb25Hcm91cHNcIiBjbGFzcz1cIm9wdGlvbi1ncm91cHNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+XHJcbiAgICAgICAgPGxhYmVsPnt7ICdjYXRhbG9nLm9wdGlvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjb3B0aW9uR3JvdXBOYW1lXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBTaXplXCJcclxuICAgICAgICAgICAgY2xySW5wdXRcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJncm91cC5uYW1lXCJcclxuICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxyXG4gICAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVFbnRlcigkZXZlbnQsIG9wdGlvblZhbHVlSW5wdXRDb21wb25lbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XHJcbiAgICAgICAgPGxhYmVsPnt7ICdjYXRhbG9nLm9wdGlvbi12YWx1ZXMnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8dmRyLW9wdGlvbi12YWx1ZS1pbnB1dFxyXG4gICAgICAgICAgICAjb3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImdyb3VwLnZhbHVlc1wiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdlbmVyYXRlVmFyaWFudHMoKVwiXHJcbiAgICAgICAgICAgIChlZGl0KT1cImdlbmVyYXRlVmFyaWFudHMoKVwiXHJcbiAgICAgICAgICAgIFtncm91cE5hbWVdPVwiZ3JvdXAubmFtZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5uYW1lID09PSAnJ1wiXHJcbiAgICAgICAgPjwvdmRyLW9wdGlvbi12YWx1ZS1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlbW92ZS1ncm91cFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMlwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCInY2F0YWxvZy5yZW1vdmUtb3B0aW9uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVPcHRpb24oZ3JvdXAubmFtZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidHJhc2hcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YnV0dG9uIGNsYXNzPVwiYnV0dG9uIG1iLTJcIiAoY2xpY2spPVwiYWRkT3B0aW9uKClcIj5cclxuICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIj48L2Nsci1pY29uPlxyXG4gICAge3sgJ2NhdGFsb2cuYWRkLW9wdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuPC9idXR0b24+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic3RvY2tMb2NhdGlvbnMkIHwgYXN5bmMgYXMgc3RvY2tMb2NhdGlvbnNcIj5cclxuICAgIDxjbHItYWxlcnQgKm5nSWY9XCJzdG9ja0xvY2F0aW9ucy5sZW5ndGggPT09IDBcIiBjbHJBbGVydFR5cGU9XCJ3YXJuaW5nXCIgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5uby1zdG9jay1sb2NhdGlvbnMtYXZhaWxhYmxlLW9uLWN1cnJlbnQtY2hhbm5lbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICA8L2Nsci1hbGVydD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncmlkIG1iLTJcIj5cclxuICAgICAgICA8dmRyLWZvcm0tZmllbGQgKm5nSWY9XCJzdG9ja0xvY2F0aW9ucy5sZW5ndGhcIiBbbGFiZWxdPVwiJ2NhdGFsb2cuYWRkLXN0b2NrLXRvLWxvY2F0aW9uJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdG9ja0xvY2F0aW9uSWRcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIHN0b2NrTG9jYXRpb25zXCIgW3ZhbHVlXT1cImxvY2F0aW9uLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYXRpb24ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidmFyaWFudHMtcHJldmlld1wiICpuZ0lmPVwiMCA8IHN0b2NrTG9jYXRpb25zLmxlbmd0aFwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIxIDwgdmFyaWFudHMubGVuZ3RoXCI+e3sgJ2NvbW1vbi5jcmVhdGUnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIxIDwgdmFyaWFudHMubGVuZ3RoXCI+e3sgJ2NhdGFsb2cudmFyaWFudCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ2NhdGFsb2cucHJpY2UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFyaWFudCBvZiB2YXJpYW50czsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhdmFyaWFudEZvcm1WYWx1ZXNbdmFyaWFudC5pZF0udmFsdWUuZW5hYmxlZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJ2YXJpYW50Rm9ybVZhbHVlc1t2YXJpYW50LmlkXVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIjEgPCB2YXJpYW50cy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIGNsckNoZWNrYm94IC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiMSA8IHZhcmlhbnRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQudmFsdWVzLmpvaW4oJyAnKSB9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInNrdVwiIFtwbGFjZWhvbGRlcl09XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwiY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWN1cnJlbmN5LWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJzdG9ja1wiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUdILDRCQUE0QixHQUcvQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFJckMsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztBQW1CbkQsTUFBTSxPQUFPLGdDQUFnQztJQWlCekMsWUFDWSxXQUF3QixFQUN4QixXQUF3QjtRQUR4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCMUIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUUzRSxpQkFBWSxHQUE4RSxFQUFFLENBQUM7UUFHN0Ysc0JBQWlCLEdBUWIsRUFBRSxDQUFDO1FBRVAsNEJBQXVCLEdBQWtCLElBQUksQ0FBQztJQUkzQyxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMs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ZW50UmVmLCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VycmVuY3lDb2RlLFxyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBHZXRTdG9ja0xvY2F0aW9uTGlzdERvY3VtZW50LFxyXG4gICAgR2V0U3RvY2tMb2NhdGlvbkxpc3RRdWVyeSxcclxuICAgIEl0ZW1PZixcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVBbGxDb21iaW5hdGlvbnMgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IERFRkFVTFRfVkFSSUFOVF9DT0RFID0gJ19fREVGQVVMVF9WQVJJQU5UX18nO1xyXG5leHBvcnQgdHlwZSBDcmVhdGVWYXJpYW50VmFsdWVzID0ge1xyXG4gICAgb3B0aW9uVmFsdWVzOiBzdHJpbmdbXTtcclxuICAgIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBza3U6IHN0cmluZztcclxuICAgIHByaWNlOiBudW1iZXI7XHJcbiAgICBzdG9jazogbnVtYmVyO1xyXG59O1xyXG5leHBvcnQgdHlwZSBDcmVhdGVQcm9kdWN0VmFyaWFudHNDb25maWcgPSB7XHJcbiAgICBncm91cHM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZXM6IHN0cmluZ1tdIH0+O1xyXG4gICAgdmFyaWFudHM6IENyZWF0ZVZhcmlhbnRWYWx1ZXNbXTtcclxuICAgIHN0b2NrTG9jYXRpb25JZDogc3RyaW5nO1xyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSB2YXJpYW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3JlYXRlUHJvZHVjdFZhcmlhbnRzQ29uZmlnPigpO1xyXG4gICAgQFZpZXdDaGlsZHJlbignb3B0aW9uR3JvdXBOYW1lJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGdyb3VwTmFtZUlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG4gICAgb3B0aW9uR3JvdXBzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWVzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgbG9ja2VkOiBib29sZWFuIH0+IH0+ID0gW107XHJcbiAgICBjdXJyZW5jeUNvZGU6IEN1cnJlbmN5Q29kZTtcclxuICAgIHZhcmlhbnRzOiBBcnJheTx7IGlkOiBzdHJpbmc7IHZhbHVlczogc3RyaW5nW10gfT47XHJcbiAgICB2YXJpYW50Rm9ybVZhbHVlczoge1xyXG4gICAgICAgIFtpZDogc3RyaW5nXTogRm9ybUdyb3VwPHtcclxuICAgICAgICAgICAgb3B0aW9uVmFsdWVzOiBGb3JtQ29udHJvbDxzdHJpbmdbXT47XHJcbiAgICAgICAgICAgIGVuYWJsZWQ6IEZvcm1Db250cm9sPGJvb2xlYW4+O1xyXG4gICAgICAgICAgICBwcmljZTogRm9ybUNvbnRyb2w8bnVtYmVyPjtcclxuICAgICAgICAgICAgc2t1OiBGb3JtQ29udHJvbDxzdHJpbmc+O1xyXG4gICAgICAgICAgICBzdG9jazogRm9ybUNvbnRyb2w8bnVtYmVyPjtcclxuICAgICAgICB9PjtcclxuICAgIH0gPSB7fTtcclxuICAgIHN0b2NrTG9jYXRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0U3RvY2tMb2NhdGlvbkxpc3RRdWVyeSwgJ3N0b2NrTG9jYXRpb25zJz4+PjtcclxuICAgIHNlbGVjdGVkU3RvY2tMb2NhdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3MuZ2V0QWN0aXZlQ2hhbm5lbCgpLnNpbmdsZSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IGRhdGEuYWN0aXZlQ2hhbm5lbC5kZWZhdWx0Q3VycmVuY3lDb2RlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMkID0gdGhpcy5kYXRhU2VydmljZVxyXG4gICAgICAgICAgICAucXVlcnkoR2V0U3RvY2tMb2NhdGlvbkxpc3REb2N1bWVudCwge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRha2U6IDk5OSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5yZWZldGNoT25DaGFubmVsQ2hhbmdlKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbSgoeyBzdG9ja0xvY2F0aW9ucyB9KSA9PiBzdG9ja0xvY2F0aW9ucy5pdGVtcylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YXAoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0b2NrTG9jYXRpb25JZCA9IGl0ZW1zWzBdLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRm9ybUNoYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmdlbmVyYXRlVmFyaWFudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRPcHRpb24oKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25Hcm91cHMucHVzaCh7IG5hbWU6ICcnLCB2YWx1ZXM6IFtdIH0pO1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcHRpb25Hcm91cHMubGVuZ3RoIC0gMTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmdyb3VwTmFtZUlucHV0cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBpbnB1dD8uZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVPcHRpb24obmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25Hcm91cHMgPSB0aGlzLm9wdGlvbkdyb3Vwcy5maWx0ZXIoZyA9PiBnLm5hbWUgIT09IG5hbWUpO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVWYXJpYW50cygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdlbmVyYXRlVmFyaWFudHMoKSB7XHJcbiAgICAgICAgY29uc3QgdG90YWxWYWx1ZXNDb3VudCA9IHRoaXMub3B0aW9uR3JvdXBzLnJlZHVjZSgoc3VtLCBncm91cCkgPT4gc3VtICsgZ3JvdXAudmFsdWVzLmxlbmd0aCwgMCk7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdG90YWxWYWx1ZXNDb3VudFxyXG4gICAgICAgICAgICA/IHRoaXMub3B0aW9uR3JvdXBzLm1hcChnID0+IGcudmFsdWVzLm1hcCh2ID0+IHYubmFtZSkpXHJcbiAgICAgICAgICAgIDogW1tERUZBVUxUX1ZBUklBTlRfQ09ERV1dO1xyXG4gICAgICAgIHRoaXMudmFyaWFudHMgPSBnZW5lcmF0ZUFsbENvbWJpbmF0aW9ucyhncm91cHMpLm1hcCh2YWx1ZXMgPT4gKHsgaWQ6IHZhbHVlcy5qb2luKCd8JyksIHZhbHVlcyB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMudmFyaWFudHMuZm9yRWFjaCgodmFyaWFudCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLnZhcmlhbnRGb3JtVmFsdWVzW3ZhcmlhbnQuaWRdKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLm5vbk51bGxhYmxlLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZXM6IFt2YXJpYW50LnZhbHVlc10sXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSBhcyBib29sZWFuLFxyXG4gICAgICAgICAgICAgICAgICAgIHByaWNlOiB0aGlzLmNvcHlGcm9tRGVmYXVsdCh2YXJpYW50LmlkLCAncHJpY2UnLCAwKSxcclxuICAgICAgICAgICAgICAgICAgICBza3U6IHRoaXMuY29weUZyb21EZWZhdWx0KHZhcmlhbnQuaWQsICdza3UnLCAnJyksXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2s6IHRoaXMuY29weUZyb21EZWZhdWx0KHZhcmlhbnQuaWQsICdzdG9jaycsIDApLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uRm9ybUNoYW5nZSgpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3ByaWNlJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvcHlWYWx1ZXNUb1ByaXN0aW5lKCdwcmljZScsIGZvcm1Hcm91cC5nZXQoJ3ByaWNlJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3NrdScpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3B5VmFsdWVzVG9QcmlzdGluZSgnc2t1JywgZm9ybUdyb3VwLmdldCgnc2t1JykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3N0b2NrJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvcHlWYWx1ZXNUb1ByaXN0aW5lKCdzdG9jaycsIGZvcm1Hcm91cC5nZXQoJ3N0b2NrJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50Rm9ybVZhbHVlc1t2YXJpYW50LmlkXSA9IGZvcm1Hcm91cDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMub25Gb3JtQ2hhbmdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIHZhcmlhbnQ6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZXM6IHN0cmluZ1tdIH0pIHtcclxuICAgICAgICByZXR1cm4gdmFyaWFudC52YWx1ZXMuam9pbignfCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBvcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50OiBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICBvcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29weVZhbHVlc1RvUHJpc3RpbmUoZmllbGQ6ICdwcmljZScgfCAnc2t1JyB8ICdzdG9jaycsIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy52YXJpYW50Rm9ybVZhbHVlcykuZm9yRWFjaChmb3JtR3JvdXAgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb3JyZXNwb25kaW5nRm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdGb3JtQ29udHJvbCAmJiBjb3JyZXNwb25kaW5nRm9ybUNvbnRyb2wucHJpc3RpbmUpIHtcclxuICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmdGb3JtQ29udHJvbC5zZXRWYWx1ZShmb3JtQ29udHJvbC52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb3JtQ2hhbmdlKCkge1xyXG4gICAgICAgIGNvbnN0IHZhcmlhbnRzVG9DcmVhdGUgPSB0aGlzLnZhcmlhbnRzXHJcbiAgICAgICAgICAgIC5tYXAodiA9PiB0aGlzLnZhcmlhbnRGb3JtVmFsdWVzW3YuaWRdLnZhbHVlIGFzIENyZWF0ZVZhcmlhbnRWYWx1ZXMpXHJcbiAgICAgICAgICAgIC5maWx0ZXIodiA9PiB2LmVuYWJsZWQpO1xyXG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgIGdyb3VwczogdGhpcy5vcHRpb25Hcm91cHMubWFwKG9nID0+ICh7IG5hbWU6IG9nLm5hbWUsIHZhbHVlczogb2cudmFsdWVzLm1hcCh2ID0+IHYubmFtZSkgfSkpLFxyXG4gICAgICAgICAgICB2YXJpYW50czogdmFyaWFudHNUb0NyZWF0ZSxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgc3RvY2tMb2NhdGlvbklkOiB0aGlzLnNlbGVjdGVkU3RvY2tMb2NhdGlvbklkISxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNvcHlGcm9tRGVmYXVsdDxUIGV4dGVuZHMga2V5b2YgQ3JlYXRlVmFyaWFudFZhbHVlcz4oXHJcbiAgICAgICAgdmFyaWFudElkOiBzdHJpbmcsXHJcbiAgICAgICAgcHJvcDogVCxcclxuICAgICAgICB2YWx1ZTogQ3JlYXRlVmFyaWFudFZhbHVlc1tUXSxcclxuICAgICk6IENyZWF0ZVZhcmlhbnRWYWx1ZXNbVF0ge1xyXG4gICAgICAgIHJldHVybiB2YXJpYW50SWQgIT09IERFRkFVTFRfVkFSSUFOVF9DT0RFXHJcbiAgICAgICAgICAgID8gKHRoaXMudmFyaWFudEZvcm1WYWx1ZXNbREVGQVVMVF9WQVJJQU5UX0NPREVdLmdldChwcm9wKT8udmFsdWUgYXMgQ3JlYXRlVmFyaWFudFZhbHVlc1tUXSlcclxuICAgICAgICAgICAgOiB2YWx1ZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCBncm91cCBvZiBvcHRpb25Hcm91cHNcIiBjbGFzcz1cIm9wdGlvbi1ncm91cHNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+XHJcbiAgICAgICAgPGxhYmVsPnt7ICdjYXRhbG9nLm9wdGlvbicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAjb3B0aW9uR3JvdXBOYW1lXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBTaXplXCJcclxuICAgICAgICAgICAgY2xySW5wdXRcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJncm91cC5uYW1lXCJcclxuICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxyXG4gICAgICAgICAgICByZXF1aXJlZFxyXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVFbnRlcigkZXZlbnQsIG9wdGlvblZhbHVlSW5wdXRDb21wb25lbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidmFsdWVzXCI+XHJcbiAgICAgICAgPGxhYmVsPnt7ICdjYXRhbG9nLm9wdGlvbi12YWx1ZXMnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8dmRyLW9wdGlvbi12YWx1ZS1pbnB1dFxyXG4gICAgICAgICAgICAjb3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudFxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImdyb3VwLnZhbHVlc1wiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdlbmVyYXRlVmFyaWFudHMoKVwiXHJcbiAgICAgICAgICAgIChlZGl0KT1cImdlbmVyYXRlVmFyaWFudHMoKVwiXHJcbiAgICAgICAgICAgIFtncm91cE5hbWVdPVwiZ3JvdXAubmFtZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJncm91cC5uYW1lID09PSAnJ1wiXHJcbiAgICAgICAgPjwvdmRyLW9wdGlvbi12YWx1ZS1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlbW92ZS1ncm91cFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMlwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCInY2F0YWxvZy5yZW1vdmUtb3B0aW9uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVPcHRpb24oZ3JvdXAubmFtZSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidHJhc2hcIj48L2Nsci1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YnV0dG9uIGNsYXNzPVwiYnV0dG9uIG1iLTJcIiAoY2xpY2spPVwiYWRkT3B0aW9uKClcIj5cclxuICAgIDxjbHItaWNvbiBzaGFwZT1cInBsdXNcIj48L2Nsci1pY29uPlxyXG4gICAge3sgJ2NhdGFsb2cuYWRkLW9wdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuPC9idXR0b24+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic3RvY2tMb2NhdGlvbnMkIHwgYXN5bmMgYXMgc3RvY2tMb2NhdGlvbnNcIj5cclxuICAgIDxjbHItYWxlcnQgKm5nSWY9XCJzdG9ja0xvY2F0aW9ucy5sZW5ndGggPT09IDBcIiBjbHJBbGVydFR5cGU9XCJ3YXJuaW5nXCIgW2NsckFsZXJ0Q2xvc2FibGVdPVwiZmFsc2VcIiBjbGFzcz1cIlwiPlxyXG4gICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5uby1zdG9jay1sb2NhdGlvbnMtYXZhaWxhYmxlLW9uLWN1cnJlbnQtY2hhbm5lbCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICA8L2Nsci1hbGVydD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncmlkIG1iLTJcIj5cclxuICAgICAgICA8dmRyLWZvcm0tZmllbGQgKm5nSWY9XCJzdG9ja0xvY2F0aW9ucy5sZW5ndGhcIiBbbGFiZWxdPVwiJ2NhdGFsb2cuYWRkLXN0b2NrLXRvLWxvY2F0aW9uJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRTdG9ja0xvY2F0aW9uSWRcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIHN0b2NrTG9jYXRpb25zXCIgW3ZhbHVlXT1cImxvY2F0aW9uLmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYXRpb24ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidmFyaWFudHMtcHJldmlld1wiICpuZ0lmPVwiMCA8IHN0b2NrTG9jYXRpb25zLmxlbmd0aFwiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIxIDwgdmFyaWFudHMubGVuZ3RoXCI+e3sgJ2NvbW1vbi5jcmVhdGUnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIxIDwgdmFyaWFudHMubGVuZ3RoXCI+e3sgJ2NhdGFsb2cudmFyaWFudCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAnY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ2NhdGFsb2cucHJpY2UnIHwgdHJhbnNsYXRlIH19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3sgJ2NhdGFsb2cuc3RvY2stb24taGFuZCcgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFyaWFudCBvZiB2YXJpYW50czsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhdmFyaWFudEZvcm1WYWx1ZXNbdmFyaWFudC5pZF0udmFsdWUuZW5hYmxlZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJ2YXJpYW50Rm9ybVZhbHVlc1t2YXJpYW50LmlkXVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIjEgPCB2YXJpYW50cy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiIGNsckNoZWNrYm94IC8+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiMSA8IHZhcmlhbnRzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHZhcmlhbnQudmFsdWVzLmpvaW4oJyAnKSB9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInNrdVwiIFtwbGFjZWhvbGRlcl09XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItY3VycmVuY3ktaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeUNvZGVdPVwiY3VycmVuY3lDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWN1cnJlbmN5LWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJzdG9ja1wiIG1pbj1cIjBcIiBzdGVwPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs
CHANGED
|
@@ -90,11 +90,11 @@ export class MoveCollectionsDialogComponent {
|
|
|
90
90
|
}
|
|
91
91
|
this.expandedIds$.next(expandedIds);
|
|
92
92
|
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MoveCollectionsDialogComponent, deps: [{ token: i1.DataService }, { token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MoveCollectionsDialogComponent, selector: "vdr-move-collections-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.move-collections' | translate }}\r\n</ng-template>\r\n<vdr-collection-data-table\r\n class=\"mt-2\"\r\n id=\"move-collection-list\"\r\n [items]=\"items$ | async\"\r\n [subCollections]=\"subCollections$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"currentPage$.next($event)\"\r\n (itemsPerPageChange)=\"itemsPerPage$.next($event)\"\r\n>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-collection=\"item\">\r\n {{ collection.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-collection=\"item\" let-depth=\"depth\">\r\n <div [ngClass]=\"'indent-' + depth\"></div>\r\n <clr-icon\r\n class=\"child-arrow\"\r\n [class.transparent]=\"depth === 0\"\r\n shape=\"child-arrow\"\r\n *ngIf=\"!collection.children?.length && collection.parentId !== '__'\"\r\n ></clr-icon>\r\n <button\r\n class=\"icon-button folder-button\"\r\n *ngIf=\"collection.children?.length\"\r\n (click)=\"toggleExpanded(collection)\"\r\n >\r\n <clr-icon shape=\"folder\" *ngIf=\"!expandedIds.includes(collection.id)\"></clr-icon>\r\n <clr-icon shape=\"folder-open\" *ngIf=\"expandedIds.includes(collection.id)\"></clr-icon>\r\n </button>\r\n <button class=\"icon-button folder-button\" *ngIf=\"collection.parentId === '__'\" disabled>\r\n <clr-icon shape=\"folder\" class=\"is-solid\"></clr-icon>\r\n </button>\r\n <button class=\"button-ghost\" (click)=\"resolveWith(collection)\">\r\n <span>{{ 'catalog.move-collection-to' | translate : {name: collection.name} }}</span>\r\n </button>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.breadcrumb' | translate\" id=\"breadcrumb\">\r\n <ng-template let-collection=\"item\">\r\n <div class=\"breadcrumb\">\r\n <ng-container *ngIf=\"collection | collectionBreadcrumb as breadcrumbs\">\r\n <ng-container *ngIf=\"breadcrumbs.length\">\r\n <div *ngFor=\"let item of breadcrumbs\">\r\n <span class=\"separator\">/</span>{{ item.name }}\r\n </div>\r\n </ng-container>\r\n <span class=\"separator\" *ngIf=\"!breadcrumbs.length\">/</span>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.slug' | translate\" id=\"slug\">\r\n <ng-template let-collection=\"item\">\r\n {{ collection.slug }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-collection-data-table>\r\n", styles: ["", ":host{--indent-spacing: 18px}.indent-1{padding-inline-start:var(--indent-spacing)}.indent-2{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4,.indent-5,.indent-6,.indent-7,.indent-8,.indent-9{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow{margin:1px 6px}.child-arrow.transparent{opacity:0}.breadcrumb{display:flex}.separator{color:var(--color-weight-500);margin:0 3px}\n"], dependencies: [{ kind: "directive", type: i2.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i1.DataTable2ColumnComponent, selector: "vdr-dt2-column", inputs: ["id", "expand", "heading", "align", "sort", "optional", "hiddenByDefault", "orderable"], exportAs: ["row"] }, { kind: "component", type: i1.DataTable2SearchComponent, selector: "vdr-dt2-search", inputs: ["searchTermControl", "searchTermPlaceholder"] }, { kind: "component", type: i4.CollectionDataTableComponent, selector: "vdr-collection-data-table", inputs: ["subCollections"], outputs: ["changeOrder"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.CollectionBreadcrumbPipe, name: "collectionBreadcrumb" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MoveCollectionsDialogComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
98
|
args: [{ selector: 'vdr-move-collections-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.move-collections' | translate }}\r\n</ng-template>\r\n<vdr-collection-data-table\r\n class=\"mt-2\"\r\n id=\"move-collection-list\"\r\n [items]=\"items$ | async\"\r\n [subCollections]=\"subCollections$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n [currentPage]=\"currentPage$ | async\"\r\n (pageChange)=\"currentPage$.next($event)\"\r\n (itemsPerPageChange)=\"itemsPerPage$.next($event)\"\r\n>\r\n <vdr-dt2-search\r\n [searchTermControl]=\"searchTermControl\"\r\n [searchTermPlaceholder]=\"'common.search-by-name' | translate\"\r\n ></vdr-dt2-search>\r\n <vdr-dt2-column [heading]=\"'common.id' | translate\" id=\"id\" [hiddenByDefault]=\"true\">\r\n <ng-template let-collection=\"item\">\r\n {{ collection.id }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.name' | translate\" id=\"name\" [optional]=\"false\">\r\n <ng-template let-collection=\"item\" let-depth=\"depth\">\r\n <div [ngClass]=\"'indent-' + depth\"></div>\r\n <clr-icon\r\n class=\"child-arrow\"\r\n [class.transparent]=\"depth === 0\"\r\n shape=\"child-arrow\"\r\n *ngIf=\"!collection.children?.length && collection.parentId !== '__'\"\r\n ></clr-icon>\r\n <button\r\n class=\"icon-button folder-button\"\r\n *ngIf=\"collection.children?.length\"\r\n (click)=\"toggleExpanded(collection)\"\r\n >\r\n <clr-icon shape=\"folder\" *ngIf=\"!expandedIds.includes(collection.id)\"></clr-icon>\r\n <clr-icon shape=\"folder-open\" *ngIf=\"expandedIds.includes(collection.id)\"></clr-icon>\r\n </button>\r\n <button class=\"icon-button folder-button\" *ngIf=\"collection.parentId === '__'\" disabled>\r\n <clr-icon shape=\"folder\" class=\"is-solid\"></clr-icon>\r\n </button>\r\n <button class=\"button-ghost\" (click)=\"resolveWith(collection)\">\r\n <span>{{ 'catalog.move-collection-to' | translate : {name: collection.name} }}</span>\r\n </button>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.breadcrumb' | translate\" id=\"breadcrumb\">\r\n <ng-template let-collection=\"item\">\r\n <div class=\"breadcrumb\">\r\n <ng-container *ngIf=\"collection | collectionBreadcrumb as breadcrumbs\">\r\n <ng-container *ngIf=\"breadcrumbs.length\">\r\n <div *ngFor=\"let item of breadcrumbs\">\r\n <span class=\"separator\">/</span>{{ item.name }}\r\n </div>\r\n </ng-container>\r\n <span class=\"separator\" *ngIf=\"!breadcrumbs.length\">/</span>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </vdr-dt2-column>\r\n <vdr-dt2-column [heading]=\"'common.slug' | translate\" id=\"slug\">\r\n <ng-template let-collection=\"item\">\r\n {{ collection.slug }}\r\n </ng-template>\r\n </vdr-dt2-column>\r\n</vdr-collection-data-table>\r\n", styles: [":host{--indent-spacing: 18px}.indent-1{padding-inline-start:var(--indent-spacing)}.indent-2{padding-inline-start:calc(var(--indent-spacing) * 2)}.indent-3{padding-inline-start:calc(var(--indent-spacing) * 3)}.indent-4,.indent-5,.indent-6,.indent-7,.indent-8,.indent-9{padding-inline-start:calc(var(--indent-spacing) * 4)}.child-arrow{margin:1px 6px}.child-arrow.transparent{opacity:0}.breadcrumb{display:flex}.separator{color:var(--color-weight-500);margin:0 3px}\n"] }]
|
|
99
99
|
}], ctorParameters: () => [{ type: i1.DataService }, { type: i1.I18nService }] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9tb3ZlLWNvbGxlY3Rpb25zLWRpYWxvZy9tb3ZlLWNvbGxlY3Rpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTyw4QkFBOEI7SUFhdkMsWUFBb0IsV0FBd0IsRUFBVSxXQUF3QjtRQUExRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVDlFLHNCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR3hDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFZLENBQUM7UUFDdkMsZ0JBQVcsR0FBYSxF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cG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGlhbG9nLCBHZXRDb2xsZWN0aW9uTGlzdFF1ZXJ5LCBJMThuU2VydmljZSwgSXRlbU9mIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLW1vdmUtY29sbGVjdGlvbnMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC5zY3NzJywgJy4uL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QtY29tbW9uLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+XG57XG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4pID0+IHZvaWQ7XG4gICAgc2VhcmNoVGVybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIGl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+PjtcbiAgICB0b3RhbEl0ZW1zJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIGN1cnJlbnRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG4gICAgaXRlbXNQZXJQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMTApO1xuICAgIGV4cGFuZGVkSWRzJCA9IG5ldyBTdWJqZWN0PHN0cmluZ1tdPigpO1xuICAgIGV4cGFuZGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHN1YkNvbGxlY3Rpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBnZXRDb2xsZWN0aW9uc1Jlc3VsdCA9IHRoaXMuZGF0YVNlcnZpY2UuY29sbGVjdGlvbi5nZXRDb2xsZWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNlYXJjaFRlcm0kID0gdGhpcy5zZWFyY2hUZXJtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlJCA9IHRoaXMuY3VycmVudFBhZ2UkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSQgPSB0aGlzLml0ZW1zUGVyUGFnZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICAgICAgY29tYmluZUxhdGVzdChzZWFyY2hUZXJtJCwgY3VycmVudFBhZ2UkLCBpdGVtc1BlclBhZ2UkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoW3NlYXJjaFRlcm0sIGN1cnJlbnRQYWdlLCBpdGVtc1BlclBhZ2VdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxPbmx5ID0gc2VhcmNoVGVybSA9PT0gJyc7XG4gICAgICAgICAgICAgICAgZ2V0Q29sbGVjdGlvbnNSZXN1bHQucmVmLnJlZmV0Y2goe1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwOiAoY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2U6IGl0ZW1zUGVyUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsgY29udGFpbnM6IHNlYXJjaFRlcm0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbE9ubHksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvb3RDb2xsZWN0aW9uSWQkID0gdGhpcy5kYXRhU2VydmljZS5jb2xsZWN0aW9uXG4gICAgICAgICAgICAuZ2V0Q29sbGVjdGlvbnMoe1xuICAgICAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICAgICAgdG9wTGV2ZWxPbmx5OiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLmNvbGxlY3Rpb25zLml0ZW1zWzBdLnBhcmVudElkKTtcblxuICAgICAgICB0aGlzLml0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICBnZXRDb2xsZWN0aW9uc1Jlc3VsdC5tYXBTdHJlYW0oKHsgY29sbGVjdGlvbnMgfSkgPT4gY29sbGVjdGlvbnMpLFxuICAgICAgICAgICAgcm9vdENvbGxlY3Rpb25JZCQsXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2NvbGxlY3Rpb25zLCByb290Q29sbGVjdGlvbklkXSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLihyb290Q29sbGVjdGlvbklkXG4gICAgICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcm9vdENvbGxlY3Rpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaTE4blNlcnZpY2UudHJhbnNsYXRlKCdjYXRhbG9nLnJvb3QtY29sbGVjdGlvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1ZzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogJ19fJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBzYXRpc2ZpZXMgSXRlbU9mPEdldENvbGxlY3Rpb25MaXN0UXVlcnksICdjb2xsZWN0aW9ucyc+LFxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgICAgICAgLi4uY29sbGVjdGlvbnMuaXRlbXMsXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zJCA9IGdldENvbGxlY3Rpb25zUmVzdWx0Lm1hcFN0cmVhbShkYXRhID0+IGRhdGEuY29sbGVjdGlvbnMudG90YWxJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5zdWJDb2xsZWN0aW9ucyQgPSB0aGlzLmV4cGFuZGVkSWRzJC5waXBlKFxuICAgICAgICAgICAgdGFwKHZhbCA9PiAodGhpcy5leHBhbmRlZElkcyA9IHZhbCkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKGlkcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY29sbGVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25zKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlOiA5OTksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiB7IGluOiBpZHMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLmNvbGxlY3Rpb25zLml0ZW1zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZGVkKGNvbGxlY3Rpb246IEl0ZW1PZjxHZXRDb2xsZWN0aW9uTGlzdFF1ZXJ5LCAnY29sbGVjdGlvbnMnPikge1xuICAgICAgICBsZXQgZXhwYW5kZWRJZHMgPSB0aGlzLmV4cGFuZGVkSWRzO1xuICAgICAgICBpZiAoIWV4cGFuZGVkSWRzLmluY2x1ZGVzKGNvbGxlY3Rpb24uaWQpKSB7XG4gICAgICAgICAgICBleHBhbmRlZElkcy5wdXNoKGNvbGxlY3Rpb24uaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwYW5kZWRJZHMgPSBleHBhbmRlZElkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGNvbGxlY3Rpb24uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhwYW5kZWRJZHMkLm5leHQoZXhwYW5kZWRJZHMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIHt7ICdjYXRhbG9nLm1vdmUtY29sbGVjdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjx2ZHItY29sbGVjdGlvbi1kYXRhLXRhYmxlXHJcbiAgICBjbGFzcz1cIm10LTJcIlxyXG4gICAgaWQ9XCJtb3ZlLWNvbGxlY3Rpb24tbGlzdFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW3N1YkNvbGxlY3Rpb25zXT1cInN1YkNvbGxlY3Rpb25zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cImN1cnJlbnRQYWdlJC5uZXh0KCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJpdGVtc1BlclBhZ2UkLm5leHQoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgIFtzZWFyY2hUZXJtQ29udHJvbF09XCJzZWFyY2hUZXJtQ29udHJvbFwiXHJcbiAgICAgICAgW3NlYXJjaFRlcm1QbGFjZWhvbGRlcl09XCInY29tbW9uLnNlYXJjaC1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICA+PC92ZHItZHQyLXNlYXJjaD5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWNvbGxlY3Rpb249XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbGxlY3Rpb24uaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb2xsZWN0aW9uPVwiaXRlbVwiIGxldC1kZXB0aD1cImRlcHRoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ2luZGVudC0nICsgZGVwdGhcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGNsci1pY29uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaWxkLWFycm93XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy50cmFuc3BhcmVudF09XCJkZXB0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgICBzaGFwZT1cImNoaWxkLWFycm93XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNvbGxlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiBjb2xsZWN0aW9uLnBhcmVudElkICE9PSAnX18nXCJcclxuICAgICAgICAgICAgPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b24gZm9sZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbGxlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoY29sbGVjdGlvbilcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJmb2xkZXJcIiAqbmdJZj1cIiFleHBhbmRlZElkcy5pbmNsdWRlcyhjb2xsZWN0aW9uLmlkKVwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJmb2xkZXItb3BlblwiICpuZ0lmPVwiZXhwYW5kZWRJZHMuaW5jbHVkZXMoY29sbGVjdGlvbi5pZClcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uIGZvbGRlci1idXR0b25cIiAqbmdJZj1cImNvbGxlY3Rpb24ucGFyZW50SWQgPT09ICdfXydcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImZvbGRlclwiIGNsYXNzPVwiaXMtc29saWRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1naG9zdFwiIChjbGljayk9XCJyZXNvbHZlV2l0aChjb2xsZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgJ2NhdGFsb2cubW92ZS1jb2xsZWN0aW9uLXRvJyB8IHRyYW5zbGF0ZSA6IHtuYW1lOiBjb2xsZWN0aW9uLm5hbWV9IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmJyZWFkY3J1bWInIHwgdHJhbnNsYXRlXCIgaWQ9XCJicmVhZGNydW1iXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb2xsZWN0aW9uPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYlwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbGxlY3Rpb24gfCBjb2xsZWN0aW9uQnJlYWRjcnVtYiBhcyBicmVhZGNydW1ic1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZGNydW1icy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBicmVhZGNydW1ic1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj4vPC9zcGFuPnt7IGl0ZW0ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiICpuZ0lmPVwiIWJyZWFkY3J1bWJzLmxlbmd0aFwiPi88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5zbHVnJyB8IHRyYW5zbGF0ZVwiIGlkPVwic2x1Z1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29sbGVjdGlvbj1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgY29sbGVjdGlvbi5zbHVnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbjwvdmRyLWNvbGxlY3Rpb24tZGF0YS10YWJsZT5cclxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9tb3ZlLWNvbGxlY3Rpb25zLWRpYWxvZy9tb3ZlLWNvbGxlY3Rpb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUXBHLE1BQU0sT0FBTyw4QkFBOEI7SUFhdkMsWUFBb0IsV0FBd0IsRUFBVSxXQUF3QjtRQUExRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVDlFLHNCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR3hDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFZLENBQUM7UUFDdkMsZ0JBQVcsR0FBYSxF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cG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGlhbG9nLCBHZXRDb2xsZWN0aW9uTGlzdFF1ZXJ5LCBJMThuU2VydmljZSwgSXRlbU9mIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLW1vdmUtY29sbGVjdGlvbnMtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudC5zY3NzJywgJy4uL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QtY29tbW9uLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+XG57XG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4pID0+IHZvaWQ7XG4gICAgc2VhcmNoVGVybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgIGl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+PjtcbiAgICB0b3RhbEl0ZW1zJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIGN1cnJlbnRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMSk7XG4gICAgaXRlbXNQZXJQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMTApO1xuICAgIGV4cGFuZGVkSWRzJCA9IG5ldyBTdWJqZWN0PHN0cmluZ1tdPigpO1xuICAgIGV4cGFuZGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHN1YkNvbGxlY3Rpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxJdGVtT2Y8R2V0Q29sbGVjdGlvbkxpc3RRdWVyeSwgJ2NvbGxlY3Rpb25zJz4+PjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBnZXRDb2xsZWN0aW9uc1Jlc3VsdCA9IHRoaXMuZGF0YVNlcnZpY2UuY29sbGVjdGlvbi5nZXRDb2xsZWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNlYXJjaFRlcm0kID0gdGhpcy5zZWFyY2hUZXJtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlJCA9IHRoaXMuY3VycmVudFBhZ2UkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgIGNvbnN0IGl0ZW1zUGVyUGFnZSQgPSB0aGlzLml0ZW1zUGVyUGFnZSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICAgICAgY29tYmluZUxhdGVzdChzZWFyY2hUZXJtJCwgY3VycmVudFBhZ2UkLCBpdGVtc1BlclBhZ2UkKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoW3NlYXJjaFRlcm0sIGN1cnJlbnRQYWdlLCBpdGVtc1BlclBhZ2VdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxPbmx5ID0gc2VhcmNoVGVybSA9PT0gJyc7XG4gICAgICAgICAgICAgICAgZ2V0Q29sbGVjdGlvbnNSZXN1bHQucmVmLnJlZmV0Y2goe1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwOiAoY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2U6IGl0ZW1zUGVyUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHsgY29udGFpbnM6IHNlYXJjaFRlcm0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3BMZXZlbE9ubHksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvb3RDb2xsZWN0aW9uSWQkID0gdGhpcy5kYXRhU2VydmljZS5jb2xsZWN0aW9uXG4gICAgICAgICAgICAuZ2V0Q29sbGVjdGlvbnMoe1xuICAgICAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICAgICAgdG9wTGV2ZWxPbmx5OiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLmNvbGxlY3Rpb25zLml0ZW1zWzBdLnBhcmVudElkKTtcblxuICAgICAgICB0aGlzLml0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICBnZXRDb2xsZWN0aW9uc1Jlc3VsdC5tYXBTdHJlYW0oKHsgY29sbGVjdGlvbnMgfSkgPT4gY29sbGVjdGlvbnMpLFxuICAgICAgICAgICAgcm9vdENvbGxlY3Rpb25JZCQsXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2NvbGxlY3Rpb25zLCByb290Q29sbGVjdGlvbklkXSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLihyb290Q29sbGVjdGlvbklkXG4gICAgICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcm9vdENvbGxlY3Rpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuaTE4blNlcnZpY2UudHJhbnNsYXRlKCdjYXRhbG9nLnJvb3QtY29sbGVjdGlvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1ZzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZDogJ19fJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZWRBc3NldDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFkY3J1bWJzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEF0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBzYXRpc2ZpZXMgSXRlbU9mPEdldENvbGxlY3Rpb25MaXN0UXVlcnksICdjb2xsZWN0aW9ucyc+LFxuICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgICAgICAgLi4uY29sbGVjdGlvbnMuaXRlbXMsXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zJCA9IGdldENvbGxlY3Rpb25zUmVzdWx0Lm1hcFN0cmVhbShkYXRhID0+IGRhdGEuY29sbGVjdGlvbnMudG90YWxJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5zdWJDb2xsZWN0aW9ucyQgPSB0aGlzLmV4cGFuZGVkSWRzJC5waXBlKFxuICAgICAgICAgICAgdGFwKHZhbCA9PiAodGhpcy5leHBhbmRlZElkcyA9IHZhbCkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKGlkcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY29sbGVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbGxlY3Rpb25zKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlOiA5OTksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiB7IGluOiBpZHMgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXBTdHJlYW0oZGF0YSA9PiBkYXRhLmNvbGxlY3Rpb25zLml0ZW1zKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZGVkKGNvbGxlY3Rpb246IEl0ZW1PZjxHZXRDb2xsZWN0aW9uTGlzdFF1ZXJ5LCAnY29sbGVjdGlvbnMnPikge1xuICAgICAgICBsZXQgZXhwYW5kZWRJZHMgPSB0aGlzLmV4cGFuZGVkSWRzO1xuICAgICAgICBpZiAoIWV4cGFuZGVkSWRzLmluY2x1ZGVzKGNvbGxlY3Rpb24uaWQpKSB7XG4gICAgICAgICAgICBleHBhbmRlZElkcy5wdXNoKGNvbGxlY3Rpb24uaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwYW5kZWRJZHMgPSBleHBhbmRlZElkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGNvbGxlY3Rpb24uaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhwYW5kZWRJZHMkLm5leHQoZXhwYW5kZWRJZHMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIHt7ICdjYXRhbG9nLm1vdmUtY29sbGVjdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjx2ZHItY29sbGVjdGlvbi1kYXRhLXRhYmxlXHJcbiAgICBjbGFzcz1cIm10LTJcIlxyXG4gICAgaWQ9XCJtb3ZlLWNvbGxlY3Rpb24tbGlzdFwiXHJcbiAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW3N1YkNvbGxlY3Rpb25zXT1cInN1YkNvbGxlY3Rpb25zJCB8IGFzeW5jXCJcclxuICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgIChwYWdlQ2hhbmdlKT1cImN1cnJlbnRQYWdlJC5uZXh0KCRldmVudClcIlxyXG4gICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJpdGVtc1BlclBhZ2UkLm5leHQoJGV2ZW50KVwiXHJcbj5cclxuICAgIDx2ZHItZHQyLXNlYXJjaFxyXG4gICAgICAgIFtzZWFyY2hUZXJtQ29udHJvbF09XCJzZWFyY2hUZXJtQ29udHJvbFwiXHJcbiAgICAgICAgW3NlYXJjaFRlcm1QbGFjZWhvbGRlcl09XCInY29tbW9uLnNlYXJjaC1ieS1uYW1lJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICA+PC92ZHItZHQyLXNlYXJjaD5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIGlkPVwiaWRcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWNvbGxlY3Rpb249XCJpdGVtXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbGxlY3Rpb24uaWQgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgaWQ9XCJuYW1lXCIgW29wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb2xsZWN0aW9uPVwiaXRlbVwiIGxldC1kZXB0aD1cImRlcHRoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ2luZGVudC0nICsgZGVwdGhcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGNsci1pY29uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaWxkLWFycm93XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy50cmFuc3BhcmVudF09XCJkZXB0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgICBzaGFwZT1cImNoaWxkLWFycm93XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWNvbGxlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiBjb2xsZWN0aW9uLnBhcmVudElkICE9PSAnX18nXCJcclxuICAgICAgICAgICAgPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1idXR0b24gZm9sZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbGxlY3Rpb24uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoY29sbGVjdGlvbilcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJmb2xkZXJcIiAqbmdJZj1cIiFleHBhbmRlZElkcy5pbmNsdWRlcyhjb2xsZWN0aW9uLmlkKVwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJmb2xkZXItb3BlblwiICpuZ0lmPVwiZXhwYW5kZWRJZHMuaW5jbHVkZXMoY29sbGVjdGlvbi5pZClcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uIGZvbGRlci1idXR0b25cIiAqbmdJZj1cImNvbGxlY3Rpb24ucGFyZW50SWQgPT09ICdfXydcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImZvbGRlclwiIGNsYXNzPVwiaXMtc29saWRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbi1naG9zdFwiIChjbGljayk9XCJyZXNvbHZlV2l0aChjb2xsZWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgJ2NhdGFsb2cubW92ZS1jb2xsZWN0aW9uLXRvJyB8IHRyYW5zbGF0ZSA6IHtuYW1lOiBjb2xsZWN0aW9uLm5hbWV9IH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmJyZWFkY3J1bWInIHwgdHJhbnNsYXRlXCIgaWQ9XCJicmVhZGNydW1iXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1jb2xsZWN0aW9uPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYlwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbGxlY3Rpb24gfCBjb2xsZWN0aW9uQnJlYWRjcnVtYiBhcyBicmVhZGNydW1ic1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZGNydW1icy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBicmVhZGNydW1ic1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBhcmF0b3JcIj4vPC9zcGFuPnt7IGl0ZW0ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlcGFyYXRvclwiICpuZ0lmPVwiIWJyZWFkY3J1bWJzLmxlbmd0aFwiPi88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5zbHVnJyB8IHRyYW5zbGF0ZVwiIGlkPVwic2x1Z1wiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtY29sbGVjdGlvbj1cIml0ZW1cIj5cclxuICAgICAgICAgICAge3sgY29sbGVjdGlvbi5zbHVnIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbjwvdmRyLWNvbGxlY3Rpb24tZGF0YS10YWJsZT5cclxuIl19
|