@hmcts/ccd-case-ui-toolkit 7.1.56 → 7.1.57-angular-upgrade-rc1
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 -1
- 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 +5 -6
- 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 +4 -4
- 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 +6 -7
- 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 +7 -9
- 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 +10 -11
- 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 +9 -5
- 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 +8 -10
- 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 +5 -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 +3 -6
- package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +5 -9
- 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 +49 -50
- 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 +2 -2
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +4 -4
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +4 -4
- 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 +2 -2
- 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 +17 -12
- 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 +40 -26
- 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 +2 -2
- 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 +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +2 -2
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +2 -2
- 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 +2 -2
- 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 +4 -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/read-query-management-field.component.mjs +2 -2
- 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 +6 -8
- 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 +6 -8
- 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 +4 -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 +9 -6
- package/esm2022/lib/shared/components/search-result/search-result.module.mjs +2 -2
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +4 -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 +25 -5
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +2 -2
- package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +3 -2
- package/esm2022/lib/shared/domain/definition/case-field.model.mjs +8 -1
- 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 +17 -5
- 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 +7 -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 +582 -522
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/lib/app.config.d.ts +2 -0
- package/lib/app.config.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +0 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +1 -0
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +1 -2
- package/lib/shared/components/palette/base-field/field-read-label.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -2
- package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
- package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts.map +1 -1
- package/lib/shared/components/palette/label/label-field.component.d.ts +1 -2
- package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/markdown/markdown.component.d.ts +6 -5
- package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +1 -1
- package/lib/shared/components/search-filters/search-filters.component.d.ts.map +1 -1
- package/lib/shared/components/search-result/search-result.component.d.ts +1 -0
- package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -1
- package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts.map +1 -1
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +3 -1
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts.map +1 -1
- package/lib/shared/directives/substitutor/services/placeholder.service.d.ts.map +1 -1
- package/lib/shared/domain/definition/case-field.model.d.ts +3 -0
- package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
- package/lib/shared/services/document-management/document-management.service.d.ts +3 -1
- package/lib/shared/services/document-management/document-management.service.d.ts.map +1 -1
- package/lib/shared/services/fields/fields.utils.d.ts +1 -0
- package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -77,6 +77,8 @@ export class SearchFiltersComponent {
|
|
|
77
77
|
onJurisdiction = new EventEmitter();
|
|
78
78
|
searchInputs;
|
|
79
79
|
searchInputsReady;
|
|
80
|
+
// TEST-TODO
|
|
81
|
+
// ngModel may cause Angular 18 issues
|
|
80
82
|
selected;
|
|
81
83
|
selectedJurisdictionCaseTypes;
|
|
82
84
|
formGroup = new FormGroup({});
|
|
@@ -253,7 +255,7 @@ export class SearchFiltersComponent {
|
|
|
253
255
|
this.caseFields = this.searchInputs.map(item => FieldsUtils.convertToCaseField(item.field));
|
|
254
256
|
}
|
|
255
257
|
}
|
|
256
|
-
static ɵfac = function SearchFiltersComponent_Factory(
|
|
258
|
+
static ɵfac = function SearchFiltersComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchFiltersComponent)(i0.ɵɵdirectiveInject(i1.SearchService), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i3.JurisdictionService), i0.ɵɵdirectiveInject(i4.WindowService)); };
|
|
257
259
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchFiltersComponent, selectors: [["ccd-search-filters"]], inputs: { jurisdictions: "jurisdictions", autoApply: "autoApply" }, outputs: { onApply: "onApply", onReset: "onReset", onJurisdiction: "onJurisdiction" }, decls: 28, vars: 34, consts: [["aria-label", "Filters", 1, "heading-h2"], [1, "global-display"], [1, "form-group", 2, "margin-top", "13px"], ["for", "s-jurisdiction", 1, "form-label"], ["id", "s-jurisdiction", "name", "jurisdiction", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModelChange", "change", "ngModel"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "form-group"], ["for", "s-case-type", 1, "form-label"], ["id", "s-case-type", "name", "case-type", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModelChange", "change", "disabled", "ngModel"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields", 4, "ngIf"], ["type", "button", 1, "button", 3, "click", "keyup.enter", "disabled", "title"], ["id", "reset", "type", "button", 1, "button", "button-secondary", 3, "click", "title"], [3, "ngValue"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields"], ["id", "dynamicFilters"], ["class", "form-group", 4, "ngFor", "ngForOf"], [3, "keyup.enter", "caseField", "formGroup", "isExpanded"]], template: function SearchFiltersComponent_Template(rf, ctx) { if (rf & 1) {
|
|
258
260
|
i0.ɵɵelementStart(0, "h2", 0);
|
|
259
261
|
i0.ɵɵtext(1);
|
|
@@ -338,4 +340,4 @@ export class SearchFiltersComponent {
|
|
|
338
340
|
type: Output
|
|
339
341
|
}] }); })();
|
|
340
342
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchFiltersComponent, { className: "SearchFiltersComponent", filePath: "lib/shared/components/search-filters/search-filters.component.ts", lineNumber: 26 }); })();
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVycy9zZWFyY2gtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQU1oRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7SUNOL0Qsa0NBQXNEO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVM7OztJQUFoRCw4QkFBYTtJQUFDLGNBQXlCO0lBQXpCLHFEQUF5Qjs7O0lBUS9FLGtDQUF3RTtJQUFBLFlBQTBCOztJQUFBLGlCQUFTOzs7SUFBbEQsK0JB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QztZQUU3SCxhQUNGOztZQUFBLGlCQUFTO1lBQUMscUNBQ1Y7WUFBQSxtQ0FDa0c7OztZQURqRSxvR0FBUyxXQUFPLElBQUM7WUFFaEQsYUFDRjs7WUFDRixBQURFLGlCQUFTLEVBQ0o7O1lBcENxQyxjQUE0QjtZQUE1QixzREFBNEI7WUFHckIsZUFBa0M7WUFBbEMscUVBQWtDO1lBRXJELGVBQW1DO1lBQW5DLHlEQUFtQztZQUV2QyxjQUFnQjtZQUFoQiwyQ0FBZ0I7WUFJSSxlQUErQjtZQUEvQiwwREFBK0I7WUFDbkUsZUFBcUM7WUFBckMsdURBQXFDO1lBQ0gscURBQStCO1lBRWhELGNBQWdDO1lBQWhDLDJEQUFnQztZQUlyQixjQUF3QztZQUF4Qyw2REFBd0M7WUFTdEUsY0FBZ0Q7WUFBd0UsQUFBeEgsa0VBQWdELGlEQUErRzs7WUFFckssZUFDRjtZQURFLGdFQUNGO1lBRVEsZUFBdUM7WUFBdkMsOERBQXVDOztZQUM3QyxlQUNGO1lBREUsZ0VBQ0Y7OztpRkRWVyxzQkFBc0I7Y0FMbEMsU0FBUzsyQkFDRSxvQkFBb0I7dUlBV3ZCLGFBQWE7a0JBRG5CLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxPQUFPO2tCQURiLE1BQU07WUFJQSxPQUFPO2tCQURiLE1BQU07WUFJQSxjQUFjO2tCQURwQixNQUFNOztrRkFsQkksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tcHJlc3NUb1VURjE2LCBkZWNvbXByZXNzRnJvbVVURjE2fSBmcm9tICdsei1zdHJpbmcnO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENhc2VTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2Utc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVR5cGVMaXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS10eXBlLWxpdGUubW9kZWwnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vanVyaXNkaWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyL29yZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnLi9kb21haW4vc2VhcmNoLWlucHV0Lm1vZGVsJztcblxuY29uc3QgSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1qdXJpc2RpY3Rpb24nO1xuY29uc3QgTUVUQV9GSUVMRFNfTE9DX1NUT1JBR0UgPSAnc2VhcmNoLW1ldGFkYXRhLWZpZWxkcyc7XG5jb25zdCBGT1JNX0dST1VQX1ZBTFVFX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1mb3JtLWdyb3VwLXZhbHVlJztcbmNvbnN0IENBU0VfVFlQRV9MT0NfU1RPUkFHRSA9ICdzZWFyY2gtY2FzZVR5cGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGp1cmlzZGljdGlvbnM6IEp1cmlzZGljdGlvbltdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdXRvQXBwbHk6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uUmVzZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25KdXJpc2RpY3Rpb246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBzZWFyY2hJbnB1dHM6IFNlYXJjaElucHV0W107XG4gIHB1YmxpYyBzZWFyY2hJbnB1dHNSZWFkeTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZUxpdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW11cbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXM/OiBDYXNlVHlwZUxpdGVbXTtcblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFKTtcbiAgICBpZiAodGhpcy5qdXJpc2RpY3Rpb25zLmxlbmd0aCA9PT0gMSB8fCBqdXJpc2RpY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb25zWzBdO1xuICAgICAgaWYgKGp1cmlzZGljdGlvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdqdXJpc2RpY3Rpb24gcmV0cmlldmVkIGZyb20gbG9jYWwgc3RvcmFnZSBsZW4gPSAnICsganVyaXNkaWN0aW9uLmxlbmd0aClcbiAgICAgICAgICBjb25zdCBsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24gPSBKU09OLnBhcnNlKGRlY29tcHJlc3NGcm9tVVRGMTYoanVyaXNkaWN0aW9uKSk7XG4gICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUp1cmlzZGljdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNcbiAgICAgICAgICAgICAgLmZpbHRlcihqID0+IGouaWQgPT09IGxvY2FsU3RvcmFnZUp1cmlzZGljdGlvbi5pZClbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gcmV0cmlldmUganVyaXNkaWN0aW9uIGZyb20gbG9jYWwgc3RvcmFnZVwiKTtcbiAgICAgICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSwgbnVsbClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5vbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldE1ldGFkYXRhRmllbGRzKCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5yZW1vdmVMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRVRBX0ZJRUxEU19MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1swXTtcbiAgICAgIHRoaXMub25KdXJpc2RpY3Rpb25JZENoYW5nZSgpO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzZXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKFwiU2VhcmNoIGZpbHRlcnMgYXBwbHlcIik7XG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldE1ldGFkYXRhRmllbGRzKCk7XG4gICAgdGhpcy5wb3B1bGF0ZVZhbHVlc0luTG9jYWxTdG9yYWdlKCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG4gICAgdGhpcy5zZXRGb2N1c1RvVG9wKCk7XG4gIH1cblxuICBwdWJsaWMgcG9wdWxhdGVWYWx1ZXNJbkxvY2FsU3RvcmFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UsXG4gICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cC52YWx1ZSkpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoTUVUQV9GSUVMRFNfTE9DX1NUT1JBR0UsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcEp1cmlzZCA9IGNvbXByZXNzVG9VVEYxNihKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbikpO1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShKVVJJU0RJQ1RJT05fTE9DX1NUT1JBR0UsIGNvbXBKdXJpc2QpO1xuICAgICAgY29uc29sZS5sb2coJ2p1cmlzZGljdGlvbiBjb21wcmVzc2VkIGludG8gbG9jYWwgc3RvcmFnZSwgbGVuZ3RoID0gJyArIGNvbXBKdXJpc2QubGVuZ3RoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZygnQ291bGQgbm90IHN0b3JlIGp1cmlzZGljdGlvbiBpbiBsb2NhbCBzdG9yYWdlJyk7XG4gICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSwgbnVsbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkLmNhc2VUeXBlKSB7XG4gICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKENBU0VfVFlQRV9MT0NfU1RPUkFHRSwgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXRhZGF0YUZpZWxkcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dHNcbiAgICAgICAgLmZpbHRlcihzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5tZXRhZGF0YSA9PT0gdHJ1ZSlcbiAgICAgICAgLm1hcChzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gIT09IG51bGw7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlICE9PSBudWxsO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hhYmxlQW5kU2VhcmNoSW5wdXRzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hhYmxlKCkgJiYgdGhpcy5zZWFyY2hJbnB1dHNSZWFkeTtcbiAgfVxuXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgICB0aGlzLnNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzO1xuICAgIHRoaXMuc2VsZWN0Q2FzZVR5cGUodGhpcy5zZWxlY3RlZEp1cmlzZGljdGlvbkNhc2VUeXBlcyk7XG4gICAgdGhpcy5vbkp1cmlzZGljdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhc2VUeXBlSWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLnNlYXJjaElucHV0c1JlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hJbnB1dHMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoSW5wdXRzKFxuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQsXG4gICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkXG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuc2VhcmNoSW5wdXRzUmVhZHkgPSB0cnVlKVxuICAgICkuc3Vic2NyaWJlKHNlYXJjaElucHV0cyA9PiB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0cyA9IHNlYXJjaElucHV0cy5zb3J0KHRoaXMub3JkZXJTZXJ2aWNlLnNvcnRBc2MpO1xuXG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLndpbmRvd1NlcnZpY2UuZ2V0TG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgICAgbGV0IGZvcm1WYWx1ZU9iamVjdCA9IG51bGw7XG4gICAgICBpZiAoZm9ybVZhbHVlKSB7XG4gICAgICAgIGZvcm1WYWx1ZU9iamVjdCA9IEpTT04ucGFyc2UoZm9ybVZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHNlYXJjaElucHV0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbS5maWVsZC5lbGVtZW50UGF0aCkge1xuICAgICAgICAgIGl0ZW0uZmllbGQuaWQgPSBgJHtpdGVtLmZpZWxkLmlkfS4ke2l0ZW0uZmllbGQuZWxlbWVudFBhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICBpdGVtLmZpZWxkLmxhYmVsID0gaXRlbS5sYWJlbDtcbiAgICAgICAgaWYgKGZvcm1WYWx1ZU9iamVjdCkge1xuICAgICAgICAgIGl0ZW0uZmllbGQudmFsdWUgPSBmb3JtVmFsdWVPYmplY3RbaXRlbS5maWVsZC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5nZXRDYXNlRmllbGRzKCk7XG4gICAgfSwgZXJyb3IgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1NlYXJjaCBpbnB1dCBmaWVsZHMgcmVxdWVzdCB3aWxsIGJlIGRpc2NhcmRlZCByZWFzb246ICcsIGVycm9yLm1lc3NhZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID09PSBudWxsIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVyeVBhcmFtcygpIHtcbiAgICAvLyBTYXZlIGZpbHRlcnMgYXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgY3VycmVudCByb3V0ZVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zW3RoaXMuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSkge1xuICAgICAgcXVlcnlQYXJhbXNbdGhpcy5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlQYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhc2VUeXBlKGNhc2VUeXBlczogQ2FzZVR5cGVMaXRlW10pIHtcbiAgICBpZiAoY2FzZVR5cGVzICYmIGNhc2VUeXBlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgY29uc3QgY2FzZVR5cGUgPSB0aGlzLndpbmRvd1NlcnZpY2UuZ2V0TG9jYWxTdG9yYWdlKENBU0VfVFlQRV9MT0NfU1RPUkFHRSk7XG4gICAgICBpZiAoY2FzZVR5cGUpIHtcbiAgICAgICAgY29uc3QgY2FzZVR5cGVPYmplY3QgPSBKU09OLnBhcnNlKGNhc2VUeXBlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FzZVR5cGVzLmZpbHRlcihjID0+IGMuaWQgPT09IGNhc2VUeXBlT2JqZWN0LmlkKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkICYmIHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHJlc3VsdFswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNhc2VUeXBlSWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dHMpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuc2VhcmNoSW5wdXRzLm1hcChpdGVtID0+IEZpZWxkc1V0aWxzLmNvbnZlcnRUb0Nhc2VGaWVsZChpdGVtLmZpZWxkKSk7XG4gICAgfVxuICB9XG59XG4iLCI8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgYXJpYS1sYWJlbD1cIkZpbHRlcnNcIj57eydGaWx0ZXJzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbjxmb3JtIGNsYXNzPVwiZ2xvYmFsLWRpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEzcHg7XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInMtanVyaXNkaWN0aW9uXCI+e3snSnVyaXNkaWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19KjwvbGFiZWw+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtMy00IGNjZC1kcm9wZG93blwiIGlkPVwicy1qdXJpc2RpY3Rpb25cIlxuICAgICAgICAgICAgbmFtZT1cImp1cmlzZGljdGlvblwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWQuanVyaXNkaWN0aW9uXCIgYXJpYS1jb250cm9scz1cInNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkp1cmlzZGljdGlvbklkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGogb2YganVyaXNkaWN0aW9uc1wiIFtuZ1ZhbHVlXT1cImpcIj57e2oubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJzLWNhc2UtdHlwZVwiPnt7J0Nhc2UgdHlwZSonIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxzZWxlY3QgW2Rpc2FibGVkXT1cImlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC0zLTQgY2NkLWRyb3Bkb3duXCJcbiAgICAgICAgICAgIGlkPVwicy1jYXNlLXR5cGVcIiBuYW1lPVwiY2FzZS10eXBlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5jYXNlVHlwZVwiIGFyaWEtY29udHJvbHM9XCJzZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYXNlVHlwZUlkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGN0IG9mIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzXCIgW25nVmFsdWVdPVwiY3RcIj57e2N0Lm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyIGNjZENvbmRpdGlvbmFsU2hvd0Zvcm0gKm5nSWY9XCJpc1NlYXJjaGFibGVBbmRTZWFyY2hJbnB1dHNSZWFkeSgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY29udGV4dEZpZWxkc109XCJjYXNlRmllbGRzXCI+XG4gICAgPGRpdiBpZD1cImR5bmFtaWNGaWx0ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCBzZWFyY2hJbnB1dCBvZiBzZWFyY2hJbnB1dHNcIj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cInNlYXJjaElucHV0LmZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNFeHBhbmRlZF09XCJ0cnVlXCIgKGtleXVwLmVudGVyKT1cImFwcGx5KClcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzU2VhcmNoYWJsZUFuZFNlYXJjaElucHV0c1JlYWR5KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiYXBwbHkoKVwiIChrZXl1cC5lbnRlcik9XCJhcHBseSgpXCIgW3RpdGxlXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snQXBwbHknIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+ICZuYnNwOyZuYnNwOyZuYnNwO1xuICA8YnV0dG9uIGlkPVwicmVzZXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0KClcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ1Jlc2V0IGZpbHRlcicgfCBycHhUcmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snUmVzZXQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtZmlsdGVycy9zZWFyY2gtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQU1oRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7SUNOL0Qsa0NBQXNEO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVM7OztJQUFoRCw4QkFBYTtJQUFDLGNBQXlCO0lBQXpCLHFEQUF5Qjs7O0lBUS9FLGtDQUF3RTtJQUFBLFlBQTBCOztJQUFBLGlCQUFTOzs7SUFBbEQsK0JB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QU8sSUFBQyxtR0FBZ0IsV0FBTyxJQUFDO1lBRTdILGFBQ0Y7O1lBQUEsaUJBQVM7WUFBQyxxQ0FDVjtZQUFBLG1DQUNrRzs7O1lBRGpFLG9HQUFTLFdBQU8sSUFBQztZQUVoRCxhQUNGOztZQUNGLEFBREUsaUJBQVMsRUFDSjs7WUFwQ3FDLGNBQTRCO1lBQTVCLHNEQUE0QjtZQUdyQixlQUFrQztZQUFsQyxxRUFBa0M7WUFFckQsZUFBbUM7WUFBbkMseURBQW1DO1lBRXZDLGNBQWdCO1lBQWhCLDJDQUFnQjtZQUlJLGVBQStCO1lBQS9CLDBEQUErQjtZQUNuRSxlQUFxQztZQUFyQyx1REFBcUM7WUFDSCxxREFBK0I7WUFFaEQsY0FBZ0M7WUFBaEMsMkRBQWdDO1lBSXJCLGNBQXdDO1lBQXhDLDZEQUF3QztZQVN0RSxjQUFnRDtZQUF3RSxBQUF4SCxrRUFBZ0QsaURBQStHOztZQUVySyxlQUNGO1lBREUsZ0VBQ0Y7WUFFUSxlQUF1QztZQUF2Qyw4REFBdUM7O1lBQzdDLGVBQ0Y7WUFERSxnRUFDRjs7O2lGRFZXLHNCQUFzQjtjQUxsQyxTQUFTOzJCQUNFLG9CQUFvQjt1SUFXdkIsYUFBYTtrQkFEbkIsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLE9BQU87a0JBRGIsTUFBTTtZQUlBLE9BQU87a0JBRGIsTUFBTTtZQUlBLGNBQWM7a0JBRHBCLE1BQU07O2tGQWxCSSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21wcmVzc1RvVVRGMTYsIGRlY29tcHJlc3NGcm9tVVRGMTZ9IGZyb20gJ2x6LXN0cmluZyc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVN0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlVHlwZUxpdGUgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLXR5cGUtbGl0ZS5tb2RlbCc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9qdXJpc2RpY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEp1cmlzZGljdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9qdXJpc2RpY3Rpb24vanVyaXNkaWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXIvb3JkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93aW5kb3cvd2luZG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICcuL2RvbWFpbi9zZWFyY2gtaW5wdXQubW9kZWwnO1xuXG5jb25zdCBKVVJJU0RJQ1RJT05fTE9DX1NUT1JBR0UgPSAnc2VhcmNoLWp1cmlzZGljdGlvbic7XG5jb25zdCBNRVRBX0ZJRUxEU19MT0NfU1RPUkFHRSA9ICdzZWFyY2gtbWV0YWRhdGEtZmllbGRzJztcbmNvbnN0IEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UgPSAnc2VhcmNoLWZvcm0tZ3JvdXAtdmFsdWUnO1xuY29uc3QgQ0FTRV9UWVBFX0xPQ19TVE9SQUdFID0gJ3NlYXJjaC1jYXNlVHlwZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxufSlcblxuZXhwb3J0IGNsYXNzIFNlYXJjaEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgUEFSQU1fSlVSSVNESUNUSU9OID0gJ2p1cmlzZGljdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBQQVJBTV9DQVNFX1RZUEUgPSAnY2FzZS10eXBlJztcbiAgcHVibGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfU1RBVEUgPSAnY2FzZS1zdGF0ZSc7XG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMganVyaXNkaWN0aW9uczogSnVyaXNkaWN0aW9uW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9BcHBseTogYm9vbGVhbjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uQXBwbHk6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25SZXNldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHNlYXJjaElucHV0czogU2VhcmNoSW5wdXRbXTtcbiAgcHVibGljIHNlYXJjaElucHV0c1JlYWR5OiBib29sZWFuO1xuXG4gIC8vIFRFU1QtVE9ET1xuICAvLyBuZ01vZGVsIG1heSBjYXVzZSBBbmd1bGFyIDE4IGlzc3Vlc1xuICBwdWJsaWMgc2VsZWN0ZWQ6IHtcbiAgICBqdXJpc2RpY3Rpb24/OiBKdXJpc2RpY3Rpb24sXG4gICAgY2FzZVR5cGU/OiBDYXNlVHlwZUxpdGUsXG4gICAgZm9ybUdyb3VwPzogRm9ybUdyb3VwLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIG1ldGFkYXRhRmllbGRzPzogc3RyaW5nW11cbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXM/OiBDYXNlVHlwZUxpdGVbXTtcblxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGNvbnN0IGp1cmlzZGljdGlvbiA9IHRoaXMud2luZG93U2VydmljZS5nZXRMb2NhbFN0b3JhZ2UoSlVSSVNESUNUSU9OX0xPQ19TVE9SQUdFKTtcbiAgICBpZiAodGhpcy5qdXJpc2RpY3Rpb25zLmxlbmd0aCA9PT0gMSB8fCBqdXJpc2RpY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb25zWzBdO1xuICAgICAgaWYgKGp1cmlzZGljdGlvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdqdXJpc2RpY3Rpb24gcmV0cmlldmVkIGZyb20gbG9jYWwgc3RvcmFnZSBsZW4gPSAnICsganVyaXNkaWN0aW9uLmxlbmd0aClcbiAgICAgICAgICBjb25zdCBsb2NhbFN0b3JhZ2VKdXJpc2RpY3Rpb24gPSBKU09OLnBhcnNlKGRlY29tcHJlc3NGcm9tVVRGMTYoanVyaXNkaWN0aW9uKSk7XG4gICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZUp1cmlzZGljdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbnNcbiAgICAgICAgICAgICAgLmZpbHRlcihqID0+IGouaWQgPT09IGxvY2FsU3RvcmFnZUp1cmlzZGljdGlvbi5pZClbMF07XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJGYWlsZWQgdG8gcmV0cmlldmUganVyaXNkaWN0aW9uIGZyb20gbG9jYWwgc3RvcmFnZVwiKTtcbiAgICAgICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSwgbnVsbClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5vbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldE1ldGFkYXRhRmllbGRzKCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5yZW1vdmVMb2NhbFN0b3JhZ2UoQ0FTRV9UWVBFX0xPQ19TVE9SQUdFKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRVRBX0ZJRUxEU19MT0NfU1RPUkFHRSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1swXTtcbiAgICAgIHRoaXMub25KdXJpc2RpY3Rpb25JZENoYW5nZSgpO1xuICAgIH1cbiAgICB0aGlzLm9uUmVzZXQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKFwiU2VhcmNoIGZpbHRlcnMgYXBwbHlcIik7XG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldE1ldGFkYXRhRmllbGRzKCk7XG4gICAgdGhpcy5wb3B1bGF0ZVZhbHVlc0luTG9jYWxTdG9yYWdlKCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtczogdGhpcy5nZXRRdWVyeVBhcmFtcygpXG4gICAgfSk7XG4gICAgdGhpcy5zZXRGb2N1c1RvVG9wKCk7XG4gIH1cblxuICBwdWJsaWMgcG9wdWxhdGVWYWx1ZXNJbkxvY2FsU3RvcmFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UsXG4gICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cC52YWx1ZSkpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoTUVUQV9GSUVMRFNfTE9DX1NUT1JBR0UsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMpKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcEp1cmlzZCA9IGNvbXByZXNzVG9VVEYxNihKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbikpO1xuICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShKVVJJU0RJQ1RJT05fTE9DX1NUT1JBR0UsIGNvbXBKdXJpc2QpO1xuICAgICAgY29uc29sZS5sb2coJ2p1cmlzZGljdGlvbiBjb21wcmVzc2VkIGludG8gbG9jYWwgc3RvcmFnZSwgbGVuZ3RoID0gJyArIGNvbXBKdXJpc2QubGVuZ3RoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZygnQ291bGQgbm90IHN0b3JlIGp1cmlzZGljdGlvbiBpbiBsb2NhbCBzdG9yYWdlJyk7XG4gICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKEpVUklTRElDVElPTl9MT0NfU1RPUkFHRSwgbnVsbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkLmNhc2VUeXBlKSB7XG4gICAgICB0aGlzLndpbmRvd1NlcnZpY2Uuc2V0TG9jYWxTdG9yYWdlKENBU0VfVFlQRV9MT0NfU1RPUkFHRSwgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNZXRhZGF0YUZpZWxkcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXRzKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dHNcbiAgICAgICAgLmZpbHRlcihzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5tZXRhZGF0YSA9PT0gdHJ1ZSlcbiAgICAgICAgLm1hcChzZWFyY2hJbnB1dCA9PiBzZWFyY2hJbnB1dC5maWVsZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoYWJsZSgpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xuICAgIHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gIT09IG51bGw7XG4gICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlICE9PSBudWxsO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hhYmxlQW5kU2VhcmNoSW5wdXRzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hhYmxlKCkgJiYgdGhpcy5zZWFyY2hJbnB1dHNSZWFkeTtcbiAgfVxuXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbklkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBudWxsO1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5hbm5vdW5jZVNlbGVjdGVkSnVyaXNkaWN0aW9uKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgICB0aGlzLnNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzO1xuICAgIHRoaXMuc2VsZWN0Q2FzZVR5cGUodGhpcy5zZWxlY3RlZEp1cmlzZGljdGlvbkNhc2VUeXBlcyk7XG4gICAgdGhpcy5vbkp1cmlzZGljdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhc2VUeXBlSWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLnNlYXJjaElucHV0c1JlYWR5ID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hJbnB1dHMgPSBbXTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0U2VhcmNoSW5wdXRzKFxuICAgICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQsXG4gICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkXG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuc2VhcmNoSW5wdXRzUmVhZHkgPSB0cnVlKVxuICAgICkuc3Vic2NyaWJlKHNlYXJjaElucHV0cyA9PiB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0cyA9IHNlYXJjaElucHV0cy5zb3J0KHRoaXMub3JkZXJTZXJ2aWNlLnNvcnRBc2MpO1xuXG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLndpbmRvd1NlcnZpY2UuZ2V0TG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMVUVfTE9DX1NUT1JBR0UpO1xuICAgICAgbGV0IGZvcm1WYWx1ZU9iamVjdCA9IG51bGw7XG4gICAgICBpZiAoZm9ybVZhbHVlKSB7XG4gICAgICAgIGZvcm1WYWx1ZU9iamVjdCA9IEpTT04ucGFyc2UoZm9ybVZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHNlYXJjaElucHV0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbS5maWVsZC5lbGVtZW50UGF0aCkge1xuICAgICAgICAgIGl0ZW0uZmllbGQuaWQgPSBgJHtpdGVtLmZpZWxkLmlkfS4ke2l0ZW0uZmllbGQuZWxlbWVudFBhdGh9YDtcbiAgICAgICAgfVxuICAgICAgICBpdGVtLmZpZWxkLmxhYmVsID0gaXRlbS5sYWJlbDtcbiAgICAgICAgaWYgKGZvcm1WYWx1ZU9iamVjdCkge1xuICAgICAgICAgIGl0ZW0uZmllbGQudmFsdWUgPSBmb3JtVmFsdWVPYmplY3RbaXRlbS5maWVsZC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5nZXRDYXNlRmllbGRzKCk7XG4gICAgfSwgZXJyb3IgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1NlYXJjaCBpbnB1dCBmaWVsZHMgcmVxdWVzdCB3aWxsIGJlIGRpc2NhcmRlZCByZWFzb246ICcsIGVycm9yLm1lc3NhZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID09PSBudWxsIHx8XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWVyeVBhcmFtcygpIHtcbiAgICAvLyBTYXZlIGZpbHRlcnMgYXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgY3VycmVudCByb3V0ZVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKSB7XG4gICAgICBxdWVyeVBhcmFtc1t0aGlzLlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zW3RoaXMuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSkge1xuICAgICAgcXVlcnlQYXJhbXNbdGhpcy5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkO1xuICAgIH1cbiAgICByZXR1cm4gcXVlcnlQYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhc2VUeXBlKGNhc2VUeXBlczogQ2FzZVR5cGVMaXRlW10pIHtcbiAgICBpZiAoY2FzZVR5cGVzICYmIGNhc2VUeXBlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgY29uc3QgY2FzZVR5cGUgPSB0aGlzLndpbmRvd1NlcnZpY2UuZ2V0TG9jYWxTdG9yYWdlKENBU0VfVFlQRV9MT0NfU1RPUkFHRSk7XG4gICAgICBpZiAoY2FzZVR5cGUpIHtcbiAgICAgICAgY29uc3QgY2FzZVR5cGVPYmplY3QgPSBKU09OLnBhcnNlKGNhc2VUeXBlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FzZVR5cGVzLmZpbHRlcihjID0+IGMuaWQgPT09IGNhc2VUeXBlT2JqZWN0LmlkKTtcbiAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkICYmIHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHJlc3VsdFswXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gY2FzZVR5cGVzWzBdO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNhc2VUeXBlSWRDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dHMpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuc2VhcmNoSW5wdXRzLm1hcChpdGVtID0+IEZpZWxkc1V0aWxzLmNvbnZlcnRUb0Nhc2VGaWVsZChpdGVtLmZpZWxkKSk7XG4gICAgfVxuICB9XG59XG4iLCI8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgYXJpYS1sYWJlbD1cIkZpbHRlcnNcIj57eydGaWx0ZXJzJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbjxmb3JtIGNsYXNzPVwiZ2xvYmFsLWRpc3BsYXlcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEzcHg7XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInMtanVyaXNkaWN0aW9uXCI+e3snSnVyaXNkaWN0aW9uJyB8IHJweFRyYW5zbGF0ZX19KjwvbGFiZWw+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtMy00IGNjZC1kcm9wZG93blwiIGlkPVwicy1qdXJpc2RpY3Rpb25cIlxuICAgICAgICAgICAgbmFtZT1cImp1cmlzZGljdGlvblwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWQuanVyaXNkaWN0aW9uXCIgYXJpYS1jb250cm9scz1cInNlYXJjaC1yZXN1bHRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkp1cmlzZGljdGlvbklkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGogb2YganVyaXNkaWN0aW9uc1wiIFtuZ1ZhbHVlXT1cImpcIj57e2oubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJzLWNhc2UtdHlwZVwiPnt7J0Nhc2UgdHlwZSonIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxzZWxlY3QgW2Rpc2FibGVkXT1cImlzSnVyaXNkaWN0aW9uU2VsZWN0ZWQoKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC0zLTQgY2NkLWRyb3Bkb3duXCJcbiAgICAgICAgICAgIGlkPVwicy1jYXNlLXR5cGVcIiBuYW1lPVwiY2FzZS10eXBlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5jYXNlVHlwZVwiIGFyaWEtY29udHJvbHM9XCJzZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYXNlVHlwZUlkQ2hhbmdlKClcIj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGN0IG9mIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzXCIgW25nVmFsdWVdPVwiY3RcIj57e2N0Lm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyIGNjZENvbmRpdGlvbmFsU2hvd0Zvcm0gKm5nSWY9XCJpc1NlYXJjaGFibGVBbmRTZWFyY2hJbnB1dHNSZWFkeSgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY29udGV4dEZpZWxkc109XCJjYXNlRmllbGRzXCI+XG4gICAgPGRpdiBpZD1cImR5bmFtaWNGaWx0ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCBzZWFyY2hJbnB1dCBvZiBzZWFyY2hJbnB1dHNcIj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cInNlYXJjaElucHV0LmZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNFeHBhbmRlZF09XCJ0cnVlXCIgKGtleXVwLmVudGVyKT1cImFwcGx5KClcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzU2VhcmNoYWJsZUFuZFNlYXJjaElucHV0c1JlYWR5KClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiAoY2xpY2spPVwiYXBwbHkoKVwiIChrZXl1cC5lbnRlcik9XCJhcHBseSgpXCIgW3RpdGxlXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHBseSBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snQXBwbHknIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+ICZuYnNwOyZuYnNwOyZuYnNwO1xuICA8YnV0dG9uIGlkPVwicmVzZXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0KClcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ1Jlc2V0IGZpbHRlcicgfCBycHhUcmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXNldCBmaWx0ZXInIHwgcnB4VHJhbnNsYXRlXCI+XG4gICAge3snUmVzZXQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -18,7 +18,7 @@ import * as i3 from "@angular/forms";
|
|
|
18
18
|
import * as i4 from "../palette/base-field/field-write.component";
|
|
19
19
|
import * as i5 from "../../directives/conditional-show/conditional-show-form.directive";
|
|
20
20
|
export class SearchFiltersModule {
|
|
21
|
-
static ɵfac = function SearchFiltersModule_Factory(
|
|
21
|
+
static ɵfac = function SearchFiltersModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchFiltersModule)(); };
|
|
22
22
|
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: SearchFiltersModule });
|
|
23
23
|
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
24
24
|
SearchService,
|
|
@@ -68,4 +68,4 @@ export class SearchFiltersModule {
|
|
|
68
68
|
ConditionalShowModule, i1.RpxTranslationModule], exports: [SearchFiltersWrapperComponent] }); })();
|
|
69
69
|
i0.ɵɵsetComponentScope(SearchFiltersComponent, function () { return [i2.NgForOf, i2.NgIf, i3.ɵNgNoValidate, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.SelectControlValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.NgModel, i3.NgForm, i3.FormGroupDirective, i4.FieldWriteComponent, i5.ConditionalShowFormDirective]; }, function () { return [i1.RpxTranslatePipe]; });
|
|
70
70
|
i0.ɵɵsetComponentScope(SearchFiltersWrapperComponent, function () { return [i2.NgIf, SearchFiltersComponent]; }, []);
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlcnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1maWx0ZXJzL3NlYXJjaC1maWx0ZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBMEJwRSxNQUFNLE9BQU8sbUJBQW1COzZHQUFuQixtQkFBbUI7NERBQW5CLG1CQUFtQjtpRUFSakI7WUFDUCxhQUFhO1lBQ2IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsYUFBYTtTQUNoQixZQXBCRyxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLG9CQUFvQixDQUFDLFFBQVEsRUFBRTs7aUZBaUIxQixtQkFBbUI7Y0F4Qi9CLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYixxQkFBcUI7b0JBQ3JCLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtpQkFDbEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHNCQUFzQjtvQkFDdEIsNkJBQTZCO2lCQUNoQztnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsNkJBQTZCO2lCQUNoQztnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsYUFBYTtvQkFDYixZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsa0JBQWtCO29CQUNsQixhQUFhO2lCQUNoQjthQUNKOzt3RkFDWSxtQkFBbUIsbUJBZHhCLHNCQUFzQjtRQUN0Qiw2QkFBNkIsYUFUN0IsWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLHFCQUFxQixzQ0FRckIsNkJBQTZCO3VCQUo3QixzQkFBc0I7dUJBQ3RCLDZCQUE2QixpQ0FEN0Isc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJweFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dNb2R1bGUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvY29uZGl0aW9uYWwtc2hvdy5tb2R1bGUnO1xuaW1wb3J0IHsgRGVmaW5pdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGVmaW5pdGlvbnMvZGVmaW5pdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvanVyaXNkaWN0aW9uL2p1cmlzZGljdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyL29yZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFBhbGV0dGVNb2R1bGUgfSBmcm9tICcuLi9wYWxldHRlL3BhbGV0dGUubW9kdWxlJztcblxuaW1wb3J0IHsgU2VhcmNoRmlsdGVyc1dyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXJzLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWx0ZXJzLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBQYWxldHRlTW9kdWxlLFxuICAgICAgICBDb25kaXRpb25hbFNob3dNb2R1bGUsXG4gICAgICAgIFJweFRyYW5zbGF0aW9uTW9kdWxlLmZvckNoaWxkKClcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBTZWFyY2hGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBTZWFyY2hGaWx0ZXJzV3JhcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTZWFyY2hGaWx0ZXJzV3JhcHBlckNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFNlYXJjaFNlcnZpY2UsXG4gICAgICAgIE9yZGVyU2VydmljZSxcbiAgICAgICAgSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgICAgICAgRGVmaW5pdGlvbnNTZXJ2aWNlLFxuICAgICAgICBXaW5kb3dTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWx0ZXJzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -4,7 +4,7 @@ import { AbstractAppConfig } from '../../../app.config';
|
|
|
4
4
|
import { PlaceholderService } from '../../directives';
|
|
5
5
|
import { CaseField, CaseState, CaseType, DisplayMode, DRAFT_PREFIX, Jurisdiction, PaginationMetadata, SearchResultView, SortOrder, SortParameters } from '../../domain';
|
|
6
6
|
import { CaseReferencePipe } from '../../pipes';
|
|
7
|
-
import { ActivityService, BrowserService, SearchResultViewItemComparatorFactory, SessionStorageService } from '../../services';
|
|
7
|
+
import { ActivityService, BrowserService, SearchResultViewItemComparatorFactory, SessionStorageService, FieldsUtils } from '../../services';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../../services";
|
|
10
10
|
import * as i2 from "../../../app.config";
|
|
@@ -58,7 +58,7 @@ function SearchResultComponent_table_0_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
58
58
|
} if (rf & 2) {
|
|
59
59
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
60
60
|
i0.ɵɵadvance();
|
|
61
|
-
i0.ɵɵattribute("aria-label", i0.ɵɵpipeBind1(2, 8,
|
|
61
|
+
i0.ɵɵattribute("aria-label", ctx_r0.getTotalResults() + " " + i0.ɵɵpipeBind1(2, 8, "results have been found"));
|
|
62
62
|
i0.ɵɵadvance(3);
|
|
63
63
|
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(5, 10, "Showing"), " ");
|
|
64
64
|
i0.ɵɵadvance(3);
|
|
@@ -127,7 +127,7 @@ function SearchResultComponent_table_0_th_11_Template(rf, ctx) { if (rf & 1) {
|
|
|
127
127
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
128
128
|
i0.ɵɵattribute("aria-sort", ctx_r0.isSortAscending(col_r5) === null ? null : ctx_r0.isSortAscending(col_r5) ? "ascending" : "descending");
|
|
129
129
|
i0.ɵɵadvance(3);
|
|
130
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 3, col_r5.label), " ");
|
|
130
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.isTranslatable(col_r5) ? i0.ɵɵpipeBind1(4, 3, col_r5.label) : col_r5.label, " ");
|
|
131
131
|
i0.ɵɵadvance(2);
|
|
132
132
|
i0.ɵɵproperty("ngIf", ctx_r0.comparator(col_r5));
|
|
133
133
|
} }
|
|
@@ -501,6 +501,9 @@ export class SearchResultComponent {
|
|
|
501
501
|
this.selected.page = (changes['page']).currentValue;
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
|
+
isTranslatable(col) {
|
|
505
|
+
return FieldsUtils.isTranslatable(col.case_field_type);
|
|
506
|
+
}
|
|
504
507
|
get resultTotal() {
|
|
505
508
|
const total = this.paginationMetadata.totalResultsCount;
|
|
506
509
|
const maximumResultReached = total >= this.PAGINATION_MAX_ITEM_RESULT;
|
|
@@ -763,7 +766,7 @@ export class SearchResultComponent {
|
|
|
763
766
|
}
|
|
764
767
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
765
768
|
noop() { }
|
|
766
|
-
static ɵfac = function SearchResultComponent_Factory(
|
|
769
|
+
static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(i1.SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(i2.AbstractAppConfig), i0.ɵɵdirectiveInject(i1.ActivityService), i0.ɵɵdirectiveInject(i3.CaseReferencePipe), i0.ɵɵdirectiveInject(i4.PlaceholderService), i0.ɵɵdirectiveInject(i1.BrowserService), i0.ɵɵdirectiveInject(i1.SessionStorageService)); };
|
|
767
770
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["case_reference", ""], [4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", 4, "ngIf"], ["class", "search-result-column-header", "scope", "col", 4, "ngFor", "ngForOf"], ["style", "width: 110px;", "scope", "col", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], [1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "javascript:void(0)", 1, "search-result-reset-link", 3, "click"], [1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "search-result-column-header"], [1, "search-result-column-label", 3, "click", "keyup"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "javascript:void(0)", 1, "sort-widget", 3, "click", "innerHTML"], ["scope", "col", 2, "width", "110px"], [4, "ngFor", "ngForOf"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["scope", "col", 1, "govuk-table__checkbox"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [3, "pageChange", "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
|
|
768
771
|
i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 1)(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 2)(2, SearchResultComponent_div_2_Template, 4, 6, "div", 3);
|
|
769
772
|
} if (rf & 2) {
|
|
@@ -776,7 +779,7 @@ export class SearchResultComponent {
|
|
|
776
779
|
}
|
|
777
780
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultComponent, [{
|
|
778
781
|
type: Component,
|
|
779
|
-
args: [{ selector: 'ccd-search-result', template: "<table *ngIf=\"hasResults() || hasDrafts()\">\n <caption>\n <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n </strong>\n </div>\n\n <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n <output [attr.aria-label]=\"getTotalResults() + ' results have been found' | rpxTranslate\"></output>\n <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n {{'to' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n {{'of' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n </div>\n <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n <span><a class=\"search-result-reset-link\" href=\"javascript:void(0)\" (click)=\"clearSelection()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n </div>\n </caption>\n <thead>\n <tr scope=\"row\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n <div>\n <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n {{col.label | rpxTranslate}}\n </div>\n <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n <a (click)=\"sort(col)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(col)\" href=\"javascript:void(0)\"></a>\n </div>\n </div>\n </th>\n <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">​</th>\n </tr>\n </thead>\n\n <tbody>\n <!-- sorted by consumer -->\n <ng-container *ngIf=\"consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n <!-- sorted by toolkit -->\n <ng-container *ngIf=\"!consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n</table>\n\n<ccd-pagination\n *ngIf=\"hasResults()\"\n (pageChange)=\"goToPage($event)\"\n [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n [autoHide]=\"true\"\n [maxSize]=\"8\"\n [screenReaderPaginationLabel]=\"'Pagination'\"\n [screenReaderPageLabel]=\"page\"\n [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n", styles: ["table thead tr th{vertical-align:top}table tbody tr td{font-size:16px;word-wrap:break-word}table tbody tr td a{float:left}table .caseid-col{white-space:nowrap}.notification{text-align:center;padding:30px 0;margin-top:75px}a:hover{color:#005ea5}.search-result-reset-link{padding-right:15px;padding-left:15px}.search-result-column-header{width:unset;table-layout:normal}.search-result-column-header div{display:table-cell;width:auto}@media screen and (max-width: 379px){.search-result-column-header div{display:block;float:right}}.search-result-column-label{font-size:16px;font-weight:700;word-wrap:break-word;cursor:pointer;padding-right:15px}.search-result-column-sort{font-size:16px}.sort-widget{cursor:pointer;text-decoration:none;color:#231f20}span.heading-medium{margin-top:-20px}.govuk-table__checkbox{vertical-align:middle;padding-left:3px}#search-result-heading__text:focus{outline:none}\n"] }]
|
|
782
|
+
args: [{ selector: 'ccd-search-result', template: "<table *ngIf=\"hasResults() || hasDrafts()\">\n <caption>\n <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n </strong>\n </div>\n\n <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n <output [attr.aria-label]=\"getTotalResults() + ' ' + ('results have been found' | rpxTranslate)\"></output>\n <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n {{'to' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n {{'of' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n </div>\n <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n <span><a class=\"search-result-reset-link\" href=\"javascript:void(0)\" (click)=\"clearSelection()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n </div>\n </caption>\n <thead>\n <tr scope=\"row\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n <div>\n <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n {{ isTranslatable(col) ? (col.label | rpxTranslate) : col.label }}\n </div>\n <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n <a (click)=\"sort(col)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(col)\" href=\"javascript:void(0)\"></a>\n </div>\n </div>\n </th>\n <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">​</th>\n </tr>\n </thead>\n\n <tbody>\n <!-- sorted by consumer -->\n <ng-container *ngIf=\"consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n <!-- sorted by toolkit -->\n <ng-container *ngIf=\"!consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n</table>\n\n<ccd-pagination\n *ngIf=\"hasResults()\"\n (pageChange)=\"goToPage($event)\"\n [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n [autoHide]=\"true\"\n [maxSize]=\"8\"\n [screenReaderPaginationLabel]=\"'Pagination'\"\n [screenReaderPageLabel]=\"page\"\n [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n", styles: ["table thead tr th{vertical-align:top}table tbody tr td{font-size:16px;word-wrap:break-word}table tbody tr td a{float:left}table .caseid-col{white-space:nowrap}.notification{text-align:center;padding:30px 0;margin-top:75px}a:hover{color:#005ea5}.search-result-reset-link{padding-right:15px;padding-left:15px}.search-result-column-header{width:unset;table-layout:normal}.search-result-column-header div{display:table-cell;width:auto}@media screen and (max-width: 379px){.search-result-column-header div{display:block;float:right}}.search-result-column-label{font-size:16px;font-weight:700;word-wrap:break-word;cursor:pointer;padding-right:15px}.search-result-column-sort{font-size:16px}.sort-widget{cursor:pointer;text-decoration:none;color:#231f20}span.heading-medium{margin-top:-20px}.govuk-table__checkbox{vertical-align:middle;padding-left:3px}#search-result-heading__text:focus{outline:none}\n"] }]
|
|
780
783
|
}], () => [{ type: i1.SearchResultViewItemComparatorFactory }, { type: i2.AbstractAppConfig }, { type: i1.ActivityService }, { type: i3.CaseReferencePipe }, { type: i4.PlaceholderService }, { type: i1.BrowserService }, { type: i1.SessionStorageService }], { caseLinkUrlTemplate: [{
|
|
781
784
|
type: Input
|
|
782
785
|
}], jurisdiction: [{
|
|
@@ -813,4 +816,4 @@ export class SearchResultComponent {
|
|
|
813
816
|
type: Output
|
|
814
817
|
}] }); })();
|
|
815
818
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 18 }); })();
|
|
816
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQ2hGLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxxQ0FBcUMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7SUNMekgsQUFERiwrQkFBeUYsZUFDN0I7SUFBQSxpQkFBQztJQUFBLGlCQUFPO0lBRWhFLEFBREYsa0NBQXlDLGVBQ0s7SUFBQSxZQUE0Qjs7SUFBQSxpQkFB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eURBR3VDOztZQTNJaEYsMERBQWlDO1lBaUl0QyxjQUFrQjtZQUFsQix1Q0FBa0I7WUFTZixjQUFvQztZQUFwQyw2REFBb0M7OztpRkR6SDdCLHFCQUFxQjtjQUxqQyxTQUFTOzJCQUNFLG1CQUFtQjtzUUFldEIsbUJBQW1CO2tCQUR6QixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFFBQVE7a0JBRGQsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsSUFBSTtrQkFEVixLQUFLO1lBSUMsa0JBQWtCO2tCQUR4QixLQUFLO1lBSUMsY0FBYztrQkFEcEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLHNCQUFzQjtrQkFENUIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFVBQVU7a0JBRGhCLE1BQU07WUFJQSxTQUFTO2tCQURmLE1BQU07WUFJQSxXQUFXO2tCQURqQixNQUFNOztrRkExREkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQge1xuICBDYXNlRmllbGQsIENhc2VTdGF0ZSwgQ2FzZVR5cGUsIERpc3BsYXlNb2RlLFxuICBEUkFGVF9QUkVGSVgsIEp1cmlzZGljdGlvbiwgUGFnaW5hdGlvbk1ldGFkYXRhLCBTZWFyY2hSZXN1bHRWaWV3LCBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLFxuICBTZWFyY2hSZXN1bHRWaWV3SXRlbSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yLCBTb3J0T3JkZXIsIFNvcnRQYXJhbWV0ZXJzXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlUmVmZXJlbmNlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2aXR5U2VydmljZSwgQnJvd3NlclNlcnZpY2UsIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9KVVJJU0RJQ1RJT04gPSAnanVyaXNkaWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1RZUEUgPSAnY2FzZS10eXBlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPSAxMDAwMDtcblxuICBwdWJsaWMgSUNPTiA9IERpc3BsYXlNb2RlLklDT047XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VMaW5rVXJsVGVtcGxhdGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMganVyaXNkaWN0aW9uOiBKdXJpc2RpY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VUeXBlOiBDYXNlVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVN0YXRlOiBDYXNlU3RhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWx0ZXJGRzogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN1bHRWaWV3OiBTZWFyY2hSZXN1bHRWaWV3O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2luYXRpb25NZXRhZGF0YTogUGFnaW5hdGlvbk1ldGFkYXRhO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkczogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09ubHlTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVTZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN1bWVyU29ydGluZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0Vmlld0l0ZW1bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoYW5nZVBhZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xpY2tDYXNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNvcnRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXI7XG5cbiAgcHVibGljIGhpZGVSb3dzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDoge1xuICAgIGluaXQ/OiBib29sZWFuLFxuICAgIGp1cmlzZGljdGlvbj86IEp1cmlzZGljdGlvbixcbiAgICBjYXNlVHlwZT86IENhc2VUeXBlLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsXG4gICAgbWV0YWRhdGFGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBwYWdlPzogbnVtYmVyXG4gIH0gPSB7fTtcblxuICBwdWJsaWMgc29ydFBhcmFtZXRlcnM6IFNvcnRQYXJhbWV0ZXJzO1xuICBwdWJsaWMgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgcHVibGljIGRyYWZ0c0NvdW50OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN1bWVyU29ydFBhcmFtZXRlcnM6IHsgY29sdW1uOiBzdHJpbmcsIG9yZGVyOiBTb3J0T3JkZXIsIHR5cGU6IHN0cmluZyB9ID0geyBjb2x1bW46IG51bGwsIG9yZGVyOiBudWxsLCB0eXBlOiBudWxsIH07XG5cbiAgcHVibGljIHNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LFxuICAgIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJvd3NlclNlcnZpY2U6IEJyb3dzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5ID0gc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IGFwcENvbmZpZy5nZXRQYWdpbmF0aW9uUGFnZVNpemUoKTtcbiAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgZm9yIChjb25zdCBwcmVTZWxlY3RlZENhc2Ugb2YgdGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMgJiYgIXRoaXMuc2VsZWN0ZWRDYXNlcy5zb21lKGFDYXNlID0+IGFDYXNlLmNhc2VfaWQgPT09IHByZVNlbGVjdGVkQ2FzZS5jYXNlX2lkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKHByZVNlbGVjdGVkQ2FzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgaWYgKGNoYW5nZXNbJ3Jlc3VsdFZpZXcnXSkge1xuICAgICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgLy8gQ2xvbmUgYHJlc3VsdFZpZXdgIHRvIHByZXZlbnQgc29ydGluZyB0aGUgZXh0ZXJuYWwgdmFyaWFibGVcbiAgICAgIHRoaXMucmVzdWx0VmlldyA9IHtcbiAgICAgICAgY29sdW1uczogdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc2xpY2UoMCksXG4gICAgICAgIHJlc3VsdHM6IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLnNsaWNlKDApLFxuICAgICAgICBoYXNEcmFmdHM6IHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zID0gdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc29ydCgoYTogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgYjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikgPT4ge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5oeWRyYXRlUmVzdWx0VmlldygpO1xuICAgICAgdGhpcy5kcmFmdHNDb3VudCA9IHRoaXMuZHJhZnRzQ291bnQgPyB0aGlzLmRyYWZ0c0NvdW50IDogdGhpcy5udW1iZXJPZkRyYWZ0cygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAoY2hhbmdlc1sncGFnZSddKS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCByZXN1bHRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQ7XG4gICAgY29uc3QgbWF4aW11bVJlc3VsdFJlYWNoZWQgPSB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUO1xuICAgIHRoaXMucGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBtYXhpbXVtUmVzdWx0UmVhY2hlZDtcblxuICAgIHJldHVybiBtYXhpbXVtUmVzdWx0UmVhY2hlZCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQmVTaGFyZWQoY2FzZVZpZXc6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VWaWV3LnN1cHBsZW1lbnRhcnlfZGF0YSAmJiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEuaGFzT3duUHJvcGVydHkoJ29yZ3NfYXNzaWduZWRfdXNlcnMnKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BbnlCZVNoYXJlZCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQodGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbE9uUGFnZVNlbGVjdGVkKCkpIHtcbiAgICAgIC8vIGFsbCBjYXNlcyBhbHJlYWR5IHNlbGVjdGVkLCBzbyB1bnNlbGVjdCBhbGwgb24gdGhpcyBwYWdlXG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICAgIGlmIChjLmNhc2VfaWQgPT09IHMuY2FzZV9pZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKGMpICYmIHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3Rpb24oYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKGMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuZm9yRWFjaCgocywgaSkgPT4ge1xuICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQoYykpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoYy5jYXNlX2lkID09PSB0aGlzLnNlbGVjdGVkQ2FzZXNbaV0uY2FzZV9pZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFsbE9uUGFnZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBjYW5CZVNoYXJlZENvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgciA9IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldO1xuICAgICAgaWYgKHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgY2FuQmVTaGFyZWRDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQocikgJiYgdGhpcy5jYW5CZVNoYXJlZChyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjYW5CZVNoYXJlZENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHJlc3VsdCB2aWV3IHdpdGggY2FzZSBmaWVsZCBkZWZpbml0aW9ucy5cbiAgICovXG4gIC8vIEEgbG9uZ2VyIHRlcm0gcmVzb2x1dGlvbiBpcyB0byBtb3ZlIHRoaXMgcGllY2Ugb2YgbG9naWMgdG8gdGhlIGJhY2tlbmRcbiAgcHVibGljIGh5ZHJhdGVSZXN1bHRWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZHMgPSBbXTtcblxuICAgICAgT2JqZWN0LmtleXMocmVzdWx0LmNhc2VfZmllbGRzKS5mb3JFYWNoKGZpZWxkSWQgPT4ge1xuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gcmVzdWx0LmNhc2VfZmllbGRzW2ZpZWxkSWRdO1xuXG4gICAgICAgIGNhc2VGaWVsZHMucHVzaChPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZElkLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IHt9LFxuICAgICAgICAgIHZhbHVlOiBmaWVsZCxcbiAgICAgICAgICBkaXNwbGF5X2NvbnRleHQ6IG51bGwsXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHMgPSBjYXNlRmllbGRzO1xuICAgICAgcmVzdWx0LmNvbHVtbnMgPSB7fTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICByZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0gPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGNvbCwgcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVJvd3MgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWQuaW5pdCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb247XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHRoaXMuY2FzZVR5cGU7XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPSB0aGlzLmNhc2VTdGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cCA9IHRoaXMuY2FzZUZpbHRlckZHO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLm1ldGFkYXRhRmllbGRzO1xuICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IHBhZ2U7XG4gICAgLy8gQXBwbHkgZmlsdGVyc1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA/IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9TVEFURV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgIHF1ZXJ5UGFyYW1zXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3BDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9wJyk7XG4gICAgaWYgKHRvcENvbnRhaW5lcikge1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgIH1cbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChjb2w6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgaWQ6IGNvbC5jYXNlX2ZpZWxkX2lkLFxuICAgICAgbGFiZWw6IGNvbC5sYWJlbCxcbiAgICAgIGZpZWxkX3R5cGU6IGNvbC5jYXNlX2ZpZWxkX3R5cGUsXG4gICAgICB2YWx1ZTogcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSxcbiAgICAgIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI6IGNvbC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBjb2wuZGlzcGxheV9jb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnNXaXRoUHJlZml4KGNvbDogQ2FzZUZpZWxkLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICBjb2wudmFsdWUgPSB0aGlzLmRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpO1xuICAgIGNvbC52YWx1ZSA9IHRoaXMucGxhY2Vob2xkZXJTZXJ2aWNlLnJlc29sdmVQbGFjZWhvbGRlcnMocmVzdWx0LmNhc2VfZmllbGRzLCBjb2wudmFsdWUpO1xuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICBwdWJsaWMgaGFzUmVzdWx0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxQYWdlc0NvdW50O1xuICB9XG5cbiAgcHVibGljIGhhc0RyYWZ0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0cygpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmF0b3IoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LmNyZWF0ZVNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvcihjb2x1bW4pO1xuICB9XG5cbiAgcHVibGljIHNvcnQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgaWYgKHRoaXMuY29uc3VtZXJTb3J0aW5nRW5hYmxlZCkge1xuICAgICAgaWYgKGNvbHVtbi5jYXNlX2ZpZWxkX2lkICE9PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uKSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID09PSBTb3J0T3JkZXIuREVTQ0VORElORyA/XG4gICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIC8vIHNpbXBsZSB3YXkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb2x1bW4gcGFyYW0gaXMgc29ydGVkIGFuZCBpZiBpdHMgYXNjL2Rlc2NcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9PT0gY29sdW1uLmNhc2VfZmllbGRfaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgKyB0aGlzLmRyYWZ0c0NvdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgcHJlcGFyZUNhc2VMaW5rVXJsKGNhc2VJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdXJsID0gdGhpcy5jYXNlTGlua1VybFRlbXBsYXRlO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdqdXJpc2RpY3Rpb25faWQnLCB0aGlzLmp1cmlzZGljdGlvbi5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VUeXBlX2lkJywgdGhpcy5jYXNlVHlwZS5pZCk7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2Nhc2VfaWQnLCBjYXNlSWQpO1xuXG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpOiBudW1iZXIge1xuICAgIHJldHVybiBjdXJyZW50UGFnZSA+IDEgPyB0aGlzLmRyYWZ0c0NvdW50IDogMDtcbiAgfVxuXG4gIHByaXZhdGUgbnVtYmVyT2ZEcmFmdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZmlsdGVyKF8gPT4gXy5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdvVG9DYXNlKGNhc2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGlja0Nhc2UuZW1pdCh7XG4gICAgICBjYXNlSWRcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ1NwYWNlJykge1xuICAgICAgaWYgKHRoaXMuYnJvd3NlclNlcnZpY2UuaXNGaXJlZm94IHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNTYWZhcmkgfHwgdGhpcy5icm93c2VyU2VydmljZS5pc0lFT3JFZGdlKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlU2VsZWN0aW9uKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgbm9vcCgpOiB2b2lkIHt9XG59XG4iLCI8dGFibGUgKm5nSWY9XCJoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKClcIj5cbiAgPGNhcHRpb24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiIGlkPVwic2VhcmNoLXJlc3VsdC1oZWFkaW5nX190ZXh0XCIgdGFiaW5kZXg9XCItMVwiPnt7IChjYXNlU3RhdGUgPyAnWW91ciBjYXNlcycgOiAnU2VhcmNoIHJlc3VsdCcpIHwgcnB4VHJhbnNsYXRlfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dCBwYWdpbmF0aW9uLWxpbWl0LXdhcm5pbmdcIiAqbmdJZj1cInBhZ2luYXRpb25MaW1pdEVuZm9yY2VkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19hc3Npc3RpdmVcIj57eydXYXJuaW5nJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICB7eydUaGUgdG90YWwgc2l6ZSBvZiB0aGUgcmVzdWx0IHNldCBpcycgfCBycHhUcmFuc2xhdGV9fSB7e3BhZ2luYXRpb25NZXRhZGF0YS50b3RhbFJlc3VsdHNDb3VudCB8IG51bWJlcn19LiB7eydPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCI+XG4gICAgICA8b3V0cHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0VG90YWxSZXN1bHRzKCkgKyAnIHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kJyB8IHJweFRyYW5zbGF0ZVwiPjwvb3V0cHV0PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiIGlkPVwic2VhcmNoLXJlc3VsdC1zdW1tYXJ5X190ZXh0XCI+e3snU2hvd2luZycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldEZpcnN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHt7J3RvJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0TGFzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICB7eydvZicgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldFRvdGFsUmVzdWx0cygpIH19PC9zcGFuPiB7eydyZXN1bHRzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpKSAmJiBzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJyZXNldC1zZWxlY3Rpb25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1Jlc2V0IHNlbGVjdGlvbicgfCBycHhUcmFuc2xhdGVcIj5cbiAgICAgIDxzcGFuPjxhIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1yZXNldC1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJjbGVhclNlbGVjdGlvbigpXCI+e3snUmVzZXQgY2FzZSBzZWxlY3Rpb24nIHwgcnB4VHJhbnNsYXRlfX08L2E+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2NhcHRpb24+XG4gIDx0aGVhZD5cbiAgICA8dHIgc2NvcGU9XCJyb3dcIj5cbiAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3QtYWxsXCIgbmFtZT1cInNlbGVjdC1hbGxcIiB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgpXCIgW2NoZWNrZWRdPVwiYWxsT25QYWdlU2VsZWN0ZWQoKVwiIFtkaXNhYmxlZF09XCIhY2FuQW55QmVTaGFyZWQoKVwiIC8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3QtYWxsXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtYWxsJ1wiPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uc1wiIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4taGVhZGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zb3J0XT1cImlzU29ydEFzY2VuZGluZyhjb2wpID09PSBudWxsID8gbnVsbCA6IChpc1NvcnRBc2NlbmRpbmcoY29sKSA/ICdhc2NlbmRpbmcnIDogJ2Rlc2NlbmRpbmcnKVwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWxhYmVsXCIgKGNsaWNrKT1cInNvcnQoY29sKVwiIChrZXl1cCk9XCJub29wKClcIj5cbiAgICAgICAgICAgIHt7Y29sLmxhYmVsIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwic29ydChjb2wpXCIgY2xhc3M9XCJzb3J0LXdpZGdldFwiIFtpbm5lckhUTUxdPVwic29ydFdpZGdldChjb2wpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPjwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIiBzdHlsZT1cIndpZHRoOiAxMTBweDtcIiBzY29wZT1cImNvbFwiPiZaZXJvV2lkdGhTcGFjZTs8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5PlxuICAgIDwhLS0gc29ydGVkIGJ5IGNvbnN1bWVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtJyArIHJlc3VsdC5jYXNlX2lkXCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICA8YSAqbmdJZj1cImNvbEluZGV4ID09IDBcIiBbcm91dGVyTGlua109XCJwcmVwYXJlQ2FzZUxpbmtVcmwocmVzdWx0LmNhc2VfaWQpXCJcbiAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cImdvIHRvIGNhc2Ugd2l0aCBDYXNlIHJlZmVyZW5jZTp7eyByZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2UgfX1cIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhaGlkZVJvd3NcIj5cbiAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkICpuZ0lmPVwiZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7IGVsc2UgY2FzZV9yZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImdldENvbHVtbnNXaXRoUHJlZml4KHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSwgcmVzdWx0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FzZV9yZWZlcmVuY2U+e3tyZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2V9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbEluZGV4ICE9IDBcIiBjbGFzcz1cInRleHQtMTZcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgY2NkTGFiZWxTdWJzdGl0dXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRdPVwicmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpdml0eUVuYWJsZWQoKVwiPlxuICAgICAgICAgIDxkaXYgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cInJlc3VsdC5jYXNlX2lkXCIgW2Rpc3BsYXlNb2RlXT1cIklDT05cIj48L2NjZC1hY3Rpdml0eT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBzb3J0ZWQgYnkgdG9vbGtpdCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnN1bWVyU29ydGluZ0VuYWJsZWRcIj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHJlc3VsdFZpZXcucmVzdWx0cyB8IGNjZFNvcnRTZWFyY2hSZXN1bHQgOiBzb3J0UGFyYW1ldGVycyB8IHBhZ2luYXRlOiB7IGl0ZW1zUGVyUGFnZTogcGFnaW5hdGlvblBhZ2VTaXplLCBjdXJyZW50UGFnZTogc2VsZWN0ZWQucGFnZSwgdG90YWxJdGVtczogcmVzdWx0VG90YWwgfVwiPlxuICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgbmFtZT1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiY2hhbmdlU2VsZWN0aW9uKHJlc3VsdClcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKHJlc3VsdClcIiBbZGlzYWJsZWRdPVwiIWNhbkJlU2hhcmVkKHJlc3VsdClcIiAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIHJlc3VsdClcIiAvPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3NlbGVjdC0nICsgcmVzdWx0LmNhc2VfaWRcIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uczsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIiBzY29wZT1cInJvd1wiPlxuXG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48Y2NkLXBhZ2luYXRpb25cbiAgKm5nSWY9XCJoYXNSZXN1bHRzKClcIlxuICAocGFnZUNoYW5nZSk9XCJnb1RvUGFnZSgkZXZlbnQpXCJcbiAgW3Zpc2liaWxpdHlMYWJlbF09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcbiAgW2F1dG9IaWRlXT1cInRydWVcIlxuICBbbWF4U2l6ZV09XCI4XCJcbiAgW3NjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbF09XCInUGFnaW5hdGlvbidcIlxuICBbc2NyZWVuUmVhZGVyUGFnZUxhYmVsXT1cInBhZ2VcIlxuICBbc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsXT1cIidZb3VcXCdyZSBvbiBwYWdlJ1wiPjwvY2NkLXBhZ2luYXRpb24+XG5cbjxkaXYgKm5nSWY9XCIhKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXG5bYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGVcIj5cbnt7J05vIGNhc2VzIGZvdW5kLiBUcnkgdXNpbmcgZGlmZmVyZW50IGZpbHRlcnMuJyB8IHJweFRyYW5zbGF0ZX19XG48L2Rpdj5cbiJdfQ==
|
|
819
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQ2hGLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxxQ0FBcUMsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDTHRJLEFBREYsK0JBQXlGLGVBQzdCO0lBQUEsaUJBQUM7SUFBQSxpQkFBTztJQUVoRSxBQURGLGtDQUF5QyxlQUNLO0lBQUEsWUFBNEI7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Q0FBQztJQUVELGdFQUFnRTtJQUNoRSxJQUFJLEtBQVUsQ0FBQzsrR0EvYUoscUJBQXFCOzZEQUFyQixxQkFBcUI7WUN5SGxDLEFBVkEsQUFoSUEsNEVBQTJDLCtFQXdJTSx5REFHdUM7O1lBM0loRiwwREFBaUM7WUFpSXRDLGNBQWtCO1lBQWxCLHVDQUFrQjtZQVNmLGNBQW9DO1lBQXBDLDZEQUFvQzs7O2lGRHpIN0IscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsbUJBQW1CO3NRQWV0QixtQkFBbUI7a0JBRHpCLEtBQUs7WUFJQyxZQUFZO2tCQURsQixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxrQkFBa0I7a0JBRHhCLEtBQUs7WUFJQyxjQUFjO2tCQURwQixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixLQUFLO1lBSUMsc0JBQXNCO2tCQUQ1QixLQUFLO1lBSUMsU0FBUztrQkFEZixNQUFNO1lBSUEsVUFBVTtrQkFEaEIsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFdBQVc7a0JBRGpCLE1BQU07O2tGQTFESSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBQbGFjZWhvbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIENhc2VGaWVsZCwgQ2FzZVN0YXRlLCBDYXNlVHlwZSwgRGlzcGxheU1vZGUsXG4gIERSQUZUX1BSRUZJWCwgSnVyaXNkaWN0aW9uLCBQYWdpbmF0aW9uTWV0YWRhdGEsIFNlYXJjaFJlc3VsdFZpZXcsIFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sXG4gIFNlYXJjaFJlc3VsdFZpZXdJdGVtLCBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IsIFNvcnRPcmRlciwgU29ydFBhcmFtZXRlcnNcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VSZWZlcmVuY2VQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlLCBCcm93c2VyU2VydmljZSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9KVVJJU0RJQ1RJT04gPSAnanVyaXNkaWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1RZUEUgPSAnY2FzZS10eXBlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPSAxMDAwMDtcblxuICBwdWJsaWMgSUNPTiA9IERpc3BsYXlNb2RlLklDT047XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VMaW5rVXJsVGVtcGxhdGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMganVyaXNkaWN0aW9uOiBKdXJpc2RpY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VUeXBlOiBDYXNlVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVN0YXRlOiBDYXNlU3RhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWx0ZXJGRzogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN1bHRWaWV3OiBTZWFyY2hSZXN1bHRWaWV3O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2luYXRpb25NZXRhZGF0YTogUGFnaW5hdGlvbk1ldGFkYXRhO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkczogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09ubHlTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVTZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN1bWVyU29ydGluZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0Vmlld0l0ZW1bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoYW5nZVBhZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xpY2tDYXNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNvcnRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXI7XG5cbiAgcHVibGljIGhpZGVSb3dzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDoge1xuICAgIGluaXQ/OiBib29sZWFuLFxuICAgIGp1cmlzZGljdGlvbj86IEp1cmlzZGljdGlvbixcbiAgICBjYXNlVHlwZT86IENhc2VUeXBlLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsXG4gICAgbWV0YWRhdGFGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBwYWdlPzogbnVtYmVyXG4gIH0gPSB7fTtcblxuICBwdWJsaWMgc29ydFBhcmFtZXRlcnM6IFNvcnRQYXJhbWV0ZXJzO1xuICBwdWJsaWMgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgcHVibGljIGRyYWZ0c0NvdW50OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN1bWVyU29ydFBhcmFtZXRlcnM6IHsgY29sdW1uOiBzdHJpbmcsIG9yZGVyOiBTb3J0T3JkZXIsIHR5cGU6IHN0cmluZyB9ID0geyBjb2x1bW46IG51bGwsIG9yZGVyOiBudWxsLCB0eXBlOiBudWxsIH07XG5cbiAgcHVibGljIHNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LFxuICAgIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJvd3NlclNlcnZpY2U6IEJyb3dzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5ID0gc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IGFwcENvbmZpZy5nZXRQYWdpbmF0aW9uUGFnZVNpemUoKTtcbiAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgZm9yIChjb25zdCBwcmVTZWxlY3RlZENhc2Ugb2YgdGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMgJiYgIXRoaXMuc2VsZWN0ZWRDYXNlcy5zb21lKGFDYXNlID0+IGFDYXNlLmNhc2VfaWQgPT09IHByZVNlbGVjdGVkQ2FzZS5jYXNlX2lkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKHByZVNlbGVjdGVkQ2FzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgaWYgKGNoYW5nZXNbJ3Jlc3VsdFZpZXcnXSkge1xuICAgICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgLy8gQ2xvbmUgYHJlc3VsdFZpZXdgIHRvIHByZXZlbnQgc29ydGluZyB0aGUgZXh0ZXJuYWwgdmFyaWFibGVcbiAgICAgIHRoaXMucmVzdWx0VmlldyA9IHtcbiAgICAgICAgY29sdW1uczogdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc2xpY2UoMCksXG4gICAgICAgIHJlc3VsdHM6IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLnNsaWNlKDApLFxuICAgICAgICBoYXNEcmFmdHM6IHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zID0gdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc29ydCgoYTogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgYjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikgPT4ge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5oeWRyYXRlUmVzdWx0VmlldygpO1xuICAgICAgdGhpcy5kcmFmdHNDb3VudCA9IHRoaXMuZHJhZnRzQ291bnQgPyB0aGlzLmRyYWZ0c0NvdW50IDogdGhpcy5udW1iZXJPZkRyYWZ0cygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAoY2hhbmdlc1sncGFnZSddKS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzVHJhbnNsYXRhYmxlKGNvbDogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGaWVsZHNVdGlscy5pc1RyYW5zbGF0YWJsZShjb2wuY2FzZV9maWVsZF90eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzdWx0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUmVzdWx0c0NvdW50O1xuICAgIGNvbnN0IG1heGltdW1SZXN1bHRSZWFjaGVkID0gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVDtcbiAgICB0aGlzLnBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gbWF4aW11bVJlc3VsdFJlYWNoZWQ7XG5cbiAgICByZXR1cm4gbWF4aW11bVJlc3VsdFJlYWNoZWQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGNhc2VWaWV3OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEgJiYgY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhLmhhc093blByb3BlcnR5KCdvcmdzX2Fzc2lnbmVkX3VzZXJzJyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBhbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChjKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2ldLmNhc2VfaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2FuQmVTaGFyZWRDb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXTtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIGNhbkJlU2hhcmVkQ291bnQrKztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKHIpICYmIHRoaXMuY2FuQmVTaGFyZWQocikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2FuQmVTaGFyZWRDb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIeWRyYXRlcyByZXN1bHQgdmlldyB3aXRoIGNhc2UgZmllbGQgZGVmaW5pdGlvbnMuXG4gICAqL1xuICAvLyBBIGxvbmdlciB0ZXJtIHJlc29sdXRpb24gaXMgdG8gbW92ZSB0aGlzIHBpZWNlIG9mIGxvZ2ljIHRvIHRoZSBiYWNrZW5kXG4gIHB1YmxpYyBoeWRyYXRlUmVzdWx0VmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBjYXNlRmllbGRzID0gW107XG5cbiAgICAgIE9iamVjdC5rZXlzKHJlc3VsdC5jYXNlX2ZpZWxkcykuZm9yRWFjaChmaWVsZElkID0+IHtcblxuICAgICAgICBjb25zdCBmaWVsZCA9IHJlc3VsdC5jYXNlX2ZpZWxkc1tmaWVsZElkXTtcblxuICAgICAgICBjYXNlRmllbGRzLnB1c2goT2JqZWN0LmFzc2lnbihuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgICAgICBpZDogZmllbGRJZCxcbiAgICAgICAgICBsYWJlbDogbnVsbCxcbiAgICAgICAgICBmaWVsZF90eXBlOiB7fSxcbiAgICAgICAgICB2YWx1ZTogZmllbGQsXG4gICAgICAgICAgZGlzcGxheV9jb250ZXh0OiBudWxsLFxuICAgICAgICB9KSk7XG4gICAgICB9KTtcblxuICAgICAgcmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzID0gY2FzZUZpZWxkcztcbiAgICAgIHJlc3VsdC5jb2x1bW5zID0ge307XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zLmZvckVhY2goY29sID0+IHtcbiAgICAgICAgcmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdID0gdGhpcy5idWlsZENhc2VGaWVsZChjb2wsIHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGdvVG9QYWdlKHBhZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVSb3dzID0gdHJ1ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmluaXQgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uO1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSB0aGlzLmNhc2VUeXBlO1xuICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID0gdGhpcy5jYXNlU3RhdGU7XG4gICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmNhc2VGaWx0ZXJGRztcbiAgICB0aGlzLnNlbGVjdGVkLm1ldGFkYXRhRmllbGRzID0gdGhpcy5tZXRhZGF0YUZpZWxkcztcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSBwYWdlO1xuICAgIC8vIEFwcGx5IGZpbHRlcnNcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9KVVJJU0RJQ1RJT05dID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPyB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5pZCA6IG51bGw7XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0NBU0VfVFlQRV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID8gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZS5pZCA6IG51bGw7XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0NBU0VfU1RBVEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZS5pZCA6IG51bGw7XG4gICAgdGhpcy5jaGFuZ2VQYWdlLmVtaXQoe1xuICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBxdWVyeVBhcmFtc1xuICAgIH0pO1xuXG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0b3BDb250YWluZXIuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoY29sOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkOiBjb2wuY2FzZV9maWVsZF9pZCxcbiAgICAgIGxhYmVsOiBjb2wubGFiZWwsXG4gICAgICBmaWVsZF90eXBlOiBjb2wuY2FzZV9maWVsZF90eXBlLFxuICAgICAgdmFsdWU6IHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0sXG4gICAgICBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyOiBjb2wuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcixcbiAgICAgIGRpc3BsYXlfY29udGV4dDogY29sLmRpc3BsYXlfY29udGV4dCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5zV2l0aFByZWZpeChjb2w6IENhc2VGaWVsZCwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgY29sLnZhbHVlID0gdGhpcy5kcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTtcbiAgICBjb2wudmFsdWUgPSB0aGlzLnBsYWNlaG9sZGVyU2VydmljZS5yZXNvbHZlUGxhY2Vob2xkZXJzKHJlc3VsdC5jYXNlX2ZpZWxkcywgY29sLnZhbHVlKTtcbiAgICByZXR1cm4gY29sO1xuICB9XG5cbiAgcHVibGljIGhhc1Jlc3VsdHMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoICYmIHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUGFnZXNDb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEcmFmdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJhdG9yKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeS5jcmVhdGVTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IoY29sdW1uKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGlmIChjb2x1bW4uY2FzZV9maWVsZF9pZCAhPT0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbikge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcgP1xuICAgICAgICAgIFNvcnRPcmRlci5BU0NFTkRJTkcgOlxuICAgICAgICAgIFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkO1xuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLnR5cGUgPSBjb2x1bW4uY2FzZV9maWVsZF90eXBlLnR5cGU7XG4gICAgICB0aGlzLnNvcnRIYW5kbGVyLmVtaXQodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pKSB7XG4gICAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSBuZXcgU29ydFBhcmFtZXRlcnModGhpcy5jb21wYXJhdG9yKGNvbHVtbiksIFNvcnRPcmRlci5BU0NFTkRJTkcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzb3J0V2lkZ2V0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGxldCBjb25kaXRpb24gPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBjb25zdCBpc0NvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkID09PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uO1xuICAgICAgY29uc3QgaXNBc2NlbmRpbmcgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgICBjb25kaXRpb24gPSAhaXNDb2x1bW4gfHwgKGlzQ29sdW1uICYmIGlzQXNjZW5kaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9uID0gdGhpcy5pc1NvcnRBc2NlbmRpbmcoY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9uID8gJyYjOTY2MDsnIDogJyYjOTY1MDsnO1xuICB9XG5cbiAgcHVibGljIGFjdGl2aXR5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuaXNFbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGh5cGhlbmF0ZUlmQ2FzZVJlZmVyZW5jZU9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICBpZiAoY29sLmNhc2VfZmllbGRfaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sLmlkKSB7XG4gICAgICAgIGlmIChjb2wuaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybShyZXN1bHQuY2FzZV9maWVsZHNbY29sLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk6IGFueSB7XG4gICAgcmV0dXJuIHJlc3VsdC5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSA/IERSQUZUX1BSRUZJWCA6IHRoaXMuaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpO1xuICB9XG5cbiAgcHVibGljIGlzU29ydEFzY2VuZGluZyhjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBib29sZWFuIHtcbiAgICAvLyBzaW1wbGUgd2F5IHRvIGRldGVybWluZSBpZiB0aGUgY29sdW1uIHBhcmFtIGlzIHNvcnRlZCBhbmQgaWYgaXRzIGFzYy9kZXNjXG4gICAgaWYgKHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW4gPT09IGNvbHVtbi5jYXNlX2ZpZWxkX2lkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID09PSBTb3J0T3JkZXIuQVNDRU5ESU5HO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaXJzdFJlc3VsdCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gKHRoaXMuc2VsZWN0ZWQucGFnZSA/IHRoaXMuc2VsZWN0ZWQucGFnZSA6IDEpO1xuICAgIHJldHVybiAoKGN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSkgKyAxICsgdGhpcy5nZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFzdFJlc3VsdCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gKHRoaXMuc2VsZWN0ZWQucGFnZSA/IHRoaXMuc2VsZWN0ZWQucGFnZSA6IDEpO1xuICAgIHJldHVybiAoKGN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSkgKyB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb3RhbFJlc3VsdHMoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMucGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsUmVzdWx0c0NvdW50ICsgdGhpcy5kcmFmdHNDb3VudDtcblxuICAgIHJldHVybiB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUID8gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA6IHRvdGFsO1xuICB9XG5cbiAgcHVibGljIHByZXBhcmVDYXNlTGlua1VybChjYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMuY2FzZUxpbmtVcmxUZW1wbGF0ZTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnanVyaXNkaWN0aW9uX2lkJywgdGhpcy5qdXJpc2RpY3Rpb24uaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlVHlwZV9pZCcsIHRoaXMuY2FzZVR5cGUuaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlX2lkJywgY2FzZUlkKTtcblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIGdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY3VycmVudFBhZ2UgPiAxID8gdGhpcy5kcmFmdHNDb3VudCA6IDA7XG4gIH1cblxuICBwcml2YXRlIG51bWJlck9mRHJhZnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZpbHRlcihfID0+IF8uY2FzZV9pZC5zdGFydHNXaXRoKERSQUZUX1BSRUZJWCkpLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvQ2FzZShjYXNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY2xpY2tDYXNlLmVtaXQoe1xuICAgICAgY2FzZUlkXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdTcGFjZScpIHtcbiAgICAgIGlmICh0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzRmlyZWZveCB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzU2FmYXJpIHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNJRU9yRWRnZSkge1xuICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGlvbihjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIG5vb3AoKTogdm9pZCB7fVxufVxuIiwiPHRhYmxlICpuZ0lmPVwiaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpXCI+XG4gIDxjYXB0aW9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDJcIiBpZD1cInNlYXJjaC1yZXN1bHQtaGVhZGluZ19fdGV4dFwiIHRhYmluZGV4PVwiLTFcIj57eyAoY2FzZVN0YXRlID8gJ1lvdXIgY2FzZXMnIDogJ1NlYXJjaCByZXN1bHQnKSB8IHJweFRyYW5zbGF0ZX19PC9oMj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHQgcGFnaW5hdGlvbi1saW1pdC13YXJuaW5nXCIgKm5nSWY9XCJwYWdpbmF0aW9uTGltaXRFbmZvcmNlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+e3snV2FybmluZycgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAge3snVGhlIHRvdGFsIHNpemUgb2YgdGhlIHJlc3VsdCBzZXQgaXMnIHwgcnB4VHJhbnNsYXRlfX0ge3twYWdpbmF0aW9uTWV0YWRhdGEudG90YWxSZXN1bHRzQ291bnQgfCBudW1iZXJ9fS4ge3snT25seSB0aGUgZmlyc3QgMTAsMDAwIHJlY29yZHMgYXJlIGF2YWlsYWJsZSBmb3IgZGlzcGxheS4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLXRvcFwiPlxuICAgICAgPG91dHB1dCBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFRvdGFsUmVzdWx0cygpICsgJyAnICsgKCdyZXN1bHRzIGhhdmUgYmVlbiBmb3VuZCcgfCBycHhUcmFuc2xhdGUpXCI+PC9vdXRwdXQ+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgaWQ9XCJzZWFyY2gtcmVzdWx0LXN1bW1hcnlfX3RleHRcIj57eydTaG93aW5nJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0Rmlyc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAge3sndG8nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRMYXN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHt7J29mJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0VG90YWxSZXN1bHRzKCkgfX08L3NwYW4+IHt7J3Jlc3VsdHMnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpICYmIHNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cInJlc2V0LXNlbGVjdGlvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVzZXQgc2VsZWN0aW9uJyB8IHJweFRyYW5zbGF0ZVwiPlxuICAgICAgPHNwYW4+PGEgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LXJlc2V0LWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj57eydSZXNldCBjYXNlIHNlbGVjdGlvbicgfCBycHhUcmFuc2xhdGV9fTwvYT48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvY2FwdGlvbj5cbiAgPHRoZWFkPlxuICAgIDx0ciBzY29wZT1cInJvd1wiPlxuICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC1hbGxcIiBuYW1lPVwic2VsZWN0LWFsbFwiIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsKClcIiBbY2hlY2tlZF09XCJhbGxPblBhZ2VTZWxlY3RlZCgpXCIgW2Rpc2FibGVkXT1cIiFjYW5BbnlCZVNoYXJlZCgpXCIgLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC1hbGxcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3NlbGVjdC1hbGwnXCI+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1oZWFkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLXNvcnRdPVwiaXNTb3J0QXNjZW5kaW5nKGNvbCkgPT09IG51bGwgPyBudWxsIDogKGlzU29ydEFzY2VuZGluZyhjb2wpID8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZycpXCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tbGFiZWxcIiAoY2xpY2spPVwic29ydChjb2wpXCIgKGtleXVwKT1cIm5vb3AoKVwiPlxuICAgICAgICAgICAge3sgaXNUcmFuc2xhdGFibGUoY29sKSA/IChjb2wubGFiZWwgfCBycHhUcmFuc2xhdGUpIDogY29sLmxhYmVsIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbXBhcmF0b3IoY29sKVwiIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tc29ydFwiPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNvcnQoY29sKVwiIGNsYXNzPVwic29ydC13aWRnZXRcIiBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCIgc2NvcGU9XCJjb2xcIj4mWmVyb1dpZHRoU3BhY2U7PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keT5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc2VsZWN0LScgKyByZXN1bHQuY2FzZV9pZFwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidzZWxlY3QtJyArIHJlc3VsdC5jYXNlX2lkXCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy4nIHwgcnB4VHJhbnNsYXRlXCI+XG57eydObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLicgfCBycHhUcmFuc2xhdGV9fVxuPC9kaXY+XG4iXX0=
|