@hmcts/ccd-case-ui-toolkit 7.1.81-prerelease-qm → 7.2.0-cdam
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/esm2022/lib/app.config.mjs +2 -2
- package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +2 -2
- package/esm2022/lib/components/banners/alert/alert.component.mjs +2 -2
- package/esm2022/lib/components/banners/alert/alert.module.mjs +2 -2
- package/esm2022/lib/components/banners/banners.module.mjs +2 -2
- package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +2 -2
- package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +2 -2
- package/esm2022/lib/components/body/body.component.mjs +2 -2
- package/esm2022/lib/components/body/body.module.mjs +2 -2
- package/esm2022/lib/components/footer/footer.component.mjs +2 -2
- package/esm2022/lib/components/footer/footers.module.mjs +2 -2
- package/esm2022/lib/components/form/date-input/date-input.component.mjs +2 -2
- package/esm2022/lib/components/form/form.module.mjs +2 -2
- package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +2 -2
- package/esm2022/lib/components/header/headers.module.mjs +2 -2
- package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +2 -2
- package/esm2022/lib/components/header/navigation/navigation.component.mjs +2 -2
- package/esm2022/lib/components/header/phase/phase.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tab.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tabs.component.mjs +2 -2
- package/esm2022/lib/components/tabs/tabs.module.mjs +2 -2
- package/esm2022/lib/shared/commons/address-validation-constants.mjs +2 -2
- package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +2 -2
- package/esm2022/lib/shared/commons/constants.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity.component.mjs +2 -2
- package/esm2022/lib/shared/components/activity/activity.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +2 -2
- package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-header/case-header.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-header/case-header.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/case-history.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/case-history.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +2 -2
- package/esm2022/lib/shared/components/case-list/case-list.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-list/case-list.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +2 -2
- package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +2 -2
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +2 -2
- package/esm2022/lib/shared/components/error/callback-errors.component.mjs +2 -2
- package/esm2022/lib/shared/components/error/errors.module.mjs +2 -2
- package/esm2022/lib/shared/components/error-message/error-message.component.mjs +2 -2
- package/esm2022/lib/shared/components/error-message/error-message.module.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-start.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/event-start.module.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +2 -2
- package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +2 -2
- package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +2 -2
- package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +2 -2
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +2 -2
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +2 -2
- package/esm2022/lib/shared/components/pagination/pagination.component.mjs +2 -2
- package/esm2022/lib/shared/components/pagination/pagination.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write-journey.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/abstract-journey.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +18 -17
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +52 -48
- package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +2 -2
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +9 -5
- package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/palette.module.mjs +3 -3
- package/esm2022/lib/shared/components/palette/palette.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +7 -22
- package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +32 -34
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +6 -6
- package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +5 -5
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +4 -8
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +5 -33
- package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +4 -4
- package/esm2022/lib/shared/components/palette/query-management/services/qualifying-question.service.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +2 -2
- package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +2 -2
- package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +2 -2
- package/esm2022/lib/shared/components/search-result/search-result.component.mjs +2 -2
- package/esm2022/lib/shared/components/search-result/search-result.module.mjs +2 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +2 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +2 -2
- package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +2 -2
- package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +2 -2
- package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +2 -2
- package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +2 -2
- package/esm2022/lib/shared/pipes/pipes.module.mjs +2 -2
- package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +2 -2
- package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +2 -2
- package/esm2022/lib/shared/services/activity/activity.service.mjs +2 -2
- package/esm2022/lib/shared/services/addresses/addresses.service.mjs +2 -2
- package/esm2022/lib/shared/services/alert/alert.service.mjs +2 -2
- package/esm2022/lib/shared/services/auth/auth.service.mjs +2 -2
- package/esm2022/lib/shared/services/banners/banners.service.mjs +2 -2
- package/esm2022/lib/shared/services/browser/browser.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +2 -2
- package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +2 -2
- package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +2 -2
- package/esm2022/lib/shared/services/cookie/read-cookie-service.mjs +2 -2
- package/esm2022/lib/shared/services/definitions/definitions.module.mjs +2 -2
- package/esm2022/lib/shared/services/definitions/definitions.service.mjs +2 -2
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +38 -14
- package/esm2022/lib/shared/services/draft/draft.service.mjs +2 -2
- package/esm2022/lib/shared/services/error/error-notifier.service.mjs +2 -2
- package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +2 -2
- package/esm2022/lib/shared/services/fields/fields.purger.mjs +2 -2
- package/esm2022/lib/shared/services/fields/fields.utils.mjs +2 -2
- package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-error.service.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-validators.service.mjs +2 -2
- package/esm2022/lib/shared/services/form/form-value.service.mjs +2 -2
- package/esm2022/lib/shared/services/http/http-error.service.mjs +2 -2
- package/esm2022/lib/shared/services/http/http.service.mjs +2 -2
- package/esm2022/lib/shared/services/journey/multipage-component-state.service.mjs +2 -2
- package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +2 -2
- package/esm2022/lib/shared/services/loading/loading.module.mjs +2 -2
- package/esm2022/lib/shared/services/loading/loading.service.mjs +2 -2
- package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +2 -2
- package/esm2022/lib/shared/services/order/order.service.mjs +2 -2
- package/esm2022/lib/shared/services/organisation/organisation.service.mjs +2 -2
- package/esm2022/lib/shared/services/profile/profile.notifier.mjs +2 -2
- package/esm2022/lib/shared/services/profile/profile.service.mjs +2 -2
- package/esm2022/lib/shared/services/request/request.options.builder.mjs +2 -2
- package/esm2022/lib/shared/services/router/router-helper.service.mjs +2 -2
- package/esm2022/lib/shared/services/search/search.service.mjs +2 -2
- package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +2 -2
- package/esm2022/lib/shared/services/session/session-storage.service.mjs +2 -2
- package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +2 -2
- package/esm2022/lib/shared/services/window/window.service.mjs +2 -2
- package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +2 -2
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +524 -544
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/app.config.d.ts +2 -2
- package/lib/app.config.d.ts.map +1 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts +2 -1
- package/lib/shared/components/palette/document/write-document-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -2
- package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -4
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +1 -4
- package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -1
- package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
- package/lib/shared/services/document-management/document-management.service.d.ts +4 -1
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -220,7 +220,6 @@ export class QueryCheckYourAnswersComponent {
|
|
|
220
220
|
eventData = null;
|
|
221
221
|
backClicked = new EventEmitter();
|
|
222
222
|
querySubmitted = new EventEmitter();
|
|
223
|
-
callbackConfirmationMessage = new EventEmitter();
|
|
224
223
|
caseViewTrigger;
|
|
225
224
|
caseDetails;
|
|
226
225
|
queryId;
|
|
@@ -302,12 +301,7 @@ export class QueryCheckYourAnswersComponent {
|
|
|
302
301
|
const createEvent$ = this.createEvent(data);
|
|
303
302
|
if (this.queryCreateContext === QueryCreateContext.RESPOND) {
|
|
304
303
|
if (this.filteredTasks?.length > 0) {
|
|
305
|
-
this.createEventSubscription = createEvent$.pipe(switchMap((createEventResponse) => {
|
|
306
|
-
const confirmationBody = createEventResponse?.after_submit_callback_response?.confirmation_body;
|
|
307
|
-
const confirmationHeader = createEventResponse?.after_submit_callback_response?.confirmation_header;
|
|
308
|
-
this.callbackConfirmationMessage.emit({ body: confirmationBody, header: confirmationHeader });
|
|
309
|
-
return this.workAllocationService.completeTask(this.filteredTasks[0].id, this.caseViewTrigger.name);
|
|
310
|
-
})).subscribe({
|
|
304
|
+
this.createEventSubscription = createEvent$.pipe(switchMap((createEventResponse) => this.workAllocationService.completeTask(this.filteredTasks[0].id, this.caseViewTrigger.name))).subscribe({
|
|
311
305
|
next: () => this.finaliseSubmission(),
|
|
312
306
|
error: (error) => this.handleError(error)
|
|
313
307
|
});
|
|
@@ -325,12 +319,7 @@ export class QueryCheckYourAnswersComponent {
|
|
|
325
319
|
}
|
|
326
320
|
else {
|
|
327
321
|
this.createEventSubscription = createEvent$.subscribe({
|
|
328
|
-
next: (
|
|
329
|
-
this.finaliseSubmission();
|
|
330
|
-
const confirmationBody = callbackResponse?.after_submit_callback_response?.confirmation_body;
|
|
331
|
-
const confirmationHeader = callbackResponse?.after_submit_callback_response?.confirmation_header;
|
|
332
|
-
this.callbackConfirmationMessage.emit({ body: confirmationBody, header: confirmationHeader });
|
|
333
|
-
},
|
|
322
|
+
next: () => this.finaliseSubmission(),
|
|
334
323
|
error: (error) => this.handleError(error)
|
|
335
324
|
});
|
|
336
325
|
}
|
|
@@ -491,13 +480,11 @@ export class QueryCheckYourAnswersComponent {
|
|
|
491
480
|
const candidateFields = this.eventData?.case_fields?.filter((field) => field.field_type.id === this.CASE_QUERIES_COLLECTION_ID &&
|
|
492
481
|
field.field_type.type === this.FIELD_TYPE_COMPLEX &&
|
|
493
482
|
field.display_context !== this.DISPLAY_CONTEXT_READONLY);
|
|
494
|
-
if (!candidateFields?.length)
|
|
483
|
+
if (!candidateFields?.length)
|
|
495
484
|
return undefined;
|
|
496
|
-
}
|
|
497
485
|
const firstPageFields = this.eventData?.wizard_pages?.[0]?.wizard_page_fields;
|
|
498
|
-
if (!firstPageFields)
|
|
486
|
+
if (!firstPageFields)
|
|
499
487
|
return undefined;
|
|
500
|
-
}
|
|
501
488
|
return candidateFields
|
|
502
489
|
.map((field) => {
|
|
503
490
|
const wizardField = firstPageFields.find(f => f.case_field_id === field.id);
|
|
@@ -515,8 +502,8 @@ export class QueryCheckYourAnswersComponent {
|
|
|
515
502
|
this.attachments = documents.map(QueryManagementUtils.documentToCollectionFormDocument);
|
|
516
503
|
}
|
|
517
504
|
}
|
|
518
|
-
static ɵfac = function QueryCheckYourAnswersComponent_Factory(
|
|
519
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted"
|
|
505
|
+
static ɵfac = function QueryCheckYourAnswersComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryCheckYourAnswersComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.CasesService), i0.ɵɵdirectiveInject(i2.CaseNotifier), i0.ɵɵdirectiveInject(i2.WorkAllocationService), i0.ɵɵdirectiveInject(i3.SessionStorageService), i0.ɵɵdirectiveInject(i4.QualifyingQuestionService)); };
|
|
506
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryCheckYourAnswersComponent, selectors: [["ccd-query-check-your-answers"]], inputs: { formGroup: "formGroup", queryItem: "queryItem", queryCreateContext: "queryCreateContext", eventData: "eventData" }, outputs: { backClicked: "backClicked", querySubmitted: "querySubmitted" }, decls: 33, vars: 22, consts: [["defaultCheckYourAnswersTitle", ""], ["isHearingRelatedFalse", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds-from-desktop"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfElse"], [1, "govuk-!-margin-bottom-4"], [3, "caseDetails"], ["class", "govuk-summary-list govuk-!-margin-bottom-0", 4, "ngIf"], [1, "govuk-summary-list", "govuk-!-margin-bottom-0"], [1, "govuk-summary-list__row"], [1, "govuk-summary-list__key"], [1, "govuk-summary-list__value"], [1, "govuk-summary-list__actions"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", "govuk-!-margin-right-3", 3, "click"], ["data-module", "govuk-button", "type", "submit", 1, "govuk-button", 3, "click"], [3, "eventCompletionParams"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["href", "javascript:void(0)", 1, "validation-error", 3, "id"], [1, "govuk-caption-l"], ["href", "javascript:void(0)", "class", "govuk-link", 3, "click", 4, "ngIf"], ["class", "govuk-summary-list__row", 4, "ngIf"], [1, "govuk-summary-list__value", "govuk-summary-list__value--documentAttached"], [3, "attachments", 4, "ngIf"], [3, "attachments"]], template: function QueryCheckYourAnswersComponent_Template(rf, ctx) { if (rf & 1) {
|
|
520
507
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
521
508
|
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3);
|
|
522
509
|
i0.ɵɵtemplate(2, QueryCheckYourAnswersComponent_div_2_Template, 7, 4, "div", 4)(3, QueryCheckYourAnswersComponent_ng_container_3_Template, 4, 3, "ng-container", 5);
|
|
@@ -599,8 +586,6 @@ export class QueryCheckYourAnswersComponent {
|
|
|
599
586
|
type: Output
|
|
600
587
|
}], querySubmitted: [{
|
|
601
588
|
type: Output
|
|
602
|
-
}], callbackConfirmationMessage: [{
|
|
603
|
-
type: Output
|
|
604
589
|
}] }); })();
|
|
605
590
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryCheckYourAnswersComponent, { className: "QueryCheckYourAnswersComponent", filePath: "lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts", lineNumber: 28 }); })();
|
|
606
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUNMLGdCQUFnQixFQUtqQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckcsT0FBTyxFQUFrRCxrQkFBa0IsRUFBRSxhQUFhLEVBQUUs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RUFDRjtZQUVFLGVBQ0Y7WUFERSxpRUFDRjtZQUl3QixlQUErQztZQUEvQyxpRUFBK0M7OztpRkQvR2hFLDhCQUE4QjtjQUwxQyxTQUFTOzJCQUNFLDhCQUE4QjswT0FleEIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxrQkFBa0I7a0JBQWpDLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1csV0FBVztrQkFBM0IsTUFBTTtZQUNVLGNBQWM7a0JBQTlCLE1BQU07WUFDVSwyQkFBMkI7a0JBQTNDLE1BQU07O2tGQWpCSSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDYXNlRXZlbnRUcmlnZ2VyLFxuICBDYXNlRmllbGQsXG4gIENhc2VWaWV3LFxuICBDYXNlVmlld1RyaWdnZXIsXG4gIEVycm9yTWVzc2FnZVxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvc2hhcmVkL2RvbWFpbic7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFdmVudENvbXBsZXRpb25QYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9kb21haW4vZXZlbnQtY29tcGxldGlvbi1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyLCBDYXNlc1NlcnZpY2UsIFdvcmtBbGxvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VRdWVyaWVzQ29sbGVjdGlvbiwgUW1DYXNlUXVlcmllc0NvbGxlY3Rpb24sIFF1ZXJ5Q3JlYXRlQ29udGV4dCwgUXVlcnlMaXN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBRdWVyeU1hbmFnZW1lbnRVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL3F1ZXJ5LW1hbmFnZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgRm9ybURvY3VtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NoYXJlZC9kb21haW4vZG9jdW1lbnQnO1xuaW1wb3J0IHsgUXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1YWxpZnlpbmctcXVlc3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7IFVTRVJfREVUQUlMUyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXF1ZXJ5LWNoZWNrLXlvdXItYW5zd2VycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBRdWVyeUNoZWNrWW91ckFuc3dlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgUkFJU0VfQV9RVUVSWV9FVkVOVF9UUklHR0VSX0lEID0gJ3F1ZXJ5TWFuYWdlbWVudFJhaXNlUXVlcnknO1xuICBwcml2YXRlIHJlYWRvbmx5IFJFU1BPTkRfVE9fUVVFUllfRVZFTlRfVFJJR0dFUl9JRCA9ICdxdWVyeU1hbmFnZW1lbnRSZXNwb25kUXVlcnknO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgPSAnQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uJztcbiAgcHVibGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfQ09NUExFWCA9ICdDb21wbGV4JztcbiAgcHVibGljIHJlYWRvbmx5IERJU1BMQVlfQ09OVEVYVF9SRUFET05MWSA9ICdSRUFET05MWSc7XG4gIHB1YmxpYyByZWFkb25seSBRTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTiA9ICdzZWxlY3RGaXJzdENvbGxlY3Rpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgUU1fQ09MTEVDVElPTl9QUk9NUFQgPSAncHJvbXB0UW1Db2xsZWN0aW9uJztcbiAgcHVibGljIHJlYWRvbmx5IENJVklMX0pVUklTRElDVElPTiA9ICdDSVZJTCc7XG5cbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgcXVlcnlJdGVtOiBRdWVyeUxpc3RJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgcXVlcnlDcmVhdGVDb250ZXh0OiBRdWVyeUNyZWF0ZUNvbnRleHQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBldmVudERhdGE6IENhc2VFdmVudFRyaWdnZXIgfCBudWxsID0gbnVsbDtcbiAgQE91dHB1dCgpIHB1YmxpYyBiYWNrQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBxdWVyeVN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjYWxsYmFja0NvbmZpcm1hdGlvbk1lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+KCk7XG5cblxuICBwcml2YXRlIGNhc2VWaWV3VHJpZ2dlcjogQ2FzZVZpZXdUcmlnZ2VyO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwcml2YXRlIHF1ZXJ5SWQ6IHN0cmluZztcbiAgcHJpdmF0ZSB0aWQ6IHN0cmluZztcbiAgcHJpdmF0ZSBjcmVhdGVFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0gPSBRdWVyeUNyZWF0ZUNvbnRleHQ7XG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcbiAgcHVibGljIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnM6IENhc2VRdWVyaWVzQ29sbGVjdGlvbltdO1xuICBwdWJsaWMgZmllbGRJZDogc3RyaW5nO1xuICBwdWJsaWMgYXR0YWNobWVudHM6IEZvcm1Eb2N1bWVudFtdO1xuXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgZmlsdGVyZWRUYXNrczogVGFza1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZTogUXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnFpZDtcbiAgICB0aGlzLnRpZCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM/LnRpZDtcblxuICAgIHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjYXNlRGV0YWlscykgPT4ge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuXG4gICAgICAvLyBGaW5kIHRoZSBhcHByb3ByaWF0ZSBldmVudCB0cmlnZ2VyIGJhc2VkIG9uIHRoZSBxdWVyeUNyZWF0ZUNvbnRleHRcbiAgICAgIHRoaXMuY2FzZVZpZXdUcmlnZ2VyID0gdGhpcy5jYXNlRGV0YWlscy50cmlnZ2Vycy5maW5kKCh0cmlnZ2VyKSA9PlxuICAgICAgICB0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCAhPT0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkRcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgbm90ICdSRVNQT05EJywgZmluZCB0aGUgdHJpZ2dlciB3aXRoIHRoZSBJRCBmb3IgcmFpc2luZyBhIHF1ZXJ5XG4gICAgICAgICAgPyB0cmlnZ2VyLmlkID09PSB0aGlzLlJBSVNFX0FfUVVFUllfRVZFTlRfVFJJR0dFUl9JRFxuICAgICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyAnUkVTUE9ORCcsIGZpbmQgdGhlIHRyaWdnZXIgd2l0aCB0aGUgSUQgZm9yIHJlc3BvbmRpbmcgdG8gYSBxdWVyeVxuICAgICAgICAgIDogdHJpZ2dlci5pZCA9PT0gdGhpcy5SRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSURcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBHZXQgdGhlIGRvY3VtZW50IGF0dGFjaG1lbnRzXG4gICAgdGhpcy5nZXREb2N1bWVudEF0dGFjaG1lbnRzKCk7XG5cbiAgICB0aGlzLnNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTtcblxuICAgIGlmICh0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0LlJFU1BPTkQpIHtcbiAgICAgIHRoaXMuc2VhcmNoVGFza3NTdWJzY3JpcHRpb24gPSB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5nZXRUYXNrc0J5Q2FzZUlkQW5kRXZlbnRJZCh0aGlzLlJFU1BPTkRfVE9fUVVFUllfRVZFTlRfVFJJR0dFUl9JRCxcbiAgICAgICAgdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5pZCwgdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIEZpbHRlciB0YXNrIGJ5IHF1ZXJ5IGlkXG4gICAgICAgICAgICBpZiAodGhpcy50aWQpIHtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnRhc2tzPy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFRhc2tzID0gcmVzcG9uc2UudGFza3M/LmZpbHRlcigodGFzazogVGFzaykgPT4gdGFzay5pZCA9PT0gdGhpcy50aWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRUYXNrcyA9IHJlc3BvbnNlLnRhc2tzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBzZWFyY2hUYXNrc1N1YnNjcmlwdGlvbjonLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVFdmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdvQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tDbGlja2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIGZpZWxkSWQgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGlzIG1pc3NpbmcuIENhbm5vdCBwcm9jZWVkIHdpdGggc3VibWlzc2lvbi4nKTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRpdGxlOiAnRXJyb3InLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBjYXNlIGlzIG5vdCBjb25maWd1cmVkIGZvciBxdWVyeSBtYW5hZ2VtZW50LicsXG4gICAgICAgICAgZmllbGRJZDogJ2ZpZWxkLWlkJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdlbmVyYXRlQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uRGF0YSgpO1xuICAgIGNvbnN0IGNyZWF0ZUV2ZW50JCA9IHRoaXMuY3JlYXRlRXZlbnQoZGF0YSk7XG5cbiAgICBpZiAodGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXJlZFRhc2tzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24gPSBjcmVhdGVFdmVudCQucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKGNyZWF0ZUV2ZW50UmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpcm1hdGlvbkJvZHkgPSBjcmVhdGVFdmVudFJlc3BvbnNlPy5hZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2U/LmNvbmZpcm1hdGlvbl9ib2R5O1xuICAgICAgICAgICAgY29uc3QgY29uZmlybWF0aW9uSGVhZGVyID0gY3JlYXRlRXZlbnRSZXNwb25zZT8uYWZ0ZXJfc3VibWl0X2NhbGxiYWNrX3Jlc3BvbnNlPy5jb25maXJtYXRpb25faGVhZGVyO1xuICAgICAgICAgICAgdGhpcy5jYWxsYmFja0NvbmZpcm1hdGlvbk1lc3NhZ2UuZW1pdCh7IGJvZHk6IGNvbmZpcm1hdGlvbkJvZHksIGhlYWRlcjogY29uZmlybWF0aW9uSGVhZGVyIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuY29tcGxldGVUYXNrKFxuICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkVGFza3NbMF0uaWQsXG4gICAgICAgICAgICAgIHRoaXMuY2FzZVZpZXdUcmlnZ2VyLm5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5maW5hbGlzZVN1Ym1pc3Npb24oKSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBObyB0YXNrIHRvIGNvbXBsZXRlIHdhcyBmb3VuZCcpO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05vIHRhc2sgdG8gY29tcGxldGUgd2FzIGZvdW5kJyxcbiAgICAgICAgICAgIGZpZWxkSWQ6ICdmaWVsZC1pZCdcbiAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24gPSBjcmVhdGVFdmVudCQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGNhbGxiYWNrUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmFsaXNlU3VibWlzc2lvbigpO1xuICAgICAgICAgIGNvbnN0IGNvbmZpcm1hdGlvbkJvZHkgPSBjYWxsYmFja1Jlc3BvbnNlPy5hZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2U/LmNvbmZpcm1hdGlvbl9ib2R5O1xuICAgICAgICAgIGNvbnN0IGNvbmZpcm1hdGlvbkhlYWRlciA9IGNhbGxiYWNrUmVzcG9uc2U/LmFmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZT8uY29uZmlybWF0aW9uX2hlYWRlcjtcbiAgICAgICAgICB0aGlzLmNhbGxiYWNrQ29uZmlybWF0aW9uTWVzc2FnZS5lbWl0KHsgYm9keTogY29uZmlybWF0aW9uQm9keSwgaGVhZGVyOiBjb25maXJtYXRpb25IZWFkZXIgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUV2ZW50KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZXNTZXJ2aWNlLmNyZWF0ZUV2ZW50KHRoaXMuY2FzZURldGFpbHMsIHtcbiAgICAgIGRhdGEsXG4gICAgICBldmVudDoge1xuICAgICAgICBpZDogdGhpcy5jYXNlVmlld1RyaWdnZXI/LmlkLFxuICAgICAgICBzdW1tYXJ5OiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuY2FzZVZpZXdUcmlnZ2VyPy5kZXNjcmlwdGlvblxuICAgICAgfSxcbiAgICAgIGV2ZW50X3Rva2VuOiB0aGlzLmV2ZW50RGF0YT8uZXZlbnRfdG9rZW4sXG4gICAgICBpZ25vcmVfd2FybmluZzogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluYWxpc2VTdWJtaXNzaW9uKCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlTdWJtaXR0ZWQuZW1pdCh0cnVlKTtcbiAgICB0aGlzLnF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2UuY2xlYXJRdWFsaWZ5aW5nUXVlc3Rpb25TZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIEFQSSBjYWxsczonLCBlcnJvcik7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJywgJ3NlcnZpY2UtZG93biddKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKCk6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIHtcbiAgICBjb25zdCBjdXJyZW50VXNlckRldGFpbHMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oVVNFUl9ERVRBSUxTKSk7XG5cbiAgICBjb25zdCBjYXNlTWVzc2FnZSA9IHRoaXMucXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZXG4gICAgICA/IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmdldE5ld1F1ZXJ5RGF0YSh0aGlzLmZvcm1Hcm91cCwgY3VycmVudFVzZXJEZXRhaWxzKVxuICAgICAgOiBRdWVyeU1hbmFnZW1lbnRVdGlscy5nZXRSZXNwb25kT3JGb2xsb3d1cFF1ZXJ5RGF0YSh0aGlzLmZvcm1Hcm91cCwgdGhpcy5xdWVyeUl0ZW0sIGN1cnJlbnRVc2VyRGV0YWlscyk7XG5cbiAgICBjb25zdCBtZXNzYWdlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kYXRhaWQ7IC8vIEdldCB0aGUgbWVzc2FnZSBJRCBmcm9tIHJvdXRlIHBhcmFtcyAoaWYgcHJlc2VudClcbiAgICBjb25zdCBpc05ld1F1ZXJ5ID0gdGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlk7IC8vIENoZWNrIGlmIHRoaXMgaXMgYSBuZXcgcXVlcnlcblxuICAgIC8vIENoZWNrIGlmIHRoZSBmaWVsZCBJRCBoYXMgYmVlbiBzZXQgZHluYW1pY2FsbHlcbiAgICBpZiAoIXRoaXMuZmllbGRJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IEZpZWxkIElEIGZvciBDYXNlUXVlcmllc0NvbGxlY3Rpb24gbm90IGZvdW5kLiBDYW5ub3QgcHJvY2VlZCB3aXRoIGRhdGEgZ2VuZXJhdGlvbi4nKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdzZXJ2aWNlLWRvd24nXSk7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBuZXcgcXVlcnkgZGF0YSBzdHJ1Y3R1cmVcbiAgICBjb25zdCBuZXdRdWVyeURhdGE6IFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uID0ge307XG5cbiAgICBpZiAodGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIGxldCBtYXRjaGVkQ29sbGVjdGlvbjtcblxuICAgICAgLy8gSWYgaXQncyBub3QgYSBuZXcgcXVlcnksIHRyeSB0byBmaW5kIHRoZSBleGlzdGluZyBjb2xsZWN0aW9uIHdpdGggdGhlIG1lc3NhZ2UgSURcbiAgICAgIGlmICghaXNOZXdRdWVyeSAmJiBtZXNzYWdlSWQpIHtcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24gPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT5cbiAgICAgICAgICBjb2xsZWN0aW9uLmNhc2VNZXNzYWdlcy5zb21lKChtZXNzYWdlKSA9PiBtZXNzYWdlLnZhbHVlLmlkID09PSBtZXNzYWdlSWQpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXRjaGVkQ29sbGVjdGlvbikge1xuICAgICAgICAvLyBBcHBlbmQgdGhlIG5ldyBjYXNlIG1lc3NhZ2UgdG8gdGhlIG1hdGNoZWQgY29sbGVjdGlvbidzIGNhc2VNZXNzYWdlc1xuICAgICAgICBtYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgbWF0Y2hlZCBjb2xsZWN0aW9uIHRvIG5ld1F1ZXJ5RGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgICAuLi5tYXRjaGVkQ29sbGVjdGlvbiwgLy8gS2VlcCBleGlzdGluZyBkYXRhIGludGFjdFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogWy4uLm1hdGNoZWRDb2xsZWN0aW9uLmNhc2VNZXNzYWdlc10gLy8gQXBwZW5kIHRoZSB1cGRhdGVkIG1lc3NhZ2VzIGFycmF5XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgcGFydHlOYW1lIGZyb20gdGhlIGZpcnN0IGNvbGxlY3Rpb24gKGFzc3VtcHRpb246IGFsbCBzaGFyZSB0aGUgc2FtZSBwYXJ0eSlcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQYXJ0eU5hbWUgPSB0aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnNbMF0ucGFydHlOYW1lO1xuXG4gICAgICAgIC8vIElmIG5vIGNvbGxlY3Rpb24gbWF0Y2hlcywgb3IgaXQncyBhIG5ldyBxdWVyeVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXSA9IHtcbiAgICAgICAgICBwYXJ0eU5hbWU6IG9yaWdpbmFsUGFydHlOYW1lLFxuICAgICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgICAgY2FzZU1lc3NhZ2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgICB2YWx1ZTogY2FzZU1lc3NhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gSWYgY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyBpcyBub3QgZW1wdHksIGFwcGVuZCBpdHMgZGF0YVxuICAgICAgICBuZXdRdWVyeURhdGFbdGhpcy5maWVsZElkXS5jYXNlTWVzc2FnZXMucHVzaChcbiAgICAgICAgICAuLi50aGlzLmNhc2VRdWVyaWVzQ29sbGVjdGlvbnMuZmxhdE1hcCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBleGlzdGluZyBjb2xsZWN0aW9ucywgY3JlYXRlIGEgbmV3IG9uZSAoZS5nLiwgZm9yIG5ldyBxdWVyaWVzKVxuICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgIHBhcnR5TmFtZTogY3VycmVudFVzZXJEZXRhaWxzPy5uYW1lIHx8IGAke2N1cnJlbnRVc2VyRGV0YWlscz8uZm9yZW5hbWV9ICR7Y3VycmVudFVzZXJEZXRhaWxzPy5zdXJuYW1lfWAsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgcm9sZU9uQ2FzZTogJycsIC8vIE5vdCByZXR1cm5lZCBieSBDQ0RcbiAgICAgICAgY2FzZU1lc3NhZ2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgICAgICB2YWx1ZTogY2FzZU1lc3NhZ2VcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBuZXdRdWVyeURhdGE7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRGF0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudERhdGE/LmNhc2VfZmllbGRzPy5sZW5ndGgpIHtcbiAgICAgIC8vIFdvcmthcm91bmQgZm9yIG11bHRpcGxlIHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyB0aGF0IGFyZSBub3QgdG8gYmUgYXBwZWFyaW5nIGluIHRoZSBldmVudERhdGFcbiAgICAgIC8vIENvdW50cyBudW1iZXIgcW1DYXNlUXVlcmllc0NvbGxlY3Rpb25zXG4gICAgICBjb25zdCBudW1iZXJPZkNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgPSB0aGlzLmV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgICAgKGNhc2VGaWVsZCkgPT5cbiAgICAgICAgICBjYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gdGhpcy5DQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJlxuICAgICAgICAgIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IHRoaXMuRklFTERfVFlQRV9DT01QTEVYICYmIGNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09IHRoaXMuRElTUExBWV9DT05URVhUX1JFQURPTkxZXG4gICAgICApPy5sZW5ndGggfHwgMDtcblxuICAgICAgdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gdGhpcy5ldmVudERhdGEuY2FzZV9maWVsZHMucmVkdWNlKChhY2MsIGNhc2VGaWVsZCkgPT4ge1xuICAgICAgICAvLyBFeHRyYWN0IHRoZSBJRCBiYXNlZCBvbiBjb25kaXRpb25zLCB1cGRhdGluZyB0aGlzLmZpZWxkSWQgZHluYW1pY2FsbHlcbiAgICAgICAgdGhpcy5leHRyYWN0Q2FzZVF1ZXJ5SWQoY2FzZUZpZWxkLCBudW1iZXJPZkNhc2VRdWVyaWVzQ29sbGVjdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9IFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmV4dHJhY3RDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQoY2FzZUZpZWxkKTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCAmJiB0eXBlb2YgZXh0cmFjdGVkQ2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGFjYy5wdXNoKGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RDYXNlUXVlcnlJZChkYXRhOiBDYXNlRmllbGQsIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB7IGlkLCB2YWx1ZSB9ID0gZGF0YTtcbiAgICBjb25zdCBtZXNzYWdlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kYXRhaWQ7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGRfdHlwZSBtYXRjaGVzIENhc2VRdWVyaWVzQ29sbGVjdGlvbiBhbmQgdHlwZSBpcyBDb21wbGV4XG4gICAgaWYgKGRhdGEuZmllbGRfdHlwZS5pZCA9PT0gdGhpcy5DQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJiBkYXRhLmZpZWxkX3R5cGUudHlwZSA9PT0gdGhpcy5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgIGlmICh0aGlzLmlzTmV3UXVlcnlDb250ZXh0KGRhdGEpKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgcW1DYXNlUXVlcmllc0NvbGxlY3Rpb24sIHBpY2sgdGhlIG9uZSB3aXRoIHRoZSBsb3dlc3Qgb3JkZXJcbiAgICAgICAgaWYgKGNvdW50ID4gMSkge1xuICAgICAgICAgIGlmICghdGhpcy5oYW5kbGVNdWx0aXBsZUNvbGxlY3Rpb25zKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gU2V0IHRoZSBmaWVsZCBJRCBkeW5hbWljYWxseSBiYXNlZCBvbiB0aGUgZXh0cmFjdGVkIGRhdGFcbiAgICAgICAgICB0aGlzLmZpZWxkSWQgPSBpZDsgLy8gU3RvcmUgdGhlIElEIGZvciB1c2UgaW4gZ2VuZXJhdGluZyBuZXdRdWVyeURhdGFcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBtZXNzYWdlSWQgaXMgcHJlc2VudCwgZmluZCB0aGUgY29ycmVzcG9uZGluZyBjYXNlIG1lc3NhZ2VcbiAgICAgIHRoaXMuc2V0TWVzc2FnZUZpZWxkSWQobWVzc2FnZUlkLCB2YWx1ZSwgaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0TWVzc2FnZUZpZWxkSWQobWVzc2FnZUlkLCB2YWx1ZSwgaWQ6IHN0cmluZykge1xuICAgIGlmIChtZXNzYWdlSWQgJiYgdmFsdWU/LmNhc2VNZXNzYWdlcykge1xuICAgICAgLy8gSWYgYSBtYXRjaGluZyBtZXNzYWdlIGlzIGZvdW5kLCBzZXQgdGhlIGZpZWxkSWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgaWRcbiAgICAgIGNvbnN0IG1hdGNoZWRNZXNzYWdlID0gdmFsdWU/LmNhc2VNZXNzYWdlcz8uZmluZCgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKTtcbiAgICAgIGlmIChtYXRjaGVkTWVzc2FnZSkge1xuICAgICAgICB0aGlzLmZpZWxkSWQgPSBpZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTmV3UXVlcnlDb250ZXh0KGRhdGE6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWSAmJiBkYXRhLmRpc3BsYXlfY29udGV4dCAhPT0gdGhpcy5ESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU11bHRpcGxlQ29sbGVjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QganVyaXNkaWN0aW9uSWQgPSB0aGlzLmNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQ7XG5cbiAgICBpZiAoIWp1cmlzZGljdGlvbklkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdKdXJpc2RpY3Rpb24gSUQgaXMgbWlzc2luZy4nKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbklkKSA9PT0gdGhpcy5RTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTikge1xuICAgICAgLy8gUGljayB0aGUgY29sbGVjdGlvbiB3aXRoIHRoZSBsb3dlc3Qgb3JkZXJcbiAgICAgIHRoaXMuZmllbGRJZCA9IHRoaXMuZ2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRmllbGRPcmRlckZyb21XaXphcmRQYWdlcygpPy5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRGlzcGxheSBFcnJvciwgZm9yIG5vdywgdW50aWwgRVhVSS0yNjQ0IGlzIGltcGxlbWVudGVkXG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvcjogTXVsdGlwbGUgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgZm9yIHRoZSAke2p1cmlzZGljdGlvbklkfSBqdXJpc2RpY3Rpb25gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZVF1ZXJpZXNDb2xsZWN0aW9uRmllbGRPcmRlckZyb21XaXphcmRQYWdlcygpOiBDYXNlRmllbGQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNhbmRpZGF0ZUZpZWxkcyA9IHRoaXMuZXZlbnREYXRhPy5jYXNlX2ZpZWxkcz8uZmlsdGVyKFxuICAgICAgKGZpZWxkKSA9PlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLmlkID09PSB0aGlzLkNBU0VfUVVFUklFU19DT0xMRUNUSU9OX0lEICYmXG4gICAgICAgIGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gdGhpcy5GSUVMRF9UWVBFX0NPTVBMRVggJiZcbiAgICAgICAgZmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSB0aGlzLkRJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICk7XG5cbiAgICBpZiAoIWNhbmRpZGF0ZUZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0UGFnZUZpZWxkcyA9IHRoaXMuZXZlbnREYXRhPy53aXphcmRfcGFnZXM/LlswXT8ud2l6YXJkX3BhZ2VfZmllbGRzO1xuXG4gICAgaWYgKCFmaXJzdFBhZ2VGaWVsZHMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbmRpZGF0ZUZpZWxkc1xuICAgICAgLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgY29uc3Qgd2l6YXJkRmllbGQgPSBmaXJzdFBhZ2VGaWVsZHMuZmluZChmID0+IGYuY2FzZV9maWVsZF9pZCA9PT0gZmllbGQuaWQpO1xuICAgICAgICByZXR1cm4geyBmaWVsZCwgb3JkZXI6IHdpemFyZEZpZWxkPy5vcmRlciA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiB9O1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcilbMF0/LmZpZWxkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xsZWN0aW9uU2VsZWN0aW9uTWV0aG9kKGp1cmlzZGljdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4ganVyaXNkaWN0aW9uLnRvVXBwZXJDYXNlKCkgPT09IHRoaXMuQ0lWSUxfSlVSSVNESUNUSU9OID8gdGhpcy5RTV9TRUxFQ1RfRklSU1RfQ09MTEVDVElPTiA6IHRoaXMuUU1fQ09MTEVDVElPTl9QUk9NUFQ7XG4gIH1cblxuICBwcml2YXRlIGdldERvY3VtZW50QXR0YWNobWVudHMoKTogdm9pZCB7XG4gICAgY29uc3QgYXR0YWNobWVudHNWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZTtcbiAgICBpZiAoYXR0YWNobWVudHNWYWx1ZSAmJiBhdHRhY2htZW50c1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50cyA9IGF0dGFjaG1lbnRzVmFsdWU7XG4gICAgICB0aGlzLmF0dGFjaG1lbnRzID0gZG9jdW1lbnRzLm1hcChRdWVyeU1hbmFnZW1lbnRVdGlscy5kb2N1bWVudFRvQ29sbGVjdGlvbkZvcm1Eb2N1bWVudCk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkcy1mcm9tLWRlc2t0b3BcIj5cbiAgICA8IS0tIEVycm9yIG1lc3NhZ2Ugc3VtbWFyeSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCJcbiAgICAgIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiPlxuICAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZVwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAgIHt7ICdUaGVyZSBpcyBhIHByb2JsZW0nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgIDwvaDI+XG4gICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBlcnJvck1lc3NhZ2VzXCI+XG4gICAgICAgICAgIDxhIFtpZF09XCInZXJyb3ItJyArIGVycm9yTWVzc2FnZS5maWVsZElkXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJ2YWxpZGF0aW9uLWVycm9yXCI+e3sgZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9uIHwgcnB4VHJhbnNsYXRlIH19PC9hPlxuICAgICAgICAgPC9saT5cbiAgICAgICA8L3VsPlxuICAgICA8L2Rpdj5cbiAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5ORVdfUVVFUllcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj57eyAnUmFpc2UgYSBxdWVyeScgfCBycHhUcmFuc2xhdGUgfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5SRVNQT05EOyBlbHNlIGRlZmF1bHRDaGVja1lvdXJBbnN3ZXJzVGl0bGVcIj5cbiAgICAgICAge3sgJ1JldmlldyBxdWVyeSByZXNwb25zZSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENoZWNrWW91ckFuc3dlcnNUaXRsZT5cbiAgICAgICAge3sgJ1JldmlldyBxdWVyeSBkZXRhaWxzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tNFwiPlxuICAgICAgPGNjZC1xdWVyeS1jYXNlLWRldGFpbHMtaGVhZGVyIFtjYXNlRGV0YWlsc109XCJjYXNlRGV0YWlsc1wiPjwvY2NkLXF1ZXJ5LWNhc2UtZGV0YWlscy1oZWFkZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGwgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgIT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uRk9MTE9XVVBcIiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQgPyAnU3VibWl0dGVkIHF1ZXJ5JyA6ICdRdWVyeSBzdWJqZWN0JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQgPyBxdWVyeUl0ZW0uc3ViamVjdCA6IGZvcm1Hcm91cC5nZXQoJ3N1YmplY3QnKT8udmFsdWUgfX1cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiIFxuICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/ICdSZXNwb25zZSBkZXRhaWwnIDogJ1F1ZXJ5IGRldGFpbCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIHt7IGZvcm1Hcm91cC5nZXQoJ2JvZHknKT8udmFsdWUgfX1cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGRsICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyAnSXMgdGhlIHF1ZXJ5IGhlYXJpbmcgcmVsYXRlZD8nIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgnaXNIZWFyaW5nUmVsYXRlZCcpPy52YWx1ZSA9PT0gdHJ1ZTsgZWxzZSBpc0hlYXJpbmdSZWxhdGVkRmFsc2VcIj5cbiAgICAgICAgICAgIHt7ICdJcyB0aGUgcXVlcnkgaGVhcmluZyByZWxhdGVkPycgfCBycHhUcmFuc2xhdGU6IG51bGwgOiAnWWVzJyB9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNIZWFyaW5nUmVsYXRlZEZhbHNlPlxuICAgICAgICAgICAge3sgJ0lzIHRoZSBxdWVyeSBoZWFyaW5nIHJlbGF0ZWQ/JyB8IHJweFRyYW5zbGF0ZTogbnVsbCA6ICdObycgfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgnaXNIZWFyaW5nUmVsYXRlZCcpPy52YWx1ZVwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXG4gICAgICAgICAgICA/ICdXaGF0IGlzIHRoZSBkYXRlIG9mIHRoZSBoZWFyaW5nPydcbiAgICAgICAgICAgIDogJ1doYXQgaXMgdGhlIGRhdGUgb2YgdGhlIGhlYXJpbmcgeW91ciBxdWVyeSBpcyByZWxhdGVkIHRvPycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIHt7IGZvcm1Hcm91cC5nZXQoJ2hlYXJpbmdEYXRlJyk/LnZhbHVlIHwgZGF0ZTogJ2RkIE1NTSB5eXl5JyB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG4gICAgPGRsIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCIgKm5nSWY9XCJ0aGlzLmZvcm1Hcm91cC5nZXQoJ2F0dGFjaG1lbnRzJykudmFsdWUubGVuZ3RoID4gMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fcm93XCI+XG4gICAgICAgIDxkdCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fa2V5XCI+XG4gICAgICAgICAge3sgcXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWSA/ICdVcGxvYWQgYSBmaWxlIHRvIHRoZSBxdWVyeScgOiAnRG9jdW1lbnQgYXR0YWNoZWQnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWUgZ292dWstc3VtbWFyeS1saXN0X192YWx1ZS0tZG9jdW1lbnRBdHRhY2hlZFwiPlxuICAgICAgICAgIDxjY2QtcXVlcnktYXR0YWNobWVudHMtcmVhZFxuICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLmZvcm1Hcm91cC5nZXQoJ2F0dGFjaG1lbnRzJykudmFsdWVcIlxuICAgICAgICAgICAgW2F0dGFjaG1lbnRzXT1cImF0dGFjaG1lbnRzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9jY2QtcXVlcnktYXR0YWNobWVudHMtcmVhZD5cbiAgICAgICAgPC9kZD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwiZ292dWstbGlua1wiIChjbGljayk9XCJnb0JhY2soKVwiPlxuICAgICAgICAgICAge3sgJ0NoYW5nZScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2RsPlxuXG4gICAgPGJyPlxuXG4gICAgPGRpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnkgZ292dWstIS1tYXJnaW4tcmlnaHQtM1wiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgIHt7ICdQcmV2aW91cycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxuICAgICAgICB7eyAnU3VibWl0JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxjY2QtcXVlcnktZXZlbnQtY29tcGxldGlvbiBbZXZlbnRDb21wbGV0aW9uUGFyYW1zXT1cImV2ZW50Q29tcGxldGlvblBhcmFtc1wiPiAgICBcbiAgPC9jY2QtcXVlcnktZXZlbnQtY29tcGxldGlvbj5cbjwvZGl2PlxuIl19
|
|
591
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMvcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUNMLGdCQUFnQixFQUtqQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckcsT0FBTyxFQUFrRCxrQkFBa0IsRUFBRSxhQUFhLEVBQUUs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Rjs7WUFFSixBQURFLEFBREUsaUJBQVMsRUFDTCxFQUNGO1lBRU4sa0RBQzZCO1lBQy9CLGlCQUFNOzs7O1lBeklJLGVBQThCO1lBQTlCLG1EQUE4QjtZQWdCckIsY0FBNkQ7WUFBN0Qsc0ZBQTZEO1lBSzNELGVBQTZEO1lBQUEsQUFBN0Qsb0ZBQTZELDZDQUFpQztZQVM5RSxlQUEyQjtZQUEzQiw2Q0FBMkI7WUFHdkQsY0FBNEQ7WUFBNUQscUZBQTREO1lBb0IzRCxlQUNGO1lBREUsMkpBQ0Y7WUFFRSxlQUNGO1lBREUscUdBQ0Y7WUFHSSxlQUNGO1lBREUsaUVBQ0Y7WUFLRCxlQUE2RDtZQUE3RCxzRkFBNkQ7WUFvQ1YsY0FBd0Q7WUFBeEQsd0VBQXdEO1lBeUI1RyxlQUNGO1lBREUsbUVBQ0Y7WUFFRSxlQUNGO1lBREUsaUVBQ0Y7WUFJd0IsZUFBK0M7WUFBL0MsaUVBQStDOzs7aUZEL0doRSw4QkFBOEI7Y0FMMUMsU0FBUzsyQkFDRSw4QkFBOEI7ME9BZXhCLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1Usa0JBQWtCO2tCQUFqQyxLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNXLFdBQVc7a0JBQTNCLE1BQU07WUFDVSxjQUFjO2tCQUE5QixNQUFNOztrRkFoQkksOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ2FzZUV2ZW50VHJpZ2dlcixcbiAgQ2FzZUZpZWxkLFxuICBDYXNlVmlldyxcbiAgQ2FzZVZpZXdUcmlnZ2VyLFxuICBFcnJvck1lc3NhZ2Vcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NoYXJlZC9kb21haW4nO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRXZlbnRDb21wbGV0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3IvZG9tYWluL2V2ZW50LWNvbXBsZXRpb24tcGFyYW1zLm1vZGVsJztcbmltcG9ydCB7IENhc2VOb3RpZmllciwgQ2FzZXNTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlUXVlcmllc0NvbGxlY3Rpb24sIFFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBRdWVyeUNyZWF0ZUNvbnRleHQsIFF1ZXJ5TGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUXVlcnlNYW5hZ2VtZW50VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9xdWVyeS1tYW5hZ2VtZW50LnV0aWxzJztcbmltcG9ydCB7IEZvcm1Eb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zaGFyZWQvZG9tYWluL2RvY3VtZW50JztcbmltcG9ydCB7IFF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWFsaWZ5aW5nLXF1ZXN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQgeyBVU0VSX0RFVEFJTFMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1xdWVyeS1jaGVjay15b3VyLWFuc3dlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktY2hlY2steW91ci1hbnN3ZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlDaGVja1lvdXJBbnN3ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IFJBSVNFX0FfUVVFUllfRVZFTlRfVFJJR0dFUl9JRCA9ICdxdWVyeU1hbmFnZW1lbnRSYWlzZVF1ZXJ5JztcbiAgcHJpdmF0ZSByZWFkb25seSBSRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSUQgPSAncXVlcnlNYW5hZ2VtZW50UmVzcG9uZFF1ZXJ5JztcblxuICBwcml2YXRlIHJlYWRvbmx5IENBU0VfUVVFUklFU19DT0xMRUNUSU9OX0lEID0gJ0Nhc2VRdWVyaWVzQ29sbGVjdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBGSUVMRF9UWVBFX0NPTVBMRVggPSAnQ29tcGxleCc7XG4gIHB1YmxpYyByZWFkb25seSBESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFkgPSAnUkVBRE9OTFknO1xuICBwdWJsaWMgcmVhZG9ubHkgUU1fU0VMRUNUX0ZJUlNUX0NPTExFQ1RJT04gPSAnc2VsZWN0Rmlyc3RDb2xsZWN0aW9uJztcbiAgcHVibGljIHJlYWRvbmx5IFFNX0NPTExFQ1RJT05fUFJPTVBUID0gJ3Byb21wdFFtQ29sbGVjdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBDSVZJTF9KVVJJU0RJQ1RJT04gPSAnQ0lWSUwnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5SXRlbTogUXVlcnlMaXN0SXRlbTtcbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5Q3JlYXRlQ29udGV4dDogUXVlcnlDcmVhdGVDb250ZXh0O1xuICBASW5wdXQoKSBwdWJsaWMgZXZlbnREYXRhOiBDYXNlRXZlbnRUcmlnZ2VyIHwgbnVsbCA9IG51bGw7XG4gIEBPdXRwdXQoKSBwdWJsaWMgYmFja0NsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcXVlcnlTdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBjYXNlVmlld1RyaWdnZXI6IENhc2VWaWV3VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHJpdmF0ZSBxdWVyeUlkOiBzdHJpbmc7XG4gIHByaXZhdGUgdGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgY3JlYXRlRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZWFyY2hUYXNrc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtID0gUXVlcnlDcmVhdGVDb250ZXh0O1xuICBwdWJsaWMgZXZlbnRDb21wbGV0aW9uUGFyYW1zOiBFdmVudENvbXBsZXRpb25QYXJhbXM7XG4gIHB1YmxpYyBjYXNlUXVlcmllc0NvbGxlY3Rpb25zOiBDYXNlUXVlcmllc0NvbGxlY3Rpb25bXTtcbiAgcHVibGljIGZpZWxkSWQ6IHN0cmluZztcbiAgcHVibGljIGF0dGFjaG1lbnRzOiBGb3JtRG9jdW1lbnRbXTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGZpbHRlcmVkVGFza3M6IFRhc2tbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllcjogQ2FzZU5vdGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0FsbG9jYXRpb25TZXJ2aWNlOiBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2U6IFF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5SWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5xaWQ7XG4gICAgdGhpcy50aWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zPy50aWQ7XG5cbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY2FzZURldGFpbHMpID0+IHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcblxuICAgICAgLy8gRmluZCB0aGUgYXBwcm9wcmlhdGUgZXZlbnQgdHJpZ2dlciBiYXNlZCBvbiB0aGUgcXVlcnlDcmVhdGVDb250ZXh0XG4gICAgICB0aGlzLmNhc2VWaWV3VHJpZ2dlciA9IHRoaXMuY2FzZURldGFpbHMudHJpZ2dlcnMuZmluZCgodHJpZ2dlcikgPT5cbiAgICAgICAgdGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgIT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EXG4gICAgICAgIC8vIElmIHRoZSBjb250ZXh0IGlzIG5vdCAnUkVTUE9ORCcsIGZpbmQgdGhlIHRyaWdnZXIgd2l0aCB0aGUgSUQgZm9yIHJhaXNpbmcgYSBxdWVyeVxuICAgICAgICAgID8gdHJpZ2dlci5pZCA9PT0gdGhpcy5SQUlTRV9BX1FVRVJZX0VWRU5UX1RSSUdHRVJfSURcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgJ1JFU1BPTkQnLCBmaW5kIHRoZSB0cmlnZ2VyIHdpdGggdGhlIElEIGZvciByZXNwb25kaW5nIHRvIGEgcXVlcnlcbiAgICAgICAgICA6IHRyaWdnZXIuaWQgPT09IHRoaXMuUkVTUE9ORF9UT19RVUVSWV9FVkVOVF9UUklHR0VSX0lEXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gR2V0IHRoZSBkb2N1bWVudCBhdHRhY2htZW50c1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRBdHRhY2htZW50cygpO1xuXG4gICAgdGhpcy5zZXRDYXNlUXVlcmllc0NvbGxlY3Rpb25EYXRhKCk7XG5cbiAgICBpZiAodGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5SRVNQT05EKSB7XG4gICAgICB0aGlzLnNlYXJjaFRhc2tzU3Vic2NyaXB0aW9uID0gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuZ2V0VGFza3NCeUNhc2VJZEFuZEV2ZW50SWQodGhpcy5SRVNQT05EX1RPX1FVRVJZX0VWRU5UX1RSSUdHRVJfSUQsXG4gICAgICAgIHRoaXMuY2FzZURldGFpbHMuY2FzZV9pZCwgdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuaWQsIHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5pZClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBGaWx0ZXIgdGFzayBieSBxdWVyeSBpZFxuICAgICAgICAgICAgaWYgKHRoaXMudGlkKSB7XG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS50YXNrcz8ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRUYXNrcyA9IHJlc3BvbnNlLnRhc2tzPy5maWx0ZXIoKHRhc2s6IFRhc2spID0+IHRhc2suaWQgPT09IHRoaXMudGlkKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkVGFza3MgPSByZXNwb25zZS50YXNrcztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gc2VhcmNoVGFza3NTdWJzY3JpcHRpb246JywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlRXZlbnRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWFyY2hUYXNrc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnb0JhY2soKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrQ2xpY2tlZC5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiBmaWVsZElkIGlzIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgaWYgKCF0aGlzLmZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBGaWVsZCBJRCBpcyBtaXNzaW5nLiBDYW5ub3QgcHJvY2VlZCB3aXRoIHN1Ym1pc3Npb24uJyk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogJ0Vycm9yJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgY2FzZSBpcyBub3QgY29uZmlndXJlZCBmb3IgcXVlcnkgbWFuYWdlbWVudC4nLFxuICAgICAgICAgIGZpZWxkSWQ6ICdmaWVsZC1pZCdcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTtcbiAgICBjb25zdCBjcmVhdGVFdmVudCQgPSB0aGlzLmNyZWF0ZUV2ZW50KGRhdGEpO1xuXG4gICAgaWYgKHRoaXMucXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuUkVTUE9ORCkge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyZWRUYXNrcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNyZWF0ZUV2ZW50U3Vic2NyaXB0aW9uID0gY3JlYXRlRXZlbnQkLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChjcmVhdGVFdmVudFJlc3BvbnNlKSA9PlxuICAgICAgICAgICAgdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuY29tcGxldGVUYXNrKFxuICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkVGFza3NbMF0uaWQsXG4gICAgICAgICAgICAgIHRoaXMuY2FzZVZpZXdUcmlnZ2VyLm5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmZpbmFsaXNlU3VibWlzc2lvbigpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6IE5vIHRhc2sgdG8gY29tcGxldGUgd2FzIGZvdW5kJyk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ0Vycm9yJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTm8gdGFzayB0byBjb21wbGV0ZSB3YXMgZm91bmQnLFxuICAgICAgICAgICAgZmllbGRJZDogJ2ZpZWxkLWlkJ1xuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVFdmVudFN1YnNjcmlwdGlvbiA9IGNyZWF0ZUV2ZW50JC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLmZpbmFsaXNlU3VibWlzc2lvbigpLFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFdmVudChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VzU2VydmljZS5jcmVhdGVFdmVudCh0aGlzLmNhc2VEZXRhaWxzLCB7XG4gICAgICBkYXRhLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgaWQ6IHRoaXMuY2FzZVZpZXdUcmlnZ2VyPy5pZCxcbiAgICAgICAgc3VtbWFyeTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmNhc2VWaWV3VHJpZ2dlcj8uZGVzY3JpcHRpb25cbiAgICAgIH0sXG4gICAgICBldmVudF90b2tlbjogdGhpcy5ldmVudERhdGE/LmV2ZW50X3Rva2VuLFxuICAgICAgaWdub3JlX3dhcm5pbmc6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmFsaXNlU3VibWlzc2lvbigpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U3VibWl0dGVkLmVtaXQodHJ1ZSk7XG4gICAgdGhpcy5xdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlLmNsZWFyUXVhbGlmeWluZ1F1ZXN0aW9uU2VsZWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBBUEkgY2FsbHM6JywgZXJyb3IpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLycsICdzZXJ2aWNlLWRvd24nXSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uRGF0YSgpOiBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiB7XG4gICAgY29uc3QgY3VycmVudFVzZXJEZXRhaWxzID0gSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKFVTRVJfREVUQUlMUykpO1xuXG4gICAgY29uc3QgY2FzZU1lc3NhZ2UgPSB0aGlzLnF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gUXVlcnlDcmVhdGVDb250ZXh0Lk5FV19RVUVSWVxuICAgICAgPyBRdWVyeU1hbmFnZW1lbnRVdGlscy5nZXROZXdRdWVyeURhdGEodGhpcy5mb3JtR3JvdXAsIGN1cnJlbnRVc2VyRGV0YWlscylcbiAgICAgIDogUXVlcnlNYW5hZ2VtZW50VXRpbHMuZ2V0UmVzcG9uZE9yRm9sbG93dXBRdWVyeURhdGEodGhpcy5mb3JtR3JvdXAsIHRoaXMucXVlcnlJdGVtLCBjdXJyZW50VXNlckRldGFpbHMpO1xuXG4gICAgY29uc3QgbWVzc2FnZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGF0YWlkOyAvLyBHZXQgdGhlIG1lc3NhZ2UgSUQgZnJvbSByb3V0ZSBwYXJhbXMgKGlmIHByZXNlbnQpXG4gICAgY29uc3QgaXNOZXdRdWVyeSA9IHRoaXMucXVlcnlDcmVhdGVDb250ZXh0ID09PSBRdWVyeUNyZWF0ZUNvbnRleHQuTkVXX1FVRVJZOyAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbmV3IHF1ZXJ5XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgSUQgaGFzIGJlZW4gc2V0IGR5bmFtaWNhbGx5XG4gICAgaWYgKCF0aGlzLmZpZWxkSWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBGaWVsZCBJRCBmb3IgQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uIG5vdCBmb3VuZC4gQ2Fubm90IHByb2NlZWQgd2l0aCBkYXRhIGdlbmVyYXRpb24uJyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnc2VydmljZS1kb3duJ10pO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgbmV3IHF1ZXJ5IGRhdGEgc3RydWN0dXJlXG4gICAgY29uc3QgbmV3UXVlcnlEYXRhOiBRbUNhc2VRdWVyaWVzQ29sbGVjdGlvbiA9IHt9O1xuXG4gICAgaWYgKHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBsZXQgbWF0Y2hlZENvbGxlY3Rpb247XG5cbiAgICAgIC8vIElmIGl0J3Mgbm90IGEgbmV3IHF1ZXJ5LCB0cnkgdG8gZmluZCB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbiB3aXRoIHRoZSBtZXNzYWdlIElEXG4gICAgICBpZiAoIWlzTmV3UXVlcnkgJiYgbWVzc2FnZUlkKSB7XG4gICAgICAgIG1hdGNoZWRDb2xsZWN0aW9uID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+XG4gICAgICAgICAgY29sbGVjdGlvbi5jYXNlTWVzc2FnZXMuc29tZSgobWVzc2FnZSkgPT4gbWVzc2FnZS52YWx1ZS5pZCA9PT0gbWVzc2FnZUlkKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZENvbGxlY3Rpb24pIHtcbiAgICAgICAgLy8gQXBwZW5kIHRoZSBuZXcgY2FzZSBtZXNzYWdlIHRvIHRoZSBtYXRjaGVkIGNvbGxlY3Rpb24ncyBjYXNlTWVzc2FnZXNcbiAgICAgICAgbWF0Y2hlZENvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBjYXNlTWVzc2FnZVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIG1hdGNoZWQgY29sbGVjdGlvbiB0byBuZXdRdWVyeURhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgLi4ubWF0Y2hlZENvbGxlY3Rpb24sIC8vIEtlZXAgZXhpc3RpbmcgZGF0YSBpbnRhY3RcbiAgICAgICAgICBjYXNlTWVzc2FnZXM6IFsuLi5tYXRjaGVkQ29sbGVjdGlvbi5jYXNlTWVzc2FnZXNdIC8vIEFwcGVuZCB0aGUgdXBkYXRlZCBtZXNzYWdlcyBhcnJheVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXNlIHBhcnR5TmFtZSBmcm9tIHRoZSBmaXJzdCBjb2xsZWN0aW9uIChhc3N1bXB0aW9uOiBhbGwgc2hhcmUgdGhlIHNhbWUgcGFydHkpXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsUGFydHlOYW1lID0gdGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zWzBdLnBhcnR5TmFtZTtcblxuICAgICAgICAvLyBJZiBubyBjb2xsZWN0aW9uIG1hdGNoZXMsIG9yIGl0J3MgYSBuZXcgcXVlcnlcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0gPSB7XG4gICAgICAgICAgcGFydHlOYW1lOiBvcmlnaW5hbFBhcnR5TmFtZSxcbiAgICAgICAgICByb2xlT25DYXNlOiAnJywgLy8gTm90IHJldHVybmVkIGJ5IENDRFxuICAgICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIElmIGNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgaXMgbm90IGVtcHR5LCBhcHBlbmQgaXRzIGRhdGFcbiAgICAgICAgbmV3UXVlcnlEYXRhW3RoaXMuZmllbGRJZF0uY2FzZU1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgLi4udGhpcy5jYXNlUXVlcmllc0NvbGxlY3Rpb25zLmZsYXRNYXAoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uY2FzZU1lc3NhZ2VzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgY29sbGVjdGlvbnMsIGNyZWF0ZSBhIG5ldyBvbmUgKGUuZy4sIGZvciBuZXcgcXVlcmllcylcbiAgICAgIG5ld1F1ZXJ5RGF0YVt0aGlzLmZpZWxkSWRdID0ge1xuICAgICAgICBwYXJ0eU5hbWU6IGN1cnJlbnRVc2VyRGV0YWlscz8ubmFtZSB8fCBgJHtjdXJyZW50VXNlckRldGFpbHM/LmZvcmVuYW1lfSAke2N1cnJlbnRVc2VyRGV0YWlscz8uc3VybmFtZX1gLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIHJvbGVPbkNhc2U6ICcnLCAvLyBOb3QgcmV0dXJuZWQgYnkgQ0NEXG4gICAgICAgIGNhc2VNZXNzYWdlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBudWxsLFxuICAgICAgICAgICAgdmFsdWU6IGNhc2VNZXNzYWdlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3UXVlcnlEYXRhO1xuICB9XG5cbiAgcHVibGljIHNldENhc2VRdWVyaWVzQ29sbGVjdGlvbkRhdGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXZlbnREYXRhPy5jYXNlX2ZpZWxkcz8ubGVuZ3RoKSB7XG4gICAgICAvLyBXb3JrYXJvdW5kIGZvciBtdWx0aXBsZSBxbUNhc2VRdWVyaWVzQ29sbGVjdGlvbnMgdGhhdCBhcmUgbm90IHRvIGJlIGFwcGVhcmluZyBpbiB0aGUgZXZlbnREYXRhXG4gICAgICAvLyBDb3VudHMgbnVtYmVyIHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uc1xuICAgICAgY29uc3QgbnVtYmVyT2ZDYXNlUXVlcmllc0NvbGxlY3Rpb25zID0gdGhpcy5ldmVudERhdGE/LmNhc2VfZmllbGRzPy5maWx0ZXIoXG4gICAgICAgIChjYXNlRmllbGQpID0+XG4gICAgICAgICAgY2FzZUZpZWxkLmZpZWxkX3R5cGUuaWQgPT09IHRoaXMuQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiZcbiAgICAgICAgICBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSB0aGlzLkZJRUxEX1RZUEVfQ09NUExFWCAmJiBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSB0aGlzLkRJU1BMQVlfQ09OVEVYVF9SRUFET05MWVxuICAgICAgKT8ubGVuZ3RoIHx8IDA7XG5cbiAgICAgIHRoaXMuY2FzZVF1ZXJpZXNDb2xsZWN0aW9ucyA9IHRoaXMuZXZlbnREYXRhLmNhc2VfZmllbGRzLnJlZHVjZSgoYWNjLCBjYXNlRmllbGQpID0+IHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgSUQgYmFzZWQgb24gY29uZGl0aW9ucywgdXBkYXRpbmcgdGhpcy5maWVsZElkIGR5bmFtaWNhbGx5XG4gICAgICAgIHRoaXMuZXh0cmFjdENhc2VRdWVyeUlkKGNhc2VGaWVsZCwgbnVtYmVyT2ZDYXNlUXVlcmllc0NvbGxlY3Rpb25zKTtcblxuICAgICAgICBjb25zdCBleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQgPSBRdWVyeU1hbmFnZW1lbnRVdGlscy5leHRyYWN0Q2FzZVF1ZXJpZXNGcm9tQ2FzZUZpZWxkKGNhc2VGaWVsZCk7XG4gICAgICAgIGlmIChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQgJiYgdHlwZW9mIGV4dHJhY3RlZENhc2VRdWVyaWVzRnJvbUNhc2VGaWVsZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBhY2MucHVzaChleHRyYWN0ZWRDYXNlUXVlcmllc0Zyb21DYXNlRmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0Q2FzZVF1ZXJ5SWQoZGF0YTogQ2FzZUZpZWxkLCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgeyBpZCwgdmFsdWUgfSA9IGRhdGE7XG4gICAgY29uc3QgbWVzc2FnZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZGF0YWlkO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGZpZWxkX3R5cGUgbWF0Y2hlcyBDYXNlUXVlcmllc0NvbGxlY3Rpb24gYW5kIHR5cGUgaXMgQ29tcGxleFxuICAgIGlmIChkYXRhLmZpZWxkX3R5cGUuaWQgPT09IHRoaXMuQ0FTRV9RVUVSSUVTX0NPTExFQ1RJT05fSUQgJiYgZGF0YS5maWVsZF90eXBlLnR5cGUgPT09IHRoaXMuRklFTERfVFlQRV9DT01QTEVYKSB7XG4gICAgICBpZiAodGhpcy5pc05ld1F1ZXJ5Q29udGV4dChkYXRhKSkge1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHFtQ2FzZVF1ZXJpZXNDb2xsZWN0aW9uLCBwaWNrIHRoZSBvbmUgd2l0aCB0aGUgbG93ZXN0IG9yZGVyXG4gICAgICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaGFuZGxlTXVsdGlwbGVDb2xsZWN0aW9ucygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFNldCB0aGUgZmllbGQgSUQgZHluYW1pY2FsbHkgYmFzZWQgb24gdGhlIGV4dHJhY3RlZCBkYXRhXG4gICAgICAgICAgdGhpcy5maWVsZElkID0gaWQ7IC8vIFN0b3JlIHRoZSBJRCBmb3IgdXNlIGluIGdlbmVyYXRpbmcgbmV3UXVlcnlEYXRhXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgbWVzc2FnZUlkIGlzIHByZXNlbnQsIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBtZXNzYWdlXG4gICAgICB0aGlzLnNldE1lc3NhZ2VGaWVsZElkKG1lc3NhZ2VJZCwgdmFsdWUsIGlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE1lc3NhZ2VGaWVsZElkKG1lc3NhZ2VJZCwgdmFsdWUsIGlkOiBzdHJpbmcpIHtcbiAgICBpZiAobWVzc2FnZUlkICYmIHZhbHVlPy5jYXNlTWVzc2FnZXMpIHtcbiAgICAgIC8vIElmIGEgbWF0Y2hpbmcgbWVzc2FnZSBpcyBmb3VuZCwgc2V0IHRoZSBmaWVsZElkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGlkXG4gICAgICBjb25zdCBtYXRjaGVkTWVzc2FnZSA9IHZhbHVlPy5jYXNlTWVzc2FnZXM/LmZpbmQoKG1lc3NhZ2UpID0+IG1lc3NhZ2UudmFsdWUuaWQgPT09IG1lc3NhZ2VJZCk7XG4gICAgICBpZiAobWF0Y2hlZE1lc3NhZ2UpIHtcbiAgICAgICAgdGhpcy5maWVsZElkID0gaWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc05ld1F1ZXJ5Q29udGV4dChkYXRhOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeUNyZWF0ZUNvbnRleHQgPT09IFF1ZXJ5Q3JlYXRlQ29udGV4dC5ORVdfUVVFUlkgJiYgZGF0YS5kaXNwbGF5X2NvbnRleHQgIT09IHRoaXMuRElTUExBWV9DT05URVhUX1JFQURPTkxZO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNdWx0aXBsZUNvbGxlY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbklkID0gdGhpcy5jYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkO1xuXG4gICAgaWYgKCFqdXJpc2RpY3Rpb25JZCkge1xuICAgICAgY29uc29sZS5lcnJvcignSnVyaXNkaWN0aW9uIElEIGlzIG1pc3NpbmcuJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Q29sbGVjdGlvblNlbGVjdGlvbk1ldGhvZChqdXJpc2RpY3Rpb25JZCkgPT09IHRoaXMuUU1fU0VMRUNUX0ZJUlNUX0NPTExFQ1RJT04pIHtcbiAgICAgIC8vIFBpY2sgdGhlIGNvbGxlY3Rpb24gd2l0aCB0aGUgbG93ZXN0IG9yZGVyXG4gICAgICB0aGlzLmZpZWxkSWQgPSB0aGlzLmdldENhc2VRdWVyaWVzQ29sbGVjdGlvbkZpZWxkT3JkZXJGcm9tV2l6YXJkUGFnZXMoKT8uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERpc3BsYXkgRXJyb3IsIGZvciBub3csIHVudGlsIEVYVUktMjY0NCBpcyBpbXBsZW1lbnRlZFxuICAgICAgY29uc29sZS5lcnJvcihgRXJyb3I6IE11bHRpcGxlIENhc2VRdWVyaWVzQ29sbGVjdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciB0aGUgJHtqdXJpc2RpY3Rpb25JZH0ganVyaXNkaWN0aW9uYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VRdWVyaWVzQ29sbGVjdGlvbkZpZWxkT3JkZXJGcm9tV2l6YXJkUGFnZXMoKTogQ2FzZUZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjYW5kaWRhdGVGaWVsZHMgPSB0aGlzLmV2ZW50RGF0YT8uY2FzZV9maWVsZHM/LmZpbHRlcihcbiAgICAgIChmaWVsZCkgPT5cbiAgICAgICAgZmllbGQuZmllbGRfdHlwZS5pZCA9PT0gdGhpcy5DQVNFX1FVRVJJRVNfQ09MTEVDVElPTl9JRCAmJlxuICAgICAgICBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IHRoaXMuRklFTERfVFlQRV9DT01QTEVYICYmXG4gICAgICAgIGZpZWxkLmRpc3BsYXlfY29udGV4dCAhPT0gdGhpcy5ESVNQTEFZX0NPTlRFWFRfUkVBRE9OTFlcbiAgICApO1xuXG4gICAgaWYgKCFjYW5kaWRhdGVGaWVsZHM/Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZpcnN0UGFnZUZpZWxkcyA9IHRoaXMuZXZlbnREYXRhPy53aXphcmRfcGFnZXM/LlswXT8ud2l6YXJkX3BhZ2VfZmllbGRzO1xuXG4gICAgaWYgKCFmaXJzdFBhZ2VGaWVsZHMpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gY2FuZGlkYXRlRmllbGRzXG4gICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCB3aXphcmRGaWVsZCA9IGZpcnN0UGFnZUZpZWxkcy5maW5kKGYgPT4gZi5jYXNlX2ZpZWxkX2lkID09PSBmaWVsZC5pZCk7XG4gICAgICAgIHJldHVybiB7IGZpZWxkLCBvcmRlcjogd2l6YXJkRmllbGQ/Lm9yZGVyID8/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIH07XG4gICAgICB9KVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKVswXT8uZmllbGQ7XG4gIH1cblxuICBwcml2YXRlIGdldENvbGxlY3Rpb25TZWxlY3Rpb25NZXRob2QoanVyaXNkaWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBqdXJpc2RpY3Rpb24udG9VcHBlckNhc2UoKSA9PT0gdGhpcy5DSVZJTF9KVVJJU0RJQ1RJT04gPyB0aGlzLlFNX1NFTEVDVF9GSVJTVF9DT0xMRUNUSU9OIDogdGhpcy5RTV9DT0xMRUNUSU9OX1BST01QVDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9jdW1lbnRBdHRhY2htZW50cygpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2htZW50c1ZhbHVlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdhdHRhY2htZW50cycpLnZhbHVlO1xuICAgIGlmIChhdHRhY2htZW50c1ZhbHVlICYmIGF0dGFjaG1lbnRzVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZG9jdW1lbnRzID0gYXR0YWNobWVudHNWYWx1ZTtcbiAgICAgIHRoaXMuYXR0YWNobWVudHMgPSBkb2N1bWVudHMubWFwKFF1ZXJ5TWFuYWdlbWVudFV0aWxzLmRvY3VtZW50VG9Db2xsZWN0aW9uRm9ybURvY3VtZW50KTtcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzLWZyb20tZGVza3RvcFwiPlxuICAgIDwhLS0gRXJyb3IgbWVzc2FnZSBzdW1tYXJ5IC0tPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiIHJvbGU9XCJhbGVydFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCI+XG4gICAgIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICAge3sgJ1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgPC9oMj5cbiAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3JNZXNzYWdlIG9mIGVycm9yTWVzc2FnZXNcIj5cbiAgICAgICAgICAgPGEgW2lkXT1cIidlcnJvci0nICsgZXJyb3JNZXNzYWdlLmZpZWxkSWRcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgICAgICBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JcIj57eyBlcnJvck1lc3NhZ2UuZGVzY3JpcHRpb24gfCBycHhUcmFuc2xhdGUgfX08L2E+XG4gICAgICAgICA8L2xpPlxuICAgICAgIDwvdWw+XG4gICAgIDwvZGl2PlxuICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLk5FV19RVUVSWVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPnt7ICdSYWlzZSBhIHF1ZXJ5JyB8IHJweFRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVlcnlDcmVhdGVDb250ZXh0ID09PSBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtLlJFU1BPTkQ7IGVsc2UgZGVmYXVsdENoZWNrWW91ckFuc3dlcnNUaXRsZVwiPlxuICAgICAgICB7eyAnUmV2aWV3IHF1ZXJ5IHJlc3BvbnNlIGRldGFpbHMnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2hlY2tZb3VyQW5zd2Vyc1RpdGxlPlxuICAgICAgICB7eyAnUmV2aWV3IHF1ZXJ5IGRldGFpbHMnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCI+XG4gICAgICA8Y2NkLXF1ZXJ5LWNhc2UtZGV0YWlscy1oZWFkZXIgW2Nhc2VEZXRhaWxzXT1cImNhc2VEZXRhaWxzXCI+PC9jY2QtcXVlcnktY2FzZS1kZXRhaWxzLWhlYWRlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkbCAqbmdJZj1cInF1ZXJ5Q3JlYXRlQ29udGV4dCAhPT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5GT0xMT1dVUFwiIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/ICdTdWJtaXR0ZWQgcXVlcnknIDogJ1F1ZXJ5IHN1YmplY3QnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvZHQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fdmFsdWVcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORCA/IHF1ZXJ5SXRlbS5zdWJqZWN0IDogZm9ybUdyb3VwLmdldCgnc3ViamVjdCcpPy52YWx1ZSB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSAgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXCIgXG4gICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8ZGwgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7IHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5SRVNQT05EID8gJ1Jlc3BvbnNlIGRldGFpbCcgOiAnUXVlcnkgZGV0YWlsJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgZm9ybUdyb3VwLmdldCgnYm9keScpPy52YWx1ZSB9fVxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8ZGwgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZXCIgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7ICdJcyB0aGUgcXVlcnkgaGVhcmluZyByZWxhdGVkPycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCdpc0hlYXJpbmdSZWxhdGVkJyk/LnZhbHVlID09PSB0cnVlOyBlbHNlIGlzSGVhcmluZ1JlbGF0ZWRGYWxzZVwiPlxuICAgICAgICAgICAge3sgJ0lzIHRoZSBxdWVyeSBoZWFyaW5nIHJlbGF0ZWQ/JyB8IHJweFRyYW5zbGF0ZTogbnVsbCA6ICdZZXMnIH19XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpc0hlYXJpbmdSZWxhdGVkRmFsc2U+XG4gICAgICAgICAgICB7eyAnSXMgdGhlIHF1ZXJ5IGhlYXJpbmcgcmVsYXRlZD8nIHwgcnB4VHJhbnNsYXRlOiBudWxsIDogJ05vJyB9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImdvdnVrLWxpbmtcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICAgIHt7ICdDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2RkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCdpc0hlYXJpbmdSZWxhdGVkJyk/LnZhbHVlXCIgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3Jvd1wiPlxuICAgICAgICA8ZHQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2tleVwiPlxuICAgICAgICAgIHt7IHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5ORVdfUVVFUllcbiAgICAgICAgICAgID8gJ1doYXQgaXMgdGhlIGRhdGUgb2YgdGhlIGhlYXJpbmc/J1xuICAgICAgICAgICAgOiAnV2hhdCBpcyB0aGUgZGF0ZSBvZiB0aGUgaGVhcmluZyB5b3VyIHF1ZXJ5IGlzIHJlbGF0ZWQgdG8/JyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2R0PlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlXCI+XG4gICAgICAgICAge3sgZm9ybUdyb3VwLmdldCgnaGVhcmluZ0RhdGUnKT8udmFsdWUgfCBkYXRlOiAnZGQgTU1NIHl5eXknIH19XG4gICAgICAgIDwvZGQ+XG4gICAgICAgIDxkZCBjbGFzcz1cImdvdnVrLXN1bW1hcnktbGlzdF9fYWN0aW9uc1wiPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cImdvdnVrLWxpbmtcIiAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAgICAgIHt7ICdDaGFuZ2UnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2RkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kbD5cbiAgICA8ZGwgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3QgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIiAqbmdJZj1cInRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZS5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19yb3dcIj5cbiAgICAgICAgPGR0IGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X19rZXlcIj5cbiAgICAgICAgICB7eyBxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZID8gJ1VwbG9hZCBhIGZpbGUgdG8gdGhlIHF1ZXJ5JyA6ICdEb2N1bWVudCBhdHRhY2hlZCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kdD5cbiAgICAgICAgPGRkIGNsYXNzPVwiZ292dWstc3VtbWFyeS1saXN0X192YWx1ZSBnb3Z1ay1zdW1tYXJ5LWxpc3RfX3ZhbHVlLS1kb2N1bWVudEF0dGFjaGVkXCI+XG4gICAgICAgICAgPGNjZC1xdWVyeS1hdHRhY2htZW50cy1yZWFkXG4gICAgICAgICAgICAqbmdJZj1cInRoaXMuZm9ybUdyb3VwLmdldCgnYXR0YWNobWVudHMnKS52YWx1ZVwiXG4gICAgICAgICAgICBbYXR0YWNobWVudHNdPVwiYXR0YWNobWVudHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2NjZC1xdWVyeS1hdHRhY2htZW50cy1yZWFkPlxuICAgICAgICA8L2RkPlxuICAgICAgICA8ZGQgY2xhc3M9XCJnb3Z1ay1zdW1tYXJ5LWxpc3RfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCIgKGNsaWNrKT1cImdvQmFjaygpXCI+XG4gICAgICAgICAgICB7eyAnQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGw+XG5cbiAgICA8YnI+XG5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeSBnb3Z1ay0hLW1hcmdpbi1yaWdodC0zXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIj5cbiAgICAgICAge3sgJ1ByZXZpb3VzJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgIHt7ICdTdWJtaXQnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGNjZC1xdWVyeS1ldmVudC1jb21wbGV0aW9uIFtldmVudENvbXBsZXRpb25QYXJhbXNdPVwiZXZlbnRDb21wbGV0aW9uUGFyYW1zXCI+ICAgIFxuICA8L2NjZC1xdWVyeS1ldmVudC1jb21wbGV0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -4,8 +4,7 @@ import { QueryCreateContext } from '../../models/query-create-context.enum';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/router";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "
|
|
8
|
-
import * as i4 from "rpx-xui-translation";
|
|
7
|
+
import * as i3 from "rpx-xui-translation";
|
|
9
8
|
function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
10
9
|
i0.ɵɵelementContainerStart(0);
|
|
11
10
|
i0.ɵɵelementStart(1, "div", 5)(2, "h1", 6);
|
|
@@ -13,25 +12,27 @@ function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if
|
|
|
13
12
|
i0.ɵɵpipe(4, "rpxTranslate");
|
|
14
13
|
i0.ɵɵelementEnd();
|
|
15
14
|
i0.ɵɵelementStart(5, "div", 7);
|
|
16
|
-
i0.ɵɵ
|
|
15
|
+
i0.ɵɵtext(6);
|
|
17
16
|
i0.ɵɵpipe(7, "rpxTranslate");
|
|
18
17
|
i0.ɵɵelementEnd()();
|
|
19
|
-
i0.ɵɵelementStart(8, "div",
|
|
18
|
+
i0.ɵɵelementStart(8, "div", 8)(9, "h3", 9);
|
|
20
19
|
i0.ɵɵtext(10);
|
|
21
20
|
i0.ɵɵpipe(11, "rpxTranslate");
|
|
22
21
|
i0.ɵɵelementEnd();
|
|
23
|
-
i0.ɵɵ
|
|
24
|
-
i0.ɵɵ
|
|
25
|
-
i0.ɵɵ
|
|
26
|
-
i0.ɵɵ
|
|
27
|
-
i0.ɵɵ
|
|
22
|
+
i0.ɵɵelementStart(12, "p");
|
|
23
|
+
i0.ɵɵtext(13);
|
|
24
|
+
i0.ɵɵpipe(14, "rpxTranslate");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
i0.ɵɵelementStart(15, "p");
|
|
27
|
+
i0.ɵɵtext(16);
|
|
28
|
+
i0.ɵɵpipe(17, "rpxTranslate");
|
|
28
29
|
i0.ɵɵelementEnd();
|
|
29
|
-
i0.ɵɵelementStart(
|
|
30
|
-
i0.ɵɵtext(
|
|
31
|
-
i0.ɵɵpipe(
|
|
32
|
-
i0.ɵɵelementStart(
|
|
33
|
-
i0.ɵɵtext(
|
|
34
|
-
i0.ɵɵpipe(
|
|
30
|
+
i0.ɵɵelementStart(18, "p");
|
|
31
|
+
i0.ɵɵtext(19);
|
|
32
|
+
i0.ɵɵpipe(20, "rpxTranslate");
|
|
33
|
+
i0.ɵɵelementStart(21, "a", 10);
|
|
34
|
+
i0.ɵɵtext(22);
|
|
35
|
+
i0.ɵɵpipe(23, "rpxTranslate");
|
|
35
36
|
i0.ɵɵelementEnd()()();
|
|
36
37
|
i0.ɵɵelementContainerEnd();
|
|
37
38
|
} if (rf & 2) {
|
|
@@ -39,19 +40,19 @@ function QueryConfirmationComponent_main_0_ng_container_3_Template(rf, ctx) { if
|
|
|
39
40
|
i0.ɵɵadvance(3);
|
|
40
41
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, "Query submitted"));
|
|
41
42
|
i0.ɵɵadvance(3);
|
|
42
|
-
i0.ɵɵ
|
|
43
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 11, "Your query has been sent to HMCTS"));
|
|
43
44
|
i0.ɵɵadvance(4);
|
|
44
45
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, "What happens next"));
|
|
45
|
-
i0.ɵɵadvance(2);
|
|
46
|
-
i0.ɵɵproperty("content", i0.ɵɵpipeBind1(13, 15, ctx_r0.callbackConfirmationMessageText == null ? null : ctx_r0.callbackConfirmationMessageText.body));
|
|
47
46
|
i0.ɵɵadvance(3);
|
|
48
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
47
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, "Our team will read your query and will respond"));
|
|
48
|
+
i0.ɵɵadvance(3);
|
|
49
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 17, "When the response is available it will be added to the 'Queries' section."));
|
|
49
50
|
i0.ɵɵadvance(3);
|
|
50
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
51
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 19, "You can"), " ");
|
|
51
52
|
i0.ɵɵadvance(2);
|
|
52
53
|
i0.ɵɵpropertyInterpolate1("routerLink", "/cases/case-details/", ctx_r0.caseId, "");
|
|
53
54
|
i0.ɵɵadvance();
|
|
54
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
55
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 21, "Go back to the case"));
|
|
55
56
|
} }
|
|
56
57
|
function QueryConfirmationComponent_main_0_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
57
58
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -59,19 +60,19 @@ function QueryConfirmationComponent_main_0_ng_container_4_Template(rf, ctx) { if
|
|
|
59
60
|
i0.ɵɵtext(3);
|
|
60
61
|
i0.ɵɵpipe(4, "rpxTranslate");
|
|
61
62
|
i0.ɵɵelementEnd();
|
|
62
|
-
i0.ɵɵelementStart(5, "div",
|
|
63
|
+
i0.ɵɵelementStart(5, "div", 7);
|
|
63
64
|
i0.ɵɵtext(6);
|
|
64
65
|
i0.ɵɵpipe(7, "rpxTranslate");
|
|
65
66
|
i0.ɵɵelementEnd()();
|
|
66
|
-
i0.ɵɵelementStart(8, "div",
|
|
67
|
+
i0.ɵɵelementStart(8, "div", 8);
|
|
67
68
|
i0.ɵɵtext(9);
|
|
68
69
|
i0.ɵɵpipe(10, "rpxTranslate");
|
|
69
|
-
i0.ɵɵelementStart(11, "a",
|
|
70
|
+
i0.ɵɵelementStart(11, "a", 11);
|
|
70
71
|
i0.ɵɵtext(12);
|
|
71
72
|
i0.ɵɵpipe(13, "rpxTranslate");
|
|
72
73
|
i0.ɵɵelementEnd();
|
|
73
74
|
i0.ɵɵtext(14, " or ");
|
|
74
|
-
i0.ɵɵelementStart(15, "a",
|
|
75
|
+
i0.ɵɵelementStart(15, "a", 12);
|
|
75
76
|
i0.ɵɵtext(16);
|
|
76
77
|
i0.ɵɵpipe(17, "rpxTranslate");
|
|
77
78
|
i0.ɵɵelementEnd()();
|
|
@@ -95,7 +96,7 @@ function QueryConfirmationComponent_main_0_ng_container_4_Template(rf, ctx) { if
|
|
|
95
96
|
} }
|
|
96
97
|
function QueryConfirmationComponent_main_0_Template(rf, ctx) { if (rf & 1) {
|
|
97
98
|
i0.ɵɵelementStart(0, "main", 1)(1, "div", 2)(2, "div", 3);
|
|
98
|
-
i0.ɵɵtemplate(3, QueryConfirmationComponent_main_0_ng_container_3_Template,
|
|
99
|
+
i0.ɵɵtemplate(3, QueryConfirmationComponent_main_0_ng_container_3_Template, 24, 23, "ng-container", 4)(4, QueryConfirmationComponent_main_0_ng_container_4_Template, 18, 19, "ng-container", 4);
|
|
99
100
|
i0.ɵɵelementEnd()()();
|
|
100
101
|
} if (rf & 2) {
|
|
101
102
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -107,7 +108,6 @@ function QueryConfirmationComponent_main_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
107
108
|
export class QueryConfirmationComponent {
|
|
108
109
|
route;
|
|
109
110
|
queryCreateContext;
|
|
110
|
-
callbackConfirmationMessageText = {};
|
|
111
111
|
caseId = '';
|
|
112
112
|
queryCreateContextEnum = QueryCreateContext;
|
|
113
113
|
constructor(route) {
|
|
@@ -116,20 +116,18 @@ export class QueryConfirmationComponent {
|
|
|
116
116
|
ngOnInit() {
|
|
117
117
|
this.caseId = this.route.snapshot.params.cid;
|
|
118
118
|
}
|
|
119
|
-
static ɵfac = function QueryConfirmationComponent_Factory(
|
|
120
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryConfirmationComponent, selectors: [["ccd-query-confirmation"]], inputs: { queryCreateContext: "queryCreateContext"
|
|
119
|
+
static ɵfac = function QueryConfirmationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryConfirmationComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
|
|
120
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryConfirmationComponent, selectors: [["ccd-query-confirmation"]], inputs: { queryCreateContext: "queryCreateContext" }, decls: 1, vars: 1, consts: [["class", "govuk-main-wrapper", 4, "ngIf"], [1, "govuk-main-wrapper"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], [4, "ngIf"], [1, "govuk-panel", "govuk-panel--confirmation"], [1, "govuk-panel__title"], [1, "govuk-panel__body"], [1, "govuk-body"], [1, "govuk-heading-s"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "tasks-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"], ["id", "case-link", "href", "javascript:void(0)", 1, "govuk-link", 3, "routerLink"]], template: function QueryConfirmationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
121
121
|
i0.ɵɵtemplate(0, QueryConfirmationComponent_main_0_Template, 5, 2, "main", 0);
|
|
122
122
|
} if (rf & 2) {
|
|
123
123
|
i0.ɵɵproperty("ngIf", ctx.queryCreateContext);
|
|
124
|
-
} }, dependencies: [i2.NgIf, i1.RouterLink, i3.
|
|
124
|
+
} }, dependencies: [i2.NgIf, i1.RouterLink, i3.RpxTranslatePipe], encapsulation: 2 });
|
|
125
125
|
}
|
|
126
126
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryConfirmationComponent, [{
|
|
127
127
|
type: Component,
|
|
128
|
-
args: [{ selector: 'ccd-query-confirmation', template: "<main class=\"govuk-main-wrapper\" *ngIf=\"queryCreateContext\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY || queryCreateContext === queryCreateContextEnum.FOLLOWUP\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n <div class=\"
|
|
128
|
+
args: [{ selector: 'ccd-query-confirmation', template: "<main class=\"govuk-main-wrapper\" *ngIf=\"queryCreateContext\">\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY || queryCreateContext === queryCreateContextEnum.FOLLOWUP\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'Your query has been sent to HMCTS' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n <h3 class=\"govuk-heading-s\">{{'What happens next' | rpxTranslate}}</h3>\n <p>{{'Our team will read your query and will respond' | rpxTranslate}}</p>\n <p>{{'When the response is available it will be added to the \\'Queries\\' section.' | rpxTranslate}}</p>\n <p>\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </p>\n </div>\n </ng-container>\n <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n <div class=\"govuk-panel govuk-panel--confirmation\">\n <h1 class=\"govuk-panel__title\">{{'Query response submitted' | rpxTranslate}}</h1>\n <div class=\"govuk-panel__body\">{{'This query response has been added to the case' | rpxTranslate}}</div>\n </div>\n <div class=\"govuk-body\">\n {{'You can' | rpxTranslate}}\n <a class=\"govuk-link\" id=\"tasks-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}/tasks\">{{'return to tasks' | rpxTranslate}}</a> or\n <a class=\"govuk-link\" id=\"case-link\" href=\"javascript:void(0)\" routerLink=\"/cases/case-details/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n </div>\n </ng-container>\n </div>\n </div>\n</main>\n" }]
|
|
129
129
|
}], () => [{ type: i1.ActivatedRoute }], { queryCreateContext: [{
|
|
130
130
|
type: Input
|
|
131
|
-
}], callbackConfirmationMessageText: [{
|
|
132
|
-
type: Input
|
|
133
131
|
}] }); })();
|
|
134
132
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryConfirmationComponent, { className: "QueryConfirmationComponent", filePath: "lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.ts", lineNumber: 9 }); })();
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jb25maXJtYXRpb24vcXVlcnktY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jb25maXJtYXRpb24vcXVlcnktY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7O0lDQ3RFLDZCQUF3STtJQUVwSSxBQURGLDhCQUFtRCxZQUNsQjtJQUFBLFlBQW9DOztJQUFBLGlCQUFLO0lBQ3hFLDhCQUErQjtJQUFBLFlBQXNEOztJQUN2RixBQUR1RixpQkFBTSxFQUN2RjtJQUVKLEFBREYsOEJBQXdCLFlBQ007SUFBQSxhQUFzQzs7SUFBQSxpQkFBSztJQUN2RSwwQkFBRztJQUFBLGFBQW1FOztJQUFBLGlCQUFJO0lBQzFFLDBCQUFHO0lBQUEsYUFBZ0c7O0lBQUEsaUJBQUk7SUFDdkcsMEJBQUc7SUFDRCxhQUNBOztJQUFBLDhCQUE0RjtJQUFBLGFBQXdDOztJQUV4SSxBQURFLEFBRHNJLGlCQUFJLEVBQ3RJLEVBQ0E7Ozs7SUFYMkIsZUFBb0M7SUFBcEMsNkRBQW9DO0lBQ3BDLGVBQXNEO0lBQXRELGdGQUFzRDtJQUd6RCxlQUFzQztJQUF0QyxpRUFBc0M7SUFDL0QsZUFBbUU7SUFBbkUsOEZBQW1FO0lBQ25FLGVBQWdHO0lBQWhHLHlIQUFnRztJQUVqRyxlQUNBO0lBREEsa0VBQ0E7SUFBZ0QsZUFBMkM7SUFBM0Msa0ZBQTJDO0lBQUMsY0FBd0M7SUFBeEMsbUVBQXdDOzs7SUFJMUksNkJBQTRFO0lBRXhFLEFBREYsOEJBQW1ELFlBQ2xCO0lBQUEsWUFBNkM7O0lBQUEsaUJBQUs7SUFDakYsOEJBQStCO0lBQUEsWUFBbUU7O0lBQ3BHLEFBRG9HLGlCQUFNLEVBQ3BHO0lBQ04sOEJBQXdCO0lBQ3RCLFlBQ0E7O0lBQUEsOEJBQWtIO0lBQUEsYUFBb0M7O0lBQUEsaUJBQUk7SUFBQyxxQkFDM0o7SUFBQSw4QkFBMkc7SUFBQSxhQUF3Qzs7SUFDckosQUFEcUosaUJBQUksRUFDbko7Ozs7SUFQMkIsZUFBNkM7SUFBN0Msc0VBQTZDO0lBQzdDLGVBQW1FO0lBQW5FLDZGQUFtRTtJQUdsRyxlQUNBO0lBREEsa0VBQ0E7SUFBZ0UsZUFBaUQ7SUFBakQsd0ZBQWlEO0lBQUMsY0FBb0M7SUFBcEMsK0RBQW9DO0lBQ3ZGLGVBQTJDO0lBQTNDLGtGQUEyQztJQUFDLGNBQXdDO0lBQXhDLG1FQUF3Qzs7O0lBeEJ6SixBQURGLEFBREYsK0JBQTRELGFBQzlCLGFBQ2dCO0lBZ0J4QyxBQWZBLHNHQUF3SSx5RkFlNUQ7SUFhbEYsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRDs7O0lBNUJjLGVBQXVIO0lBQXZILG9LQUF1SDtJQWV2SCxjQUEyRDtJQUEzRCwwRkFBMkQ7O0FEVmhGLE1BQU0sT0FBTywwQkFBMEI7SUFNUjtJQUxiLGtCQUFrQixDQUFxQjtJQUVoRCxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7SUFFbkQsWUFBNkIsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFDbEQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDL0MsQ0FBQztvSEFYVSwwQkFBMEI7NkRBQTFCLDBCQUEwQjtZQ1J2Qyw2RUFBNEQ7O1lBQTFCLDZDQUF3Qjs7O2lGRFE3QywwQkFBMEI7Y0FKdEMsU0FBUzsyQkFDRSx3QkFBd0I7K0NBSWxCLGtCQUFrQjtrQkFBakMsS0FBSzs7a0ZBREssMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBRdWVyeUNyZWF0ZUNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlcnktY3JlYXRlLWNvbnRleHQuZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1xdWVyeS1jb25maXJtYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBRdWVyeUNvbmZpcm1hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBxdWVyeUNyZWF0ZUNvbnRleHQ6IFF1ZXJ5Q3JlYXRlQ29udGV4dDtcblxuICBwdWJsaWMgY2FzZUlkID0gJyc7XG4gIHB1YmxpYyBxdWVyeUNyZWF0ZUNvbnRleHRFbnVtID0gUXVlcnlDcmVhdGVDb250ZXh0O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5jaWQ7XG4gIH1cbn1cbiIsIjxtYWluIGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCIgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHRcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uTkVXX1FVRVJZIHx8IHF1ZXJ5Q3JlYXRlQ29udGV4dCA9PT0gcXVlcnlDcmVhdGVDb250ZXh0RW51bS5GT0xMT1dVUFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWwgZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvblwiPlxuICAgICAgICAgIDxoMSBjbGFzcz1cImdvdnVrLXBhbmVsX190aXRsZVwiPnt7J1F1ZXJ5IHN1Ym1pdHRlZCcgfCBycHhUcmFuc2xhdGV9fTwvaDE+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXBhbmVsX19ib2R5XCI+e3snWW91ciBxdWVyeSBoYXMgYmVlbiBzZW50IHRvIEhNQ1RTJyB8IHJweFRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImdvdnVrLWhlYWRpbmctc1wiPnt7J1doYXQgaGFwcGVucyBuZXh0JyB8IHJweFRyYW5zbGF0ZX19PC9oMz5cbiAgICAgICAgICA8cD57eydPdXIgdGVhbSB3aWxsIHJlYWQgeW91ciBxdWVyeSBhbmQgd2lsbCByZXNwb25kJyB8IHJweFRyYW5zbGF0ZX19PC9wPlxuICAgICAgICAgIDxwPnt7J1doZW4gdGhlIHJlc3BvbnNlIGlzIGF2YWlsYWJsZSBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBcXCdRdWVyaWVzXFwnIHNlY3Rpb24uJyB8IHJweFRyYW5zbGF0ZX19PC9wPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAge3snWW91IGNhbicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIHJvdXRlckxpbms9XCIvY2FzZXMvY2FzZS1kZXRhaWxzL3t7Y2FzZUlkfX1cIj57eydHbyBiYWNrIHRvIHRoZSBjYXNlJyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeUNyZWF0ZUNvbnRleHQgPT09IHF1ZXJ5Q3JlYXRlQ29udGV4dEVudW0uUkVTUE9ORFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcGFuZWwgZ292dWstcGFuZWwtLWNvbmZpcm1hdGlvblwiPlxuICAgICAgICAgIDxoMSBjbGFzcz1cImdvdnVrLXBhbmVsX190aXRsZVwiPnt7J1F1ZXJ5IHJlc3BvbnNlIHN1Ym1pdHRlZCcgfCBycHhUcmFuc2xhdGV9fTwvaDE+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXBhbmVsX19ib2R5XCI+e3snVGhpcyBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiBhZGRlZCB0byB0aGUgY2FzZScgfCBycHhUcmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJvZHlcIj5cbiAgICAgICAgICB7eydZb3UgY2FuJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaWQ9XCJ0YXNrcy1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIHJvdXRlckxpbms9XCIvY2FzZXMvY2FzZS1kZXRhaWxzL3t7Y2FzZUlkfX0vdGFza3NcIj57eydyZXR1cm4gdG8gdGFza3MnIHwgcnB4VHJhbnNsYXRlfX08L2E+IG9yXG4gICAgICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaWQ9XCJjYXNlLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgcm91dGVyTGluaz1cIi9jYXNlcy9jYXNlLWRldGFpbHMve3tjYXNlSWR9fVwiPnt7J0dvIGJhY2sgdG8gdGhlIGNhc2UnIHwgcnB4VHJhbnNsYXRlfX08L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9tYWluPlxuIl19
|