{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue?3291","webpack:///./src/components/invoice-lookup/invoice-lookup-grid.vue?ff43","webpack:///./src/components/fee-sheets/fee-sheet-row-dialog.vue?1ced","webpack:///./src/views/upload-invoice-file.vue?7acb","webpack:///./src/components/file-service/file-service-grid.vue?1b64","webpack:///./src/components/activity-planner/agent-setup.vue?d622","webpack:///./src/components/auditor/agent-fee-sheet-table.vue?c8bd","webpack:///./src/views/fee-sheet-templates-form.vue?e12c","webpack:///./src/components/client/auditor-report.vue?087d","webpack:///./src/components/matter-work/phase-assignment-notes.vue?f61f","webpack:///./src/components/activity-planner/analysis-text-review.vue?a88a","webpack:///./src/components/users/user-assigned-clients.vue?98ff","webpack:///./src/views/file-service.vue?82aa","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue?ab53","webpack:///./src/components/browse-mode/auditing-browse-mode-selection-dialog.vue?3e84","webpack:///./src/views/phase-aliases.vue?7f0f","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/matter-work/auto-text-dialog.vue?4d7f","webpack:///./src/views/help.vue?2fa0","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue?7747","webpack:///./src/views/file-parse-format-column.vue?8dfb","webpack:///./src/components/auditor/charge-summary.vue?1e5b","webpack:///./src/views/activity-planner/agent-setup.vue?aed8","webpack:///./src/components/activity-planner/create-new-agent.vue?2673","webpack:///./src/components/comment/comments-response.vue?4ead","webpack:///./src/components/filing-type.vue?1f87","webpack:///./src/components/fee-sheets/fee-sheet-row-notes.vue?a281","webpack:///./src/components/fee-sheets/email-template-editor.vue?8eec","webpack:///./src/components/matter/matter-details.vue?d6da","webpack:///./src/components/fee-sheets/add-update-fee-sheets.vue?7f2a","webpack:///./src/components/activity-planner/link-new-agent.vue?1b08","webpack:///./src/components/fee-sheets/parent-fee-sheet-row-details.vue?5781","webpack:///./src/components/analysis-triggers/analysis-trigger-list.vue?37b0","webpack:///./src/components/auditor/all-clients-summary.vue?93a8","webpack:///./src/components/client/create-client.form.vue?f8c3","webpack:///./src/components/matter-work/phase-assignment-infraction-popover.vue?01c5","webpack:///./src/components/matter-work/matter-work-line-items.vue?a57c","webpack:///./src/components/analysis-triggers/analysis-trigger-rule-add-edit.vue?608d","webpack:///./src/components/activity-planner/claimed-work.vue?ba2f","webpack:///./src/views/activity-planner/coding.vue?aff2","webpack:///./src/components/text-popup.vue?7ab2","webpack:///./src/components/auditor/charge-detail.vue?cacd","webpack:///./src/components/e-billing/e-billing.vue?d5f9","webpack:///./src/views/activity-planner/batch-snapshot.vue?6c43","webpack:///./src/views/upload-invoice-file.vue?bb79","webpack:///./src/components/matter-work/phase-assignment-infractions.vue?b87b","webpack:///./src/components/client/client-setup-form.vue?0629","webpack:///./src/components/matter-work/phase-assignment_order-setup-dialog.vue?f7db","webpack:///./src/views/activity-planner/comments.vue?5ffb","webpack:///./src/components/activity-planner/agent-info-edit.vue?a4ee","webpack:///./src/components/activity-planner/report-on-demand.vue?90c1","webpack:///./src/components/file-parse-uploads.vue?9b38","webpack:///./src/components/client/analysis-report.vue?84ce","webpack:///./src/components/matter-work/matter-totals.vue?fa28","webpack:///./src/components/fee-sheet-templates/fee-sheet-templates-grid.vue?df60","webpack:///./src/views/auditor-page.vue?f054","webpack:///./src/components/matter-work/phase-assignment-notes.vue?79ee","webpack:///./src/components/matter-work/auto-text-dialog.vue?0125","webpack:///./src/views/batch/batch.vue?0cb0","webpack:///./src/App.vue?e887","webpack:///./src/views/phase-assignment.vue?4a97","webpack:///./src/components/matter-work/matter-work-line-items.vue?cd01","webpack:///./src/components/browse-mode/browse-mode-selection-dialog.vue?99d8","webpack:///./src/components/matter-work/update-line-items-matter-name.vue?e650","webpack:///./src/App.vue?adab","webpack:///./src/store/UserSettingsModule.ts","webpack:///./src/store/MatterWorkModule.ts","webpack:///./src/store.ts","webpack:///./src/models/UserSetting.ts","webpack:///./src/service/UserService.ts","webpack:///./src/service/UserSettingsService.ts","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue","webpack:///./src/views/Home.vue?bb97","webpack:///./src/views/Home.vue?42b8","webpack:///./src/models/file-parsing/FileParseUploadStatusTypeEnum.ts","webpack:///./src/views/Home.vue?102e","webpack:///./src/views/Home.vue","webpack:///./src/views/upload-invoice-file.vue?5cac","webpack:///./src/service/ClientService.ts","webpack:///./src/service/AgentService.ts","webpack:///./src/service/FileParseUploadService.ts","webpack:///./src/models/file-parsing/FileParseFormatDto.ts","webpack:///./src/models/file-parsing/FileParseFormatRankingDto.ts","webpack:///./src/service/BatchService.ts","webpack:///./src/utilities/String.ts","webpack:///./src/views/upload-invoice-file.vue?e513","webpack:///./src/views/upload-invoice-file.vue?9c8e","webpack:///./src/views/upload-invoice-file.vue","webpack:///./src/views/client-matter-data.vue?e6fe","webpack:///./src/components/client-data-grid.vue?fe5d","webpack:///./src/service/CrudServiceBase.ts","webpack:///./src/service/ClientMatterDataService.ts","webpack:///./src/components/client-data-grid.vue?886e","webpack:///./src/components/client-data-grid.vue?54c7","webpack:///./src/components/client-data-grid.vue","webpack:///./src/views/client-matter-data.vue?c8ac","webpack:///./src/views/client-matter-data.vue?4f35","webpack:///./src/views/client-matter-data.vue","webpack:///./src/views/client-setup.vue?0b64","webpack:///./src/components/client/client-setup-form.vue?92e3","webpack:///./src/components/activity-planner/agent-info-edit.vue?e311","webpack:///./src/service/ClientAgentService.ts","webpack:///./src/models/client/ClientDto.ts","webpack:///./src/models/agent/AgentDto.ts","webpack:///./src/models/client-agent/ClientAgentAliasDto.ts","webpack:///./src/models/client-agent/ClientAgentInfoDto.ts","webpack:///./src/service/AuditingService.ts","webpack:///./src/components/activity-planner/agent-info-edit.vue?82d7","webpack:///./src/models/TextTemplateTypeEnum.ts","webpack:///./src/components/activity-planner/agent-info-edit.vue?5b17","webpack:///./src/components/activity-planner/agent-info-edit.vue","webpack:///./src/components/client/analysis-report.vue?3d91","webpack:///./src/service/TextTemplateService.ts","webpack:///./src/components/client/analysis-report.vue?4e49","webpack:///./src/components/client/analysis-report.vue?1e46","webpack:///./src/components/client/analysis-report.vue","webpack:///./src/components/client/auditor-report.vue?0c3e","webpack:///./src/components/client/auditor-report.vue?b50f","webpack:///./src/components/client/auditor-report.vue?f6d9","webpack:///./src/components/client/auditor-report.vue","webpack:///./src/components/client/client-setup-main.vue?e2d7","webpack:///./src/components/client/client-setup-main.vue?627d","webpack:///./src/components/client/client-setup-main.vue?40ed","webpack:///./src/components/client/client-setup-main.vue","webpack:///./src/components/fee-sheets/email-template-editor.vue?e870","webpack:///./src/components/fee-sheets/email-template-editor.vue?a940","webpack:///./src/components/fee-sheets/email-template-editor.vue?d913","webpack:///./src/components/fee-sheets/email-template-editor.vue","webpack:///./src/components/client/client-setup-form.vue?6d46","webpack:///./src/components/client/client-setup-form.vue?afdf","webpack:///./src/components/client/client-setup-form.vue","webpack:///./src/components/client/create-client.form.vue?83a9","webpack:///./src/components/client/create-client.form.vue?d009","webpack:///./src/components/client/create-client.form.vue?c3e2","webpack:///./src/components/client/create-client.form.vue","webpack:///./src/views/client-setup.vue?46c5","webpack:///./src/views/client-setup.vue?4be2","webpack:///./src/views/client-setup.vue","webpack:///./src/views/fee-designations.vue?7671","webpack:///./src/components/fee-designations/fee-designations-grid.vue?c91e","webpack:///./src/service/FeeDesignationService.ts","webpack:///./src/models/Fees/FeeDesignationSearchColumns.ts","webpack:///./src/components/fee-designations/fee-designations-grid.vue?2a6b","webpack:///./src/components/fee-designations/fee-designations-grid.vue?275d","webpack:///./src/components/fee-designations/fee-designations-grid.vue","webpack:///./src/views/fee-designations.vue?1bd8","webpack:///./src/views/fee-designations.vue?f555","webpack:///./src/views/fee-designations.vue","webpack:///./src/views/infraction-rules.vue?7bdf","webpack:///./src/components/infraction-rules/infraction-rules-grid.vue?534e","webpack:///./src/service/InfractionRuleService.ts","webpack:///./src/models/infractions/InfractionRuleType.ts","webpack:///./src/service/CountryService.ts","webpack:///./src/models/infractions/InfractionRuleColumns.ts","webpack:///./src/components/infraction-rules/infraction-rules-grid.vue?8af8","webpack:///./src/components/infraction-rules/infraction-rules-grid.vue?e3eb","webpack:///./src/components/infraction-rules/infraction-rules-grid.vue","webpack:///./src/views/infraction-rules.vue?924a","webpack:///./src/views/infraction-rules.vue?a5bd","webpack:///./src/views/infraction-rules.vue","webpack:///./src/views/phase-aliases.vue?47a1","webpack:///./src/components/phase-aliases/phase-aliases-grid.vue?dfca","webpack:///./src/service/PhaseAliasService.ts","webpack:///./src/components/phase-aliases/phase-aliases-grid.vue?ed2f","webpack:///./src/components/phase-aliases/phase-aliases-grid.vue?5d87","webpack:///./src/components/phase-aliases/phase-aliases-grid.vue","webpack:///./src/components/phase-aliases/phase-aliases-edit.vue?f633","webpack:///./src/models/PhaseAliasDto.ts","webpack:///./src/components/phase-aliases/phase-aliases-edit.vue?43b8","webpack:///./src/components/phase-aliases/phase-aliases-edit.vue?57b9","webpack:///./src/components/phase-aliases/phase-aliases-edit.vue","webpack:///./src/views/phase-aliases.vue?7907","webpack:///./src/views/phase-aliases.vue?378a","webpack:///./src/views/phase-aliases.vue","webpack:///./src/views/fee-sheet-rules.vue?b629","webpack:///./src/components/fee-sheet-rules/fee-sheet-rules-grid.vue?1006","webpack:///./src/service/FeeSheetRuleService.ts","webpack:///./src/service/CurrencyService.ts","webpack:///./src/service/FilingTypeService.ts","webpack:///./src/components/fee-sheet-rules/fee-sheet-rules-grid.vue?bb05","webpack:///./src/components/fee-sheet-rules/fee-sheet-rules-grid.vue?bbf5","webpack:///./src/components/fee-sheet-rules/fee-sheet-rules-grid.vue","webpack:///./src/views/fee-sheet-rules.vue?ae87","webpack:///./src/views/fee-sheet-rules.vue?a00f","webpack:///./src/views/fee-sheet-rules.vue","webpack:///./src/views/fee-sheets.vue?b595","webpack:///./src/components/fee-sheets/client-agents-fee-sheets.vue?b335","webpack:///./src/service/FeeSheetsService.ts","webpack:///./src/models/Fees/FeeTypeEnum.ts","webpack:///./src/components/fee-sheets/add-update-fee-sheets.vue?d3ef","webpack:///./src/service/InfractionService.ts","webpack:///./src/models/Fees/FeeSheetRuleDto.ts","webpack:///./src/models/Fees/FeeSheetRowDto.ts","webpack:///./src/service/PhaseTypeService.ts","webpack:///./src/components/fee-sheets/fee-sheet-row-dialog.vue?ebe6","webpack:///./src/components/fee-sheets/fee-sheet-row-dialog.vue?ef5d","webpack:///./src/components/fee-sheets/fee-sheet-row-dialog.vue?bd3e","webpack:///./src/components/fee-sheets/fee-sheet-row-dialog.vue","webpack:///./src/service/FileService.ts","webpack:///./src/components/fee-sheets/fee-sheet-row-notes.vue?eb60","webpack:///./src/components/fee-sheets/fee-sheet-row-notes.vue?dfc0","webpack:///./src/components/fee-sheets/fee-sheet-row-notes.vue?1cef","webpack:///./src/components/fee-sheets/fee-sheet-row-notes.vue","webpack:///./src/components/fee-sheets/parent-fee-sheet-row-details.vue?5d96","webpack:///./src/components/fee-sheets/parent-fee-sheet-row-details.vue?67de","webpack:///./src/components/fee-sheets/parent-fee-sheet-row-details.vue?4516","webpack:///./src/components/fee-sheets/parent-fee-sheet-row-details.vue","webpack:///./src/components/fee-sheets/add-update-fee-sheets.vue?e573","webpack:///./src/models/client-agent/ClientAgentJurisdictionDto.ts","webpack:///./src/components/fee-sheets/add-update-fee-sheets.vue?6471","webpack:///./src/components/fee-sheets/add-update-fee-sheets.vue","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue?89a6","webpack:///./src/components/fee-sheets/email-fee-sheet-preview.vue?9a1f","webpack:///./src/components/fee-sheets/email-fee-sheet-preview.vue?c8fc","webpack:///./src/models/audit/AgentFeeSheetTableDetailEnum.ts","webpack:///./src/components/fee-sheets/email-fee-sheet-preview.vue?6d34","webpack:///./src/components/fee-sheets/email-fee-sheet-preview.vue","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue?9d44","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue?252b","webpack:///./src/components/fee-sheets/fee-sheet-emailer-wizards.vue","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue?6eb4","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue?4c52","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue?1d8d","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue","webpack:///./src/components/fee-sheets/create-fee-sheet-from-template.vue?ef09","webpack:///./src/service/FeeSheetTemplateService.ts","webpack:///./src/components/fee-sheets/create-fee-sheet-from-template.vue?d299","webpack:///./src/components/fee-sheets/create-fee-sheet-from-template.vue?bad8","webpack:///./src/components/fee-sheets/create-fee-sheet-from-template.vue","webpack:///./src/components/fee-sheets/client-agents-fee-sheets.vue?df84","webpack:///./src/components/fee-sheets/client-agents-fee-sheets.vue?d5d2","webpack:///./src/components/fee-sheets/client-agents-fee-sheets.vue","webpack:///./src/views/fee-sheets.vue?10f6","webpack:///./src/models/AnalysisReportPrintDataOptionsType.ts","webpack:///./src/views/fee-sheets.vue?4a1a","webpack:///./src/views/fee-sheets.vue","webpack:///./src/views/phase-assignment.vue?89a7","webpack:///./src/components/matter-work/matter-work-line-items.vue?308b","webpack:///./src/components/matter-work/phase-assignment-notes.vue?af85","webpack:///./src/models/ManualCodeInvoiceLineItemNotesDto.ts","webpack:///./src/models/KeyMap.ts","webpack:///./src/components/matter-work/auto-text-dialog.vue?0556","webpack:///./src/components/phase-types/phase-verb-editor.vue?32d2","webpack:///./src/components/phase-types/phase-verb-editor.vue?2219","webpack:///./src/components/phase-types/phase-verb-editor.vue?224e","webpack:///./src/components/phase-types/phase-verb-editor.vue","webpack:///./src/components/matter-work/auto-text-dialog.vue?45b0","webpack:///./src/components/matter-work/auto-text-dialog.vue?e43b","webpack:///./src/components/matter-work/auto-text-dialog.vue","webpack:///./src/utilities/Html.ts","webpack:///./src/components/matter-work/phase-assignment-notes.vue?2478","webpack:///./src/models/ExecutiveSummaryRequestEnum.ts","webpack:///./src/components/matter-work/phase-assignment-notes.vue?c17e","webpack:///./src/components/matter-work/phase-assignment-notes.vue","webpack:///./src/components/matter-work/phase-assignment-infractions.vue?3103","webpack:///./src/components/matter-work/phase-assignment-infractions.vue?52c4","webpack:///./src/components/matter-work/phase-assignment-infractions.vue?a0a1","webpack:///./src/components/matter-work/phase-assignment-infractions.vue","webpack:///./src/components/matter-work/phase-assignment-infraction-popover.vue?987a","webpack:///./src/components/matter-work/phase-assignment-infraction-popover.vue?1f11","webpack:///./src/components/matter-work/phase-assignment-infraction-popover.vue?7628","webpack:///./src/components/matter-work/phase-assignment-infraction-popover.vue","webpack:///./src/components/matter-work/phase-history.vue?ec0d","webpack:///./src/components/matter-work/phase-history.vue?264a","webpack:///./src/components/matter-work/phase-history.vue?4d0f","webpack:///./src/components/matter-work/phase-history.vue","webpack:///./src/components/matter-work/update-line-items-country.vue?195c","webpack:///./src/service/InvoiceLineItemService.ts","webpack:///./src/components/matter-work/update-line-items-country.vue?4bdc","webpack:///./src/components/matter-work/update-line-items-country.vue?f151","webpack:///./src/components/matter-work/update-line-items-country.vue","webpack:///./src/components/matter-work/update-line-items-matter-name.vue?ec23","webpack:///./src/components/matter-work/update-line-items-matter-name.vue?9d3c","webpack:///./src/components/matter-work/update-line-items-matter-name.vue?efba","webpack:///./src/components/matter-work/update-line-items-matter-name.vue","webpack:///./src/components/matter-work/matter-work-line-items.vue?a9fe","webpack:///./src/models/matter-work/MatterWorkTypeEnum.ts","webpack:///./src/components/matter-work/matter-work-line-items.vue?e031","webpack:///./src/components/matter-work/matter-work-line-items.vue","webpack:///./src/components/matter-work/matter-totals.vue?9bdc","webpack:///./src/models/Fees/FeeSheetTypeEnum.ts","webpack:///./src/service/MattersService.ts","webpack:///./src/models/audit/OveragesTypeEnum.ts","webpack:///./src/components/matter-work/matter-totals.vue?19c8","webpack:///./src/models/PhaseNames.ts","webpack:///./src/components/matter-work/matter-totals.vue?1ee6","webpack:///./src/components/matter-work/matter-totals.vue","webpack:///./src/components/matter-work/phase-assignment_order-setup-dialog.vue?6b61","webpack:///./src/components/matter-work/phase-assignment_order-setup-dialog.vue?ec2a","webpack:///./src/components/matter-work/phase-assignment_order-setup-dialog.vue?170c","webpack:///./src/components/matter-work/phase-assignment_order-setup-dialog.vue","webpack:///./src/components/filing-type.vue?2e78","webpack:///./src/models/FilingTypeDto.ts","webpack:///./src/components/filing-type.vue?be11","webpack:///./src/models/matter/FilingTypeEnum.ts","webpack:///./src/components/filing-type.vue?9c10","webpack:///./src/components/filing-type.vue","webpack:///./src/components/matter-work/matter-work-navigator.vue?e5d0","webpack:///./src/components/matter-work/matter-work-navigator.vue?6776","webpack:///./src/components/matter-work/matter-work-navigator.vue?8766","webpack:///./src/components/matter-work/matter-work-navigator.vue","webpack:///./src/views/phase-assignment.vue?efd0","webpack:///./src/models/AgentJurisdictionColorEnum.ts","webpack:///./src/views/phase-assignment.vue?6e9a","webpack:///./src/views/phase-assignment.vue","webpack:///./src/views/auditor-page.vue?a224","webpack:///./src/components/auditor/charge-summary.vue?1e4e","webpack:///./src/components/auditor/charge-detail.vue?2691","webpack:///./src/components/auditor/charge-detail.vue?a2c3","webpack:///./src/models/ExecutiveSummaryTypeEnum.ts","webpack:///./src/components/auditor/charge-detail.vue?f1f3","webpack:///./src/components/auditor/charge-detail.vue","webpack:///./src/components/auditor/charge-summary.vue?62e4","webpack:///./src/components/auditor/charge-summary.vue?e22a","webpack:///./src/components/auditor/charge-summary.vue","webpack:///./src/components/auditor/agent-fee-sheet-table.vue?f827","webpack:///./src/components/auditor/agent-fee-sheet-table.vue?0f41","webpack:///./src/models/batch/BatchEventTypeEnum.ts","webpack:///./src/components/auditor/agent-fee-sheet-table.vue?9b9d","webpack:///./src/components/auditor/agent-fee-sheet-table.vue","webpack:///./src/views/auditor-page.vue?5047","webpack:///./src/views/auditor-page.vue?9bf9","webpack:///./src/views/auditor-page.vue","webpack:///./src/views/fee-sheet-templates.vue?f163","webpack:///./src/components/fee-sheet-templates/fee-sheet-templates-grid.vue?a719","webpack:///./src/components/fee-sheet-templates/fee-sheet-templates-grid.vue?9f90","webpack:///./src/components/fee-sheet-templates/fee-sheet-templates-grid.vue?6357","webpack:///./src/components/fee-sheet-templates/fee-sheet-templates-grid.vue","webpack:///./src/views/fee-sheet-templates.vue?4510","webpack:///./src/views/fee-sheet-templates.vue?62ac","webpack:///./src/views/fee-sheet-templates.vue","webpack:///./src/views/fee-sheet-templates-form.vue?3930","webpack:///./src/views/fee-sheet-templates-form.vue?8ba6","webpack:///./src/views/fee-sheet-templates-form.vue?56a3","webpack:///./src/views/fee-sheet-templates-form.vue","webpack:///./src/views/file-parse-format.vue?1973","webpack:///./src/components/file-parsing/file-parse-format-grid.vue?7c79","webpack:///./src/service/FileParseFormatService.ts","webpack:///./src/components/file-parsing/file-parse-format-create.vue?0848","webpack:///./src/components/file-parsing/file-parse-format-create.vue?c987","webpack:///./src/components/file-parsing/file-parse-format-create.vue?ba2c","webpack:///./src/components/file-parsing/file-parse-format-create.vue","webpack:///./src/components/file-parsing/file-parse-format-grid.vue?5132","webpack:///./src/components/file-parsing/file-parse-format-grid.vue?681b","webpack:///./src/components/file-parsing/file-parse-format-grid.vue","webpack:///./src/views/file-parse-format.vue?9313","webpack:///./src/views/file-parse-format.vue?a8cd","webpack:///./src/views/file-parse-format.vue","webpack:///./src/views/file-parse-format-column.vue?da48","webpack:///./src/service/FileParseCalculationService.ts","webpack:///./src/models/file-parsing/FileParseFormatFileExtensionDto.ts","webpack:///./src/components/file-parsing/file-parse-format-configuration.vue?ea57","webpack:///./src/models/file-parsing/format-calculations/CurrencyConversionData.ts","webpack:///./src/components/file-parsing/file-parse-format-configuration.vue?56f8","webpack:///./src/components/file-parsing/file-parse-format-configuration.vue?fb01","webpack:///./src/components/file-parsing/file-parse-format-configuration.vue","webpack:///./src/views/file-parse-format-column.vue?8f0d","webpack:///./src/views/file-parse-format-column.vue?5e9a","webpack:///./src/views/file-parse-format-column.vue","webpack:///./src/views/submitted-files.vue?d2c8","webpack:///./src/components/file-parsing/file-parse-submitted-files.vue?92f5","webpack:///./src/components/file-parsing/file-parse-submitted-files.vue?9674","webpack:///./src/components/file-parsing/file-parse-submitted-files.vue?486a","webpack:///./src/components/file-parsing/file-parse-submitted-files.vue","webpack:///./src/views/submitted-files.vue?8f25","webpack:///./src/views/submitted-files.vue?0906","webpack:///./src/views/submitted-files.vue","webpack:///./src/views/user-assigned.vue?6eef","webpack:///./src/components/users/user-assigned-clients.vue?bf90","webpack:///./src/components/users/user-assigned-clients.vue?2910","webpack:///./src/components/users/user-assigned-clients.vue?86ed","webpack:///./src/components/users/user-assigned-clients.vue","webpack:///./src/views/user-assigned.vue?f3fe","webpack:///./src/views/user-assigned.vue?7d26","webpack:///./src/views/user-assigned.vue","webpack:///./src/views/batch/batch.vue?c884","webpack:///./src/components/batch/batch-details.vue?6556","webpack:///./src/components/batch/batch-event-details.vue?e9d5","webpack:///./src/service/BatchEventService.ts","webpack:///./src/components/batch/batch-event-details.vue?7dd7","webpack:///./src/components/batch/batch-event-details.vue?ce5c","webpack:///./src/components/batch/batch-event-details.vue","webpack:///./src/components/batch/batch-delete-data.vue?8a2c","webpack:///./src/components/batch/batch-delete-data.vue?f60b","webpack:///./src/components/batch/batch-delete-data.vue?982f","webpack:///./src/components/batch/batch-delete-data.vue","webpack:///./src/components/batch/batch-rename.vue?ed73","webpack:///./src/components/batch/batch-rename.vue?d072","webpack:///./src/components/batch/batch-rename.vue?667c","webpack:///./src/components/batch/batch-rename.vue","webpack:///./src/components/batch/batch-details.vue?53f9","webpack:///./src/models/batch/BatchTypeEnum.ts","webpack:///./src/components/batch/batch-details.vue?52c7","webpack:///./src/components/batch/batch-details.vue","webpack:///./src/views/batch/batch.vue?83e2","webpack:///./src/views/batch/batch.vue?c044","webpack:///./src/views/batch/batch.vue","webpack:///./src/views/batch/client-batches.vue?881b","webpack:///./src/components/batch/batch-list.vue?ba92","webpack:///./src/components/batch/batch-list.vue?391f","webpack:///./src/components/batch/batch-list.vue?932e","webpack:///./src/components/batch/batch-list.vue","webpack:///./src/views/batch/client-batches.vue?a149","webpack:///./src/views/batch/client-batches.vue?d907","webpack:///./src/views/batch/client-batches.vue","webpack:///./src/views/client-group-data.vue?8f7b","webpack:///./src/components/client-group-data/client-group-data-grid.vue?56f0","webpack:///./src/service/ClientGroupService.ts","webpack:///./src/components/client-group-data/client-group-data-grid.vue?8da7","webpack:///./src/components/client-group-data/client-group-data-grid.vue?a5a9","webpack:///./src/components/client-group-data/client-group-data-grid.vue","webpack:///./src/views/client-group-data.vue?83c4","webpack:///./src/views/client-group-data.vue?0fd8","webpack:///./src/views/client-group-data.vue","webpack:///./src/views/help.vue?7aa5","webpack:///./src/service/HelpService.ts","webpack:///./src/views/help.vue?70d4","webpack:///./src/views/help.vue?c588","webpack:///./src/views/help.vue","webpack:///./src/views/incomplete-uploads.vue?cb04","webpack:///./src/components/file-parse-uploads.vue?cebd","webpack:///./src/components/file-parse-uploads.vue?7e22","webpack:///./src/components/file-parse-uploads.vue?e044","webpack:///./src/components/file-parse-uploads.vue","webpack:///./src/views/incomplete-uploads.vue?cfab","webpack:///./src/views/incomplete-uploads.vue?a4be","webpack:///./src/views/incomplete-uploads.vue","webpack:///./src/views/fee-budgets.vue?83ab","webpack:///./src/components/fee-budgets/fee-budget-list.vue?ed8f","webpack:///./src/components/text-popup.vue?fc13","webpack:///./src/components/text-popup.vue?bc1e","webpack:///./src/components/text-popup.vue?6c6c","webpack:///./src/components/text-popup.vue","webpack:///./src/service/FeeBudgetRuleService.ts","webpack:///./src/components/fee-budgets/fee-budget-list.vue?cbc6","webpack:///./src/components/fee-budgets/fee-budget-list.vue?5f7b","webpack:///./src/components/fee-budgets/fee-budget-list.vue","webpack:///./src/views/fee-budgets.vue?9d59","webpack:///./src/models/ReportTypeEnum.ts","webpack:///./src/views/fee-budgets.vue?a49c","webpack:///./src/views/fee-budgets.vue","webpack:///./src/views/activity-planner/coding.vue?7486","webpack:///./src/components/activity-planner/client-summary.vue?fd6e","webpack:///./src/service/ActivityPlannerService.ts","webpack:///./src/components/auditor/send-reports-confirmation.vue?4aff","webpack:///./src/components/auditor/send-reports-confirmation.vue?ceeb","webpack:///./src/components/auditor/send-reports-confirmation.vue?cfc7","webpack:///./src/components/auditor/send-reports-confirmation.vue","webpack:///./src/components/activity-planner/client-summary.vue?9f13","webpack:///./src/components/activity-planner/client-summary.vue?a4e0","webpack:///./src/components/activity-planner/client-summary.vue","webpack:///./src/views/activity-planner_claim-dialog.vue?05f0","webpack:///./src/views/activity-planner_claim-dialog.vue?d629","webpack:///./src/views/activity-planner_claim-dialog.vue?5412","webpack:///./src/views/activity-planner_claim-dialog.vue","webpack:///./src/components/activity-planner/claimed-work.vue?aba6","webpack:///./src/components/activity-planner/claimed-work.vue?ddc3","webpack:///./src/components/activity-planner/claimed-work.vue?5508","webpack:///./src/components/activity-planner/claimed-work.vue","webpack:///./src/components/browse-mode/browse-mode-selection-dialog.vue?b10a","webpack:///./src/components/browse-mode/browse-mode-selection-dialog.vue?8557","webpack:///./src/components/browse-mode/browse-mode-selection-dialog.vue?7ccb","webpack:///./src/components/browse-mode/browse-mode-selection-dialog.vue","webpack:///./src/views/activity-planner/coding.vue?a2bc","webpack:///./src/models/batch/BatchSnapshotStatusEnum.ts","webpack:///./src/views/activity-planner/coding.vue?ce20","webpack:///./src/views/activity-planner/coding.vue","webpack:///./src/views/activity-planner/batch-snapshot.vue?edee","webpack:///./src/views/activity-planner/batch-snapshot.vue?6167","webpack:///./src/views/activity-planner/batch-snapshot.vue?dcad","webpack:///./src/views/activity-planner/batch-snapshot.vue","webpack:///./src/views/activity-planner/auditing.vue?ee61","webpack:///./src/components/activity-planner/report-on-demand.vue?c100","webpack:///./src/service/ReportService.ts","webpack:///./src/components/activity-planner/report-on-demand.vue?5c47","webpack:///./src/components/activity-planner/report-on-demand.vue?5600","webpack:///./src/components/activity-planner/report-on-demand.vue","webpack:///./src/components/browse-mode/auditing-browse-mode-selection-dialog.vue?b5d2","webpack:///./src/components/browse-mode/auditing-browse-mode-selection-dialog.vue?51de","webpack:///./src/components/browse-mode/auditing-browse-mode-selection-dialog.vue?9c76","webpack:///./src/components/browse-mode/auditing-browse-mode-selection-dialog.vue","webpack:///./src/components/activity-planner/analysis-text-review.vue?92f2","webpack:///./src/components/matter/matter-details.vue?1f2e","webpack:///./src/components/matter/matter-details.vue?2e80","webpack:///./src/components/matter/matter-details.vue?d117","webpack:///./src/components/matter/matter-details.vue","webpack:///./src/components/activity-planner/analysis-text-review.vue?39bd","webpack:///./src/components/activity-planner/analysis-text-review.vue?f96b","webpack:///./src/components/activity-planner/analysis-text-review.vue","webpack:///./src/views/activity-planner/auditing.vue?5780","webpack:///./src/models/comments/RespondEnum.ts","webpack:///./src/models/comments/CommentAutoText.ts","webpack:///./src/views/activity-planner/auditing.vue?d62d","webpack:///./src/views/activity-planner/auditing.vue","webpack:///./src/views/activity-planner/comments.vue?fac7","webpack:///./src/components/activity-planner/comments-grid.vue?9bbb","webpack:///./src/service/CommentService.ts","webpack:///./src/components/activity-planner/respond-to-comment.vue?9269","webpack:///./src/components/activity-planner/respond-to-comment.vue?333e","webpack:///./src/components/activity-planner/respond-to-comment.vue?5451","webpack:///./src/components/activity-planner/respond-to-comment.vue","webpack:///./src/utilities/DateTime.ts","webpack:///./src/components/activity-planner/comments-grid.vue?c5f1","webpack:///./src/components/activity-planner/comments-grid.vue?4537","webpack:///./src/components/activity-planner/comments-grid.vue","webpack:///./src/views/activity-planner/comments.vue?c1b8","webpack:///./src/views/activity-planner/comments.vue?28b9","webpack:///./src/views/activity-planner/comments.vue","webpack:///./src/views/all-comments.vue?a96c","webpack:///./src/views/all-comments.vue?94c2","webpack:///./src/views/all-comments.vue?e0f8","webpack:///./src/views/all-comments.vue","webpack:///./src/views/comments-response.vue?9e55","webpack:///./src/components/comment/comments-response.vue?54e8","webpack:///./src/components/comment/email-table.vue?a1b2","webpack:///./src/components/comment/email-table.vue?9791","webpack:///./src/components/comment/email-table.vue?5c8b","webpack:///./src/components/comment/email-table.vue","webpack:///./src/components/comment/comments-response.vue?9706","webpack:///./src/components/comment/comments-response.vue?54ab","webpack:///./src/components/comment/comments-response.vue","webpack:///./src/views/comments-response.vue?708a","webpack:///./src/views/comments-response.vue?d282","webpack:///./src/views/comments-response.vue","webpack:///./src/views/file-service.vue?387a","webpack:///./src/components/file-service/file-service-grid.vue?f231","webpack:///./src/service/FileLookupService.ts","webpack:///./src/components/file-service/file-service-grid.vue?a771","webpack:///./src/components/file-service/file-service-grid.vue?107a","webpack:///./src/components/file-service/file-service-grid.vue","webpack:///./src/views/file-service.vue?09e1","webpack:///./src/views/file-service.vue?4f30","webpack:///./src/views/file-service.vue","webpack:///./src/views/activity-planner/agent-setup.vue?b22d","webpack:///./src/components/activity-planner/agent-setup.vue?63cf","webpack:///./src/components/activity-planner/create-new-agent.vue?e026","webpack:///./src/components/activity-planner/create-new-agent.vue?ccb2","webpack:///./src/components/activity-planner/create-new-agent.vue?e822","webpack:///./src/components/activity-planner/create-new-agent.vue","webpack:///./src/components/activity-planner/link-new-agent.vue?d53a","webpack:///./src/components/activity-planner/link-new-agent.vue?2882","webpack:///./src/components/activity-planner/link-new-agent.vue?d739","webpack:///./src/components/activity-planner/link-new-agent.vue","webpack:///./src/components/activity-planner/agent-setup.vue?15ae","webpack:///./src/components/activity-planner/agent-setup.vue?33a4","webpack:///./src/components/activity-planner/agent-setup.vue","webpack:///./src/views/activity-planner/agent-setup.vue?d16b","webpack:///./src/views/activity-planner/agent-setup.vue?6499","webpack:///./src/views/activity-planner/agent-setup.vue","webpack:///./src/views/activity-planner/client-summary.vue?640c","webpack:///./src/components/auditor/all-clients-summary.vue?6861","webpack:///./src/components/auditor/all-clients-summary.vue?51fe","webpack:///./src/components/auditor/all-clients-summary.vue?1824","webpack:///./src/components/auditor/all-clients-summary.vue","webpack:///./src/views/activity-planner/client-summary.vue?bbb3","webpack:///./src/views/activity-planner/client-summary.vue?1017","webpack:///./src/views/activity-planner/client-summary.vue","webpack:///./src/views/pdf-translator.vue?3544","webpack:///./src/components/auto-translation/pdf-translator.vue?7311","webpack:///./src/service/AutoTranslationService.ts","webpack:///./src/components/auto-translation/pdf-translator.vue?0d4b","webpack:///./src/components/auto-translation/pdf-translator.vue?2305","webpack:///./src/components/auto-translation/pdf-translator.vue","webpack:///./src/views/pdf-translator.vue?900b","webpack:///./src/views/pdf-translator.vue?47fb","webpack:///./src/views/pdf-translator.vue","webpack:///./src/views/e-billing.vue?f30c","webpack:///./src/components/e-billing/e-billing.vue?75c8","webpack:///./src/service/EbillingService.ts","webpack:///./src/components/e-billing/e-billing.vue?8c59","webpack:///./src/components/e-billing/e-billing.vue?99ec","webpack:///./src/components/e-billing/e-billing.vue","webpack:///./src/views/e-billing.vue?de49","webpack:///./src/views/e-billing.vue?713f","webpack:///./src/views/e-billing.vue","webpack:///./src/views/analysis-triggers.vue?d856","webpack:///./src/components/analysis-triggers/analysis-trigger-list.vue?e7c9","webpack:///./src/service/AnalysisTriggerRuleService.ts","webpack:///./src/service/AnalysisTriggerRuleTypeService.ts","webpack:///./src/components/analysis-triggers/analysis-trigger-rule-add-edit.vue?d317","webpack:///./src/components/analysis-triggers/analysis-trigger-rule-add-edit.vue?c3f0","webpack:///./src/components/analysis-triggers/analysis-trigger-rule-add-edit.vue?b5c0","webpack:///./src/components/analysis-triggers/analysis-trigger-rule-add-edit.vue","webpack:///./src/components/analysis-triggers/analysis-trigger-list.vue?39d9","webpack:///./src/components/analysis-triggers/analysis-trigger-list.vue?84cd","webpack:///./src/components/analysis-triggers/analysis-trigger-list.vue","webpack:///./src/views/analysis-triggers.vue?7b5b","webpack:///./src/views/analysis-triggers.vue?c06a","webpack:///./src/views/analysis-triggers.vue","webpack:///./src/views/invoice-lookup.vue?989d","webpack:///./src/components/invoice-lookup/invoice-lookup-grid.vue?6d3a","webpack:///./src/components/invoice-lookup/apply-exchange-rate.vue?8f01","webpack:///./src/components/invoice-lookup/apply-exchange-rate.vue?1063","webpack:///./src/components/invoice-lookup/apply-exchange-rate.vue?d057","webpack:///./src/components/invoice-lookup/apply-exchange-rate.vue","webpack:///./src/components/invoice-lookup/edit-invoice-date.vue?01dc","webpack:///./src/components/invoice-lookup/edit-invoice-date.vue?aa2e","webpack:///./src/components/invoice-lookup/edit-invoice-date.vue?7e29","webpack:///./src/components/invoice-lookup/edit-invoice-date.vue","webpack:///./src/components/invoice-lookup/edit-invoice-number.vue?cd3b","webpack:///./src/components/invoice-lookup/edit-invoice-number.vue?d645","webpack:///./src/components/invoice-lookup/edit-invoice-number.vue?71e9","webpack:///./src/components/invoice-lookup/edit-invoice-number.vue","webpack:///./src/components/invoice-lookup/edit-line-item-total.vue?0494","webpack:///./src/components/invoice-lookup/edit-line-item-total.vue?89e4","webpack:///./src/components/invoice-lookup/edit-line-item-total.vue?99e1","webpack:///./src/components/invoice-lookup/edit-line-item-total.vue","webpack:///./src/components/invoice-lookup/invoice-lookup-grid.vue?264c","webpack:///./src/components/invoice-lookup/invoice-lookup-grid.vue?c876","webpack:///./src/components/invoice-lookup/invoice-lookup-grid.vue","webpack:///./src/views/invoice-lookup.vue?e0dc","webpack:///./src/views/invoice-lookup.vue?f739","webpack:///./src/views/invoice-lookup.vue","webpack:///./src/router.ts","webpack:///./src/filters/filters.ts","webpack:///./src/main.ts","webpack:///./src/components/activity-planner/respond-to-comment.vue?09b7","webpack:///./src/components/fee-sheets/agent-fee-sheet-mass-adder.vue?800d","webpack:///./src/App.vue?dbc6","webpack:///./src/components/fee-sheets/client-agents-fee-sheets.vue?6389","webpack:///./src/components/client/client-setup-main.vue?0326","webpack:///./src/components/activity-planner/comments-grid.vue?6814","webpack:///./src/components/auto-translation/pdf-translator.vue?358a","webpack:///./src/components/matter-work/update-line-items-country.vue?9bb0","webpack:///./src/components/batch/batch-details.vue?ac43","webpack:///./src/views/file-parse-format-column.vue?f75e","webpack:///./src/views/activity-planner/auditing.vue?3406","webpack:///./src/components/invoice-lookup/apply-exchange-rate.vue?f826","webpack:///./src/components/comment/email-table.vue?2696","webpack:///./src/components/matter-work/matter-work-navigator.vue?2e04","webpack:///./src/components/file-parsing/file-parse-submitted-files.vue?2721"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_vm","this","_h","$createElement","_c","_self","style","attrs","path","class","cssClasses","title","screen","isXSmall","isLarge","scopedSlots","_u","fn","proxy","staticClass","staticRenderFns","UserSettingsModule","cookieService","CookieStorageService","userSetting","settings","JSON","stringify","setItem","CookieKeysEnum","UserSettings","removeItem","VuexModule","__decorate","Mutation","Action","commit","Module","MatterWorkModule","matterOverageDNS","selectedMatter","selectedMatterId","activeBatchIds","matterWorkMatterDto","matterId","batchIds","Vue","use","Vuex","UserSettingReportName","UserSettingName","OrderingMethod","store","Store","CommonModule","state","environment","process","UserService","client","QuestelServicesClient","filter","queryString","join","postJson","assignedClient","valueQuery","sendRequest","HttpMethodEnum","Post","UserSettingsService","vuexStore","userState","getModule","reportName","Promise","reject","getUserSettingsFromCookie","item","index","arr","ReportName","Name","settingsToSave","_","remove","concat","setUserSettings","settingsStr","userSettings","parse","getScreenSizeInfo","userFontSize","computed","getFontSize","methods","screenSizeChanged","handleUserPreferenceChangeEvent","handleUserSettingsChanged","userSettingsService","handleLoginEventBus","userService","then","catch","notify","handleGetUserSettings","success","fontSize","mounted","mediaService","beforeDestroy","components","CommonComponent","TheFooter","component","Home","Component","FileParseUploadStatusTypeEnum","FileParseUploadStatusTypeEnumString","_v","_s","pageTitle","fileErrorMessage","clientStore","getPopupHeight","onSelectionChanged","selectedClient","selectedClientName","fileUploadCompleted","on","$event","ref","agentStore","selectedAgent","selectedAgentName","clientBatches","selectedBatch","_e","rankings","selectedRanking","displayFormatRanking","fileParseComplete","itemTemplate","onResubmitClick","agentRequired","agentSelected","cantUploadedFiles","directives","rawName","fileParseSuccess","expression","clientSelected","onUploadStarted","onUploadComplete","onFileReady","args","onUploadError","percentUploaded","my","at","of","onOptionChanged","dataGridUrl","dataGridUpdateUrl","groupPaging","onDataGridLoaded","onDataErrorOccurred","onDataGridCellPrepared","onDataGridRowUpdating","onContentReady","summaryItems","some","getGroupCellText","_l","columns","IsCalculatedColumn","column","DataKey","IsEditable","SourceColumnName","staticStyle","onCancelClick","onSubmitClick","submitInProgress","ClientService","includeAll","getAll","clients","text","ClientName","ClientId","unshift","getEbillers","clientId","getMatters","matters","matterNames","uniq","MatterName","option","putJson","clientDto","createClientDto","options","getPostData","batchId","agentId","invoiceNumber","countryId","url","parameters","query","encodeURIComponent","AgentService","undefined","agents","a","AgentName","AgentId","FileParseUploadService","FileParseUploadId","Patch","GetDefaultFileParseFormatDto","FileExtensions","FileParseFormatColumns","DeletedFileParseFormatColumns","FileParseFormatCalculations","FileParseFormatRankingDto","Format","totalColumns","MatchedColumns","MissingColumns","BatchService","param","closed","batchEventId","getData","Put","dataToDelete","Delete","reports","forEach","ClientEbillingReportKey","batchSnapshots","String","lastIndexOf","substr","UploadInvoiceFile","$refs","UploadInvoiceFile_1","defaultPageTitle","fileParseUploadService","percentColumnsUploaded","dataMessageObjTemp","type","message","dataMessageObj","filesWithErrors","Set","submitUrl","fileId","fileParseUploadId","$store","clientService","agentService","batchService","CustomStore","loadMode","load","baseUrl","selectedClientId","returnSelectedClientId","toProcessFiles","agentDataSource","newVal","old","submitBtnRef","instance","alertMessageRef","isNullOrEmpty","val","setSelectedClientId","selectedItem","getRecentClientBatches","batches","b","BatchName","BatchId","openBatch","find","BatchClosedDate","curr","document","getElementsByClassName","innerHTML","setTimeout","uploadedClassname","listOfDownloadedElement","appendChild","updateValue","innerHeight","clearFiles","alertMessage","removeUploadedFilesInSummary","fileUpload","fileUploader","resetFileUploader","resetPageTitle","rowType","HasError","columnData","Columns","ErrorMessage","cellElement","classList","add","deleteUploadData","reset","response","Message","dxAlert","errorMessage","finally","summary","groupsWithErrors","g","error","$element","removeClass","addClass","isReady","firstRowData","getVisibleRows","uploadValid","submitButton","dataMessage","size","Array","from","groupPagingMessage","groupContinuedMessage","groupContinuesMessage","rowCountMessage","totalSummaryItem","errorSummaryItem","errorRowCountMessage","caption","modifiedData","newData","columnName","fileParseUploadDataColumnId","oldData","FileParseUploadDataColumnId","newValue","refreshPageTitle","fileAuthResult","Files","file","event","totalFiles","files","x","FileId","Filename","FileName","waitForUploadToFinish","FormatRankings","uploadedFilesSummary","format","fileParseUpload","PercentColumnsSaved","StatusType","Uploaded","TimedOutDuringUpload","processUploadError","Failed","console","log","fileExtension","split","pop","toLowerCase","every","includes","ext","indexOf","position","offset","ranking","MatchPercentage","toFixed","ExtraColumns","Watch","DataGrid","FileUpload","AlertMessage","DxColumn","DxButton","DxLoadPanel","DxEditing","PageTitle","DxLookup","DxTooltip","DxSummary","DxGroupItem","DxScrollView","DxSelectBox","DxHtmlEditor","DxProgressBar","_g","_b","customStoreOptions","setAttr","editingOptions","initNewRow","rowUpdating","dataGridInitialized","saveEditData","editingStart","$attrs","$listeners","popupShowing","refreshDropdownData","readOnly","dataSource","displayExpr","valueExpr","maxLength","items","dropdownData","CountryCode","showClearButton","searchEnabled","searchMode","paginate","TitleKeyWords","acceptCustomValue","GroupName","SubGroupName","CompanyContact","MatterType","openOnFieldClick","LawFirm","ServiceTypeLevel","ServiceCompanyCode","AccountCode","ProductCode","Region","CostCenter","allowSearch","CrudServiceBase","endsWith","ClientMatterDataService","ClientDataGrid","Map","initialLoad","loadOptions","loadDataGrid","insert","values","clientMatterDataService","handleError","update","edit","delete","allowAdding","allowUpdating","allowDeleting","popup","showTitle","width","height","onShown","duplicateClientAgentCountryMsg","$route","params","loadData","setClientFromRoute","location","routeClientSelected","routeClientId","selectedClientChanged","$router","getDropdownData","DropdownData","clearFiltersAndSorting","clientFilter","search","dataGrid","clearFilter","clearSorting","toolbarItems","stylingMode","merge","matterHasLineItems","isCanceled","dialogResult","confirm","cancel","oldMatterName","newMatterName","HasLineItems","focus","DxPopup","DxItem","DxHeaderFilter","DxForm","DxDateBox","DxAsyncRule","DxRequiredRule","DxCustomRule","DxStateStoring","DxPaging","DxPager","ClientMatterData","openCreateClient","openClientSetup","showClientSetup","selectedClientOption","hidingClientSetup","showCreateClient","hidingCreateClient","popupTitle","showingDialog","onPopupHidden","confirmSave","formTabs","selectedIndex","isLoaded","selectedTab","usersList","clientDetails","ClientEmail","ClientCCEmail","ClientShortName","Users","Active","$set","clientReportOptionModel","showEmailTemplate","selectedClientAgentIds","onEditAgent","onClick","hidingEdit","onEmailTemplateEditorHidding","showingAgentInfo","clientAgentInfo","hidingDialog","IsUnrecognizedAgent","Agent","agentsDataSource","addAgentName","loadAgentData","PrimaryAlias","AgentAlias","VendorNumber","primaryAgentNameUnset","mainEmailSource","selectedMainEmail","onOpenedEmailCC","onCustomItemCreatingEvent","onEmailCCValueChanged","tagItemStyle","emailCCSource","selectedEmailCC","jurisdictionFree","jurisdictionDataSource","jurisdictionRadioFunction","submittingFileParseUpload","ClientAgentService","agentName","agentAlias","agentInfo","Data","jurisdictionDto","clientAgentIds","linkClientAgentDto","ClientDto","ClientDetailDto","AgentDto","ClientAgentAliasDto","ClientAgentAliasId","ClientAgentId","ClientAgentInfoDto","ClientAgent","Client","Jurisdictions","AgentEmail","AgentCCEmail","JurisdictionFree","UnsetCountries","AuditingService","dto","matterWorkId","AgentInfoEdit","emailSeparator","origUnsetCountries","loadingExistingSettings","agentObj","emptyGuid","validationRule","invalidEmail","noError","duplicateCustomItem","clientAgentService","auditingService","DataSource","pageSize","validationGroupRef","showDialog","$emit","oldValue","jurisdictionDatagrid","cloneDeep","clientAgentInfoDto","setMainEmail","setEmailCC","checkForExistingAlias","setCountries","Country","getUnsetCountries","displayJurisdictions","mainEmail","emailCC","getExistingClientAgentDataByAlias","test","checkEmailValidation","content","unsetCountries","country","ClientAgentJurisdictionId","InJurisdiction","OutJurisdiction","sortedJurisdiction","orderBy","juris","customItem","getExistingClientAgentData","validation","validationGroup","validate","isValid","trim","saveAgentInfo","alert","jurisdictions","jursdictionDto","saveClientAgentData","uploadIds","results","uploadId","resubmitFileParseUpload","handleResubmit","handleSaveError","Success","createClientAgentData","updateClientAgentData","ids","fileUploadId","setCountryCodes","uniqueUnset","uniqBy","sort","c1","c2","Prop","default","DxDataGrid","DxCheckBox","DxRemoteOperations","DxFilterRow","DxTextBox","DxSelection","Popup","DxToolbarItem","DxValidator","DxTagBox","DxValidationGroup","TextTemplateTypeEnum","visibility","analysisEmailDataSource","clientReportModel","AnalysisTemplateId","onOpenTemplateEditor","SplitByResponsibleAttorney","SplitByGroup","HighFeeWarnings","HighExpenditureWarnings","AuditorReportAllInOne","PotentialSavings","MatterRunningTotal","toggleDefault","BufferAmount","bufferTooltip","TextTemplateService","textTemplateType","getJson","AnaylisReport","analysisEmailStore","textTemplateService","getTextTemplate","AnalysisReport","err","searchExpr","visible","oldVal","reload","DxNumberBox","auditorEmailDataSource","AuditorTemplateId","agentToCustomStoreOptions","enabled","openEdit","sortBatchFilter","AuditorReport","auditorEmailStore","clientAgentSelection","getClientAgentForReport","getSelectedKeys","selectedKeys","ReceivesReport","selectedRowKeys","getSelectedRowKeys","__firstLoad","$root","$on","handleEventBus","$off","focusedRowKey","clientAgentDataGrid","rows","rowIndex","getRowIndexByKey","row","rowIndexes","repaintRows","postProcess","DxFormItem","DxScrolling","model","callback","$$v","shortName","primaryEmail","primaryEmailSource","onTagBoxOpened","ccEmail","ccEmailSource","active","assignedUsers","ClientSetupMain","newTagValue","clientEmail","clientCCEmail","clientUsers","clientShortName","clientActive","setUpEmailSources","userDataSource","source","DxPatternRule","onPopuphidden","onPopupShowing","onPopupShown","saveEmailTemplate","textTemplate","TextTemplateTypeId","textTemplateStore","onSelectionTextChanged","selectedText","allAvailableAutoText","onAvailableAutoTextChanged","Text","saveAsOption","saveOrUpdate","forNew","editorStatus","valid","invalid","pending","requiredError","existError","EmailTemplateEditor","nameValue","showConfirmation","textBoxOption","defaultValue","availableAutoText","overlay","savedTypeTemplateRef","savedTextTemplateRef","textAreaRef","getAvailableAutoText","textVal","TextTemplateId","Favorite","textArea","getLength","getQuillInstance","selection","setRange","onNew","templateStore","status","placeholder","validationStatus","validationError","onValueChanged","onFocusOut","valueChangeEvent","itemSelected","tempTextTemplateTypeId","addedItems","savedRange","insertText","newIndex","setSelection","unselectAll","toSave","evnt","isForNew","dialog","payload","clone","checkIfExists","newUpdateOrSave","reason","insertTextTemplate","updateTextTemplate","propValue","parseInt","sortBy","DxList","DxToolbar","DxStringLengthRule","ClientSetupForm","reportDefault","getClientReportOption","res","getUserList","getClientDetails","ClientReportOptionId","cAInfo","updateClientDetails","addClientReportOption","saveClientAgentToReceiveReport","updateClientReportOption","setClientAgentToReceiveReport","DxTabPanel","DxLoadIndicator","newClientName","initialBatchName","addDefaultFeeRules","hidingCreate","CreateClientForm","confirmMessage","InitialBatchName","AddDefaultFeeRules","createClient","ClientSetup","feeDesignationsCustomStoreOptions","popupHiding","popupHeight","filteredAgents","allAgents","customizeNullText","feeTypes","availableFeeDesignationsSearchColumns","FeeDesignationsSearchColumns","FeeDesignationService","AvailableFeeDesignationsSearchColumns","FeeDesignationsGrid","feeDesignationsService","getAgentByClientId","getTypes","FeeTypeId","toast","getElementById","SearchColumn","assign","warningMessage","minWidth","closeOnClick","elementAttr","info","valueText","FeeDesignations","infractionRulesCustomStoreOptions","rowEditing","clientOption","agentOption","countries","infractionTypes","infractionRuleTypes","onItemClick","selectedRuleTypeChanged","compareDatesSelected","availableInfractionRuleDateColumns","operators","textSearchSelected","availableInfractionRuleTextColumns","comparisonTypes","columnTextLengthSelected","allColumns","allOperators","InfractionRuleType","InfractionRuleService","localeCompare","newInfraction","CountryService","getAllDto","CountryId","InfractionRuleDateColumns","InfractionRuleTextColumns","InfractionRulesGrid","selectedRuleType","infractionRuleService","onClientSelectionChanged","OnOpened","beginUpdate","endUpdate","countryService","getRuleTypes","InfractionRuleTypeId","InfractionTypeId","setSelectedRuleType","itemData","stopPropagation","newClientId","Compare_Dates","Text_Search_Match","Column_Text_Length","DxButtonItem","InfractionRules","showDelete","showingEdit","phaseAlias","deleteVisible","hideDelete","deleteAlias","phaseAliasCustomStoreOptions","onToolbarPreparing","editAlias","PhaseAliasService","filterOut","PhaseAliasesGrid","phaseAliasService","PhaseAliasId","refreshDataGrid","toolbarOptions","widget","icon","createAlias","saveAlias","aliasName","allPhaseTypes","aliasPhases","PhaseAliasDto","PhaseTypeIds","PhaseAliasesEdit","aliasId","showEdit","loadAlias","phaseTypes","PhaseName","PhaseTypeId","phaseAliasDto","PhaseAliases","feeSheetRuleCustomStoreOptions","disabled","currencies","filingTypes","jurisdictionOptions","FeeSheetRuleService","CurrencyService","currency","date","dateParam","formatDate","Date","FilingTypeService","changeFileDto","FeeSheetRulesGrid","feeSheetRuleService","currencyService","CurrencyCode","CurrencyId","serviceClient","filingTypeService","types","FilingTypeId","FeeSheetRules","onSelectedClientChanged","onEmailCampaignWizard","onCreateFeeSheetFromTemplate","clientCustomStoreOptions","editBtnClicked","deleteBtnClicked","filterTypeOption","filingTypesFilterExpression","openAgentFeeSheetMassAdder","agentCustomStoreOptions","sorting","paging","filtering","agentEditBtnClicked","agentDeleteBtnClicked","modifiedFilters","signedFilters","signedFiltersExpression","inJurisdictionCountriesDataSource","inJurisdictionCountriesFiltersExpression","showCreateFromTemplate","hidingCreateFromTemplate","onAddUpdateFeeSheetClient","showAddUpdateFeeSheet","getSelectedClient","feeSheetData","feeSheetFor","feeSheetType","feeSheetTemplate","hidingAddUpdateFeeSheet","cancelFeeSheet","showMassAgentSheetAdder","clientAgents","hidingMassAdder","showWizard","deletionInProgress","FeeTypeEnum","FeeTypeNameEnum","FeeSheetModalType","FeeSheetModalFor","FeeSheetsService","forClient","feeSheetId","feeSheetRow","feeSheet","feeSheetName","agent","clientFeeSheetId","massAdderDto","agentIds","feeSheetIds","feeSheetRowId","note","feeSheetRowNotes","FeeSheetRowId","Notes","sendFeeSheets","dialogTitle","save","feeSheetValue","openSentDatePopup","editorOptions","onSelection","ClientVal","validationRules","isAgentFor","isClientFor","sheetName","feeSheetTextBoxOption","feeSheetOption","jurisdictionOption","filingOption","filingType","currencyOption","effectiveDateOptions","titleOptions","sheetTitle","ReceiptFileName","downloadSheetUrl","resetFile","fileReceipt","click","fileChange","onAddPhaseType","PhaseFeeSheetRows","onCellPrepared","onRowPrepared","PhaseAlias","PhaseType","Signed","feeSheetRowEditBtnClicked","getNotesClass","openNotes","feeSheetRowInfractionRemoveBtnClicked","isForAgent","isModified","RowInfo","onParentFeeSheetRowView","CapDisplay","getDescriptionValue","onAddInfraction","InfractionFeeSheetRows","feeSheetRowInfractionEditBtnClicked","useSubmitBehavior","showFeeSheetRowDialog","feeSheetRowModalType","countryList","feeSheetRowType","selectedPhasesInfraction","hidingFeeSheetRowDialog","showFeeSheetNotes","feeSheetNotesTitle","selectedfeeSheetRowNotes","UserNotes","UserNotesUpdatedBy","UserNotesUpdateDate","showParentFeeSheetRowDetail","parentFeeSheetRowToView","hidingParentFeeSheetRow","isLoading","showSentDateListPopup","sentDates","formatSentDates","closePopup","FeeSheetRuleLevelEnum","FeeSheetRuleLevelNameEnum","FeeSheetRuleTypeEnum","FeeSheetRowStatusEnum","FeeSheetRowDetailEnum","FeeSheetRowTypeEnum","InfractionService","PhaseTypeService","onShowing","thisFeeSheetRowType","phaseMultiPhaseTypes","selectedPhase","thisIsForAdd","infractionList","selectedInfraction","onAddFeeSheetRule","cantAdd","ThisFeeSheetRow","onRowUpdatedEvent","_f","Amount","onCellEdit","levelList","typeList","FeeSheetRulesSortFunction","rule1","rule2","Level","TargetAmount","CapAmount","FeeSheetRowDialog","Cap","Target","errorVisible","errorMessageList","duplication","required","hasDuplication","NA","Level1","Level2","Level3","Level4","Level5","Level6","Level7","Level8","Level9","Level10","phaseService","infractionService","Add","forPhaseSelection","feeSheetRowTypeEnum","hidingModal","processGetPhases","processFeeSheetRowType","addEventListeners","removeEventListeners","addEventListener","onKeyup","onKeydown","removeEventListener","ctrlKey","shiftKey","preventDefault","buttonElement","phaseDataGrid","cancelEditData","resetValidation","clearSelection","formValidationGroup","selected","equality","resp","GetAllInfractionTypes","Phase","thisSelectedPhasesInfraction","getPhaseList","pTypes","getMultiPhaseList","mTypes","getInfractionList","InfractionType","Update","newRule","FeeSheetRuleId","Type","FilingTypes","toAdd","checkCanSaveAndAdd","prop","currentRules","removeDuplication","obj","pos","fil","DeletedFeeSheetRules","requiredData","checkFeeSheetRulesData","dup","checkIfHasDuplicationOfRules","selectedPhaseMultiPhase","PhaseVerb","RgbHex","PhaseOrder","SecondaryPhaseOrder","IsBatched","DxResponsiveBox","DxLocation","DxCol","DxRow","RequiredRule","DxNumericRule","FileService","fileService","FileHelpers","request","selectedFiles","getUploadAuthorization","formData","FormData","append","upload","Url","Token","fileIds","download","actualNotesValue","lastUpdate","FeeSheetRowNotes","commonState","defaultGuidValue","feeSheetService","updateFeeSheetRowNotes","jwtData","dateFormat","updatedBy","updateDate","moment","notes","parentFeeSheetRowValue","Description","displayCaption","onCancel","ParentFeeSheetRowDetails","isForPhase","parentFeeSheetRow","FeeSheetRowType","PhaseOrInfractionName","require","JURISDICTION","Value","AddUpdateFeeSheets","parentFeeSheetRows","filingTypeValue","selectedToBeAddPhaseType","isAgentForUpdate","selectedSheetNameFeeSheetId","SavedCurrentFeeSheetName","titleItemGroup","originalFileId","originalFileName","filingStore","all","currencyStore","phaseTypeStore","feeSheetStore","onFeeSheetSelectionChanged","jurisdiction","validationCallback","validateFilingType","notSelectedManually","feeSheetCustomStore","feeSheetsService","feeSheetRowDefaultValue","processClientVal","processGetCountries","processFeeSheetVal","processAgentValidation","processFeeSheetType","dxDataGrid","formComponent","getParentFeeSheetDetails","processCapDisplay","beginCustomLoading","infractionDataGrid","processFeeSheetRows","fr","endCustomLoading","Infraction","getFeeSheetPerClient","getClientIdVal","onFeeSheetAgentSelectionChanged","getSentDates","FeeSheetId","currentFeeSheetNameVal","feeSheetNameValidator","validator","thisIsClientFor","checkFeeSheetName","processValidation","agentValidator","FeeSheetName","otherValidator","validationForm","vldtr","validators","def","EffectiveDate","FilingTypesNamesString","FeeSheetRows","FeeSheetTitle","DeletedFeeSheetRows","Modified","ReceiptFileId","feeSheetDefaultValue","getPrentFeeSheetDetails","processGettingFeeSheetRows","template","selectedFile","dxForm","resetValues","phaseWatcher","infractionWatcher","ThisFeeSheetType","asyncValidation","asyncValidationAgent","responses","forAll","TemplateName","FeeSheetTemplatePhases","phaseType","phaseRow","FeeSheetTemplateRules","phaseRule","FeeSheetTemplateTasks","infractionType","InfractionName","IsConfirmed","infractionRow","infractionRule","searchFeeSheetDetailsPerFeeSheetId","cloned","feeSheetRowIndex","isForParent","parentRow","details","countryDetail","ctryDetail","cntry","levelDetail","getLevelDetail","capTargetDetail","forCapDisplayDetail","$options","filters","parentRule","hasSameRule","hasTarget","level","processDataForEdit","phaseOrInfraction","processFile","fileDetails","UploadedFiles","updateFeeSheetRecord","fsr","complete","processSave","updateData","rowStatus","modifiedDetail","Status","ModifiedDetails","rowElement","hasParent","New","processExplicitModificationDetail","dataField","displayUpdatedCells","Rule","UnModified","hasModified","agentDescription","replaceAll","clientDescription","sensitivity","toRemove","rules","rowInfo","phaseOrMulti","infraction","inputElement","buttons","custom","messageHtml","show","LastSentDate","uploadFiles","downloadFiles","blob","fileURL","URL","createObjectURL","open","DxSimpleItem","JurisdictionType","onPopUpHidden","onPopUpShowing","sendingInProgress","tabs","wizardStep","onStep1SelectionChanged","contentReady","processJurisDictionDisplay","AgentFeeSheets","onEditingStart","onRowStep2Updated","prepareContextMenu","isEditable","emailInstructionGrid","onStep3CellPrepared","onRowUpdated","FeeSheetToSend","onPreviewEmailClicked","onPreviewFeeSheetClicked","saveCellEdit","feeSheetEmailHeaderStore","saveCellInstructionEdit","feeSheetInstructionsStore","onUpdateTemplates","continueOrFinish","wizardContinue","cancelOrBack","wizardCancel","onTemplateEditorHidden","showPreview","previewDisplay","forFeeSheetPreview","selectedFeeSheetIds","feeSheetInstructionId","downloadInProgress","domProps","showDisplay","onDownloadFile","isForFeeSheetPreview","onClose","emailFeeSheetPreview","FeeSheetIds","InstructionTemplateId","TimeZoneOffset","getTimezoneOffset","getExportFeeSheetsPdf","authorizeDownloadResult","filename","headers","FileSaver","saveAs","decodeURIComponent","AgentFeeSheetTableDetailEnum","AgentFeeSheetDetailColorEnum","FeeSheetEmailerWizards","selectedRows","emailInstruction","prevStep","fromToolbarItem","emailTemplateList","instructionTemplateList","feeSheetColumns","agentsFeeSheets","emailInstructionList","emailCCHasError","widthValue","selectedRowInContextMenu","edittedColumn","selectionColumnIndexes","agentFromCustomStoreOptions","defaultHeaderStore","FeeSheetEmail","FeeSheetInstructions","agentFeeSheetsTo","agentFeeSheets","emailGrid","wizardStepper","processData","afs","ArrayStore","fromStep3","wizardStepperComponent","processStep2Data","processStep3Data","EmailTemplateId","getTextTemplateById","toDisplay","processActualTokenData","getExportFeeSheetsHTML","feeSheetsHTML","getColor","Blank","SignedXY","NotSigned","NotYetSent","columnOption","agentFeeSheetsGrid","getDataSource","processEnableAndDisableStep3","element","onContextMenuClick","emailInsGrid","first","rowData","hasSelected","hasSelectedStep2Grid","firstElement","columnSelections","feeSheetNamesToSend","fSheetName","replace","tempColumns","columnIndex","column1","agentsWithoutFeeSheets","tableRow","Colors","count","ind","agentFeeSheet","tableColumn","modifiedString","signedDetail","detail","agentFeeSheetsToGrid","getSelectedRowsData","step1Selection","shouldSkipNextReady","updateDimensions","canContinue","getFeeSheetsStatus","processColumns","processEmailInstructionData","dataSourceItems","agentWithMissingTemplate","agentsWithFeeSheet","aWf","FeeSheetsSelected","groupedItems","groupBy","feeSheetGroup","feeSheets","header","agentNames","indx","dl","processDisplayMissingEmailAndFeeSheetId","processConfirmationToSend","senderEmailAdd","EmailAddress","GivenName","Surname","agentFS","Email","Cc","SenderEmailAddress","sendFeesheets","messageDisplay","jurisdictionType","In","filteredData","Out","DxTabs","EmailFeeSheetPreview","DxColumnFixing","LoadPanel","getTitle","selectedEffectiveDate","clientFeeSheets","selectedFeeSheetId","onSelectedFeeSheetChanged","AgentSelectionStore","selectedAgentIds","onOpened","IsClientAgent","onMouseEnter","onMouseLeave","fontWeight","ClientAgents","preSelectedAgentIds","validateSelectAgents","hoveredItem","tooltipVisible","agentGroup","AgentFeeSheetMassAdder","agentListItems","agentSelectionRef","AgentCustomStore","processResult","AgentFeeSheetExists","fs","getAgentsWithParentFeeSheet","creationDto","Agents","createAgentFeeSheetsFromList","DxListItem","feeSheetTemplates","selectedTemplate","FeeSheetTemplateService","CreateFeeSheetFromTemplate","createClientSheet","feeSheetTemplateService","useNoTemplate","FeeSheetTemplateId","ClientAgentsFeeSheets","inJurisdictionCountriesFilter","f","getClientFeeSheets","getAgentFeeSheets","list","InJurisdictionCountries","refreshDataGrids","clientDataGrid","agentDataGrid","empty","sheet","getAgentNamesWithParentFeeSheet","agentsString","deleteFeeSheet","clientStoreOption","agentStoreOption","withPartial","newResult","selectedFilterOperations","target","entry","FeeSheets","Breadcrumbs","AnalysisReportPrintDataOptionsType","AnalysisReportPrintDataOptionsTypeStrings","sidePanelIsOpen","ClientMatterId","gridRefresher","changeFiling","selectColumns","openSetupDialog","showingSetupDialog","caseDisplayOrderUpdated","onAutoSkipChanged","feeSheetRules","feeBudgetRules","batchIdsOfCurrentBatch","getClientId","selectedFilingType","lineItemsLoaded","assignPhaseToSelection","matterWorkLineItemsDialogStateChanged","setExemptRowToSelection","phase","isAutoSkip","pageType","userReviewedMode","confirmAllMatters","showingReleaseMatters","closeReleaseMatters","releaseMatters","dataGridCustomStoreOption","rowRenderingMode","cellHoverChanged","onCellDoubleClick","getIdForPopover","showPopOver","hidePopover","getInfractionClass","openInfractionForm","openNotesForm","rgbHex","textColor","lastAssignedByTemplate","precision","servTemplate","amountTemplate","invTemplate","descTemplate","showingNotes","notesLineItem","InvoiceLineItemId","loadingAutoTextData","hidingNotes","onProcessAutoText","showingInfractions","hoveredLineItem","hoveredRowPhaseColor","hidingInfractions","popoverTarget","popoverVis","hidingPopover","hidingAgentInfo","phaseHistoryLineItemId","showingPhaseHistory","hidingPhaseHistory","showingUpdateCountry","selectedLineItems","hidingUpdateCountry","showingUpdateMatterName","hidingUpdateMatterName","cycleNotesItem","onNotesHidden","saveNotes","privateNotes","isNonPatentFilingType","reportLanguageLabel","auditorNotes","onReportLanguageChanged","onReportLanguageFocusOut","printOptionsStrings","selectedPrintOption","markImportant","printComments","includeCharges","onNewEditAutoText","openAutoText","onAutoTextHiding","KeyMap","ManualCodeInvoiceLineItemNotesDto","InvoiceLineItemNotesId","PrivateAuditorNotes","AuditorNotesReportLanguage","DoNotPrint","MarkImportant","PrintCommentsAuditorReport","IncludeAllAgentsCharges","PhaseHistory","onHidden","saveAutoText","favorite","autoTextTemplate","onClickFavorite","onEditPhaseVerb","forSave","showPhaseVerbEditor","onHiding","dataGridRefKey","onRowUpdating","onEditorPreparing","saveButtonOptions","cancelButtonOptions","PhaseVerbEditor","phaseTypeService","dataGridRef","saveAndClose","cancelAndClose","hasEditData","parentType","close","isSaveShortcut","focusDataGrid","AutoTextDialog","onInputChanged","textBoxReady","saveAsComponent","htmlEditor","newLength","AutoText","clearAll","resetTextAreaValidation","DxTextArea","Html","PhaseAssignmentNotes","lineItemId","notesLoaded","reportLanguageInitialized","selectedNotesItem","selectedPrintItem","modifyNotesUrl","phaseHistory","defaultTextStore","showNotes","privateNotesEditor","auditorNotesEditor","loadNotes","keyCode","tab","upArrow","cyclePrintOption","downArrow","previousValue","auditorTrim","removeTags","EntirePhase","auditorNotesData","autoTextContained","auditorNotesInstance","clearHistory","privateNotesInstance","lineItemNotesUrl","invoiceLineItemNotesDto","privateNotesData","SingleLineItem","EntireCase","undo","printOptionsRadio","DxRadioGroup","ExecutiveSummaryRequestEnum","onPopupHiding","addInfraction","duplicationValidation","removeAt","phaseColor","scrollViewInit","infractionTypesListSource","listSelectionChanged","isSelectedInfractionClass","onSelectedValueChanged","onCheckBoxContentReady","loadPanelPosition","loadingVisible","PhaseAssignmentInfractionsDialog","infractionListScroll","checkBoxComponent","listPopup","infractions","lineItem","Infractions","lineItemInfraction","selectedElement","scrollIntoView","isConfirmed","deft","elem","selectionOfInfraction","handleScrollingToSelectedInfraction","removedItems","addedItem","prevSelected","currenctSelected","fond","excludedElement","toUncheck","difference","isCancelled","reloadInfractionTypes","checkHasError","addInfractions","confirmInfractions","ConfirmInfractions","AddInfraction","getInfractionListSource","checkDuplication","DxAutocomplete","popoverTargetGet","popoverVisibleTemp","showingPopover","hiddenPopover","hidPopover","initFunc","listOfInfractionsPerLineItem","saveConfirm","PhaseAssignmentInfractionsPopover","infractionInfo","cacheData","handleRemoveCacheEventBus","popoverVisible","hideTimeout","clearTimeout","debounceTime","comp","dxPopover","handlePopoverHidingTimeout","$nextTick","removeCacheBasedFromSelectedLineId","popOverComponent","_$element","children","setEventElem","onmouseenter","mouseOver","onmouseleave","mouseLeft","thisComponentHovered","DxPopover","PhaseSetBy","closeButtonOptions","PhaseRgbHex","countriesDataSource","selectedCountryId","updatingCountryCode","hidingUpdate","InvoiceLineItemService","updateCountryDto","updateMatterNameDto","UpdateLineItemsCountry","selectedCountryCode","selectedRowsCount","selectedRowsIds","lineItemService","getAllSelectOptions","selectedCountryOption","oldCountryCode","dialogText","li","updateDto","InvoiceLineItemIds","updateLineItemCountryCodes","matterNamesDataSource","getMatterDisplay","createCustomMatter","updatingMatterName","UpdateLineItemsMatterName","mattersDataSource","matter","MatterId","currentMatter","oldMatter","updateLineItemMatterName","MatterWorkLineItems","matterWorkModule","lineItems","Service","Translation","Expense","selectedLineItem","previousFeeType","matterIdRequested","coloredColumns","forRequestAutoTextValue","customDataSource","isContextShow","draggingSelect","draggingSelection","draggingSelectOrDeselect","draggingLastSet","selectedMatterChanged","startIndexSelection","endIndexSelection","prevEndval","fromDragBack","auditorNotesClass","privateNotesClass","latestBatchIds","matterIdSelected","requestedData","hasForRequest","processRequestForAutoTextData","actualData","processDataToDisplay","autoText","AssignedPhaseTypeId","AssignedPhaseName","ServiceDate","InvoiceDate","PhaseTotal","currencyTruncate","PhaseCharge","PhaseTarget","PhaseCap","overage","LineItemTotal","OverCapCount","toString","OverCapCountOverage","OverTargetCount","OverTargetCountOverage","InvoiceNumber","resSum","sumBy","SumInvoice","OverTargetList","OverCapList","Get","autoTextDataValue","manualCodingDataGrid","updates","dataGridCustomStore","currentlyFocusedPhase","onFocusPhaseUpdates","lItems","findIndex","listOfLineItems","union","handleFocusedPhaseTypeEvent","onLoaded","dataGridLoaded","onUpdated","dataUpdated","onPush","dataPush","matterUrl","updateFeeType","feeType","updatedMatter","FeeType","MatterWorkId","clearFocus","getCommonPhaseTypes","getContextMenuItem","getOtherPhaseTypes","assignPhase","getContextMenuExempt","getContextMenuChangeCountry","getContextMenuChangeMatterName","updateSelectedMatterLineItems","selectMatter","PhaseAnalysisItem","isFromTop","bigger","smaller","dragBack","isIncremental","clear","Math","min","max","incrementOrDecrement","toSet","rowKey","getKeyByRowIndex","previouslySet","firstSetKey","firstSet","setRowFromHover","toggleLineItemTotalTooltip","isSelected","eventType","selectedRowsTotal","sum","set","selectRows","deselectRows","preserve","getContextMenuItems","showAgentInfoEditWindow","getContextMenuAgentJurisdiction","showPhaseHistory","dialogStateChanged","phaseTypeId","isExempt","IsExempt","updateLineItemCountry","inJurisdictionDto","inJurisdictionItem","updateClientAgentJurisdiction","outJurisdictionDto","outJurisdictionItem","jurisdictionFreeDto","jurisdictionFreeItem","AgentJurisdiction","AgentJurisdictionFree","notesClass","AnalysisReportPrintDataOptions","HasConfirmedInfraction","HasSystemGeneratedInfraction","showingContextMenu","showingInfractionsPopover","showingColumnChooser","setLoadPanelEnabled","currentValue","updateLineItems","enableLoadPanel","lineItemIds","newCountryCode","remainingLineItems","LineItems","IsDeleted","LineItemTotals","reduce","LineItemTotalsService","AllLineItemsConfirmed","Confirmed","Phases","All","newMatter","popoverTimeout","disableLoadPanel","MatterWorkLineItems_1","defaultPhaseColor","columnChooserView","getView","_popupContainer","_initializePopupContainer","render","onMousedown","scrollToTop","getUserSettings","UserPreference","DataTableFontSize","userPref","cellValue","focusedLineItems","recordsToBeIncluded","backInd","frontInd","backItm","frontItm","newDataSource","getFontSizeFromUserSettings","container","LastAssignedBy","textContent","toUpperCase","serviceDate","inCurrentBatch","textDecoration","num","parseFloat","isNaN","lineItemTotal","toLocaleString","paddingLeft","detachHandlers","off","dispose","latestDate","DateCreated","getRowElement","scrollView","getScrollable","scrollToElement","scrollable","scrollTo","Emit","DxColumnChooser","PhaseAssignmentInfractions","DxAccordion","MatterWorkTypeEnum","MatterWorkTypeNameEnum","MatterWorkSearchTypeEnum","FeeSheetTypeEnum","FeeSheetTypeNameEnum","Services","Expenses","Translations","Total","matterOverages","AliasName","overageRowDetailsWarningStyle","RuleValue","TargetOrCap","gettingOverageDetails","OveragesTypeEnum","MattersService","MatterTotals","autoTextData","dateFilter","matterBestRuleForOverage","mattersService","updateSummary","matterServicesTotal","matterExpensesTotal","matterTranslationTotal","group","services","expenses","translations","total1","total2","order1","order2","total","OverageType","HardOverage","handleUserSettingChanged","getMatterBestRulesForOverage","groupedByAgent","flatMap","linesByAgent","groupedByPhase","linesByPhase","overages","lineItemsPhase","bestRule","PhaseAgentTotal","RuleType","HardOrSoftOverage","SoftOverage","mo","done","PhaseNames","saveCaseOrder","autoSkipValue","fontSizesAvailable","selectedFontSize","isDragging","errorResponseMessage","sortableArray","dragOptions","fixed","displayOrder","unselectElement","orderingOptions","selectedOrderingOption","draggable","CASE_ORDER_SELECTION","FONT_SIZES_AVAILABLE","PhaseAssignmentOrderSetupDialog","ByMatterName","ByServiceCost","ByTotalCost","ManualCoding","CaseDisplayOrder","optionUserPref","autoSkipPref","AutoSkip","orderingPref","dbValCaseOrder","getUserPreferenceFontSize","getAutoskipPreference","getOrderingMethodPreference","animation","ghostClass","getUserSettingsWithFilter","dbVal","u","SortOrder","mappedDbVal","autoSkip","orderingMethod","saveUserPref","saveAutoSkip","saveManualCaseOrder","insertUserSettings","resultCaseOrder","resultOrdeMethod","showCheck","ChangeFilingTypeDto","FilingType","showLoad","changeType","FilingTypeEnum","FilingTypeNameEnum","caseCount","reviewedCount","prevActiveCase","prevCase","nextCase","textSearchOptions","selectedTextSearchOption","textSearchOptionChanged","getNavItems","selectedItemId","treeListSelectionChanged","searchText","matterTemplate","getFilingTypeName","filingTypeId","Patent","Design","Trademark","UtilityModel","Litigation","MatterWorkNavigator","codingType","Coding","auditingType","Auditing","milestones","componentReady","caseDisplayOrder","orderMethod","matterDetails","navigationFlattened","shouldShowRelease","isDisposed","_searchText","auditingHeaders","parentKey","itemKey","isParent","currentSelectedIndex","navItems","capHardOverages","targetHardOverages","capSoftOverages","targetSoftOverages","internalNotes","reportLanguage","doNotSend","potentialIssues","issuesRemoved","check","userReviewed","allConfirmed","audited","selectedMatterIndex","unReviewedMatterItemCount","pickBy","UserReviewed","unconfirmedMatterItemCount","auditedMatterItemCount","Audited","selectMatterId","uniqueNavItems","scrollToId","updateNavMatters","handleRemovingOfMatter","updateTargetMatter","changeCase","updateMatterList","clientMatterId","countryCode","nf","mattersData","Details","NavigationItems","matterWorkmatters","getActiveBatchIds","setActiveBatchIds","getAllMatterOverageDNS","matterOveragesDNS","z","PhaseTypeName","setMatterOverageDNS","refreshCaseDisplayOrder","sortedSettings","removeAllDataForRecalculation","createAuditingNavigationItems","createNavigationItems","updateAuditingHeaders","updateCodingHeaders","updateParentStyling","selectFirstMatter","firstMatter","updateSelectedItem","childNode","node","nodes","parent","selectedData","selectedRowsData","previousSelectedData","currentDeselectedRowKeys","dxTreeList","oldSelectedNode","getNodeByKey","deselectedParentNodes","getTreeListNodeParents","newSelectedNode","newParentNodes","nodesToCollapse","oldNode","newNode","collapseRow","expandRow","navigateToRow","ni","setSelectedMatter","setSelectedMatterId","direction","targetId","idToCheck","loopItems","reverse","currentIndex","addIndex","newKeyWithIndex","nextIndex","nextNav","matterWork","LineItemDescriptionList","nextActiveCase","updatedMatters","mergeArrays","removeUpdatedMatter","newNavItems","removeGroupingsWithNoMember","itemList","groupings","y","setBool","navFlattend","IsAudited","removeMatterDetails","treeListInstance","auditingNavigation","capHardOveragesTemp","targetHardOveragesTemp","capSoftOveragesTemp","targetSoftOveragesTemp","infractionsTemp","internalNotesTemp","reportLanguageTemp","doNotSendTemp","potentialIssuesTemp","issuesRemovedTemp","DoNotSend","HasInfraction","HasInternalNotes","HasReportLanguage","createAnalysisIssueItems","HasAnalysisIssue","mergeAndReorderNavigationItems","mattersWithIssues","parentNavs","sourceParentNavs","parentNavResult","itemNavResult","isInTarget","sortByDisplayOrder","lowestParentLevel","maxBy","parentInDeepestLevel","sortOrder","temp","maxLevelItem","minBy","maxLevel","maxCaseType","caseType","maxLevelItems","sortByPhase","sortByFilingType","tempItems","nextLevelItems","isUserReviewMode","parentHeaderLevel","parentHeaders","pHeader","members","confirmedCount","hardOverageHeader","hardOverageCount","hardOverageAuditedCount","softOverageHeader","softOverageCount","softOverageAuditedCount","notesHeader","notesCount","notesAuditedCount","infractionsHeader","infractionsCount","infractionsAuditedCount","doNotSendHeader","doNotSendCount","doNotSendAuditedCount","potentialIssuesHeader","potentialIssuesCount","potentialIssuesAuditedCount","issuesRemovedHeader","issueRemovedCount","issueRemovedAuditedCount","parents","navigationItems","sortedCase","getCaseOrderKey","groupedNavigation","uniqueHeaders","itemNavs","agentCaseOrder","phaseCaseOrder","agentValue","phaseValue","NavigationTotal","OverallAgentServiceTotal","OverallAgentTotal","OverallPhaseServiceTotal","OverallPhaseTotal","MatterServiceTotal","MatterTotal","itemDetails","sortHeaders","forSort","unGrouped","analysisTriggerRules","flatten","AnalysisIssues","uniqueRules","ai","AnalysisTriggerRuleId","RuleName","navItem","subItems","childNavItems","headerItems","itemsToSort","sorted","phaseSort","order","filingTypeEnum","filingTypeNameEnum","caseOrder","forRelease","DxTreeList","DxSearchPanel","PhaseAssignment","gridRefreshTimeout","confirmAll","allMattersConfirmed","allMattersReviewed","linesSetByCodeAll","matterWorkLineItems","UserReviewedMode","$children","menuOpened","activeBatches","$destroy","matterWorkNavigation","isDialogOpen","className","one","numPadOne","misc","two","numPadTwo","publication","three","numPadThree","postGrantReview","four","numPadFour","five","numPadFive","pph","six","numPadSix","noveltySearch","fSlash","numPadFSlash","idsCopies","leftArrow","rightArrow","drafting","filing","exam","prosecution","grant","oneSixOneOneSixTwo","seven","numPadSeven","appeal","eight","numPadEight","subsequentApplications","nine","numPadNine","annuity","period","numPadPeriod","lineItemDataGrid","loadRequiredData","preference","skip","checkAllLineItemsConfirmed","LastAssignedById","oldRows","assignedPhaseTypeId","assignedPhaseName","isExemptRow","confirmAuditMatter","checkForRelease","refresh","allPreviouslyConfirmed","autoskipIfFinalRowConfirmed","showColumnChooser","openNotesKeyboard","OrderSetupDialog","beforeRouteLeave","to","next","codingPage","AgentJurisdictionColorEnum","feeSheetUpdated","auditMatter","showIndicatorForReleaseMatter","showIndicatorForReleaseMatterButton","buttonText","showingReadyToReport","reportAvailableScheduledDate","closeClearedForReport","setClearedForReporting","chargeSummary","onRowCollapsed","onRowExpanded","IsFocused","onFocusedChanged","ServiceOverageType","AgentSummaries","phaseTypeTemplate","totalTemplate","expensesTemplate","translationsTemplate","calculateTotals","displayFormat","executiveSummary","onExecutiveSummaryCellPrepared","executiveSummaryPhaseBorder","getMatterOverageButton","toggleDoNotSend","checkValue","OverageDetail","processDataTODisplay","ChargeSummary","matterOverageDoNotSend","hasOverageDetail","chargeTotalCurrency","currencyFilter","OverageInLatestBatch","colorVal","Free","Unset","button","matterOverageDNSDto","toggleMatterOverageDNS","indexToRemove","$delete","ExecutiveSummaryTypeEnum","fromExpandingCollapsingRow","matterIdChanged","currentLineItems","execSummary","matterService","currentFocusedPhaseType","chargeSummaryGrid","getExecutiveSummaryData","execResult","phaseOverage","analysisItem","AnalysisItem","infractionOverage","summ","filtered","summaryProcess","totalValue","expandRowsInCurrentBatch","scrollToFocusedRow","focusedPhase","filteredItems","checkIfIsInCurrentBatch","notInBatch","billedHere","RGB","IssueInLatestBatch","matterFeeSheetRules","matterLineItems","matterOverAges","latestBatchId","phaseGroup","agentSummaries","agentGroups","agentSumm","serviceLineItems","serviceWithOverages","summaryOverageType","phaseTypeName","RowCount","isInCurrentBatch","updateSummaryWhenChanges","DxSwitch","DxMasterDetail","ChargeDetail","DxTotalItem","selectedFeeSheet","feeSheetOwner","feeSheetUpdate","saveFeeSheet","AgentFeeSheetTable","feeSheetTableLoaded","heightValue","processGettingAgentFeeSheets","clientFeeSheetsFiltered","ParentFeeSheetId","clientFeeSheet","toDateString","openFeeSheet","BatchEventTypeEnum","BatchEventDateTypeEnum","AuditorPage","agentFeeSheetProcessed","matterWorkType","agentFeeSheetTable","cases","chargesummary","IsStillAuditing","cloneMatter","displayErrorAuditingMatter","auditingMatter","isSuccessfulResult","isForRelease","updateFeeSheetsStatuses","auditCompleted","BatchEventType","ReportAvailable","BatchEventDateType","ScheduledDate","getBatchEventTypeDate","reportAvailableDate","setReadyForReporting","auditorPage","deleteFeeSheetTemplate","createNewFeeSheetTemplate","feeSheetTemplatesCustomStoreOptions","editFeeSheetTemplate","FeeSheetTemplatesGrid","templateIdToDelete","feeSheetTemplatesService","FeeSheetTemplates","feeSheetTemplatesGrid","templateName","templateNotes","jurisdictionList","templateInJurisdiction","templatePhases","onEditPhaseType","onDeletePhaseType","onAddTaskType","templateTasks","onEditTaskType","onDeleteTaskType","exitFeeSheetTemplate","saveFeeSheetTemplate","FeeSheetTemplatesForm","phaseNames","selectedMultiphase","infractionNames","DeletedFeeSheetTemplatePhases","DeletedFeeSheetTemplateTasks","phaseOrMultiPhase","templateNameExists","emptyTemplateName","emptyPhasesOrTasks","phaseAlreadyAdded","phaseAliasAlreadyAdded","taskAlreadyAdded","feeSheetTemplateId","enter","processPhaseCapDisplay","processTaskCapDisplay","selectedFeeSheetTemplateId","fsRowTemplate","FeeSheetTemplatePhaseId","convertFeeSheetTemplateRules","DeletedFeeSheetTemplateRules","FeeSheetTemplateTaskId","feeSheetTemplatePhase","forPhaseCapDisplayDetail","feeSheetTemplateTask","forTaskCapDisplayDetail","ret","convertFeeSheetRules","templateRules","rule","FeeSheetTemplateRuleId","fsRules","convertFeeSheetPhaseTemplate","convertFeeSheetTaskTemplate","DxDropDownBox","DxTreeView","fileParseFormatCustomStoreOptions","FileParseFormatId","displayFileExtensions","showFileParseFormatCreate","hidingFormatCreate","FileParseFormatService","fileParseFormatId","fileParseFormatName","confirmCreate","fileParseFormats","selecedFormatId","FileParseFormatCreate","fileParseFormatService","copyFromExisting","FileParseFormatGrid","promise","FileExtension","FileParseFormat","formatDto","validateAsync","fileExtensions","selectedFileExtensions","openConfiguration","showConfiguration","availableCalculations","targetColumnOptions","closeConfiguration","configurationInitialized","saveFormatGrid","rowUpdated","rowInserting","rowRemoved","dataGridEditingStart","dataGridInitNewRow","targetColumnOptionsDataSource","onTargetColumnChanged","dataTypes","FileParseTargetColumnOptionId","CustomItem","onDataTypeChanged","filterReorder","fileParseColumnFilterId","availableFilters","FileParseColumnFilterId","FileParseColumnFilterIds","filterValueChanged","getFilterRemoveButtonOptions","addFilterClick","formInitialized","calculateTargetColumnNameSortValue","validateTargetColumn","deleteFormat","saveFormat","returnToList","FileParseCalculationService","FileParseFormatFileExtensionDto","currencyConversionCalculation","CalculationName","currencyConversionEnabled","currencyConversionData","amountColumnEditorOptions","sourceCurrencyColumnEditorOptions","dateColumnEditorOptions","destinationCurrencyEditorOptions","GetDefaultCurrencyConversionData","AmountColumn","SourceCurrencyColumn","DateColumn","DestinationCurrency","ResetCurrencyConversionData","FileParseFormatConfiguration","amountColumnEditorItems","sourceCurrencyColumnEditorItems","dateColumnEditorItems","destinationCurrencyEditorItems","fileParseFormat","DataType","getTargetColumnName","calculations","TargetColumnName","validateForms","currencyConversionForm","validationResult","addCurrencyConversion","FileParseCalculationId","FileParseFormatCalculationName","FileParseFormatCalculationData","initialize","initializeCalculationData","populateCalculationData","initializeCurrencyConversionData","calculation","current","calculationName","populateCurrencyConversionData","currentData","resetCurrencyConversion","FileParseFormatColumn","configuration","othersGroupLabel","fileParseCalculationService","formatNameValue","columnEditForm","targetColumnValue","currentEditColumnId","selectedFilterIds","dataSaved","targetColumnOption","fe","FileParseFormatFileExtensionId","FileParseFormatColumnId","getTargetColumnNameOptions","maxId","getFileExtensions","extensions","getDataTypes","removeUnusedCustomTargetColumn","selectedTargetOption","setValue","getVisibleColumnIndex","repaintEditForm","alreadyExists","TableName","validateTargetColumnValue","checkFileParseFormatName","IsRequired","datagrid","submitSave","notInOptions","substring","showErrorMessage","onFormatDeleted","handleDeleteError","repaint","searchValue","removeFilterClick","activeStateEnabled","focusStateEnabled","hoverStateEnabled","movedItem","fromIndex","toIndex","DxSortable","refreshFileParseUploadTable","submittedFilesStoreOptions","showResubmitButton","resubmitInProgress","getAgentName","getStatus","FileParseSubmittedFiles","applyDefaultSort","fileParseUploadDataGrid","Created","Uploading","InQueue","NeedsReview","Processing","Complete","TimedOutWhileCompletingUpload","NeedsResubmission","submit","SubmittedFiles","dataMessageType","userClient","onSaveClick","UserAssignedClients","getAssignedClients","updateAssignedClient","resetMessage","UserAssigned","batchTypes","batchTypeId","onBatchTypeChanged","batch","hidingDeleteBatchData","renameBatch","MatterCount","LineItemCount","startingAutoCoding","startAutoCoding","startingAzureCoding","startAzureCoding","startingPostProcessing","startPostProcessing","showDeleteBatchData","BatchCompleteDate","batchCompleted","completingBatch","completeBatch","BatchEvents","showBatchRename","closeBatchRename","showingDeleteBatchData","updatingBatches","dataStoreOptions","showProcessButton","processBatchEvent","BatchEventId","BatchEventService","batchEvent","BatchEventDetails","batchEventDetails","batchEvents","batchEventService","batchEventDetailsDataGrid","updateBatchEvent","batchEventDto","batchEventIndex","be","prevBatchEvent","nextBatchEvent","processBatchEventError","getBatchEvents","ProcessedDate","BatchEventTypeId","DataDeadline","AutoCoding","deleteData","deletingData","treeListItems","BatchDeleteData","treeViewRef","batchDataDeleteDto","fileItems","agentInvoiceItems","AgentInvoices","agentInvoice","ParentFileParseUploadFileId","FileParseUploadFileId","getSelectedNodesKeys","itemsArray","_dataAdapter","_dataStructure","selectedItems","internalFields","k","FilesToDelete","AgentInvoicesToDelete","fileDto","invoiceItems","invoice","invoiceDto","deleteBatchData","getBatchDataDeleteTree","generateTree","validationGroupRefKey","batchName","validateBatchNameAsync","BatchRename","bypassServerValidation","validateBatchName","IsValid","submitSaveAndClose","changesMade","BatchTypeId","updateBatch","BatchDetails","startAutoCodingSuccess","startAutoCodingError","startAzureCodingSuccess","startAzureCodingError","startPostProcessingSuccess","startPostProcessingError","showMessage","completeBatchError","BatchTypeEnum","BatchTypeNameEnum","BatchTypes","Production","SavingsReport","Batch","getBatchDetails","batchDto","batchTypeName","bt","addingClientBatch","addNewClientBatch","BatchList","batchListDataGrid","ClientBatches","loadBatches","getClientBatches","addNewBatch","addNewClientBatchError","clientGroupDataCustomStoreOptions","CorpName","AddressLine1","AddressLine2","ProfitCenter","GLAccount","KCO","CO","BA","ANI","CompanyNo","ClientGroupService","ClientGroupDataGrid","clientGroupService","handleResponseError","ClientGroupData","_m","onEmailSupport","HelpService","Help","isSubmitting","submitted","helpService","FirstName","LastName","Company","Countries","SubmitForm","handleSuccessfulSubmission","handleFailedSubmission","form","DxButtonOptions","DxEmailRule","fileParseUploadsDataSource","fileParseUploadDisplayExpression","selectedUpload","loading","onCompleteClicked","FileParseUploads","fileParseUploadsUrl","fileParseUploads","loadFileParseUploads","getFileParseUploadsUrl","getFileParseUploadsQueryString","completeSelectedUpload","fileList","FileList","createdDate","CreatedDate","IncompleteUploads","feeBudgetRulesDataSource","onDataGridInitialized","cellInfo","isReadOnly","clientMattersDataSource","onCreatingCustomMatterName","clientAgentsDataSource","ruleTypes","layout","customizeEmptyText","notesToShow","closeNotes","TextPopup","FeeBudgetRuleService","FeeBudgetList","feeBudgetRuleService","clientMatters","getDefaultClientAgents","insertingMatter","pageIndex","getMatterSelectOptions","CapOrTarget","FeeBudgets","ReportTypeEnum","openBrowseModeDialog","showClientSummary","productionDataStoreOptions","claimWorkRow","codingWorkType","_t","savingsReportStoreOptions","clientSummaryRef","claimDialogRef","browseModeDialogRef","onPopUpShown","clientSummarySource","OnDataErrorOccured","markReport","sendBatchReport","analysisReportType","auditorReportType","sendingReport","sendReportsConfirmationRef","onSendReportsConfirmationHiding","ActivityPlannerService","batchType","workToClaim","batchesDataSource","batchDisplayExpression","yesButtonOptions","noButtonOptions","SendReportsConfirmation","reportType","Analysis","reportTypeName","clientName","Auditor","batchStore","getClientBatchesReportStatus","yes","no","ReadyForReporting","sendAnyway","reportAvailable","sentDate","ClientSummary","displayMessage","listOfSelectedBatchIds","tempSelectedBatchIds","activityPlannerService","clientSummary","processPreSelectedBatchIds","MatterNeedsAuditingCount","setAttribute","sendReportsConfirmation","ReportType","ForceSend","sendReport","LatestBatchName","claimSelectedWork","composing","claimError","ActivityPlannerClaimDialog","isClaimAll","authenticatedUser","fullName","claimWorkUrl","claimWork","mattersToClaim","releaseInProgress","claimedWorkUrl","onRowClick","TotalLines","ConfirmedLines","ClaimedCasesCount","AuditedCasesCount","confirmReleaseClaim","ClaimedWork","firstLoad","claimedWorkDataGrid","getClaimedWorkLink","which","href","expandFirstGroup","currentUserId","Id","ownerString","ClaimedById","ClaimedBy","casesString","releaseConfirmed","formattedDate","sendReportingMsg","okayToSendReporting","DxGrouping","DxSortByGroupSummaryInfo","DxSorting","hidingPopup","clientsLoaded","loadingCases","clientDataLoading","clientDataReady","countryIds","confidentRadioOptions","isConfident","hasInternalNotes","hasReportLanguage","claimSet","notesChange","loadCasesButtonOptions","BrowseModeSelectionDialog","clientData","useCustomNotes","loadCases","resetAllExceptClientId","handleDataLoadingError","field","sortDescending","uniqueData","sortedData","sortSelectOptions","filterClientData","FilingTypeName","PhaseTypeOrder","MatterWorkType","CountryIds","AgentIds","IsConfident","ClaimSet","parts","string","savingsReportTableRef","productionBatchType","savingsReportBatchType","savingsReportTableVisible","getAvailableWork","showSavingsTable","updateDisplay","isVisble","claimDialog","availableWorkDataGrid","availableSavingsReportWorkDataGrid","claimedWork","browseModeDialog","ClaimDialog","BatchSnapshotStatusEnum","BatchSnapshotStatusNameEnum","showButtons","snapshotBatch","refreshBatchSnapshots","BatchNameValue","batchSnapshotStatuses","BatchSnapshotStatuses","InProgress","Cancelled","Completed","BatchSnapshot","selectedBatchId","resetBatchData","getBatchSnapshots","latestBatch","isClientSelected","isBatchSelected","batchSnapshotDataGrid","showReportDialog","showTextReview","auditingWorkType","reportDialogRef","analysisTextReviewRef","clientAnalysisStore","selectedAnalysisClient","selectedAnalysisClientName","batchSelectionStore","selectedAnalysisBatchId","selectedAnalysisBatchName","displayAnalysisReport","clientAuditStore","selectedAuditClient","selectedAuditClientName","AgentStore","selectedAuditAgents","batchAuditSelectionStore","selectedAuditBatchId","selectedAuditBatchName","displayAuditorReport","ReportService","ReportOnDemand","selectedAnalysisClientData","selectedAuditClientData","reportService","batchAgentStore","getReportOptions","descending","processDownloadOnDemandReports","failed","getReportOnDemand","processDisplayAgentsWithNoReport","hasAllSelected","selectedAuditAgentNames","agentsRef","displayString","agentsWithNoReports","agentWithReport","AuditingBrowseModeSelectionDialog","Cases","analysisTexts","loadingAnalysisTexts","LineItemNotesId","getNotesLabelColor","getNotesLabel","showMatterDetails","refInFor","AnalysisText","onTextChanged","matterDetailsRef","saveChanges","preloadEnabled","ReportLanguage","MatterDetails","colorizedColumns","getLineItems","AnalysisTextReview","analysisTextsOrig","getAnalysisTexts","color","label","updatedNotes","analysisText","originalAnalysisText","lineItemNotesId","analysisTextItem","availableAuditingWorkUrl","reportDialog","availableAuditingWorkDataGrid","claimedAuditingWork","analysisTextReview","RespondEnum","CommentAutoTextEnum","respondToAgentDataSource","respondToAgentValue","respondToAgentChanged","forwardToClientDataSource","forwardToClientValue","forwardToClientChanged","showTemplatePopup","displayTemplateEditor","hideTemplatePopup","commentCount","showPageSizeSelector","requireTotalCount","updateCommentCount","AgentResponseDate","escalateComment","showEscalateColumn","showRespondEmail","emailSubject","emailTo","commentEmail","respondType","getForwardToClientId","getReplyToAgentId","commentData","onRespondCommentHidden","emailBodyText","CommentService","responseType","emailId","emailToSource","selectedToEmail","onOpenedEmailAddress","onEmailValueChanged","emailBccSource","selectedEmailBcc","body","onSendEmail","onDiscard","RespondToComment","duplicateCustomItemCc","duplicateCustomItemBcc","commentService","cc","Bcc","bcc","EmailSubject","ToAgent","ToClient","EmailTo","emailBodyEditor","selectedReplyToAgentId","processAutoTextActualValues","processEmailBody","selectedForwardToClientId","autoTexts","IssueName","CommentDate","AgentReponseDate","AgentComment","Parchment","bodyHtmlEditor","Embed","Hr","blotName","tagName","register","emailDetails","prevFrom","From","sent","Sent","prevTo","To","subj","Subject","prevCC","prevBcc","Body","FileUploadId","CommentId","sendEmail","deep","DateTime","getTime","CommentsGrid","canEscalate","emailBcc","emailBody","allCommentsDataStoreOptions","searchAll","tieredCommentsDataStoreOptions","showAllComments","replyToAgentId","forwardToClientId","getTotalSummaryValue","getCanEscalate","applyIssueResolvedFilter","commentDatagrid","comment","Tier","hasAgentReponse","ResponseEmailId","hasForwardedToClient","ForwardEmailId","openMatterInAuditing","openResponseEmail","openResponseHistory","viewMatterInAuditingDto","route","CommentEmail","getResponseHistory","Comments","doneInitialLoad","respondToAgentStore","RespondToAgent","forwardToClientStore","ForwardToClient","getCommentSettings","respondToAgent","forwardToClient","updateCommentSetting","updateCommentSettings","AllComments","emailStoreOptions","attachmentListDisplay","EmailTable","isParsedEmail","searchCommentEmail","editCommentEmail","emailDataGrid","Attachments","CommentsResponse","notValidFiles","emailUpload","Count","parsedEmails","unparsedEmails","emailUploader","DxDraggable","CommentsResponsePage","EmailCc","onDownload","SortingEmails","FileLookupService","FileServiceGrid","fileLookupService","searchFiles","fileName","FileServicePage","openCreateAgentForm","openLinkAgentForm","agentSetupStore","onAgentSetupEdit","processPrimaryAgentDisplay","processInJurisDictionDisplay","showingCreateNewAgent","hidingCreateNewAgent","createNewAgentHidden","showingLinkNewAgent","hidingLinkAgent","clientsDataSource","CreateNewAgent","createNewAgent","onClientSelected","selectedAgentId","clientNotSelected","LinkNewAgent","getUnlinkedAgents","linkClientAndAgent","AgentSetup","hasData","agentSetupList","agentSetup","agentSetupDataGrid","refreshAgents","createAgent","ClientAgentAliases","AgentSetupPage","showCreateNewAgent","showLinkAgent","allClientsSummaryStore","onRowValidating","AllClientsSummary","keyData","fileUploaderRef","accept","authUrl","multiple","uploadFailedMessage","uploadMode","uploadedMessage","onFilesReady","combineText","combine","includeOriginalsText","includeOriginals","refreshJobs","jobsDataSource","downloadFile","translationInProgress","AutoTranslationService","PdfTranslator","autoTranslationService","filesToProcess","fileNames","getJobs","authorization","downloadAuthorization","downloadResult","ok","filenameHeader","handleErrorResponse","progress","Combine","IncludeOriginals","translate","resetUploader","PdfTranslatorView","selectedReports","downloadReports","EbillingService","EBilling","ebillingService","getEbillingReports","getEbillerSelectOptions","getClosedClientBatches","ReportsToGenerate","ClientEbillingReportId","handleNoReportsAvailable","reportTypes","DisplayName","reportMessage","removeTrailingZeros","EBillingView","analysisTriggerRulesDataSource","addHeaderButton","showAddEdit","removeRow","analysisTriggerRuleTypeOptions","customizeEmptyOptionalText","showAddEditPopup","targetRule","analysisTriggerRuleTypes","hideAddEdit","saveRowData","AnalysisTriggerRuleService","AnalysisTriggerRuleTypeService","updateFormData","analysisTriggerRuleType","hint","clientListOption","countryListOption","filingTypeOption","phaseType1Required","phaseTypeOption","phaseType2Required","numberRequired","amountRequired","AnalysisTriggerRuleAddEdit","validateAndSave","analysisTriggerRule","AnalysisTriggerRuleTypeId","CreatedById","CreatedBy","RuleTypeName","isUndefined","isNull","Number","PhaseType1Id","Phase1Name","PhaseType2Id","Phase2Name","validated","analysisTriggerTypes","ruleTypeChanged","clientList","ruleType","Phase1Required","Phase2Required","NumberRequired","AmountRequired","analysisRuleForm","DxLabel","AnalysisTriggerList","analysisTriggerRuleService","analysisTriggerRuleTypeService","selectedRuleTypeId","resetTargetRule","hideAndResetPopup","ruleToSend","executeSave","addEdit","analysisTriggerRuleAddEdit","AnalysisTriggers","modifyButtonsDisabled","editInvoiceDate","editInvoiceNumber","onApplyExchangeRateClicked","getGridHeight","showInfo","showNavigationButtons","editLineItemTotal","selectedInvoiceNumber","selectedCountry","applyExchangeRateRef","onApplyExchangeRateDialogHiding","editInvoiceDateRef","onEditInvoiceDateDialogHiding","editInvoiceNumberRef","onEditInvoiceNumberDialogHiding","editLineItemTotalRef","onEditLineItemTotalDialogHiding","onValidationGroupInitialized","currenciesDataSource","onCurrencyChanged","okButtonOptions","ApplyExchangeRate","targetCurrency","invoiceDate","getHistoricalExchangeRate","ExchangeRate","resetValidators","onDateBoxInitialized","EditInvoiceDate","originalValue","valueChanged","dateBox","onTextBoxInitialized","EditInvoiceNumber","textBox","onNumberBoxInitialized","EditLineItemTotal","numberBox","InvoiceLookupGrid","invoiceLineItemService","changingClient","dataStore","reshapeOnPush","getClientLineItems","updateLookupData","clearFilters","setPageIndex","getLookupData","getBatchesDataSource","Batches","getAgentsDataSource","invoiceNumbersDataSource","getInvoiceNumbersDataSource","Invoices","getCountriesDataSource","setDataGridLookupColumnData","selector","desc","invoiceNumbers","columnId","lookupData","setDataGridColumnOption","optionName","optionValue","editInvoiceDateDialog","getFirstRowInvoiceDate","getFirstRowData","updateInvoiceDate","bulkUpdateInvoiceDate","pushUpdateToDataStore","getBulkOperationSuccessMessage","editInvoiceNumberDialog","getFirstRowInvoiceNumber","updateInvoiceNumber","bulkUpdateInvoiceNumber","updateInvoiceLookupData","getInvoiceLookupData","newInvoiceNumber","NewInvoiceNumber","editLineItemTotalDialog","getFirstRowLineItemTotal","updateLineItemTotal","LineItemDate","applyExchangeRateDialog","applyExchangeRate","bulkApplyExchangeRate","exchangeRate","changesOnly","optionalPlural","InvoiceLineItemsUpdated","lineItemsUpdated","formatNumber","InvoiceLookup","productName","menuItems","expanded","layoutProps","showAlert","Router","router","routes","meta","requiresAuth","defaultLayout","props","breadcrumbs","alias","simpleLayout","Login","enableAzureAD","redirectUrl","redirect","beforeEach","authenticated","matched","record","codeQuery","checkForAzureAdCodeUrl","replaceWithSpaces","valueString","config","productionTip","SetupService","initializeApp","rootElement","h","App","$mount","isAuthenticated"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU6B,QAGnC,IAAIC,EAASF,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHF,QAAS,IAUV,OANAf,EAAQd,GAAUW,KAAKmB,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOC,GAAI,EAGJD,EAAOD,QAKfH,EAAoBM,EAAIlB,EAGxBY,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASL,EAASM,EAAMC,GAC3CV,EAAoBW,EAAER,EAASM,IAClC3B,OAAO8B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEV,EAAoBe,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CnC,OAAO8B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DpC,OAAO8B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKxC,OAAOyC,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBxC,OAAO8B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBQ,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAJ,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASgB,EAAQC,GAAY,OAAO9C,OAAOC,UAAUC,eAAeC,KAAK0C,EAAQC,IAGzG5B,EAAoB6B,EAAI,IAExB,IAAIC,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAW3C,KAAKsC,KAAKK,GAC5CA,EAAW3C,KAAOf,EAClB0D,EAAaA,EAAWG,QACxB,IAAI,IAAItD,EAAI,EAAGA,EAAImD,EAAWjD,OAAQF,IAAKP,EAAqB0D,EAAWnD,IAC3E,IAAIU,EAAsB2C,EAI1BzC,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,sGCvJT,W,+GCAA,W,oCCAA,W,oCCAA,W,yECAA,W,oCCAA,W,qOCAA,W,6DCAA,W,oCCAA,W,+ECAA,W,2DCAA,W,sDCAA,W,wICAA,W,8DCAA,W,mLCAA,W,kCCAA,W,4FCAA,IAAIyC,EAAM,CACT,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,QACX,aAAc,QACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,WAAY,OACZ,cAAe,OACf,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,QAAS,OACT,aAAc,OACd,gBAAiB,OACjB,WAAY,OACZ,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,QAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOpC,EAAoBqC,GAE5B,SAASC,EAAsBF,GAC9B,IAAIpC,EAAoBW,EAAEuB,EAAKE,GAAM,CACpC,IAAIG,EAAI,IAAIC,MAAM,uBAAyBJ,EAAM,KAEjD,MADAG,EAAEE,KAAO,mBACHF,EAEP,OAAOL,EAAIE,GAEZD,EAAeO,KAAO,WACrB,OAAO5D,OAAO4D,KAAKR,IAEpBC,EAAeQ,QAAUL,EACzBlC,EAAOD,QAAUgC,EACjBA,EAAeE,GAAK,Q,oCCnSpB,W,oCCAA,W,6GCAA,W,oCCAA,W,sDCAA,W,kFCAA,W,oCCAA,W,6GCAA,W,+HCAA,W,yDCAA,W,kCCAA,W,kCCAA,W,oCCAA,W,oCCAA,W,oDCAA,W,wICAA,W,oCCAA,W,oCCAA,W,6DCAA,W,6KCAA,W,kCCAA,W,6DCAA,W,oFCAA,W,+GCAA,W,oCCAA,W,oCCAA,W,iICAA,W,kCCAA,W,kCCAA,W,2DCAA,W,oCCAA,W,kCCAA,W,6DCAA,W,oCCAA,W,kCCAA,W,yDCAA,W,yDCAA,W,yDCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,gFCAA,W,kCCAA,W,+HCAA,W,kCCAA,W,gFCAA,W,kCCAA,W,8KCAI,EAAS,WAAa,IAAIO,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAON,EAAe,YAAEO,MAAM,CAAC,GAAK,SAAS,CAACH,EAAG,mBAAmB,CAACG,MAAM,CAAC,iBAAmB,CAAEC,KAAM,sBAAuBJ,EAAG,MAAM,CAACK,MAAMT,EAAIU,YAAY,CAACN,EAAG,cAAc,CAACG,MAAM,CAAC,KAAO,SAAS,MAAQP,EAAIW,MAAM,aAAaX,EAAIY,OAAOC,SAAS,WAAWb,EAAIY,OAAOE,SAASC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,SAASqC,GAAG,WAAW,MAAO,CAACb,EAAG,gBAAgBc,OAAM,MAAS,CAACd,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,cAAc,CAACG,MAAM,CAAC,KAAO,cAAc,MAAM,IAAI,IACrjBa,EAAkB,G,0oBCMtB,IAAqBC,EAAkB,2CAAvC,iD,0BACY,EAAAC,cAAsC,IAAIC,0BAC1C,EAAAC,YAAsB,GAFlC,EAAuC,wDAKzB,SAAkBC,GAC1BxB,KAAKuB,YAAcE,KAAKC,UAAUF,GAE9BA,EACFxB,KAAKqB,cAAcM,QAAQC,oBAAeC,aAAc7B,KAAKuB,aAE7DvB,KAAKqB,cAAcS,WAAWF,oBAAeC,gBAXd,wBAenC,WACI,OAAO7B,KAAKuB,cAhBmB,sFAoB5B,WAAsBC,GAAtB,0GACIA,GADJ,2CApB4B,+DAASO,iBAK5CC,gBADCC,eACD,sCAeAD,gBADCE,oBAAO,CAAEC,OAAQ,uBAClB,oCApBiBf,EAAkB,gBADtCgB,oBAAO,CAAExE,KAAM,mBACKwD,W,mdCDrB,IAAqBiB,EAAgB,2CAArC,iD,0BACY,EAAAC,iBAAiD,GACjD,EAAAC,eAA6C,KAC7C,EAAAC,iBAAgC,KAChC,EAAAC,eAAgC,GAJ5C,EAAqC,6DAOvB,SAAuBH,GAC/BtC,KAAKsC,iBAAmBA,IARO,kCAWjC,WACI,OAAOtC,KAAKsC,mBAZiB,0FAgB1B,WAA0BA,GAA1B,0GACIA,GADJ,2CAhB0B,2FAqBvB,SAAoBI,GAC5B1C,KAAKuC,eAAiBG,IAtBS,wBAyBjC,WACI,OAAO1C,KAAKuC,iBA1BiB,wFA8B1B,WAAwBG,GAAxB,0GACIA,GADJ,2CA9B0B,8FAmCvB,SAAuBC,GAC7B3C,KAAKwC,iBAAmBG,IApCK,0BAuCjC,WACI,OAAO3C,KAAKwC,mBAxCiB,0FA4C1B,WAA0BG,GAA1B,0GACIA,GADJ,2CA5C0B,4FAiDvB,SAAqBC,GAC3B5C,KAAKyC,eAAiBG,IAlDO,yBAqDjC,WACI,OAAO5C,KAAKyC,iBAtDiB,wFA0D1B,WAAwBG,GAAxB,0GACIA,GADJ,2CA1D0B,+DAASb,iBAO1CC,gBADCC,eACD,2CASAD,gBADCE,oBAAO,CAAEC,OAAQ,4BAClB,wCAKAH,gBADCC,eACD,wCASAD,gBADCE,oBAAO,CAAEC,OAAQ,yBAClB,sCAKAH,gBADCC,eACD,2CASAD,gBADCE,oBAAO,CAAEC,OAAQ,4BAClB,wCAKAH,gBADCC,eACD,yCASAD,gBADCE,oBAAO,CAAEC,OAAQ,0BAClB,sCA1DiBE,EAAgB,gBADpCD,oBAAO,CAAExE,KAAM,iBACKyE,WCArBQ,aAAIC,IAAIC,QAER,ICDYC,EAKAC,EASAC,EDbNC,EAAQ,IAAIJ,OAAKK,MAAM,CAC3B7G,QAAS,CACP8G,iBACAjC,qBACAiB,oBAEFiB,MAAO,CACLC,YAAaC,gBAIFL,IEbFM,EAAb,WAGI,oCACEzD,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJrD,+GAOW,8GACQnD,KAAK0D,OAAOzF,IAAI,+BADxB,wFAPX,yJAWW,WAAgC2F,GAAhC,8FACCC,EAAc5H,OAAO4D,KAAK+D,GAAQvE,KAAI,SAACV,GAAD,OAASA,EAAM,IAAMiF,EAAOjF,MAAMmF,KAAK,KAD9E,SAGQ9D,KAAK0D,OAAOzF,IAAZ,sCAA+C4F,IAHvD,wFAXX,mJAiBW,WAAyBrI,EAAqBoI,GAA9C,8FACCC,EAAc5H,OAAO4D,KAAK+D,GAAQvE,KAAI,SAACV,GAAD,OAASA,EAAM,IAAMiF,EAAOjF,MAAMmF,KAAK,KAD9E,SAGQ9D,KAAK0D,OAAOK,SAAZ,sCAAyDF,GAAerI,GAHhF,wFAjBX,qJAuBW,8GACQwE,KAAK0D,OAAOzF,IAAI,+BADxB,wFAvBX,oJA2BW,WAA2B+F,GAA3B,iGACQhE,KAAK0D,OAAOK,SAAc,4BAA6BC,GAD/D,wFA3BX,4IA+BW,8GACQhE,KAAK0D,OAAOzF,IAAI,mBADxB,wFA/BX,kJAmCW,8GACQ+B,KAAK0D,OAAOzF,IAAI,+BADxB,wFAnCX,qJAuCW,WAA4BL,EAAcS,GAA1C,8FACD4F,EAAa,GACd5F,IACD4F,EAAa,UAAH,OAAa5F,IAHpB,SAKQ2B,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAM,yCAAkCxG,GAAOqG,EAAW,IALzG,wFAvCX,mE,2CDCA,SAAYjB,GACRA,iCACAA,sCAFJ,CAAYA,MAAqB,KAKjC,SAAYC,GACRA,yCACAA,2CACAA,yBACAA,qCACAA,qCACAA,uCANJ,CAAYA,MAAe,KAS3B,SAAYC,GACRA,mCACAA,qCACAA,iCAHJ,CAAYA,MAAc,KEbnB,IAAMmB,EAAb,WAII,WAAoBC,GAAc,uBAAd,KAAAA,YAFZ,KAAAjD,cAAsC,IAAIC,0BAG9CtB,KAAKuE,UAAYC,uBAAUpD,EAAoBpB,KAAKsE,WAL5D,sDAQW,SAAgBG,EACnB7G,GAAiC,WAEjC,OAAO,IAAI8G,QAAJ,yDAAY,WAAO5E,EAAS6E,GAAhB,yGACM,EAAKC,4BADX,OACXpD,EADW,OAEX3E,EAAyB,GAE1B2E,GAAYA,EAASxF,OAAS,IAC7Ba,EAAS2E,EAASoC,QAAO,SAACiB,EAAMC,EAAOC,GAAd,QACpBN,GAAaI,EAAKG,aAAeP,MACjC7G,GAAOiH,EAAKI,OAASrH,OAI9BkC,EAAQjD,GAXO,2CAAZ,2DAXf,6BA0BY,SAAgB0E,EACpBkD,EACA7G,GAAiC,WAEjC,OAAO,IAAI8G,QAAJ,yDAAY,WAAO5E,EAAS6E,GAAhB,yGACM,EAAKC,4BADX,cACXpD,EADW,OAEX0D,EAAiC,GAEjCT,GAAe7G,GAIfuH,IAAEC,OAAO5D,GAAU,SAACqD,GAAD,QACdJ,GAAaI,EAAKG,aAAeP,MACjC7G,GAAOiH,EAAKI,OAASrH,MAG1BsH,EAAiBC,IAAEE,OAAO7D,EAAUD,IARpC2D,EAAiB3D,EALN,SAiBT,EAAKgD,UAAUe,gBAAgBJ,GAjBtB,OAmBfpF,IAnBe,2CAAZ,2DA9Bf,uCAsDY,WAAyB,WAC7B,OAAO,IAAI4E,QAAJ,yDAAY,WAAO5E,EAAS6E,GAAhB,yFACXY,EAAuB,EAAKhB,UAAUiB,aAEtChE,EAA2B,GAE5B+D,IACC/D,EAAWC,KAAKgE,MAAMF,IAG1BzF,EAAQ0B,GATO,2CAAZ,6DAvDf,KC8BA,6BACA,QACA,WAEA,SAASkE,IACT,cAEA,OACA9E,6BACAC,0BACAJ,8CAAA,gBAIe,OACf7C,WACApC,KAFA,WAGA,OACAkF,yCACAC,WACAgF,kBAGAC,UACAnF,WADA,WAEA,8CAEAoF,YAJA,WAKA,OACA,uCAIAC,SACAC,kBADA,WAEA,iBAEAC,gCAJA,SAIA3H,GACA,qBAEA4H,0BAPA,oEAOAT,GAPA,iGAQAU,qBARA,oGAWAC,oBAXA,6KAYAC,oBACAC,KAAA,4BACAC,OAAA,YAEA,OADAC,gDACA,MAhBA,cAYA1J,EAZA,gBAmBAqJ,qBAnBA,wGAsBAM,sBAtBA,oEAsBAC,GAtBA,8FAuBAC,EAAAvB,wBACA,wCACAN,gCAGA,uCA5BA,kBA8BA4B,GA9BA,0GAmCAE,QAtDA,WAuDAC,oCACA,yDACA,uEACA,wEAGAC,cA7DA,WA8DAD,sCACA,iCACA,mCACA,yCAGAE,YACAC,qCACAC,2BC1H8T,I,kCCS1TC,EAAY,eACd,EACA,EACA9F,GACA,EACA,KACA,KACA,MAIa,EAAA8F,E,gCCpBX,EAAS,WAAa,IAAIlH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,UAClH,EAAkB,G,+dCYtB,IAAqBgG,EAAI,wIAASrE,cAAbqE,EAAI,gBAJxBC,eAAU,CACTL,WAAY,MAGOI,OCbTE,EAcAC,GDDSH,KEb0W,MCO3X,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAInH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,aAAa,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIyH,cAAcrH,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,QAAQ,QAAUP,EAAI0H,iBAAiB,WAAU,KAAQtH,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACf,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,cAAcP,EAAI2H,YAAY,UAAY,WAAW,YAAc,aAAa,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,eAAe3H,EAAI4H,eAAe,mBAAqB5H,EAAI6H,mBAAmB,YAAc,kBAAkB,MAAQ7H,EAAI8H,eAAe,aAAe9H,EAAI+H,mBAAmB,SAAW/H,EAAIgI,qBAAqBC,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,GAAQ,sBAAsB,SAASA,GAAQlI,EAAI+H,mBAAmBG,GAAQ,uBAAuB,SAASA,GAAQlI,EAAI+H,mBAAmBG,MAAW9H,EAAG,YAAY,CAAC+H,IAAI,cAAchH,YAAY,oBAAoBZ,MAAM,CAAC,cAAcP,EAAIoI,WAAW,UAAY,UAAU,YAAc,YAAY,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,eAAepI,EAAI4H,eAAe,YAAc,kBAAkB,MAAQ5H,EAAIqI,cAAc,aAAerI,EAAIsI,kBAAkB,SAAWtI,EAAIgI,qBAAqBC,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqI,cAAcH,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIsI,kBAAkBJ,GAAQ,uBAAuB,SAASA,GAAQlI,EAAIsI,kBAAkBJ,MAAYlI,EAAI8H,gBAAkB9H,EAAIuI,eAAiBvI,EAAIuI,cAActM,OAAQmE,EAAG,gBAAgB,CAAC+H,IAAI,iBAAiBhH,YAAY,oBAAoBZ,MAAM,CAAC,MAAQP,EAAIuI,cAAc,UAAY,QAAQ,YAAc,OAAO,kBAAiB,EAAK,MAAQvI,EAAIwI,cAAc,SAAWxI,EAAIgI,qBAAqBC,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwI,cAAcN,MAAWlI,EAAIyI,KAAKrI,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,MAAQP,EAAI0I,SAAS,MAAQ1I,EAAI2I,gBAAgB,YAAc3I,EAAI4I,qBAAqB,QAAU5I,EAAI6I,kBAAkB,kBAAiB,EAAK,sBAAqB,EAAK,YAAc7I,EAAI4H,eAAe,gBAAgB5H,EAAI8I,cAAcb,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI2I,gBAAgBT,MAAW9H,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,eAAe,QAAUP,EAAI6I,mBAAmBZ,GAAG,CAAC,MAAQjI,EAAI+I,oBAAoB,GAAI/I,EAAIgJ,gBAAkBhJ,EAAIiJ,cAAe7I,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,2BAA2B,CAACP,EAAIuH,GAAG,gDAAgDvH,EAAIyI,KAAOzI,EAAIkJ,kBAA4jBlJ,EAAIyI,KAA7iBrI,EAAG,cAAc,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,OAAQ0B,EAAIqJ,iBAAkBC,WAAW,sBAAsBnB,IAAI,aAAa5H,MAAM,CAAC,GAAK,iBAAiB,UAAW,EAAK,WAAaP,EAAIgI,oBAAoB,UAAYhI,EAAIuJ,gBAAmBvJ,EAAIgJ,gBAAkBhJ,EAAIiJ,cAAe,WAAa,aAAa,QAAU,mCAAmChB,GAAG,CAAC,oBAAoBjI,EAAIwJ,gBAAgB,SAAWxJ,EAAIyJ,iBAAiB,mBAAmBzJ,EAAI0J,YAAY,kBAAkB,SAAUC,GAAQ,OAAO3J,EAAI4J,cAAcD,QAAsB,GAAGvJ,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAqB,kBAAEsJ,WAAW,uBAAuB,CAAClJ,EAAG,KAAK,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,kBAAkB,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,IAAI,MAAQP,EAAI6J,mBAAmBzJ,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,iBAAiB,CAACG,MAAM,CAAC,qBAAoB,EAAK,mBAAkB,EAAK,iBAAiB,YAAY,CAACH,EAAG,MAAM,CAACe,YAAY,8BAA8B,IAAI,GAAGf,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,mCAAmC,CAACH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAc,CAAEE,MAAO,4BAA6B,YAAY,QAAQ,MAAQ,QAAQ,aAAa,QAAQ,OAAS,QAAQ,SAAW,CAAEqJ,GAAI,MAAOC,GAAI,MAAOC,GAAI,mCAAoC,QAAUhK,EAAIgI,sBAAwBhI,EAAI6I,kBAAkB,QAAU,mBAAmB,GAAGzI,EAAG,iBAAiB,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,SAAU,EAAM,aAAY,EAAK,aAAa,QAAQ0H,GAAG,CAAC,iBAAiBjI,EAAIiK,mBAAmB7J,EAAG,MAAM,CAACe,YAAY,WAAW,CAAEnB,EAAoB,iBAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,IAAMP,EAAIkK,YAAY,aAAalK,EAAImK,kBAAkB,iBAAgB,EAAM,mBAAkB,EAAM,iBAAgB,EAAM,oBAAoB,CAAEC,aAAa,IAAQnC,GAAG,CAAC,OAASjI,EAAIqK,iBAAiB,sBAAsBrK,EAAIsK,oBAAoB,gBAAgBtK,EAAIuK,uBAAuB,eAAevK,EAAIwK,sBAAsB,gBAAgBxK,EAAIyK,gBAAgB1J,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,4BAA4BqC,GAAG,SAASkH,GACjkJ,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACK,MAAM,CAAE,kBAAmBhF,EAAKiP,cAAgBjP,EAAKiP,aAAaC,MAAK,SAAU5O,GAAK,MAAkB,kBAAXA,EAAE8B,MAA4B9B,EAAEuC,MAAQ,MAAQiC,MAAM,CAAC,GAAK,SAAS,CAACP,EAAIuH,GAAG,eAAevH,EAAIwH,GAAGxH,EAAI4K,iBAAiBnP,IAAO,oBAAoB,MAAK,EAAM,YAAY,CAAC2E,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAc,EAAE,QAAU,WAAW,aAAa,WAAW,sBAAsB,+BAA+BP,EAAI6K,GAAI7K,EAAI8K,QAAQjH,QAAO,SAAUlG,GAAK,OAAQA,EAAEoN,uBAAwB,SAASC,GAAQ,OAAO5K,EAAG,YAAY,CAACxB,IAAIoM,EAAOC,QAAQ1K,MAAM,CAAC,KAAOyK,EAAOC,QAAQ,YAAY,SAAS,aAAaD,EAAOC,QAAQ,gBAAgBD,EAAOE,WAAW,iBAAgB,EAAM,mBAAkB,QAAWlL,EAAI6K,GAAI7K,EAAI8K,QAAQjH,QAAO,SAAUlG,GAAK,OAAOA,EAAEoN,uBAAwB,SAASC,GAAQ,OAAO5K,EAAG,YAAY,CAACxB,IAAIoM,EAAOC,QAAQ1K,MAAM,CAAC,KAAOyK,EAAOC,QAAQ,YAAY,SAAS,aAAaD,EAAOC,QAAQ,iBAAgB,EAAM,iBAAgB,EAAM,mBAAkB,EAAM,QAAUD,EAAOG,uBAAsB/K,EAAG,aAAa,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,gBAAgB,OAAS,eAAe,eAAe,SAASH,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,gBAAgB,OAAS,2BAA2B,eAAe,WAAWH,EAAG,gBAAgB,CAACG,MAAM,CAAC,OAAS,mBAAmB,eAAe,UAAU,IAAI,GAAGP,EAAIyI,MAAM,GAAIzI,EAAoB,iBAAEI,EAAG,MAAM,CAACgL,YAAY,CAAC,MAAQ,QAAQ,gBAAgB,OAAO,cAAc,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,UAAU0H,GAAG,CAAC,MAAQjI,EAAIqL,iBAAiBrL,EAAIuH,GAAG,YAAYnH,EAAG,YAAY,CAAC+H,IAAI,eAAe5H,MAAM,CAAC,KAAO,UAAU,KAAO,UAAU0H,GAAG,CAAC,MAAQjI,EAAIsL,kBAAkB,GAAGtL,EAAIyI,KAAKrI,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAc,CAAEE,MAAO,qBAAsB,YAAY,QAAQ,MAAQ,QAAQ,aAAa,QAAQ,OAAS,QAAQ,QAAUT,EAAIuL,iBAAiB,QAAU,cAAc,SAAU,EAAK,gBAAgB,uBAAuB,IACj+D,GAAkB,G,6KCUTC,GAAb,WAGE,oCACEvL,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,gBAJnD,sGAOE,8GACenD,KAAK0D,OAAOzF,IAAI,IAD/B,wFAPF,mJAWE,2HAA0BuN,EAA1B,yCACsBxL,KAAKyL,SAD3B,cACMC,EADN,OAEM7O,EAAS6O,EAAQrM,KAAkB,SAAA3B,GACrC,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAGpCL,GACF3O,EAAOiP,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAPzC,kBAUSxB,GAVT,gDAXF,2IAwBE,8GACemD,KAAK0D,OAAOzF,IAAI,cAD/B,wFAxBF,uJA4BE,oHACsB+B,KAAK+L,cAD3B,cACML,EADN,yBAESA,EAAQrM,KAAkB,SAAA3B,GAC/B,MAAO,CACLiO,KAAMjO,EAAEkO,WACRvN,MAAOX,EAAEmO,cALf,gDA5BF,kJAsCE,WAAyBG,GAAzB,iGACehM,KAAK0D,OAAOzF,IAAZ,WAAoB+N,EAApB,YADf,wFAtCF,2IA0CE,WAAiBA,GAAjB,iGACehM,KAAK0D,OAAOzF,IAAZ,WAAiC+N,EAAjC,aADf,wFA1CF,uJA8CE,WAA6BA,GAA7B,yGACsBhM,KAAKiM,WAAWD,GADtC,cACME,EADN,OAEMC,EAAchH,IAAEiH,KAAKF,EAAQ7M,KAAI,SAAA5B,GAAC,OAAIA,EAAE4O,eAF9C,kBAGSF,EAAY9M,KAAkB,SAAA5B,GACnC,MAAO,CAAEkO,KAAMlO,EAAGY,MAAOZ,OAJ7B,gDA9CF,sJAsDE,WAA4BuO,GAA5B,iGACehM,KAAK0D,OAAOzF,IAAZ,WAAoB+N,EAApB,mBADf,wFAtDF,sJA0DE,WAA4BA,EAAgBM,GAA5C,iGACetM,KAAK0D,OAAOK,SAAZ,WAAyBiI,EAAzB,kBAAmDM,GADlE,wFA1DF,2JA8DE,WAA+BN,EAAgBM,GAA/C,iGACetM,KAAK0D,OAAO6I,QAAZ,WAAwBP,EAAxB,kBAAkDM,GADjE,wFA9DF,mJAkEE,WAAuBN,GAAvB,iGACehM,KAAK0D,OAAOzF,IAAZ,WAAoB+N,EAApB,aADf,wFAlEF,oJAsEE,WAA0BA,EAAgBQ,GAA1C,iGACexM,KAAK0D,OAAO6I,QAAZ,WAAwBP,EAAxB,WAA2CQ,GAD1D,wFAtEF,+IA0EE,WAAmBC,GAAnB,iGACezM,KAAK0D,OAAOK,SAAS,UAAW0I,GAD/C,wFA1EF,mJA8EE,WAAyBT,EAAgBU,GAAzC,iGACe1M,KAAK0D,OAAOiJ,YAAZ,WAA4BX,EAA5B,eAAmDU,GADlE,wFA9EF,gJAkFE,WAAoBV,EAAgBY,EAAsBC,EAAsBC,EAA8BC,GAA9G,kGACMC,EADN,WACgBhB,EADhB,gBAEMiB,EAAuB,GACvBC,EAAgB,GAEL,MAAXN,GACFK,EAAW3Q,KAAX,kBAA2B6Q,mBAAmBP,KAGjC,MAAXC,GACFI,EAAW3Q,KAAX,kBAA2B6Q,mBAAmBN,KAG3B,MAAjBC,GACFG,EAAW3Q,KAAX,wBAAiC6Q,mBAAmBL,KAGrC,MAAbC,GACFE,EAAW3Q,KAAX,oBAA6B6Q,mBAAmBJ,KAG9CE,EAAWjR,OAAS,IACtBkR,EAAQ,IAAH,OAAOD,EAAWnJ,KAAK,OAtBhC,UAyBe9D,KAAK0D,OAAOzF,IAAZ,UAAwC+O,GAAxC,OAA8CE,IAzB7D,0FAlFF,6JA8GE,WAA2BlB,EAAgBY,EAAsBC,EAAsBE,GAAvF,kGACMC,EADN,WACgBhB,EADhB,wBAEMiB,EAAuB,GACvBC,EAAgB,GAEL,MAAXN,GACFK,EAAW3Q,KAAX,kBAA2B6Q,mBAAmBP,KAGjC,MAAXC,GACFI,EAAW3Q,KAAX,kBAA2B6Q,mBAAmBN,KAG/B,MAAbE,GACFE,EAAW3Q,KAAX,oBAA6B6Q,mBAAmBJ,KAG9CE,EAAWjR,OAAS,IACtBkR,EAAQ,IAAH,OAAOD,EAAWnJ,KAAK,OAlBhC,SAqBe9D,KAAK0D,OAAOzF,IAAZ,UAAyC+O,GAAzC,OAA+CE,IArB9D,yFA9GF,uECRaE,GAAb,WAGE,oCACEpN,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,eAJnD,sGAOE,mHAAa6I,EAAb,oCAA0CqB,EACnCrB,EADP,gCAEiBhM,KAAK0D,OAAOzF,IAAI,IAFjC,+DAIiB+B,KAAK0D,OAAOzF,IAAZ,oBAA6B+N,IAJ9C,yFAPF,mJAeE,WAA0BA,GAA1B,8GAA2CR,IAA3C,0CACqBxL,KAAKyL,OAAOO,GADjC,cACMsB,EADN,OAEMzQ,EAASyQ,EAAOjO,KAAkB,SAAAkO,GACpC,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,YAGnCjC,GACF3O,EAAOiP,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAPzC,kBAUSxB,GAVT,gDAfF,0IA4BE,WAAgB6P,GAAhB,0GAA8BV,EAA9B,oCAA2DqB,EAA3D,SACerN,KAAK0D,OAAOiJ,YAAZ,yBAA0CX,GAAYU,GADrE,wFA5BF,iECAagB,GAAb,+CACU,KAAAhK,OAAgC,IAAIC,2BAAsBR,EAAO,yBAD3E,sGAGE,8GACenD,KAAK0D,OAAOzF,IAA0B,IADrD,wFAHF,mIAOE,WAAU0P,GAAV,iGACe3N,KAAK0D,OAAOzF,IAAZ,oCAA6C0P,IAD5D,wFAPF,uIAWE,WAAajB,GAAb,iGACe1M,KAAK0D,OAAOiJ,YAAZ,UAAmCD,GADlD,wFAXF,uIAeE,WAAaiB,GAAb,iGACe3N,KAAK0D,OAAOQ,YAAYC,oBAAeyJ,MAAvC,WAAkDD,IADjE,wFAfF,iECQM,SAAUE,KACd,MAAO,CACLC,eAAgB,GAChBC,uBAAwB,GACxBC,8BAA+B,GAC/BC,4BAA6B,KPlBjC,SAAY7G,GACRA,8BACAA,4BACAA,oCACAA,kCACAA,8BACAA,0BACAA,wEACAA,4BACAA,gCACAA,gDACAA,wDAXJ,CAAYA,MAA6B,KAczC,SAAYC,GACRA,yBACAA,wBACAA,gCACAA,6BACAA,yBACAA,qBACAA,uEACAA,uBACAA,2BAEAA,4CACAA,oDAZJ,CAAYA,QAAmC,KQHxC,IAAM6G,GAAb,+CACE,KAAAC,OAASN,KADX,oDAGE,WACE,IAAIO,EAAepO,KAAKqO,eAAiBrO,KAAKsO,eAC9C,OAAwB,IAAjBF,EAAqB,EAAIpO,KAAKqO,eAAiBD,MAL1D,K,aCIaG,GAAb,WAGE,oCACEvO,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJnD,iHAOS,WAAwB6I,GAAxB,iGACQhM,KAAK0D,OAAOzF,IAAZ,uBAAsC+N,EAAtC,qBADR,wFAPT,kJAWS,WAAwBA,GAAxB,iGACQhM,KAAK0D,OAAOzF,IAAZ,uBAAwC+N,EAAxC,oBADR,wFAXT,sJAeS,WAA4BA,EAAgBwC,GAA5C,8FACCxB,EADD,2BAC2BhB,EAD3B,sBAGQhM,KAAK0D,OAAOQ,YAA2BC,oBAAeC,KAAM4I,EAAKwB,GAHzE,wFAfT,mJAuBE,WAAuBxC,EAAgByC,GAAvC,8FACMzB,EADN,uBAC4BhB,EAD5B,YAEgB,MAAVyC,IACFzB,GAAO,WAAJ,OAAeyB,IAHtB,SAMezO,KAAK0D,OAAOzF,IAA4B+O,GANvD,wFAvBF,yJAgCS,WAA6BhB,GAA7B,iGACQhM,KAAK0D,OAAOzF,IAAZ,uBAAmD+N,EAAnD,oBADR,wFAhCT,uJAoCE,WAA6BA,GAA7B,iGACehM,KAAK0D,OAAOzF,IAAZ,uBAA4C+N,EAA5C,oBADf,wFApCF,6JAwCS,WAAmCA,GAAnC,iGACQhM,KAAK0D,OAAOzF,IAAZ,uBAAmD+N,EAAnD,0BADR,wFAxCT,gJA4CE,WAAsBY,GAAtB,iGACe5M,KAAK0D,OAAOzF,IAAZ,uBAAiD2O,IADhE,wFA5CF,kJAgDS,WAAwB8B,GAAxB,iGACQ1O,KAAK0D,OAAOQ,YAAYC,oBAAeyJ,MAAvC,2BAAkEc,EAAlE,mBADR,wFAhDT,+IAoDS,WAAqB9B,GAArB,iGACQ5M,KAAK0D,OAAOzF,IAAZ,uBAAwD2O,EAAxD,iBADR,wFApDT,gJAwDS,WAAsBA,GAAtB,iGACQ5M,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,uBAA6DwI,EAA7D,gBADR,wFAxDT,iJA4DS,WAAuBA,GAAvB,iGACQ5M,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,uBAA6DwI,EAA7D,iBADR,wFA5DT,oJAgES,WAA0BA,GAA1B,iGACQ5M,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,uBAA6DwI,EAA7D,oBADR,wFAhET,4IAoES,WAAkBZ,GAAlB,iGACQhM,KAAK0D,OAAOK,SAAS,gBAAiBiI,GAD9C,wFApET,8IAwES,WAAoBY,GAApB,iGACQ5M,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,uBAA6DwI,EAA7D,cADR,wFAxET,4IA4ES,WAAkBA,EAAepR,GAAjC,iGACQwE,KAAK0D,OAAOiL,QAAkBxK,oBAAeyK,IAA7C,uBAAkEhC,GAAWpR,GADrF,wFA5ET,uJAgFS,WAA2BwQ,GAA3B,iGACChM,KAAK0D,OAAOQ,YAAYC,oBAAeyK,IAAvC,uBAA4D5C,EAA5D,gBADD,gDAhFT,kJAoFS,WAAwBiB,GAAxB,iGACQjN,KAAK0D,OAAOiJ,YAAiC,0BAA2BM,GADhF,wFApFT,uJAwFS,WAA6BL,GAA7B,iGACQ5M,KAAK0D,OAAOzF,IAAZ,8CAA2E2O,IADnF,wFAxFT,gJA4FS,WAAsBiC,GAAtB,iGACQ7O,KAAK0D,OAAOQ,YAAYC,oBAAe2K,OAAQ,iCAAkCD,GADzF,wFA5FT,2IAgGE,WAAiBjC,EAAeF,GAAhC,iGACe1M,KAAK0D,OAAOiJ,YAAZ,uBAA4DC,EAA5D,iBAAoFF,GADnG,wFAhGF,qJAoGE,WAAyBE,GAAzB,uGACsB5M,KAAK0D,OAAOzF,IAAZ,uBAA2D2O,EAA3D,uBADtB,cACMmC,EADN,OAEEA,EAAQC,SAAQ,SAAC9Q,EAAGpC,GAClBoC,EAAE+Q,wBAA0BnT,EAAI,KAHpC,kBAMSiT,GANT,gDApGF,kJA8GE,WAAwBnC,GAAxB,uGAC6B5M,KAAK0D,OAAOzF,IAAZ,uBAAoD2O,EAApD,qBAD7B,cACMsC,EADN,yBAESA,GAFT,gDA9GF,8IAoHE,WAAoBtC,GAApB,iGACe5M,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,uBAA6DwI,EAA7D,oBADf,wFApHF,iECfqBuC,G,wGAGZ,SAAqB9Q,GAC1B,OAAgB,MAATA,GAAkC,IAAjBA,EAAMrC,S,iCAGzB,SAA2BqC,GAChC,GAAa,MAATA,EACF,OAAOA,EAGT,IAAIyG,EAAQzG,EAAM+Q,YAAY,KAC9B,IAAe,IAAXtK,EACF,OAAOzG,EAGT,IAAK,IAAIvC,EAAIgJ,EAAQ,EAAGhJ,EAAIuC,EAAMrC,OAAQF,IACxC,GAAiB,MAAbuC,EAAMvC,GACR,OAAOuC,EAIX,OAAOA,EAAMgR,OAAO,EAAGvK,O,KAtBFqK,SAAgB,G,0eCuQzC,IAAqBG,GAAiB,+CAiHpC,iDACE,eAjHK,EAAAC,MAMH,GAIJ,EAAA/H,UAAoBgI,GAAkBC,iBACtC,EAAA1H,qBAA+B,EAC/B,EAAAa,mBAA6B,EAC7B,EAAAQ,kBAA4B,EACpB,EAAAsG,uBAAyB,IAAIhC,GACrC,EAAAzE,mBAA6B,EAC7B,EAAA0G,uBAAiC,EAMjC,EAAAlI,iBAA2B,GAC3B,EAAAmI,mBAA0B,CACxBC,KAAO,GACPC,QAAU,IAEZ,EAAAC,eAAiB,EAAKH,mBAQd,EAAAI,gBAA+B,IAAIC,IAG3C,EAAAhG,YAAsB,GACtB,EAAAC,kBAA4B,GAE5B,EAAAoB,kBAA4B,EAC5B,EAAA4E,UAAoB,GAEpB,EAAAC,OAAe,GACf,EAAAC,kBAA0B,GAC1B,EAAAvF,QAAsC,GACtC,EAAApC,SAAwC,GAUhC,EAAA/E,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IAChD,EAAAC,cAAgB,IAAI/E,GACpB,EAAAgF,aAAe,IAAInD,GACnB,EAAAoD,aAAe,IAAIjC,GAE3B,EAAA7G,YAA2B,IAAI+I,KAAY,CACzCC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAO,EAAK4D,cAAc7E,YAI9B,EAAA5D,eAAuB,GACvB,EAAAC,mBAA6B,GAC7B,EAAAM,cAAsB,GACtB,EAAAC,kBAA4B,GAC5B,EAAAE,cAAsB,GACtB,EAAAQ,eAAyB,EACzB,EAAAT,cAAqC,GACrC,EAAAI,gBAA6C,IAAIwF,GAkCzC,EAAA0C,QAAkB,OAO1B,EAAAC,sBAAqCxD,EAoCrC,EAAAlF,WAA0B,IAAIsI,KAAY,CACxCC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAO,EAAK6D,aAAa9E,OAAO,EAAKqF,6BA2PzC,EAAAC,eAAwB,GArStB,EAAK5I,WAAa,EAAK6I,kBAFzB,EAjHoC,oDAmBpC,WACE,OAAqC,IAA9BhR,KAAK2P,yBApBsB,+BA+BpC,SAAkBsB,EAAaC,GAC1BD,IACCjR,KAAK+P,eAAiBkB,KAjCQ,wBAkDpC,WACE,OAASjR,KAAKuP,MAAM4B,aAAqBC,WAnDP,wBAsDpC,WACE,OAASpR,KAAKuP,MAAM8B,gBAA+BD,WAvDjB,0BA+EpC,WACE,YAC0B/D,IAAxBrN,KAAK6H,gBACmB,OAAxB7H,KAAK6H,gBACmB,KAAxB7H,KAAK6H,iBAnF2B,yBAuFpC,WACE,YACyBwF,IAAvBrN,KAAKoI,eAAsD,OAAvBpI,KAAKoI,eAAiD,KAAvBpI,KAAKoI,gBAzFxC,8BA6F5B,WACN,IAAI1H,EAAQ8O,GAAkBC,iBAEzBN,GAAOmC,cAActR,KAAK8H,sBAC7BpH,GAAS,QAAJ,OAAYV,KAAK8H,oBAEjBqH,GAAOmC,cAActR,KAAKqI,qBAC7B3H,GAAS,MAAJ,OAAUV,KAAKqI,qBAIxBrI,KAAKwH,UAAY9G,IAxGiB,4BA2G5B,WACNV,KAAKwH,UAAYgI,GAAkBC,mBA5GD,iCAuHpC,SAAoB8B,GAClBvR,KAAK6Q,iBAAmBU,IAxHU,yFA2HpC,WAAyB7R,GAAzB,4FACEM,KAAKwR,oBAAoB9R,EAAE+R,aAAe/R,EAAE+R,aAAa5F,SAAW,IACpE7L,KAAKmI,WAAanI,KAAKgR,kBAEvBhR,KAAKuI,cAAgB,IACjBvI,KAAK6Q,iBALX,iCAMwB7Q,KAAKwQ,aAAakB,uBAAuB1R,KAAK6Q,kBANtE,OAMQc,EANR,OAOI3R,KAAKsI,cAAgBqJ,EAAQtS,KAAI,SAAAuS,GAC/B,MAAO,CACLjG,KAAMiG,EAAEC,UACRxT,MAAOuT,EAAEE,YAGTC,EAAYJ,EAAQK,MAAK,SAAAJ,GAAC,OAAyB,MAArBA,EAAEK,mBACpCjS,KAAKuI,cAAgBwJ,EAAYA,EAAUD,QAAU,GAdzD,iDA3HoC,8FA6IpC,WACE,OAAO9R,KAAK6Q,mBA9IsB,6BAiJ5B,WAAe,WACrB,OAAO,IAAIJ,KAAY,CACrBC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAO,EAAK6D,aAAa9E,OAAO,EAAKoF,uBArJP,0CAiKpC,WACE,IAAIqB,EAAOC,SAASC,uBAAuB,0BAA0B,GACrEF,EAAKG,UAAY,KAnKiB,kCAsKpC,WAAoB,WAClBC,YAAW,WACT,IAAIC,EAAoB,kCACpBC,EAA0BL,SAASC,uBAAuBG,GAAmB,GAC7EL,EAAOC,SAASC,uBAAuB,0BAA0B,GACrEF,EAAKO,YAAYD,GAEjB,EAAKE,aAAY,KAChB,OA9K+B,yBAiLpC,SAAYnB,GACVvR,KAAKiJ,kBAAoBsI,IAlLS,4BAqLpC,WACE,OAAOrS,OAAOyT,YAAc,MAtLM,mBAyLpC,WAAiC,IAA3BC,EAA2B,wDAmB/B,GAlBA5S,KAAK+Q,eAAiB,GACtB/Q,KAAK+H,qBAAsB,EAC3B/H,KAAK4I,mBAAoB,EACzB5I,KAAKoJ,kBAAmB,EACxBpJ,KAAKiJ,mBAAoB,EACzBjJ,KAAK4P,mBAAqB,CACxBC,KAAM,GACNC,QAAS,IAEX9P,KAAK6S,aAAavG,OAAO,QAAStM,KAAK4P,mBAAmBE,SAC1D9P,KAAK6S,aAAavG,OAAO,UAA8C,IAAnCtM,KAAK4P,mBAAmBE,SAC5D9P,KAAKiK,YAAc,GACnBjK,KAAKkK,kBAAoB,GACzBlK,KAAKkQ,UAAY,GACjBlQ,KAAK6K,QAAU,GACf7K,KAAKoI,cAAgB,GACrBpI,KAAK+I,eAAgB,EACrB/I,KAAK8S,+BACDF,GAAc5S,KAAKuP,MAAMwD,WAAY,CACvC,IAAIC,EAAehT,KAAKuP,MAAMwD,WAC9BC,EAAaC,oBAEfjT,KAAK6K,QAAU,GACf7K,KAAKoI,cAAgB,GACrBpI,KAAKgQ,gBAAkB,IAAIC,IAC3BjQ,KAAKkT,iBACLlT,KAAK2P,uBAAyB,IApNI,oCAuNpC,SAAuBjQ,GACrB,GAAkB,SAAdA,EAAEyT,SAAsBzT,EAAElE,KAAK4X,SAAU,CAC3C,IAAIC,EAAa3T,EAAElE,KAAK8X,QAAQtB,MAC9B,SAACtU,GAAD,OAAYA,EAAE6V,cAAgB7V,EAAEsN,UAAYtL,EAAEqL,OAAOnN,QAEnDyV,IACF3T,EAAE8T,YAAYC,UAAUC,IAAI,SAC5BhU,EAAE8T,YAAY9S,MAAQ2S,EAAWE,iBA9NH,6BAmOpC,SAAgB7T,GACdM,KAAKyH,iBAAmB,KApOU,2BAuOpC,SAAciC,MAvOsB,2BA2OpC,WACE1J,KAAK2T,mBACL3T,KAAK4T,OAAM,KA7OuB,8BAgP5B,WACF5T,KAAKoQ,mBACPpQ,KAAK0D,OAAOQ,YACVC,oBAAe2K,OADjB,gCAE2B9O,KAAKoQ,kBAFhC,YAlPgC,2BAyPpC,WAAa,WACXpQ,KAAKsL,kBAAmB,EACxBtL,KAAK0D,OACFQ,YAAYC,oBAAeyJ,MAAO5N,KAAKkQ,WACvC7J,MAAK,SAAAwN,GACJ,EAAKvI,kBAAmB,EACxB,IAAIwE,EAAU,gHACV+D,GAAYA,EAASC,UACvBhE,EAAU+D,EAASC,SAErBC,oBAAQjE,EAAS,WAAWzJ,MAAK,kBAAM,EAAKuN,OAAM,SAEnDtN,OAAM,SAAAuN,GACL,IAAIG,EACF,kGACEH,GAAYA,EAASC,UACvBE,EAAeH,EAASC,SAE1B,EAAKlE,mBAAqB,CACxBC,KAAM,QACNC,QAASkE,GAEX,EAAK1I,kBAAmB,EAExB,EAAKuH,aAAavG,OAAO,QAAS,EAAKsD,mBAAmBE,SAC1D,EAAK+C,aAAavG,OAAO,UAA8C,IAAnC,EAAKsD,mBAAmBE,YAE7DmE,SAAQ,WACP,EAAKjE,gBAAkB,IAAIC,SArRG,8BAyRpC,SAAiBvQ,GAEf,GAAGA,EAAElE,MAAQkE,EAAElE,KAAKkP,MAAK,SAAC/M,GAAD,OAAYA,EAAEuW,WAAU,CAC/C,IAAIC,EAAmBzU,EAAElE,KAAKoI,QAAO,SAACjG,GAAD,OAAYA,EAAEuW,QAAQ,GAAK,KAC7DC,GAAoBA,EAAiBnY,SACtCgE,KAAKgQ,gBAAkB,IAAIC,IAAYkE,EAAiB9U,KAAI,SAAC+U,GAAD,OAAYA,EAAEzV,YA9R5C,iCAmSpC,SAAoBe,GACT,MAALA,GAAwB,MAAXA,EAAE2U,QACjB3U,EAAE2U,MAAMvE,QAAU,uIArSc,6BAySpC,SAAgBpQ,GACD,SAAVA,EAAE9B,OACH8B,EAAEuH,UAAUqN,WAAWC,YAAY,kBACnC7U,EAAEuH,UAAUqN,WAAWC,YAAY,kBACnC7U,EAAEuH,UAAUqN,WAAWC,YAAY,gBAChC7U,EAAErB,QACgC,WAAhC2B,KAAK4P,mBAAmBC,KACzBnQ,EAAEuH,UAAUqN,WAAWE,SAAS,kBAEM,WAAhCxU,KAAK4P,mBAAmBC,KAC9BnQ,EAAEuH,UAAUqN,WAAWE,SAAS,kBAEM,SAAhCxU,KAAK4P,mBAAmBC,MAC9BnQ,EAAEuH,UAAUqN,WAAWE,SAAS,oBAtTJ,4BA4TpC,SAAe9U,GACb,GAAIA,EAAEuH,UAAUwN,UAAW,CAGzB,IAAIC,EAAehV,EAAEuH,UAAU0N,kBAAoBjV,EAAEuH,UAAU0N,iBAAiB,GAAKjV,EAAEuH,UAAU0N,iBAAiB,GAAGnZ,UAAO6R,EAC5H,GAAoB,MAAhBqH,EACF,OAGF,IAAIE,EAAcF,GAAgBA,EAAaR,SAAWQ,EAAaR,QAAQ,GAAK,EAMhF,GAHJlU,KAAK6U,aAAavI,OAAO,YAAasI,GAG9BA,EAeF5U,KAAK4P,mBAAqB,CACtBC,KAAM,UACNC,QAAS,kCAjBE,CAEb,IAAIgF,EAAc,oJAEhB9U,KAAKgQ,gBAAgB+E,KAAO,IAC9BD,EAAcA,EAAc,SAAWE,MAAMC,KAAKjV,KAAKgQ,iBAAiBlM,KAAK,WAG7E9D,KAAK4P,mBAAqB,CACxBC,KAAM,UACNC,QAASgF,GAYjB9U,KAAK6S,aAAavG,OAAO,QAAStM,KAAK4P,mBAAmBE,SAC1D9P,KAAK6S,aAAavG,OAAO,UAA8C,IAAnCtM,KAAK4P,mBAAmBE,YAlW9B,8BAsWpC,SAAiBtU,GACf,IAAI0Z,EAAqB,GACQ,MAA9B1Z,EAAK2Z,wBACND,GAAsB1Z,EAAK2Z,uBAE1B3Z,EAAK4Z,wBACNF,GAAsBA,EAAmBlZ,OAAS,EAC9C,KAAOR,EAAK4Z,sBACZ5Z,EAAK4Z,uBAGX,IAAIC,EAAkB,GACtB,GAAG7Z,EAAKiP,aAAc,CACpB,IAAI6K,EAAmB9Z,EAAKiP,aAAauH,MAAK,SAAClW,GAAD,MAAuB,kBAAXA,EAAE8B,QACzD0X,GAAoBA,EAAiBjX,MAAQ,IAC9CgX,GAAmB,eAAJ,OAAmBC,EAAiBjX,QAErD,IAAIkX,EAAmB/Z,EAAKiP,aAAauH,MAAK,SAAClW,GAAD,MAAuB,kBAAXA,EAAE8B,QAC5D,GAAG2X,GAAoBA,EAAiBlX,MAAQ,EAAG,CACjD,IAAImX,EAAuB,oBAAH,OAAuBD,EAAiBlX,OAChEgX,GAAmBA,EAAgBrZ,OAAS,EACxC,KAAOwZ,EACPA,GAIR,IAAI7J,EAAO,GAAH,OAAMnQ,EAAKuP,OAAO0K,QAAlB,aAA8Bja,EAAKmQ,MAU3C,OARG0J,EAAgBrZ,OAAS,IAC1B2P,GAAQ,KAAJ,OAAS0J,EAAT,MAGHH,EAAmBlZ,OAAS,IAC7B2P,GAAQ,KAAJ,OAASuJ,EAAT,MAGCvJ,IA1Y2B,mCA6YpC,SAAsBjM,GACpB,IAAIgW,EAAehW,EAAEiW,QACjBC,EAAa3Z,OAAO4D,KAAK6V,GAAc,GACvCla,EAAO,CACTqa,4BAA6BnW,EAAEoW,QAAQxC,QAAQtB,MAAK,SAACtU,GAAD,OAAYA,EAAEsN,UAAY4K,KAC3EG,4BACHC,SAAUN,EAAaE,IAEzBlW,EAAEiW,QAAUna,IArZsB,8BAyZpC,SAAiBkO,GAA6D,WAI5E,GAHA1J,KAAKiW,mBAGDvM,EAAKwM,eAAeC,MAAM,GAAI,CAChC,IAAIC,EAAO1M,EAAKwM,eAAeC,MAAM,GACrCnW,KAAK+Q,eAAezU,KAAK8Z,GAG3B,GAC6C,KAA3C1M,EAAK2M,MAAMpP,UAAUqF,OAAO,aAC5BtM,KAAK+Q,eAAe/U,SAAW0N,EAAK4M,WACpC,CACA,IAAIC,EAAQvW,KAAK+Q,eAAe1R,KAAI,SAACmX,GACnC,MAAO,CACLC,OAAQD,EAAEC,OACVC,SAAUF,EAAEG,aAIhB3W,KAAK+H,qBAAsB,EAE3B/H,KAAK0D,OACFiJ,YAAwC,wBAAyB,CAChE4J,MAAOA,EACPvK,SAAUhM,KAAK6H,eACfgF,QAAS7M,KAAKoI,cACdwE,QAAS5M,KAAKuI,gBAEflC,MAAK,SAAA7K,GAEJ8W,YAAW,kBAAM,EAAKsE,sBAAsBpb,EAAKmS,qBAAoB,KACrE,EAAKyC,kBAAoB5U,EAAKmS,kBAC9B,EAAK9C,QAAUrP,EAAK8X,QACpB,EAAK7K,SAAWjN,EAAKqb,eAEjB,EAAKpO,SAASzM,OAAS,IACzB,EAAK0M,gBAAkB,EAAKD,SAAS,OAGxCnC,OAAM,SAAAuN,GACL,EAAKjL,mBAAoB,EACzB,EAAKQ,kBAAmB,EACxB,IAAI4K,EAAe,sBACfH,GAAYA,EAASC,UACvBE,GAAgB,KAAJ,OAASH,EAASC,UAEhC,EAAKrM,iBAAmBuM,KAEzBC,SAAQ,WACP,EAAK6C,6BA3cuB,6BAgdpC,WAAe,WACb9W,KAAK2P,uBAAyB,EAC9B3P,KAAKkQ,UAAY,GACjBlQ,KAAKiK,YAAc,GACnBjK,KAAKkK,kBAAoB,GACzBlK,KAAK4I,mBAAoB,EACzB5I,KAAKoJ,kBAAmB,EACxBpJ,KAAK4P,mBAAqB,CACxBC,KAAM,GACNC,QAAS,IAEX9P,KAAK6S,aAAavG,OAAO,QAAStM,KAAK4P,mBAAmBE,SAC1D9P,KAAK6S,aAAavG,OAAO,UAA8C,IAAnCtM,KAAK4P,mBAAmBE,SAE5D9P,KAAK0D,OAAOQ,YAAYC,oBAAe2K,OAAvC,gCAAwE9O,KAAKoQ,kBAA7E,UACG/J,MAAK,SAAAlB,GACJ,IAAIoR,EAAQ,EAAKxF,eAAe1R,KAAI,SAACmX,GACnC,MAAO,CACL,OAAWA,EAAEC,OACb,SAAaD,EAAEG,aAGnB,EAAKjT,OAAOiJ,YAAwC,wBAAyB,CAC3E4J,MAAOA,EACPvK,SAAU,EAAKnE,eACfgF,QAAS,EAAKzE,cACdwE,QAAS,EAAKrE,cACdwO,OAAQ,EAAKrO,gBAAgByF,SAC5B9H,MAAK,SAAA7K,GAEN8W,YAAW,kBAAM,EAAKsE,sBAAsBpb,EAAKmS,qBAAoB,KACrE,EAAKyC,kBAAoB5U,EAAKmS,kBAC9B,EAAK9C,QAAUrP,EAAK8X,QACpBS,oBAAQ,uBAAwB,cAE/BzN,OAAM,SAAAuN,GACP,EAAKjL,mBAAoB,EACzB,EAAKQ,kBAAmB,EACxB,IAAI4K,EAAe,sBACfH,GAAYA,EAASC,UACvBE,GAAgB,KAAJ,OAASH,EAASC,UAEhC,EAAKrM,iBAAmBuM,UA1fI,mCA+fpC,SAAsB5D,GAAuB,WAC3CpQ,KAAK0P,uBAAuBzR,IAAImS,GAC7B/J,MAAK,SAAA2Q,GAGJ,GAFA,EAAKrH,uBAAyBqH,EAAgBC,oBAE1CD,EAAgBE,YAAc9P,EAA8B+P,SAC9D,EAAKjH,UAAL,gCAA0C8G,EAAgBrJ,mBAC1D,EAAK1D,YAAL,gCAA4C+M,EAAgBrJ,kBAA5D,SACA,EAAKzD,kBAAoB,EAAKD,YAC9B,EAAKrB,mBAAoB,EACzB,EAAKQ,kBAAmB,OAErB,GAAI4N,EAAgBE,YAAc9P,EAA8BgQ,qBAAsB,CACzF,IAAIpD,EAAe,gDACnB,EAAKqD,mBAAmBrD,QAErB,GAAIgD,EAAgBE,YAAc9P,EAA8BkQ,OAAQ,CAC3E,IAAItD,EAAe,yDACnB,EAAKqD,mBAAmBrD,QAIxB1B,YAAW,kBAAM,EAAKsE,sBAAsBxG,KAAoB,KAChEmH,QAAQC,IAAI,qEAthBgB,gCA2hBpC,SAAmBxD,GACjBhU,KAAK4I,mBAAoB,EACzB5I,KAAKoJ,kBAAmB,EACxBpJ,KAAK4P,mBAAqB,CACxBC,KAAM,QACNC,QAASkE,GAEXhU,KAAK6S,aAAavG,OAAO,QAAStM,KAAK4P,mBAAmBE,SAC1D9P,KAAK6S,aAAavG,OAAO,UAA8C,IAAnCtM,KAAK4P,mBAAmBE,SAC5D9P,KAAKyH,iBAAmBuM,IApiBU,yBAuiBpC,SAAYqC,GACV,GAAIA,EAAMhY,OAASgY,EAAMhY,MAAMrC,OAAS,EAAG,CACzC,IAAIyb,EAAgBpB,EAAMhY,MAAM,GAAGT,KAAK8Z,MAAM,KAAKC,MAAMC,cACzD,GACIvB,EAAMhY,MAAgBwZ,OAAM,SAAChT,GAAD,SAC5BA,EAAKjH,KACF8Z,MAAM,KACNC,MACAC,cACAE,SAAS,SAAUL,EAAcK,SAAS,SAEzCjT,EAAKjH,KAAK8Z,MAAM,KAAKC,MAAMC,gBAAkBH,KAiB9C,CACL,IAAIrB,EAAaC,EAAMhY,MAAM,GACzB0Z,EAAM3B,EAAKxY,KAAK8Z,MAAM,KAAKC,MAC/B3X,KAAK+I,mBAAwBsE,IAAR0K,IAA2D,IAAtCA,EAAIH,cAAcI,QAAQ,YAjBpEzR,IACE,CACEuJ,QAAS,wCACTmI,SAAU,CACRlO,GAAI,kBACJD,GAAI,MACJoO,OAAQ,UAGZ,QACA,MAEF7B,EAAMhY,MAAQ,GACdgY,EAAMpP,UAAUqF,OAAO,QAAS,SAOlCtM,KAAK+I,eAAgB,IAzkBW,kCA6kBpC,SAAqBoP,GACnB,OAAIA,EACK,GAAP,OAAUA,EAAQhK,OAAOlJ,KAAzB,cAAmC,IAAMkT,EAAQC,iBAAiBC,UAAlE,6BACIF,EAAQ9J,eADZ,6BAC+C8J,EAAQG,aADvD,mBAGO,KAllByB,0BAslBpC,SAAa9c,GACX,IAAImQ,EAAO3L,KAAK2I,qBAAqBnN,GACrC,MAAO,mCAAqCmQ,EAAO,KAAOA,EAAO,aAxlB/B,GAAS9I,SASrByM,oBAA2B,sBAsBnDtN,gBADCuW,gBAAM,uBACP,uCA/BmBjJ,GAAiB,mBApBrCnI,gBAAU,CACTL,WAAY,CACV0R,uBACAC,2BACAC,+BACAC,wBACAC,wBACAC,8BACAC,0BACAC,yBACAC,wBACAC,0BACAC,0BACAC,8BACAC,gCACAC,8BACAC,gCACAC,sCAGiBjK,cCxQyX,MCS1Y,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAIvP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,mBAAmB,CAACG,MAAM,CAAC,eAAiB,uBAAuB,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,iBAAgB,EAAM,gBAAe,EAAM,kBAAiB,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,sCAAsCH,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,aAAaH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,OAAQ,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,OAAQ,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,QAAU,kBAAkB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,mBAAmB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,qBAAqB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,SAAS,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,aAAa,IAAI,IACtkD,GAAkB,GCDlB,GAAS,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,MAAOJ,EAAkB,eAAEI,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,4BAA4B,CAACH,EAAG,YAAYJ,EAAIyZ,GAAGzZ,EAAI0Z,GAAG,CAACvR,IAAI,WAAW5H,MAAM,CAAC,uBAAuBP,EAAI2Z,mBAAmB,QAAU3Z,EAAI4Z,QAAQ,UAAW5Z,EAAI6Z,iBAAiB5R,GAAG,CAAC,eAAejI,EAAI8Z,WAAW,eAAe9Z,EAAI+Z,YAAY,YAAc/Z,EAAIga,oBAAoB,wBAAwBha,EAAIia,aAAa,gBAAgBja,EAAIka,eAAe,YAAYla,EAAIma,QAAO,GAAOna,EAAIoa,YAAY,CAACha,EAAG,WAAW,CAACG,MAAM,CAAC,qBAAqB,CAAC,GAAI,GAAI,GAAI,KAAK,2BAA0B,EAAK,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,yBAAyBH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,0BAA0B,MAAQ,MAAM,OAAS,IAAI,aAAa,MAAM,aAAaP,EAAIqa,aAAa,YAAYra,EAAIsa,uBAAuBla,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,EAAE,gBAAgB,MAAM,CAACH,EAAG,gBAAgB,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,eAAc,EAAK,UAAW,EAAK,cAAc,cAAc,MAAQ,CAAEqL,KAAM,eAAgB,iBAAiB,CAAE2O,UAAU,EAAMjc,MAAO0B,EAAI8H,eAAgB0S,WAAYxa,EAAI2L,QAAS8O,YAAa,OAAQC,UAAW,YAAata,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,eAAc,EAAK,cAAc,YAAY,iBAAiB,CAAEoa,UAAW,OAAO,CAACva,EAAG,qBAAqB,GAAGA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,eAAc,EAAK,cAAc,cAAc,iBAAiB,CAAEqa,MAAO5a,EAAI6a,aAAaC,YAC3hEC,iBAAiB,EACjBC,eAAe,EACfC,WAAY,gBAAiB,CAAC7a,EAAG,qBAAqB,GAAGA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,gBAAgB,cAAc,cAAc,iBAAiB,CACxJia,WAAY,CACNU,UAAU,EACV9X,MAAO,CACL0M,KAAM,QACNrU,KAAMwE,KAAK4a,aAAaM,gBAGhCJ,iBAAiB,EACjBK,mBAAmB,EACnBT,UAAW,IACXK,eAAe,MACZ5a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,cAAc,iBAAiB,CAAEqa,MAAO5a,EAAI6a,aAAaQ,UAAWN,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaS,aAAcP,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,iBAAiB,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaU,eAAgBR,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaW,WAAYT,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,gBAAgB,cAAc,YAAY,iBAAiB,CAAEkb,kBAAkB,MAAUrb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaa,QAASX,iBAAiB,EAAMC,eAAe,EAAMC,WAAY,gBAAiB,GAAG7a,EAAG,gBAAgB,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,mBAAmB,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAac,iBAAkBZ,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,qBAAqB,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAae,mBAAoBb,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAagB,YAAad,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaiB,YAAaf,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,SAAS,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAakB,OAAQhB,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,MAAOva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAamB,WAAYjB,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,QAAS,IAAI,IAAI,GAAGva,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,qBAAqB,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,OAAQ,EAAK,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,OAAQ,EAAK,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,gBAAgB,QAAU,kBAAkB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,aAAa,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,gBAAgB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,iBAAiB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,OAAO,aAAa,gBAAgB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,UAAU,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,mBAAmB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,qBAAqB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,SAAS,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,KAAO,UAAU,aAAa,WAAW,gBAAgB,CAAEia,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,gBAAgB,CAAEjc,EAAI8H,mBAAoB1H,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,OAAO,aAAa,cAAc,QAAU,eAAe,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,OAAO,aAAa,cAAc,QAAU,cAAc,mBAAkB,MAAS,IAAI,GAAGP,EAAIyI,MAAM,IACj7I,GAAkB,G,8CCZAyT,I,UAAtB,WAGE,WAAYrL,GAAe,uBACtBA,EAAQsL,SAAS,OAClBtL,EAAUA,EAAQxR,MAAM,GAAI,IAE9BY,KAAK0D,OAAS,IAAIC,2BAAsBR,EAA1B,UAAoCyN,IAPtD,sGAUE,WAAapV,GAAb,iGACewE,KAAK0D,OAAOK,SAAS,GAAIvI,GADxC,wFAVF,oIAcE,WAAUgE,GAAV,iGACeQ,KAAK0D,OAAOzF,IAAZ,WAA6BuB,IAD5C,wFAdF,uIAkBE,WAAakN,GAAb,iGACe1M,KAAK0D,OAAOiJ,YAAZ,UAAmCD,GADlD,wFAlBF,qIAsBE,WAAWlN,EAAUhE,GAArB,iGACewE,KAAK0D,OAAOQ,YAAYC,oBAAeyK,IAAvC,WAAgDpP,GAAMhE,GADrE,wFAtBF,yIA0BE,WAAagE,GAAb,iGACeQ,KAAK0D,OAAOQ,YAAYC,oBAAe2K,OAAvC,WAAmDtP,IADlE,wFA1BF,kE,sdCAO,IAAM2c,GAAb,4CACE,uDACQ,yBAFV,+GAKE,WAAsBnQ,GAAtB,iGACehM,KAAK0D,OAAOzF,IAAZ,oBAA6B+N,IAD5C,wFALF,+DAA6CiQ,I,8eC+R7C,IAAqBG,GAAc,4CAqCjC,iDACE,eArCF,EAAA7M,MAEI,GAGJ,EAAA7D,QAA+B,GAC/B,EAAA7D,eAA8B,KAE9B,EAAA+S,aAA2C,IAAIyB,IAC/C,EAAAC,aAAuB,EAMvB,EAAA5C,mBAAyD,CACvD/a,IAAK,qBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAKC,aAAaD,IACvCE,OAAQ,SAAAC,GAAM,OAAI,EAAKC,wBAAwBje,OAAOge,GAAQpW,MAAM,EAAKsW,cACzEC,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKC,wBAAwBG,KAAKne,EAAK+d,GAAQpW,MAAM,EAAKsW,cACnFxX,OAAQ,SAAAzG,GAAG,OAAI,EAAKge,wBAAwBI,OAAOpe,GAAK2H,MAAM,EAAKsW,eAGrE,EAAAhD,eAAkD,CAChDoD,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,MAAO,CACLC,WAAW,EACX1c,MAAO,0BACP2c,MAAO,MACPC,OAAQ,MACRC,QAAS,EAAKnD,eAiGD,EAAAoD,+BAAyC,6FA3FxD,EAAKb,wBAA0B,IAAIR,GAFrC,EArCiC,kDAYjC,WACE,OAAOnc,KAAKyd,OAAOC,OAAO,cAbK,qBA0CjC,WACE1d,KAAK2d,WACL3d,KAAK4d,qBACL5d,KAAKsc,aAAc,IA7CY,iCAiDzB,WACNtc,KAAK4d,uBAlD0B,2FAsDzB,6GAEFC,EAAwB,CAAEjgB,KAA2B,OAArBoC,KAAKyd,OAAO7f,KAAgBoC,KAAKyd,OAAO7f,UAAOyP,GAG/ErN,KAAK6H,iBACPgW,EAASH,OAAS,CAAE1R,SAAUhM,KAAK6H,gBACnC7H,KAAKqa,uBAIH/Q,IAAiBtJ,KAAK6H,eACtBiW,IAAsB9d,KAAK+d,cAC3BC,EAAwB1U,GAAkBwU,GAAuB9d,KAAK6H,iBAAmB7H,KAAK+d,cAG9FzU,IAAmBwU,IAAuBE,EAhBxC,gCAiBEhe,KAAKie,QAAQ3hB,KAAKuhB,GAjBpB,gDAtDyB,yFA2EzB,WAEF7d,KAAK+d,eAAiB/d,KAAK6H,iBAAmB7H,KAAK+d,cACrD/d,KAAK6H,eAAiB7H,KAAK+d,cACjB/d,KAAK+d,gBACf/d,KAAK6H,eAAiB,QAhFO,0FAoFjC,kGACK7H,KAAK6H,eADV,gCAE+B7H,KAAK2c,wBAAwBuB,gBAAgBle,KAAK6H,gBAFjF,OAEI7H,KAAK4a,aAFT,OAEkGuD,aAFlG,gDApFiC,wIA0FzB,6GACF7N,EAAgB,IAAI/E,GADlB,SAEc+E,EAAc7E,SAF5B,OAEFC,EAFE,OAGN1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAJlC,gDA1FyB,mFAkGzB,SAAa0Q,GACfvc,KAAKsc,aACPtc,KAAKoe,yBAEP,IAAIC,EAAe,CAAC,WAAY,IAAKre,KAAK6H,gBAM1C,OALI0U,EAAY3Y,OACd2Y,EAAY3Y,OAAS,CAACya,EAAc,MAAO9B,EAAY3Y,QAEvD2Y,EAAY3Y,OAASya,EAEhBre,KAAK2c,wBAAwB2B,OAAO/B,GAAajW,MAAMtG,KAAK4c,eA5GpC,oCA+GzB,WACJ5c,KAAKsc,aAAc,EACnBtc,KAAKue,SAASC,cACdxe,KAAKue,SAASE,iBAlHe,0BAqHzB,SAAa/e,GAEnB,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KA3HJ,qBA8HvB,SAAQ9gB,EAAcS,GAC9B,OAAOpC,OAAO4D,KAAKG,KAAKka,QAAQlC,QAAQpa,IAAS,EAAIoC,KAAKka,OAAOtc,GAAQS,IA/H1C,yBAoIzB,SAAYxB,GAClB,IAAIiT,EACFjT,GAAUA,EAAOiX,QACbjX,EAAOiX,QACP,0FAON,MAJGhE,EAAQgI,SAAS9X,KAAKwd,kCACvB1N,EAAU9P,KAAKwd,gCAGX1N,IA/IyB,wBAkJjC,SAAWpQ,GACTA,EAAElE,KAAO,CACPqQ,SAAU7L,KAAK6H,kBApJc,0BAwJjC,SAAanI,GACNA,EAAElE,KAAKqQ,WACVnM,EAAElE,KAAKqQ,SAAW,MA1JW,yBA8JjC,SAAYnM,GAIV,GAHAA,EAAEiW,QAAUxQ,IAAEyZ,MAAM,GAAIlf,EAAEoW,QAASpW,EAAEiW,SAGjC3V,KAAK6e,mBAAmBnf,GAAI,CAC9B,IAAIof,EAAa,IAAIpa,SAAQ,SAAC5E,EAAS6E,GACrC,IAAIoa,EAAeC,sBAAQ,2CAAD,OAA4Ctf,EAAEoW,QAAQzJ,WAAtD,gEAAwH3M,EAAEiW,QAAQtJ,WAAlI,KAAiJ,8BAC3K0S,EAAa1Y,MAAK,SAACxJ,GACf,OACWiD,GADPjD,SAOV6C,EAAEuf,OAASH,KA7KkB,gCAiLjC,SAAmBpf,GACjB,IAAI7C,GAAS,EACTqiB,EAAgBxf,EAAEoW,QAAQzJ,WAC1B8S,EAAgBzf,EAAEiW,QAAQtJ,WAM9B,OAJI3M,EAAEoW,QAAQsJ,mBAAiC/R,GAAjB6R,QAA+C7R,GAAjB8R,GAA8BD,GAAiBC,IACzGtiB,GAAS,GAGJA,IA1LwB,iCA6LjC,SAAoB6C,GAClBM,KAAKue,SAAW7e,EAAEuH,YA9La,0BAiMjC,WACMjH,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,oBApMe,GAAYnX,cAiD7Cb,gBADCuW,gBAAM,kBACP,yCAKAvW,gBADCuW,gBAAM,mBACP,0CAtDmB6D,GAAc,gBApBlCjV,eAAU,CACTL,WAAY,CACVuS,8BACAb,uBACAM,0BACAwG,sBACAC,oBACApG,8BACAqG,oCACAC,oBACA9G,wBACA+G,0BACAC,8BACAC,oCACAC,gCACAC,oCACAC,wBACAC,0BAGiB5D,cCnSsX,MCOvY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCgCf,IAAqB6D,GAAgB,yIAASpd,cAAzBod,GAAgB,gBATpC9Y,eAAU,CACTL,WAAY,CACViS,yBACAqD,kBACAzD,wBACAG,0BACAgH,wCAGiBG,cClDwX,MCOzY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIlgB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACgL,YAAY,CAAC,gBAAgB,QAAQ7K,MAAM,CAAC,KAAO,OAAO,KAAO,kBAAkB0H,GAAG,CAAC,MAAQjI,EAAImgB,qBAAqB,GAAG/f,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,gBAAgB,CAACgL,YAAY,CAAC,eAAe,OAAO7K,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,YAAY,CAACG,MAAM,CAAC,UAAYP,EAAI8H,eAAe,KAAO,qBAAqBG,GAAG,CAAC,MAAQjI,EAAIogB,oBAAoB,GAAGhgB,EAAG,oBAAoB,CAACG,MAAM,CAAC,WAAaP,EAAIqgB,gBAAgB,eAAiBrgB,EAAIsgB,sBAAsBrY,GAAG,CAAC,kBAAoBjI,EAAIugB,qBAAqBngB,EAAG,qBAAqB,CAACG,MAAM,CAAC,WAAaP,EAAIwgB,kBAAkBvY,GAAG,CAAC,OAASjI,EAAIygB,uBAAuB,IAC5gC,GAAkB,GCDlB,GAAS,WAAa,IAAIzgB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,YAAY,MAAM,aAAa,MAAM,cAAa,EAAK,MAAQP,EAAI0gB,WAAW,gBAAe,EAAM,0BAAyB,EAAM,QAAU1gB,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,OAASlI,EAAI4gB,cAAc,wBAAwB5gB,EAAI6gB,cAAc,CAACzgB,EAAG,MAAM,CAACe,YAAY,oBAAoBiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,sBAAsB,CAAC+H,IAAI,qBAAqBiD,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,aAAa,CAACG,MAAM,CAAC,OAAS,GAAG,cAAcP,EAAI8gB,SAAS,iBAAiB9gB,EAAI+gB,cAAc,uBAAsB,GAAO9Y,GAAG,CAAC,uBAAuB,SAASC,GAAQlI,EAAI+gB,cAAc7Y,GAAQ,wBAAwB,SAASA,GAAQlI,EAAI+gB,cAAc7Y,MAAalI,EAAIghB,SAAuE5gB,EAAG,MAAM,CAACgL,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAA2B,QAAjBP,EAAIihB,YAAoB,eAAiBjhB,EAAIkhB,UAAU,YAAclhB,EAAImhB,cAAcC,YAAY,cAAgBphB,EAAImhB,cAAcE,cAAc,gBAAkBrhB,EAAImhB,cAAcG,gBAAgB,YAActhB,EAAImhB,cAAcI,MAAM,aAAevhB,EAAImhB,cAAcK,QAAQvZ,GAAG,CAAC,qBAAqB,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,cAAejZ,IAAS,sBAAsB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,cAAejZ,IAAS,uBAAuB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,gBAAiBjZ,IAAS,0BAA0B,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,gBAAiBjZ,IAAS,yBAAyB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,kBAAmBjZ,IAAS,2BAA2B,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,kBAAmBjZ,IAAS,qBAAqB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,QAASjZ,IAAS,sBAAsB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,QAASjZ,IAAS,sBAAsB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,SAAUjZ,IAAS,uBAAuB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAImhB,cAAe,SAAUjZ,OAAY9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,wBAA0BP,EAAI0hB,wBAAwB,QAA2B,oBAAjB1hB,EAAIihB,YAAgC,kBAAoBjhB,EAAI2hB,mBAAmB1Z,GAAG,CAAC,iCAAiC,SAASC,GAAQlI,EAAI0hB,wBAAwBxZ,GAAQ,oCAAoC,SAASA,GAAQlI,EAAI0hB,wBAAwBxZ,GAAQ,2BAA2B,SAASA,GAAQlI,EAAI2hB,kBAAkBzZ,GAAQ,6BAA6B,SAASA,GAAQlI,EAAI2hB,kBAAkBzZ,MAAW9H,EAAG,iBAAiB,CAACG,MAAM,CAAC,wBAA0BP,EAAI0hB,wBAAwB,QAA2B,mBAAjB1hB,EAAIihB,YAA+B,kBAAoBjhB,EAAI2hB,kBAAkB,uBAAyB3hB,EAAI4hB,wBAAwB3Z,GAAG,CAAC,iCAAiC,SAASC,GAAQlI,EAAI0hB,wBAAwBxZ,GAAQ,oCAAoC,SAASA,GAAQlI,EAAI0hB,wBAAwBxZ,GAAQ,2BAA2B,SAASA,GAAQlI,EAAI2hB,kBAAkBzZ,GAAQ,6BAA6B,SAASA,GAAQlI,EAAI2hB,kBAAkBzZ,GAAQ,SAAWlI,EAAI6hB,YAAY,gCAAgC,SAAS3Z,GAAQlI,EAAI4hB,uBAAuB1Z,GAAQ,mCAAmC,SAASA,GAAQlI,EAAI4hB,uBAAuB1Z,OAAY,GAA5mF9H,EAAG,MAAM,CAACe,YAAY,UAAU,CAACf,EAAG,sBAAsB,IAAsjF,IAAI,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI+hB,YAAa,SAAW,QAAQ,QAAU,YAAY3hB,EAAG,wBAAwB,CAACG,MAAM,CAAC,WAAaP,EAAI2hB,mBAAmB1Z,GAAG,CAAC,OAASjI,EAAIgiB,gCAAgC5hB,EAAG,kBAAkB,CAACG,MAAM,CAAC,WAAaP,EAAIiiB,iBAAiB,mBAAqBjiB,EAAIkiB,iBAAiBja,GAAG,CAAC,OAASjI,EAAImiB,iBAAiB,IACxlI,GAAkB,GCDlB,GAAS,WAAa,IAAIniB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,oBAAoB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,YAAY,OAAS7gB,EAAI4gB,gBAAgB,CAACxgB,EAAG,iBAAiB,CAACA,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,cAAc,CAACG,MAAM,CAAC,SAAWP,EAAIkiB,gBAAgBE,oBAAoB,MAAQpiB,EAAIkiB,gBAAgBG,MAAM5U,UAAU,aAAazN,EAAIkiB,gBAAgBE,oBAAoB,MAAQ,OAAO,YAAc,YAAYna,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAgBG,MAAO,YAAana,OAAY9H,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIkiB,gBAAgBE,oBAAoB,MAAQpiB,EAAIkiB,gBAAgBG,MAAM5U,UAAU,YAAc,WAAW,iBAAkB,EAAK,WAAazN,EAAIsiB,iBAAiB,mBAAoB,EAAK,qBAAuBtiB,EAAIuiB,aAAa,mBAAqBviB,EAAIwiB,cAAc,kBAAiB,EAAK,WAAa,YAAYva,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAgBG,MAAO,YAAana,MAAW,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,eAAe,MAAQ,QAAQ,CAAChL,EAAG,KAAK,CAACJ,EAAIuH,GAAG,2BAA2BnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,OAAO,MAAQP,EAAIkiB,gBAAgBO,aAAaC,WAAW,YAAc,YAAYza,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAgBO,aAAc,aAAcva,QAAa,GAAG9H,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,eAAe,MAAQ,MAAM,eAAe,SAAS,CAAChL,EAAG,KAAK,CAACJ,EAAIuH,GAAG,mBAAmBnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,OAAO,MAAQP,EAAIkiB,gBAAgBS,aAAa,YAAc,WAAW,aAAa,IAAI1a,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAiB,eAAgBha,QAAa,KAAK9H,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,qBAAqB,SAAWP,EAAI4iB,sBAAsB,WAAa5iB,EAAI6iB,gBAAgB,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,MAAQ7iB,EAAI8iB,kBAAkB,YAAc,WAAW,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,OAAO7a,GAAG,CAAC,OAASjI,EAAI+iB,gBAAgB,eAAe,SAAS7a,GAAQlI,EAAI8iB,kBAAkB5a,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIijB,uBAAuBliB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GAC3vF,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,iCAAiCvH,EAAIwH,GAAG/L,GAAM,gCAAgC2E,EAAG,MAAM,CAACe,YAAY,mCAAmC,GAAGf,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,cAAcnH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,mBAAmB,SAAWP,EAAI4iB,sBAAsB,WAAa5iB,EAAImjB,cAAc,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,MAAQnjB,EAAIojB,gBAAgB,YAAc,WAAW,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,OAAOnb,GAAG,CAAC,OAASjI,EAAI+iB,gBAAgB,eAAe,SAAS7a,GAAQlI,EAAIojB,gBAAgBlb,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIijB,uBAAuBliB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GACh3B,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,iCAAiCvH,EAAIwH,GAAG/L,GAAM,gCAAgC2E,EAAG,MAAM,CAACe,YAAY,mCAAmC,GAAGf,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,eAAe,CAACgL,YAAY,CAAC,QAAU,UAAU7K,MAAM,CAAC,SAAWP,EAAI4iB,sBAAsB,MAAQ5iB,EAAIqjB,iBAAiB,MAAQ,GAAG,KAAO,2BAA2Bpb,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqjB,iBAAiBnb,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,6BAA6BnH,EAAG,eAAe,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,SAAWP,EAAI4iB,uBAAyB5iB,EAAIqjB,iBAAiB,MAAQ,OAAO,OAAS,MAAM,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,uBAAwB,EAAK,qBAAsB,EAAK,uBAAwB,EAAM,mBAAqB,aAAa,iBAAkB,EAAK,cAAcrjB,EAAIsjB,wBAAwBrb,GAAG,CAAC,eAAejI,EAAIujB,4BAA4B,CAACnjB,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,sBAAsB,cAAe,EAAM,YAAY,SAAS,QAAU,UAAU,sBAAuB,EAAK,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,UAAU,aAAa,iBAAiB,QAAU,KAAK,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,UAAU,aAAa,kBAAkB,QAAU,MAAM,MAAQ,QAAQH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,MAAS,IAAI,MAAM,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI+hB,YAAa,SAAW,QAAQ,QAAU,YAAY3hB,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIwjB,8BAA8B,IACx/D,GAAkB,G,+ECETC,GAAb,WAGE,oCACExjB,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,qBAJnD,0GAOE,WAAiBuJ,GAAjB,iGACe1M,KAAK0D,OAAOiJ,YAAZ,eAAwCD,GADvD,wFAPF,2JAWE,WAAiCV,EAAgByX,GAAjD,iGACezjB,KAAK0D,OAAOiJ,YAAZ,WAA4BX,GAAYyX,GADvD,wFAXF,oKAeE,WAAwCC,GAAxC,iGACe1jB,KAAK0D,OAAOiJ,YAAY,8BAA+B+W,GADtE,wFAfF,kJAmBE,WAAwB1X,EAAgBa,GAAxC,iGACe7M,KAAK0D,OAAOzF,IAAZ,2BAAoC+N,EAApC,YAAgDa,IAD/D,wFAnBF,wJAuBE,WAA4B8W,GAA5B,uGACqB3jB,KAAK0D,OAAOK,SAAiB,sBAAuB4f,GADzE,cACM9mB,EADN,yBAESA,EAAO+mB,KAAO/mB,EAAO+mB,KAAO,IAFrC,gDAvBF,sJA4BE,WAA4BD,GAA5B,uGACqB3jB,KAAK0D,OAAOK,SAAiB,sBAAuB4f,GADzE,cACM9mB,EADN,yBAESA,EAAO+mB,KAAO/mB,EAAO+mB,KAAO,IAFrC,gDA5BF,8JAiCE,WAAoCC,GAApC,iGACe7jB,KAAK0D,OAAOK,SAAS,6BAA8B8f,GADlE,wFAjCF,wJAqCE,WAA8B7X,EAAgBU,GAA9C,iGACe1M,KAAK0D,OAAOK,SAAZ,WAAyBiI,EAAzB,sBAAuDU,GADtE,wFArCF,gKAyCE,WAAoCV,EAAgB8X,GAApD,iGACe9jB,KAAK0D,OAAOK,SAAZ,WAAyBiI,EAAzB,mBAAoD8X,GADnE,wFAzCF,oJA6CE,WAAwB9X,GAAxB,iGACehM,KAAK0D,OAAOzF,IAAZ,2BAAoC+N,IADnD,wFA7CF,mJAiDE,WAAyB+X,GAAzB,iGACe/jB,KAAK0D,OAAOK,SAAS,yBAA0BggB,GAD9D,wFAjDF,iECFaC,GAAb,oDACE,KAAAnY,SAAW,GACX,KAAAD,WAAa,MAGFqY,GAAb,oDACE,KAAApY,SAAW,GACX,KAAAD,WAAa,GACb,KAAAuV,YAA6B,KAC7B,KAAAC,cAA+B,KAC/B,KAAAC,gBAAiC,KACjC,KAAAE,OAAyB,KACzB,KAAAD,MAAuB,MCZZ4C,GAAb,oDACE,KAAAzW,QAAU,GACV,KAAAD,UAAY,MCAD2W,GAAb,oDACI,KAAAC,mBAAqB,GACrB,KAAAC,cAAgB,EAChB,KAAA7B,cAAe,EACf,KAAAC,WAAa,MCcJ6B,GAAb,oDACI,KAAAC,aAAe,EACf,KAAAC,OAAS,IAAIR,GACb,KAAA5B,MAAQ,IAAI8B,GACZ,KAAA1B,aAAe,IAAI2B,GACnB,KAAAM,cAAmD,GACnD,KAAAC,WAAa,GACb,KAAAC,aAAe,GACf,KAAAxC,qBAAsB,EACtB,KAAAyC,kBAAmB,EACnB,KAAAC,eAAoC,M,wBC/B3BC,GAAb,WAGE,oCACE9kB,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,iBAJnD,8GAOS,WAAqB6I,GAArB,iGACQhM,KAAK0D,OAAOzF,IAAZ,WAAoB+N,EAApB,eADR,wFAPT,uJAWS,WAA6B+Y,GAA7B,iGACQ/kB,KAAK0D,OAAOK,SAAS,aAAcghB,GAD3C,wFAXT,uJAeS,WAA6B/Y,GAA7B,iGACQhM,KAAK0D,OAAOzF,IAAZ,qBAA8B+N,IADtC,wFAfT,2JAmBS,WAAiCrJ,GAAjC,iGACQ3C,KAAK0D,OAAOzF,IAAZ,mCAA4C0E,IADpD,wFAnBT,uJAuBS,WAA6BqiB,GAA7B,iGACQhlB,KAAK0D,OAAOzF,IAAZ,gCAAyC+mB,IADjD,wFAvBT,qJA2BS,WAA2BhZ,GAA3B,iGACQhM,KAAK0D,OAAOK,SAAZ,2BAAyCiI,GAAY,IAAI/P,QADjE,wFA3BT,iE,y+CC+OA,IAAqBgpB,GAAa,4CAgI9B,iDACI,eAhIG,EAAA1V,MAGH,GAEa,EAAA2V,eAAyB,IAQ1C,EAAAjD,gBAAsC,IAAIqC,GAC1C,EAAA1B,gBAA4B,CAAC,IAC7B,EAAAM,cAA0B,CAAC,IAC3B,EAAAC,gBAA4B,GAC5B,EAAAN,kBAA8B,GAC9B,EAAAsC,mBAAmC,GACnC,EAAAC,yBAAmC,EAC3B,EAAAC,SAAsC,KAE9C,EAAA/X,OAAwB,GAchB,EAAA5J,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IAChD,EAAAkT,2BAAqC,EAG7C,EAAAF,uBAKK,GAEI,EAAAiC,UAAoB,uCAC7B,EAAAC,eAAiB,CACbC,aAAe,CACX3V,KAAM,QACNC,QAAU,iBAEd2V,QAAU,IAmGd,EAAAC,oBAA8B,GAvB1B,EAAKC,mBAAqB,IAAInC,GAC9B,EAAKoC,gBAAkB,IAAId,GAC3B,EAAKnH,WAJT,EAhI8B,qDAwB9B,WACE,OAAO,IAAIkI,KAAW,CACpB1iB,MAAOnD,KAAKsN,OACZ2N,UAAU,EACV6K,SAAU,QA5BgB,2BAgC9B,WACI,OAAS9lB,KAAKuP,MAAMwW,mBAAuC3U,WAjCjC,yBA0D9B,WACI,OAAOpR,KAAKgmB,YA3Dc,IA8D9B,SAAkB3nB,GACd2B,KAAKimB,MAAM,SAAUjmB,KAAKqlB,YA/DA,+BAmE9B,SAAkBhnB,EAAgB6nB,GAAiB,WAC3C7nB,IACG2B,KAAKuP,MAAM4W,sBAAwBnmB,KAAKuP,MAAM4W,qBAAqB/U,UAClEpR,KAAKuP,MAAM4W,qBAAqB/U,SAASoN,cAE7Cxe,KAAKiiB,gBAAkB9c,IAAEihB,UAAUpmB,KAAKqmB,oBACY,IAAhDrmB,KAAKiiB,gBAAgBO,aAAaC,aAClCziB,KAAKiiB,gBAAgBO,aAAaC,WAAaziB,KAAKiiB,gBAAgBG,MAAM5U,WAG9ExN,KAAKsmB,aAAatmB,KAAKiiB,gBAAgByC,YACvC1kB,KAAKumB,WAAWvmB,KAAKiiB,gBAAgB0C,cACrC3kB,KAAKmlB,mBAAqBnlB,KAAKqmB,mBAAmBxB,eAC/C7kB,KAAKiiB,gBAAgBE,oBACpBniB,KAAKwmB,wBACAngB,MAAK,SAAAxJ,GACF,GAA2B,GAAxBA,EAAOwnB,cAAoB,CAC1B,IAAItF,EAAeC,sBAAQ,qCAAD,OAAsCniB,EAAOulB,MAAM5U,UAAnD,wDACT3Q,EAAO2nB,OAAO5Y,WADL,yDACwE,kBAClGmT,EACC1Y,MAAK,SAAA0Y,GACF,GAAGA,EAAc,CACb,EAAKqG,yBAA0B,EAC/B,EAAKnD,gBAAgBG,MAAQvlB,EAAOulB,MACpC,EAAKH,gBAAgB2C,iBAAmB/nB,EAAO+nB,iBAC/C,EAAK3C,gBAAgBwC,cAAgB5nB,EAAO4nB,cAC5C,EAAKxC,gBAAgBS,aAAe7lB,EAAO6lB,aAG3C,IAAI+D,EAAe,EAAKxE,gBAAgBwC,cAAcplB,KAAI,SAAArC,GAAC,OAAIA,EAAE0pB,QAAQ7L,eACzE,EAAKoH,gBAAgB4C,eAAiB,EAAK8B,kBAAkBF,EAAc5pB,EAAOgoB,gBAElF,EAAK5C,gBAAgByC,WAAa7nB,EAAO6nB,WACzC,EAAKzC,gBAAgB0C,aAAe9nB,EAAO8nB,aAE3C,EAAK2B,aAAa,EAAKrE,gBAAgByC,YACvC,EAAK6B,WAAW,EAAKtE,gBAAgB0C,cAEzC,EAAKiC,+BAIT,EAAKA,0BAKjB5mB,KAAK4mB,0BAlHa,0BAuH9B,SAAaC,GACT7mB,KAAK4iB,gBAAkBiE,EAAYA,EAAUnP,MAAM1X,KAAKklB,gBAAkB,CAAC,IAC3EllB,KAAK6iB,kBAAoBgE,EAAYA,EAAUnP,MAAM1X,KAAKklB,gBAAkB,KAzHlD,wBA2H9B,SAAW4B,GACP9mB,KAAKkjB,cAAgB4D,EAAUA,EAAQpP,MAAM1X,KAAKklB,gBAAkB,CAAC,IACrEllB,KAAKmjB,gBAAkB2D,EAAUA,EAAQpP,MAAM1X,KAAKklB,gBAAkB,KA7H5C,+EAuI9B,6GACQ3U,EAAe,IAAInD,GAD3B,SAEuBmD,EAAa9E,SAFpC,OAEQ6B,EAFR,OAGItN,KAAKsN,OAASA,EAAOjO,KAAI,SAAAkO,GACrB,OAAOA,EAAEC,aAJjB,gDAvI8B,qJA+I9B,8GACiBxN,KAAK2lB,mBACboB,kCAAkC/mB,KAAKiiB,gBAAgBO,aAAaC,YAF7E,wFA/I8B,2FAoJ9B,SAAqB9W,GACjB,MAAO,gDAAgDqb,KAAKrb,KArJlC,uCA0J9B,SAA0BjM,GACtB,GAAIM,KAAKinB,qBAAqBvnB,EAAEiM,MAChC,CACI,IAAI/N,EAAO8B,EAAEuH,UAAUqF,OAAO,QACnB,oBAAR1O,EAEIuH,IAAE6M,KAAKhS,KAAKkjB,eAAe,SAAAre,GAAI,OAAIA,IAASnF,EAAEiM,QAC7C3L,KAAK0lB,oBAAsBhmB,EAAEiM,KAG7B3L,KAAKkjB,cAAc5mB,KAAKoD,EAAEiM,MAI3BxG,IAAE6M,KAAKhS,KAAK4iB,iBAAiB,SAAA/d,GAAI,OAAIA,IAASnF,EAAEiM,QAC/C3L,KAAK0lB,oBAAsBhmB,EAAEiM,KAG7B3L,KAAK4iB,gBAAgBtmB,KAAKoD,EAAEiM,WAKpCjM,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBAlLnC,mCAsL9B,SAAsB9lB,GAAK,WACvB,GAAGM,KAAK0lB,oBAAoB,CACxB,IAAInU,EAAM7R,EAAEuH,UAAUqF,OAAO,SAE7BiF,EAAIjV,KAAK0D,KAAK0lB,qBACdhmB,EAAEuH,UAAUqF,OAAO,QAASiF,GAE5BvR,KAAK0lB,oBAAsB,GAE5BhmB,EAAErB,OAASqB,EAAErB,MAAMrC,OAAS,GACxBmJ,IAAE6M,KAAKtS,EAAErB,OAAM,SAAAwG,GAAI,OAAM,EAAKoiB,qBAAqBpiB,OAClDnF,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBAQzD9lB,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAmB,SA3MpB,0BA+M9B,SAAa5M,GACT,MAAO,CACH,mBAAqBM,KAAKinB,qBAAqBvnB,GAAK,UAAY,aAjN1C,6BAqN9B,SAAgBA,GACZA,EAAEuH,UAAUigB,UAAU9hB,WAtNI,2FAyNtB,yHAEJpF,KAAKqjB,uBAAyB,GAF1B,SAIyBrjB,KAAK2lB,mBAAmBgB,kBAAkB3mB,KAAKiiB,gBAAgBuC,OAAO3Y,SAAU7L,KAAKiiB,gBAAgBG,MAAM3U,SAJpI,OAIE0Z,EAJF,YAMeA,GANf,IAMJ,2BAAQC,EAA2B,QAC/BpnB,KAAKqjB,uBAAuB/mB,KACxB,CACI+qB,0BAA2BrnB,KAAKslB,UAChCoB,QAASU,EACTE,gBAAgB,EAChBC,iBAAiB,IAZzB,8BAiBEC,EAAqBriB,IAAEsiB,QAAQznB,KAAKiiB,gBAAgBwC,cAAe,CAAC,iBAAkB,WAAY,CAAC,OAAO,QAjB5G,KAmBa+C,GAnBb,IAmBJ,2BAAQE,EAA6B,QACjC1nB,KAAKqjB,uBAAuB/mB,KACxB,CACI+qB,0BAA2BK,EAAML,0BACjCX,QAASgB,EAAMhB,QACfY,eAAgBI,EAAMJ,eACtBC,iBAAkBG,EAAMJ,iBAzBhC,8EAzNsB,qFAwP9B,WACI,OAAOtnB,KAAKiiB,gBAAgB2C,kBAzPF,IA4P9B,SAAqBvmB,GACjB2B,KAAKiiB,gBAAgB2C,iBAAmBvmB,EACrCA,EACC2B,KAAKqjB,uBAAyB,GAG9BrjB,KAAK4mB,yBAlQiB,iCAsQ9B,WACI,OAA+C,MAAxC5mB,KAAKiiB,gBAAgBG,MAAM5U,WACa,IAAxCxN,KAAKiiB,gBAAgBG,MAAM5U,YAxQR,mCA2Q9B,SAAsBhS,GAClB,OAAOA,EAAK8rB,iBA5Qc,oCA+Q9B,SAAuB9rB,GACnB,OAAQA,EAAK8rB,iBAhRa,uCAmR9B,SAA0B5nB,GACnBA,EAAEiW,QAAQ2R,gBAAkB5nB,EAAEoW,QAAQyR,gBACrC7nB,EAAEiW,QAAQ4R,iBAAkB,EAExB7nB,EAAEiW,QAAQ4R,iBAAmB7nB,EAAEoW,QAAQwR,iBAC3C5nB,EAAEiW,QAAQ2R,gBAAiB,KAxRL,0BA4R9B,SAAa5nB,GACTA,EAAEioB,WAAajoB,EAAEiM,KACb3L,KAAKsN,OAAO5C,MAAK,SAAA6C,GAAC,OAAIA,GAAK7N,EAAEiM,SAC7B3L,KAAKsN,OAAOhR,KAAKoD,EAAEioB,YAEvB3nB,KAAKiiB,gBAAgBG,MAAM5U,UAAY9N,EAAEiM,OAjSf,2BAoS9B,SAAcjM,GAAM,WACbM,KAAKolB,wBACJplB,KAAKolB,yBAA0B,EAIhCplB,KAAK0gB,eACD1gB,KAAKiiB,gBAAgBE,qBAA+D,MAAxCniB,KAAKiiB,gBAAgBG,MAAM5U,WAEtExN,KAAK2lB,mBAAmBiC,2BAA2B5nB,KAAKiiB,gBAAgBuC,OAAO3Y,SAAU7L,KAAKiiB,gBAAgBG,MAAM5U,WACnHnH,MAAK,SAAAxJ,GACF,GAA2B,GAAxBA,EAAOwnB,cAAoB,CAC1B,EAAKpC,gBAAgBoC,cAAgB,EAAKpC,gBAAgBuC,OAAO3Y,UAAYhP,EAAO2nB,OAAO3Y,SAAWhP,EAAOwnB,cAAgB,EAC7H,EAAKpC,gBAAgBG,MAAM3U,QAAU5Q,EAAOulB,MAAM3U,QAClD,EAAKwU,gBAAgByC,WAAa7nB,EAAO6nB,WACzC,EAAKzC,gBAAgB0C,aAAe9nB,EAAO8nB,aAC3C,EAAK2B,aAAa,EAAKrE,gBAAgByC,YACvC,EAAK6B,WAAW,EAAKtE,gBAAgB0C,cACrC,EAAK1C,gBAAgB2C,iBAAmB/nB,EAAO+nB,iBAC/C,EAAK3C,gBAAgBwC,cAAgB5nB,EAAO4nB,cAC5C,EAAKxC,gBAAgBS,aAAe7lB,EAAO6lB,aAE3C,IAAI+D,EAAe,EAAKxE,gBAAgBwC,cAAcplB,KAAI,SAAArC,GAAC,OAAIA,EAAE0pB,QAAQ7L,eACzE,EAAKoH,gBAAgB4C,eAAiB,EAAK8B,kBAAkBF,EAAc5pB,EAAOgoB,qBAE9D,MAAhBhoB,EAAOulB,OACX,EAAKH,gBAAgBG,MAAM3U,QAAU5Q,EAAOulB,MAAM3U,QAClD,EAAKwU,gBAAgByC,WAAa,GAClC,EAAK9B,gBAAkB,CAAC,IACxB,EAAKC,kBAAoB,GACzB,EAAKZ,gBAAgB0C,aAAe,GACnC,EAAKzB,cAAgB,CAAC,IACvB,EAAKC,gBAAkB,GACvB,EAAKlB,gBAAgB2C,kBAAmB,EACxC,EAAK3C,gBAAgBwC,cAAgB,GACrC,EAAKxC,gBAAgB4C,eAAiB,EAAKM,mBAC3C,EAAKlD,gBAAgBS,aAAa,KAGlC,EAAKT,gBAAgByC,WAAa,GAClC,EAAKzC,gBAAgB0C,aAAe,GACpC,EAAK1C,gBAAgB2C,kBAAmB,EACxC,EAAK3C,gBAAgBwC,cAAgB,GACrC,EAAKxC,gBAAgB4C,eAAiB,EAAKM,mBAC3C,EAAKjC,cAAgB,CAAC,IACtB,EAAKC,gBAAkB,GACvB,EAAKP,gBAAkB,CAAC,IACxB,EAAKC,kBAAoB,GACzB,EAAKZ,gBAAgBS,aAAa,IAGtC,EAAKkE,4BAvVS,wBA8V9B,WACI5mB,KAAKiiB,gBAAkB,IAAIqC,GAC3BtkB,KAAK0gB,eAAgB,IAhWK,yBAmW9B,WAAW,WACHmH,EAAa7nB,KAAK8nB,gBAAgBC,WACtC,GAAIF,EAAWG,WAIZhoB,KAAKmjB,iBAAmBnjB,KAAKmjB,gBAAgBnnB,OAAS,GAClDmJ,IAAE6M,KAAKhS,KAAKmjB,iBAAiB,SAAAte,GAAI,OAAK,EAAKoiB,qBAAqBpiB,UAIpE7E,KAAK6iB,mBAAqB7iB,KAAK6iB,kBAAkB7mB,OAAS,GACtDmJ,IAAE6M,KAAKhS,KAAK6iB,mBAAmB,SAAAhe,GAAI,OAAK,EAAKoiB,qBAAqBpiB,OAKzE,GAA2D,IAAvD7E,KAAKiiB,gBAAgBO,aAAaC,WAAWwF,OAOjD,GAAGjoB,KAAKiiB,gBAAgBG,MAAM3U,SAAWzN,KAAKslB,UAAW,CACrD,IAAIzoB,EAASmiB,sBAAQ,mEAAD,OACdhf,KAAKiiB,gBAAgBG,MAAM5U,UADb,kCACgDxN,KAAKiiB,gBAAgBO,aAAaC,WADlF,kCAEVziB,KAAKiiB,gBAAgBuC,OAAO5Y,WAFlB,KAEiC,sBACrD/O,EACCwJ,MAAK,SAAA0Y,GACCA,GACC,EAAKmJ,wBAKbloB,KAAKkoB,oBAnBT,CACI,IAAIpY,EAAU,8CACdqY,oBAAMrY,EAAS,YAtXO,2BA2Y9B,WAAa,aACLsY,EAAmD,GAD9C,KAGQpoB,KAAKqjB,wBAHb,IAGT,2BAA8C,KAAtCqE,EAAsC,QAC1C,GAAIA,EAAMJ,gBAAmBI,EAAMH,gBAAnC,CAGA,IAAIc,EAA6C,CAC7ChB,0BAA2BK,EAAML,0BACjChD,cAAerkB,KAAKiiB,gBAAgBoC,cACpCqC,QAASgB,EAAMhB,QACfY,eAAgBI,EAAMJ,gBAE1Bc,EAAc9rB,KAAK+rB,KAbd,8BAgBTroB,KAAKiiB,gBAAgBwC,cAAgB2D,EACrCpoB,KAAKiiB,gBAAgB0C,aAAe3kB,KAAKmjB,iBAAmBnjB,KAAKmjB,gBAAgBnnB,OAAS,EACtDgE,KAAKmjB,gBAAgBrf,KAAK9D,KAAKklB,gBAAkB,GACrFllB,KAAKiiB,gBAAgByC,WAAa1kB,KAAK6iB,mBAAqB7iB,KAAK6iB,kBAAkB7mB,OAAS,EACxDgE,KAAK6iB,kBAAkB/e,KAAK9D,KAAKklB,gBAAkB,GAEvFllB,KAAKsoB,sBACAjiB,KADL,yDACU,WAAOkiB,GAAP,2FACF,EAAKhF,2BAA4B,EAC7BiF,EAAgC,GAE3B1sB,EAAI,EAJX,YAIcA,EAAIysB,EAAUvsB,QAJ5B,wBAKMysB,EAAWF,EAAUzsB,GAL3B,SAMQ,EAAK4sB,wBAAwBD,GAC9BpiB,MAAK,SAAAxJ,GACF2rB,EAAQlsB,KAAKO,MAEhByJ,OAAM,SAAAzJ,GACH2rB,EAAQlsB,KAAKO,MAXvB,OAIoCf,IAJpC,gDAeK0sB,GAfL,4CADV,kCAAAxoB,KAAA,gBAkBKqG,KAAKrG,KAAK2oB,gBACVriB,MAAMtG,KAAK4oB,iBACX3U,SAAQ,WACP,EAAKsP,2BAA4B,EACjC,EAAK8B,SAAW,UAvbI,4BA2btB,SAAemD,GACrB,GAAIA,EAAQ9d,MAAK,SAAAxM,GAAC,OAAKA,EAAE2qB,WAAU,CACjC,IAAI/Y,EAAU,4EACdqY,oBAAMrY,EAAS,SAGjB9P,KAAK8hB,eAjcuB,6BAoctB,SAAgBjlB,GACpB,IAAIiT,EAAU,wDAEK,GAAfjT,EAAO+mB,KACP9T,EAAU,iFAGU,GAAfjT,EAAO+mB,OACZ9T,EAAU,sIAGdqY,oBAAMrY,EAAS,WA/cW,iCAkd9B,WAEI,IAAIjT,EAASmD,KAAKiiB,gBAAgBG,MAAM3U,SAAWzN,KAAKslB,WAAmD,GAAtCtlB,KAAKiiB,gBAAgBoC,cACpFrkB,KAAK2lB,mBAAmBmD,sBAAsB9oB,KAAKiiB,iBACnDjiB,KAAK+oB,wBAIX,OAFA/oB,KAAKqlB,SAAWlgB,IAAEihB,UAAUpmB,KAAKiiB,iBAE1BplB,IA1dmB,4FA6dtB,2GACWmD,KAAKiiB,gBAAgBuC,OAAO3Y,SADvC,SAEY7L,KAAK2lB,mBAAmBoD,sBAAsB/oB,KAAKiiB,iBAF/D,cAEA+G,EAFA,yBAGGA,GAHH,gDA7dsB,8FAme9B,SAAwBC,GACpB,OAAOjpB,KAAK0D,OAAOQ,YAAYC,oBAAeyJ,MAAvC,gCAAuEqb,MApepD,+BAue9B,SAAkBC,EAA2BrsB,GACzC,IAAIssB,EAAchkB,IAAEikB,OAAOppB,KAAKmlB,mBAAmB9f,OAAOxI,IAAS,SAAAa,GAAC,OAAIA,EAAEmd,eAC1E,OAAOsO,EACFvlB,QAAO,SAAAlG,GAAC,OAAKwrB,EAAgBpR,SAASpa,EAAEmd,gBACxCwO,MAAK,SAACC,EAAIC,GAAL,OAAYD,EAAGzO,YAAc0O,EAAG1O,aAAe,EAAIyO,EAAGzO,YAAc0O,EAAG1O,YAAc,EAAI,OA3ezE,2BA8e9B,SAAcnb,GACVM,KAAK4iB,gBAAkB,CAAC,IACxB5iB,KAAK6iB,kBAAoB,GACzB7iB,KAAKkjB,cAAgB,CAAC,IACtBljB,KAAKmjB,gBAAkB,OAlfG,GAAStgB,SASvCb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,0CAuDAxnB,gBADCuW,gBAAM,eACP,uCAnEiB0M,GAAa,gBA1BjC9d,gBAAU,CACPL,WAAY,CACR4iB,4BACA5Q,0BACA6Q,4BACA3J,sBACAD,wBACA6J,4CACAC,8BACAlR,wBACAC,wBACAkR,0BACAtK,oCACAuK,8BACAC,iBACAC,kCACA5Q,8BACAR,8BACAqR,8BACArK,gCACAzG,gCACA+Q,wBACAC,uBACAxK,wCAGaqF,QCnPToF,GDmPSpF,MEnPuY,MCQxZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,6CCnBX,GAAS,WAAa,IAAIllB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAc,WAAEI,EAAG,MAAM,CAACe,YAAY,UAAU,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,MAAQ,QAAQ,CAACpL,EAAIuH,GAAG,oCAAoCnH,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,MAAQ,QAAQ,CAAChL,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAUP,EAAIuqB,WAAW,YAAc,kBAAkB,cAAcvqB,EAAIwqB,wBAAwB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAM,eAAe,IAAI,MAAQxqB,EAAIyqB,kBAAkBC,oBAAoBziB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,qBAAsBviB,QAAa,GAAG9H,EAAG,MAAM,CAACgL,YAAY,CAAC,cAAc,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,eAAe,WAAW,KAAO,mBAAmB0H,GAAG,CAAC,MAAQjI,EAAI2qB,yBAAyB,SAASvqB,EAAG,MAAM,CAACA,EAAG,KAAK,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,6BAA6BnH,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBG,2BAA2B,KAAO,yCAAyC3iB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,6BAA8BviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBI,aAAa,KAAO,0BAA0B5iB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,eAAgBviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBK,gBAAgB,KAAO,6BAA6B7iB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,kBAAmBviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBM,wBAAwB,KAAO,qCAAqC9iB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,0BAA2BviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBO,sBAAsB,KAAO,qCAAqC/iB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,wBAAyBviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBQ,iBAAiB,KAAO,6BAA6BhjB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,mBAAoBviB,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBS,mBAAmB,KAAO,iCAAiCjjB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,qBAAsBviB,QAAa,KAAK9H,EAAG,MAAM,CAACe,YAAY,wBAAwBZ,MAAM,CAAC,GAAK,kBAAkB0H,GAAG,CAAC,WAAajI,EAAImrB,cAAc,WAAanrB,EAAImrB,gBAAgB,CAAC/qB,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQP,EAAIyqB,kBAAkBW,aAAa,MAAQ,GAAG,OAAS,0BAA0B,IAAM,GAAGnjB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,eAAgBviB,QAAa,WAAW9H,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIqrB,cAAc,OAAS,oBAAoB,CAACrrB,EAAIuH,GAAG,8IAA8I,GAAGvH,EAAIyI,MAC5gH,GAAkB,G,uCCIT6iB,GAAb,WAGI,oCACErrB,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJrD,+GAOW,WAAsB0M,GAAtB,iGACQ7P,KAAK0D,OAAOzF,IAAZ,6CAAsD4R,IAD9D,wFAPX,qJAWW,WAA2Byb,GAA3B,iGACQtrB,KAAK0D,OAAOzF,IAAZ,kEAA2EqtB,IADnF,wFAXX,mJAeW,WAAyB9vB,GAAzB,iGACQwE,KAAK0D,OAAOK,SAAZ,oBAA0CvI,GADlD,wFAfX,mJAmBW,WAAyBA,GAAzB,iGACQwE,KAAK0D,OAAO6I,QAAZ,oBAAyC/Q,GADjD,wFAnBX,8IAuBW,WAAoBoC,EAAc0tB,GAAlC,8FACCpe,EADD,gDACkDtP,EADlD,6BAC2E0tB,GAD3E,SAEQtrB,KAAK0D,OAAO6nB,QAAiBre,GAFrC,wFAvBX,sJA4BW,WAA0B1N,GAA1B,iGACSQ,KAAK0D,OAAOzF,IAAZ,4BAAqCuB,IAD9C,wFA5BX,kEJLA,SAAY6qB,GACVA,8BACAA,sDACAA,wCACAA,0CACAA,wCACAA,0CACAA,6CAPF,CAAYA,QAAoB,K,ueK0GhC,IAAqBmB,GAAa,4CAqE9B,iDACI,eArEJ,EAAAjc,MAEI,GA2CJ,EAAA6b,eAAyB,EAGzB,EAAAK,mBAAkC,IAAIhb,KAAY,CAC9CC,SAAU,MACRC,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqBuB,gBAChEvlB,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,SAGvB,EAAAtB,wBAAsC,IAAI1E,KAAW,CACjD1iB,MAAO,EAAKsoB,mBACZK,WAAY,SAQZ,EAAKJ,oBAAsB,IAAIL,GAC/B,EAAK/a,cAAgB,IAAI/E,GAH7B,EArE8B,sDAc9B,WACI,OAAOvL,KAAKyhB,yBAfc,IAiB9B,SAAsBlQ,GAClBvR,KAAKyhB,wBAA0BlQ,IAlBL,oBAqB9B,WACI,OAAOvR,KAAKgM,WAtBc,sBAyB9B,WACI,OAAOhM,KAAK+rB,UA1Bc,uFA8B9B,WAAuB9a,EAAiB+a,GAAxC,4HA9B8B,wFAwC9B,SAAehW,EAAmBkQ,GAC1BlQ,GACAhW,KAAKuqB,wBAAwB0B,WA1CP,2BAiE9B,SAAcvsB,GACVM,KAAKorB,eAAiBprB,KAAKorB,gBAlED,kCA4E9B,SAAqB1rB,GACjBM,KAAKimB,MAAM,4BAA4B,OA7Eb,GAASpjB,SAMvCb,gBADCwnB,gBAAK,CAACC,SAAU,KACjB,+BAGAznB,gBADCwnB,gBAAK,CAACC,QAAU,MACjB,gCAGAznB,gBADCwnB,mBACD,+CAkBAxnB,gBADCuW,gBAAM,YACP,sCAOAvW,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,yCAGAznB,gBADCuW,gBAAM,sBACP,oCAxCiBiT,GAAa,gBAZjCrkB,gBAAU,CACPL,WAAY,CACRkS,wBACAJ,wBACA+Q,4BACAO,8BACAtK,oCACAsM,8BACAjT,8BAIauS,cC1GuY,MCQxZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIzrB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAc,WAAEI,EAAG,MAAM,CAACe,YAAY,+BAA+BiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,MAAQ,QAAQ,CAACpL,EAAIuH,GAAG,mCAAmCnH,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,MAAQ,QAAQ,CAAChL,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAUP,EAAIuqB,WAAW,YAAc,kBAAkB,cAAcvqB,EAAIosB,uBAAuB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAM,eAAe,IAAI,MAAQpsB,EAAIyqB,kBAAkB4B,mBAAmBpkB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIyqB,kBAAmB,oBAAqBviB,QAAa,GAAG9H,EAAG,MAAM,CAACgL,YAAY,CAAC,cAAc,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,eAAe,WAAW,KAAO,mBAAmB0H,GAAG,CAAC,MAAQjI,EAAI2qB,yBAAyB,WAAWvqB,EAAG,MAAM,CAACgL,YAAY,CAAC,OAAS,QAAQ,CAAChL,EAAG,KAAK,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,+BAA+BnH,EAAG,eAAe,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,cAAcP,EAAIssB,0BAA0B,MAAQ,OAAO,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,eAAgB,EAAK,uBAAwB,EAAK,qBAAsB,EAAK,uBAAwB,EAAM,OAAS,OAAO,QAAUtsB,EAAIuqB,WAAW,uBAAsB,EAAK,OAAS,CAAEgC,SAAS,IAAStkB,GAAG,CAAC,oBAAoBjI,EAAI6H,mBAAmB,gBAAgB7H,EAAIyK,gBAAgB1J,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GACruD,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIwsB,SAAS/wB,EAAKA,WAAW,QAAQ,MAAK,EAAM,aAAa,CAAC2E,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,kBAAkB,WAAW,wBAAwB,YAAYH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,mBAAkB,EAAK,qBAAqB,aAAaH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,0BAA0B,YAAY,SAAS,QAAU,aAAa,YAAY,MAAM,MAAQ,MAAM,sBAAuB,EAAK,iBAAgB,EAAM,gBAAgB,CAAE0b,aAAa,MAAU7b,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,cAAc,iBAAgB,EAAM,SAAW,kBAAkB,iBAAgB,EAAM,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,WAAW,iBAAgB,EAAM,SAAW,kBAAkB,iBAAgB,EAAM,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,SAAS,QAAU,eAAe,iBAAgB,EAAM,mBAAkB,EAAK,iBAAgB,EAAK,sBAAuB,EAAK,gBAAgB,CAAEia,WAAYxa,EAAIysB,oBAAqBrsB,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,YAAY,KAAK,MAAQ,KAAK,gBAAgB,iBAAiB,SAAW,iBAAiB,IAAI,KAAKP,EAAIyI,MAC1hD,GAAkB,G,sdCuItB,IAAqBikB,GAAa,4CA6F9B,iDACI,eA7FG,EAAAld,MAEH,GAyEJ,EAAAmd,kBAAiC,IAAIjc,KAAY,CAC7CC,SAAU,MACRC,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqBoC,eAChEpmB,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,SAGvB,EAAAM,uBAAqC,IAAItG,KAAW,CAChD1iB,MAAO,EAAKupB,kBACZZ,WAAY,SAKZ,EAAKJ,oBAAsB,IAAIL,GAC/B,EAAK1F,mBAAqB,IAAInC,GAHlC,EA7F8B,qDAQ9B,SAAexN,EAAmBkQ,GAC1BlQ,GACAhW,KAAKmsB,uBAAuBF,WAVN,+BAuB9B,WACI,OAASjsB,KAAKuP,MAAMod,qBAA6Bvb,WAxBvB,wBA2B9B,WACI,OAAOpR,KAAK2hB,yBA5Bc,6BA8B9B,WACI,OAAO3hB,KAAKyhB,yBA/Bc,IAiC9B,SAAsBlQ,GAClBvR,KAAKyhB,wBAA0BlQ,IAlCL,sBAqC9B,WACI,OAAOvR,KAAK+rB,UAtCc,qCAyC9B,WAA6B,WAC3B,OAAO,IAAItb,KAAY,CACf9R,IAAK,gBACLgS,KAAM,SAACjE,GACL,OAAG,EAAK8d,kBAAkB3e,SACjB,EAAK8Z,mBACPiH,wBAAwB,EAAKpC,kBAAkB3e,SAASa,GACxDrG,MAAK,SAACxJ,GAGL,OAFA,EAAKgwB,gBAAgBhwB,EAAO+mB,KAAKpoB,MAE1BqB,EAAO+mB,QAEftd,OAAM,SAAAulB,GACH,MAAO,MAIRnnB,QAAQ5E,QAAQ,SA1DP,6BAgE9B,SAAgBtE,GACZ,GAAwB,MAArBwE,KAAK8sB,aAAsB,CAC1B,IAAIA,EAAetxB,EAAKoI,QAAO,SAACiB,GAAD,OAAeA,EAAKkoB,kBACd1tB,KAAI,SAACwF,GAAD,OAAeA,EAAKwf,iBAE7DrkB,KAAKimB,MAAM,gCAAiC6G,MArEtB,kCAkG9B,SAAqBptB,GACjBM,KAAKimB,MAAM,4BAA4B,KAnGb,sBAsG9B,SAASvmB,GACLM,KAAKimB,MAAM,WAAYvmB,KAvGG,gCA2G9B,SAAmBA,GACf,IAAIstB,EAAmBttB,EAAEuH,UAAUgmB,qBAEnCjtB,KAAKimB,MAAM,gCAAiC+G,KA9GlB,4BAiHtB,SAAettB,GACfA,EAAEuH,UAAUimB,cACZxtB,EAAEuH,UAAUqF,OAAO,kBAAmBtM,KAAK8sB,cAE3CptB,EAAEuH,UAAUimB,aAAc,KArHJ,qBAyH9B,WACIltB,KAAKmtB,MAAMC,IAAI,iCAAkCptB,KAAKqtB,kBA1H5B,2BA6H9B,WACIrtB,KAAKmtB,MAAMG,KAAK,iCAAkCttB,KAAKqtB,kBA9H7B,4BAiItB,SAAe7xB,GAEnB,IAAM+xB,EAAgBvtB,KAAKwtB,oBAAoBlhB,OAAO,iBAEhDmhB,EAAOztB,KAAKwtB,oBAAoB7Y,iBAChC+Y,EAAW1tB,KAAKwtB,oBAAoBG,iBAAiBJ,GAEvDK,EAAMH,EAAKC,GAEfE,EAAIpyB,KAAKmpB,aAAenpB,EAAKmpB,aAC7BiJ,EAAIpyB,KAAKkpB,WAAalpB,EAAKkpB,WAC3BkJ,EAAIpyB,KAAKgnB,aAAehnB,EAAKgnB,aAC7BoL,EAAIpyB,KAAKipB,cAAgBjpB,EAAKipB,cAC9BmJ,EAAIpyB,KAAKopB,iBAAmBppB,EAAKopB,iBACjCgJ,EAAIpyB,KAAKknB,aAAelnB,EAAKknB,aAC7BkL,EAAIpyB,KAAKqpB,eAAiBrpB,EAAKqpB,eAE/B,IAAIgJ,EAAa,GACjBA,EAAWvxB,KAAKoxB,GAEhB1tB,KAAKwtB,oBAAoBM,YAAYD,KArJX,6BAwJtB,SAAgBryB,GACpBA,EAAK+e,WAAWwT,YAAc,SAACvF,GAC3B,OAAOrjB,IAAEsiB,QAAQe,EAAQ,CAAC,SAAS,CAAC,cA1Jd,GAAS3lB,SAKvCb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,yCAGAznB,gBADCuW,gBAAM,sBACP,oCAOAvW,gBADCwnB,gBAAK,CAACC,SAAU,KACjB,+BAGAznB,gBADCwnB,mBACD,+CAGAxnB,gBADCwnB,mBACD,8CArBiBiD,GAAa,gBAlBjCtlB,gBAAU,CACPL,WAAY,CACRkS,wBACAJ,wBACAsR,8BACAtK,oCACA8J,4BACA/Q,wBACAG,0BACAkV,4BACAxO,oCACAqK,8BACAoE,8BACApV,8BACAkR,kCAIa0C,cC1IsY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1sB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAc,WAAEI,EAAG,MAAM,CAACe,YAAY,UAAU,CAACf,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,gBAAgBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,cAAc,CAACG,MAAM,CAAC,YAAc,cAAc4tB,MAAM,CAAC7vB,MAAO0B,EAAa,UAAEouB,SAAS,SAAUC,GAAMruB,EAAIsuB,UAAUD,GAAK/kB,WAAW,gBAAgB,KAAKlJ,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,uBAAsB,EAAK,uBAAsB,EAAK,YAAc,WAAW,MAAQP,EAAIuuB,aAAa,cAAcvuB,EAAIwuB,mBAAmB,eAAe,MAAM,mBAAkB,EAAM,YAAc,IAAIvmB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIuuB,aAAarmB,GAAQ,OAASlI,EAAIyuB,eAAe,uBAAuB,SAASvmB,GAAQ,OAAOlI,EAAIgjB,0BAA0B9a,EAAO,aAAanH,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GAC5lC,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,yCAAyCvH,EAAIwH,GAAG/L,GAAM,wCAAwC2E,EAAG,MAAM,CAACe,YAAY,+BAA+B,MAAK,EAAM,YAAY,CAACf,EAAG,eAAe,CAACA,EAAG,kBAAkB,CAACG,MAAM,CAAC,KAAO,YAAY,IAAI,IAAI,KAAKH,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,sBAAsBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,uBAAsB,EAAK,uBAAsB,EAAK,YAAc,WAAW,MAAQP,EAAI0uB,QAAQ,cAAc1uB,EAAI2uB,cAAc,eAAe,MAAM,mBAAkB,EAAM,YAAc,IAAI1mB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI0uB,QAAQxmB,GAAQ,OAASlI,EAAIyuB,eAAe,uBAAuB,SAASvmB,GAAQ,OAAOlI,EAAIgjB,0BAA0B9a,EAAO,QAAQnH,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GACp6B,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,yCAAyCvH,EAAIwH,GAAG/L,GAAM,wCAAwC2E,EAAG,MAAM,CAACe,YAAY,+BAA+B,MAAK,EAAM,YAAY,CAACf,EAAG,eAAe,CAACA,EAAG,kBAAkB,CAACG,MAAM,CAAC,KAAO,YAAY,IAAI,IAAI,KAAKH,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACA,EAAG,eAAe,CAAC+tB,MAAM,CAAC7vB,MAAO0B,EAAU,OAAEouB,SAAS,SAAUC,GAAMruB,EAAI4uB,OAAOP,GAAK/kB,WAAW,aAAa,KAAKlJ,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,oBAAoBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQP,EAAI6uB,cAAc,uBAAsB,EAAK,cAAc7uB,EAAIkhB,UAAU,kBAAiB,EAAK,uBAAwB,EAAK,aAAa,KAAK,eAAe,WAAW,YAAc,WAAW,eAAiB,cAAcjZ,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI6uB,cAAc3mB,OAAY,WAAWlI,EAAIyI,MAC7hC,GAAkB,G,sdCyHtB,IAAqBqmB,GAAe,4CA4FhC,iDACI,eA5FJ,EAAAtf,MACI,GAEa,EAAA2V,eAAyB,IAClC,EAAAqJ,mBAAoC,GACpC,EAAAG,cAA+B,GA4G/B,EAAAI,YAA6B,KAtBrC,EA5FgC,iDAQhC,WACI,OAAO9uB,KAAK+uB,aAAe/uB,KAAK+uB,YAAY9G,OAASjoB,KAAK+uB,YAAYrX,MAAM1X,KAAKklB,gBAAkB,IATvE,IAYhC,SAAiB7mB,GAAmB,WAC7B2B,KAAK8uB,cACAzwB,EAAM2T,MAAK,SAAAwE,GAAC,OAAG,EAAKsY,cAAgBtY,MACpCnY,EAAM/B,KAAK0D,KAAK8uB,aAEpB9uB,KAAK8uB,YAAY,MAErB9uB,KAAKimB,MAAM,qBAAsB5nB,EAAMyF,KAAK9D,KAAKklB,mBAnBrB,mBAsBhC,WACI,OAAOllB,KAAKgvB,eAAiBhvB,KAAKgvB,cAAc/G,OAASjoB,KAAKgvB,cAActX,MAAM1X,KAAKklB,gBAAkB,IAvB7E,IA0BhC,SAAY7mB,GAAmB,WACxB2B,KAAK8uB,cACAzwB,EAAM2T,MAAK,SAAAwE,GAAC,OAAG,EAAKsY,cAAgBtY,MACpCnY,EAAM/B,KAAK0D,KAAK8uB,aAEpB9uB,KAAK8uB,YAAY,MAErB9uB,KAAKimB,MAAM,uBAAwB5nB,EAAMyF,KAAK9D,KAAKklB,mBAjCvB,yBAoChC,WACI,OAAOllB,KAAKivB,YAAcjvB,KAAKivB,YAAc,IArCjB,IAwChC,SAAmB5wB,GACf2B,KAAKimB,MAAM,qBAAsB5nB,KAzCL,qBA4ChC,WACI,OAAO2B,KAAKkvB,iBAAmB,IA7CH,IAgDhC,SAAc7wB,GACV2B,KAAKimB,MAAM,yBAA0B5nB,KAjDT,kBAoDhC,WACI,QAAO2B,KAAKmvB,cArDgB,IAwDhC,SAAW9wB,GACP2B,KAAKimB,MAAM,sBAAuB5nB,KAzDN,oBAoFhC,WACI,OAAO2B,KAAKgM,WArFgB,sBAwFhC,WACI,OAAOhM,KAAK+rB,UAzFgB,qBAgGhC,WACI/rB,KAAKovB,sBAjGuB,+BAoGhC,WAAiB,WACbpvB,KAAKyuB,QAAQzf,SAAQ,SAAAwH,GACjB,EAAKkY,cAAcpyB,KAAKka,MAG5BxW,KAAKsuB,aAAatf,SAAQ,SAAAwH,GACtB,EAAK+X,mBAAmBjyB,KAAKka,QA1GL,qBA8GhC,WACI,OAAOxW,KAAKqvB,iBA/GgB,uCAmHhC,SAA0B3vB,EAAiF4vB,GAE1F,WAAVA,IACKtvB,KAAKuuB,mBAAmBvc,MAAK,SAAAwE,GAAC,OAAG9W,EAAEiM,QAInC3L,KAAK8uB,YAAcpvB,EAAEiM,KAHrB3L,KAAKuuB,mBAAmBjyB,KAAKoD,EAAEiM,OAO1B,MAAV2jB,IACKtvB,KAAK0uB,cAAc1c,MAAK,SAAAwE,GAAC,OAAG9W,EAAEiM,QAI9B3L,KAAK8uB,YAAcpvB,EAAEiM,KAHrB3L,KAAK0uB,cAAcpyB,KAAKoD,EAAEiM,SAhIN,4BAwIhC,SAAejM,GACXA,EAAEuH,UAAUigB,UAAU9hB,WAzIM,kCA4IhC,SAAqBuG,GACjB,MAAO,gDAAgDqb,KAAKrb,KA7IhC,0BAgJhC,SAAajM,GACT,IAAIsoB,EAAUhoB,KAAKinB,qBAAqBvnB,GACxC,OAAIsoB,EAGG,GAFI,CAAE,mBAAqB,eAnJN,GAASnlB,SA6DzCb,gBADCwnB,gBAAK,CAACC,SAAU,KACjB,+BAGAznB,gBADCwnB,gBAAK,CAACC,QAAU,MACjB,gCAGAznB,gBADCwnB,gBAAK,CAACC,QAAS,kBAAM,IAAIzU,UAC1B,sCAGAhT,gBADCwnB,mBACD,mCAGAxnB,gBADCwnB,mBACD,qCAGAxnB,gBADCwnB,mBACD,uCAGAxnB,gBADCwnB,mBACD,mCAGAxnB,gBADCwnB,mBACD,oCAlFiBqF,GAAe,gBAbnC1nB,gBAAU,CACPL,WAAY,CACRkS,wBACAJ,wBACA+Q,4BACAO,8BACAtK,oCACA2P,kCACAzF,0BACAK,4BAIa0E,cC9HyY,MCQ1Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI9uB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,OAAO,YAAY,MAAM,aAAa,MAAM,cAAa,EAAK,MAAQ,4BAA4B,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,OAASjI,EAAIyvB,cAAc,QAAUzvB,EAAI0vB,eAAe,MAAQ1vB,EAAI2vB,aAAa,iBAAiB,SAASznB,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI4vB,oBAAoB,CAACxvB,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACf,EAAG,MAAM,CAACe,YAAY,UAAU,CAACf,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQP,EAAI6vB,aAAaC,mBAAmB,cAAc9vB,EAAIurB,iBAAiB,UAAY,MAAM,YAAc,QAAQ,kBAAiB,EAAK,MAAQ,IAAI,eAAe,MAAM,mBAAqBvrB,EAAI6H,mBAAmB,YAAc,wBAAwBI,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAI6vB,aAAc,qBAAsB3nB,MAAW,CAAC9H,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,wBAAwB,IAAI,IAAI,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI+vB,kBAAkB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,MAAQ,IAAI,eAAe,MAAM,mBAAqB/vB,EAAIgwB,uBAAuB,YAAc,uBAAuB,MAAQhwB,EAAIiwB,cAAchoB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIiwB,aAAa/nB,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,0BAA0BnH,EAAG,UAAU,CAACe,YAAY,qBAAqBZ,MAAM,CAAC,WAAaP,EAAIkwB,qBAAqB,OAAS,MAAM,cAAgB,UAAUjoB,GAAG,CAAC,oBAAoBjI,EAAImwB,+BAA+B,KAAK/vB,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,iBAAiB,CAAC+H,IAAI,cAAc5H,MAAM,CAAC,MAAQP,EAAI6vB,aAAaO,KAAK,aAAa,OAAO,OAAS,MAAM,0BAA0B,UAAUnoB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAI6vB,aAAc,OAAQ3nB,MAAW,CAAC9H,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,GAAGH,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,wBAAwB,IAAI,IAAI,OAAOH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,YAAY,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIqwB,gBAAqC,UAApBrwB,EAAIswB,aAA0BlwB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAU,CAAEqL,KAAM,MAAOkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIuwB,WAAYvwB,EAAIyI,KAAKrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM5L,EAAIswB,aAAcxgB,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI4vB,mBAAmB,SAAW,QAAQ,QAAU,YAAYxvB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,aAAa,IACpwH,GAAkB,G,meC0JtB,IAAMqO,GAAe,CACjBC,MAAQ,QACRC,QAAU,UACVC,QAAU,WAGRnL,GAAiB,CACnBoL,cAAiB,CACb7gB,QAAU,qBAEd8gB,WAAa,CACT9gB,QAAU,wBAEd2V,QAAU,IAoBOoL,GAAmB,4CAoFpC,iDACE,eApFJ,EAAAthB,MAKM,GA6BJ,EAAAygB,aAAqB,GACrB,EAAAF,kBAA8C,GAI9C,EAAAgB,UAAoB,GAEpB,EAAAT,aAAwB,OACxB,EAAAU,kBAA4B,EA2F5B,EAAAX,aAAoB,EAAKY,gBAhDvB,EAAKpB,aAAe,EAAKqB,eACzB,EAAKvF,oBAAsB,IAAIL,GAC/B,EAAK4E,qBAAuB,EAAKiB,oBACjC,EAAK5F,iBAAmB,GACxB6F,iBAAmB,KANrB,EApFoC,kDAWpC,WACI,OAAOnxB,KAAKgmB,YAZoB,IAepC,SAAkB3nB,GACd2B,KAAKimB,MAAM,YAhBqB,6BAmBpC,WACI,OAASjmB,KAAKuP,MAAM6hB,qBAAgChgB,WApBpB,6BAuBpC,WACI,OAASpR,KAAKuP,MAAM8hB,qBAAgCjgB,WAxBpB,oBA2BpC,WACI,OAAQpR,KAAKuP,MAAM+hB,YAA6BlgB,WA5BhB,2BA+BpC,WACI,OAASpR,KAAKuP,MAAMwW,mBAAuC3U,WAhC3B,+BA6CpC,WAA6E,WAA3DvB,EAA2D,4DAATxC,EAChE,OAAO,IAAIoD,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAGmD,EACM,EAAK6b,oBAAoB6F,qBAAqB1hB,GAChDxJ,MAAK,SAACmiB,GACH,OAAOA,KAGVliB,OAAM,SAAAulB,GAAG,MAAG,MAGVnnB,QAAQ5E,QAAQ,SA1DC,2BAgEpC,WAAyE,WAA3D+P,EAA2D,4DAATxC,EAC5D,OAAO,IAAIoD,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAGmD,EACM,EAAK6b,oBAAoBC,gBAAgB9b,GAC3CxJ,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,MAGVnnB,QAAQ5E,QAAQ,SA9EC,0BA6F5B,WAAiC,IAApB0xB,EAAoB,uDAAF,GACrC,MAAO,CACLC,eAAgB,uCAChBxsB,KAAM,GACNkrB,KAAMqB,EACNE,UAAU,KAlGsB,oCAsGpC,SAAuBhyB,GACrB,GAAGA,EAAE+R,aAAc,CACbzR,KAAK4vB,aAAaO,KAAOzwB,EAAE+R,aAAa0e,KACxCnwB,KAAK4vB,aAAa3qB,KAAOvF,EAAE+R,aAAaxM,KACxCjF,KAAK8wB,UAAYpxB,EAAE+R,aAAaxM,KAChCjF,KAAK4vB,aAAa8B,SAAWhyB,EAAE+R,aAAaigB,SAC5C1xB,KAAK4vB,aAAa6B,eAAiB/xB,EAAE+R,aAAaggB,eAClDzxB,KAAKqwB,aAAe,SACpBrwB,KAAKowB,aAAcpwB,KAAKgxB,eAAc,EAAMT,GAAaC,MAAOjL,GAAeE,SAC/EzlB,KAAKowB,aAAa/xB,MAAQqB,EAAE+R,aAAaxM,KAEzCjF,KAAK2xB,SAASrlB,OAAO,QAAS5M,EAAE+R,aAAa0e,MAC7C,IAAIn0B,EAASgE,KAAK2xB,SAASC,YAC3B5xB,KAAK2xB,SAASE,mBAAmBC,UAAUC,SAAS,CAAEjtB,MAAO9I,EAAQA,OAAQ,IAG7EgE,KAAKgwB,cACLhwB,KAAKgyB,MAAMtyB,EAAE+R,gBAvHe,gCA2HpC,SAAmB/R,GACdA,EAAE+R,cACHzR,KAAK8vB,kBAAoB9vB,KAAKiyB,cAAcvyB,EAAE+R,aAAa9S,KAC3DqB,KAAKiwB,qBAAuBjwB,KAAKkxB,kBAAkBxxB,EAAE+R,aAAa9S,OAGlEqB,KAAK8vB,kBAAoB,GACzB9vB,KAAKgyB,MAAMtyB,EAAE+R,iBAlImB,2BAwIpC,WAE2C,IAF7B+e,IAE6B,yDADnC0B,EACmC,uDADlB3B,GAAaC,MAC9Bnc,EAAmC,uDAAtBkR,GAAeE,QAGhC,MAAO,CACHpI,MAAO,QACP8U,YAAY,UACZ9zB,MAAO2B,KAAK8wB,UACZsB,iBAAkBF,EAClBG,gBAAkBhe,EAClBie,eAAgBtyB,KAAKsyB,eACrBtK,QAAUwI,EACV9V,UAAW,GACX6X,WAAYvyB,KAAKuyB,WACjBC,iBAAkB,WAvJU,wBA2JpC,SAAW9yB,GACLyP,GAAOmC,cAActR,KAAK8wB,aAC5B9wB,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAOT,GAAaE,QAASlL,GAAeoL,kBA7JnD,mBAiKpC,SAAM8B,GACJzyB,KAAKqwB,aAAe,OAGpB,IAAMqC,EAAyB1yB,KAAK4vB,aAAaC,mBACjD7vB,KAAK4vB,aAAe5vB,KAAKixB,eACzBjxB,KAAK4vB,aAAaC,mBAAqB6C,EACvC1yB,KAAKgwB,aAAe,GACpBhwB,KAAK8wB,UAAY,GAEf9wB,KAAKowB,aADJqC,EACmBzyB,KAAKgxB,eAAc,EAAMT,GAAaE,QAASlL,GAAeoL,eAG9D3wB,KAAKgxB,kBA9KO,4BAkLpC,SAAetxB,GACbM,KAAK8wB,UAAYpxB,EAAErB,MACd8Q,GAAOmC,cAActR,KAAK8wB,YACxB9wB,KAAKowB,aAAapI,UACrBhoB,KAAKowB,aAAapI,SAAU,EAC5BhoB,KAAKowB,aAAagC,iBAAmB7B,GAAaC,MAClDxwB,KAAKowB,aAAaiC,gBAAkB9M,GAAeE,QAEnD/lB,EAAEuH,UAAUqF,OAAO,UAAWtM,KAAKowB,aAAapI,SAChDtoB,EAAEuH,UAAUqF,OAAO,mBAAoBtM,KAAKowB,aAAagC,kBACzD1yB,EAAEuH,UAAUqF,OAAO,kBAAmBtM,KAAKowB,aAAaiC,oBA5L1B,wCAiMpC,SAA2B3yB,GACvB,GAAoB,MAAhBA,EAAEizB,YAAsBjzB,EAAEizB,WAAW32B,OAAS,EAAG,CACnD,IAAI8I,EAAQ9E,KAAK2xB,SAASE,mBAAmBC,UAAUc,WAAW9tB,MAElE9E,KAAK2xB,SAASkB,WAAW/tB,EAAOpF,EAAEizB,WAAW,GAAI,IACjD,IAAIG,EAAWhuB,EAAQpF,EAAEizB,WAAW,GAAG32B,OAEvCgE,KAAK2xB,SAASoB,aAAaD,EAAU,GACrCpzB,EAAEuH,UAAUmK,WAAW4hB,iBAzMO,+BA6MpC,SAAkBtzB,GAChBM,KAAKizB,QAAO,KA9MsB,oBAgNpC,SAAOC,GACHlzB,KAAKizB,QAAO,KAjNoB,6EAoNpC,WAAaE,GAAb,uGACOnL,GAAU,EACThoB,KAAK8wB,WAAc9wB,KAAK4vB,aAAa3qB,OACrCjF,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAMT,GAAaE,QAASlL,GAAeoL,eAClF3I,GAAU,GAEVD,EAAW/nB,KAAK8nB,gBAAgBC,WAEhCA,EAASC,UACXA,GAAU,IAG4B,IAApChoB,KAAK2xB,SAASrlB,OAAO,aACvB0b,GAAU,IAGTA,EAhBP,wBAiBMhoB,KAAK+wB,kBAAmB,EAjB9B,SAkB2BqC,KAAOpU,QAAQ,gBAAiB,mBAlB3D,OAkBYniB,EAlBZ,OAmBWA,IACKw2B,EAAUluB,IAAEmuB,MAAMtzB,KAAK4vB,cACxBuD,IACCE,EAAQ5B,eAAiBzxB,KAAKixB,eAAeQ,gBAGjDzxB,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAKT,GAAaG,SACtD1wB,KAAK8wB,YAAcuC,EAAQpuB,MAAQkuB,GAClCE,EAAQpuB,KAAOjF,KAAK8wB,UAEpB9wB,KAAK0rB,oBAAoB6H,cAAcF,EAAQpuB,KAAMouB,EAAQxD,oBACxDxpB,MAAK,SAAAxJ,IACkB,IAAhBA,EAAO+mB,KACP,EAAKwM,aAAe,EAAKY,eAAc,EAAOT,GAAaE,QAASlL,GAAeqL,YAEnF,EAAK4C,gBAAgBH,MAG5B/sB,OAAM,SAAAmtB,GACHL,KAAOjL,MAAM,2DAA4D,aAIjFnoB,KAAKwzB,gBAAgBH,IA1CrC,iDApNoC,uFAoQpC,SAAgBA,GAAwB,WACnCA,EAAQ5B,iBAAmBzxB,KAAKixB,eAAeQ,eAC5CzxB,KAAK0rB,oBAAoBgI,mBAAmBL,GAC3ChtB,MAAK,SAAAxJ,GACF,EAAK6jB,eAAgB,KAExBpa,OAAM,SAAA+N,OAKPrU,KAAK0rB,oBAAoBiI,mBAAmBN,GAC3ChtB,MAAK,SAAAxJ,GACF,EAAK6jB,eAAgB,KAExBpa,OAAM,SAAA+N,SAnRqB,0BA0RpC,SAAa3U,GACTM,KAAK0gB,eAAgB,IA3RW,2BA8RpC,SAAchhB,GACZM,KAAK4vB,aAAe5vB,KAAKixB,eACzBjxB,KAAKiwB,qBAAuBjwB,KAAKkxB,sBAhSC,4BAmSpC,SAAexxB,GACbM,KAAKowB,aAAepwB,KAAKgxB,kBApSS,0BAuSpC,SAAatxB,GACX,IAAIrB,EAAe,GACnB,IAAK,IAAMM,KAAO0rB,GAAsB,CACtC,IAAIuJ,EAAYC,SAASl1B,EAAK,KAAO,EACjCi1B,GACFv1B,EAAM/B,KAAK,CACT,IAAOqC,EACP,MAAS0rB,GAAqB1rB,GAAK+Y,MAAM,aAAa5T,KAAK,OAKjE9D,KAAKsrB,iBAAmBnmB,IAAE2uB,OAAOz1B,GAAO,SAAAC,GAAC,OAAIA,EAAED,SAC/C2B,KAAK8nB,gBAAgBlU,YApTa,GAAS/Q,SAS7Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCATiBoH,GAAmB,gBAjBvC1pB,gBAAU,CACTL,WAAY,CACVkjB,iBACAhR,wBACA+a,oBACA9J,kCACA3Q,gCACAiG,oBACAyU,0BACA9J,8BACAtK,oCACAqU,4CACA7J,uBACA9K,sBACAjG,kCAGiBwX,cC5L6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dC0Gf,IAAqBqD,GAAe,4CA8FhC,iDACI,eA9FG,EAAA3kB,MAEH,GAYJ,EAAAmS,mBAA6B,EAC7B,EAAAb,SAA0B,CACtB,OACA,mBACA,mBAEJ,EAAAC,cAAwB,EAgDxB,EAAAa,uBAA2C,KAC3C,EAAAZ,UAAoB,EAKpB,EAAAE,UAA4B,GAC5B,EAAAC,cAAiC,IAAI+C,GA0BrC,EAAAhC,gBAAsC,IAAIqC,GAC1C,EAAAtC,kBAAmB,EAPf,EAAKP,wBAA0B,EAAK0S,gBACpC,EAAK7jB,cAAgB,IAAI/E,GACzB,EAAKoa,mBAAqB,IAAInC,GAC9B,EAAKpd,YAAc,IAAI3C,EAL3B,EA9FgC,oDAWhC,WACI,OAASzD,KAAKuP,MAAMwW,mBAAuC3U,WAZ/B,uBAuBhC,WACI,OAAOpR,KAAK6gB,SAAS7gB,KAAK8gB,iBAxBE,sBA2BhC,WACI,YAA0BzT,GAAvBrN,KAAK6H,eACG,GAAP,OAAU7H,KAAK6H,eAAe8D,KAA9B,UAGO,iBAhCiB,oBAoChC,WACI,MAAO,GAAK3L,KAAK6H,eAAexJ,QArCJ,yBAwChC,WACI,OAAO2B,KAAKgmB,YAzCgB,IA4ChC,SAAkB3nB,GACd2B,KAAKimB,MAAM,uBA7CiB,wFAkDhC,WAAwB5nB,EAAgB6nB,GAAxC,gGACQ7nB,EADR,0CAGiD2B,KAAKsQ,cAAc8jB,sBAAsBp0B,KAAKgM,UAClF3F,MAAK,SAAAguB,GAAG,OAAIA,KACZ/tB,OAAM,SAAAulB,GAAG,OAAI,EAAKsI,mBAL/B,cAGYn0B,KAAKyhB,wBAHjB,gBAMmCzhB,KAAKoG,YAAYkuB,cACvCjuB,MAAK,SAAAguB,GAAG,OAAIA,KACZ/tB,OAAM,SAAAulB,GAAG,OAAI,IAAI7W,SAR9B,cAMYhV,KAAKihB,UANjB,iBASuCjhB,KAAKsQ,cAAcikB,iBAAiBv0B,KAAKgM,UACnE3F,MAAK,SAAAguB,GAAG,OAAIA,KACZ/tB,OAAM,SAAAulB,GAAG,OAAI,IAAI5H,MAX9B,QASYjkB,KAAKkhB,cATjB,gCAcYlhB,KAAK+gB,UAAW,EAd5B,2EAlDgC,uFA6EhC,WACI,MAAO,CACHyT,qBAAuB,uCACvB3oB,SAAU7L,KAAKgM,SACfye,wBAAoBpd,EACpB+e,uBAAmB/e,EACnB0d,uBAAuB,EACvBD,yBAAyB,EACzBD,iBAAiB,EACjBD,cAAa,EACbD,4BAA4B,EAC5BK,kBAAkB,EAClBC,oBAAoB,EACpBE,aAAc,KA1FU,yBAwGhC,SAAY3vB,GACR,IAAIi5B,EAAS,IAAInQ,GAEjBmQ,EAAOrS,MAAM3U,QAAUjS,EAAKiS,QAC5BgnB,EAAOrS,MAAM5U,UAAYhS,EAAKgS,UAC9BinB,EAAOjQ,OAAO3Y,SAAW7L,KAAKgM,SAC9ByoB,EAAOhQ,cAAgBjpB,EAAKipB,cAAgBjpB,EAAKipB,cAAgBgQ,EAAOhQ,cACxEgQ,EAAO/P,WAAalpB,EAAKkpB,WACzB+P,EAAO5P,eAAiBrpB,EAAKqpB,eAAiBrpB,EAAKqpB,eAAkB4P,EAAO5P,eAC5E4P,EAAO7P,iBAAmBppB,EAAKopB,iBAC/B6P,EAAOjS,aAAehnB,EAAKgnB,aAAehnB,EAAKgnB,aAAeiS,EAAOjS,aACrEiS,EAAO9P,aAAenpB,EAAKmpB,aAAenpB,EAAKmpB,aAAe,KAC9D8P,EAAOpQ,cAAgB7oB,EAAK6oB,cAC5BoQ,EAAO/R,aAAelnB,EAAKknB,aAC3B1iB,KAAKiiB,gBAAkBwS,EAEvBz0B,KAAKgiB,kBAAmB,IAxHI,0BA2HhC,SAAaxmB,GACTwE,KAAKgiB,kBAAmB,EACZ,OAATxmB,GACCwE,KAAKmtB,MAAMlH,MAAM,iCAAkCzqB,KA9H3B,2BAkIhC,SAAckE,GACVM,KAAK+gB,UAAW,EAChB/gB,KAAK8gB,cAAgB,EACrB9gB,KAAK2hB,uBAAyB,KAC9B3hB,KAAK8nB,gBAAgBlU,UAtIO,kFAyIhC,6GACQmU,EAAW/nB,KAAK8nB,gBAAgBC,WAEhCA,EAASC,SAAYhoB,KAAKgM,SAHlC,iEAOuBonB,KAAOpU,QAAQ,gBAAiB,mBAPvD,UAOQniB,EAPR,QASOA,EATP,gCAUcmD,KAAK00B,sBAVnB,WAaO73B,GAA+B,oBAApBmD,KAAKghB,aAAyD,mBAApBhhB,KAAKghB,YAbjE,oBAcWhhB,KAAKyhB,wBAAwB+S,uBAAyBx0B,KAAKm0B,gBAAgBK,qBAdtF,kCAe+Bx0B,KAAKsQ,cAAcqkB,sBAAsB30B,KAAKgM,SAAUhM,KAAKyhB,yBAC3Epb,MAAK,SAAAguB,GAAG,OAAI,KACZ/tB,OAAM,SAAAulB,GAEH,OADAtlB,IAAO,wCAAyC,QAAS,MAClD,KAnB3B,QAegB1J,EAfhB,OAsBYmD,KAAK40B,+BAA+B/3B,GAtBhD,yCAyB+BmD,KAAKsQ,cAAcukB,yBAAyB70B,KAAKgM,SAAUhM,KAAKyhB,yBAC9Epb,MAAK,SAAAguB,GAAG,OAAI,KACZ/tB,OAAM,SAAAulB,GAEH,OADAtlB,IAAO,wCAAyC,QAAS,MAClD,KA7B3B,QAyBgB1J,EAzBhB,OAgCYmD,KAAK40B,+BAA+B/3B,GAhChD,iDAzIgC,qGA8KhC,SAA+Bw3B,GAAY,WACL,MAA/Br0B,KAAK2hB,wBAAkC0S,EACtCr0B,KAAK2lB,mBAAmBmP,8BAA8B90B,KAAKgM,SAAUhM,KAAK2hB,wBACrEtb,MAAK,SAAAxJ,GACF,EAAKilB,gBAERxb,OAAM,SAAAulB,GACHtlB,IAAO,kDAAmD,QAAS,QAG7EvG,KAAK8hB,eAxLqB,0FA4LhC,yHACU9hB,KAAKsQ,cAAcokB,oBAAoB10B,KAAKgM,SAAUhM,KAAKkhB,eAChE7a,MAAK,SAAAmQ,GAGF,OAFA,EAAKsL,aACLvb,IAAO,0BAA2B,UAAW,MACtC,KAEVD,OAAM,SAAAkQ,GAEH,OADAjQ,IAAO,2BAA4B,QAAS,MACrC,KATf,gDA5LgC,iFAyMhC,WACIvG,KAAKimB,MAAM,uBA1MiB,0CA6MhC,WACIjmB,KAAK0hB,mBAAoB,MA9MG,GAAS7e,SAMzCb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,sCAyCAxnB,gBADCuW,gBAAM,eACP,uCAlDiB2b,GAAe,gBAhBnC/sB,gBAAU,CACPL,WAAY,CACRktB,eACA/J,kCACA8K,4BACA/K,iBACA4B,kBACAiF,uBACApE,iBACAuI,sCACA5K,uBACAnF,iBACA4J,uBAIaqF,cC7HyY,MCQ1Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIn0B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,iBAAiB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,YAAY,QAAU7gB,EAAI0vB,iBAAiB,CAACtvB,EAAG,iBAAiB,CAACA,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,OAAO,YAAc,WAAW,YAAc,kBAAkB,MAAQP,EAAIk1B,eAAejtB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIk1B,cAAchtB,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,OAAO,YAAc,WAAW,YAAc,qBAAqB,MAAQP,EAAIm1B,kBAAkBltB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIm1B,iBAAiBjtB,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,eAAe,CAACgL,YAAY,CAAC,QAAU,UAAU7K,MAAM,CAAC,YAAc,WAAW,MAAQP,EAAIo1B,mBAAmB,MAAQ,GAAG,KAAO,mCAAmCntB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIo1B,mBAAmBltB,OAAY,MAAM,GAAG9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIq1B,cAAe,SAAW,QAAQ,QAAU,aAAa,IACpxD,GAAkB,G,sdCkGtB,IAAqBC,GAAgB,4CAyCjC,iDACI,eAzCG,EAAA9lB,MAEH,GAKJ,EAAAe,cAAgB,IAAI/E,GAEpB,EAAAG,QAAuB,GAEvB,EAAAupB,cAAwB,GACxB,EAAAC,iBAA2B,IAC3B,EAAAC,oBAA8B,EA6B1B,EAAKxX,WAFT,EAzCiC,kDAgBjC,WACI,OAAO3d,KAAKgmB,YAjBiB,IAoBjC,SAAkB3nB,GACd2B,KAAKimB,MAAM,YArBkB,+BAyBjC,SAAkB5nB,EAAgB6nB,GAC1B7nB,IACA2B,KAAK8nB,gBAAgBlU,QACrB5T,KAAKi1B,cAAgB,GACrBj1B,KAAKm1B,oBAAqB,KA7BD,4BAiCjC,WACIn1B,KAAKk1B,iBAAmB,MAlCK,2BAqCjC,WACI,OAASl1B,KAAKuP,MAAMwW,mBAAuC3U,WAtC9B,+EA8CjC,2GACQd,EAAgB,IAAI/E,GAD5B,SAEyB+E,EAAc7E,SAFvC,OAEIzL,KAAK0L,QAFT,uDA9CiC,mFAmDjC,WACI1L,KAAK0gB,eAAgB,IApDQ,kFAuDjC,kHACQmH,EAAa7nB,KAAK8nB,gBAAgBC,WAClCF,EAAWG,QAFnB,qDAMQhoB,KAAK0L,QAAQhB,MAAK,SAAAhN,GAAC,OAAIA,EAAEkO,WAAWgM,eAAiB,EAAKqd,cAAchN,OAAOrQ,iBANvF,uBAOQuQ,oBAAM,gFAAiF,yBAP/F,0BAWQmN,EAAiB,8CACjBt1B,KAAKm1B,mBACLG,GAAkB,GAAJ,OAAOt1B,KAAKi1B,cAAZ,6CAGdK,GAAkB,GAAJ,OAAOt1B,KAAKi1B,cAAZ,KAGdp4B,EAASmiB,sBAAQsW,EAAgB,qBACrCz4B,EACKwJ,MAAK,SAAA0Y,GACF,GAAGA,EAAc,CACb,IAAItS,EAAmC,CACnCb,WAAY,EAAKqpB,cACjBM,iBAAkB,EAAKL,iBACvBM,mBAAoB,EAAKL,oBAG7B,EAAK7kB,cAAcmlB,aAAahpB,GAC3BpG,MAAK,SAAAlB,GACF,EAAKwY,WACL,EAAKyX,eACL7uB,IAAO,mCAAD,OAAoC,EAAK0uB,eAAiB,UAAW,YAjCnG,iDAvDiC,8DAASpyB,SAM1Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAmBAznB,gBADCuW,gBAAM,eACP,uCAzBiB8c,GAAgB,gBAdpCluB,gBAAU,CACPL,WAAY,CACR8R,wBACAoR,iBACAF,0BACAG,kCACAN,4BACAO,8BACArK,gCACAzG,gCACAgR,uBACAxK,wCAGayV,cCnG0Y,MCQ3Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCwCf,IAAqBK,GAAW,4CAa9B,iDACE,eAbF,EAAAhqB,QAA+B,GAC/B,EAAA7D,eAAuB,GACvB,EAAAuY,iBAA2B,EAC3B,EAAAG,kBAA4B,EAG5B,EAAAjQ,cAA+B,IAAI/E,GAMnC,EAb8B,yDAS9B,WAAwB,WACtB,OAAOvL,KAAK0L,QAAQ9H,QAAO,SAAAlG,GAAC,OAAIA,EAAEW,OAAS,EAAKwJ,kBAAgB,KAVpC,qBAiB9B,WACE7H,KAAK2d,aAlBuB,+EAqB9B,oHACsB3d,KAAKsQ,cAAc7E,SADzC,OACMC,EADN,OAEE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAH1C,gDArB8B,sFA4B9B,WACE7L,KAAKogB,iBAAkB,IA7BK,+BAgC9B,WACEpgB,KAAKogB,iBAAkB,IAjCK,8BAoC9B,WACEpgB,KAAKugB,kBAAmB,IArCI,yFAwC9B,qGACEvgB,KAAKugB,kBAAmB,EAD1B,SAEQvgB,KAAK2d,WAFb,gDAxC8B,8DAAS9a,cAApB6yB,GAAW,gBAT/BvuB,eAAU,CACTL,WAAY,CACViS,yBACAM,8BACAT,wBACAsb,mBACAmB,wBAGiBK,cC3DkX,MCOnY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI31B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,0BAA0B,IAC/K,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,MAAMA,EAAG,MAAOJ,EAAkB,eAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,uBAAuBP,EAAI41B,kCAAkC,SAAW,IAAI3tB,GAAG,CAAC,eAAejI,EAAI8Z,WAAW,eAAe9Z,EAAI+Z,YAAY,YAAc/Z,EAAIga,oBAAoB,wBAAwBha,EAAIia,aAAa,gBAAgBja,EAAIka,eAAe,CAAC9Z,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,iBAAiB,MAAQ,MAAM,OAAS,IAAI,aAAaP,EAAIqa,aAAa,YAAYra,EAAI61B,eAAez1B,EAAG,UAAU,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,eAAc,EAAK,SAAU,EAAM,cAAc,cAAc,iBAAiB,CAAEga,UAAU,EAAMjc,MAAO0B,EAAI8H,eAAgB0S,WAAYxa,EAAI2L,QAAS8O,YAAa,OAAQC,UAAW,YAAata,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,WAAW,iBAAiB,CAAEya,eAAe,EAAMD,iBAAiB,EAAM+a,YAAa,QAAStb,WAAYxa,EAAI+1B,eAAgBtb,YAAa,OAAQC,UAAW,YAAata,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,eAAc,KAAQH,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,eAAc,KAAQH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,eAAc,MAAS,IAAI,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,UAAU,QAAU,QAAQ,gBAAgB,CAAEia,WAAYxa,EAAIg2B,UAAW/Z,aAAa,GAAO,cAAgBjc,EAAIi2B,kBAAkB,mBAAkB,EAAM,0BAAyB,EAAK,uBAAuB,cAAc,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIg2B,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAG51B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,gBAAgB,CAAEia,WAAYxa,EAAIk2B,UAAW,mBAAkB,EAAM,0BAAyB,IAAO,CAAC91B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIk2B,SAAS,aAAa,QAAQ,eAAe,WAAW,GAAG91B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,SAAS,gBAAgB,CAAEia,WAAYxa,EAAIm2B,uCAAwC,mBAAkB,EAAM,0BAAyB,IAAO,CAAC/1B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm2B,sCAAsC,aAAa,QAAQ,eAAe,WAAW,GAAG/1B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,QAAU,OAAO,0BAAyB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,KAAO,UAAU,QAAU,GAAG,aAAa,WAAW,gBAAgB,CAAEia,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,gBAAgB,CAAEjc,EAAI8H,oBAAqB,GAAG9H,EAAIyI,MAAM,IAClkG,GAAkB,G,sdCGf,ICFK2tB,GDECC,GAAb,4CACE,WAAYxlB,GAAe,0CACnBA,GAFV,wGAKE,8GACe5Q,KAAK0D,OAAOzF,IAAI,UAD/B,wFALF,8DAA2Cge,KCF3C,SAAYka,GACVA,+BACAA,mBACAA,qCAHF,CAAYA,QAA4B,KAMjC,IAAME,GAA6D,CACxE,CAAE1qB,KAAM,cAAetN,MAAO,eAC9B,CAAEsN,KAAM,QAAStN,MAAO,SACxB,CAAEsN,KAAM,iBAAkBtN,MAAO,mB,sdC0InC,IAAqBi4B,GAAmB,4CA0BtC,iDACE,eA1BF,EAAA5qB,QAA+B,GAC/B,EAAAqqB,UAAiC,GACjC,EAAAD,eAAsC,GACtC,EAAAG,SAAgC,GAChC,EAAApuB,eAAuB,GACvB,EAAAquB,sCAA6DG,GAK7D,EAAA9lB,aAA6B,IAAInD,GACjC,EAAAkD,cAA+B,IAAI/E,GAgBjC,EAAKgrB,uBAAyB,IAAIH,GAChC,wBAEF,EAAKT,kCAAoC,CACvCh3B,IAAK,mBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAKga,uBAAuBjY,OAAO/B,IACxDE,OAAQ,SAAAC,GAAM,OAAI,EAAK6Z,uBAAuB73B,OAAOge,IACrDG,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAK6Z,uBAAuBzZ,KAAKne,EAAK+d,IAC/DtX,OAAQ,SAAAzG,GAAG,OAAI,EAAK43B,uBAAuBxZ,OAAOpe,KAVtD,EA1BsC,6DAetC,WAAsB,WACpBqB,KAAK81B,eAAiB,GACnB91B,KAAK6H,gBACN7H,KAAKsQ,cAAckmB,mBAAmBx2B,KAAK6H,gBAAgBxB,MAAK,SAAAxJ,GAC9D,EAAKi5B,eAAiBj5B,EAAOwC,KAAI,SAAAkO,GAC/B,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,iBApBP,qBAwCtC,WACEzN,KAAK2d,aAzC+B,+EA4CtC,wHACsB3d,KAAKsQ,cAAc7E,SADzC,cACMC,EADN,OAEE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAH1C,SAMqB7L,KAAKuQ,aAAa9E,SANvC,cAMM6B,EANN,OAOEtN,KAAK+1B,UAAYzoB,EAAOjO,KAAI,SAAAkO,GAC1B,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,YARzC,UAWuBzN,KAAKu2B,uBAAuBE,WAXnD,QAWMR,EAXN,OAYEj2B,KAAKi2B,SAAWA,EAAS52B,KAAI,SAAAf,GAC3B,MAAO,CAAEqN,KAAMrN,EAAE2G,KAAM5G,MAAOC,EAAEo4B,cAbpC,iDA5CsC,0FA6DtC,SAAoBh3B,GAClBM,KAAKue,SAAW7e,EAAEuH,YA9DkB,0BAiEtC,WACMjH,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,kBApEoB,0BAwEtC,SAAata,GAEX,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KA9EC,yBAiFtC,SAAYhf,GACV,IAAIi3B,EAAQxkB,SAASykB,eAAe,6BACjCD,GACDA,EAAMvxB,WApF4B,wBAwFtC,SAAW1F,GACTA,EAAElE,KAAO,CACPqQ,SAAU7L,KAAK6H,eACf6uB,UAAW,EACXG,aAAc,WA5FoB,yBAgGtC,SAAYn3B,GAEVA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,WAlGP,0BAqGtC,SAAajW,GAEX,GAAGA,EAAElE,MAAQkE,EAAElE,KAAKiS,UAAYzN,KAAK81B,eAAeprB,MAAK,SAAA6C,GAAC,OAAIA,EAAElP,QAAUqB,EAAElE,KAAKiS,WAAU,CACzF,IAAIspB,EAAiB,uIACrBxwB,IAAO,CACLuJ,QAASinB,EACT9e,SAAU,CAAEpO,GAAI,SAAUC,GAAI,SAAUC,GAAI7K,OAAQgZ,OAAQ,UAC5D8e,SAAU,MACVC,cAAc,EACdC,YAAa,CAAE13B,GAAI,8BAClB,UAAW,QA/GoB,+BAmHtC,SAAkB23B,GAChB,MAA0B,KAAnBA,EAAKC,UAAmB,MAAQD,EAAKC,cApHR,GAASv0B,cAe/Cb,gBADCuW,gBAAM,mBACP,4CAfmB+d,GAAmB,gBAdvCnvB,eAAU,CACTL,WAAY,CACVuS,8BACAb,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACAD,oBACAvG,wBACAsG,0BAGiBgX,cCrJ6Y,MCO9Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBe,GAAe,yIAASx0B,cAAxBw0B,GAAe,gBANnClwB,eAAU,CACTL,WAAY,CACViS,yBACAud,2BAGiBe,cCnBsX,MCOvY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIt3B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,4BAA4BnH,EAAG,0BAA0B,IACvL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,uBAAuBP,EAAIu3B,kCAAkC,SAAW,IAAItvB,GAAG,CAAC,eAAejI,EAAI8Z,WAAW,eAAe9Z,EAAI+Z,YAAY,gBAAgB/Z,EAAIw3B,WAAW,YAAcx3B,EAAIga,oBAAoB,wBAAwBha,EAAIia,eAAe,CAAC7Z,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,wBAAwB,MAAQ,MAAM,OAAS,MAAM,WAAWP,EAAIqa,gBAAgBja,EAAG,UAAU,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,EAAE,WAAW,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,WAAW,iBAAiBP,EAAIy3B,gBAAgBr3B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,WAAW,iBAAiBP,EAAI03B,eAAet3B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,WAAW,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAI23B,UAAWld,YAAa,OAAQC,UAAW,QAASob,YAAa,aAAc,GAAG11B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,mBAAmB,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAE6a,mBAAmB,EAAMJ,eAAe,EAAMR,WAAYxa,EAAI43B,gBAAiBnd,YAAa,OAAQC,UAAW,QAASK,iBAAiB,MAAU3a,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,uBAAuB,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAC1iDya,eAAe,EACfR,WAAYxa,EAAI63B,oBAChBpd,YAAa,OACbC,UAAW,QACXK,iBAAiB,EACjB+c,YAAa93B,EAAI+3B,4BACd33B,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIg4B,qBAAqB,YAAY,EAAE,WAAW,IAAI,CAAC53B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,cAAc,YAAa,EAAK,iBAAiB,CACpPya,eAAe,EACfR,WAAYxa,EAAIi4B,mCAChBvd,UAAW,QACXD,YAAa,OACbM,iBAAiB,MACd3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAC9Gya,eAAe,EACfR,WAAYxa,EAAIi4B,mCAChBvd,UAAW,QACXD,YAAa,OACbM,iBAAiB,MACd3a,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAIk4B,UAClMzd,YAAa,OAAQC,UAAW,QAASK,iBAAiB,MAAU3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,YAAY,YAAa,EAAK,iBAAiB,CAAEwa,iBAAiB,EAAM0X,iBAAkB,aAAc,GAAGryB,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIm4B,mBAAmB,YAAY,EAAE,WAAW,IAAI,CAAC/3B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAC5aya,eAAe,EACfR,WAAYxa,EAAIo4B,mCAChB1d,UAAW,QACXD,YAAa,OACbM,iBAAiB,MACd3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAC/Gya,eAAe,EACfR,WAAYxa,EAAIq4B,gBAChB3d,UAAW,QACXD,YAAa,OACbM,iBAAiB,MACd3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,YAAY,YAAa,EAAK,iBAAiB,CAAEwa,iBAAiB,EAAM0X,iBAAkB,aAAc,GAAGryB,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIs4B,yBAAyB,YAAY,EAAE,WAAW,IAAI,CAACl4B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,cAAc,cAAc,YAAa,EAAK,iBAAiB,CACjXya,eAAe,EACfR,WAAYxa,EAAIo4B,mCAChB1d,UAAW,QACXD,YAAa,OACbM,iBAAiB,MACd3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAIk4B,UACtJzd,YAAa,OAAQC,UAAW,QAASK,iBAAiB,MAAU3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,YAAY,YAAa,EAAK,iBAAiB,CAAEwa,iBAAiB,EAAM0X,iBAAkB,aAAc,IAAI,IAAI,GAAGryB,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,WAAW,QAAU,SAAS,gBAAgB,CAAEia,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,aAAa,QAAQ,eAAe,WAAW,GAAGvL,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,UAAU,QAAU,QAAQ,gBAAgB,CAAEia,WAAYxa,EAAIuN,OAAQ0O,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIuN,OAAO,aAAa,QAAQ,eAAe,WAAW,GAAGnN,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,UAAU,gBAAgB,CAAEia,WAAYxa,EAAI23B,UAAW1b,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAGv3B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,mBAAmB,QAAU,kBAAkB,gBAAgB,CAAEia,WAAYxa,EAAI43B,iBAAkB,mBAAkB,EAAM,0BAAyB,IAAO,CAACx3B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI43B,gBAAgB,aAAa,QAAQ,eAAe,WAAW,GAAGx3B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,uBAAuB,QAAU,uBAAuB,gBAAgB,CAAEia,WAAYxa,EAAI63B,qBAAsB,mBAAkB,EAAM,0BAAyB,IAAO,CAACz3B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI63B,oBAAoB,aAAa,QAAQ,eAAe,WAAW,GAAGz3B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,UAAU,gBAAgB,CAAEia,WAAYxa,EAAIu4B,WAAYtc,aAAa,MAAU7b,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,UAAU,gBAAgB,CAAEia,WAAYxa,EAAIu4B,WAAYtc,aAAa,MAAU7b,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,WAAW,gBAAgB,CAAEia,WAAYxa,EAAIw4B,aAAcvc,aAAa,GAAO,mBAAkB,EAAM,0BAAyB,IAAO,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIw4B,aAAa,aAAa,QAAQ,eAAe,WAAW,GAAGp4B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,QAAQ,0BAAyB,MAAU,IAAI,IACn5E,GAAkB,G,sdCnCf,ICLKk4B,GDKCC,GAAb,4CACE,WAAY7nB,GAAe,0CACnBA,GAFV,4GAKE,8GACe5Q,KAAK0D,OAAOzF,IAAI,cAD/B,wFALF,wIASE,8GACe+B,KAAK0D,OAAOzF,IAAyB,oBAC/CoI,MAAK,SAAAxJ,GAAM,OAAIA,EAAOwsB,MAAK,SAAC9b,EAAGqE,GAAJ,OAAUrE,EAAEtI,KAAKyzB,cAAc9mB,EAAE3M,YAFjE,wFATF,gJAcE,WAAuB0zB,GAAvB,iGACe34B,KAAK0D,OAAOK,SAAS,iBAAkB40B,GADtD,wFAdF,+DAA2C1c,KCL3C,SAAYuc,GACRA,wCACAA,gDACAA,mDAHJ,CAAYA,QAAkB,KCKvB,IAAMI,GAAb,WAGE,oCACE54B,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,kBAJnD,sGAOE,8GACenD,KAAK0D,OAAOzF,IAAI,IAD/B,wFAPF,yIAWE,8GACe+B,KAAK0D,OAAOzF,IAAI,IAD/B,wFAXF,mJAeE,2HAA0BuN,EAA1B,yCACwBxL,KAAK64B,YAD7B,cACMnB,EADN,OAEM76B,EAAS66B,EAAUr4B,KAAkB,SAAA3B,GACvC,MAAO,CAAEiO,KAAMjO,EAAEmd,YAAaxc,MAAOX,EAAEo7B,cAGrCttB,GACF3O,EAAOiP,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAPzC,kBAUSxB,GAVT,gDAfF,gECHak8B,GAAiD,CAC5D,CAAE16B,MAAO,eAAgBsN,KAAM,kBAI/B,CAAEtN,MAAO,cAAesN,KAAM,gBAC9B,CAAEtN,MAAO,cAAesN,KAAM,iBAGnBqtB,GAAiD,CAC5D,CAAE36B,MAAO,sBAAuBsN,KAAM,yBAEtC,CAAEtN,MAAO,iBAAkBsN,KAAM,wBACjC,CAAEtN,MAAO,cAAesN,KAAM,gBAC9B,CAAEtN,MAAO,gBAAiBsN,KAAM,kBAChC,CAAEtN,MAAO,YAAasN,KAAM,YAC5B,CAAEtN,MAAO,kBAAmBsN,KAAM,0BAClC,CAAEtN,MAAO,uBAAwBsN,KAAM,2BACvC,CAAEtN,MAAO,sBAAuBsN,KAAM,0BACtC,CAAEtN,MAAO,iBAAkBsN,KAAM,oBACjC,CAAEtN,MAAO,mBAAoBsN,KAAM,uBAEnC,CAAEtN,MAAO,2BAA4BsN,KAAM,6BAC3C,CAAEtN,MAAO,iBAAkBsN,KAAM,oB,sdC2RnC,IAAqBstB,GAAmB,4CA2CtC,iDACE,eA3CF,EAAAvtB,QAA+B,GAC/B,EAAA4B,OAA8B,GAC9B,EAAAwoB,eAAsC,GACtC,EAAAjuB,eAAuB,GACvB,EAAA6vB,UAAiC,GACjC,EAAAO,UAAiC,CAC/B,CAACtsB,KAAM,IAAKtN,MAAO,KACnB,CAACsN,KAAM,IAAKtN,MAAO,KACnB,CAACsN,KAAM,IAAKtN,MAAO,KACnB,CAACsN,KAAM,KAAMtN,MAAO,OAEtB,EAAA+5B,gBAAuC,CACrC,CAACzsB,KAAM,kBAAmBtN,MAAO,iBAEjC,CAACsN,KAAM,cAAetN,MAAO,eAM/B,EAAA25B,mCAA0De,GAC1D,EAAAZ,mCAA0Da,GAK1D,EAAApB,oBAA8D,GAC9D,EAAAD,gBAA0D,GAK1D,EAAAI,sBAAgC,EAChC,EAAAG,oBAA8B,EAC9B,EAAAG,0BAAoC,EAEpC,EAAAa,kBAA4B,EAG5B,EAAA3oB,aAA6B,IAAInD,GACjC,EAAAkD,cAA+B,IAAI/E,GAuEnC,EAAAsF,iBAAyB,GAlEvB,EAAKsoB,sBAAwB,IAAIV,GAC/B,wBAGF,EAAKnB,kCAAoC,CACvC34B,IAAK,mBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAK4c,sBAAsB7a,OAAO/B,IACvDE,OAAQ,SAACC,GACP,OAAO,EAAKyc,sBAAsBz6B,OAAOge,GACtCpW,OAAM,SAAC5G,GACN,GAAGA,GAAKA,EAAEoU,QACR,MAAMpU,EAAEoU,QAEV,KAAM,yBAGZ+I,OAAQ,SAACle,EAAK+d,GAEZ,OAAO,EAAKyc,sBAAsBrc,KAAKne,EAAK+d,GACzCpW,OAAM,SAAC5G,GACN,GAAGA,GAAKA,EAAEoU,QACR,MAAMpU,EAAEoU,QAEV,KAAM,yBAGZ1O,OAAQ,SAAAzG,GAAG,OAAI,EAAKw6B,sBAAsBpc,OAAOpe,KA7BrD,EA3CsC,iDAiBtC,WACE,OAAOqB,KAAKi4B,UAAU5yB,OAAOrF,KAAKo4B,mBAlBE,sBAuBtC,WACE,OAAOp4B,KAAKg4B,mCAAmC3yB,OAAOrF,KAAKm4B,sCAxBvB,qBA4EtC,WACEn4B,KAAK2d,aA7E+B,wBA+EtC,WACI,MAAO,CACL,YAAgB,kBAChB,WAAe3d,KAAK0L,QACpB,YAAe,OACf,UAAa,QACb,eAAiB,EACjB,mBAAsB1L,KAAKo5B,yBAC3B,YAAe,WAvFiB,uBA0FtC,WACI,MAAO,CACL,YAAgB,kBAChB,WAAep5B,KAAKsN,OACpB,YAAe,OACf,UAAa,QACb,YAAe,QACf,eAAiB,EACjB,SAAatN,KAAKq5B,YAlGc,+EAsGtC,WAAe35B,GAAf,8FACEA,EAAEuH,UAAUqF,OAAO,aAAc,IACjC5M,EAAEuH,UAAUmK,WAAWkoB,cAFzB,SAGqBt5B,KAAKgR,kBAH1B,OAGMnU,EAHN,OAKE6C,EAAEuH,UAAUqF,OAAO,aAAczP,GAEjC6C,EAAEuH,UAAUmK,WAAWmoB,YAPzB,gDAtGsC,uFAiH9B,WACN,OAAOv5B,KAAKuQ,aAAa9E,OAAOzL,KAAK6Q,kBAC/BxK,MAAK,SAACI,GACN,IAAI5J,EAAS4J,EAAQpH,KAAI,SAAC3B,GACtB,MAAO,CAAEiO,KAAMjO,EAAE8P,UAAWnP,MAAOX,EAAE+P,YAKzC,OAFA5Q,EAAOiP,QAAQ,CAACH,KAAK,MAAOtN,MAAO,KAE5BxB,KAERyJ,OAAM,SAAAulB,GAAG,MAAI,QA5HkB,iCA+HtC,SAAoBta,GAClBvR,KAAK6Q,iBAAmBU,IAhIY,sCAmItC,SAAyB7R,GACvBM,KAAKwR,oBAAoB9R,EAAE+R,aAAc/R,EAAE+R,aAAapT,MAAQ,MApI5B,+EAuItC,oHACuB2B,KAAKsQ,cAAc7E,SACrCpF,MAAK,SAACI,GACL,IAAI5J,EAAS4J,EAAQpH,KAAI,SAAC3B,GACxB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAKxC,OAFAhP,EAAOiP,QAAQ,CAACH,KAAK,MAAOtN,MAAO,KAE5BxB,KAERyJ,OAAM,SAAAulB,GAAG,MAAG,MAXjB,cACE7rB,KAAK0L,QADP,gBAasB1L,KAAKgR,kBAb3B,cAaEhR,KAAKsN,OAbP,OAeMksB,EAAiB,IAAIZ,GAf3B,SAgByBY,EAAe/tB,SACrCpF,MAAK,SAACI,GACL,IAAI5J,EAAS4J,EAAQpH,KAAI,SAAC3B,GACxB,MAAO,CAAEiO,KAAMjO,EAAEmd,YAAaxc,MAAOX,EAAEo7B,cAKzC,OAFAj8B,EAAOiP,QAAQ,CAACH,KAAK,MAAOtN,MAAO,KAE5BxB,KAERyJ,OAAM,SAAAulB,GAAG,MAAI,MA1BhB,cAgBE7rB,KAAK03B,UAhBP,iBA4BmC13B,KAAKm5B,sBAAsBM,eAC3DpzB,MAAK,SAACI,GACL,IAAI5J,EAAS4J,EAAQpH,KAAI,SAACf,GAAY,MAAO,CAAEqN,KAAMrN,EAAE2G,KAAM5G,MAAOC,EAAEo7B,yBAEtE,OAAO78B,KAERyJ,OAAM,SAAAulB,GAAG,MAAI,MAlChB,eA4BE7rB,KAAK43B,oBA5BP,iBAoC+B53B,KAAKm5B,sBAAsB1C,WACrDpwB,MAAK,SAACI,GACL,IAAI5J,EAAS4J,EAAQpH,KAAI,SAACf,GAAY,MAAO,CAAEqN,KAAMrN,EAAE2G,KAAM5G,MAAOC,EAAEq7B,qBAEtE,OAAO98B,KAERyJ,OAAM,SAAAulB,GAAG,MAAI,MA1ClB,QAoCE7rB,KAAK23B,gBApCP,wDAvIsC,0FAoLtC,SAAoBj4B,GAClBM,KAAKue,SAAW7e,EAAEuH,YArLkB,0BAwLtC,SAAavH,GAEX,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAeoS,KA9LE,wBAiMtC,SAAWhf,GACTA,EAAElE,KAAO,CACPqQ,SAAU,GACV4B,QAAS,GACTqrB,UAAW,MAEb94B,KAAKk5B,kBAAoB,IAvMW,yBA2MtC,SAAYx5B,GAEVA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,WA7MP,wBAgNtC,SAAWjW,GACTM,KAAKk5B,iBAAmBx5B,EAAElE,KAAKk+B,qBAC/B15B,KAAK45B,wBAlN+B,0BAsNtC,WACM55B,KAAKue,UACPve,KAAKue,SAASvE,iBAxNoB,qCA4NtC,SAAwBta,GACtBM,KAAKk5B,iBAAmBx5B,EAAEm6B,SAASx7B,MACnC2B,KAAK45B,sBACLl6B,EAAE2W,MAAMyjB,oBA/N4B,yFAkOtC,WAAyBp6B,GAAzB,4FACMq6B,EAAcr6B,EAAErB,MACF,IAAf07B,EAFL,gCAG0B/5B,KAAKsQ,cAAckmB,mBAAmBuD,GAHhE,OAGUzsB,EAHV,OAIMtN,KAAK81B,eAAiBxoB,EAAOjO,KAAI,SAAAkO,GAChC,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,YAEtCzN,KAAK81B,eAAehqB,QAAQ,CAACH,KAAK,MAAOtN,MAAO,KAPtD,+DAlOsC,2FAiP9B,WAKN,OAJA2B,KAAK+3B,sBAAuB,EAC5B/3B,KAAKk4B,oBAAqB,EAC1Bl4B,KAAKq4B,0BAA2B,EAEzBr4B,KAAKk5B,kBACV,KAAKV,GAAmBwB,cACtBh6B,KAAK+3B,sBAAuB,EAC5B,MAEF,KAAKS,GAAmByB,kBACtBj6B,KAAKk4B,oBAAqB,EAC1B,MAEF,KAAKM,GAAmB0B,mBACtBl6B,KAAKq4B,0BAA2B,EAChC,SAjQgC,+BAsQtC,SAAkBlB,GAChB,MAA0B,KAAnBA,EAAKC,UAAmB,MAAQD,EAAKC,cAvQR,GAASv0B,cAA5Bo2B,GAAmB,gBAlBvC9xB,eAAU,CACTL,WAAY,CACVuS,8BACAb,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACAD,oBACApG,8BACAghB,gCACAnhB,wBACAsG,sBACA1G,wBACAkR,8BAGiBmP,cCpT6Y,MCO9Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBmB,GAAe,yIAASv3B,cAAxBu3B,GAAe,gBANnCjzB,eAAU,CACTL,WAAY,CACViS,yBACAkgB,2BAGiBmB,cCnBsX,MCOvY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIr6B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,qBAAqB,CAAC+H,IAAI,WAAWF,GAAG,CAAC,aAAajI,EAAIimB,WAAW,eAAejmB,EAAIimB,WAAW,eAAejmB,EAAIs6B,cAAcl6B,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,mBAAmB,MAAQ,MAAM,OAAS,OAAOH,EAAG,qBAAqB,CAACG,MAAM,CAAC,SAAWP,EAAIu6B,YAAY,WAAav6B,EAAIw6B,YAAYvyB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOlI,EAAImiB,mBAAmB/hB,EAAG,WAAW,CAACG,MAAM,CAAC,QAAUP,EAAIy6B,cAAc,gBAAe,EAAM,0BAAyB,EAAK,cAAa,EAAK,MAAQ,IAAI,OAAS,IAAI,MAAQ,UAAUxyB,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIy6B,cAAcvyB,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,iDAAiDnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI06B,gBAAgB,CAAC16B,EAAIuH,GAAG,QAAQnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI26B,iBAAiB,CAAC36B,EAAIuH,GAAG,UAAU,IAAI,IACthC,GAAkB,GCDlB,GAAS,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAAC+H,IAAI,WAAW5H,MAAM,CAAC,uBAAuBP,EAAI46B,6BAA6B,SAAW,IAAI3yB,GAAG,CAAC,YAAcjI,EAAIga,oBAAoB,oBAAoB,SAAS9R,GAAQ,OAAOlI,EAAI66B,mBAAmB3yB,KAAUnH,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,SAASkH,GACrY,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI86B,UAAUr/B,EAAKA,MAAM,OAAY2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIs6B,WAAW7+B,EAAKA,WAAY,QAAQ,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,OAAO,mBAAkB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,sBAAsB,IAAI,IACjhB,GAAkB,G,sdCAf,IAAMw6B,GAAb,4CACE,WAAYlqB,GAAe,0CACnBA,GAFV,sGAKE,uHAAamqB,EAAb,+BAAkC,GAAlC,SACe/6B,KAAK0D,OAAOiJ,YAAZ,OAAgCouB,GAD/C,wFALF,8DAAuC9e,I,meC8DvC,IAAqB+e,GAAgB,4CASnC,iDACE,eATJ,EAAAzrB,MAEI,GACF,EAAA1H,eAAyB,GAQvB,EAAKozB,kBAAoB,IAAIH,GAC3B,mBAGF,EAAKH,6BAA+B,CAClChqB,KAAM,SAAA4L,GAAW,OAAI,EAAK0e,kBAAkB3c,OAAO/B,KAGrD,EAAKoB,WAXP,EATmC,wGAuBnC,2GACMja,EAAS,IAAIC,2BAAsB3D,KAAKqQ,OAAQ,IADtD,SAEyB3M,EAAOzF,IAAoB,sBAFpD,8DAvBmC,0FA4BnC,SAAoByB,GAClBM,KAAKue,SAAW7e,EAAEuH,YA7Be,uBAgCnC,SAAUzL,GACRwE,KAAKimB,MAAM,aAAczqB,KAjCQ,yBAoCnC,WACEwE,KAAKimB,MAAM,kBArCsB,wBAwCnC,SAAWzqB,GACTwE,KAAKimB,MAAM,eAAgBzqB,KAzCM,yBA4CnC,SAAY++B,GAAyB,WACnCv6B,KAAKi7B,kBAAkBle,OAAOwd,EAAWW,cACtC70B,MAAK,SAAAxJ,GACJ,EAAKs+B,uBA/CwB,6BAmDnC,WACKn7B,KAAKuP,MAAMgP,UACPve,KAAKuP,MAAMgP,SAAiB4c,oBArDF,gCAyDnC,SAAmBz7B,GACjBA,EAAE07B,eAAezgB,MAAM7O,QAAQ,CAC7B+R,SAAU,QACVwd,OAAQ,WACR3uB,QAAS,CACP2Q,MAAO,GAEPie,KAAM,OACNzZ,QAAS7hB,KAAKu7B,YAAY38B,KAAKoB,aAjEF,GAAS6C,cAAzBm4B,GAAgB,gBAVpC7zB,eAAU,CACTL,WAAY,CACV4iB,4BACAlR,uBACAG,wBACA6G,oCACAF,sBACA1G,4BAGiBoiB,cCjE0Y,MCO3Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIj7B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,6BAA6B,MAAQ,MAAM,gBAAe,EAAK,OAAS,MAAM,kBAAiB,EAAK,0BAAyB,EAAM,QAAUP,EAAIu6B,aAAatyB,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIu6B,YAAYryB,GAAQ,wBAAwBlI,EAAIy7B,YAAY,CAACr7B,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQP,EAAI07B,UAAU,iBAAmB,SAASzzB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI07B,UAAUxzB,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,aAAanH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,WAAaP,EAAI27B,cAAc,YAAc,OAAO,UAAY,QAAQ,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,gBAAgB,eAAiB,aAAa,MAAQ37B,EAAI47B,aAAa3zB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI47B,YAAY1zB,OAAY,SAAS9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,aAAckE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIy7B,WAAW,SAAW,QAAQ,QAAU,YAAYr7B,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI+hB,YAAa,SAAW,QAAQ,QAAU,aAAa,IACzhD,GAAkB,GCKT8Z,GAAb,oDACE,KAAAV,aAAe,GACf,KAAAj2B,KAAO,GACP,KAAA42B,aAAe,M,sdC4DGr3B,uBAAUnB,IAAcF,GAA5C,IAeqB24B,GAAgB,4CA6BnC,iDACE,eAtBF,EAAAJ,cAAqC,GAErC,EAAAK,QAAgB,GAChB,EAAAN,UAAoB,GACpB,EAAAE,YAA6B,GAmB3B,EAAKV,kBAAoB,IAAIH,GAC3B,mBAGF,EAAKnd,WANP,EA7BmC,gDAcnC,WACI,OAAO3d,KAAKg8B,UAfmB,IAkBnC,SAAgB39B,GACZ2B,KAAKimB,MAAM,YAnBoB,+BAuBjC,SAAkB5nB,EAAgB6nB,GAC1B7nB,GACF2B,KAAKi8B,cAzBsB,uBAsCnC,WAEMj8B,KAAKu6B,YAOPv6B,KAAK+7B,QAAU/7B,KAAKu6B,WAAWW,aAC/Bl7B,KAAKy7B,UAAYz7B,KAAKu6B,WAAWt1B,KACjCjF,KAAK27B,YAAc37B,KAAKu6B,WAAWsB,eARnC77B,KAAK+7B,QAAU,GACf/7B,KAAKy7B,UAAY,GACjBz7B,KAAK27B,YAAc,MA3CY,+EAqDnC,6GACMj4B,EAAS,IAAIC,2BAAsB3D,KAAKqQ,OAAQ,IADtD,SAEyB3M,EAAOzF,IAAoB,sBAFpD,OAEMi+B,EAFN,OAIEl8B,KAAK07B,cAAiBQ,EAAW78B,KAAI,SAAAL,GACnC,MAAO,CAAE2M,KAAM3M,EAAEm9B,UAAW99B,MAAOW,EAAEo9B,gBALzC,gDArDmC,gFA8D3B,WAAS,WACf,GAAqB,IAAlBp8B,KAAKy7B,UAKR,GAA8B,GAA3Bz7B,KAAK27B,YAAY3/B,OAApB,CAKA,IAAIqgC,EAAgB,IAAIT,GACxBS,EAAcp3B,KAAOjF,KAAKy7B,UAC1BY,EAAcR,aAAe77B,KAAK27B,YAClCU,EAAcnB,aAAe,uCAGV,IAAhBl7B,KAAK+7B,QACN/7B,KAAKi7B,kBAAkBv8B,OAAO29B,GAC3Bh2B,MAAK,SAAAxJ,GACmB,MAApBA,EAAO+mB,KAAK3e,KAIf,EAAK6c,aAHHvb,IAAO,kEAAmE,QAAS,SAQzF81B,EAAcnB,aAAel7B,KAAK+7B,QAClC/7B,KAAKi7B,kBAAkBne,KAAK9c,KAAK+7B,QAASM,GACvCh2B,MAAK,SAAAxJ,GACmB,MAApBA,EAAO+mB,KAAK3e,KAIf,EAAK6c,aAHHvb,IAAO,kEAAmE,QAAS,cA1BzFA,IAAO,kCAAmC,QAAS,UALnDA,IAAO,kCAAmC,QAAS,OAhEpB,wBAuGnC,WACEvG,KAAKs6B,aAAc,MAxGc,GAASz3B,cAE5Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,gCAGAznB,gBADCwnB,mBACD,kCAkBExnB,gBADDuW,gBAAM,aACL,uCAvBiBujB,GAAgB,gBAbpC30B,eAAU,CACTL,WAAY,CACV8R,wBACAob,0BACA/J,kCACAH,0BACAK,wBACA1K,oBACAF,oBACAnG,gCACA4Q,qBAGiB8R,cCpF0Y,MCO3Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCwCf,IAAqBQ,GAAY,4CAS/B,iDACE,eATJ,EAAA/sB,MAEI,GAGF,EAAA+qB,aAAuB,EACvB,EAAAE,eAAyB,EAIvB,EAAKD,WAAa,IAAIqB,GAFxB,EAT+B,sDAe/B,WACM57B,KAAKuP,MAAMgP,UACZve,KAAKuP,MAAMgP,SAAiB4c,oBAjBF,0BAqB/B,WACEn7B,KAAKu6B,WAAa,IAAIqB,GACtB57B,KAAKs6B,aAAc,EACnBt6B,KAAKm7B,oBAxBwB,wBA2B/B,SAAW3/B,GACTwE,KAAKu6B,WAAa/+B,EAAO2J,IAAEihB,UAAU5qB,GAAQ,IAAIogC,GACjD57B,KAAKs6B,aAAc,IA7BU,wBAgC/B,SAAW9+B,GACTwE,KAAKu6B,WAAap1B,IAAEihB,UAAU5qB,GAC9BwE,KAAKw6B,eAAgB,IAlCQ,yBAqC/B,WACGx6B,KAAKuP,MAAMgP,SAAiBmc,YAAY16B,KAAKu6B,YAC9Cv6B,KAAKu6B,WAAa,IAAIqB,GACtB57B,KAAKy6B,eAxCwB,wBA2C/B,WACEz6B,KAAKw6B,eAAgB,EACrBx6B,KAAKu6B,WAAa,IAAIqB,OA7CO,GAAS/4B,cAArBy5B,GAAY,gBAThCn1B,eAAU,CACTL,WAAY,CACViS,yBACAiiB,oBACAc,oBACAxc,sBACA1G,4BAGiB0jB,cC1DmX,MCQpY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIv8B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,2BAA2BnH,EAAG,yBAAyB,IACrL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,uBAAuBP,EAAIw8B,+BAA+B,SAAW,IAAIv0B,GAAG,CAAC,YAAcjI,EAAIga,oBAAoB,wBAAwBha,EAAIia,aAAa,gBAAgBja,EAAIka,aAAa,eAAela,EAAI+Z,cAAc,CAAC3Z,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAM,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,uBAAuB,MAAQ,MAAM,OAAS,MAAM,WAAWP,EAAIqa,gBAAgBja,EAAG,UAAU,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,EAAE,WAAW,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,iBAAiB,CAAEya,eAAe,EAAMyhB,UAAW,MAAUr8B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,gBAAgB,iBAAiB,CAAEya,eAAe,EAAMyhB,UAAW,MAAUr8B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,cAAc,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAI23B,UAAWld,YAAa,OAAQC,UAAW,aAAc,GAAGta,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,EAAE,WAAW,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAI08B,WAAYjiB,YAAa,OAAQC,UAAW,QAAS+hB,UAAW,MAAUr8B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAIm8B,WAAY1hB,YAAa,OAAQC,UAAW,QAAS+hB,UAAW,MAAUr8B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,cAAc,YAAa,EAAK,iBAAiB,CAAEya,eAAe,EAAMR,WAAYxa,EAAI28B,YAAaliB,YAAa,OAAQC,UAAW,QAAS+hB,UAAW,OAAY,GAAGr8B,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,iBAAiB,kBAAoB,6BAA6B,iBAAiB,CAAEk8B,UAAU,MAAUr8B,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,YAAY,YAAa,EAAK,iBAAiB,CAAEwa,iBAAiB,MAAU3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,YAAY,YAAa,EAAK,iBAAiB,CAAEwa,iBAAiB,MAAU3a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,YAAY,iBAAiB,CAAEwa,iBAAiB,OAAW,IAAI,GAAG3a,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,WAAW,QAAU,SAAS,gBAAgB,CAAEia,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,aAAa,QAAQ,eAAe,WAAW,GAAGvL,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,cAAc,gBAAgB,CAAEia,WAAYxa,EAAI28B,YAAa1gB,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI28B,YAAY,aAAa,QAAQ,eAAe,WAAW,GAAGv8B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,QAAU,aAAa,gBAAgB,CAAEia,WAAYxa,EAAIm8B,WAAYlgB,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,aAAa,QAAQ,eAAe,WAAW,GAAG/7B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,QAAU,eAAe,kBAAoB,+BAA+B,CAACH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI48B,oBAAoB,aAAa,QAAQ,eAAe,WAAW,GAAGx8B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,gBAAgB,QAAU,QAAQ,gBAAgB,CAAEia,WAAYxa,EAAIuN,OAAQ0O,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIuN,OAAO,aAAa,QAAQ,eAAe,WAAW,GAAGnN,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,QAAU,WAAW,gBAAgB,CAAEia,WAAYxa,EAAI08B,WAAYzgB,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI08B,WAAW,aAAa,QAAQ,eAAe,WAAW,GAAGt8B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,0BAAyB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,0BAAyB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,UAAU,gBAAgB,CAAEia,WAAYxa,EAAI23B,UAAW1b,aAAa,GAAO,cAAgBjc,EAAIi2B,oBAAoB,CAAC71B,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAGv3B,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,QAAQ,0BAAyB,MAAS,IAAI,IAC9pJ,GAAkB,G,sdCEf,IAAMs8B,GAAb,4CACE,WAAYhsB,GAAe,0CACnBA,GAFV,sGAKE,8GACe5Q,KAAK0D,OAAOzF,IAAI,IAD/B,wFALF,8DAAyCge,I,aCG5B4gB,GAAb,WAGE,oCACE78B,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,mBAJnD,sGAOS,8GACQnD,KAAK0D,OAAOzF,IAAmB,IADvC,wFAPT,yJAWS,WAAgCqxB,EAAgBwN,EAAkBC,GAAlE,8FACDC,EAAYC,yBAAW,IAAIC,KAAKH,GAAO,cADtC,SAEQ/8B,KAAK0D,OAAOzF,IAAZ,kCAA4DqxB,EAA5D,qBAA+EwN,EAA/E,iBAAgGE,IAFxG,wFAXT,qECDaG,GAAb,WAGE,oCACEn9B,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,oBAJnD,wGAOE,8GACenD,KAAK0D,OAAOzF,IAAI,QAD/B,wFAPF,0IAWE,WAAiBm/B,GAAjB,iGACep9B,KAAK0D,OAAOK,SAAS,UAAUq5B,GAD9C,wFAXF,iE,sdCwKA,IAAqBC,GAAiB,4CAiBpC,iDACE,eAjBF,EAAA3xB,QAAgD,GAChD,EAAA4B,OAA+C,GAC/C,EAAAoqB,UAAoD,GACpD,EAAA+E,WAAqD,GACrD,EAAAP,WAAqD,GACrD,EAAAQ,YAAsD,GAGtD,EAAAC,oBAA+D,CAC7D,CAAEhxB,KAAM,KAAMtN,OAAO,GACrB,CAAEsN,KAAM,MAAOtN,OAAO,IAStB,EAAKi/B,oBAAsB,IAAIV,GAAoB,sBAEnD,EAAKjf,WAEL,EAAK4e,+BAAiC,CACpC59B,IAAK,iBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAK+gB,oBAAoBhf,OAAO/B,GAAajW,OAAM,SAAAzJ,GACtE,IAAKA,EAAOgsB,QACV,MAAMlpB,MAAM9C,EAAOiX,SAGrB,OAAOjX,MAET4f,OAAQ,SAAAC,GAAM,OAAI,EAAK4gB,oBAAoB5+B,OAAOge,GAAQpW,OAAM,SAAAzJ,GAC9D,IAAKA,EAAOgsB,QACV,MAAMlpB,MAAM9C,EAAOiX,SAGrB,OAAOjX,MAETggB,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAK4gB,oBAAoBxgB,KAAKne,EAAK+d,GAAQpW,OAAM,SAAAzJ,GACxE,IAAKA,EAAOgsB,QACV,MAAMlpB,MAAM9C,EAAOiX,SAGrB,OAAOjX,MAETuI,OAAQ,SAAAzG,GAAG,OAAI,EAAK2+B,oBAAoBvgB,OAAOpe,GAAK2H,OAAM,SAAAzJ,GACxD,IAAKA,EAAOgsB,QACV,MAAMlpB,MAAM9C,EAAOiX,SAGrB,OAAOjX,OAnCb,EAjBoC,wGAyDpC,sIACMyT,EAAgB,IAAI/E,GAD1B,SAEsB+E,EAAc7E,SAFpC,cAEMC,EAFN,OAGE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAExC7L,KAAK0L,QAAQI,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAEvCkS,EAAe,IAAInD,GARzB,SASqBmD,EAAa9E,SATlC,cASM6B,EATN,OAUEtN,KAAKsN,OAASA,EAAOjO,KAAI,SAAAkO,GACvB,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,YAEvCzN,KAAKsN,OAAOxB,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAEtCm7B,EAAiB,IAAIZ,GAf3B,UAgBwBY,EAAe/tB,SAhBvC,eAgBMisB,EAhBN,OAiBE13B,KAAK03B,UAAYA,EAAUr4B,KAAI,SAAC3B,GAC9B,MAAO,CAAEiO,KAAMjO,EAAEmd,YAAaxc,MAAOX,EAAEo7B,cAEzC94B,KAAK03B,UAAU5rB,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAEzCk/B,EAAkB,IAAIV,GAtB5B,UAuByBU,EAAgB9xB,SAvBzC,eAuBMgxB,EAvBN,OAwBEz8B,KAAKy8B,WAAaA,EAAWp9B,KAAI,SAAC6S,GAChC,MAAO,CAAEvG,KAAMuG,EAAKsrB,aAAcn/B,MAAO6T,EAAKurB,eAG5CC,EAAgB,IAAI/5B,2BAAsB3D,KAAKqQ,OAAQ,IA5B7D,UA6ByBqtB,EAAcz/B,IAAoB,sBA7B3D,QA6BMi+B,EA7BN,OA8BEl8B,KAAKk8B,WAAaA,EAAW78B,KAAI,SAACL,GAChC,MAAO,CAAE2M,KAAM3M,EAAEm9B,UAAW99B,MAAOW,EAAEo9B,gBAGnCuB,EAAoB,IAAIR,GAC5BQ,EAAkBlH,WAAWpwB,MAAK,SAAAu3B,GAChC,EAAKlB,YAAckB,EAAMv+B,KAAI,SAACwQ,GAC5B,MAAO,CAAElE,KAAMkE,EAAK5K,KAAM5G,MAAOwR,EAAKguB,iBAExC,EAAKnB,YAAY5wB,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,QAvCnD,iDAzDoC,mFAoGpC,SAAaqB,GACX,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KAzGD,0BA4GpC,SAAahf,GACa,MAApBA,EAAElE,KAAKs9B,YACTp5B,EAAElE,KAAKs9B,UAAY,IAGE,MAAnBp5B,EAAElE,KAAKqQ,WACTnM,EAAElE,KAAKqQ,SAAW,IAGO,MAAvBnM,EAAElE,KAAKqiC,eACTn+B,EAAElE,KAAKqiC,aAAe,IAGJ,MAAhBn+B,EAAElE,KAAK4mB,MACT1iB,EAAElE,KAAK4mB,MAAQ,CACb3U,QAAS,GACTD,UAAW,IAEoB,MAAxB9N,EAAElE,KAAK4mB,MAAM3U,UACtB/N,EAAElE,KAAK4mB,MAAM3U,QAAU,MA/HS,yBAmIpC,SAAY/N,GACVA,EAAEiW,QAAUxQ,IAAEyZ,MAAM,GAAIlf,EAAEoW,QAASpW,EAAEiW,SAEL,KAA5BjW,EAAEiW,QAAQyM,MAAM3U,UAClB/N,EAAEiW,QAAQyM,MAAM3U,QAAU,0CAvIM,iCA2IpC,SAAoB/N,GAClBM,KAAKue,SAAW7e,EAAEuH,YA5IgB,0BA+IpC,WACMjH,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,kBAlJkB,+BAsJpC,SAAkBmd,GAChB,MAA0B,KAAnBA,EAAKC,UAAmB,MAAQD,EAAKC,cAvJV,GAASv0B,cAA1Bw6B,GAAiB,gBAnBrCl2B,eAAU,CACTL,WAAY,CACVuS,8BACAb,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACAD,oBACApG,8BACAghB,gCACAnhB,wBACAsG,sBACA1G,wBACAkR,0BACAH,gCAGiB0T,cC7K4Y,MCO7Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBS,GAAa,yIAASj7B,cAAtBi7B,GAAa,gBANjC32B,eAAU,CACTL,WAAY,CACViS,yBACAskB,yBAGiBS,cCnBqX,MCOtY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/9B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,gBAAgBnH,EAAG,6BAA6B,IAC9K,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACe,YAAY,QAAQ,CAACf,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,MAAQ,MAAM,cAAcP,EAAI2H,YAAY,YAAc,aAAa,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,eAAe3H,EAAI4H,eAAe,YAAc,kBAAkB,MAAQ5H,EAAI8H,eAAe,mBAAqB9H,EAAIg+B,yBAAyB/1B,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAYlI,EAAI8H,gBAAkB9H,EAAI8H,eAAegE,SAAU1L,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACf,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,iBAAiB,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAIi+B,0BAA0B,KAAKj+B,EAAIyI,MAAM,GAAIzI,EAAI8H,gBAAkB9H,EAAI8H,eAAegE,SAAU1L,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACe,YAAY,2BAA2B,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,mBAAmB,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAIk+B,iCAAiC,GAAG99B,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,yBAAyBnH,EAAG,MAAM,CAACe,YAAY,4BAA4B,CAACf,EAAG,YAAY,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAkB,eAAEsJ,WAAW,mBAAmBnB,IAAI,iBAAiB5H,MAAM,CAAC,uBAAuBP,EAAIm+B,0BAA0Bl2B,GAAG,CAAC,eAAejI,EAAI8Z,WAAW,eAAe9Z,EAAI+Z,YAAY,YAAc/Z,EAAIga,qBAAqBjZ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,SAASkH,GAChpD,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIo+B,eAAe3iC,OAAU2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIq+B,iBAAiB5iC,EAAKA,WAAW,QAAQ,MAAK,EAAM,aAAa,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,4BAA4BH,EAAG,WAAW,CAACG,MAAM,CAAC,qBAAqB,CAAC,GAAI,GAAI,GAAI,KAAK,2BAA0B,EAAK,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,eAAe,QAAU,OAAO,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,gBAAgB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,QAAU,cAAc,aAAa,yBAAyB,YAAY,SAAS,4BAA4BP,EAAIs+B,iBAAiB,gBAAgB,CAAE9jB,WAAYxa,EAAI28B,aAAc,8BAA8B38B,EAAIu+B,+BAA+Bn+B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,kBAAkB,SAAW,aAAa,OAAQ,EAAK,iBAAiB,YAAY,IAAI,KAAKH,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,mBAAmB,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAIw+B,+BAA+B,GAAGp+B,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,wBAAwBnH,EAAG,MAAM,CAACe,YAAY,2BAA2B,CAACf,EAAG,YAAY,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAkB,eAAEsJ,WAAW,mBAAmBnB,IAAI,gBAAgB5H,MAAM,CAAC,uBAAuBP,EAAIy+B,wBAAwB,oBAAoB,CAAEC,SAAS,EAAOC,QAAQ,EAAMC,WAAW,IAAQ79B,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,SAASkH,GAC/gE,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6+B,oBAAoBpjC,OAAU2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI8+B,sBAAsBrjC,EAAKA,WAAW,OAAO,CAACmD,IAAI,mBAAmBqC,GAAG,SAASkH,GAC7X,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAAE3E,EAAKA,KAAa,SAAE2E,EAAG,MAAM,CAACJ,EAAIuH,GAAG,yEAAyEnH,EAAG,MAAM,CAACJ,EAAIuH,GAAG,6EAA6E,MAAK,EAAM,YAAY,CAACnH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,2BAA2BH,EAAG,WAAW,CAACG,MAAM,CAAC,qBAAqB,CAAC,GAAI,GAAI,GAAI,KAAK,2BAA0B,EAAK,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,gBAAe,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,YAAY,QAAU,QAAQ,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,eAAe,QAAU,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,WAAW,QAAU,WAAW,YAAY,SAAS,gBAAgB,mBAAmB,gBAAgB,CAAEia,WAAYxa,EAAI++B,oBAAqB3+B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,SAAS,QAAU,SAAS,YAAY,SAAS,gBAAgB,CAAEia,WAAYxa,EAAIg/B,eAAgB,8BAA8Bh/B,EAAIi/B,2BAA2B7+B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,gBAAgB,YAAY,OAAO,0BAAyB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,0BAA0B,QAAU,4BAA4B,gBAAgB,CAACia,WAAYxa,EAAIk/B,mCAAmC,oBAAoB,CAACl/B,EAAIs+B,kBAAkB,4BAA4Bt+B,EAAIs+B,iBAAiB,YAAY,SAAS,8BAA8Bt+B,EAAIm/B,yCAAyC,SAAW,qBAAqB/+B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,yBAAyB,YAAY,SAAS,QAAU,cAAc,gBAAgB,CAAEia,WAAYxa,EAAI28B,aAAc,8BAA8B38B,EAAIu+B,+BAA+Bn+B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,kBAAkB,SAAW,iBAAiB,IAAI,OAAOP,EAAIyI,KAAKrI,EAAG,iCAAiC,CAACG,MAAM,CAAC,WAAaP,EAAIo/B,wBAAwBn3B,GAAG,CAAC,yBAA2BjI,EAAIq/B,yBAAyB,2BAA6Br/B,EAAIs/B,6BAA6Bl/B,EAAG,wBAAwB,CAACG,MAAM,CAAC,WAAaP,EAAIu/B,sBAAsB,OAASv/B,EAAIw/B,kBAAkB,SAAWx/B,EAAIy/B,aAAa,YAAcz/B,EAAI0/B,YAAY,aAAe1/B,EAAI2/B,aAAa,SAAW3/B,EAAI4/B,kBAAkB33B,GAAG,CAAC,OAASjI,EAAI6/B,wBAAwB,OAAS7/B,EAAI8/B,kBAAkB1/B,EAAG,6BAA6B,CAACG,MAAM,CAAC,WAAaP,EAAI+/B,wBAAwB,eAAiB//B,EAAI8H,eAAe,aAAe9H,EAAIggC,aAAa1gC,KAAI,SAAUmX,GAAK,OAAOA,EAAE/I,YAAazF,GAAG,CAAC,gBAAkBjI,EAAIigC,mBAAmB7/B,EAAG,4BAA4B,CAACG,MAAM,CAAC,WAAaP,EAAIkgC,WAAW,OAASlgC,EAAIw/B,mBAAmBv3B,GAAG,CAAC,OAASjI,EAAI6/B,2BAA2Bz/B,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAImgC,oBAAoBl4B,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAImgC,mBAAmBj4B,OAAY,IAC3mG,GAAkB,G,meCEf,ICTKk4B,GAMAC,GAMAC,GAKAC,GDRCC,GAAb,4CACE,WAAY3vB,GAAe,0CACnBA,GAFV,oHAKS,WAA2B5E,GAA3B,iGACQhM,KAAK0D,OAAOzF,IAAZ,WAAoB+N,IAD5B,wFALT,mJASS,WAAyBU,EAAsBV,GAA/C,iGACQhM,KAAK0D,OAAOiJ,YAAZ,kBAAmCX,EAAnC,WAAsDU,GAD9D,wFATT,oJAaS,WAAwBA,EAAsBV,GAA9C,iGACQhM,KAAK0D,OAAOiJ,YAAZ,kBAAmCX,EAAnC,UAAqDU,GAD7D,wFAbT,mJAiBS,WAAuBA,EAAsBV,EAAgBw0B,GAA7D,iGACQxgC,KAAK0D,OAAOiJ,YAAZ,kBAAmCX,EAAnC,wBAA2Dw0B,GAAa9zB,GADhF,wFAjBT,uKAqBS,WAAyC+zB,EAAkBttB,GAA3D,qFACDstB,EADC,gCAEUzgC,KAAK0D,OAAOiJ,YAAZ,oCAAqD8zB,EAArD,iBAAwEttB,GAAW,KAF7F,+DAKQzO,QAAQ5E,QAAQ,IALxB,wFArBT,2JA6BS,WAA+B2gC,GAA/B,qFACDA,EADC,gCAEUzgC,KAAK0D,OAAOzF,IAAZ,oCAA6CwiC,EAA7C,YAFV,+DAKQ/7B,QAAQ5E,QAAQ,IALxB,wFA7BT,0JAqCS,WAAgC4gC,GAAhC,iGACQ1gC,KAAK0D,OAAOK,SAAZ,iBAAuC28B,GAD/C,wFArCT,qJAyCS,WAA2BC,GAA3B,iGACQ3gC,KAAK0D,OAAOQ,YAAYC,qBAAeyK,IAAK,GAAI+xB,GADxD,wFAzCT,+IA6CS,WAAqBF,GAArB,iGACQzgC,KAAK0D,OAAOiL,QAAqBxK,qBAAe2K,OAAhD,WAA4D2xB,IADpE,wFA7CT,kJAiDS,WAAwBG,GAAxB,4GAA6Cl9B,EAA7C,+BAA8D,GAAKm9B,EAAnE,+BAAmF,GAAnF,SACQ7gC,KAAK0D,OAAOzF,IAAZ,wBAAiC2iC,EAAjC,qBAA0Dl9B,EAA1D,oBAA4Em9B,IADpF,wFAjDT,4JAqDS,WAAkCC,GAAlC,iGACQ9gC,KAAK0D,OAAOzF,IAAZ,0CAAmD6iC,IAD3D,wFArDT,gKAyDS,WAAsCA,GAAtC,iGACQ9gC,KAAK0D,OAAOzF,IAAZ,WAAoB6iC,EAApB,uBADR,wFAzDT,6JA6DS,WAAmCA,EAAwBC,GAA3D,iGACQ/gC,KAAK0D,OAAOK,SAAZ,6BAA2C+8B,GAAoBC,GADvE,wFA7DT,qJAiES,WAAyB/0B,EAAgBg1B,GAAzC,iGACQhhC,KAAK0D,OAAOiJ,YAAZ,0BAA2CX,GAAYg1B,GAD/D,wFAjET,yJAqES,WAA6BC,GAA7B,iGACQjhC,KAAK0D,OAAOiJ,YAAZ,0BAAmDs0B,GAD3D,wFArET,sJAyES,WAA4B5N,GAA5B,iGACQrzB,KAAK0D,OAAOiJ,YAAZ,qBAA8C0mB,GADtD,wFAzET,uJA6ES,WAA6B6N,EAAqBC,GAAlD,8FACDC,EAAwC,CAAEC,cAAeH,EAAeI,MAAOH,GAD9E,SAEQnhC,KAAK0D,OAAOiJ,YAAZ,6BAAsDy0B,GAF9D,wFA7ET,gJAkFS,WAAoBG,GAApB,iGACQvhC,KAAK0D,OAAOiJ,YAAZ,kBAA2C40B,GADnD,wFAlFT,6IAsFS,WAAmBd,GAAnB,iGACQzgC,KAAK0D,OAAOzF,IAAZ,sBAA+BwiC,IADvC,wFAtFT,+DAAsCxkB,IETlC,GAAS,WAAa,IAAIlc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,YAAY,OAAO,aAAa,OAAO,cAAa,EAAK,MAAQP,EAAIyhC,YAAY,gBAAe,EAAM,0BAAyB,EAAM,QAAUzhC,EAAI2gB,cAAc,WAAW3gB,EAAI2vB,aAAa,YAAY3vB,EAAI4gB,eAAe3Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI0hC,OAAO,CAACthC,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,UAAU,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,GAAK,eAAe,YAAY,EAAE,YAAYP,EAAI2hC,cAAc,iBAAiB,OAAO5gC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,uBAAuBqC,GAAG,SAASkH,GAChvB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,OAAO,KAAO,qBAAqB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4hC,kBAAkBnmC,OAAU2E,EAAG,cAAc,CAACG,MAAM,CAAC,KAAO,OAAO,MAAQ9E,EAAKomC,cAAcvjC,MAAM,uBAAsB,GAAM2J,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKomC,cAAe,QAAS35B,IAAS,aAAelI,EAAI8hC,gBAAgB,SAAS,CAAC1hC,EAAG,UAAU,CAACG,MAAM,CAAC,MAAQ,CAACqL,KAAK,UAAU,WAAW,GAAG7K,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,cAAc,CAACG,MAAM,CAAC,aAAY,GAAM4tB,MAAM,CAAC7vB,MAAO0B,EAAI+hC,UAAoB,WAAE3T,SAAS,SAAUC,GAAMruB,EAAIyhB,KAAKzhB,EAAI+hC,UAAW,aAAc1T,IAAM/kB,WAAW,4BAA4BpI,OAAM,OAAUd,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,UAAU,MAAQ,CAAEqL,KAAM,SAAU,WAAW,EAAE,iBAAiB5L,EAAI03B,YAAY,cAAc,WAAW,mBAAmB13B,EAAIgiC,gBAAgBlB,MAAM,SAAW,iBAAiB,QAAU9gC,EAAIiiC,cAAc7hC,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,QAAQ,WAAW,EAAE,QAAUP,EAAIkiC,eAAe9hC,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,MAAQ,CACxkCqL,KAAQ5L,EAAIkiC,YAAkC,aAApB,oBAC5B,WAAW,EAAE,cAAc,YAAY,mBAAmBliC,EAAIgiC,gBAAgBG,UAAU,SAAW,iBAAiB,iBAAiBniC,EAAIoiC,sBAAsB,QAAUpiC,EAAIoiC,sBAAsBpW,WAAW5rB,EAAG,UAAU,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,aAAa,eAAe,MAAQ,CAC3RqL,KAAQ5L,EAAIkiC,YAAkC,aAApB,oBAC5B,WAAW,EAAE,mBAAmBliC,EAAIgiC,gBAAgBG,UAAU,cAAc,WAAW,iBAAiBniC,EAAIqiC,eAAe,QAAUriC,EAAIqiC,eAAerW,QAAQ,SAAW,oBAAoB5rB,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,iBAAiB,cAAc,cAAc,MAAQ,CAACqL,KAAK,gBAAgB,iBAAiB5L,EAAIsiC,sBAAsBliC,EAAG,UAAU,CAACG,MAAM,CAAC,WAAW,EAAE,aAAa,cAAc,MAAQ,CAACqL,KAAK,eAAe,iBAAiB5L,EAAIuiC,aAAa,cAAc,WAAW,mBAAmBviC,EAAIgiC,gBAAgBQ,cAAcpiC,EAAG,UAAU,CAACG,MAAM,CAAC,WAA+B,UAApBP,EAAI0/B,YAA0B,EAAI,EAAE,aAAa,aAAa,MAAQ,CAAC9zB,KAAK,iBAAiB,iBAAiB5L,EAAIyiC,eAAe,cAAc,cAAc,mBAAmBziC,EAAIgiC,gBAAgBjF,YAAY38B,EAAG,UAAU,CAACG,MAAM,CAAC,WAA+B,UAApBP,EAAI0/B,YAA0B,EAAI,EAAE,aAAa,gBAAgB,cAAc,YAAY,iBAAiB1/B,EAAI0iC,wBAAwBtiC,EAAG,UAAU,CAACG,MAAM,CAAC,WAAW,EAAE,aAAa,eAAe,cAAc,YAAY,QAA8B,UAApBP,EAAI0/B,YAAwB,SAAW,0BAA0Bt/B,EAAG,UAAU,CAACG,MAAM,CAAC,WAAW,EAAE,aAAa,gBAAgB,MAAQ,CAACqL,KAAK,SAAS,iBAAiB5L,EAAI2iC,aAAa,mBAAmB3iC,EAAIgiC,gBAAgBY,cAAcxiC,EAAG,UAAU,CAACG,MAAM,CAAC,WAAW,EAAE,MAAQ,CAACqL,KAAK,YAAY7K,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAqC,MAA9B0B,EAAI4gC,SAASiC,gBAAuBv5B,WAAW,oCAAoC,CAAClJ,EAAG,MAAM,CAAEJ,EAAI4gC,SAAsB,cAAExgC,EAAG,OAAO,CAACe,YAAY,iBAAiB,CAACf,EAAG,IAAI,CAAC6H,GAAG,CAAC,MAAQjI,EAAI8iC,mBAAmB,CAAC9iC,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI4gC,SAASiC,sBAAsBziC,EAAG,OAAO,CAACJ,EAAIuH,GAAG,IAAIvH,EAAIwH,GAAGxH,EAAI4gC,SAASiC,iBAAiB,OAAOziC,EAAG,YAAY,CAACe,YAAY,cAAcZ,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQjI,EAAI+iC,cAAc,KAAK3iC,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAqC,MAA9B0B,EAAI4gC,SAASiC,gBAAuBv5B,WAAW,oCAAoC,CAAClJ,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,eAAe0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIwP,MAAMwzB,YAAYC,YAAY7iC,EAAG,QAAQ,CAAC+H,IAAI,cAAciD,YAAY,CAAC,QAAU,QAAQ7K,MAAM,CAAC,KAAO,OAAO,OAAS,mBAAmB0H,GAAG,CAAC,OAASjI,EAAIkjC,eAAe,OAAOhiC,OAAM,QAAW,IAAI,KAAKd,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,MAAM,CAACe,YAAY,wBAAwB,CAACf,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,KAAO,YAAY,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAImjC,mBAAmB,KAAK/iC,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,eAAe,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,OAAS,IAAI,cAAcP,EAAIojC,kBAAkB,SAAW,GAAG,YAAcpjC,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,uBAAwB,EAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,mBAAqB5Z,EAAI4Z,QAAQ,qBAAsB,UAAU,iBAAgB,EAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,KAAU/jB,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,eAAerjC,EAAIsjC,eAAeviC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,4BAA4BqC,GAAG,SAASkH,GAChzG,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAAE3E,EAAKA,KAAiB,aAAE2E,EAAG,MAAM,CAACJ,EAAIuH,GAAG,qCAAqCvH,EAAIwH,GAAG/L,EAAKA,KAAK8nC,WAAWr+B,MAAM,oCAAoC9E,EAAG,MAAM,CAACJ,EAAIuH,GAAG,qCAAqCvH,EAAIwH,GAAG/L,EAAKA,KAAK+nC,UAAUpH,WAAW,0CAA0C,CAACx9B,IAAI,iBAAiBqC,GAAG,SAASkH,GACnU,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKgoC,QAAQx7B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,SAAUyM,QAAa,OAAO,CAACtJ,IAAI,eAAeqC,GAAG,SAASkH,GACvL,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI0jC,0BAA0BjoC,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACe,YAAY,mFAAmFV,MAAMT,EAAI2jC,cAAcloC,EAAKA,MAAM8E,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jC,UAAUnoC,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,cAAc,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6jC,sCAAsCpoC,EAAM,cAAc,GAAIuE,EAAI8jC,aAAc1jC,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS,KAAO,gBAAgB,SAAWP,EAAI+jC,WAAWtoC,EAAKA,KAAKuoC,UAAU/7B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIikC,wBAAwBxoC,EAAKA,KAAM,cAAc,GAAGuE,EAAIyI,SAAS,CAAC7J,IAAI,qBAAqBqC,GAAG,SAASkH,GAC36B,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKyoC,WAAW,aAAa,QAAQj8B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,aAAcyM,QAAa,UAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,QAAU,QAAQ,gBAAgB,+BAA+BH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,cAAc,QAAU,cAAc,uBAAuBP,EAAImkC,uBAAuB/jC,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,aAAa,SAAW,mBAAmB,gBAAgB,qBAAqB,QAAU,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAK,aAAa,SAAS,QAAU,SAAS,gBAAgB,oBAAoBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,MAAM,gBAAgB,eAAe,SAAW,iBAAiB,GAAGH,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,KAAO,iBAAiB,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAIokC,oBAAoB,GAAGhkC,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,eAAe,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,OAAS,IAAI,cAAcP,EAAIqkC,uBAAuB,SAAW,GAAG,YAAcrkC,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,uBAAwB,EAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,mBAAqB5Z,EAAI4Z,QAAQ,qBAAsB,UAAU,iBAAgB,EAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,KAAU/jB,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,eAAerjC,EAAIsjC,eAAeviC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GAC7zD,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKgoC,QAAQx7B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,SAAUyM,QAAa,OAAO,CAACtJ,IAAI,eAAeqC,GAAG,SAASkH,GACvL,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIskC,oCAAoC7oC,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACe,YAAY,mFAAmFV,MAAMT,EAAI2jC,cAAcloC,EAAKA,MAAM8E,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jC,UAAUnoC,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,cAAc,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6jC,sCAAsCpoC,EAAM,mBAAmB,GAAIuE,EAAI8jC,aAAc1jC,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS,KAAO,gBAAgB,SAAWP,EAAI+jC,WAAWtoC,EAAKA,KAAKuoC,UAAU/7B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIikC,wBAAwBxoC,EAAKA,KAAM,mBAAmB,GAAGuE,EAAIyI,SAAS,CAAC7J,IAAI,qBAAqBqC,GAAG,SAASkH,GAC/7B,IAAI1M,EAAO0M,EAAI1M,KACvC,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKyoC,WAAW,aAAa,QAAQj8B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,aAAcyM,QAAa,UAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,sBAAsB,QAAU,aAAa,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,cAAc,QAAU,cAAc,uBAAuBP,EAAImkC,uBAAuB/jC,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,aAAa,SAAW,mBAAmB,gBAAgB,qBAAqB,QAAU,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAK,aAAa,SAAS,QAAU,SAAS,gBAAgB,oBAAoBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,MAAM,gBAAgB,eAAe,SAAW,iBAAiB,IAAI,IAAI,OAAOH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,KAAM6C,mBAAkB,GAAO,SAAW,QAAQ,QAAU,YAAYnkC,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIkf,QAAS,SAAW,QAAQ,QAAU,YAAY9e,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAaP,EAAIwkC,sBAAsB,YAAcxkC,EAAI2gC,YAAY,gBAAkB3gC,EAAIykC,qBAAqB,YAAczkC,EAAI0kC,YAAY,oBAAsB1kC,EAAI2kC,gBAAgB,yBAA2B3kC,EAAI4kC,0BAA0B38B,GAAG,CAAC,kBAAoBjI,EAAI6kC,2BAA4B7kC,EAA4B,yBAAE,CAACI,EAAG,sBAAsB,CAACG,MAAM,CAAC,WAAaP,EAAI8kC,kBAAkB,MAAQ9kC,EAAI+kC,mBAAmB,MAAQ/kC,EAAIglC,yBAAyBC,UAAU,UAAYjlC,EAAIglC,yBAAyBE,mBAAmB,WAAallC,EAAIglC,yBAAyBG,oBAAoB,cAAgBnlC,EAAIglC,yBAAyB1D,eAAer5B,GAAG,CAAC,oBAAoB,SAASC,GAAQlI,EAAI8kC,kBAAkB58B,GAAQ,qBAAqB,SAASA,GAAQlI,EAAI8kC,kBAAkB58B,GAAQ,eAAe,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIglC,yBAA0B,YAAa98B,IAAS,mBAAmB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIglC,yBAA0B,qBAAsB98B,IAAS,oBAAoB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIglC,yBAA0B,qBAAsB98B,IAAS,oBAAoB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIglC,yBAA0B,sBAAuB98B,IAAS,qBAAqB,SAASA,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIglC,yBAA0B,sBAAuB98B,QAAalI,EAAIyI,KAAKrI,EAAG,+BAA+B,CAACG,MAAM,CAAC,WAAaP,EAAIolC,4BAA4B,kBAAoBplC,EAAIqlC,yBAAyBp9B,GAAG,CAAC,OAASjI,EAAIslC,2BAA2BllC,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIulC,UAAU,SAAU,EAAK,aAAY,EAAK,gBAAgB,qBAAqBnlC,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,MAAM,aAAa,MAAM,QAAUP,EAAIwlC,sBAAsB,MAAQ,qBAAqBv9B,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIwlC,sBAAsBt9B,KAAU,CAAC9H,EAAG,iBAAiB,CAACG,MAAM,CAAC,iBAAiB,WAAW,iBAAkB,EAAK,eAAgB,EAAK,UAAY,aAAa,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAcP,EAAIylC,UAAU,eAAezlC,EAAI0lC,oBAAoB,GAAGtlC,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI2lC,YAAa,SAAW,QAAQ,QAAU,aAAa,IAAI,IACplH,GAAkB,G,yBDrBtB,SAAYvF,GACVA,4BACAA,oCACAA,6BAHF,CAAYA,QAAW,KAMvB,SAAYC,GACVA,uBACAA,+BACAA,uBAHF,CAAYA,QAAe,KAM3B,SAAYC,GACVA,eACAA,qBAFF,CAAYA,QAAiB,KAK7B,SAAYC,GACVA,qBACAA,mBAFF,CAAYA,QAAgB,KEZrB,ICsBKqF,GAcAC,GAcAC,GC3BAC,GAMAC,GAUAC,GFvCCC,GAAb,WAGI,oCACIjmC,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJvD,yHAOI,WAAgC3D,GAAhC,iGACiBQ,KAAK0D,OAAOzF,IAAZ,4BAA0DuB,EAA1D,iBADjB,wFAPJ,mJAWI,WAAyBA,EAAY6zB,GAArC,iGACiBrzB,KAAK0D,OAAOiJ,YAAZ,4BAA2EnN,EAA3E,wBAAqG6zB,GADtH,wFAXJ,gJAeI,WAAoB7zB,EAAY6zB,GAAhC,iGACiBrzB,KAAK0D,OAAOiJ,YAAZ,4BAA2EnN,EAA3E,oBAAiG6zB,GADlH,wFAfJ,wJAmBI,8GACiBrzB,KAAK0D,OAAOzF,IAAZ,sCADjB,wFAnBJ,iJAuBI,WAAwBuB,GAAxB,iGACiBQ,KAAK0D,OAAOzF,IAAZ,4BAA0DuB,EAA1D,yBADjB,wFAvBJ,iEGAa0mC,GAAb,WAGE,oCACElmC,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,kBAJnD,sGAOE,8GACenD,KAAK0D,OAAOzF,IAAoB,QAD/C,wFAPF,mJAWE,2HAA0BuN,EAA1B,yCACyBxL,KAAKyL,SAD9B,cACMywB,EADN,OAEMr/B,EAASq/B,EAAW78B,KAAkB,SAAAL,GACxC,MAAO,CAAE2M,KAAM3M,EAAEm9B,UAAW99B,MAAOW,EAAEo9B,gBAGnC5wB,GACF3O,EAAOiP,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAPzC,kBAUSxB,GAVT,gDAXF,mIAwBE,WAAU2C,GAAV,iGACeQ,KAAK0D,OAAOzF,IAAZ,WAAkCuB,IADjD,wFAxBF,uIA4BE,WAAahE,GAAb,iGACewE,KAAK0D,OAAOiJ,YAA0B,GAAInR,GADzD,wFA5BF,uIAgCE,WAAagE,EAAYhE,GAAzB,iGACewE,KAAK0D,OAAOiL,QAAsBxK,oBAAeyK,IAAjD,WAA0DpP,GAAMhE,GAD/E,wFAhCF,yIAoCE,WAAagE,GAAb,iGACeQ,KAAK0D,OAAOiL,QAAsBxK,oBAAe2K,OAAjD,WAA6DtP,IAD5E,wFApCF,iECLI,GAAS,WAAa,IAAIO,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,cAAa,EAAK,MAAQP,EAAIyhC,YAAY,gBAAe,EAAM,0BAAyB,EAAM,QAAUzhC,EAAI2gB,cAAc,WAAW3gB,EAAI2vB,aAAa,YAAY3vB,EAAI4gB,cAAc,aAAa5gB,EAAIomC,WAAWn+B,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,KAAU,CAAC9H,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,OAAO,CAAC6H,GAAG,CAAC,OAASjI,EAAI0hC,OAAO,CAACthC,EAAG,oBAAoB,CAACG,MAAM,CAAC,kBAAkBP,EAAIY,OAAO,uBAAuB,OAAO,CAACR,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,OAAO,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIqmC,qBAAqB,SAASjmC,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAAEnB,EAAqB,kBAAEI,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAIsmC,qBAAqB,eAAe,OAAO,aAAa,QAAQ,MAAQtmC,EAAIumC,cAAc,YAAc,cAAc,aAAavmC,EAAIwmC,cAAcv+B,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIumC,cAAcr+B,OAAY,KAAK9H,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAIymC,eAAe,eAAe,OAAO,aAAa,mBAAmB,MAAQzmC,EAAI0mC,mBAAmB,aAAa1mC,EAAIwmC,aAAa,YAAc,qBAAqBv+B,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI0mC,mBAAmBx+B,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,6BAA6B,IAAI,IAAI,aAAaW,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACA,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,MAAM,KAAO,UAAU,eAAe,WAAW,MAAQ,GAAG,WAAWP,EAAI2mC,kBAAkB,SAAW3mC,EAAI4mC,YAAY,GAAGxmC,EAAG,eAAe,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,iBAAgB,EAAM,OAAS,IAAI,cAAcP,EAAI6mC,gBAAgB9I,cAAc,SAAW,GAAG,YAAc/9B,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,eAAiB5Z,EAAI4Z,QAAQ,iBAAkB,KAAK,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,IAAS,aAAehsB,EAAI8mC,mBAAmB/lC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,eAAeqC,GAAG,SAASkH,GACr8F,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,cAAc,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIq+B,iBAAiB5iC,QAAW,OAAO,CAACmD,IAAI,iBAAiBqC,GAAG,SAASkH,GACjP,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmBvE,EAAKA,KAAKurC,OAAO,aAAa,CAAC5mC,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,OAAO,gBAAe,EAAK,oBAAoB,QAAQ,6BAA4B,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAK,aAAa,SAAS,QAAU,SAAS,YAAY,SAAS,gBAAgB,mBAAmB,CAACH,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAK,aAAa,YAAY,QAAU,UAAU,iBAAiB,CAAEu3B,YAAa93B,EAAIinC,cAAe,CAAC7mC,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI0kC,YAAY,eAAe,cAAc,aAAa,eAAetkC,EAAG,kBAAkB,CAACG,MAAM,CAAC,QAAU,uBAAuBH,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAK,aAAa,QAAQ,QAAU,QAAQ,iBAAiB,CAAEu3B,YAAa93B,EAAIinC,cAAe,CAAC7mC,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIknC,UAAU,eAAe,OAAO,aAAa,WAAW9mC,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAK,aAAa,OAAO,iBAAiB,CAAEu3B,YAAa93B,EAAIinC,YAAa,QAAU,SAAS,CAAC7mC,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAImnC,SAAS,YAAc,OAAO,aAAa,WAAW/mC,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,eAAe,SAAW,gBAAgBH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAc,GAAIP,EAAgB,aAAEI,EAAG,OAAO,CAACe,YAAY,wBAAwB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIiU,iBAAiBjU,EAAIyI,MAAM,KAAKvH,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,OAAO,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACnB,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,iBAAiB,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,aAAa,OAAO,OAAS,OAAO4tB,MAAM,CAAC7vB,MAAO0B,EAAI6mC,gBAA2B,YAAEzY,SAAS,SAAUC,GAAMruB,EAAIyhB,KAAKzhB,EAAI6mC,gBAAiB,cAAexY,IAAM/kB,WAAW,gCAAgC,CAAClJ,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,IAAI,SAASW,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACA,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,IAAI,IAAI,OAAOH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM5L,EAAIyhC,YAAa3xB,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,KAAM6C,kBAAmB,OAAQpN,YAAa,CAAE13B,GAAI,gCAAkC,SAAW,QAAQ,QAAU,YAAYW,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIkf,QAAS,SAAW,QAAQ,QAAU,aAAa,IACz5G,GAAkB,G,0BHuDhB,SAAUkoB,GAA0BC,EAAwBC,GAChE,IAAIxqC,EAAS,EAqCb,OAnCsB,MAAnBuqC,EAAMtO,WAAwC,MAAnBuO,EAAMvO,UACZ,MAAnBsO,EAAMtO,WAAwC,MAAnBuO,EAAMvO,UAChCj8B,GAAU,EAEa,MAAnBuqC,EAAMtO,WAAwC,MAAnBuO,EAAMvO,YACrCj8B,EAAS,GAIVuqC,EAAMtO,UAAYuO,EAAMvO,UACvBj8B,GAAU,EAENuqC,EAAMtO,UAAYuO,EAAMvO,YAC5Bj8B,EAAS,GAIF,GAAVA,IACEuqC,EAAME,MAAQD,EAAMC,MACnBzqC,GAAU,EAENuqC,EAAME,MAAQD,EAAMC,QACxBzqC,EAAS,IAIF,GAAVA,IACwB,MAAtBuqC,EAAMG,cAA2C,MAAnBF,EAAMG,UACrC3qC,GAAU,EAEe,MAAnBuqC,EAAMI,WAA2C,MAAtBH,EAAME,eACvC1qC,EAAS,IAINA,E,udAvET,SAAY8oC,GACVA,kBACAA,0BACAA,0BACAA,0BACAA,0BACAA,0BACAA,0BACAA,0BACAA,0BACAA,0BACAA,8BAXF,CAAYA,QAAqB,KAcjC,SAAYC,GACVA,cACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,sBACAA,wBAXF,CAAYA,QAAyB,KAcrC,SAAYC,GACVA,eACAA,qBAFF,CAAYA,QAAoB,KC3BhC,SAAYC,GACVA,oBACAA,8BACAA,kCAHF,CAAYA,QAAqB,KAMjC,SAAYC,GACVA,oCACAA,sBACAA,0BAHF,CAAYA,QAAqB,KAUjC,SAAYC,GACVA,mBACAA,6BAFF,CAAYA,QAAmB,KGyP/B,IAAqByB,GAAiB,4CAyGlC,iDACI,eAzGJ,EAAAl4B,MAEI,GAoEJ,EAAA23B,SAAmD,CAC/C,CAAE7oC,MAAOwnC,GAAqB6B,IAAK/7B,KAAMk6B,GAAqB6B,KAC9D,CAAErpC,MAAOwnC,GAAqB8B,OAAQh8B,KAAMk6B,GAAqB8B,SAErE,EAAAC,cAAwB,EACxB,EAAA5zB,aAAuB,GACvB,EAAA6zB,iBAAwB,CACpBC,YAAc,wDACdC,SAAW,iDAEf,EAAApB,SAAmB,EACnB,EAAAqB,gBAA0B,EAK1B,EAAA3B,qBAA0E,GAC1E,EAAAY,UAAoD,CAChD,CAAE5oC,MAAOsnC,GAAsBsC,GAAIt8B,KAAMi6B,GAA0BqC,IACnE,CAAE5pC,MAAOsnC,GAAsBuC,OAAQv8B,KAAMi6B,GAA0BsC,QACvE,CAAE7pC,MAAOsnC,GAAsBwC,OAAQx8B,KAAMi6B,GAA0BuC,QACvE,CAAE9pC,MAAOsnC,GAAsByC,OAAQz8B,KAAMi6B,GAA0BwC,QACvE,CAAE/pC,MAAOsnC,GAAsB0C,OAAQ18B,KAAMi6B,GAA0ByC,QACvE,CAAEhqC,MAAOsnC,GAAsB2C,OAAQ38B,KAAMi6B,GAA0B0C,QACvE,CAAEjqC,MAAOsnC,GAAsB4C,OAAQ58B,KAAMi6B,GAA0B2C,QACvE,CAAElqC,MAAOsnC,GAAsB6C,OAAQ78B,KAAMi6B,GAA0B4C,QACvE,CAAEnqC,MAAOsnC,GAAsB8C,OAAQ98B,KAAMi6B,GAA0B6C,QACvE,CAAEpqC,MAAOsnC,GAAsB+C,OAAQ/8B,KAAMi6B,GAA0B8C,QACvE,CAAErqC,MAAOsnC,GAAsBgD,QAASh9B,KAAMi6B,GAA0B+C,UAQxE,EAAKnH,YAAc,MACnB,EAAKoH,aAAe,IAAI1C,GACxB,EAAK2C,kBAAoB,IAAI5C,GAC7B,EAAKhL,kBAAoB,IAAIH,GAAkB,mBAC/C,EAAK0L,eAAiB,GACtB,EAAKH,qBAAuB,GAC5B,EAAK3B,gBAAkBrE,GAAkByI,IACzC,EAAKvC,cAAe,EACpB,EAAKwC,mBAAoB,EACzB,EAAKzC,cAAgB,GACrB,EAAKG,mBAAqB,GAZ9B,EAzGkC,iEAQlC,WACI,OAAOzmC,KAAK2kC,0BATkB,IAYlC,SAAiCtmC,GAC7B2B,KAAK2kC,yBAA2BtmC,IAbF,+BAmBlC,WACI,OAAO2B,KAAKgpC,qBApBkB,IAsBlC,SAAwB3qC,GACpB2B,KAAKgpC,oBAAsB3qC,IAvBG,yBA6BlC,WACI,OAAO2B,KAAKgmB,YA9BkB,IAiClC,SAAkB3nB,GACd2B,KAAKipC,gBAlCyB,8BAsClC,SAAiB5qC,EAAgB6nB,GAC1B7nB,GACC2B,KAAKkpC,mBACLlpC,KAAKmpC,yBACLnpC,KAAKopC,qBAGLppC,KAAKqpC,yBA7CqB,2BAoDlC,WACI,OAAOrpC,KAAK0gC,aArDkB,IAwDlC,SAAoBriC,GAChB2B,KAAK0gC,YAAcriC,IAzDW,+BAyHlC,WACE8T,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,KA3HrB,kCA8HlC,WACEr3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KAhIxB,uBAmIlC,WACExpC,KAAKqpC,yBApI2B,uBAuIlC,SAAU3pC,GACM,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YACvCjqC,EAAEkqC,iBACFlqC,EAAEo6B,qBA1I4B,qBA8IlC,SAAQp6B,GACN,GAAIM,KAAK0gB,eAA2B,UAAVhhB,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,UAAW,CACxEjqC,EAAEkqC,iBACFlqC,EAAEo6B,kBACF,IAAI+P,EAAgB13B,SAASykB,eAAe,+BACzCiT,GACDA,EAAc7G,WApJc,oBAyJlC,WACEhjC,KAAKipC,gBA1J2B,yBA6JlC,WAAwD,IAA5CztC,EAA4C,4DAAT6R,EAC3CrN,KAAKgU,aAAe,GACpBhU,KAAKimB,MAAM,oBAAqBzqB,GAC5BA,GACCwE,KAAKuP,MAAMu6B,cAAsB14B,SAAS24B,mBAjKjB,2BAqKlC,SAAcrqC,GACVM,KAAKgoC,gBAAiB,EACtBhoC,KAAK2mC,SAAU,EACf3mC,KAAKsmC,cAAgB,GACrBtmC,KAAKymC,mBAAqB,GAE1BzmC,KAAKgqC,oBA3KyB,uBA8KlC,SAAUtqC,GACNM,KAAKsmC,cAAgBtmC,KAAK4mC,gBAAgBxK,YAC1Cp8B,KAAKymC,mBAAqBzmC,KAAK4mC,gBAAgBjN,iBAC/C35B,KAAKgqC,oBAjLyB,0BAoLlC,SAAatqC,GACNM,KAAKuP,MAAMu6B,eACT9pC,KAAKuP,MAAMu6B,cAAsB14B,SAAS64B,mBAtLjB,6BA0LlC,WACOjqC,KAAKkqC,qBACJlqC,KAAKkqC,oBAAoBt2B,UA5LC,oBAgMlC,SAAOyJ,GACH,OAAGA,EAAQ,IACJ,KAEA,OApMuB,qBAwMlC,SAAQzf,EAAcS,GAClB,OAAOpC,OAAO4D,KAAKG,KAAKka,QAAQlC,QAAQpa,IAAS,EAAIoC,KAAKka,OAAOtc,GAAQS,IAzM3C,mFA4MlC,WAAmB8rC,GAAnB,iGACiBnqC,KAAK4oC,aAAan9B,SACtBpF,MAAK,SAACwN,GACH,IAAIhX,EAASstC,EAASnuC,OAAS,EAAGmJ,IAAEvB,OAAOiQ,GAAU,SAAChP,GAClD,IAAIulC,EAAWjlC,IAAE6M,KAAKm4B,GAAU,SAAA3zB,GAAC,OAAIA,IAAM3R,EAAKu3B,eAEhD,OAAQgO,GAAyB,IAAbA,KACnBv2B,EAEDw2B,EAAOxtC,EAAOwC,KAAI,SAACL,EAAkB8F,GACjC,MAAO,CAAE6G,KAAM3M,EAAEm9B,UAAW99B,MAAOW,EAAEo9B,YAAavsB,KAAM,YAGhE,OAAOw6B,KAEV/jC,OAAM,SAAAulB,GAAG,MAAI,MAf1B,wFA5MkC,kJA8NlC,WAAwBse,GAAxB,iGACiBnqC,KAAK6oC,kBAAkByB,wBAC3BjkC,MAAK,SAACwN,GACC,IAAIhX,EAASstC,EAASnuC,OAAS,EAAImJ,IAAEvB,OAAOiQ,GAAU,SAAChP,GACnD,OAAOM,IAAE6M,KAAKm4B,GAAU,SAAA3zB,GAAC,OAAIA,IAAM3R,EAAK80B,uBACxC9lB,EAEJ,OAAOhX,KAEdyJ,OAAM,SAAAulB,GAAG,MAAI,MAT1B,wFA9NkC,kJA0OlC,WAAwBse,GAAxB,iGACiBnqC,KAAKi7B,kBAAkBxvB,OAAOtG,IAAEvB,OAAOumC,GAAU,SAAAtlC,GAAI,MAAqB,kBAAVA,MACpEwB,MAAK,SAACwN,GACC,IAAIhX,EAASstC,EAASnuC,OAAS,EAAImJ,IAAEvB,OAAOiQ,GAAU,SAAChP,GAC/C,OAAOM,IAAE6M,KAAKm4B,GAAU,SAAA3zB,GAAC,OAAIA,IAAM3R,EAAKq2B,mBAC5CrnB,EAEAw2B,EAAOxtC,EAAOwC,KAAI,SAACL,EAAmB8F,GACtC,MAAO,CAAE6G,KAAM3M,EAAEiG,KAAM5G,MAAOW,EAAEk8B,aAAcrrB,KAAM,YAGxD,OAAOw6B,KAEd/jC,OAAM,SAAAulB,GAAG,MAAI,MAb1B,wFA1OkC,iJA0PlC,2GACI7rB,KAAK+oC,kBAAoB/oC,KAAKomC,sBAAwBJ,GAAoBuE,MACtEJ,EAAWnqC,KAAKwqC,8BACjBxqC,KAAK+oC,kBAHZ,wBAIQ/oC,KAAKsmC,cAAgB,GACrBtmC,KAAKwmC,eAAiB,GAL9B,SAM2BxmC,KAAKyqC,aAAaN,GAN7C,cAMYO,EANZ,iBAO2B1qC,KAAK2qC,kBAAkBR,GAPlD,QAOYS,EAPZ,OASQ5qC,KAAKqmC,qBAAuBlhC,IAAEE,OAAOqlC,EAAQE,GAC1C5qC,KAAK4mC,gBAAgBrD,UACpBvjC,KAAKsmC,cAAgBtmC,KAAK4mC,gBAAgBrD,UAAUnH,YAEhDp8B,KAAK4mC,gBAAgBtD,aACzBtjC,KAAKsmC,cAAgBtmC,KAAK4mC,gBAAgBtD,WAAWpI,cAdjE,+BAkBQl7B,KAAKqmC,qBAAuB,GAlBpC,UAoBoCrmC,KAAK6qC,kBAAkBV,GApB3D,QAoBQnqC,KAAKwmC,eApBb,OAsBWxmC,KAAK4mC,gBAAgBkE,iBACpB9qC,KAAK4mC,gBAAgBjN,iBAAmB35B,KAAK4mC,gBAAgBkE,eAAenR,iBAC5E35B,KAAKymC,mBAAqBzmC,KAAK4mC,gBAAgBkE,eAAenR,kBAxB1E,iDA1PkC,6FAuRlC,WACO35B,KAAK0kC,kBAAoBrE,GAAkB0K,QAC1C/qC,KAAKumC,cAAe,EACpBvmC,KAAKwhC,YAAc,WAGnBxhC,KAAKumC,cAAe,EACpBvmC,KAAKwhC,YAAc,SA9RO,+BAkSlC,SAAkB9hC,GACd,IAAIsrC,EAA2B,CAC3BC,eAAgB,uCAChB5J,cAAerhC,KAAK0gC,YAAYW,cAChCvI,UAAW,EACXwI,MAAO,GACPgG,MAAO,EACP4D,KAAM,MACNnE,OAAQ,EACRlsB,YAAa,GACb2oB,QAAQ,EACRlc,gBAAgB,EAChB6jB,YAAa,IAGbC,EAAQjmC,IAAEihB,UAAU4kB,GACxBhrC,KAAK4mC,gBAAgB9I,cAAchyB,QAAQs/B,GAE3CprC,KAAKqrC,uBApTyB,wBAuTlC,SAAW3rC,GACNM,KAAKuP,MAAMu6B,cAAsB14B,SAAS4I,iBAxTb,wBA2TlC,SAAWhE,EAAekQ,EAAcolB,GACpC,SAAGt1B,EAAS7Z,eAAemvC,KACfplB,EAAS/pB,eAAemvC,IACxBt1B,EAASs1B,KAAUplB,EAASolB,MA9TV,+BAsUlC,SAAkB5rC,GACfM,KAAKqrC,uBAvU0B,0CA0UlC,WACI,IAAIxuC,GAAS,EAET0uC,EAAepmC,IAAEihB,UAAUpmB,KAAK0gC,YAAY5C,eAE5C0N,EAAoBD,EAAa3nC,QAAO,SAAC6nC,EAAKC,EAAK3mC,GACnD,IAAI4mC,EAAMxmC,IAAEvB,OAAOmB,GAAK,SAAAF,GAAI,OAAIA,EAAKi0B,WAAa2S,EAAI3S,WAAaj0B,EAAKqmC,MAAQO,EAAIP,MAAQrmC,EAAKyiC,OAASmE,EAAInE,SAC9G,OAAqB,GAAdqE,EAAI3vC,UAOf,OAJGwvC,EAAkBxvC,SAAWgE,KAAK0gC,YAAY5C,cAAc9hC,SAC3Da,GAAS,GAGNA,IAxVuB,oCA6VlC,WACI,QAAGsI,IAAE6M,KAAKhS,KAAK0gC,YAAY5C,eAAe,SAACj5B,GAAD,YACnBwI,GAAlBxI,EAAKi0B,YAA4Bj0B,EAAKqmC,MAAsB,MAAdrmC,EAAKyiC,OAAiBziC,EAAKkiC,OAAS,OA/VzD,8BAsWlC,SAAiBvrC,GACTwE,KAAK0gC,YAAYkL,uBACjB5rC,KAAK0gC,YAAYkL,qBAAuB,IAGb,wCAA5BpwC,EAAKA,KAAKyvC,gBAA4DzvC,EAAKA,KAAKyvC,gBAC/EjrC,KAAK0gC,YAAYkL,qBAAqBtvC,KAAKd,EAAKA,MAGpDwE,KAAK0gC,YAAY5C,cAAc5gC,OAAO1B,EAAKkyB,SAAU,GAErD1tB,KAAKqrC,uBAjXyB,gCAoXlC,WACI,IAAIQ,EAAe7rC,KAAK8rC,yBACpBC,EAAM/rC,KAAKgsC,+BAEfhsC,KAAK2mC,QAAUkF,GAAgBE,EAC/B/rC,KAAKgoC,eAAiB+D,EAInB/rC,KAAKgU,aADN63B,EACqB7rC,KAAK6nC,iBAAiBE,SAEtCgE,EACgB/rC,KAAK6nC,iBAAiBC,YAGtB,KAnYO,kBAuYlC,SAAKpoC,GAAK,WACN,GAAIM,KAAK0gB,cAAT,CAKA,GAAG1gB,KAAK+oC,mBACJ,GAAyB,MAAtB/oC,KAAKsmC,cAEJ,YADAne,oBAAM,8BAA+B,sBAKzC,GAA8B,MAA3BnoB,KAAKymC,mBAEJ,YADAte,oBAAM,mCAAoC,sBAKlD,GAAGnoB,KAAKgoC,eACJhoC,KAAKgU,aAAehU,KAAK6nC,iBAAiBC,iBAI9C,GAAG9nC,KAAK8rC,yBACJ9rC,KAAKgU,aAAehU,KAAK6nC,iBAAiBE,aAD9C,CAKC/nC,KAAKuP,MAAMu6B,cAAsB14B,SAAS4I,eAC3C,IAAIqZ,EAAUluB,IAAEihB,UAAUpmB,KAAK0gC,aAG/B,GAAG1gC,KAAK+oC,kBAAmB,CACvB,IAAIkD,EAA0B9mC,IAAE6M,KAAKhS,KAAKqmC,sBAAsB,SAAAxhC,GAAI,OAAIA,EAAKxG,QAAU,EAAKioC,iBAEzF2F,IACqC,UAAjCA,EAAwBp8B,MACvBwjB,EAAQ6H,kBAAe7tB,EACvBgmB,EAAQiQ,gBAAaj2B,EACrBgmB,EAAQ+I,YAAc6P,EAAwB5tC,MAC9Cg1B,EAAQkQ,UAAY,CAChBnH,YAAa6P,EAAwB5tC,MACrC89B,UAAW8P,EAAwBtgC,KACnCugC,UAAW,GACXC,OAAQ,GACRC,WAAY,EACZC,oBAAqB,KACrBC,WAAW,KAIfjZ,EAAQ+I,iBAAc/uB,EACtBgmB,EAAQkQ,eAAYl2B,EACpBgmB,EAAQiQ,WAAa,CACjBr+B,KAAMgnC,EAAwBtgC,KAC9BuvB,aAAc+Q,EAAwB5tC,MACtCw9B,aAAc,IAElBxI,EAAQ6H,aAAe+Q,EAAwB5tC,aAMvDg1B,EAAQsG,iBAAmB35B,KAAKymC,mBAChCpT,EAAQyX,eAAiB3lC,IAAE6M,KAAKhS,KAAKwmC,gBACjC,SAAC3hC,GAAD,OAA6BA,EAAK80B,kBAAoBtG,EAAQsG,oBAItE35B,KAAKipC,YAAY5V,GACjBrzB,KAAKgqC,wBA/cyB,GAASnnC,cAM3Cb,gBADCwnB,mBACD,gDAWAxnB,gBADCwnB,mBACD,2CAUAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAWAznB,gBADCuW,gBAAM,eACP,sCAYAvW,gBADCwnB,mBACD,mCAWAxnB,gBADCwnB,mBACD,uCAGAxnB,gBADCwnB,mBACD,mCAhEiBie,GAAiB,gBA5BrCtgC,eAAU,CACTL,WAAY,CACVwY,sBACAhG,gCACAiG,oBACA0K,kCACAsiB,sCACAC,4BACAC,kBACAC,kBACA1Y,0BACA3a,8BACAsQ,4BACAD,4BACA5Q,0BACAH,wBACAC,wBACAI,wBACAiV,8BACAnE,0BACAlK,oCACAsK,iBACAyiB,kCACAltB,oBACArG,gCACAwzB,sCAGiBnF,cCrS4Y,MCQ7Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCbFoF,GAAb,WAIE,oCACE7sC,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,cAC/CnD,KAAK8sC,YAAc,IAAIC,iBAAY5pC,GANvC,2GAUE,WAAkB6pC,EAAmCC,GAArD,qHACSjtC,KAAK8sC,YAAYI,uBAAuB,kCAAkCF,GACxE3mC,KADF,yDACO,WAAOxJ,GAAP,gGACEswC,EAAW,IAAIC,SACnBD,EAASE,OAAO,UAAWJ,GAFzB,SAIc,EAAKvpC,OAAO4pC,OAAOzwC,EAAO0wC,IAAKJ,EAAUtwC,EAAO2wC,OAJ9D,cAIEnZ,EAJF,yBAKKA,GALL,2CADP,kCAAAr0B,KAAA,gBAOIsG,OAAM,SAAC+N,GACN,OAAO5S,KAAKgE,MAAM4O,OAThC,gDAVF,gJAuBE,WAAoBo5B,GAApB,qHACSztC,KAAK0D,OAAOiJ,YAAZ,YAAqC8gC,GACzCpnC,KADI,yDACC,WAAOxJ,GAAP,uGACY,EAAK6G,OAAOgqC,SAAS7wC,EAAO0wC,IAAK1wC,EAAO2wC,OADpD,cACAnZ,EADA,yBAGGA,GAHH,2CADD,kCAAAr0B,KAAA,gBAMJsG,OAAM,SAACulB,GAAD,OAAepqB,KAAKgE,MAAMomB,OAPrC,gDAvBF,iE,aCNI,GAAS,WAAa,IAAI9rB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,cAAa,EAAK,MAAQP,EAAIW,MAAM,gBAAe,EAAM,0BAAyB,EAAM,QAAUX,EAAI2gB,cAAc,aAAa3gB,EAAIomC,WAAWn+B,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,KAAU,CAAC9H,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,OAAO,CAAC6H,GAAG,CAAC,OAASjI,EAAI0hC,OAAO,CAACthC,EAAG,oBAAoB,CAACG,MAAM,CAAC,kBAAkBP,EAAIY,OAAO,uBAAuB,OAAO,CAACR,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,OAAO,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,iBAAiB,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,aAAa,OAAO,OAAS,OAAO4tB,MAAM,CAAC7vB,MAAO0B,EAAoB,iBAAEouB,SAAS,SAAUC,GAAMruB,EAAI4tC,iBAAiBvf,GAAK/kB,WAAW,qBAAqB,CAAClJ,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,IAAI,SAASW,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,eAAe,CAACnB,EAAIuH,GAAG,8BAA8BvH,EAAIwH,GAAGxH,EAAI6tC,YAAY,8BAA8B3sC,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,IAAI,IAAI,OAAOH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,KAAM6C,kBAAmB,OAAQpN,YAAa,CAAE13B,GAAI,gCAAkC,SAAW,QAAQ,QAAU,YAAYW,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIkf,QAAS,SAAW,QAAQ,QAAU,aAAa,IACjiF,GAAkB,G,8eCuHtB,IAAqB4uB,GAAgB,4CAKjC,iDACI,eAHJ,EAAAC,YAActpC,uBAAUnB,IAAcF,GAyB9B,EAAA4qC,iBAA2B,uCAC3B,EAAAJ,iBAAkC,GAtBtC,EAAKK,gBAAkB,IAAIzN,GAAiB,kBAFhD,EALiC,kDA+BjC,WACI,OAAOvgC,KAAKgmB,YAhCiB,IAmCjC,SAAkB3nB,GACd2B,KAAK2tC,iBAAmB,KACxB3tC,KAAKimB,MAAM,oBAAqB5nB,KArCH,kBAwCjC,SAAKqB,GAAK,WACHM,KAAKkhC,eAAiBlhC,KAAKkhC,eAAiBlhC,KAAK+tC,iBAChD/tC,KAAKguC,gBAAgBC,uBAAuBjuC,KAAKkhC,cAAelhC,KAAK2tC,kBACpEtnC,MAAK,SAAAmQ,GACCA,EAAEqS,SACDtiB,IAAO,gBAAiB,UAAW,KACnC,EAAK0f,MAAM,eAAgB,EAAK0nB,kBAChC,EAAK1nB,MAAM,mBAAoB,EAAK6nB,YAAYI,QAAQjpC,MACxD,EAAKghB,MAAM,oBAAqB,IAAIiX,MACpC,EAAKxc,eAAc,GAGnBna,IAAO,oBAAqB,QAAS,QAG5CD,OAAM,SAAAkQ,GACHjQ,IAAO,oBAAqB,QAAS,SAItCvG,KAAK2tC,kBAAoB3tC,KAAK2tC,iBAAiB1lB,QAC9CjoB,KAAKimB,MAAM,eAAgBjmB,KAAK2tC,kBAChC3tC,KAAKimB,MAAM,mBAAoBjmB,KAAK8tC,YAAYI,QAAQjpC,MACxDjF,KAAKimB,MAAM,oBAAqB,IAAIiX,QAGpCl9B,KAAKimB,MAAM,eAAgB,MAC3BjmB,KAAKimB,MAAM,mBAAoB,MAC/BjmB,KAAKimB,MAAM,oBAAqB,OAEpC1f,IAAO,gBAAiB,UAAW,KACnCvG,KAAK0gB,eAAc,KAvEM,oBA4EzB,WACJ1gB,KAAKimB,MAAM,qBAAqB,KA7EH,sBAgFjC,WACI,IAAIroB,EAAe,GACfuwC,EAAoB,GASxB,OAPGnuC,KAAKouC,WAAapuC,KAAKouC,UAAUnmB,SAChCrqB,EAAO,gBAAH,OAAmBoC,KAAKouC,YAG7BpuC,KAAKquC,aACJF,EAAa,GAAH,OAAOG,KAAOtuC,KAAKquC,YAAYt3B,OAAO,iBAE7C,GAAP,OAAUnZ,EAAV,YAAkBuwC,KA3FW,uBA8FzB,WACJnuC,KAAK2tC,iBAAmB3tC,KAAKuuC,QA/FA,oBAkGjC,SAAOlxB,GACH,OAAGA,EAAQ,IACJ,KAEA,SAtGsB,GAASxa,cAW1Cb,gBADCwnB,mBACD,qCAGAxnB,gBADCwnB,mBACD,6BAGAxnB,gBADCwnB,mBACD,6BAGAxnB,gBADCwnB,mBACD,iCAGAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,kCA1BiBqkB,GAAgB,gBAnBpC1mC,eAAU,CACTL,WAAY,CACVwY,sBACAhG,gCACAiG,oBACA0K,kCACAsiB,sCACAC,4BACAC,kBACAC,kBACA1Y,0BACApb,wBACAkR,0BACAI,iBACAyiB,kCACAltB,oBACArG,oCAGiBy0B,cCxH2Y,MCQ5Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI9tC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,gBAAgB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,cAAc,WAAW3gB,EAAI2vB,aAAa,YAAY3vB,EAAI4gB,eAAe3Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,KAAU,CAAC9H,EAAG,MAAM,CAACe,YAAY,wBAAwB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,OAAS,OAAO,SAAW,GAAG,cAAcP,EAAIyuC,uBAAuB,YAAczuC,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,mBAAqB5Z,EAAI4Z,QAAQ,qBAAsB,UAAU,iBAAgB,EAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,KAAUjrB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GACxoC,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKgoC,OAAO,aAAY,GAAMx7B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,SAAUyM,QAAa,OAAO,CAACtJ,IAAI,sBAAsBqC,GAAG,SAASkH,GACvO,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKizC,YAAY,aAAa,QAAQzmC,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,cAAeyM,QAAa,OAAO,CAACtJ,IAAI,qBAAqBqC,GAAG,SAASkH,GACrP,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKyoC,WAAW,aAAa,QAAQj8B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,aAAcyM,QAAa,UAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,wBAAwB,QAAUP,EAAI2uC,iBAAiB,YAAY,YAAYvuC,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,cAAc,QAAU,cAAc,gBAAgB,sBAAsB,SAAW,sBAAsBH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAM,aAAa,aAAa,gBAAgB,qBAAqB,SAAW,mBAAmB,QAAU,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAM,iBAAgB,EAAK,aAAa,SAAS,QAAU,SAAS,gBAAgB,qBAAqB,IAAI,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI4uC,UAAW,SAAW,QAAQ,QAAU,aAAa,IAC7gC,GAAkB,G,sdC8GtB,IAAqBC,GAAwB,4CAA7C,iD,0BAkCI,EAAAC,YAAsB,EAlC1B,EAA6C,2DAUzC,WACI,OAAG7uC,KAAK8uC,mBACJ9uC,KAAK6uC,WAAa7uC,KAAK8uC,kBAAkBC,iBAAmB/I,GAAoBuE,MACzE,CAACvqC,KAAK8uC,oBAGN,KAhB0B,yBAuBzC,WACI,OAAO9uC,KAAKgmB,YAxByB,IA2BzC,SAAkB3nB,GACd2B,KAAKipC,gBA5BgC,yBA+BjC,WACJjpC,KAAKimB,MAAM,YAhC0B,0BAoCzC,SAAavmB,MApC4B,2BAuCzC,SAAcA,MAvC2B,qBA2CzC,SAAQ9B,EAAcS,GAClB,OAAOpC,OAAO4D,KAAKG,KAAKka,QAAQlC,QAAQpa,IAAS,EAAIoC,KAAKka,OAAOtc,GAAQS,IA5CpC,sBA8CzC,SAASqB,GACLM,KAAK0gB,eAAgB,IA/CgB,4BAiDzC,WACI,OAAG1gB,KAAK6uC,WACG,aAGA,sBAtD0B,GAAShsC,cAQlDb,gBAPCwnB,gBAAK,CAACC,QAAU,CACbglB,YAAa,GACbO,sBAAuB,GACvBxL,QAAQ,EACRS,WAAY,GACZ8K,gBAAiB/I,GAAoBuE,UAEzC,yCAaAvoC,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCArBiBmlB,GAAwB,gBAV5CznC,eAAU,CACTL,WAAY,CACVkjB,iBACAN,4BACApQ,gCACAX,wBACAsR,kCACAN,gCAGiBilB,cCrHoZ,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCwef,IAAMN,GAASW,EAAQ,QAEjBC,GAAmC,CACjC,CAAEjqC,KAAO,KAAMkqC,OAAQ,GACvB,CAAElqC,KAAO,MAAOkqC,OAAQ,IAoCXC,GAAkB,4CA+PnC,iDACI,eA/PJ,EAAA7/B,MAKI,GAqFI,EAAAg2B,uBAAiC,EAEzC,EAAA8J,mBAA4C,GA4D5C,EAAA7N,YAAsB,GACtB,EAAA8N,gBAAuB,GASf,EAAA/+B,aAA8B,IAAInD,GAQ1C,EAAA+3B,6BAAuC,EACvC,EAAAC,wBAA+B,GAE/B,EAAAmK,yBAAgC,GAChC,EAAA9K,YAA4B,GAC5B,EAAAr8B,cAAsB,GAEtB,EAAA65B,aAAuB,EACvB,EAAAD,YAAsB,EACtB,EAAAwN,kBAA4B,EAG5B,EAAAhL,qBAA2CnE,GAAkByI,IAE7D,EAAA2G,4BAAoC,GACpC,EAAAtM,kBAA4C,GAC5C,EAAAiB,uBAAiD,GACzC,EAAAM,gBAAwCsB,GAAoBuE,MACpE,EAAAmF,yBAAmC,GACnC,EAAA/K,yBAA8C,GACtC,EAAAr3B,OAAqB,GAC7B,EAAAqiC,eAAsB,CAAC,iBACvB,EAAA9K,mBAA6B,EAC7B,EAAAE,yBAAkD,KAC1C,EAAA6K,eAAiC,KACjC,EAAAC,iBAAmC,KAEnC,EAAAvK,WAAqB,EAE7B,EAAAwK,YAA2B,IAAIr/B,KAAY,CACvCC,SAAU,MACVC,KAAM,SAACjE,GACP,OAAO,EAAKixB,kBAAkBlH,WACzBpwB,MAAK,SAACI,GACH,IAAIspC,EAAsB,CACtBlS,cAAe,EACf54B,KAAM,OAIV,OADAwB,EAAQqF,QAAQikC,GACTtpC,KAEVH,OAAM,SAAAulB,GACH,MAAO,SAMnB,EAAAmkB,cAA6B,IAAIv/B,KAAY,CACzCC,SAAU,MACVC,KAAM,SAACjE,GACH,OAAO,EAAK6wB,gBAAgB9xB,YAIpC,EAAAwkC,eAA8B,IAAIx/B,KAAY,CAC1CC,SAAU,MACVC,KAAM,SAACjE,GACH,OAAO,EAAKk8B,aAAan9B,YAkDjC,EAAA42B,mBAA0B,CACtB,MAAU6M,GACV,YAAe,OACf,UAAa,SAGjB,EAAA9M,eAAsB,CAClB,YAAgB,0BAChB,WAAe,EAAK8N,cACpB,YAAe,eACf,UAAa,eACb,mBAAsB,EAAKC,2BAC3B,SAAY,GAGhB,EAAAhO,sBAA6B,CACzB,SAAW,EACX,UAAa,KAiBjB,EAAAG,aAAoB,CAChB,YAAe,OACf,UAAa,eACb,YAAgB,qBAChB,WAAe,EAAKwN,YACpB,uBAA0B,EAC1B,eAAmB,aACnB,WAAc,GAGlB,EAAAtN,eAAsB,CAClB,YAAe,eACf,UAAa,aACb,YAAgB,kBAChB,WAAe,EAAKwN,eAGhB,EAAAxK,UAAoB,GAgB5B,EAAA9C,aAAoB,CAClB,UAAa,KAGf,EAAAD,qBAA4B,CAC1B,kBAAoB,GAGtB,EAAAV,gBAAuB,CACnBqO,aAAc,CACV,CAACvgC,KAAM,WAAYC,QAAS,8BAEhCyyB,WAAc,CACV,CAAC1yB,KAAM,WAAYC,QAAS,4BAC5B,CACID,KAAM,SACNC,QAAS,kEACTugC,mBAAoB,EAAKC,qBAGjCxT,SAAY,CACR,CAACjtB,KAAM,WAAYC,QAAS,0BAEhC+wB,MAAQ,CACJ,CAAEhxB,KAAM,WAAYC,QAAS,uBAEjCoyB,UAAW,CACP,CAACryB,KAAM,WAAYC,QAAS,4BAEhC6yB,WAAY,CACP,CAAC9yB,KAAM,WAAYC,QAAS,wBAIrC,EAAAygC,qBAA+B,EA5H3B,EAAKhM,uBAAwB,EAC7B,EAAK2L,cAAgB,EAAKM,sBAC1B,EAAKlgC,cAAgB,IAAI/E,GACzB,EAAKoyB,kBAAoB,IAAIR,GAC7B,EAAKI,gBAAkB,IAAIV,GAC3B,EAAKgM,kBAAoB,IAAI5C,GAC7B,EAAKzM,eAAiB,IAAIZ,GAC1B,EAAKkU,YAAc,IAAID,GACvB,EAAKjE,aAAe,IAAI1C,GACxB,EAAKuK,iBAAmB,IAAIlQ,GAAiB,kBAC7C,EAAKG,YAAc,EAAKgQ,0BACxB,EAAKnL,uBAAwB,EAbjC,EA/PmC,kDAqCnC,WACI,OAAOvlC,KAAK2gC,WAtCmB,yBAkDnC,WACI,OAAO3gC,KAAKgmB,YAnDmB,IAsDnC,SAAkB3nB,GACd2B,KAAKipC,gBAvD0B,4BA0DnC,WACI,OAAOjpC,KAAK0/B,cA3DmB,IA8DnC,SAAqBrhC,GACjB2B,KAAK0/B,aAAerhC,IA/DW,uFAmEnC,WAAuBA,EAAgB6nB,GAAvC,4FACO7nB,IACC2B,KAAK2wC,mBACL3wC,KAAK4wC,sBACAvqC,MAAK,SAAAxJ,GACF,EAAKg0C,wBAEb7wC,KAAK8wC,yBACL9wC,KAAK+wC,uBARb,gDAnEmC,uFA+EnC,WACI,OAAQ/wC,KAAKuP,MAAMu6B,cAAsBv6B,MAAMyhC,WAAW5/B,WAhF3B,qBAmFnC,WACI,OAAOpR,KAAK0D,SApFmB,kBAuFnC,WACI,OAAS1D,KAAKuP,MAAM0hC,cAAuB7/B,WAxFZ,8FAgGnC,WAA8B5R,GAA9B,4GACiBQ,KAAKywC,iBAAiBS,yBAAyB1xC,GACnD6G,MAAK,SAAAI,GAMF,OALAtB,IAAE6J,QAAQvI,GAAS,SAAC5B,GAChBA,EAAKo/B,WAAa,GAClB,EAAKkN,kBAAkBtsC,GAAM,MAG1B4B,KAEVH,OAAM,SAAAulB,GAAG,MAAI,MAV1B,wFAhGmC,2JA6GnC,WAAiCrsB,GAAjC,mGACQQ,KAAKuP,MAAMu6B,eACV9pC,KAAKuP,MAAMu6B,cAAsB14B,SAASggC,mBAAmB,IAG9DpxC,KAAKuP,MAAM8hC,oBACVrxC,KAAKuP,MAAM8hC,mBAA2BjgC,SAASggC,mBAAmB,IAN3E,SASmCpxC,KAAKsxC,oBAAoB9xC,EAAIwmC,GAAoBuE,OAC3ElkC,MAAK,SAACI,GACH,IAAI5J,EAASsI,IAAE6J,QAAQvI,GAAS,SAAC5B,GAC7BM,IAAE6J,QAAQnK,EAAKi5B,eAAe,SAACyT,GACvBA,EAAGzY,YACHyY,EAAGzY,UAAY,SAK3B,OAAOj8B,KAEVyJ,OAAM,SAAAulB,GAAG,MAAG,MACZ5X,SAAQ,WACJ,EAAK1E,MAAMu6B,cAAsB14B,SAASogC,sBAvBvD,cASIxxC,KAAKmjC,kBATT,gBA0BwCnjC,KAAKsxC,oBAAoB9xC,EAAIwmC,GAAoByL,YAChFprC,MAAK,SAACI,GACH,IAAI5J,EAASsI,IAAE6J,QAAQvI,GAAS,SAAC5B,GAC7BM,IAAE6J,QAAQnK,EAAKi5B,eAAe,SAACyT,GACvBA,EAAGzY,YACHyY,EAAGzY,UAAY,SAK3B,OAAOj8B,KAEVyJ,OAAM,SAAAulB,GAAG,MAAE,MACX5X,SAAQ,WACJ,EAAK1E,MAAM8hC,mBAA2BjgC,SAASogC,sBAxC5D,OA0BIxxC,KAAKokC,uBA1BT,uDA7GmC,qFA4JnC,WACI,OAAOpkC,KAAKiiC,aA7JmB,IA+JnC,SAAoB5jC,GAChB2B,KAAKiiC,YAAc5jC,IAhKY,iCA0O3B,WAAmB,WACvB,OAAO,IAAIoS,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACH,OAAO,EAAK+jC,iBAAiBiB,qBAAqB,EAAKC,kBAClDtrC,MAAK,SAACwN,GAOH,OANA1O,IAAE6J,QAAQ6E,GAAU,SAAChP,GACa,GAA3BA,EAAKsmC,YAAYnvC,SAChB6I,EAAKsmC,YAAc,EAAE,OAItBt3B,KAEVvN,OAAM,SAAAulB,GACH,MAAO,WAzPQ,qBA+QzB,WACN7rB,KAAK2d,aAhR0B,+EAmR3B,qGACJ3d,KAAKuQ,aAAe,IAAInD,GADpB,SAEgBpN,KAAKuQ,aAAa9E,OAAOzL,KAAK0D,OAAOmI,UAFrD,OAEJ7L,KAAKsN,OAFD,uDAnR2B,gFA4SnC,WACE,MAAO,CACL,YAAgB,kBAChB,WAAetN,KAAKsN,OACpB,YAAe,YACf,UAAa,UACb,YAAetN,KAAK2H,eACpB,eAAiB,EACjB,iBAAkB,EAClB,kBAAoB,EACpB,mBAAsB3H,KAAK4xC,mCAtTI,wFA6U3B,WAAwBp2C,GAAxB,wFACJwE,KAAKulC,uBAAwB,EADzB,SAEmBvlC,KAAKywC,iBAAiBoB,aAAa7xC,KAAK0hC,cAAcoQ,YAFzE,OAEJ9xC,KAAKwlC,UAFD,uDA7U2B,uFAkV3B,SAAgB3gC,GACpB,IAAIrJ,EAAO8yC,GAAOzpC,GAAMkS,OAAO,cAC/B,OAAOvb,IApVwB,wBAuV3B,WACJwE,KAAKulC,uBAAwB,IAxVE,sFA+XnC,WAAsB7nB,GAAtB,iGACQq0B,EAAyB/xC,KAAK0vC,yBAClC1vC,KAAKgyC,sBAAwBt0B,EAAOu0B,WAEjCjyC,KAAKkyC,gBAJZ,gCAKqBlyC,KAAKywC,iBAAiB0B,kBAAkBz0B,EAAOrf,MAAO2B,KAAK8hC,UAAUj2B,UAC7ExF,MAAK,SAAAwN,GACF,OAAGA,MACIk+B,GACCA,IAA2Br0B,EAAOrf,UAU7CiI,OAAM,SAAAulB,GACH,OAAO,KApBvB,kDAwBY7rB,KAAK2gC,SAASlzB,QAxB1B,0CAyBmB/I,QAAQ5E,SAAQ,IAzBnC,eA4BYE,KAAKuwC,qBACLvwC,KAAKoyC,kBAAkBpyC,KAAKqyC,gBA7BxC,UAgCqBryC,KAAKywC,iBAAiB0B,kBAAkBz0B,EAAOrf,MAAM2B,KAAK8hC,UAAUj2B,SAAU7L,KAAK2gC,SAASlzB,SACpGpH,MAAK,SAAAwN,GACF,OAAO,KAEVvN,OAAM,SAAAulB,GAAQ,OAAO,KACrB5X,SAAQ,WACL,EAAKs8B,qBAAsB,KAtC3C,0FA/XmC,qJA2anC,WAA2B7yB,GAA3B,mGAEI1d,KAAKqyC,eAAiB30B,EAAOu0B,UAFjC,SAGUjyC,KAAKoyC,kBAAkBpyC,KAAKgyC,uBAHtC,UAKQhyC,KAAK2gC,SAAS2R,aALtB,0CAMe,GANf,uBASiBtyC,KAAKywC,iBAAiB0B,kBAAkBnyC,KAAK2gC,SAAS2R,aAAatyC,KAAK8hC,UAAUj2B,SAAS6R,EAAOrf,OAC9GgI,MAAK,SAAAwN,GACF,OAAO,KAEVvN,OAAM,SAAAulB,GAAQ,OAAO,KACrB5X,SAAQ,WACL,EAAKs8B,qBAAsB,KAfnC,wFA3amC,kJA8bnC,WAAwBgC,GAAxB,4GACiB,IAAI7tC,SAAQ,SAAC5E,EAAS6E,GAC/B,GAAG,EAAK6tC,gBACDD,EAAgB,CACf,IAAIE,EAAQttC,IAAE6M,KAAK,EAAKwgC,eAAeE,YAAY,SAAA7tC,GAAI,OAClDA,EAAKyH,SAAS0b,SACfnjB,GAAQ0tC,KAGZ,EAAKhC,qBAAsB,EACxBkC,GACCA,EAAM1qB,WAIlBjoB,OAfR,mFA9bmC,0FAidnC,SAAmBJ,GAEf,OAAQA,EAAErB,MAAMyZ,UAAU,IAAwB,GAAlBpY,EAAErB,MAAMrC,SAndT,4BAsdnC,WACI,OAAOgE,KAAK0D,OAAOmI,WAvdY,qCA0dnC,WACI,IAAI8mC,EAAsB,CACtBtR,cAAe,uCACfyQ,WAAY9xC,KAAK2gC,SAAW3gC,KAAK2gC,SAASmR,WACtC,uCACJrD,YAAa,GACbjL,QAAQ,EACR1F,cAAe,GACfmG,WAAa,GACbe,UAAW,KACXE,oBAAqB,KACrBD,mBAAoB,MAGxB,OAAO9/B,IAAEmuB,MAAMqf,KAxegB,kCA2e3B,WACJ,IAAIA,EAAoB,CACpBb,WAAY,uCACZjmC,SAAU,GACV4B,QAAS,GACTgwB,WAAY,EACZnW,gBAAgB,EAChBgrB,aAAc,GACdM,cAAe,IAAI1V,KACnBiO,YAAa,EAAE,GACf0H,uBAAwB,GACxBC,aAAc,GACdC,cAAe,GACfC,oBAAqB,GACrBxP,OAAQ,GACRyP,UAAU,EACVC,cAAe,KACftQ,gBAAiB,MAGrB,OAAOz9B,IAAEmuB,MAAMqf,KA/fgB,4BAkgBnC,WACI,OAAOzzC,OAAOyT,YAAc,IAngBG,mFAqgBnC,WAAmBjT,GAAnB,2FACOM,KAAK2gC,SAASmR,YACV9xC,KAAK2gC,SAASmR,YAAc9xC,KAAKmzC,uBAAuBrB,WAFnE,oBAIYtyC,EAAKQ,KAAK2gC,SAASmR,WACpB9xC,KAAKy/B,cAAgBa,GAAiBle,MALjD,gCAM4CpiB,KAAKozC,wBAAwB5zC,GANzE,OAMYQ,KAAKqvC,mBANjB,8BAQcrvC,KAAKqzC,2BAA2B7zC,GAR9C,+BAW4B,MAAjBQ,KAAKszC,WACJtzC,KAAK2gC,SAASmS,aAAe,GAC7B9yC,KAAKmjC,kBAAoB,GACzBnjC,KAAKokC,uBAAyB,IAd1C,iDArgBmC,qFAwhBnC,SAAc1kC,GACVM,KAAKiiC,aAAc,EACnBjiC,KAAKgiC,YAAa,EAClBhiC,KAAKwvC,kBAAmB,EACxBxvC,KAAKmjC,kBAAoB,GACzBnjC,KAAKokC,uBAAyB,GAC9BpkC,KAAK4vC,eAAiB,KACtB5vC,KAAK6vC,iBAAmB,KACxB7vC,KAAKuzC,aAAe,KACpBvzC,KAAK0vC,yBAA2B,GAChC1vC,KAAKwzC,OAAOC,cACTzzC,KAAK0zC,cACJ1zC,KAAK0zC,eAEN1zC,KAAK2zC,mBACJ3zC,KAAK2zC,sBAviBsB,iCA2iBnC,WACI3zC,KAAKoiC,eAAe9nB,UAAW,EAC/Bta,KAAKy3B,YAAYnd,UAAW,EAC5Bta,KAAKqiC,mBAAmB/nB,UAAW,EACnCta,KAAKsiC,aAAahoB,UAAW,EAC7Bta,KAAKwiC,eAAeloB,UAAW,EAC/Bta,KAAK0iC,aAAapoB,UAAW,EAEzBta,KAAKiiC,YACLjiC,KAAKy3B,YAAYnd,UAAW,GAE5Bta,KAAKqiC,mBAAmB/nB,UAAW,EACnCta,KAAKsiC,aAAahoB,UAAW,EAC7Bta,KAAKwiC,eAAeloB,UAAW,EAC/Bta,KAAK0iC,aAAapoB,UAAW,EAEzBta,KAAK4zC,mBAAqBvT,GAAkB0K,QAC5C/qC,KAAKoiC,eAAe9nB,UAAW,EAC/Bta,KAAKy3B,YAAYnd,UAAW,IAE5Bta,KAAK+hC,gBAAgBG,UAAU5lC,KACvB,CAACuT,KAAM,QAASwgC,mBAAmBrwC,KAAK6zC,gBACxC/jC,QAAQ,kDAIhB9P,KAAK+hC,gBAAgBlB,MAAMvkC,KACnB,CAACuT,KAAM,QAASwgC,mBAAmBrwC,KAAK8zC,qBACxChkC,QAAQ,2CAvkBO,0FA8kBlC,8GAC4B9P,KAAKw5B,eAAeX,YAAYxyB,MAAK,SAAC0tC,GAC3D,IAAIC,EAAsB,CACtBlb,UAAW,EACXje,YAAa,OAKjB,OAFAk5B,EAAUjoC,QAAQkoC,GAEXD,KATd,OACG/zC,KAAKykC,YADR,uDA9kBkC,6FA2lBnC,WACOzkC,KAAKy/B,aAAea,GAAiBle,OACpCpiB,KAAKiiC,aAAc,EACnBjiC,KAAKgiC,YAAa,EAClBhiC,KAAKy3B,YAAYnd,UAAW,EAC5Bta,KAAK+hC,gBAAgBlB,MAAQ,GAC7B7gC,KAAK+hC,gBAAgBG,UAAY,CAC7B,CAACryB,KAAM,WAAYC,QAAS,2BAC5B,CAACD,KAAM,QAASwgC,mBAAmBrwC,KAAK6zC,gBACpC/jC,QAAQ,iCAMhB9P,KAAKoiC,eAAe7nB,WAAava,KAAKkwC,cACtClwC,KAAKiiC,aAAc,EACnBjiC,KAAKgiC,YAAa,EAClBhiC,KAAKkwC,cAAgBlwC,KAAKwwC,sBAC1BxwC,KAAKy3B,YAAYnd,UAAW,EAC5Bta,KAAK+hC,gBAAgBlB,MAAQ,CACzB,CAAEhxB,KAAM,WAAYC,QAAS,uBAEjC9P,KAAK+hC,gBAAgBG,UAAY,CAC7B,CAACryB,KAAM,WAAYC,QAAS,6BAIpC9P,KAAKmiC,sBAAsBpW,QAAU/rB,KAAKiiC,YAC1CjiC,KAAKoiC,eAAerW,SAAW/rB,KAAKiiC,cAxnBL,8BA2nBnC,WACOjiC,KAAK0D,SACJ1D,KAAK2gC,SAAS90B,SAAW7L,KAAK0D,OAAOmI,YA7nBV,gCAioBnC,WAAkB,WACX7L,KAAK2gC,SAASmR,YACV9xC,KAAK2gC,SAASmR,YAAc9xC,KAAKmzC,uBAAuBrB,YAE3D9xC,KAAKwhC,YAAL,iBAA6BxhC,KAAKy/B,YAAlC,cACGz/B,KAAKuP,MAAM0hC,gBACTjxC,KAAKuP,MAAM0hC,cAAsB9D,SAASyF,cAAgB5yC,KAAK2gC,SAASiS,eAE7E5yC,KAAK0vC,yBAA2BvqC,IAAEmuB,MAAMtzB,KAAK2gC,SAAS2R,cAEd,GAApCtyC,KAAK2gC,SAASwK,YAAYnvC,SAC1BgE,KAAK2gC,SAASwK,YAAc,EAAE,IAGlCnrC,KAAKwhC,YAAL,iBAA6BxhC,KAAKy/B,YAAlC,cACAz/B,KAAK0vC,yBAA2BvqC,IAAEmuB,MAAMtzB,KAAK2gC,SAAS2R,cACtDtyC,KAAK4vC,eAAiB5vC,KAAK2gC,SAASuS,gBAIpClzC,KAAK2gC,SAAW3gC,KAAKmzC,uBACD,MAAjBnzC,KAAKszC,WACJtzC,KAAK2gC,SAAS2R,aAAetyC,KAAKszC,SAASW,aAC3Cj0C,KAAK2gC,SAASrZ,eAAiBtnB,KAAKszC,SAAShsB,eAE7CtnB,KAAKszC,SAASY,uBAAuBllC,SAAQ,SAAAhQ,GACzC,IAAIm1C,EAA0B,CAC1B/X,iBAA8B/uB,GAAjBrO,EAAEo9B,YAA2Bp9B,EAAEo9B,YAAc,EAC1DD,eAA0B9uB,GAAfrO,EAAEm9B,UAAyBn9B,EAAEm9B,UAAY,GACpDgQ,OAAQ,GACRD,UAAW,GACXE,WAAY,EACZC,oBAAqB,EACrBC,WAAW,GAIX8H,EAAW,EAAK1D,0BACpB0D,EAAShY,YAAcp9B,EAAEo9B,YACzBgY,EAAS7Q,UAAY4Q,EACrBC,EAAS3F,YAAczvC,EAAEyvC,YAEzBzvC,EAAEq1C,sBAAsBrlC,SAAQ,SAAA9Q,GAC5B,QAAkBmP,GAAfnP,EAAEspC,UAAwB,CACzB,IAAI8M,EAA6B,CAC7BrJ,eAAgB,uCAChB5J,cAAe+S,EAAS/S,cACxBvI,UAA2B,OAAhB56B,EAAE46B,UAAqB,EAAI56B,EAAE46B,UACxC2E,WAAY,EACZ+J,UAAWtpC,EAAEspC,UACblG,MAAOpjC,EAAEojC,MACTgG,MAAOppC,EAAEopC,MACT4D,KAAMhtC,EAAEgtC,KACRnE,OAAQ7oC,EAAE6oC,OACVlsB,YAAa3c,EAAE2c,YACf2oB,QAAQ,EACRlc,gBAAgB,EAChB6jB,YAAa,IAEjBiJ,EAAStW,cAAcxhC,KAAKg4C,GAGhC,QAAqBjnC,GAAlBnP,EAAEqpC,aAA2B,CAC5B,IAAI+M,EAA6B,CAC7BrJ,eAAgB,uCAChB5J,cAAe+S,EAAS/S,cACxBvI,UAA2B,OAAhB56B,EAAE46B,UAAqB,EAAI56B,EAAE46B,UACxC2E,WAAY,EACZ8J,aAAcrpC,EAAEqpC,aAChBjG,MAAOpjC,EAAEojC,MACTgG,MAAOppC,EAAEopC,MACT4D,KAAMhtC,EAAEgtC,KACRnE,OAAQ7oC,EAAE6oC,OACVlsB,YAAa3c,EAAE2c,YACf2oB,QAAQ,EACRlc,gBAAgB,EAChB6jB,YAAa,IAEjBiJ,EAAStW,cAAcxhC,KAAKg4C,OAGpC,EAAKnD,kBAAkBiD,GACvB,EAAKjR,kBAAkB7mC,KAAK83C,MAGhCp0C,KAAKszC,SAASiB,sBAAsBvlC,SAAQ,SAAA1Q,GACxC,IAAIk2C,EAAoC,CACpC7a,iBAAkBr7B,EAAEq7B,iBACpB10B,UAA0BoI,GAApB/O,EAAEm2C,eAA8Bn2C,EAAEm2C,eAAiB,GACzDC,aAAa,GAGbC,EAAgB,EAAKjE,0BACzBiE,EAAchb,iBAAmBr7B,EAAEq7B,iBACnCgb,EAAc7J,eAAiB0J,EAC/BG,EAAclG,YAAcnwC,EAAEmwC,YAE9BnwC,EAAE+1C,sBAAsBrlC,SAAQ,SAAA9Q,GAC5B,QAAkBmP,GAAfnP,EAAEspC,UAAwB,CACzB,IAAIoN,EAAkC,CAClC3J,eAAgB,uCAChB5J,cAAesT,EAActT,cAC7BvI,UAA2B,OAAhB56B,EAAE46B,UAAqB,EAAI56B,EAAE46B,UACxC2E,WAAY,EACZ+J,UAAWtpC,EAAEspC,UACblG,MAAOpjC,EAAEojC,MACTgG,MAAOppC,EAAEopC,MACT4D,KAAMhtC,EAAEgtC,KACRnE,OAAQ7oC,EAAE6oC,OACVlsB,YAAa3c,EAAE2c,YACf2oB,QAAQ,EACRlc,gBAAgB,EAChB6jB,YAAa,IAEjBwJ,EAAc7W,cAAcxhC,KAAKs4C,GAGrC,QAAqBvnC,GAAlBnP,EAAEqpC,aAA2B,CAC5B,IAAIqN,EAAkC,CAClC3J,eAAgB,uCAChB5J,cAAesT,EAActT,cAC7BvI,UAA2B,OAAhB56B,EAAE46B,UAAqB,EAAI56B,EAAE46B,UACxC2E,WAAY,EACZ8J,aAAcrpC,EAAEqpC,aAChBjG,MAAOpjC,EAAEojC,MACTgG,MAAOppC,EAAEopC,MACT4D,KAAMhtC,EAAEgtC,KACRnE,OAAQ7oC,EAAE6oC,OACVlsB,YAAa3c,EAAE2c,YACf2oB,QAAQ,EACRlc,gBAAgB,EAChB6jB,YAAa,IAEjBwJ,EAAc7W,cAAcxhC,KAAKs4C,OAKzC,EAAKzD,kBAAkBwD,GACvB,EAAKvQ,uBAAuB9nC,KAAKq4C,OAIzC30C,KAAK2gC,SAAS90B,SAAW7L,KAAK0D,OAAOmI,SACrC7L,KAAKwhC,YAAL,cAA0BxhC,KAAKy/B,YAA/B,iBAjxB2B,0FAqxBnC,WAA0BjgC,EAAUqQ,GAApC,4GACiB7P,KAAKywC,iBAAiBoE,mCAAmCr1C,EAAIqQ,GAAMxJ,MAC5E,SAACwN,GAMG,OALA1O,IAAE6J,QAAQ6E,GAAU,SAAChP,GACjBA,EAAKo/B,WAAa,GAClB,EAAKkN,kBAAkBtsC,MAGpBgP,KAGdvN,OAAM,SAAAulB,GAAS,MAAO,MAX3B,wFArxBmC,yGAmyBnC,SAAgCnsB,GAC5BM,KAAKuwC,qBAAsB,IApyBI,wCAuyBnC,SAA2B7wC,GACvBM,KAAKuwC,qBAAsB,EAC3B,IAAIpG,EAAWzqC,EAAE+R,aAEb04B,IACAnqC,KAAKyvC,4BAA8BtF,EAAS2H,cA5yBjB,4BAgzBnC,SAAepyC,GACXM,KAAK0gC,YAAc1gC,KAAK0wC,0BACxB1wC,KAAK0kC,gBAAkBsB,GAAoBuE,MAC3CvqC,KAAKwkC,qBAAuBnE,GAAkByI,IAE9C,IAAIqB,EAAWnqC,KAAKmjC,kBAAkB9jC,KAAI,SAACwF,GACvC,IAAIwvB,EAAMxvB,EAAKq2B,cAAgBr2B,EAAKu3B,aAAe,EAEnD,OAAO/H,KAGXr0B,KAAK2kC,yBAA2BwF,EAChCnqC,KAAKukC,uBAAwB,IA5zBE,6BA+zBnC,SAAgB7kC,GACZM,KAAK0gC,YAAc1gC,KAAK0wC,0BACxB1wC,KAAK0kC,gBAAkBsB,GAAoByL,WAC3CzxC,KAAKwkC,qBAAuBnE,GAAkByI,IAE9C,IAAIqB,EAAWnqC,KAAKokC,uBAAuB/kC,KAAI,SAACwF,GAC5C,IAAIwvB,EAAMxvB,EAAK80B,kBAAoB,GAEnC,OAAOtF,KAGXr0B,KAAK2kC,yBAA2BwF,EAChCnqC,KAAKukC,uBAAwB,IA30BE,qBA80BnC,SAAQ3mC,EAAcS,GAClB,OAAOpC,OAAO4D,KAAKG,KAAKka,QAAQlC,QAAQpa,IAAS,EAAIoC,KAAKka,OAAOtc,GAAQS,IA/0B1C,qCAk1BnC,SAAwBqB,GACpB,GAAGA,EAAG,CACF,IAAIo1C,EAAS3vC,IAAEmuB,MAAM5zB,GAGrB,GAFAM,KAAKmxC,kBAAkB2D,QAEKznC,GAAzBrN,KAAK+0C,iBAED/0C,KAAK0kC,kBAAoBsB,GAAoBuE,MAC5CvqC,KAAKmjC,kBAAkB7mC,KAAKw4C,GAG5B90C,KAAKokC,uBAAuB9nC,KAAKw4C,QAIrC,GAAG90C,KAAK0kC,kBAAoBsB,GAAoBuE,MAAM,CAClD,IAAI6J,EAAWp0C,KAAKmjC,kBAAkBnjC,KAAK+0C,kBAE3CX,EAASnQ,WAAa6Q,EAAO7Q,WAC7BmQ,EAAS3F,YAAcqG,EAAOrG,YAC9B2F,EAAStW,cAAgBgX,EAAOhX,cAChCsW,EAASxI,qBAAuBkJ,EAAOlJ,yBAEtC,CACD,IAAI+I,EAAgB30C,KAAKokC,uBAAuBpkC,KAAK+0C,kBAErDJ,EAAc1Q,WAAa6Q,EAAO7Q,WAClC0Q,EAAclG,YAAcqG,EAAOrG,YACnCkG,EAAc7W,cAAgBgX,EAAOhX,cACrC6W,EAAc/I,qBAAuBkJ,EAAOlJ,sBAKxD5rC,KAAKukC,uBAAwB,EAC7BvkC,KAAK+0C,sBAAmB1nC,IAr3BO,+BAw3BnC,SAAkBqzB,GAAyD,WAA5BsU,EAA4B,wDACvEh1C,KAAK0gC,YAAY5C,cAAgB4C,EAAY5C,cAAczU,KAAK8d,IAChEzG,EAAYuD,WAAa,GACzB,IAAIgR,EAAcD,GAAeh1C,KAAKy/B,aAAea,GAAiBle,WAIxD/U,EAHDqzB,EAAY/G,iBAAmBx0B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAIA,EAAEmjB,kBAAoB+G,EAAY/G,yBAC1EtsB,GAA3BqzB,EAAYtE,YAA2Bj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAIA,EAAE4lB,aAAesE,EAAYtE,eAC1Gj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAIA,EAAE0kB,cAAgBwF,EAAYxF,gBAGhF/1B,IAAE6J,QAAQ0xB,EAAY5C,eAAe,SAACj5B,GAElC,IAAIqwC,EAAU,GAEVC,EAAgB,GACpB,GAAGtwC,EAAKi0B,WAAaj0B,EAAKi0B,UAAY,EAAG,CACrC,IAAIsc,EAAajwC,IAAE6M,KAAK,EAAKyyB,aAAa,SAAC4Q,GAAD,OAAwBA,EAAMvc,YAAcj0B,EAAKi0B,aAE3Fqc,EAAgBC,EAAaA,EAAWv6B,YAAc,GAI1D,IAAIy6B,EAAc,QAEDjoC,GAAdxI,EAAKyiC,QACJgO,EAAc,EAAKC,eAAe1wC,EAAKyiC,QAG3C,IAAIkO,EAAkB,EAAKC,oBAAoB/U,EAAa77B,GAK5D,GAHAqwC,EAAO,UAAKC,EAAL,YAAsBG,EAAtB,YAAqCE,EAAkBA,EAAkB,IAAM,GAA/E,yBACL,EAAKE,SAASC,QAAU,EAAKD,SAASC,QAAQ7Y,SAASj4B,EAAKkiC,QAAUliC,EAAKkiC,QAE1EkO,EAAW,CACV,IAAIW,EAAazwC,IAAEvB,OAAOqxC,EAAUnX,eAAe,SAAAtnB,GAAC,OAAKA,EAAEsiB,WAAa,KAAOj0B,EAAKi0B,WAAa,IAC1EtiB,EAAE8wB,OAASziC,EAAKyiC,SACvC,GAAIsO,GAAmC,GAArBA,EAAW55C,OAGxB,CACD,IAAI65C,EAAc1wC,IAAE6M,KAAK4jC,GAAY,SAAA95C,GAAC,OAAIA,EAAE0rC,WAAa3iC,EAAK2iC,WAC1D1rC,EAAEyrC,cAAgB1iC,EAAK0iC,cAAgBzrC,EAAEwrC,OAASziC,EAAKyiC,SAKvD5G,EAAYuD,WAJZ4R,EAIA,UAA4BnV,EAAYuD,WAAxC,oBAA8DiR,EAA9D,eAHI,UAA4BxU,EAAYuD,WAAxC,2CAAqFiR,EAArF,oBANRxU,EAAYuD,WAAZ,UAA4BvD,EAAYuD,WAAxC,yCAAmFiR,EAAnF,oBAcJxU,EAAYuD,WAAZ,UAA4BvD,EAAYuD,WAAxC,oBAA8DiR,EAA9D,oBA16BuB,iCAi7BnC,SAAoBxU,EAA6B77B,GAC7C,IAAIhI,EAAS,GAETi5C,EAAY3wC,IAAE6M,KAAK0uB,EAAY5C,eAC/B,SAACj5B,GAAD,OAA4BA,EAAKqmC,OAASrF,GAAqB8B,QAA+B,MAArB9iC,EAAK0iC,gBAiClF,OA9BG1iC,EAAKqmC,MACJruC,EAASi5C,EAAYjxC,EAAKqmC,KAAO,GAE9BrmC,EAAKqmC,OAASrF,GAAqB6B,KAClC7iC,EAAK2iC,UAAY3iC,EAAKkiC,OACtBliC,EAAK0iC,kBAAel6B,IAGpBxI,EAAK0iC,aAAe1iC,EAAKkiC,OACzBliC,EAAK2iC,eAAYn6B,IAKA,MAAlBxI,EAAK2iC,WACJ3qC,EAASi5C,EAAYjQ,GAAqB6B,IAAM,GAChD7iC,EAAKkiC,OAASliC,EAAK2iC,UACnB3iC,EAAKqmC,KAAOrF,GAAqB6B,KAER,MAArB7iC,EAAK0iC,eACT1qC,EAASi5C,EAAYjQ,GAAqB8B,OAAS,GACnD9iC,EAAKkiC,OAASliC,EAAK0iC,aACnB1iC,EAAKqmC,KAAOrF,GAAqB8B,QAIrC9iC,EAAKyiC,QACLziC,EAAKyiC,MAAQ3B,GAAsBsC,IAGhCprC,IAt9BwB,4BAy9BnC,SAAek5C,GACX,OAAOA,GACH,KAAKpQ,GAAsBsC,GACvB,OAAOrC,GAA0BqC,GACrC,KAAKtC,GAAsBuC,OACvB,OAAOtC,GAA0BsC,OACrC,KAAKvC,GAAsBwC,OACvB,OAAOvC,GAA0BuC,OACrC,KAAKxC,GAAsByC,OACvB,OAAOxC,GAA0BwC,OACrC,KAAKzC,GAAsB0C,OACvB,OAAOzC,GAA0ByC,OACrC,KAAK1C,GAAsB2C,OACvB,OAAO1C,GAA0B0C,OACrC,KAAK3C,GAAsB4C,OACvB,OAAO3C,GAA0B2C,OACrC,KAAK5C,GAAsB6C,OACvB,OAAO5C,GAA0B4C,OACrC,KAAK7C,GAAsB8C,OACvB,OAAO7C,GAA0B6C,OACrC,KAAK9C,GAAsB+C,OACvB,OAAO9C,GAA0B8C,OACrC,KAAK/C,GAAsBgD,QACvB,OAAO/C,GAA0B+C,WAh/BV,uCAo/BnC,SAA0BntC,GACtBwE,KAAK0kC,gBAAkBsB,GAAoBuE,MAC3CvqC,KAAKg2C,mBAAmBx6C,KAt/BO,iDAy/BnC,SAAoCA,GAChCwE,KAAK0kC,gBAAkBsB,GAAoByL,WAC3CzxC,KAAKg2C,mBAAmBx6C,KA3/BO,mDA8/BnC,SAAsCA,EAAUy6C,GACxCj2C,KAAK2gC,SAASqS,sBACdhzC,KAAK2gC,SAASqS,oBAAsB,IAGV,wCAA3Bx3C,EAAKA,KAAK6lC,eACTrhC,KAAK2gC,SAASqS,oBAAoB12C,KAAKd,EAAKA,MAG7Cy6C,IAAsBjQ,GAAoBuE,MACzCvqC,KAAKmjC,kBAAkBjmC,OAAO1B,EAAKkyB,SAAU,GAG7C1tB,KAAKokC,uBAAuBlnC,OAAO1B,EAAKkyB,SAAU,KA3gCvB,gCA+gCnC,SAAmBlyB,GACfwE,KAAK+0C,iBAAmBv5C,EAAKkyB,SAE7B1tB,KAAK0gC,YAAcv7B,IAAEihB,UAAU5qB,EAAKA,MAEpCwE,KAAKwkC,qBAAuBnE,GAAkB0K,OAC9C/qC,KAAKukC,uBAAwB,EAC7BvkC,KAAK2kC,yBAA2B,KAthCD,kFA0hC3B,gHACAtR,EAAUluB,IAAEmuB,MAAMtzB,KAAK2gC,UAEvBtN,EAAQ8X,YAAYrzB,UAAU,KAC9Bub,EAAQ8X,YAAc,IAG1BnrC,KAAKslC,WAAY,EAPb,SASoC,MAAjCtlC,KAAK2gC,SAASiC,kBAA2B5iC,KAAK2gC,SAASiC,gBAAgBhrB,cAAcsE,SAAS,SAA0C,MAA/Blc,KAAK2gC,SAASuS,cAT1H,iCAU4BlzC,KAAKk2C,cAVjC,UAUQC,EAVR,QAWOA,IAAeA,EAAYttB,QAXlC,iBAYQwK,EAAQ6f,cAAgBiD,EAAYvyB,KAAKwyB,cAAc,GAAG3/B,OAZlE,8BAec,IAAI9W,MAAM,yBAfxB,6DAoBA4G,IAAO,wBAAyB,SAChC8sB,EAAQuP,gBAAkB5iC,KAAK6vC,iBAC/Bxc,EAAQ6f,cAAgBlzC,KAAK4vC,eAtB7B,QAyBJvc,EAAQyf,aAAe3tC,IAAEE,OAAOrF,KAAKmjC,kBAAmBnjC,KAAKokC,wBAE7Dj/B,IAAE6J,QAAQqkB,EAAQyf,cAAc,SAACvB,GAC7BpsC,IAAE6J,QAAQuiC,EAAGzT,eAAe,SAACj5B,GACrBA,EAAKi0B,WAAgC,IAAnBj0B,EAAKi0B,YACvBj0B,EAAKi0B,eAAYzrB,SAKJ,wCAAtBgmB,EAAQye,WACP9xC,KAAKywC,iBAAiB4F,qBAAqBhjB,GACtChtB,MAAK,SAAAwN,GACFtN,IAAO,GAAD,OAAI8sB,EAAQif,aAAZ,uBAA+C,UAAW,KAChE,EAAKrJ,aAAY,MAEpB3iC,OAAM,SAAAulB,GACH1D,oBAAM,0CAA2C,aAIrDnoB,KAAKiiC,aACD98B,IAAE6J,QAAQqkB,EAAQyf,cAAc,SAACjuC,GAC7BA,EAAKw8B,cAAgB,uCAEzBl8B,IAAE6J,QAAQnK,EAAKi5B,eAAe,SAACwY,GAC3BA,EAAIrL,eAAiB,6CAKjCjrC,KAAKywC,iBAAiB/xC,OAAO20B,GACxBhtB,MAAK,SAAAwN,GACFtN,IAAO,GAAD,OAAI8sB,EAAQif,aAAZ,uBAA+C,UAAW,KAChE,EAAKrJ,aAAY,MAEpB3iC,OAAM,SAAAulB,GACH1D,oBAAM,0CAA2C,aAG7DnoB,KAAKslC,WAAY,EAjEb,0DA1hC2B,2EA8lC3B,SAAK5lC,GAAM,WACXM,KAAKukC,wBAITvkC,KAAKwyC,eAAiBxyC,KAAKwzC,OAAOzrB,WAEC,YAA/B/nB,KAAKwyC,eAAetgB,OACtBlyB,KAAKwyC,eAAe+D,SAASlwC,MAAK,SAACwN,GAC7BA,EAASmU,SACX,EAAKwuB,iBAGAx2C,KAAKwyC,eAAexqB,SAC7BhoB,KAAKw2C,iBA5mCwB,yBAgnC3B,WAAuC,IAA3BC,EAA2B,wDAC3Cz2C,KAAKimB,MAAM,SAAUwwB,KAjnCU,oBAonC3B,WACJz2C,KAAKimB,MAAM,YArnCoB,iCAunCnC,SAAoBvmB,EAAQg3C,EAAkCC,GACvDj3C,EAAEkuB,IAAIpyB,KAAKuoC,SACXrkC,EAAEkuB,IAAIpyB,KAAKuoC,QAAQ6S,QAAUF,GAC7Bh3C,EAAEkuB,IAAIpyB,KAAKuoC,QAAQ8S,iBACnBn3C,EAAEkuB,IAAIpyB,KAAKuoC,QAAQ8S,gBAAgB/+B,SAAS6+B,KACvCj3C,EAAE8T,YAAYnT,MAAM,UAAY,mBAChCX,EAAE8T,YAAYnT,MAAM,cAAgB,uCA7nCb,2BAgoCnC,SAAcX,GAKV,GAJiB,SAAdA,EAAEyT,UACDzT,EAAEo3C,WAAWz2C,MAAMid,OAAS,QAGf,SAAd5d,EAAEyT,SAAsBnT,KAAKy/B,cAAgBa,GAAiBle,MAAO,CACpE,IAAI20B,EAAYr3C,EAAElE,KAAKm+B,iBAAmBx0B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAGA,EAAEmjB,kBAAoBj6B,EAAElE,KAAKm+B,yBACpEtsB,GAAtB3N,EAAElE,KAAK4gC,YAA2Bj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAGA,EAAE4lB,aAAe18B,EAAElE,KAAK4gC,eAC/Fj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAA74B,GAAC,OAAGA,EAAE0kB,cAAgBx7B,EAAElE,KAAK0/B,gBAEzE6b,IAAgBr3C,EAAElE,KAAKuoC,SAAmC,wCAAxBrkC,EAAElE,KAAK6lC,gBACzC3hC,EAAElE,KAAKuoC,QAAQ6S,QAAU9Q,GAAsBkR,MAC/Ct3C,EAAEo3C,WAAWz2C,MAAM,cAAgB,qBACnCX,EAAEo3C,WAAWz2C,MAAM,cAAgB,kCA7oCZ,4BAkpCnC,SAAeX,GACM,SAAdA,EAAEyT,SAAsBnT,KAAKy/B,cAAgBa,GAAiBle,QAC7DpiB,KAAKi3C,kCAAkCv3C,EAAEkuB,IAAIpyB,MACnB,gBAAvBkE,EAAEqL,OAAOmsC,WACRl3C,KAAKm3C,oBAAoBz3C,EAAGomC,GAAsBmN,SAAUlN,GAAsB0I,aAG5D,eAAvB/uC,EAAEqL,OAAOmsC,WACRl3C,KAAKm3C,oBAAoBz3C,EAAGomC,GAAsBmN,SAAUlN,GAAsBqR,MAG5D,WAAvB13C,EAAEqL,OAAOmsC,WACRl3C,KAAKm3C,oBAAoBz3C,EAAGomC,GAAsBmN,SAAUlN,GAAsBvC,WA9pC3D,+CAmqCnC,SAAkChoC,GAC9B,IAAIy5C,EAAYz5C,EAAKm+B,iBACbx0B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAIA,EAAK80B,kBAAoBn+B,EAAKm+B,yBACjDtsB,GAApB7R,EAAK4gC,YACNj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAIA,EAAKu3B,aAAe5gC,EAAK4gC,eACjEj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAKA,EAAKq2B,cAAgB1/B,EAAK0/B,gBAO3E,GANI1/B,EAAKuoC,UACLvoC,EAAKuoC,QAAU,CACX6S,OAAS9Q,GAAsBuR,WAC/BR,gBAAiB,KAGtB5B,EAAW,CACV,IAAIqC,GAAc,EAEdC,EAAmB/7C,EAAKizC,YACvB+I,WAAW,aAAc,cACzBA,WAAW,SAAU,YACrBA,WAAW,gBAAiB,IAE7BC,EAAoBxC,EAAUxG,YAC7B+I,WAAW,aAAc,cACzBA,WAAW,SAAU,YACrBA,WAAW,gBAAiB,IAEjC,GAAsF,GAAnFC,EAAkB/e,cAAc6e,EAAkB,KAAM,CAACG,YAAa,SACrEJ,GAAa,EACT97C,EAAKuoC,QAAQ8S,gBAAgB/+B,SAASiuB,GAAsB0I,cAC5DjzC,EAAKuoC,QAAQ8S,gBAAgBv6C,KAAKypC,GAAsB0I,iBAI5D,CACA,IAAIkJ,EAAWn8C,EAAKuoC,QAAQ8S,gBAAgB7+B,QAAQ+tB,GAAsB0I,cAC1D,GAAbkJ,GACCn8C,EAAKuoC,QAAQ8S,gBAAgB35C,OAAOy6C,EAAU,GAGtD,GAAG1C,EAAUzR,QAAUhoC,EAAKgoC,OACxB8T,GAAa,EACT97C,EAAKuoC,QAAQ8S,gBAAgB/+B,SAASiuB,GAAsBvC,SAC5DhoC,EAAKuoC,QAAQ8S,gBAAgBv6C,KAAKypC,GAAsBvC,YAG5D,CACImU,EAAWn8C,EAAKuoC,QAAQ8S,gBAAgB7+B,QAAQ+tB,GAAsBvC,SAC1D,GAAbmU,GACCn8C,EAAKuoC,QAAQ8S,gBAAgB35C,OAAOy6C,EAAU,GAItD,IAAIC,EAAQ3C,EAAYA,EAAUnX,cAAgB,GAClD,GAAI34B,IAAE0S,MAAMrc,EAAKsiC,eAAe,SAAAj5B,GAAI,YAC+DwI,GAD3DlI,IAAE6M,KAAK4lC,GAAO,SAAAphC,GAAC,OAAIA,EAAE+wB,cAAgB1iC,EAAK0iC,cAClF/wB,EAAEgxB,WAAa3iC,EAAK2iC,WAAahxB,EAAE8wB,OAASziC,EAAKyiC,QAAU9wB,EAAEsiB,WAAa,IAAMj0B,EAAKi0B,iBACpF3zB,IAAE0S,MAAM+/B,GAAO,SAAA/yC,GAAI,YAC+EwI,GAD3ElI,IAAE6M,KAAKxW,EAAKsiC,eAAe,SAAAtnB,GAAC,OAAIA,EAAE+wB,cAAgB1iC,EAAK0iC,cAC/E/wB,EAAEgxB,WAAa3iC,EAAK2iC,WAAahxB,EAAE8wB,OAASziC,EAAKyiC,OAAS9wB,EAAEsiB,YAAcj0B,EAAKi0B,WAAa,SAMvF,CACG6e,EAAWn8C,EAAKuoC,QAAQ8S,gBAAgB7+B,QAAQ+tB,GAAsBqR,OAC1D,GAAbO,GACCn8C,EAAKuoC,QAAQ8S,gBAAgB35C,OAAOy6C,EAAU,QARlDL,GAAa,EACT97C,EAAKuoC,QAAQ8S,gBAAgB/+B,SAASiuB,GAAsBqR,OAC5D57C,EAAKuoC,QAAQ8S,gBAAgBv6C,KAAKypC,GAAsBqR,MAW5D57C,EAAKuoC,QAAQ6S,OADdU,EACuBxR,GAAsBmN,SAGtBnN,GAAsBuR,gBAIhD77C,EAAKuoC,QAAQ6S,OAAS9Q,GAAsBkR,MA/uCjB,wBAkvCrC,SAAWa,GACP,OAAGA,GAAWA,EAAQjB,QAAU9Q,GAAsBmN,WAnvCrB,wBAwvCrC,WACI,OAAOjzC,KAAKy/B,cAAgBa,GAAiBle,QAzvCZ,qCA2vCrC,SAAwB5mB,EAAsBy6C,GAC1C,GAAGA,GAAqBjQ,GAAoBuE,MAAO,CACjD,IAAIuN,OAAmCzqC,GAApB7R,EAAK4gC,YAA2Bj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAIA,EAAKu3B,aAAe5gC,EAAK4gC,eAChGj3B,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAIA,EAAKq2B,cAAgB1/B,EAAK0/B,gBACnF4c,IACC93C,KAAKolC,wBAA0B,CAC3BqJ,YAAaqJ,EAAarJ,YAC1BO,sBAAuB8I,EAAavU,UAAYuU,EAAavU,UAAUpH,UAClE2b,EAAaxU,WAAawU,EAAaxU,WAAWr+B,KAAM,GAC7Du+B,OAAQsU,EAAatU,OACrBS,WAAY6T,EAAa7T,WACzB8K,gBAAiB/I,GAAoBuE,YAI1C,CACH,IAAIwN,EAAa5yC,IAAE6M,KAAKhS,KAAKqvC,oBAAoB,SAAAxqC,GAAI,OAAIA,EAAK80B,kBAAoBn+B,EAAKm+B,oBACpFoe,IACC/3C,KAAKolC,wBAA0B,CAC3BqJ,YAAasJ,EAAWtJ,YACxBO,sBAAuB+I,EAAWjN,eAAiBiN,EAAWjN,eAAe7lC,KAAO,GACpFu+B,OAAQuU,EAAWvU,OACnBS,WAAY8T,EAAW9T,WACvB8K,gBAAiB/I,GAAoByL,aAK/CzxC,KAAKmlC,6BAA8B,IAvxCF,qCAyxCrC,WACInlC,KAAKmlC,6BAA8B,EACnCnlC,KAAKolC,wBAA2B,CAC9BqJ,YAAa,GACbO,sBAAuB,GACvBxL,QAAQ,EACRS,WAAY,GACZ8K,gBAAiB/I,GAAoBuE,SAhyCN,uBAmyC1B,SAAU/uC,GACfwE,KAAK+kC,yBAA2BvpC,EAAKA,KACrCwE,KAAK6kC,mBAAkB,IAryCQ,8BAwyCnC,WACI,OAAI7kC,KAAK+kC,yBAIN/kC,KAAK+kC,yBAAyBxB,UACtB,GAAP,OAAUvjC,KAAK+kC,yBAAyBxB,UAAUpH,UAAlD,UAGDn8B,KAAK+kC,yBAAyB+F,eACtB,GAAP,OAAU9qC,KAAK+kC,yBAAyB+F,eAAe7lC,KAAvD,UAGG,GAXI,KA1yCoB,2BAwzC3B,SAAc2oB,GAElB,OAAGA,EAAIoX,UACI,yBAGA,iBA9zCoB,wBAk0C3B,WAAU,WACVgT,EAAoBh4C,KAAKuP,MAAMwzB,YACnC,GAAGiV,EAAazhC,MAAMva,QAAUg8C,EAAazhC,MAAM,GAAG3Y,KAAKga,cAAcsE,SAAS,SAI9E,GAHAlc,KAAKuzC,aAAeyE,EAAazhC,MAAM,GACvCvW,KAAK2gC,SAASiC,gBAAkBoV,EAAazhC,MAAM,GAAG3Y,KACtDoC,KAAK2gC,SAASuS,cAAgB,KAC3BlzC,KAAKmjC,kBAAkBnxB,MAAK,SAAAwE,GAAC,OAAGA,EAAEgtB,WAAWxjC,KAAKokC,uBAAuBpyB,MAAK,SAAAwE,GAAC,OAAGA,EAAEgtB,UAAS,CAC5F,IAAIyU,EAAsB,CACtB,CAAEtsC,KAAM,MAAOkW,QAAS,SAACxL,GAAiB,OAAO,IACjD,CAAE1K,KAAM,KAAMkW,QAAS,SAACxL,GAAiB,OAAO,KAGhDvG,EAAU,+GACVpP,EAAQ,iBACZ0yB,KAAO8kB,OAAO,CAACC,YAAaroC,EAASpP,MAAOA,EAAOu3C,QAASA,IAAUG,OAAO/xC,MAAK,SAACmQ,GAC5EA,IACC,EAAK2sB,kBAAkBv/B,QAAO,SAAA4S,GAAC,OAAGA,EAAEgtB,UAAQx0B,SAAQ,SAAAwH,GAAC,OAAEA,EAAEgtB,QAAS,KAClE,EAAKY,uBAAuBxgC,QAAO,SAAA4S,GAAC,OAAGA,EAAEgtB,UAAQx0B,SAAQ,SAAAwH,GAAC,OAAEA,EAAEgtB,QAAS,eAMnFxjC,KAAK2gC,SAASiC,gBAAkB,OAz1CL,yBA61C3B,SAAYvsB,GAChBrW,KAAK2gC,SAAS0X,aAAehiC,EAAMhY,QA91CJ,uBAi2C3B,WAAS,WACT45C,EAAsB,CACtB,CAAEtsC,KAAM,KAAMkW,QAAS,SAACxL,GAAiB,OAAO,IAChD,CAAE1K,KAAM,SAAUkW,QAAS,SAACxL,GAAiB,OAAO,KAEpD2hC,EAAoBh4C,KAAKuP,MAAMwzB,YAE/BjzB,EAAU,0EAAH,OAA6E9P,KAAK2gC,SAASiC,gBAA3F,4BACPliC,EAAQ,iBAEZ0yB,KAAO8kB,OAAO,CAACC,YAAaroC,EAASpP,MAAOA,EAAOu3C,QAASA,IAAUG,OAAO/xC,MAAK,SAACmQ,GAC5EA,IACCwhC,EAAa35C,MAAQ,KACrB,EAAKsiC,SAASuS,cAAgB,KAC9B,EAAKvS,SAASiC,gBAAkB,KAChC,EAAK2Q,aAAe,WAh3CG,yBAq3C3B,WACJ,GAAkC,MAA/BvzC,KAAK2gC,SAASuS,eAAyBlzC,KAAK2gC,SAASiC,iBAAmB5iC,KAAK2gC,SAASiC,gBAAgB3a,OAAQ,CAC7G,IAAI1R,EAAgB,CAAC,CAAC,SAAYvW,KAAK2gC,SAASiC,kBAEhD,OAAO5iC,KAAK8sC,YAAYwL,YAAY,CAAC/hC,MAAOA,GAAQvW,KAAKuzC,cAE7D,OAAO7uC,QAAQ5E,QAAQ,QA33CQ,8BA83C3B,WACDE,KAAK2gC,SAASuS,eACblzC,KAAK8sC,YAAYyL,cAAc,CAACv4C,KAAK2gC,SAASuS,gBAC7C7sC,MAAK,SAAAxJ,GACFA,EAAO27C,OAAOnyC,MAAK,SAACuL,GAChB,IAAI6mC,EAAUC,IAAIC,gBAAgB/mC,GAClC1S,OAAO05C,KAAKH,WAp4CO,iCA04C3B,SAAoBj9C,GACxB,OAAOA,EAAKizC,YAAY+I,WAAW,gBAAiB,QA34CrB,GAAS30C,cAS5Cb,gBADCwnB,gBAAK,CAAEC,QAAS6W,GAAiB9b,UAClC,mCAGAxiB,gBADCwnB,gBAAK,CAAEC,QAAS4W,GAAkByI,OACnC,oCAuBA9mC,gBArBCwnB,gBAAK,CAAEC,QAAS,WACb,IAAIkpB,EAAoB,CACpBb,WAAY,uCACZjmC,SAAU,GACV4B,QAAS,GACTgwB,WAAY,EACZnW,gBAAgB,EAChBgrB,aAAc,GACdM,cAAe,IAAI1V,KACnBiO,YAAa,EAAE,GACf0H,uBAAwB,GACxBC,aAAc,GACdC,cAAe,GACfC,oBAAqB,GACrBxP,OAAQ,GACRyP,UAAU,EACVC,cAAe,KACftQ,gBAAiB,MAErB,OAAO+P,MAEX,gCAOA3wC,gBADCwnB,mBACD,8BAGAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,gCAmBAxnB,gBADCuW,gBAAM,eACP,sCAnEiB62B,GAAkB,gBAjCtCjoC,eAAU,CACTL,WAAY,CACVkjB,iBACAvK,oBACAF,oBACA3G,wBACA8G,0BACAqU,oBACA/a,wBACAK,8BACA8Q,wBACA6J,eACA/J,kCACAgK,4CACAtU,8BACAk5B,gCACArgC,uBACAG,wBACA6G,oCACA1G,0BACA4Q,4BACA+d,qBACAnuB,gCACAqQ,4BACAG,0BACAI,iBACAtK,oCACAxG,gCACAy0B,oBACAe,4BACA/1B,kCAGiBu2B,QClhBT0J,GDkhBS1J,MEniB6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIrvC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,OAAO,OAAS,MAAM,MAAQ,mBAAmB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,OAASjI,EAAIg5C,cAAc,QAAUh5C,EAAIi5C,eAAe,iBAAiB,SAAS/wC,GAAQlI,EAAI2gB,cAAczY,KAAU,CAAC9H,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIk5C,mBAAmBjxC,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIk5C,kBAAkBhxC,MAAW9H,EAAG,MAAM,CAACe,YAAY,eAAeiK,YAAY,CAAC,OAAS,UAAU,CAAChL,EAAG,UAAU,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,cAAcP,EAAIm5C,MAAMlxC,GAAG,CAAC,oBAAoBjI,EAAI6H,sBAAsBzH,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,eAAe,CAAC+H,IAAI,mBAAmB5H,MAAM,CAAC,cAAcP,EAAIssB,0BAA0B,MAAQ,OAAO,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,uBAAwB,EAAK,qBAAsB,EAAK,uBAAwB,EAAM,cAAe,EAAM,eAAiB,GAAG,iBAAkB,EAAK,mBAAqB,SAAS,OAAS,OAAO,QAA6B,IAAnBtsB,EAAIo5C,YAAkBnxC,GAAG,CAAC,oBAAoBjI,EAAIq5C,wBAAwB,aAAer5C,EAAIs5C,cAAcv4C,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,qBAAqBqC,GAAG,SAASkH,GACrxC,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,6BAA6BvH,EAAIwH,GAAGxH,EAAIu5C,2BAA2B99C,EAAKA,KAAM,OAAO,gCAAgC,CAACmD,IAAI,sBAAsBqC,GAAG,SAASkH,GACjM,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,6BAA6BvH,EAAIwH,GAAGxH,EAAIu5C,2BAA2B99C,EAAKA,KAAM,QAAQ,mCAAmC,CAAC2E,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,kBAAkB,WAAW,wBAAwB,SAAS,UAAW,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,OAAQ,EAAK,iBAAiB,OAAO,aAAa,YAAY,YAAY,SAAS,QAAU,aAAa,MAAQ,MAAM,sBAAuB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,QAAU,kBAAkB,gBAAgB,wBAAwBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,mBAAmB,QAAU,sBAAsB,gBAAgB,yBAAyBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,cAAc,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,WAAW,MAAQ,UAAU,GAAGH,EAAG,eAAe,CAAC+H,IAAI,iBAAiB5H,MAAM,CAAC,cAAcP,EAAIw5C,eAAe,MAAQ,OAAO,cAAe,EAAK,iBAAkB,EAAK,aAAc,EAAK,eAAiB,GAAG,QAA6B,IAAnBx5C,EAAIo5C,WAAiB,mBAAqB,SAAS,OAAS,QAAQnxC,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,gBAAgBrjC,EAAIyK,eAAe,gBAAgBzK,EAAIy5C,eAAe,cAAcz5C,EAAI05C,kBAAkB,yBAAyB15C,EAAI25C,qBAAqB,CAACv5C,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAcH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,OAAQ,EAAK,iBAAiB,OAAO,aAAa,YAAY,YAAY,SAAS,YAAY,SAASP,EAAI6K,GAAI7K,EAAW,SAAE,SAASgL,GAAQ,OAAO5K,EAAG,YAAY,CAACxB,IAAIoM,EAAOnN,KAAK0C,MAAM,CAAC,KAAOyK,EAAOnN,KAAK,YAAYmN,EAAO8E,KAAK,aAAa9E,EAAOnN,KAAK,gBAAgBmN,EAAO4uC,WAAW,iBAAgB,EAAM,mBAAkB,EAAM,YAAY,aAAY,GAAGx5C,EAAG,eAAe,CAAC+H,IAAI,YAAY5H,MAAM,CAAC,cAAcP,EAAI65C,qBAAqB,cAAe,EAAK,iBAAkB,EAAK,aAAc,EAAK,cAAe,EAAM,QAA6B,IAAnB75C,EAAIo5C,WAAiB,mBAAqB,SAAS,OAAS,OAAO,eAAe,IAAI,wBAAuB,EAAK,qBAAoB,EAAM,iBAAgB,GAAMnxC,GAAG,CAAC,gBAAgBjI,EAAI85C,oBAAoB,cAAc95C,EAAI+5C,cAAch5C,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,yBAAyBqC,GAAG,SAASkH,GAC/1E,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKu+C,eAAe,aAAa,QAAQ/xC,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,iBAAkByM,QAAa,OAAO,CAACtJ,IAAI,uBAAuBqC,GAAG,SAASkH,GAC7P,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,YAAY,CAAyB,IAAvB9E,EAAKA,KAAKgS,UAAiBrN,EAAG,MAAM,CAACgL,YAAY,CAAC,eAAe,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIi6C,sBAAsBx+C,QAAW,GAAGuE,EAAIyI,KAA6B,IAAvBhN,EAAKA,KAAKgS,UAAiBrN,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,aAAa0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIk6C,yBAAyBz+C,QAAW,GAAGuE,EAAIyI,YAAY,CAACrI,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAcH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,OAAQ,EAAK,iBAAiB,OAAO,aAAa,YAAY,YAAY,SAAS,YAAY,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,iBAAiB,QAAU,qBAAqB,gBAAgB,yBAAyB,SAAW,uBAAuBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,QAAU,iBAAiB,YAAY,SAAS,YAAY,MAAM,iBAAgB,EAAK,iBAAiB,CAAEu3B,YAAa93B,EAAIm6C,cAAe,sBAAqB,IAAO,CAAC/5C,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIo6C,yBAAyB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAM,eAAe,IAAI,YAAc,0BAA0B,GAAGh6C,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,wBAAwB,YAAY,SAAS,QAAU,uBAAuB,YAAY,MAAM,iBAAiB,CAAEu3B,YAAa93B,EAAIq6C,yBAA0B,sBAAqB,IAAO,CAACj6C,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIs6C,0BAA0B,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAM,eAAe,IAAI,YAAc,yBAAyB,GAAGl6C,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,QAAU,UAAU,MAAQ,OAAO,gBAAgB,uBAAuB,SAAW,iBAAiB,GAAuB,IAAnBP,EAAIo5C,WAAkBh5C,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,cAAcnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,MAAM,CAACA,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,mBAAmB,WAAaP,EAAImjB,cAAc,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,OAAS,KAAK,MAAQ,MAAM,MAAQnjB,EAAIojB,gBAAgB,YAAc,SAAS,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,OAAOnb,GAAG,CAAC,OAASjI,EAAI+iB,gBAAgB,eAAe,SAAS7a,GAAQlI,EAAIojB,gBAAgBlb,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIijB,uBAAuBliB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GACjwF,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,6CAA6CvH,EAAIwH,GAAG/L,GAAM,4CAA4C2E,EAAG,MAAM,CAACe,YAAY,+BAA+B,MAAK,EAAM,eAAe,SAASnB,EAAIyI,MAAM,IAAI,GAAsB,GAAlBzI,EAAIo5C,WAAiBh5C,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,iBAAkBkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIu6C,mBAAmB,SAAW,SAAS,QAAU,YAAYv6C,EAAIyI,KAAKrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM5L,EAAIw6C,iBAAkB1qC,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIy6C,gBAAiB,SAAW,QAAQ,QAAU,YAAYr6C,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM5L,EAAI06C,aAAc5qC,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI26C,cAAe,SAAW,QAAQ,QAAU,YAAYv6C,EAAG,wBAAwB,CAACG,MAAM,CAAC,WAAaP,EAAI2hB,mBAAmB1Z,GAAG,CAAC,OAASjI,EAAI46C,0BAA0Bx6C,EAAG,0BAA0B,CAACG,MAAM,CAAC,WAAaP,EAAI66C,YAAY,eAAiB76C,EAAI86C,eAAe,mBAAqB96C,EAAI+6C,mBAAmB,YAAc/6C,EAAIg7C,oBAAoB,sBAAwBh7C,EAAIi7C,uBAAuBhzC,GAAG,CAAC,OAAS,SAASC,GAAQlI,EAAI66C,aAAc,EAAO76C,EAAIg7C,oBAAsB,QAAQ,IAC11C,GAAkB,G,WHMtB,SAAYjC,GACVA,aACAA,eACAA,oBAHF,CAAYA,QAAgB,KIjB5B,IAAI,GAAS,WAAa,IAAI/4C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,QAAUP,EAAI2gB,cAAc,gBAAe,EAAK,0BAAyB,EAAM,cAAa,EAAK,MAAQ,UAAU,MAAQ,KAAK1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,KAAU,CAAC9H,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIk7C,oBAAoBjzC,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIk7C,mBAAmBhzC,MAAW9H,EAAG,iBAAiB,CAACG,MAAM,CAAC,qBAAoB,EAAK,mBAAkB,EAAK,iBAAiB,YAAY,CAACH,EAAG,OAAO,CAAC+6C,SAAS,CAAC,UAAYn7C,EAAIwH,GAAGxH,EAAIo7C,kBAAkBh7C,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,WAAYkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIq7C,gBAAgB,SAAW,QAAQ,QAAU,SAAS,QAAUr7C,EAAIs7C,wBAAwBl7C,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIu7C,SAAU,SAAW,QAAQ,QAAU,aAAa,IAC5/B,GAAkB,G,2fCqDtB,IAAqBC,GAAoB,4CA6CrC,iDACI,eA7CJ,EAAAhsC,MAEI,GAuCJ,EAAA0rC,oBAA8B,EAK1B,EAAKjN,gBAAkB,IAAIzN,GAAiB,kBAC5C,EAAK78B,OAAS,IAAIC,4BAAsB,EAAK0M,OAAQ,IAHzD,EA7CqC,kDAQrC,WACI,OAAOrQ,KAAKgmB,YATqB,IAYrC,SAAkB3nB,GACd2B,KAAKimB,MAAM,YAbsB,uBA4BrC,WACI,OAAOjmB,KAAK66C,iBA7BqB,gCAgCrC,WACI,OAAO76C,KAAK86C,qBAjCqB,uBAoCrC,WACI,OAAO96C,KAAKihC,cArCqB,qBAmDrC,SAAQvhC,GACJM,KAAK0gB,eAAgB,IApDY,qFAuDrC,WAAqBhhB,GAArB,mGACIM,KAAKi7C,oBAAqB,GACvBj7C,KAAKw7C,YAFZ,uBAGYnoB,EAA+B,CAC/BmoB,YAAcx7C,KAAKw7C,YACnBC,sBAAyBz7C,KAAKg7C,sBAC9BU,gBAAiB,IAAIxe,MAAQye,qBANzC,SAS4C37C,KAAKguC,gBAAgB4N,sBAAsBvoB,GAC9EhtB,MAAK,SAACguB,GACL,OAAOA,KAER/tB,OAAM,SAAAmtB,GACLtL,oBAAM,mEAAoE,YAG3ElU,SAAQ,WACP,EAAKgnC,oBAAqB,KAlBpC,UASYY,EATZ,SAqBYA,GAA2BA,EAAwBtO,KAAOsO,EAAwBrO,OArB9F,gCAsBkBxtC,KAAK0D,OAAOgqC,SAASmO,EAAwBtO,IAAKsO,EAAwBrO,OAC3EnnC,MAAK,SAAAxJ,GACN,IAAIi/C,EAAWj/C,EAAOk/C,QAAQ99C,IAAI,YAElCpB,EAAO27C,OAAOnyC,MAAK,SAACuL,GAChBoqC,KAAUC,OAAOrqC,EAAGsqC,mBAAmBJ,UAE5Cx1C,OAAM,SAAAulB,OA7BrB,gDAvDqC,+DAAShpB,cAM9Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAWAznB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,0CAGAxnB,gBADCwnB,mBACD,mCAGAxnB,gBADCwnB,mBACD,6CA1BiB+xB,GAAoB,gBATxCp0C,eAAU,CACTL,WAAY,CACVwY,sBACA2K,kCACA7Q,gCACAP,kCAIiB0iC,QCtDTY,GAOAC,GD+CSb,MEtD+Y,MCOha,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,SFlBf,SAAYY,GACRA,qBACAA,2BACAA,4BACAA,gCAJJ,CAAYA,QAA4B,KAOxC,SAAYC,GACRA,yBACAA,uBACAA,wBACAA,yBACAA,uBALJ,CAAYA,QAA4B,K,0gBGuVxC,IAAMtO,GAActpC,uBAAUnB,KAAcF,GAuCvBk5C,GAAsB,4CA6HvC,iDACI,eA7HJ,EAAA9sC,MAKI,GA2BJ,EAAA+sC,aAAsB,GACtB,EAAAC,iBAA0C,GAC1C,EAAApD,WAAqB,EACrB,EAAAqD,SAAkB,EAClB,EAAAC,iBAA2B,EAG3B,EAAAhC,aAAuB,SACvB,EAAAF,iBAA2B,WAC3B,EAAA74B,mBAA6B,EAC7B,EAAAk5B,aAAuB,EACvB,EAAAC,eAAyB,GACzB,EAAAC,oBAA8B,EAC9B,EAAA5B,KAAO,CACL,CACE15C,GAAK,EACLmM,KAAO,gBACP2vB,KAAM,QAER,CACE97B,GAAK,EACLmM,KAAO,oBACP2vB,KAAM,OACNkB,UAAU,GAEZ,CACEh9B,GAAK,EACLmM,KAAO,mBACP2vB,KAAM,UACNkB,UAAU,IAGd,EAAAkgB,kBAAyB,GACzB,EAAAC,wBAA+B,GAM/B,EAAAC,gBAAyB,GAMzB,EAAAC,gBAAiC,GAiBjC,EAAAC,qBAA8C,GAW9C,EAAA7D,mBAA6B,EAsF7B,EAAA/1B,cAA0B,CAAC,IAC3B,EAAAC,gBAA4B,GAC5B,EAAAuC,oBAA8B,GAC9B,EAAAq3B,iBAA2B,EAC3B,EAAAx3B,eAAiB,CACTC,aAAe,CACX3V,KAAM,QACNC,QAAU,iBAEd2V,QAAU,IA8ElB,EAAAs1B,oBAA8B,GAC9B,EAAAC,sBAA8B,GAgC9B,EAAAgC,WAAa,IA4Eb,EAAAC,yBAAgC,CAC9BzhD,MAAO,EACP8vC,KAAO,IAuCT,EAAA4R,cAAwB,GAwGxB,EAAAC,uBAAmC,GArZ/B,EAAKn3B,YAAa,EAClB,EAAKzV,aAAe,IAAInD,GACxB,EAAK4gC,gBAAkB,IAAIzN,GAAiB,kBAC5C,EAAK6c,4BAA8B,IAAI3sC,KACvC,EAAKib,oBAAsB,IAAIL,GAC/B,EAAK8uB,yBAA2B,EAAKkD,mBAAmBhzB,GAAqBizB,eAC7E,EAAKjD,0BAA4B,EAAKgD,mBAAmBhzB,GAAqBkzB,sBATlF,EA7HuC,8CAYvC,WACI,OAAOv9C,KAAK0D,SAbuB,gCAgBvC,WACI,OAAQ1D,KAAKuP,MAAMiuC,iBAA8BpsC,WAjBd,8BAoBvC,WACI,OAAQpR,KAAKuP,MAAMkuC,eAA4BrsC,WArBZ,wBAwBvC,WACI,OAAQpR,KAAKuP,MAAMmuC,UAAuBtsC,WAzBP,kCA4BvC,WACI,OAASpR,KAAKuP,MAAMouC,cAAuBvsC,WA7BR,8BAoEvC,WACE,OAAOpR,KAAKs8C,aAAaj9C,KAAI,SAAAwF,GAAI,OAAIA,EAAK4I,aArEL,mBA0EvC,WACE,OAAOzN,KAAK48C,kBA3EyB,0BAgFvC,WAAkB,WACZ//C,EAAc,GAMlB,OAJGmD,KAAK68C,iBAAmB78C,KAAK68C,gBAAgB7gD,OAAS,IACvDa,EAASmD,KAAK49C,YAAY59C,KAAK68C,gBAAgBj5C,QAAO,SAAAi6C,GAAG,OAAIA,EAAIhyC,WAAa,EAAKi2B,UAAUj2B,cAGxF,IAAIga,KAAW,CAChB1iB,MAAO,IAAI26C,KAAW,CACpBn/C,IAAM,YACNnD,KAAMqB,QA1FuB,gCAgGvC,WACE,MAAO,CACL,MAAU,CACR,KAAQ,QACR,IAAQ,YACR,KAASmD,KAAK88C,yBArGmB,gCA8GvC,SAAmBjtC,GAA0B,WAC3C,OAAO,IAAIY,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgB9b,GAC3CxJ,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,WAxHgB,yBA6IvC,WACI,OAAO7rB,KAAKgmB,YA9IuB,IAiJvC,SAAkB3nB,GACd2B,KAAKipC,gBAlJ8B,oCAqJvC,SAAuBvpC,GACrBM,KAAK0hB,mBAAoB,EACzB1hB,KAAKm6C,yBAA2Bn6C,KAAKq9C,mBAAmBhzB,GAAqBizB,eAC7Et9C,KAAKq6C,0BAA4Br6C,KAAKq9C,mBAAmBhzB,GAAqBkzB,wBAxJzC,yFA0JvC,WAAyB79C,GAAzB,0FAEMM,KAAKy8C,gBAFX,qBAGsB,EAClBz8C,KAAKw8C,SAAWx8C,KAAKm5C,WACrBn5C,KAAKm5C,WAAaz5C,EAAEuH,UAAUmK,WAAW9E,OAAO,iBAE1B,GAAnBtM,KAAKm5C,WAPZ,wBAQU4E,EAAY/9C,KAAKw8C,SAAWx8C,KAAKm5C,WACrCn5C,KAAKu6C,iBAAmB,WACxBv6C,KAAKy6C,aAAe,OAEhBsD,GACF/9C,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GAbhE,UAgBctM,KAAKi+C,iBAAiBF,GAhBpC,mCAmB+B,GAAnB/9C,KAAKm5C,WAnBjB,wBAoBMn5C,KAAKu6C,iBAAmB,SACxBv6C,KAAKy6C,aAAe,OArB1B,UAuBYz6C,KAAKk+C,mBAvBjB,gCA0BMl+C,KAAKu6C,iBAAmB,WACxBv6C,KAAKy6C,aAAe,SACpBz6C,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GA5B9D,QA+BEtM,KAAKy8C,iBAAkB,EA/BzB,iDA1JuC,uFA4LvC,SAAgB/8C,GACRA,EAAEuH,UAAUigB,UAAU9hB,WA7LS,uCA2MrC,SAA0B1F,GACtB,GAAIM,KAAKinB,qBAAqBvnB,EAAEiM,MAChC,CACI,IAAI/N,EAAO8B,EAAEuH,UAAUqF,OAAO,QAEnB,oBAAR1O,IAEIuH,IAAE6M,KAAKhS,KAAKkjB,eAAe,SAAAre,GAAI,OAAIA,IAASnF,EAAEiM,QAC7C3L,KAAK0lB,oBAAsBhmB,EAAEiM,KAG7B3L,KAAKkjB,cAAc5mB,KAAKoD,EAAEiM,OAGlC3L,KAAK+8C,iBAAkB,OAGvB/8C,KAAK+8C,iBAAkB,EACvBr9C,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBA9N5B,0BAkOvC,SAAa9lB,GACT,MAAO,CACH,mBAAqBM,KAAKinB,qBAAqBvnB,GAAK,UAAY,aApOjC,mCAwOrC,SAAsBA,GAAK,WACrB,GAAGM,KAAK0lB,oBAAoB,CACxB,IAAInU,EAAM7R,EAAEuH,UAAUqF,OAAO,SAE7BiF,EAAIjV,KAAK0D,KAAK0lB,qBACdhmB,EAAEuH,UAAUqF,OAAO,QAASiF,GAE5BvR,KAAK0lB,oBAAsB,GAE5BhmB,EAAErB,OAASqB,EAAErB,MAAMrC,OAAS,GACxBmJ,IAAE6M,KAAKtS,EAAErB,OAAM,SAAAwG,GAAI,OAAM,EAAKoiB,qBAAqBpiB,OAClD7E,KAAK+8C,iBAAkB,EACvBr9C,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBASzDxlB,KAAK+8C,iBAAkB,EACvBr9C,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAmB,SAhQf,kCAoQrC,SAAqBX,GACf,MAAO,gDAAgDqb,KAAKrb,KArQ7B,4FAwQvC,WAA4BjM,GAA5B,0FACEM,KAAK86C,oBAAqB,EACtBp7C,EAAElE,KAAK2iD,gBAFb,gCAGU/qB,KAAOjL,MAAM,sCAAuC,YAH9D,8CAM0BnoB,KAAK0rB,oBAAoB0yB,oBAAoB1+C,EAAElE,KAAK2iD,iBAC7D93C,MAAK,SAAAxJ,GAAM,OAAIA,EAAOszB,QACtB7pB,OAAM,SAAAulB,GAAG,MAAI,MAR9B,OAMQwyB,EANR,OAUIr+C,KAAK66C,eAAiB76C,KAAKs+C,uBAAuBD,EAAW3+C,EAAElE,MAC/DwE,KAAK46C,aAAc,EAXvB,iDAxQuC,yJAyRvC,WAA+Bl7C,GAA/B,4FACEM,KAAK86C,oBAAqB,EACtBp7C,EAAElE,KAAKigD,sBAFb,gCAGUroB,KAAOjL,MAAM,4CAA6C,YAHpE,8CAM8BnoB,KAAKguC,gBAAgBuQ,uBAAuB7+C,EAAElE,KAAKggD,aANjF,cAMQgD,EANR,iBAO0Bx+C,KAAK0rB,oBAAoB0yB,oBAAoB1+C,EAAElE,KAAKigD,uBAC7Dp1C,MAAK,SAAAxJ,GAAM,OAAIA,EAAOszB,QACtB7pB,OAAM,SAAAulB,GAAG,MAAI,MAT9B,QAOQwyB,EAPR,OAWIr+C,KAAK66C,eAAiB76C,KAAKs+C,uBAAuBD,EAAW3+C,EAAElE,MAAQ,eAAiBgjD,EACxFx+C,KAAK+6C,oBAAsBr7C,EAAElE,KAAKggD,YAClCx7C,KAAKg7C,sBAAwBt7C,EAAElE,KAAKigD,sBACpCz7C,KAAK46C,aAAc,EAdvB,iDAzRuC,8FA2SvC,SAAuByD,EAAmB7iD,GACxC,IAAIqB,EAAS,GASb,OARAA,EAASwhD,EACNxhD,EAAOib,SAAS,iBACjBjb,EAASA,EAAO6a,MAAM,eAAe5T,KAAKtI,EAAKgS,YAE9C3Q,EAAOib,SAAS,kBACjBjb,EAASA,EAAO6a,MAAM,gBAAgB5T,KAAK9D,KAAK8hC,UAAUl2B,aAGrD/O,IArT8B,4BAyT/B,SAAe6C,GACrB,GAAiB,WAAdA,EAAEyT,QAIL,GAAiB,SAAdzT,EAAEyT,SAA6C,cAAvBzT,EAAEqL,OAAOmsC,WAA8Bx3C,EAAEqL,OAAOmsC,UAAUp/B,SAAS,cAYtFpY,EAAEqL,OAAOmsC,UAAUp/B,SAAS,gBAChCpY,EAAE8T,YAAYnT,MAAM,oBAAsB,QAC1CX,EAAE8T,YAAYnT,MAAM,SAAW,YAd0E,CACzG,IAAIorC,EAAM/rC,EAAEkuB,IAAIpyB,KACbiwC,EAAItvC,eAAeuD,EAAEqL,OAAOmsC,WAC7Bx3C,EAAE8T,YAAYnT,MAAM,oBAAuBL,KAAKy+C,SAAS/+C,EAAEkuB,IAAIpyB,KAAKkE,EAAEqL,OAAOmsC,YAG7Ex3C,EAAE8T,YAAYnT,MAAM,oBAAsB+7C,GAA6BsC,MAGzEh/C,EAAE8T,YAAYnT,MAAM,SAAWL,KAAKg9C,cAvUH,sBAgV/B,SAAS3+C,GACf,GAAGA,EAAMyZ,SAAS,WAAazZ,EAAMyZ,SAAS,KAC5C,OAAOskC,GAA6BuC,SAGtC,GAAGtgD,EAAMyZ,SAAS,UAChB,OAAOskC,GAA6B5Y,OAGtC,OAAOnlC,GACL,KAAK89C,GAA6ByC,UAChC,OAAOxC,GAA6BwC,UACtC,KAAKzC,GAA6B0C,WAChC,OAAOzC,GAA6ByC,WAGxC,OAAOzC,GAA6BsC,QAhWC,iCAmWvC,SAAoBh/C,GAClB,GAAiB,SAAdA,EAAEyT,SAA8C,cAAvBzT,EAAEqL,OAAOmsC,UAA4B,CACnDx3C,EAAEkuB,IAAIpyB,KACZkE,EAAEkuB,IAAIpyB,KAAKgS,YACb9N,EAAE8T,YAAYnT,MAAM,gBAAkB,4BAvWP,4BA4WvC,SAAeX,GACVA,EAAEuH,WACHjH,KAAKm9C,uBAAuBnuC,SAAQ,SAAAlK,GAClCpF,EAAEuH,UAAU63C,aAAah6C,EAAM,UAAW,IAC1CpF,EAAEuH,UAAU63C,aAAah6C,EAAM,QAAS,SAhXP,4BAuXvC,SAAepF,GACb,GAAGA,EAAEqL,OAAOmsC,UAAUp/B,SAAS,cAAe,CAC5C,IAAIwzB,EAAO5rC,EAAEqL,OAAOmsC,eACD7pC,GAAhB3N,EAAElE,KAAK8vC,GACR5rC,EAAEuf,QAAS,EAGXvf,EAAEuf,QAAS,KA9XsB,+BAyYvC,SAAkBvf,GAChB,IAAI6a,EAAcva,KAAK++C,mBAA2BC,gBAAgBrkC,QAElE3a,KAAKi/C,6BAA6B1kC,KA5YG,kCA+YvC,SAAqBA,GACnB,IAAI1d,GAAS,EASb,OAPAmD,KAAK6K,QACJjH,QAAO,SAACs7C,GAAD,OAAkBA,EAAQthD,KAAKka,SAAS,iBAC/C9I,SAAQ,SAACkwC,GACL3kC,EAAWvI,MAAK,SAACwE,GAAD,OAA8B,GAAnBA,EAAE0oC,EAAQthD,WACtCf,GAAS,MAGNA,IAzZ8B,gCA2ZvC,SAAmB6C,GACjB,GAAGA,EAAEkuB,IAAIza,SAA6B,SAAlBzT,EAAEkuB,IAAIza,SAAsBzT,EAAEqL,OAAOmsC,UAAUp/B,SAAS,cAC5E,CACE,IAAIwzB,EAAO5rC,EAAEqL,OAAOmsC,eAEG7pC,GAApB3N,EAAEkuB,IAAIpyB,KAAK8vC,KACZtrC,KAAKi9C,yBAAyBzhD,KAAOkE,EAAEkuB,IAAIpyB,KAAK8vC,GAChDtrC,KAAKi9C,yBAAyB3R,KAAOA,EAErC5rC,EAAEib,MAAQ,CACR,CAAEhP,KAAMjM,EAAEkuB,IAAIpyB,KAAK8vC,GAAQ,eAAiB,aAC1CzT,YAAa73B,KAAKm/C,yBAtaW,0BA8avC,SAAaz/C,GACXM,KAAKk9C,cAAgB,kBACpBl9C,KAAKo/C,aAAqBplC,iBAhbU,qCAkbvC,SAAwBta,GACtBM,KAAKk9C,cAAgB,wBACpBl9C,KAAKo/C,aAAqBplC,iBApbU,0BAsbvC,SAAata,GAAM,WACjB,QAAY2N,GAAT3N,EAAEf,IAAkB,CACrB,IAAInD,EAAOkE,EAAElE,KACT+e,EAAcva,KAAKo/C,aAAqBJ,gBAAgBrkC,QAE5D,GAAa,KAAVjb,EAAEf,IACH4b,EAAWvL,SAAQ,SAACkwC,GACfA,EAAQ1xC,YACT0xC,EAAQ,EAAKhC,eAAiB1hD,EAAK,EAAK0hD,uBAIzC,CACH,IAAImC,EAAQ9kC,EAAW,GACvB8kC,EAAMr/C,KAAKk9C,oBAAiB7vC,EAG7BrN,KAAKo/C,aAAqB9yC,OAAO,aAAc,CAC9C,MAAU,CACR,KAAQ,QACR,IAAQ,YACR,KAASiO,QA3csB,gCAgdvC,WACE,IAAIA,EAAcva,KAAK++C,mBAA2BC,gBAAgBrkC,QAC9D2kC,EAAUt/C,KAAKi9C,yBAAyBzhD,KACxC8vC,EAAOtrC,KAAKi9C,yBAAyB3R,KAEzC/wB,EAAWvL,SAAQ,SAACkwC,GACfA,EAAQ/iD,eAAemvC,KACxB4T,EAAQ5T,IAAQgU,MAInBt/C,KAAK++C,mBAA2BzyC,OAAO,aAAciO,GACtDva,KAAKi/C,6BAA6B1kC,KA5dG,0CAgevC,SAA6BA,GAC3B,IAAIglC,EAAcv/C,KAAKw/C,qBAAqBjlC,GACzCglC,EACDv/C,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GAGxDtM,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,KAterB,yCA0evC,WAA2B,WACrBzP,EAAiC,GAEjC4iD,EAAqC,CACrCjyC,UAAY,GACZusC,eAAiB,GACjByB,YAAa,IAGjB,GAAGx7C,KAAKuP,MAAMkuC,eAAgB,CAC5B,IAAIljC,EAAcva,KAAK++C,mBAA2BC,gBAAgBrkC,QAC9D+kC,EAAmB1/C,KAAK6K,QAAQjH,QAAO,SAACs7C,GAAD,OAAkBA,EAAQthD,KAAKka,SAAS,iBAEnFyC,EAAWvL,SAAQ,SAACkwC,GAClB,IAAI3C,EAAyC,CAC3C/uC,UAAY0xC,EAAQ1xC,UACpBusC,eAAiB,GACjByB,YAAa,IAEXmE,EAAgC,GACpCD,EAAiB1wC,SAAQ,SAACwH,GACxB,GAAsB,GAAnB0oC,EAAQ1oC,EAAE5Y,MAAe,CAC1B,IAAIgiD,EAAappC,EAAE5Y,KAAKiiD,QAAQ,aAAc,IAC9CtD,EAAiBxC,gBAAjB,UAAsC6F,EAAtC,UACAD,EAAoBrjD,KAAKsjD,OAI1BrD,EAAiBxC,iBAClBwC,EAAiBf,YAAc,EAAKqB,gBACLj5C,QAAO,SAAA4S,GAAC,OAAIA,EAAE4L,OAAS5L,EAAE4L,MAAM5U,WAAa0xC,EAAQ1xC,WAC9CmyC,EAAoB7nC,SAAStB,EAAE87B,iBACrCjzC,KAAI,SAAAmX,GAAC,OAAIA,EAAEs7B,cAC1Cj1C,EAAOP,KAAKigD,OAOlB,OAFA1/C,EAAOiP,QAAQ2zC,GAER/6C,QAAQ5E,QAAQjD,KAlhBc,4BAshBvC,SAAeggD,GAAqB,WAClC78C,KAAK48C,gBAAkB,GACvB,IAAIkD,EAAoB,GACxB9/C,KAAKm9C,uBAAyB,GAE9B,IAAI4C,EAAc,EAClB56C,IAAEikB,OAAOyzB,GAAiB,SAACn/C,GAAD,OAAaA,EAAE40C,gBAActjC,SAAQ,SAAAnK,GAC7D,IAAIkG,EAAS,CAAC,KAAOlG,EAAKytC,aAAc,KAAS,SAAU,YAAe,GACtE0N,EAAU,CAAC,eAAUn7C,EAAKytC,aAAf,cAAyC,KAAS,UAAW,YAAe,GAE3FwN,EAAYxjD,KAAKyO,GACjB+0C,EAAYxjD,KAAK0jD,GACjBD,GAAe,EAEf,EAAK5C,uBAAuB7gD,KAAKyjD,MAEnC//C,KAAK48C,gBAAkBkD,IAtiBc,yBAyiBvC,SAAYjD,GAAqB,WAC3BhgD,EAAiC,GACjCojD,EAAkD,GA6EtD,OA3EAjgD,KAAKs8C,aAAattC,SAAQ,SAAA6xB,GAQxB,IAPA,IAAIqf,EAAkC,CACpC1yC,UAAWqzB,EAAMrzB,UACjB2yC,OAAQ,GACR3E,YAAa,IAGX4E,EAAQj7C,IAAEikB,OAAOyzB,GAAgB,SAACh4C,GAAD,OAAgBA,EAAKytC,gBAAct2C,OAChEF,EAAI,EAAGA,EAAIskD,EAAOtkD,IACxB+gD,EACCj5C,QAAO,SAACiB,GAAD,OAAgBA,EAAK2I,WAAa3I,EAAK2I,WAAaqzB,EAAMrzB,aACjEwB,SAAQ,SAACnK,EAAYw7C,EAAat7C,GAC/B,IAAIu7C,EAAgBz7C,EAEpB,GAAGy7C,EAAe,CAChBJ,EAAS1E,YAAYl/C,KAAKgkD,EAAcxO,YAExC,IAAIyO,EAA4C,CAC9C/c,OAAQ8c,EAAc9c,OACtByP,SAAUqN,EAAcrN,SACxBL,cAAiB,EAAK8C,SAASC,QAAgBrH,OAAOgS,EAAc1N,cAAc,eAClFyF,aAAeiI,EAAcjI,aAC5B,EAAK3C,SAASC,QAAgBrH,OAAOgS,EAAcjI,aAAa,oBAAehrC,GAE9EmzC,EAAiBF,EAAcrN,SAAW,WAAa,GAE3D,GAA4B,QAAzBqN,EAAc9c,OACZ8c,EAAc1N,gBACfsN,EAASI,EAAchO,cAAvB,UAA0C6J,GAA6B3Y,OAAvE,YAAiFgd,EAAjF,YAAmGD,EAAY3N,gBAEjHsN,EAASC,OAAO7jD,KAAK8/C,GAA6B5Y,aAE/C,GAA4B,QAAzB8c,EAAc9c,QAA6C,OAAzB8c,EAAc9c,OAAgB,CACtE,IAAIid,EAAeH,EAAc9c,OAAOqc,QAAQ,OAAO,KACnDa,EAASvE,GAA6BwC,SAASkB,QAAQ,MAAOY,GAE/DH,EAAc1N,gBACfsN,EAASI,EAAchO,cAAvB,UAA0CoO,EAA1C,YAAoDF,EAApD,YAAsED,EAAY3N,gBAEpFsN,EAASC,OAAO7jD,KAAK8/C,GAA6BuC,cAEnB,OAAzB2B,EAAc9c,SAChB8c,EAAcjI,cAKhB6H,EAASI,EAAchO,cAAgB6J,GAA6ByC,UACpEsB,EAASC,OAAO7jD,KAAK8/C,GAA6BwC,aALlDsB,EAASI,EAAchO,cAAgB6J,GAA6B0C,WACpEqB,EAASC,OAAO7jD,KAAK8/C,GAA6ByC,cAUtDqB,EAAS,GAAD,OAAII,EAAchO,aAAlB,gBAA8C,OAGtD4N,EAAS1E,YAAYl/C,KAAK,IAC1B4jD,EAASC,OAAO7jD,KAAK8/C,GAA6BsC,UAKvDwB,EAAS1E,YAAY3jC,OAAM,SAAArY,GAAE,MAAU,IAANA,KAChCygD,EAAuB3jD,KAAK4jD,GAG5BrjD,EAAOP,KAAK4jD,MAIlBrjD,EAASsI,IAAEsiB,QAAQ5qB,GAAQ,SAAA0Q,GAAC,OAAIA,EAAEC,aAClCyyC,EAAyB96C,IAAEsiB,QAAQw4B,GAAwB,SAAA1yC,GAAC,OAAIA,EAAEC,aAClE3Q,EAASA,EAAOwI,OAAO46C,GAEhBpjD,IAxnB8B,+BA2nBvC,SAAkB6C,GAChBM,KAAK0hB,mBAAoB,IA5nBY,yBAgoBvC,WACI1hB,KAAKimB,MAAM,YAjoBwB,8FAqoBxC,WAA8BvmB,GAA9B,iGACgCM,KAAK2gD,qBAA6BC,sBACtDv6C,MAAK,SAACI,GAAD,OAAmBA,KACxBH,OAAM,SAACulB,GAAD,MAAc,MAHhC,OACG7rB,KAAK6gD,eADR,OAKM7gD,KAAK6gD,eAAe7kD,OAAS,EAC9BgE,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GAGxDtM,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GAT7D,gDAroBwC,oFAkpBvC,SAAa5M,GACLA,EAAEuH,UAAU65C,oBACZphD,EAAEuH,UAAU65C,qBAAsB,GAElCphD,EAAEuH,UAAU65C,qBAAsB,EAClCphD,EAAEuH,UAAU63C,aAAa,iBAAkB,QAAS,IACpDp/C,EAAEuH,UAAU85C,sBAxpBmB,qCA4pBxC,WAA6B,WAC3B,OAAG/gD,KAAKgmB,WACA,IAAIvV,KAAY,CACf9R,IAAK,UACLgS,KAAM,SAACjE,GACL,OAAG,EAAKhJ,QAAU,EAAKA,OAAOmI,SACrB,EAAK0E,aACPoT,UAAUjX,EAAS,EAAKhJ,OAAOmI,UAC/BxF,MAAK,SAACxJ,GACH,OAAOA,EAAOrB,QAEjB8K,OAAM,SAAAulB,GACH,MAAO,MAIRnnB,QAAQ5E,QAAQ,OAM3B,KAlrB6B,uFAsrBvC,WAAuBi+C,GAAvB,iGACMiD,GAAwB,EAExBjD,EAHN,iCAI+B/9C,KAAK2gD,qBAA6BC,sBAC1Dv6C,MAAK,SAACI,GAAD,OAAmBA,KACxBH,OAAM,SAACulB,GAAD,MAAc,MAN3B,UAII7rB,KAAKs8C,aAJT,OAQoC,IAA7Bt8C,KAAKs8C,aAAatgD,OARzB,iCASYo3B,KAAOjL,MAAM,yCAA0C,YATnE,OAUM64B,GAAc,EAVpB,yCAamChhD,KAAKguC,gBAAgBiT,mBAAmBjhD,KAAK0D,OAAOmI,SAC7E7L,KAAKs8C,aAAaj9C,KAAI,SAACwF,GAAD,OAAcA,EAAK4I,YACxCpH,MAAK,SAAAxJ,GAIJ,OAHAA,EAASsI,IAAEsiB,QAAQ5qB,EAAQ,CAAC,gBAAgB,CAAC,QAC7C,EAAKqkD,eAAerkD,EAAO+G,QAAO,SAAAi6C,GAAG,OAAIA,EAAIhyC,WAAa,EAAKi2B,UAAUj2B,aAElEhP,KAERyJ,OAAM,SAAAulB,GAAG,OAAIA,KArBxB,QAaM7rB,KAAK68C,gBAbX,wCAwBSn4C,QAAQ5E,QAAQkhD,IAxBzB,iDAtrBuC,iJAitBvC,2GACMA,GAAwB,EACxBzmC,EAAcva,KAAK++C,mBAA2BC,gBAAgBrkC,QAE9D4kC,EAAcv/C,KAAKw/C,qBAAqBjlC,GAExCglC,EANN,gCAOUnsB,KAAOjL,MAAM,6CAA8C,YAPrE,OAQI64B,GAAc,EARlB,8BAWKhhD,KAAKo/C,aAAqBhO,qBAX/B,UAYsCpxC,KAAKmhD,8BAZ3C,QAYInhD,KAAK88C,qBAZT,OAaK98C,KAAKo/C,aAAqB5N,mBAb/B,iCAgBS9sC,QAAQ5E,QAAQkhD,IAhBzB,iDAjtBuC,uKAouBvC,WAA8CI,GAA9C,8FACMC,EAA2B,GAE/BD,EAAgBx9C,QAAO,SAACiB,GAAD,OAAgBA,EAAK42C,wBAA0B52C,EAAKs5C,mBAC1EnvC,SAAQ,SAACkwC,GACRmC,GAA4B,MAAJ,OAAUnC,EAAQ1xC,UAAlB,iBAL5B,SAQQ4lB,KAAOjL,MAAP,0LAEgBk5B,GAA4B,YAVpD,2CApuBuC,0JAivBvC,WAAgCD,GAAhC,sGACME,EAA0B,GACT,GACrBF,EAAgBpyC,SAAQ,SAACkwC,GACvB,IAAIqC,EAAM,CACR,UAAcrC,EAAQ1xC,UACtB,kBAAsB0xC,EAAQnF,eAAeriC,MAAM,UAC5B2R,QAEzBk4B,EAAIC,kBAAkB/kD,QACtB8kD,EAAIC,kBAAoBD,EAAIC,kBAAkB19C,KAAK,MAEnDw9C,EAAmBhlD,KAAKilD,MAEtBE,EAAet8C,IAAEu8C,QAAQJ,GAAoB,SAAAxlD,GAAC,OAAIA,EAAE0lD,qBAEpDnD,EAAYl5C,IAAE9F,IAAIoiD,GAAa,SAACE,EAAehjD,GACjD,IAAIijD,EAAYjjD,EAAI+Y,MAAM,MACtBmqC,EAAS,cACTC,EAAa,GAsBjB,OApBAF,EAAU5yC,SAAQ,SAACnK,EAAMk9C,GACA,GAApBH,EAAU5lD,OACX6lD,GAAU,MAAJ,OAAWh9C,EAAX,QAGNg9C,GAAWE,EAAO,GAAMH,EAAU5lD,QAAU4lD,EAAU5lD,OAAS,EAArD,iBACG6I,EADH,qBACqBA,EADrB,aAKd88C,EAAc3yC,SAAQ,SAACnK,EAAMk9C,GACA,GAAxBJ,EAAc3lD,OACf8lD,GAAc,MAAJ,OAAWj9C,EAAK2I,UAAhB,QAGVs0C,GAAeC,EAAO,GAAMJ,EAAc3lD,QAAU2lD,EAAc3lD,OAAS,EAA7D,iBACD6I,EAAK2I,UADJ,qBAC2B3I,EAAK2I,UADhC,aAKXq0C,EAAS,IAAH,OAAOD,EAAU5lD,OAAS,EAAI,MAAQ,MAAS,yBAA2B8lD,KAGrFE,EAAK5uB,KAAO8kB,OAAO,CACjBx3C,MAAO,kCACPy3C,YAAakG,EAAUv6C,KAAK,gBAC5Bm0C,QAAS,CACP,CACEtsC,KAAM,OACNkW,QAAS,SAACniB,GACR,MAAO,CAAC7C,QAAQ,KAGpB,CACE8O,KAAM,SACNkW,QAAS,SAACniB,GACR,MAAO,CAAC7C,QAAQ,QAzD9B,SA+DwBmlD,EAAG5J,OAAO/xC,MAAK,SAAC0Y,GAAD,OAAuBA,EAAaliB,UACxDyJ,OAAM,SAACulB,GAAD,OAAc,KAhEvC,cA+DQhvB,EA/DR,yBAkEWA,GAlEX,4CAjvBuC,+IAuzBvC,wHACQmkD,GAAc,EACI,GAAnBhhD,KAAKm5C,WAFZ,oBAGUiI,EAAkBj8C,IAAEihB,UAAWpmB,KAAKo/C,aAAqBJ,gBAAgBrkC,SAC7EymC,EAAgB3kD,QAEZ0I,IAAE0S,MAAMupC,GAAiB,SAAAv8C,GAAI,OAAIA,EAAK42C,uBAAyB52C,EAAKs5C,mBAN9E,gCAOcn+C,KAAKiiD,wCAAwCb,GAP3D,4CAWSphD,KAAK+8C,gBAXd,kCAYc3pB,KAAOjL,MAAM,4BAA6B,SAZxD,2DAgBenoB,KAAKkiD,0BAA0Bd,GAhB9C,oCAiBQphD,KAAKi5C,mBAAoB,EACrB/K,EAAUJ,GAAYI,QACtBiU,EAAiBjU,EAAQkU,aAnBrC,UAoB6BlU,EAAQmU,UApBrC,YAoBkDnU,EAAQoU,SAC9C7E,EAA0C,GAE9Ct4C,IAAE6J,QAAQoyC,GAAiB,SAAAv8C,GACzB,IAAIg8B,EAAQ17B,IAAE6M,KAAK,EAAK6uC,gBAAgB,SAAArqC,GAAC,OAAIA,EAAEhJ,WAAa3I,EAAK2I,aAC7D+0C,EAAiC,CAClC/0C,UAAY3I,EAAK2I,UACjBguC,YAAc32C,EAAK22C,YACnB2C,gBAAkBt5C,EAAKs5C,gBACvB1C,sBAAwB52C,EAAK42C,sBAC7B+G,MAAQ3hB,EAAMnc,WAAWhN,MAAM,KAC/B+qC,GAAK,EAAKt/B,gBACV1V,QAAUozB,EAAMpzB,SAGnBgwC,EAAenhD,KAAKimD,MAGlBlvB,EAA4B,CAC7BqvB,mBAAqBP,EACrBv2C,WAAa5L,KAAK8hC,UAAUl2B,WAC5BC,SAAW7L,KAAK8hC,UAAUj2B,SAC1B0tC,eAAiBkE,EACjB/B,gBAAkB,IAAIxe,MAAQye,qBAGjC37C,KAAKguC,gBAAgB2U,cAActvB,GAC9BhtB,MAAK,SAAAI,GACJ,IAAIm8C,EAAiBxB,EAAgBplD,OAAS,EAAI,SAAW,QAC7D,EAAKknB,cAAgB,GACrB,EAAKC,gBAAkB,GACvB5c,IAAO,GAAD,OAAIq8C,EAAJ,sBAAwC,UAAW,QAE1Dt8C,OAAM,SAAA+N,GACL9N,IAAO,uBAAwB,YAEhC0N,SAAQ,WACP,EAAKglC,mBAAoB,KAzDvC,mCAgE6B,IAApBj5C,KAAKm5C,WAhEd,kCAiE4Bn5C,KAAKi+C,kBAAiB,GAjElD,QAiEQ+C,EAjER,gDAoE4BhhD,KAAKk+C,mBApEjC,QAoEQ8C,EApER,eAsESA,IACDhhD,KAAKm5C,aACLn5C,KAAKy6C,aAAe,OACE,GAAnBz6C,KAAKm5C,WACNn5C,KAAKu6C,iBAAmB,WAGxBv6C,KAAKu6C,iBAAmB,SAE1Bv6C,KAAKy8C,iBAAkB,EACvBz8C,KAAKg+C,uBAAuB1xC,OAAO,gBAAiBtM,KAAKm5C,aAhFjE,iDAvzBuC,mFA64BvC,WACKn5C,KAAKm5C,WAAa,GACnBn5C,KAAKm5C,aACLn5C,KAAKu6C,iBAAmB,WACF,GAAnBv6C,KAAKm5C,WACNn5C,KAAKy6C,aAAe,QAGpBz6C,KAAKg+C,uBAAuB1xC,OAAO,qBAAqB,GACxDtM,KAAKy6C,aAAe,UAGtBz6C,KAAKy8C,iBAAkB,EACvBz8C,KAAKg+C,uBAAuB1xC,OAAO,gBAAiBtM,KAAKm5C,aAGzDn5C,KAAK0gB,eAAgB,IA75Bc,2BAk6BvC,SAAchhB,GACZM,KAAK0lB,oBAAsB,GAC3B1lB,KAAKmjB,gBAAiB,GACtBnjB,KAAKkjB,cAAgB,GACrBljB,KAAKm5C,WAAa,EAClBn5C,KAAKi9C,yBAA2B,CAC9BzhD,MAAO,EACP8vC,KAAO,IAETtrC,KAAK68C,gBAAkB,GACvB78C,KAAK48C,gBAAkB,KA56Bc,4BAg7BvC,SAAel9C,GACbM,KAAKg+C,uBAAuB1xC,OAAO,gBAAiB,KAj7Bf,wCAs7BvC,SAA2B9Q,EAAoBqnD,GAC7C,IAAIhmD,EAAS,GAEb,IAAIrB,EACF,OAAOqB,EAGT,GAAGgmD,IAAqB/J,GAAiBgK,IACvC,GAAGtnD,EAAKipB,cAAe,CACrB,IAAIs+B,EAAevnD,EAAKipB,cAAc7gB,QAAO,SAACiB,GAAD,OAAuCA,EAAKyiB,kBACzFy7B,EAAa/zC,SAAQ,SAACkwC,GACpBriD,GAAUA,EAAS,GAAH,OAAMA,EAAN,MAAkB,IAAMqiD,EAAQx4B,QAAQ7L,qBAIzD,GAAGgoC,IAAqB/J,GAAiBkK,KACzCxnD,EAAKipB,cAAe,CACrB,IAAIs+B,EAAevnD,EAAKipB,cAAc7gB,QAAO,SAACiB,GAAD,OAAwCA,EAAKyiB,kBAC1Fy7B,EAAa/zC,SAAQ,SAACkwC,GACpBriD,GAAUA,EAAS,GAAH,OAAMA,EAAN,MAAkB,IAAMqiD,EAAQx4B,QAAQ7L,eAK9D,OAAOhe,MA98B8B,GAASgG,cAShDb,gBADCwnB,mBACD,8BAkIAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCA3IiB4yB,GAAsB,gBArC1Cl1C,eAAU,CACTL,WAAY,CACVkjB,iBACAvK,oBACAF,oBACA3G,wBACAI,wBACAK,8BACA2a,eACA/J,kCACAgK,4CACAtU,8BACAk5B,gCACAlgC,wBACA6G,oCACA1G,0BACA4Q,4BACA+d,qBACA9d,4BACAG,0BACAI,iBACAtK,oCACAxG,gCACAyQ,8BACAE,8BACAk5B,oBACAh1B,8BACApV,8BACAS,gCACAuX,uBACAqyB,wBACAC,oCACAC,4BACAj5B,4BAIiBkyB,cCrYiZ,MCSla,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAIt8C,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,YAAY,MAAM,aAAa,MAAM,cAAa,EAAK,MAAQP,EAAIsjD,SAAS,gBAAe,EAAM,0BAAyB,EAAM,QAAUtjD,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,OAASlI,EAAI4gB,cAAc,QAAU5gB,EAAI0vB,eAAe,wBAAwB1vB,EAAI0hC,OAAO,CAACthC,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACA,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQP,EAAIujD,sBAAsB,KAAO,OAAO,YAAc,2BAA2B,uBAAsB,GAAMt7C,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIujD,sBAAsBr7C,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,wBAAwB,IAAI,GAAGH,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,cAAcP,EAAIwjD,gBAAgB,YAAc,eAAe,UAAY,aAAa,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,YAAc,4BAA4B,MAAQxjD,EAAIyjD,mBAAmB,mBAAqBzjD,EAAI0jD,0BAA0B,eAAe,OAAOz7C,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIyjD,mBAAmBv7C,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,wBAAwB,IAAI,IAAI,GAAGH,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,WAAaP,EAAI2jD,oBAAoB,uBAAwB,EAAK,YAAc,kBAAkB,UAAY,gBAAgB,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,gBAAgB,eAAiB,aAAa,MAAQ3jD,EAAI4jD,iBAAiB,gBAAgB,OAAO,eAAe,MAAM,0BAA0B,UAAU37C,GAAG,CAAC,OAASjI,EAAI6jD,SAAS,eAAe,SAAS37C,GAAQlI,EAAI4jD,iBAAiB17C,IAASnH,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,OAAOqC,GAAG,SAASkH,GACn6D,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACK,MAAM,CAAC,qBAAuBhF,EAAKqoD,cAAe,oBAAsBroD,EAAKqoD,eAAevjD,MAAM,CAAC,GAAK,QAAU9E,EAAK4mB,MAAM3U,SAASzF,GAAG,CAAC,WAAa,SAASC,GAAQ,OAAOlI,EAAI+jD,aAAatoD,IAAO,WAAauE,EAAIgkD,eAAe,CAAChkD,EAAIuH,GAAG,yBAAyBvH,EAAIwH,GAAG/L,EAAK4mB,MAAM5U,WAAW,2BAA2B,CAAC7O,IAAI,MAAMqC,GAAG,SAASkH,GACzW,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACE,MAAM,CAAE2jD,WAAYjkD,EAAIkkD,aAAansC,SAAStc,EAAK4mB,MAAM3U,SAAW,OAAQ,YAAa,CAAC1N,EAAIuH,GAAG,6BAA6BvH,EAAIwH,GAAG/L,EAAK4mB,MAAM5U,WAAW,4BAA8BzN,EAAImkD,oBAAoBpsC,SAAStc,EAAK4mB,MAAM3U,SAAyD1N,EAAIyI,KAAnDrI,EAAG,MAAM,CAACe,YAAY,iCAA0C,CAACf,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,uBAAuBH,EAAG,iBAAiB,CAACG,MAAM,CAAC,sBAAsBP,EAAIokD,qBAAqB,YAAa,EAAK,QAAU,4BAA4B,IAAI,GAAGhkD,EAAG,aAAa,CAACG,MAAM,CAAC,0BAAyB,EAAM,SAAW,MAAM,OAASP,EAAIqkD,YAAY,QAAUrkD,EAAIskD,eAAe,mBAAmB,mBAAmBr8C,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIskD,eAAep8C,IAASnH,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,WAAW,MAAO,CAACjB,EAAIuH,GAAG,qBAAqBvH,EAAIwH,GAAGxH,EAAIukD,YAAY,oBAAoBrjD,OAAM,QAAW,MAAM,IAAI,GAAGd,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,MAAO,SAAW,QAAQ,QAAU,YAAYthC,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,aAAa,IAC/1C,GAAkB,G,sdCuLtB,IAAqBqiC,GAAsB,4CA2FvC,iDACI,eA3FJ,EAAAh1C,MAGI,GAuBJ,EAAA60C,YAAuB,GACvB,EAAAC,gBAA0B,EAC1B,EAAAC,WAAqB,GACrB,EAAAJ,oBAA8B,GAE9B,EAAAX,gBAAiC,GACjC,EAAAD,sBAA6B,KAC7B,EAAAE,mBAA2B,GAkCnB,EAAAjzC,aAAe,IAAInD,GAG3B,EAAAo3C,eAAsB,GACtB,EAAAb,iBAA2B,GAqBvB,EAAK3V,gBAAkB,IAAIzN,GAAiB,kBAFhD,EA3FuC,4DAMvC,WACI,OAASvgC,KAAKuP,MAAMk1C,kBAA0BrzC,WAPX,wBAmBvC,WACI,OAAOpR,KAAK+/B,eApBuB,2BAuBvC,WACI,OAAS//B,KAAKuP,MAAMwW,mBAAuC3U,WAxBxB,+BAqCvC,WACI,OAAO,IAAIyU,KAAW,CAClB1iB,MAAOnD,KAAK0kD,iBACZzpC,UAAU,EACV6K,SAAU,GACVnnB,IAAK,oBA1C0B,4BA6CvC,WAAoB,WAChB,OAAO,IAAI8R,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACC,OAAO,EAAK6D,aAAa9E,SACxBpF,KAAK,EAAKs+C,eACVr+C,OAAM,SAAAulB,GAAG,OAAIA,UAnDS,2BA0DvC,SAAchvB,GAAW,WACjBw3B,EAAMx3B,EAAOwC,KAAI,SAACwF,GACF,MAAO,CACHud,MAAQvd,EACRg/C,cAAgB,EAAK9jB,aAAajoB,SAASjT,EAAK4I,SAChDm3C,oBAAsB,EAAKV,oBAAoBpsC,SAASjT,EAAK4I,aAGrF,OAAOtI,IAAEsiB,QAAQ4M,GAAK,SAAAxvB,GAAI,OAAIA,EAAKg/C,gBAAe,CAAC,WAlEhB,yBA0EvC,WACI,OAAO7jD,KAAKgmB,YA3EuB,IA8EvC,SAAkB3nB,GACd2B,KAAKkiB,iBA/E8B,oBAmFvC,WACI,OAAGliB,KAAK6H,eACG,+BAAiC7H,KAAK6H,eAAe+D,WAGzD,4BAxF4B,0BA+FvC,SAAalM,GACT,MAAO,CACH,eAAiB,MACjB,cAAgB,MAChB,iBAAmB,MACnB,gBAAkBM,KAAKkkD,oBAAoBpsC,SAASpY,EAAE0iB,MAAM3U,SAAW,OAAS,UApGjD,kCAuGvC,SAAqB/N,GAAK,WACtB,QAAGA,EAAErB,OAASqB,EAAErB,MAAMrC,OAAS,GACxBmJ,IAAE0S,MAAMnY,EAAErB,OAAO,SAAAmY,GAAC,OAAI,EAAK0tC,oBAAoBpsC,SAAStB,SAzG5B,0BAgHvC,SAAa9W,GACTM,KAAKqkD,gBAAiB,EACtBrkD,KAAKokD,YAAc,SAAW1kD,EAAE0iB,MAAM3U,QACtCzN,KAAKskD,WAAa5kD,EAAEmkD,cAAgB,eAAiB,gBAnHlB,0BAqHvC,WACI7jD,KAAKqkD,gBAAiB,EACtBrkD,KAAKokD,YAAc,GACnBpkD,KAAKskD,WAAa,KAxHiB,sBA2HvC,SAAS5kD,GACL,IAAIw/C,EAAU/sC,SAASC,uBAAuB,sBAAsB,GACrD,MAAX8sC,GACFA,EAAQ95C,WA9HyB,+EAkIvC,oHACgCpF,KAAKguC,gBAAgB0D,qBAAqB1xC,KAAK6H,eAAegE,UAD9F,OACQ03C,EADR,OAEIvjD,KAAKujD,gBAAkBA,EAAgB3/C,QAAO,SAAAihD,GAAE,OAAkB,MAAdA,EAAGp3C,WAF3D,gDAlIuC,yJAuIvC,iGACoC,OAA5BzN,KAAKwjD,mBADb,wDAKIxjD,KAAK2jD,iBAAmB,GAL5B,SAMqC3jD,KAAKguC,gBAAgB8W,4BAA4B9kD,KAAKwjD,oBACjFn9C,MAAK,SAAAxJ,GAAM,OAAIA,KACfyJ,OAAM,SAAAulB,GAAG,MAAG,MARtB,OAMI7rB,KAAKkkD,oBANT,OASIlkD,KAAK2jD,iBAAmBx+C,IAAEihB,UAAUpmB,KAAKkkD,qBAEzClkD,KAAK0jD,oBAAoB/yC,OAX7B,gDAvIuC,oFAqJvC,SAAcjR,GACVM,KAAKkkD,oBAAsB,GAC3BlkD,KAAK2jD,iBAAmB,GACxB3jD,KAAKwjD,mBAAqB,GAC1BxjD,KAAKsjD,sBAAwB,KAE7BtjD,KAAK8nB,gBAAgBlU,UA3Jc,qFA8JvC,WAAqBlU,GAArB,wFACIM,KAAKwkD,eAAiB,GAEtBxkD,KAAK0jD,oBAAoBz3B,SAH7B,SAIUjsB,KAAK2d,WAJf,OAKI3d,KAAK8nB,gBAAgBlU,QALzB,gDA9JuC,4EAsKvC,WAAI,WACA,GAAI5T,KAAK0gB,cAAT,CAIA,IAAIqH,EAAW/nB,KAAK8nB,gBAAgBC,WAEpC,GAAIA,EAASC,QAAb,CAIA,IAAI+8B,EACJ,CACIC,OAAQhlD,KAAK2jD,iBAAiB//C,QAAO,SAAA4S,GAAC,OAAK,EAAK0tC,oBAAoBpsC,SAAStB,MACxEnX,KAAI,SAAAG,GACD,MAAQ,CACJiO,QAAUjO,EACVgO,UAAY,OAGxBolC,cAAe5yC,KAAKsjD,uBAGxBtjD,KAAKguC,gBAAgBiX,6BAA6BjlD,KAAKwjD,mBAAoBuB,GACtE1+C,MAAK,SAAAxJ,GACF,EAAKqlB,sBA/LsB,0BAmMvC,WACIliB,KAAKimB,MAAM,uBApMwB,GAASpjB,cAWhDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,oCAjBiB+6B,GAAsB,gBAlB1Cp9C,eAAU,CACTL,WAAY,CACVkjB,iBACApR,wBACAI,wBACAI,gCACAC,8BACA2a,eACA/J,kCACA8J,YACAmxB,gBACAxlC,0BACAyK,wBACAlR,0BACAmR,uBACAF,8BAAatK,oCAAgBC,oCAGZ0kC,cC5LkZ,MCSna,I,qBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAIxkD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,cAAa,EAAK,MAAQP,EAAIyhC,YAAY,gBAAe,EAAM,0BAAyB,EAAM,QAAUzhC,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI0hC,KAAK,OAAS1hC,EAAI4gB,gBAAgB,CAACxgB,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAc,eAAe,YAAc,8BAA8B,WAAaP,EAAIolD,kBAAkB,MAAQplD,EAAIqlD,kBAAkBp9C,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqlD,iBAAiBn9C,MAAW9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,KAAM6C,mBAAmB,GAAO,SAAW,QAAQ,QAAU,YAAYnkC,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIkpC,aAAc,SAAW,QAAQ,QAAU,aAAa,IACj/B,GAAkB,G,sdCEf,IAAMoc,GAAb,4CACE,WAAYz0C,GAAe,0CACnBA,GAFV,sGAKE,8GACe5Q,KAAK0D,OAAOzF,IAAI,QAD/B,wFALF,8DAA6Cge,I,sdCyD7C,IAAqBqpC,GAA0B,4CA6B3C,iDACI,eA7BJ,EAAA/1C,MACI,GAsBJ,EAAAiyB,YAAsB,wCACtB,EAAA2jB,kBAA2C,GAC3C,EAAAC,iBAAwB,KACxB,EAAAG,mBAA6B,EAIzB,EAAK5nC,WAFT,EA7B2C,kDAO3C,WACI,OAAO3d,KAAKgmB,YAR2B,IAW3C,SAAkB3nB,GACd2B,KAAKipC,gBAZkC,uFAgB3C,WAAuB5qC,EAAgB6nB,GAAvC,iFACO7nB,IACC2B,KAAKolD,iBAAmB,KACxBplD,KAAKulD,mBAAoB,GAHjC,gDAhB2C,2IAkC3C,2GACQC,EAA0B,IAAIH,GAAwB,yBAC1DG,EAAwB/5C,SACvBpF,MAAK,SAAAxJ,GACF,EAAKsoD,kBAAoBtoD,EACzB,IAAI4oD,EAAqC,CACrCxR,aAAc,uBACdyR,mBAAoB,GACpBpkB,MAAO,GACP4S,uBAAwB,GACxBK,sBAAuB,GACvBjtB,gBAAgB,GAEpB,EAAK69B,kBAAkBr5C,QAAQ25C,MAbvC,2CAlC2C,2EAmD3C,WACIzlD,KAAKimB,MAAM,2BAA4BjmB,KAAKolD,kBAC5CplD,KAAKulD,mBAAoB,IArDc,yBAwD3C,WACIvlD,KAAKimB,MAAM,8BAzD4B,2BA4D3C,WACIjmB,KAAKimB,MAAM,6BAA8BjmB,KAAKulD,uBA7DP,GAAS1iD,cAKpDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAWAznB,gBADCuW,gBAAM,eACP,sCAhBiB+sC,GAA0B,gBAV9Cn+C,eAAU,CACTL,WAAY,CACV8R,wBACAI,wBACAK,8BACA2a,eACA/J,kCACAD,qBAGiBs7B,cC5DsZ,MCOva,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,8dCkSf,IAAqBK,GAAqB,4CA2BtC,iDACI,eA3BJ,EAAAp2C,MAGI,GAEJ,EAAAtF,YAAsB,GACtB,EAAApC,eAA4B,CACxBgE,SAAU,GACVD,WAAY,IAEhB,EAAAg6C,8BAAgD,GAYhD,EAAAjmB,iBAAwB,KACxB,EAAAO,oBAA8B,EAC9B,EAAAxD,YAA8B,GAgD9B,EAAAh1B,YAA2B,IAAI+I,KAAY,CACvCC,SAAU,MACVC,KAAM,SAACjE,GACP,OAAO,EAAK4D,cAAc7E,YAqL9B,EAAAs0B,aAAuB,GAgEvB,EAAA1B,iBAAmB,WApSf,EAAK1gB,WACL,EAAK8hB,YAAca,GAAiB9b,OACpC,EAAKkb,aAAeW,GAAkByI,IACtC,EAAKxJ,uBAAwB,EAC7B,EAAKW,YAAa,EAClB,EAAKH,yBAA0B,EAC/B,EAAKX,wBAAyB,EAC9B,EAAK7uB,cAAgB,IAAI/E,GACzB,EAAKklC,iBAAmB,IAAIlQ,GAAiB,kBAC7C,EAAKrC,yBAA2B,GAChC,EAAKM,wBAA0B,GAC/B,EAAKgB,aAAe,CAChBsS,WAAY,GACZjmC,SAAU,GACV4B,QAAS,GACTgwB,WAAY,EACZnW,gBAAgB,EAChBgrB,aAAc,GACdM,cAAe,IAAI1V,KACnBiO,YAAa,GACb0H,uBAAwB,GACxBC,aAAc,GACdC,cAAe,GACfC,oBAAqB,GACrBxP,OAAQ,GACRyP,UAAU,GA3BlB,EA3BsC,wGA4DtC,6GACQtV,EAAoB,IAAIR,GADhC,SAG4BQ,EAAkBlH,WAH9C,OAGQiG,EAHR,OAKI18B,KAAK08B,YAAcA,EAAYr9B,KAAI,SAAAwmD,GAC/B,MAAQ,CACIxnD,MAAOwnD,EAAE5gD,KACT0G,KAAMk6C,EAAE5gD,SAR5B,gDA5DsC,wFAgF9B,SAAkB+G,GAAc,WACpC,MAAO,CACHrN,IAAK,aACLgS,KAAM,SAAC4L,GAAD,OAAsB,EAAKk0B,iBACxBqV,mBAAmBvpC,EAAYvQ,GAC/B1F,OAAM,SAAAulB,GAAG,MAAI,UArFQ,8BAyF7B,SAAiB7f,GAAc,WACpC,MAAO,CACHrN,IAAK,aACLgS,KAAM,SAAC4L,GAAD,OAAsB,EAAKk0B,iBACxBsV,kBAAkBxpC,EAAYvQ,GAC9B3F,MAAK,SAAAxJ,GACF,IAAI66B,EAA2B,GAO/B,OANAvyB,IAAE6J,QAAQnS,EAAOrB,MAAM,SAAAqJ,GACnB,IAAImhD,EAAOnhD,EAAKohD,wBAA0BphD,EAAKohD,wBAAwBvuC,MAAM,MAAQ,GAErFggB,EAAYvyB,IAAEE,OAAOqyB,EAAWsuB,MAEpC,EAAKJ,8BAAgCzgD,IAAEiH,KAAKsrB,GACrC76B,KAEVyJ,OAAM,SAAAulB,GAAG,MAAI,UAxGQ,4BA4GtC,WACI,OAAO3sB,OAAOyT,YAAc,MA7GM,wBAgHtC,SAAWjT,MAhH2B,yBAkHtC,SAAYA,MAlH0B,iCAoHtC,SAAoBA,MApHkB,qCAsHtC,SAAwB+2C,GACpBz2C,KAAKs/B,uBAAwB,EAC7Bt/B,KAAKigC,YAAa,GAEC,IAAfwW,GACAz2C,KAAKkmD,qBA3HyB,4BA+H9B,WACJlmD,KAAKs/B,uBAAwB,EAC7Bt/B,KAAKigC,YAAa,IAjIgB,8BAoItC,WACQjgC,KAAKuP,MAAM42C,gBACVnmD,KAAKuP,MAAM42C,eAAuBhrB,kBAGnCn7B,KAAKuP,MAAM62C,eACVpmD,KAAKuP,MAAM62C,cAAsBjrB,oBA1IJ,mCA+ItC,SAAsBz7B,GAClBM,KAAKigC,YAAa,IAhJgB,sCAmJtC,SAAyBqT,GACrBtzC,KAAKm/B,wBAAyB,EAEf,MAAZmU,IACmC,IAA/BA,EAASoS,mBACR1lD,KAAK2/B,iBAAmB,KAGxB3/B,KAAK2/B,iBAAmB2T,KA3JE,uCAgKtC,SAA0BiS,GACnBA,IACCvlD,KAAKw/B,aAAasS,WAAa,GAC/B9xC,KAAKy/B,YAAca,GAAiB9b,OACpCxkB,KAAK0/B,aAAeW,GAAkByI,IACtC9oC,KAAKs/B,uBAAwB,KArKC,sCAwKtC,SAAyB5/B,GACrBM,KAAKw/B,aAAasS,WAAa,GAC/B9xC,KAAKy/B,YAAca,GAAiBle,MACpCpiB,KAAK0/B,aAAeW,GAAkByI,IACtC9oC,KAAKs/B,uBAAwB,IA5KK,0CA+KtC,SAA6B5/B,GACzBM,KAAKm/B,wBAAyB,IAhLI,6BAmLtC,WACI,IAAIknB,EAAmB,CACrBx6C,SAAU,GACVD,WAAY,IAGd,OAA8B,MAAvB5L,KAAK6H,eAAyB7H,KAAK6H,eAAiBw+C,IAzLzB,4BA4LtC,SAAe3mD,GACXM,KAAKy/B,YAAca,GAAiB9b,OACpCxkB,KAAK0/B,aAAeW,GAAkB0K,OAEZ,MAAvBrrC,EAAElE,KAAKqiC,eACNn+B,EAAElE,KAAKqiC,cAAgB,GAE3B79B,KAAKw/B,aAAer6B,IAAEmuB,MAAM5zB,EAAElE,MAC9BwE,KAAKs/B,uBAAwB,IApMK,uFAuMtC,WAAuBgnB,GAAvB,oHACqBtmD,KAAKywC,iBAAiB8V,gCAAgCD,EAAMxU,YADjF,cACMxkC,EADN,OAEMwC,EAFN,4CAEqDw2C,EAAMvT,cAF3D,uBAEuFuT,EAAM16C,WAF7F,aAIM0B,EAAOtR,OAAS,IACdwqD,EAAel5C,EAAOjO,KAAI,SAAAkO,GAAC,mBAAUA,EAAV,WAAmBzJ,KAAK,MACvDgM,GAAW,mEAAJ,OAAuE02C,EAAvE,SANX,SASqBxnC,sBAAQlP,EAAS,kBATtC,OASMjT,EATN,OAUMA,IACF0J,IAAO,YAAD,OAAa+/C,EAAMvT,cAAnB,OAAuC,OAAQ,KACrD/yC,KAAKkgC,oBAAqB,EAC1BlgC,KAAKywC,iBAAiBgW,eAAeH,EAAMxU,YACxCzrC,MAAK,SAAAwN,GACJtN,IAAO,GAAD,OAAI+/C,EAAMvT,cAAV,yBAAgD,UAAW,KACjE,EAAKmT,sBAEN5/C,OAAM,SAAAmtB,GACLltB,IAAO,2CAA4C,QAAS,QAE7D0N,SAAQ,WACP,EAAKisB,oBAAqB,MAtBlC,gDAvMsC,2FAkOtC,SAAoBxgC,GAChBM,KAAKy/B,YAAca,GAAiBle,MACpCpiB,KAAK0/B,aAAeW,GAAkB0K,OAEZ,MAAvBrrC,EAAElE,KAAKqiC,eACNn+B,EAAElE,KAAKqiC,cAAgB,GAE3B79B,KAAKw/B,aAAer6B,IAAEmuB,MAAM5zB,EAAElE,MAC9BwE,KAAKs/B,uBAAwB,IA1OK,4FA6OtC,WAA4BgnB,GAA5B,uGACMx2C,EADN,6CACsDw2C,EAAMvT,cAD5D,uBACwFuT,EAAM94C,UAD9F,kBAEqBwR,sBAAQlP,EAAS,kBAFtC,OAEMjT,EAFN,OAGMA,IACF0J,IAAO,YAAD,OAAa+/C,EAAMvT,cAAnB,OAAuC,OAAQ,KACrD/yC,KAAKkgC,oBAAqB,EAC1BlgC,KAAKywC,iBAAiBgW,eAAeH,EAAMxU,YACxCzrC,MAAK,SAAAwN,GACJtN,IAAO,GAAD,OAAI+/C,EAAMvT,cAAV,yBAAgD,UAAW,KACjE,EAAKmT,sBAEN5/C,OAAM,SAAAmtB,GACLltB,IAAO,2CAA4C,QAAS,QAE7D0N,SAAQ,WACP,EAAKisB,oBAAqB,MAflC,gDA7OsC,wJAkQtC,WAA8BxgC,GAA9B,0FACQ6R,EAAM7R,EAAE+R,aACD,MAAPF,IACFA,EAAM,CACJ1F,SAAU,GACVD,WAAY,MAIb2F,IAAOA,EAAI1F,SATlB,uBAUQ7L,KAAKk+B,yBAA2Bl+B,KAAK0mD,kBAAkBn1C,EAAI1F,UAC3D7L,KAAKw+B,wBAA0Bx+B,KAAK2mD,iBAAiBp1C,EAAI1F,UAXjE,SAYkC7L,KAAKsQ,cAAckmB,mBAAmBjlB,EAAI1F,UAZ5E,OAYQ7L,KAAK+/B,aAZb,uDAlQsC,kGAkRtC,WACI//B,KAAK8/B,yBAA0B,IAnRG,6BAsRtC,WACI9/B,KAAK8/B,yBAA0B,EAC/B9/B,KAAKkmD,qBAxR6B,2BA2R9B,SAAc1qD,GAClBA,EAAK+e,WAAWwT,YAAc,SAACvF,GAC3B,IAAIo+B,EAAsBp+B,EAAQ5kB,QAAO,SAAC1F,GAAD,OAAkCA,EAAES,IAAImZ,SAAS,SAAO9b,OAEjG,GAAG4qD,EAAc,EAAG,CAChB,IAAIC,EAAYr+B,EAAQ5kB,QAAO,SAAS6nC,GACpC,OAAQA,EAAI9sC,IAAImZ,SAAS,SAI7B,OADA+uC,EAAUvqD,KAAK,CAAEqP,KAAM,UAAWtN,MAAO,YAClCwoD,EAGX,OAAOr+B,KAxSuB,qCA4S9B,SAAwBnqB,EAAeyoD,EAAkCC,GAC7E,MAAc,iBAAXA,GAAuC,YAAV1oD,EACrB,CAAC,SAAU,WAAY,MAG3B,CAAC,SAAUyoD,EAA0BzoD,KAjTV,+CAoT9B,SAAkC7C,GAAS,WAC/CA,EAAK+e,WAAWwT,YAAc,SAACvF,GAS3B,OARAA,EAAU,EAAKo9B,8BAA8BvmD,KAAI,SAAAwF,GAC7C,IAAImiD,EAAQ,CACR,KAASniD,EACT,MAAUA,GAEd,OAAOmiD,KAGJx+B,KA9TuB,sDAkU9B,SAAyCnqB,EAAeyoD,EAAkCC,GAC7F,MACW,CAAC,0BAA0B/mD,KAAKq+B,iBAAkBhgC,KApU5B,6BAyU9B,SAAgB7C,GACpBA,EAAK+e,WAAWwT,YAAc,SAACvF,GAC3B,OAAOA,EAAQnpB,KAAI,SAASnB,GACxB,OAAe,IAAZA,EAAEG,MACM,CAACM,KAAK,EAAMN,OAAO,EAAMsN,KAAM,QAEtB,IAAZzN,EAAEG,MACC,CAACM,KAAK,EAAON,OAAO,EAAOsN,KAAM,WADvC,QA/UqB,yCAsV9B,SAA4BtN,EAAeyoD,EAAkCC,GACjF,MAAO,CAAC,yBAA0B,WAAY1oD,OAvVZ,GAASwE,cAA9B8iD,GAAqB,gBArBzCx+C,eAAU,CACTL,WAAY,CACV0R,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACA3G,8BACAG,wBACAsG,sBACA1G,wBACAkH,oCACAC,wBACAC,sBACAovB,sBACAmV,0BACAe,8BACAjJ,8BAGiBsJ,cCpTgZ,MCQja,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCCf,IAAqBsB,GAAS,yIAASpkD,cAAlBokD,GAAS,gBAP7B9/C,eAAU,CACTL,WAAY,CACVogD,6BACAnuC,yBACA4sC,6BAGiBsB,QCpBTE,GAOAC,GDaSH,MEpBgX,MCOjY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIlnD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,gBAAgBV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAClnD,EAAG,MAAM,CAACe,YAAY,8BAA8B,CAACf,EAAG,aAAa,CAACgL,YAAY,CAAC,OAAS,MAAM,MAAQ,QAAQ,CAAGpL,EAAIwC,eAAuDpC,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,OAAO,kBAAkB,kBAAkB,CAAChL,EAAG,OAAO,CAACJ,EAAIuH,GAAG,mBAAmBvH,EAAIwH,GAAGxH,EAAIwC,eAAe+kD,gBAAgB,qCAAqCvnD,EAAIwH,GAAGxH,EAAIwC,eAAesY,aAAa,qCAAqC9a,EAAIwH,GAAGxH,EAAIwC,eAAeqJ,YAAY,oBAAoBzL,EAAG,MAAM,CAAEJ,EAAIwC,gBAAkBxC,EAAI28B,YAAY1gC,OAAS,GAAK+D,EAAIwnD,cAAepnD,EAAG,cAAc,CAACG,MAAM,CAAC,YAAcP,EAAI28B,YAAY,OAAS38B,EAAIwC,gBAAgByF,GAAG,CAAC,OAASjI,EAAIynD,gBAAgBznD,EAAIyI,MAAM,KAA/jBrI,EAAG,MAAM,CAACJ,EAAIuH,GAAG,wBAAqjBnH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,gBAAgB,KAAO,gBAAgB,KAAO,kBAAkB0H,GAAG,CAAC,MAAQjI,EAAI0nD,iBAAiBtnD,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,aAAa,KAAO,cAAc,KAAO,cAAc0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI2nD,sBAAsBvnD,EAAG,qBAAqB,CAACG,MAAM,CAAC,WAAaP,EAAI4nD,oBAAoB3/C,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOlI,EAAImiB,gBAAgB,2BAA2BniB,EAAI6nD,wBAAwB,uBAAuB7nD,EAAI8nD,sBAAsB,IAAI,GAAI9nD,EAAIwC,iBAAmBxC,EAAIwnD,cAAepnD,EAAG,MAAM,CAACK,MAAM,CAAC,sBAAuBT,EAAIwnD,eAAep8C,YAAY,CAAC,eAAe,QAAQ,eAAe,MAAM,OAAS,UAAU,CAAEpL,EAAIwC,gBAAkBxC,EAAIwnD,cAAepnD,EAAG,gBAAgB,CAACG,MAAM,CAAC,OAASP,EAAIwC,eAAe,WAAaxC,EAAIm8B,WAAW,cAAgBn8B,EAAI+nD,cAAc,eAAiB/nD,EAAIgoD,eAAe,eAAiBhoD,EAAIioD,0BAA0BjoD,EAAIyI,MAAM,GAAGzI,EAAIyI,OAAOrI,EAAG,MAAM,CAACe,YAAY,cAAcV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAClnD,EAAG,MAAM,CAACe,YAAY,6BAA6BV,MAAM,CAAC,uBAAwBT,EAAIwnD,gBAAgB,CAAExnD,EAAIwC,iBAAmBxC,EAAIwnD,cAAepnD,EAAG,MAAM,CAACK,MAAM,CAAC,sBAAuBT,EAAIwnD,eAAep8C,YAAY,CAAC,OAAS,OAAO,MAAQ,SAAS,CAAChL,EAAG,yBAAyB,CAAC+H,IAAI,sBAAsB5H,MAAM,CAAC,iBAAmBP,EAAIyC,iBAAiB,eAAiBzC,EAAIwC,eAAe,SAAWxC,EAAIkoD,YAAY,WAAaloD,EAAImoD,mBAAmB,WAAanoD,EAAIm8B,WAAW,eAAiBn8B,EAAIioD,wBAAwBhgD,GAAG,CAAC,oBAAoBjI,EAAIooD,gBAAgB,eAAepoD,EAAIqoD,uBAAuB,uBAAuBroD,EAAIsoD,sCAAsC,iBAAiBtoD,EAAIuoD,2BAA2BnoD,EAAG,MAAM,CAACe,YAAY,mBAAmBV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,iBAAkB/mD,MAAM,CAAC,GAAK,eAAe,CAACP,EAAI6K,GAAI7K,EAAc,YAAE,SAASwoD,GAAO,OAAOpoD,EAAG,YAAY,CAACxB,IAAI4pD,EAAMnsB,YAAYl7B,YAAY,YAAYb,MAAO,kBAAoBkoD,EAAMpc,OAAS,0CAA2C7rC,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAOioD,EAAMpsB,UAAU,KAAOosB,EAAMpsB,WAAWn0B,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIqoD,uBAAuBG,EAAMnsB,oBAAmBj8B,EAAG,YAAY,CAACe,YAAY,YAAYb,MAAM,2BAA6BC,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,cAAc,KAAO,eAAe0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIqoD,uBAAuB,WAAW,IAAI,GAAGjoD,EAAG,MAAM,CAACA,EAAG,sBAAsB,SAASA,EAAG,MAAM,CAACe,YAAY,oCAAoC,CAACf,EAAG,wBAAwB,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,WAAaP,EAAIm8B,WAAW,WAAan8B,EAAIyoD,WAAW,SAAWzoD,EAAI0oD,SAAS,iBAAmB1oD,EAAI2oD,iBAAiB,aAAe3oD,EAAIilB,cAAchd,GAAG,CAAC,WAAajI,EAAI4oD,sBAAsB,GAAGxoD,EAAG,WAAW,CAACe,YAAY,0BAA0BZ,MAAM,CAAC,MAAQ,4BAA4B,MAAQ,OAAO,YAAY,MAAM,gBAAe,EAAK,OAAS,OAAO,0BAAyB,EAAM,QAAUP,EAAI6oD,uBAAuB5gD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI6oD,sBAAsB3gD,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,uLAAuLnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,sBAAsB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI8oD,0BAA0B1oD,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,iBAAiB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI+oD,sBAAsB,IAAI,IACpoJ,GAAkB,GCDlB,GAAS,WAAa,IAAI/oD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,YAAY,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,uBAAuBP,EAAIgpD,0BAA0B,UAAY,CAAExqD,KAAM,YAAa,uBAAwB,EAAM,OAAS,CAAE+tB,SAAS,EAAOxG,SAAU,GAAIkjC,iBAAkB,WAAY,UAAY,CAAEzqD,KAAM,YAAa,eAAgB,EAAM,iBAAgB,EAAM,qBAAoB,EAAK,OAAS,QAAQyJ,GAAG,CAAC,qBAAqBjI,EAAIkpD,iBAAiB,yBAAyBlpD,EAAI25C,mBAAmB,gBAAgB35C,EAAIyK,eAAe,gBAAgBzK,EAAIqjC,eAAe,iBAAiBrjC,EAAImpD,mBAAmBpoD,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GACvvB,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,CAACH,EAAG,MAAM,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,GAAKP,EAAIopD,gBAAgB3tD,IAAOwM,GAAG,CAAC,WAAa,SAASC,GAAQ,OAAOlI,EAAIqpD,YAAY5tD,IAAO,WAAauE,EAAIspD,cAAc,CAAClpD,EAAG,YAAY,CAACK,MAAMT,EAAIupD,mBAAmB9tD,EAAKA,MAAM8E,MAAM,CAAC,KAAO,SAAS,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIwpD,mBAAmB/tD,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACK,MAAMT,EAAI2jC,cAAcloC,EAAKA,MAAM8E,MAAM,CAAC,KAAO,SAAS,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIypD,cAAchuD,EAAKA,WAAW,OAAO,CAACmD,IAAI,kBAAkBqC,GAAG,SAASkH,GAC1lB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,oBAAoBb,MAAM,CAAG,mBAAoB7E,EAAKiuD,SAAW,CAACtpD,EAAG,OAAO,CAACE,MAAM,CAAG,MAAS7E,EAAKkuD,YAAc,CAAC3pD,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKmQ,iBAAiB,CAACxL,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,aAAaH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,OAAO,YAAc,aAAaH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,YAAY,QAAU,QAAQ,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,YAAY,GAAG,aAAa,iBAAiB,QAAU,WAAW,YAAY,SAAS,gBAAgBP,EAAI4pD,0BAA0BxpD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,oBAAoB,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,YAAY,GAAG,aAAa,2BAA2B,YAAY,SAAS,OAAS,CAAEuP,KAAM,UAAW+5C,UAAW,MAAOzpD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,gBAAgBP,EAAI8pD,aAAa,YAAY,GAAG,MAAQ,OAAO,aAAa,iBAAiB1pD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,gBAAgBP,EAAI8pD,aAAa,YAAY,GAAG,aAAa,iBAAiB1pD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,YAAY,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,gBAAgBP,EAAI+pD,eAAe,aAAa,gBAAgB,iBAAgB,EAAM,YAAY,MAAM3pD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,YAAY,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,QAAQ,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,UAAU,YAAY,KAAK,CAACH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIk2B,SAAS,eAAe,OAAO,aAAa,YAAY,GAAG91B,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,gBAAgB,YAAY,SAAS,gBAAgBP,EAAIgqD,YAAY,YAAY,MAAM5pD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,cAAc,MAAQ,GAAG,YAAY,SAAS,YAAY,GAAG,gBAAgBP,EAAIiqD,aAAa,YAAY,eAAe7pD,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,iBAAiB,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,mBAAmB,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,wBAAwB,YAAY,SAAS,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,YAAY,GAAG,MAAQ,GAAG,gBAAgB,iBAAiB,SAAW,gBAAgBH,EAAG,oBAAoB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,kBAAkB,GAAGH,EAAG,yBAAyB,CAACG,MAAM,CAAC,UAAYP,EAAIkqD,aAAa,WAAalqD,EAAImqD,cAAcC,kBAAkB,WAAapqD,EAAIwiC,WAAW,oBAAsBxiC,EAAIqqD,qBAAqBpiD,GAAG,CAAC,OAASjI,EAAIsqD,YAAY,oBAAoBtqD,EAAIuqD,qBAAqBnqD,EAAG,+BAA+B,CAACG,MAAM,CAAC,WAAaP,EAAIwqD,mBAAmB,SAAWxqD,EAAIyqD,gBAAgB,gBAAkBzqD,EAAI43B,gBAAgB,WAAa53B,EAAI0qD,sBAAsBziD,GAAG,CAAC,OAASjI,EAAI2qD,qBAAqBvqD,EAAG,uCAAuC,CAACG,MAAM,CAAC,cAAgBP,EAAI4qD,cAAc,SAAW5qD,EAAIyqD,gBAAgB,gBAAkBzqD,EAAI43B,gBAAgB,WAAa53B,EAAI0qD,qBAAqB,eAAiB1qD,EAAI6qD,YAAY5iD,GAAG,CAAC,cAAgBjI,EAAI8qD,cAAc,wBAAwB,SAAS5iD,GAAQlI,EAAI6qD,WAAW3iD,GAAQ,yBAAyB,SAASA,GAAQlI,EAAI6qD,WAAW3iD,MAAW9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,WAAaP,EAAIiiB,iBAAiB,mBAAqBjiB,EAAIkiB,iBAAiBja,GAAG,CAAC,OAASjI,EAAI+qD,mBAAmB3qD,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAYP,EAAIgrD,uBAAuB,QAAUhrD,EAAIirD,qBAAqBhjD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIirD,oBAAoB/iD,GAAQ,OAASlI,EAAIkrD,sBAAsB9qD,EAAG,4BAA4B,CAAC+H,IAAI,yBAAyB5H,MAAM,CAAC,WAAaP,EAAImrD,qBAAqB,aAAenrD,EAAIorD,kBAAkB,eAAiBprD,EAAIwC,eAAesY,aAAa7S,GAAG,CAAC,OAASjI,EAAIqrD,uBAAuBjrD,EAAG,gCAAgC,CAAC+H,IAAI,4BAA4B5H,MAAM,CAAC,WAAaP,EAAIsrD,wBAAwB,aAAetrD,EAAIorD,kBAAkB,SAAWprD,EAAIwC,eAAesJ,SAAS,cAAgB9L,EAAIwC,gBAAgByF,GAAG,CAAC,OAASjI,EAAIurD,2BAA2B,IACr5I,GAAkB,G,aCLlB,I,UAAS,WAAa,IAAIvrD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACe,YAAY,+BAA+BZ,MAAM,CAAC,MAAQ,kBAAkB,MAAQ,OAAO,YAAY,OAAO,gBAAe,EAAK,OAAS,OAAO,0BAAyB,EAAM,QAAUP,EAAIkqD,cAAcjiD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIkqD,aAAahiD,GAAQ,MAAQlI,EAAIwrD,eAAe,OAASxrD,EAAIyrD,cAAc,wBAAwBzrD,EAAI0rD,YAAY,CAACtrD,EAAG,oBAAoB,CAACG,MAAM,CAAC,kBAAkBP,EAAIY,OAAO,uBAAuB,OAAO,CAACR,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,KAAKH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,EAAE,OAAS,QAAQH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,EAAE,OAAS,QAAQH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,EAAE,OAAS,QAAQH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,QAAQH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,QAAQH,EAAG,SAAS,CAACG,MAAM,CAAC,MAAQ,EAAE,OAAS,QAAQH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,mCAAmC,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,MAAQP,EAAI2rD,aAAa,aAAa,OAAO,OAAS,OAAO1jD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI2rD,aAAazjD,KAAU,CAAC9H,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,IAAI,OAAOW,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,mCAAmC,CAACf,EAAG,KAAK,CAACK,MAAM,CAAE,YAAaT,EAAI4rD,wBAAyB,CAAC5rD,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI6rD,wBAAwBzrD,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,MAAQP,EAAI8rD,aAAa,aAAa,OAAO,OAAS,OAAO7jD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8rD,aAAa5jD,GAAQ,gBAAgBlI,EAAI+rD,wBAAwB,YAAY/rD,EAAIgsD,2BAA2B,CAAC5rD,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,IAAI,OAAOW,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,MAAM,GAAGH,EAAG,UAAU,CAACW,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,WAAW,MAAO,CAACb,EAAG,MAAM,CAACe,YAAY,sCAAsC,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,mCAAmCnH,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAAC+H,IAAI,oBAAoB5H,MAAM,CAAC,MAAQP,EAAIisD,oBAAoB,MAAQjsD,EAAIksD,qBAAqBjkD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIksD,oBAAoBhkD,MAAW9H,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAImsD,cAAc,KAAO,qBAAqBlkD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAImsD,cAAcjkD,MAAW9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIosD,cAAc,KAAO,sCAAsCnkD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIosD,cAAclkD,MAAW9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIqsD,eAAe,KAAO,mCAAmCpkD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqsD,eAAenkD,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,oBAAoBiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI+vB,kBAAkB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAM,eAAe,IAAI,MAAQ/vB,EAAIiwB,aAAa,YAAc,uBAAuB,mBAAqBjwB,EAAI6H,oBAAoBI,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIiwB,aAAa/nB,MAAW9H,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,QAAQ0H,GAAG,CAAC,MAAQjI,EAAIssD,oBAAoB,CAACtsD,EAAIuH,GAAG,yBAAyB,SAASrG,OAAM,MAAS,CAACd,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,EAAE,OAAS,QAAQH,EAAG,cAAc,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM,EAAE,OAAS,SAAS,IAAI,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,aAAckE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0rD,WAAY,SAAW,QAAQ,QAAU,YAAYtrD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIsqD,aAAc,SAAW,QAAQ,QAAU,YAAYlqD,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIqqD,qBAAqBpiD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIqqD,oBAAoBniD,MAAW9H,EAAG,mBAAmB,CAACG,MAAM,CAAC,kBAAoBP,EAAImxB,kBAAkB,WAAanxB,EAAIusD,cAActkD,GAAG,CAAC,aAAejI,EAAIwsD,qBAAqB,KAChoL,GAAkB,ILDtB,SAAYpF,GACRA,kCACAA,0CACAA,oCACAA,mCAJJ,CAAYA,QAAkC,KAO9C,SAAYC,GACRA,+BACAA,4CACAA,qCACAA,mCAJJ,CAAYA,QAAyC,KMO9C,ICdKoF,GDcCC,GAAb,oDACE,KAAAC,uBAAyB,uCACzB,KAAAvC,kBAAoB,GACpB,KAAAwC,oBAAsB,GACtB,KAAAC,2BAA6B,GAC7B,KAAAzF,mCAAqCA,GAAmC0F,WACxE,KAAAC,eAAgB,EAChB,KAAAC,4BAA6B,EAC7B,KAAAC,yBAA0B,EAC1B,KAAAC,aAAe,OCvBjB,SAAYT,GACVA,oBACAA,yBACAA,yBACAA,iCACAA,6BACAA,mCACAA,iCACAA,qBACAA,iCACAA,qBACAA,iCACAA,yBACAA,qCACAA,uBACAA,oCACAA,uBACAA,oCACAA,qBACAA,kCACAA,yBACAA,sCACAA,yBACAA,sCACAA,uBACAA,oCACAA,4BACAA,wCACAA,4BACAA,wCACAA,oCACAA,4BACAA,0BACAA,sCACAA,6BACAA,uBACAA,6CApCF,CAAYA,QAAM,K,iBCAd,GAAS,WAAa,IAAIzsD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,OAAO,YAAY,OAAO,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,gDAAgD,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,OAASlI,EAAImtD,SAAS,QAAUntD,EAAIomC,UAAU,wBAAwBpmC,EAAIotD,eAAe,CAAChtD,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,MAAM,CAACe,YAAY,gBAAgB,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,cAAcP,EAAI+vB,kBAAkB,UAAY,iBAAiB,YAAc,OAAO,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,MAAQ,IAAI,eAAe,IAAI,mBAAqB/vB,EAAI6H,mBAAmB,YAAc,uBAAuB,MAAQ7H,EAAIiwB,cAAchoB,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIiwB,aAAa/nB,MAAW9H,EAAG,MAAM,CAACK,MAAM,CAAC4sD,SAAWrtD,EAAIstD,iBAAiB37B,WAAW,CAACvxB,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,YAAY,KAAO,WAAW,QAAUP,EAAIutD,gBAAgB,mBAAoB,EAAM,mBAAoB,EAAM,oBAAqB,MAAU,IAAI,GAAGntD,EAAG,iBAAiB,CAAC+H,IAAI,cAAc5H,MAAM,CAAC,MAAQP,EAAIstD,iBAAiBl9B,KAAK,aAAa,OAAO,OAAS,MAAM,0BAA0B,UAAUnoB,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIstD,iBAAkB,OAAQplD,MAAW,CAAC9H,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,GAAGH,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,wBAAwB,IAAI,IAAI,GAAGH,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,0BAA0BnH,EAAG,UAAU,CAACe,YAAY,qBAAqBZ,MAAM,CAAC,WAAaP,EAAIkwB,qBAAqB,OAAS,MAAM,cAAgB,UAAUjoB,GAAG,CAAC,oBAAoBjI,EAAImwB,+BAA+B,KAAK/vB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,mBAAoBkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIwtD,iBAAiB,SAAW,SAAS,QAAU,YAAYptD,EAAG,kBAAkB,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,OAAS,YAAY,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIqwB,gBAAqC,UAApBrwB,EAAIswB,aAA0BlwB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAU,CAAEqL,KAAM,MAAOkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIuwB,WAAYvwB,EAAIyI,KAAKrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM5L,EAAIswB,aAAcxgB,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIytD,SAAS,SAAW,QAAQ,QAAU,YAAYrtD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,YAAY/hB,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAI0tD,qBAAqBzlD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI0tD,oBAAoBxlD,GAAQ,OAAS,SAASA,GAAQlI,EAAI0tD,qBAAsB,OAAW,IAC/wH,GAAkB,GCDlB,GAAS,WAAa,IAAI1tD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,oBAAoB,QAAUP,EAAIgsB,QAAQ,MAAQ,KAAM/jB,GAAG,CAAC,OAASjI,EAAI2tD,SAAS,OAAS3tD,EAAImtD,WAAW,CAAC/sD,EAAG,eAAe,CAAC+H,IAAInI,EAAI4tD,eAAertD,MAAM,CAAC,yBAAwB,EAAK,cAAcP,EAAIwa,WAAW,OAAS,OAAO,wBAAuB,GAAMvS,GAAG,CAAC,eAAejI,EAAI6tD,cAAc,oBAAoB7tD,EAAI66B,mBAAmB,mBAAmB76B,EAAI8tD,oBAAoB,CAAC1tD,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,QAAQ,eAAe,aAAaH,EAAG,YAAY,CAACG,MAAM,CAAC,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,iBAAgB,EAAM,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAeH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAc,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAI+tD,kBAAkB,SAAW,QAAQ,QAAU,YAAY3tD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIguD,oBAAoB,SAAW,QAAQ,QAAU,aAAa,IAC7iC,GAAkB,G,sdC2EtB,IAAqBC,GAAe,4CAApC,iD,0BACmB,EAAAC,iBAAqC,IAAI/nB,GACjD,EAAAynB,eAAyB,YAFpC,EAAoC,8CAOlC,WACEx7C,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,KATrB,uBAYlC,WACEr3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KAdxB,oBAiBlC,WACE,IAAI0kB,EAAcluD,KAAKuP,MAAMvP,KAAK2tD,gBAClC,GAAmB,MAAfO,EACF,OAAQA,EAA2B98C,WApBL,sBAwBlC,WAAc,WACZ,OAAO,IAAIX,KAAY,CACrB9R,IAAK,cACL+R,SAAU,MACVC,KAAM,kBAAM,EAAKs9C,iBAAiBxiD,UAClCoR,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKuxC,iBAAiBpxC,OAAOle,EAAK+d,QA7B7B,6BAiClC,WACE,MAAO,CACL/Q,KAAM,OACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKmuD,gBAtCgB,+BA0ClC,WACE,MAAO,CACLxiD,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKouD,kBA/CgB,yBAmD1B,WACN,OAAwB,MAAjBpuD,KAAKue,UAAoBve,KAAKue,SAAS8vC,gBApDd,0BAuD1B,WACe,MAAjBruD,KAAKue,UACPve,KAAKue,SAASvE,iBAzDgB,4BA6D1B,WACe,MAAjBha,KAAKue,UACPve,KAAKue,SAASwrB,mBA/DgB,gCAmElC,SAAmBrqC,GACjBA,EAAE07B,eAAerP,SAAU,IApEK,+BAuElC,SAAkBrsB,GACK,YAAjBA,EAAE4uD,YAA4C,cAAhB5uD,EAAEw3C,YAClCx3C,EAAEkiC,cAAclnB,UAAY,MAzEE,2BA6ElC,SAAchb,GACZA,EAAEiW,QAAUxQ,IAAEyZ,MAAM,GAAIlf,EAAEoW,QAASpW,EAAEiW,WA9EL,0BAiFlC,WACE3V,KAAKyhC,OACLzhC,KAAKuuD,UAnF2B,kBAsF1B,WACFvuD,KAAKquD,eACPruD,KAAKga,iBAxFyB,4BA4FlC,WACEha,KAAKif,SACLjf,KAAKuuD,UA9F2B,oBAiG1B,WACFvuD,KAAKquD,eACPruD,KAAK+pC,mBAnGyB,sBAuGlC,WACE/pC,KAAKuuD,UAxG2B,sBA2GlC,WACEvuD,KAAK4T,UA5G2B,mBA+G1B,WACN5T,KAAKif,WAhH2B,mBAmH1B,WACNjf,KAAKimB,MAAM,YApHqB,uBAuH1B,SAAUvmB,GACZM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,qBA1H4B,qBA8H1B,SAAQp6B,GACVM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKyuD,gBACLzuD,KAAKmuD,kBAnIyB,4BAuI1B,SAAezuD,GACrB,MAAiB,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YAxIZ,2BA2I1B,WACe,MAAjB3pC,KAAKue,UACPve,KAAKue,SAASc,YA7IgB,GAASxc,cAK3Cb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BALmBimB,GAAe,gBAXnC7mD,gBAAU,CACTL,WAAY,CACV6R,wBACA+Q,4BACA5Q,0BACAiH,wBACAT,sBACA2O,8BACAhE,sCAGiB+jC,cC5EyY,MCO1Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,8dCiIf,IAAMz9B,GAAe,CACjBC,MAAQ,QACRC,QAAU,UACVC,QAAU,WAGRnL,GAAiB,CACnBoL,cAAiB,CACb7gB,QAAU,qBAEd8gB,WAAa,CACT9gB,QAAU,wBAEd2V,QAAU,IAsBOipC,GAAc,4CAmK9B,iDACG,eAnKJ,EAAAn/C,MAKI,GA4BJ,EAAAk+C,qBAA+B,EAE/B,EAAAz9B,aAAqB,GAErB,EAAAK,aAAwB,OAmBxB,EAAAD,aAAoB,EAAKY,gBA0CzB,EAAAF,UAAoB,GAkEhB,EAAKpF,oBAAsB,IAAIL,GAC/B,EAAKgiC,iBAAmB,EAAKp8B,eAC7B,EAAKb,aAAe,EAAKY,gBACzB,EAAKlB,kBAAoB,EAAKmC,gBAC9Bd,iBAAmB,KANtB,EAnK8B,kDAc/B,WACI,OAAOnxB,KAAKgmB,YAfe,IAkB/B,SAAkB3nB,GAChB2B,KAAKimB,MAAM,kBAnBkB,iCAsB/B,WACI,MAAO,2CAvBoB,gCA0B/B,WACI,OAAOjmB,KAAKkxB,oBA3Be,sBA8B/B,WACI,OAAQlxB,KAAKuP,MAAM+hB,YAA6BlgB,WA/BrB,0BAwCvB,WACJ,MAAO,CACHqgB,eAAiB,uCACjBxsB,KAAM,GACNkrB,KAAM,GACNuB,UAAU,KA7Ca,6BAiD/B,SAAgBhyB,GACZM,KAAKqtD,iBAAiB37B,UAAY1xB,KAAKqtD,iBAAiB37B,WAlD7B,6BAqD/B,SAAgBhyB,GACZM,KAAKytD,qBAAsB,IAtDA,2BA2D/B,WAE2C,IAF7Bj9B,IAE6B,yDADnC0B,EACmC,uDADlB3B,GAAaC,MAC9Bnc,EAAmC,uDAAtBkR,GAAeE,QAGhC,MAAO,CACHpI,MAAO,QACP8U,YAAY,UACZ9zB,MAAO2B,KAAK8wB,UACZsB,iBAAkBF,EAClBG,gBAAkBhe,EAClBie,eAAgBtyB,KAAK2uD,eACrBnkD,eAAgBxK,KAAK4uD,aACrB5mC,QAAUwI,EACV9V,UAAW,MAzEY,0BA6E/B,SAAahb,GACLM,KAAK6uD,kBACL7uD,KAAK6uD,gBAAkBnvD,EAAEuH,aA/EF,mBAmF/B,WACKjH,KAAKqwB,aAAe,OACrBrwB,KAAKqtD,iBAAmBrtD,KAAKixB,eAC7BjxB,KAAKgwB,aAAe,GACpBhwB,KAAK8wB,UAAY,GACjB9wB,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAMT,GAAaE,QAASlL,GAAeoL,iBAxFvD,qCA2F/B,WACI3wB,KAAK8uD,WAAWxiD,OAAO,mBAAoB,SAC3CtM,KAAK8uD,WAAWxiD,OAAO,uBAAmBe,GAC1CrN,KAAK8uD,WAAWxiD,OAAO,WAAW,GAClCtM,KAAK8uD,WAAW/7B,aAAa,EAAG,GAChC/yB,KAAK8uD,WAAWj9B,mBAAmBC,UAAUC,SAAS,CAACjtB,MAAO,EAAG9I,OAAQ,MAhG9C,4BAqG/B,SAAe0D,GACXM,KAAK8wB,UAAYpxB,EAAErB,MAEhBqB,EAAErB,MACD2B,KAAKowB,aAAepwB,KAAKgxB,gBAGxBhxB,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAMT,GAAaE,QAASlL,GAAeoL,iBA5G5D,wCAgH/B,SAA2BjxB,GACvB,GAAoB,MAAhBA,EAAEizB,YAAsBjzB,EAAEizB,WAAW32B,OAAS,EAAG,CACjD,IAAI8I,EAAQ9E,KAAK8uD,WAAWj9B,mBAAmBC,UAAUc,WAAW9tB,MAEpE9E,KAAK8uD,WAAWj8B,WAAW/tB,EAAOpF,EAAEizB,WAAW,GAAI,IACnD,IAAIo8B,EAAYjqD,EAAQpF,EAAEizB,WAAW,GAAG32B,OAExCgE,KAAK8uD,WAAW/7B,aAAag8B,EAAW,GACxCrvD,EAAEuH,UAAUmK,WAAW4hB,iBAxHA,gCA4H/B,SAAmBtzB,GACf,GAAGA,EAAE+R,aAAc,CACfzR,KAAKqtD,iBAAiBl9B,KAAOzwB,EAAE+R,aAAa0e,KAC5CnwB,KAAKqtD,iBAAiBpoD,KAAOvF,EAAE+R,aAAaxM,KAC5CjF,KAAK8wB,UAAYpxB,EAAE+R,aAAaxM,KAChCjF,KAAKqtD,iBAAiB37B,SAAWhyB,EAAE+R,aAAaigB,SAChD1xB,KAAKqtD,iBAAiB57B,eAAiB/xB,EAAE+R,aAAaggB,eACtDzxB,KAAKqwB,aAAe,SACpBrwB,KAAKowB,aAAcpwB,KAAKgxB,eAAc,EAAMT,GAAaC,MAAOjL,GAAeE,SAC/EzlB,KAAKowB,aAAa/xB,MAAQqB,EAAE+R,aAAaxM,KAEzCjF,KAAK8uD,WAAWxiD,OAAO,QAAS5M,EAAE+R,aAAa0e,MAC/C,IAAIn0B,EAASgE,KAAK8uD,WAAWl9B,YAC7B5xB,KAAK8uD,WAAWj9B,mBAAmBC,UAAUC,SAAS,CAAEjtB,MAAO9I,EAAQA,OAAQ,IAG/EgE,KAAKgwB,cACLhwB,KAAKgyB,UA7IkB,2BAoJ/B,WAAa,WACT,OAAO,IAAIvhB,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqB2kC,UAChE3oD,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,WA9JM,sBA4K/B,WACI7rB,KAAKgwB,aAAe,GACpBhwB,KAAKqtD,iBAAmBrtD,KAAKixB,eAC7BjxB,KAAK8wB,UAAY,GACjB9wB,KAAK8uD,WAAWl7C,UAhLW,sBAmL/B,SAASlU,GACLM,KAAKivD,WACLjvD,KAAKowB,aAAepwB,KAAKgxB,gBACzBhxB,KAAKkvD,4BAtLsB,uBAyL/B,SAAUxvD,GACNM,KAAK8vB,kBAAoB9vB,KAAKiyB,kBA1LH,8EA6L/B,WAAciB,GAAd,iFACIlzB,KAAKmtD,cAAa,GADtB,gDA7L+B,uIAiM/B,WAAaj6B,GAAb,iFACIlzB,KAAKmtD,cAAa,GADtB,gDAjM+B,6IAqM/B,WAAmBh6B,GAAnB,qGACQnL,GAAU,EACVhoB,KAAK8wB,WAAc9wB,KAAKqtD,iBAAiBpoD,OACzCjF,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAMT,GAAaE,QAASlL,GAAeoL,eAClF3I,GAAU,GAEVhoB,KAAKqtD,iBAAiBl9B,OACtBnI,GAAU,IAG4B,IAAtChoB,KAAK8uD,WAAWxiD,OAAO,aACzB0b,GAAU,IAGTA,EAdP,gCAe2BoL,KAAOpU,QAAQ,gBAAiB,mBAf3D,OAeYniB,EAfZ,OAgBWA,IACCmD,KAAKqtD,iBAAiBx9B,mBAAqBxF,GAAqB2kC,SAC5D37B,EAAUluB,IAAEmuB,MAAMtzB,KAAKqtD,kBACxBl6B,IACCE,EAAQ5B,eAAiBzxB,KAAKixB,eAAeQ,gBAGjDzxB,KAAKowB,aAAepwB,KAAKgxB,eAAc,EAAKT,GAAaG,SACtD1wB,KAAK8wB,YAAcuC,EAAQpuB,MAAQkuB,GAClCE,EAAQpuB,KAAOjF,KAAK8wB,UAEpB9wB,KAAK0rB,oBAAoB6H,cAAcF,EAAQpuB,KAAMouB,EAAQxD,oBACxDxpB,MAAK,SAAAxJ,IACkB,IAAhBA,EAAO+mB,KACP,EAAKwM,aAAe,EAAKY,eAAc,EAAOT,GAAaE,QAASlL,GAAeqL,YAEnF,EAAKqC,OAAOI,MAGnB/sB,OAAM,SAAAmtB,GACHL,KAAOjL,MAAM,4DAA6D,aAIlFnoB,KAAKizB,OAAOI,IAxC5B,gDArM+B,8EAqP/B,SAAOA,GAAY,WACZA,EAAQ5B,iBAAmBzxB,KAAKixB,eAAeQ,eAC9CzxB,KAAK0rB,oBAAoBgI,mBAAmBL,GAC3ChtB,MAAK,SAAAxJ,GACF,EAAK6jB,eAAgB,KAExBpa,OAAM,SAAA+N,OAKPrU,KAAK0rB,oBAAoBiI,mBAAmBN,GAC3ChtB,MAAK,SAAAxJ,GACF,EAAK6jB,eAAgB,KAExBpa,OAAM,SAAA+N,SApQgB,0BA0Q/B,WACIrU,KAAK0gB,eAAgB,MA3QM,GAAS7d,SASxCb,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,yCAZiBklC,GAAc,gBAnBlCvnD,gBAAU,CACHL,WAAY,CACRwY,sBACAtG,wBACAK,8BACAT,wBACAu2C,4BACAp7B,oBACA9J,kCACAH,0BACAxQ,gCACAiG,oBACAyU,0BACA9J,8BACAtK,oCACAqU,4CACA+5B,uBAGSU,cCtLwY,MCSzZ,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBMU,G,qGACZ,SAAkB/wD,GACvB,OAAa,MAATA,GAAkC,IAAjBA,EAAMrC,OAClB,GAGFqC,EAAMwhD,QAAQ,gBAAiB,Q,2dC6LtBr7C,uBAAUnB,IAAcF,GAA5C,IAuBqBksD,GAAoB,4CA4HvC,iDACE,eA5HJ,EAAA9/C,MAOI,GAgBF,EAAAygB,aAAqB,GACrB,EAAAue,MAAgB,GAChB,EAAA+d,cAAwB,EAiBxB,EAAAjuD,MAAgB,EAAKixD,WACrB,EAAAC,aAAuB,EACvB,EAAAC,2BAAqC,EAC7B,EAAAxD,oBAAgC,CACpC,eACA,wBACA,oBACA,oBAEJ,EAAA96B,kBAAmC,GAI3B,EAAA+6B,oBAA8B,GAMtC,EAAAwD,mBAA6B,EAC7B,EAAAC,mBAA6B,EAOrB,EAAAC,eAAyB,gCAwD/B,EAAKjsD,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IACrD,EAAKk/C,aAAc,EAEnB,EAAK7jC,oBAAsB,IAAIL,GAC/B,EAAKqgC,aAAe,GACpB,EAAKG,aAAe,GACpB,EAAKK,eAAgB,EACrB,EAAKC,eAAgB,EACrB,EAAKC,gBAAiB,EACtB,EAAKwD,aAAe,GAEpB,EAAK9/B,kBAAoB,EAAK+/B,mBAC9B1+B,iBAAmB,MAdrB,EA5HuC,iDA4BvC,WACI,OAAOnxB,KAAK8vD,WA7BuB,IAgCvC,SAAiBzxD,GACb2B,KAAKimB,MAAM,YAjCwB,oBAoCvC,SAAO5I,GACL,OAAGA,EAAQ,IACF,KAEA,OAxC4B,4BAkEvC,WACE,MAAO,qBAAP,OAA4Brd,KAAKsvD,WAAjC,oBAnEqC,+BAwEvC,WACE,MAAO,kBAAP,OAAyBtvD,KAAK2rD,sBAAL,YAAkC3rD,KAAKuiC,WAAWt9B,KAAlD,KAA4D,MAzEhD,iCA4EvC,WACE,OAA0B,MAAnBjF,KAAKuiC,aAAuD,MAAhCviC,KAAKuiC,WAAW1E,cAAyD,IAAjC79B,KAAKuiC,WAAW1E,gBA7EtD,gCAgFvC,WACE,OAAQ79B,KAAKuP,MAAMwgD,mBAA2B3+C,WAjFT,gCAmFvC,WACE,OAAQpR,KAAKuP,MAAMygD,mBAA2B5+C,WApFT,4BAuFvC,WACE,OAAOpR,KAAK6rD,eAxFyB,4BA2FvC,WACE,OAAO7rD,KAAK0rD,eA5FyB,wFAgG/B,WAAwBrtD,EAAgB6nB,GAAxC,qFACF7nB,EADE,gCAEE2B,KAAKiwD,YAFP,gDAhG+B,iFAsGvC,WACE99C,SAASm3B,iBAAiB,QAAStpC,KAAKupC,WAvGH,uBA0GvC,WACEp3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,WA3GN,qBA8GvC,SAAQlzB,GACN,OAAQA,EAAM65C,SACZ,KAAK1D,GAAO2D,IACVnwD,KAAKurD,iBACL,MACF,KAAKiB,GAAO4D,QACVpwD,KAAKqwD,kBAAkB,GACvB,MACF,KAAK7D,GAAO8D,UACVtwD,KAAKqwD,iBAAiB,GACtB,SAxHiC,qCA6I/B,SAAwB3wD,GAE9B,GAAe,OAAZA,EAAErB,OAAsC,KAApBqB,EAAE6wD,cAAzB,CAOA,IAAIC,EAAcpB,GAAKqB,WAAW/wD,EAAErB,OAAO4pB,OACxCuoC,EAAYx0D,OAAS,GACnBgE,KAAKisD,sBAAwB7E,GAA0CyF,YACvE7sD,KAAKwvD,4BACRxvD,KAAKisD,oBAAsB7E,GAA0CsJ,aAGvE1wD,KAAKwvD,2BAA4B,KA7JI,sCAgK/B,SAAyB9vD,GAG/B,IAAI8wD,EAAcpB,GAAKqB,WAAWzwD,KAAK2wD,kBAAkB1oC,OAC/B,IAAvBuoC,EAAYx0D,QACRgE,KAAKisD,sBAAwB7E,GAA0CyF,aAC5E7sD,KAAKisD,oBAAsB7E,GAA0CyF,cAtKlC,gCA0KvC,SAAmBntD,GAAK,WACtB,GAAGA,EAAE+R,aAAc,CACjB,IAAI9F,EAAMjM,EAAE+R,aAAa0e,KACrBygC,EAA+B,GAEnC5wD,KAAKkxB,kBAAkBliB,SAAQ,SAAAnK,GAC1BM,IAAE2S,SAASnM,EAAM9G,IAClB+rD,EAAkBt0D,KAAKuI,MAI3B7E,KAAKimB,MAAM,oBAAqB2qC,EAAmBjlD,GAAM,SAAC9O,GACxD,EAAKgvD,aAAehvD,QAtLa,+BA2LvC,SAAkB6C,GAChBM,KAAKssD,cAAe,IA5LiB,8BA+LvC,SAAiB5sD,GACfM,KAAKssD,cAAe,EACpBtsD,KAAK8vB,kBAAoB9vB,KAAK6vD,qBAjMO,2BAoM/B,SAAcnwD,GACpBM,KAAKyvD,mBAAqB,EAC1BzvD,KAAK6wD,qBAAqBj9C,QAC1B5T,KAAK6wD,qBAAqBC,eAC1B9wD,KAAK+wD,qBAAqBn9C,QAC1B5T,KAAK+wD,qBAAqBD,eAC1B9wD,KAAKgwB,aAAe,KA1MiB,gFA6M/B,oHACehwB,KAAK0D,OAAO6nB,QAAQvrB,KAAKgxD,kBADxC,UACAn0D,EADA,OAGFA,EAAO+mB,KAHL,sBAIE/mB,EAJF,OAONmD,KAAK0rD,aAAe7uD,EAAO+mB,KAAK+oC,oBAChC3sD,KAAK6rD,aAAehvD,EAAO+mB,KAAKgpC,2BAChC5sD,KAAKwvD,0BAAkD,KAAtBxvD,KAAK6rD,aACtC7rD,KAAKisD,oBAAsBjsD,KAAKgsD,oBAAoBnvD,EAAO+mB,KAAKujC,oCAChEnnD,KAAK0vD,kBAAoB7yD,EAAO+mB,KAAKujC,mCAErCnnD,KAAKksD,cAAgBrvD,EAAO+mB,KAAKkpC,cACjC9sD,KAAKmsD,cAAgBtvD,EAAO+mB,KAAKmpC,2BACjC/sD,KAAKosD,eAAiBvvD,EAAO+mB,KAAKopC,wBAClChtD,KAAK4vD,aAAe/yD,EAAO+mB,KAAKqpC,aAChCjtD,KAAKuvD,aAAc,EAjBb,iDA7M+B,gFAiO/B,WAAS,WACX0B,EAA0B,IAAIxE,GAMlC,OALAwE,EAAwB9G,kBAAoBnqD,KAAKsvD,WAEjD2B,EAAwBtE,oBAAsB3sD,KAAKkxD,iBACnDD,EAAwBrE,2BAA6B5sD,KAAK2wD,iBAElD3wD,KAAKisD,qBACX,KAAK7E,GAA0CyF,WAC7CoE,EAAwB9J,mCAAqCA,GAAmC0F,WAChG,MACF,KAAKzF,GAA0C+J,eAC7CF,EAAwB9J,mCAAqCA,GAAmCgK,eAChG,MACF,KAAK/J,GAA0CsJ,YAC7CO,EAAwB9J,mCAAqCA,GAAmCuJ,YAChG,MACF,KAAKtJ,GAA0CgK,WAC7CH,EAAwB9J,mCAAqCA,GAAmCiK,WAChG,MAGJH,EAAwBnE,cAAgB9sD,KAAKksD,cAC7C+E,EAAwBlE,2BAA6B/sD,KAAKmsD,cAC1D8E,EAAwBjE,wBAA0BhtD,KAAKosD,eACvD6E,EAAwBhE,aAAejtD,KAAK4vD,aAE5C5vD,KAAK0D,OAAOK,SAAS/D,KAAK2vD,eAAgBsB,GAAyB5qD,MAAK,SAAAmQ,GACtE,EAAK2W,MAAMlH,MAAM,mBAAoB,SAGvCjmB,KAAKqqD,gBAhQgC,yBAmQvC,WACErqD,KAAKyvD,mBAAqB,EAC1BzvD,KAAKiqD,cAAe,EACpBjqD,KAAKgwB,aAAe,KAtQiB,8BA2QvC,WAAgB,WACd,OAAO,IAAIvf,KAAY,CACnBC,SAAU,MACVC,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqB2kC,UAChE3oD,MAAK,SAACmiB,GACH,OAAOA,KAIVliB,OAAM,SAAAulB,GAAG,MAAG,WArRgB,4BA0RvC,WACE,OAAO7rB,KAAKyvD,mBACV,KAAM,EACJzvD,KAAK+wD,qBAAqBh+B,aAAa,EAAE,GACzC/yB,KAAKyvD,kBAAoB,EACzB,MAEF,KAAK,EACHzvD,KAAK+wD,qBAAqBM,OAC1BrxD,KAAK6wD,qBAAqB99B,aAAa,EAAE,GACzC/yB,KAAKyvD,kBAAoB,EACzB,MAEF,KAAK,EACHzvD,KAAK6wD,qBAAqBQ,OACzBrxD,KAAKuP,MAAM+hD,kBAA0BlgD,SAASiO,QAC/Crf,KAAKyvD,kBAAoB,EACzB,SA3SiC,8BA+SvC,SAAiBpxD,GAWf,OAVA2B,KAAK0vD,mBAAqBrxD,EAEvB2B,KAAK0vD,kBAAoB,IAC1B1vD,KAAK0vD,kBAAoB,GAGxB1vD,KAAK0vD,kBAAoB,IAC1B1vD,KAAK0vD,kBAAoB,GAGpB1vD,KAAK0vD,mBACV,KAAK,GACU,GAAVrxD,IACE2B,KAAKuP,MAAMygD,oBACXhwD,KAAKuP,MAAM+hD,kBAA0BlgD,SAASiO,QAEjDrf,KAAK0vD,kBAAoB,GAE3B,MACF,KAAK,EACA1vD,KAAKuP,MAAM28C,eACXlsD,KAAKuP,MAAM28C,cAAsB96C,SAASiO,QAE7C,MACF,KAAK,EACArf,KAAKuP,MAAM48C,eACXnsD,KAAKuP,MAAM48C,cAAsB/6C,SAASiO,QAE7C,MACF,KAAK,EACArf,KAAKuP,MAAM68C,gBACXpsD,KAAKuP,MAAM68C,eAAuBh7C,SAASiO,QAE9C,SAjViC,8EAqVvC,8GACiCrf,KAAK0rB,oBAAoB6F,qBAAqBlH,GAAqB2kC,UADpG,OACEhvD,KAAKkxB,kBADP,uDArVuC,8DAASruB,cAWhDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,iCAGAznB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,2CA4EAznB,gBADCuW,gBAAM,cACP,uCAhGmB82C,GAAoB,gBArBxCloD,eAAU,CACTL,WAAY,CACV8R,wBACAu2C,4BACAoC,gCACA5nC,4BACArQ,gCACA0a,0BACAzU,oBACA0K,kCACAsiB,sCACAC,4BACAC,kBACAC,kBACA1iB,iBACAnR,8BACAQ,8BACAL,wBACA01C,sBAGiBW,QC1NTmC,GD0NSnC,ME1N8Y,MCS/Z,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCpBX,GAAS,WAAa,IAAItvD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,OAAO,cAAa,EAAK,MAAQ,0BAA0B,gBAAe,EAAM,0BAAyB,EAAK,WAAWP,EAAI2vB,aAAa,YAAY3vB,EAAI0xD,cAAc,YAAY1xD,EAAI4gB,cAAc,QAAU5gB,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI0hC,OAAO,CAACthC,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,qBAAqB,CAACH,EAAG,MAAM,CAACe,YAAY,wBAAwB,CAACf,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,MAAM,KAAO,MAAM,mBAAoB,EAAM,SAAWP,EAAIimD,KAAKhqD,OAAS,GAAGgM,GAAG,CAAC,MAAQjI,EAAI2xD,iBAAiBvxD,EAAG,MAAM,CAACe,YAAY,WAAW,CAACnB,EAAIuH,GAAG,4BAA4B,KAAKnH,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,OAAO,CAAC+H,IAAI,qBAAqB,CAAC/H,EAAG,KAAKJ,EAAI6K,GAAI7K,EAAQ,MAAE,SAASm/C,EAAQp6C,GAAO,OAAO3E,EAAG,KAAK,CAACxB,IAAImG,EAAM5D,YAAY,mBAAmB,CAACf,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ4+C,EAAQj6C,KAAK,YAAc,YAAY+C,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAK09B,EAAS,OAAQj3C,MAAW,CAAC9H,EAAG,eAAe,CAACA,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,sBAAsBH,EAAG,iBAAiB,CAACG,MAAM,CAAC,sBAAsBP,EAAI4xD,sBAAsB,QAAU,yBAAyB,IAAI,GAAGxxD,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6xD,SAAS9sD,QAAY,MAAK,SAAS3E,EAAG,MAAMA,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,MAAM,CAACJ,EAAIuH,GAAG,2BAA2BnH,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,qBAAqBnH,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,iBAAiB,CAAC+H,IAAI,4BAA4B7H,MAAO,mBAAqBN,EAAI8xD,WAAa,IAAKvxD,MAAM,CAAC,iBAAiB,UAAU,iBAAkB,EAAK,eAAgB,EAAK,UAAY,YAAY0H,GAAG,CAAC,YAAcjI,EAAI+xD,iBAAiB,CAAC3xD,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,UAAU,CAAC+H,IAAI,YAAYhH,YAAY,sBAAsBZ,MAAM,CAAC,MAAQP,EAAIgyD,0BAA0B,uBAAsB,EAAM,2BAA0B,EAAM,iBAAiB,WAAW,aAAe,OAAO,iBAAiBhyD,EAAI0mC,mBAAmB,mBAAqB1mC,EAAIiyD,sBAAsBhqD,GAAG,CAAC,uBAAuB,SAASC,GAAQlI,EAAI0mC,mBAAmBx+B,GAAQ,wBAAwB,SAASA,GAAQlI,EAAI0mC,mBAAmBx+B,GAAQ,gBAAgBlI,EAAIyK,gBAAgB1J,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,OAAOqC,GAAG,SAASkH,GACzpF,IAAI1M,EAAO0M,EAAI1M,KACH0M,EAAIpD,MAChB,MAAO,CAAC3E,EAAG,MAAM,CAACK,MAAMT,EAAIkyD,0BAA0Bz2D,EAAKk5C,cAAc,CAACv0C,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKyJ,SAAS9E,EAAG,eAAe,CAACG,MAAM,CAAC,eAAiBP,EAAImyD,uBAAuB,cAAgBnyD,EAAIoyD,wBAAwBjkC,MAAM,CAAC7vB,MAAO7C,EAAgB,YAAE2yB,SAAS,SAAUC,GAAMruB,EAAIyhB,KAAKhmB,EAAM,cAAe4yB,IAAM/kB,WAAW,uBAAuB,WAAW,MAAM,OAAOlJ,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAWP,EAAIqyD,kBAAkB,kBAAiB,EAAK,QAAUryD,EAAIsyD,eAAe,aAAY,EAAK,SAAU,EAAK,QAAU,kBAAkB,0BAAyB,EAAM,gBAAgB,0BAA0BrqD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIsyD,eAAepqD,MAAW9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,eAAgBkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI0hC,KAAM6C,mBAAmB,GAAO,SAAW,QAAQ,QAAU,YAAYnkC,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI2qD,mBAAoB,SAAW,QAAQ,QAAU,aAAa,IACnmC,GAAkB,G,0+CHJtB,SAAY8G,GACRA,gDACAA,kCACAA,qBAHJ,CAAYA,QAA2B,KIqKnC,IAAqBc,GAAgC,4CAgDjD,iDACI,eAhDJ,EAAA/iD,MAEI,GAuCJ,EAAA6iD,kBAAoB,CAAEroD,GAAK,qBAC3B,EAAAsoD,gBAA0B,EAC1B,EAAArM,KAA4B,GAE5B,EAAA+L,0BAAiD,GAOjD,EAAAtrB,mBAA4B,GAC5B,EAAA8rB,0BAA6BllD,EAgF7B,EAAAmlD,kBAA2B,GApFvB,EAAK3pB,kBAAoB,IAAI5C,GAFjC,EAhDiD,kDAiBjD,WACI,OAAOjmC,KAAKgmB,YAlBiC,IAqBjD,SAAkB3nB,GACd2B,KAAK0qD,mBAAkB,KAtBsB,0BAyBjD,WACE,OAAO1qD,KAAKuP,MAAM,uBA1B6B,wBA6BjD,WACI,OAASvP,KAAKuP,MAAMkjD,UAAmBrhD,WA9BM,+BAkCjD,SAAkB/S,EAAgB6nB,GAC3B7nB,IAGA2B,KAAKgmD,KAAO,MAtC8B,qCAwDjD,WACE,IADqB,EACjB0M,EAAcvtD,IAAEihB,UAAUpmB,KAAK23B,iBADd,KAEU33B,KAAK2yD,SAASC,aAFxB,yBAEZC,EAFY,QAGf9a,EAAa2a,EAAY1gD,MAAK,SAAAlW,GAAC,OAAIA,EAAE69B,mBAAqBk5B,EAAmBl5B,oBAC7Eoe,IACFA,EAAWrD,YAAcme,EAAmBne,cAHhD,IAAK,EAAL,qBAA0D,IAFrC,8BASrB,IAAIvK,EAAWuoB,EAAY1gD,MAAK,SAAAlW,GAAC,OAAIA,EAAE44C,eAKvC,OAJIvK,GACFnqC,KAAKymC,mBAAmBnqC,KAAK6tC,GAGxBuoB,IAtEwC,iDAyEjD,WACI,IAAII,EAAkB3gD,SAASC,uBAAuB,6BAA6B,GAC/E0gD,GACAA,EAAgBC,gBAAe,KA5EU,uCAgFjD,SAA0BC,GACtB,IAAIC,EAAO,2DACX,OAAOD,EAAc,6BAA+BC,EAAOA,IAlFd,mCAqFjD,SAAsBvzD,GAClB,IAAIwzD,EAAOxzD,EAAEuH,UACT0T,EAAQu4C,EAAK5mD,SAASqO,MACtBq4C,EAAc7tD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK6vC,eAEzCse,IACAhzD,KAAKymC,mBAAqB,GAC1BzmC,KAAKymC,mBAAmBnqC,KAAK02D,IAGjCE,EAAK5mD,OAAO,gBAAiBtM,KAAKymC,sBA/FW,4BAkGjD,SAAe/mC,GACXM,KAAKmzD,sBAAsBzzD,GAC3BM,KAAKozD,wCApGwC,4BAuGjD,SAAe1zD,GACXM,KAAKuyD,qBAAuB7yD,EAAEuH,YAxGe,kCA2GhD,SAAqBvH,GAClB,IAAIoC,EAAapC,EAAE2zD,aAAe3zD,EAAE2zD,aAAa,QAAKhmD,EAClDimD,EAAY5zD,EAAEizB,WAAajzB,EAAEizB,WAAW,QAAKtlB,EAC7CsN,EAAQjb,EAAEuH,UAAUqF,SAASqO,MAMjC,GAJI7Y,IACAA,EAAW4yC,aAAc,GAGzB4e,EAAW,CACXtzD,KAAKymC,mBAAqB,GAC1B,IAAI8sB,EAAepuD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK6vC,eAC1C8e,EAAmBruD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK80B,mBAAqB25B,EAAU35B,oBAE7E45B,IACAA,EAAa7e,aAAc,GAE3B8e,IACAA,EAAiB9e,aAAc,GAGnC10C,KAAKymC,mBAAmBnqC,KAAKk3D,GAGjCxzD,KAAKozD,wCAnIwC,oCAuIjD,SAAuB1zD,GACnBM,KAAKwyD,kBAAkBl2D,KAAKoD,EAAEuH,aAxIe,oCA2IjD,SAAuBzL,GACnB,IACIi4D,EAAOtuD,IAAE6M,KAAKhS,KAAKwyD,mBAAmB,SAAC3tD,GAAD,OAAeA,IAASrJ,EAAKyL,aAEvE,GAAIzL,EAAK6C,MAAO,CACZ,IAAIq1D,EAAkB,GACtBA,EAAgBp3D,KAAKm3D,GAErB,IAAIE,EAAYxuD,IAAEyuD,WAAW5zD,KAAKwyD,kBAAmBkB,GACrDC,EAAU3kD,SAAQ,SAACnK,GACfA,EAAKyH,OAAO,SAAS,SArJgB,2BA0JzC,WACJ,IAAIqsB,EAAmC,CACnCgB,sBAAkBtsB,EAClBpI,KAAM,GACNyvC,aAAa,GAGjB10C,KAAKgmD,KAAK1pD,KAAKq8B,KAjK8B,sBAoKzC,SAAS7zB,GACb9E,KAAKgmD,KAAK9oD,OAAO4H,EAAO,KArKqB,+BAwKzC,WAA8H,IAA5G+uD,IAA4G,yDAA/ElB,EAA+E,uCAAtCmB,EAAsC,wDAClI9zD,KAAKimB,MAAM,SAAU,CAAE4tC,cAAalB,WAAUmB,4BAzKD,kBA4KzC,WAAI,WACJ9zD,KAAK+zD,iBAIL/zD,KAAKgmD,KAAKhqD,OAAS,GACfmJ,IAAE6M,KAAKhS,KAAKgmD,MAAM,SAAAnhD,GAAI,MAAkB,KAAdA,EAAKI,UAKnCjF,KAAKgmD,KAAKhqD,OAAS,EACnBgE,KAAKg0D,eAAeh0D,KAAK2yD,SAASxI,mBAAmB9jD,MAAK,SAAAwN,GACtD,EAAKsZ,MAAMlH,MAAM,mBAAoBurC,GAA4B/f,YACjE,EAAKiZ,mBAAkB,EAAO72C,GAAU,MACzCvN,OAAM,SAAAulB,OAET7rB,KAAKi0D,mBAAmBj0D,KAAK2yD,SAASxI,mBAAmB9jD,MAAK,SAAAwN,GAC1D,EAAKsZ,MAAMlH,MAAM,mBAAoBurC,GAA4B/f,YACjE,EAAKiZ,mBAAkB,EAAO72C,MAC/BvN,OAAM,SAAAulB,UAhMgC,yFAoMzC,WAAyByjC,GAAzB,8FACAj8B,EAAU,uCACVrzB,KAAKymC,oBAAsBzmC,KAAKymC,mBAAmBzqC,OAAS,IAC5Dq3B,EAAUrzB,KAAKymC,mBAAmB,GAAG9M,kBAHrC,SAMS35B,KAAK6oC,kBAAkBqrB,mBAAmB5E,EAAYj8B,GAN/D,wFApMyC,+IA6MzC,WAAqBi8B,GAArB,iGACStvD,KAAK6oC,kBAAkBsrB,cAAc7E,EAAYtvD,KAAKgmD,MAD/D,wFA7MyC,oFAiNjD,SAAatmD,GACTM,KAAKqyD,gBAAiB,EACtBryD,KAAK+xD,0BAA4B/xD,KAAKo0D,0BACtCp0D,KAAKqyD,gBAAiB,IApNuB,2BAuNjD,SAAc3yD,GACVM,KAAK0qD,mBAAkB,GACvB1qD,KAAKqyD,gBAAiB,IAzNuB,2BA4NjD,SAAc3yD,GACVM,KAAKymC,mBAAqB,GAC1BzmC,KAAK+xD,0BAA4B,KA9NY,2BAiOzC,WACJ,OAAO/xD,KAAKq0D,qBAlOiC,8BAqOzC,WAAgB,WACpB,GAAIr0D,KAAKgmD,KAAKhqD,OAAS,EAAG,CACtB,IAAIk3D,EAAO/tD,IAAE6M,KAAKhS,KAAK+xD,2BAA2B,SAAAzzD,GAAC,OAAIA,EAAE2G,KAAK2S,cAAcqQ,SAAW,EAAK+9B,KAAK,GAAG/gD,KAAK2S,cAAcqQ,UACvH,GAAIirC,EACA,OAAO,EAIf,OAAO,IA7OsC,mCAgPjD,SAAsBxzD,GAClB,GAAuB,KAAnBA,EAAErB,MAAM4pB,OAAe,CACvB,IAAIirC,EAAO/tD,IAAE6M,KAAKhS,KAAK+xD,2BAA2B,SAAAzzD,GAAC,OAAIA,EAAE2G,KAAK2S,cAAcqQ,SAAWvoB,EAAErB,MAAMuZ,cAAcqQ,UAC7G,GAAIirC,EACA,OAAO,EAIf,OAAO,MAxPsC,GAASrwD,SAM1Db,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,gCAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,uCAGA/lC,gBADCwnB,gBAAK,CAAEC,QAAS,wBACjB,kCAmBAznB,gBADCuW,gBAAM,eACP,uCAlCiB+5C,GAAgC,gBAnBxDnrD,gBAAU,CACHL,WAAY,CACR8R,wBACA2G,oBACAwU,YACA3a,gCACA0Q,0BACAI,iBACAtK,oCACA/G,8BACA8Q,4BACA2qC,oCACAtgC,eACA/J,kCACApK,gCACAxG,8BACA2Q,qBAGasoC,cCrKgZ,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIvyD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAAC+H,IAAI,YAAYhH,YAAY,qBAAqBZ,MAAM,CAAC,GAAK,YAAY,MAAQ,IAAI,SAAW,OAAO,OAASP,EAAIw0D,iBAAiB,mBAAkB,EAAK,MAAQ,2BAA2B,cAAa,EAAK,iBAAkB,EAAK,qBAAsB,EAAK,mBAAoB,EAAK,QAAUx0D,EAAIy0D,oBAAoBxsD,GAAG,CAAC,QAAUjI,EAAI00D,eAAe,OAAS10D,EAAI20D,cAAc,OAAS30D,EAAI40D,WAAW,MAAQ50D,EAAI60D,SAAS,iBAAiB,SAAS3sD,GAAQlI,EAAIy0D,mBAAmBvsD,KAAU,CAAC9H,EAAG,MAAM,CAACe,YAAY,WAAW,CAAEnB,EAAI80D,6BAA6B74D,OAAS,EAAGmE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,qBAAqBnH,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,iBAAiB,CAAC+H,IAAI,uBAAuB7H,MAAO,mBAAqBN,EAAI8xD,WAAa,IAAKvxD,MAAM,CAAC,GAAK,uBAAuB,iBAAiB,UAAU,iBAAkB,EAAK,eAAgB,EAAK,UAAY,aAAa,CAACH,EAAG,UAAU,CAAC+H,IAAI,qBAAqBhH,YAAY,sBAAsBZ,MAAM,CAAC,MAAQP,EAAI80D,6BAA6B,uBAAsB,EAAM,2BAA0B,EAAM,iBAAiB,WAAW,aAAe,OAAO,iBAAiB90D,EAAI0mC,mBAAmB,mBAAqB1mC,EAAIiyD,sBAAsBhqD,GAAG,CAAC,uBAAuB,SAASC,GAAQlI,EAAI0mC,mBAAmBx+B,GAAQ,wBAAwB,SAASA,GAAQlI,EAAI0mC,mBAAmBx+B,GAAQ,gBAAgBlI,EAAIyK,gBAAgB1J,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,OAAOqC,GAAG,SAASkH,GAC3pD,IAAI1M,EAAO0M,EAAI1M,KACH0M,EAAIpD,MAChB,MAAO,CAAC3E,EAAG,MAAM,CAACK,MAAMT,EAAIkyD,0BAA0Bz2D,EAAKk5C,cAAc,CAACv0C,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKyJ,SAAS9E,EAAG,eAAe,CAACG,MAAM,CAAC,eAAiBP,EAAImyD,uBAAuB,MAAQ12D,EAAKk5C,YAAY,cAAgB30C,EAAIoyD,wBAAwBnqD,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAM,cAAeyM,QAAa,OAAO,MAAK,EAAM,eAAe,IAAI,GAAG9H,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,MAAM,CAACG,MAAM,CAAC,MAAQ,SAAS,GAAK,6BAA6BH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,UAAWkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI+0D,aAAc,SAAW,QAAQ,QAAU,YAAY30D,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI8qD,eAAgB,SAAW,QAAQ,QAAU,aAAa,IAAI,OAAO9qD,EAAIyI,UAC56B,GAAkB,G,8eCkHlB,IAAqBusD,GAAiC,4CA0ElD,iDACI,eA/DJ,EAAAP,oBAA8B,EAsD9B,EAAA7lC,QAAkB,EAElB,EAAAkmC,6BAAoD,GAEpD,EAAAG,eAAyB,GAEzB,EAAAC,UAAoC,GAkDpC,EAAAzC,kBAA2B,GAoB3B,EAAA/rB,mBAA4B,GAlExB,EAAKoC,kBAAoB,IAAI5C,GAC7B,EAAK9Y,MAAMC,IAAI,uBAAwB,EAAK8nC,2BAHhD,EA1EkD,+CAIlD,WACI,OAAOl1D,KAAKm1D,gBALkC,IAQlD,SAAe92D,GACX2B,KAAKimB,MAAM,wBAAyB5nB,KATU,+BAelD,SAAkBA,EAAgB6nB,GAW/B,GAVIlmB,KAAKo1D,cACPC,aAAar1D,KAAKo1D,aAClBp1D,KAAKo1D,iBAAc/nD,GAGjBrN,KAAKs1D,eACND,aAAar1D,KAAKs1D,cAClBt1D,KAAKs1D,kBAAejoD,GAGlBhP,EAEE,CACJ2B,KAAKw0D,oBAAqB,EAE1B,IAAIe,EAAOv1D,KAAKw1D,UAChBx1D,KAAK40D,SAASW,QALdv1D,KAAKs1D,aAAehjD,WAAWtS,KAAKy1D,2BAA4B,OA3BpB,4BAuClD,WACI,OAAOz1D,KAAK2qD,gBAxCkC,qBAoDlD,WACE,OAAS3qD,KAAKuP,MAAM,aAAqB6B,WArDO,+BAwDlD,WACI,OAAQpR,KAAKuP,MAAM,sBAAiC6B,WAzDN,qBA4DlD,WACIpR,KAAK01D,WAAU,WACX11D,KAAKozD,2CA9DqC,2BAgFlD,WACIpzD,KAAKmtB,MAAMG,KAAK,uBAAwBttB,KAAKk1D,6BAjFC,iDAoFlD,WACI,IAAIpC,EAAkB3gD,SAASC,uBAAuB,+BAA+B,GACjF0gD,GACAA,EAAgBC,gBAAe,KAvFW,uCA2FlD,WACI/yD,KAAK21D,uCA5FyC,uCA+FlD,SAA0B3C,GACtB,IAAIC,EAAO,2DACX,OAAOD,EAAc,+BAAiCC,EAAOA,IAjGf,sBAoGlD,SAAShsD,GACL,IAAI2uD,EAAmB3uD,EAEvB,GAAI2uD,EAAiBC,UAAW,CAC5B,IAAI3C,EAAO0C,EAAiBC,UAAU,GAEtC,GAAI3C,GAAQA,EAAK4C,SAAU,CACvB,IAAIC,EAAe7C,EAAK4C,SAAS,GAE7BC,IACKA,EAAaC,eACdD,EAAaC,aAAeh2D,KAAKi2D,WAEhCF,EAAaG,eACdH,EAAaG,aAAel2D,KAAKm2D,gBAlHH,oCA2HlD,SAAuBz2D,GACnBM,KAAKwyD,kBAAkBl2D,KAAKoD,EAAEuH,aA5HgB,oCA+HlD,SAAuBzL,GACnB,IACIi4D,EAAOtuD,IAAE6M,KAAKhS,KAAKwyD,mBAAmB,SAAC3tD,GAAD,OAAeA,IAASrJ,EAAKyL,aAEvE,GAAIzL,EAAK6C,MAAO,CACZ,IAAIq1D,EAAkB,GACtBA,EAAgBp3D,KAAKm3D,GAErB,IAAIE,EAAYxuD,IAAEyuD,WAAW5zD,KAAKwyD,kBAAmBkB,GACrDC,EAAU3kD,SAAQ,SAACnK,GACfA,EAAKyH,OAAO,SAAS,SAzIiB,mCAgJlD,SAAsB5M,GAClB,IAAIwzD,EAAOxzD,EAAEuH,UACT0T,EAAQu4C,EAAK5mD,SAASqO,MACtBq4C,EAAc7tD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK6vC,eAEzCse,IACAhzD,KAAKymC,mBAAqB,GAC1BzmC,KAAKymC,mBAAmBnqC,KAAK02D,IAGjCE,EAAK5mD,OAAO,gBAAiBtM,KAAKymC,sBA1JY,kCA6JlD,SAAqB/mC,GACjB,IAAIoC,EAAapC,EAAE2zD,aAAe3zD,EAAE2zD,aAAa,QAAKhmD,EAClDimD,EAAY5zD,EAAEizB,WAAajzB,EAAEizB,WAAW,QAAKtlB,EAC7CsN,EAAQjb,EAAEuH,UAAUqF,SAASqO,MAMjC,GAJI7Y,IACAA,EAAW4yC,aAAc,GAGzB4e,EAAW,CACXtzD,KAAKymC,mBAAqB,GAC1B,IAAI8sB,EAAepuD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK6vC,eAC1C8e,EAAmBruD,IAAE6M,KAAK2I,GAAO,SAAA9V,GAAI,OAAIA,EAAK80B,kBAAoB25B,EAAU35B,oBAE5E45B,IACAA,EAAa7e,aAAc,GAG3B8e,IACAA,EAAiB9e,aAAc,GAGnC10C,KAAKymC,mBAAmBnqC,KAAKk3D,GAGjCxzD,KAAKozD,wCAtLyC,4BAyLlD,SAAe1zD,GACXM,KAAKmzD,sBAAsBzzD,KA1LmB,uBA+LlD,WAAS,WAEDM,KAAKo1D,aACPC,aAAar1D,KAAKo1D,aAGpBp1D,KAAKo1D,YAAc9iD,YAAW,WAC5B,EAAKuiD,6BAA+B,GACpC,EAAKhK,kBACJ,OAxM2C,uBA2MlD,WAEQ7qD,KAAKo1D,cACPC,aAAar1D,KAAKo1D,aAClBp1D,KAAKo1D,iBAAc/nD,GAGrBrN,KAAKo2D,sBAAuB,IAlNkB,wCAqNlD,WACSp2D,KAAKo2D,qBAGNp2D,KAAKw0D,oBAAqB,EAF1Bx0D,KAAK6qD,kBAvNqC,2BA6NlD,SAAcnrD,GACVM,KAAK60D,6BAA+B,KA9NU,wBAkOlD,SAAWn1D,GACPM,KAAK6qD,kBAnOyC,4BAsOlD,SAAenrD,GACXM,KAAKwyD,kBAAoB,GACzBxyD,KAAK60D,6BAA+B,GAEpC,IAAInC,EAAcvtD,IAAEihB,UAAUpmB,KAAK2yD,SAASC,aACvCF,EAAY12D,SACf02D,EAAcvtD,IAAEihB,UAAUpmB,KAAK23B,kBAGjC33B,KAAK60D,6BAA+BnC,IA/OU,gDAkP1C,WAAkC,WAClC1yD,KAAKi1D,WACL9vD,IAAEC,OAAOpF,KAAKi1D,WAAW,SAAAz5D,GAAI,OAAIA,EAAKmD,MAAQ,EAAKg0D,SAASxI,uBApPlB,yBAwP1C,WAAW,WACXmF,EAAatvD,KAAK2yD,SAASxI,kBAC3B92B,EAAU,uCAEVrzB,KAAKymC,oBAAsBzmC,KAAKymC,mBAAmBzqC,OAAS,IAC5Dq3B,EAAUrzB,KAAKymC,mBAAmB,GAAG9M,kBAGzC35B,KAAK6oC,kBAAkBqrB,mBAAmB5E,EAAYj8B,GACjDhtB,MAAK,SAAAwN,GACF,EAAKsZ,MAAMlH,MAAM,mBAAoBurC,GAA4B/f,YACjE,EAAKoZ,eAAc,EAAOh3C,MAE7BvN,OAAM,SAAAulB,SArQmC,2BAwQlD,WAAkF,IAApEgoC,IAAoE,yDAAvClB,EAAuC,uCAC9E3yD,KAAKo2D,sBAAuB,EAC5Bp2D,KAAKw0D,oBAAqB,EAC1Bx0D,KAAK4qD,YAAa,EAClB5qD,KAAKwyD,kBAAoB,GACzBxyD,KAAKimB,MAAM,gBAAiB,CAAE4tC,cAAalB,iBA7QG,GAAS9vD,SAE3Db,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,sCAaAznB,gBADCuW,gBAAM,mBACP,uCAsBAvW,gBADCwnB,gBAAK,CAAEC,QAAS,MACjB,qCAOAznB,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,gCAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,uCAGA/lC,gBADCwnB,gBAAK,CAAEC,QAAS,wBACjB,kCAlDiBsrC,GAAiC,gBAbzD5tD,gBAAU,CACHL,WAAY,CACR8R,wBACAy9C,eACAj9C,gCACA0Q,0BACAjR,8BACA8Q,4BACAqK,eACAzU,oBACAwU,gBAGaghC,cCtHuZ,MCQ5a,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIh1D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,gBAAgB,QAAUP,EAAIgsB,QAAQ,OAAS,IAAI,MAAQ,IAAI,aAAa,OAAO/jB,GAAG,CAAC,OAASjI,EAAI2tD,WAAW,CAACvtD,EAAG,eAAe,CAACG,MAAM,CAAC,yBAAwB,EAAK,cAAcP,EAAIwa,WAAW,OAAS,OAAO,qBAAoB,GAAMvS,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,eAAerjC,EAAIsjC,eAAeviC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,6BAA6BqC,GAAG,SAASkH,GACvf,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmBvE,EAAKA,KAAK86D,sBAAsB,CAACn2D,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,0BAA0BH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,WAAW,MAAQ,GAAG,gBAAgB,gCAAgCH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,OAAO,OAAS,kBAAkB,QAAU,WAAW,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIw2D,mBAAmB,SAAW,QAAQ,QAAU,aAAa,IACpmB,GAAkB,G,sdCuEtB,IAAqBtJ,GAAY,4CAAjC,iD,0BACmB,EAAAvpD,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IAD1F,EAAiC,iHAU/B,8GACQrQ,KAAKua,WAAW0R,SADxB,gDAV+B,+EAc/B,WAAc,WACZ,OAAO,IAAIpG,KAAW,CACpBlnB,IAAK,gCACL+R,SAAU,MACVC,KAAM,WACJ,OAAIxB,GAAOmC,cAAc,EAAKqhD,UACrB,GAGF,EAAKjvD,OAAOzF,IAAZ,gCAAyC,EAAK00D,SAA9C,yBAvBkB,8BA4B/B,WACE,MAAO,CACLhnD,KAAM,QACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKuuD,SAjCa,4BAqC/B,SAAe7uD,GACK,SAAdA,EAAEyT,SAA6C,eAAvBzT,EAAEqL,OAAOmsC,YACnCx3C,EAAE8T,YAAY9S,MAAQhB,EAAEiM,QAvCG,2BA2C/B,SAAcjM,GACM,SAAdA,EAAEyT,UACJzT,EAAEo3C,WAAWz2C,MAAM,oBAAsBX,EAAElE,KAAKg7D,eA7CrB,sBAiD/B,WACEx2D,KAAKuuD,UAlDwB,mBAqD/B,WACEvuD,KAAKimB,MAAM,cAtDkB,GAASpjB,cAIxCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,gCAGA/lC,gBADCuW,gBAAM,aACP,uCAVmB00C,GAAY,gBAXhC9lD,gBAAU,CACTL,WAAY,CACV6R,wBACA+Q,4BACA3J,wBACAT,sBACA2O,8BACAnO,oCACAmK,sCAGiBgjC,cC1EqY,MCOtZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIltD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,+BAA+B,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,cAAc,CAACzgB,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACA,EAAG,KAAK,CAACJ,EAAIuH,GAAG,aAAanH,EAAG,YAAY,CAACG,MAAM,CAAC,WAAaP,EAAI02D,oBAAoB,2BAA0B,EAAK,kBAAiB,EAAK,WAAa,WAAW,YAAc,WAAW,iBAAkB,EAAK,cAAc,OAAO,aAAa,QAAQ,eAAe,OAAO,MAAQ12D,EAAI22D,mBAAmB1uD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI22D,kBAAkBzuD,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,oBAAoB,CAACG,MAAM,CAAC,GAAK,iBAAiB,OAAS,GAAG,MAAQ,GAAG,QAAUP,EAAI42D,wBAAwB,KAAKx2D,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI62D,cAAe,SAAW,QAAQ,QAAU,aAAa,IAC52C,GAAkB,G,aCaTC,GAAb,WAGE,oCACE72D,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,yBAJnD,0HAOS,WAAiC2zD,GAAjC,iGACQ92D,KAAK0D,OAAOK,SAAS,uBAAwB+yD,GADrD,wFAPT,yJAWS,WAA+BC,GAA/B,iGACQ/2D,KAAK0D,OAAOK,SAAS,sBAAuBgzD,GADpD,wFAXT,kJAeS,WAAwBv3D,EAAUulB,GAAlC,iGACQ/kB,KAAK0D,OAAOiL,QAAkCxK,oBAAeyJ,MAA7D,WAAwEpO,EAAxE,iBAA2FulB,GADnG,wFAfT,sJAmBS,WAA0BvlB,EAAUulB,GAApC,iGACQ/kB,KAAK0D,OAAOiL,QAAkCxK,oBAAeyJ,MAA7D,WAAwEpO,EAAxE,mBAA6FulB,GADrG,wFAnBT,sJAuBS,WAA0BvlB,EAAUulB,GAApC,iGACQ/kB,KAAK0D,OAAOiL,QAAkCxK,oBAAeyJ,MAA7D,WAAwEpO,EAAxE,oBAA8FulB,GADtG,wFAvBT,oJA2BS,WAAwBvlB,EAAUulB,GAAlC,iGACQ/kB,KAAK0D,OAAOiL,QAAkCxK,oBAAeyJ,MAA7D,WAAwEpO,EAAxE,kBAA4FulB,GADpG,wFA3BT,wJA+BS,WAA4BA,GAA5B,iGACQ/kB,KAAK0D,OAAOiJ,YAAqD,gBAAiBoY,GAD1F,wFA/BT,wJAmCS,WAA8BA,GAA9B,iGACQ/kB,KAAK0D,OAAOiJ,YAAqD,kBAAmBoY,GAD5F,wFAnCT,sJAuCS,WAA4BA,GAA5B,iGACQ/kB,KAAK0D,OAAOiJ,YAAqD,iBAAkBoY,GAD3F,wFAvCT,iE,sdC6EA,IAAqBiyC,GAAsB,4CA4CvC,iDACI,eA5CG,EAAAznD,MAGH,GAWJ,EAAAknD,oBAAsC,GAEtC,EAAAE,qBAA+B,EAC/B,EAAAD,kBAA4B,EAC5B,EAAAO,oBAA8B,GAC9B,EAAAC,kBAA4B,EAC5B,EAAAC,gBAA+B,GAyB3B,EAAKC,gBAAkB,IAAIP,GAC3B1lC,iBAAmB,KACnB,EAAKxT,WAJT,EA5CuC,kDAwBvC,WACI,OAAO3d,KAAKgmB,YAzBuB,IA4BvC,SAAkB3nB,GACd2B,KAAKimB,MAAM,SAAUjmB,KAAKm3D,gBAAiBn3D,KAAKi3D,uBA7Bb,+BAiCvC,SAAkB54D,EAAgB6nB,GAC1B7nB,IACA2B,KAAKk3D,kBAAoBl3D,KAAKs8C,aAAatgD,OAC3CgE,KAAK8nB,gBAAgBlU,WApCU,2BAwCvC,WACI,OAAS5T,KAAKuP,MAAMwW,mBAAuC3U,WAzCxB,+EAoDvC,2GACQooB,EAAiB,IAAIZ,GAD7B,SAEqCY,EAAe69B,qBAAoB,GAFxE,OAEIr3D,KAAKy2D,oBAFT,uDApDuC,mFAyDvC,WACIz2D,KAAK0gB,eAAgB,IA1Dc,kFA6DvC,qHACQ1gB,KAAK22D,oBADb,oDAKQ9uC,EAAa7nB,KAAK8nB,gBAAgBC,WAClCF,EAAWG,QANnB,oDAUQsvC,EAAwBt3D,KAAKy2D,oBAAoB7yD,QAAO,SAAAlG,GAAC,OAAIA,EAAEW,OAAS,EAAKq4D,qBAAmB,GAEhG12D,KAAKu3D,gBAAkBD,EAAsB3rD,KAZrD,uBAaQ3L,KAAK42D,eAbb,0BAiBQY,EAjBR,2DAiBiFx3D,KAAKu3D,eAjBtF,6BAkBaD,EAAsB3rD,KAlBnC,oBAkBmD3L,KAAKk3D,kBAlBxD,qBAoBQn4C,EAAeC,sBAAQw4C,EAAY,kBACvCz4C,EACC1Y,MAAK,SAAA0Y,GACF,GAAGA,EAAc,CACb,EAAKk4C,oBAAsBK,EAAsB3rD,KACjD,EAAKwrD,gBAAkB,EAAK7a,aAAaj9C,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,qBACtD,IAAIuN,EAA6C,CAC7CC,mBAAoB,EAAKR,gBACzBr+B,UAAW,EAAK49B,mBAGpB,EAAKC,qBAAsB,EAC3B,EAAKS,gBAAgBQ,2BAA2BF,GAC/CrxD,MAAK,SAAAlB,GACF,EAAKyxD,kBAER3iD,SAAS,WACN,EAAK0iD,qBAAsB,SArC3C,iDA7DuC,8DAAS9zD,SAOhDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,oCAoBAxnB,gBADCuW,gBAAM,eACP,uCAjCiBy+C,GAAsB,gBAhB1C7vD,gBAAU,CACPL,WAAY,CACR8R,wBACAoR,iBACAF,0BACAG,kCACAjR,wBACA+a,oBACA7J,8BACArK,gCACAzG,gCACAgR,uBACAxK,oCACAoV,0CAGagiC,cC3FiZ,MCQla,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIj3D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,mCAAmC,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,cAAc,CAACzgB,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACA,EAAG,KAAK,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,gBAAgB,CAAC+H,IAAI,sBAAsB5H,MAAM,CAAC,uBAAsB,EAAK,WAAaP,EAAI83D,sBAAsB,kBAAiB,EAAK,WAAa,WAAW,YAAc,WAAW,iBAAkB,EAAK,cAAc,aAAa,eAAe93D,EAAI+3D,iBAAiB,MAAQ/3D,EAAIwC,gBAAgByF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwC,eAAe0F,GAAQ,mBAAqBlI,EAAIg4D,qBAAqB,CAAC53D,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,oBAAoB,CAACG,MAAM,CAAC,GAAK,iBAAiB,OAAS,GAAG,MAAQ,GAAG,QAAUP,EAAIi4D,uBAAuB,KAAK73D,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI62D,cAAe,SAAW,QAAQ,QAAU,aAAa,IACp7C,GAAkB,G,sdC+FtB,IAAqBqB,GAAyB,4CAsD1C,iDACI,eAtDG,EAAA1oD,MAIH,GAcJ,EAAArD,QAAuB,GAMvB,EAAA2rD,sBAAoC,IAAIhyC,KAAW,IAEnD,EAAAmyC,oBAA8B,EAC9B,EAAAz1D,eAAsB,KACtB,EAAA20D,kBAA4B,EAC5B,EAAAC,gBAA+B,GA0B3B,EAAKC,gBAAkB,IAAIP,GAC3B1lC,iBAAmB,KACnB,EAAKxT,WAJT,EAtD0C,sDAqB1C,WACI,OAAO3d,KAAKkM,UAtB0B,yBAiC1C,WACI,OAAOlM,KAAKgmB,YAlC0B,IAqC1C,SAAkB3nB,GACd2B,KAAKimB,MAAM,SAAUjmB,KAAKm3D,gBAAiBn3D,KAAKuC,kBAtCV,+BA0C1C,SAAkBlE,EAAgB6nB,GAC1B7nB,IACA2B,KAAKk3D,kBAAoBl3D,KAAKs8C,aAAatgD,OAC3CgE,KAAK8nB,gBAAgBlU,QACrB5T,KAAK2d,cA9C6B,2BAkD1C,WACI,OAAS3d,KAAKuP,MAAMwW,mBAAuC3U,WAnDrB,+EA8D1C,2GACQd,EAAgB,IAAI/E,GAD5B,SAEyB+E,EAAcrE,WAAWjM,KAAKgM,UAFvD,OAEIhM,KAAKkM,QAFT,OAGIlM,KAAK63D,sBAAwB,IAAIhyC,KAAW,CACxClnB,IAAK,CAAC,aAAc,aACpBwE,MAAO,CACP0M,KAAM,QACNrU,KAAMwE,KAAKk4D,mBAEfj9C,UAAU,EACV6K,SAAU,KAVd,gDA9D0C,mFA4E1C,WACI9lB,KAAK0gB,eAAgB,IA7EiB,gCAgF1C,SAAmBhhB,GACf,IAAIM,KAAKkM,QAAQxB,MAAK,SAAAjN,GAAC,OAAIA,GAAKiC,EAAEiM,QAAO,CACrC,IAAIwsD,EAAoB,CACpBC,SAAU,GACVvsD,SAAU7L,KAAKgM,SACf8sB,UAAW94B,KAAKq4D,cAAcv/B,UAC9Bje,YAAa7a,KAAKq4D,cAAcx9C,YAChCxO,WAAY3M,EAAEiM,KACdkyB,aAAc,GAElBn+B,EAAEioB,WAAawwC,EACfn4D,KAAKkM,QAAQ5P,KAAK67D,GAClBn4D,KAAKuC,eAAiB41D,KA5FY,8BAgG1C,SAAiBtzD,GACb,IAAIhI,EAAS,GAKb,OAJIgI,GAAQA,EAAKwH,aACbxP,EAAS,GAAH,OAAMgI,EAAKwH,WAAX,0BAAuCxH,EAAKgW,cAG/Che,IAtG+B,kFAyG1C,qHACQmD,KAAKg4D,mBADb,oDAKQnwC,EAAa7nB,KAAK8nB,gBAAgBC,WAClCF,EAAWG,QANnB,oDAUQswC,EAAYt4D,KAAKkM,QAAQtI,QAAO,SAAAnG,GAAC,OAAIA,EAAE26D,UAAY,EAAKC,cAAcD,YAAU,GAChFp4D,KAAKq4D,cAAcD,UAAYp4D,KAAKuC,eAAe61D,SAX3D,uBAYQp4D,KAAK42D,eAZb,0BAgBQY,EAhBR,+DAgBqFc,EAAUjsD,WAhB/F,6BAiBarM,KAAKuC,eAAe8J,WAjBjC,oBAiBuDrM,KAAKk3D,kBAjB5D,qBAmBQn4C,EAAeC,sBAAQw4C,EAAY,sBACvCz4C,EACC1Y,MAAK,SAAA0Y,GACF,GAAGA,EAAc,CACb,EAAKo4C,gBAAkB,EAAK7a,aAAaj9C,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,qBACtD,IAAIuN,EAAgD,CAChDC,mBAAoB,EAAKR,gBACzB9qD,WAAY,EAAK9J,eAAe8J,WAChCysB,UAAW,EAAKv2B,eAAeu2B,WAGnC,EAAKk/B,oBAAqB,EAC1B,EAAKZ,gBAAgBmB,yBAAyBb,GAC7CrxD,MAAK,SAAAlB,GACF,EAAKyxD,kBAER3iD,SAAS,WACN,EAAK+jD,oBAAqB,SApC1C,iDAzG0C,8DAASn1D,SAQnDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,mBACD,gCAGAxnB,gBADCwnB,mBACD,oCAGAxnB,gBADCwnB,mBACD,qCAyBAxnB,gBADCuW,gBAAM,eACP,uCA1CiB0/C,GAAyB,gBAjB7C9wD,gBAAU,CACPL,WAAY,CACR8R,wBACAoR,iBACAF,0BACAG,kCACAjR,wBACA+a,oBACA1a,8BACA6Q,8BACArK,gCACAzG,gCACAgR,uBACAxK,oCACAoV,0CAGaijC,Q,GAAAA,MChGqZ,MCQta,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCoPf,IAAM3pB,GAASW,EAAQ,QAuBFupB,GAAmB,+CAuFtC,iDACE,eAvFF,EAAAjpD,MAEI,GAkCI,EAAAkpD,iBAAqCj0D,uBAAUnC,EAAkBc,GAEzE,EAAA4nD,uBAA+B,GAC/B,EAAA2N,UAA4C,GAC5C,EAAAvN,kBAAoD,GACpD,EAAAxzB,gBAAuC,GAEvC,EAAA1B,SAAmD,CACjD,CAAE53B,MAAO+hC,GAAgBu4B,QAAShtD,KAAMy0B,GAAgBu4B,SACxD,CAAEt6D,MAAO+hC,GAAgBw4B,YAAajtD,KAAMy0B,GAAgBw4B,aAC5D,CAAEv6D,MAAO+hC,GAAgBy4B,QAASltD,KAAMy0B,GAAgBy4B,UAE1D,EAAAC,iBAAmB,CACjBxJ,WAAY,GACZyJ,gBAAiB34B,GAAgBu4B,SAOnC,EAAAvO,qBAA+B,EAC/B,EAAA4O,kBAA0B,GAE1B,EAAAC,eAAgC,CAC9B,oBACA,cACA,gBACA,YACA,QACA,WAGF,EAAAC,wBAAyC,CACvC,iBACA,wBACA,oBACA,2BACA,eACA,cACA,gBACA,eACA,qBACA,kBACA,gBACA,aACA,mBACA,iBAkQF,EAAAC,iBAA0B,GA6ClB,EAAAC,eAAyB,EAEjC,EAAAzO,cAAwB,GACxB,EAAAC,YAAsB,EACtB,EAAAyO,gBAA0B,EAC1B,EAAAC,kBAA0C,IAAIj9C,IAC9C,EAAAk9C,0BAA2C,EAC3C,EAAAC,gBAA0B,GAUlB,EAAAC,uBAAiC,EAgFzC,EAAAC,qBAA+B,EAC/B,EAAAC,mBAA6B,EAC7B,EAAAC,YAAsB,EACtB,EAAAC,cAAwB,EAwXhB,EAAA53C,gBAAsC,IAAIqC,GAajC,EAAAw1C,kBAA4B,gBAC5B,EAAAC,kBAA4B,gBA4BrC,EAAA7P,cAAqB,GAC7B,EAAAvkD,aAAuB,GACvB,EAAAskD,cAAwB,EACxB,EAAAM,oBAA8B,EAC9B,EAAAvoC,kBAA4B,EAC5B,EAAAgpC,qBAA+B,EAC/B,EAAAE,sBAAgC,EAChC,EAAAG,yBAAmC,EACnC,EAAAb,gBAAuD,KACvD,EAAAC,qBAA+B,GAzzB7B,EAAK/mD,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IACrD,EAAKw4B,kBAAoB,IAAI5C,GAC7B,EAAK//B,oBAAsB,IAAI7B,EAAoB,EAAKgM,QACxD,EAAKsV,mBAAqB,IAAInC,GALhC,EAvFsC,mDAsBtC,WACE,OAAOxjB,KAAKg6D,iBAvBwB,4BA0BtC,WACE,OAAOh6D,KAAKi6D,mBA3BwB,sBAiCtC,WACE,OAAOj6D,KAAK+rB,UAlCwB,wFA+FtC,WAAwBrsB,EAAaiM,EAAcwiB,GAAnD,yGACMyiC,EAAoBlxD,EACpBswB,EAAerkB,EACfuuD,OAA6C7sD,EAC7C8sD,EAAgBh1D,IAAEuF,KAAKkmD,GAAmB,SAAA/rD,GAAI,OAAI,EAAKq0D,wBAAwBphD,SAASjT,OAEzFs1D,EANL,uBAOQ1C,EAAKz3D,KAAKkqD,cAAcC,kBAPhC,SAQ0BnqD,KAAKo6D,8BAA8B3C,GAR7D,OAQIyC,EARJ,cAWEtJ,EAAkB5hD,SAAQ,SAAAnK,GACxB,IAAIw1D,EAAa,EAAKC,qBAAqBz1D,EAAMq1D,GAEjDlqC,EAAeA,EAAatY,MAAM7S,GAAMf,KAAKu2D,MAG/ClsC,EAAS6B,GAjBX,iDA/FsC,gGAmHtC,SAAqBuqC,EAAkBL,GAA2C,WAC5Er9D,EAAS,GACb,GAAgB,gBAAb09D,EAED19D,EAASmD,KAAKkqD,cAAc18C,eAEzB,GAAgB,iBAAb+sD,EACN19D,EAASmD,KAAKuC,eAAeqJ,gBAE1B,GAAgB,cAAb2uD,EACN19D,EAASmD,KAAKuC,eAAesY,iBAE1B,GAAgB,gBAAb0/C,EAEJ19D,EAD4C,MAA1CmD,KAAKkqD,cAAcsQ,oBACZ,QAGAx6D,KAAKkqD,cAAcuQ,uBAG3B,GAAgB,kBAAbF,EACN19D,EAASyxC,GAAOtuC,KAAKkqD,cAAcwQ,aAAa3jD,OAAO,mBAEpD,GAAgB,kBAAbwjD,EACN19D,EAASyxC,GAAOtuC,KAAKkqD,cAAcyQ,aAAa5jD,OAAO,mBAEpD,GAAgB,kBAAbwjD,EACFL,GAAiBA,EAAcU,aACjC/9D,EAAUmD,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcY,mBAGtE,GAAgB,iBAAbP,EACFL,GAAiBA,EAAcU,aACjC/9D,EAAUmD,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcU,kBAGtE,GAAgB,uBAAbL,EACN,GAAIL,GAAiBA,EAAca,aAAeb,EAAcY,YAE9D,GAAGZ,EAAcc,UACdd,EAAcY,YAAcZ,EAAcc,SAAY,EACrDn+D,EAAS,oBAER,CACH,IAAIo+D,EAAUf,EAAcY,YAAcZ,EAAca,YAEtDl+D,EADEo+D,EAAU,EACFj7D,KAAK01C,SAASC,QAAgBklB,iBAAiBI,GAGhD,qBAKbp+D,EAAS,yBAGR,GAAgB,oBAAb09D,EACN,GAAIL,GAAiBA,EAAcc,UAAYd,EAAcY,YAAa,CACxE,IAAIG,EAAUf,EAAcY,YAAcZ,EAAcc,SAEtDn+D,EADEo+D,EAAU,EACFj7D,KAAK01C,SAASC,QAAgBklB,iBAAiBI,GAGhD,kBAKXp+D,EAAS,sBAGR,GAAgB,gBAAb09D,EACHL,IACDr9D,EAASq9D,EAAchuB,UACrBguB,EAAchuB,UACZ,SAGH,GAAgB,qBAAbquB,EACN19D,EAAUmD,KAAK01C,SAASC,QAAgBklB,iBAAiB76D,KAAKkqD,cAAcgR,oBAEzE,GAAgB,kBAAbX,EAEJ19D,EADEq9D,GAAiBA,EAAca,YACvB/6D,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAca,aAG9D,yBAGR,GAAgB,eAAbR,EAEJ19D,EADEq9D,GAAiBA,EAAcc,SACvBh7D,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcc,UAG9D,sBAGR,GAAgB,mBAAbT,EACHL,IACDr9D,EAASq9D,EAAciB,aACrBjB,EAAciB,aAAaC,WACzB,oBAGH,GAAgB,0BAAbb,EACHL,IACDr9D,EAASq9D,EAAcmB,qBAAuBnB,EAAcmB,oBAAsB,EAC/Er7D,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcmB,qBAC5D,mBAGH,GAAgB,sBAAbd,EACHL,IACDr9D,EAASq9D,EAAcoB,gBACrBpB,EAAcoB,gBAAgBF,WAC5B,uBAGH,GAAgB,6BAAbb,EACHL,IACDr9D,EAASq9D,EAAcqB,wBAA0BrB,EAAcqB,uBAAyB,EACrFv7D,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcqB,wBAC5D,sBAGH,GAAgB,oBAAbhB,EACN19D,EAASmD,KAAKkqD,cAAcsR,mBAEzB,GAAgB,qBAAbjB,EAAgC,CACtC,IAAIlmC,EAAMlvB,IAAEvB,OAAO5D,KAAK04D,WAAW,SAAA58D,GAAC,OAAIA,EAAE0/D,gBAAkB,EAAKtR,cAAcsR,iBAC3EC,EAASt2D,IAAEu2D,MAAMrnC,GAAK,SAAAv4B,GAAC,OAAIA,EAAEo/D,iBAAeE,WAEhDv+D,EAAUmD,KAAK01C,SAASC,QAAgBklB,iBAAiBY,OAEtC,iBAAblB,EACHL,IACDr9D,EAASq9D,EAAcyB,WACtB37D,KAAK01C,SAASC,QAAgBklB,iBAAiBX,EAAcyB,YAC5D,IAGgB,qBAAbpB,EACc,MAAjBL,IAGEr9D,EAFDq9D,EAAc0B,gBACZ1B,EAAc0B,eAAe5/D,OAAS,EAC9Bk+D,EAAc0B,eAAev8D,KAAI,SAAA5B,GAAC,gBAAOA,EAAE6pD,eAAT,aAA4B7pD,EAAEod,gBAAe/W,KAAK,UAOtF,kBAIO,kBAAby2D,GACc,MAAjBL,IAGEr9D,EAFDq9D,EAAc2B,aACZ3B,EAAc2B,YAAY7/D,OAAS,EAC3Bk+D,EAAc2B,YAAYx8D,KAAI,SAAA5B,GAAC,gBAAOA,EAAE6pD,eAAT,aAA4B7pD,EAAEod,gBAAe/W,KAAK,UAOnF,kBAKf,OAAOjH,IAhS6B,oGAmStC,WAAoCyyD,GAApC,qGACEtvD,KAAKoqD,qBAAsB,EAD7B,SAEqBpqD,KAAK0D,OAAOiL,QAAyBxK,oBAAe23D,IAAI97D,KAAK+7D,kBAAkBzM,IAC3FjpD,MAAK,SAAAxJ,GACJ,OAAOA,KAERyJ,OAAM,SAAAulB,OACN5X,SAAQ,WACP,EAAKm2C,qBAAsB,KARrC,cAEMvtD,EAFN,yBAUSA,GAVT,gDAnSsC,gFAgTtC,WACE,OAAQmD,KAAKuP,MAAMysD,qBAA6BzsD,MAAMyhC,WAAW5/B,WAjT7B,+BAoTtC,WACE,OAAOpR,KAAKgxC,WAAWgO,gBAAgB77C,UArTH,6BAwT/B,SAAgBu1D,GACrB,IAAIuD,EAAUvD,EAAUr5D,KAAI,SAAAo4D,GAC1B,MAAO,CACL5nD,KAAM,SACNlR,IAAK84D,EAAGtN,kBACR3uD,KAAMi8D,MAIVz3D,KAAKk8D,oBAAoB5/D,KAAK2/D,GAG3Bj8D,KAAKm8D,uBACNn8D,KAAKo8D,oBAAoB1D,KArUS,iCAyUtC,SAAoB2D,GAAa,WAC/BA,EAAOrtD,SAAQ,SAAAyoD,GACb,IAAIpX,EAAMl7C,IAAEm3D,UAAU,EAAKC,iBAAgB,SAAC/lD,GAAD,OAAaihD,EAAGtN,oBAAsB3zC,EAAE2zC,sBACxE,GAAR9J,IACD,EAAKkc,gBAAgBlc,GAAOoX,MAIhCz3D,KAAKu8D,gBAAkBp3D,IAAEq3D,MAAMx8D,KAAKu8D,gBAAiBF,GAErDr8D,KAAKy8D,4BAA4Bz8D,KAAKm8D,yBAnVF,qCAuVtC,WAAqC,WACnC,MAAO,CACLx9D,IAAK,oBACL+R,SAAU,MACVgsD,SAAU18D,KAAK28D,eACfC,UAAW58D,KAAK68D,YAChBC,OAAQ98D,KAAK+8D,SACbpsD,KAAM,WAGJ,OAFA,EAAKqoD,kBAAoB,EAAKx2D,iBAE3B,EAAK25D,uBACN,EAAKzD,UAAY,EAAK6D,gBACf73D,QAAQ5E,QAAQ,EAAKq5D,mBAGrB,EAAKz1D,OAAOzF,IAAoC,EAAK++D,WACzD32D,MAAK,SAAAxJ,GAEJ,OADA,EAAK67D,UAAY77D,EACVA,MAKfggB,OAAQ,SAACle,EAAK+d,GACZ,OAAO,EAAKugD,cAAct+D,EAAK+d,OA/WC,oFAoXtC,WAAoBld,EAAU09D,GAA9B,qGACMC,EAAgBn9D,KAAKuC,eAD3B,SAEevC,KAAK0D,OAAOiL,QAAQxK,oBAAeyJ,MAAnC,gCAAmEpO,EAAnE,YAAiF09D,GAC3F72D,MAAK,SAAAxJ,GACJ,OAAOA,KAERyJ,OAAM,SAAAnB,GACLgjB,oBAAM,sCAAD,OAAuCg1C,EAAe7V,eAAtD,KAAyE,SAE9E,IAAIqL,EAAW,EAAK+F,UAAU90D,QAAO,SAAA6zD,GAAE,OAAIA,EAAGtN,mBAAqB,EAAK2O,iBAAiBxJ,cAAY,GAErG,OADAqD,EAASyK,QAAU,EAAKtE,iBAAiBC,gBAClCpG,KAXb,wFApXsC,iFA4YtC,WACE,MAAO,qBAAP,OAA4B3yD,KAAKwC,iBAAjC,iBA7YoC,+BAgZ9B,SAAkB8sD,GACxB,MAAO,qCAAP,OAA4CtvD,KAAKuC,eAAe86D,aAAhE,uBAA2F/N,KAjZvD,+BAsZtC,WAGEtvD,KAAKgxC,WAAW/G,iBACbjqC,KAAKu8D,iBAAmBv8D,KAAKu8D,gBAAgBvgE,OAAS,GACvDgE,KAAKs9D,aAGPt9D,KAAKm7B,kBACLn7B,KAAKy5D,uBAAwB,IA/ZO,iCAka9B,WAAmB,WACzB,MAAO,CACL,CACE9tD,KAAM,YACNgP,MAAO,GAAF,uBACA3a,KAAKu9D,sBAAsBl+D,KAAI,SAAAL,GAAC,OAAI,EAAKw+D,mBAAmBx+D,OAD5D,CAEH,CACE2M,KAAM,OACNgP,MAAO,GAAF,uBACA3a,KAAKy9D,qBAAqBp+D,KAAI,SAAAL,GAAC,OAAI,EAAKw+D,mBAAmBx+D,OAD3D,CAEH,CACE2M,KAAM,cACNksB,YAAa,kBAAM,EAAK6lC,YAAY,cAM9C19D,KAAK29D,uBACL39D,KAAK49D,8BACL59D,KAAK69D,oCAtb6B,6BA0btC,WACM79D,KAAKuP,MAAMysD,sBACZh8D,KAAKuP,MAAMysD,qBAA6B7gC,oBA5bP,0BAgctC,WACMn7B,KAAKgxC,WAAWqd,eAClBruD,KAAKgxC,WAAWh3B,iBAlckB,sBAsctC,SAASta,GACPM,KAAK89D,kCAvc+B,yBA0ctC,SAAYp+D,EAAQ6N,GAClBvN,KAAK89D,kCA3c+B,4BA8ctC,SAAejhE,GAITmD,KAAKwC,mBAAqBxC,KAAKg5D,kBACjCh5D,KAAKm7B,mBAELn7B,KAAKimB,MAAM,oBAAqBjmB,KAAK04D,WAClC14D,KAAKy4D,kBAAoBz4D,KAAKy4D,iBAAiBsF,cAAgB/9D,KAAK04D,WACrE14D,KAAKwhB,KAAKxhB,KAAKy4D,iBAAiBsF,aAAc,YAAY/9D,KAAK04D,cAvd/B,2CA4dtC,WACE14D,KAAKmtB,MAAMlH,MAAM,mBAAoBurC,GAA4BwM,mBAC9Dh+D,KAAKy4D,kBAAoBz4D,KAAKy4D,iBAAiBsF,cAAgB/9D,KAAK04D,WACnE14D,KAAKwhB,KAAKxhB,KAAKy4D,iBAAiBsF,aAAc,YAAY/9D,KAAK04D,aA/d/B,kCAyetC,SAAqBuF,EAAoBC,EAAgBC,EAAgBhwC,GACvE,GAAG8vC,EACD,IAAI,IAAIniE,EAAIqiE,EAASriE,GAAKoiE,EAAQpiE,IAChCqyB,EAASryB,QAIX,IAAQA,EAAIoiE,EAAQpiE,GAAKqiE,EAASriE,IAChCqyB,EAASryB,KAjfuB,8BAqftC,SAAiB4D,GAAM,WACjB0+D,GAAW,EACXC,GAAgB,EACpB,GAAuB,GAAnB3+D,EAAE2W,MAAM4hC,SAAiC,aAAhBv4C,EAAE2W,MAAMxG,MAAwB7P,KAAKq5D,eAkGvDr5D,KAAKq5D,gBAAqC,GAAnB35D,EAAE2W,MAAM4hC,UACpCj4C,KAAK45D,YAAc,EACnBwE,GAAW,EACXp+D,KAAKq5D,gBAAiB,EACtBr5D,KAAKu5D,yBAA2B,KAChCv5D,KAAKs5D,kBAAkBgF,QACvBt+D,KAAKw5D,gBAAkB,GACvBx5D,KAAK05D,qBAAuB,EAC5B15D,KAAK25D,mBAAqB,EAC1B35D,KAAK65D,cAAe,OA3GyD,CACjF,IAAKn6D,EAAEkuB,IACH,QAG4B,GAA7B5tB,KAAK05D,qBACN15D,KAAK05D,oBAAsBh6D,EAAEkuB,IAAIF,UACH,GAA3B1tB,KAAK25D,oBACN35D,KAAK25D,kBAAoBj6D,EAAEkuB,IAAIF,aAIH,GAA3B1tB,KAAK25D,oBACH35D,KAAK05D,qBAAuBh6D,EAAEkuB,IAAIF,SACnC0wC,GAAW,EAELp+D,KAAK05D,oBAAsB15D,KAAK25D,kBAEpCyE,EADCp+D,KAAK25D,kBAAoBj6D,EAAEkuB,IAAIF,SAO5B1tB,KAAK05D,oBAAsB15D,KAAK25D,oBACnC35D,KAAK25D,kBAAoBj6D,EAAEkuB,IAAIF,SAChC0wC,GAAW,EAELp+D,KAAK25D,kBAAoBj6D,EAAEkuB,IAAIF,WACrC0wC,GAAW,KAKjBp+D,KAAK25D,kBAAoBj6D,EAAEkuB,IAAIF,UAIjC1tB,KAAKq5D,gBAAiB,EACtBgF,EAAiBr+D,KAAK05D,oBAAsB15D,KAAK25D,kBACjD,IAAIwE,EAAUI,KAAKC,IAAIx+D,KAAK25D,kBAAmB35D,KAAK05D,qBAChDwE,EAASK,KAAKE,IAAIz+D,KAAK25D,kBAAmB35D,KAAK05D,sBAE5B,GAApB15D,KAAK45D,aACNyE,EAAiBr+D,KAAK45D,WAAa55D,KAAK25D,kBACxCwE,EAAWI,KAAKC,IAAIx+D,KAAK25D,kBAAmB35D,KAAK45D,YACjDsE,EAASK,KAAKE,IAAIz+D,KAAK25D,kBAAmB35D,KAAK45D,aAI9C55D,KAAK45D,YAAc55D,KAAK25D,oBAC3B35D,KAAK0+D,qBAAqBL,EAAeH,EAAQC,GAAS,SAACriE,GACxD,GAAGA,GAAK,EAAK89D,YAAewE,GAAY,EAAKvE,aAAe,CAC3D,IAAI7sC,EAAyBttB,EAAEuH,UAAUgmB,qBACrC0xC,GAAQ,EACRC,EAASl/D,EAAEuH,UAAU43D,iBAAiB/iE,GACtCgjE,EAAgB,EAAKxF,kBAAkBr7D,IAAI2gE,GAa/C,GAVsC,MAAjC,EAAKrF,2BACJvsC,EAAgBlV,SAAS8mD,GACzB,EAAKrF,0BAA2B,EAGhC,EAAKA,0BAA2B,GAKnC6E,EAAU,CACX,IAAIW,EAAcr/D,EAAEuH,UAAU43D,iBAAiB,EAAKnF,qBAChDsF,EAAW,EAAK1F,kBAAkBr7D,IAAI8gE,GAE1CJ,GAASK,OAIPL,EADkB,MAAjBG,GACQA,EAGD,EAAKvF,yBAIjB,EAAK0F,gBAAgBv/D,EAAEuH,UAAW23D,EAAQD,OAK5C3+D,KAAK65D,eADJuE,EAOHA,GAAW,EACXp+D,KAAK45D,WAAa55D,KAAK25D,mBAezB35D,KAAKk/D,2BAA2Bx/D,KAvmBI,wCA0mBtC,SAA2BA,GACzB,GAAiB,SAAdA,EAAEyT,SAAsBzT,EAAErB,QAAUqB,EAAElE,KAAK0/D,eAAiBx7D,EAAEkuB,IAAIuxC,WACnE,GAAkB,aAAfz/D,EAAE0/D,WACH,GAAG1/D,EAAEkuB,IAAK,CACR,IAAIyxC,EAAoBl6D,IAAEm6D,IAAI5/D,EAAEuH,UAAU25C,sBAAsBvhD,KAAI,SAACnB,GAAD,OAAYA,EAAEg9D,kBAClFx7D,EAAE8T,YAAY9S,MAASV,KAAK01C,SAASC,QAAgB7Y,SAASuiC,SAIhE3/D,EAAE8T,YAAY9S,MAAQ,KAnnBU,6BAwnBtC,SAAgBuG,EAAgB23D,EAAgBW,GAC1CA,EACAt4D,EAAUu4D,WAAW,CAACZ,IAAS,GAG/B33D,EAAUw4D,aAAa,CAACb,IAAS,GAGrC5+D,KAAKs5D,kBAAkBiG,IAAIX,EAAQW,GACnCv/D,KAAKw5D,gBAAkBoF,IAjoBa,qCAooBtC,SAAwBl/D,MApoBc,gCA8oBtC,SAAmBA,GAAM,WACvB,GAAiB,YAAbA,EAAEqnD,QAAwBrnD,EAAEkuB,KAA0B,SAAlBluB,EAAEkuB,IAAIza,UAAuBnT,KAAKq5D,eAAgB,CACxF,IAAIqG,GAAoB,EACpB1yC,EAAyBttB,EAAEuH,UAAUgmB,qBAErCD,EAAgBlV,SAASpY,EAAEkuB,IAAIjvB,OACjC+gE,GAAW,GAGbhgE,EAAEuH,UAAUu4D,WAAW,CAAC9/D,EAAEkuB,IAAIjvB,KAAM+gE,GACpChgE,EAAEib,MAAQ3a,KAAK2/D,sBAEY,cAAvBjgE,EAAEqL,OAAOmsC,WACXx3C,EAAEib,MAAMre,KAAK,CACXqP,KAAM,mBACNksB,YAAa,kBAAM,EAAK+nC,wBAAwBlgE,EAAEkuB,IAAIpyB,KAAKgS,cAG7D9N,EAAEib,MAAQjb,EAAEib,MAAMtV,OAAOrF,KAAK6/D,gCAAgCngE,KAC9B,mBAAvBA,EAAEqL,OAAOmsC,WAClBx3C,EAAEib,MAAMre,KAAK,CACXqP,KAAM,qBACNksB,YAAa,kBAAM,EAAKioC,iBAAiBpgE,EAAEkuB,IAAIpyB,SAInDwE,KAAKo5D,eAAgB,EACrBp5D,KAAK+/D,qBAGPrgE,EAAE2W,MAAMuzB,mBA5qB4B,8BA+qB9B,SAAiB+oB,GACvB3yD,KAAK+qD,uBAAyB4H,EAASxI,kBACvCnqD,KAAKgrD,qBAAsB,IAjrBS,iCAorB9B,WACN,OAAOhrD,KAAKk8B,WACTt4B,QAAO,SAAA5E,GAAC,OAA8B,OAA1BA,EAAEqtC,uBACdhjB,MAAK,SAAC9b,EAAGqE,GACR,OAAIrE,EAAE8+B,sBAAwBz6B,EAAEy6B,oBAA4B,EAC9B,OAA1B9+B,EAAE8+B,oBAAqC,EACb,OAA1Bz6B,EAAEy6B,qBACC9+B,EAAE8+B,oBAAsBz6B,EAAEy6B,qBADW,EACgB,OA3rB5B,gCA+rB9B,WACN,OAAOrsC,KAAKk8B,WAAWt4B,QAAO,SAAA5E,GAAC,OAA8B,OAA1BA,EAAEqtC,uBAA8BhjB,MAAK,SAAC9b,EAAGqE,GAAJ,OAAUrE,EAAE6+B,WAAax6B,EAAEw6B,gBAhsB/D,gCAmsB9B,SAAmB+H,GAAuB,WAChD,MAAO,CACLxoC,KAAMwoC,EAAUhY,UAChBstB,OAAQtV,EAAUhI,OAClBmH,SAAU,kBACVzb,YAAa,kBAAM,EAAK6lC,YAAYvpB,EAAU/X,iBAxsBZ,yBA4sB9B,SAAY4jC,GAClBhgE,KAAKimB,MAAM,eAAgB+5C,KA7sBS,kCAgtB9B,WAKN,IAL0B,WACtBC,GAAW,EACX3jB,EAA6Bt8C,KAAKuP,MAAMysD,qBAA6BzsD,MAAMyhC,WAC1E5/B,SAASwvC,sBAEN9kD,EAAI,EAAGA,EAAIwgD,EAAatgD,OAAQF,IAAK,CAC3C,IAAI8xB,EAAM0uB,EAAaxgD,GACvB,GAAmB,GAAhB8xB,EAAIsyC,SAAkB,CACrBD,GAAW,EACX,MAGDA,GAAW,EAGhB,OAAIA,EACO,CACLt0D,KAAM,qBACN2nC,SAAU,kBACVzb,YAAa,kBAAM,EAAK5R,MAAM,kBAAkB,KAI3C,CACLta,KAAM,uBACN2nC,SAAU,kBACVzb,YAAa,kBAAM,EAAK5R,MAAM,kBAAkB,OA1uBlB,yCA+uB9B,WAA2B,WACjC,MAAO,CACLta,KAAM,uBACN2nC,SAAU,kBACVzb,YAAa,WACX,EAAKsoC,4BApvB2B,4CAyvB9B,WAA8B,WACpC,MAAO,CACLx0D,KAAM,qBACN2nC,SAAU,kBACVzb,YAAa,WACX,EAAK0gC,+BA9vB2B,6CAmwB9B,SAAgC74D,GAAM,WACxCib,EAAQ,GAERylD,EAAsD,CACxDv0D,SAAU7L,KAAKgM,SACfyB,QAAU/N,EAAEkuB,IAAIpyB,KAAKiS,QACrBoN,YAAa7a,KAAKuC,eAAesY,YACjCyM,gBAAgB,EAChB1C,kBAAkB,GAGhBy7C,EAAqB,CACvB10D,KAAM,2BAA6B3L,KAAKuC,eAAesY,YACvD6uC,UAAW,YACXpW,SAAU,kBACVzb,YAAa,kBAAM,EAAKyoC,8BAA8BF,KAIpDG,EAAuD,CACzD10D,SAAU7L,KAAKgM,SACfyB,QAAU/N,EAAEkuB,IAAIpyB,KAAKiS,QACrBoN,YAAa7a,KAAKuC,eAAesY,YACjCyM,gBAAgB,EAChB1C,kBAAkB,GAGhB47C,EAAsB,CACxB70D,KAAM,+BAAiC3L,KAAKuC,eAAesY,YAC3D6uC,UAAW,WACXpW,SAAU,kBACVzb,YAAa,kBAAM,EAAKyoC,8BAA8BC,KAGpDE,EAAwD,CAC1D50D,SAAU7L,KAAKgM,SACfyB,QAAU/N,EAAEkuB,IAAIpyB,KAAKiS,QACrBoN,YAAa7a,KAAKuC,eAAesY,YACjCyM,gBAAgB,EAChB1C,kBAAkB,GAGhB87C,EAAuB,CACzB/0D,KAAM,wBACN+9C,UAAW,WACXpW,SAAU,kBACVzb,YAAa,kBAAM,EAAKyoC,8BAA8BG,KAqBxD,OAlBmC,MAAhC/gE,EAAEkuB,IAAIpyB,KAAKmlE,mBACZhmD,EAAMre,KAAK+jE,GACX1lD,EAAMre,KAAKkkE,GACX7lD,EAAMre,KAAKokE,IAELhhE,EAAEkuB,IAAIpyB,KAAKolE,uBACjBjmD,EAAMre,KAAK+jE,GACX1lD,EAAMre,KAAKkkE,IAEL9gE,EAAEkuB,IAAIpyB,KAAKmlE,mBACjBhmD,EAAMre,KAAKkkE,GACX7lD,EAAMre,KAAKokE,KAGX/lD,EAAMre,KAAK+jE,GACX1lD,EAAMre,KAAKokE,IAGN/lD,IAt0B6B,2CAy0B9B,SAA8BkJ,GAAiD,WACrF7jB,KAAK2lB,mBAAmB26C,8BAA8Bz8C,GACnDxd,MAAK,SAAAxJ,GACJ,EAAKs+B,qBAENlnB,SAAQ,WACP,EAAKkZ,MAAMlH,MAAM,mBAAoBurC,GAA4BwM,wBA/0BjC,mCAm1B9B,WACNh+D,KAAKmrD,kBAAsBnrD,KAAKuP,MAAMysD,qBAA6BzsD,MAAMyhC,WACtE5/B,SAASwvC,sBACZ5gD,KAAKkrD,sBAAuB,IAt1BQ,sCAy1B9B,WACNlrD,KAAKmrD,kBAAsBnrD,KAAKuP,MAAMysD,qBAA6BzsD,MAAMyhC,WACtE5/B,SAASwvC,sBACZ5gD,KAAKqrD,yBAA0B,IA51BK,qCAg2B9B,SAAwB5nC,GAAiB,WAC/CzjB,KAAK2lB,mBAAmBiC,2BAA2B5nB,KAAKuC,eAAesJ,SAAU4X,GAC9Epd,MAAK,SAAAxJ,GACJ,EAAKolB,gBAAkBplB,EACvB,EAAKolB,gBAAgBuC,OAAS,CAC5B3Y,SAAU,EAAKtJ,eAAesJ,SAC9BD,WAAY,EAAKrJ,eAAeqJ,YAElC,EAAKoW,kBAAmB,OAx2BQ,2BA+2B9B,SAAc4L,GACpB,IAAIizC,EAAa,gBAUjB,OARIjzC,EAAIkzC,iCAAmC3Z,GAAmCgK,gBAC1EvjC,EAAIkzC,iCAAmC3Z,GAAmCuJ,aAC1E9iC,EAAIkzC,iCAAmC3Z,GAAmCiK,WAC5EyP,EAAa7gE,KAAK85D,kBACR3qD,GAAOmC,cAAcsc,EAAIg/B,6BAAgCz9C,GAAOmC,cAAcsc,EAAI++B,uBAC5FkU,EAAa7gE,KAAK+5D,mBAGb8G,IA13B6B,gCA63B9B,SAAmBjzC,GACzB,IAAI/wB,EAAS,gBAQb,OANI+wB,EAAImzC,uBACNlkE,EAAS,2BACA+wB,EAAIozC,+BACbnkE,EAAS,wBAGJA,IAt4B6B,gCAs5BtC,WACE,MAAO,CACLokE,mBAAoBjhE,KAAKo5D,cACzB7O,mBAAoBvqD,KAAKuqD,mBACzB2W,0BAA2BlhE,KAAK4qD,WAChCX,aAAcjqD,KAAKiqD,aACnBkX,sBAAsB,EACtBn/C,iBAAkBhiB,KAAKgiB,iBACvBgpC,oBAAqBhrD,KAAKgrD,oBAC1BE,qBAAsBlrD,KAAKkrD,qBAC3BG,wBAAyBrrD,KAAKqrD,2BAh6BI,6BAo6B9B,WACNrrD,KAAKohE,qBAAoB,KAr6BW,8BAw6B9B,WACNphE,KAAKohE,qBAAoB,KAz6BW,iCA46B9B,SAAoB/iE,GAC1B,IAAIgjE,EAAerhE,KAAKgxC,WAAW1kC,OAAO,qBACtCjO,IAAUgjE,GACZrhE,KAAKgxC,WAAW1kC,OAAO,oBAAqBjO,KA/6BV,yBAm7BtC,WAAW,WACT2B,KAAKiqD,cAAe,EACpBjqD,KAAK+/D,qBACLztD,YAAW,WACT,EAAK6oB,oBACJ,OAx7BiC,+BA27BtC,SAAkBz7B,GAAoG,WACpHM,KAAKuqD,oBAAqB,GACrB7qD,EAAEm0D,aAAen0D,EAAEizD,UACtB3yD,KAAKshE,gBAAgB,CAAC5hE,EAAEizD,WAGtBjzD,EAAEo0D,uBACJ9zD,KAAK6oC,kBAAkByB,wBACpBjkC,MAAK,SAAAwN,GACJ,EAAK8jB,gBAAkB9jB,KAI7B7T,KAAK+/D,uBAx8B+B,2BA28BtC,SAAcrgE,IACPA,EAAEm0D,aAAen0D,EAAEizD,UACtB3yD,KAAKshE,gBAAgB,CAAC5hE,EAAEizD,WAG1B3yD,KAAKuhE,kBACLvhE,KAAK+/D,uBAj9B+B,6BAo9BtC,WACE//D,KAAKgiB,kBAAmB,EACxBhiB,KAAKm7B,oBAt9B+B,gCAy9BtC,WACEn7B,KAAKgrD,qBAAsB,EAC3BhrD,KAAK+qD,uBAAyB,KA39BM,iCA89BtC,SAAoByW,EAAqBC,GAEvC,GADAzhE,KAAKkrD,sBAAuB,EACxBsW,EAAYxlE,OAAS,EAAG,CAC1B,IAAI0lE,EAAqB1hE,KAAKuC,eAAeo/D,UAAU/9D,QAAO,SAAA6zD,GAAE,OAAK+J,EAAY92D,MAAK,SAAAlL,GAAE,OAAIA,GAAMi4D,EAAGtN,wBAEpE,GAA7BuX,EAAmB1lE,QACrBgE,KAAKuC,eAAeq/D,WAAY,EAChC5hE,KAAKmtB,MAAMlH,MAAM,iBAAkBjmB,KAAKwC,oBAGxCxC,KAAKuC,eAAeo/D,UAAYD,EAChC1hE,KAAKuC,eAAes/D,eAAiBH,EAAmBI,QAAO,SAASxC,EAAK7H,GAAM,OAAO6H,EAAM7H,EAAGyD,gBAAkB,GACrHl7D,KAAKuC,eAAew/D,sBAAwBL,EACzC99D,QAAO,SAAA6zD,GAAE,OAAIA,EAAG2F,SAAWh9B,GAAgBu4B,WAC3CmJ,QAAO,SAASxC,EAAK7H,GAAM,OAAO6H,EAAM7H,EAAGyD,gBAAkB,GAChEl7D,KAAKuC,eAAey/D,sBAAwBhiE,KAAKuC,eAAeo/D,UAAU9pD,OAAM,SAAA4/C,GAAE,OAAIA,EAAGwK,aACzFjiE,KAAKuC,eAAeyiD,OAAShlD,KAAKuC,eAAeo/D,UAAUtiE,KAAI,SAAAo4D,GAAE,OAAIA,EAAGjqD,aACxExN,KAAKuC,eAAe2/D,OAASliE,KAAKuC,eAAeo/D,UAAUtiE,KAAI,SAAAo4D,GAAE,OAAIA,EAAGgD,qBAExEz6D,KAAKm7B,kBACLn7B,KAAKmtB,MAAMlH,MAAM,mBAAoBurC,GAA4B2Q,MAInEniE,KAAKmtB,MAAMlH,MAAM,qBAAsBjmB,KAAKuC,eAAe+kD,eAAgBma,MAt/BzC,oCA0/BtC,SAAuBD,EAAqBY,GAG1C,GAFApiE,KAAKqrD,yBAA0B,EAEd,MAAb+W,GAAqBZ,EAAYxlE,OAAS,EAAG,CAC/C,IAAI0lE,EAAqB1hE,KAAKuC,eAAeo/D,UAAU/9D,QAAO,SAAA6zD,GAAE,OAAK+J,EAAY92D,MAAK,SAAAlL,GAAE,OAAIA,GAAMi4D,EAAGtN,wBAEpE,GAA7BuX,EAAmB1lE,QACrBgE,KAAKuC,eAAeq/D,WAAY,EAChC5hE,KAAKmtB,MAAMlH,MAAM,iBAAkBjmB,KAAKwC,oBAGxCxC,KAAKuC,eAAeo/D,UAAYD,EAChC1hE,KAAKuC,eAAes/D,eAAiBH,EAAmBI,QAAO,SAASxC,EAAK7H,GAAM,OAAO6H,EAAM7H,EAAGyD,gBAAkB,GACrHl7D,KAAKuC,eAAew/D,sBAAwBL,EACzC99D,QAAO,SAAA6zD,GAAE,OAAIA,EAAG2F,SAAWh9B,GAAgBu4B,WAC3CmJ,QAAO,SAASxC,EAAK7H,GAAM,OAAO6H,EAAM7H,EAAGyD,gBAAkB,GAChEl7D,KAAKuC,eAAey/D,sBAAwBhiE,KAAKuC,eAAeo/D,UAAU9pD,OAAM,SAAA4/C,GAAE,OAAIA,EAAGwK,aACzFjiE,KAAKuC,eAAeyiD,OAAShlD,KAAKuC,eAAeo/D,UAAUtiE,KAAI,SAAAo4D,GAAE,OAAIA,EAAGjqD,aACxExN,KAAKuC,eAAe2/D,OAASliE,KAAKuC,eAAeo/D,UAAUtiE,KAAI,SAAAo4D,GAAE,OAAIA,EAAGgD,qBAExEz6D,KAAKm7B,kBACLn7B,KAAKmtB,MAAMlH,MAAM,mBAAoBurC,GAA4B2Q,MAInEniE,KAAKmtB,MAAMlH,MAAM,qBAAsBm8C,EAAU/1D,WAAY+1D,EAAUvnD,gBAnhCrC,6BAuhC9B,SAAgBykC,GACtB,MAAO,UAAYA,EAAQ5xB,WAxhCS,yBA6hC9B,WACF1tB,KAAKqiE,iBACPhN,aAAar1D,KAAKqiE,gBAClBriE,KAAKqiE,oBAAiBh1D,GAGxBrN,KAAK4qD,YAAa,IAniCkB,yBAsiC9B,SAAYlrD,GAAM,WACpBM,KAAK4qD,aAIL5qD,KAAKqiE,gBACPhN,aAAar1D,KAAKqiE,gBAGpBriE,KAAKqiE,eAAiB/vD,YAAW,WAC/B,EAAKgwD,mBACL,EAAK9X,gBAAkB9qD,EAAEkuB,IAAIpyB,KAC7B,EAAKmvD,cAAgB,WAAajrD,EAAEguB,SACpC,IAAIymB,EAAY,EAAKjY,WAAWlqB,MAAK,SAAA1T,GAAC,OAAIA,EAAE89B,cAAgB18B,EAAEkuB,IAAIpyB,KAAKg/D,uBACvE,EAAK/P,qBAAuBtW,EAAYA,EAAUhI,OAASo2B,GAAoBC,kBAC/E,EAAK5X,YAAa,EAClB,EAAKmV,uBACJ,QAvjCiC,gCA0jC9B,SAAmBrgE,GACzBM,KAAK4qD,YAAa,EAClB5qD,KAAKwqD,gBAAkB9qD,EAAEkuB,IAAIpyB,KAC7BwE,KAAK2qD,cAAgB,WAAajrD,EAAEguB,SACpC,IAAIymB,EAAYn0C,KAAKk8B,WAAWlqB,MAAK,SAAA1T,GAAC,OAAIA,EAAE89B,cAAgB18B,EAAEkuB,IAAIpyB,KAAKg/D,uBACvEx6D,KAAKyqD,qBAAuBtW,EAAYA,EAAUhI,OAASo2B,GAAoBC,kBAC/ExiE,KAAKuqD,oBAAqB,EAC1BvqD,KAAK+/D,uBAjkC+B,2BAokC9B,SAAcnyC,GACpB5tB,KAAKkqD,cAAgBt8B,EACrB5tB,KAAKiqD,cAAe,EACpBjqD,KAAK+/D,uBAvkC+B,+BA0kCtC,WACE,IAAIzjB,EAA6Bt8C,KAAKuP,MAAMysD,qBAA6BzsD,MAAMyhC,WAC5E5/B,SAASwvC,sBACRtE,EAAatgD,OAAS,GACxBgE,KAAKwpD,cAAclN,EAAaA,EAAatgD,OAAS,MA9kCpB,4BAklCtC,SAAe0D,GAAM,WACb+iE,EAAoB/iE,EAAEuH,UAAUy7D,QAAQ,qBACvCD,EAAkBE,kBACnBF,EAAkBG,4BAClBH,EAAkBI,SAClBJ,EAAkBE,gBAAgB36D,GAAG,UAAU,WAEzC,EAAK+3D,yBAGf5tD,SAASm3B,iBAAiB,YAAatpC,KAAK8iE,aAC5CxwD,YAAW,kBAAM,EAAKywD,gBAAe,OA7lCH,uBAgmCtC,WACE5wD,SAASs3B,oBAAoB,YAAazpC,KAAK8iE,eAjmCX,yBAomCtC,SAAYpjE,GACNM,KAAKo5D,gBACPp5D,KAAKo5D,eAAgB,EACrBp5D,KAAK+/D,wBAvmC6B,kGA2mCtC,oHACuB//D,KAAKkG,oBAAoB88D,gBAAgBhgE,EAAsBigE,eACpEhgE,EAAgBigE,mBAFlC,OACMC,EADN,OAIKA,GAAYA,EAAS,KACtBnjE,KAAK2F,cAAiBw9D,EAAS,GAAGh0B,OALtC,gDA3mCsC,sGAonCtC,SAAgC9wC,GAC5B2B,KAAK2F,aAAetH,IArnCc,4BAunCtC,SAAeqB,GACb,GAAiB,SAAdA,EAAEyT,SAA6C,mBAAvBzT,EAAEqL,OAAOmsC,UAClCx3C,EAAE8T,YAAY9S,MAAQhB,EAAEiM,UAErB,GAAiB,SAAdjM,EAAEyT,SAAsBnT,KAAKi5D,eAAenhD,SAASpY,EAAEqL,OAAOmsC,WAAY,CAChF,IAAI/C,EAAYn0C,KAAKk8B,WAAWt4B,QAAO,SAAAtF,GAAC,OAAIA,EAAE89B,aAAe18B,EAAEkuB,IAAIpyB,KAAKg/D,uBAAqB,GACzFrmB,IACFz0C,EAAE8T,YAAYnT,MAAM,oBAAsB8zC,EAAUhI,YAGlC,SAAdzsC,EAAEyT,SAA4C,aAAtBzT,EAAEqL,OAAOmsC,YACnCx3C,EAAEkuB,IAAIpyB,KAAKolE,sBACblhE,EAAE8T,YAAYnT,MAAM,SAAW,WAEO,MAAhCX,EAAEkuB,IAAIpyB,KAAKmlE,kBACjBjhE,EAAE8T,YAAYnT,MAAM,SAAW,MAEzBX,EAAEkuB,IAAIpyB,KAAKmlE,kBACjBjhE,EAAE8T,YAAYnT,MAAM,SAAW,YAG/BX,EAAE8T,YAAYnT,MAAM,SAAW,cA5oCC,+BAipCtC,SAAkBX,GAChB,GAAiB,SAAdA,EAAEyT,SAA6C,YAAvBzT,EAAEqL,OAAOmsC,UAAyB,CAI3D,OAHAl3C,KAAK84D,iBAAiBxJ,WAAa5vD,EAAElE,KAAK2uD,kBAC1CnqD,KAAK84D,iBAAiBC,gBAAkBr5D,EAAErB,MAEnCqB,EAAErB,OACP,KAAK+hC,GAAgBu4B,QACnBj5D,EAAElE,KAAK4hE,QAAUh9B,GAAgBy4B,QACjC74D,KAAKgxC,WAAWoyB,UAAU1jE,EAAEguB,SAAU,UAAW0S,GAAgBy4B,SACjE,MAEF,KAAKz4B,GAAgBy4B,QACnBn5D,EAAElE,KAAK4hE,QAAUh9B,GAAgBw4B,YACjC54D,KAAKgxC,WAAWoyB,UAAU1jE,EAAEguB,SAAU,UAAW0S,GAAgBw4B,aACjE,MAEF,KAAKx4B,GAAgBw4B,YACnBl5D,EAAElE,KAAK4hE,QAAUh9B,GAAgBu4B,QACjC34D,KAAKgxC,WAAWoyB,UAAU1jE,EAAEguB,SAAU,UAAW0S,GAAgBu4B,SACjE,MAEJ34D,KAAKk6C,kBAtqC6B,wBA4qCtC,WACEl6C,KAAKu8D,qBAAkBlvD,EACvBrN,KAAKm5D,iBAAmB,GACxBn5D,KAAKm8D,2BAAwB9uD,IA/qCO,kGAkrCtC,WAAkC3N,GAAlC,qGACMA,EADN,gBAGIM,KAAKs9D,aAHT,0BAMIt9D,KAAKm8D,sBAAwBz8D,EANjC,KAO2BM,KAAKu8D,gBAPhC,sCAOyDv8D,KAAKgxC,WAAWgO,gBAAgB77C,QAAQwN,OAPjG,2BAOI3Q,KAAKu8D,gBAPT,KAQQ8G,EAAmBrjE,KAAKu8D,gBAAgB34D,QAAO,SAACiB,GAAD,OAAeA,EAAK41D,oBAA4B,eAAN/6D,EAAqB,KAAKA,MACnH4jE,EAA6B,GAGjCD,EAAiBr0D,SAAQ,SAACnK,GAKxB,IAJA,IAAIw7C,EAAMl7C,IAAEm3D,UAAU,EAAKC,iBAAiB,SAAC5J,GAAD,OAAoB9tD,EAAKslD,mBAAqBwI,EAASxI,qBAC/FoZ,EAAUljB,EAAM,EAChBmjB,EAAWnjB,EAAM,EAEbvkD,EAAI,EAAGA,EAAI,EAAIA,IAAI,CACzB,IAAI2nE,EAAUF,EAAU,EAAKhH,gBAAgBvgE,OAAS,EAAKugE,gBAAgBgH,QAAWl2D,EAClFq2D,EAAWF,GAAY,EAAI,EAAKjH,gBAAgBiH,QAAYn2D,EAE7Do2D,GAAWA,EAAQhJ,mBAAqB/6D,GACzC4jE,EAAoBhnE,KAAKinE,GAExBG,GAAYA,EAASjJ,mBAAqB/6D,GAC3C4jE,EAAoBhnE,KAAKknE,GAG3BD,IACAC,IAGFF,EAAoBhnE,KAAK+jD,MAIvBsjB,EAAuB,GAE3Bx+D,IAAEikB,OAAOk6C,GAAqB,SAAAz+D,GAAI,OAAIA,KACrCwkB,MAAK,SAAC9b,EAAEqE,GAAH,OAASrE,EAAIqE,KAClB5C,SAAQ,SAAC+yC,GACR4hB,EAAcrnE,KAAK,EAAKigE,gBAAgBxa,OAGvC4hB,GAAyC,GAAxBA,EAAc3nE,OAChCgE,KAAKs9D,aAGLt9D,KAAKm5D,iBAAmBwK,EAhD9B,QAoDE3jE,KAAKm7B,kBApDP,iDAlrCsC,wIAyuCtC,qGACEn7B,KAAKmtB,MAAMC,IAAI,kBAAmBptB,KAAKgG,iCACvChG,KAAKmtB,MAAMC,IAAI,qBAAsBptB,KAAKy8D,6BAF5C,SAGQz8D,KAAK4jE,8BAHb,uBAK+B5jE,KAAK6oC,kBAAkByB,wBALtD,OAKEtqC,KAAK23B,gBALP,uDAzuCsC,6FAivC9B,SAAuBksC,EAAgBn3D,GAC7C,IAAMrO,EAAgBqO,EAAQlR,KAAKsoE,eAEnCD,EAAUE,YAAc1lE,EAAMqZ,MAAM,KAAKrY,KAAI,SAAAjC,GAAC,OAAIA,EAAE,MAAI0G,KAAK,IAAIkgE,gBApvC7B,0BAuvC9B,SAAaH,EAAgBn3D,GACnC,IAAMu3D,EAAc31B,GAAO5hC,EAAQlR,KAAKk/D,aAAa3jD,OAAO,cAE5D8sD,EAAUE,YAAcE,EACxBJ,EAAUnjE,MAAQujE,EAElB,IAAMC,EAA0BlkE,KAAKyC,gBAAkBzC,KAAKyC,eAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAMlF,EAAQlR,KAAKsW,WAExG+xD,EAAUxjE,MAAM2jD,WAAakgB,EAAiB,OAAS,SACvDL,EAAUxjE,MAAMqG,SAAhB,UAA+B1G,KAAK2F,aAAe,EAAnD,MACAk+D,EAAUxjE,MAAM8jE,eAAiB,SAjwCG,4BAowC9B,SAAeN,EAAgBn3D,GACrC,IAAM03D,EAAMC,WAAW33D,EAAQlR,KAAK0/D,eAEpC,IAAKoJ,MAAMF,GAAM,CACf,IAAMG,EAAgBH,EAAII,oBAAen3D,EAAW,CACjDhN,MAAO,WACRy8B,SAAU,QAGZ+mC,EAAUE,YAAcQ,EACxBV,EAAUnjE,MAAQ6jE,EAGpB,IAAML,EAA0BlkE,KAAKyC,gBAAkBzC,KAAKyC,eAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAMlF,EAAQlR,KAAKsW,WAExG+xD,EAAUxjE,MAAM2jD,WAAakgB,EAAiB,OAAS,SACvDL,EAAUxjE,MAAMqG,SAAhB,UAA+B1G,KAAK2F,aAAe,EAAnD,MACAk+D,EAAUxjE,MAAM8jE,eAAiBz3D,EAAQlR,KAAK0kE,SAAW,eAAiB,SArxCtC,yBAwxC9B,SAAY2D,EAAgBn3D,GAClC,IAAMI,EAAgBJ,EAAQlR,KAAKggE,cACnCqI,EAAUE,YAAcj3D,EACxB+2D,EAAUnjE,MAAQoM,EAElB,IAAMo3D,EAA0BlkE,KAAKyC,gBAAkBzC,KAAKyC,eAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAMlF,EAAQlR,KAAKsW,WAExG+xD,EAAUxjE,MAAM2jD,WAAakgB,EAAiB,OAAS,SACvDL,EAAUxjE,MAAMqG,SAAhB,UAA+B1G,KAAK2F,aAAe,EAAnD,MACAk+D,EAAUxjE,MAAM8jE,eAAiB,SAjyCG,0BAoyC9B,SAAaN,EAAgBn3D,GACnCm3D,EAAUE,YAAcr3D,EAAQlR,KAAKizC,YAClC/hC,EAAQlR,KAAK4hE,UAAYh9B,GAAgBu4B,UAC1CkL,EAAUxjE,MAAMokE,YAAc,UAvyCI,2BA2yCtC,WACEzkE,KAAK04D,UAAU18D,OAAO,EACtBgE,KAAK0kE,iBACL1kE,KAAKmtB,MAAMG,KAAK,kBAAmBttB,KAAKgG,iCACxChG,KAAKmtB,MAAMG,KAAK,qBAAsBttB,KAAKy8D,+BA/yCP,4BAkzCtC,WACKz8D,KAAKgxC,aACNhxC,KAAKgxC,WAAW2zB,IAAI,gBACpB3kE,KAAKgxC,WAAW2zB,IAAI,oBACpB3kE,KAAKgxC,WAAW2zB,IAAI,gBACpB3kE,KAAKgxC,WAAW2zB,IAAI,gBACpB3kE,KAAKgxC,WAAW2zB,IAAI,wBACpB3kE,KAAKgxC,WAAW4zB,aAzzCkB,+BA6zCtC,WACE5kE,KAAKgxC,WAAWvyB,eAChB,IAAIomD,EAAa7kE,KAAK04D,UAAUoJ,QAAO,SAACv0D,EAAGqE,GACvC,OAAOrE,EAAEu3D,YAAclzD,EAAEkzD,YAAcv3D,EAAIqE,KAC5CkzD,YACCnS,EAAW3yD,KAAK04D,UAAU1mD,MAAK,SAAAylD,GAAE,OAAIA,EAAGqN,aAAeD,KAE3D,GAAe,MAAZlS,EAAkB,CACnB,IAAI7b,EAAa92C,KAAKgxC,WAAW+zB,cAAc/kE,KAAKgxC,WAAWrjB,iBAAiBglC,EAASxI,oBACrF6a,EAAahlE,KAAKgxC,WAAWi0B,gBAC9BnuB,GACDkuB,EAAWE,gBAAgBpuB,MAx0CK,yBA60CtC,WACE,GAAI92C,KAAKy5D,sBAAuB,CAC9Bz5D,KAAKy5D,uBAAwB,EAC7B,IAAI0L,EAAanlE,KAAKgxC,WAAWi0B,qBACf53D,GAAd83D,GACFA,EAAWC,SAAS,QAl1CY,GAASviE,cAm5BvB21D,qBAA4B,qBA94BpDx2D,gBADCwnB,mBACD,wCAGAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,gBAAK,CAAEC,aAASpc,KACjB,gCAGArL,gBADCwnB,mBACD,sCAWAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,+BAuXAznB,gBADCuW,gBAAM,cACP,uCAggBAvW,gBADCqjE,mBACD,wCAt5BmB7M,GAAmB,mBArBvCrxD,gBAAU,CACTL,WAAY,CACV0R,uBACAI,wBACAD,wBACA2sD,sCACAxsD,0BACAE,wBACA8G,oCACAuvC,wBACAkW,8BACA57C,4BACAvQ,gCACAosD,8BACAzQ,qCACA9vC,iBACAgoC,gBACA+J,0BACAiB,iCAGiBO,QC9RTiN,GAKAC,GAKAC,GDoRSnN,ME9R8Y,MCS/Z,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,SFpBf,SAAYiN,GACVA,0BACAA,+BAFF,CAAYA,QAAkB,KAK9B,SAAYC,GACVA,qBACAA,yBAFF,CAAYA,QAAsB,KAKlC,SAAYC,GACVA,iBACAA,+BAFF,CAAYA,QAAwB,KGVpC,ICAYC,GAKAC,GDLR,GAAS,WAAa,IAAI9lE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,6BAA6B,CAACf,EAAG,MAAM,CAACe,YAAY,wBAAwB,CAACf,EAAG,iBAAiB,CAACe,YAAY,eAAeZ,MAAM,CAAC,GAAK,aAAa,cAAgB,UAAU,iBAAkB,EAAK,eAAgB,EAAK,UAAY,eAAe,CAACH,EAAG,KAAKJ,EAAI6K,GAAI7K,EAAe,aAAE,SAAS8E,GAAM,OAAO1E,EAAG,KAAK,CAACxB,IAAIkG,EAAK0+B,WAAW,CAACpjC,EAAG,OAAO,CAACe,YAAY,gBAAgB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAG1C,EAAK0+B,cAAcpjC,EAAG,OAAO,CAACe,YAAY,mBAAmBb,MAAO,kBAAoBwE,EAAKsnC,OAAS,2CAA4C,CAACpsC,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKihE,cAAc3lE,EAAG,OAAO,CAACe,YAAY,mBAAmBb,MAAO,kBAAoBwE,EAAKsnC,OAAS,2CAA4C,CAACpsC,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKkhE,cAAc5lE,EAAG,OAAO,CAACe,YAAY,mBAAmBb,MAAO,kBAAoBwE,EAAKsnC,OAAS,2CAA4C,CAACpsC,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKmhE,kBAAkB7lE,EAAG,OAAO,CAACe,YAAY,mBAAmBb,MAAO,kBAAoBwE,EAAKsnC,OAAS,2CAA4C,CAACpsC,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKohE,gBAAe,MAAM,GAAG9lE,EAAG,MAAM,CAACe,YAAY,0BAA0BZ,MAAM,CAAC,GAAK,oBAAoB,CAAEP,EAAImmE,eAAqB,OAAE/lE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACnB,EAAIuH,GAAG,sBAAsBnH,EAAG,iBAAiB,CAACe,YAAY,kBAAkBZ,MAAM,CAAC,cAAgB,UAAU,iBAAkB,EAAK,eAAgB,EAAK,UAAY,OAAO,OAAS,QAAQ,CAACH,EAAG,KAAKJ,EAAI6K,GAAI7K,EAAkB,gBAAE,SAAS8E,EAAKC,GAAO,OAAO3E,EAAG,KAAK,CAACxB,IAAImG,GAAO,CAAC3E,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,8BAA8Bb,MAAO,kBAAoBwE,EAAKsnC,OAAS,4CAA6ChsC,EAAG,MAAM,CAACe,YAAY,+BAA+B,CAACf,EAAG,MAAM,CAACe,YAAY,4BAA4B,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAG1C,EAAKshE,WAAW,MAAMpmE,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKohE,QAAQ,MAAMlmE,EAAIwH,GAAG1C,EAAK2I,cAAcrN,EAAG,MAAM,CAACe,YAAY,8BAA8Bb,MAAON,EAAIqmE,8BAA8BvhE,IAAQ,CAAC9E,EAAIuH,GAAG,uBAAuBvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKohE,MAAQphE,EAAKwhE,YAAY,SAAStmE,EAAIwH,GAAGxH,EAAI+mC,GAAG,WAAP/mC,CAAmB8E,EAAKwhE,YAAY,IAAItmE,EAAIwH,GAAwB,IAArB1C,EAAKyhE,YAAoB,MAAQ,UAAU,iCAAgC,MAAM,GAAGvmE,EAAIyI,KAAKrI,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAWP,EAAIkY,SAAS,QAAUlY,EAAIwmE,uBAAuBv+D,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIwmE,sBAAsBt+D,OAAY,MACriF,GAAkB,ICDtB,SAAY29D,GACVA,oBACAA,2BAFF,CAAYA,QAAgB,KAK5B,SAAYC,GACVA,eACAA,qBAFF,CAAYA,QAAoB,KCCzB,ICNKW,GDMCC,GAAb,WAGE,oCACEzmE,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,gBAJnD,iHAOE,WAAwBR,GAAxB,iGACe3C,KAAK0D,OAAOzF,IAAZ,WAAoB0E,EAApB,qBADf,wFAPF,6IAWE,WAAmBA,GAAnB,iGACe3C,KAAK0D,OAAOzF,IAAZ,WAAoB0E,EAApB,gBADf,wFAXF,6JAeS,WAAmCA,GAAnC,iGACQ3C,KAAK0D,OAAOzF,IAAZ,WAAoB0E,EAApB,oBADR,wFAfT,wJAmBS,WAA8BA,EAAekN,GAA7C,iGACQ7P,KAAK0D,OAAOzF,IAAZ,WAAoB0E,EAApB,mCAAuDkN,IAD/D,wFAnBT,mE,udCNA,SAAY22D,GACRA,+BACAA,gCAFJ,CAAYA,QAAgB,KCiG5B,IAAqBE,GAAY,4CA+C/B,iDACE,eApBF,EAAAzuD,SAAY,CAAEnO,GAAI,SAAUC,GAAG,oBAC/B,EAAAw8D,uBAAiC,EAEjC,EAAAI,aAAkC,GAClC,EAAAC,WAAmB,EAAKlxB,SAASC,QACjC,EAAAkxB,yBAA2D,GAgBzD,EAAKC,eAAiB,IAAIL,GAF5B,EA/C+B,6CAI/B,WACE,OAAOzmE,KAAKm4D,OAAOC,WALU,0BAoB/B,WACE,OAAOp4D,KAAKg6D,iBArBiB,sFAyB/B,8FACEh6D,KAAK+mE,gBADP,gDAzB+B,wFAmC/B,WAAuB,WACrB,OAAO/mE,KAAK8nD,cAAclkD,QACxB,SAAA1F,GAAC,OACCA,EAAE2N,WAAa,EAAKssD,OAAOtsD,WACb,MAAb3N,EAAEwoB,SAAmBxoB,EAAEwoB,QAAQ7L,cAAgB,EAAKs9C,OAAOt9C,kBAvCnC,gCA2C/B,WAAwB,WACtB,OAAO7a,KAAK+nD,eAAenkD,QAAO,SAAA1F,GAAC,OAAIA,EAAEk6D,WAAa,EAAKz1D,cA5C9B,uBAoD/B,WAAe,WACT+1D,EAAY14D,KAAKm4D,OAAOwJ,UACxBlgB,EAAet8C,IAAEu8C,QAAQgX,GAAW,SAAA58D,GAAC,OAAIA,EAAE2+D,qBAG3CuM,GADS/qE,OAAO4D,KAAK4hD,GACS,GAC9BwlB,EAA8B,EAC9BC,EAAiC,EAEjCrqE,EAAuBsI,IAAE9F,IAAIoiD,GAAc,SAAC0lB,EAAOxoE,GACrD,IAAIyoE,EAAWjiE,IAAEu2D,MACfv2D,IAAEvB,OAAOujE,GAAO,SAAArrE,GAAC,OAAIA,EAAEshE,UAAYh9B,GAAgBu4B,YACnD,SAAA78D,GAAC,OAAIA,EAAEokE,SAAW,EAAIpkE,EAAEo/D,iBAEtBmM,EAAWliE,IAAEu2D,MACfv2D,IAAEvB,OAAOujE,GAAO,SAAArrE,GAAC,OAAIA,EAAEshE,UAAYh9B,GAAgBy4B,YACnD,SAAA/8D,GAAC,OAAIA,EAAEokE,SAAW,EAAIpkE,EAAEo/D,iBAEtBoM,EAAeniE,IAAEu2D,MACnBv2D,IAAEvB,OAAOujE,GAAO,SAAArrE,GAAC,OAAIA,EAAEshE,UAAYh9B,GAAgBw4B,gBACnD,SAAA98D,GAAC,OAAIA,EAAEokE,SAAW,EAAIpkE,EAAEo/D,iBAG1B8L,GAAuBI,EACvBH,GAAuBI,EACvBH,GAA0BI,EAE1B,IAAInzB,EAAYhvC,IAAE6M,KAAK,EAAKkqB,YAAY,SAAApgC,GAAC,OAAI6C,IAAQ7C,EAAEqgC,aAEvD,MAAO,CACL2pC,SAAUsB,EACVrB,SAAUsB,EACVrB,aAAcsB,EACd/jC,UAAkB,MAAP5kC,GAAuB,SAARA,EAAiB,aAAeA,EAC1DsnE,MAAOmB,EAAWC,EAAWC,EAC7Bn7B,OAAQgI,EAAYA,EAAUhI,YAAS9+B,EACvC++B,WAAY+H,EAAYA,EAAU/H,gBAAa/+B,MAInDxQ,EAAOwsB,MAAK,SAASk+C,EAAQC,GAC3B,IAAIC,EAASF,EAAOn7B,WAAam7B,EAAOn7B,WAAa,EACjDs7B,EAASF,EAAOp7B,WAAao7B,EAAOp7B,WAAa,EACrD,OAAOq7B,EAASC,KAGlB,IAAIC,EAAoB,CACtBx7B,YAAQ9+B,EACRy4D,SAAUkB,EACVjB,SAAUkB,EACVjB,aAAckB,EACd3jC,UAAW,eACX0iC,MAAOe,EAAsBC,EAAsBC,EACnD96B,gBAAY/+B,GAad,OAVAxQ,EAAOP,KAAKqrE,GACZ9qE,EAAOiP,QAAQ,CACbg6D,SAAU,WACVC,SAAU,WACVC,aAAc,eACdziC,UAAW,GACX0iC,MAAO,QACP95B,YAAQ9+B,EACR++B,gBAAY/+B,IAEPxQ,IAtHsB,2CAyH/B,SAA8BgI,GAC5B,MAAO,CACL,mBAAoBA,EAAK+iE,cAAgBpB,GAAiBqB,YACtD,uBACA,4BA7HuB,qCAiI/B,SAAwBj7D,GACtB,OAAO5M,KAAKyC,gBAAkBzC,KAAKyC,eAAeiI,MAAK,SAAAkH,GAAC,OAAIA,GAAKhF,OAlIpC,2BAqI/B,WACE5M,KAAKmtB,MAAMG,KAAK,0BAA2BttB,KAAK8nE,0BAChD9nE,KAAKmtB,MAAMG,KAAK,mBAAoBttB,KAAK+mE,iBAvIZ,qBA0I/B,WACE/mE,KAAK2d,aA3IwB,8EA8I/B,8FACE3d,KAAKmtB,MAAMC,IAAI,0BAA2BptB,KAAK8nE,0BAC/C9nE,KAAKmtB,MAAMC,IAAI,mBAAoBptB,KAAK+mE,eAF1C,gDA9I+B,oFAmJ/B,WAAa,WACX/mE,KAAKumE,uBAAwB,EAC7BvmE,KAAK8mE,eAAeiB,6BAA6B/nE,KAAKm4D,OAAOC,UAC5D/xD,MAAK,SAAAxJ,GACJ,EAAKgqE,yBAA2BhqE,KAEjCoX,SAAQ,WACP,EAAKsyD,uBAAwB,OA1JF,+EA6J/B,8FACEvmE,KAAK+mE,gBADP,gDA7J+B,mFAiK/B,WAAkB,WACZrO,EAAY14D,KAAKm4D,OAAOwJ,UAAU/9D,QAAO,SAAA9H,GAAC,OAAIA,EAAEshE,UAAYh9B,GAAgBu4B,WAC5EqP,EAAiB7iE,IAAEu8C,QAAQgX,GAAW,SAAA58D,GAAC,OAAIA,EAAE0R,aAE7C3Q,EAASsI,IAAE8iE,QAAQD,GAAgB,SAACE,EAAczkD,GACpD,IAAI0kD,EAAiBhjE,IAAEu8C,QAAQwmB,GAAc,SAAApsE,GAAC,OAAIA,EAAE0+D,uBAEpD,OAAOr1D,IAAE8iE,QAAQE,GAAgB,SAACC,EAAcpI,GAC9C,IAAIqI,EAA4B,GAC5Bl0B,EAAY,EAAKjY,WAAWt4B,QAAO,SAAAtF,GAAC,OAAIA,EAAE89B,cAAgBvI,SAASmsC,MAAc,GAChFsI,EAA8B,MAAbn0B,EACCA,EAAU7H,UACX87B,EAAaxkE,QAAO,SAAA9H,GAAC,OAAI,EAAK2G,gBAAkB,EAAKA,eAAeqV,SAAShc,EAAEgW,YAC7Es2D,EAAgB,GAExC,GAAiB,MAAbj0B,GAAqBm0B,GAAkBA,EAAetsE,OAAS,EAAG,CACpE,IAAIgkE,EAAc7rB,EAAU/X,YACxBmsC,EAAW,EAAK1B,yBAAyB70D,MAAK,SAAAvU,GAAC,OAAIA,EAAE+P,WAAaiW,GAAahmB,EAAE2+B,aAAe4jC,KAEpG,GAAGuI,EAAU,CACX,IAAItN,EAAyB,CACzBkL,UAAWhyB,EAAUhY,UACrBgQ,OAAQgI,EAAUhI,OAClB85B,MAAOsC,EAASC,gBAAkBD,EAASC,gBAAkB,EAC7DnC,UAAWkC,EAASE,UAAY7C,GAAiBl+B,IACtC6gC,EAAS/gC,UAAY+gC,EAAS/gC,UAAY,EAC1C+gC,EAAShhC,aAAeghC,EAAShhC,aAAe,EAC3D++B,YAAaiC,EAASE,SACtBb,YAA2C,GAA9BW,EAASG,kBAAyBlC,GAAiBmC,YAAcnC,GAAiBqB,YAC/Fr6D,UAAWiW,EACX2oB,WAAY+H,EAAU/H,YAGvBm8B,EAASt9B,gBAC+D,GAArEo9B,EAASzkE,QAAO,SAAAglE,GAAE,OAAIA,EAAGzC,WAAahyB,EAAUhY,aAAWngC,OACzDusE,EAASE,UAAY7C,GAAiBl+B,MACxC2gC,EAAWA,EAASzkE,QAAO,SAAAglE,GAAE,OAAIA,EAAGtC,aAAeV,GAAiBj+B,QAAUihC,EAAGzC,WAAahyB,EAAUhY,aACxGksC,EAAS/rE,KAAK2+D,IAOlBoN,EAAS/rE,KAAK2+D,IAIpB,OAAOoN,QAIX,OAAOljE,IAAE2uB,OAAOj3B,GAAQ,SAAAiB,GAAC,OAAIA,EAAEsuC,gBArNF,sCAwN/B,SAAyBy8B,GACvBA,EAAK7oE,KAAK2mE,kBAzNmB,GAAS9jE,cAExCb,gBADCwnB,mBACD,8BAOAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,qCAGAxnB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,sCAOAxnB,gBADCuW,gBAAM,oBACP,qCAzBmBmuD,GAAY,gBANhCv/D,eAAU,CACTL,WAAY,CACVsS,gCACAP,kCAGiB6tD,QCjGToC,GDiGSpC,MEjGqY,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,SFnBf,SAAYoC,GACVA,8BACAA,0BACAA,sBACAA,oCACAA,yBACAA,kDACAA,2BACAA,6BACAA,oBACAA,oCACAA,6CACAA,kCACAA,qBACAA,wCACAA,iCACAA,2DACAA,wBAjBF,CAAYA,QAAU,KGAtB,IAAI,GAAS,WAAa,IAAI/oE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,OAAO,cAAa,EAAK,MAAQ,aAAa,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAIgpE,gBAAgB,CAAC5oE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,gBAAgBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIipE,cAAc,MAAQ,IAAIhhE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIipE,cAAc/gE,OAAY,SAAS9H,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,4BAA4BnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIkpE,mBAAmB,MAAQlpE,EAAImpE,iBAAiB,YAAc,mBAAmB,MAAQ,IAAIlhE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAImpE,iBAAiBjhE,OAAY,OAAO9H,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,8BAA8BnH,EAAG,MAAM,CAACe,YAAY,uBAAuBf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACA,EAAG,YAAYJ,EAAI0Z,GAAG,CAACvY,YAAY,aAAaZ,MAAM,CAAC,IAAM,KAAK,UAAY,cAAc0H,GAAG,CAAC,MAAQ,SAASC,GAAQlI,EAAIopE,YAAa,EAAMppE,EAAIqpE,0BAAuB/7D,GAAW,IAAM,SAASpF,GAAQlI,EAAIopE,YAAa,IAAQj7C,MAAM,CAAC7vB,MAAO0B,EAAiB,cAAEouB,SAAS,SAAUC,GAAMruB,EAAIspE,cAAcj7C,GAAK/kB,WAAW,kBAAkB,YAAYtJ,EAAIupE,aAAY,GAAO,CAACnpE,EAAG,mBAAmB,CAACG,MAAM,CAAC,KAAO,aAAa,KAAQP,EAAIopE,WAA2B,KAAd,cAAqBppE,EAAI6K,GAAI7K,EAAiB,eAAE,SAASm/C,EAAQp6C,GAAO,OAAO3E,EAAG,KAAK,CAACxB,IAAIugD,EAAQthD,KAAKsD,YAAY,kBAAkBV,MAAO0+C,EAAQqqB,MAAqB,GAAb,aAAiB,CAAGrqB,EAAQqqB,MAA2FxpE,EAAIyI,KAAxFrI,EAAG,OAAO,CAACe,YAAY,SAAS,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIypE,aAAatqB,EAASp6C,OAAoB3E,EAAG,OAAO,CAACK,MAAO0+C,EAAQqqB,MAAqB,GAAb,cAAiB,CAACxpE,EAAIuH,GAAGvH,EAAIwH,GAAG23C,EAAQthD,SAAWshD,EAAQqqB,MAAkJppE,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,WAAW,KAAO,QAAQ,KAAO,OAAO0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI0pE,gBAAgBvqB,OAAvQ/+C,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,WAAW,KAAO,QAAQ,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI0pE,gBAAgBvqB,QAAuJ,MAAK,IAAI,IAAI,KAAK/+C,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,+BAA+BnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQP,EAAI2pE,gBAAgB,MAAQ3pE,EAAI4pE,wBAAwB3hE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI4pE,uBAAuB1hE,OAAY,KAAMlI,EAAwB,qBAAEI,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,OAAO,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIqpE,2BAA2BrpE,EAAIyI,KAAKrI,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIgpE,eAAgB,SAAW,QAAQ,QAAU,YAAY5oE,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,aAAa,IAAI,QACn1G,GAAkB,G,geC+HtB,IAAM0nD,GAAY36B,EAAQ,QAEpB46B,IADcrlE,uBAAUnB,IAAcF,GACf,CACzB,QACA,UACA,QACA,gBAGE2mE,GAAuB,CACzB,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAeiBC,GAA+B,4CAoEhD,iDACI,eAlCI,EAAAL,gBAA4B,CAChCxmE,EAAe8mE,aACf9mE,EAAe+mE,cACf/mE,EAAegnE,aAGX,EAAAP,uBAAiCzmE,EAAe8mE,aAExD,EAAAb,YAAsB,EACtB,EAAAE,cAA6B,GAE7B,EAAA/8D,OAA4B,CACxB7H,WAAYzB,EAAsBmnE,aAClCvsE,KAAOqF,EAAgBmnE,kBAE3B,EAAAC,eAAoC,CAChC5lE,WAAYzB,EAAsBigE,eAClCrlE,KAAOqF,EAAgBigE,mBAE3B,EAAAoH,aAAkC,CAC9B7lE,WAAYzB,EAAsBigE,eAClCrlE,KAAOqF,EAAgBsnE,UAEnB,EAAAC,aAAkC,CACtC/lE,WAAYzB,EAAsBmnE,aAClCvsE,KAAMqF,EAAgBC,gBAE1B,EAAAkmE,qBAA0C,YAE1C,EAAAH,mBAA+Ba,GAC/B,EAAAZ,iBAA2B,GAC3B,EAAAF,eAAyB,EAIrB,EAAK5iE,YAAc,IAAI3C,EAF3B,EApEgD,kDAIhD,WACI,OAAOzD,KAAKgmB,YALgC,IAQhD,SAAkB3nB,GACd2B,KAAKimB,MAAM,YATiC,wFAahD,WAAwB5nB,EAAgB6nB,GAAxC,2FACM7nB,EADN,wBAEQ2B,KAAKopE,0BAAuB/7D,EAC5BrN,KAAKmpE,YAAa,EAH1B,SAImCnpE,KAAKg/C,gBAJxC,cAIYyrB,EAJZ,OAKQzqE,KAAKqpE,cAAgBoB,EAL7B,SAMsCzqE,KAAK0qE,4BAN3C,iDAM0E,GAN1E,eAMQ1qE,KAAKkpE,iBANb,eAOmClpE,KAAK2qE,wBAPxC,eAOQ3qE,KAAKgpE,cAPb,iBAQ4ChpE,KAAK4qE,8BARjD,QAQQ5qE,KAAK2pE,uBARb,OASQ3pE,KAAKmpE,YAAa,EAT1B,iDAbgD,mFA0BhD,WACI,MAAO,CACH0B,UAAW,IACX1D,MAAO,cACP3qC,UAAU,EACVsuC,WAAY,WA/B4B,2BAyEhD,WACI,OAAO9qE,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKsM,QAC9CjG,MAAK,SAACxJ,GACH,IAAKA,EACD,MAAMA,EAGV,GAAGA,EAAOb,OAAS,EAAG,CAClB,IAAIgvE,EAAQ7lE,IAAEsiB,QAAQ5qB,GAAQ,SAAAouE,GAAC,OAAIA,EAAEC,YAAW,CAAC,QAE7CC,EAAcH,EAAM3rE,KAAI,SAACwF,GACzB,IAAIwvB,EAAexvB,EAAKsqC,MAExB,OAAO9a,KAGX,OAAOlvB,IAAEq3D,MAAM2O,EAAatB,IAAsBxqE,KAAI,SAACwF,GAC3C,IAAIwvB,EAAiB,CACjBz2B,KAAOiH,EACP0kE,QAAQyB,EAAMhvE,OAAS,KAAKmJ,IAAE6M,KAAKg5D,GAAO,SAAAlvE,GAAC,OAAKA,EAAEqzC,QAAUtqC,MAGhE,OAAOwvB,KAIvB,OAAOw1C,GAAqBxqE,KAAI,SAACwF,GACjB,IAAIwvB,EAAiB,CACjBz2B,KAAOiH,EACP0kE,OAAQ,GAGZ,OAAOl1C,QAG1B/tB,OAAM,SAAAzJ,GACH,MAAIA,GAAUA,EAAOiX,QACXjX,EAAOiX,QAEP,2BAhHsB,mCAuHxC,WACJ,OAAO9T,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKsqE,cAClDjkE,MAAK,SAACxJ,GACH,IAAIuuE,EAAWjmE,IAAE6M,KAAKnV,GAAQ,SAACgI,GACX,OAAOA,EAAKG,aAAehC,EAAsBigE,gBACzCp+D,EAAKI,OAAShC,EAAgBsnE,cACpC,EAEtB,QAAQa,GAA6B,QAAlBA,EAASj8B,SAE/B7oC,OAAM,SAACulB,GAAD,OAAc,OAjImB,uCAoIxC,WACJ,OAAO7rB,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKqqE,gBAClDhkE,MAAK,SAACxJ,GACH,IAAI6J,EAAWvB,IAAE6M,KAAKnV,GAAQ,SAACgI,GACf,OAAOA,EAAKG,aAAehC,EAAsBigE,gBACzCp+D,EAAKI,OAAShC,EAAgBigE,qBAGtD,OAAOx8D,GAAYA,EAASyoC,MAAQzoC,KAEvCJ,OAAM,SAAAzJ,GACC,MAAIA,GAAUA,EAAOiX,QACXjX,EAAOiX,QAEP,2BAlJsB,yCAyJxC,WACJ,OAAO9T,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKwqE,cAClDnkE,MAAK,SAACxJ,GACH,IAAIwuE,EAAiBlmE,IAAE6M,KAAKnV,GAAQ,SAACgI,GACjB,OAAOA,EAAKG,aAAehC,EAAsBmnE,cACzCtlE,EAAKI,OAAShC,EAAgBC,kBAG1D,OAAOmoE,EAAiBA,EAAel8B,MAAQjsC,EAAe8mE,gBAEjE1jE,OAAM,SAACulB,GAAD,OAAc,OAnKmB,0BAsKhD,SAAaqzB,EAAoBp6C,GAC7B,IAAIouD,EAAOhU,EACPriD,EAAiB,GAMrB,OAJIq2D,EAAKqW,QACL1sE,GAAUiI,EAAQ,GAAGs2D,YAGlBv+D,IA9KqC,6BAiLhD,SAAgBqiD,GACZl/C,KAAKopE,0BAAuB/7D,EAE5B6xC,EAAQqqB,OAASrqB,EAAQqqB,MAEzBvpE,KAAKqpE,cAAgBlkE,IAAE2uB,OAAO9zB,KAAKqpE,eAAe,SAAA4B,GAAC,OAAIA,EAAE1B,WAtLb,oFAyLhD,gHACIvpE,KAAKopE,0BAAuB/7D,GACJ,EAF5B,SAIU3I,QAAQqrC,IAAI,CAAC/vC,KAAKsrE,eAAgBtrE,KAAKurE,eAAgBvrE,KAAKwrE,wBACjEnlE,MAAK,SAAAI,GACF,IAAIjB,EAA8B,GAClCiB,EAAQuI,SAAQ,SAAAkwC,GACTA,EAAQr2B,SAAWq2B,EAAQt7B,MAAQs7B,EAAQt7B,KAAK5nB,OAAS,GACxDkjD,EAAQt7B,KAAK5U,SAAQ,SAACkkD,GAClB1tD,EAAalJ,KAAK42D,SAM9B,EAAK/lC,MAAMlH,MAAM,wBAAyBzgB,GAC1C,EAAKkb,eAAgB,KAExBpa,OAAM,SAAAulB,GACH,EAAKu9C,qBAAuB,8BApBpC,gDAzLgD,mFAiNhD,WACIppE,KAAK0gB,eAAgB,IAlNuB,0BAqNhD,WAAY,WACJ0qD,EAA2B,CAC3B,CACIpmE,WAAahC,EAAsBigE,eACnCh+D,KAAOhC,EAAgBsnE,SACvBp7B,MAAQnvC,KAAKgpE,cAAc5N,WAC3B8P,eAAY79D,IAIpB,OAAOrN,KAAKoG,YAAYqlE,mBAAmBL,EAAUprE,KAAKsqE,cACjDjkE,MAAK,SAAAI,GAGF,OADA,EAAKwf,MAAM,uBAAwB,EAAK+iD,eACjCviE,KAEVH,OAAO,SAAA+N,GACJ,MAAO,QAtOyB,0BA0OhD,WAAY,WACJ8uD,EAA2B,CAC3B,CACIn+D,WAAahC,EAAsBigE,eACnCh+D,KAAOhC,EAAgBigE,kBACvB/zB,MAAQnvC,KAAKkpE,iBAAiB9N,WAC9B8P,eAAY79D,IAGpB,OAAOrN,KAAKoG,YAAYqlE,mBAAmBtI,EAAUnjE,KAAKqqE,gBACjDhkE,MAAK,SAAAI,GAEF,OADA,EAAK0mB,MAAMlH,MAAM,kBAAmB,EAAKijD,kBAClCziE,KAEVH,OAAO,SAAA+N,GACJ,MAAO,QAzPyB,0FA6PxC,wHACA4e,EAAS9tB,IAAEvB,OAAO5D,KAAKqpE,eAAe,SAAAvtE,GAAC,OAAKA,EAAEytE,SAAOlqE,KAAI,SAACwF,GAC1D,IAAIA,EAAK0kE,MAAO,CACZ,IAAIr7C,EAAsB,CAEtBlpB,WAAahC,EAAsBmnE,aACnCllE,KAAOhC,EAAgBmnE,iBACvBj7B,MAAQtqC,EAAKjH,KACbstE,UAAY,EAAK7B,cAAcrxD,QAAQnT,GAAQ,GAGnD,OAAOqpB,MAXX,SAewBluB,KAAKoG,YAAYqlE,mBAAoBx4C,EAA0BjzB,KAAKsM,QAf5F,cAeAo/D,EAfA,OAiBAL,EACA,CACIrmE,WAAahC,EAAsBmnE,aACnCllE,KAAOhC,EAAgBC,eACvBisC,MAAQnvC,KAAK2pE,uBACbuB,eAAY79D,GAtBhB,SAyByBrN,KAAKoG,YAAYqlE,mBAAmB,CAAEJ,GAAkBrrE,KAAKwqE,cAzBtF,cAyBAmB,EAzBA,OA2BJ14C,EAAO32B,KAAK+uE,GAEZrrE,KAAKimB,MAAM,2BAA4BgN,GA7BnC,kBA+BGy4C,EAAgB7iD,SAAY8iD,EAAiB9iD,SA/BhD,iDA7PwC,8DAAShmB,SAEzDb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAWAznB,gBADCuW,gBAAM,eACP,uCAbiBwxD,GAA+B,gBAZnD5iE,gBAAU,CACPL,WAAY,CACR8iE,aACAhxD,wBACAS,8BACA2a,eACAzU,oBACAyK,iBACAL,4BACA4nC,oCAGawY,cCpK2Z,MCQ5a,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIhqE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,0BAA0B,CAACH,EAAG,MAAM,CAACe,YAAY,4BAA4B,CAACf,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAI28B,YAAY,MAAQ38B,EAAIuvC,gBAAgB,eAAe,OAAO,aAAa,gBAAgBtnC,GAAG,CAAC,aAAejI,EAAI8hC,gBAAgB,GAAG1hC,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAY,SAAEsJ,WAAW,aAAanI,YAAY,4BAA4B,CAACf,EAAG,oBAAoB,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,OAAQ0B,EAAI6rE,UAAWviE,WAAW,eAAe/I,MAAM,CAAC,GAAK,kBAAkB,OAAS,GAAG,MAAQ,MAAMH,EAAG,OAAO,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAa,UAAEsJ,WAAW,cAAcnI,YAAY,mBAAmB,MAC1yB,GAAkB,GCIT2qE,GAAb,gBAIE,WAAYC,EAAoB1T,GAAc,uBAC5Cp4D,KAAK8rE,WAAaA,EAClB9rE,KAAKo4D,SAAWA,K,sdCyBpB,IAAqB0T,GAAU,4CAkB3B,iDACI,eAVI,EAAAC,UAAoB,EACpB,EAAAH,WAAqB,EAUzB,EAAKjuC,kBAAoB,IAAIR,GAFjC,EAlB2B,oDAY3B,WACI,OAAOn9B,KAAKm4D,OAAOt6B,eAbI,yBAuBnB,SAAYxnB,GAAU,WAI1B,GAHGrW,KAAKs1D,cACJD,aAAar1D,KAAKs1D,cAEnBj/C,EAAMhY,OAAS2B,KAAKsvC,gBAAiB,CAEpC,IAAI3sC,EAAmB3C,KAAKm4D,OAAOC,SACnCp4D,KAAKs1D,aAAehjD,YAAW,WAC3B,EAAKy5D,UAAW,EAChB,IAAIhnD,EAA2B,IAAI8mD,GAAoBx1D,EAAMhY,MAAMsE,GACnE,EAAKg7B,kBAAkBquC,WAAWjnD,GAC7B1e,MAAK,SAAAxJ,GACF,EAAK+uE,WAAY,EACjB,EAAK/uD,OAAOkI,MAEfze,OAAM,SAAA+N,GACHkD,QAAQlD,MAAMA,MAEjBJ,SAAQ,WACL3B,YAAW,WACP,EAAKy5D,UAAS,EACd,EAAKH,WAAY,IACnB,UAEX,QA/CgB,oBAoD3B,SAAO7mD,GACH,OAAOA,MArDgB,GAASliB,cAGpCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,mCAGA/lC,gBADCwnB,mBACD,8BA8CAxnB,gBADCqjE,mBACD,4BApDiByG,GAAU,gBAN9B3kE,gBAAU,CACPL,WAAY,CACRuS,8BACA2b,0CAGa82C,QCpCTG,GAQAC,GD4BSJ,MEpCiX,MCQlY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI/rE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAkB,eAAEI,EAAG,MAAM,CAACe,YAAY,0BAA0B,CAACf,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACnB,EAAIuH,GAAG,SAASvH,EAAIwH,GAAGxH,EAAIosE,aAAa,UAAUhsE,EAAG,MAAMJ,EAAIuH,GAAG,SAASvH,EAAIwH,GAAGxH,EAAIqsE,iBAAiB,gBAAgBjsE,EAAG,MAAM,CAACe,YAAY,gCAAgC,CAACf,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,KAAO,KAAK,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIssE,qBAAqBlsE,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,KAAO,IAAI,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIusE,eAAensE,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,KAAO,IAAI,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIwsE,eAAepsE,EAAG,YAAY,CAACe,YAAY,oBAAoBZ,MAAM,CAAC,KAAO,KAAK,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4oD,yBAAyB,GAAGxoD,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQP,EAAIysE,kBAAkB,MAAQzsE,EAAI0sE,yBAAyB,OAAS,cAAczkE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI0sE,yBAAyBxkE,GAAQ,iBAAiBlI,EAAI2sE,2BAA2BvsE,EAAG,eAAe,CAAC+H,IAAI,aAAa5H,MAAM,CAAC,uBAAsB,EAAM,kBAAiB,EAAM,qBAAoB,EAAK,OAAS,MAAM,cAAcP,EAAI4sE,YAAY,iBAAiB,QAAQ,WAAW,UAAU,iBAAiB,YAAY,uBAAsB,EAAK,UAAY,CAAEpuE,KAAM,UAAW,oBAAoB,CAACwB,EAAI6sE,gBAAgB,wBAAuB,GAAM5kE,GAAG,CAAC,iBAAmBjI,EAAI8sE,2BAA2B,CAAC1sE,EAAG,kBAAkB,CAACG,MAAM,CAAC,SAAU,EAAK,0BAA2B,EAAM,KAAOP,EAAI+sE,YAAY9kE,GAAG,CAAC,cAAc,SAASC,GAAQlI,EAAI+sE,WAAW7kE,MAAW9H,EAAG,YAAY,CAACG,MAAM,CAAC,eAAgD,SAAjCP,EAAI0sE,yBAAoC,aAAa,OAAO,gBAAgB1sE,EAAIgtE,kBAAkB5sE,EAAG,YAAY,CAACG,MAAM,CAAC,SAAU,EAAM,eAAgD,gBAAjCP,EAAI0sE,yBAA2C,aAAa,yCAAyC,IAAI,GAAG1sE,EAAIyI,MAChiE,GAAkB,G,yBHehB,SAAUwkE,GAAkBC,GAChC,OAAOA,GACL,KAAKhB,GAAeiB,OAClB,OAAOhB,GAAmBgB,OAC5B,KAAKjB,GAAekB,OAClB,OAAOjB,GAAmBiB,OAC5B,KAAKlB,GAAemB,UAClB,OAAOlB,GAAmBkB,UAC5B,KAAKnB,GAAeoB,aAClB,OAAOnB,GAAmBmB,aAC5B,KAAKpB,GAAeqB,WAClB,OAAOpB,GAAmBoB,WAC5B,QACE,MAAO,kB,udA7Bb,SAAYrB,GACVA,0BACAA,0BACAA,gCACAA,sCACAA,mCALF,CAAYA,QAAc,KAQ1B,SAAYC,GACVA,qBACAA,qBACAA,2BACAA,kCACAA,6BALF,CAAYA,QAAkB,KIoE9B,IAAqBqB,GAAmB,4CAyBtC,iDACE,eATF,EAAAC,WAAa/H,GAAmBgI,OAChC,EAAAC,aAAejI,GAAmBkI,SAKlC,EAAAC,WAA0C,GA+DlC,EAAAhB,eAAyB,GACzB,EAAAxmE,YAA2B,IAAI3C,EAC/B,EAAAmiB,gBAAmC,IAAId,GACvC,EAAAphB,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IAC/E,EAAAw9D,gBAA0B,EAC1B,EAAAC,iBAA6B,CAAC,UAAW,QAAS,QAAS,eACnD,EAAAC,YAAsB7qE,EAAe8mE,aAC7C,EAAAvR,iBAAmBj0D,uBAAUnC,EAAkBc,GACvC,EAAA6qE,cAA+B,GAC/B,EAAAC,oBAAkD,GAIlD,EAAAzB,kBAA8B,CAAC7G,GAAyB1gE,KAAM0gE,GAAyBl3B,aACvF,EAAAg+B,yBAAmC9G,GAAyB1gE,KAC5D,EAAAipE,mBAA6B,EAC7B,EAAAC,YAAsB,EAEtB,EAAAC,YAAsB,GAgGtB,EAAAC,gBAA0C,CAC9C,CACE1iE,KAAM,gBACN2iE,UAAW,KACXC,QAAS,eACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,MACN2iE,UAAW,eACXC,QAAS,kBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,SACN2iE,UAAW,eACXC,QAAS,qBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,gBACN2iE,UAAW,KACXC,QAAS,eACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,MACN2iE,UAAW,eACXC,QAAS,kBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,SACN2iE,UAAW,eACXC,QAAS,qBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,cACN2iE,UAAW,KACXC,QAAS,cACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,QACN2iE,UAAW,KACXC,QAAS,QACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,iBACN2iE,UAAW,QACXC,QAAS,gBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,iBACN2iE,UAAW,QACXC,QAAS,iBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,cACN2iE,UAAW,KACXC,QAAS,YACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,mBACN2iE,UAAW,KACXC,QAAS,kBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,GAEV,CACEpqC,KAAM,iBACN2iE,UAAW,KACXC,QAAS,gBACTC,UAAU,EACVt5B,QAAS,GACTa,OAAQ,IAyKN,EAAA04B,sBAAgC,EA0PhC,EAAAC,SAAmC,GAEnC,EAAAC,gBAA0C,GAC1C,EAAAC,mBAA6C,GAC7C,EAAAC,gBAA0C,GAC1C,EAAAC,mBAA6C,GAC7C,EAAApc,YAAsC,GACtC,EAAAqc,cAAwC,GACxC,EAAAC,eAAyC,GACzC,EAAAC,UAAoC,GACpC,EAAAC,gBAA0C,GAC1C,EAAAC,cAAwC,GAlsB9C,EAAK3+D,aAAe,IAAIjC,GAF1B,EAzBsC,qDA8B9B,SAAes1D,EAAgBn3D,GACrC,IAAMf,EAAOe,EAAQlR,KAAKmQ,KAE1B,GAAG3L,KAAKyoD,WAAagd,GAAmBgI,SAAoC,IAA1BztE,KAAK0oD,iBAA2B,CAChF,IAAM0mB,EAAgB1iE,EAAQlR,KAAK6zE,cAAgB3iE,EAAQlR,KAAK05C,QAAQkjB,SAAW,UAAY,GAC/FyL,EAAUxxD,UAAV,uBAAsC1G,EAAtC,6CAA4G,IAA9Be,EAAQlR,KAAK6zE,aAAyB,SAAW,GAA/H,iCAA0J3iE,EAAQlR,KAAKmQ,KAAvK,YAA+KyjE,EAA/K,gBAEG,GAAGpvE,KAAKyoD,WAAagd,GAAmBgI,OAAQ,CACnD,IAAM2B,EAAgB1iE,EAAQlR,KAAK8zE,cAAgB5iE,EAAQlR,KAAK05C,QAAQkjB,SAAW,UAAY,GAC/FyL,EAAUxxD,UAAV,uBAAsC1G,EAAtC,6CAA4G,IAA9Be,EAAQlR,KAAK8zE,aAAyB,SAAW,GAA/H,iCAA0J3jE,EAA1J,YAAkKyjE,EAAlK,gBAEG,GAAGpvE,KAAKyoD,WAAagd,GAAmBkI,SAAU,CACrD,IAAMyB,EAAgB1iE,EAAQlR,KAAK+zE,SAAW7iE,EAAQlR,KAAK05C,SAAWxoC,EAAQlR,KAAK05C,QAAQkjB,SAAW,UAAY,GAClHyL,EAAUxxD,UAAV,uBAAsC1G,EAAtC,6CAAuG,IAAzBe,EAAQlR,KAAK+zE,QAAoB,SAAW,GAA1H,iCAAqJ5jE,EAArJ,YAA6JyjE,EAA7J,cA3CkC,uBA+C9B,WACN,MAAO,QAAP,OAAepvE,KAAKwvE,oBAAsB,EAA1C,eAAkDvzE,OAAO4D,KAAKG,KAAKguE,eAAehyE,UAhD9C,2BAmD9B,WACN,GAAGgE,KAAKyoD,WAAagd,GAAmBgI,SAAoC,IAA1BztE,KAAK0oD,iBAA2B,CAChF,IAAM+mB,EAA4BxzE,OAAO4D,KAAKsF,IAAEuqE,OAAO1vE,KAAKguE,eAAe,SAAAx3D,GAAC,OAAKA,EAAEm5D,iBAAe3zE,OAClG,MAAO,GAAP,OAAUyzE,EAAV,eAEG,GAAGzvE,KAAKyoD,WAAagd,GAAmBgI,OAAQ,CACnD,IAAMmC,EAA6B3zE,OAAO4D,KAAKsF,IAAEuqE,OAAO1vE,KAAKguE,eAAe,SAAAx3D,GAAC,OAAGA,EAAEwrD,0BAAwBhmE,OAC1G,MAAO,GAAP,OAAU4zE,EAAV,gBAEG,GAAG5vE,KAAKyoD,WAAagd,GAAmBkI,SAAU,CACrD,IAAMkC,EAAyB5zE,OAAO4D,KAAKsF,IAAEuqE,OAAO1vE,KAAKguE,eAAe,SAAAx3D,GAAC,OAAEA,EAAEs5D,YAAU9zE,OACvF,MAAO,GAAP,OAAU6zE,EAAV,aAIF,OADAt4D,QAAQlD,MAAM,6CACP,KAlE6B,sBAqEtC,WACE,OAAOrU,KAAKwoD,aAtEwB,4BAyEtC,WACE,OAAOxoD,KAAKy4D,iBAAiBsX,iBA1EO,0BA6EtC,WACE,OAAO/vE,KAAKy4D,iBAAiBsF,eA9EO,+BAiFtC,WAA+B,WACzBiS,EAAiB7qE,IAAEikB,OAAOppB,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,aAAW,SAAAh4D,GAAC,OAAEA,EAAE0+B,QAASkjB,YAClF,OAAO4X,EAAe1T,WAAU,SAAA9lD,GAAC,OAAEA,EAAE0+B,QAASkjB,WAAa,EAAK51D,sBAnF5B,sBAyGtC,WACE,OAAOxC,KAAKouE,aA1GwB,IA4GtC,SAAep4D,GAAgB,WACb,KAAbA,GAED1D,YAAW,WACT,EAAK29D,WAAW,EAAKrD,kBACpB,KAEL5sE,KAAKouE,YAAcp4D,IAnHiB,qBAsHtC,WACEhW,KAAK2d,aAvH+B,qBA0HtC,WACE3d,KAAKmtB,MAAMC,IAAI,mBAAoBptB,KAAKkwE,kBACxClwE,KAAKmtB,MAAMC,IAAI,iBAAkBptB,KAAKmwE,wBACtCnwE,KAAKmtB,MAAMC,IAAI,qBAAsBptB,KAAKowE,sBA7HN,oCAgItC,SAAuBztE,GACjBwC,IAAEuF,KAAK1K,KAAKiuE,qBAAqB,SAAAz3D,GAAC,OAAIA,EAAE4hD,UAAYz1D,MAStD3C,KAAKqwE,WAAW,QAChBrwE,KAAKswE,iBAAiB3tE,IATnB3C,KAAKyoD,UAAYgd,GAAmBkI,SACrC3tE,KAAKie,QAAQ3hB,KAAK,CAACsB,KAAM,kBAGzBoC,KAAKie,QAAQ3hB,KAAK,CAACsB,KAAM,kBAtIO,gCA+ItC,SAAmB2yE,EAAwBC,GACzC,IAAIrY,EAASn4D,KAAKiuE,oBAAoBj8D,MAAK,SAAAy+D,GAAE,OAAIA,EAAGnpB,gBAAkBipB,GAAkBE,EAAG51D,aAAe21D,UAC3FnjE,IAAX8qD,GACFn4D,KAAKkwE,iBAAiB/X,EAAOC,YAlJK,8BAsJtC,SAAiBz1D,GACA,MAAZA,GAAwC,iBAAbA,IAC5BA,EAAU3C,KAAKwC,kBAEjBxC,KAAKswE,iBAAiB3tE,KA1Jc,+EA6JtC,sHACE3C,KAAK6tE,gBAAiB,EADxB,SAE0B7tE,KAAK0D,OAAOzF,IAAZ,2BAAuD+B,KAAKglB,aAA5D,gBAF1B,UAEM0rD,EAFN,OAGKA,IACDz0E,OAAO66B,OAAO92B,KAAKguE,cAAe0C,EAAYC,SAC9C3wE,KAAKiuE,oBAAsByC,EAAYE,gBAEnCC,EAAoB50E,OAAOygB,OAAO1c,KAAKguE,eACxChuE,KAAKyoD,UAAYgd,GAAmBkI,SACrC3tE,KAAKkuE,mBAAqB/oE,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAAgB,IAAdA,EAAEs5D,WAEpD9vE,KAAKyoD,UAAYgd,GAAmBgI,QAAUztE,KAAK0oD,iBACzD1oD,KAAKkuE,mBAAqB/oE,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAAqB,IAAnBA,EAAEm5D,gBAG1D3vE,KAAKkuE,mBAAqB/oE,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAA8B,IAA5BA,EAAEwrD,2BAI3DhiE,KAAKiuE,oBAAoBjyE,OAnB9B,iCAoB+BgE,KAAKwQ,aAAasgE,kBAAkB9wE,KAAKgM,UApBxE,OAoBQvJ,EApBR,OAqBIzC,KAAKy4D,iBAAiBsY,kBAAkBtuE,GArB5C,WAwBKzC,KAAKyoD,UAAYzoD,KAAK0tE,aAxB3B,kCAyBU1tE,KAAK4lB,gBAAgBorD,uBAAuBhxE,KAAKgM,UACtD3F,MAAK,SAAAxJ,GACF,IAAIo0E,EAA2Cp0E,EAC/Co0E,EAAkBjiE,SAAQ,SAAAwH,GACtB,IAAI+xC,EAAQ,EAAKrsB,WAAWlqB,MAAK,SAAAk/D,GAAC,OAAEA,EAAE90C,aAAc5lB,EAAE4lB,eACtD5lB,EAAE26D,cAAgB5oB,EAAQA,EAAMpsB,UAAY,MAEhD,EAAKs8B,iBAAiB2Y,oBAAoBH,MAhClD,yBAoCQjxE,KAAKqxE,0BApCb,iDA7JsC,6EAoMtC,WACE,OAAOp1E,OAAOygB,OAAO1c,KAAKguE,eAAe,GAAGniE,WArMR,8FAmTtC,WAA8BrK,GAA9B,6FACKxB,KAAKmuE,WADV,oDAKM3sE,EALN,gCAMqBxB,KAAKoG,YAAY2kE,0BAA0B,CAAEtmE,WAAY,eAAgB7G,KAAM,KANpG,OAMI4D,EANJ,qBASQusE,EAA2BvsE,EAASoC,QAAO,SAAAxG,GAAC,OAAIA,EAAE6H,MAAQhC,EAAgBC,kBAAgB,GAC7F6qE,IACD/tE,KAAK+tE,YAAcA,EAAY5+B,OAGjC3tC,EAAWA,EAASoC,QAAO,SAAAxG,GAAC,OAAIA,EAAE6H,OAAShC,EAAgBC,kBACvDouE,EAAiBx9C,oBAAOtyB,GAAU,SAAApE,GAAC,OAAIA,EAAE8tE,aAC7ClrE,KAAK8tE,iBAAmBwD,EAAejyE,KAAI,SAAAjC,GAAC,OAAIA,EAAE+xC,SAClDnvC,KAAKuxE,gCACLvxE,KAAK0uE,SAAS1yE,OAAS,EACvBgE,KAAK0uE,SAAW1uE,KAAKyoD,UAAYgd,GAAmBkI,SAAW3tE,KAAKwxE,gCAAiCxxE,KAAKyxE,wBACvGzxE,KAAKyoD,UAAYgd,GAAmBkI,SACrC3tE,KAAK0xE,wBAEC1xE,KAAKyoD,UAAYgd,GAAmBgI,QAC1CztE,KAAK2xE,oBAAoB3xE,KAAK0oD,kBAEhC1oD,KAAK4xE,sBACL5xE,KAAK6tE,gBAAiB,EA3BxB,UA8BQ7tE,KAAK01D,YA9Bb,QAgCE11D,KAAK6xE,oBAhCP,iDAnTsC,yFAsV9B,WACN,IAAIC,EAGFA,EADE9xE,KAAKyoD,UAAYgd,GAAmBkI,SACxBxoE,IAAE6M,KAAKhS,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAEg4D,WAAah4D,EAAE+4D,WACjDvvE,KAAKyoD,UAAYgd,GAAmBgI,QAAUztE,KAAK0oD,iBAC9CvjD,IAAE6M,KAAKhS,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAEg4D,WAAah4D,EAAE64D,gBAE5ClqE,IAAE6M,KAAKhS,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAEg4D,WAAah4D,EAAE84D,gBAIvDwC,IACHA,EAAc3sE,IAAE6M,KAAKhS,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAEg4D,aAE7CxuE,KAAK+xE,mBAAmBD,KArWY,oCAwW9B,SAAuBE,GAC7B,IAAIC,EAAOD,EACPE,EAAQ,GACZ,MAAMD,GAAQA,EAAKE,OACjBD,EAAMpmE,QAAQmmE,EAAKE,QACnBF,EAAOA,EAAKE,OAEd,OAAOD,IA/W6B,sCAkX9B,SAAyBxyE,GAC/B,GAAGA,EAAEuH,UAAUwN,UAAW,CACxB,IAAI29D,EAAgC1yE,EAAE2yE,iBAAiB,GACnDC,EAAuB5yE,EAAE6yE,yBAAyB,GAEtD,IAAIH,EACF,OAGF,GAAGA,EAAa5D,SAGd,OAFA9uE,EAAEuH,UAAUw4D,aAAa,CAAC2S,EAAa7D,eACvC7uE,EAAEuH,UAAUu4D,WAAW,CAAC8S,IAMvBF,EAAa7D,UAAYvuE,KAAK4sE,gBAC/B5sE,KAAK+xE,mBAAmBK,GAI1B,IAAII,EAAa9yE,EAAEuH,UAGfwrE,EAAkBD,EAAWE,aAAahzE,EAAE6yE,yBAAyB,IACrEI,EAAwB3yE,KAAK4yE,uBAAuBH,GACpDI,EAAkBL,EAAWE,aAAaN,EAAa7D,SACvDuE,EAAiB9yE,KAAK4yE,uBAAuBC,GAG7CE,EAAkBJ,EAAsB/uE,QAAO,SAAAovE,GAAO,OAAKF,EAAepoE,MAAK,SAAAuoE,GAAO,OAAIA,EAAQt0E,MAAQq0E,EAAQr0E,UAGtHo0E,EAAgB/jE,SAAQ,SAAAnQ,GAAC,OAAI2zE,EAAWU,YAAYr0E,EAAEF,QACtDm0E,EAAe9jE,SAAQ,SAAAnQ,GAAC,OAAI2zE,EAAWW,UAAUt0E,EAAEF,QAGnDqB,KAAKiwE,WAAWmC,EAAa7D,YAxZK,qCA4Z9B,SAAwB7uE,GAC9B,IAAM8yE,EAAexyE,KAAKuP,MAAMijE,WAAmBphE,SACnDohE,EAAWh0D,gBA9ZyB,iFAia9B,WAAiBhf,GAAjB,2FACHQ,KAAKuP,MAAMijE,WADR,gCAGExyE,KAAK01D,YAHP,OAIA8c,EAAexyE,KAAKuP,MAAMijE,WAAmBphE,SACjDohE,EAAWY,cAAc5zE,GALrB,gDAja8B,0FA0a9B,SAAmBqF,GACzB,IAAG7E,KAAKmuE,YAIJtpE,GAAQA,EAAK0pE,QAAS,CACxBvuE,KAAK4sE,eAAiB/nE,EAAK0pE,QAC3BvuE,KAAKyuE,qBAAuBtpE,IAAEm3D,UAAUn3D,IAAEihB,UAAUpmB,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAiB,GAAdA,EAAEg4D,cAAqB,SAAA6E,GAAE,OAAIA,EAAG9E,SAAW1pE,EAAK0pE,WAC7H,IAAIhsE,EAAiB4C,IAAEmuB,MAAMtzB,KAAKguE,cAAcnpE,EAAKqwC,QAASkjB,WAC9D71D,EAAeo/D,UAAY,GAC3B3hE,KAAKy4D,iBAAiB6a,kBAAkB/wE,GACxCvC,KAAKy4D,iBAAiB8a,oBAAoB1uE,EAAKqwC,QAASkjB,UACxDp4D,KAAKiwE,WAAWprE,EAAK0pE,YAtba,sBA2ctC,WACEvuE,KAAKqwE,WAAW,QAAO,KA5ca,sBA8ctC,WACErwE,KAAKqwE,WAAW,QAAO,KA/ca,4BAidtC,WACErwE,KAAKqwE,WAAW,QAAQ,KAldY,4BAodtC,WACErwE,KAAKqwE,WAAW,QAAQ,KArdY,wBAydtC,SAAWmD,GAAmF,IAAvD7kD,EAAuD,wDAA9B8kD,EAA8B,uDAAJ,KACpFC,EAAYD,GAAYzzE,KAAK4sE,eACjC,GAAG5sE,KAAK0uE,UAAY1uE,KAAK0uE,SAAS1yE,OAAQ,CACxC,IAAI23E,EAAa3zE,KAAK2zE,YAkBtB,GAhBG3zE,KAAKyoD,UAAYgd,GAAmBkI,UAAYh/C,EACjDglD,EAAYA,EAAU/vE,QAAO,SAAA4S,GAAC,OAAGA,EAAE+4D,SAAW/4D,EAAE+3D,SAAWmF,KAErD1zE,KAAKyoD,UAAYgd,GAAmBgI,QAAUztE,KAAK0oD,kBAAqB/5B,EAC9EglD,EAAYA,EAAU/vE,QAAO,SAAA4S,GAAC,OAAGA,EAAE64D,cAAgB74D,EAAE+3D,SAAWmF,KAE1D1zE,KAAKyoD,UAAYgd,GAAmBgI,QAAU9+C,IACpDglD,EAAYA,EAAU/vE,QAAO,SAAA4S,GAAC,OAAGA,EAAE84D,cAAgB94D,EAAE+3D,SAAWmF,MAI/DC,EAAU33E,QAAU,IACrB23E,EAAa3zE,KAAK2zE,aAIjBA,EAAU33E,QAAU,EACrB,OAGc,QAAbw3E,IACDG,EAAYxuE,IAAEyuE,QAAQD,IAGxB,IAAIE,EAAe1uE,IAAEm3D,UAAUqX,GAAW,SAAAn9D,GAAC,OAAGA,EAAE+3D,SAAWmF,KAC3D,GAAGG,EAAe,EAAG,CAEnB,IAAIC,GAAY,EACA,QAAbN,IACDM,EAAW,GAGb,IAAIC,EAAkB5uE,IAAEihB,UAAUpmB,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAiB,GAAdA,EAAEg4D,aAAoBxuE,KAAKyuE,qBAAqBqF,GAC3G,GAAGC,EAED,YADA/zE,KAAKqwE,WAAWmD,EAAU7kD,EAAOolD,EAAgBxF,SAIrD,IAAIyF,EAAUH,EAAa,EACvBI,EAA2BN,EAAUK,EAAUL,EAAU33E,QAC1Di4E,GACDj0E,KAAK+xE,mBAAmBkC,MAvgBQ,uBA4gB9B,WAAS,WACf,OAAoB,MAAjBj0E,KAAK0uE,UAAoB1uE,KAAK0uE,SAAS1yE,OACrCgE,KAAKysE,0BAA4B9G,GAAyB1gE,MAAQjF,KAAKouE,YACjEpuE,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAiB,GAAdA,EAAEg4D,UAAqBh4D,EAAE7K,KAAKiM,cAAcE,SAAS,EAAKs2D,YAAYx2D,kBAGrG5X,KAAKysE,0BAA4B9G,GAAyBl3B,aAAezuC,KAAKouE,YACxEpuE,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAiB,GAAdA,EAAEg4D,UACCh4D,EAAE09D,YACF19D,EAAE09D,WAAWC,yBACb39D,EAAE09D,WAAWC,wBAAwBv8D,cAAcE,SAAS,EAAKs2D,YAAYx2D,kBAG3G5X,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAiB,GAAdA,EAAEg4D,YAE7B,KA3hB6B,+BA8hBtC,WACMxuE,KAAKyoD,WAAagd,GAAmBkI,UAAmC,MAAvB3tE,KAAKuC,gBACnDvC,KAAKuC,eAAeutE,SACvB9vE,KAAKimB,MAAM,eAEbjmB,KAAKo0E,kBACIp0E,KAAKyoD,WAAagd,GAAmBgI,QAAiC,MAAvBztE,KAAKuC,iBAEzDvC,KAAK0oD,mBAAqB1oD,KAAKuC,eAAeotE,aAChD3vE,KAAKimB,MAAM,cACDjmB,KAAK0oD,kBAAqB1oD,KAAKuC,eAAey/D,uBACxDhiE,KAAKimB,MAAM,cAEbjmB,KAAKo0E,oBA3iB6B,uFAgjBtC,WAAuBzxE,GAAvB,+FACK3C,KAAKmuE,WADV,iEAK6BnuE,KAAK0D,OAAOzF,IAAZ,2BAAwD+B,KAAKglB,aAA7D,gCAAiGriB,IAL9H,OAKM0xE,EALN,OAMEr0E,KAAKguE,cAAgB/xE,OAAO66B,OAAO,GAAI92B,KAAKguE,cAAeqG,EAAe1D,SAC1ExrE,IAAEC,OAAOpF,KAAKiuE,qBAAqB,SAAAz3D,GAAC,OAAEA,EAAE4hD,UAAYz1D,KACpD3C,KAAKs0E,YAAYt0E,KAAKiuE,oBAAoBoG,EAAezD,iBACtD5wE,KAAKyoD,UAAYgd,GAAmBkI,UACrC3tE,KAAKu0E,oBAAoB5xE,GACrB6xE,EAAcx0E,KAAKwxE,8BAA8B6C,EAAezD,iBACpE5wE,KAAK0uE,SAAS1yE,OAAS,EACvBgE,KAAK0uE,SAAW8F,EAChBx0E,KAAK0xE,0BAGD/2D,EAAQ3a,KAAKyxE,wBACjBzxE,KAAK0uE,SAAS1yE,OAAS,EACvBgE,KAAK0uE,SAAW/zD,EAChB3a,KAAK2xE,oBAAoB3xE,KAAK0oD,mBAEhC1oD,KAAK4xE,sBAtBP,iDAhjBsC,2FAykBtC,SAAoBjvE,GAClBwC,IAAEC,OAAOpF,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KACtFwC,IAAEC,OAAOpF,KAAK2uE,iBAAiB,SAAAn4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC7F3C,KAAKy0E,4BAA4Bz0E,KAAK2uE,iBACtCxpE,IAAEC,OAAOpF,KAAK4uE,oBAAoB,SAAAp4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAChG3C,KAAKy0E,4BAA4Bz0E,KAAK4uE,oBACtCzpE,IAAEC,OAAOpF,KAAK6uE,iBAAiB,SAAAr4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC5F3C,KAAKy0E,4BAA4Bz0E,KAAK6uE,iBACvC1pE,IAAEC,OAAOpF,KAAK8uE,oBAAoB,SAAAt4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAChG3C,KAAKy0E,4BAA4Bz0E,KAAK8uE,oBACtC3pE,IAAEC,OAAOpF,KAAK0yD,aAAa,SAAAl8C,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KACzF3C,KAAKy0E,4BAA4Bz0E,KAAK0yD,aACtCvtD,IAAEC,OAAOpF,KAAKgvE,gBAAgB,SAAAx4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC5F3C,KAAKy0E,4BAA4Bz0E,KAAKgvE,gBACtC7pE,IAAEC,OAAOpF,KAAK+uE,eAAe,SAAAv4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC3F3C,KAAKy0E,4BAA4Bz0E,KAAK+uE,eACtC5pE,IAAEC,OAAOpF,KAAKivE,WAAW,SAAAz4D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KACvF3C,KAAKy0E,4BAA4Bz0E,KAAKivE,WACtC9pE,IAAEC,OAAOpF,KAAKkvE,iBAAiB,SAAA14D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC7F3C,KAAKy0E,4BAA4Bz0E,KAAKkvE,iBACtC/pE,IAAEC,OAAOpF,KAAKmvE,eAAe,SAAA34D,GAAC,OAAIA,EAAE0+B,SAAW1+B,EAAE0+B,QAAQkjB,UAAY5hD,EAAE0+B,QAAQkjB,UAAYz1D,KAC3F3C,KAAKy0E,4BAA4Bz0E,KAAKmvE,iBA9lBF,2CAimBtC,WACEnvE,KAAK2uE,gBAAgB3yE,OAAS,EAC9BgE,KAAK4uE,mBAAmB5yE,OAAS,EACjCgE,KAAK6uE,gBAAgB7yE,OAAS,EAC9BgE,KAAK8uE,mBAAmB9yE,OAAS,EACjCgE,KAAK0yD,YAAY12D,OAAS,EAC1BgE,KAAKgvE,eAAehzE,OAAS,EAC7BgE,KAAK+uE,cAAc/yE,OAAS,EAC5BgE,KAAKivE,UAAUjzE,OAAS,EACxBgE,KAAKkvE,gBAAgBlzE,OAAS,EAC9BgE,KAAKmvE,cAAcnzE,OAAS,IA3mBQ,yCA8mBtC,SAA4B04E,GAAgC,WAE1D,GAAGA,GAAYA,EAAS14E,OAAS,EAAG,CAClC,IAAI24E,EAAYxvE,IAAEihB,UAAUsuD,GAAU9wE,QAAO,SAAA4S,GAAC,OAAK,EAAK63D,gBAAgBhvE,KAAI,SAAAu1E,GAAC,OAAIA,EAAErG,WAASz2D,SAAStB,EAAE+3D,UAC9D/3D,EAAEg4D,UAAuB,MAAXh4D,EAAEu/B,OAAkBv/B,EAAE0+B,UAAY1+B,EAAE0+B,QAAQkjB,YACnGuc,EAAYxvE,IAAEsiB,QAAQktD,EAAW,CAAC,SAAS,CAAC,SAE5CA,EAAU3lE,SAAQ,SAAAwH,GAChB,IAAI6pC,EAAMl7C,IAAEm3D,UAAUoY,GAAU,SAAA7vE,GAAI,OAAIA,EAAKypE,WAAa93D,EAAE+3D,YACjD,GAARluB,GACDl7C,IAAEC,OAAOsvE,GAAU,SAAA7vE,GAAI,OAAIA,EAAK0pE,SAAW/3D,EAAE+3D,iBAxnBf,gCA8nBtC,SAAmB5rE,EAAgBkyE,GACjC,GAAG70E,KAAKyoD,UAAYgd,GAAmBkI,SAAU,CAC/C,IAAIhzD,EAAQ3a,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAIA,EAAEg4D,UAAYh4D,EAAE0+B,QAASkjB,UAAYz1D,KACvEmyE,EAAa90E,KAAKiuE,oBAAoBrqE,QAAO,SAAA4S,GAAC,OAAEA,EAAE4hD,UAAYz1D,KAClEmyE,EAAY9lE,SAAQ,SAAAwH,GAClBA,EAAEu+D,UAAYF,KAEhBl6D,EAAM3L,SAAQ,SAAAwH,GACVA,EAAE+4D,QAAUsF,EACZr+D,EAAE0+B,QAAS6/B,UAAYF,KAE3B70E,KAAKguE,cAAcrrE,GAAUmtE,QAAU+E,EACvC70E,KAAK0xE,wBACF1xE,KAAKuC,eAAgB61D,WAAaz1D,GACnC3C,KAAKo0E,sBAGDp0E,KAAKyoD,UAAYgd,GAAmBgI,SACvCztE,KAAK0oD,kBACN1oD,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAIA,EAAEg4D,UAAYh4D,EAAE0+B,QAASkjB,WAAaz1D,KAAUqM,SAAQ,SAAAwH,GAAKA,EAAE64D,aAAewF,KACxG70E,KAAKguE,cAAcrrE,GAAUgtE,aAAekF,EAC5C70E,KAAKuC,eAAgBotE,aAAekF,GAGjC70E,KAAKyoD,UAAYgd,GAAmBgI,SACrCztE,KAAK0uE,SAAS9qE,QAAO,SAAA4S,GAAC,OAAIA,EAAEg4D,UAAYh4D,EAAE0+B,QAASkjB,WAAaz1D,KAAUqM,SAAQ,SAAAwH,GAAKA,EAAE84D,aAAeuF,KACxG70E,KAAKguE,cAAcrrE,GAAUq/D,sBAAwB6S,EACrD70E,KAAKuC,eAAgBy/D,sBAAwB6S,GAGjD70E,KAAK2xE,oBAAoB3xE,KAAK0oD,mBAGhC1oD,KAAK4xE,wBA/pB+B,2BAkqBtC,WACE5xE,KAAKy4D,iBAAiB2Y,oBAAoB,IAC1CpxE,KAAKy4D,iBAAiBsY,kBAAkB,IACxC/wE,KAAKy4D,iBAAiB8a,oBAAoB,MAC1CvzE,KAAKy4D,iBAAiB6a,kBAAkB,MACxCtzE,KAAK2uE,gBAAgB3yE,OAAS,EAC9BgE,KAAK6uE,gBAAgB7yE,OAAS,EAC9BgE,KAAK4uE,mBAAmB5yE,OAAS,EACjCgE,KAAK8uE,mBAAmB9yE,OAAS,EACjCgE,KAAKgvE,eAAehzE,OAAS,EAC7BgE,KAAK+uE,cAAc/yE,OAAS,EAC5BgE,KAAK0yD,YAAY12D,OAAS,EAC1BgE,KAAKivE,UAAUjzE,OAAS,EACxBgE,KAAKkvE,gBAAgBlzE,OAAS,EAC9BgE,KAAKmvE,cAAcnzE,OAAS,EAC5BgE,KAAKiuE,oBAAoBjyE,OAAS,EAClCgE,KAAK0uE,SAAS1yE,OAAS,EACvBgE,KAAKmtB,MAAMG,KAAK,mBAAoBttB,KAAKkwE,kBACzClwE,KAAKmtB,MAAMG,KAAK,iBAAkBttB,KAAKmwE,wBACvCnwE,KAAKmtB,MAAMG,KAAK,qBAAsBttB,KAAKowE,oBAC3CpwE,KAAKg1E,sBACLh1E,KAAK0kE,iBACL1kE,KAAK6tE,gBAAe,IAxrBgB,4BA2rBtC,WACE,IAAI2E,EAAaxyE,KAAKuP,MAAMijE,WAC5B,GAAGA,EAAY,CACb,IAAIyC,EAAmBzC,EAAWphE,SAClC6jE,EAAiBtQ,IAAI,oBACrBsQ,EAAiB3oE,OAAO,0BAAsBe,GAC9C4nE,EAAiBrQ,UAEnB5kE,KAAKmuE,YAAa,IAnsBkB,iCAssBtC,WACE,IAAI,IAAIxvE,KAAOqB,KAAKguE,cACfhuE,KAAKguE,cAAc7xE,eAAewC,WAC5BqB,KAAKguE,cAAcrvE,KAzsBM,uBA8sBtC,WACE,OAAOqB,KAAK0uE,WA/sBwB,2CA+tB9B,WAA0F,IAA5DvR,EAA4D,4DAAT9vD,EACnFynE,EAAc3X,GAAgCn9D,KAAKiuE,oBACnDiH,EAA6C,GAC7CC,EAA8C,GAC9CC,EAAiD,GACjDC,EAA8C,GAC9CC,EAAiD,GACjDC,EAA0C,GAC1CC,EAA4C,GAC5CC,EAA6C,GAC7CC,EAAwC,GACxCC,EAA8C,GAC9CC,EAA4C,GAGhDT,EAAsBn1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAoB,GAAjBA,EAAEqxD,aAAwC,OAAjBrxD,EAAEoxD,aAAuC,GAAfpxD,EAAEq/D,cAChIV,EAAoBnmE,SAAQ,SAAAwH,GAC1BA,EAAE83D,UAAY,mBAAmC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC/D93D,EAAE+3D,QAAU,kBAAkB/3D,EAAE+3D,WAGlC6G,EAAyBp1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAoB,GAAjBA,EAAEqxD,aAAwC,UAAjBrxD,EAAEoxD,aAA0C,GAAfpxD,EAAEq/D,cACtIT,EAAuBpmE,SAAQ,SAAAwH,GAC7BA,EAAE83D,UAAY,sBAAsC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAClE93D,EAAE+3D,QAAU,qBAAqB/3D,EAAE+3D,WAGrC8G,EAAsBr1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAoB,GAAjBA,EAAEmyD,aAAwC,OAAjBnyD,EAAEoxD,aAAuC,GAAfpxD,EAAEq/D,cAChIR,EAAoBrmE,SAAQ,SAAAwH,GAC1BA,EAAE83D,UAAY,mBAAmC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC/D93D,EAAE+3D,QAAU,kBAAkB/3D,EAAE+3D,WAGlC+G,EAAyBt1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAoB,GAAjBA,EAAEmyD,aAAwC,UAAjBnyD,EAAEoxD,aAA0C,GAAfpxD,EAAEq/D,cACtIP,EAAuBtmE,SAAQ,SAAAwH,GAC7BA,EAAE83D,UAAY,sBAAsC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAClE93D,EAAE+3D,QAAU,qBAAqB/3D,EAAE+3D,WAGrCgH,EAAkBv1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAsB,GAAnBA,EAAEs/D,kBACzEP,EAAgBvmE,SAAQ,SAAAwH,GACtBA,EAAE83D,UAAY,eAA+B,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC3D93D,EAAE+3D,QAAU,cAAc/3D,EAAE+3D,WAG5BiH,EAAoBx1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAY,SAAAt+D,GAAC,OAAyB,GAAtBA,EAAEu/D,qBAC1EP,EAAkBxmE,SAAQ,SAAAwH,GACxBA,EAAE83D,UAAY,iBAAiC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC7D93D,EAAE+3D,QAAU,gBAAgB/3D,EAAE+3D,WAGhCkH,EAAqBz1E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAY,SAAAt+D,GAAC,OAA0B,GAAvBA,EAAEw/D,sBAC3EP,EAAmBzmE,SAAQ,SAAAwH,GACzBA,EAAE83D,UAAY,kBAAkC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC9D93D,EAAE+3D,QAAU,iBAAiB/3D,EAAE+3D,WAGnCmH,EAAgB11E,KAAKyxE,sBAAsBtsE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAkB,GAAfA,EAAEq/D,YAAuC,GAAjBr/D,EAAEmyD,aAAwC,GAAjBnyD,EAAEqxD,iBACxH6N,EAAc1mE,SAAQ,SAAAwH,GACpBA,EAAE83D,UAAY,aAA8B,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC1D93D,EAAE+3D,QAAU,YAAa/3D,EAAE+3D,WAG7BoH,EAAsB31E,KAAKi2E,yBAAyB9wE,IAAEvB,OAAOkxE,GAAa,SAAAt+D,GAAC,OAAyB,GAAtBA,EAAE0/D,qBAChFP,EAAoB3mE,SAAQ,SAAAwH,GAC1BA,EAAE83D,UAAY,mBAAoC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAChE93D,EAAE+3D,QAAU,kBAAmB/3D,EAAE+3D,WAGhC4G,EAAoBn5E,OAAS,IAC9BgE,KAAK2uE,gBAAkB3uE,KAAKm2E,+BAA+Bn2E,KAAK2uE,gBAAiBwG,IAEhFC,EAAuBp5E,OAAS,IACjCgE,KAAK4uE,mBAAqB5uE,KAAKm2E,+BAA+Bn2E,KAAK4uE,mBAAoBwG,IAEtFC,EAAoBr5E,OAAS,IAC9BgE,KAAK6uE,gBAAkB7uE,KAAKm2E,+BAA+Bn2E,KAAK6uE,gBAAiBwG,IAEhFC,EAAuBt5E,OAAS,IACjCgE,KAAK8uE,mBAAqB9uE,KAAKm2E,+BAA+Bn2E,KAAK8uE,mBAAoBwG,IAEtFC,EAAgBv5E,OAAS,IAC1BgE,KAAK0yD,YAAc1yD,KAAKm2E,+BAA+Bn2E,KAAK0yD,YAAa6iB,IAExEC,EAAkBx5E,OAAS,IAC5BgE,KAAK+uE,cAAgB/uE,KAAKm2E,+BAA+Bn2E,KAAK+uE,cAAeyG,IAE5EC,EAAmBz5E,OAAS,IAC7BgE,KAAKgvE,eAAiBhvE,KAAKm2E,+BAA+Bn2E,KAAKgvE,eAAgByG,IAG9EC,EAAc15E,OAAS,IACxBgE,KAAKivE,UAAYjvE,KAAKm2E,+BAA+Bn2E,KAAKivE,UAAWyG,IAEpEC,EAAoB35E,OAAS,IAC9BgE,KAAKkvE,gBAAkBlvE,KAAKm2E,+BAA+Bn2E,KAAKkvE,gBAAiByG,IAGnF31E,KAAKs0E,YAAYY,EAAoBl1E,KAAKquE,iBAC1CruE,KAAKs0E,YAAYY,EAAoBl1E,KAAK2uE,iBAC1C3uE,KAAKs0E,YAAYY,EAAoBl1E,KAAK4uE,oBAC1C5uE,KAAKs0E,YAAYY,EAAoBl1E,KAAK6uE,iBAC1C7uE,KAAKs0E,YAAYY,EAAoBl1E,KAAK8uE,oBAC1C9uE,KAAKs0E,YAAYY,EAAoBl1E,KAAK0yD,aAC1C1yD,KAAKs0E,YAAYY,EAAoBl1E,KAAK+uE,eAC1C/uE,KAAKs0E,YAAYY,EAAoBl1E,KAAKgvE,gBAC1ChvE,KAAKs0E,YAAYY,EAAoBl1E,KAAKivE,WAC1CjvE,KAAKs0E,YAAYY,EAAoBl1E,KAAKkvE,iBAE1C,IAAIkH,EAAoBjxE,IAAEiH,KAAK8oE,EAAmBtxE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAEvFwd,EAA6C,GAajD,OAZAA,EAAoB51E,KAAKyxE,sBAAsBqD,EAAYlxE,QAAO,SAAA4S,GAAC,OAAG4/D,EAAkBp+D,QAAQxB,EAAE4hD,UAAY,MAC9Gwd,EAAkB5mE,SAAQ,SAAAwH,GACxBA,EAAE83D,UAAY,iBAAiC,MAAf93D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC7D93D,EAAE+3D,QAAU,gBAAgB/3D,EAAE+3D,WAG7BqH,EAAkB55E,OAAS,IAC5BgE,KAAKmvE,cAAgBnvE,KAAKm2E,+BAA+Bn2E,KAAKmvE,cAAeyG,IAE/E51E,KAAKs0E,YAAYY,EAAoBl1E,KAAKmvE,eAC1C+F,EAAqB/vE,IAAEikB,OAAO8rD,GAAoB,SAAAp5E,GAAC,OAAIA,EAAEyyE,WAElD2G,IA31B6B,4CA81BtC,SAA+BnuB,EAAgCz3B,GAA8B,WACrFzyB,EAAiC,GACjCw5E,EAAalxE,IAAEC,OAAO2hD,GAAQ,SAAAvwC,GAAC,OAAIA,EAAEg4D,YACrC8H,EAAmBnxE,IAAEC,OAAOkqB,GAAQ,SAAA9Y,GAAC,OAAIA,EAAEg4D,YAC3C+H,EAA2C,GAC3CC,EAAwC,GAC5C,GAAIH,GAAcA,EAAWr6E,OAAS,GACnCs6E,GAAoBA,EAAiBt6E,OAAS,EAAI,CACnDs6E,EAAiBtnE,SAAQ,SAAAwH,GAEvB,IAAIigE,EAAatxE,IAAEm3D,UAAU+Z,GAAY,SAAAzB,GAAC,OAAIA,EAAErG,SAAW/3D,EAAE+3D,YAC3C,GAAfkI,GACDJ,EAAW/5E,KAAKka,MAGpB+/D,EAAkBv2E,KAAK02E,mBAAmBL,GAE1C,IAAIM,EAAoBxxE,IAAEyxE,MAAML,EAAgBl3E,KAAI,SAAAmX,GAAC,OAAGA,EAAEu/B,WAAW,EACjE8gC,EAAuBN,EAAgB3yE,QAAO,SAAA4S,GAAC,OAAIA,EAAEu/B,OAAS4gC,KAClE32E,KAAKs0E,YAAYvtB,EAAQz3B,GACzBunD,EAAqB7nE,SAAQ,SAAAkwC,GAC3B,IAAIvkC,EAAQ,EAAKm8D,UAAU3xE,IAAEvB,OAAOmjD,GAAQ,SAAAvwC,GAAC,OAAIA,EAAE83D,WAAapvB,EAAQqvB,YAExE,EAAK+F,YAAYkC,EAAe77D,MAGlC3a,KAAKs0E,YAAYz3E,EAAQ05E,GACzBv2E,KAAKs0E,YAAYz3E,EAAQ25E,QAGzBx2E,KAAKs0E,YAAYvtB,EAAQz3B,GAEzBy3B,EAAS/mD,KAAK82E,UAAU/vB,GACxB/mD,KAAKs0E,YAAYz3E,EAAQkqD,GAI3B,OADAlqD,EAASsI,IAAEikB,OAAOvsB,GAAQ,SAAAf,GAAC,OAAIA,EAAEyyE,WAC1B1xE,IAn4B2B,gCAs4BtC,SAAmB8d,GAAiC,WAC9Co8D,EAAgC,GAEpC,GAAmB,GAAhBp8D,EAAM3e,OACP,MAAO,GAGT,IAAIg7E,EAAe7xE,IAAE8xE,MAAMt8D,GAAO,SAAAnE,GAAC,OAAIA,EAAEu/B,SACrCmhC,EAAWF,EAAeA,EAAajhC,MAAQ,EAC/CohC,EAAcH,EAAeA,EAAaI,SAAW,GACrDC,EAAgBlyE,IAAEvB,OAAO+W,GAAO,SAAAnE,GAAC,OAAIA,EAAEu/B,OAASmhC,KAGlDH,EADgB,SAAfI,EACMn3E,KAAKs3E,YAAYD,GAEJ,eAAdF,EACCn3E,KAAKu3E,iBAAiBF,GAGtBlyE,IAAE2uB,OAAOujD,EAAe,CAAC,SAGlC,IAAIG,EAAYryE,IAAEihB,UAAU2wD,GAO5B,OANAS,EAAUxoE,SAAQ,SAAAwH,GAChB,IAAIihE,EAAiB98D,EAAM/W,QAAO,SAAAgxE,GAAC,OAAIA,EAAEtG,WAAasG,EAAEtG,UAAUx2D,SAAStB,EAAE+3D,YAE7E,EAAK+F,YAAYyC,EAAM,EAAKL,mBAAmBe,OAG1CV,IAn6B6B,iCAs6B9B,SAAoBW,GAAyB,WAC/CC,EAAoBxyE,IAAE8xE,MAAMj3E,KAAK0uE,UAAU,SAAA7pE,GAAI,OAAIA,EAAKkxC,SAE5D,GAAG4hC,QAAgDtqE,GAA3BsqE,EAAkB5hC,MAAoB,CAC5D,IAAI6hC,EAAgBzyE,IAAEvB,OAAO5D,KAAK0uE,UAAU,SAAA7pE,GAAI,OAAIA,EAAK2pE,UAAY3pE,EAAKkxC,QAAU4hC,EAAoBA,EAAkB5hC,MAAQ,MAElI6hC,EAAc5oE,SAAQ,SAAA6oE,GACpB,IAAIC,EAAU3yE,IAAEvB,OAAO,EAAK8qE,UAAU,SAAA7pE,GAAI,OAAKA,EAAK2pE,UAAY3pE,EAAK0pE,QAAQz2D,SAAS+/D,EAAQtJ,YAC1FnuB,EAAQ03B,EAAQ97E,OAChB+7E,EAAiBL,EAAmBvyE,IAAEvB,OAAOk0E,GAAS,SAAAjzE,GAAI,OAAIA,EAAKwqE,gBAAcrzE,OAASmJ,IAAEvB,OAAOk0E,GAAS,SAAAjzE,GAAI,OAAIA,EAAKyqE,gBAActzE,OAE3I67E,EAAQlsE,KAAR,UAAkBksE,EAAQtJ,QAA1B,YAAqCwJ,EAArC,YAAuD33B,SAj7BvB,mCAs7B9B,WACN,GAAGpgD,KAAKyoD,UAAYgd,GAAmBkI,SAAvC,CAIA,IAAIqK,EAAoBh4E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,gBAAXA,EAAE+3D,WAC5C0J,EAAmB9yE,IAAEiH,KAAKpM,KAAK2uE,gBAAgBtpE,OAAOrF,KAAK4uE,oBAAoBhrE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACnIk8E,EAA0B/yE,IAAEiH,KAAKpM,KAAK2uE,gBAAgBtpE,OAAOrF,KAAK4uE,oBAAoBhrE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC3Jg8E,EAAmBrsE,KAAnB,wBAAyCusE,EAAzC,YAAoED,GAEpE,IAAIE,EAAoBn4E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,gBAAXA,EAAE+3D,WAC5C6J,EAAmBjzE,IAAEiH,KAAKpM,KAAK6uE,gBAAgBxpE,OAAOrF,KAAK8uE,oBAAoBlrE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACnIq8E,EAA0BlzE,IAAEiH,KAAKpM,KAAK6uE,gBAAgBxpE,OAAOrF,KAAK8uE,oBAAoBlrE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC3Jm8E,EAAmBxsE,KAAnB,wBAA2C0sE,EAA3C,YAAsED,GAEtE,IAAIE,EAAct4E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,SAAXA,EAAE+3D,WACtCgK,EAAapzE,IAAEiH,KAAKpM,KAAK+uE,cAAc1pE,OAAOrF,KAAKgvE,gBAAgBprE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACvHw8E,EAAoBrzE,IAAEiH,KAAKpM,KAAK+uE,cAAc1pE,OAAOrF,KAAKgvE,gBAAgBprE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAa/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAChJs8E,EAAa3sE,KAAb,gBAA6B6sE,EAA7B,YAAkDD,GAElD,IAAIE,EAAoBz4E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,eAAXA,EAAE+3D,WAC5CmK,EAAmBvzE,IAAEiH,KAAKpM,KAAK0yD,YAAY9uD,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC/F28E,EAA0BxzE,IAAEiH,KAAKpM,KAAK0yD,YAAY9uD,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACvHy8E,EAAmB9sE,KAAnB,sBAAwCgtE,EAAxC,YAAmED,GAEnE,IAAIE,EAAkB54E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,aAAXA,EAAE+3D,WAC1CsK,EAAiB1zE,IAAEiH,KAAKpM,KAAKivE,UAAUrrE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC3F88E,EAAwB3zE,IAAEiH,KAAKpM,KAAKivE,UAAUrrE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACnH48E,EAAiBjtE,KAAjB,sBAAuCmtE,EAAvC,YAAgED,GAEhE,IAAIE,EAAwB/4E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,mBAAXA,EAAE+3D,WAChDyK,EAAuB7zE,IAAEiH,KAAKpM,KAAKkvE,gBAAgBtrE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OACvGi9E,EAA8B9zE,IAAEiH,KAAKpM,KAAKkvE,gBAAgBtrE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC/H+8E,EAAuBptE,KAAvB,2BAAkDstE,EAAlD,YAAiFD,GAEjF,IAAIE,EAAsBl5E,KAAK0uE,SAAS18D,MAAK,SAAAwE,GAAC,MAAa,iBAAXA,EAAE+3D,WAC9C4K,EAAoBh0E,IAAEiH,KAAKpM,KAAKmvE,cAAcvrE,QAAO,SAAA4S,GAAC,OAAGA,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAClGo9E,EAA2Bj0E,IAAEiH,KAAKpM,KAAKmvE,cAAcvrE,QAAO,SAAA4S,GAAC,OAAEA,EAAE+4D,UAAY/4D,EAAEg4D,YAAUnvE,KAAI,SAAAmX,GAAC,OAAEA,EAAE0+B,QAASkjB,aAAWp8D,OAC1Hk9E,EAAqBvtE,KAArB,yBAA8CytE,EAA9C,YAA0ED,MA59BtC,iCA+9B9B,WAAmB,WACrBE,EAAUl0E,IAAE2uB,OAAO3uB,IAAEiH,KAAKjH,IAAEvB,OAAO5D,KAAK0uE,UAAU,SAAAl4D,GAAC,OAAIA,EAAEg4D,cAAY,SAAAh4D,GAAC,OAAe,EAAZA,EAAEu/B,SAC/EsjC,EAAQrqE,SAAQ,SAAAwH,GACX,EAAKiyC,UAAYgd,GAAmBkI,SACrCn3D,EAAE+4D,SAAW,EAAKb,SAAShkE,MAAK,SAAAwmE,GAAC,OAAIA,EAAE5C,WAAa93D,EAAE+3D,SAAwB,GAAb2C,EAAE3B,WAE7D,EAAK9mB,UAAYgd,GAAmBgI,QAAU,EAAK/kB,iBACzDlyC,EAAE64D,cAAgB,EAAKX,SAAShkE,MAAK,SAAAwmE,GAAC,OAAIA,EAAE5C,WAAa93D,EAAE+3D,SAA6B,GAAlB2C,EAAE7B,gBAGxE74D,EAAE84D,cAAgB,EAAKZ,SAAShkE,MAAK,SAAAwmE,GAAC,OAAIA,EAAE5C,WAAa93D,EAAE+3D,SAA6B,GAAlB2C,EAAE5B,qBAz+BxC,mCA8+B9B,SAAsB30D,GAAkC,WAClD,MAATA,IACDA,EAAQ3a,KAAKiuE,qBAIf,IAAIqL,EAA0C,GAC1Cv9B,EAAsB,GAE1B,GAAG/7C,KAAK8tE,iBAAiB9xE,OAAQ,CAG/B,IAAIu9E,EAAap0E,IAAE2uB,OAAO9zB,KAAK8tE,iBAAiBzuE,KAAI,SAAAmX,GAAK,MAAO,CAAE4gE,SAAU5gE,EAAG7X,IAAK,EAAK66E,gBAAgBhjE,OAAO,CAAC,QAE7GijE,EAAoBt0E,IAAEu8C,QAAQ/mC,GAAO,SAACu6B,GACpC,IAAI2M,EAAc,GACd0sB,EAAUgL,EAAWl6E,KAAI,SAAAmX,GAC3B,IAAInY,EAAgB62C,EAAQ1+B,EAAE7X,KAK9B,MAJY,gBAAT6X,EAAE7X,MACHN,EAAQ2uE,GAAkB93B,EAAQ1+B,EAAE7X,OAEtCkjD,EAAOrrC,EAAE4gE,UAAY/4E,EACdA,KACNyF,KAAK,IAGR,OAFA+9C,EAAO,YAAc0sB,EACrBxyB,EAAQz/C,KAAKulD,GACN0sB,KAITmL,EAAgBv0E,IAAEikB,OAAO2yB,GAAQ,SAACvlC,GAAD,OAAMA,EAAE,eACzC6/D,EAAqC,GACrCsD,EAAmC,GAGvCx0E,IAAE6J,QAAQ0qE,GAAe,SAAA73B,GACrB,IAAI0sB,EAAkB,GAClBqL,EAAiB,EAAK9L,iBAAiB97D,MAAK,SAAAwE,GAAC,MAAS,SAALA,KACjDqjE,EAAiB,EAAK/L,iBAAiB97D,MAAK,SAAAwE,GAAC,MAAS,SAALA,KACrD,EAAKs3D,iBAAiB9+D,SAAQ,SAACwH,EAAE1R,EAAMC,GAEvC,IAAIF,EAAwB,CAC1B8G,KAAMk2C,EAAOrrC,GACb83D,UAAoB,GAATxpE,EAAa,KAAOypE,EAC/BA,QAASzpE,GAASC,EAAI/I,OAAS,EAAI6lD,EAAO,YAAc0sB,EAAQ1sB,EAAOrrC,GACvEg4D,UAAU,EACVt5B,QAAS,GACTkiC,SAAU5gE,EACVu/B,MAAOjxC,EACPwqE,cAAc,EACdC,SAAS,EACTF,cAAc,GAEhBd,GAAkB1sB,EAAOrrC,GACzB6/D,EAAW/5E,KAAKuI,MAGlB,IAAI6pE,EAAWvpE,IAAE2uB,OAAO3uB,IAAEikB,OAAOqwD,EAAkB53B,EAAO,cAAc,SAACrrC,GAAD,OAAMqrC,EAAO,YAAYrrC,EAAE4hD,YAAU,CAAC,SAC9GjzD,IAAE6J,QAAQ7J,IAAEihB,UAAUsoD,IAAU,SAACl4D,GAC/B,IAAIsjE,EAAaj4B,EAAO+3B,GAAkB,IACtCG,EAAal4B,EAAOg4B,GAAkB,IAEvCC,GAAcC,GACfvjE,EAAEurD,sBAAwBvrD,EAAEwjE,gBAAgBjY,sBAC5CvrD,EAAEqrD,eAAiBrrD,EAAEwjE,gBAAgB9e,eAE/B4e,GACNtjE,EAAEurD,sBAAwBvrD,EAAEwjE,gBAAgBC,yBAC5CzjE,EAAEqrD,eAAiBrrD,EAAEwjE,gBAAgBE,mBAE/BH,GACNvjE,EAAEurD,sBAAwBvrD,EAAEwjE,gBAAgBG,yBAC5C3jE,EAAEqrD,eAAiBrrD,EAAEwjE,gBAAgBI,oBAGrC5jE,EAAEurD,sBAAwBvrD,EAAEwjE,gBAAgBK,mBAC5C7jE,EAAEqrD,eAAiBrrD,EAAEwjE,gBAAgBM,aAGvC,IAAIC,EAA+B,CACjC5uE,KAAM6K,EAAE8wC,eACRgnB,UAAWzsB,EAAO,YAClB0sB,QAAU1sB,EAAO,YAAYrrC,EAAE4hD,SAC/BoW,UAAU,EACVt5B,QAAS1+B,EACT84D,aAAc,EAAKtB,cAAcx3D,EAAE4hD,UAAU4J,sBAC7CqN,aAAc,EAAKrB,cAAcx3D,EAAE4hD,UAAUuX,aAC7CJ,UAAS/4D,EAAEu+D,UACXh/B,MAAO,KACPm+B,WAAY,EAAKlG,cAAcx3D,EAAE4hD,WAEnCuhB,EAASr9E,KAAKi+E,SAIlBlE,EAAar2E,KAAKw6E,YAAYr1E,IAAEikB,OAAOitD,GAAW,SAAC7/D,GAAD,OAAMA,EAAE7K,KAAK6K,EAAE+3D,WAAU,MAE3E8H,EAAWzyE,QAAO,SAAA4S,GAAC,OAAEA,EAAEu/B,OAAS,EAAK+3B,iBAAiB9xE,OAAS,KAAGgT,SAAQ,SAAAwH,GACxE,IAAIikE,EAAUt1E,IAAEC,OAAOu0E,GAAU,SAAAzI,GAAC,OAAGA,EAAE5C,WAAa93D,EAAE+3D,WACtDkM,EAAU,EAAK3D,UAAU2D,GACzB,EAAKnG,YAAYqF,EAAUc,MAE7Bz6E,KAAKs0E,YAAYgF,EAAiBjD,GAClCr2E,KAAKs0E,YAAYgF,EAAiBK,OAE/B,CACH,IAAIe,EAAYv1E,IAAE2uB,OAAO3uB,IAAEikB,OAAOzO,GAAO,SAAAnE,GAAC,OAAIA,EAAE4hD,YAAW,CAAC,mBAC5DjzD,IAAE6J,QAAQ7J,IAAEihB,UAAUs0D,IAAY,SAAAlkE,GAChCA,EAAEurD,sBAAwBvrD,EAAEwjE,gBAAgBK,mBAC5C7jE,EAAEqrD,eAAiBrrD,EAAEwjE,gBAAgBM,YAErC,IAAIC,EAA+B,CAC/B5uE,KAAM6K,EAAE8wC,eACRgnB,UAAW,KACXC,QAAU/3D,EAAE4hD,SACZoW,UAAU,EACVt5B,QAAS1+B,EACT84D,aAAc,EAAKtB,cAAcx3D,EAAE4hD,UAAU4J,sBAC7CqN,aAAc,EAAKrB,cAAcx3D,EAAE4hD,UAAUuX,aAC7CJ,UAAS/4D,EAAEu+D,UACXh/B,MAAO,EACPm+B,WAAY,EAAKlG,cAAcx3D,EAAE4hD,WAEnCkhB,EAAgBh9E,KAAKi+E,MAEzBjB,EAAkBt5E,KAAK82E,UAAUwC,GAEnC,OAAOA,IA7mC6B,sCAgnCtC,SAAyB3+D,GAAkC,WAC7C,MAATA,QAA0BtN,GAATsN,IAClBA,EAAQ3a,KAAKiuE,qBAIf,IAAI0M,EAAwBx1E,IAAEy1E,QAAQjgE,EAAMtb,KAAI,SAAAvD,GAAC,OAAIA,EAAE++E,mBACnDC,EAAc31E,IAAE2uB,OAAO3uB,IAAEikB,OAAOuxD,GAAsB,SAAAI,GAAE,OAAIA,EAAGC,0BAAwB,SAAA98E,GAAC,OAAIA,EAAE+8E,YAE9F5E,EAAqC,GACzClxE,IAAE6J,QAAQ8rE,GAAa,SAAA58E,GACrBm4E,EAAWvqE,QAAQ,CACjBH,KAAMzN,EAAE+8E,SACR3M,UAAW,GACXC,QAASrwE,EAAE88E,sBACXxM,UAAU,EACVt5B,QAAS,GACTa,OAAQ,OAMZ,IADA,IAAI24B,EAAmC,GAtBkB,aAuBpD,IAAIwM,EAAO,KACdxM,EAAS5iE,QAAQovE,GACjB,IAAIC,EAAWxgE,EAAM/W,QAAO,SAAA9H,GAAC,OAAIA,EAAE++E,eAAenwE,MAAK,SAAAqwE,GAAE,OAAIA,EAAGC,uBAAyBE,EAAQ3M,cAC7F6M,EAAgB,EAAK3J,sBAAsB0J,GAC/CC,EAAcpsE,SAAQ,SAAAwH,GACpBA,EAAE83D,UAAY4M,EAAQ3M,SAA0B,MAAf/3D,EAAE83D,UAAoB,GAAK93D,EAAE83D,WAC9D93D,EAAE+3D,QAAU2M,EAAQ3M,QAAU/3D,EAAE+3D,WAElC,EAAK+F,YAAY5F,EAAU0M,IAR7B,MAAoB/E,EAApB,eAAgC,IAWhC,OAAO3H,IAlpC6B,yBAqpC9B,SAAY2M,EAAqC/M,GAAwB,WAC3EgN,EAAcn2E,IAAEC,OAAOi2E,GAAY,SAAA7kE,GAAC,OAAEA,EAAE83D,WAAaA,KACzD,GAAyB,GAAtBgN,EAAYt/E,OACb,MAAO,GAET,IAAIo7E,EAAWkE,EAAY,GAAGlE,SAC1BrhC,EAAQulC,EAAY,GAAGvlC,MACvBwlC,EAAiC,GAmBrC,OAhBID,EADW,SAAZlE,EACep3E,KAAKs3E,YAAYgE,GAEd,eAAXlE,EACQp3E,KAAKu3E,iBAAiB+D,GAGtBn2E,IAAE2uB,OAAOwnD,EAAa,CAAC,SAEvCt7E,KAAKs0E,YAAYiH,EAAOD,GAErBvlC,EAAS/1C,KAAK8tE,iBAAiB9xE,QAChCmJ,IAAE6J,QAAQssE,GAAa,SAAA9kE,GACrB,IAAIs/C,EAAW,EAAK0kB,YAAYa,EAAa7kE,EAAE+3D,SAC/C,EAAK+F,YAAYiH,EAAOzlB,MAGvBylB,IA/qC6B,yBAkrC9B,SAAYF,GAAmC,WACjDE,EAASp2E,IAAE2uB,OAAOunD,EAAYh8E,KAAI,SAAAmX,GACpC,IAAI+xC,EAAQ,EAAKrsB,WAAWlqB,MAAK,SAAAk/D,GAAC,OAAEA,EAAE/0C,WAAa3lB,EAAE7K,QACjD6vE,EAAqB,MAATjzB,EAAgBA,EAAMnc,WAAa,EAAKlQ,WAAWlgC,OAAO,EAC1E,MAAO,CAAC6I,KAAM2R,EAAGilE,MAAOD,MACvB,CAAC,UAAUn8E,KAAI,SAAAmX,GAAC,OAAGA,EAAE3R,QACxB,OAAO02E,IAxrC6B,8BA2rC9B,SAAiBF,GACvB,IAAIK,EAAiBzP,GACjB0P,EAAqBzP,GACrBqP,EAASp2E,IAAE2uB,OAAOunD,EAAYh8E,KAAI,SAAAmX,GACpC,IAAI6S,EAAeqyD,EAAeC,EAAmBnlE,EAAE7K,OACvD,MAAO,CAAC9G,KAAM2R,EAAGilE,MAAOpyD,MACvB,CAAC,UAAUhqB,KAAI,SAAAmX,GAAC,OAAGA,EAAE3R,QACxB,OAAO02E,IAlsC6B,uBAqsC9B,SAAU7M,GAChB,OAAO1uE,KAAK+tE,aACV,KAAK7qE,EAAe8mE,aAClB,OAAOl2C,oBAAO46C,GAAU,SAAAxwE,GAAC,OAAIA,EAAEyN,QACjC,KAAKzI,EAAe+mE,cAClB,OAAO9kE,IAAEsiB,QAAQinD,EAAU,CAAC,gCAAiC,QAAS,CAAC,OAAQ,QACjF,KAAKxrE,EAAegnE,YAClB,OAAO/kE,IAAEsiB,QAAQinD,EAAU,CAAC,yBAA0B,QAAS,CAAC,OAAQ,QAC1E,QACE,OAAOA,KA9sCyB,6BAmtC9B,SAAgBkN,GACtB,IAAIj9E,EACJ,OAAOi9E,GACL,IAAK,QACHj9E,EAAM,QACN,MACF,IAAK,QACHA,EAAM,QACN,MACF,IAAK,UACHA,EAAM,cACN,MACF,IAAK,cACHA,EAAM,eACN,MACF,QACEA,EAAM,GACN,MAEJ,OAAOA,IAtuC6B,yBA0uC9B,SAAYooD,EAAoBz3B,GACtCA,EAAOtgB,SAAQ,SAAAwH,GACbuwC,EAAOzqD,KAAKka,QA5uCsB,6BAgvCtC,WACE,IAAIq6D,EAAoB50E,OAAOygB,OAAO1c,KAAKguE,eACvC6N,GAAsB,EAU1B,OAREA,EADC77E,KAAKyoD,UAAYgd,GAAmBkI,SACxBxoE,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAAgB,IAAdA,EAAEs5D,WAEvC9vE,KAAKyoD,WAAagd,GAAmBgI,QAAUztE,KAAK0oD,iBAC7CvjD,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAAqB,IAAnBA,EAAEm5D,gBAGhCxqE,IAAE0S,MAAMg5D,GAAmB,SAAAr6D,GAAC,OAA8B,IAA5BA,EAAEwrD,yBAExC6Z,GAAc77E,KAAKkuE,sBA5vCU,GAASrrE,cAE/Cb,gBADCwnB,mBACD,oCAGAxnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,mBACD,kCAIAxnB,gBADCwnB,mBACD,gCAGAxnB,gBADCwnB,mBACD,yCAMAxnB,gBADCwnB,mBACD,wCArBmB+jD,GAAmB,gBATvCpmE,eAAU,CACTL,WAAY,CACV8R,wBACAkjE,4BACAnjE,wBACAojE,kCACAxqB,oCAGiBgc,cC5E6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCqLf,IAAqByO,GAAe,4CAqHlC,iDACE,eArHF,EAAAzsE,MAGI,GAEI,EAAA7L,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAstB,kBAAuC,IAAIR,GAC3C,EAAA/2B,YAA2B,IAAI3C,EAoB/B,EAAAywE,WAAmC,KACnC,EAAAh4C,WAA6B,GAC7B,EAAAQ,YAA+B,GAC/B,EAAAorB,cAAmC,GACnC,EAAAC,eAAqC,GAE7C,EAAA/7C,SAAiB,GACT,EAAAu7C,eAAyB,EACzB,EAAA00B,mBAA0B,KAYlC,EAAAxjB,iBAAmBj0D,uBAAUnC,EAAkBc,GAgBvC,EAAA+4E,YAAsB,EAQtB,EAAAC,qBAA+B,EAC/B,EAAAC,oBAA8B,EAO9B,EAAA5zB,YAAuB,EAuBvB,EAAAI,uBAAiC,EAEzC,EAAAH,SAA+Bgd,GAAmBgI,OAqM1C,EAAA4O,kBAA4B,GAmKpC,EAAA/R,aAAkC,CACxB7lE,WAAYzB,EAAsBigE,eAClCrlE,KAAOqF,EAAgBsnE,UA4C1B,EAAA5iB,oBAA8B,EAE7B,EAAAsC,cAAwB,EACxB,EAAAgX,oBAA8B,EAC9B,EAAAE,sBAAgC,EAChC,EAAA5W,oBAA8B,EAC9B,EAAA2W,2BAAqC,EACrC,EAAAlW,qBAA+B,EAC/B,EAAAE,sBAAgC,EAChC,EAAAG,yBAAmC,EAjZzC,EAAK76C,aAAe,IAAIjC,GAF1B,EArHkC,qDAUlC,WACI,OAAUvO,KAAKuP,MAAM+sE,oBAA4B/sE,MAAMysD,qBAA6BzsD,MAC/DyhC,WAAmB5/B,WAZV,wBAelC,WACE,OAAOpR,KAAKyd,OAAOC,OAAOle,KAhBM,4BAmBlC,WACE,QAAIQ,KAAKk0E,YACAl0E,KAAKk0E,WAAWqI,mBArBO,yBAuClC,WAAW,WACTv8E,KAAKunD,eAAgB,EAClBvnD,KAAKi8E,oBACN5mB,aAAar1D,KAAKi8E,oBAEpBj8E,KAAKi8E,mBAAqB3pE,YAAW,WACnC,EAAKi1C,eAAgB,IACpB,OA9C6B,4BAkDlC,WACE,OAAOvnD,KAAKy4D,iBAAiBsX,iBAnDG,0BAsDlC,WACE,OAAO/vE,KAAKy4D,iBAAiBsF,eAvDG,8BA0DlC,WAA8B,WAC5B,GAAG/9D,KAAKuC,eACN,OAAOvC,KAAK08B,YAAY1qB,MAAK,SAAA1T,GAAC,OAAIA,EAAEu/B,eAAiB,EAAKt7B,eAAgBs7B,kBA5D5C,uBAkElC,WACE,GAAG79B,KAAKuC,eACN,OAAOvC,KAAKuC,eAAesJ,WApEG,2BA4ElC,WACE,OAAQ7L,KAAKmtB,MAAMqvD,UAAU,GAAGA,UAAU,GAAWC,aA7ErB,mCAmFlC,WAGMz8E,KAAKm8E,sBACPn8E,KAAK4oD,uBAAwB,KAvFC,qCA4FlC,WACE5oD,KAAKq8E,kBAAoB,KA7FO,kCAiGlC,WACMr8E,KAAKo8E,oBAAsBp8E,KAAKk0E,YAAcl0E,KAAKk0E,WAAWqI,mBAChEv8E,KAAK4oD,uBAAwB,KAnGC,kCA6GlC,WACE,OAAO5oD,KAAKy4D,iBAAiBikB,eAAiB,KA9Gd,qBAiHlC,cAjHkC,qBA2HlC,WACEvqE,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SACxCvpC,KAAK2d,aA7H2B,2BAgIlC,WACK3d,KAAKuP,MAAM+sE,qBACZt8E,KAAKuP,MAAM+sE,oBAAoBK,WAE9B38E,KAAKuP,MAAMqtE,sBACZ58E,KAAKuP,MAAMqtE,qBAAqBD,WAGlC38E,KAAKunD,eAAc,EACnBvnD,KAAK8nD,cAAc9rD,OAAO,EAC1BgE,KAAK+nD,eAAe/rD,OAAO,IA1IK,uBA6IlC,WACEmW,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAC3CvpC,KAAKy4D,iBAAiB8a,oBAAoB,MAC1CvzE,KAAKy4D,iBAAiB6a,kBAAkB,MACxCtzE,KAAKy4D,iBAAiBsY,kBAAkB,MAjJR,+BAoJlC,SAAkBv1E,GAChBwE,KAAKwoD,WAAahtD,IArJc,wBAwJlC,WACE,OAAOwE,KAAK2nD,oBAAsB3nD,KAAKiqD,cAAgBjqD,KAAKihE,oBAAsBjhE,KAAKmhE,sBACrFnhE,KAAKuqD,oBAAsBvqD,KAAKkhE,2BAA6BlhE,KAAK4oD,uBAAyB5oD,KAAKgrD,qBAChGhrD,KAAKkrD,sBAAwBlrD,KAAKqrD,0BA3JJ,qBA8JlC,SAAQh1C,GACN,IAAIrW,KAAK68E,cAK+B,uBAAnCxmE,EAAM0wC,OAAgB+1B,UAM3B,GAFAzmE,EAAMuzB,iBAEFvzB,EAAMqzB,QACR,OAAQrzB,EAAM65C,SACZ,KAAK1D,GAAOuwB,IACZ,KAAKvwB,GAAOwwB,UACVh9E,KAAKooD,uBAAuB0gB,GAAWmU,KAAK5mE,GAC5C,MACF,KAAKm2C,GAAO0wB,IACZ,KAAK1wB,GAAO2wB,UACVn9E,KAAKooD,uBAAuB0gB,GAAWsU,YAAY/mE,GACnD,MACF,KAAKm2C,GAAO6wB,MACZ,KAAK7wB,GAAO8wB,YACVt9E,KAAKooD,uBAAuB0gB,GAAWyU,gBAAgBlnE,GACvD,MACF,KAAKm2C,GAAOgxB,KACZ,KAAKhxB,GAAOixB,WACVz9E,KAAKooD,uBAAuB0gB,GAAWjhD,WAAWxR,GAClD,MACF,KAAKm2C,GAAOkxB,KACZ,KAAKlxB,GAAOmxB,WACV39E,KAAKooD,uBAAuB0gB,GAAW8U,IAAIvnE,GAC3C,MACF,KAAKm2C,GAAOqxB,IACZ,KAAKrxB,GAAOsxB,UACV99E,KAAKooD,uBAAuB0gB,GAAWiV,cAAc1nE,GACrD,MACF,KAAKm2C,GAAOwxB,OACZ,KAAKxxB,GAAOyxB,aACVj+E,KAAKooD,uBAAuB0gB,GAAWoV,UAAU7nE,GACjD,WAGJ,OAAQA,EAAM65C,SACZ,KAAK1D,GAAO2xB,UACTn+E,KAAKuP,MAAMqtE,qBAA6BtQ,WACzC,MACF,KAAK9f,GAAO4xB,WACTp+E,KAAKuP,MAAMqtE,qBAA6BrQ,WACzC,MACF,KAAK/f,GAAO4D,QACTpwD,KAAKuP,MAAMqtE,qBAA6BvQ,iBACzC,MACF,KAAK7f,GAAO8D,UACTtwD,KAAKuP,MAAMqtE,qBAA6Bj0B,oBACzC,MACF,KAAK6D,GAAOuwB,IACZ,KAAKvwB,GAAOwwB,UACVh9E,KAAKooD,uBAAuB0gB,GAAWuV,SAAShoE,GAChD,MACF,KAAKm2C,GAAO0wB,IACZ,KAAK1wB,GAAO2wB,UACVn9E,KAAKooD,uBAAuB0gB,GAAWwV,OAAOjoE,GAC9C,MACF,KAAKm2C,GAAO6wB,MACZ,KAAK7wB,GAAO8wB,YACVt9E,KAAKooD,uBAAuB0gB,GAAWyV,KAAKloE,GAC5C,MACF,KAAKm2C,GAAOgxB,KACZ,KAAKhxB,GAAOixB,WACVz9E,KAAKooD,uBAAuB0gB,GAAW0V,YAAYnoE,GACnD,MACF,KAAKm2C,GAAOkxB,KACZ,KAAKlxB,GAAOmxB,WACV39E,KAAKooD,uBAAuB0gB,GAAW2V,MAAMpoE,GAC7C,MACF,KAAKm2C,GAAOqxB,IACZ,KAAKrxB,GAAOsxB,UACV99E,KAAKooD,uBAAuB0gB,GAAW4V,mBAAmBroE,GAC1D,MACF,KAAKm2C,GAAOmyB,MACZ,KAAKnyB,GAAOoyB,YACV5+E,KAAKooD,uBAAuB0gB,GAAW+V,OAAOxoE,GAC9C,MACF,KAAKm2C,GAAOsyB,MACZ,KAAKtyB,GAAOuyB,YACV/+E,KAAKooD,uBAAuB0gB,GAAWkW,uBAAuB3oE,GAC9D,MACF,KAAKm2C,GAAOyyB,KACZ,KAAKzyB,GAAO0yB,WACVl/E,KAAKooD,uBAAuB0gB,GAAWqW,QAAQ9oE,GAC/C,MACF,KAAKm2C,GAAOwxB,OACZ,KAAKxxB,GAAOyxB,aACVj+E,KAAKooD,uBAAuB0gB,GAAW9/C,IAAI3S,GAC3C,MACF,KAAKm2C,GAAO4yB,OACZ,KAAK5yB,GAAO6yB,aACV,IAAI/iC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACb,IAAxBtE,EAAatgD,OACfgE,KAAK2jC,YACI2Y,EAAatgD,OAAS,GAC/BuK,IAAO,kDAAkD,OAAQ,KAEnE,SAvQ0B,uFA4QlC,8GAC0BvG,KAAK0D,OAAOzF,IAAoB,sBAD1D,cACE+B,KAAKk8B,WADP,gBAE0Bl8B,KAAK0D,OAAOzF,IAAZ,2BAAmD+B,KAAKglB,eAFlF,OAEEhlB,KAAKk0E,WAFP,uDA5QkC,wIAiRlC,yHAEQl0E,KAAKu/E,mBAFb,OAIEv/E,KAAK29B,kBAAkBlH,WAAWpwB,MAAK,SAAAu3B,GACrC,EAAKlB,YAAckB,KAGrB59B,KAAK2qE,wBAAwBtkE,MAAK,SAAAm5E,GAChC,EAAKh3B,WAAag3B,KAGpBx/E,KAAK0D,OAAOzF,IAAZ,2BAAoC+B,KAAKglB,aAAzC,qBAAyE3e,MAAK,SAAAuxC,GAC5E,EAAKkQ,cAAgBlQ,KAGvB53C,KAAK0D,OAAOzF,IAAZ,2BAAwD+B,KAAKglB,aAA7D,sBAA8F3e,MAAK,SAAAuxC,GACjG,EAAKmQ,eAAiBnQ,KAjB1B,gDAjRkC,sFAsSlC,SAAgB8gB,GAA+D,IAApB+mB,IAAoB,yDACzEz/E,KAAKuP,MAAM+sE,qBACbt8E,KAAKuP,MAAM+sE,oBAAoBhb,gBAAgB5I,GAGjD14D,KAAK0/E,2BAA2BD,KA3SA,6FAgTlC,WAA6Bzf,EAA4B3pD,GAAzD,2GACMimC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACrC4gB,EAAsB,GAGE,IAAxBllB,EAAatgD,QACXgE,KAAKq8E,kBAAkBrgF,OAAS,EAClCwlE,EAAcxhE,KAAKq8E,kBACVr8E,KAAKuP,MAAM+sE,qBAAuBt8E,KAAKuP,MAAM+sE,oBAAoB75E,iBAC1E++D,EAAcxhE,KAAKuP,MAAM+sE,oBAAoB5jB,UAC1C90D,QAAO,SAAA6zD,GAAE,OAAI,EAAKzP,uBAAuBt9C,MAAK,SAAAkH,GAAC,OAAIA,IAAM6lD,EAAG3lD,YAAmC,MAAvB2lD,EAAGkoB,oBAC3EtgF,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,qBAChBnqD,KAAKq8E,kBAAoB7a,GAGvBxhE,KAAKuP,MAAM+sE,sBACbhgC,EAAet8C,KAAKuP,MAAM+sE,oBAAoB5jB,UAAU90D,QAAO,SAAA6zD,GAAE,OAAI+J,EAAY92D,MAAK,SAAAlL,GAAE,OAAIi4D,EAAGtN,mBAAqB3qD,WAItHQ,KAAKq8E,kBAAoB,GACzB//B,EAAattC,SAAQ,SAAA4e,GACnB4zC,EAAYllE,KAAKsxB,EAAIu8B,wBAIrBqX,EAAYxlE,OA1BlB,wBA2BQqa,IACFA,EAAMuzB,iBACNvzB,EAAMyjB,mBAGR95B,KAAKs/E,iBAAiBr1C,iBAElB21C,EAA0Cz6E,IAAEihB,UAAUk2B,GAEtDujC,EAAqC,MAAf7f,GAAuB,EAAIA,EACjD8f,EAAmC,MAAf9f,EAAsB,aAAehgE,KAAKk8B,WAAWt4B,QAAO,SAAA5E,GAAC,OAAIA,EAAEo9B,aAAe4jC,KAAa,GAAG7jC,UAE1HmgB,EAAattC,SAAQ,SAAAyoD,GACjBA,EAAG+C,oBAAsBqlB,EACzBpoB,EAAGgD,kBAAoBqlB,EACvBroB,EAAGwK,WAAY,KAGf9E,EAAgBn9D,KAAKuC,eACzBvC,KAAKshE,gBAAgBhlB,GAAc,GACnCt8C,KAAKuP,MAAMqtE,qBAAsBtM,iBAAiBtwE,KAAKuC,eAAgB61D,UA/C3E,UAiDUp4D,KAAK0D,OAAOiJ,YAA4C,gCAAiC,CAC7FqzD,YAAaA,EACbtH,UAAW8I,IAEZn7D,MAAK,SAAAmiB,GAGA,EAAKhmB,kBAAoB26D,EAAe/E,WAC1C,EAAKkJ,gBAAgB94C,GAAS,GAC9B,EAAKjZ,MAAMqtE,qBAAsBtM,iBAAiB,EAAK/tE,eAAgB61D,cAG1E9xD,OAAM,SAAAnB,GACLgjB,oBAAM,oDAAD,OAAqDg1C,EAAe7V,eAApE,KAAuF,SACxF,EAAK9kD,kBAAoB26D,EAAe/E,WAE1C,EAAKkJ,gBAAgBse,GAAS,GAC9B,EAAKrwE,MAAMqtE,qBAAsBtM,iBAAiB,EAAK/tE,eAAgB61D,cAlE/E,iDAhTkC,iGAwXlC,SAAwB2nB,GAAoB,WACtCzjC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACrC4gB,EAAsB,GAG1B,GAA4B,IAAxBllB,EAAatgD,QACf,GAAIgE,KAAKuP,MAAM+sE,qBAAuBt8E,KAAKuP,MAAM+sE,oBAAoB75E,eAAgB,CACnF,IAAIA,EAAiBzC,KAAKuP,MAAM+sE,oBAAoB75E,eACpD++D,EAAcxhE,KAAKuP,MAAM+sE,oBAAoB5jB,UAC1C90D,QAAO,SAAA6zD,GAAE,OAAIh1D,EAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAM6lD,EAAG3lD,cAC/CzS,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,2BAGlB7N,EAAattC,SAAQ,SAAA4e,GACnB4zC,EAAYllE,KAAKsxB,EAAIu8B,sBAIrBqX,EAAYxlE,SACdgE,KAAKs/E,iBAAiBr1C,iBAEtBjqC,KAAK0D,OAAOiJ,YAA4C,oCAAqC,CAC3FozE,YAAaA,EACbrnB,UAAW8I,IACVn7D,MAAK,SAAAmiB,GACN,EAAK84C,gBAAgB94C,GAAS,SAjZF,mDAsZlC,SAAsC9oB,GACpCM,KAAKiqD,aAAevqD,EAAEuqD,aACtBjqD,KAAKihE,mBAAqBvhE,EAAEuhE,mBAC5BjhE,KAAKmhE,qBAAuBzhE,EAAEyhE,qBAC9BnhE,KAAKuqD,mBAAqB7qD,EAAE6qD,mBAC5BvqD,KAAKkhE,0BAA4BxhE,EAAEwhE,0BACnClhE,KAAKgrD,oBAAsBtrD,EAAEsrD,oBAC7BhrD,KAAKkrD,qBAAuBxrD,EAAEwrD,qBAC9BlrD,KAAKqrD,wBAA0B3rD,EAAE2rD,0BA9ZD,+BAialC,WAAiB,WACfrrD,KAAKuC,eAAgBotE,cAAe,EACpC,IAAIhtE,EAAW3C,KAAKwC,iBACnBxC,KAAKuP,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,GAClE3C,KAAK0oD,iBACP1oD,KAAK0D,OAAOK,SAAZ,0CAAwD/D,KAAKwC,kBAAoB,IAChF6D,MAAK,SAAAxJ,IACe,IAAhBA,EAAO+mB,MACP,EAAKrU,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MAEvE2D,OAAM,SAAAkQ,GACN,EAAKjH,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MACrEsR,SAAQ,WACL,EAAK1E,MAAMqtE,qBAA6BqD,oBAC1C,EAAK7D,oBAAqB,MAK9Bp8E,KAAK0D,OAAOK,SAAZ,4BAA0C/D,KAAKwC,iBAA/C,eAA8E,IAC3E6D,MAAK,SAAAxJ,GACN,EAAKq/E,YAAa,EAClB,EAAKoD,iBAAiBY,WACH,IAAhBrjF,EAAO+mB,MACP,EAAKrU,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MAEvE2D,OAAM,SAAAkQ,GACN,EAAKjH,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MACrEsR,SAAQ,WACL,EAAK1E,MAAMqtE,qBAA6BqD,oBAC1C,EAAK9D,qBAAsB,QA/bD,6BAsclC,SAAgBzjB,GACVA,GAAaA,EAAU18D,SACtBgE,KAAKuC,iBACNvC,KAAKuC,eAAeo/D,UAAYjJ,GAE7B14D,KAAK0oD,kBACR1oD,KAAK0/E,gCA5cuB,mCAsdlC,WACE,OAAO1/E,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKsqE,cAC9CjkE,MAAK,SAACxJ,GACH,IAAIuuE,EAAWjmE,IAAE6M,KAAKnV,GAAQ,SAACgI,GACX,OAAOA,EAAKG,aAAehC,EAAsBigE,gBACzCp+D,EAAKI,OAAShC,EAAgBsnE,cACpC,EAEtB,QAAQa,GAA6B,QAAlBA,EAASj8B,SAE/B7oC,OAAM,SAACulB,GAAD,OAAc,OAheG,wCAmelC,WAA+C,IAApB4zD,IAAoB,yDACzCU,EAAkCngF,KAAKuC,eAAgBy/D,sBAC3DhiE,KAAKuC,eAAgBy/D,sBAAwBhiE,KAAKuC,eAAgBo/D,UAAU9pD,OAAM,SAAA4/C,GAAE,OAAIA,EAAGwK,cACxFwd,GAAQz/E,KAAKwoD,aACdxoD,KAAKogF,4BAA4BpgF,KAAKuC,eAAgBy/D,sBAAuBme,KAve/C,yCA2e1B,SAA4B7Q,EAAuB6Q,GAA+B,WACxF,IAAKA,GAA0B7Q,IAAiBtvE,KAAK0oD,iBAAkB,CACrE1oD,KAAKuC,eAAgBotE,cAAe,EACpC,IAAIhtE,EAAW3C,KAAKuC,eAAgB61D,SACpCp4D,KAAK0D,OAAOK,SAAZ,4BAA0C/D,KAAKwC,iBAA/C,eAA8E,IAC3E6D,MAAK,SAAAxJ,GACH,EAAK0S,MAAMqtE,qBAA6BxI,kBACtB,IAAhBv3E,EAAO+mB,MACP,EAAKrU,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MAEvE2D,OAAM,SAAAkQ,GACN,EAAKjH,MAAMqtE,qBAA6BoD,mBAAmBr9E,GAAU,MACrEsR,SAAQ,WACL,EAAK1E,MAAMqtE,qBAA6BqD,oBAC1C,EAAK7D,oBAAqB,SAzfF,6BA0gBlC,WACEp8E,KAAK2nD,oBAAqB,IA3gBM,0BA8gBlC,WACE3nD,KAAK2nD,oBAAqB,IA/gBM,8FAkhBlC,WAA8BnmD,GAA9B,4FAEQusE,EAAcvsE,EAASoC,QAAO,SAAAxG,GAAC,OAAIA,EAAE6H,OAAShC,EAAgBC,gBAAkB9F,EAAE+xC,QAAUjsC,EAAe+mE,mBAC9G8D,EAAY/xE,OAAS,GAH1B,gCAK2BgE,KAAK0D,OAAOzF,IAAZ,4BAAqE+B,KAAKwC,iBAA1E,gBAL3B,OAKUmwD,EALV,OAMI3yD,KAAKuC,eAAgBo/D,UAAUhP,EANnC,OASG3yD,KAAKuP,MAAMqtE,qBAA6BvL,wBAAwB7vE,GATnE,gDAlhBkC,qFA8hBlC,WACExB,KAAKs/E,iBAAiBe,oBACtBrgF,KAAKmhE,sBAAuB,IAhiBI,0BAmiB1B,SAAap8C,GACnB/kB,KAAKuC,eAAgBs7B,aAAe9Y,EAAI+mD,WACxC9rE,KAAKmtB,MAAMlH,MAAM,mBAAoBurC,GAA4BwM,qBAriBjC,uBAwiB1B,WACLh+D,KAAKuP,MAAM+sE,oBAA4BgE,sBAziBR,4BA4iB1B,WAAc,WACpBtgF,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,2BACsBpE,KAAKglB,aAD3B,qBAGC3e,MAAK,SAAAxJ,GACJ,EAAKgsD,sBACL,EAAK5qC,QAAQ3hB,KAAK,CAAEsB,KAAM,qBAljBI,iCAsjB1B,WACNoC,KAAK4oD,uBAAwB,MAvjBG,GAAS/lD,cAuC3Cb,gBADCuW,gBAAM,qBACP,iCA4CAvW,gBADCuW,gBAAM,wBACP,2CASAvW,gBADCuW,gBAAM,mBACP,6CAKAvW,gBADCuW,gBAAM,uBACP,0CAjGmByjE,GAAe,gBAlBnC70E,eAAU,CACTL,WAAY,CACViS,yBACAH,wBACA8tD,gBACAlO,uBACA+nB,oBACAzU,cACAxsD,sBACA0V,sCACAu4C,wBAEFiT,iBAAkB,SAASC,EAAGxrE,EAAKyrE,GACjC,IAAIC,EAA8B3gF,KAClC2gF,EAAWhE,WACX+D,QAGiB1E,QCxMT4E,GDwMS5E,MExMsX,MCQvY,I,WAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIj8E,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,gBAAgBV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAClnD,EAAG,MAAM,CAACe,YAAY,8BAA8B,CAACf,EAAG,aAAa,CAACgL,YAAY,CAAC,OAAS,MAAM,MAAQ,QAAQ,CAAGpL,EAAIwC,eAAoDpC,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,OAAO,kBAAkB,kBAAkB,CAAChL,EAAG,OAAO,CAACJ,EAAIuH,GAAG,mBAAmBvH,EAAIwH,GAAGxH,EAAIwC,eAAe+kD,gBAAgB,qCAAqCvnD,EAAIwH,GAAGxH,EAAIwC,eAAesY,aAAa,qCAAqC9a,EAAIwH,GAAGxH,EAAIwC,eAAeqJ,YAAY,oBAAoBzL,EAAG,MAAM,CAAEJ,EAAIwC,gBAAkBxC,EAAI28B,YAAY1gC,OAAS,GAAK+D,EAAIwnD,cAAepnD,EAAG,cAAc,CAACG,MAAM,CAAC,YAAcP,EAAI28B,YAAY,OAAS38B,EAAIwC,gBAAgByF,GAAG,CAAC,OAASjI,EAAIynD,gBAAgBznD,EAAIyI,MAAM,KAA5jBrI,EAAG,MAAM,CAACJ,EAAIuH,GAAG,qBAAkjBnH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,gBAAgB,KAAO,gBAAgB,KAAO,kBAAkB0H,GAAG,CAAC,MAAQjI,EAAI0nD,iBAAiBtnD,EAAG,YAAY,CAACG,MAAM,CAAC,GAAK,aAAa,KAAO,cAAc,KAAO,cAAc0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI2nD,sBAAsBvnD,EAAG,qBAAqB,CAACG,MAAM,CAAC,WAAaP,EAAI4nD,oBAAoB3/C,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOlI,EAAImiB,gBAAgB,2BAA2BniB,EAAI6nD,wBAAwB,uBAAuB7nD,EAAI8nD,sBAAsB,IAAI,GAAI9nD,EAAIwC,iBAAmBxC,EAAIwnD,cAAepnD,EAAG,MAAM,CAACK,MAAM,CAAC,sBAAuBT,EAAIwnD,eAAep8C,YAAY,CAAC,eAAe,QAAQ,eAAe,MAAM,OAAS,UAAU,CAAEpL,EAAIwC,gBAAkBxC,EAAIwnD,cAAepnD,EAAG,iBAAiB,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,OAASP,EAAIwC,eAAe,WAAaxC,EAAIm8B,WAAW,SAAWn8B,EAAIiM,SAAS,cAAgBjM,EAAI+nD,cAAc,eAAiB/nD,EAAIgoD,eAAe,eAAiBhoD,EAAIioD,0BAA0BjoD,EAAIyI,MAAM,GAAGzI,EAAIyI,OAAOrI,EAAG,MAAM,CAACe,YAAY,cAAcV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAClnD,EAAG,MAAM,CAACe,YAAY,6BAA6BV,MAAM,CAAC,uBAAwBT,EAAIwnD,gBAAgB,CAAExnD,EAAIwC,iBAAmBxC,EAAIwnD,cAAepnD,EAAG,MAAM,CAACK,MAAM,CAAC,sBAAuBT,EAAIwnD,eAAep8C,YAAY,CAAC,OAAS,OAAO,MAAQ,SAAS,CAAChL,EAAG,yBAAyB,CAAC+H,IAAI,sBAAsB5H,MAAM,CAAC,QAAUP,EAAIwC,gBAAkBxC,EAAIwnD,cAAc,iBAAmBxnD,EAAIyC,iBAAiB,eAAiBzC,EAAIwC,eAAe,SAAWxC,EAAIiM,SAAS,WAAajM,EAAImoD,mBAAmB,WAAanoD,EAAIm8B,WAAW,eAAiBn8B,EAAIioD,wBAAwBhgD,GAAG,CAAC,oBAAoBjI,EAAIooD,gBAAgB,eAAepoD,EAAIqoD,uBAAuB,uBAAuBroD,EAAIsoD,sCAAsC,iBAAiBtoD,EAAIuoD,4BAA4B,GAAGnoD,EAAG,MAAM,CAACA,EAAG,sBAAsB,OAAOA,EAAG,MAAM,CAACe,YAAY,mBAAmBV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAEtnD,EAAIwC,iBAAmBxC,EAAIwnD,cAAepnD,EAAG,MAAM,CAACK,MAAM,CAAC,sBAAuBT,EAAIwnD,eAAep8C,YAAY,CAAC,OAAS,SAAS7K,MAAM,CAAC,GAAK,0BAA0B,CAAEP,EAAIwC,gBAAkBxC,EAAIwnD,cAAepnD,EAAG,wBAAwB,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,OAASP,EAAIwC,gBAAgByF,GAAG,CAAC,gBAAkBjI,EAAI8gF,mBAAmB9gF,EAAIyI,MAAM,GAAGzI,EAAIyI,SAASrI,EAAG,MAAM,CAACe,YAAY,oCAAoC,CAACf,EAAG,wBAAwB,CAAC+H,IAAI,uBAAuB5H,MAAM,CAAC,WAAaP,EAAIm8B,WAAW,WAAan8B,EAAIyoD,WAAW,SAAWzoD,EAAI0oD,SAAS,aAAe1oD,EAAIilB,cAAchd,GAAG,CAAC,YAAcjI,EAAI+gF,gBAAgB,GAAG3gF,EAAG,WAAW,CAACe,YAAY,0BAA0BZ,MAAM,CAAC,MAAQ,4BAA4B,MAAQ,OAAO,YAAY,MAAM,gBAAe,EAAK,OAAS,OAAO,0BAAyB,EAAM,QAAUP,EAAI6oD,uBAAuB5gD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI6oD,sBAAsB3gD,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,uLAAuLnH,EAAG,OAAO,CAACe,YAAY,iCAAiC,CAACf,EAAG,oBAAoB,CAACG,MAAM,CAAC,MAAQ,GAAG,OAAS,GAAG,QAAUP,EAAIghF,kCAAkC,GAAG5gF,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,sBAAsB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI8oD,0BAA0B1oD,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,SAAWP,EAAIghF,+BAAiChhF,EAAIihF,qCAAqCh5E,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI+oD,oBAAoB,CAAC,CAAC3oD,EAAG,OAAO,CAACA,EAAG,oBAAoB,CAACG,MAAM,CAAC,MAAQ,GAAG,OAAS,GAAG,QAAUP,EAAIihF,uCAAuC7gF,EAAG,OAAO,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIkhF,gBAAgB,KAAK,IAAI,GAAG9gF,EAAG,WAAW,CAACe,YAAY,0BAA0BZ,MAAM,CAAC,MAAQ,wBAAwB,MAAQ,OAAO,YAAY,MAAM,gBAAe,EAAK,OAAS,OAAO,0BAAyB,EAAM,QAAUP,EAAImhF,sBAAsBl5E,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAImhF,qBAAqBj5E,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,kFAAkFvH,EAAIwH,GAAGxH,EAAIohF,8BAA8B,OAAOhhF,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,MAAM0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIqhF,4BAA4BjhF,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,KAAO,UAAU,KAAO,OAAO0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIshF,8BAA8B,IAAI,IACnjL,GAAkB,GCDlB,GAAS,WAAa,IAAIthF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAAC+H,IAAI,oBAAoB5H,MAAM,CAAC,cAAcP,EAAIuhF,cAAc,MAAQ,OAAO,OAAS,QAAQ,iBAAgB,EAAM,WAAW,wBAAwBt5E,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,gBAAgBrjC,EAAIyK,eAAe,gBAAgBzK,EAAIwhF,eAAe,eAAexhF,EAAIyhF,eAAe1gF,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,cAAcqC,GAAG,SAASkH,GACtiB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACe,YAAY,yBAAyB,CAACf,EAAG,OAAO,CAACe,YAAY,uBAAuB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKimF,UAAU,uBAAsB,GAAMz5E,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,YAAayM,IAAS,iBAAiB,SAASA,GAAQ,OAAOlI,EAAI2hF,iBAAiBlmF,EAAKA,KAAKimF,UAAYjmF,EAAKA,KAAKo/D,WAAWr3B,UAAW,SAAS,GAAGpjC,EAAG,OAAO,CAACe,YAAY,qCAAqC,CAACnB,EAAIuH,GAAG,gBAAgB,CAAC3I,IAAI,mBAAmBqC,GAAG,SAASkH,GACpgB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,sBAAP/mC,CAA8BvE,EAAKA,KAAKo/D,WAAWkL,cAA+C,eAAhCtqE,EAAKA,KAAKmmF,mBAAqCxhF,EAAG,IAAI,CAACe,YAAY,eAAeiK,YAAY,CAAC,MAAQ,SAASpL,EAAIyI,KAAsC,eAAhChN,EAAKA,KAAKmmF,mBAAqCxhF,EAAG,IAAI,CAACe,YAAY,eAAeiK,YAAY,CAAC,MAAQ,aAAapL,EAAIyI,UAAU,CAAC7J,IAAI,iBAAiBqC,GAAG,SAASkH,GAC1Y,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAU9E,EAAKA,KAAKomF,eAAe,aAAapmF,EAAKA,KAAKo/D,WAAWr3B,UAAU,WAAaxjC,EAAIm8B,WAAW,SAAWn8B,EAAIo4D,OAAOtsD,kBAAkB,CAAC1L,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAcH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,QAAU,GAAG,aAAa,YAAY,YAAY,SAAS,MAAQ,IAAI,gBAAgBP,EAAI8hF,qBAAqB1hF,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,iBAAiBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,mBAAmB,QAAU,QAAQ,YAAY,SAAS,gBAAgBP,EAAI+hF,cAAc,UAAY,QAAQ,SAAW,eAAe,MAAQ,OAAO3hF,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,sBAAsB,QAAU,WAAW,YAAY,SAAS,gBAAgB,mBAAmB,UAAY,QAAQ,SAAW,WAAW,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,sBAAsB,QAAU,WAAW,YAAY,SAAS,gBAAgBP,EAAIgiF,iBAAiB,UAAY,QAAQ,SAAW,eAAe,MAAQ,OAAO5hF,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,0BAA0B,QAAU,eAAe,YAAY,SAAS,gBAAgBP,EAAIiiF,qBAAqB,UAAY,QAAQ,SAAW,eAAe,MAAQ,OAAO7hF,EAAG,aAAaA,EAAG,aAAa,CAACG,MAAM,CAAC,2BAA2BP,EAAIkiF,kBAAkB,CAAC9hF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,mBAAmB,eAAe,SAAS,iBAAiB,YAAY,iBAAiB,gBAAgBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,gBAAgB,eAAe,MAAM,iBAAiB,mBAAmB,iBAAiBP,EAAImiF,cAAc,OAAS,sBAAsB/hF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,kBAAkB,eAAe,MAAM,iBAAiB,sBAAsB,iBAAiBP,EAAImiF,cAAc,OAAS,yBAAyB/hF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,kBAAkB,eAAe,MAAM,iBAAiB,sBAAsB,iBAAiBP,EAAImiF,cAAc,OAAS,yBAAyB/hF,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAO,sBAAsB,eAAe,MAAM,iBAAiB,0BAA0B,iBAAiBP,EAAImiF,cAAc,OAAS,8BAA8B,GAAG/hF,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,SAAW,qBAAqB,IAAI,GAAGH,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAIoiF,iBAAiB,MAAQ,OAAO,OAAS,QAAQ,iBAAgB,EAAM,qBAAoB,GAAMn6E,GAAG,CAAC,gBAAgBjI,EAAIqiF,gCAAgCthF,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,SAASkH,GACnrF,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACE,MAAON,EAAIsiF,4BAA4B7mF,EAAKA,OAAQ,CAACuE,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKA,KAAKm1E,kBAAkB,CAACxwE,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAcH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,QAAQ,QAAU,SAAS,YAAY,SAAS,UAAY,OAAO,MAAQ,IAAI,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,aAAa,UAAU,QAAU,UAAU,YAAY,SAAS,UAAY,OAAO,gBAAgB,kBAAkB,SAAW,cAAc,iBAAgB,KAASH,EAAG,cAAc,IAAI,MACrlB,GAAkB,G,aCTlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACe,YAAY,cAAcZ,MAAM,CAAC,cAAcP,EAAI6hF,eAAe,iBAAgB,EAAM,MAAQ,OAAO,cAAe,EAAK,mBAAoB,EAAM,WAAW,aAAa55E,GAAG,CAAC,gBAAgBjI,EAAIqjC,gBAAgBtiC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,kBAAkBqC,GAAG,SAASkH,GACxa,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAA2C,eAAzCJ,EAAIuiF,uBAAuB9mF,EAAKA,MAAwB2E,EAAG,YAAY,CAACe,YAAY,aAAaiK,YAAY,CAAC,MAAQ,QAAQ,mBAAmB,eAAe7K,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAAUtI,GAAK,OAAOK,EAAIwiF,gBAAgB7iF,EAAGlE,EAAKA,UAAsD,kBAAzCuE,EAAIuiF,uBAAuB9mF,EAAKA,MAA2B2E,EAAG,YAAY,CAACe,YAAY,aAAaiK,YAAY,CAAC,MAAQ,QAAQ,mBAAmB,eAAe7K,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAAUtI,GAAK,OAAOK,EAAIwiF,gBAAgB7iF,EAAGlE,EAAKA,UAAsD,eAAzCuE,EAAIuiF,uBAAuB9mF,EAAKA,MAAwB2E,EAAG,YAAY,CAACe,YAAY,aAAaiK,YAAY,CAAC,MAAQ,QAAQ,mBAAmB,eAAe7K,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAAUtI,GAAK,OAAOK,EAAIwiF,gBAAgB7iF,EAAGlE,EAAKA,UAAsD,kBAAzCuE,EAAIuiF,uBAAuB9mF,EAAKA,MAA2B2E,EAAG,YAAY,CAACe,YAAY,aAAaiK,YAAY,CAAC,MAAQ,QAAQ,mBAAmB,eAAe7K,MAAM,CAAC,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAAUtI,GAAK,OAAOK,EAAIwiF,gBAAgB7iF,EAAGlE,EAAKA,UAAYuE,EAAIyI,KAAKrI,EAAG,MAAM,CAACE,MAAON,EAAIyiF,WAAWhnF,EAAKA,KAAKsqE,cAAqCz4D,GAA3B7R,EAAKA,KAAKinF,eAA6BvnC,SAAS,CAAC,UAAYn7C,EAAIwH,GAAGxH,EAAI2iF,qBAAqBlnF,EAAKA,WAAW,MAAM,CAACmD,IAAI,kBAAkBqC,GAAG,SAASkH,GACnvC,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACE,MAAON,EAAIyiF,WAAWhnF,EAAKA,KAAKuqE,WAAY,CAAChmE,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,sBAAP/mC,CAA8BvE,EAAKA,KAAKuqE,iBAAiB,CAACpnE,IAAI,sBAAsBqC,GAAG,SAASkH,GAC7K,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACE,MAAON,EAAIyiF,WAAWhnF,EAAKA,KAAKwqE,eAAgB,CAACjmE,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,sBAAP/mC,CAA8BvE,EAAKA,KAAKwqE,wBAAwB,CAAC7lE,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,QAAU,GAAG,aAAa,YAAY,YAAY,SAAS,UAAY,SAAS,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAa,EAAM,iBAAgB,EAAM,aAAa,WAAW,QAAU,GAAG,YAAY,SAAS,gBAAgB,kBAAkB,SAAW,eAAe,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,QAAU,GAAG,YAAY,SAAS,gBAAgB,kBAAkB,SAAW,eAAe,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,QAAU,GAAG,YAAY,SAAS,gBAAgB,sBAAsB,MAAQ,IAAI,SAAW,kBAAkBH,EAAG,cAAc,IAAI,IAC5yB,GAAkB,G,udLPtB,SAAYygF,GACRA,qBACAA,oBACAA,oBACAA,kBAJJ,CAAYA,QAA0B,KMoGtC,IAAqB+B,GAAa,4CAgB9B,iDACI,eAHJ,EAAAlqB,iBAAmBj0D,uBAAUnC,EAAkBc,GAI3C,EAAKyiB,gBAAkB,IAAId,GAF/B,EAhB8B,sDAqB9B,WACI,OAAO9kB,KAAKy4D,iBAAiBmqB,wBAA0B,KAtB7B,0BAyB9B,WACI,OAAO5iF,KAAKkU,SAAW,KA1BG,4BA6BhC,SAAexU,MA7BiB,wBAiChC,SAAWrB,GAAgE,IACjExB,EADgBgmF,EAAiD,4DAATx1E,EAe5D,OAZIxQ,OADmBwQ,GAApBw1E,EACS,CACJ,gBAAkBA,EAAmB,OAAQ,MAC7C,aAAgBA,EAAmB,SAAW,SAI1C,CACJ,gBAAkB,MAClB,aAAgB,SAIjBhmF,IAhDmB,kCAmDhC,SAAqBrB,GACnB,IAAI6iD,EAA6B,IAEjC,GAAG7iD,EAAKsqE,SAAU,CACd,IAAIliE,EAAU5D,KAAK01C,SAASC,QAAgBmtC,oBACxCC,EAAkB/iF,KAAK01C,SAASC,QAAgB7Y,SACpD,GAAIthC,EAAKinF,cAGJ,CACD,IAAIxnB,EAAUz/D,EAAKinF,cACnBpkC,EAAY,GAAH,OAAMz6C,EAAOpI,EAAKsqE,UAAlB,iBAAoCliE,EAAOq3D,EAAQgL,MAAQhL,EAAQoL,WAAnE,iBAAuF0c,EAAe9nB,EAAQoL,WAA9G,YAAoJ,IAAxBpL,EAAQqL,YAAoB,MAAQ,SAAhK,UAJTjoB,EAAYz6C,EAAOpI,EAAKsqE,UAQ5B,OAAOznB,IAlEmB,4BAqE9B,SAAe3+C,GACX,GAAiB,SAAdA,EAAEyT,SAA4C,YAAtBzT,EAAEqL,OAAOmsC,gBAAqD7pC,GAA1B3N,EAAEkuB,IAAIpyB,KAAKosE,aAA4BloE,EAAEkuB,IAAIpyB,KAAKwnF,qBAAsB,CACnI,IAAIC,EAAWvjF,EAAEkuB,IAAIpyB,KAAKosE,aAAepB,GAAiBqB,YAAc,MAAQ,UAChFnoE,EAAE8T,YAAYnT,MAAM,UAApB,oBAA6C4iF,GAC7CvjF,EAAE8T,YAAYnT,MAAM,eAAiB,WAGnB,SAAdX,EAAEyT,SAA4C,aAAtBzT,EAAEqL,OAAOmsC,YAClCx3C,EAAEkuB,IAAIpyB,KAAKolE,sBACVlhE,EAAE8T,YAAYnT,MAAM,SAAWugF,GAA2BsC,KAEtB,MAAhCxjF,EAAEkuB,IAAIpyB,KAAKmlE,kBACfjhE,EAAE8T,YAAYnT,MAAM,SAAWugF,GAA2BuC,MAEtDzjF,EAAEkuB,IAAIpyB,KAAKmlE,kBACfjhE,EAAE8T,YAAYnT,MAAM,SAAWugF,GAA2B99B,GAG1DpjD,EAAE8T,YAAYnT,MAAM,SAAWugF,GAA2B59B,OAvFxC,6BA4F9B,SAAgBtjD,EAAQlE,GAAS,WACzB4nF,EAAS1jF,EAAEuH,UACXshD,EAAQvoD,KAAKk8B,WAAWlqB,MAAK,SAAAk/D,GAAC,OAAEA,EAAE90C,aAAe5gC,EAAK4gC,eACtDinD,EAA2C,CAC3Cx3E,SAAU7L,KAAKgM,SACfosD,SAAU58D,EAAK48D,SACf5qD,UAAWhS,EAAKgS,UAChB4uB,YAAa5gC,EAAK4gC,YAClB+0C,cAAe5oB,EAAQA,EAAMpsB,UAAY,IAE7Cn8B,KAAK4lB,gBAAgB09D,uBAAuBD,GACvCh9E,MAAK,SAAAxJ,GACF,GAAGA,EAAO+mB,KACNw/D,EAAO92E,OAAO,OAAQ,SACrB,EAAK2kE,kBAAkBnlE,QAAQu3E,GAC/B,EAAKl2D,MAAMlH,MAAM,mBAAoBo9D,EAAoBjrB,cAEzD,CACDgrB,EAAO92E,OAAO,OAAQ,SACtB,IAAIi3E,EAAgB,EAAKtS,kBAAkB3U,WAAU,SAAA9lD,GACjD,OAAOA,EAAE3K,UAAYw3E,EAAoBx3E,UAC/B2K,EAAE4hD,UAAYirB,EAAoBjrB,UAClC5hD,EAAEhJ,WAAa61E,EAAoB71E,WACnCgJ,EAAE4lB,aAAeinD,EAAoBjnD,eAEnD,EAAKonD,QAAQ,EAAKvS,kBAAkBsS,GACpC,EAAKp2D,MAAMlH,MAAM,mBAAoBo9D,EAAoBjrB,gBAtH3C,oCA2H9B,SAAuB58D,GACnB,MAAuB,eAApBA,EAAKosE,iBAC0Iv6D,GAA3IrN,KAAKixE,kBAAkBj/D,MAAK,SAAA42D,GAAE,OAAIA,EAAGxQ,UAAY58D,EAAK48D,UAAYwQ,EAAGp7D,WAAahS,EAAKgS,WAAao7D,EAAGxsC,aAAe5gC,EAAK4gC,eACnH,iBAGA,cAGa,eAApB5gC,EAAKosE,iBACqIv6D,GAA3IrN,KAAKixE,kBAAkBj/D,MAAK,SAAA42D,GAAE,OAAIA,EAAGxQ,UAAY58D,EAAK48D,UAAYwQ,EAAGp7D,WAAahS,EAAKgS,WAAao7D,EAAGxsC,aAAe5gC,EAAK4gC,eACnH,iBAGA,mBALV,MApIqB,GAASv5B,cAEzCb,gBADCwnB,mBACD,+BAGExnB,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,gBAAK,CAAEC,aAASpc,KACjB,gCAGArL,gBADCwnB,mBACD,iCAXiBm5D,GAAa,gBAPjCx7E,eAAU,CACTL,WAAY,CACV4iB,4BACA/Q,wBACAC,4BAGiB+pE,QCpGTc,GDoGSd,MEpGqY,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,+dFnBf,SAAYc,GACRA,wBACAA,sCACAA,mCAHJ,CAAYA,QAAwB,KG4OpC,IAAqBd,GAAa,4CAsDhC,iDACE,eAtDF,EAAApzE,MAEI,GA2CJ,EAAAm0E,4BAAsC,EAEtC,EAAA/c,aAAkC,GAClC,EAAAC,WAAmB,EAAKlxB,SAASC,QACjC,EAAAkxB,yBAA2D,GAsH3D,EAAA8c,iBAA2B,EAmJnB,EAAAC,iBAAmD,GAE3D,EAAAC,YAAqC,GArQnC,EAAKj+D,gBAAkB,IAAId,GAC3B,EAAKg/D,cAAgB,IAAIrd,GACzB,EAAK9oD,SAAS,EAAKiI,gBAAiB,EAAKk+D,eAJ3C,EAtDgC,6CAQhC,WACE,OAAO9jF,KAAKm4D,OAAOC,WATW,2BAYhC,WACE,OAAOp4D,KAAKm4D,OAAOwJ,YAbW,sFAiBhC,8FACE3hE,KAAK2jF,iBAAkB,EACvB3jF,KAAK+jF,wBAA0B,GAC/B/jF,KAAK+mE,gBAHP,gDAjBgC,mFAsChC,WACE,OAAO/mE,KAAKg6D,iBAvCkB,sBA0ChC,WACE,OAAQh6D,KAAKuP,MAAMy0E,kBAA0B5yE,WA3Cf,+EA6DhC,WAAewU,EAAkCk+D,GAAjD,iFACE9jF,KAAK+mE,cAAc+c,GADrB,gDA7DgC,uFAiEhC,WAAmE,WAArDA,EAAqD,4DAATz2E,GACvDrN,KAAK8jF,cAAgB9jF,KAAK8jF,cAC1BA,GAAgC,IAAIrd,IACpCsB,6BAA6B/nE,KAAKm4D,OAAOC,UACzC/xD,MAAK,SAAAxJ,GACJ,EAAKgqE,yBAA2BhqE,MAGjCmD,KAAK8jF,cAAgB9jF,KAAK8jF,cAC1BA,GAAgC,IAAIrd,IACpCwd,wBAAwBjkF,KAAKm4D,OAAOC,SAAU5G,GAA4B2Q,KAC1E97D,MAAK,SAAAxJ,GACJ,EAAKgnF,YAAchnF,OA7ES,sCAiFhC,SAAyBgT,GAA8C,WACrE,QAAWxC,GAARwC,EAAmB,CACpB7P,KAAK8jF,cAAc/b,6BAA6B/nE,KAAKm4D,OAAOC,UAC3D/xD,MAAK,SAAAxJ,GACJ,EAAKgqE,yBAA2BhqE,KAGlC,IAAIqnF,EAAoC,GACxClkF,KAAK8jF,cAAcG,wBAAwBjkF,KAAKm4D,OAAOC,SAAUvoD,GAChExJ,MAAK,SAAAxJ,GAGJ,GAFAqnF,EAAarnF,EAEVgT,GAAQ2hD,GAA4B/f,YAAe5hC,GAAQ2hD,GAA4B2Q,IAAK,CAC7F,IAAIgiB,EAAe,EAAKhC,iBAAiBv+E,QAAO,SAAA4S,GAAC,OAAIA,EAAE00B,MAAQu4C,GAAyBl5C,SACpF65C,EAAe,EAAKjC,iBAAiBv+E,QAAO,SAAA4S,GAAC,OAAIA,EAAE00B,MAAQu4C,GAAyBY,gBAExF,EAAKlC,iBAAiBnmF,OAAS,EAC/B,EAAKmmF,iBAAmBh9E,IAAEE,OAAO8+E,EAAcD,EAAYE,GAE7D,GAAGv0E,GAAQ2hD,GAA4BwM,mBAAqBnuD,GAAQ2hD,GAA4B2Q,IAAI,CAClG,IAAImiB,EAAoB,EAAKnC,iBAAiBv+E,QAAO,SAAA4S,GAAC,OAAIA,EAAE00B,MAAQu4C,GAAyBhyC,cACzF0yC,EAAeD,EAAWtgF,QAAO,SAAA4S,GAAC,OAAIA,EAAE00B,MAAQu4C,GAAyBl5C,SACzE65C,EAAeF,EAAWtgF,QAAO,SAAA4S,GAAC,OAAIA,EAAE00B,MAAQu4C,GAAyBY,gBAE7E,EAAKlC,iBAAiBnmF,OAAS,EAC/B,EAAKmmF,iBAAmBh9E,IAAEE,OAAO8+E,EAAcG,EAAmBF,OAGrEnwE,SAAQ,kBA7GmB,2BAmHhC,SAAcvU,GACZM,KAAK0jF,4BAA6B,IApHJ,4BAuHhC,SAAehkF,GACb,IAAIuH,EAAcvH,EAAEuH,UAAUmK,WAC1BkwE,EAAgBr6E,EAAU+3C,gBAAgBrkC,QAC1C4pE,EAAOjD,EAActvE,MAAK,SAACnN,GAAD,OAA4BA,EAAK+1D,WAAWr3B,WAAa7jC,EAAEf,OAEtF4lF,EAAK9C,YACNzhF,KAAK+jF,6BAA0B12E,EAC/Bk3E,EAAK9C,WAAY,EACjBx6E,EAAU+S,eACVha,KAAKmtB,MAAMlH,MAAM,0BAAsB5Y,IAGzCrN,KAAK0jF,4BAA6B,IAnIJ,8BAsIxB,SAAiBvvC,GACvB,GAAGA,EAAW,CACZn0C,KAAK+jF,wBAA0B5vC,EAC/B,IAAImtC,EAAgBthF,KAAKgxC,WAAWgO,gBAAgBrkC,QAChD6pE,EAAWlD,EAAc19E,QAAO,SAACiB,GAAD,OAA4BA,EAAK+1D,WAAWr3B,YAAc4Q,KAE9FqwC,EAASx1E,SAAQ,SAACnK,GACbA,EAAK48E,YACN58E,EAAK48E,WAAY,WAKrBzhF,KAAK+jF,6BAA0B12E,EAGjCrN,KAAKgxC,WAAWh3B,eAChBha,KAAKmtB,MAAMlH,MAAM,qBAAsBkuB,KAvJT,2BA0JhC,SAAcz0C,GACZ,OAAQM,KAAK01C,SAASC,QAAgBmtC,oBAAoBpjF,EAAErB,SA3J9B,6BA8JhC,SAAgBqO,GACS,qBAAjBA,EAAQ9O,OACqB,UAA3B8O,EAAQ+3E,eACV/3E,EAAQg4E,WAAa,EACe,cAA3Bh4E,EAAQ+3E,iBACjB/3E,EAAQg4E,WAAah4E,EAAQg4E,WAAa,MAnKlB,4BAyKhC,SAAehlF,GACVM,KAAK2jF,gBACN3jF,KAAK2kF,yBAAyBjlF,EAAEuH,WAEzBjH,KAAK0jF,4BACZ1jF,KAAK4kF,uBA9KuB,gCAkLhC,WACE,IAAIC,EAAe1yE,SAASC,uBAAuB,iBAAiB,GAC9DyyE,GACFvyE,YAAW,WACTuyE,EAAa9xB,gBAAe,KAC5B,OAvLwB,sCA2LhC,SAAyB9rD,GAAc,WAC/B0T,EAAQ1T,EAAU+3C,gBAAgBrkC,QAElCmqE,EAAgBnqE,EAAM/W,QAAO,SAACs7C,GAAD,OAAmB,EAAK6lC,wBAAwB7lC,EAAQptC,YACrFkzE,EAAarqE,EAAM/W,QAAO,SAACs7C,GAAD,OAAoB,EAAK6lC,wBAAwB7lC,EAAQptC,YAEvFkzE,EAAWh2E,SAAQ,SAACkwC,GAChBj4C,EAAUisE,YAAYh0B,EAAQ0b,WAAWr3B,cAG7CuhD,EAAc91E,SAAQ,SAACkwC,GACnBj4C,EAAUksE,UAAUj0B,EAAQ0b,WAAWr3B,cAI3C,IAAI0hD,EAAa9yE,SAASC,uBAAuB,eAAe,GAC5D6yE,GACAA,EAAWlyB,gBAAe,GAI3Bp4C,GAASA,EAAM3e,OAAS,GAAKgE,KAAKyC,gBAAkBzC,KAAKyC,eAAezG,OAAS,IAClFgE,KAAK2jF,iBAAkB,KAjNG,4BAqN/B,SAAejkF,GACG,SAAdA,EAAEyT,SAA4C,aAAtBzT,EAAEqL,OAAOmsC,YAClCx3C,EAAE8T,YAAYnT,MAAM,oBAAsBX,EAAEkuB,IAAIpyB,KAAKo/D,WAAWzuB,QAGjD,SAAdzsC,EAAEyT,SAA4C,uBAAtBzT,EAAEqL,OAAOmsC,WAAsCx3C,EAAEkuB,IAAIpyB,KAAKmmF,oBAAsBjiF,EAAEkuB,IAAIpyB,KAAKwnF,uBACpHtjF,EAAE8T,YAAYnT,MAAM,SAAW,MAC/BX,EAAE8T,YAAYnT,MAAM,eAAiB,UA5NT,4CAgOhC,SAA+BX,GACZ,SAAdA,EAAEyT,UACsB,SAAtBzT,EAAEqL,OAAOmsC,WAAwBx3C,EAAEkuB,IAAIpyB,KAAK0vC,MAAQu4C,GAAyBl5C,QAC9E7qC,EAAE8T,YAAYnT,MAAM,oBAAsBX,EAAEkuB,IAAIpyB,KAAK0pF,KAGnDxlF,EAAEkuB,IAAIpyB,KAAK0vC,MAAQu4C,GAAyBY,cAAiB3kF,EAAEkuB,IAAIpyB,KAAK2pF,qBAC1EzlF,EAAE8T,YAAYnT,MAAM,oBAAsB,cAvOhB,yCA2OhC,SAA4B7E,GAC1B,GAAGA,EAAK0vC,MAAQu4C,GAAyBl5C,MAAO,CAC9C,IAAI04C,EAA+B,GAApBznF,EAAKosE,YAAmB,UAAY,MACnD,MAAO,CACP,2BAAwBqb,OA/OI,+BAoPhC,WAAuB,WACrB,OAAOjjF,KAAK8nD,cAAclkD,QACxB,SAAA1F,GAAC,OACCA,EAAE2N,WAAa,EAAKssD,OAAOtsD,WACb,MAAb3N,EAAEwoB,SAAmBxoB,EAAEwoB,QAAQ7L,cAAgB,EAAKs9C,OAAOt9C,kBAxPlC,gCA4PhC,WAAwB,WACtB,OAAO7a,KAAK+nD,eAAenkD,QAAO,SAAA1F,GAAC,OAAIA,EAAEk6D,WAAa,EAAKz1D,cA7P7B,4BAgQhC,WAAc,WAER+1D,GADgB14D,KAAKolF,oBAAoBxhF,QAAO,SAAA1F,GAAC,OAA4B,GAAxBA,EAAEitC,YAAYnvC,QAAekC,EAAEitC,YAAYzgC,MAAK,SAAAm7C,GAAC,OAAIA,EAAEhoB,cAAgB,EAAKs6B,OAAOt6B,mBAC5H79B,KAAKqlF,gBAAgBzhF,QAAO,SAAAiB,GAAI,OAAIA,EAAKu4D,UAAYh9B,GAAgBu4B,YACjFqP,EAAiB7iE,IAAEu8C,QAAQgX,GAAW,SAAA58D,GAAC,OAAIA,EAAE0R,aAE7C04D,EAAiB/gE,IAAE8iE,QAAQD,GAAgB,SAACE,EAAczkD,GAC5D,IAAI0kD,EAAiBhjE,IAAEu8C,QAAQwmB,GAAc,SAAApsE,GAAC,OAAIA,EAAE0+D,uBAEpD,OAAOr1D,IAAE8iE,QAAQE,GAAgB,SAACzP,EAAWsH,GAC3C,IAAIqI,EAA4B,GAC5Bl0B,EAAY,EAAKjY,WAAWt4B,QAAO,SAAAtF,GAAC,OAAIA,EAAE89B,cAAgBvI,SAASmsC,MAAc,GACjFsI,EAA8B,MAAbn0B,EACEA,EAAU7H,UACXosB,EAAU90D,QAAO,SAAA9H,GAAC,OAAI,EAAK2G,gBAAkB,EAAKA,eAAeqV,SAAShc,EAAEgW,YAC1E4mD,EAAa,GAErC,GAAiB,MAAbvkB,GAAqBm0B,GAAkBA,EAAetsE,OAAS,EAAG,CACpE,IAAIgkE,EAAc7rB,EAAU/X,YACxBmsC,EAAW,EAAK1B,yBAAyB70D,MAAK,SAAAvU,GAAC,OAAIA,EAAE+P,WAAaiW,GAAahmB,EAAE2+B,aAAe4jC,KAEpG,GAAGuI,EAAU,CACT,IAAItN,EAAyB,CAC3BkL,UAAWhyB,EAAUhY,UACrBgQ,OAAQgI,EAAUhI,OAClB85B,MAAOsC,EAASC,gBAAkBD,EAASC,gBAAkB,EAC7DnC,UAAWkC,EAASE,UAAY7C,GAAiBl+B,IACtC6gC,EAAS/gC,UAAY+gC,EAAS/gC,UAAY,EAC1C+gC,EAAShhC,aAAeghC,EAAShhC,aAAe,EAC3D++B,YAAaiC,EAASE,SACtBb,YAA2C,GAA9BW,EAASG,kBAAyBlC,GAAiBmC,YAAcnC,GAAiBqB,YAC/Fr6D,UAAWiW,EACX2oB,WAAY+H,EAAU/H,WACtB42C,qBAAuBza,EAASya,sBAG/Bza,EAASt9B,gBAC+D,GAArEo9B,EAASzkE,QAAO,SAAAglE,GAAE,OAAIA,EAAGzC,WAAahyB,EAAUhY,aAAWngC,OACzDusE,EAASE,UAAY7C,GAAiBl+B,MACxC2gC,EAAWA,EAASzkE,QAAO,SAAAglE,GAAE,OAAIA,EAAGtC,aAAeV,GAAiBj+B,QAAUihC,EAAGzC,WAAahyB,EAAUhY,aACxGksC,EAAS/rE,KAAK2+D,IAOlBoN,EAAS/rE,KAAK2+D,IAKtB,OAAOoN,QAIX,OAAOnC,IAvTuB,4BA8ThC,WACE,OAAOlmE,KAAK6jF,aA/TkB,IAiUhC,SAAqBroF,GACnBwE,KAAK6jF,YAAcroF,IAlUW,yBAqUhC,WAAiB,WACX8pF,EAAiBtlF,KAAKkmE,iBAC1BlmE,KAAK4jF,iBAAmBz+E,IAAEihB,UAAUpmB,KAAKqlF,iBACzC,IAAIE,EAAgBvlF,KAAKyC,eACrBg/C,EAAet8C,IAAEu8C,QAAQ1hD,KAAK4jF,kBAAkB,SAAA9nF,GAAC,OAAIA,EAAE2+D,qBAEvD59D,EAA6BsI,IAAE9F,IAAIoiD,GAAc,SAAC+jC,EAAY7mF,GAChE,IAAI8mF,EAAiC,GACjC74E,EAAiB,GACjB84E,EAAcvgF,IAAEu8C,QAAQ8jC,GAAY,SAAApxE,GAAC,OAAIA,EAAE5G,aAE/CrI,IAAE6J,QAAQ02E,GAAa,SAAChtB,GACtB,IAAIitB,EAA0B,CAC5Bn4E,UAAWkrD,EAAU,GAAGlrD,UACxBs4D,SAAU,EACVE,aAAc,EACdD,SAAU,EACVpF,kBAAmBjI,EAAU,GAAGiI,kBAChCC,sBAAuBlI,EAAU,GAAGkI,sBACpCxI,SAAU,EAAKz1D,SACfy5B,YAAas8B,EAAU,GAAG8B,oBAC1BwoB,sBAAsB,GAGpB4C,EAAmBltB,EAAU90D,QAAO,SAAA6zD,GAAE,OAAIA,EAAG2F,UAAYh9B,GAAgBu4B,WAC7EgtB,EAAU7f,SAAW8f,EAAiB9jB,QAAO,SAACxC,EAAK7H,GAAN,OAAa6H,GAAO7H,EAAGyI,SAAW,EAAIzI,EAAGyD,iBAAgB,GACtGyqB,EAAU5f,SAAWrN,EAAU90D,QAAO,SAAA6zD,GAAE,OAAIA,EAAG2F,UAAYh9B,GAAgBy4B,WAASiJ,QAAO,SAACxC,EAAK7H,GAAN,OAAa6H,GAAO7H,EAAGyI,SAAW,EAAIzI,EAAGyD,iBAAgB,GACpJyqB,EAAU3f,aAAetN,EAAU90D,QAAO,SAAA6zD,GAAE,OAAIA,EAAG2F,UAAYh9B,GAAgBw4B,eAAakJ,QAAO,SAACxC,EAAK7H,GAAN,OAAa6H,GAAO7H,EAAGyI,SAAW,EAAIzI,EAAGyD,iBAAgB,GAE5J,IAAID,EAAU91D,IAAE6M,KAAKszE,GAAgB,SAAAzgF,GAAI,OAAIA,EAAK2I,YAAcm4E,EAAUn4E,WAAa3I,EAAKshE,YAAcxnE,KACvGs8D,IACD0qB,EAAUlD,cAAgBxnB,EAC1B0qB,EAAU/d,YAAc+d,EAAUlD,cAAc7a,YAChD+d,EAAUld,SAAWkd,EAAUlD,cAAcnc,YAC7Cqf,EAAU3C,uBAAuB/nB,EAAQ+nB,sBAAuB/nB,EAAQ+nB,sBAG1E,IAAIrwB,EAAW+F,EAAU1mD,MAAK,SAAAylD,GAAE,OAAI8tB,GAAiBA,EAAc76E,MAAK,SAAAkH,GAAC,OAAIA,GAAK6lD,EAAG3lD,mBACtEzE,GAAZslD,IACD/lD,EAAU+lD,EAAS7gD,SAErB2zE,EAAenpF,KAAKqpF,MAKtB,IAAIE,EAAsBJ,EAAe7hF,QAAO,SAAAiB,GAAI,OAAIA,EAAK49E,iBACzDqD,OAAqBz4E,EACtBw4E,GAAuBA,EAAoB7pF,OAAS,IACrD8pF,EAAqB3gF,IAAE6M,KAAK6zE,GAAqB,SAAAhhF,GAAI,OAAIA,EAAK+iE,aAAe/iE,EAAK+iE,cAAgBpB,GAAiBqB,eAC3FrB,GAAiBqB,YAAcrB,GAAiBmC,aAG1E,IAAIvB,EAAWjiE,IAAEu2D,MACf+pB,GACA,SAAA3pF,GAAC,OAAIA,EAAEgqE,YAELuB,EAAWliE,IAAEu2D,MACf+pB,GACA,SAAA3pF,GAAC,OAAIA,EAAEiqE,YAELuB,EAAeniE,IAAEu2D,MACnB+pB,GACA,SAAA3pF,GAAC,OAAIA,EAAEkqE,gBAGL7xB,EAAYhvC,IAAE6M,KAAK,EAAKkqB,YAAY,SAAApgC,GAAC,OAAI6C,IAAQ7C,EAAEqgC,aACnD4pD,EAAuB,MAAPpnF,GAAuB,SAARA,EAAiB,aAAeA,EAEnE,MAAO,CACLi8D,WAAY,CACVkL,SAAUsB,EACVrB,SAAUsB,EACVrB,aAAcsB,EACd/jC,UAAWwiD,EACX9f,MAAOmB,EAAWC,EAAWC,EAC7Bn7B,OAAQgI,EAAYA,EAAUhI,YAAS9+B,EACvC++B,WAAY+H,EAAYA,EAAU/H,gBAAa/+B,GAEjDu0E,eAAgB6D,EAChBO,SAAUR,EAAWxpF,OACrB8V,QAASlF,EACT+0E,mBAAoBmE,EACpB15C,WAAY+H,EAAYA,EAAU/H,WAAa,EAC/Cq1C,UAAW,EAAKsC,0BAA4BgC,EAC5C/C,qBAAsByC,EAAe/6E,MAAK,SAAAtN,GAAC,OAAIA,EAAE4lF,4BAQrD,OAHAhjF,KAAK0jF,4BAA6B,EAG3B7mF,EAAOwsB,MAAK,SAAC9b,EAAGqE,GAAJ,OAAUrE,EAAE6+B,WAAax6B,EAAEw6B,gBAlahB,qCAqaxB,SAAwBx/B,GAC9B,OAAO5M,KAAKyC,gBAAkBzC,KAAKyC,eAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAMhF,OAtapC,8BAyaxB,SAAiBA,GACvB,OAAO5M,KAAK+kF,wBAAwBn4E,GAAW,OAAS,WA1a1B,+BA6axB,SAAkBi3D,EAAgBn3D,GACxCm3D,EAAUE,YAAV,UAA2Br3D,EAAQlR,KAAKo/D,WAAWr3B,UAAnD,aAAiE72B,EAAQlR,KAAKwqF,SAA9E,KACAniB,EAAUiZ,UAAV,UAAyB98E,KAAK+kF,wBAAwBr4E,EAAQlR,KAAKsW,SAAW,cAAe,GAA7F,YAAmGpF,EAAQlR,KAAKimF,UAAY,gBAAiB,IAC7I5d,EAAUxjE,MAAM2jD,WAAahkD,KAAKimF,iBAAiBv5E,EAAQlR,KAAKsW,WAhblC,2BAmbxB,SAAc+xD,EAAgBn3D,GACpC,IAAM9I,EAAU5D,KAAK01C,SAASC,QAAgBmtC,oBAE9Cjf,EAAUE,YAAcngE,EAAO8I,EAAQlR,KAAKo/D,WAAWqL,OAAO,KAtbhC,8BAybxB,SAAiBpC,EAAgBn3D,GACvC,IAAM9I,EAAU5D,KAAK01C,SAASC,QAAgBmtC,oBAE9Cjf,EAAUE,YAAcngE,EAAO8I,EAAQlR,KAAKo/D,WAAWmL,UAAU,KA5bnC,kCA+bxB,SAAqBlC,EAAgBn3D,GAC3C,IAAM9I,EAAU5D,KAAK01C,SAASC,QAAgBmtC,oBAE9Cjf,EAAUE,YAAcngE,EAAO8I,EAAQlR,KAAKo/D,WAAWoL,cAAc,KAlcvC,2BAqchC,WACEhmE,KAAKmtB,MAAMG,KAAK,0BAA2BttB,KAAK8nE,0BAChD9nE,KAAKmtB,MAAMG,KAAK,mBAAoBttB,KAAKkmF,4BAvcX,8EA0chC,8FACElmF,KAAKmtB,MAAMC,IAAI,0BAA2BptB,KAAK8nE,0BAC/C9nE,KAAKmtB,MAAMC,IAAI,mBAAoBptB,KAAKkmF,0BAF1C,gDA1cgC,+FA+chC,SAAyBrd,GACvBA,EAAK7oE,KAAK2mE,kBAhdoB,GAAS9jE,cAMzCb,gBADCwnB,mBACD,8BAWAxnB,gBADCuW,gBAAM,oBACP,qCAOAvW,gBADCwnB,mBACD,kCAGAxnB,gBADCwnB,gBAAK,CAAEC,aAASpc,KACjB,gCAGArL,gBADCwnB,mBACD,qCAGAxnB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,sCApCmBm5D,GAAa,gBAbjCx7E,eAAU,CACTL,WAAY,CACV4iB,4BACA/Q,wBACAwtE,wBACAC,oCACAC,gBACAntE,0BACAotE,8BACAztE,8BACAoV,kCAGiB00D,cC5OsY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI5iF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAuB,oBAAEsJ,WAAW,wBAAwBnI,YAAY,yBAAyB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAIw5C,eAAe,aAAa,IAAI,cAAe,EAAK,iBAAkB,EAAK,aAAc,EAAK,OAAS,IAAI,YAAc,IAAI,WAAW,aAAavxC,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,gBAAgBrjC,EAAIyK,eAAe,yBAAyBzK,EAAI25C,qBAAqB,CAACv5C,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,cAAcH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,YAAYP,EAAI6K,GAAI7K,EAAW,SAAE,SAASgL,GAAQ,OAAO5K,EAAG,YAAY,CAACxB,IAAIoM,EAAOzK,MAAM,CAAC,KAAOyK,EAAO,YAAY,SAAS,aAAaA,EAAO,iBAAgB,EAAM,iBAAgB,EAAM,mBAAkB,EAAM,MAAQhL,EAAIi9C,iBAAgB78C,EAAG,cAAc,GAAGA,EAAG,wBAAwB,CAACG,MAAM,CAAC,WAAaP,EAAIu/B,sBAAsB,OAASv/B,EAAI2D,OAAO,SAAW3D,EAAIwmF,iBAAiB,YAAcxmF,EAAIymF,cAAc,aAAezmF,EAAI0mF,gBAAgBz+E,GAAG,CAAC,OAASjI,EAAI2mF,aAAa,OAAS3mF,EAAI8/B,mBAAmB,IACptC,GAAkB,G,sdCiFtB,IAAqB8mD,GAAkB,4CAkDrC,iDACE,eAjDM,EAAAr5E,OAAsB,GACtB,EAAAuvC,gBAAiC,GAmBzC,EAAA+pC,qBAA+B,EAE/B,EAAArjC,gBAAiC,GAEzB,EAAAjkB,uBAAiC,EAEzC,EAAAkkB,mBAA2B,GAC3B,EAAAgjC,cAAkClmD,GAAiBle,MACnD,EAAAqkE,eAAoCpmD,GAAkB0K,OAuCtD,EAAA6R,gBAA4B,GAqB5B,EAAAI,WAAa,IACb,EAAA6pC,YAAc,IAvCZ,EAAK74C,gBAAkB,IAAIzN,GAAiB,kBAF9C,EAlDqC,6CAQrC,WACE,OAAOvgC,KAAKm4D,OAAOC,WATgB,2BAYrC,WACE,OAAOp4D,KAAKm4D,OAAOwJ,YAbgB,sFAiBrC,8GACQ3hE,KAAK8mF,+BADb,gDAjBqC,qFAgCrC,WAAoB,WAClB,OAAO3hF,IAAEmuB,MAAMtzB,KAAK68C,gBAAgBj5C,QAAO,SAAAxG,GAAC,OAAIA,EAAE00C,YAAc,EAAK0R,sBAAoB,MAjCtD,kBAoCrC,WACE,OAAGxjD,KAAKm4D,OACC,CACLtsD,SAAW7L,KAAKm4D,OAAOtsD,SACvBD,WAAa5L,KAAKm4D,OAAOvsD,iBAGtB,IA3C4B,qBA8CrC,WACE5L,KAAK2d,aA/C8B,+EAuDrC,8GACgC3d,KAAKguC,gBAAgB0D,qBAAqB1xC,KAAKm4D,OAAOtsD,UADtF,cACE7L,KAAKujD,gBADP,gBAEQvjD,KAAK8mF,+BAFb,gDAvDqC,4JA4DrC,2GACE9mF,KAAKsN,OAASnI,IAAEikB,OAAOppB,KAAKm4D,OAAOwJ,WAAW,SAAA98D,GAAI,OAAIA,EAAK2I,aAC1CnO,KAAI,SAASwF,GACZ,MAAO,CAAC2I,UAAW3I,EAAK2I,UAAWC,QAAS5I,EAAK4I,YAE/DuzB,EAAWhhC,KAAKsN,OAAOjO,KAAI,SAAAkO,GAAC,OAAIA,EAAEE,WALxC,SAM+BzN,KAAKguC,gBAAgBiT,mBAAmBjhD,KAAKm4D,OAAOtsD,SAAUm1B,GAN7F,OAMEhhC,KAAK68C,gBANP,uDA5DqC,4EAuErC,WACE,OAAO78C,KAAK48C,kBAxEuB,0BA2ErC,WACE,OAAO58C,KAAK49C,YAAY59C,KAAK68C,mBA5EM,4BA+ErC,SAAen9C,GACb,IAAIA,EAAEuH,UAAUimB,YAAa,CAC3B,IAAIvS,EAAQjb,EAAEuH,UAAU+3C,gBAAgBrkC,QAErCA,GAASA,EAAM3e,OAAS,IACzBgE,KAAK4mF,qBAAsB,EAC3BlnF,EAAEuH,UAAUimB,aAAc,MArFK,yBA6FrC,SAAY2vB,GAA8B,WAClChgD,EAAiC,GACjCojD,EAAkD,GAClD8mC,EAA0B/mF,KAAKujD,gBAAgB3/C,QAAO,SAAAlG,GAAC,OAAI,EAAKm/C,gBAAgBnyC,MAAK,SAAA6C,GAAC,OAAIA,EAAEy5E,kBAAoBtpF,EAAEo0C,iBAClHyR,EAAkBp+C,IAAEsiB,QAAQs/D,GAAyB,SAAArpF,GAAC,OAAIA,EAAE40C,gBAwEhE,OAvEAtyC,KAAK48C,gBAAkBz3C,IAAEikB,OAAOm6B,GAAiB,SAAA7lD,GAAC,OAAIA,EAAE40C,gBAAcjzC,KAAI,SAAAjC,GAAC,OAAIA,EAAEk1C,gBACjFtyC,KAAK48C,gBAAkBz3C,IAAEsiB,QAAQznB,KAAK48C,iBAAiB,SAAAl/C,GAAC,OAAIA,EAAEka,iBAG9D5X,KAAKsN,OAAO0B,SAAQ,SAAA6xB,GAClB,IAAIqf,EAAkC,CACpC1yC,UAAWqzB,EAAMrzB,UACjB2yC,OAAQ,GACR3E,YAAa,IAIf+H,EAAgBv0C,SAAQ,SAAAi4E,GACtB,IAAI3mC,EAAgB,EAAKzD,gBAAgB7qC,MAAK,SAAA5U,GAAC,OAAIA,EAAE4pF,kBAAoBC,EAAen1C,YACnF10C,EAAEqQ,SAAWozB,EAAMpzB,WAExB,QAAoBJ,GAAjBizC,EAA4B,CAC7BJ,EAAS1E,YAAYl/C,KAAKgkD,EAAcxO,YAE9BwO,EAAc9c,OACZ8c,EAAcrN,SACP,EAAKyC,SAASC,QAAgBrH,OAAOgS,EAAc1N,cAAc,cACnE0N,EAAcjI,cAC5B,EAAK3C,SAASC,QAAgBrH,OAAOgS,EAAcjI,aAAa,cALnE,IAOImI,EAAiBF,EAAcrN,SAAW,WAAa,GAE3D,GAA4B,QAAzBqN,EAAc9c,OACZ8c,EAAc1N,gBACfsN,EAASI,EAAchO,cAAvB,UAA0C6J,GAA6B3Y,OAAvE,YAAiFgd,EAAjF,YAAmG,IAAItjB,KAAKojB,EAAc1N,eAAes0C,iBAE3IhnC,EAASC,OAAO7jD,KAAK8/C,GAA6B5Y,aAE/C,GAA4B,QAAzB8c,EAAc9c,QAA6C,OAAzB8c,EAAc9c,OAAgB,CACtE,IAAIid,EAAeH,EAAc9c,OAAOqc,QAAQ,OAAO,KACnDa,EAASvE,GAA6BwC,SAASkB,QAAQ,MAAOY,GAE/DH,EAAc1N,gBACfsN,EAASI,EAAchO,cAAvB,UAA0CoO,EAA1C,YAAoDF,EAApD,YAAsE,IAAItjB,KAAKojB,EAAc1N,eAAes0C,iBAE9GhnC,EAASC,OAAO7jD,KAAK8/C,GAA6BuC,cAEnB,OAAzB2B,EAAc9c,SAChB8c,EAAcjI,cAKhB6H,EAASI,EAAchO,cAAgB6J,GAA6ByC,UACpEsB,EAASC,OAAO7jD,KAAK8/C,GAA6BwC,aALlDsB,EAASI,EAAchO,cAAgB6J,GAA6B0C,WACpEqB,EAASC,OAAO7jD,KAAK8/C,GAA6ByC,mBAStDqB,EAAS1E,YAAYl/C,KAAK,IAC1B4jD,EAASC,OAAO7jD,KAAK8/C,GAA6BsC,UAInDwB,EAAS1E,YAAY3jC,OAAM,SAAArY,GAAE,MAAU,IAANA,KAClCygD,EAAuB3jD,KAAK4jD,GAG5BrjD,EAAOP,KAAK4jD,MAIhBrjD,EAASsI,IAAEsiB,QAAQ5qB,GAAQ,SAAA0Q,GAAC,OAAIA,EAAEC,UAAUoK,iBAC5CqoC,EAAyB96C,IAAEsiB,QAAQw4B,GAAwB,SAAA1yC,GAAC,OAAIA,EAAEC,UAAUoK,iBAC5E/a,EAASA,EAAOwI,OAAO46C,GAEhBpjD,IAzK0B,4BA4KrC,SAAe6C,GACb,GAAiB,SAAdA,EAAEyT,SAA6C,cAAvBzT,EAAEqL,OAAOmsC,gBAAmD7pC,GAAtB3N,EAAEqL,OAAOmsC,UAAwB,CAChG,IAAIzL,EAAM/rC,EAAEkuB,IAAIpyB,KACbiwC,EAAItvC,eAAeuD,EAAEqL,OAAOmsC,WAC7Bx3C,EAAE8T,YAAYnT,MAAM,oBAAsBX,EAAEkuB,IAAIpyB,KAAK2kD,OAAOzgD,EAAEqgD,YAAY,GAG1ErgD,EAAE8T,YAAYnT,MAAM,oBAAsB+7C,GAA6BsC,MAGzEh/C,EAAE8T,YAAYnT,MAAM,SAAWL,KAAKg9C,qBAER3vC,GAAtB3N,EAAEqL,OAAOmsC,YACfx3C,EAAE8T,YAAYnT,MAAM,oBAAsB+7C,GAA6BsC,SAzLtC,gCA6LrC,SAAmBh/C,GAAM,WACvB,GAAe,UAAZA,EAAEqnD,QAAuC,GAAjBrnD,EAAEqgD,kBAA0C1yC,GAAtB3N,EAAEqL,OAAOmsC,UAA1D,CAIA,IAAIzW,EAAa/gC,EAAEkuB,IAAIpyB,KAAKggD,YAAY97C,EAAEqgD,YAAY,GACrC,IAAdtf,IACD/gC,EAAEib,MAAQ,GACVjb,EAAEib,MAAMre,KAAK,CACXqP,KAAM,aACNksB,YAAa,WACX,EAAKsvD,aAAa1mD,UAxMW,0BA8MrC,SAAaA,GACXzgC,KAAKwjD,mBAAqB/iB,EAC1BzgC,KAAKs/B,uBAAwB,IAhNM,0BAmN7B,SAAa9jC,GACnBwE,KAAKs/B,uBAAwB,EAC7Bt/B,KAAKwjD,mBAAqB,GACvBhoD,GAAQA,EAAKi7C,aACdz2C,KAAK8mF,+BACL9mF,KAAKimB,MAAM,sBAxNsB,4BA4N7B,WACNjmB,KAAKwjD,mBAAqB,GAC1BxjD,KAAKs/B,uBAAwB,MA9NM,GAASz8B,cAM9Cb,gBADCwnB,mBACD,8BAWAxnB,gBADCuW,gBAAM,oBACP,qCAjBmBouE,GAAkB,gBAVtCx/E,eAAU,CACTL,WAAY,CACR4iB,4BACA/Q,wBACAE,8BACAoV,8BACAmhB,0BAIeu3C,QClFTS,GASAC,GDyESV,MElF6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,+dFnBf,SAAYS,GACRA,uCACAA,mCACAA,2CACAA,+CACAA,+CACAA,8CANJ,CAAYA,QAAkB,KAS9B,SAAYC,GACRA,kCACAA,wCACAA,wCACAA,gCACAA,4BALJ,CAAYA,QAAsB,KGiOlC,IAAqBC,GAAW,4CA2H9B,iDACE,eA3HF,EAAA/3E,MAMI,GAEI,EAAA7L,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAstB,kBAAuC,IAAIR,GAC3C,EAAA/2B,YAA2B,IAAI3C,EAuB/B,EAAAy4B,WAA6B,GAC7B,EAAAQ,YAA+B,GAC/B,EAAAorB,cAAmC,GACnC,EAAAC,eAAqC,GAE7C,EAAA/7C,SAAiB,GACjB,EAAAQ,UAAuB,CACrBX,SAAU,GACVD,WAAY,IAGd,EAAA27E,wBAAkC,EAElC,EAAAj6E,OAAqB,GACrB,EAAAmwC,eAAgC,GAChC,EAAA+pC,eAAqC/hB,GAAmBkI,SAChD,EAAAoT,+BAAyC,EACzC,EAAAC,qCAA+C,EAC/C,EAAAC,WAAqB,iBACrB,EAAA15B,eAAyB,EACzB,EAAA00B,mBAA0B,KAUlC,EAAAxjB,iBAAmBj0D,uBAAUnC,EAAkBc,GA2BvC,EAAAqlD,YAAuB,EAsBvB,EAAAI,uBAAiC,EACjC,EAAAs4B,sBAAgC,EAChC,EAAAC,6BAA4C,KACpD,EAAA14B,SAA+Bgd,GAAmBkI,SA4L1C,EAAA0O,kBAA4B,GAyKpC,EAAA/R,aAAkC,CACxB7lE,WAAYzB,EAAsBigE,eAClCrlE,KAAOqF,EAAgBsnE,UAiB1B,EAAA5iB,oBAA8B,EAE7B,EAAAsC,cAAwB,EACxB,EAAAgX,oBAA8B,EAC9B,EAAAE,sBAAgC,EAChC,EAAA5W,oBAA8B,EAC9B,EAAA2W,2BAAqC,EACrC,EAAAlW,qBAA+B,EAtXrC,EAAKhd,gBAAkB,IAAIzN,GAAiB,kBAC5C,EAAK/vB,aAAe,IAAIjC,GACxB,EAAKqX,gBAAkB,IAAId,GAJ7B,EA3H8B,uDAa9B,WACE,OAAQ9kB,KAAKuP,MAAMk4E,qBAdS,4BAiB9B,WACE,OAAUznF,KAAKuP,MAAM+sE,oBAA4B/sE,MAAMysD,qBAA6BzsD,MACjFyhC,WAAmB5/B,WAnBM,wBAsB9B,WACE,OAAOpR,KAAKyd,OAAOC,OAAOle,KAvBE,qBA0B9B,WACE,GAAGQ,KAAKyd,OAAOvQ,MAAMw6E,MAAO,CAC1B,IAAIvb,EAAYt4C,SAAS7zB,KAAKyd,OAAOvQ,MAAMw6E,OAC3C,OAAOvb,EAET,OAAO,OA/BqB,yBAyD9B,WAAW,WACTnsE,KAAKunD,eAAgB,EAClBvnD,KAAKi8E,oBACN5mB,aAAar1D,KAAKi8E,oBAEpBj8E,KAAKi8E,mBAAqB3pE,YAAW,WAAK,EAAKi1C,eAAgB,IAAQ,OA9D3C,8BAkE9B,WAA8B,WAC5B,GAAGvnD,KAAKuC,eACN,OAAOvC,KAAK08B,YAAY1qB,MAAK,SAAA1T,GAAC,OAAIA,EAAEu/B,eAAiB,EAAKt7B,eAAgBs7B,kBApEhD,uBAwE9B,WACE,GAAG79B,KAAKuC,eACN,OAAOvC,KAAKuC,eAAesJ,WA1ED,4BA8E9B,WACE,OAAO7L,KAAKy4D,iBAAiBsX,iBA/ED,0BAkF9B,WACE,OAAO/vE,KAAKy4D,iBAAiBsF,eAnFD,2BAuF9B,WACE,OAAQ/9D,KAAKmtB,MAAMqvD,UAAU,GAAGA,UAAU,GAAWC,aAxFzB,qCA8F9B,WACEz8E,KAAKq8E,kBAAoB,GACtBr8E,KAAKuC,iBACNvC,KAAKgM,SAAWhM,KAAKuC,eAAesJ,SACpC7L,KAAKwM,UAAY,CACfX,SAAU7L,KAAKuC,eAAesJ,SAC9BD,WAAY5L,KAAKuC,eAAeqJ,eApGR,kCA6G9B,WACE,OAAO5L,KAAKy4D,iBAAiBikB,eAAiB,KA9GlB,wBAsH9B,WACE,OAAO18E,KAAK2nD,oBAAsB3nD,KAAKiqD,cAAgBjqD,KAAKihE,oBAAsBjhE,KAAKmhE,sBACrFnhE,KAAKuqD,oBAAsBvqD,KAAKkhE,2BAA6BlhE,KAAK4oD,uBAAyB5oD,KAAKgrD,sBAxHtE,qBAkI9B,WACE74C,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SACxCvpC,KAAK2d,aApIuB,uBAuI9B,WACExL,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAC3CvpC,KAAKy4D,iBAAiB8a,oBAAoB,MAC1CvzE,KAAKy4D,iBAAiB6a,kBAAkB,MACxCtzE,KAAKy4D,iBAAiBsY,kBAAkB,MA3IZ,2BA8I9B,WACK/wE,KAAKuP,MAAM+sE,qBACZt8E,KAAKuP,MAAM+sE,oBAAoBK,WAG9B38E,KAAKuP,MAAMqtE,sBACZ58E,KAAKuP,MAAMqtE,qBAAqBD,WAG/B38E,KAAKuP,MAAMo4E,eACZ3nF,KAAKuP,MAAMo4E,cAAchL,WAG3B38E,KAAKunD,eAAc,EACnBvnD,KAAKsN,OAAOtR,OAAS,IA5JO,+BA+J9B,SAAkBR,GAChBwE,KAAKwoD,WAAahtD,IAhKU,qBAmK9B,SAAQ6a,GACN,IAAIrW,KAAK68E,cAK+B,uBAAnCxmE,EAAM0wC,OAAgB+1B,UAM3B,GAFAzmE,EAAMuzB,iBAEFvzB,EAAMqzB,QACR,OAAQrzB,EAAM65C,SACZ,KAAK1D,GAAOuwB,IACZ,KAAKvwB,GAAOwwB,UACVh9E,KAAKooD,uBAAuB0gB,GAAWmU,KAAK5mE,GAC5C,MACF,KAAKm2C,GAAO0wB,IACZ,KAAK1wB,GAAO2wB,UACVn9E,KAAKooD,uBAAuB0gB,GAAWsU,YAAY/mE,GACnD,MACF,KAAKm2C,GAAO6wB,MACZ,KAAK7wB,GAAO8wB,YACVt9E,KAAKooD,uBAAuB0gB,GAAWyU,gBAAgBlnE,GACvD,MACF,KAAKm2C,GAAOgxB,KACZ,KAAKhxB,GAAOixB,WACVz9E,KAAKooD,uBAAuB0gB,GAAWjhD,WAAWxR,GAClD,MACF,KAAKm2C,GAAOkxB,KACZ,KAAKlxB,GAAOmxB,WACV39E,KAAKooD,uBAAuB0gB,GAAW8U,IAAIvnE,GAC3C,MACF,KAAKm2C,GAAOqxB,IACZ,KAAKrxB,GAAOsxB,UACV99E,KAAKooD,uBAAuB0gB,GAAWiV,cAAc1nE,GACrD,MACF,KAAKm2C,GAAOwxB,OACZ,KAAKxxB,GAAOyxB,aACVj+E,KAAKooD,uBAAuB0gB,GAAWoV,UAAU7nE,GACjD,WAGJ,OAAQA,EAAM65C,SACZ,KAAK1D,GAAO2xB,UACTn+E,KAAKuP,MAAMqtE,qBAA6BtQ,WACzC,MACF,KAAK9f,GAAO4xB,WACTp+E,KAAKuP,MAAMqtE,qBAA6BrQ,WACzC,MACF,KAAK/f,GAAO4D,QACTpwD,KAAKuP,MAAMqtE,qBAA6BvQ,iBACzC,MACF,KAAK7f,GAAO8D,UACTtwD,KAAKuP,MAAMqtE,qBAA6Bj0B,oBACzC,MACF,KAAK6D,GAAOuwB,IACZ,KAAKvwB,GAAOwwB,UACVh9E,KAAKooD,uBAAuB0gB,GAAWuV,SAAShoE,GAChD,MACF,KAAKm2C,GAAO0wB,IACZ,KAAK1wB,GAAO2wB,UACVn9E,KAAKooD,uBAAuB0gB,GAAWwV,OAAOjoE,GAC9C,MACF,KAAKm2C,GAAO6wB,MACZ,KAAK7wB,GAAO8wB,YACVt9E,KAAKooD,uBAAuB0gB,GAAWyV,KAAKloE,GAC5C,MACF,KAAKm2C,GAAOgxB,KACZ,KAAKhxB,GAAOixB,WACVz9E,KAAKooD,uBAAuB0gB,GAAW0V,YAAYnoE,GACnD,MACF,KAAKm2C,GAAOkxB,KACZ,KAAKlxB,GAAOmxB,WACV39E,KAAKooD,uBAAuB0gB,GAAW2V,MAAMpoE,GAC7C,MACF,KAAKm2C,GAAOqxB,IACZ,KAAKrxB,GAAOsxB,UACV99E,KAAKooD,uBAAuB0gB,GAAW4V,mBAAmBroE,GAC1D,MACF,KAAKm2C,GAAOmyB,MACZ,KAAKnyB,GAAOoyB,YACV5+E,KAAKooD,uBAAuB0gB,GAAW+V,OAAOxoE,GAC9C,MACF,KAAKm2C,GAAOsyB,MACZ,KAAKtyB,GAAOuyB,YACV/+E,KAAKooD,uBAAuB0gB,GAAWkW,uBAAuB3oE,GAC9D,MACF,KAAKm2C,GAAOyyB,KACZ,KAAKzyB,GAAO0yB,WACVl/E,KAAKooD,uBAAuB0gB,GAAWqW,QAAQ9oE,GAC/C,MACF,KAAKm2C,GAAOwxB,OACZ,KAAKxxB,GAAOyxB,aACVj+E,KAAKooD,uBAAuB0gB,GAAW9/C,IAAI3S,GAC3C,MACF,KAAKm2C,GAAO4yB,OACZ,KAAK5yB,GAAO6yB,aACV,IAAI/iC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACb,IAAxBtE,EAAatgD,OACfgE,KAAK2jC,YACI2Y,EAAatgD,OAAS,GAC/BuK,IAAO,kDAAkD,OAAQ,KAEnE,SA5QsB,uFAiR9B,8GAC0BvG,KAAK0D,OAAOzF,IAAoB,sBAD1D,OACE+B,KAAKk8B,WADP,uDAjR8B,wIAqR9B,gHACEl8B,KAAK29B,kBAAkBlH,WAAWpwB,MAAK,SAAAu3B,GACrC,EAAKlB,YAAckB,KAGrB59B,KAAK2qE,wBAAwBtkE,MAAK,SAAAm5E,GAChC,EAAKh3B,WAAag3B,KAGpBx/E,KAAK0D,OAAOzF,IAAZ,2BAAoC+B,KAAKglB,aAAzC,qBAAyE3e,MAAK,SAAAuxC,GAC5E,EAAKkQ,cAAgBlQ,KAGvB53C,KAAK0D,OAAOzF,IAAZ,2BAAwD+B,KAAKglB,aAA7D,sBAA8F3e,MAAK,SAAAuxC,GACjG,EAAKmQ,eAAiBnQ,KAd1B,SAkBQ53C,KAAKu/E,mBAlBb,gDArR8B,sFA0S9B,SAAgB7mB,GACX14D,KAAKuP,MAAM+sE,qBACZt8E,KAAKuP,MAAM+sE,oBAAoBhb,gBAAgB5I,KA5SrB,6FAkT9B,WAA6BsH,EAA4B3pD,GAAzD,2GACMimC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACrC4gB,EAAsB,GAGE,IAAxBllB,EAAatgD,QACXgE,KAAKq8E,kBAAkBrgF,OAAS,EAClCwlE,EAAcxhE,KAAKq8E,kBACVr8E,KAAKuP,MAAM+sE,qBAAuBt8E,KAAKuP,MAAM+sE,oBAAoB75E,iBAC1E++D,EAAcxhE,KAAKuP,MAAM+sE,oBAAoB5jB,UAC1C90D,QAAO,SAAA6zD,GAAE,OAAI,EAAKzP,uBAAuBt9C,MAAK,SAAAkH,GAAC,OAAIA,IAAM6lD,EAAG3lD,YAAmC,MAAvB2lD,EAAGkoB,oBAC3EtgF,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,qBAChBnqD,KAAKq8E,kBAAoB7a,GAGvBxhE,KAAKuP,MAAM+sE,sBACbhgC,EAAet8C,KAAKuP,MAAM+sE,oBAAoB5jB,UAAU90D,QAAO,SAAA6zD,GAAE,OAAI+J,EAAY92D,MAAK,SAAAlL,GAAE,OAAIi4D,EAAGtN,mBAAqB3qD,WAItHQ,KAAKq8E,kBAAoB,GACzB//B,EAAattC,SAAQ,SAAA4e,GACnB4zC,EAAYllE,KAAKsxB,EAAIu8B,wBAIrBqX,EAAYxlE,OA1BlB,wBA2BQqa,IACFA,EAAMuzB,iBACNvzB,EAAMyjB,mBAGR95B,KAAKs/E,iBAAiBr1C,iBAElB21C,EAA0Cz6E,IAAEihB,UAAUk2B,GAEtDujC,EAAqC,MAAf7f,GAAuB,EAAIA,EACjD8f,EAAmC,MAAf9f,EAAsB,aAAehgE,KAAKk8B,WAAWt4B,QAAO,SAAA5E,GAAC,OAAIA,EAAEo9B,aAAe4jC,KAAa,GAAG7jC,UAE1HmgB,EAAattC,SAAQ,SAAAyoD,GACjBA,EAAG+C,oBAAsBqlB,EACzBpoB,EAAGgD,kBAAoBqlB,EACvBroB,EAAGwK,WAAY,KAGf9E,EAAgBn9D,KAAKuC,eACzBvC,KAAKshE,gBAAgBhlB,GAAc,GACnCt8C,KAAKuP,MAAMqtE,qBAAsBtM,iBAAiBtwE,KAAKuC,eAAgB61D,UA/C3E,UAiDUp4D,KAAK0D,OAAOiJ,YAA4C,gCAAiC,CAC7FqzD,YAAaA,EACbtH,UAAW8I,IAEZn7D,MAAK,SAAAmiB,GAGA,EAAKhmB,kBAAoB26D,EAAe/E,WAC1C,EAAKkJ,gBAAgB94C,GAAS,GAC9B,EAAKjZ,MAAMqtE,qBAAsBtM,iBAAiB,EAAK/tE,eAAgB61D,cAG1E9xD,OAAM,SAAAnB,GACLgjB,oBAAM,oDAAD,OAAqDg1C,EAAe7V,eAApE,KAAuF,SACxF,EAAK9kD,kBAAoB26D,EAAe/E,WAE1C,EAAKkJ,gBAAgBse,GAAS,GAC9B,EAAKrwE,MAAMqtE,qBAAsBtM,iBAAiB,EAAK/tE,eAAgB61D,cAlE/E,iDAlT8B,iGA0X9B,SAAwB2nB,GAAoB,WACtCzjC,EAAet8C,KAAKs/E,iBAAiB1+B,sBACrC4gB,EAAsB,GAG1B,GAA4B,IAAxBllB,EAAatgD,QACf,GAAIgE,KAAKuP,MAAM+sE,qBAAuBt8E,KAAKuP,MAAM+sE,oBAAoB75E,eAAgB,CACnF,IAAIA,EAAiBzC,KAAKuP,MAAM+sE,oBAAoB75E,eACpD++D,EAAcxhE,KAAKuP,MAAM+sE,oBAAoB5jB,UAC1C90D,QAAO,SAAA6zD,GAAE,OAAIh1D,EAAeiI,MAAK,SAAAkH,GAAC,OAAIA,IAAM6lD,EAAG3lD,cAC/CzS,KAAI,SAAAo4D,GAAE,OAAIA,EAAGtN,2BAGlB7N,EAAattC,SAAQ,SAAA4e,GACnB4zC,EAAYllE,KAAKsxB,EAAIu8B,sBAIrBqX,EAAYxlE,SACdgE,KAAKs/E,iBAAiBr1C,iBAEtBjqC,KAAK0D,OAAOiJ,YAA4C,oCAAqC,CAC3FozE,YAAaA,EACbrnB,UAAW8I,IACVn7D,MAAK,SAAAmiB,GACN,EAAK84C,gBAAgB94C,GAAS,SAnZN,mDAwZ9B,SAAsC9oB,GACpCM,KAAKiqD,aAAevqD,EAAEuqD,aACtBjqD,KAAKihE,mBAAqBvhE,EAAEuhE,mBAC5BjhE,KAAKmhE,qBAAuBzhE,EAAEyhE,qBAC9BnhE,KAAKuqD,mBAAqB7qD,EAAE6qD,mBAC5BvqD,KAAKkhE,0BAA4BxhE,EAAEwhE,0BACnClhE,KAAKgrD,oBAAsBtrD,EAAEsrD,sBA9ZD,yBAia9B,WAAW,WACT,GAAGhrD,KAAKuC,eAAgB,CACtBvC,KAAKuC,eAAeqlF,iBAAkB,EACtC,IAAIC,EAAY1iF,IAAEmuB,MAAMtzB,KAAKuC,gBAC7BvC,KAAK0D,OAAOK,SAAZ,wBAAsC/D,KAAKwC,kBAAoB,IAC5D6D,MAAK,SAAAxJ,GACJ,EAAKirF,2BAA2BD,GAA6B,IAAhBhrF,EAAO+mB,SAErDtd,OAAM,SAAAulB,GACL,EAAKi8D,2BAA2BD,GAAa,SA1avB,wCA+a9B,SAA2BE,EAAqCC,GAE9D,GADAhoF,KAAKuP,MAAMqtE,qBAAsBoD,mBAAmB+H,EAAe3vB,SAAS4vB,IACvEA,EAAoB,CACnBhoF,KAAK4oD,wBACP5oD,KAAK4oD,uBAAwB,GAE/B,IAAI94C,EAAU,0CAAH,OAA6Ci4E,EAAezgC,eAA5D,YAA8EygC,EAAeltE,YAA7F,KACXsN,oBAAMrY,EAAS,SAGjB,IAAIm4E,EAAejoF,KAAKuP,MAAMqtE,qBAAsBqD,kBACjDgI,IACDjoF,KAAK4oD,uBAAwB,KA3bH,4BA+b9B,WACK5oD,KAAKuP,MAAMqtE,sBACZ58E,KAAKuP,MAAMqtE,qBAAqBxI,mBAjcN,6BAqc9B,SAAgB1b,GACVA,GAAaA,EAAU18D,SACzBgE,KAAKsN,OAASnI,IAAEikB,OAAOsvC,GAAW,SAAA7zD,GAAI,OAAIA,EAAK2I,aAChCnO,KAAI,SAASwF,GACZ,MAAO,CAAE2I,UAAW3I,EAAK2I,UAAWC,QAAS5I,EAAK4I,YAElEzN,KAAKkoF,0BAEFloF,KAAKuC,iBACNvC,KAAKuC,eAAeo/D,UAAYjJ,MA9cR,8FAmd9B,8FACK14D,KAAKioD,aACNjoD,KAAKynF,mBAAmBX,+BAF5B,gDAnd8B,4FA8d9B,WACE,OAAO9mF,KAAKoG,YAAY2kE,0BAA0B/qE,KAAKsqE,cAC9CjkE,MAAK,SAACxJ,GACH,IAAIuuE,EAAWjmE,IAAE6M,KAAKnV,GAAQ,SAACgI,GACX,OAAOA,EAAKG,aAAehC,EAAsBigE,gBACzCp+D,EAAKI,OAAShC,EAAgBsnE,cACpC,EAEtB,QAAQa,GAA6B,QAAlBA,EAASj8B,SAE/B7oC,OAAM,SAACulB,GAAD,OAAc,OAxeD,6BAqf9B,WACE7rB,KAAK2nD,oBAAqB,IAtfE,0BAyf9B,WACE3nD,KAAK2nD,oBAAqB,IA1fE,8FA6f9B,WAA8BnmD,GAA9B,iFACsBA,EAASoC,QAAO,SAAAxG,GAAC,OAAIA,EAAE6H,OAAShC,EAAgBC,gBAAkB9F,EAAE+xC,QAAUjsC,EAAe+mE,iBAEhHjqE,KAAKuP,MAAMqtE,qBAA6BvL,wBAAwB7vE,GAHnE,gDA7f8B,qFAmgB9B,WACExB,KAAKs/E,iBAAiBe,oBACtBrgF,KAAKmhE,sBAAuB,IArgBA,0BAwgBtB,SAAap8C,GACnB/kB,KAAKuC,eAAgBs7B,aAAe9Y,EAAI+mD,WACxC9rE,KAAKmtB,MAAMlH,MAAM,mBAAoBurC,GAA4BwM,qBA1gBrC,uBA6gBtB,WACLh+D,KAAKuP,MAAM+sE,oBAA4BgE,sBA9gBZ,qFAihBtB,sHACNtgF,KAAKghF,qCAAsC,EAC3ChhF,KAAKihF,WAAa,mBAFZ,SAGAjhF,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,2BAAiEpE,KAAKglB,aAAtE,qBACH/Q,SAAQ,WACP,EAAK+sE,qCAAsC,KALzC,WAQHhhF,KAAKgM,SARF,iCASuBhM,KAAK4lB,gBAAgBuiE,eAAenoF,KAAKgM,UAAU3F,MAAK,SAAAxJ,GACjF,OAAOA,KAVL,UASAsrF,EATA,QAYDA,EAAeh5C,MAZd,wBAaIpqB,EAA6B,CACjCqjE,eAAgBhB,GAAmBiB,gBACnCC,mBAAoBjB,GAAuBkB,eAf3C,oBAmBevoF,KAAKwQ,aAAag4E,sBAAsBxoF,KAAKgM,SAAU+Y,GAnBtE,WAmBEgY,EAnBF,OAoBmC,OAAlCA,EAAKnZ,KAAK6kE,oBApBX,iBAqBAzoF,KAAKmhF,6BAAgCnhF,KAAK01C,SAASC,QAAgBrH,OAAOvR,EAAK,cAC/E/8B,KAAKkhF,sBAAuB,EAtB5B,+BAyBA36E,IAAO,0CAA0C,QAAS,KAzB1D,wFA6BFA,IAAO,yCAAyC,QAAS,KA7BvD,mDAkCFvG,KAAK6oD,sBACL7oD,KAAKie,QAAQ3hB,KAAK,CAAEsB,KAAM,kBAnCxB,QAsCNoC,KAAK6oD,sBAtCC,2DAjhBsB,sJA0jBtB,kGACH7oD,KAAKioD,YADF,gCAEEjoD,KAAKwQ,aAAak4E,qBAAqB1oF,KAAKioD,aAF9C,OAGJjoD,KAAKkhF,sBAAuB,EAC5BlhF,KAAKie,QAAQ3hB,KAAK,CAAEsB,KAAM,kBAJtB,gDA1jBsB,0FAkkBtB,WACNoC,KAAK4oD,uBAAwB,IAnkBD,mCAskBtB,WACN5oD,KAAKkhF,sBAAuB,IAvkBA,6BA0kBtB,WACNlhF,KAAK2d,WACL3d,KAAKs/E,iBAAiBY,cA5kBM,GAASr9E,cAyDvCb,gBADCuW,gBAAM,qBACP,iCAqCAvW,gBADCuW,gBAAM,mBACP,6CA9FmB+uE,GAAW,gBAnB/BngF,eAAU,CACTL,WAAY,CACViS,yBACAH,wBACA4/C,uBACA+nB,oBACAzU,cACAxsD,sBACA0V,sCACA2tD,iBACAgE,sBACApZ,wBAEFiT,iBAAkB,SAAUC,EAAGxrE,EAAKyrE,GAClC,IAAIiI,EAA2B3oF,KAC/B2oF,EAAYhM,WACZ+D,QAGiB4G,cC1OkX,MCQnY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIvnF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,yBAAyBnH,EAAG,2BAA2B,CAAC+H,IAAI,wBAAwBF,GAAG,CAAC,cAAgB,SAASC,GAAQ,OAAOlI,EAAIs6B,iBAAiBl6B,EAAG,WAAW,CAACG,MAAM,CAAC,QAAUP,EAAIy6B,cAAc,gBAAe,EAAM,0BAAyB,EAAK,cAAa,EAAK,MAAQ,IAAI,OAAS,IAAI,MAAQ,UAAUxyB,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIy6B,cAAcvyB,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,oDAAoDnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6oF,4BAA4B,CAAC7oF,EAAIuH,GAAG,SAASnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI06B,gBAAgB,CAAC16B,EAAIuH,GAAG,SAAS,IAAI,IACryB,GAAkB,GCDlB,GAAS,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,sBAAsB,KAAO,UAAU,eAAe,WAAW,WAAWP,EAAI8oF,8BAA8B,GAAG1oF,EAAG,MAAMA,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,uBAAuBP,EAAI+oF,oCAAoC,SAAW,IAAI9gF,GAAG,CAAC,YAAcjI,EAAIga,oBAAoB,wBAAwBha,EAAIia,cAAclZ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,eAAeqC,GAAG,SAASkH,GAC3jB,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,iBAAiB,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIgpF,qBAAqBvtF,EAAKA,WAAY,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIs6B,WAAW7+B,EAAKA,WAAY,UAAU,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,QAAQ,mBAAkB,EAAK,0BAAyB,EAAK,QAAU,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,KAAO,UAAU,QAAU,GAAG,aAAa,qBAAqB,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,IAAI,gBAAgB,mBAAmB,IAAI,IACl5B,GAAkB,G,sdCsHtB,IAAqB0oF,GAAqB,4CAOxC,iDACE,eAHF,EAAAC,mBAA2B,GAKzB,EAAKC,yBAA2B,IAAI7jC,GAClC,yBAGF,EAAKyjC,oCAAsC,CACzCnqF,IAAK,qBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAK2sE,yBAAyB5qE,OAAO/B,KAT9D,EAPwC,0DAoBxC,SAAoB7c,GAClBM,KAAKue,SAAW7e,EAAEuH,YArBoB,0BAwBxC,WACMjH,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,kBA3BsB,uCA+BxC,SAA0B4T,GACxB5tB,KAAKie,QAAQ3hB,KAAK,+BAhCoB,kCAmCxC,SAAqBsxB,GACnB5tB,KAAKie,QAAQ3hB,KAAb,oCAA+CsxB,EAAI83B,uBApCb,oCAuCxC,WAAsB,WACpB1lD,KAAKkpF,yBAAyBnsE,OAAO/c,KAAKipF,oBACvC5iF,MAAK,SAAAxJ,GACJ,EAAKs+B,uBA1C6B,6BA8ChC,WACe,MAAjBn7B,KAAKue,UACPve,KAAKue,SAAS2hE,YAhDsB,+BAoDxC,SAAkB/oD,GAChB,MAA0B,KAAnBA,EAAKC,UAAmB,MAAQD,EAAKC,YArDN,wBAwDxC,SAAWxJ,GACT5tB,KAAKipF,mBAAqBr7D,EAAI83B,mBAC9B1lD,KAAKimB,MAAM,qBA1D2B,GAASpjB,cAA9BmmF,GAAqB,gBAlBzC7hF,eAAU,CACTL,WAAY,CACVuS,8BACAb,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACAD,oBACAvG,wBACAsG,sBACAoK,4BACA3J,wBACA8J,8BACAjR,4BAGiBowE,cCzHgZ,MCQja,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCoBf,IAAqBG,GAAiB,4CAOpC,iDACE,eAPF,EAAA55E,MAEI,GAEJ,EAAAirB,eAAyB,EAEzB,EAPoC,iDAWpC,WACEx6B,KAAKw6B,eAAgB,IAZa,wBAepC,WACEx6B,KAAKw6B,eAAgB,IAhBa,oCAmBpC,WACGx6B,KAAKuP,MAAM65E,sBAA8BR,yBAC1C5oF,KAAKy6B,iBArB6B,GAAS53B,cAA1BsmF,GAAiB,gBARrChiF,eAAU,CACTL,WAAY,CACViS,yBACAiwE,yBACA1pE,sBACA1G,4BAGiBuwE,cCvCyX,MCO1Y,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIppF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,aAAa,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGvH,KAAKU,UAAUP,EAAG,MAAMA,EAAG,MAAM,CAACe,YAAY,8BAA8B,CAACf,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,mBAAmBnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,IAAI,MAAQP,EAAIspF,cAAcrhF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIspF,aAAaphF,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,YAAYnH,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,MAAQP,EAAIupF,eAAethF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIupF,cAAcrhF,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,mBAAmBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIwpF,iBAAiB,eAAe,OAAO,aAAa,QAAQ,MAAQxpF,EAAIypF,uBAAuB,MAAQ,OAAOxhF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIypF,uBAAuBvhF,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,eAAe,WAAW,MAAQ,MAAM,WAAWP,EAAImjC,iBAAiB,CAACnjC,EAAIuH,GAAG,gBAAgB,OAAOnH,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAI0pF,eAAe,SAAW,GAAG,YAAc1pF,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,mBAAqB5Z,EAAI4Z,QAAQ,qBAAsB,UAAU,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,KAAUjrB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GACt3D,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKgoC,QAAQx7B,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,SAAUyM,QAAa,OAAO,CAACtJ,IAAI,4BAA4BqC,GAAG,SAASkH,GAC5N,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,yBAAyBvH,EAAIwH,GAAG/L,EAAKA,KAAK2gC,WAAW,4BAA4B,CAACx9B,IAAI,eAAeqC,GAAG,SAASkH,GACtJ,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,MAAM,CAACgL,YAAY,CAAC,MAAQ,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI2pF,gBAAgBluF,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,cAAc,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4pF,kBAAkBnuF,QAAW,OAAO,CAACmD,IAAI,sBAAsBqC,GAAG,SAASkH,GAC1a,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKizC,YAAY,aAAa,QAAQzmC,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,cAAeyM,QAAa,UAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,mBAAkB,EAAK,0BAAyB,EAAK,QAAU,aAAa,iBAAgB,EAAM,gBAAgB,4BAA4B,MAAQ,SAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAQ,iBAAgB,EAAM,aAAa,cAAc,QAAU,cAAc,gBAAgB,sBAAsB,SAAW,sBAAsBH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAQ,iBAAgB,EAAM,aAAa,aAAa,QAAU,OAAO,YAAa,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAQ,iBAAgB,EAAK,aAAa,SAAS,QAAU,SAAS,gBAAgB,iBAAiB,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,MAAQ,gBAAgB,eAAe,SAAW,iBAAiB,GAAGH,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,gBAAgBnH,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,eAAe,WAAW,MAAQ,OAAO0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI6pF,mBAAmB,CAAC7pF,EAAIuH,GAAG,eAAe,OAAOnH,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAI8pF,cAAc,SAAW,GAAG,YAAc9pF,EAAI4Z,QAAQ,eAAe,GAAM,aAAe5Z,EAAI4Z,QAAQ,gBAAgB,GAAM,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAM,oBAAsB5Z,EAAI4Z,QAAQ,uBAAuB,GAAO,sBAAwB5Z,EAAI4Z,QAAQ,yBAAyB,GAAO,mBAAqB5Z,EAAI4Z,QAAQ,qBAAsB,UAAU,gBAAkB5Z,EAAI4Z,QAAQ,mBAAmB,GAAM,aAAa5Z,EAAI4Z,QAAQ,aAAc,CAAEoS,SAAS,KAAUjrB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,eAAeqC,GAAG,SAASkH,GACtsE,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,MAAM,CAACgL,YAAY,CAAC,MAAQ,SAAS,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI+pF,eAAetuF,QAAW,GAAG2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,cAAc,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIgqF,iBAAiBvuF,QAAW,OAAO,CAACmD,IAAI,sBAAsBqC,GAAG,SAASkH,GACxa,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAKizC,YAAY,aAAa,QAAQzmC,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAKA,KAAM,cAAeyM,QAAa,UAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,mBAAmB,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,iBAAiB,mBAAkB,EAAK,0BAAyB,EAAK,QAAU,kBAAkB,iBAAgB,EAAM,MAAQ,SAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAQ,iBAAgB,EAAM,aAAa,cAAc,QAAU,cAAc,gBAAgB,sBAAsB,SAAW,sBAAsBH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,MAAQ,iBAAgB,EAAM,aAAa,aAAa,QAAU,OAAO,YAAa,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,OAAS,gBAAgB,eAAe,SAAW,iBAAiB,IAAI,GAAGH,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,YAAY,CAACe,YAAY,OAAOZ,MAAM,CAAC,KAAO,SAAS,YAAc,YAAY,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIiqF,0BAA2B,CAACjqF,EAAIuH,GAAG,UAAUnH,EAAG,YAAY,CAACe,YAAY,OAAOZ,MAAM,CAAC,KAAO,UAAU,eAAe,YAAY,MAAQ,KAAK0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIkqF,0BAA2B,CAAClqF,EAAIuH,GAAG,oBAAoB,MAAM,GAAGnH,EAAG,WAAW,CAACG,MAAM,CAAC,QAAUP,EAAI6nC,aAAa,gBAAe,EAAM,0BAAyB,EAAK,cAAa,EAAK,MAAQ,IAAI,OAAS,IAAI,MAAQ,SAAS5/B,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI6nC,aAAa3/B,KAAU,CAAC9H,EAAG,IAAI,CAACJ,EAAIuH,GAAG,IAAIvH,EAAIwH,GAAGxH,EAAIiU,cAAc,SAAS7T,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAaP,EAAIwkC,sBAAsB,YAAcxkC,EAAI2gC,YAAY,gBAAkB3gC,EAAIykC,qBAAqB,YAAczkC,EAAI0kC,YAAY,oBAAsB1kC,EAAI2kC,gBAAgB,yBAA2B3kC,EAAI4kC,0BAA0B38B,GAAG,CAAC,kBAAoBjI,EAAI6kC,4BAA4B,IAC/nE,GAAkB,G,sdCgUtB,IAAqBslD,GAAqB,4CAuDxC,iDACE,eAvDF,EAAAxpF,MAAgB,qBAKhB,EAAAypF,WAA4B,GAC5B,EAAA7jD,cAAqB,GACrB,EAAA8jD,mBAA2B,GAK3B,EAAAb,iBAA4C,CAClC,CAAEtkF,KAAO,KAAMkqC,OAAQ,GACvB,CAAElqC,KAAO,MAAOkqC,OAAQ,IAGlC,EAAAk7C,gBAAiC,GACjC,EAAA5jD,mBAA6B,EAG7B,EAAA4iD,aAAuB,GACvB,EAAAC,cAAwB,GACxB,EAAAE,wBAAkC,EAElC,EAAAC,eAAkD,GAClD,EAAAI,cAAgD,GAChD,EAAAS,8BAAiE,GACjE,EAAAC,6BAAgE,GAEhE,EAAA3iD,cAAwB,EACxB,EAAA5zB,aAAuB,GACvB,EAAAw2E,kBAA8B,CACxB,QACA,oBAEG,EAAAC,mBAA6B,kFAC7B,EAAAC,kBAA4B,2CAC5B,EAAAC,mBAA6B,yDAC7B,EAAAC,kBAA4B,mFAC5B,EAAAC,uBAAiC,yFACjC,EAAAC,iBAA2B,iFAKpC,EAAArmD,YAA4B,GAEpB,EAAAC,gBAAwCsB,GAAoBuE,MACpE,EAAA/F,qBAA2CnE,GAAkByI,IAE7D,EAAAnE,yBAA8C,GAK5C,EAAKspB,iBAAmB,IAAI/nB,GAC5B,EAAKjL,kBAAoB,IAAIH,GAAkB,mBAC/C,EAAKouD,yBAA2B,IAAI7jC,GAClC,yBAGF,EAAK9gB,uBAAwB,EAC7B,EAAK/K,eAAiB,IAAIZ,GAE1B,EAAKgY,sBAEL,EAAKpM,qBAAuBnE,GAAkByI,IAC9C,EAAKpI,YAAc,EAAKgQ,0BAd1B,EAvDwC,8CAwExC,WACEv+B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAC1Cr3B,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAEpCvpC,KAAKyd,OAAOC,OAAOle,IACrBQ,KAAKU,MAAQ,0BACbV,KAAK+qF,mBAAqB/qF,KAAKyd,OAAOC,OAAOle,IAE7CQ,KAAKU,MAAQ,4BAGfV,KAAK2d,aAnFiC,uBAsFxC,WACExL,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAC7Cr3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,WAxFL,uBA2FxC,SAAUlzB,IACHA,EAAMqzB,SAAWrzB,EAAMszB,WAAatzB,EAAM65C,UAAY1D,GAAOw+B,QAChE30E,EAAMuzB,iBACNvzB,EAAMyjB,qBA9F8B,qBAkGxC,SAAQzjB,IACDA,EAAMqzB,SAAWrzB,EAAMszB,WAAatzB,EAAM65C,UAAY1D,GAAOw+B,QAChE30E,EAAMuzB,iBACNvzB,EAAMyjB,kBACN95B,KAAKiqF,0BAtG+B,mFA0G1C,8GACejqF,KAAKiuD,iBAAiBxiD,SACtBpF,MAAK,SAACwN,GACH,IAAIhX,EAASgX,EAASxU,KAAI,SAACL,EAAkB8F,GACzC,MAAO,CAAE6G,KAAM3M,EAAEm9B,UAAW99B,MAAOW,EAAEo9B,gBAGzC,OAAOv/B,KAEVyJ,OAAM,SAAAulB,GAAG,MAAI,MAT5B,wFA1G0C,6IAqH1C,8GACe7rB,KAAKi7B,kBAAkBxvB,SACvBpF,MAAK,SAACwN,GACH,IAAIhX,EAASgX,EAASxU,KAAI,SAACL,EAAmB8F,GAC1C,MAAO,CAAE6G,KAAM3M,EAAEiG,KAAM5G,MAAOW,EAAEk8B,aAAcrrB,KAAM,YAGxD,OAAOhT,KAEVyJ,OAAM,SAAAulB,GAAG,MAAI,MAT5B,wFArH0C,wIAiIxC,yGACK7rB,KAAK+qF,oBACN/qF,KAAKkpF,yBAAyBjrF,IAAI+B,KAAK+qF,oBACpC1kF,MAAK,SAAAxJ,GACJ,EAAKwsF,aAAexsF,EAAOo3C,aAC3B,EAAKq1C,cAAgBzsF,EAAOykC,MAC5B,EAAKkoD,uBAAyB3sF,EAAOyqB,eACrCniB,IAAE6J,QAAQnS,EAAOq3C,wBAAwB,SAACrvC,GACpCA,EAAKo/B,WAAa,GAClB,EAAKgnD,uBAAuBpmF,GAC5BM,IAAE6J,QAAQnK,EAAKwvC,uBAAuB,SAAC9C,GAC/BA,EAAGzY,YACHyY,EAAGzY,UAAY,SAI7B,EAAK2wD,eAAiB5sF,EAAOq3C,uBAC7B/uC,IAAE6J,QAAQnS,EAAO03C,uBAAuB,SAAC1vC,GACnCA,EAAKo/B,WAAa,GAClB,EAAKinD,sBAAsBrmF,GAC3BM,IAAE6J,QAAQnK,EAAKwvC,uBAAuB,SAAC9C,GAC/BA,EAAGzY,YACHyY,EAAGzY,UAAY,SAI7B,EAAK+wD,cAAgBhtF,EAAO03C,yBA1BpC,gDAjIwC,8FAmKtC,WACI,IAAI5B,EAAsB,CACtBtR,cAAe,uCACfyQ,WAAY,uCACZrD,YAAa,GACbjL,QAAQ,EACR1F,cAAe,GACfmG,WAAa,IAGjB,OAAO9+B,IAAEmuB,MAAMqf,KA7KmB,4BAgLtC,SAAejzC,GACXM,KAAK0gC,YAAc1gC,KAAK0wC,0BACxB1wC,KAAK0kC,gBAAkBsB,GAAoBuE,MAC3CvqC,KAAKwkC,qBAAuBnE,GAAkByI,IAC9C9oC,KAAKukC,uBAAwB,EAE7B,IAAI4F,EAAWnqC,KAAKypF,eAAepqF,KAAI,SAACwF,GACpC,IAAIwvB,EAAMxvB,EAAKq2B,cAAgBr2B,EAAKu3B,aAAe,EAEnD,OAAO/H,KAEXr0B,KAAK2kC,yBAA2BwF,IA3LE,6BA6LtC,SAAgBzqC,GACZM,KAAK0kC,gBAAkBsB,GAAoBuE,MAC3CvqC,KAAKg2C,mBAAmBt2C,KA/LU,+BAiMtC,SAAkBA,GACVM,KAAKsqF,gCACLtqF,KAAKsqF,8BAAgC,IAGd,wCAAxB5qF,EAAElE,KAAK6lC,eACNrhC,KAAKsqF,8BAA8BhuF,KAAKoD,EAAElE,MAG9CwE,KAAKypF,eAAevsF,OAAOwC,EAAEguB,SAAU,KA1ML,2BA6MtC,SAAchuB,GACVM,KAAK0gC,YAAc1gC,KAAK0wC,0BACxB1wC,KAAK0kC,gBAAkBsB,GAAoByL,WAC3CzxC,KAAKwkC,qBAAuBnE,GAAkByI,IAC9C9oC,KAAKukC,uBAAwB,EAE7B,IAAI4F,EAAWnqC,KAAK6pF,cAAcxqF,KAAI,SAACwF,GACnC,IAAIwvB,EAAMxvB,EAAK80B,kBAAoB,GAEnC,OAAOtF,KAGXr0B,KAAK2kC,yBAA2BwF,IAzNE,4BA2NtC,SAAezqC,GACXM,KAAK0kC,gBAAkBsB,GAAoByL,WAC3CzxC,KAAKg2C,mBAAmBt2C,KA7NU,8BA+NtC,SAAiBA,GACTM,KAAKuqF,+BACLvqF,KAAKuqF,6BAA+B,IAGb,wCAAxB7qF,EAAElE,KAAK6lC,eACNrhC,KAAKuqF,6BAA6BjuF,KAAKoD,EAAElE,MAG7CwE,KAAK6pF,cAAc3sF,OAAOwC,EAAEguB,SAAU,KAxOJ,0FA2OtC,qGACI1tB,KAAKw5B,eAAiB,IAAIZ,GAD9B,SAE6B54B,KAAKw5B,eAAeX,YAAYxyB,MAAK,SAAC0tC,GAC3D,IAAIC,EAAsB,CACtBlb,UAAW,EACXje,YAAa,OAKjB,OAFAk5B,EAAUjoC,QAAQkoC,GAEXD,KAVf,OAEI/zC,KAAKykC,YAFT,uDA3OsC,8FAyPtC,SAAwB/kC,GAA6B,WACjD,GAAGA,EAAG,CACF,IAAIo1C,EAAS3vC,IAAEmuB,MAAM5zB,GACrB,GAAGM,KAAK0kC,kBAAoBsB,GAAoBuE,MAE5C,QAAsCl9B,GAAnCrN,KAAKmrF,2BAAyC,CAC7C,IAAIC,EAA0C,CAC1CC,wBAAyB3rF,EAAE2hC,cAC3BqkB,mBAAoB1lD,KAAK+qF,mBACzBt8C,YAAa/uC,EAAE+uC,YACfrS,YAAa18B,EAAE08B,YACfmH,UAAW7jC,EAAE6jC,UACbrI,aAAcx7B,EAAEw7B,aAChBoI,WAAY5jC,EAAE4jC,WACd+Q,sBAAuBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAChEmG,WAAYvkC,EAAEukC,YAEdvkC,EAAE4jC,WACF8nD,EAAcjvD,UAAYz8B,EAAE4jC,WAAWr+B,KAGnCvF,EAAE6jC,UACF6nD,EAAcjvD,UAAYz8B,EAAE6jC,UAAUpH,UAGtCivD,EAAcjvD,UAAY,GAIlCivD,EAAc/2C,sBAAwBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAE/E99B,KAAKirF,uBAAuBG,GAE5BprF,KAAKypF,eAAentF,KAAK8uF,OAEzB,CACA,IAAIA,EAAgBprF,KAAKypF,eAAez3E,MAAK,SAAAwE,GAAC,OAAIA,EAAE60E,0BAA4B,EAAKF,8BAElFC,IACDA,EAAcnnD,WAAa6Q,EAAO7Q,WAClCmnD,EAAc38C,YAAcqG,EAAOrG,YAGnC28C,EAAc/2C,sBAAwBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAC/EstD,EAAcG,6BAA+BvrF,KAAKsrF,6BAA6Bx2C,EAAOlJ,sBAEtF5rC,KAAKirF,uBAAuBG,SAMlC,QAAsC/9E,GAAnCrN,KAAKmrF,2BAAyC,CAC7C,IAAIC,EAAyC,CACzCI,uBAAwB9rF,EAAE2hC,cAC1BqkB,mBAAoB1lD,KAAK+qF,mBACzBpxD,iBAAkBj6B,EAAEi6B,iBACpB8U,YAAa/uC,EAAE+uC,YACf4F,sBAAuBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAChEmG,WAAYvkC,EAAEukC,YAEfvkC,EAAEorC,iBACDsgD,EAActgD,eAAiBprC,EAAEorC,eACjCsgD,EAAc32C,eAAiB/0C,EAAEorC,eAAe7lC,MAEpDmmF,EAAc/2C,sBAAwBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAE/E99B,KAAKkrF,sBAAsBE,GAE3BprF,KAAK6pF,cAAcvtF,KAAK8uF,OAErB,CACH,IAAIA,EAAgBprF,KAAK6pF,cAAc73E,MAAK,SAAAwE,GAAC,OAAIA,EAAEg1E,yBAA2B,EAAKL,8BAGhFC,IACDA,EAAcnnD,WAAa6Q,EAAO7Q,WAClCmnD,EAAc38C,YAAcqG,EAAOrG,YAEnC28C,EAAc/2C,sBAAwBr0C,KAAKsrF,6BAA6Bx2C,EAAOhX,eAC/EstD,EAAcG,6BAA+BvrF,KAAKsrF,6BAA6Bx2C,EAAOlJ,sBAEtF5rC,KAAKkrF,sBAAsBE,KAOzCprF,KAAKukC,uBAAwB,EAC7BvkC,KAAKmrF,gCAA6B99E,IAnVA,oCAsVrC,SAAuBo+E,GAA+C,WAEnEA,EAAsBxnD,WAAa,GAEnC9+B,IAAE6J,QAAQy8E,EAAsBp3C,uBAAuB,SAACxvC,GACpD,IAAIqwC,EAAU,GAEVC,EAAgB,GACpB,GAAGtwC,EAAKi0B,WAAaj0B,EAAKi0B,UAAY,EAAG,CACrC,IAAIsc,EAAajwC,IAAE6M,KAAK,EAAKyyB,aAAa,SAAC4Q,GAAD,OAAwBA,EAAMvc,YAAcj0B,EAAKi0B,aAE3Fqc,EAAgBC,EAAaA,EAAWv6B,YAAc,GAI1D,IAAIy6B,EAAc,GAEdE,EAAkB,EAAKk2C,yBAAyBD,EAAuB5mF,GAE3EqwC,EAAO,UAAKC,EAAL,YAAsBG,EAAe,KAArC,OAA2CE,EAAkBA,EAAkB,IAAM,GAArF,yBACL,EAAKE,SAASC,QAAU,EAAKD,SAASC,QAAQ7Y,SAASj4B,EAAKkiC,QAAUliC,EAAKkiC,QAE7E0kD,EAAsBxnD,WAAawnD,EAAsBxnD,WAAaiR,EAAU,aA5WlD,mCAgXrC,SAAsBy2C,GAA6C,WAChEA,EAAqB1nD,WAAa,GAElC9+B,IAAE6J,QAAQ28E,EAAqBt3C,uBAAuB,SAACxvC,GACnD,IAAIqwC,EAAU,GAEVC,EAAgB,GACpB,GAAGtwC,EAAKi0B,WAAaj0B,EAAKi0B,UAAY,EAAG,CACrC,IAAIsc,EAAajwC,IAAE6M,KAAK,EAAKyyB,aAAa,SAAC4Q,GAAD,OAAwBA,EAAMvc,YAAcj0B,EAAKi0B,aAE3Fqc,EAAgBC,EAAaA,EAAWv6B,YAAc,GAI1D,IAAIy6B,EAAc,GAEdE,EAAkB,EAAKo2C,wBAAwBD,EAAsB9mF,GAEzEqwC,EAAO,UAAKC,EAAL,YAAsBG,EAAe,KAArC,OAA2CE,EAAkBA,EAAkB,IAAM,GAArF,yBACL,EAAKE,SAASC,QAAU,EAAKD,SAASC,QAAQ7Y,SAASj4B,EAAKkiC,QAAUliC,EAAKkiC,QAE7E4kD,EAAqB1nD,WAAa0nD,EAAqB1nD,WAAaiR,EAAU,aArYhD,sCA0YtC,SAAyBu2C,EAAiD5mF,GACtE,IAAIhI,EAAS,GAETi5C,EAAY3wC,IAAE6M,KAAKy5E,EAAsBp3C,uBACzC,SAACxvC,GAAD,OAAoCA,EAAKqmC,OAASrF,GAAqB8B,QAA+B,MAArB9iC,EAAK0iC,gBAgC1F,OA9BG1iC,EAAKqmC,MACJruC,EAASi5C,EAAYjxC,EAAKqmC,KAAO,GAE9BrmC,EAAKqmC,OAASrF,GAAqB6B,KAClC7iC,EAAK2iC,UAAY3iC,EAAKkiC,OACtBliC,EAAK0iC,kBAAel6B,IAGpBxI,EAAK0iC,aAAe1iC,EAAKkiC,OACzBliC,EAAK2iC,eAAYn6B,IAKA,MAAlBxI,EAAK2iC,WACJ3qC,EAASi5C,EAAYjQ,GAAqB6B,IAAM,GAChD7iC,EAAKkiC,OAASliC,EAAK2iC,UACnB3iC,EAAKqmC,KAAOrF,GAAqB6B,KAER,MAArB7iC,EAAK0iC,eACT1qC,EAASi5C,EAAYjQ,GAAqB8B,OAAS,GACnD9iC,EAAKkiC,OAASliC,EAAK0iC,aACnB1iC,EAAKqmC,KAAOrF,GAAqB8B,QAIrC9iC,EAAKyiC,QACDziC,EAAKyiC,MAAQ3B,GAAsBsC,IAGpCprC,IA9a2B,qCAgbtC,SAAwB8uF,EAA+C9mF,GACnE,IAAIhI,EAAS,GAETi5C,EAAY3wC,IAAE6M,KAAK25E,EAAqBt3C,uBACxC,SAACxvC,GAAD,OAAoCA,EAAKqmC,OAASrF,GAAqB8B,QAA+B,MAArB9iC,EAAK0iC,gBAgC1F,OA9BG1iC,EAAKqmC,MACJruC,EAASi5C,EAAYjxC,EAAKqmC,KAAO,GAE9BrmC,EAAKqmC,OAASrF,GAAqB6B,KAClC7iC,EAAK2iC,UAAY3iC,EAAKkiC,OACtBliC,EAAK0iC,kBAAel6B,IAGpBxI,EAAK0iC,aAAe1iC,EAAKkiC,OACzBliC,EAAK2iC,eAAYn6B,IAKA,MAAlBxI,EAAK2iC,WACJ3qC,EAASi5C,EAAYjQ,GAAqB6B,IAAM,GAChD7iC,EAAKkiC,OAASliC,EAAK2iC,UACnB3iC,EAAKqmC,KAAOrF,GAAqB6B,KAER,MAArB7iC,EAAK0iC,eACT1qC,EAASi5C,EAAYjQ,GAAqB8B,OAAS,GACnD9iC,EAAKkiC,OAASliC,EAAK0iC,aACnB1iC,EAAKqmC,KAAOrF,GAAqB8B,QAIrC9iC,EAAKyiC,QACDziC,EAAKyiC,MAAQ3B,GAAsBsC,IAGpCprC,IApd2B,0CAudtC,SAA6B+wB,GACzB,GAAIA,EAAI,CACJ,IAAIi+D,EAAsB,CACtBxqD,cAAezT,EAAIy9D,wBACnBv5C,WAAYlkB,EAAI83B,mBAAqB93B,EAAI83B,mBAAqB,uCAC9DjX,YAAa7gB,EAAI6gB,YACjBrS,YAAaxO,EAAIwO,YACjBlB,aAActN,EAAIsN,aAClBqI,UAAW3V,EAAI2V,UACfD,WAAY1V,EAAI0V,WAChBE,QAAQ,EACR1F,cAAe,GACfmG,WAAarW,EAAIqW,YAKrB,OAFA4nD,EAAI/tD,cAAgB99B,KAAK8rF,qBAAqBl+D,EAAIymB,uBAE3ClvC,IAAEmuB,MAAMu4D,GAGf,OAAO7rF,KAAK0wC,4BA3ekB,yCA8etC,SAA4B9iB,GACxB,GAAIA,EAAI,CACJ,IAAIi+D,EAAsB,CACtBxqD,cAAezT,EAAI49D,uBACnB15C,WAAYlkB,EAAI83B,mBAAqB93B,EAAI83B,mBAAqB,uCAC9DjX,YAAa7gB,EAAI6gB,YACjB9U,iBAAkB/L,EAAI+L,iBACtBmR,eAAgBld,EAAIkd,eACpBtH,QAAQ,EACR1F,cAAe,GACfmG,WAAarW,EAAIqW,YAKrB,OAFA4nD,EAAI/tD,cAAgB99B,KAAK8rF,qBAAqBl+D,EAAIymB,uBAE3ClvC,IAAEmuB,MAAMu4D,GAGf,OAAO7rF,KAAK0wC,4BAhgBkB,0CAogBtC,SAA6BkH,GAAoC,WACzDm0C,EAA2C,GAyB/C,OAxBA5mF,IAAE6J,QAAQ4oC,GAAO,SAAC/yC,GACd,IAAImnF,EAAgC,CAChCC,uBAAwBpnF,EAAKomC,eAC7BnS,UAAWj0B,EAAKi0B,UAChBje,YAAahW,EAAKgW,YAClB0sB,aAAc1iC,EAAK0iC,aACnBC,UAAW3iC,EAAK2iC,UAChBlG,MAAOz8B,EAAKy8B,MACZgG,MAAOziC,EAAKyiC,MACZ4D,KAAMrmC,EAAKqmC,KACXnE,OAAQliC,EAAKkiC,OACbvD,OAAQ3+B,EAAK2+B,OACblc,eAAgBziB,EAAKyiB,gBAGtB,EAAKod,kBAAoBsB,GAAoBuE,MAC5CyhD,EAAKX,wBAA0BxmF,EAAKw8B,cAGpC2qD,EAAKR,uBAAyB3mF,EAAKw8B,cAGvC0qD,EAAczvF,KAAK0vF,MAEhBD,IA9hB2B,kCAgiBtC,SAAqBn0C,GAA4C,WACzDs0C,EAA6B,GA2BjC,OA1BA/mF,IAAE6J,QAAQ4oC,GAAO,SAAC/yC,GACd,IAAImnF,EAAwB,CACxB/gD,eAAgBpmC,EAAKonF,uBACrB5qD,cAAex8B,EAAKwmF,wBAA0BxmF,EAAKwmF,wBAA0B,uCAC7EvyD,UAAWj0B,EAAKi0B,UAChBje,YAAahW,EAAKgW,YAClB0sB,aAAc1iC,EAAK0iC,aACnBC,UAAW3iC,EAAK2iC,UAChBlG,MAAOz8B,EAAKy8B,MACZgG,MAAOziC,EAAKyiC,MACZ4D,KAAMrmC,EAAKqmC,KACXnE,OAAQliC,EAAKkiC,OACbvD,OAAQ3+B,EAAK2+B,OACblc,eAAgBziB,EAAKyiB,eACrB6jB,YAAa,IAGd,EAAKzG,kBAAoBsB,GAAoBuE,MAC5CyhD,EAAK3qD,cAAgBx8B,EAAKwmF,wBAA0BxmF,EAAKwmF,wBAA0B,uCAGnFW,EAAK3qD,cAAgBx8B,EAAK2mF,uBAAyB3mF,EAAK2mF,uBAAyB,uCAGrFU,EAAQ5vF,KAAK0vF,MAEVE,IA5jB2B,yBA+jBxC,SAAYt+D,GACPA,EAAIsN,aACLl7B,KAAKypF,eAAiBtkF,IAAEC,OAAOpF,KAAKypF,gBAAgB,SAAA5kF,GAAI,OAAKA,EAAKq2B,eAAiBtN,EAAIsN,qBAE9D7tB,GAAnBugB,EAAIwO,cACVp8B,KAAKypF,eAAiBtkF,IAAEC,OAAOpF,KAAKypF,gBAAgB,SAAA5kF,GAAI,OAAIA,EAAKu3B,cAAgBxO,EAAIwO,kBApkBjD,2CA0mBxC,SAA8B5gC,EAAUy6C,GAC9Bj2C,KAAKsqF,gCACLtqF,KAAKsqF,8BAAgC,IAGD,wCAArC9uF,EAAKA,KAAK6vF,yBACTrrF,KAAKsqF,8BAA8BhuF,KAAKd,EAAKA,MAGxBwqC,GAAoBuE,MACzCvqC,KAAKypF,eAAevsF,OAAO1B,EAAKkyB,SAAU,KApnBZ,gCA2nBtC,SAAmBlyB,GAEZwE,KAAK0kC,kBAAoBsB,GAAoBuE,OAC5CvqC,KAAK0gC,YAAe1gC,KAAKmsF,6BAA6B3wF,EAAKA,MAC3DwE,KAAKmrF,2BAA6B3vF,EAAKA,KAAK6vF,0BAE5CrrF,KAAK0gC,YAAe1gC,KAAKosF,4BAA4B5wF,EAAKA,MAC1DwE,KAAKmrF,2BAA6B3vF,EAAKA,KAAKgwF,wBAGhDxrF,KAAKwkC,qBAAuBnE,GAAkB0K,OAC9C/qC,KAAKukC,uBAAwB,IAtoBK,kCAyoBxC,WACEvkC,KAAKie,QAAQ3hB,KAAK,0BA1oBoB,qBA6oBxC,SAAQsB,EAAcS,GAChB,OAAOpC,OAAO4D,KAAKG,KAAKka,QAAQlC,QAAQpa,IAAS,EAAIoC,KAAKka,OAAOtc,GAAQS,IA9oBvC,kCAipBxC,WAAoB,WAClB,GAAwB,IAArB2B,KAAKqpF,aAGN,OAFArpF,KAAKgU,aAAehU,KAAK0qF,uBACzB1qF,KAAK4nC,cAAe,GAItB,GAAiC,GAA9B5nC,KAAKypF,eAAeztF,QAA4C,GAA7BgE,KAAK6pF,cAAc7tF,OAGvD,OAFAgE,KAAKgU,aAAehU,KAAK2qF,wBACzB3qF,KAAK4nC,cAAe,GAIrBziC,IAAE6J,QAAQhP,KAAKypF,gBAAgB,SAACl4C,GAC7BpsC,IAAE6J,QAAQuiC,EAAG8C,uBAAuB,SAACxvC,GAC7BA,EAAKi0B,WAAgC,IAAnBj0B,EAAKi0B,YACvBj0B,EAAKi0B,eAAYzrB,SAI5BlI,IAAE6J,QAAQhP,KAAK6pF,eAAe,SAACt4C,GAC5BpsC,IAAE6J,QAAQuiC,EAAG8C,uBAAuB,SAACxvC,GAC7BA,EAAKi0B,WAAgC,IAAnBj0B,EAAKi0B,YACvBj0B,EAAKi0B,eAAYzrB,SAI7B,IAAIsyB,EAAwC,CAC1CsU,aAAcj0C,KAAKqpF,aACnB/nD,MAAOthC,KAAKspF,cACZhiE,eAAgBtnB,KAAKwpF,uBACrBt1C,uBAAwBl0C,KAAKypF,eAC7Bl1C,sBAAuBv0C,KAAK6pF,cAC5BS,8BAA+BtqF,KAAKsqF,8BACpCC,6BAA8BvqF,KAAKuqF,8BAGlCvqF,KAAK+qF,oBAENprD,EAAiB+lB,mBAAqB1lD,KAAK+qF,mBAC3C/qF,KAAKkpF,yBACFpsE,KAAK9c,KAAK+qF,mBAAoBprD,GAC9Bt5B,MAAK,SAAAxJ,GAC2B,MAA5BA,EAAO+mB,KAAKqwB,cACb,EAAKjgC,aAAe,EAAKy2E,mBACzB,EAAK7iD,cAAe,GAGpB,EAAKoiD,2BAMXhqF,KAAKkpF,yBACFxqF,OAAOihC,GACPt5B,MAAK,SAAAxJ,GAC2B,MAA5BA,EAAO+mB,KAAKqwB,cACb,EAAKjgC,aAAe,EAAKy2E,mBACzB,EAAK7iD,cAAe,GAGpB,EAAKoiD,8BA/sByB,GAASnnF,cAA9BqnF,GAAqB,gBArBzC/iF,eAAU,CACTL,WAAY,CACViS,yBACA2Q,4BACAlK,oCACA7G,wBACAmR,0BACAlR,wBACAS,8BACA81C,4BACAr2C,0BACAwG,sBACAS,wBACAssE,kCACAC,4BACAt4D,0BACAyT,qBACAnuB,gCACAqQ,gCAGiBugE,cC7U8X,MCQ/Y,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAInqF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,uBAAuBnH,EAAG,2BAA2B,IACnL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,uBAAuBP,EAAIwsF,kCAAkC,SAAW,IAAIvkF,GAAG,CAAC,YAAcjI,EAAIga,oBAAoB,eAAeha,EAAI8Z,YAAY/Y,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,yBAAyBqC,GAAG,SAASkH,GACpV,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,2BAA2B,CAACH,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,CAAE1C,KAAM,2BAA4B8f,OAAQ,CAAEle,GAAIhE,EAAKA,KAAKgxF,sBAAuB,CAACzsF,EAAIuH,GAAG,eAAevH,EAAIwH,GAAG/L,EAAKA,KAAKyJ,MAAM,iBAAiB,QAAQ,CAAC9E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,KAAO,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,OAAO,gBAAgB,4BAA4BH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,uBAAuBP,EAAI0sF,0BAA0B,GAAGtsF,EAAG,2BAA2B,CAACG,MAAM,CAAC,WAAaP,EAAI2sF,2BAA2B1kF,GAAG,CAAC,mBAAqBjI,EAAI4sF,uBAAuB,IAClrB,GAAkB,G,sdCIf,IAAMC,GAAb,4CACE,uDACQ,yBAFV,gHAKE,WAAuBC,EAAyBngF,GAAhD,iGACe1M,KAAK0D,OAAOiJ,YAAZ,WAA4BkgF,EAA5B,kCAA+EngF,GAD9F,wFALF,oJAQE,8GACe1M,KAAK0D,OAAOzF,IAAZ,qBADf,wFARF,4IAWE,8GACe+B,KAAK0D,OAAOzF,IAAZ,gBADf,wFAXF,wJAcE,WAA+B6uF,GAA/B,iGACe9sF,KAAK0D,OAAOzF,IAAZ,+BAAwC6uF,IADvD,wFAdF,2JAiBE,8GACe9sF,KAAK0D,OAAOzF,IAAZ,2BADf,wFAjBF,8DAA4Cge,ICPxC,GAAS,WAAa,IAAIlc,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,aAAa,MAAM,cAAa,EAAK,MAAQ,sCAAsC,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,OAASlI,EAAI4gB,cAAc,wBAAwB5gB,EAAIgtF,gBAAgB,CAAC5sF,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAc,OAAO,UAAY,oBAAoB,YAAc,6BAA6B,WAAaP,EAAIitF,iBAAiB,MAAQjtF,EAAIktF,iBAAiBjlF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIktF,gBAAgBhlF,OAAY,GAAG9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIgtF,eAAgB,SAAW,QAAQ,QAAU,YAAY5sF,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,aAAa,IACtjC,GAAkB,G,sdCuGtB,IAAqBgrE,GAAqB,4CAwBtC,iDACI,eAxBJ,EAAA39E,MAGI,GAiBJ,EAAAy9E,iBAA8C,GAC9C,EAAAC,gBAAwB,GAIpB,EAAKtvE,WAFT,EAxBsC,4DAMtC,WACI,OAAS3d,KAAKuP,MAAMk1C,kBAA0BrzC,WAPZ,yBAatC,WACI,OAAOpR,KAAKgmB,YAdsB,IAiBtC,SAAkB3nB,GACd2B,KAAKkiB,iBAlB6B,+EA6BtC,6GACQirE,EAA0B,IAAIP,GAC9BrwE,EAA2B,GAC/B4wE,EAAuB7uE,OAAO/B,GACzBlW,MAAK,SAAAxJ,GACF,EAAKmwF,iBAAmBnwF,EAAOrB,KAC/B,EAAKwxF,iBAAiBlhF,QAClB,CACI0gF,kBAAmB,GACnBvnF,KAAM,oBACN6I,eAAgB,GAChBC,uBAAwB,GACxBE,4BAA6B,GAC7BD,8BAA+B,QAbnD,2CA7BsC,oFAiDtC,SAActO,GACVM,KAAKitF,gBAAkB,KAlDW,2BAqDtC,WACiC,KAAzBjtF,KAAKitF,gBACLjtF,KAAKie,QAAQ3hB,KAAK,CAAEsB,KAAM,6BAE1BoC,KAAKie,QAAQ3hB,KAAK,CAAEsB,KAAM,2BAA4B8f,OAAQ,CAAEle,GAAIQ,KAAKitF,gBAAiBG,iBAAkB,YAzD9E,0BA6DtC,WACIptF,KAAKimB,MAAM,0BA9DuB,GAASpjB,cAW/Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAXiByjE,GAAqB,gBAjBzC/lF,eAAU,CACTL,WAAY,CACVkjB,iBACApR,wBACAI,wBACAK,8BACA2a,eACA/J,kCACA8J,YACAmxB,gBACAxlC,0BACAyK,wBACAlR,0BACAmR,uBACAF,8BAAatK,oCAAgBC,oCAGZqtE,cCxGgZ,MCOja,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCsDf,IAAqBG,GAAmB,4CAOpC,iDACI,eAHJ,EAAAX,2BAAqC,EAIjC,EAAKS,uBAAyB,IAAIP,GAElC,EAAKL,kCAAoC,CACvC5tF,IAAK,oBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAK4wE,uBAAuB7uE,OAAO/B,KAN9D,EAPoC,0DAmBpC,SAAoB7c,GAClBM,KAAKue,SAAW7e,EAAEuH,YApBgB,wBAuBpC,SAAWvH,GAGP,OAFAA,EAAE4tF,QAAU5oF,QAAQC,SACpB3E,KAAK0sF,2BAA4B,GAC1B,IA1ByB,mCA6BpC,SAAsB31E,GAClB,OAAOA,EAAOjJ,eAAezO,KAAI,SAAAK,GAAC,OAAIA,EAAE6tF,iBAAezpF,KAAK,QA9B5B,gCAiCpC,WACI9D,KAAK0sF,2BAA4B,MAlCD,GAAS7pF,cAA5BwqF,GAAmB,gBApBvClmF,eAAU,CACTL,WAAY,CACV0R,uBACAG,wBACAG,0BACA4Q,4BACAjK,oBACAuO,4BACAxO,oCACAD,oBACApG,8BACAghB,gCACAnhB,wBACAsG,sBACA1G,wBACAkR,0BACAH,4BACAujE,6BAGiBG,cCxE8Y,MCO/Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBG,GAAe,yIAAS3qF,cAAxB2qF,GAAe,gBANlCrmF,eAAU,CACVL,WAAY,CACViS,yBACAs0E,2BAGiBG,cCnBuX,MCOxY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIztF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,4BAA4BnH,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,OAAO,kBAAkB,kBAAkB,CAAChL,EAAG,MAAM,CAACe,YAAY,cAAciK,YAAY,CAAC,MAAQ,UAAU,CAAChL,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,UAAUnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,cAAc,CAACG,MAAM,CAAC,aAAa,IAAI4tB,MAAM,CAAC7vB,MAAO0B,EAAI0tF,UAAc,KAAEt/D,SAAS,SAAUC,GAAMruB,EAAIyhB,KAAKzhB,EAAI0tF,UAAW,OAAQr/D,IAAM/kB,WAAW,mBAAmB,CAAClJ,EAAG,eAAe,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,sBAAsBP,EAAI2tF,cAAc,QAAU,uBAAuB,YAAa,KAAQvtF,EAAG,qBAAqB,IAAI,IAAI,KAAKA,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,oBAAoBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAI4tF,eAAe,2BAA0B,EAAK,kBAAiB,EAAK,MAAQ5tF,EAAI6tF,uBAAuB,mBAAmB,aAAa,eAAe,aAAa,aAAa,KAAK5lF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI6tF,uBAAuB3lF,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,OAAQJ,EAAiB,cAAEI,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,cAAc,KAAO,aAAa0H,GAAG,CAAC,MAAQjI,EAAI8tF,sBAAsB,GAAG9tF,EAAIyI,OAAOrI,EAAG,kCAAkC,CAACG,MAAM,CAAC,QAAUP,EAAI+tF,kBAAkB,oBAAoB/tF,EAAI0tF,UAAU,aAAe1tF,EAAIguF,sBAAsB,WAAahuF,EAAI08B,WAAW,wBAAwB18B,EAAIiuF,qBAAqBhmF,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+tF,kBAAkB7lF,GAAQ,OAASlI,EAAIkuF,mBAAmB,YAAcluF,EAAImuF,4BAA4B/tF,EAAG,MAAM,CAACA,EAAG,aAAa,CAAC+H,IAAI,WAAW5H,MAAM,CAAC,cAAcP,EAAI0tF,UAAU1/E,uBAAuB,WAAW,0BAA0B,OAAS,QAAQ,OAAS,CAAE+X,SAAU,KAAM9d,GAAG,CAAC,YAAcjI,EAAIga,oBAAoB,wBAAwBha,EAAIouF,eAAe,eAAepuF,EAAI+Z,YAAY,cAAc/Z,EAAIquF,WAAW,gBAAgBruF,EAAIsuF,aAAa,cAActuF,EAAIuuF,WAAW,gBAAgBvuF,EAAIwuF,qBAAqB,eAAexuF,EAAIyuF,oBAAoB1tF,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,2BAA2BqC,GAAG,SAASxF,GAAM,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAK6C,MAAM,cAAc0B,EAAI0uF,8BAA8B,SAAU,EAAK,aAAa,gCAAgC,eAAe,mBAAmB,uBAAsB,EAAK,qBAAuB1uF,EAAIgjB,0BAA0B,eAAiB,SAAUrjB,GAAK,OAAOK,EAAI2uF,sBAAsBhvF,EAAGlE,EAAKA,OAAS,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,MAAS,MAAM,CAACmD,IAAI,uBAAuBqC,GAAG,SAASxF,GAAM,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQ9E,EAAKA,KAAK6C,MAAM,cAAc0B,EAAI4uF,UAAU,aAAa,QAAQ,eAAe,OAAO,SAAW5uF,EAAIiuF,oBAAoBtjF,MAAK,SAAU5M,GAAK,OAAOA,EAAE8wF,gCAAkCpzF,EAAKA,KAAKA,KAAKozF,gCAAkD,IAAjB9wF,EAAE+wF,cAAwB,mBAAmB,SAAUnvF,GAAK,OAAOK,EAAI+uF,kBAAkBpvF,EAAGlE,EAAKA,WAAa,MAAM,CAACmD,IAAI,4BAA4BqC,GAAG,SAASxF,GAAM,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,cAAc,CAACG,MAAM,CAAC,OAAS,wBAAwB0H,GAAG,CAAC,QAAU,SAAUtI,GAAK,OAAOK,EAAIgvF,cAAcrvF,EAAGlE,EAAKA,SAAWuE,EAAI6K,GAAIpP,EAAKA,KAAU,OAAE,SAASwzF,EAAwBlqF,GAAO,OAAO3E,EAAG,MAAM,CAACxB,IAAI,4BAA8BmG,EAAQ,IAAI,CAAC3E,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIkvF,iBAAiBrrF,QAAO,SAAUiiD,GAAK,OAAOmpC,IAA4BnpC,EAAEqpC,0BAA4B1zF,EAAKA,KAAKA,KAAK2zF,yBAAyBzkF,MAAK,SAAUlL,GAAM,OAAOA,IAAOqmD,EAAEqpC,8BAAgC,eAAe,aAAa,aAAa,0BAA0B,MAAQF,EAAwB,mBAAmB,SAAU3wF,GAAS,OAAO0B,EAAIqvF,mBAAmB/wF,EAAO7C,EAAKA,KAAMsJ,IAAU,QAAU/E,EAAIsvF,6BAA6B7zF,EAAKA,KAAMsJ,IAAQkD,GAAG,CAAC,eAAe,SAASC,GAAQ+mF,EAAwB/mF,OAAY,MAAK,GAAG9H,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,MAAM,KAAO,cAAc0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIuvF,eAAe9zF,EAAKA,WAAW,SAAS,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,WAAY,EAAK,MAAQ,gCAAgC,MAAQ,MAAM,OAAS,MAAM,aAAaP,EAAIqa,aAAa,YAAYra,EAAI61B,eAAez1B,EAAG,UAAU,CAACG,MAAM,CAAC,cAAgBP,EAAIwvF,oBAAoB,GAAGpvF,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,mBAAmB,iBAAiB,CAAEoa,UAAW,QAASva,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,gCAAgC,QAAU,qBAAqB,qBAAqB,2BAA2B,uBAAuBP,EAAIyvF,qCAAqC,CAACrvF,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIiuF,oBAAoB,aAAa,gCAAgC,eAAe,sBAAsB7tF,EAAG,iBAAiB,CAACG,MAAM,CAAC,sBAAsBP,EAAI0vF,qBAAqB,YAAa,EAAK,QAAU,wCAAwCtvF,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,iBAAiB,CAAEoa,UAAW,OAAQva,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,4BAA4B,iBAAiB,CAAEoa,UAAW,KAAM,SAAU,KAASva,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,WAAW,QAAU,YAAY,qBAAqB,yBAAyB,CAACH,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,UAAU,aAAa,gBAAgBH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,SAAU,IAAQ,CAACH,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,UAAU,aAAa,gBAAgBH,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,UAAU,aAAa,2BAA2B,SAAU,EAAM,qBAAqB,gCAAgC,IAAI,GAAGH,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,eAAe,CAAEE,MAAO,aAAc,CAACL,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,gBAAiBkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI2vF,cAAe,SAAW,SAAS,QAAU,SAAS,QAAmC,MAAzB3vF,EAAI8sF,qBAA6B1sF,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI4vF,YAAa,SAAW,QAAQ,QAAU,YAAYxvF,EAAG,UAAU,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI6vF,cAAe,SAAW,QAAQ,QAAU,aAAa,IAAI,IAAI,IAC7tN,GAAkB,GCGTC,GAAb,+CACU,KAAAnsF,OAAgC,IAAIC,2BAAsBR,EAAO,8BAD3E,sGAGE,8GACenD,KAAK0D,OAAOzF,IAA+B,IAD1D,wFAHF,gECEa6xF,GAAb,uDCNI,GAAS,WAAa,IAAI/vF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,QAAUP,EAAIgsB,QAAQ,MAAQ,mCAAmC/jB,GAAG,CAAC,QAAUjI,EAAIomC,UAAU,OAASpmC,EAAI2tD,SAAS,OAAS3tD,EAAImtD,WAAW,CAAC/sD,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAAEJ,EAAiC,8BAAEI,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,WAAWiK,YAAY,CAAC,MAAQ,UAAU,CAAChL,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIgwF,8BAA8BC,oBAAoB7vF,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIkwF,2BAA2BjoF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIkwF,0BAA0BhoF,OAAY,KAAK9H,EAAG,UAAU,CAAC+H,IAAI,yBAAyB5H,MAAM,CAAC,YAAYP,EAAImwF,uBAAuB,YAAY,EAAE,UAAYnwF,EAAIkwF,4BAA4B,CAAC9vF,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,eAAc,EAAK,cAAc,cAAc,iBAAiBP,EAAIowF,6BAA6BhwF,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,uBAAuB,eAAc,EAAK,cAAc,cAAc,iBAAiBP,EAAIqwF,qCAAqCjwF,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,eAAc,EAAK,cAAc,cAAc,iBAAiBP,EAAIswF,2BAA2BlwF,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,sBAAsB,cAAc,cAAc,iBAAiBP,EAAIuwF,qCAAqC,IAAI,GAAGvwF,EAAIyI,SAASrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAI+tD,qBAAqB3tD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIguD,wBAAwB,IACrqD,GAAkB,GCMhB,SAAUwiC,KACd,MAAO,CACLC,aAAc,GACdC,qBAAsB,GACtBC,WAAY,GACZC,oBAAqB,MAInB,SAAUC,GAA4Bp1F,GAC1CA,EAAKg1F,aAAe,GACpBh1F,EAAKi1F,qBAAuB,GAC5Bj1F,EAAKk1F,WAAa,GAClBl1F,EAAKm1F,oBAAsB,K,y+CC4E7B,IAAqBE,GAA4B,4CAK/C,iDACE,eAJF,EAAAZ,2BAAqC,EACrC,EAAAjoE,SAAmB,EAIjB,EAAKkoE,uBAAyBK,KAFhC,EAL+C,8CAyB/C,WACEp+E,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,KA3BR,qBA8B/C,WACExpC,KAAKimB,MAAM,cAAe,CAAEhf,UAAWjH,SA/BM,uBAkC/C,WACEmS,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KApCX,kCAuC/C,WACE,OAAQxpC,KAAKuP,MAAM,0BAAqC6B,WAxCX,6BA2C/C,WACE,MAAO,CACLzF,KAAM,KACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKmuD,aACd7pB,mBAAmB,KAjDwB,+BAqD/C,WACE,MAAO,CACL34B,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKouD,kBA1D6B,qCA8D/C,WACE,MAAO,CACLzzC,MAAO3a,KAAK8wF,2BAhE+B,6CAoE/C,WACE,MAAO,CACLn2E,MAAO3a,KAAK+wF,mCAtE+B,mCA0E/C,WACE,MAAO,CACLp2E,MAAO3a,KAAKgxF,yBA5E+B,4CAgF/C,WACE,MAAO,CACLr2E,MAAO3a,KAAKixF,kCAlF+B,mCAsF/C,WAA2B,WACrBt2E,EAAQ3a,KAAKkxF,gBAAgBnjF,uBAC9BnK,QAAO,SAAAlG,GAAC,MAAiC,WAA7BA,EAAEyzF,SAASv5E,iBACvBvY,KAAI,SAAA3B,GAAC,OAAI,EAAK0zF,oBAAoB1zF,MACrC,OAAOyH,IAAE2uB,OAAOnZ,KA1F6B,2CA6F/C,WAAmC,WAC7BA,EAAQ3a,KAAKkxF,gBAAgBnjF,uBAC9BnK,QAAO,SAAAlG,GAAC,MAAiC,WAA7BA,EAAEyzF,SAASv5E,iBACvBvY,KAAI,SAAA3B,GAAC,OAAI,EAAK0zF,oBAAoB1zF,MACrC,OAAOyH,IAAE2uB,OAAOnZ,KAjG6B,iCAoG/C,WAAyB,WACnBA,EAAQ3a,KAAKkxF,gBAAgBnjF,uBAC9BnK,QAAO,SAAAlG,GAAC,MAAiC,SAA7BA,EAAEyzF,SAASv5E,eAAyD,aAA7Bla,EAAEyzF,SAASv5E,iBAC9DvY,KAAI,SAAA3B,GAAC,OAAI,EAAK0zF,oBAAoB1zF,MACrC,OAAOyH,IAAE2uB,OAAOnZ,KAxG6B,0CA2G/C,WACE,OAAO3a,KAAKy8B,WAAWp9B,KAAI,SAAA3B,GAAC,OAAIA,EAAE8/B,kBA5GW,yCA+G/C,WACE,OAAOx9B,KAAKqxF,aAAar/E,MAAK,SAAAtU,GAAC,MAAwC,wBAApCA,EAAEsyF,gBAAgBp4E,mBAhHR,iCAmHvC,SAAoB7M,GAC1B,GAA+B,MAA3BA,EAAOumF,iBACT,OAAOvmF,EAAOumF,iBAGhB,IAAIhlF,EAAStM,KAAKguF,oBAAoBh8E,MAAK,SAAAlU,GAAC,OAAIA,EAAE8wF,gCAAkC7jF,EAAO6jF,iCAC3F,OAAiB,MAAVtiF,EAAiBA,EAAOglF,sBAAmBjkF,IAzHL,0BA4H/C,WACMrN,KAAKuxF,kBACPvxF,KAAKyhC,OACLzhC,KAAKuuD,WA/HsC,2BAmIvC,WACN,IAAIvmC,GAAU,EAEd,GAAIhoB,KAAKwxF,uBAAwB,CAC/B,IAAIC,EAAmBzxF,KAAKwxF,uBAAuBzpE,WACnDC,IAAUypE,EAAiBzpE,SAAUypE,EAAiBzpE,QAGxD,OAAOA,IA3IsC,kBA8IvC,WACNhoB,KAAKgoB,SAAU,EACfhoB,KAAKkxF,gBAAgBjjF,4BAA4B/Q,OAAO,GAEpD8C,KAAKiwF,2BACPjwF,KAAK0xF,0BAnJsC,mCAuJvC,WACD1xF,KAAK+vF,+BAIV/vF,KAAKkxF,gBAAgBjjF,4BAA4B3R,KAAK,CACpDq1F,uBAAwB3xF,KAAK+vF,8BAA8B4B,uBAC3DC,+BAAgC,sBAChCC,+BAAgC1sF,IAAEihB,UAAUpmB,KAAKkwF,4BA/JN,4BAmK/C,WACElwF,KAAKuuD,UApKwC,mBAuKvC,WACNvuD,KAAKimB,MAAM,YAxKkC,uBA2K/C,WACEjmB,KAAK8xF,eA5KwC,wBA+KvC,WACN9xF,KAAK+xF,4BACL/xF,KAAKgyF,4BAjLwC,uCAoLvC,WACNhyF,KAAKiyF,qCArLwC,8CAwLvC,WACiC,MAAnCjyF,KAAK8wF,wBAAwB,KAC/B9wF,KAAKkwF,uBAAuBM,aAAexwF,KAAK8wF,wBAAwB,IAG3B,MAA3C9wF,KAAK+wF,gCAAgC,KACvC/wF,KAAKkwF,uBAAuBO,qBAAuBzwF,KAAK+wF,gCAAgC,IAGrD,MAAjC/wF,KAAKgxF,sBAAsB,KAC7BhxF,KAAKkwF,uBAAuBQ,WAAa1wF,KAAKgxF,sBAAsB,IAGxB,MAA1ChxF,KAAKixF,+BAA+B,KACtCjxF,KAAKkwF,uBAAuBS,oBAAsB3wF,KAAKixF,+BAA+B,MAtM3C,qCA0M/C,WAAuB,WACrBjxF,KAAKgoB,SAAU,EADM,WAGGhoB,KAAKqxF,cAHR,yBAGZa,EAHY,QAIfC,EAAU,EAAKjB,gBAAgBjjF,4BAChC+D,MAAK,SAAAtU,GAAC,OAAIA,EAAEi0F,yBAA2BO,EAAYP,0BACtD,GAAe,MAAXQ,EACF,iBAGF,IAAIC,EAAkBF,EAAYlC,gBAAgBp4E,cAC1B,wBAApBw6E,GACF,EAAKC,+BAA+BF,IATxC,IAAK,EAAL,qBAA2C,IAHtB,iCA1MwB,4CA2NvC,SAA+BD,GACrClyF,KAAKiwF,2BAA4B,EAEjC,IAAIqC,EAAcJ,EAAYL,+BACE,MAA5BS,EAAY9B,eACTxwF,KAAK8wF,wBAAwBh5E,SAASw6E,EAAY9B,gBACrDxwF,KAAKgoB,SAAU,EACfsqE,EAAY9B,aAAe,IAG7BxwF,KAAKkwF,uBAAuBM,aAAe8B,EAAY9B,cAGjB,MAApC8B,EAAY7B,uBACTzwF,KAAK+wF,gCAAgCj5E,SAASw6E,EAAY7B,wBAC7DzwF,KAAKgoB,SAAU,EACfsqE,EAAY7B,qBAAuB,IAGrCzwF,KAAKkwF,uBAAuBO,qBAAuB6B,EAAY7B,sBAGnC,MAA1B6B,EAAY5B,aACT1wF,KAAKgxF,sBAAsBl5E,SAASw6E,EAAY5B,cACnD1wF,KAAKgoB,SAAU,EACfsqE,EAAY5B,WAAa,IAG3B1wF,KAAKkwF,uBAAuBQ,WAAa4B,EAAY5B,YAGhB,MAAnC4B,EAAY3B,sBACT3wF,KAAKixF,+BAA+Bn5E,SAASw6E,EAAY3B,uBAC5D3wF,KAAKgoB,SAAU,EACfsqE,EAAY3B,oBAAsB,IAGpC3wF,KAAKkwF,uBAAuBS,oBAAsB2B,EAAY3B,uBAhQnB,sBAoQ/C,WACE3wF,KAAKuuD,UArQwC,sBAwQ/C,WACEvuD,KAAK4T,UAzQwC,mBA4QvC,WACN5T,KAAKuyF,4BA7QwC,qCAgRvC,WACNvyF,KAAKiwF,2BAA4B,EACjCW,GAA4B5wF,KAAKkwF,0BAlRY,uBAqRvC,SAAUxwF,GACZM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,qBAxRyC,qBA4RvC,SAAQp6B,GACVM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKmuD,kBAhSsC,4BAoSvC,SAAezuD,GACrB,MAAiB,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,cArSC,GAAS9mC,cAWxDb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,uCAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,oCAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,kCAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,2CAvBmB8oD,GAA4B,gBAXhD1pF,gBAAU,CACTL,WAAY,CACV8R,wBACA+Q,4BACAlK,oBACAF,oBACAD,sBACAlG,gCACA6Q,sCAGiB4mE,cChGuZ,MCOxa,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIa,M,8dC6Qf,IAAqB2B,GAAqB,4CAA1C,iD,0BACE,EAAAjjF,MAEI,GAEJ,EAAAk+E,UAAgC5/E,KAEhC,EAAA8/E,eAA2B,GAC3B,EAAAgB,UAAiC,GACjC,EAAAM,iBAAoD,GACpD,EAAArB,uBAAmC,GACnC,EAAAG,sBAAmD,GACnD,EAAAtxD,WAA4B,GAC5B,EAAAqxD,mBAA6B,EAC7B,EAAA2E,cAAqD,KACrD,EAAAzE,oBAA6D,GAC5C,EAAA0E,iBAA2B,SA0BpC,EAAAvF,uBAAiD,IAAIP,GACrD,EAAA+F,4BAA2D,IAAI9C,GAC/D,EAAAtyD,gBAAmC,IAAIV,GACvC,EAAAn5B,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IA+I/E,EAAAuiF,gBAAsC,GA0L9B,EAAAC,oBAAmDxlF,EAW3D,EAAAylF,kBAA4B,GAIpB,EAAAC,oBAA4B,GAC5B,EAAAC,kBAA4B,GAC5B,EAAAC,WAAqB,EAvY/B,EAA0C,kEAkBxC,WACE,OAAO,IAAIptE,KAAW,CACpB1iB,MAAOnD,KAAKguF,oBACZ7mB,MAAO,YACPr7C,WAAY,uBAtBwB,gDA2BxC,SAAmCwzB,GACjC,GAA6C,MAAzCA,EAAQsvC,8BAAuC,CACjD,IAAIsE,EAAqBlzF,KAAKguF,oBAAoBh8E,MAAK,SAAAlU,GAAC,OAAIA,EAAE8wF,gCAAkCtvC,EAAQsvC,iCACxG,GAA0B,MAAtBsE,EACF,OAAOA,EAAmB5B,iBAI9B,OAAOhyC,EAAQgyC,mBAnCuB,6BAsCxC,WACE,OAAOtxF,KAAKyd,OAAOC,OAAOle,KAvCY,8EA+CxC,iHACMQ,KAAK6sF,kBADX,gCAE2B7sF,KAAKmtF,uBAAuBlvF,IAAI+B,KAAK6sF,mBAFhE,OAEI7sF,KAAKytF,UAFT,OAKOztF,KAAKyd,OAAOC,OAAO,sBACpB1d,KAAKytF,UAAUjB,uBAAoBn/E,EAEnCrN,KAAKytF,UAAU3/E,eAAekB,SAAQ,SAAAmkF,GACpCA,EAAGC,+BAAiC,0CAGtCpzF,KAAKytF,UAAU1/E,uBAAuBiB,SAAQ,SAAAtR,GAC5CA,EAAE21F,wBAA0B,2CAKhCrzF,KAAKyd,OAAOC,OAAO,qBAAuB1d,KAAK6sF,kBAC/C7sF,KAAK4tF,uBAAyB5tF,KAAKytF,UAAU3/E,eAAezO,KAAI,SAAA8zF,GAAE,OAAIA,EAAG5F,iBAnB7E,uBAsBIvtF,KAAKytF,UAAY5/E,KAtBrB,eAyBE7N,KAAK4yF,gBAAkB5yF,KAAKytF,UAAYztF,KAAKytF,UAAUxoF,KAAO,GAzBhE,UA0BmCjF,KAAKmtF,uBACnCmG,6BACAhtF,OAAM,SAAAulB,GAAG,MAAI,MA5BlB,eA0BE7rB,KAAKguF,oBA1BP,OA8BEhuF,KAAKytF,UAAU1/E,uBAAuBiB,SAAQ,SAAAnK,GAC5C,GAA0C,MAAtCA,EAAK+pF,+BAAkE,MAAzB/pF,EAAKysF,iBAA0B,CAC/E,IAAIiC,EAAQpuF,IAAEyxE,MAAM,EAAKoX,qBAAqB,SAAAnpF,GAAI,OAAIA,EAAK+pF,iCACvDpvF,GAAM+zF,EAAQA,EAAM3E,8BAAgC,GAAK,EAEzDjnE,EAAa,CACf,8BAAiCnoB,EACjC,UAAa,EAAKkzF,iBAClB,iBAAoB7tF,EAAKysF,iBACzB,SAAYzsF,EAAKssF,SACjB,YAAc,GAGhBtsF,EAAK+pF,8BAAgCpvF,EACrC,EAAKwuF,oBAAoB1xF,KAAKqrB,OA5CpC,UAgDyB3nB,KAAKmtF,uBAAuBqG,oBAhDrD,eAgDMC,EAhDN,OAiDEzzF,KAAK2tF,eAAiB8F,EAjDxB,UAmDoBzzF,KAAKmtF,uBAAuBuG,eAnDhD,eAmDM91D,EAnDN,OAoDE59B,KAAK2uF,UAAY/wD,EAAMv+B,KAAI,SAAAf,GACzB,MAAO,CAAEqN,KAAMrN,EAAGD,MAAOC,MArD7B,UAwDgC0B,KAAK0D,OAAOzF,IAAgC,+BAxD5E,eAwDE+B,KAAKivF,iBAxDP,iBAyDqCjvF,KAAK2yF,4BAA4BlnF,SAzDtE,eAyDEzL,KAAK+tF,sBAzDP,iBA0D0B/tF,KAAKu9B,gBAAgB9xB,SA1D/C,QA0DEzL,KAAKy8B,WA1DP,wDA/CwC,+FA4GxC,SAAyB/8B,GACvBM,KAAKyyF,cAAgB/yF,EAAEuH,YA7Ge,+BAgHxC,WACEjH,KAAK8tF,mBAAoB,IAjHa,gCAoHxC,WACE9tF,KAAK8tF,mBAAoB,IArHa,0BAwHxC,SAAapuF,GACXM,KAAK2zF,iCAGL,IAAIj1E,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQf,KAAO,KAC/B+S,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KAjIG,mCAoIxC,SAAsBhf,EAAQlE,GAC5B,IAAIo4F,EAAuB5zF,KAAKguF,oBAAoBh8E,MAAK,SAAAlU,GAAC,OAAIA,EAAE8wF,gCAAkClvF,EAAErB,SACxE,MAAxBu1F,IACFp4F,EAAKq4F,SAASD,EAAqBhF,+BAGnC5uF,KAAKue,SAAS6kD,UAAU5nE,EAAKoyB,IAAIF,SAAU1tB,KAAKue,SAASu1E,sBAAsB,YAAaF,EAAqBzC,UACjHnxF,KAAK+zF,qBA3I+B,+BA+IxC,SAAkBr0F,EAAQlE,GACxBA,EAAKq4F,SAASn0F,EAAErB,SAhJsB,uCAmJxC,SAA0BqB,GAAM,WAC1Bs0F,EAAgBh0F,KAAKguF,oBAAoBh8E,MAAK,SAAAnN,GAAI,OAAIA,EAAKysF,mBAAqB5xF,EAAEiM,MAAQ9G,EAAKovF,YAAc,EAAKvB,oBACtH,GAAIsB,EACFt0F,EAAEioB,WAAaqsE,MADjB,CAKA,IAAIT,EAAQpuF,IAAEyxE,MAAM52E,KAAKguF,qBAAqB,SAAAnpF,GAAI,OAAIA,EAAK+pF,iCACvDpvF,GAAM+zF,EAAQA,EAAM3E,8BAAgC,GAAK,EAEzDjnE,EAAa,CACf,8BAAiCnoB,EACjC,UAAaQ,KAAK0yF,iBAClB,iBAAoBhzF,EAAEiM,KACtB,SAAY,SACZ,YAAc,GAGhB3L,KAAKguF,oBAAoB1xF,KAAKqrB,GAC9BjoB,EAAEioB,WAAaA,KAtKuB,kCAyKxC,SAAqBjoB,GACnB,OAAOM,KAAKk0F,0BAA0Bx0F,EAAErB,SA1KF,uCA6KxC,SAA0BA,GACxB,IAAIxB,GAAS,EAWb,OAVIwB,IAAU2B,KAAK8yF,kBACjBj2F,GAAS,EACAwB,IAEPxB,GADEmD,KAAKytF,UAAU1/E,uBAAuBiE,MAAK,SAAAtU,GAAC,OAAIA,EAAEkxF,gCAAkCvwF,MAOnFxB,IAzL+B,oFA6LxC,WAAoB2R,GAApB,oFACMxO,KAAK4yF,iBAAmBpkF,EAAMnQ,OAAUmQ,EAAMnQ,MADpD,0CAEW,GAFX,uBAKe2B,KAAKmtF,uBACfgH,yBAAyB3lF,EAAMnQ,OAC/BgI,MAAK,SAAAwN,GACJ,OAAQA,KARd,wFA7LwC,0FAyMxC,SAAmBnU,GACjBA,EAAElE,KAAO,CACP44F,YAAY,EACZnpF,YAAY,EACZkkF,yBAA0B,MA7MU,0BAiNxC,SAAazvF,GACXA,EAAElE,KAAK2zF,yBAA2BzvF,EAAElE,KAAK2zF,yBAAyBvrF,QAChE,SAACpE,GAAD,OAAcA,EAAGxD,OAAS,OAnNU,yBAuNxC,SAAY0D,GAEVA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,SAC3CjW,EAAEiW,QAAQw5E,yBAA2BzvF,EAAEiW,QAAQw5E,yBAAyBvrF,QACtE,SAACpE,GAAD,OAAcA,EAAGxD,OAAS,KAG5BgE,KAAKizF,WAAY,IA9NqB,wBAiOxC,SAAWvzF,GACiB,MAAtBM,KAAKyyF,eACPzyF,KAAKyyF,cAAcT,0BAGpBhyF,KAAKuP,MAAM8kF,SAAiBjjF,SAAS8uE,YAtOA,4CAyOxC,WAA8B,WAC5B/6E,IAAEC,OAAOpF,KAAKguF,qBAAqB,SAAA1hF,GAAM,OACvCA,EAAO2nF,YAAc,EAAKvB,mBAA4N,IAAxMvtF,IAAEm3D,UAAU,EAAKmxB,UAAU1/E,wBAAwB,SAAAhD,GAAM,OAAIA,EAAOumF,mBAAqBhlF,EAAOglF,kBAAoBvmF,EAAO6jF,gCAAkCtiF,EAAOsiF,sCA3O9K,wBA+OxC,SAAWlvF,GACTM,KAAKytF,UAAUz/E,8BAA8B1R,KAAKoD,EAAElE,MAE1B,MAAtBwE,KAAKyyF,eACPzyF,KAAKyyF,cAAcT,0BAGrBhyF,KAAK2zF,mCAtPiC,iCAyPxC,SAAoBj0F,GAClBM,KAAKue,SAAW7e,EAAEuH,YA1PoB,wBA6PxC,SAAWvH,GACT,IAAI7C,EAAS6C,EAAEooB,gBAAgBC,WAC3BlrB,EAAOmrB,SACThoB,KAAKs0F,eAhQ+B,wBAoQxC,WAAU,WACRt0F,KAAKue,SAASc,QACdrf,KAAKytF,UAAU3/E,eAAiB9N,KAAK4tF,uBAClCvuF,KAAI,SAAA8zF,GACH,IAAI17E,EAAgB,IAAIq4E,GAExB,OADAr4E,EAAc81E,cAAgB4F,EACvB17E,KAGX,IAAI4b,EAAUluB,IAAEihB,UAAUpmB,KAAKytF,WAa/B,GAXAztF,KAAKguF,oBACFpqF,QAAO,SAAAiB,GAAI,OAAIA,EAAKovF,YAAc,EAAKvB,oBACvC1jF,SAAQ,SAAAnK,GACP,IAAI0vF,EAAelhE,EAAQtlB,uBAAuBiE,MAAK,SAAAtU,GAAC,OAAIA,EAAEkxF,gCAAkC/pF,EAAK+pF,iCAEjG2F,IACFA,EAAa3F,mCAAgCvhF,EAC7CknF,EAAajD,iBAAmBzsF,EAAKysF,0BAIVjkF,GAA7BgmB,EAAQm5D,kBACGxsF,KAAKmtF,uBAAuBzuF,OAAO20B,GAAShtB,MAAK,SAAAguB,GAE5D,OADA,EAAKu7D,eACEv7D,KACN/tB,OAAM,SAAA+tB,GACP,EAAKzL,gBAAgByL,WAGVr0B,KAAKmtF,uBAAuBrwE,KAAKuW,EAAQm5D,kBAAmBn5D,GAAShtB,MAAK,SAAAguB,GAErF,OADA,EAAKu7D,eACEv7D,KACN/tB,OAAM,SAAA+tB,GACP,EAAKzL,gBAAgByL,QAtSa,6BA2ShC,SAAgBx3B,GACtB,IAAIiT,EAAU,kDACd,GAAIjT,GAAUA,EAAOiX,QAAS,CAC5BhE,EAAUjT,EAAOiX,QAEjB,IAAIhP,EAAQgL,EAAQkI,QAAQ,WACxBlT,GAAS,IACXgL,EAAUA,EAAQ0kF,UAAU,EAAG1vF,IAInC9E,KAAKy0F,iBAAiB3kF,KAtTgB,8BAyThC,SAAiBA,GACvBvJ,IAAO,CAAEuJ,UAASmI,SAAU,cAAgB,QAAS,OA1Tf,0BA6TxC,SAAavY,GAAM,WACjBsf,sBAAQ,mCAAD,OAAoChf,KAAKytF,UAAUxoF,KAAnD,KAA4D,WAChEoB,MAAK,SAAAxJ,GACAA,GAA8C,MAApC,EAAK4wF,UAAUjB,mBAC3B,EAAKW,uBAAuBpwE,OAAO,EAAK0wE,UAAUjB,mBAC/CnmF,KAAK,EAAKquF,iBACVpuF,MAAM,EAAKquF,wBAnUkB,6BAwUhC,SAAgB93F,GACtB0J,IAAO,CAAEuJ,QAAS,GAAF,OAAK9P,KAAKytF,UAAUxoF,KAApB,0BAAkDgT,SAAU,cAAgB,UAAW,KACvGjY,KAAK4vF,iBA1UiC,+BA6UhC,SAAkB/yF,GACxBmD,KAAKy0F,iBAAiB,uDA9UgB,0BAiVxC,WACEz0F,KAAKie,QAAQ3hB,KAAK,CAAEiE,KAAM,yBAlVY,qBAqVxC,WACE4R,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,KAvVf,uBA0VxC,WACEr3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KA5VlB,uBA+VxC,SAAU9pC,GACM,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YACvCjqC,EAAEkqC,iBACFlqC,EAAEo6B,qBAlWkC,qBAsWxC,SAAQp6B,GACQ,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YACvCjqC,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKmuF,oBA1W+B,4BA8WxC,WACMnuF,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,kBAjXsB,6BAuXxC,SAAgBta,GACdM,KAAK6yF,eAAiBnzF,EAAEuH,YAxXc,6BA2XxC,WACMjH,KAAK6yF,gBACP7yF,KAAK6yF,eAAe+B,YA7XgB,kCAwYxC,SAAqBl1F,GACnBM,KAAK8yF,kBAAoBpzF,EAAElE,KAAKozF,8BAChC5uF,KAAK+yF,oBAAsBrzF,EAAElE,KAAK63F,wBAElCrzF,KAAKgzF,kBAAL,gBAA6BtzF,EAAElE,KAAK2zF,0BACpCnvF,KAAKizF,WAAY,IA7YqB,yBAgZxC,SAAYvzF,GAAM,WAOhB,GANAM,KAAKyuF,8BAA8BoG,YAAY,MAC/C70F,KAAKyuF,8BAA8B7qF,OAAO,MAC1C5D,KAAKyuF,8BAA8B99E,QAI9B3Q,KAAKizF,UAAW,CACnB,IAAIloF,EAAS/K,KAAKytF,UAAU1/E,uBAAuBiE,MACjD,SAAAtU,GAAC,OAAIA,EAAE21F,0BAA4B,EAAKN,uBAEtChoF,IACFA,EAAOokF,yBAA2BnvF,KAAKgzF,mBAG3ChzF,KAAKizF,WAAY,IA/ZqB,4BAkaxC,SAAevzF,GAEbA,EAAElE,KAAK2zF,yBAAyB7yF,KAAK,IAErC0D,KAAK+zF,oBAtaiC,+BAyaxC,SAAkBv4F,EAAWsJ,GAE3BtJ,EAAKA,KAAK2zF,yBAAyBjyF,OAAO4H,EAAO,GAEjDtJ,EAAKq4F,SAASr4F,EAAKA,KAAK2zF,0BAExBnvF,KAAK+zF,oBA/aiC,0CAkbxC,SAA6Bv4F,EAAWsJ,GAAa,WACnD,MAAO,CACL,CACElH,KAAM,SACN8O,QAAS,CACP4uB,KAAM,QACNzZ,QAAS,WACP,EAAKizE,kBAAkBt5F,EAAMsJ,MAInC,CACElH,KAAM,OACN8O,QAAS,CACP4uB,KAAM,eACNy5D,oBAAoB,EACpBC,mBAAmB,EACnBC,mBAAmB,EACnB/9D,YAAa,CAAE12B,MAAO,4BApcU,gCA0cxC,SAAmBnC,EAAY7C,EAAWsJ,GAExCtJ,EAAKA,KAAK2zF,yBAAyBrqF,GAASzG,EAAMA,MAElD7C,EAAKq4F,SAASr4F,EAAKA,KAAK2zF,0BACxBnvF,KAAK+zF,oBA/ciC,2BAkdxC,SAAcr0F,EAAQlE,GACpB,IAAI05F,EAAY15F,EAAKA,KAAK2zF,yBAAyBzvF,EAAEy1F,WACrD35F,EAAKA,KAAK2zF,yBAAyBjyF,OAAOwC,EAAEy1F,UAAW,GACvD35F,EAAKA,KAAK2zF,yBAAyBjyF,OAAOwC,EAAE01F,QAAS,EAAGF,GAExD15F,EAAKq4F,SAASr4F,EAAKA,KAAK2zF,0BACxBnvF,KAAK+zF,sBAxdiC,GAASlxF,cAA9B2vF,GAAqB,gBA3BzCrrF,eAAU,CACTL,WAAY,CACViS,yBACAib,0BACAzU,oBACA5G,wBACAiH,oCACA9G,0BACA4Q,4BACAjK,oBACAuO,4BACAxO,oCACAO,wBACAT,sBACAtG,wBACAJ,wBACAkR,0BACAH,4BACAQ,wBACA9Q,8BACAg8E,4BACAnrE,8BACArK,gCACAF,8BACAkxE,oCAGiB2B,cC/R8X,MCS/Y,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAIzyF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,qBAAqBnH,EAAG,+BAA+B,IACrL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAACe,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIu1F,+BAA+Bn1F,EAAG,YAAY,CAAC+H,IAAI,0BAA0B5H,MAAM,CAAC,uBAAuBP,EAAIw1F,2BAA2B,oBAAoB,CAAE92D,SAAS,EAAOC,QAAQ,EAAMC,WAAW,IAAS79B,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,uBAAuBqC,GAAG,SAASkH,GAC/d,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,QAAUP,EAAIy1F,mBAAmBh6F,GAAM,SAAWuE,EAAI01F,mBAAmB,KAAO,SAAS,KAAO,YAAYztF,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI2oB,wBAAwBltB,QAAW,QAAQ,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,gBAAe,KAAQH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,MAAMH,EAAG,WAAW,CAACG,MAAM,CAAC,qBAAqB,CAAC,GAAI,GAAI,GAAI,KAAK,2BAA0B,EAAK,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,aAAaH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,QAAU,SAAS,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,QAAU,QAAQ,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,QAAU,QAAQ,YAAY,SAAS,uBAAuBP,EAAI21F,aAAa,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOv1F,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAW,QAAU,cAAc,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,QAAU,eAAe,YAAY,WAAW,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,SAAS,YAAY,SAAS,uBAAuBP,EAAI41F,UAAU,mBAAkB,EAAK,iBAAgB,EAAM,MAAQ,OAAOx1F,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,IAAI,gBAAgB,2BAA2B,IAAI,IAChvD,GAAkB,G,sdCyHtB,IAAqBs1F,GAAuB,4CAa1C,iDACE,eAbF,EAAArmF,MAEM,GAGE,EAAAG,uBAAiD,IAAIhC,GAC7D,EAAA4O,aAAuB,EAwEf,EAAAm5E,oBAA8B,EA/DpC,EAAKF,2BAA6B,CAChC52F,IAAK,oBACLgS,KAAM,SAAC4L,GASL,YAR0BlP,IAAvBkP,EAAY3Y,SACX2Y,EAAY3Y,OAAS,IAErB,EAAK0Y,cACP,EAAKA,aAAc,EACnB,EAAKu5E,oBAGA,EAAKnmF,uBAAuB4O,OAAO/B,KAdhD,EAb0C,6CAS1C,WACM,OAAQvc,KAAKuP,MAAMumF,wBAAgCvmF,MAAMyhC,WAAW5/B,WAVhC,0BAgC1C,SAAakuC,GACX,OAAwB,MAAjBA,EAAQl9B,MAAgB,GAAKk9B,EAAQl9B,MAAM5U,YAjCV,uBAoC1C,SAAU8xC,GACR,IAAIziD,EAAS,GACb,OAAQyiD,EAAQpoC,YAEd,KAAK9P,EAA8B2uF,QACjCl5F,EAASwK,GAAoC0uF,QAC7C,MACF,KAAK3uF,EAA8B4uF,UACjCn5F,EAASwK,GAAoC2uF,UAC7C,MACF,KAAK5uF,EAA8B+P,SACjCta,EAASwK,GAAoC8P,SAC7C,MACF,KAAK/P,EAA8B6uF,QACjCp5F,EAASwK,GAAoC4uF,QAC7C,MACF,KAAK7uF,EAA8B8uF,YACjCr5F,EAASwK,GAAoC6uF,YAC7C,MACF,KAAK9uF,EAA8B+uF,WACjCt5F,EAASwK,GAAoC8uF,WAC7C,MACF,KAAK/uF,EAA8BgvF,SACjCv5F,EAASwK,GAAoC+uF,SAC7C,MACF,KAAKhvF,EAA8BkQ,OACjCza,EAASwK,GAAoCiQ,OAC7C,MACF,KAAKlQ,EAA8BivF,8BACjCx5F,EAASwK,GAAoCgvF,8BAC7C,MACF,KAAKjvF,EAA8BkvF,kBACjCz5F,EAASwK,GAAoCivF,kBAC7C,MACF,KAAKlvF,EAA8BgQ,qBACjCva,EAASwK,GAAoC+P,qBAC7C,MACF,QACEva,EAAS,iBAEb,OAAOA,IA5EiC,8FAgFlC,WAA8ByiD,GAA9B,wFAENt/C,KAAKy1F,oBAAqB,EAC1Bn2C,EAAQ9jD,KAAK0b,WAAa,EAHpB,SAIAlX,KAAK0P,uBAAuB6mF,OAAOj3C,EAAQ9jD,KAAKmS,mBAJhD,OAKN3N,KAAKs1F,8BACLt1F,KAAKy1F,oBAAqB,EANpB,gDAhFkC,4JAyFlC,8FACNz1F,KAAKue,SAAS2hE,UADR,gDAzFkC,yFA6FlC,SAAmB1kF,GACzB,OAAOA,EAAKA,KAAK0b,aAAe9P,EAA8BivF,+BAC5D76F,EAAKA,KAAK0b,aAAe9P,EAA8BkvF,oBA/FjB,8BAkGlC,WACNt2F,KAAKue,SAASugC,aAAa,cAAe,YAAa,YAnGf,GAASj8C,cAAhC+yF,GAAuB,gBAf3CzuF,gBAAU,CACTL,WAAY,CACV0R,uBACAkR,4BACA9Q,wBACAD,wBACAkR,8BACA/Q,0BACAgH,oCACAmO,8BACAzO,oCACAQ,sBACAD,4BAGiB61E,cC5HkZ,MCQna,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBY,GAAc,yIAAS3zF,cAAvB2zF,GAAc,gBANlCrvF,eAAU,CACTL,WAAY,CACViS,yBACA68E,+BAGiBY,cCnBqX,MCOtY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIz2F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,2BAA2BnH,EAAG,0BAA0B,IACtL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,KAAOP,EAAI02F,gBAAgB,QAAU12F,EAAI+U,eAAe3U,EAAG,MAAM,CAACe,YAAY,cAAciK,YAAY,CAAC,YAAY,UAAU,CAAChL,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,sBAAsBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,2BAA0B,EAAK,kBAAiB,EAAK,WAAY,EAAM,MAAQ3L,EAAI22F,YAAY1uF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI22F,WAAWzuF,OAAY,OAAO9H,EAAG,MAAM,CAACA,EAAG,YAAY,CAACgL,YAAY,CAAC,eAAe,QAAQ7K,MAAM,CAAC,KAAO,SAAS,KAAO,UAAU0H,GAAG,CAAC,MAAQjI,EAAIqL,iBAAiBjL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,QAAQ0H,GAAG,CAAC,MAAQjI,EAAI42F,gBAAgB,IAAI,IACv3B,GAAkB,G,sdCyCtB,IAAqBC,GAAmB,4CAOtC,iDACE,eAPM,EAAAlrF,QAAgD,GAChD,EAAAgrF,WAA0B,GAC1B,EAAAtwF,YAA2B,IAAI3C,EAC/B,EAAAgzF,gBAA0B,GAC1B,EAAA3hF,YAAsB,GAI5B,EAAK6I,WAFP,EAPsC,wGAYtC,6GACMrN,EAAgB,IAAI/E,GAD1B,SAEsB+E,EAAc7E,SAFpC,cAEMC,EAFN,OAGE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAJ1C,SAO0B7L,KAAKoG,YAAYywF,qBAP3C,OAOE72F,KAAK02F,WAPP,uDAZsC,6IAsBtC,8GAC0B12F,KAAKoG,YAAYywF,qBAD3C,OACE72F,KAAK02F,WADP,uDAtBsC,kFA0BtC,WAAW,WACT,OAAO12F,KAAKoG,YAAY0wF,qBAAqB92F,KAAK02F,YAC/CrwF,MAAK,SAAAI,GAIJ,OAHA,EAAKgwF,gBAAkB,UACvB,EAAK3hF,YAAc,8BACnB,EAAKiiF,gBACE,KAERzwF,OAAM,SAAA+N,GAGL,OAFA,EAAKoiF,gBAAkB,QACvB,EAAK3hF,YAAc,mDACZ,OArCyB,0BAyCtC,WAAY,WACVxC,YAAW,WACT,EAAKmkF,gBAAkB,GACvB,EAAK3hF,YAAc,KAClB,SA7CiC,GAASjS,cAA5B+zF,GAAmB,gBARvCzvF,eAAU,CACTL,WAAY,CACVqjB,wBACAvR,wBACAQ,gCACAV,mCAGiBk+E,cC1C6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBI,GAAY,yIAASn0F,cAArBm0F,GAAY,gBANhC7vF,eAAU,CACTL,WAAY,CACViS,yBACA69E,2BAGiBI,cCnBmX,MCOpY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIj3F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoB,GAAGnH,EAAG,gBAAgB,CAACe,YAAY,uBAAuBZ,MAAM,CAAC,cAAcP,EAAIk3F,WAAW,MAAQl3F,EAAIm3F,YAAY,eAAe,OAAO,aAAa,QAAQ,eAAe,YAAYlvF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIm3F,YAAYjvF,GAAQ,aAAelI,EAAIo3F,uBAAuB,GAAIp3F,EAAS,MAAEI,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQP,EAAIq3F,OAAOpvF,GAAG,CAAC,sBAAwBjI,EAAIs3F,yBAAyBt3F,EAAIyI,MAAM,IAC3oB,GAAkB,GCDlB,GAAS,WAAa,IAAIzI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,aAAanH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,qBAAqBvH,EAAIwH,GAAGxH,EAAIq3F,MAAMxrF,YAAY,sBAAsBzL,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,iBAAiBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACe,YAAY,cAAc,CAACf,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIq3F,MAAMvlF,cAAc1R,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,QAAQ0H,GAAG,CAAC,MAAQjI,EAAIu3F,gBAAgB,SAASn3F,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,oBAAoBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,qBAAqBvH,EAAIwH,GAAGxH,EAAIq3F,MAAMG,aAAa,sBAAsBp3F,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,uBAAuBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,qBAAqBvH,EAAIwH,GAAGxH,EAAIq3F,MAAMI,eAAe,sBAAsBr3F,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,oBAAoB,SAAWP,EAAI03F,oBAAoBzvF,GAAG,CAAC,MAAQjI,EAAI23F,mBAAmBv3F,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAI03F,uBAAuB,GAAGt3F,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,0BAA0B,SAAWP,EAAI43F,qBAAqB3vF,GAAG,CAAC,MAAQjI,EAAI63F,oBAAoBz3F,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAI43F,wBAAwB,GAAGx3F,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,wBAAwB,SAAWP,EAAI83F,wBAAwB7vF,GAAG,CAAC,MAAQjI,EAAI+3F,uBAAuB33F,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAI83F,2BAA2B,GAAG13F,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,qBAAqB0H,GAAG,CAAC,MAAQjI,EAAIg4F,wBAAwB,OAAuC,MAA/Bh4F,EAAIq3F,MAAMY,mBAA8Bj4F,EAAIk4F,eAAyBl4F,EAAIyI,KAAbrI,EAAG,MAAeA,EAAG,MAAM,CAACe,YAAY,uBAAuB,CAACf,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,iBAAiB,QAAyC,MAA/BP,EAAIq3F,MAAMY,oBAA8Bj4F,EAAIk4F,iBAAmBl4F,EAAIm4F,iBAAiBlwF,GAAG,CAAC,MAAQjI,EAAIo4F,iBAAiBh4F,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAIm4F,oBAAoB,OAAO/3F,EAAG,MAAM,CAAEJ,EAAIq3F,MAAMgB,aAAer4F,EAAIq3F,MAAMgB,YAAYp8F,OAAQmE,EAAG,sBAAsB,CAACG,MAAM,CAAC,YAAcP,EAAIq3F,MAAMgB,eAAer4F,EAAIyI,MAAM,GAAGrI,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIq3F,MAAM,QAAUr3F,EAAIs4F,iBAAiBrwF,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIs4F,gBAAgBpwF,GAAQ,OAASlI,EAAIu4F,oBAAoBn4F,EAAG,oBAAoB,CAACG,MAAM,CAAC,WAAaP,EAAIw4F,uBAAuB,MAAQx4F,EAAIq3F,OAAOpvF,GAAG,CAAC,sBAAwBjI,EAAIs3F,0BAA0B,IACt+F,GAAkB,GCDlB,GAAS,WAAa,IAAIt3F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,+BAA+B,CAACH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAc,CAAEE,MAAO,kCAAmC,YAAY,QAAQ,MAAQ,QAAQ,aAAa,QAAQ,OAAS,QAAQ,SAAW,CAAEqJ,GAAI,MAAOC,GAAI,MAAOC,GAAI,+BAAgC,QAAUhK,EAAIy4F,gBAAgB,QAAU,cAAcr4F,EAAG,YAAY,CAAC+H,IAAI,4BAA4B5H,MAAM,CAAC,uBAAuBP,EAAI04F,iBAAiB,OAAS,CAAEnsE,SAAS,GAAQ,aAAa,CAAEA,SAAS,IAAStkB,GAAG,CAAC,eAAejI,EAAI+Z,YAAY,wBAAwB/Z,EAAIia,cAAclZ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gCAAgCqC,GAAG,SAASkH,GACpuB,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,kCAAkC,CAAEP,EAAI24F,kBAAkBl9F,EAAKA,MAAO2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI44F,kBAAkBn9F,EAAKA,KAAKsW,QAAStW,EAAKA,KAAKo9F,iBAAiB,CAAC74F,EAAIuH,GAAG,aAAavH,EAAIyI,MAAM,QAAQ,CAACrI,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,WAAW,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,WAAW,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,WAAW,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,WAAW,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,mBAAkB,EAAM,gBAAgB,gCAAgC,iBAAgB,MAAU,IAAI,IAC/hC,GAAkB,GCCTu4F,GAAb,WAGE,oCACE74F,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJnD,gHAOS,WAAuBuL,EAAoBoqF,GAA3C,iGACQ94F,KAAK0D,OAAOiL,QAAQxK,oBAAeC,KAAnC,2BAA6DsK,EAA7D,uBAAgGoqF,GADxG,wFAPT,mE,sdC2DA,IAAqBC,GAAiB,4CAAtC,iD,0BACE,EAAAxpF,MAEI,GAKJ,EAAAypF,kBAAiD,EAAKC,YAEtD,EAAAzoF,aAA6B,IAAIjC,GACjC,EAAA2qF,kBAAuC,IAAIL,GAE3C,EAAAL,iBAA2B,EAb7B,EAAsC,+CAepC,WACE,OAAQx4F,KAAKuP,MAAM4pF,0BAAkC5pF,MAAMyhC,WAAW5/B,WAhBpC,4BAmBpC,WAA4B,WAC1B,MAAO,CACLV,SAAU,MACV/R,IAAK,UACLgS,KAAM,WAAQ,OAAO,EAAKqoF,mBAC1Bn8E,OAAQ,SAACle,EAAK+d,GACZ,OAAO,EAAK08E,iBAAiBz6F,EAAK+d,GAC/BpW,OAAM,SAAC5G,GACN,GAAGA,GAAKA,EAAEoU,QACR,MAAMpU,EAAEoU,QAEV,KAAM,4BA9BoB,uFAoCpC,WAAuBlH,EAAeysF,GAAtC,8FAGMC,EAAkBt5F,KAAKi5F,YAAY38B,WAAU,SAAAi9B,GAAE,OAAIA,EAAGX,cAAgBS,EAAcT,gBACpFY,EAAiBx5F,KAAKi5F,YAAYK,EAAkB,GACpDG,EAAiBz5F,KAAKi5F,YAAYK,EAAkB,KAEpDE,GAAkBA,EAAejR,cAAgB8Q,EAAc9Q,eAPrE,uBAQIn1D,KAAOjL,MAAM,4FAA6F,SAR9G,+BAWMsxE,GAAkBA,EAAelR,cAAgB8Q,EAAc9Q,eAXrE,uBAYIn1D,KAAOjL,MAAM,yFAA0F,SAZ3G,iCAiBEnoB,KAAKi5F,YAAYK,GAAiB/Q,cAAgB8Q,EAAc9Q,cAjBlE,kBAkBSvoF,KAAKk5F,kBAAkBE,iBAAiBC,EAAcT,aAAcS,IAlB7E,iDApCoC,qFAyDpC,SAAY35F,GAEVA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,WA3DT,0BA8DpC,WACM3V,KAAKgxC,YACPhxC,KAAKgxC,WAAWh3B,iBAhEgB,wFAoEpC,WAAwBpN,EAAe8B,GAAvC,wFACE1O,KAAKw4F,iBAAkB,EADzB,KAEQx4F,KAAKwQ,aAAamoF,kBAAkBjqF,GAF5C,SAEsE1O,KAAK05F,uBAF3E,wCAE0DpzF,MAF1D,uCAGiCtG,KAAKwQ,aAAampF,eAAe/sF,GAHlE,cAGE5M,KAAKg5F,kBAHP,iBAIQh5F,KAAKgxC,WAAWkvC,SAAQ,GAJhC,QAKElgF,KAAKw4F,iBAAkB,EALzB,iDApEoC,yJA4EpC,WAA6BnkF,GAA7B,8FACMvE,EAAU,+CACdA,GAAWuE,EAAMP,QAAU,KAAOO,EAAMP,QAAU,IAFpD,SAGQsf,KAAOjL,MAAMrY,EAAS,SAH9B,2CA5EoC,yFAkFpC,SAAkBgpF,GAEhB,IAAIj8F,GAAS,EASb,OAPgC,MAA5Bi8F,EAAWc,eACZd,EAAWe,kBAAoBzS,GAAmB0S,cACjDhB,EAAWe,kBAAoBzS,GAAmB2S,aAEpDl9F,GAAS,GAGJA,MA7F2B,GAASgG,cAM7Cb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,mCANmBgxD,GAAiB,gBATrC5xF,eAAU,CACTL,WAAY,CACV0R,uBACAG,wBACAC,wBACAC,8BACAC,8BAGiBigF,cC/D2Y,MCO5Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIh5F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,IAAI,cAAa,EAAK,MAAQ,oBAAoB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAIi6F,aAAa,CAACj6F,EAAIuH,GAAG,gBAAgBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIk6F,cAAcjyF,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIk6F,aAAahyF,MAAW9H,EAAG,eAAe,CAAC+H,IAAI,cAAc5H,MAAM,CAAC,GAAK,WAAW,MAAQP,EAAIm6F,cAAc,wBAAwB,YAAY,iBAAiB,WAAW,0BAAyB,EAAK,mBAAkB,KAAQ/5F,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,cAAekE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAIi6F,YAAa,SAAW,QAAQ,QAAU,YAAY75F,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAImiB,cAAe,SAAW,QAAQ,QAAU,aAAa,IAAI,IAC1lC,GAAkB,G,meCmEtB,IAAqBi4E,GAAe,4CAmJlC,iDACE,eAnJF,EAAA5qF,MAEI,GA2BJ,EAAA2qF,cAA4B,GAE5B,EAAAD,cAAwB,EAmHxB,EAnJkC,gHAYlC,WAAuB57F,EAAgB6nB,GAAvC,iFACM7nB,GACF2B,KAAK2d,WAFT,gDAZkC,qFAkBlC,WACE,OAAO3d,KAAKgmB,YAnBoB,IAsBlC,SAAkB3nB,GAChB2B,KAAKkiB,iBAvB2B,oBA0BlC,WACE,OAAQliB,KAAKuP,MAAM6qF,YAAoBhpF,WA3BP,0BAkClC,WACEpR,KAAKimB,MAAM,yBACXjmB,KAAKk6F,cAAgB,KApCW,0BAuClC,SAAaG,GACX,IAAIC,EAAmB,GAEvBD,EAAmBlkF,MAAMnH,SAAQ,SAAAoH,GAC/B,IAAImkF,EAA2B,GAC/BnkF,EAAKokF,cAAcxrF,SAAQ,SAAAyrF,GACzBF,EAAkBj+F,KAAK,CACrBkD,GAAIi7F,EAAaC,4BAA8BD,EAAahtF,QAAUgtF,EAAaj/B,cACnF7vD,KAAM,GAAF,OAAK8uF,EAAajtF,UAAlB,aAAgCitF,EAAaj/B,eACjD3rD,KAAM,UACNpC,QAASgtF,EAAahtF,QACtB+tD,cAAei/B,EAAaj/B,cAC5Bk/B,4BAA6BD,EAAaC,iCAI9CJ,EAAUh+F,KAAK,CACbkD,GAAI4W,EAAKukF,sBACThvF,KAAMyK,EAAKM,SACXiE,MAAO4/E,EACP1qF,KAAM,YAIV7P,KAAKk6F,cAAgB,CACnB,CACE16F,GAAI66F,EAAmBvoF,QACvBnG,KAAM0uF,EAAmBxoF,UACzB8I,MAAO2/E,EACPzqF,KAAM,YApEsB,wBAyElC,WAAU,WACR,GAAI7P,KAAKuP,MAAM6qF,YAAa,CAC1B,IAAIttE,EAAgB9sB,KAAKuP,MAAM6qF,YAAoBhpF,SAASwpF,uBAE5D,GAA4B,IAAxB9tE,EAAa9wB,OAEf,YADAmsB,oBAAM,kCAAmC,SAI3CnJ,sBAAQ,sDAAuD,kBAC5D3Y,MAAK,SAAAxJ,GACJ,GAAIA,EAAQ,CACV,IAAIg+F,EAAc,EAAKtrF,MAAM6qF,YAAoBhpF,SAAS0pF,aAAaC,eACnEC,EAAgBH,EAAWj3F,QAAO,SAAC9H,GAAD,OAAYA,EAAEm/F,eAAe9wD,eAAiF98B,GAArEyf,EAAa9a,MAAK,SAACkpF,GAAD,OAAeA,GAAKp/F,EAAEm/F,eAAe3sB,gBAElI+rB,EAAgD,CAClDxuF,SAAU,EAAKurF,MAAMvrF,SACrBiG,aAASzE,EACT8tF,cAAe,GACfC,sBAAuB,IAGzB,GAAItuE,EAAapiB,MAAK,SAACwwF,GAAD,OAAeA,GAAK,EAAK9D,MAAMtlF,WACnDuoF,EAAmBvoF,QAAU,EAAKslF,MAAMtlF,YAErC,CACH,IAAIwoF,EAAYU,EAAcp3F,QAAO,SAAC9H,GAAD,MAAsB,QAAVA,EAAE+T,QACnDyqF,EAAUtrF,SAAQ,SAACoH,GACjB,IAAIilF,EAAkC,CACpCV,sBAAuBvkF,EAAK5W,GAC5BkX,SAAUN,EAAKzK,KACf6uF,cAAe,IAEjBH,EAAmBc,cAAc7+F,KAAK++F,MAGxC,IAAIC,EAAeN,EAAcp3F,QAAO,SAAC9H,GAAD,MAAsB,WAAVA,EAAE+T,QACtDyrF,EAAatsF,SAAQ,SAACusF,GACpB,IAAIC,EAA6C,CAC/C/tF,QAAS8tF,EAAQ9tF,QACjBD,UAAW,GACXguD,cAAe+/B,EAAQ//B,cACvBk/B,4BAA6Ba,EAAQb,6BAEvCL,EAAmBe,sBAAsB9+F,KAAKk/F,MAIlD,IAAIhrF,EAAe,IAAIjC,GACvB,EAAK0rF,cAAe,EAEpBzpF,EAAairF,gBAAgBpB,GAC1Bh0F,MAAK,SAAAxJ,GACJ,EAAKqlB,eACL3b,IAAO,mCAAoC,UAAW,QAEvDD,OAAM,SAAAmtB,GACLtL,oBAAM,sDAAuD,oBAE9DlU,SAAQ,WACP,EAAKgmF,cAAe,YArIA,+EA6IlC,kHACMzpF,EAAe,IAAIjC,GADzB,SAEkCiC,EAAakrF,uBAAuB17F,KAAKo3F,MAAMtlF,SAC5EzL,MAAK,SAAAxJ,GAAM,OAAI,EAAK8+F,aAAa9+F,MAHtC,OAEEmD,KAAKq6F,mBAFP,uDA7IkC,8DAASx3F,cAM3Cb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAGAznB,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,6BAGA/lC,gBADCuW,gBAAM,eACP,sCAZmB4hF,GAAe,gBAZnChzF,eAAU,CACTL,WAAY,CACViyF,qBACAngF,wBACAoc,sCACAnc,8BACAyzE,4BACAt4D,eACA/J,kCACAD,qBAGiBmwE,cCpEyY,MCO1Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIp6F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQP,EAAIW,MAAM,QAAUX,EAAIgsB,QAAQ,MAAQ,MAAM,OAAS,OAAO/jB,GAAG,CAAC,QAAUjI,EAAIomC,UAAU,OAASpmC,EAAI2tD,SAAS,OAAS3tD,EAAImtD,WAAW,CAAC/sD,EAAG,sBAAsB,CAAC+H,IAAInI,EAAI67F,uBAAuB,CAACz7F,EAAG,cAAc,CAACG,MAAM,CAAC,aAAa,IAAI,YAAc,eAAe,MAAQP,EAAI87F,UAAU,qBAAqB,SAAS7zF,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI87F,UAAU5zF,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,oBAAoBA,EAAG,gBAAgB,CAACG,MAAM,CAAC,sBAAqB,EAAK,sBAAsBP,EAAI+7F,2BAA2B,IAAI,IAAI,GAAG37F,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAI+tD,qBAAqB3tD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIguD,wBAAwB,IAC34B,GAAkB,G,meCgEtB,IAAqBguC,GAAW,4CAAhC,iD,0BACmB,EAAAvrF,aAA6B,IAAIjC,GACzC,EAAAqtF,sBAAgC,kBACzC,EAAAC,UAA2B,KACnB,EAAAG,wBAAkC,EAJ5C,EAAgC,0CAY9B,WACE,MAAO,gBAAP,OAAuBh8F,KAAKo3F,MAAMvlF,aAbN,6BAgB9B,WACE,MAAO,CACLlG,KAAM,OACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKmuD,aACd7pB,mBAAmB,KAtBO,+BA0B9B,WACE,MAAO,CACL34B,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKouD,kBA/BY,2BAmC9B,WACE,IAAIroC,EAAqB/lB,KAAKuP,MAAMvP,KAAK47F,uBACzC,GAA0B,MAAtB71E,EACF,OAAQA,EAAyC3U,WAtCvB,qBA4C9B,WACEe,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,KA9CzB,uBAiD9B,WACEr3B,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KAnD5B,oCAsD9B,SAAuB9rB,GACrB,GAAI1d,KAAKg8F,wBAA0Bt+E,EAAOrf,QAAU2B,KAAKo3F,MAAMvlF,UAC7D,OAAOnN,QAAQ5E,QAAQ,CACrBkoB,SAAS,EACTlY,QAAS,KAIb,IAAI7C,EAA4C,CAC9CpB,SAAU7L,KAAKo3F,MAAMvrF,SACrBgG,UAAW6L,EAAOrf,OAGpB,OAAO2B,KAAKwQ,aAAayrF,kBAAkBhvF,GACxC5G,MAAK,SAAAxJ,GACJ,MAAO,CACLmrB,QAASnrB,EAAOq/F,QAChBpsF,QAASjT,EAAOiX,YAGnBxN,OAAM,SAAAmtB,GACL,MAAO,CACLzL,SAAS,EACTlY,QAAS,oDA7Ea,0BAkFtB,WAAY,WAClB,GAAI9P,KAAK8nB,gBAAiB,CACxB9nB,KAAKg8F,wBAAyB,EAE9B,IAAIn/F,EAASmD,KAAK8nB,gBAAgBC,WACZ,YAAlBlrB,EAAOq1B,OACTr1B,EAAO05C,SAASlwC,MAAK,SAACorF,IACa,IAA7BA,EAAiBzpE,SACnB,EAAKm0E,yBAGmB,IAAnBt/F,EAAOmrB,SAChBhoB,KAAKm8F,qBAGPn8F,KAAKg8F,wBAAyB,OAE9Bh8F,KAAKm8F,uBAnGqB,gCAuGtB,WACNn8F,KAAKyhC,OACLzhC,KAAKuuD,UAzGuB,4BA4GtB,WACNvuD,KAAKuuD,UA7GuB,kBAgHtB,WACN,IAAI6tC,GAAc,EAOlB,GALsB,MAAlBp8F,KAAK67F,WAAqB77F,KAAK67F,YAAc77F,KAAKo3F,MAAMvlF,YAC1D7R,KAAKo3F,MAAMvlF,UAAY7R,KAAK67F,UAC5BO,GAAc,GAGZA,EAAa,CACf,IAAI5gG,EAAiB,CACnBsW,QAAS9R,KAAKo3F,MAAMtlF,QACpBD,UAAW7R,KAAKo3F,MAAMvlF,UACtBwqF,YAAar8F,KAAKo3F,MAAMiF,aAG1Br8F,KAAKwQ,aAAa8rF,YAAYt8F,KAAKo3F,MAAMtlF,QAAStW,MA/HxB,uBAmI9B,WACEwE,KAAK8xF,eApIuB,sBAuI9B,WACE9xF,KAAKuuD,UAxIuB,sBA2I9B,WACEvuD,KAAK4T,UA5IuB,wBA+ItB,WACN5T,KAAK67F,UAAY77F,KAAKo3F,MAAMvlF,UAC5B7R,KAAKg8F,wBAAyB,IAjJF,mBAoJtB,WACNh8F,KAAK67F,UAAY,KACjB77F,KAAKg8F,wBAAyB,IAtJF,mBAyJtB,WACNh8F,KAAKimB,MAAM,YA1JiB,uBA6JtB,SAAUvmB,GACZM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,qBAhKwB,qBAoKtB,SAAQp6B,GACVM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKmuD,kBAxKqB,4BA4KtB,SAAezuD,GACrB,MAAiB,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,cA7KhB,GAAS9mC,cAOvCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,6BAGA/lC,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAVmBg0D,GAAW,gBAX/B50F,gBAAU,CACTL,WAAY,CACV6Y,8BACAL,sBACAM,oCACAkK,0BACAG,kCACAG,0CACAF,kCAGiB6xE,cCjEoY,MCOrZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCsGf,IAAqBQ,GAAY,4CAAjC,iD,0BACE,EAAA/rF,aAA6B,IAAIjC,GACjC,EAAA8pF,iBAA2B,EAK3B,EAAAZ,oBAA8B,EAS9B,EAAAE,qBAA+B,EAS/B,EAAAE,wBAAkC,EASlC,EAAAI,gBAA0B,EAC1B,EAAAC,iBAA2B,EAS3B,EAAAK,wBAAkC,EA5CpC,EAAiC,+GAQ/B,qGACEv4F,KAAKy3F,oBAAqB,EAD5B,KAEQz3F,KAAKwQ,aAAaknF,gBAAgB13F,KAAKo3F,MAAMtlF,SAChDzL,KAAKrG,KAAKw8F,wBAHf,SAIiBx8F,KAAKy8F,qBAJtB,wCAIKn2F,MAJL,uBAKEtG,KAAKy3F,oBAAqB,EAL5B,gDAR+B,gJAiB/B,qGACEz3F,KAAK23F,qBAAsB,EAD7B,KAEQ33F,KAAKwQ,aAAaonF,iBAAiB53F,KAAKo3F,MAAMtlF,SACjDzL,KAAKrG,KAAK08F,yBAHf,SAIiB18F,KAAK28F,sBAJtB,wCAIKr2F,MAJL,uBAKEtG,KAAK23F,qBAAsB,EAL7B,gDAjB+B,mJA0B/B,qGACE33F,KAAK63F,wBAAyB,EADhC,KAEQ73F,KAAKwQ,aAAasnF,oBAAoB93F,KAAKo3F,MAAMtlF,SACpDzL,KAAKrG,KAAK48F,4BAHf,SAIiB58F,KAAK68F,yBAJtB,wCAIKv2F,MAJL,uBAKEtG,KAAK63F,wBAAyB,EALhC,gDA1B+B,6IAoC/B,gHACE73F,KAAKk4F,iBAAkB,EADzB,KAEQl4F,KAAKwQ,aAAa2nF,cAAcn4F,KAAKo3F,MAAMtlF,SAC9CzL,MAAK,WAAQ,EAAKy2F,YAAY,KAAM,gCAAiC,EAAK7E,gBAAiB,KAHhG,SAIiBj4F,KAAK+8F,mBAJtB,wCAIKz2F,MAJL,uBAKEtG,KAAKk4F,iBAAkB,EALzB,gDApC+B,0FA6C/B,WACEl4F,KAAKu4F,wBAAyB,IA9CD,mCAiD/B,WACEv4F,KAAKu4F,wBAAyB,EAC9Bv4F,KAAKimB,MAAM,2BAnDkB,yBAsD/B,WACEjmB,KAAKq4F,iBAAkB,IAvDM,8BA0D/B,WACEr4F,KAAKq4F,iBAAkB,IA3DM,oCA8D/B,WACE9xF,IAAO,sBAAuB,UAAW,OA/DZ,qCAkE/B,WACEA,IAAO,4BAA6B,UAAW,OAnElB,wCAsE/B,WACEA,IAAO,0BAA2B,UAAW,OAvEhB,2FA0E/B,WAA2B8N,GAA3B,iGACQrU,KAAK88F,YAAYzoF,EAAO,0CADhC,gDA1E+B,sJA8E/B,WAA4BA,GAA5B,iGACQrU,KAAK88F,YAAYzoF,EAAO,gDADhC,gDA9E+B,yJAkF/B,WAA+BA,GAA/B,iGACQrU,KAAK88F,YAAYzoF,EAAO,8CADhC,gDAlF+B,mJAsF/B,WAAyBA,GAAzB,iGACQrU,KAAK88F,YAAYzoF,EAAO,0CADhC,gDAtF+B,4IA0F/B,WAAkBA,EAAYvE,GAA9B,8FACMD,EAAOwE,EAAQ,QAAU,UAEzBA,IACFvE,GAAWuE,EAAMP,QAAU,KAAOO,EAAMP,QAAU,KAJtD,SAOQsf,KAAOjL,MAAMrY,EAASD,GAP9B,2CA1F+B,iEAAShN,cAKxCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,6BALmBw0D,GAAY,gBAThCp1F,eAAU,CACTL,WAAY,CACViyF,qBACAgD,eACA5B,mBACAvhF,wBACAoc,0CAGiBunE,QCtHTS,GAKAC,GDiHSV,MExHqY,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,SFjBf,SAAYS,GACRA,kCACAA,yCAFJ,CAAYA,QAAa,KAKzB,SAAYC,GACRA,6BACAA,oCAFJ,CAAYA,QAAiB,KAKtB,IAAMC,GAA6B,CACtC,CAAE7+F,MAAO2+F,GAAcG,WAAYxxF,KAAMsxF,GAAkBE,YAC3D,CAAE9+F,MAAO2+F,GAAcI,cAAezxF,KAAMsxF,GAAkBG,gB,sdG4BlE,IAAqBC,GAAK,4CAA1B,iD,0BACE,EAAAjG,MAAgC,KAChC,EAAAH,WAA6BiG,GAqBrB,EAAA1sF,aAA6B,IAAIjC,GAvB3C,EAA0B,4CAIxB,WACE,OAAOvO,KAAKyd,OAAOC,OAAOle,KALJ,uBAQxB,WACE,OAAqB,MAAdQ,KAAKo3F,MAAgBp3F,KAAKo3F,MAAMiF,iBAAchvF,GAT/B,IAYxB,SAAwB6pF,GACH,OAAfl3F,KAAKo3F,QACPp3F,KAAKo3F,MAAMiF,YAAcnF,KAdL,qBAkBxB,WACE,OAAqB,MAAdl3F,KAAKo3F,MAAgBp3F,KAAKo3F,MAAMvlF,eAAYxE,IAnB7B,8EAyBxB,kGACKrN,KAAK4M,QADV,gCAEuB5M,KAAKwQ,aAAa8sF,gBAAgBt9F,KAAK4M,SAF9D,OAEI5M,KAAKo3F,MAFT,OAIIp3F,KAAKyd,OAAOC,OAAO,YAAc1d,KAAKo3F,MAAMvrF,SAJhD,gDAzBwB,qJAiCxB,kGACK7L,KAAK4M,QADV,gCAEuB5M,KAAKwQ,aAAa8sF,gBAAgBt9F,KAAK4M,SAF9D,OAEI5M,KAAKo3F,MAFT,uDAjCwB,yFAuChB,SAAmB/gF,GAAU,WACnC,QAA4BhJ,IAAxBgJ,EAAMk6C,oBAIQljD,GAAdrN,KAAKo3F,MAAoB,CAC3B,IAAImG,EAAqB,CACvBzrF,QAAS9R,KAAKo3F,MAAMtlF,QACpBD,UAAW7R,KAAKo3F,MAAMvlF,UACtBwqF,YAAar8F,KAAKo3F,MAAMiF,aAG1Br8F,KAAKwQ,aAAa8rF,YAAYt8F,KAAKo3F,MAAMtlF,QAASyrF,GAC/Cl3F,MAAK,SAAAxJ,GACJ,IAAI2gG,EAAgB,EAAKvG,WAAWrzF,QAAO,SAAA65F,GAAE,OAAIA,EAAGp/F,OAASxB,EAAOw/F,eAAa,GAAG1wF,KAChFmE,EAAU,qBAAH,OAAwB0tF,EAAxB,sBAAmD3gG,EAAOgV,UAA1D,KACXsW,oBAAMrY,EAAS,yBAEhBxJ,OAAM,SAAA+N,GACL,IAAIvE,EAAU,uDAAH,OAA0D,EAAK+rF,UAA/D,KACX1zE,oBAAMrY,EAAS,iBA3DC,GAASjN,cAAdw6F,GAAK,gBAPzBl2F,eAAU,CACTL,WAAY,CACViS,yBACAwjF,gBACAljF,kCAGiBgkF,cC1C6X,MCQ9Y,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIt9F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,MAAOJ,EAAkB,eAAEI,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,2BAA2B,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,uBAAuB,SAAWP,EAAI29F,mBAAmB11F,GAAG,CAAC,MAAQjI,EAAI49F,qBAAqBx9F,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI29F,kBAAkB,MAAQ,QAAQ,OAAS,QAAQ,gBAAgB,yBAAyB,SAAW,CAAE7zF,GAAI,SAAUC,GAAI,SAAUC,GAAI,+BAAgC,GAAG5J,EAAG,MAAMA,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAI4R,QAAQ,YAAa,MAAU,GAAG5R,EAAIyI,MAAM,IACj7B,GAAkB,GCDlB,GAAS,WAAa,IAAIzI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAAC+H,IAAI,oBAAoB5H,MAAM,CAAC,uBAAuBP,EAAI04F,iBAAiB,SAAW,IAAI33F,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,oBAAoBqC,GAAG,SAASkH,GAC7Q,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,sBAAsB,CAACH,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,CAAE1C,KAAM,QAAS8f,OAAQ,CAAEle,GAAIhE,EAAKA,KAAKsW,YAAa,CAAC/R,EAAIuH,GAAG,aAAavH,EAAIwH,GAAG/L,EAAKA,KAAKqW,WAAW,eAAe,QAAQ,CAAE9R,EAAc,WAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,YAAYP,EAAIyI,KAAKrI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,gBAAgB,uBAAuBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,cAAc,QAAU,aAAa,mBAAkB,EAAM,UAAY,UAAU,CAACH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIk3F,WAAW,aAAa,QAAQ,eAAe,WAAW,IAAI,IAAI,IACp7B,GAAkB,G,sdC6CtB,IAAqB2G,GAAS,4CAA9B,iD,0BACE,EAAAruF,MAEI,GAQJ,EAAA0nF,WAAkCiG,GAXpC,EAA8B,+CAa5B,WACE,OAAQl9F,KAAKuP,MAAMsuF,kBAA0BtuF,MAAMyhC,WAAW5/B,WAdpC,4BAkBpB,SAAeG,EAAUya,GAC/BhsB,KAAKgxC,WAAWkvC,YAnBU,4BAsB5B,WAA4B,WAC1B,MAAO,CACLvhF,IAAK,UACL+R,SAAU,MACVC,KAAM,WAAQ,OAAO,EAAKgB,cA1BF,GAAS9O,cAMrCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAGA/lC,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCASAznB,gBADCuW,gBAAM,YACP,oCAlBmBqlF,GAAS,gBAP7Bz2F,gBAAU,CACTL,WAAY,CACV0R,uBACAG,wBACAK,4BAGiB4kF,cChDkY,MCOnZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dC0Cf,IAAqBE,GAAa,4CAAlC,iD,0BACE,EAAApyF,QAA+B,GAC/B,EAAA7D,eAAuB,GACvB,EAAA8J,QAAkC,GAElC,EAAAnB,aAA6B,IAAIjC,GA8CjC,EAAAmvF,mBAA6B,EAnD/B,EAAkC,kDAOhC,WACE,OAAO19F,KAAKyd,OAAOC,OAAO,cARI,iCAYxB,WACN1d,KAAK4d,uBAbyB,gCAgBxB,WAEH5d,KAAK+d,eAAiB/d,KAAK6H,iBAAmB7H,KAAK+d,cACpD/d,KAAK6H,eAAiB7H,KAAK+d,cACjB/d,KAAK+d,gBACf/d,KAAK6H,eAAiB,MArBM,qBAyBhC,WACE7H,KAAK2d,WACL3d,KAAK4d,uBA3ByB,+EA8BhC,6GACMtN,EAAgB,IAAI/E,GAD1B,SAEsB+E,EAAc7E,SAFpC,OAEMC,EAFN,OAGE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GAAO,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAH1E,gDA9BgC,4IAqCxB,iGACN7L,KAAK2R,QAAU,IACZ3R,KAAK6H,eAFF,uBAGD7H,KAAK+d,gBAAkB/d,KAAK6H,gBAC7B7H,KAAKie,QAAQ3hB,KAAK,CAAEsB,KAAM,iBAAkB8f,OAAQ,CAAE1R,SAAUhM,KAAK6H,kBAJnE,SAME7H,KAAK+9F,cANP,gDArCwB,2IA+CxB,8GACe/9F,KAAKwQ,aAAawtF,iBAAiBh+F,KAAK6H,gBADvD,OACN7H,KAAK2R,QADC,uDA/CwB,iJAqDhC,oHACsByhB,KAAOpU,QAAQ,uFAAwF,WAD7H,UACMA,EADN,QAEKA,EAFL,wBAGIhf,KAAK09F,mBAAoB,EAH7B,KAIU19F,KAAKwQ,aAAaytF,YAAYj+F,KAAK6H,gBAJ7C,SAIyE7H,KAAKk+F,uBAJ9E,yCAI6D53F,MAJ7D,yCAKUtG,KAAK+9F,cALf,QAMI/9F,KAAK09F,mBAAoB,EAN7B,iDArDgC,sJA+DhC,WAA6BrpF,GAA7B,8FACMvE,EAAU,8CACdA,GAAWuE,EAAMP,QAAU,KAAOO,EAAMP,QAAU,IAFpD,SAGQsf,KAAOjL,MAAMrY,EAAS,SAH9B,2CA/DgC,+DAASjN,cAYzCb,gBADCuW,gBAAM,kBACP,yCAyBAvW,gBADCuW,gBAAM,mBACP,kCArCmBulF,GAAa,gBATjC32F,eAAU,CACTL,WAAY,CACViS,yBACAM,8BACAukF,aACAhlF,wBACAC,kCAGiBilF,cC5DsY,MCOvZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI/9F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,uBAAuBnH,EAAG,2BAA2B,IACnL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACgL,YAAY,CAAC,gBAAgB,QAAQ,CAAChL,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,OAAY,GAAIlI,EAAkB,eAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,uBAAuBP,EAAIo+F,kCAAkC,SAAW,IAAIn2F,GAAG,CAAC,eAAejI,EAAI8Z,WAAW,eAAe9Z,EAAI+Z,YAAY,YAAc/Z,EAAIga,oBAAoB,wBAAwBha,EAAIia,aAAa,gBAAgBja,EAAIka,eAAe,CAAC9Z,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,yBAAyBH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,yBAAyB,MAAQ,MAAM,OAAS,IAAI,aAAaP,EAAIqa,aAAa,YAAYra,EAAIsa,uBAAuBla,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,EAAE,gBAAgB,MAAM,CAACH,EAAG,gBAAgB,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,eAAc,EAAK,UAAW,EAAK,cAAc,cAAc,MAAQ,CAAEqL,KAAM,eAAgB,iBAAiB,CAAE2O,UAAU,EAAMjc,MAAO0B,EAAI8H,eAAgB0S,WAAYxa,EAAI2L,QAAS8O,YAAa,OAAQC,UAAW,YAAata,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,eAAc,EAAK,cAAc,cAAc,iBAAiB,CAAEqa,MAAO5a,EAAI6a,aAAaQ,UAAWN,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,eAAc,EAAK,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaS,aAAcP,iBAAiB,EAAMK,mBAAmB,EAAMT,UAAW,OAAQva,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAawjF,SAAUtjF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAayjF,aAAcvjF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa0jF,aAAcxjF,iBAAiB,EAAMK,mBAAmB,OAAW,GAAGhb,EAAG,gBAAgB,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa2jF,aAAczjF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAa,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAamB,WAAYjB,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa4jF,UAAW1jF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,MAAM,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa6jF,IAAK3jF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,KAAK,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa8jF,GAAI5jF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,KAAK,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAa+jF,GAAI7jF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,MAAM,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAagkF,IAAK9jF,iBAAiB,EAAMK,mBAAmB,MAAUhb,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,cAAc,iBAAiB,CAAEia,WAAYxa,EAAI6a,aAAaikF,UAAW/jF,iBAAiB,EAAMK,mBAAmB,OAAW,IAAI,IAAI,GAAGhb,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,gBAAgB,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,aAAa,mBAAkB,EAAK,OAAQ,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,gBAAgB,mBAAkB,EAAK,OAAQ,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,WAAW,QAAU,YAAY,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,iBAAiB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,iBAAiB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,MAAM,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,KAAK,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,KAAK,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,MAAM,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,eAAe,QAAU,gBAAgB,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,aAAa,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,YAAY,QAAU,aAAa,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,aAAa,aAAa,QAAU,cAAc,mBAAkB,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,YAAY,SAAS,KAAO,UAAU,QAAU,GAAG,aAAa,WAAW,gBAAgB,CAAEia,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,gBAAgB,CAAEjc,EAAI8H,oBAAqB,GAAG9H,EAAIyI,MAAM,IACvoL,GAAkB,G,sdCGf,IAAMs2F,GAAb,4CACE,uDACQ,qBAFV,+GAKE,WAAsB9yF,GAAtB,iGACehM,KAAK0D,OAAOzF,IAAZ,oBAA6B+N,IAD5C,wFALF,+DAAwCiQ,I,sdC0NxC,IAAqB8iF,GAAmB,4CAQtC,iDACE,eARF,EAAArzF,QAAgD,GAChD,EAAA7D,eAAuB,GAGvB,EAAAm3F,mBAAyC,IAAIF,GAC7C,EAAAlkF,aAA2C,IAAIyB,IAI7C,EAAKsB,WACL,EAAKwgF,kCAAoC,CACvCx/F,IAAK,gBACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAKyiF,mBAAmB1gF,OAAO/B,GAAajW,MAAM,EAAK24F,sBAC5ExiF,OAAQ,SAAAC,GAAM,OAAI,EAAKsiF,mBAAmBtgG,OAAOge,GAAQpW,MAAM,EAAK24F,sBACpEpiF,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKsiF,mBAAmBliF,KAAKne,EAAK+d,GAAQpW,MAAM,EAAK24F,sBAC9E75F,OAAQ,SAAAzG,GAAG,OAAI,EAAKqgG,mBAAmBjiF,OAAOpe,GAAK2H,MAAM,EAAK24F,uBARlE,EARsC,6DAqBtC,WACEj/F,KAAKqa,wBAtB+B,+EAyBtC,6GACM/J,EAAgB,IAAI/E,GAD1B,SAEsB+E,EAAc7E,SAFpC,OAEMC,EAFN,OAGE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GACzB,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAJ1C,gDAzBsC,0FAiCtC,SAAoBhP,GAClB,IAAIiT,EAAU,6BACd,GAAIjT,GAAUA,EAAOiX,QAAS,CAC5BhE,EAAUjT,EAAOiX,QAEjB,IAAIhP,EAAQgL,EAAQkI,QAAQ,WACxBlT,GAAS,IACXgL,EAAUA,EAAQ0kF,UAAU,EAAG1vF,IAInC,MAAMnF,MAAMmQ,KA5CwB,0FA+CtC,kGACM9P,KAAK6H,eADX,gCAE+B7H,KAAKg/F,mBAAmB9gF,gBAAgBle,KAAK6H,gBAF5E,OAEI7H,KAAK4a,aAFT,OAE6FuD,aAF7F,gDA/CsC,mFAqDtC,SAAaze,GAEX,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KA3DC,wBA8DtC,SAAWhf,GACTA,EAAElE,KAAO,CACPqQ,SAAU7L,KAAK6H,kBAhEmB,0BAoEtC,SAAanI,GACNA,EAAElE,KAAKqQ,WACVnM,EAAElE,KAAKqQ,SAAW,MAtEgB,yBA0EtC,SAAYnM,GAEVA,EAAEiW,QAAUxQ,IAAEyZ,MAAM,GAAIlf,EAAEoW,QAASpW,EAAEiW,WA5ED,iCA+EtC,SAAoBjW,GAClBM,KAAKue,SAAW7e,EAAEuH,YAhFkB,0BAmFtC,WACMjH,KAAKue,WACPve,KAAKue,SAASc,QACdrf,KAAKue,SAASvE,oBAtFoB,GAASnX,cAqB/Cb,gBADCuW,gBAAM,mBACP,4CArBmBwmF,GAAmB,gBArBvC53F,eAAU,CACTL,WAAY,CACVulF,kCACAhzE,8BACAb,uBACAG,wBACAG,0BACA2G,oBACAuO,4BACAxO,oCACAD,oBACApG,8BACAghB,gCACAnhB,wBACAsG,sBACAQ,oCACAlH,wBACAkR,0BACAH,gCAGiBo1E,cC9N8Y,MCO/Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBG,GAAe,yIAASr8F,cAAxBq8F,GAAe,gBANnC/3F,eAAU,CACTL,WAAY,CACViS,yBACAgmF,2BAGiBG,cCnBuX,MCOxY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIn/F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIW,UAAUP,EAAG,MAAM,CAACJ,EAAIo/F,GAAG,GAAGh/F,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,gBAAgB,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIq/F,mBAAmB,GAA+rDr/F,EAAIyI,MAAM,IACn9D,GAAkB,CAAC,WAAa,IAAIzI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACgL,YAAY,CAAC,gBAAgB,QAAQ,CAAChL,EAAG,KAAK,CAACJ,EAAIuH,GAAG,0GCG7J+3F,GAAb,WAGE,oCACEr/F,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,aAJnD,0GAOS,WAAiBgqC,GAAjB,iGACQntC,KAAK0D,OAAOK,SAAS,GAAIopC,GADjC,wFAPT,iE,sdCyFA,IAAqBmyD,GAAI,4CAAzB,iD,0BACU,EAAAC,cAAwB,EACxB,EAAAC,WAAqB,EACrB,EAAAxrF,aAAuB,GACvB,EAAAyrF,YAA2B,IAAIJ,GAJzC,EAAyB,6CASvB,WACE,MAAO,CACLK,UAAW,GACXC,SAAU,GACVC,QAAS,GACTp9C,MAAO,GACP1uC,QAAS,MAfU,gCAmBvB,WACE,MAAO,CACLyG,WAAYva,KAAK03B,UACjBld,YAAa,OACbO,eAAe,EACf+Q,WAAY,OACZrR,UAAW,UAzBQ,qBA6BvB,WACE,OAAOolF,iBA9Bc,4BAiCf,SAAengG,GACrBR,OAAO05C,KAAK,2FAA4F,WAlCnF,sBAqCf,SAASl5C,GAAM,WACrBM,KAAKgU,aAAe,GACpBhU,KAAKu/F,cAAe,EAEpBv/F,KAAKy/F,YAAYK,WAAW9/F,KAAKmtC,UAC9B9mC,KAAKrG,KAAK+/F,4BACVz5F,MAAMtG,KAAKggG,wBACX/rF,SAAQ,WACP,EAAKsrF,cAAe,KAGxB7/F,EAAEkqC,mBAhDmB,gBAmDvB,WACE,OAAQ5pC,KAAKuP,MAAM,QAAgB6B,WApDd,wCAuDf,WACFpR,KAAKigG,MACPjgG,KAAKigG,KAAKxsD,cAGZzzC,KAAKw/F,WAAY,IA5DI,oCA+Df,SAAuB3iG,GAC7BmD,KAAKgU,aAAenX,EAAOiX,QAAUjX,EAAOiX,QAAU,mDAhEjC,GAASjR,cAOhCb,gBADCwnB,gBAAK,CAAEC,QAAS,UACjB,6BAPmB61E,GAAI,gBAdxBn4F,gBAAU,CACTL,WAAY,CACViS,yBACAH,wBACA6G,YACAo5B,gCACA1e,gCACA+lE,sCACAtgF,oCACA2P,kCACA4wE,8BACAnrE,0CAGiBsqE,cC7F0W,MCQ3X,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIv/F,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,wBAAwBnH,EAAG,qBAAqB,CAACG,MAAM,CAAC,UAAW,MAAU,IAC3M,GAAkB,GCDlB,GAAS,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,iCAAiC,CAACf,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAIqgG,2BAA2B,eAAergG,EAAIsgG,iCAAiC,MAAQtgG,EAAIugG,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,mBAAmB,SAAWvgG,EAAIwgG,SAASv4F,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIugG,eAAer4F,OAAY,GAA0B,MAAtBlI,EAAIugG,eAAwBngG,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW,eAAe,CAAEE,MAAO,iBAAkB,SAAWT,EAAIwgG,SAASv4F,GAAG,CAAC,MAAQjI,EAAIygG,sBAAsB,GAAGzgG,EAAIyI,KAAKrI,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIwgG,SAASv4F,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIwgG,QAAQt4F,OAAY,IACr1B,GAAkB,G,sdC4CtB,IAAqBw4F,GAAgB,4CAArC,iD,0BACmB,EAAAC,oBAA8B,oBACvC,EAAAh9F,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,QACvE,EAAAswF,iBAAyC,GAEjD,EAAAL,eAA4C,KAC5C,EAAAC,SAAmB,EANrB,EAAqC,+DAWnC,WACE,OAAO,IAAI16E,KAAW,CACpB1iB,MAAOnD,KAAK2gG,iBACZ1lF,UAAU,EACV6K,SAAU,QAfqB,8EAmBnC,8GACQ9lB,KAAK4gG,uBADb,gDAnBmC,oJAuB3B,2GACF5zF,EAAMhN,KAAK6gG,yBADT,SAEwB7gG,KAAK0D,OAAOzF,IAA0B+O,GAF9D,OAENhN,KAAK2gG,iBAFC,uDAvB2B,6FA4B3B,WACN,IAAIzzF,EAAQlN,KAAK8gG,iCACjB,MAAO,GAAP,OAAU9gG,KAAK0gG,qBAAf,OAAqCxzF,KA9BJ,4CAiC3B,WACN,IAAID,EAAuB,GAM3B,OAJqB,MAAjBjN,KAAKu2C,UACPtpC,EAAW3Q,KAAX,mBAA4B0D,KAAKu2C,WAG5BtpC,EAAWjR,OAAS,EAApB,WAA4BiR,EAAWnJ,KAAK,MAAS,KAxC3B,wFA2CnC,WAAwBpE,GAAxB,iGACQM,KAAK+gG,yBADb,gDA3CmC,uJA+C3B,8GACqB,MAAvB/gG,KAAKsgG,eADH,wDAKFtzF,EALE,UAKOhN,KAAK0gG,oBALZ,YAKmC1gG,KAAKsgG,eAAe3yF,mBAC7D3N,KAAKugG,SAAU,EANT,SAQAvgG,KAAK0D,OAAOQ,YAAYC,oBAAeyJ,MAAOZ,GACjD3G,KADG,yDACE,WAAMwN,GAAN,8FACA/D,EAAU,iCACE,MAAZ+D,GAAwC,MAApBA,EAASC,UAC/BhE,EAAU+D,EAASC,SAHjB,SAKEsf,KAAOjL,MAAMrY,EAAS,WALxB,uBAME,EAAK8wF,uBANP,OAOJ,EAAKN,eAAiB,KAPlB,2CADF,kCAAAtgG,KAAA,gBAUHsG,MAVG,yDAUG,WAAMuN,GAAN,8FACD/D,EAAU,2CACE,MAAZ+D,GAAwC,MAApBA,EAASC,UAC/BhE,EAAU+D,EAASC,SAHhB,SAKCsf,KAAOjL,MAAMrY,EAAS,SALvB,2CAVH,kCAAA9P,KAAA,gBAiBHiU,SAAQ,WACP,EAAKssF,SAAU,KA1Bb,gDA/C2B,uGA6EnC,SAAiCvpF,GAC/B,GAAuB,MAAnBA,EACF,MAAO,GAGT,IAAItT,EAAmC,MAA1BsT,EAAgBwN,OAAiB,iBAAmBxN,EAAgBwN,OAAO5Y,WACpFwrF,EAAiC,MAAzBpgF,EAAgBqmF,MAAgB,gBAAkBrmF,EAAgBqmF,MAAMxrF,UAChFgvB,EAAiC,MAAzB7pB,EAAgBoL,WAAgB/U,EAAY2J,EAAgBoL,MAAM5U,UAC1EwzF,EAAWhqF,EAAgBiqF,SAC3BpkG,EAAS6G,EAEA,MAATm9B,IACFhkC,GAAU,MAAJ,OAAUgkC,IAGlBhkC,GAAU,MAAJ,OAAUu6F,GAEhBv6F,GAAU,MAAJ,OAAUmkG,GAEhB,IAAIE,EAAc,IAAIhkE,KAAKlmB,EAAgBmqF,aAG3C,OAFAtkG,GAAU,MAAJ,OAAUqkG,EAAY18B,kBAErB3nE,MAnG0B,GAASgG,cAS5Cb,gBADCwnB,mBACD,gCATmBi3E,GAAgB,gBAPpCt5F,gBAAU,CACTL,WAAY,CACV8R,wBACAC,8BACAQ,kCAGiBonF,cC7CwX,MCQzY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBW,GAAiB,yIAASv+F,cAA1Bu+F,GAAiB,gBANrCj6F,gBAAU,CACTL,WAAY,CACV25F,oBACA1nF,6BAGiBqoF,cCnBwX,MCOzY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIrhG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,oBAAoB,IACtK,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAIshG,yBAAyB,OAAS,CAAEv7E,SAAU,KAAM9d,GAAG,CAAC,YAAcjI,EAAIuhG,sBAAsB,eAAevhG,EAAI8Z,WAAW,gBAAgB9Z,EAAIy5C,eAAe,eAAez5C,EAAI6tD,eAAe9sD,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,yBAAyBqC,GAAG,SAASkH,GACvZ,IAAIq5F,EAAWr5F,EAAI1M,KACnB,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,kBAAiB,EAAK,mBAAmB,SAAUhM,GAAK,OAAOK,EAAIq5B,yBAAyB15B,EAAErB,MAAOkjG,IAAa,cAAc,OAAO,MAAQA,EAASljG,MAAM,aAAa,QAAQ,SAAW0B,EAAIyhG,eAAe,MAAM,CAAC7iG,IAAI,yBAAyBqC,GAAG,SAASkH,GAC9V,IAAIq5F,EAAWr5F,EAAI1M,KACnB,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,uBAAsB,EAAK,cAAcP,EAAI0hG,wBAAwB,eAAe,OAAO,aAAa,IAAI,0BAA0B1hG,EAAI2hG,2BAA2B,mBAAmB,SAAUhiG,GAAK,OAAOK,EAAIuyB,eAAe5yB,EAAErB,MAAOkjG,IAAa,kBAAiB,EAAK,cAAc,OAAO,MAAQA,EAASljG,MAAM,aAAa,QAAQ,SAAW0B,EAAIyhG,eAAe,MAAM,CAAC7iG,IAAI,sBAAsBqC,GAAG,SAASkH,GACtc,IAAIq5F,EAAWr5F,EAAI1M,KACnB,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,eAAe,OAAO,mBAAmB,SAAUh4B,GAAK,OAAOK,EAAIuyB,eAAe5yB,EAAErB,MAAOkjG,IAAa,kBAAiB,EAAK,cAAc,OAAO,MAAQA,EAASljG,MAAM,aAAa,QAAQ,SAAW0B,EAAIyhG,eAAe,MAAM,CAAC7iG,IAAI,oBAAoBqC,GAAG,SAASkH,GACjV,IAAIq5F,EAAWr5F,EAAI1M,KACnB,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAI4hG,uBAAuB,eAAe,OAAO,mBAAmB,SAAUjiG,GAAK,OAAOK,EAAIuyB,eAAe5yB,EAAErB,MAAOkjG,IAAa,kBAAiB,EAAK,cAAc,OAAO,MAAQA,EAASljG,MAAM,aAAa,QAAQ,SAAW0B,EAAIyhG,eAAe,MAAM,CAAC7iG,IAAI,oBAAoBqC,GAAG,SAASkH,GAC9V,IAAIq5F,EAAWr5F,EAAI1M,KACnB,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,eAAe,OAAO,mBAAmB,SAAUx8B,GAAK,OAAOK,EAAIuyB,eAAe5yB,EAAErB,MAAOkjG,IAAa,kBAAiB,EAAK,cAAc,OAAO,MAAQA,EAASljG,MAAM,aAAa,QAAQ,SAAW0B,EAAIyhG,eAAe,MAAM,CAAC7iG,IAAI,sBAAsBqC,GAAG,SAASkH,GACpV,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,WAAW0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jC,UAAUnoC,EAAKA,gBAAgB,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,2BAA2BH,EAAG,aAAa,CAACG,MAAM,CAAC,gBAAe,EAAK,kBAAiB,EAAK,kBAAiB,EAAK,KAAO,UAAU,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,cAAa,EAAK,MAAQ,kBAAkB,MAAQ,MAAM,aAAa,MAAM,aAAaP,EAAI0vB,kBAAkBtvB,EAAG,UAAU,CAACG,MAAM,CAAC,YAAY,EAAE,gBAAgB,MAAM,CAACH,EAAG,gBAAgB,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,eAAc,EAAK,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,eAAc,EAAK,cAAc,cAAc,iBAAiB,CAAE0a,WAAY,iBAAkB7a,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,aAAaH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,eAAc,EAAK,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,SAAS,eAAc,EAAK,cAAc,cAAc,iBAAiB,CAAEyW,OAAQ,0BAA2BynD,IAAK,MAAOr+D,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,cAAc,eAAc,EAAK,MAAQ,CAAEyrB,SAAS,GAAQ,cAAc,eAAe,iBAAiB,CAAExR,WAAYxa,EAAI6hG,UAAWC,OAAQ,aAAcrnF,YAAa,OAAQC,UAAW,YAAata,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,aAAa,iBAAiB,CAAEoa,UAAW,IAAKiE,YAAa,gBAAiB,IAAI,IAAI,GAAGxe,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,kBAAkB,YAAY,SAAS,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAW,YAAY,SAAS,QAAU,SAAS,uBAAuB,aAAa,SAAWP,EAAIyhG,WAAW,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEjnF,WAAYxa,EAAI2L,QAASsQ,aAAa,GAAO,qBAAqB,2BAA2B,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,aAAa,QAAQ,eAAe,WAAW,GAAGvL,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,cAAc,0BAAyB,EAAM,qBAAqB,2BAA2B,CAACH,EAAG,qBAAqB,GAAGA,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,UAAU,uBAAuB,cAAc,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEia,WAAYxa,EAAI23B,UAAW1b,aAAa,EAAMhB,WAAY,cAAe,qBAAqB,wBAAwB,CAAC7a,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAGv3B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,SAAS,QAAU,QAAQ,uBAAuB,YAAY,iBAAiBP,EAAI+hG,mBAAmB,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEvnF,WAAYxa,EAAIuN,OAAQ0O,aAAa,GAAO,qBAAqB,sBAAsB,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIuN,OAAO,aAAa,QAAQ,eAAe,WAAW,GAAGnN,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,SAAS,QAAU,aAAa,uBAAuB,YAAY,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEia,WAAYxa,EAAIm8B,WAAYlgB,aAAa,GAAO,qBAAqB,sBAAsB,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,aAAa,QAAQ,eAAe,WAAW,GAAG/7B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,SAAS,QAAU,aAAa,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEia,WAAYxa,EAAI6hG,aAAc,CAACzhG,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI6hG,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAGzhG,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,SAAS,YAAY,SAAS,QAAU,SAAS,OAAS,CAAEuP,KAAM,WAAY+5C,UAAW,GAAI,0BAAyB,KAASzpD,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,YAAY,SAAS,QAAU,QAAQ,mBAAkB,EAAM,iBAAgB,EAAM,YAAY,GAAG,MAAQ,GAAG,gBAAgB,0BAA0B,GAAGH,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQ,QAAQ,KAAOP,EAAIgiG,YAAY,QAAUhiG,EAAI+vD,UAAU,MAAQ,MAAM,OAAS,OAAO9nD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+vD,UAAU7nD,GAAQ,OAASlI,EAAIiiG,eAAe,IAC9wI,GAAkB,G,0BCblB,GAAS,WAAa,IAAIjiG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQP,EAAIW,MAAM,QAAUX,EAAIgsB,QAAQ,MAAQhsB,EAAIsd,MAAM,OAAStd,EAAIud,OAAO,aAAa,OAAOtV,GAAG,CAAC,OAASjI,EAAI2tD,WAAW,CAACvtD,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAI4L,KAAK,aAAY,EAAK,OAAS,WAAW,GAAGxL,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIw2D,uBAAuB,IACxe,GAAkB,G,sdCqCtB,IAAqB0rC,GAAS,sKAiB5B,WACE,MAAO,CACLt2F,KAAM,QACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKuuD,SAtBU,sBA0B5B,WACEvuD,KAAKuuD,UA3BqB,mBA8BpB,WACNvuD,KAAKimB,MAAM,cA/Be,GAASpjB,cAGrCb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,4BAGA/lC,gBADCwnB,gBAAK,CAAEC,QAAS,MACjB,6BAGAznB,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAGA/lC,gBADCwnB,gBAAK,CAAEC,QAAS,SACjB,6BAGAznB,gBADCwnB,gBAAK,CAAEC,QAAS,SACjB,8BAfmBw4E,GAAS,gBAP7B96F,gBAAU,CACTL,WAAY,CACVwY,sBACA6vC,4BACAllC,sCAGiBg4E,cCtCgX,MCQjY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCdFC,GAAb,WAGE,oCACEliG,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,uBAJnD,oGAOE,WAAWuJ,GAAX,iGACe1M,KAAK0D,OAAOiJ,YAAY,QAASD,GADhD,wFAPF,oIAWE,WAAUlN,GAAV,iGACeQ,KAAK0D,OAAOzF,IAAZ,WAAsCuB,IADrD,wFAXF,uIAeE,WAAahE,GAAb,iGACewE,KAAK0D,OAAOiJ,YAA8B,GAAInR,GAD7D,wFAfF,uIAmBE,WAAagE,EAAUhE,GAAvB,iGACewE,KAAK0D,OAAOiL,QAA0BxK,oBAAeyK,IAArD,WAA8DpP,GAAMhE,GADnF,wFAnBF,yIAuBE,WAAagE,GAAb,iGACeQ,KAAK0D,OAAOiL,QAA0BxK,oBAAe2K,OAArD,WAAiEtP,IADhF,wFAvBF,iE,sdC+UA,IAAqB2iG,GAAa,4CAAlC,iD,0BACmB,EAAAC,qBAA6C,IAAIF,GACjD,EAAA3xF,aAA6B,IAAInD,GACjC,EAAAkD,cAA+B,IAAI/E,GACnC,EAAAiuB,eAAiC,IAAIZ,GACrC,EAAAq1B,iBAAqC,IAAI/nB,GAGlD,EAAAr+B,eAAuB,GACvB,EAAAw6F,cAAgC,GAChC,EAAAtiE,aAA+B,EAAKuiE,yBACpC,EAAAC,iBAA2B,EAE3B,EAAAf,YAAsB,EAE9B,EAAA1xC,WAAqB,EACrB,EAAAiyC,YAAsB,GACtB,EAAAr2F,QAA0B,GAC1B,EAAA4B,OAAyB,GACzB,EAAAoqB,UAA4B,GAC5B,EAAAwE,WAA6B,GAC7B,EAAA0lE,UAA4B,CAC1B,CAAEj2F,KAAMk6D,GAAqBn+B,IAAKrpC,MAAOunE,GAAiBl+B,KAC1D,CAAE/7B,KAAMk6D,GAAqBl+B,OAAQtpC,MAAOunE,GAAiBj+B,SAvBjE,EAAkC,uHA2BhC,iGACE3nC,KAAKqiG,cAAgB,GACrBriG,KAAK+/B,aAAe//B,KAAKsiG,yBACzBtiG,KAAKuiG,iBAAkB,GAEnBpzF,GAAOmC,cAActR,KAAK6H,gBALhC,wDASE7H,KAAKyhG,wBAAwBe,UAAU,GATzC,SAUQxiG,KAAKyhG,wBAAwBx1E,SAVrC,wBAY4BjsB,KAAKuQ,aAAa8mD,oBAAoBr3D,KAAK6H,gBAZvE,eAYE7H,KAAK+/B,aAZP,OAaE//B,KAAK2hG,uBAAuBa,UAAU,GAbxC,UAcQxiG,KAAK2hG,uBAAuB11E,SAdpC,iDA3BgC,6FA4ChC,WAA4B,WAC1B,OAAO,IAAIxb,KAAY,CACrB9R,IAAK,kBACLgS,KAAM,SAAAjE,GAAO,OAAI,EAAK01F,qBAAqBp8C,KAAKt5C,GAASpG,MAAM,EAAK24F,sBACpExiF,OAAQ,SAAAC,GAAM,OAAI,EAAK0lF,qBAAqB1jG,OAAOge,GAAQpW,MAAM,EAAK24F,sBACtEpiF,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAK0lF,qBAAqBvlF,OAAOle,EAAK+d,GAAQpW,MAAM,EAAK24F,sBAClF75F,OAAQ,SAAAzG,GAAG,OAAI,EAAKyjG,qBAAqBrlF,OAAOpe,GAAK2H,MAAM,EAAK24F,0BAlDpC,mCAsDhC,WAA2B,WACzB,OAAO,IAAIp5E,KAAW,CACpBnV,SAAU,MACVC,KAAM,WACJ,OAAI,EAAK4xF,iBACP,EAAKA,iBAAkB,EAChB,EAAKF,eAGVlzF,GAAOmC,cAAc,EAAKzJ,gBACrB,GAGF,EAAKyI,cAAcmyF,uBAAuB,EAAK56F,gBACnDxB,MAAK,SAAAxJ,GAEJ,OADA,EAAKwlG,cAAgBxlG,EACdA,MAGb4f,OAAQ,SAAAC,GAKN,OAJqE,IAAjE,EAAK2lF,cAAc/lC,WAAU,SAAA7+D,GAAC,OAAIA,EAAEY,QAAUqe,EAAOre,UACvD,EAAKgkG,cAAcv2F,QAAQ4Q,GAGtBhY,QAAQ5E,QAAQ4c,IAEzBzB,UAAU,EACV6K,SAAU,QAjFkB,kCAqFhC,WACE,OAAO,IAAID,KAAW,CACpB1iB,MAAOnD,KAAK+/B,aACZ9kB,UAAU,EACV6K,SAAU,QAzFkB,iCA6FxB,SAAoBjpB,GAC1B,IAAIiT,EAAU,6BACd,GAAIjT,GAAUA,EAAOiX,QAAS,CAC5BhE,EAAUjT,EAAOiX,QAEjB,IAAIhP,EAAQgL,EAAQkI,QAAQ,WACxBlT,GAAS,IACXgL,EAAUA,EAAQ0kF,UAAU,EAAG1vF,IAInC,MAAMnF,MAAMmQ,KAxGkB,8EA2GhC,qGACEqC,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,GAFvD,SAGQxpC,KAAK2d,WAHb,gDA3GgC,wIAiHxB,8GACe3d,KAAKsQ,cAAc+mD,sBADlC,cACNr3D,KAAK0L,QADC,gBAEc1L,KAAKuQ,aAAa8mD,sBAFhC,cAENr3D,KAAKsN,OAFC,gBAGiBtN,KAAKw5B,eAAe69B,sBAHrC,cAGNr3D,KAAK03B,UAHC,iBAIkB13B,KAAKiuD,iBAAiBoJ,sBAJxC,QAINr3D,KAAKk8B,WAJC,wDAjHwB,gFAwHhC,WACE/pB,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KA1H1B,sCA6HxB,SAAyBnrC,EAAakjG,GAC5CvhG,KAAK6H,eAAiBxJ,EACtBkjG,EAAS1N,SAASx1F,KA/HY,wCAkIhC,SAA2BqB,GACzBA,EAAEioB,WAAa,CAAEhc,KAAMjM,EAAEiM,KAAMtN,MAAOqB,EAAEiM,MACxC3L,KAAKuiG,iBAAkB,EACvBviG,KAAKyhG,wBAAwBt+F,QAAQsZ,OAAO/c,EAAEioB,YAC9C3nB,KAAKyhG,wBAAwBx1E,WAtIC,uBAyIhC,SAAU+/D,GACRhsF,KAAK+hG,YAAc/V,EAAK1qD,MACxBthC,KAAK8vD,WAAY,IA3Ia,wBA8IhC,WACE9vD,KAAK8vD,WAAY,EACjB9vD,KAAK+hG,YAAc,KAhJW,mCAmJhC,SAAsBriG,GACpBM,KAAKue,SAAW7e,EAAEuH,YApJY,wBAuJhC,SAAWvH,GACTM,KAAKwhG,YAAa,EAClB9hG,EAAElE,KAAKurC,OAAS,EAChBrnC,EAAElE,KAAKknG,YAAc98B,GAAiBl+B,IACtChoC,EAAElE,KAAKiS,QAAU,KA3Ja,4BA8JhC,SAAe/N,GACbM,KAAKwhG,YAAa,EACI,MAAlB9hG,EAAElE,KAAKiS,UACT/N,EAAElE,KAAKiS,QAAU,MAjKW,2BAqKhC,SAAc/N,GACZA,EAAEiW,QAAUxQ,IAAEyZ,MAAM,GAAIlf,EAAEoW,QAASpW,EAAEiW,WAtKP,4BAyKhC,SAAejW,GACb,IAAIgf,EAAehf,EAAEuH,UAAUqF,OAAO,gBACtCoS,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQiS,YAAc,YACtCD,EAAa,GAAGhS,QAAQmD,KAAO,SAC/BnQ,EAAEuH,UAAUqF,OAAO,eAAgBoS,KA9KL,4BAiLhC,SAAergB,EAAYkjG,GACzBA,EAAS1N,SAASx1F,KAlLY,oCAqLxB,WACN,MAAO,CAAC,CAAEsN,KAAM,MAAOtN,MAAO,OAtLA,gCAyLhC,SAAmBkjG,GACjB,OAAOpyF,GAAOmC,cAAciwF,EAASnqE,WAAa,MAAQmqE,EAASnqE,YA1LrC,2EA6LhC,iGACEp3B,KAAKyuD,iBACDzuD,KAAKquD,cAFX,gCAGUruD,KAAKga,eAHf,gDA7LgC,kFAoMxB,WACN,OAAwB,MAAjBha,KAAKue,UAAoBve,KAAKue,SAAS8vC,gBArMhB,mFAwMxB,iGACe,MAAjBruD,KAAKue,SADH,gCAEEve,KAAKue,SAASvE,eAFhB,gDAxMwB,gFA8MxB,SAAUta,GACZM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,qBAjN0B,qBAqNxB,SAAQp6B,GACVM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKyhC,UAzNuB,4BA6NxB,SAAe/hC,GACrB,MAAiB,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YA9Nd,2BAiOxB,WACe,MAAjB3pC,KAAKue,UACPve,KAAKue,SAASc,YAnOc,GAASxc,cA2BzCb,gBADCuW,gBAAM,mBACP,6CA3BmB4pF,GAAa,gBA1BjCh7F,gBAAU,CACTL,WAAY,CACV8R,wBACAuhB,gCACAxhB,wBACA+Q,4BACA5Q,0BACA2G,oBACAuO,4BACA7U,8BACAqG,oCACAD,oBACAvG,wBACAkT,8BACAnM,wBACAT,sBACAiyC,gCACA3xC,oCACAqO,8BACA5U,8BACAyG,oCACAqvC,4BACArlC,0BACAm4E,iBAGiBE,cCpVuY,MCOxZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCCf,IAAqBQ,GAAU,yIAAS9/F,cAAnB8/F,GAAU,gBAN9Bx7F,eAAU,CACTL,WAAY,CACVq7F,iBACAppF,6BAGiB4pF,QCnBTC,GDmBSD,MEnBiX,MCOlY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI5iG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,YAAYnH,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIo7B,mBAAmBh7B,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS0H,GAAG,CAAC,MAAQjI,EAAI8iG,wBAAwB1iG,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,iBAAiB,KAAO,cAAc0H,GAAG,CAAC,MAAQjI,EAAI+iG,qBAAqB3iG,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,2BAA2BnH,EAAG,YAAY,CAAC+H,IAAI,wBAAwBhH,YAAY,2BAA2BZ,MAAM,CAAC,uBAAuBP,EAAIgjG,2BAA2B,mBAAqB,aAAa,WAAa,qBAAqB,OAAS,CAAEz2E,SAAS,GAAQ,UAAY,CAAE/tB,KAAM,YAAa,OAAS,QAAQ,oBAAqB,GAAMyJ,GAAG,CAAC,sBAAsBjI,EAAIsK,qBAAqBvJ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gBAAgBqC,GAAG,SAASkH,GACtgC,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAOuE,EAAIkjG,mBAAoB,CAACljG,EAAIuH,GAAG,YAAY,KAAK,CAAC3I,IAAI,mBAAmBqC,GAAG,SAASkH,GAChM,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAMuE,EAAIkjG,mBAAoB,CAACljG,EAAIuH,GAAG,gBAAgB,QAAQ,CAACnH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,UAAU,YAAY,WAAW,QAAU,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,oBAAoB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,aAAa,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQP,EAAImjG,GAAG,oBAAoB,CAAC/iG,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAY,EAAK,QAAS,EAAK,SAAU,QAAW,GAAGH,EAAG,KAAK,CAACgL,YAAY,CAAC,aAAa,OAAO,gBAAgB,UAAUhL,EAAG,KAAK,CAACJ,EAAIuH,GAAG,0CAA0CnH,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAA6B,0BAAEsJ,WAAW,+BAA+B,CAAClJ,EAAG,YAAY,CAAC+H,IAAI,qCAAqChH,YAAY,2BAA2BZ,MAAM,CAAC,uBAAuBP,EAAIojG,0BAA0B,mBAAqB,aAAa,WAAa,qBAAqB,OAAS,CAAE72E,SAAS,GAAQ,UAAY,CAAE/tB,KAAM,YAAa,OAAS,QAAQ,oBAAqB,GAAMyJ,GAAG,CAAC,sBAAsBjI,EAAIsK,qBAAqBvJ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gBAAgBqC,GAAG,SAASkH,GACz0D,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAOuE,EAAIkjG,mBAAoB,CAACljG,EAAIuH,GAAG,YAAY,KAAK,CAAC3I,IAAI,mBAAmBqC,GAAG,SAASkH,GAChM,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAMuE,EAAIkjG,mBAAoB,CAACljG,EAAIuH,GAAG,gBAAgB,QAAQ,CAACnH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,UAAU,YAAY,WAAW,QAAU,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,oBAAoB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,aAAa,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQP,EAAImjG,GAAG,oBAAoB,CAAC/iG,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAY,EAAK,QAAS,EAAK,SAAU,QAAW,IAAI,GAAGH,EAAG,KAAK,CAACgL,YAAY,CAAC,aAAa,OAAO,gBAAgB,UAAUhL,EAAG,eAAe,CAAC+H,IAAI,cAAc5H,MAAM,CAAC,eAAiBP,EAAIkjG,eAAe,MAAQ,uBAAuBj7F,GAAG,CAAC,wBAAwBjI,EAAIo7B,mBAAmBh7B,EAAG,iBAAiB,CAAC+H,IAAInI,EAAIqjG,oBAAoB,GAAGjjG,EAAG,eAAe,CAAC+H,IAAInI,EAAIsjG,iBAAiBljG,EAAG,+BAA+B,CAAC+H,IAAInI,EAAIujG,uBAAuB,IAC7hD,GAAkB,GCTlB,GAAS,WAAa,IAAIvjG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,MAAM,MAAQ,iBAAiB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAIimB,YAAYhe,GAAG,CAAC,OAASjI,EAAIg5C,cAAc,MAAQh5C,EAAIwjG,aAAa,iBAAiB,SAASt7F,GAAQlI,EAAIimB,WAAW/d,KAAU,CAAC9H,EAAG,MAAM,CAACe,YAAY,UAAUiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,eAAe,CAAC+H,IAAInI,EAAImuD,YAAY/iD,YAAY,CAAC,OAAS,QAAQ7K,MAAM,CAAC,WAAaP,EAAIyjG,oBAAoB,iBAAkB,EAAK,cAAe,EAAK,iBAAkB,EAAK,aAAc,EAAK,mBAAqB,aAAa,OAAS,CAAEl3E,SAAS,GAAQ,eAAiB,GAAG,iBAAkB,EAAM,MAAQ,OAAO,UAAY,CAAE/tB,KAAM,YAAa,OAAS,QAAQyJ,GAAG,CAAC,sBAAsBjI,EAAI0jG,mBAAmB,gBAAgB1jG,EAAIyK,eAAe,eAAezK,EAAIsjC,cAAc,gBAAgBtjC,EAAIqjC,gBAAgBtiC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,YAAYqC,GAAG,SAASkH,GACt+B,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,eAAe,CAAC6H,GAAG,CAAC,aAAe,SAASC,GAAQ,OAAOlI,EAAI2jG,WAAWz7F,EAAOzM,KAAQ0yB,MAAM,CAAC7vB,MAAO7C,EAAKA,KAAsB,kBAAE2yB,SAAS,SAAUC,GAAMruB,EAAIyhB,KAAKhmB,EAAKA,KAAM,oBAAqB4yB,IAAM/kB,WAAW,oCAAoC,CAAC1K,IAAI,kCAAkCqC,GAAG,SAASkH,GACzT,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,OAAO,KAAO,uBAAuB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jG,gBAAgBnoG,EAAMuE,EAAI6jG,2BAA2B,CAACjlG,IAAI,iCAAiCqC,GAAG,SAASkH,GAC3O,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,OAAO,KAAO,sBAAsB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jG,gBAAgBnoG,EAAMuE,EAAI8jG,6BAA6B,CAAC1jG,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,GAAG,QAAU,sBAAsB,gBAAgB,YAAY,OAAQ,EAAK,iBAAiB,OAAO,aAAa,uBAAuBH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,QAAU,SAAS,OAAQ,EAAK,iBAAiB,OAAO,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,2BAA2B,YAAY,SAAS,QAAU,uBAAuB,OAAQ,EAAK,iBAAiB,OAAO,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,kBAAkB,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,SAAS,YAAY,OAAO,QAAU,UAAU,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,UAAU,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,oBAAoB,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,oBAAoB,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,mBAAmB,YAAY,SAAS,QAAU,cAAc,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,YAAY,YAAY,OAAO,QAAU,cAAc,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAU,sBAAsB,gBAAgB,kCAAkC,mBAAkB,EAAM,iBAAgB,EAAM,iBAAgB,EAAM,OAAQ,EAAK,iBAAiB,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAU,qBAAqB,gBAAgB,iCAAiC,mBAAkB,EAAM,iBAAgB,EAAM,iBAAgB,EAAM,OAAQ,EAAK,iBAAiB,WAAWH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,MAAS,IAAI,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIwuD,OAAQ,SAAW,QAAQ,QAAU,YAAYpuD,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI+jG,eAAe97F,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+jG,cAAc77F,MAAW9H,EAAG,4BAA4B,CAAC+H,IAAInI,EAAIgkG,2BAA2B/7F,GAAG,CAAC,OAASjI,EAAIikG,oCAAoC,IACruF,GAAkB,GCDTC,GAAb,WAGI,WAAYrzF,GAAe,uBACvB5Q,KAAK0D,OAAS,IAAIC,2BAAsBR,EAA1B,UAAoCyN,EAApC,qBAJtB,uDAOW,SAAiBlE,EAAsB86E,EAAoC0c,GAC9E,OAAOlkG,KAAK0D,OAAOiJ,YAAZ,gBAAiC66E,EAAjC,YAAmD0c,GAAax3F,KAR/E,uBAWW,SAAUy3F,EAAqB3c,GAClC,OAAOxnF,KAAK0D,OAAOK,SAAZ,yBAAuCyjF,GAAkB2c,KAZxE,oFAeW,WAAoBz3F,GAApB,iGACU1M,KAAK0D,OAAOiJ,YAAZ,kBAA2CD,GADrD,wFAfX,iJAmBW,WAAuBV,EAAgBY,GAAvC,iGACU5M,KAAK0D,OAAOiL,QAAQxK,oBAAe23D,IAAnC,gCAAiE9vD,EAAjE,YAA6EY,IADvF,wFAnBX,oELNA,SAAYg2F,GACRA,8BACAA,6BAFJ,CAAYA,QAAc,KMA1B,IAAI,GAAS,WAAa,IAAI7iG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQP,EAAIW,MAAM,OAAS,OAAO,MAAQ,OAAO,aAAa,MAAM,YAAY,MAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAI2tD,WAAW,CAACvtD,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+6C,SAAS,CAAC,UAAYn7C,EAAIwH,GAAGxH,EAAI+P,YAAY3P,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIqkG,kBAAkB,eAAerkG,EAAIskG,uBAAuB,MAAQtkG,EAAIwI,eAAeP,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwI,cAAcN,OAAY,KAAK9H,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,SAAS,QAAU,SAAS,QAAUP,EAAIukG,oBAAoBnkG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,SAAS,QAAU,SAAS,QAAUP,EAAIwkG,oBAAoB,IAAI,IACx2B,GAAkB,G,sdC2DtB,IAAqBC,GAAuB,4CAA5C,iD,0BACmB,EAAAh0F,aAA6B,IAAIjC,GAE1C,EAAAyX,YAAsB,EAE9B,EAAAtiB,OAA2B,KAC3B,EAAAqb,aAA+B,KAC/B,EAAA0lF,WAA6B7B,GAAe8B,SAC5C,EAAAn8F,cAAwC,KAR1C,EAA4C,+GAW1C,qGACEvI,KAAKuI,cAAgB,KADvB,SAEQvI,KAAKokG,kBAAkBn4E,SAF/B,gDAX0C,0EAgB1C,WACE,MAAO,UAAP,OAAiBjsB,KAAK2kG,eAAtB,+BAA2D3kG,KAAK4kG,cAjBxB,mBAoB1C,WACE,MAAO,2CAAP,OAAkD5kG,KAAK2kG,eAAvD,kDAA+G3kG,KAAK4kG,WAApH,4BArBwC,sBAwB1C,WACE,OAAsB,MAAf5kG,KAAK0D,OAAiB1D,KAAK0D,OAAOkI,WAAa,mBAzBd,0BA4B1C,WACE,OAAQ5L,KAAKykG,YACX,KAAK7B,GAAe8B,SAClB,MAAO,WACT,KAAK9B,GAAeiC,QAClB,MAAO,aAjC6B,6BAqC1C,WACE,OAAO,IAAIh/E,KAAW,CACpB1iB,MAAOnD,KAAK8kG,WACZ7pF,UAAU,EACV6K,SAAU,QAzC4B,sBA6C1C,WACE,OAAO,IAAIrV,KAAY,CACrB9R,IAAK,UACL+R,SAAU,MACVC,KAAM3Q,KAAKg+F,qBAjD2B,uFAqDlC,uGACa,MAAfh+F,KAAK0D,OADH,yCAEG,IAFH,uBAKc1D,KAAKwQ,aAAau0F,6BAA6B/kG,KAAK0D,OAAOmI,UALzE,cAKF8F,EALE,OAMFA,EAAQ3V,OAAS,IACnBgE,KAAKuI,cAAgBoJ,EAAQ,IAPzB,kBAUCA,GAVD,gDArDkC,qFAkE1C,WACE,MAAO,CACLhG,KAAM,MACNkE,KAAM,UACN8O,YAAa,OACbkD,QAAS7hB,KAAKglG,OAvEwB,2BA2E1C,WACE,MAAO,CACLr5F,KAAM,KACNkE,KAAM,UACN8O,YAAa,OACbkD,QAAS7hB,KAAKilG,MAhFwB,kBAoF1C,WACEjlG,KAAKgmB,YAAa,IArFsB,0EAwF1C,6GACM/G,GAAS,EAEa,MAAtBjf,KAAKuI,eAA0BvI,KAAKuI,cAAc28F,kBAHxD,uBAIQp1F,EAAU,8DACVpP,EAAQ,kCALhB,SAO2Bse,sBAAQlP,EAASpP,GAP5C,OAOQykG,EAPR,OAQIlmF,GAAUkmF,EARd,OAWOlmF,GACHjf,KAAKuuD,OAAM,GAZf,gDAxF0C,yEAwG1C,WACEvuD,KAAKuuD,OAAM,KAzG6B,mBA4GlC,SAAMxvC,GACZ/e,KAAK+e,aAAeA,EACpB/e,KAAKgmB,YAAa,IA9GsB,uBAiHlC,WACNhmB,KAAK+e,aAAe,OAlHoB,sBAsHlC,WACN,OAAO/e,KAAK+e,eAvH4B,oCA0HlC,SAAuBq4E,GAC7B,GAAa,MAATA,EACF,MAAO,GAGT,IAAIllE,EAAS,UACTkzE,EAAkBhO,EAAMgB,YAAYpmF,MAAK,SAAAtS,GAAC,OAAIA,EAAEm6F,mBAAqBzS,GAAmBiB,mBAC5F,GAAuB,MAAnB+c,EACF,GAAqC,MAAjCA,EAAgBxL,cAAuB,CACzC,IAAIyL,EAAW/2D,KAAO82D,EAAgBxL,eAAe7iF,OAAO,YAC5Dmb,EAAS,WAAH,OAAcmzE,QAEpBnzE,EAAS,eAIb,MAAO,GAAP,OAAUklE,EAAMvlF,UAAhB,aAA8BqgB,OA1IU,GAASrvB,cAWnDb,gBADCuW,gBAAM,WACP,qCA2GAvW,gBADCqjE,gBAAK,WACN,8BAtHmBm/B,GAAuB,gBAP3Cr9F,gBAAU,CACTL,WAAY,CACVwY,sBACAjG,8BACA4Q,sCAGiBu6E,cC5DiZ,MCOla,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dC2Lf,IAAqBc,GAAa,4CAM9B,iDACI,eANa,EAAA1B,mBAAqChB,GAAe8B,SACpD,EAAAb,kBAAoCjB,GAAeiC,QACnD,EAAAd,2BAAqC,6BAC9C,EAAA/9E,YAAsB,EAU9B,EAAAu/E,eAAyB,GACzB,EAAAnhD,YAAuB,GACvB,EAAAC,gBAA0B,EAC1B,EAAAy/C,eAAyB,EACzB,EAAA0B,uBAAsC,GACtC,EAAAC,qBAAoC,GAG3B,EAAAv3C,YAAsB,cAd3B,EAAKw3C,uBAAyB,IAAIzB,GAAuB,QACzD,EAAKzzF,aAAe,IAAIjC,GAExB4iB,iBAAmB,KALvB,EAN8B,6CAwB9B,WACE,OAAQnxB,KAAKuP,MAAMvP,KAAKkuD,aAA4B98C,WAzBxB,mCA4B9B,WACE,OAAOpR,KAAKuP,MAAMvP,KAAK+jG,8BA7BK,kBAgC9B,WACE/jG,KAAKgmB,YAAa,IAjCU,mBAoC9B,WACEhmB,KAAKgmB,YAAa,IArCU,+BAwC9B,WAAuB,WACnB,OAAO,IAAIvV,KAAY,CACnB9R,IAAK,WACL+R,SAAU,MACVC,KAAM,SAAAjE,GACF,OAAK,EAAKsZ,WAIH,EAAK0/E,uBACPC,cAAcj5F,GACdrG,MAAK,SAAAxJ,GACF,IAAIrB,EAAOqB,EAAOrB,KAElB,OADA,EAAKoqG,2BAA2BpqG,GACzBA,KAEV8K,OAAM,SAAAulB,GACH,MAAO,MAXJ,IAcfhP,OAAQ,SAACle,EAAK+d,GACV,OAAI/d,EACO,EAAK6R,aAAak4E,qBAAqB/pF,GACzC0H,MAAK,WACF,OAAOqW,KAEVpW,OAAM,SAAAulB,GACHtlB,IAAO,qCAAsC,QAAS,QAGvD7B,QAAQ5E,eAtED,wCA4E9B,SAA2BtE,GACvBwE,KAAKwlG,uBAAyBhqG,EAAKoI,QAAO,SAAAiB,GAAI,OAAIA,EAAKqgG,qBAAmB7lG,KAAI,SAAAwF,GAAI,OAAIA,EAAKgH,YAC3F7L,KAAKylG,qBAAuBtgG,IAAEihB,UAAUpmB,KAAKwlG,0BA9EnB,2BAiF9B,SAAc9lG,GACW,MAAjBM,KAAKue,UACPve,KAAKue,SAAS2hE,UAGhBlgF,KAAKylG,qBAAuB,GAC5BzlG,KAAKwlG,uBAAyB,GAC9BxlG,KAAKimB,MAAM,2BAxFe,0BA2F9B,SAAavmB,GACY,MAAjBM,KAAKue,UACLve,KAAKue,SAAS2hE,YA7FQ,gCAiG9B,SAAmBxgF,GACN,MAALA,GAAwB,MAAXA,EAAE2U,QACf3U,EAAE2U,MAAMvE,QAAU,0BAnGI,4BAuG9B,SAAepQ,GACNA,EAAEuH,UAAUimB,aACbxtB,EAAEuH,UAAUqF,OAAO,kBAAmBtM,KAAKwlG,0BAzGrB,2BA6G9B,SAAc9lG,GACO,QAAbA,EAAEyT,SAAqBzT,EAAElE,MACrBkE,EAAElE,KAAKqqG,yBAA2B,IAClCnmG,EAAEo3C,WAAWz2C,MAAM,oBAAsB,aAhHvB,4BAqH9B,SAAeX,GACO,SAAdA,EAAEyT,SAAsBzT,EAAElE,MAC1BkE,EAAE8T,YAAYsyF,aAAa,KAA3B,gBAA0CpmG,EAAEqgD,YAA5C,YAA2DrgD,EAAElE,KAAKoQ,eAvH5C,6BA2H9B,SAAgBpQ,EAAWipG,GACb,MAARjpG,GAA6B,MAAbA,EAAKA,OACvBwE,KAAK+lG,wBAAwBtB,WAAaA,EAC1CzkG,KAAK+lG,wBAAwBriG,OAAS,CACpCmI,SAAUrQ,EAAKA,KAAKqQ,SACpBD,WAAYpQ,EAAKA,KAAKoQ,YAGxB5L,KAAK+lG,wBAAwB3tD,UAnIH,sGAuItB,kHAC4C,IAA9Cp4C,KAAK+lG,wBAAwBhnF,cAAuE,MAA9C/e,KAAK+lG,wBAAwBx9F,gBACjFszF,EAAY77F,KAAK+lG,wBAAwBx9F,cAAcsJ,UACvD8yF,EAAiB3kG,KAAK+lG,wBAAwBpB,eAC9CC,EAAa5kG,KAAK+lG,wBAAwBx9F,cAAcqD,WAE5DrF,IAAO,iBAAD,OAAkBs1F,EAAlB,YAA+B8I,EAA/B,wBAA6DC,EAA7D,OAA8E,QACpF5kG,KAAK8jG,eAAgB,EAEjBp3F,EAAsC,CACxCs5F,WAAYhmG,KAAK+lG,wBAAwBtB,WACzCwB,WAAW,GAGbjmG,KAAKwQ,aAAa01F,WAAWlmG,KAAK+lG,wBAAwBx9F,cAAcuJ,QAASpF,GAC9ErG,MAAK,SAAAwN,GACJtN,IAAO,SAAD,OAAUs1F,EAAV,YAAuB8I,EAAvB,wBAAqDC,EAArD,kIAC+E,WAChE,MAAjB,EAAKrmF,UACP,EAAKA,SAAS2hE,aAGjB55E,OAAM,SAAAmtB,GACL,IAAI3jB,EAAU,wBAAH,OAA2B+rF,EAA3B,YAAwC8I,EAAxC,wBAAsEC,EAAtE,KACG,MAAVnxE,GAAoC,MAAlBA,EAAO3f,UAC3BhE,GAAW,IAAJ,OAAQ2jB,EAAO3f,UAGxBsf,KAAOjL,MAAMrY,EAAS,4BAEvBmE,SAAQ,WACP,EAAK6vF,eAAgB,MA/BrB,gDAvIsB,iFA2K9B,SAAWpkG,EAAQlE,GAAS,WACrBkE,EAAErB,OAAS7C,EAAKA,KAAKqqG,yBAA2B,EAC/CzyE,KAAOpU,QAAP,aAAqBxjB,EAAKA,KAAKoQ,WAA/B,oBAAqDpQ,EAAKA,KAAK2qG,gBAA/D,6BAAmG3qG,EAAKA,KAAKqqG,yBAA7G,iCACMrqG,EAAKA,KAAKqqG,yBAA2B,EAAI,QAAS,OADxD,iGAEM,yBACDx/F,MAAK,SAAAguB,GACCA,EACC,EAAKmvE,oBAAoB3mF,OAAOrhB,EAAKA,KAAKqQ,SAAUrQ,EAAKA,KAAKqQ,UAG9DrQ,EAAKA,KAAK0pG,mBAAoB,EAElC,EAAK3mF,SAAUq2E,cAIvB50F,KAAKwjG,oBAAoB3mF,OAAOrhB,EAAKA,KAAKqQ,SAAUrQ,EAAKA,KAAKqQ,UAC9D7L,KAAKue,SAAUq2E,eA5LO,GAAS/xF,cAAtByiG,GAAa,gBAnBjCn+F,gBAAU,CACTL,WAAY,CACV4iB,gBACA/Q,wBACAiR,4CACA7J,wBACAC,sBACA6J,8BACAI,kCACAF,8BACA9Q,0BACAH,0BACA6Q,4BACA9Q,8BACAmR,iBACApR,wBACA4rF,+BAGiBc,cC7MsY,MCOvZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIvlG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,IAAI,OAAS,OAAO,cAAa,EAAK,MAAQP,EAAIW,MAAM,gBAAe,EAAM,0BAAyB,EAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAImtD,SAAS,wBAAwBntD,EAAIqmG,mBAAmBtlG,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,UAAUqC,GAAG,SAASkH,GAC/bA,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACe,YAAY,yBAAyBiK,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,eAAe,CAAC+H,IAAI,aAAa5H,MAAM,CAAC,OAAS,QAAQ,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,uBAAwB,EAAK,qBAAsB,EAAK,uBAAwB,EAAM,mBAAqB,aAAa,iBAAkB,GAAM0H,GAAG,CAAC,aAAejI,EAAIs5C,eAAe,CAACl5C,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,qBAAqB,aAAaH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,kBAAkB,WAAW,wBAAwB,SAAS,UAAW,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,uBAAuB,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,SAAS,QAAU,aAAaH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,SAAU,MAAU,GAAGH,EAAG,MAAM,CAACA,EAAG,KAAK,CAACJ,EAAIuH,GAAG,WAAWnH,EAAG,WAAW,CAAC+I,WAAW,CAAC,CAACtL,KAAK,QAAQuL,QAAQ,UAAU9K,MAAO0B,EAAS,MAAEsJ,WAAW,UAAU8B,YAAY,CAAC,MAAQ,QAAQ+vC,SAAS,CAAC,MAASn7C,EAAS,OAAGiI,GAAG,CAAC,MAAQ,SAASC,GAAWA,EAAO8+C,OAAOs/C,YAAqBtmG,EAAIwuC,MAAMtmC,EAAO8+C,OAAO1oD,aAAY8B,EAAG,MAAMA,EAAG,MAAM,CAACA,EAAG,OAAO,CAACgL,YAAY,CAAC,MAAQ,QAAQ,CAACpL,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIumG,iBAAiBnmG,EAAG,MAAM,CAACgL,YAAY,CAAC,MAAQ,UAAU,CAAChL,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIwuD,QAAQ,CAACxuD,EAAIuH,GAAG,4BAA4BnH,EAAG,YAAY,CAACgL,YAAY,CAAC,cAAc,QAAQ7K,MAAM,CAAC,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIqmG,oBAAoB,CAACrmG,EAAIuH,GAAG,YAAY,IAAI,YAClsD,GAAkB,G,sdC4EtB,IAAMwmC,GAActpC,uBAAUnB,IAAcF,GAkBvBojG,GAA0B,4CAmC3C,iDACI,eAnCI,EAAAvgF,YAAsB,EAE9B,EAAAha,SAAiB,GACjB,EAAAw6F,YAAsB,EACtB,EAAAhf,eAAqC/hB,GAAmBgI,OAIxD,EAAAl/B,MAAgB,GAChB,EAAA+3D,WAAqB,GA2BjB,EAAKZ,uBAAyB,IAAIzB,GAAuB,QACzD,EAAKvgG,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IAHzD,EAnC2C,6CAY3C,WACE,OAAQrQ,KAAKuP,MAAM,cAA6B6B,WAbP,wBAgB3C,WACE,MAAO,qCAAP,OAA4CpR,KAAKwnF,kBAjBR,iBAoB3C,WACI,OAAIxnF,KAAKwnF,iBAAmB/hB,GAAmBgI,OACpC,2CACAztE,KAAKwnF,iBAAmB/hB,GAAmBkI,SAC3C,uCADJ,IAvBgC,+BA6B3C,SAAkBtvE,EAAgB6nB,GAC1B7nB,IACA2B,KAAKsmG,WAAa,MA/BiB,kBAyC3C,WACEtmG,KAAKgmB,YAAa,IA1CuB,mBA6C3C,WACEhmB,KAAKgmB,YAAa,IA9CuB,uBAiD3C,SAAUtmB,GAAM,WACVM,KAAKue,WACPve,KAAKue,SAASjS,OAAO,aAActM,KAAKua,YACxCva,KAAKue,SAAS2hE,UACX75E,MAAK,WACA,EAAKkY,UACP,EAAKA,SAAS0mD,gBAAgBG,SAAS,MAI7CplE,KAAKue,SAASjS,OAAO,kBAAmBtM,KAAKwmG,WAAa,KAAO,KAGnExmG,KAAKuuC,MAAQvuC,KAAKwmG,WAAa,6BAA+B14D,GAAY24D,kBAAkBC,SAAW,KA9D9D,sBAiE3C,SAAShnG,GACHM,KAAKue,WACPve,KAAKue,SAASjS,OAAO,aAAc,IACnCtM,KAAKue,SAASjS,OAAO,kBAAmB,KAG1CtM,KAAKuuC,MAAQ,KAvE4B,sBA0E3C,WAAc,WACV,OAAO,IAAI99B,KAAY,CACnB9R,IAAK,WACLgS,KAAM,SAAA4L,GACF,OAAO,EAAK7Y,OAAOK,SAAS,EAAK4iG,aAAL,oBAAiC,EAAK36F,UAAYuQ,GACzElW,MAAK,SAAAxJ,GACF,IAAKA,EAAO+mB,KACR,MAAM/mB,EAEV,OAAOA,EAAO+mB,QAEjBtd,OAAM,SAAAzJ,GACH,MAAIA,GAAUA,EAAOiX,QACXjX,EAAOiX,QAEP,8BAzFa,0BAgG3C,SAAapU,GACLA,EAAEuH,UAAU65C,oBACZphD,EAAEuH,UAAU65C,qBAAsB,GAElCphD,EAAEuH,UAAU65C,qBAAsB,EAClCphD,EAAEuH,UAAU63C,aAAa,iBAAkB,QAAS,IACpDp/C,EAAEuH,UAAU85C,sBAtGuB,wFA0G3C,8GACS/gD,KAAKue,SADd,iEAKgCve,KAAKue,SAAS0O,qBAL9C,OAKQD,EALR,OAOQA,EAAgBhxB,OAAS,EACzBgE,KAAK0lG,uBAAuBkB,UAAU,CAAEC,eAAgB75E,EAAiBuhB,MAAOvuC,KAAKuuC,OAASvuC,KAAKwnF,gBAC9FnhF,MAAK,SAAAxJ,GACF,GAAI,EAAK2qF,iBAAmB/hB,GAAmBgI,OAC3C,EAAKxvD,QAAQ3hB,KAAb,4BAAuCO,EAAO+mB,YAC3C,GAAI,EAAK4jE,iBAAmB/hB,GAAmBkI,SAAU,CAC5D,IAAIxB,EAAYhnE,IAAEiH,KAAK4gB,GAAiBhxB,OACxC,EAAKiiB,QAAQ3hB,KAAb,oBAA+BO,EAAO+mB,KAAtC,kBAAoDuoD,SAEpD,EAAK5d,WAIjBvuD,KAAKsmG,WAAa,uCApB1B,gDA1G2C,8DAASzjG,SA6BpDb,gBADCuW,gBAAM,eACP,uCA7BiBguF,GAA0B,gBAhB9Cp/F,gBAAU,CACPL,WAAY,CACR4iB,4BACAC,4BACA3J,sBACAD,wBACA6J,4CACAC,8BACAlR,wBACAC,wBACA4G,oCACAuK,8BACAkE,8BACAjE,qBAGau8E,cCjGmY,MCOpZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIxmG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,KAAK,CAACJ,EAAIuH,GAAG,SAASvH,EAAIwH,GAAGxH,EAAIW,OAAO,UAAUP,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI+mG,mBAAmB9+F,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+mG,kBAAkB7+F,MAAW9H,EAAG,YAAY,CAAC+H,IAAI,sBAAsB5H,MAAM,CAAC,IAAMP,EAAIgnG,eAAe,eAAgB,EAAM,eAAgB,EAAM,uBAAwB,EAAM,iBAAkB,EAAM,qBAAsB,EAAM,uBAAwB,EAAM,WAAa,4BAA4B,uBAAsB,EAAK,qBAAoB,GAAM/+F,GAAG,CAAC,YAAYjI,EAAIinG,WAAW,eAAejnG,EAAIsjC,cAAc,gBAAgBtjC,EAAIyK,gBAAgB1J,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,6BAA6BqC,GAAG,SAASkH,GAC5wB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKiP,aAAa7G,QAAO,SAAU9H,GAAK,MAAkB,qBAAXA,EAAE8B,QAAgC,GAAGS,aAAa,CAACM,IAAI,iCAAiCqC,GAAG,SAASkH,GACnL,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,kBAAkB,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM9E,EAAKA,KAAKyrG,WAAW,MAAQzrG,EAAKA,KAAK0rG,qBAAqB,CAACvoG,IAAI,sCAAsCqC,GAAG,SAASkH,GACtK,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,kBAAkB,CAACG,MAAM,CAAC,IAAM,EAAE,IAAM9E,EAAKA,KAAK2rG,kBAAkB,MAAQ3rG,EAAKA,KAAK4rG,wBAAwB,CAACzoG,IAAI,+BAA+BqC,GAAG,SAASkH,GACzK,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,iCAAiC,CAACH,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,YAAc,aAAa0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIsnG,oBAAoB7rG,EAAKA,SAAS,CAACuE,EAAIuH,GAAG,oBAAoB,QAAQ,CAACnH,EAAG,cAAc,CAACG,MAAM,CAAC,eAAgB,EAAM,WAAa,cAAcH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,UAAUH,EAAG,gCAAgC,CAACG,MAAM,CAAC,aAAa,OAAO,eAAe,sBAAsBH,EAAG,aAAa,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,eAAe,MAAM,OAAS,cAAc,KAAO,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,eAAe,MAAM,OAAS,YAAY,KAAO,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,eAAe,MAAM,mBAAkB,EAAK,iBAAiB,MAAM,OAAS,uBAAuBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,eAAe,MAAM,mBAAkB,EAAK,iBAAiB,MAAM,OAAS,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,eAAe,MAAM,mBAAkB,EAAK,iBAAiB,MAAM,OAAS,iBAAiB,GAAGH,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAY,EAAK,QAAS,EAAK,SAAU,EAAK,UAAW,EAAK,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAc,EAAE,aAAa,cAAc,kBAAoB,gCAAgCH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,YAAY,SAAS,QAAU,mBAA0C,GAAtBP,EAAIynF,eAAqBrnF,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,aAAa,YAAY,SAAS,MAAQ,SAASP,EAAIyI,KAA4B,GAAtBzI,EAAIynF,eAAqBrnF,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,mBAAmB,QAAU,cAAc,YAAY,SAAS,MAAQ,SAASP,EAAIyI,KAA4B,GAAtBzI,EAAIynF,eAAqBrnF,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,QAAU,gBAAgB,YAAY,SAAS,MAAQ,SAASP,EAAIyI,KAAKrI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,WAAW,QAAU,eAAe,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,WAAW,QAAU,WAAW,MAAQ,SAAgC,GAAtBP,EAAIynF,eAAqBrnF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,WAAW,gBAAgB,oCAAoCP,EAAIyI,KAA4B,GAAtBzI,EAAIynF,eAAqBrnF,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,WAAW,gBAAgB,yCAAyCP,EAAIyI,KAAKrI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,mBAAkB,EAAM,gBAAgB,+BAA+B,MAAQ,UAAU,IAAI,IACriF,GAAkB,G,sdC4GtB,IAAqBgnG,GAAW,4CAoB9B,iDACE,eApBK,EAAA/3F,MAEH,GAQJ,EAAAw3F,eAAA,uCAAyD,EAAKvf,gBAEtD,EAAA+f,WAAqB,EACrB,EAAA7jG,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAy9B,YAActpC,uBAAUnB,IAAc,EAAKgN,QAG3C,EAAAy2F,mBAA6B,EAInC,EAAKt2F,aAAe,IAAIjC,GACxB,EAAKqX,gBAAkB,IAAId,GAH7B,EApB8B,8CA0B9B,WACE,GAAI9kB,KAAKuP,MAAMi4F,oBAAqB,CAClC,IAAIt5C,EAAcluD,KAAKuP,MAAMi4F,oBAC7BxnG,KAAKgxC,WAAakd,EAAY3+C,MAAMyhC,WAAW5/B,YA7BrB,6BAiC9B,WACMpR,KAAKuP,MAAMi4F,qBACZxnG,KAAKuP,MAAMi4F,oBAA4BrsE,oBAnCd,8BAuC9B,WACMn7B,KAAKgxC,YAEPhxC,KAAKgxC,WAAWmiC,UAAUnzE,KAAKgxC,WAAW6tB,iBAAiB,MA1CjC,2BA8C9B,SAAcn/D,GACZ,GAAkB,SAAdA,EAAEyT,SAAsBzT,EAAElE,KAAK6hE,aAAc,CAC/C,IAAIx/C,EAAW7d,KAAKynG,mBAAmB/nG,GACvCA,EAAEo3C,WAAWxN,iBAAiB,YAAY,SAACjzB,GACrB,IAAhBA,EAAMqxF,OAA2B,MAAZ7pF,IACvBxH,EAAMuzB,iBACNvzB,EAAMyjB,kBACN56B,OAAO05C,KAAK/6B,EAAS8pF,KAAM,iBArDL,gCA2DtB,SAAmBjoG,GACzB,GAAIA,EAAElE,KAAK6hE,aACT,OAAQr9D,KAAKwnF,gBACX,KAAK/hB,GAAmBgI,OACtB,OAAOztE,KAAKie,QAAQne,QAAb,4BAA0CJ,EAAElE,KAAK6hE,eAC1D,KAAKoI,GAAmBkI,SACtB,OAAO3tE,KAAKie,QAAQne,QAAb,oBAAkCJ,EAAElE,KAAK6hE,aAAzC,kBAA+D39D,EAAElE,KAAK2rG,oBAC/E,QACE,UAnEsB,wBAwE9B,SAAWznG,GACT,GAAkB,SAAdA,EAAEyT,SAAsBzT,EAAElE,KAAK6hE,aACjC,OAAQr9D,KAAKwnF,gBACX,KAAK/hB,GAAmBgI,OACtBztE,KAAKie,QAAQ3hB,KAAb,4BAAuCoD,EAAElE,KAAK6hE,eAC9C,MACF,KAAKoI,GAAmBkI,SACtB3tE,KAAKie,QAAQ3hB,KAAb,oBAA+BoD,EAAElE,KAAK6hE,aAAtC,kBAA4D39D,EAAElE,KAAK2rG,oBACnE,MACF,QACE,SAlFsB,4BAuF9B,SAAeznG,GACTM,KAAKunG,YACPvnG,KAAK4nG,mBACL5nG,KAAKunG,WAAY,KA1FS,0FA8F9B,WAA0B/rG,GAA1B,yHACMqsG,EAAgB7nG,KAAK8tC,YAAYI,QAAQ45D,GAEzCC,EAAcF,IAAkBrsG,EAAKwsG,YACrC,OADc,UAEXxsG,EAAKysG,UAFM,MAIdC,EAAyC,IAA3B1sG,EAAK2rG,kBAA0B,OAAS,QACtDr3F,EARN,2CAQoDi4F,EARpD,qBAQ4EvsG,EAAK2rG,kBARjF,YAQsGe,EARtG,gBAQyH1sG,EAAKoQ,WAR9H,cAS+BwnB,KAAOpU,QAAQlP,EAAS,WATvD,UASMq4F,EATN,QAWMA,EAXN,wBAYI5hG,IAAO,4BAA6B,OAAQ,KAC5CvG,KAAK8mG,mBAAoB,EAb7B,UAcU9mG,KAAK0D,OAAOQ,YAAYC,oBAAeC,KAAvC,2BAAiE5I,EAAK6hE,aAAtE,qBACHh3D,MAAK,SAAAxJ,GACJ0J,IAAO,qCAAsC,UAAW,QAEzDD,OAAM,SAAAmtB,GACLltB,IAAO,+CAAgD,QAAS,QAEjE0N,SAAQ,WACP,EAAK6yF,mBAAoB,KAtBjC,WAyBQ9mG,KAAKwnF,iBAAmB/hB,GAAmBkI,SAzBnD,kCA0BmC3tE,KAAK4lB,gBAAgBuiE,eAAe3sF,EAAKqQ,UA1B5E,WA0BYs8E,EA1BZ,QA2BUA,EAAeh5C,MA3BzB,wBA4BcpqB,EAA6B,CACjCqjE,eAAgBhB,GAAmBiB,gBACnCC,mBAAoBjB,GAAuBkB,eA9BrD,oBAkC6BvoF,KAAKwQ,aAAag4E,sBAAsBhtF,EAAKqQ,SAAUkZ,GAlCpF,WAkCgBgY,EAlChB,OAmC+C,MAAjCA,EAAKnZ,KAAK6kE,oBAnCxB,wBAoCkB2f,EAAiBpoG,KAAK01C,SAASC,QAAgBrH,OAAOvR,EAAM,cAC5DsrE,EArClB,iFAqC+GD,EArC/G,eAsC8Ch1E,KAAOpU,QAAQqpF,EAAkB,WAtC/E,WAsCkBC,EAtClB,QAuCgBA,EAvChB,kCAwCoBtoG,KAAKwQ,aAAak4E,qBAAqBltF,EAAKqQ,UAxChE,uCA4CYtF,IAAO,0CAA0C,QAAS,KA5CtE,wFAgDUA,IAAO,yCAAyC,QAAS,KAhDnE,2BAsDIvG,KAAKimB,MAAM,yBAtDf,kCAyDS,GAzDT,2DA9F8B,+DAASpjB,cAMvCb,gBADCwnB,mBACD,6BAGAxnB,gBADCwnB,mBACD,sCATmB89E,GAAW,gBAf/BngG,gBAAU,CACTL,WAAY,CACV0R,uBACAe,kCACAZ,wBACAiR,4CACA2+E,4BACArvF,0BACAC,8BACAqvF,wDACAC,0BACA7vF,wBACAC,kCAGiByuF,cCrHoY,MCQrZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIvnG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACe,YAAY,wBAAwBZ,MAAM,CAAC,QAAUP,EAAIimB,WAAW,MAAQ,SAAS,MAAQ,MAAM,OAAS,OAAOhe,GAAG,CAAC,OAASjI,EAAI2oG,YAAY,iBAAiB,SAASzgG,GAAQlI,EAAIimB,WAAW/d,KAAU,CAAC9H,EAAG,iBAAiB,CAACA,EAAG,oBAAoB,CAACG,MAAM,CAAC,SAAYP,EAAI4oG,gBAAkB5oG,EAAIiU,cAAiBjU,EAAI6oG,gBAAgBzoG,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACgL,YAAY,CAAC,gBAAgB,QAAQ7K,MAAM,CAAC,KAAO,QAAQ,QAAUP,EAAIiU,aAAa,QAAS,MAAS,GAAG7T,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAI4oG,gBAAkB5oG,EAAI6oG,aAAcv/F,WAAW,mCAAmCnI,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,YAAYnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,eAAgB,EAAK,MAAQ3L,EAAIiM,SAAS,aAAa,WAAW,eAAe,aAAa,qBAAoB,EAAK,YAAc,SAAShE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIiM,SAAS/D,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAMrvF,EAAI8oG,oBAAsB9oG,EAAIiU,aAAc7T,EAAG,qBAAqB,CAACA,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI4R,QAAQ,eAAgB,EAAK,MAAQ5R,EAAI6M,QAAQ,UAAY7M,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI6M,QAAQ3E,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,eAAgB,EAAK,MAAQ33B,EAAIgpG,WAAW,UAAYhpG,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,2BAA0B,EAAK,mBAAmB,aAAa,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIgpG,WAAW9gG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,YAAYnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAIuN,OAAO,eAAgB,EAAK,MAAQvN,EAAIihC,SAAS,UAAYjhC,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,2BAA0B,EAAK,mBAAmB,aAAa,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIihC,SAAS/4B,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,iBAAiBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI28B,YAAY,eAAgB,EAAK,MAAQ38B,EAAIktE,aAAa,UAAYltE,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIktE,aAAahlE,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,eAAgB,EAAK,MAAQn8B,EAAIigE,YAAY,UAAYjgE,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIigE,YAAY/3D,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,iBAAiB,CAACG,MAAM,CAAC,MAAQP,EAAIipG,sBAAsB,UAAYjpG,EAAI+oG,gBAAgB,MAAQ/oG,EAAIkpG,YAAY,aAAa,QAAQ,eAAe,QAAQjhG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIkpG,YAAYhhG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,wBAAwBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAImpG,iBAAiB,UAAYnpG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAImpG,iBAAiBjhG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,yBAAyBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIopG,kBAAkB,UAAYppG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIopG,kBAAkBlhG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIqpG,SAAS,UAAYrpG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqpG,SAASnhG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,wBAAwBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAI2oD,iBAAiB,UAAY3oD,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI2oD,iBAAiBzgD,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,eAAe,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQP,EAAIwuC,MAAM,UAAYxuC,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwuC,MAAMtmC,GAAQ,OAASlI,EAAIspG,gBAAgB,OAAO,IAAI,GAAGlpG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIupG,2BAA2B,IACtuL,GAAkB,G,sdCyNtB,IAAqBC,GAAyB,4CAA9C,iD,0BACU,EAAAvjF,YAAsB,EAE9B,EAAAhS,aAAuB,GACvB,EAAA40F,cAAwB,EAYxB,EAAAl9F,QAAuB,GACvB,EAAAi9F,eAAyB,EAEzB,EAAAa,WAAuC,GACvC,EAAAX,mBAA6B,EAK7B,EAAAG,sBAA+B,CAC7B,CAAE3qG,MAAO,KAAMsN,KAAM,aACrB,CAAEtN,OAAO,EAAOsN,KAAM,uBACtB,CAAEtN,OAAO,EAAMsN,KAAM,yBAGvB,EAAAK,SAAwB,KACxB,EAAAY,QAAuB,KACvB,EAAAm8F,WAAuB,GACvB,EAAA/nE,SAAmB,GACnB,EAAAisC,aAA8B,KAC9B,EAAAjN,YAA6B,KAC7B,EAAAipC,YAA8B,KAC9B,EAAAC,kBAA4B,EAC5B,EAAAC,mBAA6B,EAC7B,EAAAC,UAAoB,EACpB,EAAA76D,MAAgB,GAChB,EAAAk7D,gBAA0B,EAC1B,EAAA/gD,kBAA4B,EAmIpB,EAAAhlD,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAC,cAA+B,IAAI/E,GA/K7C,EAA8C,2DAM5C,WACE,MAAO,CACLixB,UAAWx8B,KAAK8oG,iBAAmB9oG,KAAK4oG,aACxCj9F,KAAM,aACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAK0pG,aAZ0B,2BAqB5C,WACE,OAAO1pG,KAAKwpG,YAAcxpG,KAAKwpG,WAAWxtG,OAAS,IAtBT,+BA8C5C,SAAkBqC,EAAoB6nB,GAAqB,WACzDlmB,KAAK2pG,yBACL3pG,KAAKwpG,WAAa,GACN,MAATnrG,IACD2B,KAAK6oG,mBAAoB,EACzB7oG,KAAK0D,OAAOzF,IAAZ,qDAAwFI,IACrFgI,MAAK,SAAA7K,GACJ,EAAKguG,WAAahuG,EAClB,EAAKqtG,mBAAoB,KAE1BviG,MAAMtG,KAAK4pG,2BAxD0B,oCA4DpC,SAAuB/sG,GAC7B,IAAIiT,EAAUjT,GAAUA,EAAOiX,QAC3B,+BAAiCjX,EAAOiX,QACxC,GAEJ9T,KAAKgU,aAAe,+FAAiGlE,IAjE3E,8BAoEpC,WAAgB,WACtB,OAAO,SAACtU,EAAMquG,GAqBZ,MApBc,UAAVA,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAoB,MAAhB,EAAKiP,SAAmB,EAAKA,SAAWjP,EAAEmU,YAGtD,YAAV+3F,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAA+B,IAA3B,EAAKorG,WAAW/sG,QAAgB,EAAK+sG,WAAWjxF,SAASna,EAAEm7B,eAGvE,UAAV+wE,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAA6B,IAAzB,EAAKqjC,SAAShlC,QAAgB,EAAKglC,SAASlpB,SAASna,EAAE8P,aAGnE,eAAVo8F,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAyB,MAArB,EAAKsvE,cAAwB,EAAKA,cAAgBtvE,EAAEkgC,iBAGhE,UAAVgsE,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAwB,MAApB,EAAKqiE,aAAuB,EAAKA,aAAeriE,EAAEy+B,gBAGrE5gC,KA1FiC,+BA8FpC,SAAkBA,GAAqD,IAA/BsuG,EAA+B,wDACzEC,EAAa3gF,oBAAO5tB,GAAM,SAAAmC,GAAC,OAAIA,EAAEU,SACjC2rG,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEgO,QAI3C,OAHGm+F,IACDE,EAAaA,EAAWp2B,WAEnBo2B,IApGmC,mBAuG5C,WACE,OAAOhqG,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAASnqG,KAAI,SAAA1B,GAClF,MAAO,CACLgO,KAAMhO,EAAEkU,UACRxT,MAAOV,EAAEmU,aAET,KA7GsC,qBAgH5C,WACE,OAAO9R,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,WAAWnqG,KAAI,SAAA1B,GACpF,MAAO,CACLgO,KAAMhO,EAAEkd,YACRxc,MAAOV,EAAEm7B,iBApH6B,kBAyH5C,WACE,OAAO94B,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAASnqG,KAAI,SAAA1B,GAClF,MAAO,CACLgO,KAAMhO,EAAE6P,UACRnP,MAAOV,EAAE8P,eA7H6B,uBAkI5C,WACE,IAAIs1C,EAAe/iD,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,cACxDO,EAAa3gF,oBAAO25B,GAAc,SAAAplD,GAAC,OAAIA,EAAEkgC,gBACzCmsE,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEkgC,gBAC3C,OAAOmsE,EAAW3qG,KAAI,SAAA1B,GACpB,MAAO,CACLgO,KAAMhO,EAAEwsG,eACR9rG,MAAOV,EAAEkgC,mBAzI6B,sBA8I5C,WACE,IAAIklB,EAAe/iD,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAAS5lG,QAAO,SAAAjG,GAAC,OAAqB,MAAjBA,EAAEy+B,eAC/E2tE,EAAa3gF,oBAAO25B,GAAc,SAAAplD,GAAC,OAAIA,EAAEy+B,eACzC4tE,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEysG,kBAC3C,OAAOJ,EAAW3qG,KAAI,SAAA1B,GAEpB,MAAO,CACLgO,KAAMhO,EAAEwzE,cACR9yE,MAAOV,EAAEy+B,kBAtJ6B,yBA2J5C,WACE,MAAO,CACLiuE,eAAgB5kC,GAAmBgI,OAEnC5hE,SAAU7L,KAAKgM,SACf8F,QAAS9R,KAAK4M,QACd09F,WAAYtqG,KAAK+oG,WACjBwB,SAAUvqG,KAAKghC,SACfnD,aAAc79B,KAAKitE,aACnB7wC,YAAap8B,KAAKggE,YAClBwqC,YAAaxqG,KAAKipG,YAClBlzB,iBAAkB/1E,KAAKkpG,iBACvBlzB,kBAAmBh2E,KAAKmpG,kBACxBsB,SAAUzqG,KAAKopG,SACf9nE,MAAOthC,KAAKuuC,MACZguC,iBAAkBv8E,KAAK0oD,oBA1KiB,qBAiL5C,WAAO,WACL1oD,KAAKsQ,cAAc7E,SAASpF,MAAK,SAAAqF,GAC/B,EAAKA,QAAUA,EACf,EAAKi9F,eAAgB,KAEtBriG,MAAMtG,KAAK4pG,0BAtL8B,mBAyLpC,WACN5pG,KAAKgM,SAAW,KAChBhM,KAAK2pG,2BA3LqC,oCA8LpC,WACN3pG,KAAK4M,QAAU,KACf5M,KAAK+oG,WAAa,GAClB/oG,KAAKghC,SAAW,GAChBhhC,KAAKggE,YAAc,KACnBhgE,KAAKipG,YAAc,KACnBjpG,KAAKkpG,kBAAmB,EACxBlpG,KAAKmpG,mBAAoB,EACzBnpG,KAAKopG,UAAW,EAChBppG,KAAKgU,aAAe,GAEfhU,KAAKypG,iBACRzpG,KAAKuuC,MAAQ,MA1M2B,gCA8M5C,SAAmB7uC,GAAM,WACvB,IAAIM,KAAKypG,eAAT,CAIA,IAAIiB,EAAkB,GAEtB,GAAoB,MAAhB1qG,KAAK4M,QAAiB,CACxB,IAAIwqF,EAAQp3F,KAAK2R,QAAQK,MAAK,SAAAJ,GAAC,OAAIA,EAAEvT,QAAU,EAAKuO,WACvC,MAATwqF,GACFsT,EAAMpuG,KAAK86F,EAAMzrF,MAIrB,GAAI3L,KAAK+oG,WAAW/sG,OAAS,EAAG,CAC9B,IAAI07B,EAAsB,GAC1B13B,KAAK+oG,WAAW/5F,SAAQ,SAAAjC,GACtB,IAAIqa,EAAU,EAAKsQ,UAAU1lB,MAAK,SAAAtU,GAAC,OAAIA,EAAEW,QAAU0O,KACpC,MAAXqa,GACFsQ,EAAUp7B,KAAK8qB,EAAQzb,SAIvB+rB,EAAU17B,OAAS,GACrB0uG,EAAMpuG,KAAKw3B,oBAAO4D,GAAW5zB,KAAK,OAItC,GAAI9D,KAAKghC,SAAShlC,OAAS,EAAG,CAC5B,IAAIsR,EAAmB,GACvBtN,KAAKghC,SAAShyB,SAAQ,SAAAnC,GACpB,IAAIg0B,EAAQ,EAAKvzB,OAAO0E,MAAK,SAAAzE,GAAC,OAAIA,EAAElP,QAAUwO,KACjC,MAATg0B,GACFvzB,EAAOhR,KAAKukC,EAAMl1B,SAIlB2B,EAAOtR,OAAS,GAClB0uG,EAAMpuG,KAAKw3B,oBAAOxmB,GAAQxJ,KAAK,OAInC,GAAyB,MAArB9D,KAAKitE,aAAsB,CAC7B,IAAI1qC,EAAaviC,KAAK08B,YAAY1qB,MAAK,SAAA6zC,GAAC,OAAIA,EAAExnD,QAAU,EAAK4uE,gBAC3C,MAAd1qC,GACFmoE,EAAMpuG,KAAKimC,EAAW52B,MAI1B,GAAwB,MAApB3L,KAAKggE,YAAqB,CAC5B,IAAI7rB,EAAYn0C,KAAKk8B,WAAWlqB,MAAK,SAAAhT,GAAC,OAAIA,EAAEX,QAAU,EAAK2hE,eAC1C,MAAb7rB,GACFu2D,EAAMpuG,KAAK63C,EAAUxoC,MAID,MAApB3L,KAAKipG,cACHjpG,KAAKipG,YACPyB,EAAMpuG,KAAK,MAEXouG,EAAMpuG,KAAK,OAIX0D,KAAKkpG,kBACPwB,EAAMpuG,KAAK,sBAGT0D,KAAKmpG,mBACPuB,EAAMpuG,KAAK,uBAGb0D,KAAKuuC,MAAQm8D,EAAM5mG,KAAK,SAtRkB,yBAyR5C,WACE9D,KAAKypG,gBAAkBkB,GAAOr5F,cAActR,KAAKuuC,SA1RP,gFA6RpC,yGACNvuC,KAAKgU,aAAe,GACpBhU,KAAK4oG,cAAe,EACpB5oG,KAAK0D,OAAOiJ,YAAgE,mBAAoB3M,KAAK2M,eAClGtG,MAAK,SAAAxJ,GACDA,EAAOgsB,QACR,EAAK5K,QAAQ3hB,KAAK,CAAEsB,KAAM,mBAAoB8f,OAAQ,CAAEle,GAAI3C,EAAO+mB,KAAMy5C,gBACjExgE,EAAOiX,UACf,EAAKE,aAAenX,EAAOiX,YAG9BxN,MAAMtG,KAAK4pG,wBACX31F,SAAQ,WACP,EAAK20F,cAAe,KAblB,gDA7RoC,2EA8S5C,WACE5oG,KAAKgmB,YAAa,IA/SwB,yBAkTpC,WACNhmB,KAAK4T,YAnTqC,GAAS/Q,SA8CrDb,gBADCuW,gBAAM,aACP,uCA9CmBgxF,GAAyB,gBAf7CpiG,gBAAU,CACTL,WAAY,CACV8R,wBACA0G,sBACA0V,sCACAhc,wBACAu4C,gCACA5nC,4BACAvQ,gCACA+Q,wBACAF,kCACAklC,4BACAz2C,mCAGiB6wF,cC1NoZ,MCQra,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCqJf,IAAqB97B,GAAM,4CAqBzB,iDACE,eArBK,EAAAl+D,MAIH,GAEY,EAAAq7F,sBAAgC,qCAChC,EAAAtH,oBAA8B,sBAC9B,EAAAD,eAAyB,iBACzB,EAAAD,iBAA2B,mBAC3B,EAAAH,eAAqCx9B,GAAmBgI,OACxD,EAAAo9B,oBAAqC7N,GAAcG,WACnD,EAAA2N,uBAAwC9N,GAAcI,cAMtE,EAAA2N,2BAAqC,EAKnC,EAAKrF,uBAAyB,IAAIzB,GAAuB,QACzD,EAAKlB,2BAA6B,CAC9BpyF,KAAM,SAAA4L,GAAW,OACf,EAAKmpF,uBACFsF,iBAAiBzuF,EAAakpD,GAAmBgI,OAAQuvB,GAAcG,cAGhF,EAAKgG,0BAA4B,CAC7BxyF,KAAM,SAAA4L,GAAW,OACf,EAAKmpF,uBACFsF,iBAAiBzuF,EAAakpD,GAAmBgI,OAAQuvB,GAAcI,eACvE/2F,MAAK,SAAAxJ,GACJ,IAAIouG,EAAmBpuG,EAAOrB,KAAKQ,OAAS,EAE5C,OADA,EAAKkvG,cAAcD,GACZpuG,OAjBnB,EArByB,oDA2CzB,SAAcsuG,GACZnrG,KAAK+qG,0BAA4BI,IA5CV,8BA+CzB,WACE,OAAOnrG,KAAKuP,MAAMvP,KAAK4qG,yBAhDA,4BAmDzB,WACE,OAAO5qG,KAAKuP,MAAMvP,KAAKsjG,uBApDA,uBAuDzB,WACE,OAAOtjG,KAAKuP,MAAMvP,KAAKqjG,kBAxDA,yBA2DzB,WACE,OAAOrjG,KAAKuP,MAAMvP,KAAKojG,oBA5DA,0BA+DzB,SAAax1E,EAAUmiB,EAAcy3C,GACnCxnF,KAAKorG,YAAYp/F,SAAW4hB,EAAI/hB,SAChC7L,KAAKorG,YAAY5jB,eAAiBA,EAClCxnF,KAAKorG,YAAY5E,WAAaz2D,EAC9B/vC,KAAKorG,YAAYhzD,SAnEM,iCAsEzB,SAAoB14C,GACT,MAALA,GAAwB,MAAXA,EAAE2U,QACjB3U,EAAE2U,MAAMvE,QAAU,0BAxEG,6BA4EzB,WACM9P,KAAKuP,MAAM87F,uBACZrrG,KAAKuP,MAAM87F,sBAA8BlwE,kBAGxCn7B,KAAKuP,MAAM+7F,oCACZtrG,KAAKuP,MAAM+7F,mCAA2CnwE,kBAGrDn7B,KAAKuP,MAAMg8F,aACZvrG,KAAKuP,MAAMg8F,YAAoBpwE,oBAtFX,kCA0FzB,WACEn7B,KAAKwrG,iBAAiBpzD,SA3FC,+BA8FzB,WACEp4C,KAAK2lG,cAAcvtD,WA/FI,GAASv1C,cAAf4qE,GAAM,gBAnB1BtmE,eAAU,CACTL,WAAY,CACVyiG,6BACAkC,eACAnE,eACAhC,iBACA9sF,uBACAI,wBACAD,wBACAkR,8BACAhR,8BACAmH,sBACAD,wBACAT,sBACA/F,kCACAqQ,4CACA7Q,6BAGiB00D,QCtKTi+B,GAQAC,GD8JSl+B,MExK8X,MCQ/Y,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI1tE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8Q,iBAAiB,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiB7I,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8Q,iBAAiB5I,MAAW9H,EAAG,MAAMA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,mBAAmB,QAAUP,EAAI6rG,aAAa5jG,GAAG,CAAC,MAAQjI,EAAI8rG,kBAAkB,GAAG1rG,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,QAAUP,EAAI6rG,aAAa5jG,GAAG,CAAC,MAAQjI,EAAI+rG,0BAA0B,KAAK3rG,EAAG,MAAOJ,EAAkB,eAAEI,EAAG,KAAK,CAACe,YAAY,iBAAiB,CAACnB,EAAIuH,GAAG,8BAA8BvH,EAAIwH,GAAGxH,EAAIgsG,gBAAgB,UAAU5rG,EAAG,KAAK,CAACe,YAAY,iBAAiB,CAACnB,EAAIuH,GAAG,+BAA+BnH,EAAG,YAAY,CAAC+H,IAAI,wBAAwB5H,MAAM,CAAC,uBAAuBP,EAAI04F,iBAAiB,SAAW,KAAK,CAACt4F,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,SAAS,YAAY,WAAW,CAACH,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIisG,sBAAsB,aAAa,QAAQ,eAAe,WAAW,GAAGjsG,EAAIuH,GAAG,eAAenH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,YAAY,aAAa,IAAI,IACh9D,GAAkB,IHCtB,SAAYorG,GACRA,4BACAA,kCACAA,0BACAA,gCACAA,iCALJ,CAAYA,QAAuB,KAQnC,SAAYC,GACRA,uBACAA,8BACAA,qBACAA,2BACAA,2BALJ,CAAYA,QAA2B,KAQhC,IAAMM,GAAwC,CACjD,CAAE5tG,MAAOqtG,GAAwB3V,QAASpqF,KAAMggG,GAA4B5V,SAC5E,CAAE13F,MAAOqtG,GAAwBQ,WAAYvgG,KAAMggG,GAA4BO,YAC/E,CAAE7tG,MAAOqtG,GAAwBp0F,OAAQ3L,KAAMggG,GAA4Br0F,QAC3E,CAAEjZ,MAAOqtG,GAAwBS,UAAWxgG,KAAMggG,GAA4BQ,WAC9E,CAAE9tG,MAAOqtG,GAAwBU,UAAWzgG,KAAMggG,GAA4BS,Y,sdImElF,IAAqBC,GAAa,4CAgBhC,iDACE,eAhBF,EAAA98F,MAEI,GAEJ,EAAA7D,QAA+B,GAC/B,EAAAmF,iBAAyB,GACzB,EAAAc,QAAkC,GAClC,EAAA26F,gBAAwB,GACxB,EAAAzQ,UAAoB,GACpB,EAAA3sF,eAA0C,GAC1C,EAAA88F,sBAA6CC,GAE7C,EAAAz7F,aAA6B,IAAIjC,GACjC,EAAA+B,cAA+B,IAAI/E,GAEnC,EAhBgC,8CAoBhC,WACEvL,KAAK2d,aArByB,+EAwBhC,oHACsB3d,KAAKsQ,cAAc7E,SADzC,OACMC,EADN,OAEE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GAAO,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAF1E,gDAxBgC,8IA8BxB,iGACN7L,KAAKusG,kBACFvsG,KAAK6Q,iBAFF,gCAGE7Q,KAAK+9F,cAHP,gDA9BwB,6IAsCxB,iGACN/9F,KAAKkP,eAAiB,GACM,MAAxBlP,KAAKssG,iBAAmD,IAAxBtsG,KAAKssG,gBAFnC,gCAGwBtsG,KAAKwQ,aAAag8F,kBAAkBxsG,KAAKssG,iBAHjE,OAGJtsG,KAAKkP,eAHD,cAKNlP,KAAKm7B,kBALC,gDAtCwB,2IA8CxB,oHACen7B,KAAKwQ,aAAawtF,iBAAiBh+F,KAAK6Q,kBAAkB,GADzE,OACN7Q,KAAK2R,QADC,OAEc,MAAhB3R,KAAK2R,SAA0C,GAAvB3R,KAAK2R,QAAQ3V,QACvCgE,KAAK2R,QAAU,GACf3R,KAAKssG,gBAAkB,GACvBtsG,KAAK67F,UAAY,KAGb4Q,EAAczsG,KAAK2R,QAAQ,GAC/B3R,KAAKssG,gBAAkBG,EAAY36F,QACnC9R,KAAK67F,UAAY4Q,EAAY56F,WAVzB,gDA9CwB,qFA4DxB,WACN7R,KAAK2R,QAAU,GACf3R,KAAKssG,gBAAkB,GACvBtsG,KAAK67F,UAAY,KA/Da,4BAkEhC,WACE,OAAgC,MAAzB77F,KAAK6Q,kBAAqD,IAAzB7Q,KAAK6Q,mBAnEf,2BAsEhC,WACE,OAA+B,MAAxB7Q,KAAKssG,iBAAmD,IAAxBtsG,KAAKssG,kBAvEd,uBA0EhC,WACE,OAAOtsG,KAAK0sG,kBAAoB1sG,KAAK2sG,kBA3EP,0BA8EhC,WACE,OAAO3sG,KAAK67F,YA/EkB,4BAkFhC,WAA4B,WAC1B,MAAO,CACLl9F,IAAK,kBACL+R,SAAU,MACVC,KAAM,WAAQ,OAAO,EAAKzB,mBAtFE,oFA0FxB,gHACsB,IAAxBlP,KAAKssG,gBADH,wBAEA/jG,EAAgBvI,KAAK2R,QAAQ/N,QAAO,SAAA4S,GAAC,OAAIA,EAAE1E,SAAW,EAAKw6F,mBAAiB,GAF5E,SAGgBl5E,KAAOpU,QAAP,uCAA+CzW,EAAcgvF,YAA7D,yBAAyFhvF,EAAcivF,cAAvG,4CAAgK,WAHhL,UAGAx4E,EAHA,QAIDA,EAJC,iCAKIhf,KAAKwQ,aAAaq7F,cAActjG,EAAcuJ,SALlD,wBAM0B9R,KAAKwQ,aAAag8F,kBAAkBjkG,EAAcuJ,SAN5E,QAMF9R,KAAKkP,eANH,OAOFlP,KAAKm7B,kBAPH,iDA1FwB,qJAsGxB,iGACsB,MAAxBn7B,KAAKssG,gBADH,gCAGwBtsG,KAAKwQ,aAAag8F,kBAAkBxsG,KAAKssG,iBAHjE,OAGJtsG,KAAKkP,eAHD,OAIJlP,KAAKm7B,kBAJD,gDAtGwB,sFA8GxB,WACN,GAAIn7B,KAAKuP,MAAMq9F,sBAAuB,CACnC5sG,KAAKuP,MAAMq9F,sBAA8BzxE,kBAG1C,IAAIk5D,EAAYr0F,KAAKuP,MAAMq9F,sBAAsBr9F,MAAMyhC,WAA0B5/B,SAC7EijF,GACFA,EAASv1C,aAAa,YAAa,YAAa,aArHtB,GAASj8C,cA8BzCb,gBADCuW,gBAAM,qBACP,oCAQAvW,gBADCuW,gBAAM,oBACP,mCAtCmB8zF,GAAa,gBAVjCllG,eAAU,CACTL,WAAY,CACV0R,uBACAO,yBACAH,wBACAD,wBACAK,wBACAK,kCAGiBgzF,cC1FsY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAItsG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,cAAcnH,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIo7B,mBAAmBh7B,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS0H,GAAG,CAAC,MAAQjI,EAAI8iG,wBAAwB1iG,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,UAAU,KAAO,SAAS0H,GAAG,CAAC,MAAQjI,EAAI8sG,oBAAoB1sG,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,iBAAiB,KAAO,cAAc0H,GAAG,CAAC,MAAQjI,EAAI+iG,qBAAqB3iG,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,uBAAuB,KAAO,cAAc0H,GAAG,CAAC,MAAQjI,EAAI+sG,kBAAkB3sG,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,6BAA6BnH,EAAG,YAAY,CAAC+H,IAAI,gCAAgChH,YAAY,2BAA2BZ,MAAM,CAAC,uBAAuBP,EAAIgjG,2BAA2B,mBAAqB,aAAa,WAAa,qBAAqB,OAAS,CAAEz2E,SAAS,GAAQ,UAAY,CAAE/tB,KAAM,YAAa,OAAS,SAASyJ,GAAG,CAAC,sBAAsBjI,EAAIsK,qBAAqBvJ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gBAAgBqC,GAAG,SAASkH,GAChwC,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAOuE,EAAIgtG,qBAAsB,CAAChtG,EAAIuH,GAAG,YAAY,KAAK,CAAC3I,IAAI,mBAAmBqC,GAAG,SAASkH,GAClM,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAMuE,EAAIgtG,qBAAsB,CAAChtG,EAAIuH,GAAG,gBAAgB,QAAQ,CAACnH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,UAAU,YAAY,WAAW,QAAU,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,oBAAoB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,aAAa,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,cAAc,YAAY,SAAS,QAAU,cAAc,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,QAAQ,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,iBAAiB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQP,EAAImjG,GAAG,oBAAoB,CAAC/iG,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAY,EAAK,QAAS,EAAK,SAAU,QAAW,GAAGH,EAAG,KAAK,CAACgL,YAAY,CAAC,aAAa,OAAO,gBAAgB,UAAUhL,EAAG,KAAK,CAACJ,EAAIuH,GAAG,4CAA4CnH,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAA6B,0BAAEsJ,WAAW,+BAA+B,CAAClJ,EAAG,YAAY,CAAC+H,IAAI,qCAAqChH,YAAY,2BAA2BZ,MAAM,CAAC,uBAAuBP,EAAIojG,0BAA0B,mBAAqB,aAAa,WAAa,qBAAqB,OAAS,CAAE72E,SAAS,GAAQ,UAAY,CAAE/tB,KAAM,YAAa,OAAS,SAASyJ,GAAG,CAAC,sBAAsBjI,EAAIsK,qBAAqBvJ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gBAAgBqC,GAAG,SAASkH,GACt8E,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAOuE,EAAIgtG,qBAAsB,CAAChtG,EAAIuH,GAAG,YAAY,KAAK,CAAC3I,IAAI,mBAAmBqC,GAAG,SAASkH,GAClM,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,YAAY,CAAC6H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIijG,aAAaxnG,EAAKA,MAAM,EAAMuE,EAAIgtG,qBAAsB,CAAChtG,EAAIuH,GAAG,gBAAgB,QAAQ,CAACnH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,UAAU,YAAY,WAAW,QAAU,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,oBAAoB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,aAAa,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,eAAe,YAAY,SAAS,QAAU,gBAAgB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,cAAc,YAAY,SAAS,QAAU,cAAc,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,QAAQ,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,iBAAiB,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,sBAAsBH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQP,EAAImjG,GAAG,oBAAoB,CAAC/iG,EAAG,uBAAuB,CAACG,MAAM,CAAC,WAAY,EAAK,QAAS,EAAK,SAAU,QAAW,IAAI,GAAGH,EAAG,KAAK,CAACgL,YAAY,CAAC,aAAa,OAAO,gBAAgB,UAAUhL,EAAG,eAAe,CAAC+H,IAAI,sBAAsB5H,MAAM,CAAC,eAAiBP,EAAIgtG,iBAAiB,MAAQ,yBAAyB/kG,GAAG,CAAC,wBAAwBjI,EAAIo7B,oBAAoB,GAAGh7B,EAAG,eAAe,CAAC+H,IAAInI,EAAIsjG,iBAAiBljG,EAAG,wCAAwC,CAAC+H,IAAInI,EAAIujG,sBAAsBnjG,EAAG,mBAAmB,CAAC+H,IAAInI,EAAIitG,kBAAkB7sG,EAAG,iBAAiB,CAAC+H,IAAInI,EAAIqjG,mBAAmBjjG,EAAG,uBAAuB,CAAC+H,IAAInI,EAAIktG,yBAAyB,IACnzE,GAAkB,GCTlB,GAAS,WAAa,IAAIltG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,UAAU,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,OAASlI,EAAImtD,WAAW,CAAC/sD,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIk7C,oBAAoBjzC,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIk7C,mBAAmBhzC,MAAW9H,EAAG,UAAU,CAACG,MAAM,CAAC,cAAcP,EAAIm5C,KAAK,iBAAiBn5C,EAAIihB,aAAahZ,GAAG,CAAC,uBAAuB,SAASC,GAAQlI,EAAIihB,YAAY/Y,GAAQ,wBAAwB,SAASA,GAAQlI,EAAIihB,YAAY/Y,MAA6B,GAAjBlI,EAAIihB,YAAgB7gB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACnB,EAAIuH,GAAG,qBAAqBnH,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAAC+H,IAAI,oBAAoB5H,MAAM,CAAC,cAAcP,EAAImtG,oBAAoB,UAAY,WAAW,YAAc,aAAa,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,MAAQntG,EAAIotG,uBAAuB,aAAeptG,EAAIqtG,2BAA2B,YAAc,WAAW,YAAc,kBAAkB,eAAertG,EAAI4H,gBAAgBK,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIotG,uBAAuBllG,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIqtG,2BAA2BnlG,GAAQ,uBAAuB,SAASA,GAAQlI,EAAIqtG,2BAA2BnlG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAAC+H,IAAI,mBAAmB5H,MAAM,CAAC,cAAcP,EAAIstG,oBAAoB,eAAe,OAAO,aAAa,QAAQ,MAAQttG,EAAIutG,wBAAwB,aAAevtG,EAAIwtG,0BAA0B,YAAc,WAAW,SAAyC,MAA9BxtG,EAAIotG,uBAA+B,qBAAoB,EAAK,YAAc,iBAAiB,eAAeptG,EAAI4H,gBAAgBK,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIutG,wBAAwBrlG,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIwtG,0BAA0BtlG,GAAQ,uBAAuB,SAASA,GAAQlI,EAAIwtG,0BAA0BtlG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,0BAA0B,eAAe,YAAY,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIytG,0BAA0B,OAAOrtG,EAAG,MAAM,CAACe,YAAY,WAAW,CAACf,EAAG,MAAM,CAACe,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACnB,EAAIuH,GAAG,oBAAoBnH,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAAC+H,IAAI,mBAAmB5H,MAAM,CAAC,cAAcP,EAAI0tG,iBAAiB,UAAY,WAAW,YAAc,aAAa,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,MAAQ1tG,EAAI2tG,oBAAoB,aAAe3tG,EAAI4tG,wBAAwB,YAAc,kBAAkB,eAAe5tG,EAAI4H,eAAe,YAAc,YAAYK,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI2tG,oBAAoBzlG,GAAQ,sBAAsB,SAASA,GAAQlI,EAAI4tG,wBAAwB1lG,GAAQ,uBAAuB,SAASA,GAAQlI,EAAI4tG,wBAAwB1lG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAAC+H,IAAI,YAAY5H,MAAM,CAAC,WAAaP,EAAI6tG,WAAW,YAAc,OAAO,UAAY,QAAQ,uBAAwB,EAAK,kBAAiB,EAAK,YAAc,iBAAiB,eAAiB,aAAa,MAAQ7tG,EAAI8tG,oBAAoB,SAAsC,MAA3B9tG,EAAI2tG,oBAA4B,YAAc,YAAY1lG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8tG,oBAAoB5lG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,cAAcP,EAAI+tG,yBAAyB,eAAe,OAAO,aAAa,QAAQ,MAAQ/tG,EAAIguG,qBAAqB,aAAehuG,EAAIiuG,uBAAuB,SAAsC,MAA3BjuG,EAAI2tG,oBAA4B,qBAAoB,EAAK,YAAc,iBAAiB,eAAe3tG,EAAI4H,eAAe,YAAc,YAAYK,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIguG,qBAAqB9lG,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIiuG,uBAAuB/lG,GAAQ,uBAAuB,SAASA,GAAQlI,EAAIiuG,uBAAuB/lG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,yBAAyB,eAAe,YAAY,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIkuG,yBAAyB,SAASluG,EAAIyI,KAAKrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI2lC,YAAa,SAAW,QAAQ,QAAU,aAAa,IAC5hK,GAAkB,GCITwoE,GAAb,WAGI,oCACEluG,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,IAJrD,iHAOW,WAAwByJ,EAAoBo0B,EAAuByjE,GAAnE,iGACUzkG,KAAK0D,OAAOiJ,YAAZ,gCAAiDC,GAAW,CAACo0B,SAAWA,EAAUyjE,WAAYA,IADxG,wFAPX,qJAUW,WAAuBz4F,GAAvB,iGACQhM,KAAK0D,OAAOzF,IAAZ,qCAA8C+N,IADtD,wFAVX,iE,sdCyLA,IAAqBmiG,GAAc,4CAmC/B,iDACI,eAnCG,EAAA5+F,MAMH,GAEI,EAAAyW,YAAsB,EACtB,EAAAhF,YAAsB,EACtB,EAAAmsF,uBAAwC,KACxC,EAAAC,2BAAqC,GACrC,EAAAE,wBAAyC,KACzC,EAAAC,0BAAoC,GACpC,EAAAa,2BAA4D,GAC5D,EAAAV,oBAAqC,KACrC,EAAAC,wBAAkC,GAClC,EAAAE,oBAA8B,GAC9B,EAAAE,qBAAsC,KACtC,EAAAC,uBAAiC,GACjC,EAAAK,wBAAyD,GAKzD,EAAApzD,oBAA8B,EAC9B,EAAA/B,KAAO,CACX,CAAE15C,GAAI,EAAGmM,KAAM,oBASf,EAAK2E,cAAgB,IAAI/E,GACzB,EAAKiF,aAAe,IAAIjC,GACxB,EAAK+/F,cAAgB,IAAIJ,GACzB,EAAKxqG,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IALzD,EAnC+B,wDA+B/B,WACE,OAAOrQ,KAAK0H,gBAhCiB,4BA2C/B,WACE,OAAO1H,KAAK0H,gBA5CiB,+BA+C/B,WAEE,OADA1H,KAAKstG,wBAA0B,KACxBttG,KAAKuuG,gBAAgBvuG,KAAKmtG,0BAjDJ,oCAoD/B,WAEE,OADAntG,KAAK+tG,qBAAuB,KACrB/tG,KAAKuuG,gBAAgBvuG,KAAK0tG,uBAtDJ,sBAyD/B,WAEE,OADA1tG,KAAK6tG,oBAAsB,GACpB7tG,KAAKuuG,gBAAgBvuG,KAAK0tG,oBAAqB,WA3DzB,yBA8D/B,WAAW,WACT,OAAO,IAAIj9F,KAAY,CACrBC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAO,EAAK4D,cAAc7E,cAlED,6BAsE/B,WAAiF,WAAjEO,EAAiE,uDAAvC,KAAM6D,EAAiC,uDAAP,QAC1E,OAAO,IAAIY,KAAY,CACjBC,SAAU,MACVC,KAAM,SAACjE,GACL,OAAIV,EACK,EAAKsiG,cAAcE,iBAAiBxiG,GACxC3F,MAAK,SAAA7K,GACJ,IAAIqB,EAASrB,EAAK6D,KAAI,SAAAmX,GACpB,MAAY,UAAT3G,EACQ,CACLlE,KAAM6K,EAAE3E,UACRxT,MAAOmY,EAAE1E,SAIN,CACHnG,KAAM6K,EAAEhJ,UACRnP,MAAOmY,EAAE/I,YAMjB,OAAO,EAAKw8F,kBAAkBptG,EAAiB,UAATgT,MAEvCvJ,MAAM,EAAKsjG,wBAGPllG,QAAQ5E,QAAQ,SAlGF,oCA0GvB,SAAuB2zB,GAC7B,IAAI3jB,EAAU,+FACdqY,oBAAMrY,EAAS,WA5Gc,+BA+GvB,SAAkBtU,GAAiD,IAA3BizG,EAA2B,wDACrE1E,EAAa5kG,IAAEikB,OAAO5tB,GAAM,SAAAmC,GAAC,OAAIA,EAAEU,SACnC2rG,EAAa7kG,IAAE2uB,OAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEgO,QAK7C,OAJI8iG,IACFzE,EAAaA,EAAWp2B,WAGnBo2B,IAtHsB,kBAyH/B,WACEhqG,KAAKgmB,YAAa,IA1HW,wBA6H/B,WACEhmB,KAAKgmB,YAAa,IA9HW,sBAiI/B,WACEhmB,KAAK4T,UAlIwB,4BAqI/B,WACE,OAAO1U,OAAOyT,YAAc,IAtIC,mBAyIvB,WACN3S,KAAKmtG,uBAAyB,KAC9BntG,KAAKstG,wBAA0B,KAC/BttG,KAAK0tG,oBAAsB,KAC3B1tG,KAAK6tG,oBAAsB,GAC3B7tG,KAAK+tG,qBAAuB,OA9IC,4FAiJ/B,iGACqC,MAA/B/tG,KAAKmtG,uBADX,uBAEIhlF,oBAAM,0BAA2B,qBAFrC,6BAOsC,MAAhCnoB,KAAKstG,wBAPX,uBAQInlF,oBAAM,yBAA0B,qBARpC,0CAYQnoB,KAAK0uG,+BAA+B1uG,KAAKstG,wBAAyB1K,GAAe8B,UAZzF,gDAjJ+B,oJAgK/B,iGACkC,MAA5B1kG,KAAK0tG,oBADX,uBAEIvlF,oBAAM,0BAA2B,qBAFrC,6BAMmC,MAA7BnoB,KAAK+tG,qBANX,uBAOI5lF,oBAAM,yBAA0B,qBAPpC,0CAWQnoB,KAAK0uG,+BAA+B1uG,KAAK+tG,qBAAsBnL,GAAeiC,SAXtF,gDAhK+B,8JA8K/B,WAAqCj4F,EAAiBiD,GAAtD,2GACM+0F,EAAa/0F,IAAS+yF,GAAeiC,QAAU7kG,KAAK2tG,wBAA0B3tG,KAAKotG,2BACnFvR,EAAYhsF,IAAS+yF,GAAeiC,QAAU7kG,KAAKguG,uBAAyBhuG,KAAKutG,0BAErFvtG,KAAKi7C,oBAAqB,EAEtB0zD,GAAkB,EANxB,SAOsC3uG,KAAKsuG,cAAcM,kBAAkBhiG,EAAS5M,KAAK6tG,oBAAqBh+F,GACzGxJ,MAAK,SAACguB,GACL,OAAOA,KAER/tB,OAAM,SAAAmtB,GACLk7E,GAAS,EACTxmF,oBAAM,mEAAoE,YAG3ElU,SAAQ,WACP,EAAKgnC,oBAAqB,KAjBhC,UAOMY,EAPN,QAoBM8yD,EApBN,sDAwBM9yD,GAA2BA,EAAwBtO,KAAOsO,EAAwBrO,OAxBxF,kCAyBUxtC,KAAK0D,OAAOgqC,SAASmO,EAAwBtO,IAAKsO,EAAwBrO,OAC7EnnC,MAAK,SAAAxJ,GACJ,IAAIi/C,EAAWj/C,EAAOk/C,QAAQ99C,IAAI,YAElCpB,EAAO27C,OAAOnyC,MAAK,SAACuL,GAClBoqC,KAAUC,OAAOrqC,EAAGsqC,mBAAmBJ,OAGtCjsC,IAAS+yF,GAAeiC,SACzB,EAAKgK,iCAAiChzD,EAAwB1lC,UAlCxE,gCAsCSnW,KAAK6tG,qBAAuB7tG,KAAK6tG,oBAAoB7xG,OAAS,GAAK6T,IAAS+yF,GAAeiC,QAC5F7kG,KAAK6uG,iCAAiC,IAAI,GAG1C1mF,oBAAM,GAAD,OAAIy8E,EAAJ,eAAqB/I,EAArB,uCAAqE,8BA1ClF,iDA9K+B,0GA6N/B,SAAiCtlF,GAA2C,WAA/Bu4F,EAA+B,wDAC1E,GAAGv4F,EAAMva,OAAS,GAAK8yG,EAAgB,CACrC,IAAIC,EAA4B/uG,KAAKuP,MAAMy/F,UAAkB59F,SAAiB4tC,gBAAgBrkC,QAC/D/W,QAAO,SAACi9B,GAAD,OAAiB,EAAKgtE,oBAAoB/1F,SAAS+oB,EAAMxiC,UAChEgB,KAAI,SAACwhC,GAAD,OAAiBA,EAAMl1B,QAEtDsjG,EAAgB,qDAChBC,EAAgC,GAEpC/pG,IAAE6J,QAAQ+/F,GAAyB,SAAAtrF,GACjC,IAAI0rF,EAAkBhqG,IAAE6M,KAAKuE,GAAO,SAAA1R,GAAI,OAAIA,EAAK8R,SAASmB,SAAS2L,MAC/D0rF,GACFD,EAAoB5yG,KAApB,aAA+BmnB,EAA/B,YAGDyrF,EAAoBlzG,OAAS,IAC9BkzG,EAAoBlgG,SAAQ,SAACnK,EAAMC,GACjC,IAAIu5C,EAAY,UAAGx5C,IAAUC,EAASoqG,EAAoBlzG,OAAS,EAAK,KAAM,IAC3E8I,GAAUA,EAAQ,GAAK,IACxBu5C,GAAa,QAGf4wD,GAAiB5wD,KAEnBl2B,oBAAM,GAAD,OAAI8mF,GAAiB,2CArPD,GAASpsG,SAAvBsrG,GAAc,gBAblChnG,gBAAU,CACPL,WAAY,CACR8R,wBACAkR,0BACAxK,sBACA2K,kCACA5Q,8BACAL,wBACAH,8BACAoqC,oBACA94B,4BAGagkF,cC9LwY,MCQzZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIpuG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACe,YAAY,wBAAwBZ,MAAM,CAAC,QAAUP,EAAIimB,WAAW,MAAQ,SAAS,MAAQ,MAAM,OAAS,OAAOhe,GAAG,CAAC,OAASjI,EAAI2oG,YAAY,iBAAiB,SAASzgG,GAAQlI,EAAIimB,WAAW/d,KAAU,CAAC9H,EAAG,iBAAiB,CAACA,EAAG,oBAAoB,CAACG,MAAM,CAAC,SAAYP,EAAI4oG,gBAAkB5oG,EAAIiU,cAAiBjU,EAAI6oG,gBAAgBzoG,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACgL,YAAY,CAAC,gBAAgB,QAAQ7K,MAAM,CAAC,KAAO,QAAQ,QAAUP,EAAIiU,aAAa,QAAS,MAAS,GAAG7T,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAI4oG,gBAAkB5oG,EAAI6oG,aAAcv/F,WAAW,mCAAmCnI,YAAY,eAAe,CAACf,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,YAAYnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,eAAgB,EAAK,MAAQ3L,EAAIiM,SAAS,aAAa,WAAW,eAAe,aAAa,qBAAoB,EAAK,YAAc,SAAShE,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIiM,SAAS/D,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAMrvF,EAAI8oG,oBAAsB9oG,EAAIiU,aAAc7T,EAAG,qBAAqB,CAACA,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI4R,QAAQ,eAAgB,EAAK,MAAQ5R,EAAI6M,QAAQ,UAAY7M,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI6M,QAAQ3E,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,eAAgB,EAAK,MAAQ33B,EAAIgpG,WAAW,UAAYhpG,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,2BAA0B,EAAK,mBAAmB,aAAa,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIgpG,WAAW9gG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,YAAYnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,aAAa,CAACG,MAAM,CAAC,cAAcP,EAAIuN,OAAO,eAAgB,EAAK,MAAQvN,EAAIihC,SAAS,UAAYjhC,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,2BAA0B,EAAK,mBAAmB,aAAa,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIihC,SAAS/4B,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,iBAAiBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI28B,YAAY,eAAgB,EAAK,MAAQ38B,EAAIktE,aAAa,UAAYltE,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIktE,aAAahlE,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,eAAgB,EAAK,MAAQn8B,EAAIigE,YAAY,UAAYjgE,EAAI+oG,gBAAgB,aAAa,QAAQ,eAAe,OAAO,qBAAoB,EAAK,YAAc,SAAS9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIigE,YAAY/3D,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,wBAAwBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAImpG,iBAAiB,UAAYnpG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAImpG,iBAAiBjhG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,yBAAyBnH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIopG,kBAAkB,UAAYppG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIopG,kBAAkBlhG,GAAQ,aAAelI,EAAIqvF,uBAAuB,KAAKjvF,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,eAAenH,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQP,EAAIqpG,SAAS,UAAYrpG,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIqpG,SAASnhG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,MAAM,CAACe,YAAY,iBAAiBiK,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,eAAe,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQP,EAAIwuC,MAAM,UAAYxuC,EAAI+oG,iBAAiB9gG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwuC,MAAMtmC,GAAQ,OAASlI,EAAIspG,gBAAgB,OAAO,IAAI,GAAGlpG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIupG,2BAA2B,IACxhK,GAAkB,G,sdCsMtB,IAAqB8F,GAAiC,4CAAtD,iD,0BACU,EAAAppF,YAAsB,EAE9B,EAAAhS,aAAuB,GACvB,EAAA40F,cAAwB,EAYxB,EAAAl9F,QAAuB,GACvB,EAAAi9F,eAAyB,EAEzB,EAAAa,WAAuC,GACvC,EAAAX,mBAA6B,EAK7B,EAAA78F,SAAwB,KACxB,EAAAY,QAAuB,KACvB,EAAAm8F,WAAuB,GACvB,EAAA/nE,SAAmB,GACnB,EAAAisC,aAA8B,KAC9B,EAAAjN,YAA6B,KAC7B,EAAAipC,YAA8B,KAC9B,EAAAC,kBAA4B,EAC5B,EAAAC,mBAA6B,EAC7B,EAAAC,UAAoB,EACpB,EAAA76D,MAAgB,GAChB,EAAAk7D,gBAA0B,EAC1B,EAAA/gD,kBAA4B,EAmIpB,EAAAhlD,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAC,cAA+B,IAAI/E,GAzK7C,EAAsD,2DAMpD,WACE,MAAO,CACLixB,UAAWx8B,KAAK8oG,iBAAmB9oG,KAAK4oG,aACxCj9F,KAAM,aACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAK0pG,aAZkC,2BAqBpD,WACE,OAAO1pG,KAAKwpG,YAAcxpG,KAAKwpG,WAAWxtG,OAAS,IAtBD,+BAwCpD,SAAkBqC,EAAoB6nB,GAAqB,WACzDlmB,KAAK2pG,yBACL3pG,KAAKwpG,WAAa,GACN,MAATnrG,IACD2B,KAAK6oG,mBAAoB,EACzB7oG,KAAK0D,OAAOzF,IAAZ,qDAAwFI,EAAxF,2BAAgHonE,GAAmBkI,WAChItnE,MAAK,SAAA7K,GACJ,EAAKguG,WAAahuG,EAClB,EAAKqtG,mBAAoB,KAE1BviG,MAAMtG,KAAK4pG,2BAlDkC,oCAsD5C,SAAuB/sG,GAC7B,IAAIiT,EAAUjT,GAAUA,EAAOiX,QAC3B,+BAAiCjX,EAAOiX,QACxC,GAEJ9T,KAAKgU,aAAe,+FAAiGlE,IA3DnE,8BA8D5C,WAAgB,WACtB,OAAO,SAACtU,EAAMquG,GAqBZ,MApBc,UAAVA,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAoB,MAAhB,EAAKiP,SAAmB,EAAKA,SAAWjP,EAAEmU,YAGtD,YAAV+3F,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAA+B,IAA3B,EAAKorG,WAAW/sG,QAAgB,EAAK+sG,WAAWjxF,SAASna,EAAEm7B,eAGvE,UAAV+wE,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAA6B,IAAzB,EAAKqjC,SAAShlC,QAAgB,EAAKglC,SAASlpB,SAASna,EAAE8P,aAGnE,eAAVo8F,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAyB,MAArB,EAAKsvE,cAAwB,EAAKA,cAAgBtvE,EAAEkgC,iBAGhE,UAAVgsE,IACFruG,EAAOA,EAAKoI,QAAO,SAAAjG,GAAC,OAAwB,MAApB,EAAKqiE,aAAuB,EAAKA,aAAeriE,EAAEy+B,gBAGrE5gC,KApFyC,+BAwF5C,SAAkBA,GAAqD,IAA/BsuG,EAA+B,wDACzEC,EAAa3gF,oBAAO5tB,GAAM,SAAAmC,GAAC,OAAIA,EAAEU,SACjC2rG,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEgO,QAI3C,OAHGm+F,IACDE,EAAaA,EAAWp2B,WAEnBo2B,IA9F2C,mBAiGpD,WACE,OAAOhqG,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAASnqG,KAAI,SAAA1B,GAClF,MAAO,CACLgO,KAAMhO,EAAEkU,UACRxT,MAAOV,EAAEmU,aAET,KAvG8C,qBA0GpD,WACE,OAAO9R,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,WAAWnqG,KAAI,SAAA1B,GACpF,MAAO,CACLgO,KAAMhO,EAAEkd,YACRxc,MAAOV,EAAEm7B,iBA9GqC,kBAmHpD,WACE,OAAO94B,KAAKiqG,kBAAkBjqG,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAASnqG,KAAI,SAAA1B,GAClF,MAAO,CACLgO,KAAMhO,EAAE6P,UACRnP,MAAOV,EAAE8P,eAvHqC,uBA4HpD,WACE,IAAIs1C,EAAe/iD,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,cACxDO,EAAa3gF,oBAAO25B,GAAc,SAAAplD,GAAC,OAAIA,EAAEkgC,gBACzCmsE,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEkgC,gBAC3C,OAAOmsE,EAAW3qG,KAAI,SAAA1B,GACpB,MAAO,CACLgO,KAAMhO,EAAEwsG,eACR9rG,MAAOV,EAAEkgC,mBAnIqC,sBAwIpD,WACE,IAAIklB,EAAe/iD,KAAKkqG,kBAALlqG,CAAwBA,KAAKwpG,WAAY,SAAS5lG,QAAO,SAAAjG,GAAC,OAAqB,MAAjBA,EAAEy+B,eAC/E2tE,EAAa3gF,oBAAO25B,GAAc,SAAAplD,GAAC,OAAIA,EAAEy+B,eACzC4tE,EAAal2E,oBAAOi2E,GAAY,SAAApsG,GAAC,OAAIA,EAAEysG,kBAC3C,OAAOJ,EAAW3qG,KAAI,SAAA1B,GAEpB,MAAO,CACLgO,KAAMhO,EAAEwzE,cACR9yE,MAAOV,EAAEy+B,kBAhJqC,yBAqJpD,WACE,MAAO,CACLiuE,eAAgB5kC,GAAmBkI,SAEnC9hE,SAAU7L,KAAKgM,SACf8F,QAAS9R,KAAK4M,QACd09F,WAAYtqG,KAAK+oG,WACjBwB,SAAUvqG,KAAKghC,SACfnD,aAAc79B,KAAKitE,aACnB7wC,YAAap8B,KAAKggE,YAClBwqC,YAAaxqG,KAAKipG,YAClBlzB,iBAAkB/1E,KAAKkpG,iBACvBlzB,kBAAmBh2E,KAAKmpG,kBACxBsB,SAAUzqG,KAAKopG,SACf9nE,MAAOthC,KAAKuuC,MACZguC,iBAAkBv8E,KAAK0oD,oBApKyB,qBA2KpD,WAAO,WACL1oD,KAAKsQ,cAAc7E,SAASpF,MAAK,SAAAqF,GAC/B,EAAKA,QAAUA,EACf,EAAKi9F,eAAgB,KAEtBriG,MAAMtG,KAAK4pG,0BAhLsC,mBAmL5C,WACN5pG,KAAKgM,SAAW,KAChBhM,KAAK2pG,2BArL6C,oCAwL5C,WACN3pG,KAAK4M,QAAU,KACf5M,KAAK+oG,WAAa,GAClB/oG,KAAKghC,SAAW,GAChBhhC,KAAKggE,YAAc,KACnBhgE,KAAKipG,YAAc,KACnBjpG,KAAKkpG,kBAAmB,EACxBlpG,KAAKmpG,mBAAoB,EACzBnpG,KAAKopG,UAAW,EAChBppG,KAAKgU,aAAe,GAEfhU,KAAKypG,iBACRzpG,KAAKuuC,MAAQ,MApMmC,gCAwMpD,SAAmB7uC,GAAM,WACvB,IAAIM,KAAKypG,eAAT,CAIA,IAAIiB,EAAkB,GAEtB,GAAoB,MAAhB1qG,KAAK4M,QAAiB,CACxB,IAAIwqF,EAAQp3F,KAAK2R,QAAQK,MAAK,SAAAJ,GAAC,OAAIA,EAAEvT,QAAU,EAAKuO,WACvC,MAATwqF,GACFsT,EAAMpuG,KAAK86F,EAAMzrF,MAIrB,GAAI3L,KAAK+oG,WAAW/sG,OAAS,EAAG,CAC9B,IAAI07B,EAAsB,GAC1B13B,KAAK+oG,WAAW/5F,SAAQ,SAAAjC,GACtB,IAAIqa,EAAU,EAAKsQ,UAAU1lB,MAAK,SAAAtU,GAAC,OAAIA,EAAEW,QAAU0O,KACpC,MAAXqa,GACFsQ,EAAUp7B,KAAK8qB,EAAQzb,SAIvB+rB,EAAU17B,OAAS,GACrB0uG,EAAMpuG,KAAKw3B,oBAAO4D,GAAW5zB,KAAK,OAItC,GAAI9D,KAAKghC,SAAShlC,OAAS,EAAG,CAC5B,IAAIsR,EAAmB,GACvBtN,KAAKghC,SAAShyB,SAAQ,SAAAnC,GACpB,IAAIg0B,EAAQ,EAAKvzB,OAAO0E,MAAK,SAAAzE,GAAC,OAAIA,EAAElP,QAAUwO,KACjC,MAATg0B,GACFvzB,EAAOhR,KAAKukC,EAAMl1B,SAIlB2B,EAAOtR,OAAS,GAClB0uG,EAAMpuG,KAAKw3B,oBAAOxmB,GAAQxJ,KAAK,OAInC,GAAyB,MAArB9D,KAAKitE,aAAsB,CAC7B,IAAI1qC,EAAaviC,KAAK08B,YAAY1qB,MAAK,SAAA6zC,GAAC,OAAIA,EAAExnD,QAAU,EAAK4uE,gBAC3C,MAAd1qC,GACFmoE,EAAMpuG,KAAKimC,EAAW52B,MAI1B,GAAwB,MAApB3L,KAAKggE,YAAqB,CAC5B,IAAI7rB,EAAYn0C,KAAKk8B,WAAWlqB,MAAK,SAAAhT,GAAC,OAAIA,EAAEX,QAAU,EAAK2hE,eAC1C,MAAb7rB,GACFu2D,EAAMpuG,KAAK63C,EAAUxoC,MAIrB3L,KAAKkpG,kBACPwB,EAAMpuG,KAAK,sBAGT0D,KAAKmpG,mBACPuB,EAAMpuG,KAAK,uBAGb0D,KAAKuuC,MAAQm8D,EAAM5mG,KAAK,SAxQ0B,yBA2QpD,WACE9D,KAAKypG,gBAAkBkB,GAAOr5F,cAActR,KAAKuuC,SA5QC,gFA+Q5C,yGACNvuC,KAAKgU,aAAe,GACpBhU,KAAK4oG,cAAe,EACpB5oG,KAAK0D,OAAOiJ,YAAgE,mBAAoB3M,KAAK2M,eAClGtG,MAAK,SAAAxJ,GACDA,EAAOgsB,QACR,EAAK5K,QAAQ3hB,KAAK,CAAEsB,KAAM,WAAY8f,OAAQ,CAAEle,GAAI3C,EAAO+mB,KAAMy5C,cAA0BnwD,MAAO,CAAC,MAASrQ,EAAO+mB,KAAMyrF,MAAMj0C,cACvHv+D,EAAOiX,UACf,EAAKE,aAAenX,EAAOiX,YAG9BxN,MAAMtG,KAAK4pG,wBACX31F,SAAQ,WACP,EAAK20F,cAAe,KAblB,gDA/Q4C,2EAgSpD,WACE5oG,KAAKgmB,YAAa,IAjSgC,yBAoS5C,WACNhmB,KAAK4T,YArS6C,GAAS/Q,SAwC7Db,gBADCuW,gBAAM,aACP,uCAxCmB62F,GAAiC,gBAfrDjoG,gBAAU,CACTL,WAAY,CACV8R,wBACA0G,sBACA0V,sCACAhc,wBACAu4C,gCACA5nC,4BACAvQ,gCACA+Q,wBACAF,kCACAklC,4BACAz2C,mCAGiB02F,cCvM6Z,MCQ9a,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIrvG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,MAAM,MAAQ,kBAAkB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAIimB,YAAYhe,GAAG,CAAC,OAASjI,EAAIg5C,cAAc,QAAUh5C,EAAI0vB,eAAe,iBAAiB,SAASxnB,GAAQlI,EAAIimB,WAAW/d,KAAU,CAAC9H,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,iBAAiBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,MAAMA,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI8H,eAAe,kBAAiB,EAAK,cAAc9H,EAAI4R,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ5R,EAAIwI,cAAc,qBAAoB,EAAK,MAAQ,MAAM,YAAc,gBAAgBP,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwI,cAAcN,MAAW9H,EAAG,MAAMA,EAAG,MAAM,CAAC+I,WAAW,CAAC,CAACtL,KAAK,OAAOuL,QAAQ,SAAS9K,MAAO0B,EAAI8H,gBAAkB9H,EAAIwI,cAAec,WAAW,oCAAoCnI,YAAY,mBAAmB,CAACf,EAAG,IAAI,CAACJ,EAAIuH,GAAG,mBAAmBvH,EAAIwH,GAAGxH,EAAIuvG,cAActzG,QAAQ,OAAOmE,EAAG,oBAAoB,CAACG,MAAM,CAAC,QAAUP,EAAIwvG,wBAAwBpvG,EAAG,iBAAiB,CAACG,MAAM,CAAC,OAAS,MAAM,UAAY,aAAa,CAACH,EAAG,MAAMJ,EAAI6K,GAAI7K,EAAiB,eAAE,SAAS8E,GAAM,OAAO1E,EAAG,MAAM,CAACxB,IAAIkG,EAAK2qG,gBAAgBtuG,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACe,YAAY,mCAAmC,CAACf,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACf,EAAG,IAAI,CAACE,MAAM,CAAG,mBAAoBN,EAAI0vG,mBAAmB5qG,EAAK21D,uBAAyB,CAACz6D,EAAIuH,GAAG,IAAIvH,EAAIwH,GAAGxH,EAAI2vG,cAAc7qG,IAAO,OAAO1E,EAAG,YAAY,CAACe,YAAY,wBAAwBZ,MAAM,CAAC,MAAQ,MAAM,eAAe,YAAY0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4vG,kBAAkB9qG,MAAS,CAAC9E,EAAIuH,GAAG,kBAAkB,GAAGnH,EAAG,iBAAiB,CAAC+H,IAAI,qBAAqB0nG,UAAS,EAAKtvG,MAAM,CAAC,OAAS,MAAM,MAAQuE,EAAKgrG,aAAa,aAAa,QAAQ7nG,GAAG,CAAC,gBAAgB,SAAUtI,GAAK,OAAOK,EAAI+vG,cAAcpwG,EAAGmF,EAAK2qG,oBAAsB,CAACrvG,EAAG,aAAa,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,IAAI,GAAGH,EAAG,MAAM,CAACe,YAAY,sCAAsC,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,mCAAmCnH,EAAG,MAAM,CAACA,EAAG,iBAAiB,CAAC+H,IAAI,oBAAoB0nG,UAAS,EAAKtvG,MAAM,CAAC,MAAQP,EAAIisD,oBAAoB,MAAQnnD,EAAKsiD,mCAAmC,aAAa,QAAQ,eAAe,QAAQn/C,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAK3c,EAAM,qCAAsCoD,OAAY9H,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQuE,EAAKkoD,2BAA2B,KAAO,sCAAsC/kD,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAK3c,EAAM,6BAA8BoD,OAAY9H,EAAG,MAAMA,EAAG,eAAe,CAACG,MAAM,CAAC,MAAQuE,EAAKmoD,wBAAwB,KAAO,mCAAmChlD,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAK3c,EAAM,0BAA2BoD,QAAa,UAAS,MAAM,GAAG9H,EAAG,iBAAiB,CAAC+H,IAAInI,EAAIgwG,mBAAmB5vG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,gBAAiBkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIiwG,aAAc,SAAW,QAAQ,QAAU,YAAY7vG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIwuD,OAAQ,SAAW,QAAQ,QAAU,aAAa,IAC9oI,GAAkB,GCDlB,GAAS,WAAa,IAAIxuD,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,OAAS,MAAM,YAAY,MAAM,MAAQP,EAAIW,MAAM,QAAUX,EAAIimB,WAAW,MAAQ,QAAQhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,OAASlI,EAAImtD,SAAS,OAASntD,EAAI2tD,SAAS,QAAU3tD,EAAIomC,YAAY,CAAChmC,EAAG,MAAM,CAACgL,YAAY,CAAC,OAAS,SAAS,CAAChL,EAAG,eAAe,CAAC+H,IAAInI,EAAImuD,YAAY5tD,MAAM,CAAC,yBAAwB,EAAK,OAAS,OAAO,UAAY,CAAE/B,KAAM,WAAY0xG,gBAAgB,IAAQjoG,GAAG,CAAC,gBAAgBjI,EAAIqjC,gBAAgBtiC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,2BAA2BqC,GAAG,SAASkH,GACroB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAAC+6C,SAAS,CAAC,UAAYn7C,EAAIwH,GAAG/L,EAAKA,KAAK00G,yBAAyB,CAAC/vG,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,cAAc,wBAAwB,KAAO,kBAAkBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,YAAY,SAAS,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,OAAO,QAAU,eAAe,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,QAAQ,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,SAAS,QAAU,SAAS,OAAS,CAAEuP,KAAM,WAAYitB,SAAU,MAAO8sB,UAAW,GAAI,MAAQ,QAAQzpD,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,aAAa,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,YAAY,SAAS,QAAU,QAAQ,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,SAAS,QAAU,WAAW,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,SAAS,QAAU,cAAc,YAAY,YAAY,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,kBAAkB,gBAAgB,2BAA2B,YAAY,YAAY,MAAQ,UAAU,IAAI,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIw2D,mBAAmB,SAAW,QAAQ,QAAU,aAAa,IAAI,IACv2C,GAAkB,G,sdCqHtB,IAAqB45C,GAAa,4CAAlC,iD,0BACmB,EAAAjiD,YAAsB,cACtB,EAAA41B,cAAgC,IAAIrd,GAC7C,EAAAzgD,YAAsB,EACtB,EAAAoqF,iBAA6B,CACnC,gBACA,YACA,SAGF,EAAAj4C,OAAkC,KAVpC,EAAkC,6CAYhC,WACE,OAAQn4D,KAAKuP,MAAMvP,KAAKkuD,aAA4B98C,WAbtB,iBAgBhC,WACE,OAAmB,MAAfpR,KAAKm4D,OACA,iBAGF,GAAP,OAAUn4D,KAAKm4D,OAAOvsD,WAAtB,aAAqC5L,KAAKm4D,OAAO9rD,WAAjD,aAAgErM,KAAKm4D,OAAOt9C,eArB9C,sBAwBhC,WAAsB,WACpB,OAAO,IAAIgL,KAAW,CACpBlnB,IAAK,oBACL+R,SAAU,MACVC,KAAM,WACJ,OAAmB,MAAf,EAAKwnD,OACA,GAGF,EAAK2rB,cAAcusB,aAAa,EAAKl4C,OAAOC,eAjCzB,8BAsChC,WACE,MAAO,CACLzsD,KAAM,QACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKuuD,SA3Cc,kBA+ChC,WACEvuD,KAAKgmB,YAAa,IAhDY,mBAmDxB,WACNhmB,KAAKgmB,YAAa,IApDY,uBAuDxB,WACe,MAAjBhmB,KAAKue,WACPve,KAAKue,SAASjS,OAAO,aAActM,KAAKua,YACxCva,KAAKue,SAAS2hE,aA1Dc,sBA+DxB,WACN,OAAOlgF,KAAKgmB,aAhEkB,sBAmExB,WACe,MAAjBhmB,KAAKue,UACPve,KAAKue,SAASjS,OAAO,aAAc,MArEP,4BAyExB,SAAe5M,GACH,SAAdA,EAAEyT,SAAsBnT,KAAKowG,iBAAiBt4F,SAASpY,EAAEqL,OAAOmsC,aAClEx3C,EAAE8T,YAAYnT,MAAM,oBAAsBX,EAAElE,KAAKg7D,iBA3ErB,GAAS3zD,cA+DzCb,gBADCqjE,gBAAK,WACN,8BA/DmB8qC,GAAa,gBATjChpG,gBAAU,CACTL,WAAY,CACV6R,wBACA+Q,4BACApK,sBACAQ,oCACAmK,sCAGiBkmF,cCxHsY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dC8If,IAAqBG,GAAkB,4CAwBnC,iDACE,eAxBe,EAAAP,iBAA2B,gBAEpC,EAAArsG,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAq1F,uBAAiD,IAAIzB,GAAuB,OAC5E,EAAAzzF,aAA6B,IAAIjC,GACjC,EAAA2tB,WAA6B,GACrC,EAAAxwB,QAA+B,GAC/B,EAAA7D,eAAuB,GACvB,EAAA8J,QAA+B,GAC/B,EAAApJ,cAAsB,GACtB,EAAAyd,YAAsB,EACtB,EAAAupF,sBAAgC,EAEhC,EAAAD,cAA8C,GAC9C,EAAAiB,kBAAkD,GAE1C,EAAAvkD,oBAAsC,CAC5C,CAAErgD,KAAM,eAAgBtN,MAAO8oD,GAAmC0F,YAClE,CAAElhD,KAAM,wBAAyBtN,MAAO8oD,GAAmCgK,gBAC3E,CAAExlD,KAAM,oBAAqBtN,MAAO8oD,GAAmCuJ,aACvE,CAAE/kD,KAAM,mBAAoBtN,MAAO8oD,GAAmCiK,aAGxE,EAxBmC,8CA4BnC,WACEpxD,KAAK2d,aA7B4B,+EA+BnC,sHAC0B3d,KAAK0D,OAAOzF,IAAoB,sBAD1D,cACE+B,KAAKk8B,WADP,OAGM5rB,EAAgB,IAAI/E,GAH1B,SAIsB+E,EAAc7E,SAJpC,OAIMC,EAJN,OAKE1L,KAAK0L,QAAUA,EAAQrM,KAAI,SAAA3B,GAAO,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAL1E,gDA/BmC,2EAuCnC,WACE7L,KAAKgmB,YAAa,IAxCe,mBA2CnC,WACEhmB,KAAKgmB,YAAa,IA5Ce,2BA+CnC,SAActmB,GACVM,KAAKimB,MAAM,iCAhDoB,4BAmDnC,SAAevmB,GACXM,KAAK6H,eAAiB,GACtB7H,KAAKuI,cAAgB,KArDU,oFAyD3B,uGACNvI,KAAK2R,QAAU,GACf3R,KAAKuI,cAAgB,IAClBvI,KAAK6H,eAHF,gCAIgB7H,KAAKwQ,aAAawtF,iBAAiBh+F,KAAK6H,gBAAgB,GAJxE,OAIA8J,EAJA,OAKJ3R,KAAK2R,QAAUA,EAAQtS,KAAI,SAAAuS,GAAO,MAAO,CAAEjG,KAAMiG,EAAEC,UAAWxT,MAAOuT,EAAEE,YAEpEH,EAAQ3V,OAAS,IAClBgE,KAAKuI,cAAgBoJ,EAAQ,GAAGG,SAR9B,gDAzD2B,4IAuE3B,iGACN9R,KAAKsvG,cAAgB,IAClBtvG,KAAK6H,iBAAkB7H,KAAKuI,cAFzB,uBAGJvI,KAAKuvG,sBAAuB,EAHxB,SAI2BvvG,KAAK0lG,uBAAuB8K,iBAAiBxwG,KAAK6H,eAAgB7H,KAAKuI,eAJlG,OAIJvI,KAAKuwG,kBAJD,OAKJvwG,KAAKsvG,cAAgBnqG,IAAEihB,UAAUpmB,KAAKuwG,mBACtCvwG,KAAKuvG,sBAAuB,EANxB,gDAvE2B,kFAiFnC,WACE,OAAOvvG,KAAKuP,MAAMvP,KAAK+vG,oBAlFU,+BAqF3B,SAAkBlrG,GACxB7E,KAAKguE,cAAc7V,OAAS,CAC1BC,SAAUvzD,EAAKuzD,SACf/rD,WAAYxH,EAAKwH,WACjBT,WAAY/G,EAAK+G,WACjBiP,YAAahW,EAAK6hB,SAEpB1mB,KAAKguE,cAAc51B,SA5Fc,gCA+F3B,SAAmB4nB,GACzB,IAAIywC,EAAQ,SACRt8D,EAAYn0C,KAAKk8B,WAAWt4B,QAAO,SAAA5E,GAAC,OAAIA,EAAEo9B,aAAe4jC,KAAa,GAM1E,OAJgB,MAAb7rB,IACDs8D,EAAQzwG,KAAKk8B,WAAWt4B,QAAO,SAAA5E,GAAC,OAAIA,EAAEo9B,aAAe4jC,KAAa,GAAG7zB,QAGhEskE,IAvG0B,2BA0G3B,SAAc5rG,GAEpB,IAAI6rG,EAAQ,GAAH,OAAM7rG,EAAKwH,WAAX,aAA0BxH,EAAK6hB,QAA/B,aAA2C7hB,EAAK2I,UAAhD,aAA8D3I,EAAK41D,mBAC5E,OAAOi2C,IA7G0B,yBAgH3B,WAAW,WACbC,EAAoD3wG,KAAKsvG,cAAc1rG,QAAO,SAAA2J,GAAC,OAAI,EAAKu2B,WAAWv2B,MACpGlO,KAAI,SAAAkO,GACH,MAAO,CACL48C,kBAAmB,uCACnBuC,uBAAwBn/C,EAAEiiG,gBAC1B7iD,oBAAqB,GACrBC,2BAA4Br/C,EAAEsiG,aAC9B1oD,mCAAoC55C,EAAE45C,mCACtC2F,eAAe,EACfC,2BAA4Bx/C,EAAEw/C,2BAC9BC,wBAAyBz/C,EAAEy/C,wBAC3BC,aAAc,OAIpBjtD,KAAK0D,OAAOK,SAAS,sCAAuC4sG,GAC5D3wG,KAAKuuD,UAjI4B,wBAoI3B,SAAWqiD,GACjB,IAAIC,EAAuB7wG,KAAKuwG,kBAAkB3sG,QAAO,SAAA2J,GAAC,OAAIA,EAAEiiG,iBAAmBoB,EAAapB,mBAAiB,GAEjH,OAAIqB,EAAqBhB,cAAgBe,EAAaf,eAIlDgB,EAAqB1pD,oCAAsCypD,EAAazpD,qCAIxE0pD,EAAqB9jD,4BAA8B6jD,EAAa7jD,4BAIhE8jD,EAAqB7jD,yBAA2B4jD,EAAa5jD,4BAnJhC,2BA2J3B,SAAcnoD,EAAWisG,GAC/B,IAAIC,EAAmB/wG,KAAKsvG,cAAc1rG,QAAO,SAAA2J,GAAC,OAAIA,EAAEiiG,iBAAmBsB,KAAiB,GAC5FC,EAAiBlB,aAAehrG,EAAKxG,MACrC,IAAIwyG,EAAuB7wG,KAAKuwG,kBAAkB3sG,QAAO,SAAA2J,GAAC,OAAIA,EAAEiiG,iBAAmBsB,KAAiB,GAAGjB,aAEnGgB,GAAwBhsG,EAAKxG,MAC/BwG,EAAKq6C,QAAQzrC,UAAUC,IAAI,0BAG3B7O,EAAKq6C,QAAQzrC,UAAUrO,OAAO,8BApKC,GAASvC,cAyD5Cb,gBADCuW,gBAAM,mBACP,mCAcAvW,gBADCuW,gBAAM,kBACP,kCAvEiB+3F,GAAkB,gBArBtCnpG,gBAAU,CACTL,WAAY,CACVuS,8BACAL,wBACAJ,wBACA24C,gCACA5nC,4BACAM,kCACA1K,oBACAjG,gCACA0a,0BACAuY,sCACAC,4BACAC,kBACAC,kBACAtzB,gCACA4b,sCACAhL,iBACAmmF,qBAGiBG,cCjK4Y,MCQ7Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,8dCgOf,IAAqB3iC,GAAQ,4CA2C3B,iDACE,eA3CK,EAAAp+D,MAMH,GAEY,EAAAw9F,iBAAuCtnC,GAAmBkI,SAC1D,EAAAqjC,yBAAA,oCAAgEvrC,GAAmBkI,UACnF,EAAA21B,oBAA8B,sBAC9B,EAAAD,eAAyB,iBACzB,EAAAD,iBAA2B,mBAC3B,EAAA4J,gBAA0B,kBAC1B,EAAAC,sBAAgC,wBAMhD,EAAAlC,2BAAqC,EAyBnC,EAAKrF,uBAAyB,IAAIzB,GAAuB,QACzD,EAAKlB,2BAA6B,CAC9BpyF,KAAM,SAAA4L,GAAW,OACf,EAAKmpF,uBACFsF,iBAAiBzuF,EAAakpD,GAAmBkI,SAAUqvB,GAAcG,cAGlF,EAAKgG,0BAA4B,CAC7BxyF,KAAM,SAAA4L,GAAW,OACf,EAAKmpF,uBACFsF,iBAAiBzuF,EAAakpD,GAAmBkI,SAAUqvB,GAAcI,eACzE/2F,MAAK,SAAAxJ,GACJ,IAAIouG,EAAmBpuG,EAAOrB,KAAKQ,OAAS,EAE5C,OADA,EAAKkvG,cAAcD,GACZpuG,OAjBnB,EA3C2B,qDAuB3B,WACE,OAAOmD,KAAKuP,MAAMvP,KAAKsjG,uBAxBE,uBA2B3B,WACE,OAAOtjG,KAAKuP,MAAMvP,KAAKqjG,kBA5BE,yBA+B3B,WACE,OAAOrjG,KAAKuP,MAAMvP,KAAKojG,oBAhCE,wBAmC3B,WACE,OAAOpjG,KAAKuP,MAAMvP,KAAKgtG,mBApCE,8BAuC3B,WACE,OAAOhtG,KAAKuP,MAAMvP,KAAKitG,yBAxCE,2BAiE3B,SAAc9B,GACZnrG,KAAK+qG,0BAA4BI,IAlER,8BAqE3B,WACEnrG,KAAKixG,aAAa74D,SAtEO,0BAyE3B,SAAaxqB,EAAUmiB,EAAcy3C,GACnCxnF,KAAKorG,YAAYp/F,SAAW4hB,EAAI/hB,SAChC7L,KAAKorG,YAAY5jB,eAAiBA,EAClCxnF,KAAKorG,YAAY5E,WAAaz2D,EAC9B/vC,KAAKorG,YAAYhzD,SA7EQ,iCAgF3B,SAAoB14C,GACT,MAALA,GAAwB,MAAXA,EAAE2U,QACjB3U,EAAE2U,MAAMvE,QAAU,0BAlFK,6BAsF3B,WACM9P,KAAKuP,MAAM2hG,+BACZlxG,KAAKuP,MAAM2hG,8BAAsC/1E,kBAGhDn7B,KAAKuP,MAAM+7F,oCACZtrG,KAAKuP,MAAM+7F,mCAA2CnwE,kBAGrDn7B,KAAKuP,MAAM4hG,qBACZnxG,KAAKuP,MAAM4hG,oBAA4Bh2E,oBAhGjB,kCAoG3B,WACEn7B,KAAKwrG,iBAAiBpzD,SArGG,+BAwG3B,WACEp4C,KAAK2lG,cAAcvtD,SAzGM,4BA4G3B,WACEp4C,KAAKoxG,mBAAmBh5D,WA7GC,GAASv1C,cAAjB8qE,GAAQ,gBArB5BxmE,eAAU,CACTL,WAAY,CACVsoG,qCACA3D,eACAnE,eACAhC,iBACA9sF,uBACAI,wBACAD,wBACAkR,8BACAhR,8BACAmH,sBACAD,wBACAT,sBACA/F,kCACAqQ,4CACA7Q,yBACAo1F,kBACAmC,0BAGiB3iC,QCnPT0jC,GCwBAC,GF2NS3jC,MGnPgY,MCQjZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI5tE,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,cAAcnH,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,gCAAgC,CAACnB,EAAIo/F,GAAG,GAAGh/F,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,cAAcP,EAAIwxG,yBAAyB,MAAQxxG,EAAIyxG,oBAAoB,UAAY,iBAAiB,YAAc,QAAQxpG,GAAG,CAAC,iBAAmBjI,EAAI0xG,sBAAsB,eAAe,SAASxpG,GAAQlI,EAAIyxG,oBAAoBvpG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,gCAAgC,CAACnB,EAAIo/F,GAAG,GAAGh/F,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,kBAAiB,EAAK,qBAAoB,EAAK,sBAAqB,EAAK,cAAcP,EAAI2xG,0BAA0B,MAAQ3xG,EAAI4xG,qBAAqB,YAAc,OAAO,UAAY,kBAAkB3pG,GAAG,CAAC,iBAAmBjI,EAAI6xG,uBAAuB,eAAe,SAAS3pG,GAAQlI,EAAI4xG,qBAAqB1pG,OAAY,KAAK9H,EAAG,MAAM,CAACe,YAAY,gCAAgC,CAACnB,EAAIo/F,GAAG,GAAGh/F,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,kBAAkB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI8xG,mBAAkB,QAAW,OAAO1xG,EAAG,wBAAwB,CAACG,MAAM,CAAC,WAAaP,EAAI+xG,uBAAuB9pG,GAAG,CAAC,OAASjI,EAAIgyG,qBAAqB5xG,EAAG,gBAAgB,CAACG,MAAM,CAAC,qBAAoB,EAAM,eAAiBP,EAAIyxG,oBAAoB,kBAAoBzxG,EAAI4xG,yBAAyB,IACv6C,GAAkB,CAAC,WAAa,IAAI5xG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACJ,EAAIuH,GAAG,yBAAyB,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACJ,EAAIuH,GAAG,0BAA0B,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACJ,EAAIuH,GAAG,WCDtZ,GAAS,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACgL,YAAY,CAAC,aAAa,SAAS,CAAChL,EAAG,MAAM,CAACe,YAAY,2BAA2B,CAACf,EAAG,OAAO,CAACJ,EAAIuH,GAAG,sBAAsBnH,EAAG,OAAO,CAACe,YAAY,iBAAiB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGvH,KAAKgyG,qBAAqB7xG,EAAG,eAAe,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,cAAcP,EAAIgpD,0BAA0B,uBAAwB,EAAM,OAAS,CAAEz8B,SAAS,EAAMxG,SAAU,KAAM,MAAQ,CAAEmsF,sBAAsB,GAAQ,aAAa,CAAClmF,SAAS,GAAO,qBAAoB,EAAK,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,qBAAsB,EAAK,uBAAwB,EAAM,eAAiB,IAAI,iBAAkB,EAAK,mBAAqB,SAAS,oBAAoB,CAAE0S,SAAS,EAAMC,QAAQ,EAAMC,WAAW,EAAMuzE,mBAAmB,GAAO,OAAS,QAAQlqG,GAAG,CAAC,gBAAgBjI,EAAIqjC,eAAe,eAAerjC,EAAI+Z,YAAY,yBAAyB/Z,EAAI25C,mBAAmB,gBAAgB35C,EAAIoyG,oBAAoBrxG,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,4BAA4BqC,GAAG,SAASkH,GAC3kC,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAI+mC,GAAG,SAAP/mC,CAAiBvE,EAAKA,KAAK42G,kBAAkB,qBAAqB,CAACzzG,IAAI,mBAAmBqC,GAAG,SAASkH,GACvI,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,OAAO,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,WAAc,OAAOP,EAAIsyG,gBAAgB72G,EAAKA,OAAS,YAAc,WAAW,KAAO,eAAe,SAAS,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,gBAAe,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,aAAaH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,aAAa,CAACG,MAAM,CAAC,SAAU,IAAQ,CAACH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,EAAM,OAAS,YAAY,eAAe,QAAQ,KAAO,mBAAmB,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,SAAU,EAAM,aAAa,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,aAAa,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,aAAa,YAAY,SAAS,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,cAAc,QAAU,UAAU,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,mBAAkB,EAAK,YAAY,GAAG,QAAU,mBAAmB,aAAa,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,aAAa,YAAY,SAAS,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,oBAAoB,YAAY,OAAO,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,mBAAkB,EAAK,YAAY,GAAG,aAAa,eAAe,YAAY,SAAS,sBAAuB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAK,iBAAgB,EAAK,0BAAyB,EAAK,YAAY,GAAG,YAAY,UAAU,aAAa,gBAAgB,QAAU,iBAAiB,sBAAuB,EAAM,YAAY,UAAU,aAAa,eAAeH,EAAG,YAAY,CAACG,MAAM,CAAC,gBAAgB,mBAAmB,iBAAgB,EAAM,YAAY,GAAG,QAAU,WAAW,UAAY,SAAS,sBAAuB,EAAM,QAAUP,EAAIuyG,uBAAuB,GAAGnyG,EAAG,qBAAqB,CAACG,MAAM,CAAC,iBAAmBP,EAAIwyG,iBAAiB,aAAexyG,EAAIyyG,aAAa,QAAUzyG,EAAI0yG,QAAQ,aAAe1yG,EAAI2yG,aAAa,YAAc3yG,EAAI4yG,YAAY,0BAA4B5yG,EAAI6yG,qBAAqB,uBAAyB7yG,EAAI8yG,kBAAkB,YAAc9yG,EAAI+yG,aAAa9qG,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOlI,EAAIgzG,6BAA6B5yG,EAAG,iBAAiB,CAAC+H,IAAInI,EAAIgwG,mBAAmB5vG,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,MAAM,aAAa,MAAM,QAAUP,EAAIimB,WAAW,MAAQjmB,EAAI0gB,YAAYzY,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,KAAU,CAAC9H,EAAG,iBAAiB,CAACA,EAAG,MAAM,CAAC+6C,SAAS,CAAC,UAAYn7C,EAAIwH,GAAGxH,EAAIizG,oBAAoB7yG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,QAASkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI2lC,YAAa,SAAW,QAAQ,QAAU,aAAa,IAAI,IAC9rG,GAAkB,GCGTutE,GAAb,WAGE,oCACEjzG,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,iBAJnD,sGAOE,WAAauJ,GAAb,iGACe1M,KAAK0D,OAAOiJ,YAAZ,UAAmCD,GADlD,wFAPF,0IAWE,WAAgBA,GAAhB,iGACe1M,KAAK0D,OAAOiJ,YAAZ,cAAuCD,GADtD,wFAXF,mJAeE,WAAyBA,GAAzB,iGACe1M,KAAK0D,OAAOiJ,YAAZ,wBAAiDD,GADhE,wFAfF,qIAmBE,WAAWlN,EAAUhE,GAArB,iGACewE,KAAK0D,OAAOQ,YAAYC,oBAAeyK,IAAvC,WAAgDpP,GAAMhE,GADrE,wFAnBF,mJAuBE,WAAuBgE,EAAUhE,GAAjC,iGACewE,KAAK0D,OAAOQ,YAAYC,oBAAeyK,IAAvC,wBAA6DpP,GAAMhE,GADlF,wFAvBF,iJA2BE,8GACewE,KAAK0D,OAAOiL,QAAQxK,oBAAe23D,IAAnC,iBADf,wFA3BF,yIA+BS,WAAgBtgE,EAAuB03G,GAAvC,iGACQlzG,KAAK0D,OAAOK,SAAZ,4CAA0DmvG,GAAgB13G,GADlF,wFA/BT,qJAmCS,WAAyB23G,GAAzB,iGACQnzG,KAAK0D,OAAOiL,QAAQxK,oBAAe23D,IAAnC,4BAA6Dq3C,IADrE,wFAnCT,iECRI,GAAS,WAAa,IAAIpzG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQP,EAAIW,MAAM,MAAQ,OAAO,YAAY,MAAM,gBAAe,EAAK,OAAS,OAAO,0BAAyB,EAAM,QAAUX,EAAIkqD,cAAcjiD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIkqD,aAAahiD,GAAQ,OAASlI,EAAIg5C,gBAAgB,CAAC54C,EAAG,MAAM,CAACe,YAAY,sBAAsB,CAACf,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACnB,EAAIuH,GAAG,UAAUnH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,mBAAmB,WAAaP,EAAIqzG,cAAc,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,MAAQrzG,EAAIszG,gBAAgB,YAAc,WAAW,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,MAAM,MAAQ,OAAOrrG,GAAG,CAAC,OAASjI,EAAIuzG,qBAAqB,eAAe,SAASrrG,GAAQlI,EAAIszG,gBAAgBprG,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIwzG,qBAAqBzyG,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GAC5nC,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,sCAAsCvH,EAAIwH,GAAG/L,GAAM,qCAAqC2E,EAAG,MAAM,CAACe,YAAY,mCAAmC,GAAGf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACnB,EAAIuH,GAAG,UAAUnH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,mBAAmB,WAAaP,EAAImjB,cAAc,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,MAAQnjB,EAAIojB,gBAAgB,YAAc,WAAW,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,MAAM,MAAQ,OAAOnb,GAAG,CAAC,OAASjI,EAAIuzG,qBAAqB,eAAe,SAASrrG,GAAQlI,EAAIojB,gBAAgBlb,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIwzG,qBAAqBzyG,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GAC96B,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,sCAAsCvH,EAAIwH,GAAG/L,GAAM,qCAAqC2E,EAAG,MAAM,CAACe,YAAY,mCAAmC,GAAGf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,iBAAiB,CAACf,EAAG,MAAM,CAACe,YAAY,yBAAyB,CAACnB,EAAIuH,GAAG,WAAWnH,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,oBAAoB,WAAaP,EAAIyzG,eAAe,uBAAwB,EAAK,uBAAsB,EAAK,kBAAiB,EAAK,YAAc,GAAG,MAAQzzG,EAAI0zG,iBAAiB,YAAc,WAAW,uBAAsB,EAAK,mBAAkB,EAAM,eAAe,MAAM,MAAQ,OAAOzrG,GAAG,CAAC,OAASjI,EAAIuzG,qBAAqB,eAAe,SAASrrG,GAAQlI,EAAI0zG,iBAAiBxrG,GAAQ,uBAAuBlI,EAAIgjB,0BAA0B,gBAAgBhjB,EAAIwzG,qBAAqBzyG,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,MAAMqC,GAAG,SAASkH,GACn7B,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACe,YAAY,iBAAiBb,MAAON,EAAIkjB,aAAaznB,IAAQ,CAAC2E,EAAG,OAAO,CAACJ,EAAIuH,GAAG,sCAAsCvH,EAAIwH,GAAG/L,GAAM,qCAAqC2E,EAAG,MAAM,CAACe,YAAY,mCAAmC,GAAGf,EAAG,MAAM,CAACgL,YAAY,CAAC,gBAAgB,QAAQ,CAAChL,EAAG,cAAc,CAACG,MAAM,CAAC,YAAc,gBAAgB,eAAe,WAAW,MAAQP,EAAIyyG,iBAAiB,GAAGryG,EAAG,iBAAiB,CAAC+H,IAAI,kBAAkB5H,MAAM,CAAC,MAAQP,EAAI2zG,KAAK,aAAa,OAAO,OAAS,OAAO1rG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI2zG,KAAKzrG,KAAU,CAAC9H,EAAG,aAAa,CAACG,MAAM,CAAC,UAAY,sBAAsB,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,UAAUH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,YAAYH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,iBAAiBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,kBAAkBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,eAAeH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAWH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,gBAAgBH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,IAAI,GAAGH,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,uBAAuB,IAAI,GAAGH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,OAAQkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI4zG,aAAa,SAAW,SAAS,QAAU,YAAYxzG,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,UAAWkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAI6zG,WAAW,SAAW,SAAS,QAAU,aAAa,IACvyD,GAAkB,G,oePPtB,SAAYvC,GACRA,4BACAA,8BACAA,iCAHJ,CAAYA,QAAW,KCwBvB,SAAYC,GACRA,6BACAA,+BACAA,+BACAA,yBACAA,6BACAA,iCACAA,mCAPJ,CAAYA,QAAmB,KOkK/B,IAAMhjE,GAASW,EAAQ,QAWF4kE,GAAgB,4CAkNjC,iDACI,eAlNa,EAAA3uF,eAAyB,IAC1C,EAAA3V,MAGI,GA8LJ,EAAAqT,gBAA4B,GAC5B,EAAAM,cAA0B,GAC1B,EAAAswF,eAA2B,GAC3B,EAAArwF,gBAA4B,GAC5B,EAAAswF,iBAA6B,GAC7B,EAAA5wF,kBAA8B,GAC9B,EAAAwwF,gBAA4B,GAC5B,EAAAxnD,aAAuB,GACvB,EAAA6nD,KAAc,GAEd,EAAAhuF,oBAA8B,GAC9B,EAAAouF,sBAAgC,GAChC,EAAAC,uBAAiC,GAQjC,EAAAxuF,eAAiB,CACTC,aAAe,CACX3V,KAAM,QACNC,QAAU,iBAEd2V,QAAU,IARd,EAAKiG,oBAAsB,IAAIL,GAC/B,EAAK2oF,eAAiB,IAAIf,GAH9B,EAlNiC,oDAOjC,WACI,OAASjzG,KAAKuP,MAAMwW,mBAAuC3U,WAR9B,8BAwCjC,SAAiBH,EAAa+a,GAC1B,GAAG/a,EAAOwxC,GAAI,CACV,IAAIwxD,EAAKhjG,EAAOwxC,GAAG/qC,MAAM1X,KAAKklB,gBAC9BllB,KAAKkjB,cAAgB+wF,EACrBj0G,KAAKmjB,gBAAkB8wF,OAGvBj0G,KAAKkjB,cAAgB,GACrBljB,KAAKmjB,gBAAkB,GAG3B,GAAGlS,EAAOijG,IAAK,CACX,IAAIC,EAAMljG,EAAOijG,IAAIx8F,MAAM1X,KAAKklB,gBAChCllB,KAAKwzG,eAAiBW,EACtBn0G,KAAKyzG,iBAAmBU,OAGxBn0G,KAAKwzG,eAAiB,GACtBxzG,KAAKyzG,iBAAmB,KA1DC,0BA8DjC,WACI,MAAO,KA/DsB,wBAkEjC,WACE,OAAOzzG,KAAKuyG,kBAnEmB,IAsEjC,SAAiBl0G,GACb2B,KAAKimB,MAAM,YAvEkB,wBA0EjC,WACI,OAAOjmB,KAAKo0G,eA3EiB,iBA8EjC,WACE,OAAQp0G,KAAK2yG,aACX,KAAKtB,GAAYgD,QACf,MAAO,mBACT,KAAKhD,GAAYiD,SACf,MAAO,oBACT,QACE,MAAO,eArFoB,yBAyFjC,WACI,IAAIz3G,EAASmD,KAAKu0G,QAAUv0G,KAAKu0G,QAAQ78F,MAAM1X,KAAKklB,gBAAkB,GAEtE,OADAllB,KAAKqzG,gBAAkBx2G,EAChBA,IA5FsB,0BA+FjC,WACI,OAAQmD,KAAKuP,MAAMilG,gBAAwBpjG,WAhGd,2FAoGjC,WAA2BH,EAAqB+a,GAAhD,+FACO/a,GAAUogG,GAAYgD,UAAWr0G,KAAKy0G,uBAD7C,gCAEcz0G,KAAK0rB,oBAAoB0yB,oBAAoBp+C,KAAKy0G,wBACvDpuG,MAAK,SAAAI,GACF,GAAGA,EAAQ0pB,KAAM,CACb,IAAIxkB,EAAO,EAAK+oG,4BAA4BjuG,EAAQ0pB,MACpD,EAAKujF,KAAO,EAAKiB,iBAAiBhpG,OANlD,iCAUYsF,GAAWogG,GAAYiD,WAAYt0G,KAAK40G,0BAVpD,iCAWc50G,KAAK0rB,oBAAoB0yB,oBAAoBp+C,KAAK40G,2BACvDvuG,MAAK,SAAAI,GACF,GAAGA,EAAQ0pB,KAAM,CACb,IAAIxkB,EAAO,EAAK+oG,4BAA4BjuG,EAAQ0pB,MACpD,EAAKujF,KAAO,EAAKiB,iBAAiBhpG,OAflD,+BAoBQ3L,KAAK0zG,KAAO1zG,KAAK20G,iBAAiB,WApB1C,iDApGiC,qGA4HjC,SAA4BhpG,GAAY,WAChCkpG,EAAY54G,OAAOygB,OAAO40F,IAC1BthF,EAAerkB,EA8BnB,OA5BAkpG,EAAU7lG,SAAQ,SAAAnK,GACd,IAAIrJ,EAAe,GAEhBqJ,GAAQysG,GAAoB9jG,UAC3BhS,EAAO,EAAKs3G,YAAYtlG,UAEpB3I,GAAQysG,GAAoB1lG,WAChCpQ,EAAO,EAAKs3G,YAAYlnG,WAEpB/G,GAAQysG,GAAoBjlG,WAChC7Q,EAAO,EAAKs3G,YAAYzmG,WAEpBxH,GAAQysG,GAAoB5qF,QAChClrB,EAAO,EAAKs3G,YAAYj4F,YAEpBhW,GAAQysG,GAAoBwD,UAChCt5G,EAAO,EAAKs3G,YAAYgC,UAEpBjwG,GAAQysG,GAAoByD,YAChCv5G,EAAO8yC,GAAO,EAAKwkE,YAAYkC,kBAAkBj+F,OAAO,cAEpDlS,GAAQysG,GAAoB2D,eAChCz5G,EAAO,EAAKs3G,YAAYmC,cAG5BjlF,EAAeA,EAAatY,MAAM7S,GAAMf,KAAKtI,MAG1Cw0B,IA5JsB,8BA+JjC,SAAiBrkB,GACb,IAAMupG,EAAYl1G,KAAKm1G,eAAel3G,IAAI,aACpCm3G,EAAQF,EAAUE,MAClBC,EAHmB,iKAIrB,SAAch3G,GACV,IAAI4zE,EAAO,2DAAa5zE,GAGxB,OAFA4zE,EAAK6zB,aAAa,QAAS,mCAEpB7zB,MARU,GAGRmjC,GAQjBC,EAAGC,SAAW,KACdD,EAAGE,QAAU,KACbv1G,KAAKm1G,eAAeK,SAASH,GAE7B,IAAII,EAAez1G,KAAK0yG,aACpBgD,EAAW,0BAAH,OAA6BD,EAAaE,KAA1C,SACRC,EAAO,0BAAH,OAA6BtnE,GAAOmnE,EAAaI,MAAM9+F,OAAO,QAA9D,SACJ++F,EAAS,wBAAH,OAA2BL,EAAaM,GAAxC,SACNC,EAAO,6BAAH,OAAgCP,EAAaQ,QAA7C,SACJC,EAAST,EAAahzD,GAAb,+BAA0CgzD,EAAahzD,GAAvD,SAAkE,GAC3E0zD,EAAUV,EAAavB,IAAb,gCAA4CuB,EAAavB,IAAzD,SAAqE,GAC/ER,EAAO+B,EAAaW,KAEpBv5G,EAAS,GAAH,OAAM8O,EAAN,6DAGJ+pG,GAHI,OAGOE,GAHP,OAGcE,GAHd,OAGuBI,GAHvB,OAGgCC,GAHhC,OAG0CH,EAH1C,4CAKJtC,EALI,cAQV,OAAO72G,IA/LsB,uCA8NjC,SAA0B6C,GACtB,GAAIM,KAAKinB,qBAAqBvnB,EAAEiM,MAChC,CACI,IAAI/N,EAAO8B,EAAEuH,UAAUqF,OAAO,QACnB,oBAAR1O,EAEIuH,IAAE6M,KAAKhS,KAAKkjB,eAAe,SAAAre,GAAI,OAAIA,IAASnF,EAAEiM,QAC7C3L,KAAK8zG,sBAAwBp0G,EAAEiM,KAG/B3L,KAAKkjB,cAAc5mB,KAAKoD,EAAEiM,MAGlB,qBAAR/N,EACDuH,IAAE6M,KAAKhS,KAAKwzG,gBAAgB,SAAA3uG,GAAI,OAAIA,IAASnF,EAAEiM,QAC9C3L,KAAK+zG,uBAAyBr0G,EAAEiM,KAGhC3L,KAAKwzG,eAAel3G,KAAKoD,EAAEiM,MAGnB,oBAAR/N,IACDuH,IAAE6M,KAAKhS,KAAKozG,eAAe,SAAAvuG,GAAI,OAAIA,IAASnF,EAAEiM,QAC7C3L,KAAK0lB,oBAAsBhmB,EAAEiM,KAG7B3L,KAAKozG,cAAc92G,KAAKoD,EAAEiM,YAKlCjM,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBA9PhC,iCAkQjC,SAAoB9lB,GAAK,WAEb6R,EAAM7R,EAAEuH,UAAUqF,OAAO,SACzB1O,EAAO8B,EAAEuH,UAAUqF,OAAO,QACnB,oBAAR1O,GAA8BoC,KAAK8zG,uBAElCviG,EAAIjV,KAAK0D,KAAK8zG,uBACdp0G,EAAEuH,UAAUqF,OAAO,QAASiF,GAE5BvR,KAAK8zG,sBAAwB,IAEjB,qBAARl2G,GAA+BoC,KAAK+zG,wBACxCxiG,EAAIjV,KAAK0D,KAAK+zG,wBACdr0G,EAAEuH,UAAUqF,OAAO,QAASiF,GAE5BvR,KAAK+zG,uBAAyB,IACjB,oBAARn2G,GAA8BoC,KAAK0lB,sBACxCnU,EAAIjV,KAAK0D,KAAK0lB,qBACdhmB,EAAEuH,UAAUqF,OAAO,QAASiF,GAE5BvR,KAAK0lB,oBAAsB,IAI5BhmB,EAAErB,OAASqB,EAAErB,MAAMrC,OAAS,GACxBmJ,IAAE6M,KAAKtS,EAAErB,OAAM,SAAAwG,GAAI,OAAM,EAAKoiB,qBAAqBpiB,OAClDnF,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAkBtM,KAAKulB,eAAeC,gBAQzD9lB,EAAEuH,UAAUqF,OAAO,WAAW,GAC9B5M,EAAEuH,UAAUqF,OAAO,kBAAmB,SAtSrB,kCA0SjC,SAAqB5M,GACjBA,EAAEuH,UAAUigB,UAAU9hB,WA3SO,uBA6SjC,SAAU1F,GACNM,KAAKiqD,cAAe,IA9SS,0BAiTjC,SAAavqD,GACT,MAAO,CACH,mBAAqBM,KAAKinB,qBAAqBvnB,GAAK,UAAY,aAnTvC,kCAuTjC,SAAqBiM,GACb,MAAO,gDAAgDqb,KAAKrb,KAxTnC,yBA2TjC,SAAYjM,GAAM,WACVmoB,EAAa7nB,KAAK8nB,gBAAgBC,WACtC,GAAIF,EAAWG,WAIZhoB,KAAKmjB,iBAAmBnjB,KAAKmjB,gBAAgBnnB,OAAS,GAC9CmJ,IAAE6M,KAAKhS,KAAKmjB,iBAAiB,SAAAte,GAAI,OAAK,EAAKoiB,qBAAqBpiB,UAIxE7E,KAAKyzG,kBAAoBzzG,KAAKyzG,iBAAiBz3G,OAAS,GAChDmJ,IAAE6M,KAAKhS,KAAKyzG,kBAAkB,SAAA5uG,GAAI,OAAK,EAAKoiB,qBAAqBpiB,UAIzE7E,KAAKqzG,iBAAmBrzG,KAAKqzG,gBAAgBr3G,OAAS,GAC9CmJ,IAAE6M,KAAKhS,KAAKqzG,iBAAiB,SAAAxuG,GAAI,OAAK,EAAKoiB,qBAAqBpiB,OAD3E,CAMA,IAAIhI,EAASmiB,sBAAQ,4CAA6Chf,KAAKU,OACvE7D,EAAOwJ,KAAP,yDAAY,WAAM0Y,GAAN,6FACGA,EADH,uBAEQsU,EAA6B,CAC7BovB,GAAK,EAAKt/B,gBACV+wF,IAAM,EAAKT,iBACXwC,QAAU,EAAKzD,aACf4D,KAAM,EAAK1C,KACXqC,GAAI,EAAK1C,gBAAgB,GACzBgD,aAAc,EAAK3D,aAAa2D,aAChCzqG,WAAa,EAAKknG,YAAYlnG,WAC9B4B,UAAY,EAAKslG,YAAYtlG,UAC7B8oG,UAAW,EAAK5D,aAAa4D,WAXrC,SAaoB,EAAKtC,eAAeuC,UAAUljF,EAAS,EAAKs/E,aACvDtsG,MAAK,SAAAI,GACF,OAAOA,EAAQmd,QAElBtd,OAAM,SAAAulB,GACH,OAAO,KAlBnB,OAaQwI,EAbR,OAoBOA,GACC9tB,IAAO,2BAA4B,UAAW,KAC9C,EAAK0jD,cAAe,GAGpB9hC,oBAAM,4CAA6C,SAzB3D,2CAAZ,0DAlV6B,2BAiXjC,SAAczoB,GACVM,KAAK0zG,KAAO,OAlXiB,GAAS7wG,cAY1Cb,gBADCwnB,mBACD,oCAGAxnB,gBADCwnB,mBACD,iCAGAxnB,gBADCwnB,mBACD,+BAGAxnB,gBADCwnB,mBACD,iDAGAxnB,gBADCwnB,mBACD,8CAGAxnB,gBADCwnB,mBACD,mCAGAxnB,gBADCwnB,mBACD,mCAGAxnB,gBADCwnB,mBACD,oCAIAxnB,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,wCAGAznB,gBADCuW,gBAAM,eAAgB,CAACi+F,MAAM,KAC9B,sCA4DAx0G,gBADCuW,gBAAM,gBACP,0CApGiBs7F,GAAgB,gBAVpC1sG,eAAU,CACTL,WAAY,CACVkjB,iBACA1Q,gCAAciG,oBAAQyU,0BACtB/J,kCACAE,wBACAL,0BACAM,2BAGiBypF,cCrM0Y,MCQ3Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBM4C,G,+FACZ,WACL,OAAO,IAAIv5E,MAAK,IAAIA,MAAOw5E,e,2dCgO3B,IAAqBC,GAAY,4CAuE7B,iDACI,eAvEG,EAAApnG,MAEH,GAmBa,EAAAwgG,iBAA2B,gBAEpC,EAAArsG,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IAE/E,EAAA6rB,WAAkC,GAClC,EAAAvE,gBAA4C,GAC5C,EAAAi/E,aAAuB,EACvB,EAAArE,kBAA4B,EAC5B,EAAAzrF,QAAkB,GAClB,EAAA+vF,SAAmB,GACnB,EAAAC,UAAoB,GACpB,EAAAtE,aAAuB,GACvB,EAAAC,QAAkB,GAClB,EAAAE,YAA2BtB,GAAYx7B,UACvC,EAAAi9B,YAAwC,GACxC,EAAAJ,aAAkC,GAC1B,EAAA1sF,YAAsB,EACtB,EAAAgtF,cAAwB,GACxB,EAAAvyF,WAAqB,GACrB,EAAAuxF,aAAqB,EAE7B,EAAA+E,4BAAkE,CAC9Dp4G,IAAK,YACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAKy3F,eAAegD,UAAUz6F,IACnDM,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKs3F,eAAel3F,KAAKne,EAAK+d,KAG3D,EAAAu6F,+BAAqE,CACjEt4G,IAAK,YACLgS,KAAM,SAAA4L,GAAW,OAAI,EAAKy3F,eAAe11F,OAAO/B,IAChDM,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKs3F,eAAel3F,KAAKne,EAAK+d,KAqBvD,EAAKs3F,eAAiB,IAAIf,GAC1B,EAAKlqD,0BAA4B,EAAKmuD,gBAAkB,IAAIzmG,KAAY,EAAKsmG,6BACrB,IAAItmG,KAAY,EAAKwmG,gCAJjF,EAvE6B,sDAc7B,WACI,OAAOj3G,KAAKm3G,iBAfa,gCAkB7B,WACI,OAAOn3G,KAAKo3G,oBAnBa,gCAuD7B,WACIp3G,KAAKgyG,aAAahyG,KAAKue,SAAS84F,qBAAqB,kBAxD5B,8BA2D7B,WACI,OAAIr3G,KAAKk3G,mBAILl3G,KAAK42G,cAhEgB,qBA8E7B,WACI52G,KAAK2d,aA/EoB,+EAkF7B,6GAEQswC,EAAmB,IAAI/nB,GAF/B,SAG4B+nB,EAAiBxiD,SAH7C,cAGIzL,KAAKk8B,WAHT,OAKQ2M,EAAoB,IAAI5C,GALhC,SAMiC4C,EAAkByB,wBANnD,cAMItqC,KAAK23B,gBANT,iBAQ6B33B,KAAKg0G,eAAesD,iBARjD,QAQIt3G,KAAK42G,YART,OASI52G,KAAKu3G,2BATT,iDAlF6B,qFA8F7B,SAAe73G,GACX,GAAiB,SAAdA,EAAEyT,SAA2C,qBAArBzT,EAAEqL,OAAO0K,QAAgC,CAChE,IAAI0+B,EAAYn0C,KAAKk8B,WAAWt4B,QAAO,SAAAtF,GAAC,OAAIA,EAAE69B,YAAcz8B,EAAEkuB,IAAIpyB,KAAK2gC,aAAW,GAC9EgY,IACAz0C,EAAE8T,YAAYnT,MAAM,oBAAsB8zC,EAAUhI,WAlGnC,oBAuG7B,WACI,OAAQnsC,KAAKuP,MAAMioG,gBAAwBpmG,WAxGlB,6BA2G7B,WACIpR,KAAKue,SAAS2hE,YA5GW,sCA8GrB,WACJlgF,KAAKue,SAASugC,aAAa,gBAAiB,eAAe,KA/GlC,yBAkH7B,SAAYp/C,GAERA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,WApHlB,6BAuH7B,SAAgB8hG,GAAmB,WAC3BA,EAAQC,KAAO,GACfD,EAAQC,OAGZ13G,KAAKg0G,eAAel3F,KAAK26F,EAAQnB,UAAWmB,GACvCpxG,MAAK,SAAAlB,GACF,EAAKg2B,uBA9HY,yBAkI7B,WACE,OAAOn7B,KAAKuP,MAAMvP,KAAK+vG,oBAnII,gCAsI7B,SAAmBrwG,GAAM,WACrB,GAAiB,YAAbA,EAAEqnD,QAAwBrnD,EAAEkuB,KAA0B,SAAlBluB,EAAEkuB,IAAIza,QAAoB,CAC9D,IAAIwkG,EAAiD,OAA/Bj4G,EAAEkuB,IAAIpyB,KAAKo8G,gBAC7BC,EAAqD,OAA9Bn4G,EAAEkuB,IAAIpyB,KAAKs8G,eAEtCp4G,EAAEib,MAAQ,CACN,CACIhP,KAAM,cACNksB,YAAa,kBAAM,EAAK83E,kBAAkBjwG,EAAEkuB,IAAIpyB,QAEpD,CACImQ,KAAM,0BACNksB,YAAa,kBAAM,EAAKkgF,qBAAqBr4G,EAAEkuB,IAAIpyB,QAEvD,CACImQ,KAAM,mBACNksB,YAAa,kBAAM,EAAKmgF,kBAAkBt4G,EAAEkuB,IAAIpyB,KAAM61G,GAAYgD,WAEtE,CACI1oG,KAAM,kCACNksB,YAAa,kBAAM,EAAKmgF,kBAAkBt4G,EAAEkuB,IAAIpyB,KAAM61G,GAAYiD,YAEtE,CACI3oG,KAAM,sBAAuB6wB,SAAyC,OAA/B98B,EAAEkuB,IAAIpyB,KAAKo8G,iBAEtD,CACIjsG,KAAM,wBACNgP,MAAO,CACH,CACIhP,KAAM,mBACNksB,YAAa,WACT,EAAKpX,WAAa,sCAClB,EAAKw3F,oBAAoBv4G,EAAEkuB,IAAIpyB,KAAKo8G,kBAExCp7E,UAAWm7E,GAEf,CACIhsG,KAAM,sBACNksB,YAAa,WACT,EAAKpX,WAAa,yCAClB,EAAKw3F,oBAAoBv4G,EAAEkuB,IAAIpyB,KAAKs8G,iBAExCt7E,UAAWq7E,IAGnBr7E,UAA8B,IAApBm7E,IAAqD,IAAzBE,OAnLzB,+BAyLrB,SAAkBJ,GACxBz3G,KAAKguE,cAAc7V,OAAS,CAC1BC,SAAUq/C,EAAQr/C,SAClB/rD,WAAYorG,EAAQprG,WACpBT,WAAY6rG,EAAQ7rG,WACpBiP,YAAa48F,EAAQ58F,aAGvB7a,KAAKguE,cAAc51B,SAjMQ,kCAoMrB,SAAqBq/D,GAAmB,WACxClpE,EAAQ,OAAH,OAAUkpE,EAAQjqG,UAAlB,aAAgCiqG,EAAQprG,YAE7C6rG,EAAmD,CACnD9/C,SAAUq/C,EAAQr/C,SAClB92B,MAAOiN,GAGXvuC,KAAK0D,OAAOiJ,YAAkB,2CAA4CurG,GACrE7xG,MAAK,SAAAxJ,GACF,IAAIs7G,EAAQ,EAAKl6F,QAAQne,QAAQ,CAAElC,KAAM,WAAY8f,OAAQ,CAAEle,GAAI3C,GAAoBqQ,MAAO,CAAC,MAAS,OACxGhO,OAAO05C,KAAKu/D,EAAMxQ,SAErBrhG,OAAM,SAAAulB,GACH1D,oBAAM,mCAAoC,cAlNzB,+BAsN7B,SAAkBzoB,EAAe+gF,GAC7BzgF,KAAKuyG,kBAAmB,EACxBvyG,KAAK2yG,YAAclyB,EAChBA,GAAM4wB,GAAYgD,SACjBr0G,KAAKwyG,aAAL,cAA2B9yG,EAAE04G,aAAanC,SAC1Cj2G,KAAKyyG,QAAU/yG,EAAE04G,aAAazC,KAC9B31G,KAAK8mB,QAAUpnB,EAAE04G,aAAa31D,KAG9BziD,KAAKwyG,aAAL,cAA2B9yG,EAAE04G,aAAanC,SAC1Cj2G,KAAKyyG,QAAU/yG,EAAE04G,aAAaj3F,aAElCnhB,KAAK8yG,YAAe,CAChBlnG,WAAclM,EAAEkM,WAChB4B,UAAY9N,EAAE8N,UACdnB,WAAa3M,EAAE2M,WACfwO,YAAcnb,EAAEmb,YAChBi6F,UAAYp1G,EAAEo1G,UACdE,iBAAmBt1G,EAAE0yG,kBACrB6C,aAAev1G,EAAEu1G,cAErBj1G,KAAK0yG,aAAe,CAChBjwD,GAAK/iD,EAAE04G,aAAa31D,GACpByxD,IAAMx0G,EAAE04G,aAAalE,IACrB+B,QAAUv2G,EAAE04G,aAAanC,QACzBN,KAAOj2G,EAAE04G,aAAazC,KACtBE,KAAMn2G,EAAE0yG,kBACR2D,GAAIr2G,EAAE04G,aAAarC,GACnBK,KAAO12G,EAAE04G,aAAahC,KACtBC,aAAe32G,EAAE04G,aAAa/B,aAC9BC,UAAY52G,EAAE42G,aApPO,oCAwP7B,WACIt2G,KAAKuyG,kBAAmB,EACxBvyG,KAAK2yG,YAActB,GAAYx7B,UAC/B71E,KAAKyyG,QAAU,GACfzyG,KAAKwyG,aAAe,GACpBxyG,KAAK8yG,YAAc,CACflnG,WAAc,GACd4B,UAAY,GACZnB,WAAa,GACbwO,YAAc,GACdi6F,UAAY,GACZE,iBAAmB,IAAIyB,GACvBxB,aAAe,IAEnBj1G,KAAK0yG,aAAe,CAChBjwD,GAAK,GACLyxD,IAAM,GACN+B,QAAU,GACVN,KAAO,GACPE,KAAM,IAAIY,GACVV,GAAI,GACJK,KAAO,GACPC,aAAe,GACfC,UAAW,MA/QU,0FAmRrB,WAA0BnD,GAA1B,wFACJnzG,KAAKgmB,YAAa,EADd,SAEuBhmB,KAAKg0G,eAAeqE,mBAAmBlF,GAF9D,OAEJnzG,KAAKgzG,cAFD,uDAnRqB,kFAwRrB,WACJhzG,KAAKgmB,YAAa,MAzRO,GAASnjB,SAMtCb,gBADCwnB,mBACD,uCAGAxnB,gBADCwnB,mBACD,sCAGAxnB,gBADCwnB,mBACD,yCAZiBmtF,GAAY,gBAjBhCxvG,gBAAU,CACPL,WAAY,CACR8R,wBACAD,wBACAG,0BACAM,gCACA0G,oCACAmK,kCACA4pF,oBACA1D,iBACAnmF,iBACAxK,oCACAkK,4BACAxQ,0BACAotE,kCAGaqwB,cClOiY,MCQtZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dC+Df,IAAqB2B,GAAQ,4CAQ3B,iDACE,eARM,EAAAxG,uBAAiC,EAGjC,EAAAN,oBAA4B,GAC5B,EAAAG,qBAA6B,GAC7B,EAAA4G,iBAA2B,EAoB3B,EAAAC,oBAAmC,IAAI/nG,KAAY,CACnDC,SAAU,MACV/R,IAAK,iBACLgS,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqBouF,mBAIrE,EAAAC,qBAAoC,IAAIjoG,KAAY,CACpDC,SAAU,MACV/R,IAAK,iBACLgS,KAAM,SAACjE,GACP,OAAO,EAAKgf,oBAAoBC,gBAAgBtB,GAAqBsuF,oBA5B3E,EAAKjtF,oBAAsB,IAAIL,GAC/B,EAAKjlB,YAAc,IAAI3C,EAHzB,EAR2B,6DAc3B,WACE,OAAO,IAAIoiB,KAAW,CACpB1iB,MAAOnD,KAAKw4G,wBAhBW,qCAoB3B,WACE,OAAO,IAAI3yF,KAAW,CACpB1iB,MAAOnD,KAAK04G,yBAtBW,qBA0C3B,WAAO,WACL14G,KAAKoG,YAAYwyG,qBAAqBvyG,MAAK,SAAAmQ,GACzC,IAAIqiG,EAAiBriG,EAAExE,MAAK,SAAAwE,GAAC,OAAEA,EAAEvR,MAAQhC,EAAgBw1G,kBACzD,EAAKjH,oBAAwC,MAAlBqH,EAAyBA,EAAe1pE,MAAQ,GAE3E,IAAI2pE,EAAkBtiG,EAAExE,MAAK,SAAAwE,GAAC,OAAEA,EAAEvR,MAAQhC,EAAgB01G,mBAC1D,EAAKhH,qBAA0C,MAAnBmH,EAA0BA,EAAgB3pE,MAAO,GAC7E78B,YAAW,WAAM,EAAKimG,iBAAkB,IAAQ,UAjDzB,+BAuDnB,WAAsC,IAApBngE,IAAoB,yDAC5Cp4C,KAAK8xG,sBAAwB15D,IAxDJ,+BA2DnB,WACNp4C,KAAK6xG,mBAAkB,GACvB7xG,KAAKuxG,yBAAyBtlF,SAC9BjsB,KAAK0xG,0BAA0BzlF,WA9DN,mCAiEnB,SAAsBvsB,GAC5BM,KAAK+4G,qBAAqB91G,EAAgBw1G,eAAgB/4G,KAlEjC,oCAqEnB,SAAuBA,GAC7BM,KAAK+4G,qBAAqB91G,EAAgB01G,gBAAiBj5G,KAtElC,kCAyEnB,SAAqB9B,EAAc8B,GACzC,GAAGM,KAAKu4G,gBAAiB,CACvB,IAAIpuE,EAA0B,KAC3BzqC,GAAKA,EAAE+R,eACR04B,EAAazqC,EAAE+R,aAAiCggB,gBAElDzxB,KAAKoG,YAAY4yG,sBAAsBp7G,EAAMusC,GAAU9jC,MAAK,SAAAmQ,GAC1DjQ,IAAO,2BAA2B,UAAW,aAhFxB,GAAS1D,cAAjBy1G,GAAQ,gBAT5BnxG,eAAU,CACTL,WAAY,CACViS,yBACAC,wBACAJ,wBACAiY,uBACA8lF,oBAGiB2B,cClFgY,MCQjZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIv4G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,cAAcnH,EAAG,MAAM,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,qBAAoB,EAAK,eAAiBP,EAAIyxG,oBAAoB,kBAAoBzxG,EAAI4xG,yBAAyB,IAAI,IACxS,GAAkB,G,sdC0BtB,IAAqBsH,GAAW,4CAK9B,iDACE,eAJM,EAAAzH,oBAA4B,GAC5B,EAAAG,qBAA6B,GAInC,EAAKvrG,YAAc,IAAI3C,EAFzB,EAL8B,8CAU9B,WAAO,WACLzD,KAAKoG,YAAYwyG,qBAAqBvyG,MAAK,SAAAmQ,GACzC,IAAIqiG,EAAiBriG,EAAExE,MAAK,SAAAwE,GAAC,OAAEA,EAAEvR,MAAQhC,EAAgBw1G,kBACzD,EAAKjH,oBAAwC,MAAlBqH,EAAyBA,EAAe1pE,MAAQ,GAE3E,IAAI2pE,EAAkBtiG,EAAExE,MAAK,SAAAwE,GAAC,OAAEA,EAAEvR,MAAQhC,EAAgB01G,mBAC1D,EAAKhH,qBAA0C,MAAnBmH,EAA0BA,EAAgB3pE,MAAO,GAE7E78B,YAAW,cAAS,YAlBM,GAASzP,cAApBo2G,GAAW,gBAN/B9xG,eAAU,CACTL,WAAY,CACViS,yBACA49F,oBAGiBsC,cC3BkX,MCOnY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIl5G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,kCAAkCnH,EAAG,MAAM,CAACe,YAAY,qBAAqB,CAACf,EAAG,oBAAoB,CAAC+H,IAAI,sBAAsB,IAAI,IAClQ,GAAkB,GCDlB,GAAS,WAAa,IAAInI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,SAAS,CAACf,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,mBAAmBnH,EAAG,cAAc,CAAC+H,IAAI,eAAe5H,MAAM,CAAC,eAAgB,MAAS,GAAGH,EAAG,MAAM,CAACe,YAAY,SAAS,CAACf,EAAG,MAAM,CAACe,YAAY,UAAU,CAACnB,EAAIuH,GAAG,qBAAqBnH,EAAG,cAAc,CAAC+H,IAAI,iBAAiB5H,MAAM,CAAC,eAAgB,MAAU,GAAGH,EAAG,MAAM,CAACe,YAAY,SAAS,CAACf,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,aAAa,CAACH,EAAG,cAAc,CAAC+H,IAAI,cAAc5H,MAAM,CAAC,GAAK,eAAe,UAAW,EAAK,OAAS,OAAO,QAAU,kCAAkC,aAAa,wCAAwC,YAAY,aAAa0H,GAAG,CAAC,SAAWjI,EAAIyJ,qBAAqB,QACtvB,GAAkB,G,wBCDlB,GAAS,WAAa,IAAIzJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,YAAY,CAAC+H,IAAI,gBAAgB5H,MAAM,CAAC,uBAAuBP,EAAIm5G,kBAAkB,oBAAoB,CAAEz6E,SAAS,EAAOC,QAAQ,EAAMC,WAAW,GAAQ,SAAW,IAAI32B,GAAG,CAAC,eAAejI,EAAI+Z,aAAahZ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,iBAAiBqC,GAAG,SAASkH,GAClX,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACnB,EAAIuH,GAAG,cAAcvH,EAAIwH,GAAGxH,EAAIo5G,sBAAsB39G,EAAKA,OAAO,qBAAqB,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,aAAaH,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,UAAUH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,OAAO,QAAU,gBAAgB,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,QAAU,gBAAgB,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,QAAU,cAAc,YAAY,SAAS,gBAAgB,iBAAiB,mBAAkB,EAAM,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,QAAU,cAAc,YAAY,WAAW,aAAa,OAAO,mBAAkB,EAAK,iBAAgB,KAAUP,EAAiB,cAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,QAAU,cAAc,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASP,EAAIyI,KAAMzI,EAAiB,cAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,QAAU,aAAa,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASP,EAAIyI,KAAMzI,EAAiB,cAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,2BAA2B,QAAU,mBAAmB,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASP,EAAIyI,KAAMzI,EAAiB,cAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,8BAA8B,QAAU,sBAAsB,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASP,EAAIyI,KAAMzI,EAAiB,cAAEI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,yBAAyB,QAAU,sBAAsB,YAAY,SAAS,mBAAkB,EAAK,iBAAgB,KAASP,EAAIyI,KAAKrI,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,QAAU,iBAAiB,YAAY,UAAU,iBAAgB,EAAK,iBAAgB,EAAK,0BAAyB,EAAM,YAAY,GAAG,YAAY,UAAU,aAAa,YAAY,OAAQ,EAAK,iBAAiB,WAAWH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,MAAS,IAAI,IACzqE,GAAkB,G,sdCiEtB,IAAqB84G,GAAU,4CAY3B,iDACE,eAZF,EAAA7pG,MAEI,GAMI,EAAAykG,eAAiC,IAAIf,GACrC,EAAA32F,aAAuB,EAK7B,EAAK48F,kBAAoB,CACvBv6G,IAAK,UACLgS,KAAM,SAAC4L,GAYL,YAX0BlP,IAAvBkP,EAAY3Y,SACb2Y,EAAY3Y,OAAS,IAIvB2Y,EAAY3Y,OAAOtH,KAAK,WAAY,KAAM,EAAK+8G,eAE3C,EAAK/8F,cACP,EAAKA,aAAc,EACnB,EAAKi7F,4BAEA,EAAKvD,eAAesF,mBAAmB/8F,IAEhDM,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKs3F,eAAeuF,iBAAiB56G,EAAK+d,KAnBvE,EAZ2B,6CAmC3B,WACI,OAAQ1c,KAAKuP,MAAMiqG,cAAsBjqG,MAAMyhC,WAAW5/B,WApCnC,6BAuCpB,WACDpR,KAAKuP,MAAMiqG,eACZx5G,KAAKuP,MAAMiqG,cAAsBr+E,oBAzCX,sCA6CnB,WACJn7B,KAAKue,SAASugC,aAAa,gBAAiB,eAAe,KA9CpC,yBAiD3B,SAAYp/C,GAERA,EAAEiW,QAAU1Z,OAAO66B,OAAO,GAAIp3B,EAAEoW,QAASpW,EAAEiW,WAnDpB,mCAsDnB,SAAsBoP,GAC5B,OAAOA,EAAI00F,YAAY31G,KAAK,UAvDH,GAASjB,cAMpCb,gBADCwnB,mBACD,qCANiB4vF,GAAU,gBAV9BjyG,gBAAU,CACTL,WAAY,CACV0R,uBACAG,wBACAkR,8BACA/Q,0BACAgH,oCACAqjC,wCAGiBi2D,cCpEmY,MCQpZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCwBf,IAAqBM,GAAgB,4CAArC,iD,0BACS,EAAAnqG,MAIH,GAEI,EAAA7L,OAAS,IAAIC,2BAAsB,EAAK0M,OAAQ,IAChD,EAAAU,eAAyB,GACzB,EAAA4oG,cAAwB,EATlC,EAAqC,kDAWnC,WACE,OAAO35G,KAAKuP,MAAMqqG,cAZe,8BAe3B,SAAiBlwG,GAA6D,WAEpF,GAAIA,EAAKwM,eAAeC,MAAM,GAAI,CAChC,IAAIsB,EAAgB/N,EAAKwM,eAAeC,MAAM,GAAGQ,SAASe,MAAM,KAAKC,MAAMC,cAC3E,GAAqB,QAAlBH,EAAyB,CAC1B,IAAIrB,EAAO1M,EAAKwM,eAAeC,MAAM,GACrCnW,KAAK+Q,eAAezU,KAAK8Z,QAGzBpW,KAAK25G,gBAIT,GAC8C,MAA5CjwG,EAAK2M,MAAMpP,UAAUqF,OAAO,aACzB5C,EAAK4M,aAAgBtW,KAAK25G,cAAgB35G,KAAK+Q,eAAe/U,OAEnE,CACE,IAAIua,EAAQvW,KAAK+Q,eAAe1R,KAAI,SAACmX,GACnC,MAAO,CACLC,OAAQD,EAAEC,OACVC,SAAUF,EAAEG,aAIhB3W,KAAK0D,OACFiJ,YAA+C,sCAAuC4J,GACtFlQ,MAAK,SAAA7K,GAEDA,EAAKqtB,SACNtiB,IAAO,CAACuJ,QAAS,0BAAF,OAA4BtU,EAAKq+G,MAAjC,cAAoD,UAAW,KAC7E,EAAKtqG,MAAMuqG,aAAqB3+E,kBAChC,EAAK5rB,MAAMwqG,eAAuB5+E,mBAGnC50B,IAAO,CAACuJ,QAAS,wDAAyD,OAAQ,QAGrFxJ,OAAM,SAAAuN,GACLtN,IAAO,CAACuJ,QAAS,qCAAF,OAAuC+D,IAAa,QAAS,QAE7EI,SAAQ,WACP,EAAKlD,eAAiB,GACtB,EAAK4oG,cAAgB,EACrB,EAAKK,cAAc/mG,4BA3DQ,GAASpQ,cAAzB62G,GAAgB,gBAPpCvyG,eAAU,CACTL,WAAY,CACVmzG,iBACAb,cACA3gG,+BAGiBihG,cC3CyY,MCQ1Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCEf,IAAqBQ,GAAoB,yIAASr3G,cAA7Bq3G,GAAoB,gBANxC/yG,eAAU,CACTL,WAAY,CACV4yG,oBACA3gG,6BAGiBmhG,cCrBuX,MCOxY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIn6G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,kBAAkBnH,EAAG,MAAM,CAACe,YAAY,cAAcV,MAAM,CAAE,kBAAqBT,EAAIsnD,gBAAiB,qBAAwBtnD,EAAIsnD,kBAAmB,CAAClnD,EAAG,MAAM,CAACe,YAAY,8BAA8B,CAACf,EAAG,MAAM,CAACgL,YAAY,CAAC,OAAS,OAAO,MAAQ,SAAS,CAAChL,EAAG,sBAAsB,QAAQ,IACra,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,MAAM,CAACe,YAAY,aAAa,CAACf,EAAG,eAAe,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,cAAcP,EAAIgpD,0BAA0B,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,uBAAwB,EAAM,OAAS,CAAEz8B,SAAS,GAAQ,qBAAoB,EAAK,qBAAoB,EAAK,iBAAgB,EAAM,OAAS,QAAQxrB,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,gBAAgBqC,GAAG,SAASkH,GACphB,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAAE3E,EAAKA,KAAY,QAAE2E,EAAG,MAAM,CAACA,EAAG,OAAO,CAACgL,YAAY,CAAC,cAAc,SAAS,CAACpL,EAAIuH,GAAG,UAAUvH,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKA,KAAK+4G,SAAS,oCAAoCx0G,EAAIyI,KAAMhN,EAAKA,KAAY,QAAE2E,EAAG,MAAM,CAACA,EAAG,OAAO,CAACgL,YAAY,CAAC,cAAc,SAAS,CAACpL,EAAIuH,GAAG,UAAUvH,EAAIuH,GAAGvH,EAAIwH,GAAG/L,EAAKA,KAAK2+G,SAAS,oCAAoCp6G,EAAIyI,WAAW,CAAC7J,IAAI,mBAAmBqC,GAAG,SAASkH,GACla,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,WAAW,CAACH,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,WAAW,KAAO,YAAY0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIq6G,WAAW5+G,EAAKA,WAAW,UAAU,CAAC2E,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,eAAe,CAACG,MAAM,CAAC,KAAO,WAAW,mBAAkB,EAAK,qBAAqB,aAAaH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,gBAAe,KAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,aAAa,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,WAAW,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,WAAW,YAAY,SAAS,MAAQ,OAAOH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,cAAc,YAAY,OAAO,OAAS,wBAAwBH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,YAAY,QAAU,QAAQ,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,aAAa,OAAO,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAK,YAAY,GAAG,QAAU,SAAS,mBAAkB,EAAM,uBAAuBP,EAAIs6G,cAAc,gBAAgB,mBAAmBl6G,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,YAAY,GAAG,MAAQ,GAAG,gBAAgB,mBAAmB,SAAW,oBAAoB,IAAI,MAC5kD,GAAkB,GCATg6G,GAAb,WAGE,oCACEt6G,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,mBAJnD,2GAQE,WAAkBuJ,GAAlB,iGACe1M,KAAK0D,OAAOiJ,YAAZ,UAAmCD,GADlD,wFARF,iE,sdC4II,IAAqB6tG,GAAe,4CAIhC,iDACI,eACA,EAAKC,kBAAoB,IAAIF,GAC7B,EAAKxtE,YAAc,IAAID,GACtB,EAAKkc,0BAA6B,IAAIt4C,KAAY,CAC3CE,KAAM,SAACjE,GACP,OAAO,EAAK8tG,kBAAkBC,YAAY/tG,GACrCpG,OAAM,SAAAzJ,GACH,KAAM,mDAR1B,EAJgC,oDAsBhC,SAAcyiD,GACV,OAAOA,EAAQi1D,QAAUj1D,EAAQ66D,UAvBL,wBA0BhC,SAAW3+G,GACJA,EAAKib,QACJzW,KAAK8sC,YAAYyL,cAAc,CAAC/8C,EAAKib,SACpCpQ,MAAK,SAAAxJ,GACF,IAAI69G,EAAW79G,EAAOk/C,QAAQ99C,IAAI,YAClCpB,EAAO27C,OAAOnyC,MAAK,SAACuL,GAmBhBoqC,KAAUC,OAAOrqC,EAAGsqC,mBAAmBw+D,cAlDvB,GAAS73G,SAAxB03G,GAAe,gBAXvCpzG,gBAAU,CACHL,WAAY,CACR4iB,4BACA9Q,wBACAD,wBACAS,gCACAoG,oCACAqK,8BACAoE,kCAGassF,cCjJqY,MCQ1Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCMf,IAAqBI,GAAe,mKAEhC,WACI,OAAQ36G,KAAKmtB,MAAMqvD,UAAU,GAAGA,UAAU,GAAWC,eAHzB,GAAS55E,cAAxB83G,GAAe,gBANnCxzG,eAAU,CACTL,WAAY,CACViS,yBACAwhG,uBAGiBI,cCzBkX,MCQnY,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QCnBX,GAAS,WAAa,IAAI56G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAIo7B,mBAAmBh7B,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,OAAO,KAAO,iBAAiB0H,GAAG,CAAC,MAAQjI,EAAI66G,uBAAuBz6G,EAAG,YAAY,CAACe,YAAY,mBAAmBZ,MAAM,CAAC,KAAO,OAAO,KAAO,sBAAsB0H,GAAG,CAAC,MAAQjI,EAAI86G,qBAAqB16G,EAAG,MAAM,CAACe,YAAY,cAAc,CAACf,EAAG,cAAc,CAAC+H,IAAI,gBAAgB,IAAI,IACnmB,GAAkB,GCDlB,GAAS,WAAa,IAAInI,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAAC+H,IAAI,qBAAqB5H,MAAM,CAAC,cAAcP,EAAI+6G,gBAAgB,aAAc,EAAK,cAAe,EAAK,iBAAkB,EAAK,uBAAwB,EAAK,qBAAsB,EAAK,uBAAwB,EAAK,eAAiB,IAAI,iBAAkB,GAAMh6G,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,wBAAwBqC,GAAG,SAASkH,GAC5b,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIg7G,iBAAiBv/G,EAAKA,WAAW,OAAO,CAACmD,IAAI,uBAAuBqC,GAAG,SAASkH,GAC5M,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACJ,EAAIuH,GAAG,eAAevH,EAAIwH,GAAGxH,EAAIi7G,2BAA2Bx/G,EAAKA,OAAO,gBAAgB,CAACmD,IAAI,qBAAqBqC,GAAG,SAASkH,GAClJ,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,gBAAgBvH,EAAIwH,GAAGxH,EAAIk7G,6BAA6Bz/G,EAAKA,KAAM,OAAO,oBAAoB,CAACmD,IAAI,sBAAsBqC,GAAG,SAASkH,GAC1K,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,gBAAgBvH,EAAIwH,GAAGxH,EAAIk7G,6BAA6Bz/G,EAAKA,KAAM,QAAQ,oBAAoB,CAACmD,IAAI,wBAAwBqC,GAAG,SAASkH,GAC7K,IAAI1M,EAAO0M,EAAI1M,KACf,OAAO2E,EAAG,MAAM,GAAG,CAACA,EAAG,MAAM,CAACJ,EAAIuH,GAAG,gBAAgBvH,EAAIwH,GAAGxH,EAAIk7G,6BAA6Bz/G,EAAKA,KAAM,UAAU,uBAAuB,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,YAAY,SAAS,QAAU,SAAS,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,QAAU,qBAAqB,gBAAgB,0BAA0BH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,0BAA0B,QAAU,0BAA0BH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,QAAU,4BAA4B,gBAAgB,wBAAwBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,gBAAgB,sBAAsB,QAAU,mCAAmCH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,iBAAiB,gBAAgB,wBAAwB,QAAU,kBAAkB,MAAQ,SAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,mBAAmBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,iBAAgB,EAAM,iBAAgB,EAAM,MAAQ,GAAG,gBAAgB,4BAA4B,GAAGH,EAAG,mBAAmB,CAAC+H,IAAI,iBAAiB5H,MAAM,CAAC,WAAaP,EAAIm7G,uBAAuBlzG,GAAG,CAAC,qBAAuBjI,EAAIo7G,qBAAqB,qBAAuBp7G,EAAIq7G,wBAAwBj7G,EAAG,iBAAiB,CAAC+H,IAAI,oBAAoB5H,MAAM,CAAC,WAAaP,EAAIs7G,qBAAqBrzG,GAAG,CAAC,OAASjI,EAAIu7G,mBAAmBn7G,EAAG,kBAAkB,CAACG,MAAM,CAAC,WAAaP,EAAIiiB,iBAAiB,mBAAqBjiB,EAAIkiB,iBAAiBja,GAAG,CAAC,OAASjI,EAAImiB,iBAAiB,IAChnD,GAAkB,GCXlB,GAAS,WAAa,IAAIniB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,gBAAgB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,YAAY,OAAS7gB,EAAImtD,WAAW,CAAC/sD,EAAG,iBAAiB,CAACA,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,gBAAgBnH,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ,OAAO,YAAc,WAAW,YAAc,iBAAiB,MAAQP,EAAIkiB,gBAAgBG,MAAM5U,WAAWxF,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAgBG,MAAO,YAAana,MAAW,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAaP,EAAIw7G,kBAAkB,YAAc,WAAW,iBAAkB,EAAK,kBAAiB,EAAK,WAAa,WAAW,eAAe,OAAO,aAAa,QAAQ,MAAQx7G,EAAIkiB,gBAAgBuC,OAAO3Y,SAAS,YAAc,4CAA4C7D,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKzhB,EAAIkiB,gBAAgBuC,OAAQ,WAAYvc,MAAW,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,MAAM,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIq1B,cAAe,SAAW,QAAQ,QAAU,aAAa,IAC5uD,GAAkB,G,sdCqGtB,IAAqBomF,GAAc,4CAsC/B,iDACI,eAtCG,EAAAjsG,MAEH,GAKJ,EAAAgsG,kBAAoC,GACpC,EAAAjuG,OAAqB,GACrB,EAAA2U,gBAAsC,IAAIqC,GAC1C,EAAAm3F,gBAA0B,EAEjB,EAAAn2F,UAAoB,uCA2BzB,EAAK3H,WAFT,EAtC+B,kDAgB/B,WACI,OAAO3d,KAAKgmB,YAjBe,IAoB/B,SAAkB3nB,GACd2B,KAAKimB,MAAM,uBAAwBjmB,KAAKiiB,iBAAiB,KArB9B,+BA0B/B,SAAkB5jB,EAAgB6nB,GAC1B7nB,IACD2B,KAAKiiB,gBAAkB,IAAIqC,GAC3BtkB,KAAKy7G,gBAAiB,EACtBz7G,KAAK8nB,gBAAgBlU,WA9BG,2BAkC/B,WACI,OAAS5T,KAAKuP,MAAMwW,mBAAuC3U,WAnChC,+EA2C/B,iHACQd,EAAgB,IAAI/E,GAD5B,SAEwB+E,EAAc7E,SAFtC,cAEQC,EAFR,OAGI1L,KAAKu7G,kBAAoB7vG,EAAQrM,KAAI,SAAA3B,GACrC,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAGlC0E,EAAe,IAAInD,GAP3B,SAQuBmD,EAAa9E,SARpC,OAQQ6B,EARR,OASItN,KAAKsN,OAASA,EATlB,iDA3C+B,6IAuD/B,6GACQiD,EAAe,IAAInD,GAD3B,SAEuBmD,EAAa9E,SAFpC,OAEQ6B,EAFR,OAGItN,KAAKsN,OAASA,EAHlB,gDAvD+B,mFA6D/B,WACItN,KAAK0gB,eAAgB,IA9DM,sBAiE/B,WACI1gB,KAAKimB,MAAM,uBAAwBjmB,KAAKiiB,gBAAiBjiB,KAAKy7G,kBAlEnC,kFAqE/B,gHACQ5zF,EAAa7nB,KAAK8nB,gBAAgBC,WAClCF,EAAWG,QAFnB,qDAMQhoB,KAAKsN,OAAO5C,MAAK,SAAA6C,GAAC,OAAIA,EAAEC,UAAUoK,eAAiB,EAAKqK,gBAAgBG,MAAM5U,UAAUya,OAAOrQ,iBANvG,uBAOY9H,EAAU,0CACdqY,oBAAMrY,EAAS,SARvB,0BAYI9P,KAAKiiB,gBAAgBG,MAAM3U,QAAUzN,KAAKslB,UAC1CtlB,KAAKiiB,gBAAgBO,aAAa4B,mBAAqBpkB,KAAKslB,UAC5DtlB,KAAKiiB,gBAAgBuC,OAAO5Y,WAAa5L,KAAKu7G,kBAAkB33G,QAAO,SAAAlG,GAAC,OAAIA,EAAEW,OAAS,EAAK4jB,gBAAgBuC,OAAO3Y,YAAU,GAAGF,KAChI3L,KAAKy7G,gBAAiB,EAEtBz7G,KAAKo1B,eAjBT,iDArE+B,8DAASvyB,SAMxCb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAoBAznB,gBADCuW,gBAAM,eACP,uCA1BiBijG,GAAc,gBAdlCr0G,gBAAU,CACPL,WAAY,CACR8R,wBACAoR,iBACAF,0BACAG,kCACA5Q,8BACA6Q,8BACArK,gCACAzG,gCACAgR,uBACAxK,wCAGa47F,cCtGwY,MCQzZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIz7G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQ,CAACG,MAAM,CAAC,MAAQ,MAAM,OAAS,OAAO,aAAa,MAAM,cAAa,EAAK,MAAQ,gBAAgB,gBAAe,EAAM,0BAAyB,EAAM,QAAUP,EAAI2gB,eAAe1Y,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI2gB,cAAczY,GAAQ,wBAAwBlI,EAAI6gB,cAAc,CAACzgB,EAAG,iBAAiB,CAACA,EAAG,sBAAsB,CAAC+H,IAAI,sBAAsB,CAAC/H,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,iBAAiBnH,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAaP,EAAIw7G,kBAAkB,YAAc,WAAW,iBAAkB,EAAK,kBAAiB,EAAK,WAAa,WAAW,eAAe,OAAO,aAAa,QAAQ,MAAQx7G,EAAI8Q,iBAAiB,YAAc,uCAAuC7I,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8Q,iBAAiB5I,GAAQ,aAAelI,EAAI27G,mBAAmB,CAACv7G,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,MAAM,CAACe,YAAY,mBAAmB,CAACf,EAAG,KAAK,CAACJ,EAAIuH,GAAG,gBAAgBnH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,OAAO,WAAaP,EAAIsiB,iBAAiB,YAAc,WAAW,iBAAkB,EAAK,kBAAiB,EAAK,WAAa,WAAW,eAAe,OAAO,aAAa,QAAQ,MAAQtiB,EAAI47G,gBAAgB,SAAW57G,EAAI67G,mBAAmB5zG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI47G,gBAAgB1zG,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,MAAM,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,KAAMkE,KAAM,UAAW8O,YAAa,YAAakD,QAAS9hB,EAAI6gB,aAAc,SAAW,QAAQ,QAAU,YAAYzgB,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAU,CAAEqL,KAAM,SAAUkE,KAAM,SAAU8O,YAAa,YAAakD,QAAS9hB,EAAIq1B,cAAe,SAAW,QAAQ,QAAU,aAAa,IAC/xD,GAAkB,G,sdC0GlB,IAAqBymF,GAAY,4CAyC7B,iDACI,eAzCG,EAAAtsG,MAEH,GAKJ,EAAAoW,mBAAqB,IAAInC,GAEzB,EAAA+3F,kBAAoC,GACpC,EAAAl5F,iBAAmC,GAEnC,EAAAxR,iBAAyB,GACzB,EAAA8qG,gBAAwB,GA6BpB,EAAKh+F,WAFT,EAzC6B,kDAgB7B,WACI,OAAO3d,KAAKgmB,YAjBa,IAoB7B,SAAkB3nB,GACd2B,KAAKimB,MAAM,YArBc,6BAwB7B,WACI,MAAiC,KAA1BjmB,KAAK6Q,kBAAqD,OAA1B7Q,KAAK6Q,mBAzBnB,+BA6B7B,SAAkBxS,EAAgB6nB,GAC1B7nB,IACD2B,KAAK6Q,iBAAmB,GACxB7Q,KAAK27G,gBAAkB,GACvB37G,KAAK8nB,gBAAgBlU,WAjCC,2BAqC7B,WACI,OAAS5T,KAAKuP,MAAMwW,mBAAuC3U,WAtClC,+EA8C7B,6GACQd,EAAgB,IAAI/E,GAD5B,SAEwB+E,EAAc7E,SAFtC,OAEQC,EAFR,OAGI1L,KAAKu7G,kBAAoB7vG,EAAQrM,KAAI,SAAA3B,GACrC,MAAO,CAAEiO,KAAMjO,EAAEkO,WAAYvN,MAAOX,EAAEmO,aAJ1C,gDA9C6B,gJAsD7B,WAAuBnM,GAAvB,0FACkC,KAA1BM,KAAK6Q,kBAAqD,OAA1B7Q,KAAK6Q,iBAD7C,uBAEQ7Q,KAAK27G,gBAAkB,GACvB37G,KAAKqiB,iBAAmB,GAHhC,0CAOuBriB,KAAK2lB,mBAAmBm2F,kBAAkB97G,KAAK6Q,kBAPtE,OAOQvD,EAPR,OAQQiK,QAAQC,IAAIlK,EAAOtR,QACnBgE,KAAKqiB,iBAAmB/U,EAAOjO,KAAI,SAAAkO,GACnC,MAAO,CAAE5B,KAAM4B,EAAEC,UAAWnP,MAAOkP,EAAEE,YAV7C,gDAtD6B,oFAoE7B,WACIzN,KAAK0gB,eAAgB,IArEI,kFAwE7B,oHACQmH,EAAa7nB,KAAK8nB,gBAAgBC,WAClCF,EAAWG,QAFnB,iDAMQ48E,EAAa5kG,KAAKu7G,kBAAkB33G,QAAO,SAAAlG,GAAC,OAAIA,EAAEW,OAAS,EAAKwS,oBAAkB,GAAGlF,KACrF8X,EAAYzjB,KAAKqiB,iBAAiBze,QAAO,SAAA2J,GAAC,OAAIA,EAAElP,OAAS,EAAKs9G,mBAAiB,GAAGhwG,KAElF9O,EAASmiB,sBAAQ,2CAAD,OAA4CyE,EAA5C,0BAAuEmhF,EAAvE,KAAsF,uBAC1G/nG,EACKwJ,MAAK,SAAA0Y,GACF,GAAGA,EAAc,CACb,IAAIgF,EAAyC,CACzClY,SAAU,EAAKgF,iBACfpD,QAAS,EAAKkuG,iBAGlB,EAAKh2F,mBAAmBo2F,mBAAmBh4F,GACtC1d,MAAK,SAAAlB,GACF,EAAKiwB,sBApB7B,gDAxE6B,8DAASvyB,SAMtCb,gBADCwnB,gBAAK,CAAEC,SAAS,KACjB,kCAuBAznB,gBADCuW,gBAAM,eACP,uCA7BiBsjG,GAAY,gBAfhC10G,gBAAU,CACPL,WAAY,CACR8R,wBACAoR,iBACAF,0BACAG,kCACA5Q,8BACAL,wBACAkR,8BACArK,gCACAzG,gCACAgR,uBACAxK,wCAGai8F,cC3GkY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCuGf,IAAqBG,GAAU,4CAiB3B,iDACI,eAjBG,EAAAzsG,MAGH,GAGJ,EAAA0sG,SAAmB,EAEnB,EAAAprG,iBAAyB,GACzB,EAAAmR,kBAA4B,EAC5B,EAAAC,gBAAsC,IAAIqC,GAC1C,EAAA43F,eAAmC,GAEnC,EAAAhB,uBAAiC,EACjC,EAAAG,qBAA+B,EAI3B,EAAK11F,mBAAqB,IAAInC,GAC9B,EAAKs3F,gBAAkB,IAAIrqG,KAAY,CACnCE,KAAM,SAACjE,GACN,OAAO,EAAKiZ,mBACRw2F,WAAWzvG,GACXrG,MAAK,SAAAxJ,GACF,OAAOA,EAAOrB,QAEjB8K,OAAM,SAAAzJ,GACH,KAAM,mDAXtB,EAjB2B,6CAkC3B,WACE,GAAImD,KAAKuP,MAAM6sG,mBACb,OAAOp8G,KAAKuP,MAAM6sG,mBAAmBhrG,WApCd,6BA0C3B,WACMpR,KAAKue,UACPve,KAAKue,SAAS2hE,YA5CS,8BAgD3B,SAAiB1kF,GACfwE,KAAKiiB,gBAAkBzmB,EACvBwE,KAAKgiB,kBAAmB,IAlDC,0BAqD3B,WACEhiB,KAAKgiB,kBAAmB,EACxBhiB,KAAKm7B,kBACDn7B,KAAKuP,MAAMksG,gBACZz7G,KAAKuP,MAAMksG,eAAuBY,kBAzDZ,gCA6D3B,WACEr8G,KAAKk7G,uBAAwB,IA9DJ,kCAiE3B,WACEl7G,KAAKk7G,uBAAwB,IAlEJ,kCAqE3B,SAAqBj5F,EAAqCq6F,GACnDA,IAILt8G,KAAKgiB,kBAAmB,EACxBhiB,KAAKiiB,gBAAkBA,KA3EE,2BA8E3B,WACEjiB,KAAKq7G,qBAAsB,IA/EF,6BAkF3B,WACEr7G,KAAKq7G,qBAAsB,IAnFF,6BAsF3B,WACEr7G,KAAKm7B,oBAvFoB,wCA4F3B,SAA2B3/B,GACzB,IAAIqB,EAAS,GAMb,OALGrB,EAAK4mB,OAA+B,wCAAtB5mB,EAAK4mB,MAAM3U,SACvBjS,EAAK4mB,MAAM5U,YACd3Q,EAASrB,EAAK4mB,MAAM5U,WAGf3Q,IAnGkB,+BAsG3B,SAAkBrB,GAChB,IAAIqB,EAAS,GAKb,OAJGrB,EAAK+oB,aAAe/oB,EAAK+oB,YAAYg4F,qBACtC1/G,EAASsI,IAAE6M,KAAKxW,EAAK+oB,YAAYg4F,oBAAoB,SAAC13G,GAAD,OAAgCA,EAAK2d,gBAAcC,YAGnG5lB,IA5GkB,0CA+G3B,SAA6BrB,EAA0BqnD,GACrD,IAAIhmD,EAAS,GAEb,IAAIrB,EACF,OAAOqB,EAGT,GAAGgmD,IAAqB/J,GAAiBgK,IACvC,GAAGtnD,EAAKipB,cAAe,CACrB,IAAIs+B,EAAevnD,EAAKipB,cAAc7gB,QAAO,SAACiB,GAAD,OAAuCA,EAAKyiB,kBACzFy7B,EAAa/zC,SAAQ,SAACkwC,GACpBriD,GAAUA,EAAS,GAAH,OAAMA,EAAN,MAAkB,IAAMqiD,EAAQx4B,QAAQ7L,qBAIzD,GAAGgoC,IAAqB/J,GAAiBkK,KAC5C,GAAGxnD,EAAKipB,cAAe,CACrB,IAAIs+B,EAAevnD,EAAKipB,cAAc7gB,QAAO,SAACiB,GAAD,OAAwCA,EAAKyiB,kBAC1Fy7B,EAAa/zC,SAAQ,SAACkwC,GACpBriD,GAAUA,EAAS,GAAH,OAAMA,EAAN,MAAkB,IAAMqiD,EAAQx4B,QAAQ7L,qBAItDgoC,IAAqB/J,GAAiBqqC,OACzC3nF,EAAKqpB,gBACNrpB,EAAKqpB,eAAe7V,SAAQ,SAACkwC,GAC3BriD,GAAUA,EAAS,GAAH,OAAMA,EAAN,MAAkB,IAAMqiD,EAAQrkC,eAKtD,OAAOhe,MA9IkB,GAASgG,cAAnBm5G,GAAU,gBAhB9B70G,gBAAU,CACTL,WAAY,CACV4iB,gBACA6+E,4BACArvF,0BACAC,8BACAqvF,wDACAC,0BACA7+E,4CACAjR,wBACAC,wBACAqM,iBACAu2F,kBACAK,oBAGiBG,cC1HmY,MCQpZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCUf,IAAqBQ,GAAc,4CAAnC,iD,0BACS,EAAAjtG,MAEH,GAHN,EAAmC,sDAKjC,WACMvP,KAAKuP,MAAM4sG,YACZn8G,KAAKuP,MAAM4sG,WAAmBhhF,oBAPF,iCAWjC,WACMn7B,KAAKuP,MAAM4sG,YACZn8G,KAAKuP,MAAM4sG,WAAmBM,uBAbF,+BAiBjC,WACMz8G,KAAKuP,MAAM4sG,YACZn8G,KAAKuP,MAAM4sG,WAAmBO,oBAnBF,GAAS75G,cAAvB25G,GAAc,gBAPlCr1G,eAAU,CACTL,WAAY,CACVk1G,cACApjG,wBACAG,6BAGiByjG,cC7BmY,MCQpZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIz8G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,aAAanH,EAAG,wBAAwB,IACtK,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAAC+H,IAAInI,EAAImuD,YAAY5tD,MAAM,CAAC,cAAcP,EAAI48G,uBAAuB,iBAAkB,EAAK,cAAe,EAAK,iBAAkB,EAAK,aAAc,EAAK,mBAAqB,aAAa,OAAS,CAAErwF,SAAS,GAAQ,eAAiB,GAAG,iBAAkB,EAAM,MAAQ,OAAO,OAAS,OAAO,wBAAuB,GAAMtkB,GAAG,CAAC,gBAAgBjI,EAAIyK,eAAe,eAAezK,EAAIsjC,cAAc,iBAAiBtjC,EAAI68G,gBAAgB,gBAAgB78G,EAAIqjC,gBAAgBtiC,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,oBAAoBqC,GAAG,SAASkH,GACtoB,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQ9E,EAAK0pG,mBAAmBl9F,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOlI,EAAIyhB,KAAKhmB,EAAM,oBAAqByM,UAAe,CAACtJ,IAAI,kCAAkCqC,GAAG,SAASkH,GAClN,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,OAAO,KAAO,uBAAuB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jG,gBAAgBnoG,EAAMuE,EAAI6jG,2BAA2B,CAACjlG,IAAI,iCAAiCqC,GAAG,SAASkH,GAC3O,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,OAAO,KAAO,sBAAsB0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jG,gBAAgBnoG,EAAMuE,EAAI8jG,6BAA6B,CAAC1jG,EAAG,aAAa,CAACG,MAAM,CAAC,kBAAiB,EAAK,KAAO,OAAO,eAAe,aAAaH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,GAAG,aAAa,oBAAoB,YAAY,UAAU,QAAU,sBAAsB,OAAQ,EAAK,iBAAiB,OAAO,eAAe,uBAAuBH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,QAAU,SAAS,OAAQ,EAAK,iBAAiB,OAAO,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,2BAA2B,YAAY,SAAS,QAAU,uBAAuB,OAAQ,EAAK,iBAAiB,OAAO,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,kBAAkB,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,SAAS,YAAY,OAAO,QAAU,UAAU,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,iBAAiB,YAAY,SAAS,QAAU,UAAU,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,gBAAgB,YAAY,SAAS,QAAU,QAAQ,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,oBAAoB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,yBAAyB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,oBAAoB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,yBAAyB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,mBAAmB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,wBAAwB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,aAAa,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,kBAAkB,YAAY,SAAS,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,aAAa,YAAY,YAAY,OAAO,QAAU,cAAc,iBAAgB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAU,sBAAsB,gBAAgB,kCAAkC,mBAAkB,EAAM,iBAAgB,EAAM,iBAAgB,EAAM,OAAQ,EAAK,iBAAiB,WAAWH,EAAG,YAAY,CAACG,MAAM,CAAC,MAAQ,IAAI,QAAU,qBAAqB,gBAAgB,iCAAiC,mBAAkB,EAAM,iBAAgB,EAAM,iBAAgB,EAAM,OAAQ,EAAK,iBAAiB,WAAWH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,MAAS,GAAGH,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI+jG,eAAe97F,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+jG,cAAc77F,MAAW9H,EAAG,4BAA4B,CAAC+H,IAAInI,EAAIgkG,2BAA2B/7F,GAAG,CAAC,OAASjI,EAAIikG,oCAAoC,IACxhG,GAAkB,G,sdCmMtB,IAAqB6Y,GAAiB,4CAgBlC,iDACI,eAhBI,EAAA72F,YAAsB,EAEb,EAAA49E,mBAAqChB,GAAe8B,SACpD,EAAAb,kBAAoCjB,GAAeiC,QACnD,EAAAd,2BAAqC,6BAC7C,EAAA71C,YAAsB,cA6C/B,EAAAq3C,eAAyB,GACzB,EAAAnhD,YAAuB,GACvB,EAAAC,gBAA0B,EAC1B,EAAAy/C,eAAyB,EACzB,EAAA0B,uBAAsC,GACtC,EAAAC,qBAAoC,GAtChC,EAAKC,uBAAyB,IAAIzB,GAAuB,QACzD,EAAKzzF,aAAe,IAAIjC,GACxB,EAAKouG,uBAAyB,IAAIlsG,KAAY,CAC1C9R,IAAK,WACL+R,SAAU,MACVC,KAAM,SAAAjE,GACJ,OAAO,EAAKg5F,uBACPC,cAAcj5F,GACdrG,MAAK,SAAAxJ,GACF,IAAIrB,EAAOqB,EAAOrB,KAElB,OADA,EAAKoqG,2BAA2BpqG,GACzBA,KAEV8K,OAAM,SAAAulB,GACH,MAAO,OAGjBhP,OAAQ,SAACle,EAAK+d,GACV,OAAI/d,EACO,EAAK6R,aAAak4E,qBAAqB/pF,GACzC0H,MAAK,SAAAI,GACF,OAAOA,KAEVH,OAAM,SAAAulB,GACHtlB,IAAO,qCAAsC,QAAS,QAGvD7B,QAAQ5E,aA7B/B,EAhBkC,6CAQlC,WACE,OAAQE,KAAKuP,MAAMvP,KAAKkuD,aAA4B98C,WATpB,mCAYlC,WACE,OAAOpR,KAAKuP,MAAMvP,KAAK+jG,8BAbS,wCA4DlC,SAA2BvoG,GACvBwE,KAAKwlG,uBAAyBhqG,EAAKoI,QAAO,SAAAiB,GAAI,OAAIA,EAAKqgG,qBAAmB7lG,KAAI,SAAAwF,GAAI,OAAIA,EAAKgH,YAC3F7L,KAAKylG,qBAAuBtgG,IAAEihB,UAAUpmB,KAAKwlG,0BA9Df,gCAiElC,SAAmB9lG,GACN,MAALA,GAAwB,MAAXA,EAAE2U,QACf3U,EAAE2U,MAAMvE,QAAU,0BAnEQ,4BAuElC,SAAepQ,GACNA,EAAEuH,UAAUimB,aACbxtB,EAAEuH,UAAUqF,OAAO,kBAAmBtM,KAAKwlG,0BAzEjB,6BA6ElC,SAAgB9lG,GACZ,GAAIA,EAAEiW,QAAS,CACX,IAAIna,EAAOkE,EAAEuH,UAAU+3C,gBAAgBrkC,QACnCmiG,EAAUthH,EAAKwW,MAAK,SAACwE,GAAD,OAAWA,EAAE3K,UAAYnM,EAAEf,OAE/Cm+G,EAAQjX,yBAA2B,GAAKnmG,EAAEiW,QAAQuvF,kBAC9CxlG,EAAE4tF,QAAWl6D,KAAOpU,QAAP,aAAqB89F,EAAQlxG,WAA7B,oBAAmDkxG,EAAQ3W,gBAA3D,6BAA+F2W,EAAQjX,yBAAvG,qCACXiX,EAAQjX,yBAA2B,EAAI,QAAS,OADrC,iGAEX,yBACDx/F,MAAK,SAAAguB,GACEA,GACD30B,EAAEuH,UAAU8iC,oBAMvBrqC,EAAEuH,UAAU+S,eAGhBha,KAAKm7B,qBAjGqB,2BAqGlC,SAAcz7B,GACO,QAAbA,EAAEyT,SAAqBzT,EAAElE,MACrBkE,EAAElE,KAAKqqG,yBAA2B,IAClCnmG,EAAEo3C,WAAWz2C,MAAM,oBAAsB,aAxGnB,4BA6GlC,SAAeX,GACO,SAAdA,EAAEyT,SAAsBzT,EAAElE,MAC1BkE,EAAE8T,YAAYsyF,aAAa,KAA3B,gBAA0CpmG,EAAEqgD,YAA5C,YAA2DrgD,EAAElE,KAAKoQ,eA/GxC,6BAmHlC,WACM5L,KAAKue,UACPve,KAAKue,SAAS2hE,YArHgB,6BAyHlC,SAAgB1kF,EAAWipG,GACb,MAARjpG,GAA6B,MAAbA,EAAKA,OACvBwE,KAAK+lG,wBAAwBtB,WAAaA,EAC1CzkG,KAAK+lG,wBAAwBriG,OAAS,CACpCmI,SAAUrQ,EAAKA,KAAKqQ,SACpBD,WAAYpQ,EAAKA,KAAKoQ,YAGxB5L,KAAK+lG,wBAAwB3tD,UAjIC,sGAqI1B,kHAC4C,IAA9Cp4C,KAAK+lG,wBAAwBhnF,cAAuE,MAA9C/e,KAAK+lG,wBAAwBx9F,gBACjFszF,EAAY77F,KAAK+lG,wBAAwBx9F,cAAcsJ,UACvD8yF,EAAiB3kG,KAAK+lG,wBAAwBpB,eAC9CC,EAAa5kG,KAAK+lG,wBAAwBx9F,cAAcqD,WAE5DrF,IAAO,iBAAD,OAAkBs1F,EAAlB,YAA+B8I,EAA/B,wBAA6DC,EAA7D,OAA8E,QACpF5kG,KAAK8jG,eAAgB,EAEjBp3F,EAAsC,CACxCs5F,WAAYhmG,KAAK+lG,wBAAwBtB,WACzCwB,WAAW,GAGbjmG,KAAKwQ,aAAa01F,WAAWlmG,KAAK+lG,wBAAwBx9F,cAAcuJ,QAASpF,GAC9ErG,MAAK,SAAAwN,GACJtN,IAAO,SAAD,OAAUs1F,EAAV,YAAuB8I,EAAvB,0CAAuEC,GAAc,cAE5Ft+F,OAAM,SAAAmtB,GACL,IAAI3jB,EAAU,wBAAH,OAA2B+rF,EAA3B,YAAwC8I,EAAxC,wBAAsEC,EAAtE,KACG,MAAVnxE,GAAoC,MAAlBA,EAAO3f,UAC3BhE,GAAW,IAAJ,OAAQ2jB,EAAO3f,UAGxBsf,KAAOjL,MAAMrY,EAAS,4BAEvBmE,SAAQ,WACP,EAAK6vF,eAAgB,MA3BrB,gDArI0B,8DAASjhG,cAA1Bg6G,GAAiB,gBAjBrC11G,gBAAU,CACTL,WAAY,CACV4iB,gBACA/Q,wBACAiR,4CACA7J,wBACAC,sBACA6J,8BACAI,kCACAF,8BACA9Q,0BACAH,0BACAD,8BACAD,wBACA4rF,+BAGiBqY,cC1M2Y,MCQ5Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCCf,IAAqBvX,GAAa,yIAASziG,cAAtByiG,GAAa,gBAPjCn+F,eAAU,CACTL,WAAY,CACVogD,6BACAnuC,yBACA8jG,yBAGiBvX,cCpBsY,MCOvZ,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIvlG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,mBAAmB,IACxK,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACA,EAAG,cAAc,CAAC+H,IAAInI,EAAIg9G,gBAAgBz8G,MAAM,CAAC,OAASP,EAAIi9G,OAAO,WAAWj9G,EAAIk9G,QAAQ,SAAWl9G,EAAIm9G,SAAS,wBAAwBn9G,EAAIo9G,oBAAoB,cAAcp9G,EAAIq9G,WAAW,mBAAmBr9G,EAAIs9G,iBAAiBr1G,GAAG,CAAC,mBAAmBjI,EAAIu9G,aAAa,SAAWv9G,EAAIyJ,oBAAoBrJ,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,KAAOP,EAAIw9G,YAAY,MAAQx9G,EAAIy9G,SAASx1G,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIy9G,QAAQv1G,OAAY,GAAG9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,eAAe,CAACG,MAAM,CAAC,KAAOP,EAAI09G,qBAAqB,MAAQ19G,EAAI29G,kBAAkB11G,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI29G,iBAAiBz1G,OAAY,MAAM,GAAG9H,EAAG,MAAM,CAACe,YAAY,YAAY,CAACf,EAAG,YAAY,CAACe,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,UAAU,KAAO,WAAW0H,GAAG,CAAC,MAAQjI,EAAI49G,eAAex9G,EAAG,eAAe,CAAC+H,IAAInI,EAAImuD,YAAY5tD,MAAM,CAAC,cAAcP,EAAI69G,eAAe,2BAA0B,EAAK,yBAAwB,GAAM98G,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,yBAAyBqC,GAAG,SAASkH,GACtoC,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,WAAW,KAAO,WAAW,SAAyB,MAAd9E,EAAK6C,OAAe2J,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI89G,aAAariH,EAAK6C,iBAAiB,CAAC8B,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,iCAAiCH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,YAAY,SAAS,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAW,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,SAAS,QAAU,YAAYH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,cAAcH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,QAAU,WAAW,YAAY,IAAI,MAAQ,IAAI,gBAAgB,6BAA6B,IAAI,GAAGH,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAI+9G,uBAAuB91G,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+9G,sBAAsB71G,OAAY,IAC/qC,GAAkB,GCGT81G,GAAb,WAGE,oCACE/9G,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,yBAJnD,yGAOS,WAAgB8J,GAAhB,iGACQjN,KAAK0D,OAAOiJ,YAAwC,GAAIM,GADhE,wFAPT,wIAWS,WAAcP,GAAd,iGACQ1M,KAAK0D,OAAOiJ,YAAY,QAASD,GADzC,wFAXT,iE,sdCmIA,IAAqBsxG,GAAa,4CAAlC,iD,0BACmB,EAAAhB,OAAiB,kCACjB,EAAAC,QAAkB,6BAClB,EAAAM,YAAsB,kCACtB,EAAArvD,YAAsB,cACtB,EAAA6uD,gBAA0B,kBAC1B,EAAAU,qBAA+B,6BAC/B,EAAAP,UAAoB,EACpB,EAAAC,oBAA8B,gBAC9B,EAAAC,WAAqB,aACrB,EAAAC,gBAA0B,WAE1B,EAAAY,uBAAiD,IAAIF,GACrD,EAAAr6G,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IAEhF,EAAAmtG,SAAmB,EACnB,EAAAU,eAAwB,GACxB,EAAAC,UAAsB,GACtB,EAAAT,kBAA4B,EAC5B,EAAAI,uBAAiC,EAnB3C,EAAkC,6CAqBhC,WACE,OAAQ99G,KAAKuP,MAAMvP,KAAKkuD,aAA4B98C,WAtBtB,wBAyBhC,WACE,OAAOpR,KAAKuP,MAAMvP,KAAK+8G,mBA1BO,0BA6BhC,WAA0B,WACxB,OAAO,IAAItsG,KAAY,CACrB9R,IAAK,QACLgS,KAAM,SAAAjE,GAAO,OAAI,EAAKuxG,uBAAuBG,QAAQ1xG,GAASpG,MAAM,EAAK24F,0BAhC7C,0BAoCxB,SAAa9uF,GAAa,WAChC,GAAc,MAAVA,EAAJ,CAKA,IAAIoG,EAAuB,CAAC,CAAEpG,OAAQA,IAClCkuG,EAA0C,CAC5C9nG,MAAOA,GAGTvW,KAAK0D,OAAOiJ,YAAqC,+BAAgC0xG,GAC9Eh4G,MAAK,SAAAi4G,GACJ,EAAK56G,OAAOgqC,SAAS4wE,EAAsB/wE,IAAK+wE,EAAsB9wE,OACnEnnC,MAAK,SAACk4G,GACL,GAAIA,EAAeC,GAAI,CACrB,IAAI1iE,OAA+BzuC,EAC/BoxG,EAAiBF,EAAexiE,QAAQ99C,IAAI,YAE1B,MAAlBwgH,IACF3iE,EAAW2iE,GAGG,MAAZ3iE,IACFA,EAAWI,mBAAmBJ,IAGhCyiE,EAAe/lE,OAAOnyC,MAAK,SAAA7K,GACzBwgD,KAAUC,OAAOzgD,EAAMsgD,WAGzB,EAAK4iE,oBAAoB,4DAG5Bp4G,OAAM,SAAAmtB,GACL,EAAKirF,oBAAoB,+DAG9Bp4G,OAAM,SAAAmtB,GACL,EAAKirF,oBAAoB,iEArC3Bv2F,oBAAM,2BAA4B,WAtCN,iCA+ExB,SAAoBtrB,GAC1B,IAAIiT,EAAU,6BACd,GAAc,MAAVjT,GAAoC,MAAlBA,EAAOiX,QAAiB,CAC5ChE,EAAUjT,EAAOiX,QAEjB,IAAIhP,EAAQgL,EAAQkI,QAAQ,WACxBlT,GAAS,IACXgL,EAAUA,EAAQ0kF,UAAU,EAAG1vF,IAInC,MAAMnF,MAAMmQ,KA1FkB,0BA6FxB,SAAauG,GACA,MAAfA,EAAMhY,MACR2B,KAAKm+G,UAAY9nG,EAAMhY,MAAMgB,KAAI,SAACwmD,GAAD,OAAYA,EAAEjoD,QAE/CoC,KAAKm+G,UAAY,KAjGW,8BAqGxB,SAAiBz0G,GAA0B,WAC7CA,EAAKwM,eAAeC,MAAMna,OAAS,GACrCgE,KAAKk+G,eAAe5hH,KAAKoN,EAAKwM,eAAeC,MAAM,IAGrD,IAAIwoG,EAAWj1G,EAAK2M,MAAMpP,UAAUqF,OAAO,YAC3C,GAAiB,MAAbqyG,GAAoB3+G,KAAKk+G,eAAeliH,SAAW0N,EAAK4M,WAAY,CACtE,IAAIC,EAAe,GAEnBvW,KAAKm+G,UAAUnvG,SAAQ,SAAA0rG,GACrB,IAAItkG,EAAO,EAAK8nG,eAAelsG,MAAK,SAAA6zC,GAAC,OAAIA,EAAElvC,WAAa+jG,KAC5C,MAARtkG,GACFG,EAAMja,KAAK8Z,MAIf,IAAInJ,EAAwC,CAC1CkJ,MAAOI,EACPqoG,QAAS5+G,KAAKw9G,QACdqB,iBAAkB7+G,KAAK09G,kBAGzB19G,KAAK89G,uBAAwB,EAE7B99G,KAAKi+G,uBAAuBa,UAAU7xG,GACnC5G,MAAK,SAAAwN,GACiB,MAAjB,EAAK0K,UACP,EAAKA,SAAS2hE,UAGhB/3D,oBAAM,oCAAqC,aAC3C,EAAKvU,WAENtN,OAAM,SAAAmtB,GACL,EAAKirF,oBAAoB,gDAE1BzqG,SAAQ,WACP,EAAK6pG,uBAAwB,QA1IL,iCA+IxB,SAAoBhuG,GAC1BqY,oBAAMrY,EAAS,WAhJe,yBAmJxB,WACe,MAAjB9P,KAAKue,UACPve,KAAKue,SAAS2hE,YArJc,mBAyJxB,WACNlgF,KAAKk+G,eAAiB,GACtBl+G,KAAKm+G,UAAY,GACjBn+G,KAAKgT,aAAa+rG,gBAClB/+G,KAAKgT,aAAaC,wBA7JY,GAASpQ,cAAtBm7G,GAAa,gBAXjC72G,eAAU,CACTL,WAAY,CACV8R,wBACA+Q,4BACAhR,wBACA+Q,4BACA7Q,8BACAiH,oCACArH,+BAGiBulG,cCzIsY,MCQvZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBgB,GAAiB,yIAASn8G,cAA1Bm8G,GAAiB,gBANrC73G,eAAU,CACTL,WAAY,CACViS,yBACAilG,qBAGiBgB,cCnBoX,MCOrY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIj/G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,eAAenH,EAAG,cAAc,IAC9J,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,kBAAkB,CAACf,EAAG,MAAM,CAACgL,YAAY,CAAC,QAAU,SAAS,CAAChL,EAAG,MAAM,CAACgL,YAAY,CAAC,eAAe,OAAO,MAAQ,UAAU,CAAChL,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,YAAc,kBAAkB,eAAe,CAAErH,MAAO,eAAgBwH,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,MAAW9H,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAiC,MAAtBP,EAAI8H,eAAuB,kBAAiB,EAAK,cAAc9H,EAAI4R,QAAQ,eAAe5R,EAAIskG,uBAAuB,aAAa,UAAU,MAAQtkG,EAAIwI,cAAc,qBAAoB,EAAK,YAAc,iBAAiB,eAAe,CAAE/H,MAAO,eAAgBwH,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAIwI,cAAcN,OAAY,GAAG9H,EAAG,YAAY,CAACG,MAAM,CAAC,SAA0C,IAA/BP,EAAIk/G,gBAAgBjjH,OAAa,KAAO,SAAS,KAAO,SAASgM,GAAG,CAAC,MAAQjI,EAAIm/G,oBAAoB,GAA0B,MAAtBn/G,EAAI8H,gBAA+C,MAArB9H,EAAIwI,cAAuBpI,EAAG,MAAM,CAACA,EAAG,UAAU,CAACG,MAAM,CAAC,cAAcP,EAAIgP,QAAQ,eAAe,cAAc,eAAe,CAAEvO,MAAO,oBAAqB,OAAS,QAAQ,MAAQ,QAAQ,WAAW,0BAA0B,iBAAiB,eAAe,kBAAkB,WAAW,iBAAiBT,EAAIk/G,gBAAgB,iBAAiB,MAAM,2BAA0B,GAAMj3G,GAAG,CAAC,uBAAuB,SAASC,GAAQlI,EAAIk/G,gBAAgBh3G,GAAQ,wBAAwB,SAASA,GAAQlI,EAAIk/G,gBAAgBh3G,OAAY,GAAGlI,EAAIyI,OAAOrI,EAAG,gBAAgB,CAACG,MAAM,CAAC,QAAUP,EAAIk7C,oBAAoBjzC,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIk7C,mBAAmBhzC,OAAY,IAC1uD,GAAkB,GCITk3G,GAAb,WAGE,oCACEn/G,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,iBAJnD,kHAOS,WAAyB6pC,GAAzB,iGACQhtC,KAAK0D,OAAOiJ,YAAqC,GAAIqgC,GAD7D,wFAPT,iE,sdCgFA,IAAqBoyE,GAAQ,4CAA7B,iD,0BACmB,EAAA5uG,aAA6B,IAAIjC,GACjC,EAAA7K,OAAgC,IAAIC,2BAAsB,EAAK0M,OAAQ,IACvE,EAAAC,cAA+B,IAAI/E,GACnC,EAAA8zG,gBAAmC,IAAIF,GAEhD,EAAAxtG,QAAsB,GACtB,EAAAjG,QAA0B,GAC1B,EAAAuvC,oBAA8B,EAC9B,EAAAlsC,QAAqC,GACrC,EAAAxG,cAA6B,KAC7B,EAAAV,eAA8B,KAC9B,EAAAo3G,gBAA6C,GAZvD,EAA6B,uHAenB,qGACNj/G,KAAKuI,cAAgB,KACrBvI,KAAK2R,QAAU,GAFT,SAIA3R,KAAK+9F,cAJL,OAMF/9F,KAAK2R,QAAQ3V,OAAS,IACxBgE,KAAKuI,cAAgBvI,KAAK2R,QAAQ,GAAGG,SAPjC,gDAfmB,sJA2BnB,iGACN9R,KAAK+O,QAAU,GAEW,MAAtB/O,KAAKuI,cAHH,gCAIiBvI,KAAKwQ,aAAa8uG,mBAAmBt/G,KAAKuI,eAJ3D,OAIJvI,KAAK+O,QAJD,uDA3BmB,uIAmC3B,8GACQ/O,KAAK2d,WADb,gDAnC2B,wIAuCnB,8GACe3d,KAAKsQ,cAAcivG,0BADlC,OACNv/G,KAAK0L,QADC,uDAvCmB,2IA2CnB,iGACqB,MAAvB1L,KAAK6H,eADH,gCAEiB7H,KAAKwQ,aAAagvG,uBAAuBx/G,KAAK6H,gBAF/D,OAEJ7H,KAAK2R,QAFD,uDA3CmB,sFAiDnB,WAAe,WACrB,GAA0B,MAAtB3R,KAAKuI,cAAT,CAIA,IAAIykC,EAAqC,CACvCl7B,QAAS9R,KAAKuI,cACdk3G,kBAAmBz/G,KAAKi/G,gBAAgB5/G,KAAoC,SAAAnB,GAC1E,MAAO,CACLwhH,uBAAwBxhH,EAAEwhH,uBAC1BjyG,QAASvP,EAAEuP,aAKjBzN,KAAKi7C,oBAAqB,EAC1Bj7C,KAAKq/G,gBAAgBC,mBAAmBtyE,GACrC3mC,MAAK,SAAAi4G,GACJ,EAAK56G,OAAOgqC,SAAS4wE,EAAsB/wE,IAAK+wE,EAAsB9wE,OACnEnnC,MAAK,SAACk4G,GACL,GAAIA,EAAeC,GAAI,CACrB,IAAI1iE,OAA+BzuC,EAC/BoxG,EAAiBF,EAAexiE,QAAQ99C,IAAI,YAE1B,MAAlBwgH,IACF3iE,EAAW2iE,GAGG,MAAZ3iE,IACFA,EAAWI,mBAAmBJ,IAGhCyiE,EAAe/lE,OAAOnyC,MAAK,SAAA7K,GACzBwgD,KAAUC,OAAOzgD,EAAMsgD,MAGzBv1C,IAAO,2BAA4B,UAAW,UAE9C,EAAKm4G,oBAAoB,mDAG5Bp4G,OAAM,SAAAmtB,GACL,EAAKirF,oBAAoB,sDAG9Bp4G,OAAM,SAAAmtB,GACgB,yBAAlBA,EAAO3f,QACR,EAAK6rG,2BAGL,EAAKjB,oBAAoB,kDAG5BzqG,SAAQ,WACP,EAAKgnC,oBAAqB,QAvGL,iCA2GnB,SAAoBnrC,GAC1BqY,oBAAMrY,EAAS,WA5GU,sCA+GnB,WAAwB,WAC1B+rF,EAAY77F,KAAK2R,QAAQK,MAAK,SAAAwE,GAAC,OAAIA,EAAE1E,SAAW,EAAKvJ,iBACrDq8F,EAAa5kG,KAAK0L,QAAQsG,MAAK,SAAAwE,GAAC,OAAIA,EAAEnY,OAAS,EAAKwJ,kBACpD+3G,EAAc5/G,KAAK+O,QAAQnL,QAAO,SAAA4S,GAAC,OAAI,EAAKyoG,gBAAgBv0G,MAAK,SAAAwmE,GAAC,OAAI16D,EAAEkpG,wBAA0BxuC,EAAEwuC,6BAAyBrgH,KAAI,SAAAmX,GAAC,OAAIA,EAAEqpG,eACxIC,EAAgB,GAElBA,EADCF,EAAY5jH,OAAS,EACN,GAAH,OAAM4jH,EAAY,GAAlB,gBAA4BA,EAAY5jH,OAAS,EAAjD,kBAGG,GAAH,OAAM4jH,EAAY97G,KAAK,KAAvB,cAEf,IAAIgM,EAAU,GAAH,OAAM80F,EAAYj5F,KAAlB,mBAAiCm0G,EAAjC,qBAA2DjkB,EAAWhqF,WACjFsW,oBAAMrY,EAAS,+BA3HU,oCA8HnB,SAAuBsnF,GAC7B,GAAa,MAATA,EACF,MAAO,GAGT,IAAIv6F,EAASsS,GAAO4wG,oBAAoB3oB,EAAMvlF,WAC9C,OAAiB,MAAVhV,EAAiB,GAAKA,MApIJ,GAASgG,cAepCb,gBADCuW,gBAAM,mBACP,6CAYAvW,gBADCuW,gBAAM,kBACP,4CA3BmB6mG,GAAQ,gBAR5Bj4G,eAAU,CACTL,WAAY,CACV8R,wBACAmb,oBACAlb,8BACAQ,kCAGiB+lG,cCrFiY,MCQlZ,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBY,GAAY,yIAASn9G,cAArBm9G,GAAY,gBANhC74G,eAAU,CACTL,WAAY,CACVs4G,YACArmG,6BAGiBinG,cCnB+W,MCOhY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIjgH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,uBAAuBnH,EAAG,0BAA0B,IAClL,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,eAAe,CAACG,MAAM,CAAC,cAAcP,EAAIkgH,+BAA+B,OAAS,CAAEn6F,SAAU,IAAK,yBAAwB,GAAM9d,GAAG,CAAC,YAAcjI,EAAIuhG,sBAAsB,oBAAoBvhG,EAAImgH,iBAAiBp/G,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,sBAAsBqC,GAAG,SAASkH,GAC7X,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,UAAU,KAAO,SAAS0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI4jC,UAAUnoC,EAAKA,aAAa,CAACmD,IAAI,cAAcqC,GAAG,SAASkH,GACnK,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACe,YAAY,uBAAuBZ,MAAM,CAAC,KAAO,OAAO,KAAO,QAAQ0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIogH,YAAY3kH,EAAKA,UAAU2E,EAAG,YAAY,CAACe,YAAY,uBAAuBZ,MAAM,CAAC,KAAO,QAAQ,KAAO,UAAU0H,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIqgH,UAAU5kH,EAAKA,WAAW,SAAS,CAAC2E,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,gBAAgB,CAACG,MAAM,CAAC,SAAU,KAAQH,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAAU,EAAK,KAAO,eAAe,cAAc,iCAAiCH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,wBAAwB,YAAY,SAAS,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,4BAA4B,YAAY,SAAS,QAAU,YAAY,uBAAuB,eAAe,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEia,WAAYxa,EAAIsgH,+BAAgCrkG,aAAa,KAAS,CAAC7b,EAAG,oBAAoBA,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIsgH,+BAA+B,aAAa,QAAQ,eAAe,WAAW,GAAGlgH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAW,YAAY,SAAS,QAAU,YAAY,0BAAyB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,WAAW,YAAY,SAAS,QAAU,SAAS,uBAAuB,aAAa,iBAAiBP,EAAI+hG,mBAAmB,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEvnF,WAAYxa,EAAI2L,QAASsQ,aAAa,KAAS,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI2L,QAAQ,aAAa,QAAQ,eAAe,WAAW,GAAGvL,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,UAAU,uBAAuB,cAAc,iBAAiBP,EAAI+hG,mBAAmB,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEvnF,WAAYxa,EAAI23B,UAAW1b,aAAa,EAAMhB,WAAY,gBAAiB,CAAC7a,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI23B,UAAU,aAAa,QAAQ,eAAe,WAAW,GAAGv3B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,cAAc,uBAAuB,iBAAiB,iBAAiBP,EAAI+hG,mBAAmB,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAEvnF,WAAYxa,EAAI28B,YAAa1gB,aAAa,KAAS,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAI28B,YAAY,aAAa,QAAQ,eAAe,WAAW,GAAGv8B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,eAAe,uBAAuB,aAAa,iBAAiBP,EAAIugH,2BAA2B,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAE/lG,WAAYxa,EAAIm8B,WAAYlgB,aAAa,KAAS,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,aAAa,QAAQ,eAAe,WAAW,GAAG/7B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,SAAS,QAAU,eAAe,uBAAuB,aAAa,iBAAiBP,EAAIugH,2BAA2B,mBAAkB,EAAM,0BAAyB,EAAK,gBAAgB,CAAE/lG,WAAYxa,EAAIm8B,WAAYlgB,aAAa,KAAS,CAAC7b,EAAG,YAAY,CAACG,MAAM,CAAC,cAAcP,EAAIm8B,WAAW,aAAa,QAAQ,eAAe,WAAW,GAAG/7B,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,SAAS,YAAY,SAAS,QAAU,SAAS,iBAAiBP,EAAIugH,2BAA2B,0BAAyB,KAASngH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,SAAS,YAAY,SAAS,QAAU,SAAS,iBAAiBP,EAAIugH,2BAA2B,OAAS,CAAEzwG,KAAM,YAAa,0BAAyB,KAAS1P,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,QAAQ,YAAY,SAAS,QAAU,QAAQ,mBAAkB,EAAM,iBAAgB,EAAM,YAAY,GAAG,MAAQ,GAAG,gBAAgB,yBAAyBH,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,GAAG,mBAAkB,EAAM,iBAAgB,EAAM,gBAAgB,kBAAkB,GAAGH,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQ,QAAQ,KAAOP,EAAIgiG,YAAY,QAAUhiG,EAAI+vD,UAAU,MAAQ,MAAM,OAAS,OAAO9nD,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAI+vD,UAAU7nD,GAAQ,OAASlI,EAAIiiG,cAAc7hG,EAAG,iCAAiC,CAAC+H,IAAI,6BAA6B5H,MAAM,CAAC,QAAUP,EAAIwgH,iBAAiB,oBAAsBxgH,EAAIygH,WAAW,qBAAuBzgH,EAAI0gH,yBAAyB,WAAa1gH,EAAIm8B,WAAW,YAAcn8B,EAAI28B,YAAY,YAAc38B,EAAI23B,UAAU,WAAa33B,EAAI2L,QAAQ,aAAe3L,EAAIiU,aAAa,OAAS,OAAOhM,GAAG,CAAC,OAASjI,EAAI2gH,YAAY,gBAAgB3gH,EAAI4gH,gBAAgB,IACl6I,GAAkB,GCATC,GAAb,WAGE,oCACE5gH,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,6BAJnD,oGAOE,WAAWuJ,GAAX,iGACe1M,KAAK0D,OAAOiJ,YAAY,QAASD,GADhD,wFAPF,oIAWE,WAAUlN,GAAV,iGACeQ,KAAK0D,OAAOzF,IAAZ,WAA4CuB,IAD3D,wFAXF,uIAeE,WAAahE,GAAb,iGACewE,KAAK0D,OAAOiJ,YAAoC,GAAInR,GADnE,wFAfF,uIAmBE,WAAagE,EAAUhE,GAAvB,iGACewE,KAAK0D,OAAOiL,QAAgCxK,oBAAeyK,IAA3D,WAAoEpP,GAAMhE,GADzF,wFAnBF,yIAuBE,WAAagE,GAAb,iGACeQ,KAAK0D,OAAOiL,QAAgCxK,oBAAe2K,OAA3D,WAAuEtP,IADtF,wFAvBF,iECDaqhH,GAAb,WAGE,oCACE7gH,KAAK0D,OAAS,IAAIC,2BAAsBR,EAAO,iCAJnD,oGAOE,8GACenD,KAAK0D,OAAOzF,IAAkC,IAD7D,wFAPF,gECJI,GAAS,WAAa,IAAI8B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAW,CAACG,MAAM,CAAC,MAAQP,EAAIW,MAAM,QAAUX,EAAIgsB,QAAQ,MAAQ,MAAM,OAAShsB,EAAIud,OAAO,aAAa,OAAOtV,GAAG,CAAC,OAASjI,EAAI2tD,WAAW,CAACvtD,EAAG,MAAM,CAAEJ,EAAgB,aAAEI,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACnB,EAAIuH,GAAGvH,EAAIwH,GAAGxH,EAAIiU,iBAAiBjU,EAAIyI,KAAMzI,EAAY,SAAEI,EAAG,UAAU,CAAC+H,IAAI,mBAAmB5H,MAAM,CAAC,YAAY,EAAE,YAAYP,EAAIotC,SAAS,mBAAmB,oBAAoBnlC,GAAG,CAAC,oBAAoBjI,EAAI+gH,iBAAiB,CAAC3gH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,cAAc,WAAW,aAAa,4BAA4B,eAAc,EAAK,iBAAiBP,EAAIghH,0BAA0B,CAAC5gH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,gBAAgB,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,eAAc,EAAK,cAAc,YAAY,iBAAiB,CAAE0gH,KAAM,6BAA8BtmG,UAAW,IAAKyX,YAAa,eAAgB,CAAChyB,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,gBAAgB,IAAI,GAAGH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,WAAW,cAAc,WAAW,iBAAiBP,EAAIkhH,mBAAmB,CAAC9gH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,aAAa,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,YAAY,cAAc,WAAW,iBAAiBP,EAAImhH,oBAAoB,CAAC/gH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,cAAc,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAc,WAAW,iBAAiBP,EAAIohH,mBAAmB,CAAChhH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,kBAAkB,IAAI,GAAGH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAcP,EAAIqhH,mBAAmB,QAAUrhH,EAAIqhH,mBAAmB,cAAc,WAAW,iBAAiBrhH,EAAIshH,kBAAkB,CAAClhH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,mBAAmB,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,eAAe,cAAcP,EAAIuhH,mBAAmB,QAAUvhH,EAAIuhH,mBAAmB,cAAc,WAAW,iBAAiBvhH,EAAIshH,kBAAkB,CAAClhH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,mBAAmB,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,SAAS,cAAcP,EAAIwhH,eAAe,QAAUxhH,EAAIwhH,eAAe,cAAc,cAAc,iBAAiB,CAAExqG,OAAQ,OAAQynD,IAAK,KAAM,CAACr+D,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,aAAa,GAAGH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,SAAS,cAAc,cAAc,cAAcP,EAAIyhH,eAAe,QAAUzhH,EAAIyhH,eAAe,iBAAiB,CAAEzqG,OAAQ,0BAA2BynD,IAAK,KAAM,CAACr+D,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,aAAa,IAAI,GAAGH,EAAG,gBAAgB,CAACG,MAAM,CAAC,YAAY,IAAI,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,aAAa,QAAQ,cAAc,aAAa,iBAAiB,CAAEoa,UAAW,IAAKyX,YAAa,6BAA8BxT,YAAa,gBAAiB,IAAI,GAAG5e,EAAIyI,MAAM,GAAGrI,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAI+tD,qBAAqB3tD,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,SAAW,QAAQ,QAAU,SAAS,QAAUP,EAAIw2D,uBAAuB,IACn9F,GAAkB,G,sdCqHtB,IAAqBkrD,GAA0B,4CAA/C,iD,0BA8BE,EAAAztG,aAA8B,KAE9B,EAAAzE,MAEI,GAyII,EAAA6xG,oBAA8B,EAC9B,EAAAE,oBAA8B,EAC9B,EAAAC,gBAA0B,EAC1B,EAAAC,gBAA0B,EA9KpC,EAA+C,uDAoC7C,WACE,MAAO,CACL71G,KAAM,QACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKuuD,SAzC2B,6BA6C7C,WACE,MAAO,CACL5iD,KAAM,OACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAK0hH,mBAlD2B,oBAsD7C,WACE,MAAO,CACL1mC,sBAAuBh7E,KAAK2hH,oBAAoB3mC,sBAChD4mC,0BAA2B5hH,KAAK2hH,oBAAoBC,0BACpD9oF,UAAW94B,KAAK2hH,oBAAoB7oF,WAAa,GACjDje,YAAa7a,KAAK2hH,oBAAoB9mG,YACtCgjB,aAAc79B,KAAK2hH,oBAAoB9jF,cAAgB,GACvDssE,eAAgBnqG,KAAK2hH,oBAAoBxX,eACzCt+F,SAAU7L,KAAK2hH,oBAAoB91G,UAAY,GAC/CD,WAAY5L,KAAK2hH,oBAAoB/1G,WACrCu1F,YAAanhG,KAAK2hH,oBAAoBxgB,YACtC0gB,YAAa7hH,KAAK2hH,oBAAoBE,YACtCC,UAAW9hH,KAAK2hH,oBAAoBG,UACpCC,aAAc/hH,KAAK2hH,oBAAoBI,aACvC9mC,SAAUj7E,KAAK2hH,oBAAoB1mC,SACnCl0C,OAAQi7E,yBAAYhiH,KAAK2hH,oBAAoB56E,SAAWk7E,oBAAOjiH,KAAK2hH,oBAAoB56E,QAAU,GAAI/mC,KAAK2hH,oBAAoB56E,OAC/Hm7E,OAAQF,yBAAYhiH,KAAK2hH,oBAAoBO,SAAWD,oBAAOjiH,KAAK2hH,oBAAoBO,QAAU,GAAIliH,KAAK2hH,oBAAoBO,OAC/H5gF,MAAMthC,KAAK2hH,oBAAoBrgF,MAC/B6gF,aAAcniH,KAAK2hH,oBAAoBQ,aACvCC,WAAYpiH,KAAK2hH,oBAAoBS,WACrCC,aAAcriH,KAAK2hH,oBAAoBU,aACvCC,WAAYtiH,KAAK2hH,oBAAoBW,aA3EI,IA+E7C,SAAqBjkH,GACnB2B,KAAKimB,MAAM,6BAA6B5nB,KAhFG,sBAmF7C,WACE2B,KAAKuuD,UApFsC,mBAuFrC,WACNvuD,KAAKimB,MAAM,YAxFgC,6BA2FtC,WACL,IAAMg6E,EAAOjgG,KAAKwzC,OAClB,GAAGysD,EAAM,CACP,IAAIsiB,EAAYtiB,EAAKl4E,WAClBw6F,EAAUv6F,SACXhoB,KAAKimB,MAAM,gBAAiB9gB,IAAEihB,UAAUpmB,KAAKmtC,cAhGN,mCAqG7C,WACI,MAAO,CACL,YAAgB,qBAChB,WAAentC,KAAKwiH,qBACpB,YAAe,eACf,UAAa,4BACb,eAAiB,EACjB,YAAexiH,KAAK2H,eACpB,mBAAsB3H,KAAKyiH,mBA7GY,4BAiH7C,WACI,MAAO,CACL,YAAgB,uBAChB,WAAeziH,KAAK08B,YACpB,YAAe,OACf,UAAa,WAtH0B,4BA0H7C,WACI,MAAO,CACL,YAAgB,kBAChB,WAAe18B,KAAK0iH,WACpB,YAAe,OACf,UAAa,QACb,eAAiB,EACjB,YAAe1iH,KAAK2H,kBAjImB,6BAqI7C,WACI,MAAO,CACL,YAAgB,mBAChB,WAAe3H,KAAKykC,YACpB,YAAe,OACf,UAAa,QACb,YAAezkC,KAAK2H,kBA3ImB,2BA+I7C,WACI,MAAO,CACL,YAAgB,iBAChB,WAAe3H,KAAKk8B,WACpB,YAAe,OACf,UAAa,QACb,YAAel8B,KAAK2H,kBArJmB,oBAyJ7C,WACE,QAAG3H,KAAKmtC,WA1JmC,iBAgK7C,WACE,OAAGntC,KAAKmtC,UAAYntC,KAAKmtC,SAAS6tC,sBACzB,wBAEF,yBApKoC,4BAuK7C,WACI,OAAO97E,OAAOyT,YAAc,IAxKa,6BAgLrC,SAAgBqD,GACtB,GAAGA,GAAYA,EAASvE,aAAc,CACpC,IAAIkxG,EAAW3iH,KAAKwiH,qBAAqBxwG,MAAK,SAAAwE,GAAC,OAAEA,EAAEorG,2BAA6B5rG,EAASvE,aAAamwG,6BACtG,GAAGe,EAKD,OAJA3iH,KAAKohH,mBAAqBuB,EAASC,eACnC5iH,KAAKshH,mBAAqBqB,EAASE,eACnC7iH,KAAKuhH,eAAiBoB,EAASG,oBAC/B9iH,KAAKwhH,eAAiBmB,EAASI,gBAKnC/iH,KAAKohH,oBAAqB,EAC1BphH,KAAKshH,oBAAqB,EAC1BthH,KAAKuhH,gBAAiB,EACtBvhH,KAAKwhH,gBAAiB,IA/LqB,4BAkMrC,SAAe9hH,GACrB6X,QAAQC,IAAIxX,KAAK8gH,gBACjB9gH,KAAKmtC,SAAWztC,EAAEuH,UAAUqF,OAAO,cApMQ,kBAuM7C,WACI,OAAStM,KAAKuP,MAAMyzG,iBAA0B5xG,aAxML,GAASvO,cAGtDb,gBADCwnB,gBAAK,CAAEue,UAAU,KAClB,+BAGA/lC,gBADCwnB,gBAAK,CAAEC,QAAS,SACjB,6BAGAznB,gBADCwnB,gBAAK,CAAEC,QAAS,SACjB,8BAGAznB,gBADCwnB,mBACD,2CAGAxnB,gBADCwnB,gBAAK,CAACue,UAAU,KACjB,4CAGA/lC,gBADCwnB,gBAAK,CAACue,UAAU,KACjB,kCAGA/lC,gBADCwnB,gBAAK,CAACue,UAAU,KACjB,mCAGA/lC,gBADCwnB,gBAAK,CAACue,UAAU,KACjB,mCAGA/lC,gBADCwnB,gBAAK,CAACue,UAAU,KACjB,kCAGA/lC,gBADCwnB,gBAAK,CAACue,UAAS,KAChB,oCA9BmB05E,GAA0B,gBAf9Ct6G,gBAAU,CACTL,WAAY,CACVwY,sBACA6vC,4BACAllC,kCACA5Q,8BACAyQ,0BACAlR,wBACA6G,oBACAF,oBACAvG,wBACAG,8BACA8pG,0BAGiBxB,cCtHsZ,MCQva,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dC2Pf,IAAqByB,GAAmB,4CAAxC,iD,0BACmB,EAAAC,2BAAyD,IAAIvC,GAC7D,EAAAwC,+BAAiE,IAAIvC,GACrE,EAAAvwG,cAA+B,IAAI/E,GACnC,EAAAiuB,eAAiC,IAAIZ,GACrC,EAAA+E,kBAAuC,IAAIR,GAC3C,EAAA8wB,iBAAqC,IAAI/nB,GAElD,EAAAm6E,+BAAiD,GACjD,EAAAI,yBAAyD,GACzD,EAAA/0G,QAA0B,GAC1B,EAAAgsB,UAA4B,GAE5B,EAAAgF,YAA8B,GAC9B,EAAAqlE,YAAsB,GACtB,EAAA7lE,WAA6B,GAC7B,EAAAhD,iBAAsD,KACtD,EAAAmqF,mBAAoC,KACpC,EAAAvzD,WAAqB,EACrB,EAAA97C,aAA8B,KAEtC,EAAAzE,MAEI,GAgEI,EAAAgxG,kBAA4B,EAC5B,EAAAC,WAAqC,EAAK8C,kBAxFpD,EAAwC,mEAyBtC,WAA0C,WACxC,OAAO,IAAI7yG,KAAY,CACrB9R,IAAK,wBACLgS,KAAM,SAAAjE,GAAO,OAAI,EAAKy2G,2BAA2Bn9D,KAAKt5C,GAASpG,MAAM,EAAK24F,sBAC1ExiF,OAAQ,SAAAC,GAAM,OAAI,EAAKymG,2BAA2BzkH,OAAOge,GAAQpW,MAAM,EAAK24F,sBAC5EpiF,OAAQ,SAACle,EAAK+d,GAAN,OAAiB,EAAKymG,2BAA2BtmG,OAAOle,EAAK+d,GAAQpW,MAAM,EAAK24F,sBACxF75F,OAAQ,SAAAzG,GAAG,OAAI,EAAKwkH,2BAA2BpmG,OAAOpe,GAAK2H,MAAM,EAAK24F,0BA/BpC,iCAmC9B,SAAoBpiG,GAC1B,IAAIiT,EAAU,6BACd,GAAc,MAAVjT,GAAoC,MAAlBA,EAAOiX,QAAiB,CAC5ChE,EAAUjT,EAAOiX,QAEjB,IAAIhP,EAAQgL,EAAQkI,QAAQ,WACxBlT,GAAS,IACXgL,EAAUA,EAAQ0kF,UAAU,EAAG1vF,IAInC,MADA9E,KAAKgU,aAAalE,EACZnQ,MAAMmQ,KA9CwB,8EAiDtC,qGACEqC,SAASm3B,iBAAiB,QAAStpC,KAAKupC,SAAS,GACjDp3B,SAASm3B,iBAAiB,UAAWtpC,KAAKwpC,WAAW,GAFvD,SAGQxpC,KAAK2d,WAHb,gDAjDsC,wIAuD9B,oHACgC3d,KAAKojH,+BAA+Bp9D,OADpE,cACNhmD,KAAKygH,yBADC,OAENzgH,KAAKqgH,+BAAiCrgH,KAAKygH,yBAAyBphH,KAAkB,SAAAf,GACpF,MAAO,CAAEqN,KAAMrN,EAAEyjH,aAAc1jH,MAAOC,EAAEsjH,8BAHpC,SAMe5hH,KAAKsQ,cAAc+mD,qBAAoB,GANtD,cAMNr3D,KAAK0L,QANC,gBAOiB1L,KAAKw5B,eAAe69B,qBAAoB,GAPzD,cAONr3D,KAAK03B,UAPC,iBAQkB13B,KAAKiuD,iBAAiBoJ,sBARxC,eAQNr3D,KAAKk8B,WARC,iBAUkBl8B,KAAK29B,kBAAkBlH,WAVzC,QAUFiG,EAVE,OAWN18B,KAAK08B,YAAcA,EAAYr9B,KAAkB,SAAAf,GAC/C,MAAO,CAAEqN,KAAMrN,EAAE2G,KAAM5G,MAAOC,EAAEu/B,iBAElC79B,KAAK08B,YAAY5wB,QAAQ,CAAEH,KAAM,MAAOtN,MAAO,KAdzC,iDAvD8B,gFAwEtC,WACE8T,SAASs3B,oBAAoB,QAASzpC,KAAKupC,SAAS,GACpDp3B,SAASs3B,oBAAoB,UAAWzpC,KAAKwpC,WAAW,KA1EpB,uBA6E9B,SAAUwiD,GAChBhsF,KAAK+hG,YAA4B,MAAd/V,EAAK1qD,MAAgB0qD,EAAK1qD,MAAQ,GACrDthC,KAAK8vD,WAAY,IA/EmB,wBAkF9B,WACN9vD,KAAK8vD,WAAY,EACjB9vD,KAAK+hG,YAAc,KApFiB,6BA0F9B,WACN,MAAO,CACH/mB,sBAAuB,uCACvB4mC,0BAA2B,EAC3BG,aAAa,GACb9mC,SAAU,GACVkmB,YAAY,IAAIjkE,KAChB2kF,YAAa,GACbC,UAAW,MAlGqB,yBAsG9B,SAAY91B,GAClBhsF,KAAKgU,aAAa,KAClBhU,KAAKugH,kBAAmB,EAEtBvgH,KAAKwgH,WADJx0B,EACiB7mF,IAAEihB,UAAU4lE,GAGdhsF,KAAKsjH,oBA7Ga,yBAgH9B,SAAYt3B,GAClBhsF,KAAKugH,kBAAmB,EACxBvgH,KAAKwgH,WAAaxgH,KAAKsjH,oBAlHa,yBAqH9B,SAAYt3B,GAA4B,WAS9C,GAPGA,GAAQA,EAAKhR,uBACdh7E,KAAKigH,+BAA+BpjG,OAAOmvE,EAAKhR,sBAAuBgR,GAAM3lF,MAAK,SAACmQ,GACjF,EAAKypG,+BAA+B3jH,KAAK,CAAC,CAACuT,KAAK,SAASrU,KAAMgb,EAAG7X,IAAK6X,EAAEwkE,yBACzE,EAAKuoC,uBAINv3B,IAASA,EAAKhR,sBAAuB,CACtC,IAAIwoC,EAAavnH,OAAO66B,OAAO,GAAG92B,KAAKsjH,kBAAkBt3B,GACzDhsF,KAAKigH,+BAA+BxjG,OAAO+mG,GAAYn9G,MAAK,SAACmQ,GACxD,EAAK+H,WACN,EAAKA,SAAS2hE,UACd,EAAKqjC,2BAnIyB,+BAyI9B,WACNvjH,KAAKugH,kBAAiB,EACtBvgH,KAAKwgH,WAAaxgH,KAAKsjH,oBA3Ia,uBA8I9B,SAAUt3B,GAA4B,WACzCA,GACDhtE,sBAAQ,+CAA+C,oBAAoB3Y,MAAK,SAAAmQ,GAC3EA,GACD,EAAKypG,+BAA+B76G,OAAO4mF,EAAKhR,uBAAuB30E,MAAK,WAC1E,EAAK45G,+BAA+B3jH,KAAK,CAAC,CAACuT,KAAK,SAASlR,IAAKqtF,EAAKhR,iCAnJvC,mCA0J9B,SAAsBt7E,GAC5BM,KAAKue,SAAW7e,EAAEuH,YA3JkB,gCA8J9B,SAAmBs6F,GACzB,OAAOpyF,GAAOmC,cAAciwF,EAASnqE,WAAa,MAAQmqE,EAASnqE,YA/J/B,wCAkK9B,SAA2BmqE,GACjC,OAAOpyF,GAAOmC,cAAciwF,EAASnqE,WAAa,KAAOmqE,EAASnqE,YAnK9B,uBAsK9B,SAAU13B,GACZM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,qBAzKgC,qBA6K9B,SAAQp6B,GACVM,KAAKwuD,eAAe9uD,KACtBA,EAAEkqC,iBACFlqC,EAAEo6B,kBACF95B,KAAKyjH,iBAjL6B,yBAqL9B,WACN,IAAMC,EAAU1jH,KAAKuP,MAAMo0G,2BACxBD,GACDA,EAAQhC,oBAxL0B,4BA4L9B,SAAehiH,GACrB,MAAiB,UAAVA,EAAEf,MAAoBe,EAAEgqC,SAAWhqC,EAAEiqC,YA7LR,2BAgM9B,WACe,MAAjB3pC,KAAKue,UACPve,KAAKue,SAASc,UAlMoB,6BAsM9B,SAAgBhJ,GACtBA,EAAM+kB,eAAezgB,MAAM7O,QAAQ,CACjC+R,SAAU,QACVwd,OAAQ,WACR3uB,QAAS,CACP4uB,KAAM,MACNzZ,QAAS7hB,KAAKmgH,mBA5MkB,GAASt9G,cAA5BqgH,GAAmB,gBAtBvC/7G,gBAAU,CACTL,WAAY,CACV8R,wBACAD,wBACA+Q,4BACA5Q,0BACA+Q,8BACArK,oCACAxG,wBACAkT,8BACAnM,wBACAT,sBACAM,oCACAqO,8BACA5U,8BACAyG,oCACAqvC,4BACArlC,0BACAm4E,aACAwf,kCAGiByB,cC9Q6Y,MCQ9Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBU,GAAgB,yIAAS/gH,cAAzB+gH,GAAgB,gBANpCz8G,eAAU,CACTL,WAAY,CACVo8G,uBACAnqG,6BAGiB6qG,cCnBuX,MCOxY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI7jH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,aAAa,CAACJ,EAAIuH,GAAG,oBAAoBnH,EAAG,wBAAwB,IAC7K,GAAkB,GCDlB,GAAS,WAAa,IAAIJ,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,oBAAoB,CAACf,EAAG,gBAAgB,CAACG,MAAM,CAAC,kBAAiB,EAAK,cAAcP,EAAI2L,QAAQ,eAAe,OAAO,aAAa,QAAQ,MAAQ3L,EAAI8H,eAAe,qBAAoB,EAAK,MAAQ,MAAM,YAAc,mBAAmBG,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI8H,eAAeI,GAAQ,gBAAgBlI,EAAIg+B,4BAA4B,GAA0B,MAAtBh+B,EAAI8H,eAAwB1H,EAAG,MAAM,CAACA,EAAG,MAAM,CAACe,YAAY,wBAAwB,CAACf,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,sBAAsB,KAAO,sBAAsB,SAAWP,EAAI8jH,sBAAsB,eAAe,CAAErjH,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI+jH,gBAAgB,UAAU3jH,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,wBAAwB,KAAO,wBAAwB,SAAWP,EAAI8jH,sBAAsB,eAAe,CAAErjH,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIgkH,kBAAkB,UAAU5jH,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,sBAAsB,KAAO,sBAAsB,SAAWP,EAAI8jH,sBAAsB,eAAe,CAAErjH,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIikH,2BAA2B,WAAW,GAAG7jH,EAAG,eAAe,CAACG,MAAM,CAAC,yBAAwB,EAAK,cAAcP,EAAIwa,WAAW,aAAa,CAAEwR,SAAS,GAAO,OAAShsB,EAAIkkH,cAAc,MAAQ,CAAEC,UAAU,EAAMC,uBAAuB,GAAO,OAAS,CAAEr+F,SAAU,KAAM,oBAAoB,CAAE4Y,QAAQ,EAAMC,WAAW,EAAMF,SAAS,EAAMvqB,SAAS,GAAO,wBAAuB,EAAK,UAAY,CAAE80C,iBAAkB,YAAahhD,GAAG,CAAC,YAAcjI,EAAIuhG,sBAAsB,sBAAsBvhG,EAAIsK,qBAAqBvJ,YAAYf,EAAIgB,GAAG,CAAC,CAACpC,IAAI,uBAAuBqC,GAAG,SAASkH,GAChwD,IAAI1M,EAAO0M,EAAI1M,KACf,MAAO,CAAC2E,EAAG,MAAM,CAACA,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,eAAe,KAAO,sBAAsB,eAAe,CAAEE,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAI+jH,gBAAgBtoH,EAAKA,UAAU2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,aAAa,KAAO,wBAAwB,eAAe,CAAEE,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIgkH,kBAAkBvoH,EAAKA,UAAU2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,gBAAgB,eAAe,CAAEE,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIqkH,kBAAkB5oH,EAAKA,UAAU2E,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,gBAAgB,KAAO,sBAAsB,eAAe,CAAEE,MAAO,eAAgBwH,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOlI,EAAIikH,2BAA2BxoH,EAAKA,WAAW,OAAO,MAAK,EAAM,aAAa,CAAC2E,EAAG,aAAa,CAACA,EAAG,gBAAgB,CAACG,MAAM,CAAC,OAAS,gBAAgB,iBAAiB,uBAAuB,eAAe,MAAM,eAAe,CAAEuP,KAAM,WAAY+5C,UAAW,OAAQ,GAAGzpD,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,oBAAoB,YAAY,SAAS,SAAU,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,SAAS,QAAU,QAAQ,0BAA0B,YAAY,uBAAuB,eAAe,eAAeP,EAAIwI,cAAc,MAAQ,MAAMP,GAAG,CAAC,qBAAqB,SAASC,GAAQlI,EAAIwI,cAAcN,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIwI,cAAcN,KAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,eAAe,YAAY,aAAa,cAAc,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,UAAU,YAAY,SAAS,QAAU,QAAQ,0BAA0B,YAAY,uBAAuB,YAAY,eAAeP,EAAIqI,eAAeJ,GAAG,CAAC,qBAAqB,SAASC,GAAQlI,EAAIqI,cAAcH,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIqI,cAAcH,KAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,eAAe,YAAY,aAAa,cAAc,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,SAAS,QAAU,iBAAiB,eAAeP,EAAIskH,uBAAuBr8G,GAAG,CAAC,qBAAqB,SAASC,GAAQlI,EAAIskH,sBAAsBp8G,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIskH,sBAAsBp8G,KAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,eAAe,gBAAgB,aAAa,oBAAoB,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,cAAc,YAAY,OAAO,QAAU,eAAe,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,aAAa,YAAY,SAAS,QAAU,iBAAiBH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,YAAY,YAAY,SAAS,QAAU,eAAe,0BAA0B,cAAc,uBAAuB,cAAc,eAAeP,EAAIukH,gBAAgB,MAAQ,MAAMt8G,GAAG,CAAC,qBAAqB,SAASC,GAAQlI,EAAIukH,gBAAgBr8G,GAAQ,sBAAsB,SAASA,GAAQlI,EAAIukH,gBAAgBr8G,KAAU,CAAC9H,EAAG,YAAY,CAACG,MAAM,CAAC,eAAe,cAAc,aAAa,gBAAgB,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,eAAe,YAAY,OAAO,QAAU,iBAAiB,MAAQ,QAAQH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,sBAAsB,YAAY,SAAS,QAAU,wBAAwB,MAAQ,MAAM,mBAAkB,KAASH,EAAG,YAAY,CAACG,MAAM,CAAC,aAAa,gBAAgB,YAAY,SAAS,QAAU,mBAAmB,OAAS,CAAEuP,KAAM,WAAY+5C,UAAW,GAAI,MAAQ,SAASzpD,EAAG,YAAY,CAACG,MAAM,CAAC,QAAU,SAAS,mBAAkB,EAAM,iBAAgB,EAAM,OAAQ,EAAK,iBAAiB,QAAQ,YAAY,IAAI,MAAQ,IAAI,gBAAgB,2BAA2B,IAAI,GAAGP,EAAIyI,KAAKrI,EAAG,sBAAsB,CAAC+H,IAAInI,EAAIwkH,qBAAqBv8G,GAAG,CAAC,OAASjI,EAAIykH,mCAAmCrkH,EAAG,oBAAoB,CAAC+H,IAAInI,EAAI0kH,mBAAmBz8G,GAAG,CAAC,OAASjI,EAAI2kH,iCAAiCvkH,EAAG,sBAAsB,CAAC+H,IAAInI,EAAI4kH,qBAAqB38G,GAAG,CAAC,OAASjI,EAAI6kH,mCAAmCzkH,EAAG,uBAAuB,CAAC+H,IAAInI,EAAI8kH,qBAAqB78G,GAAG,CAAC,OAASjI,EAAI+kH,oCAAoC,IACx6H,GAAkB,GCHlB,GAAS,WAAa,IAAI/kH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQ,MAAM,aAAa,MAAM,YAAY,MAAM,MAAQP,EAAIW,MAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAI2tD,WAAW,CAACvtD,EAAG,sBAAsB,CAAC6H,GAAG,CAAC,YAAcjI,EAAIglH,+BAA+B,CAAC5kH,EAAG,gBAAgB,CAACG,MAAM,CAAC,cAAcP,EAAIilH,qBAAqB,eAAe,eAAe,aAAa,eAAe,YAAc,0BAA0Bh9G,GAAG,CAAC,gBAAgBjI,EAAIklH,oBAAoB,CAAC9kH,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQP,EAAI1B,MAAM,OAAS,CAAEwR,KAAM,aAAc+5C,UAAW,GAAI,YAAc,gBAAgB,eAAe,CAAEppD,MAAO,kBAAmBwH,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI1B,MAAM4J,KAAU,CAAC9H,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,IAAI,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAImlH,gBAAgB,SAAW,QAAQ,QAAU,YAAY/kH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIguD,oBAAoB,SAAW,QAAQ,QAAU,aAAa,IAAI,IACxrC,GAAkB,G,sdC4EtB,IAAqBo3D,GAAiB,4CAAtC,iD,0BACmB,EAAA5nF,gBAAmC,IAAIV,GACvC,EAAAuoF,eAAyB,MACzB,EAAA1kH,MAAgB,sBACzB,EAAA+7B,WAA4B,GAC5B,EAAAzW,YAAsB,EAGvB,EAAAjH,aAA+B,KAC/B,EAAAsmG,YAA2B,KAC3B,EAAA1yD,SAA4C,KAC5C,EAAAt0D,MAAuB,KAXhC,EAAsC,oDAapC,WACE,MAAO,CACLsN,KAAM,KACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKw+G,MAlBkB,+BAsBpC,WACE,MAAO,CACL7yG,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKif,UA3BkB,gCA+BpC,WACE,OAAO,IAAI4G,KAAW,CACpB1iB,MAAOnD,KAAKy8B,WACZxhB,UAAU,EACV6K,SAAU,QAnCsB,8EAuCpC,8GACQ9lB,KAAK2d,WADb,gDAvCoC,wIA2C5B,8GACkB3d,KAAKu9B,gBAAgB9xB,SADvC,OACNzL,KAAKy8B,WADC,uDA3C4B,2EA+C7B,WACLz8B,KAAKgmB,YAAa,IAhDgB,wFAmD5B,WAAwBtmB,GAAxB,iGACkB,MAApBM,KAAKqlH,YADH,oDAKNrlH,KAAK3B,MAAQ,KAEE,MAAXqB,EAAE2W,OAA4B,MAAX3W,EAAErB,MAPnB,wDAWFixB,EAAS5vB,EAAErB,MAXT,SAYA2B,KAAKu9B,gBAAgB+nF,0BAA0Bh2F,EAAQtvB,KAAKolH,eAAgBplH,KAAKqlH,aACpFh/G,MAAK,SAAAxJ,GACJ,EAAKwB,MAAQxB,EAAO0oH,gBAErBj/G,OAAM,WACL6hB,oBAAM,kDAAmD,YAjBvD,gDAnD4B,0EAwE5B,WACFnoB,KAAKgoB,WACPhoB,KAAKuuD,OAAM,KA1EqB,qBA8E5B,WACN,GAA4B,MAAxBvuD,KAAK8nB,gBACP,OAAO,EAGT,IAAIjrB,EAASmD,KAAK8nB,gBAAgBC,WAClC,OAA0B,IAAnBlrB,EAAOmrB,UApFoB,oBAuF5B,WACNhoB,KAAKuuD,OAAM,KAxFuB,mBA2F5B,SAAMxvC,GACZ/e,KAAK+e,aAAeA,EACpB/e,KAAKgmB,YAAa,IA7FgB,6BAgG5B,WACsB,MAAxBhmB,KAAK8nB,iBACP9nB,KAAK8nB,gBAAgBlU,UAlGW,uBAsG5B,WACN5T,KAAK+e,aAAe,KACpB/e,KAAK3B,MAAQ,KACb2B,KAAKwlH,oBAzG6B,sBA6G5B,WACN,OAAOxlH,KAAK+e,eA9GsB,0CAiH5B,SAA6Brf,GACnCM,KAAK8nB,gBAAkBpoB,EAAEuH,cAlHS,GAASpE,cA6G7Cb,gBADCqjE,gBAAK,WACN,8BA7GmB8/C,GAAiB,gBAXrCh+G,gBAAU,CACTL,WAAY,CACVolB,8BACA5M,sBACAM,oCACAvG,8BACA4Q,kCACAG,0CACAF,kCAGiBi7F,cC7E2Y,MCQ5Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIplH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQ,MAAM,aAAa,MAAM,YAAY,MAAM,MAAQP,EAAIW,MAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAI2tD,WAAW,CAACvtD,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQP,EAAI1B,MAAM,uBAAsB,GAAM2J,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI1B,MAAM4J,GAAQ,YAAclI,EAAI0lH,uBAAuB,CAACtlH,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAImlH,gBAAgB,SAAW,QAAQ,QAAU,YAAY/kH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIguD,oBAAoB,SAAW,QAAQ,QAAU,aAAa,IAAI,IAC3yB,GAAkB,G,meCsDtB,IAAqB23D,GAAe,4CAApC,iD,0BACmB,EAAAhlH,MAAgB,sBAEzB,EAAAilH,cAA6B,KAC7B,EAAA3/F,YAAsB,EAEvB,EAAAjH,aAA+B,KAC/B,EAAA4zC,SAA4C,KAC5C,EAAAt0D,MAAqB,KACrB,EAAAunH,cAAwB,EATjC,EAAoC,oDAWlC,WACE,MAAO,CACLj6G,KAAM,KACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKw+G,MAhBgB,+BAoBlC,WACE,MAAO,CACL7yG,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKif,UAzBgB,kBA6B3B,WACLjf,KAAKgmB,YAAa,IA9Bc,gBAiC1B,WACFhmB,KAAKgoB,WACPhoB,KAAKuuD,OAAM,KAnCmB,qBAuC1B,WACN,OAAoB,MAAhBvuD,KAAK6lH,SAIF7lH,KAAK6lH,QAAQv5G,OAAO,aA5CK,oBA+C1B,WACNtM,KAAKuuD,OAAM,KAhDqB,mBAmD1B,SAAMxvC,GACZ/e,KAAK+e,aAAeA,EACpB/e,KAAKgmB,YAAa,IArDc,uBAwD1B,WACNhmB,KAAK+e,aAAe,KACpB/e,KAAK2lH,cAAgB3lH,KAAK3B,QA1DM,sBA8D1B,WAEN,OADA2B,KAAK4lH,aAAe5lH,KAAK3B,QAAU2B,KAAK2lH,cACjC3lH,KAAK+e,eAhEoB,kCAmE1B,SAAqBrf,GAC3BM,KAAK6lH,QAAUnmH,EAAEuH,cApEe,GAASpE,cA8D3Cb,gBADCqjE,gBAAK,WACN,8BA9DmBqgD,GAAe,gBATnCv+G,gBAAU,CACTL,WAAY,CACV4Y,0BACAJ,sBACAM,oCACAqK,kCACAC,kCAGiBw7F,cCvDyY,MCO1Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3lH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQ,MAAM,aAAa,MAAM,YAAY,MAAM,MAAQP,EAAIW,MAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAI2tD,WAAW,CAACvtD,EAAG,cAAc,CAACG,MAAM,CAAC,MAAQP,EAAI1B,MAAM,aAAa,KAAK2J,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI1B,MAAM4J,GAAQ,YAAclI,EAAI+lH,uBAAuB,CAAC3lH,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAImlH,gBAAgB,SAAW,QAAQ,QAAU,YAAY/kH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIguD,oBAAoB,SAAW,QAAQ,QAAU,aAAa,IAAI,IACjyB,GAAkB,G,sdCsDtB,IAAqBg4D,GAAiB,4CAAtC,iD,0BACmB,EAAArlH,MAAgB,wBACzB,EAAAilH,cAAwB,GACxB,EAAA3/F,YAAsB,EAGvB,EAAAjH,aAA+B,KAC/B,EAAA4zC,SAA4C,KAC5C,EAAAt0D,MAAgB,GAChB,EAAAunH,cAAwB,EATjC,EAAsC,oDAWpC,WACE,MAAO,CACLj6G,KAAM,KACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKw+G,MAhBkB,+BAoBpC,WACE,MAAO,CACL7yG,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKif,UAzBkB,kBA6B7B,WACLjf,KAAKgmB,YAAa,IA9BgB,gBAiC5B,WACFhmB,KAAKgoB,WACPhoB,KAAKuuD,OAAM,KAnCqB,qBAuC5B,WACN,OAAoB,MAAhBvuD,KAAKgmH,SAIFhmH,KAAKgmH,QAAQ15G,OAAO,aA5CO,oBA+C5B,WACNtM,KAAKuuD,OAAM,KAhDuB,mBAmD5B,SAAMxvC,GACZ/e,KAAK+e,aAAeA,EACpB/e,KAAKgmB,YAAa,IArDgB,uBAwD5B,WACNhmB,KAAK+e,aAAe,KACpB/e,KAAK2lH,cAAgB3lH,KAAK3B,QA1DQ,sBA8D5B,WAEN,OADA2B,KAAK4lH,aAAe5lH,KAAK3B,QAAU2B,KAAK2lH,cACjC3lH,KAAK+e,eAhEsB,kCAmE5B,SAAqBrf,GAC3BM,KAAKgmH,QAAUtmH,EAAEuH,cApEiB,GAASpE,cA8D7Cb,gBADCqjE,gBAAK,WACN,8BA9DmB0gD,GAAiB,gBATrC5+G,gBAAU,CACTL,WAAY,CACVwY,sBACAM,oCACAkK,0BACAG,kCACAC,kCAGiB67F,cCvD2Y,MCO5Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIhmH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,WAAW,CAACG,MAAM,CAAC,OAAS,OAAO,MAAQ,MAAM,aAAa,MAAM,YAAY,MAAM,MAAQP,EAAIW,MAAM,QAAUX,EAAIimB,YAAYhe,GAAG,CAAC,iBAAiB,SAASC,GAAQlI,EAAIimB,WAAW/d,GAAQ,QAAUlI,EAAIomC,UAAU,OAASpmC,EAAI2tD,WAAW,CAACvtD,EAAG,gBAAgB,CAACG,MAAM,CAAC,MAAQP,EAAI1B,MAAM,OAAS,CAAEwR,KAAM,WAAY+5C,UAAW,IAAK5hD,GAAG,CAAC,eAAe,SAASC,GAAQlI,EAAI1B,MAAM4J,GAAQ,YAAclI,EAAIkmH,yBAAyB,CAAC9lH,EAAG,eAAe,CAACA,EAAG,qBAAqB,IAAI,GAAGA,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAImlH,gBAAgB,SAAW,QAAQ,QAAU,YAAY/kH,EAAG,kBAAkB,CAACG,MAAM,CAAC,OAAS,WAAW,QAAUP,EAAIguD,oBAAoB,SAAW,QAAQ,QAAU,aAAa,IAAI,IACh0B,GAAkB,G,sdCsDtB,IAAqBm4D,GAAiB,4CAAtC,iD,0BACmB,EAAAxlH,MAAgB,0BAEzB,EAAAilH,cAAwB,EACxB,EAAA3/F,YAAsB,EAEvB,EAAAjH,aAA+B,KAC/B,EAAA4zC,SAA4C,KAC5C,EAAAt0D,MAAgB,EAChB,EAAAunH,cAAwB,EATjC,EAAsC,oDAWpC,WACE,MAAO,CACLj6G,KAAM,KACNkE,KAAM,UACN8O,YAAa,YACbkD,QAAS7hB,KAAKw+G,MAhBkB,+BAoBpC,WACE,MAAO,CACL7yG,KAAM,SACNkE,KAAM,SACN8O,YAAa,YACbkD,QAAS7hB,KAAKif,UAzBkB,kBA6B7B,WACLjf,KAAKgmB,YAAa,IA9BgB,gBAiC5B,WACFhmB,KAAKgoB,WACPhoB,KAAKuuD,OAAM,KAnCqB,qBAuC5B,WACN,OAAsB,MAAlBvuD,KAAKmmH,WAIFnmH,KAAKmmH,UAAU75G,OAAO,aA5CK,oBA+C5B,WACNtM,KAAKuuD,OAAM,KAhDuB,mBAmD5B,SAAMxvC,GACZ/e,KAAK+e,aAAeA,EACpB/e,KAAKgmB,YAAa,IArDgB,uBAwD5B,WACNhmB,KAAK+e,aAAe,KACpB/e,KAAK2lH,cAAgB3lH,KAAK3B,QA1DQ,sBA8D5B,WAEN,OADA2B,KAAK4lH,aAAe5lH,KAAK3B,QAAU2B,KAAK2lH,cACjC3lH,KAAK+e,eAhEsB,oCAmE5B,SAAuBrf,GAC7BM,KAAKmmH,UAAYzmH,EAAEuH,cApEe,GAASpE,cA8D7Cb,gBADCqjE,gBAAK,WACN,8BA9DmB6gD,GAAiB,gBATrC/+G,gBAAU,CACTL,WAAY,CACVolB,8BACA5M,sBACAM,oCACAqK,kCACAC,kCAGiBg8F,cCvD4Y,MCO7Z,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,8dCqPf,IAAqBE,GAAiB,4CAAtC,iD,0BACmB,EAAA7B,qBAA+B,uBAC/B,EAAAj0G,cAA+B,IAAI/E,GACnC,EAAAk5G,mBAA6B,qBAC7B,EAAAE,qBAA+B,uBAC/B,EAAAE,qBAA+B,uBAC/B,EAAAwB,uBAAiD,IAAIxvD,GAE9D,EAAAyvD,gBAA0B,EAC1B,EAAA56G,QAA0B,GAE1B,EAAAtD,cAA6B,KAC7B,EAAAG,cAA6B,KAC7B,EAAAV,eAA8B,KAC9B,EAAAy8G,gBAAiC,KACjC,EAAAD,sBAAuC,KAfjD,EAAsC,+CAiBpC,WACE,MAAO,CACLlhH,MAAOnD,KAAKumH,UACZC,eAAe,KApBiB,qBAwBpC,WAAqB,WACnB,OAAO,IAAI/1G,KAAY,CACrB9R,IAAK,oBACLgS,KAAM,SAAAjE,GAAO,OAAI,EAAK8P,aAAa9P,QA3BH,iCA+BpC,WACE,OAA8B,MAAvB1M,KAAK6H,gBAAgD,MAAtB7H,KAAKoI,eAAuD,MAA9BpI,KAAKqkH,wBAhCvC,mCAmCpC,WACE,OAAOrkH,KAAKuP,MAAMvP,KAAKukH,wBApCW,iCAuCpC,WACE,OAAOvkH,KAAKuP,MAAMvP,KAAKykH,sBAxCW,mCA2CpC,WACE,OAAOzkH,KAAKuP,MAAMvP,KAAK2kH,wBA5CW,mCA+CpC,WACE,OAAO3kH,KAAKuP,MAAMvP,KAAK6kH,wBAhDW,mFAmD5B,WAAmBn4G,GAAnB,oFACqB,MAAvB1M,KAAK6H,eADH,gCAES7H,KAAKsQ,cAAcm2G,mBAAmBzmH,KAAK6H,eAAgB6E,GAFpE,wEAKChI,QAAQ5E,QAAa,KALtB,gDAnD4B,8FA4D5B,WACDE,KAAKsmH,gBACRtmH,KAAK0mH,qBA9D2B,oCAmE5B,WACD1mH,KAAKsmH,gBACRtmH,KAAK0mH,qBArE2B,qCAyE5B,WAAuB,WAC7B1mH,KAAKsmH,gBAAiB,EACtBtmH,KAAK2mH,eACL3mH,KAAK4mH,aAAa,GAClB5mH,KAAK0mH,mBAEL1mH,KAAK01D,WAAU,WACb,EAAK4wD,gBAAiB,OAhFU,4CAqF5B,WACDtmH,KAAKsmH,gBACRtmH,KAAK0mH,qBAvF2B,sCA4F5B,WACD1mH,KAAKsmH,gBACRtmH,KAAK0mH,qBA9F2B,0BAkG5B,WACe,MAAjB1mH,KAAKue,UACPve,KAAKue,SAASC,gBApGkB,0BAwG5B,SAAasU,GACE,MAAjB9yB,KAAKue,UACPve,KAAKue,SAASikF,UAAU1vE,KA1GQ,8EA8GpC,8GACQ9yB,KAAK2d,WADb,gDA9GoC,wIAkH5B,8GACe3d,KAAKsQ,cAAc+mD,sBADlC,OACNr3D,KAAK0L,QADC,uDAlH4B,gJAsH5B,4GACqB,MAAvB1L,KAAK6H,eADH,iEAKA7H,KAAKsQ,cAAcu2G,cAAc7mH,KAAK6H,eAAgB7H,KAAKuI,cAAevI,KAAKoI,cAAepI,KAAKqkH,sBAAuBrkH,KAAKskH,iBAClIj+G,MAAK,SAAAxJ,GACJ,IAAIunG,EAAoB,EAAK0iB,qBAAqBjqH,EAAOkqH,SACrD1kG,EAAmB,EAAK2kG,oBAAoBnqH,EAAOmoD,QACnDiiE,EAA2B,EAAKC,4BAA4BrqH,EAAOsqH,UACnE1wD,EAAsB,EAAK2wD,uBAAuBvqH,EAAOgjG,WAE7D,EAAKwnB,4BAA4B,UAAWjjB,GAC5C,EAAKijB,4BAA4B,UAAWhlG,GAC5C,EAAKglG,4BAA4B,gBAAiBJ,GAClD,EAAKI,4BAA4B,YAAa5wD,MAf5C,gDAtH4B,2FAyI5B,SAAqB9kD,GAC3B,MAAO,CACLxO,MAAOwO,EACPsJ,UAAU,EACV6K,SAAU,IACVuD,KAAM,CAAC,CAAEi+F,SAAU,YAAaC,MAAM,OA9IN,iCAkJ5B,SAAoBj6G,GAC1B,MAAO,CACLnK,MAAOmK,EACP2N,UAAU,EACV6K,SAAU,IACVuD,KAAM,eAvJ0B,yCA2J5B,SAA4Bm+F,GAClC,MAAO,CACLrkH,MAAOqkH,EACPvsG,UAAU,EACV6K,SAAU,IACVuD,KAAM,mBAhK0B,oCAoK5B,SAAuBqO,GAC7B,MAAO,CACLv0B,MAAOu0B,EACPzc,UAAU,EACV6K,SAAU,IACVuD,KAAM,iBAzK0B,yCA6K5B,SAA4Bo+F,EAAkBC,GACpD1nH,KAAK2nH,wBAAwBF,EAAU,oBAAqBC,KA9K1B,qCAiL5B,SAAwBloH,EAAYooH,EAAoBC,GACzC,MAAjB7nH,KAAKue,UACPve,KAAKue,SAASugC,aAAat/C,EAAIooH,EAAYC,KAnLX,6BAuL5B,SAAgBl1D,GACtB,IAAI0yD,EAA2B,KAEf,MAAZ1yD,GAA4C,MAAxBA,EAASgI,aAC/B0qD,EAAc1yD,EAASgI,YACvB36D,KAAK8nH,sBAAsBn1D,SAAWA,IAEtC0yD,EAAcrlH,KAAK+nH,yBACnB/nH,KAAK8nH,sBAAsBn1D,SAAW,MAGxC3yD,KAAK8nH,sBAAsBzpH,MAAQgnH,EACnCrlH,KAAK8nH,sBAAsB1vE,SAnMO,oCAsM5B,WACN,IAAI58C,EAAOwE,KAAKgoH,kBAChB,OAAe,MAARxsH,EAAeA,EAAKm/D,YAAc,OAxMP,2CA2M5B,YAC0C,IAA5C36D,KAAK8nH,sBAAsB/oG,cAA0B/e,KAAK8nH,sBAAsBlC,cAAoD,MAApC5lH,KAAK8nH,sBAAsBzpH,QAIpF,MAAvC2B,KAAK8nH,sBAAsBn1D,SAC7B3yD,KAAKioH,kBAAkBjoH,KAAK8nH,sBAAsBn1D,SAASxI,kBAAmBnqD,KAAK8nH,sBAAsBzpH,OACzE,MAAvB2B,KAAK6H,gBAAgD,MAAtB7H,KAAKoI,eAAuD,MAA9BpI,KAAKqkH,uBAC3ErkH,KAAKkoH,sBAAsBloH,KAAK6H,eAAgB7H,KAAKoI,cAAepI,KAAKqkH,sBAAuBrkH,KAAK8nH,sBAAsBzpH,UAnN3F,wFAuN5B,WAAwBixD,EAAkB+1D,GAA1C,qGACFtgG,EAA2C,CAC7C41C,YAAa0qD,GAGf9+G,IAAO,4BALD,SAOAvG,KAAKqmH,uBAAuB4B,kBAAkB34D,EAAYvqC,GAC7D1e,MAAK,SAAAxJ,GACJ,EAAKsrH,sBAAsBtrH,GAC3B0J,IAAO,qCAAsC,cAV3C,gDAvN4B,wJAqO5B,WAA4ByF,EAAgBa,EAAeC,EAAuBu4G,GAAlF,qGACFtgG,EAA+C,CACjDlZ,SAAUG,EACVyB,QAASZ,EACT2uD,cAAe1uD,EACf6tD,YAAa0qD,GAGf9+G,IAAO,4BARD,SAUAvG,KAAKqmH,uBAAuB6B,sBAAsBnjG,GACrD1e,MAAK,SAAAxJ,GACJ,EAAKs+B,kBACL50B,IAAO,EAAK6hH,+BAA+BvrH,GAAS,cAblD,gDArO4B,+FAsP5B,SAAkB81D,GACxB,IAAI7lD,EAAwBqC,GAAOk3C,MAEnB,MAAZsM,GAA8C,MAA1BA,EAAS6I,eAC/B1uD,EAAgB6lD,EAAS6I,cACzBx7D,KAAKqoH,wBAAwB11D,SAAWA,IAExC7lD,EAAgB9M,KAAKsoH,2BACrBtoH,KAAKqoH,wBAAwB11D,SAAW,MAG1C3yD,KAAKqoH,wBAAwBhqH,MAAQyO,EACrC9M,KAAKqoH,wBAAwBjwE,SAlQK,sCAqQ5B,WACN,IAAI58C,EAAOwE,KAAKgoH,kBAChB,OAAe,MAARxsH,EAAeA,EAAKggE,cAAgBrsD,GAAOk3C,QAvQhB,6CA0Q5B,YAC4C,IAA9CrmD,KAAKqoH,wBAAwBtpG,cAA0B/e,KAAKqoH,wBAAwBzC,eAI3C,MAAzC5lH,KAAKqoH,wBAAwB11D,SAC/B3yD,KAAKuoH,oBAAoBvoH,KAAKqoH,wBAAwB11D,SAASxI,kBAAmBnqD,KAAKqoH,wBAAwBhqH,OAC/E,MAAvB2B,KAAK6H,gBAAgD,MAAtB7H,KAAKoI,eAAuD,MAA9BpI,KAAKqkH,uBAC3ErkH,KAAKwoH,wBAAwBxoH,KAAK6H,eAAgB7H,KAAKoI,cAAepI,KAAKqkH,sBAAuBrkH,KAAKqoH,wBAAwBhqH,UAlR/F,0FAsR5B,WAA0BixD,EAAkBxiD,GAA5C,qGACFiY,EAA6C,CAC/Cy2C,cAAe1uD,GAGjBvG,IAAO,8BALD,SAOAvG,KAAKqmH,uBAAuBkC,oBAAoBj5D,EAAYvqC,GAC/D1e,MAAK,SAAAxJ,GACJ,EAAKsrH,sBAAsBtrH,GAC3B0J,IAAO,uCAAwC,WAC/C,EAAKkiH,6BAXH,gDAtR4B,0JAqS5B,4GACqB,MAAvBzoH,KAAK6H,eADH,iEAKA7H,KAAKsQ,cAAco4G,qBAAqB1oH,KAAK6H,eAAgB7H,KAAKuI,cAAevI,KAAKoI,cAAepI,KAAKskH,iBAC7Gj+G,MAAK,SAAAxJ,GACJ,IAAIoqH,EAA2B,EAAKC,4BAA4BrqH,EAAOsqH,UACvE,EAAKE,4BAA4B,gBAAiBJ,MARhD,gDArS4B,uJAiT5B,WAA8Bj7G,EAAkBa,EAAiBC,EAAuB67G,GAAxF,qGACF5jG,EAAiD,CACnDlZ,SAAUG,EACVyB,QAASZ,EACT2uD,cAAe1uD,EACf87G,iBAAkBD,GAGpBpiH,IAAO,8BARD,SAUAvG,KAAKqmH,uBAAuBmC,wBAAwBzjG,GACvD1e,MAAK,SAAAxJ,GACJ,EAAKs+B,kBACL50B,IAAO,EAAK6hH,+BAA+BvrH,GAAS,WACpD,EAAK4rH,6BAdH,gDAjT4B,+FAmU5B,SAAkB91D,GACxB,IAAI4R,EAAwB,EAEZ,MAAZ5R,GACF4R,EAAgB5R,EAASuI,cACzBl7D,KAAK6oH,wBAAwBl2D,SAAWA,IAExC4R,EAAgBvkE,KAAK8oH,2BACrB9oH,KAAK6oH,wBAAwBl2D,SAAW,MAG1C3yD,KAAK6oH,wBAAwBxqH,MAAQkmE,EACrCvkE,KAAK6oH,wBAAwBzwE,SA/UK,sCAkV5B,WACN,IAAI58C,EAAOwE,KAAKgoH,kBAChB,OAAe,MAARxsH,EAAeA,EAAK0/D,cAAgB,IApVT,sGAuV5B,iHAC4C,IAA9Cl7D,KAAK6oH,wBAAwB9pG,cAA0B/e,KAAK6oH,wBAAwBjD,aADlF,oDAKuC,MAAzC5lH,KAAK6oH,wBAAwBl2D,SAL3B,uBAMAnzD,EAAKQ,KAAK6oH,wBAAwBl2D,SAASxI,kBAC3CplC,EAAqC,CACvCm2C,cAAel7D,KAAK6oH,wBAAwBxqH,OAG9CkI,IAAO,gCAXH,SAaEvG,KAAKqmH,uBAAuB0C,oBAAoBvpH,EAAIulB,GACvD1e,MAAK,SAAAxJ,GACJ,EAAKsrH,sBAAsBtrH,GAC3B0J,IAAO,yCAA0C,cAhBjD,gDAvV4B,iGA4W5B,SAA2BosD,GACjC,IAAI0yD,EAA2B,KAEf,MAAZ1yD,GAA6C,MAAzBA,EAASq2D,cAC/B3D,EAAc1yD,EAASgI,YACvB36D,KAAKipH,wBAAwBt2D,SAAWA,IAExC0yD,EAAcrlH,KAAK+nH,yBACnB/nH,KAAKipH,wBAAwBt2D,SAAW,MAG1C3yD,KAAKipH,wBAAwB5D,YAAcA,EAC3CrlH,KAAKipH,wBAAwB7wE,SAxXK,6CA2X5B,YAC4C,IAA9Cp4C,KAAKipH,wBAAwBlqG,cAA+D,MAAtC/e,KAAKipH,wBAAwB5qH,QAI1C,MAAzC2B,KAAKipH,wBAAwBt2D,SAC/B3yD,KAAKkpH,kBAAkBlpH,KAAKipH,wBAAwBt2D,SAASxI,kBAAmBnqD,KAAKipH,wBAAwB5qH,OAC7E,MAAvB2B,KAAK6H,gBAAgD,MAAtB7H,KAAKoI,eAAuD,MAA9BpI,KAAKqkH,uBAC3ErkH,KAAKmpH,sBAAsBnpH,KAAK6H,eAAgB7H,KAAKoI,cAAepI,KAAKqkH,sBAAuBrkH,KAAKipH,wBAAwB5qH,UAnY7F,wFAuY5B,WAAwBixD,EAAkB85D,GAA1C,qGACFrkG,EAA2C,CAC7CwgG,aAAc6D,GAGhB7iH,IAAO,6BALD,SAOAvG,KAAKqmH,uBAAuB6C,kBAAkB55D,EAAYvqC,GAC7D1e,MAAK,SAAAxJ,GACJ,EAAKsrH,sBAAsBtrH,GAC3B0J,IAAO,sCAAuC,cAV5C,gDAvY4B,wJAqZ5B,WAA4ByF,EAAgBa,EAAeC,EAAuBs8G,GAAlF,qGACFrkG,EAA+C,CACjDlZ,SAAUG,EACVyB,QAASZ,EACT2uD,cAAe1uD,EACfy4G,aAAc6D,GAGhB7iH,IAAO,6BARD,SAUAvG,KAAKqmH,uBAAuB8C,sBAAsBpkG,GACrD1e,MAAK,SAAAxJ,GACJ,EAAKs+B,kBACL50B,IAAO,EAAK6hH,+BAA+BvrH,GAAS,cAblD,gDArZ4B,6FAsa5B,WAA2C,IAA3BwsH,IAA2B,yDAC5B,MAAjBrpH,KAAKue,UACPve,KAAKue,SAAS2hE,QAAQmpC,KAxaU,mCA4a5B,SAAsB12D,GAC5B3yD,KAAKumH,UAAUjqH,KAAK,CAClB,CACEuT,KAAM,SACNrU,KAAMm3D,EACNh0D,IAAKg0D,EAASxI,uBAjbgB,6BAsb5B,WACN,GAAqB,MAAjBnqD,KAAKue,SACP,OAAO,KAGT,IAAIkP,EAAOztB,KAAKue,SAAS5J,iBACzB,OAAI8Y,EAAKzxB,OAAS,GAAqB,MAAhByxB,EAAK,GAAGjyB,KACtBiyB,EAAK,GAAGjyB,KAGV,OAhc2B,4CAmc5B,SAA+BqB,GACrC,IAAIysH,EAAoD,IAAnCzsH,EAAO0sH,wBAAgCp6G,GAAOk3C,MAAQ,IACvEmjE,EAAmBC,2BAAa5sH,EAAO0sH,wBAAyB,cACpE,MAAO,wBAAP,OAA+BC,EAA/B,qBAA4DF,EAA5D,OAtckC,mCAyc5B,SAAsB5pH,GAC5BM,KAAKue,SAAW7e,EAAEuH,YA1cgB,iCA6c5B,SAAoBvH,GAC1BA,EAAE2U,MAAMvE,QAAU,kDA9cgB,2BAid5B,WACN,OAAO5Q,OAAOyT,YAAc,QAldM,GAAS9P,cA4D7Cb,gBADCuW,gBAAM,kBACP,4CAOAvW,gBADCuW,gBAAM,kBACP,4CAkBAvW,gBADCuW,gBAAM,0BACP,oDAOAvW,gBADCuW,gBAAM,oBACP,8CA5FmB6tG,GAAiB,gBAfrCj/G,eAAU,CACTL,WAAY,CACVq+G,qBACAvsG,wBACAD,wBACA+Q,4BACA1Q,wBACAK,8BACAH,0BACAotE,8BACAo/B,mBACAK,qBACAG,yBAGiBE,cCvQ2Y,MCQ5Z,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,8dCAf,IAAqBsD,GAAa,yIAAS7mH,cAAtB6mH,GAAa,gBANjCviH,eAAU,CACTL,WAAY,CACVs/G,qBACArtG,6BAGiB2wG,cCnBoX,MCOrY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QC6BTC,GAAc,sBACd77E,GAActpC,uBAAUnB,IAAcF,GAEtCymH,GAAY,CAChB,CACEj+G,KAAM,OACNpL,KAAM,QACN+6B,KAAM,QAER,CACE3vB,KAAM,cACN2vB,KAAM,aACNuuF,UAAU,EACVlvG,MAAO,CACL,CACEhP,KAAM,sBACNpL,KAAM,uBACN+6B,KAAM,UAER,CACE3vB,KAAM,uBACNpL,KAAM,2BACN+6B,KAAM,YAIZ,CACE3vB,KAAM,mBACN2vB,KAAM,aACNuuF,UAAU,EACVlvG,MAAO,CACL,CACEhP,KAAM,SACNpL,KAAM,UACN+6B,KAAM,aAER,CACE3vB,KAAM,iBACNpL,KAAM,kBACN+6B,KAAM,WAER,CACE3vB,KAAM,WACNpL,KAAM,YACN+6B,KAAM,SAER,CACE3vB,KAAM,WACNpL,KAAM,YACN+6B,KAAM,WAER,CACE3vB,KAAM,cACNpL,KAAM,eACN+6B,KAAM,eAER,CACE3vB,KAAM,UACNpL,KAAM,kBACN+6B,KAAM,WAIZ,CACE3vB,KAAM,WACNpL,KAAM,gBACN+6B,KAAM,WAER,CACE3vB,KAAM,iBACNpL,KAAM,oBACN+6B,KAAM,UAsBR,CACE3vB,KAAM,aACNpL,KAAM,cACN+6B,KAAM,SAER,CACE3vB,KAAM,sBACNpL,KAAM,uBACN+6B,KAAM,QAER,CACE3vB,KAAM,cACNpL,KAAM,eACN+6B,KAAM,OAER,CACE3vB,KAAM,qBACNpL,KAAM,sBACN+6B,KAAM,QAER,CACE3vB,KAAM,oBACNpL,KAAM,qBACN+6B,KAAM,SAER,CACE3vB,KAAM,oBACNpL,KAAM,qBACN+6B,KAAM,WAER,CACE3vB,KAAM,YACNpL,KAAM,aACN+6B,KAAM,SAER,CACE3vB,KAAM,eACNpL,KAAM,gBACN+6B,KAAM,eAER,CACE3vB,KAAM,oBACNpL,KAAM,qBACN+6B,KAAM,WAER,CACE3vB,KAAM,eACNpL,KAAM,qBACN+6B,KAAM,YAER,CACE3vB,KAAM,iBACNpL,KAAM,kBACN+6B,KAAM,QAER,CACE3vB,KAAM,iBACNpL,KAAM,kBACN+6B,KAAM,SAER,CACE3vB,KAAM,eACNpL,KAAM,gBACN+6B,KAAM,OAER,CACE3vB,KAAM,OACNpL,KAAM,QACN+6B,KAAM,SAIJwuF,GAAc,CAAEF,UAAWA,GAAWG,WAAW,GAEvDlnH,aAAIC,IAAIknH,QAER,IAAMC,GAAS,IAAID,OAAO,CACxBE,OAAQ,CACN,CACE3pH,KAAM,QACN3C,KAAM,OACNusH,KAAM,CAAEC,cAAc,GACtBtjH,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAShgB,IAEXojH,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,gBACN3C,KAAM,eACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,kBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS2lB,IAEXy9E,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,uBACN3C,KAAM,sBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,yBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS5X,IAEXg7G,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,2BACN3C,KAAM,0BACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,0BAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASsvE,IAEX8zB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,UACN3C,KAAM,cACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,YAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASumD,IAEX68C,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,kBACN3C,KAAM,iBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,oBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASmlF,IAEXie,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,YACN3C,KAAM,gBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,cAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASymD,IAEX28C,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,YACN3C,KAAM,WACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,cAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASoxF,IAEXgS,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,eACN3C,KAAM,cACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,iBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS80F,IAEXsO,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,kBACN3C,KAAM,iBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,aAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASo+E,IAEXglB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,gBACN3C,KAAM,eACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,kBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS+xF,IAEXqR,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,oBACN3C,KAAM,mBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,oBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASmQ,IAEXizF,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,uBACN3C,KAAM,sBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,yBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASiiE,IAEXmhC,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,iCACN3C,KAAM,2BACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,8BAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASgjE,IAEXogC,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,oBACN3C,KAAM,mBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,sBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASkT,IAEXkwF,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,mBACN3C,KAAM,kBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,qBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS4W,IAEXwsF,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,iBACN3C,KAAM,gBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,wBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASoV,IAEXguF,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,6BACN3C,KAAM,iBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,iBAAkB/N,KAAM,oBAGpCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS42E,IAEXwsB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,iCACN3C,KAAM,qBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,qBAAsB/N,KAAM,wBAGxCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASjH,IAEXqqG,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,qBACN3C,KAAM,oBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,uBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASg4E,IAEXorB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,gBACN3C,KAAM,eACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,kBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASwO,IAEX40F,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,qBACN3C,KAAM,oBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,uBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASwyF,IAEX4Q,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,aACN3C,KAAM,QACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,iBAAkB/N,KAAM,kBAChC,CAAE+N,KAAM,gBAAiB/N,KAAM,WAGnCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASm2E,IAEXitB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,SACN3C,KAAM,wBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,2BAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS0vE,IAEX0zB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,cACN3C,KAAM,aACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,gBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS+/B,IAEXqjE,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,wBACN3C,KAAM,mBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,mBAAoB/N,KAAM,eAClC,CAAE+N,KAAM,sBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS80D,IAEXsuC,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,gBACN3C,KAAM,WACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,mBAAoB/N,KAAM,iBAClC,CAAE+N,KAAM,mBAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASogE,IAEXgjC,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,qBACN3C,KAAM,oBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,oBAAqB/N,KAAM,uBAGvCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASsmE,IAEX88B,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,iCACN3C,KAAM,2BACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,oBAAqB/N,KAAM,qBACnC,CAAE+N,KAAM,yBAA0B/N,KAAM,8BAG5CkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASsrE,IAEX83B,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,sBACN3C,KAAM,qBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,qBAAsB/N,KAAM,wBAGxCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASk6E,IAEXkpB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,eACN3C,KAAM,cACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,cAAe/N,KAAM,iBAGjCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASy7E,IAEX2nB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,aACN3C,KAAM,YACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,YAAa/N,KAAM,eAG/BkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS84F,IAEXsK,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,qBACN3C,KAAM,oBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,oBAAqB/N,KAAM,uBAGvCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS08F,IAEX0G,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,kBACN3C,KAAM,iBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,iBAAkB/N,KAAM,oBAGpCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASwiG,IAEXY,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,kBACN3C,KAAM,iBACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,iBAAkB/N,KAAM,oBAGpCkJ,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAAS83F,IAEXsL,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,QACN3C,KAAM,OACNusH,KAAM,CACJC,cAAc,EACdG,YAAa,CACX,CAAE5+G,KAAM,UAGZ7E,WAAY,CACV+6F,OAAQwoB,yBACRnjG,QAASo4E,IAEXgrB,MAAO,CACLzoB,OAAQioB,KAGZ,CACEvpH,KAAM,SACN3C,KAAM,QACN4sH,MAAO,CAAC,YAAa,mBACrBL,KAAM,CAAEC,cAAc,GACtBtjH,WAAY,CACV+6F,OAAQ4oB,gBACRvjG,QAASwjG,YAEXJ,MAAO,CACLpjG,QAAS,CAAEyiG,YAAaA,GAAagB,eAAe,GACpDC,YAAa,UAGjB,CACErqH,KAAM,IACNsqH,SAAU,SAEZ,CACEtqH,KAAM,IACNsqH,SAAU,YAKhBZ,GAAOa,YAAW,SAACrqC,EAAIxrE,EAAMyrE,GAK3B,GAJgB,UAAZD,EAAG7iF,MAAoBkwC,GAAY24D,kBAAkBskB,eACvDrqC,EAAK,CAAE9iF,KAAM,SAGX6iF,EAAGuqC,QAAQtgH,MAAK,SAAAugH,GAAM,OAAIA,EAAOd,KAAKC,gBACxC,GAAKt8E,GAAY24D,kBAAkBskB,cASjCrqC,QATgD,CAEhD,IAAIwqC,EAAaC,oCAAuB1qC,GAExCC,EAAK,CACH9iF,KAAM,QACNsP,MAAOg+G,SAMXxqC,OAIWupC,UC12BfpnH,aAAIC,IAAImsC,EAAQ,SAEhBpsC,aAAIe,OAAO,YAAY,SAASvF,GAC9B,IAAM+lE,EAAMC,WAAWhmE,GACvB,OAAKimE,MAAMF,GAOJ/lE,EANE+lE,EAAII,oBAAen3D,EAAW,CACnChN,MAAO,WACPy8B,SAAU,WAOhBj6B,aAAIe,OAAO,oBAAoB,SAASvF,GACtC,IAAM+lE,EAAMC,WAAWhmE,GAEvB,IAAKimE,MAAMF,GAAM,CACf,IAAI/vC,EAAM+vC,EAAII,oBAAen3D,EAAW,CACtChN,MAAO,WACPy8B,SAAU,QAKZ,OAFAzI,EAAMA,EAAIwrB,QAAQ,OAAQ,IAEnBxrB,EAGT,OAAOh2B,KAGTwE,aAAIe,OAAO,uBAAuB,SAASvF,GAA6C,IAAlC+sH,EAAkC,wDAChFhnD,EAAMC,WAAWhmE,GACvB,GAAW,IAAR+lE,EACD,MAAO,IAEJ,IAAKE,MAAMF,GAAM,CACpB,IAAI/vC,EAAM+vC,EAAII,oBAAen3D,EAAW,CACtChN,MAAO,WACPy8B,SAAU,QAUZ,OANEzI,EADC+2F,EACK/2F,EAAIwrB,QAAQ,OAAQ,OAGpBxrB,EAAIwrB,QAAQ,OAAQ,IAGrBxrB,EAGT,OAAOh2B,KAGTwE,aAAIe,OAAO,YAAY,SAASvF,GAC9B,GAAa,MAATA,GAAkC,kBAAVA,EAC1B,OAAOA,EAGT,IAAMgtH,EAAchtH,EACpB,OAAOgtH,EAAY3zG,MAAM,KAAKrY,KAAI,SAAAjC,GAAC,OAAIA,EAAE,MAAI0G,KAAK,IAAIkgE,iBClDxDnhE,aAAIyoH,OAAOC,eAAgB,EAG3B,wCAAC,sHACO,IAAIC,kBAAaroH,GAAOsoH,gBAD/B,OAGKC,EAAc,IAAI7oH,aAAI,CACxBonH,UACA9mH,QACA0/D,OAAQ,SAAA8oD,GAAC,OAAIA,EAAEC,MAGjBF,EAAYG,OAAO,QAEb/9E,EAActpC,uBAAUnB,IAAcF,GACxC2qC,EAAYg+E,iBACdJ,EAAYv+F,MAAMlH,MAAM,iBAb3B,0CAAD,I,gFChBA,W,kCCAA,W,yDCAA,W,kCCAA,W,yDCAA,W,yDCAA,W,kCCAA,W,gFCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,gFCAA,W,kCCAA,W,kCCAA,W,kCCAA,W","file":"js/app.37e86768.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-emailer-wizards.vue?vue&type=style&index=1&id=083318d3&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invoice-lookup-grid.vue?vue&type=style&index=0&id=7c18342a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-dialog.vue?vue&type=style&index=0&id=8d394b84&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-invoice-file.vue?vue&type=style&index=0&id=dcc1fc02&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service-grid.vue?vue&type=style&index=0&id=24ed7663&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=style&index=0&id=53264f59&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-table.vue?vue&type=style&index=0&id=6c2b7cf7&prod&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-form.vue?vue&type=style&index=0&id=68b4178a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-report.vue?vue&type=style&index=0&id=1eb9e9bc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-notes.vue?vue&type=style&index=0&id=dfb915b6&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-text-review.vue?vue&type=style&index=0&id=57e11fc1&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user-assigned-clients.vue?vue&type=style&index=0&id=7796780c&prod&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service.vue?vue&type=style&index=0&id=1cb30839&prod&lang=scss&scope=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-mass-adder.vue?vue&type=style&index=0&id=5ee9bdc4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing-browse-mode-selection-dialog.vue?vue&type=style&index=0&id=d8bb848a&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases.vue?vue&type=style&index=0&id=41a1acfa&prod&scoped=true&lang=css&\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"73332\",\n\t\"./en-il.js\": \"73332\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auto-text-dialog.vue?vue&type=style&index=0&id=09c18504&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./help.vue?vue&type=style&index=0&id=2fc9200d&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-emailer-wizards.vue?vue&type=style&index=0&id=083318d3&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-column.vue?vue&type=style&index=0&id=d6191aa4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-summary.vue?vue&type=style&index=0&id=0d2b7676&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=style&index=0&id=68018550&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-new-agent.vue?vue&type=style&index=0&id=40417e89&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-response.vue?vue&type=style&index=0&id=2e298359&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filing-type.vue?vue&type=style&index=0&id=5666be66&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-notes.vue?vue&type=style&index=0&id=4742c6a4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-template-editor.vue?vue&type=style&index=0&id=c00c8b20&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-details.vue?vue&type=style&index=0&id=4f367309&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-update-fee-sheets.vue?vue&type=style&index=0&id=b943908c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./link-new-agent.vue?vue&type=style&index=0&id=492ae608&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./parent-fee-sheet-row-details.vue?vue&type=style&index=0&id=66820884&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-list.vue?vue&type=style&index=0&id=5f5714a2&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-clients-summary.vue?vue&type=style&index=0&id=22cf9071&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-client.form.vue?vue&type=style&index=0&id=4ba18fb6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infraction-popover.vue?vue&type=style&index=0&id=52833e89&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-line-items.vue?vue&type=style&index=1&id=107ab624&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-rule-add-edit.vue?vue&type=style&index=0&id=73996540&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./claimed-work.vue?vue&type=style&index=0&id=628698de&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./coding.vue?vue&type=style&index=0&id=d843b498&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./text-popup.vue?vue&type=style&index=0&id=18f72b10&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-detail.vue?vue&type=style&index=0&id=af080416&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./e-billing.vue?vue&type=style&index=0&id=7ffe6a44&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-snapshot.vue?vue&type=style&index=0&id=79a5532c&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-invoice-file.vue?vue&type=style&index=1&id=dcc1fc02&prod&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infractions.vue?vue&type=style&index=0&id=53ed9690&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-form.vue?vue&type=style&index=0&id=4f503a29&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment_order-setup-dialog.vue?vue&type=style&index=0&id=84dcce7c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments.vue?vue&type=style&index=0&id=24ae375f&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-info-edit.vue?vue&type=style&index=0&id=ea0c58e2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./report-on-demand.vue?vue&type=style&index=0&id=6caf5e36&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-uploads.vue?vue&type=style&index=0&id=1bc77108&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-report.vue?vue&type=style&index=0&id=2fb940bc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-totals.vue?vue&type=style&index=0&id=1a0c3999&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-grid.vue?vue&type=style&index=0&id=7f320d26&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-page.vue?vue&type=style&index=0&id=07ec9d2d&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-notes.vue?vue&type=style&index=1&id=dfb915b6&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auto-text-dialog.vue?vue&type=style&index=1&id=09c18504&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch.vue?vue&type=style&index=0&id=b85ef9c8&prod&lang=scss&scoped=true&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=1&id=00115360&prod&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment.vue?vue&type=style&index=0&id=a509c498&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-line-items.vue?vue&type=style&index=0&id=107ab624&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./browse-mode-selection-dialog.vue?vue&type=style&index=0&id=1ac33fa8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-matter-name.vue?vue&type=style&index=0&id=2d006e24&prod&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:(_vm.getFontSize),attrs:{\"id\":\"root\"}},[_c('common-component',{attrs:{\"redirectLocation\":{ path: '/sessionExpired' }}}),_c('div',{class:_vm.cssClasses},[_c('router-view',{attrs:{\"name\":\"layout\",\"title\":_vm.title,\"is-x-small\":_vm.screen.isXSmall,\"is-large\":_vm.screen.isLarge},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('the-footer')]},proxy:true}])},[_c('div',{staticClass:\"content\"},[_c('router-view',{attrs:{\"name\":\"content\"}})],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators';\nimport { UserSetting } from '@/models/UserSetting';\nimport { CookieStorageService } from '@questelservices/common';\nimport { CookieKeysEnum } from '@questelservices/common';\n\n\n@Module({ name: 'user-settings' })\nexport default class UserSettingsModule extends VuexModule {\n private cookieService: CookieStorageService = new CookieStorageService();\n private userSetting: string = \"\";\n\n @Mutation\n protected SET_USER_SETTINGS(settings: UserSetting[]): void {\n this.userSetting = JSON.stringify(settings);\n\n if (settings) {\n this.cookieService.setItem(CookieKeysEnum.UserSettings, this.userSetting);\n } else {\n this.cookieService.removeItem(CookieKeysEnum.UserSettings);\n }\n }\n\n public get userSettings(): string {\n return this.userSetting;\n }\n\n @Action({ commit: 'SET_USER_SETTINGS' })\n public async setUserSettings(settings: UserSetting[]): Promise {\n return settings;\n }\n}\n","import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators';\nimport { MatterOverageDNSDto } from '@/models/audit/MatterOverageDNSDto'\nimport { MatterWorkDto } from '@/models/matter-work/MatterWorkDto';\nimport { MatterWorkMatterDto } from '@/models/matter-work/MatterWorkMatterDto';\n\n@Module({ name: 'matter-work' })\nexport default class MatterWorkModule extends VuexModule {\n private matterOverageDNS: MatterOverageDNSDto[] | null = [];\n private selectedMatter: MatterWorkMatterDto | null = null;\n private selectedMatterId: Guid | null = null;\n private activeBatchIds: Guid[] | null = [];\n\n @Mutation\n protected SET_MATTER_OVERAGE_DNS(matterOverageDNS: MatterOverageDNSDto[]): void {\n this.matterOverageDNS = matterOverageDNS;\n }\n\n public get matterOverageDoNotSend(): MatterOverageDNSDto[] | null {\n return this.matterOverageDNS;\n }\n\n @Action({ commit: 'SET_MATTER_OVERAGE_DNS' })\n public async setMatterOverageDNS(matterOverageDNS: MatterOverageDNSDto[] | null): Promise {\n return matterOverageDNS;\n }\n\n @Mutation\n protected SET_SELECTED_MATTER(matterWorkMatterDto: MatterWorkMatterDto | null): void {\n this.selectedMatter = matterWorkMatterDto;\n }\n\n public get selectMatter(): MatterWorkMatterDto | null {\n return this.selectedMatter;\n }\n\n @Action({ commit: 'SET_SELECTED_MATTER' })\n public async setSelectedMatter(matterWorkMatterDto: MatterWorkMatterDto | null): Promise {\n return matterWorkMatterDto;\n }\n\n @Mutation\n protected SET_SELECTED_MATTER_ID(matterId: Guid | null): void {\n this.selectedMatterId = matterId;\n }\n\n public get selectMatterId(): Guid | null {\n return this.selectedMatterId;\n }\n\n @Action({ commit: 'SET_SELECTED_MATTER_ID' })\n public async setSelectedMatterId(matterId: Guid | null): Promise {\n return matterId;\n }\n\n @Mutation\n protected SET_ACTIVE_BATCH_IDS(batchIds: Guid[] | null): void {\n this.activeBatchIds = batchIds;\n }\n\n public get activeBatches(): Guid[] | null {\n return this.activeBatchIds;\n }\n\n @Action({ commit: 'SET_ACTIVE_BATCH_IDS'})\n public async setActiveBatchIds(batchIds: Guid[] | null): Promise {\n return batchIds;\n } \n}\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport CommonModule from '@questelservices/common';\r\nimport UserSettingsModule from './store/UserSettingsModule'\r\nimport MatterWorkModule from './store/MatterWorkModule'\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n modules: {\r\n CommonModule,\r\n UserSettingsModule,\r\n MatterWorkModule\r\n },\r\n state: {\r\n environment: process.env.NODE_ENV\r\n }\r\n});\r\n\r\nexport default store;\r\n","export interface UserSetting {\n ReportName: string;\n Name: string;\n Value: string;\n SortOrder?: number;\n}\n\nexport enum UserSettingReportName {\n ManualCoding = 'ManualCoding',\n UserPreference = 'UserPreference'\n}\n\nexport enum UserSettingName {\n CaseDisplayOrder = 'CaseDisplayOrder',\n DataTableFontSize = 'DataTableFontSize',\n AutoSkip = 'AutoSkip',\n OrderingMethod = 'OrderingMethod',\n RespondToAgent = 'RespondToAgent',\n ForwardToClient = 'ForwardToClient'\n}\n\nexport enum OrderingMethod {\n ByMatterName = 'By Matter Name',\n ByServiceCost = 'By Service Cost',\n ByTotalCost = 'By Total Cost'\n}\n\n","import { HttpMethodEnum, QuestelServicesClient } from '@questelservices/common';\nimport store from '../store';\nimport { UserSetting } from '@/models/UserSetting';\nimport { UserSettingFilter } from '@/models/UserSettingFilter';\nimport { UserDto } from '@/models/UserDto';\n\nexport class UserService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '');\n }\n\n public async getUserSettings(): Promise {\n return await this.client.get('/api/users/current/settings');\n }\n\n public async getUserSettingsWithFilter(filter: UserSettingFilter): Promise {\n const queryString = Object.keys(filter).map((key) => key + '=' + filter[key]).join('&');\n\n return await this.client.get(`/api/users/current/settings?${queryString}`);\n }\n\n public async insertUserSettings(data: UserSetting[], filter: UserSettingFilter): Promise {\n const queryString = Object.keys(filter).map((key) => key + '=' + filter[key]).join('&');\n\n return await this.client.postJson(`/api/users/current/settings?${queryString}`, data);\n }\n\n public async getAssignedClients(): Promise {\n return await this.client.get('/api/users/assigned-clients');\n }\n\n public async updateAssignedClient(assignedClient: any): Promise {\n return await this.client.postJson('/api/users/update-clients', assignedClient);\n }\n\n public async getUserList(): Promise {\n return await this.client.get('/api/users/list');\n }\n\n public async getCommentSettings(): Promise {\n return await this.client.get('/api/users/comment-settings');\n }\n\n public async updateCommentSettings(name: string, value: string|null) {\n let valueQuery = '';\n if(value) {\n valueQuery = `&value=${value}`;\n }\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/users/update-comment?name=${name}`+valueQuery,{});\n }\n}\n","import UserSettingsModule from '@/store/UserSettingsModule';\nimport { getModule } from 'vuex-module-decorators';\nimport { UserSetting, UserSettingReportName, UserSettingName } from '@/models/UserSetting';\nimport { CookieStorageService } from '@questelservices/common';\nimport { CookieKeysEnum } from '@questelservices/common';\nimport _ from 'lodash';\n\n\nexport class UserSettingsService {\n private userState: UserSettingsModule;\n private cookieService: CookieStorageService = new CookieStorageService();\n\n constructor(private vuexStore: any) {\n this.userState = getModule(UserSettingsModule, this.vuexStore);\n }\n\n public getUserSettings(reportName: UserSettingReportName | undefined,\n name: UserSettingName | undefined) : Promise {\n\n return new Promise(async (resolve, reject) => {\n let settings = await this.getUserSettingsFromCookie();\n let result: UserSetting[] = [];\n\n if(settings && settings.length > 0) {\n result = settings.filter((item, index, arr) => \n (reportName ? item.ReportName === reportName : true) &&\n (name ? item.Name === name : true)\n );\n }\n\n resolve(result);\n })\n }\n\n public setUserSettings(userSetting : UserSetting[],\n reportName: UserSettingReportName | undefined,\n name: UserSettingName | undefined) : Promise {\n\n return new Promise(async (resolve, reject) => {\n let settings = await this.getUserSettingsFromCookie();\n let settingsToSave : UserSetting[] = []\n\n if(!reportName && !name) {\n settingsToSave = userSetting;\n }\n else {\n _.remove(settings, (item : UserSetting) => \n (reportName ? item.ReportName === reportName : true) &&\n (name ? item.Name === name : true)\n );\n\n settingsToSave = _.concat(settings, userSetting);\n }\n\n \n await this.userState.setUserSettings(settingsToSave);\n\n resolve();\n })\n \n }\n\n private getUserSettingsFromCookie() : Promise {\n return new Promise(async (resolve, reject) => {\n let settingsStr : string = this.userState.userSettings;\n //this.cookieService.getItem(CookieKeysEnum.UserSettings);\n let settings : UserSetting[] = [];\n\n if(settingsStr) {\n settings = JSON.parse(settingsStr);\n }\n\n resolve(settings);\n\n });\n }\n}","\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=00115360&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=00115360&prod&lang=scss&\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=00115360&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"home\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { DxButton } from 'devextreme-vue';\n@Component({\n components: {\n }\n})\nexport default class Home extends Vue {\n}\n","export enum FileParseUploadStatusTypeEnum {\n Uploaded = 0,\n InQueue = 1,\n NeedsReview = 2,\n Processing = 3,\n Complete = 4,\n Failed = 5,\n TimedOutWhileCompletingUpload = 6,\n Created = 7,\n Uploading = 8,\n NeedsResubmission = 9,\n TimedOutDuringUpload = 10\n}\n\nexport enum FileParseUploadStatusTypeEnumString {\n Uploaded = 'Uploaded',\n InQueue = 'In Queue',\n NeedsReview = 'Needs Review',\n Processing = 'Processing',\n Complete = 'Complete',\n Failed = 'Failed',\n TimedOutWhileCompletingUpload = 'Timed Out While Completing Upload',\n Created = 'Created',\n Uploading = 'Uploading',\n \n NeedsResubmission = 'Needs Resubmission',\n TimedOutDuringUpload = 'Timed Out During Upload'\n}","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=a02b0b62&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"upload-invoice-file\"},[_c('page-title',[_vm._v(_vm._s(_vm.pageTitle))]),_c('alert-message',{attrs:{\"type\":\"error\",\"message\":_vm.fileErrorMessage,\"is-html\":true}}),_c('div',{staticClass:\"file-upload-container\"},[_c('div',{staticClass:\"upload-select-boxes\"},[_c('dx-lookup',{staticClass:\"upload-select-box\",attrs:{\"data-source\":_vm.clientStore,\"valueExpr\":\"ClientId\",\"displayExpr\":\"ClientName\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"popup-height\":_vm.getPopupHeight,\"onSelectionChanged\":_vm.onSelectionChanged,\"placeholder\":\"Select a client\",\"value\":_vm.selectedClient,\"displayValue\":_vm.selectedClientName,\"disabled\":_vm.fileUploadCompleted},on:{\"update:value\":function($event){_vm.selectedClient=$event},\"update:displayValue\":function($event){_vm.selectedClientName=$event},\"update:display-value\":function($event){_vm.selectedClientName=$event}}}),_c('dx-lookup',{ref:\"agentLookup\",staticClass:\"upload-select-box\",attrs:{\"data-source\":_vm.agentStore,\"valueExpr\":\"AgentId\",\"displayExpr\":\"AgentName\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"popup-height\":_vm.getPopupHeight,\"placeholder\":\"Select an agent\",\"value\":_vm.selectedAgent,\"displayValue\":_vm.selectedAgentName,\"disabled\":_vm.fileUploadCompleted},on:{\"update:value\":function($event){_vm.selectedAgent=$event},\"update:displayValue\":function($event){_vm.selectedAgentName=$event},\"update:display-value\":function($event){_vm.selectedAgentName=$event}}}),(_vm.selectedClient && _vm.clientBatches && _vm.clientBatches.length)?_c('dx-select-box',{ref:\"batchSelectBox\",staticClass:\"upload-select-box\",attrs:{\"items\":_vm.clientBatches,\"valueExpr\":\"value\",\"displayExpr\":\"text\",\"search-enabled\":true,\"value\":_vm.selectedBatch,\"disabled\":_vm.fileUploadCompleted},on:{\"update:value\":function($event){_vm.selectedBatch=$event}}}):_vm._e(),_c('dx-lookup',{attrs:{\"width\":\"400\",\"items\":_vm.rankings,\"value\":_vm.selectedRanking,\"displayExpr\":_vm.displayFormatRanking,\"visible\":_vm.fileParseComplete,\"search-enabled\":true,\"show-cancel-button\":true,\"popupHeight\":_vm.getPopupHeight,\"item-template\":_vm.itemTemplate},on:{\"update:value\":function($event){_vm.selectedRanking=$event}}}),_c('dx-button',{attrs:{\"type\":\"default\",\"text\":\"Apply Format\",\"visible\":_vm.fileParseComplete},on:{\"click\":_vm.onResubmitClick}})],1),(_vm.agentRequired && !_vm.agentSelected)?_c('div',{attrs:{\"id\":\"agent-required-message\"}},[_vm._v(\"You must specify an agent for LEDES files.\")]):_vm._e(),(!_vm.cantUploadedFiles)?_c('file-upload',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.fileParseSuccess),expression:\"!fileParseSuccess\"}],ref:\"fileUpload\",attrs:{\"id\":\"invoice-upload\",\"multiple\":true,\"hideUpload\":_vm.fileUploadCompleted,\"disabled\":!_vm.clientSelected || (_vm.agentRequired && !_vm.agentSelected),\"uploadMode\":'useButtons',\"authUrl\":\"/api/FileParseUploads/authorize\"},on:{\"on-upload-started\":_vm.onUploadStarted,\"uploaded\":_vm.onUploadComplete,\"on-value-changed\":_vm.onFileReady,\"on-upload-error\":function (args) { return _vm.onUploadError(args); }}}):_vm._e()],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.cantUploadedFiles),expression:\"cantUploadedFiles\"}]},[_c('h3',[_vm._v(\"Uploaded Files\")]),_c('dx-progress-bar',{attrs:{\"min\":0,\"max\":100,\"value\":_vm.percentUploaded}}),_c('div',{staticClass:\"dx-card uploaded-files\"},[_c('dx-scroll-view',{attrs:{\"scroll-by-content\":true,\"scroll-by-thumb\":true,\"show-scrollbar\":'onHover'}},[_c('div',{staticClass:\"uploaded-files-content\"})])],1)],1),_c('div',{attrs:{\"id\":\"InvoiceParseLoadPanelContainer\"}},[_c('dx-load-panel',{attrs:{\"elementAttr\":{ class: 'invoice-parse-load-panel' },\"max-width\":\"100px\",\"width\":\"100px\",\"max-height\":\"100px\",\"height\":\"100px\",\"position\":{ my: 'top', at: 'top', of: '#InvoiceParseLoadPanelContainer' },\"visible\":_vm.fileUploadCompleted && !_vm.fileParseComplete,\"message\":\"Loading data\"}})],1),_c('dx-html-editor',{ref:\"alertMessageRef\",attrs:{\"visible\":false,\"read-only\":true,\"value-type\":\"html\"},on:{\"option-changed\":_vm.onOptionChanged}}),_c('div',{staticClass:\"dx-card\"},[(_vm.fileParseSuccess)?_c('data-grid',{attrs:{\"url\":_vm.dataGridUrl,\"update-url\":_vm.dataGridUpdateUrl,\"allow-sorting\":false,\"allow-filtering\":false,\"cache-enabled\":false,\"remote-operations\":{ groupPaging: true }},on:{\"loaded\":_vm.onDataGridLoaded,\"data-error-occurred\":_vm.onDataErrorOccurred,\"cell-prepared\":_vm.onDataGridCellPrepared,\"row-updating\":_vm.onDataGridRowUpdating,\"content-ready\":_vm.onContentReady},scopedSlots:_vm._u([{key:\"FilenameGroupCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',{class:{ 'group-has-error': data.summaryItems && data.summaryItems.some(function (i) { return i.name === 'ErrorRowCount' && i.value > 0; }) },attrs:{\"id\":\"test\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getGroupCellText(data))+\"\\n \")])]}}],null,false,317897739)},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"group-index\":0,\"caption\":\"Filename\",\"data-field\":\"Filename\",\"group-cell-template\":\"FilenameGroupCellTemplate\"}}),_vm._l((_vm.columns.filter(function (c) { return !c.IsCalculatedColumn; })),function(column){return _c('dx-column',{key:column.DataKey,attrs:{\"name\":column.DataKey,\"data-type\":\"string\",\"data-field\":column.DataKey,\"allow-editing\":column.IsEditable,\"allow-sorting\":false,\"allow-filtering\":false}})}),_vm._l((_vm.columns.filter(function (c) { return c.IsCalculatedColumn; })),function(column){return _c('dx-column',{key:column.DataKey,attrs:{\"name\":column.DataKey,\"data-type\":\"string\",\"data-field\":column.DataKey,\"allow-editing\":false,\"allow-sorting\":false,\"allow-filtering\":false,\"caption\":column.SourceColumnName}})}),_c('dx-summary',[_c('dx-group-item',{attrs:{\"name\":\"ErrorRowCount\",\"column\":\"CountAsError\",\"summary-type\":\"sum\"}}),_c('dx-group-item',{attrs:{\"name\":\"TotalRowCount\",\"column\":\"FileParseUploadDataRowId\",\"summary-type\":\"count\"}}),_c('dx-group-item',{attrs:{\"column\":\"UploadValidCount\",\"summary-type\":\"sum\"}})],1)],2):_vm._e()],1),(_vm.fileParseSuccess)?_c('div',{staticStyle:{\"float\":\"right\",\"padding-right\":\"15px\",\"padding-top\":\"10px\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"text\":\"Cancel\"},on:{\"click\":_vm.onCancelClick}}),_vm._v(\"  \\n \"),_c('dx-button',{ref:\"submitBtnRef\",attrs:{\"type\":\"default\",\"text\":\"Submit\"},on:{\"click\":_vm.onSubmitClick}})],1):_vm._e(),_c('dx-load-panel',{attrs:{\"elementAttr\":{ class: 'submit-load-panel' },\"max-width\":\"100px\",\"width\":\"100px\",\"max-height\":\"100px\",\"height\":\"100px\",\"visible\":_vm.submitInProgress,\"message\":\"Saving data\",\"shading\":true,\"shading-color\":\"rgba(0,0,0,0.32)\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult } from '@questelservices/common';\nimport store from '@/store';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { SelectOption } from '@/models/SelectOption';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport { ClientDto, ClientDetailDto } from '@/models/client/ClientDto';\nimport { ClientLookupDataDto } from '@/models/client/ClientLookupDataDto';\nimport { ClientReportOptionDto } from '@/models/client/ClientReportOptionDto';\nimport { CreateClientDto } from '@/models/client/CreateClientDto';\nimport { InvoiceLookupDataDto } from '@/models/client/InvoiceLookupDataDto';\nimport { MatterDto } from '@/models/matter/MatterDto';\nimport _ from 'lodash';\n\nexport class ClientService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/clients');\n }\n\n async getAll(): Promise {\n return await this.client.get('');\n }\n\n async getAllSelectOptions(includeAll: boolean = false): Promise {\n let clients = await this.getAll();\n let result = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n\n if (includeAll) {\n result.unshift({ text: 'ALL', value: '' });\n }\n\n return result;\n }\n\n async getEbillers(): Promise {\n return await this.client.get('/e-billers');\n }\n\n async getEbillerSelectOptions(): Promise {\n let clients = await this.getEbillers();\n return clients.map(c => {\n return {\n text: c.ClientName,\n value: c.ClientId\n };\n });\n }\n\n async getAgentByClientId(clientId: Guid): Promise {\n return await this.client.get(`/${clientId}/agents`);\n }\n\n async getMatters(clientId: Guid): Promise {\n return await this.client.get(`/${clientId}/matters`);\n }\n\n async getMatterSelectOptions(clientId: Guid): Promise {\n let matters = await this.getMatters(clientId);\n let matterNames = _.uniq(matters.map(m => m.MatterName));\n return matterNames.map(m => {\n return { text: m, value: m };\n });\n }\n\n async getClientReportOption(clientId: Guid): Promise {\n return await this.client.get(`/${clientId}/report-option`);\n }\n\n async addClientReportOption(clientId: Guid, option:ClientReportOptionDto): Promise {\n return await this.client.postJson(`/${clientId}/report-option`, option);\n }\n\n async updateClientReportOption(clientId: Guid, option:ClientReportOptionDto): Promise {\n return await this.client.putJson(`/${clientId}/report-option`, option);\n }\n\n async getClientDetails(clientId: Guid): Promise {\n return await this.client.get(`/${clientId}/details`);\n }\n\n async updateClientDetails(clientId: Guid, clientDto: ClientDetailDto): Promise> {\n return await this.client.putJson(`/${clientId}/update`, clientDto);\n }\n\n async createClient(createClientDto: CreateClientDto): Promise {\n return await this.client.postJson(\"/create\", createClientDto);\n }\n\n async getClientLineItems(clientId: Guid, options: LoadOptions): Promise {\n return await this.client.getPostData(`/${clientId}/line-items`, options);\n }\n\n async getLookupData(clientId: Guid, batchId: Guid | null, agentId: Guid | null, invoiceNumber: string | null, countryId: number | null): Promise {\n let url = `/${clientId}/lookup-data`;\n let parameters: string[] = [];\n let query: string = '';\n\n if (batchId != null) {\n parameters.push(`batchId=${encodeURIComponent(batchId)}`);\n }\n\n if (agentId != null) {\n parameters.push(`agentId=${encodeURIComponent(agentId)}`);\n }\n\n if (invoiceNumber != null) {\n parameters.push(`invoiceNumber=${encodeURIComponent(invoiceNumber)}`);\n }\n\n if (countryId != null) {\n parameters.push(`countryId=${encodeURIComponent(countryId)}`);\n }\n\n if (parameters.length > 0) {\n query = `?${parameters.join('&')}`;\n }\n\n return await this.client.get(`${url}${query}`);\n }\n\n async getInvoiceLookupData(clientId: Guid, batchId: Guid | null, agentId: Guid | null, countryId: number | null): Promise {\n let url = `/${clientId}/invoice-lookup-data`;\n let parameters: string[] = [];\n let query: string = '';\n\n if (batchId != null) {\n parameters.push(`batchId=${encodeURIComponent(batchId)}`);\n }\n\n if (agentId != null) {\n parameters.push(`agentId=${encodeURIComponent(agentId)}`);\n }\n\n if (countryId != null) {\n parameters.push(`countryId=${encodeURIComponent(countryId)}`);\n }\n\n if (parameters.length > 0) {\n query = `?${parameters.join('&')}`;\n }\n\n return await this.client.get(`${url}${query}`);\n }\n}\n","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport { SelectOption } from '@/models/SelectOption';\n\nexport class AgentService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/agents');\n }\n\n async getAll(clientId: Guid | undefined = undefined): Promise {\n if (!clientId) {\n return await this.client.get('');\n } else {\n return await this.client.get(`?clientId=${clientId}`);\n }\n }\n\n async getAllSelectOptions(clientId?: Guid, includeAll: boolean = true): Promise {\n let agents = await this.getAll(clientId);\n let result = agents.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n });\n\n if (includeAll) {\n result.unshift({ text: 'ALL', value: '' });\n }\n\n return result;\n }\n \n async agentInfo(options: any, clientId: Guid | undefined = undefined): Promise {\n return await this.client.getPostData(`/info?clientId=${clientId}`, options); \n }\n}\n","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { FileParseUploadDto } from '@/models/file-parsing/FileParseUploadDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\nexport class FileParseUploadService {\n private client: QuestelServicesClient = new QuestelServicesClient(store, '/api/FileParseUploads');\n\n async getAll(): Promise {\n return await this.client.get('');\n }\n\n async get(FileParseUploadId: Guid): Promise {\n return await this.client.get(`/status?fileParseUploadId=${FileParseUploadId}`); \n }\n\n async search(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search`, options);\n } \n\n async submit(FileParseUploadId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Patch, `/${FileParseUploadId}`); \n }\n}\n","import { FileParseFormatColumnDto } from './FileParseFormatColumnDto';\nimport { FileParseFormatFileExtensionDto } from './FileParseFormatFileExtensionDto';\nimport { FileParseFormatCalculationDto } from './FileParseFormatCalculationDto';\n\nexport interface FileParseFormatDto {\n FileParseFormatId?: Guid;\n Name?: string;\n FileExtensions: FileParseFormatFileExtensionDto[];\n FileParseFormatColumns: Array;\n DeletedFileParseFormatColumns: Array;\n FileParseFormatCalculations: Array;\n}\n\nexport function GetDefaultFileParseFormatDto(): FileParseFormatDto {\n return {\n FileExtensions: [],\n FileParseFormatColumns: [],\n DeletedFileParseFormatColumns: [],\n FileParseFormatCalculations: []\n };\n}\n","import { FileParseFormatDto, GetDefaultFileParseFormatDto } from './FileParseFormatDto';\n\nexport interface FileParseFormatRankingDto {\n Format: FileParseFormatDto;\n MatchedRequiredColumns: number;\n MissingRequiredColumns: number;\n MatchedColumns: number;\n MissingColumns: number;\n ExtraColumns: number;\n}\n\nexport class FileParseFormatRankingDto implements FileParseFormatRankingDto {\n Format = GetDefaultFileParseFormatDto();\n\n get MatchPercentage(): number {\n let totalColumns = this.MatchedColumns + this.MissingColumns;\n return totalColumns === 0 ? 0 : this.MatchedColumns / totalColumns;\n }\n}\n","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { BatchDetailsDto } from '@/models/batch/BatchDetailsDto';\nimport { BatchEventDetailsDto } from '@/models/batch/BatchEventDetailsDto';\nimport { ValidationResultDto } from '@/models/ValidationResultDto';\nimport { BatchNameValidationParameters } from '@/models/batch/BatchNameValidationParameters';\nimport { BatchDto } from '@/models/batch/BatchDto';\nimport { BatchDataDeleteDto } from '@/models/batch/BatchDataDeleteDto';\nimport { BatchDataDeleteRequestDto } from '@/models/batch/BatchDataDeleteRequestDto';\nimport { BatchEventTypeDateDto } from '@/models/batch/BatchEventTypeDateDto';\nimport { BatchSnapshotDto } from '@/models/batch/BatchSnapshotDto';\nimport { ReportsSentDateDto } from '@/models/batch/ReportsSentDateDto';\nimport { SendBatchReportsRequestDto } from '@/models/batch/SendBatchReportsRequestDto';\nimport { ClientEbillingReportDto } from '@/models/e-billing/ClientEbillingReportDto';\n\nexport class BatchService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '');\n }\n\n public async getCurrentBatchId(clientId: Guid): Promise {\n return await this.client.get(`/api/clients/${clientId}/batches/current`);\n }\n\n public async getActiveBatchIds(clientId: Guid): Promise {\n return await this.client.get(`/api/clients/${clientId}/batches/active`);\n }\n\n public async getBatchEventTypeDate(clientId: Guid, param: BatchEventTypeDateDto): Promise {\n const url = `/api/batchevents/${clientId}/typedate`;\n\n return await this.client.sendRequest(HttpMethodEnum.Post, url, param);\n }\n\n // Gets an array containing all the batches for the given client.\n // If closed is not null and true, then return only closed batches.\n async getClientBatches(clientId: Guid, closed?: boolean): Promise> {\n let url = `/api/clients/${clientId}/batches`;\n if (closed != null) {\n url += `?closed=${closed}`;\n }\n\n return await this.client.get>(url);\n }\n\n public async getRecentClientBatches(clientId: Guid): Promise {\n return await this.client.get(`/api/clients/${clientId}/batches/recent`);\n }\n\n async getClosedClientBatches(clientId: Guid): Promise {\n return await this.client.get(`/api/clients/${clientId}/batches/closed`);\n }\n\n public async getClientBatchesReportStatus(clientId: Guid): Promise { \n return await this.client.get(`/api/clients/${clientId}/batches/reportStatus`);\n }\n\n async getBatchDetails(batchId: Guid): Promise {\n return await this.client.get(`/api/batches/${batchId}`);\n }\n\n public async processBatchEvent(batchEventId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Patch, `/api/batchevents/${batchEventId}/processeddate`);\n }\n\n public async getBatchEvents(batchId: Guid): Promise {\n return await this.client.get(`/api/batches/${batchId}/batchevents`);\n }\n\n public async startAutoCoding(batchId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/batches/${batchId}/autocoding`);\n }\n\n public async startAzureCoding(batchId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/batches/${batchId}/azurecoding`);\n }\n\n public async startPostProcessing(batchId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/batches/${batchId}/postprocessing`);\n }\n\n public async addNewBatch(clientId: Guid): Promise {\n return await this.client.postJson('/api/batches/', clientId);\n }\n\n public async completeBatch(batchId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/batches/${batchId}/complete`);\n }\n\n public async updateBatch(batchId: Guid, data: BatchDto): Promise {\n return await this.client.getData(HttpMethodEnum.Put, `/api/batches/${batchId}`, data);\n }\n\n public async setReadyForReporting(clientId: Guid): Promise {\n await this.client.sendRequest(HttpMethodEnum.Put, `/api/batches/${clientId}/sendreport`);\n }\n\n public async validateBatchName(parameters: BatchNameValidationParameters): Promise {\n return await this.client.getPostData('/api/batches/validation', parameters);\n }\n\n public async getBatchDataDeleteTree(batchId: Guid): Promise {\n return await this.client.get(`/api/batches/batch-data-delete-tree/${batchId}`);\n }\n\n public async deleteBatchData(dataToDelete: BatchDataDeleteRequestDto) {\n return await this.client.sendRequest(HttpMethodEnum.Delete, '/api/batches/delete-batch-data', dataToDelete);\n }\n \n async sendReport(batchId: Guid, options?: SendBatchReportsRequestDto): Promise {\n return await this.client.getPostData(`/api/batches/${batchId}/send-reports`, options);\n }\n\n async getEbillingReports(batchId: Guid): Promise {\n let reports = await this.client.get(`/api/batches/${batchId}/e-billing-reports`);\n reports.forEach((r, i) => {\n r.ClientEbillingReportKey = i + 1;\n });\n\n return reports;\n }\n\n // Get a list of batch snapshots for the given batch.\n async getBatchSnapshots(batchId: Guid): Promise {\n let batchSnapshots = await this.client.get(`/api/batches/${batchId}/batch-snapshots`)\n return batchSnapshots;\n }\n\n // Start the snapshot process for the given batch.\n async snapshotBatch(batchId: Guid): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Post, `/api/batches/${batchId}/snapshot-batch`); \n }\n}\n","export default class String {\n public static readonly empty: string = '';\n\n public static isNullOrEmpty(value?: string) {\n return value == null || value.length === 0;\n }\n\n public static removeTrailingZeros(value?: string | null) {\n if (value == null) {\n return value;\n }\n\n let index = value.lastIndexOf('.');\n if (index === -1) {\n return value;\n }\n\n for (let i = index + 1; i < value.length; i++) {\n if (value[i] !== '0') {\n return value;\n }\n }\n\n return value.substr(0, index);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { FileUpload, DataGrid, AlertMessage, PageTitle } from '@questelservices/common-vue';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport { DxLoadPanel, DxButton, DxLookup, DxTooltip, DxSelectBox } from 'devextreme-vue';\nimport { alert as dxAlert } from 'devextreme/ui/dialog';\nimport {\n DxColumn,\n DxEditing,\n DxSummary,\n DxGroupItem\n} from 'devextreme-vue/data-grid';\nimport FileUploader from 'devextreme/ui/file_uploader';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { DxProgressBar } from 'devextreme-vue/progress-bar';\nimport { ClientService } from '../service/ClientService';\nimport { AgentService } from '../service/AgentService';\nimport { FileParseUploadService } from '../service/FileParseUploadService';\nimport { FileParseUploadResponseDto } from '../models/file-parsing/FileParseUploadResponseDto';\nimport { FileParseUploadStatusTypeEnum } from '@/models/file-parsing/FileParseUploadStatusTypeEnum';\nimport { FileParseFormatDto } from '../models/file-parsing/FileParseFormatDto';\nimport { FileParseFormatColumnDto } from '../models/file-parsing/FileParseFormatColumnDto';\nimport { FileParseFormatRankingDto } from '../models/file-parsing/FileParseFormatRankingDto';\nimport { AgentDto } from '../models/agent/AgentDto';\nimport Lookup from 'devextreme/ui/lookup';\nimport notify from 'devextreme/ui/notify';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { SelectOption } from '../models/SelectOption';\nimport { BatchService } from '../service/BatchService';\nimport String from '@/utilities/String';\nimport Button from \"devextreme/ui/button\";\nimport { DxHtmlEditor } from 'devextreme-vue/html-editor';\nimport HtmlEditor from \"devextreme/ui/html_editor\";\n\n@Component({\n components: {\n DataGrid,\n FileUpload,\n AlertMessage,\n DxColumn,\n DxButton,\n DxLoadPanel,\n DxEditing,\n PageTitle,\n DxLookup,\n DxTooltip,\n DxSummary,\n DxGroupItem,\n DxScrollView,\n DxSelectBox,\n DxHtmlEditor,\n DxProgressBar\n }\n})\nexport default class UploadInvoiceFile extends Vue {\n public $refs: Vue['$refs'] & {\n dataGrid?: DataGrid;\n fileUpload?: FileUpload;\n agentLookup?: Lookup;\n submitBtnRef? : Button;\n alertMessageRef? : HtmlEditor;\n } = {};\n\n private static readonly defaultPageTitle: string = 'Upload Invoice File';\n\n pageTitle: string = UploadInvoiceFile.defaultPageTitle;\n fileUploadCompleted: boolean = false;\n fileParseComplete: boolean = false;\n fileParseSuccess: boolean = false;\n private fileParseUploadService = new FileParseUploadService();\n cantUploadedFiles: boolean = false;\n percentColumnsUploaded: number = 0;\n\n get percentUploaded() {\n return this.percentColumnsUploaded * 100;\n }\n\n fileErrorMessage: string = '';\n dataMessageObjTemp: any = {\n type : \"\",\n message : \"\"\n }\n dataMessageObj = this.dataMessageObjTemp;\n\n @Watch(\"dataMessageObjTemp\") \n onPropertyChanged(newVal: any, old : any){\n if(newVal) {\n this.dataMessageObj = newVal;\n }\n }\n private filesWithErrors: Set = new Set();\n \n\n dataGridUrl: string = '';\n dataGridUpdateUrl: string = '';\n\n submitInProgress: boolean = false;\n submitUrl: string = '';\n\n fileId: Guid = '';\n fileParseUploadId: Guid = '';\n columns: FileParseFormatColumnDto[] = [];\n rankings: FileParseFormatRankingDto[] = [];\n\n get submitButton() {\n return ((this.$refs.submitBtnRef as any).instance as any);\n }\n\n get alertMessage() {\n return ((this.$refs.alertMessageRef as HtmlEditor).instance as any);\n }\n\n private client = new QuestelServicesClient(this.$store, '');\n private clientService = new ClientService();\n private agentService = new AgentService();\n private batchService = new BatchService();\n\n clientStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.clientService.getAll();\n }\n });\n\n selectedClient: Guid = '';\n selectedClientName: string = '';\n selectedAgent: Guid = '';\n selectedAgentName: string = '';\n selectedBatch: Guid = '';\n agentRequired: boolean = false;\n clientBatches: Array = [];\n selectedRanking: FileParseFormatRankingDto = new FileParseFormatRankingDto();\n\n get clientSelected() {\n return (\n this.selectedClient !== undefined &&\n this.selectedClient !== null &&\n this.selectedClient !== ''\n );\n }\n\n get agentSelected() {\n return (\n this.selectedAgent !== undefined && this.selectedAgent !== null && this.selectedAgent !== ''\n );\n }\n\n private refreshPageTitle() {\n let title = UploadInvoiceFile.defaultPageTitle;\n \n if (!String.isNullOrEmpty(this.selectedClientName)) {\n title += ` for ${this.selectedClientName}`;\n\n if (!String.isNullOrEmpty(this.selectedAgentName)) {\n title += ` | ${this.selectedAgentName}`;\n }\n }\n\n this.pageTitle = title;\n }\n\n private resetPageTitle() {\n this.pageTitle = UploadInvoiceFile.defaultPageTitle;\n }\n\n private baseUrl: string = '/api';\n\n constructor() {\n super();\n this.agentStore = this.agentDataSource();\n }\n\n selectedClientId: Guid | undefined = undefined;\n setSelectedClientId(val: any): void {\n this.selectedClientId = val;\n }\n\n async onSelectionChanged(e: any) {\n this.setSelectedClientId(e.selectedItem ? e.selectedItem.ClientId : '');\n this.agentStore = this.agentDataSource();\n\n this.selectedBatch = '';\n if (this.selectedClientId) {\n let batches = await this.batchService.getRecentClientBatches(this.selectedClientId);\n this.clientBatches = batches.map(b => {\n return {\n text: b.BatchName,\n value: b.BatchId\n };\n });\n let openBatch = batches.find(b => b.BatchClosedDate == null);\n this.selectedBatch = openBatch ? openBatch.BatchId : '';\n }\n }\n\n returnSelectedClientId(): Guid | undefined {\n return this.selectedClientId;\n }\n\n private agentDataSource(): CustomStore {\n return new CustomStore({ \n loadMode: 'raw', \n load: (options): Promise => {\n return this.agentService.getAll(this.selectedClientId);\n }\n });\n }\n\n agentStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.agentService.getAll(this.returnSelectedClientId());\n }\n });\n\n removeUploadedFilesInSummary() {\n let curr = document.getElementsByClassName('uploaded-files-content')[0];\n curr.innerHTML = '';\n }\n\n uploadedFilesSummary() {\n setTimeout(() => {\n let uploadedClassname = 'dx-fileuploader-files-container';\n let listOfDownloadedElement = document.getElementsByClassName(uploadedClassname)[0];\n let curr = document.getElementsByClassName('uploaded-files-content')[0];\n curr.appendChild(listOfDownloadedElement);\n\n this.updateValue(true);\n }, 300);\n }\n\n updateValue(val: boolean) {\n this.cantUploadedFiles = val;\n }\n\n getPopupHeight(): number {\n return window.innerHeight / 1.5;\n }\n\n reset(clearFiles: boolean = false) {\n this.toProcessFiles = [];\n this.fileUploadCompleted = false;\n this.fileParseComplete = false;\n this.fileParseSuccess = false;\n this.cantUploadedFiles = false;\n this.dataMessageObjTemp = {\n type: \"\",\n message: \"\"\n }\n this.alertMessage.option(\"value\", this.dataMessageObjTemp.message);\n this.alertMessage.option(\"visible\", this.dataMessageObjTemp.message != '');\n this.dataGridUrl = '';\n this.dataGridUpdateUrl = '';\n this.submitUrl = '';\n this.columns = [];\n this.selectedAgent = '';\n this.agentRequired = false;\n this.removeUploadedFilesInSummary();\n if (clearFiles && this.$refs.fileUpload) {\n let fileUploader = this.$refs.fileUpload as any;\n fileUploader.resetFileUploader();\n }\n this.columns = [];\n this.selectedAgent = '';\n this.filesWithErrors = new Set();\n this.resetPageTitle();\n this.percentColumnsUploaded = 0;\n }\n\n onDataGridCellPrepared(e: any) {\n if (e.rowType === 'data' && e.data.HasError) {\n let columnData = e.data.Columns.find(\n (c: any) => c.ErrorMessage && c.DataKey === e.column.name\n );\n if (columnData) {\n e.cellElement.classList.add('error');\n e.cellElement.title = columnData.ErrorMessage;\n }\n }\n }\n\n onUploadStarted(e: any) {\n this.fileErrorMessage = '';\n }\n\n onUploadError(args: { e: any; fileAuthResult: any }): void {\n // TODO: Do something for these errors.\n }\n\n onCancelClick() {\n this.deleteUploadData();\n this.reset(true);\n }\n\n private deleteUploadData(): void {\n if (this.fileParseUploadId) {\n this.client.sendRequest(\n HttpMethodEnum.Delete,\n `/api/FileParseUploads/${this.fileParseUploadId}/data`\n );\n }\n }\n\n onSubmitClick() {\n this.submitInProgress = true;\n this.client\n .sendRequest(HttpMethodEnum.Patch, this.submitUrl)\n .then(response => {\n this.submitInProgress = false;\n let message = 'Data successfully submitted for processing. Check the File Parse Upload table to see current pending uploads.';\n if (response && response.Message) {\n message = response.Message;\n }\n dxAlert(message, 'Success').then(() => this.reset(true));\n })\n .catch(response => {\n let errorMessage =\n 'An error occurred submitting data. Please try again, or contact support if the error continues.';\n if (response && response.Message) {\n errorMessage = response.Message;\n }\n this.dataMessageObjTemp = {\n type: \"error\",\n message: errorMessage\n }\n this.submitInProgress = false;\n\n this.alertMessage.option(\"value\", this.dataMessageObjTemp.message);\n this.alertMessage.option(\"visible\", this.dataMessageObjTemp.message != '');\n })\n .finally(() => {\n this.filesWithErrors = new Set();\n });\n }\n\n onDataGridLoaded(e: any) {\n // Only check for files with errors when loading the group data, and not the data rows\n if(e.data && e.data.some((d: any) => d.summary)) {\n let groupsWithErrors = e.data.filter((d: any) => d.summary[0] > 0);\n if(groupsWithErrors && groupsWithErrors.length) {\n this.filesWithErrors = new Set(groupsWithErrors.map((g: any) => g.key));\n }\n }\n }\n\n onDataErrorOccurred(e: any) {\n if (e != null && e.error != null) {\n e.error.message = 'An error occurred retrieving the parsed data. Please click Cancel and try again. If the problem persists, please contact support.';\n }\n }\n\n onOptionChanged(e: any) {\n if(e.name == \"value\") {\n e.component.$element().removeClass(\"upload-warning\");\n e.component.$element().removeClass(\"upload-success\");\n e.component.$element().removeClass(\"upload-error\");\n if(e.value) {\n if(this.dataMessageObjTemp.type == \"success\"){\n e.component.$element().addClass(\"upload-success\");\n }\n else if(this.dataMessageObjTemp.type == \"warning\"){\n e.component.$element().addClass(\"upload-warning\");\n }\n else if(this.dataMessageObjTemp.type == \"error\") {\n e.component.$element().addClass(\"upload-error\");\n }\n }\n }\n }\n\n onContentReady(e: any) {\n if (e.component.isReady()) {\n // This is dependent on the order of the summary items.\n // Because the row data is only loaded if the group is expanded, I couldn't find another way to check if the upload is valid.\n let firstRowData = e.component.getVisibleRows() && e.component.getVisibleRows()[0] ? e.component.getVisibleRows()[0].data : undefined;\n if (firstRowData == null) {\n return;\n }\n \n let uploadValid = firstRowData && firstRowData.summary && firstRowData.summary[2] > 0;\n\n // Disable the submit button if the upload is not valid.\n this.submitButton.option(\"disabled\", !uploadValid)\n\n\n if(!uploadValid) {\n \n let dataMessage = 'Invalid and/or missing information detected. Please ensure all required information is present and all data is valid, then upload the file again.';\n \n if (this.filesWithErrors.size > 0) {\n dataMessage = dataMessage + '
' + Array.from(this.filesWithErrors).join('
');\n }\n\n this.dataMessageObjTemp = {\n type: \"warning\",\n message: dataMessage\n }\n \n }\n else {\n this.dataMessageObjTemp = {\n type: \"success\",\n message: \"Data validation succeeded.\"\n }\n }\n \n \n this.alertMessage.option(\"value\", this.dataMessageObjTemp.message);\n this.alertMessage.option(\"visible\", this.dataMessageObjTemp.message != '');\n }\n } \n\n getGroupCellText(data: any) {\n let groupPagingMessage = '';\n if(data.groupContinuedMessage != null) {\n groupPagingMessage += data.groupContinuedMessage;\n }\n if(data.groupContinuesMessage) {\n groupPagingMessage += groupPagingMessage.length > 0\n ? '. ' + data.groupContinuesMessage\n : data.groupContinuesMessage;\n }\n \n let rowCountMessage = '';\n if(data.summaryItems) {\n let totalSummaryItem = data.summaryItems.find((i: any) => i.name === 'TotalRowCount');\n if(totalSummaryItem && totalSummaryItem.value > 0) {\n rowCountMessage += `Total Rows: ${totalSummaryItem.value}`;\n }\n let errorSummaryItem = data.summaryItems.find((i: any) => i.name === 'ErrorRowCount');\n if(errorSummaryItem && errorSummaryItem.value > 0) {\n let errorRowCountMessage = `Rows with error: ${errorSummaryItem.value}`;\n rowCountMessage += rowCountMessage.length > 0\n ? ', ' + errorRowCountMessage\n : errorRowCountMessage;\n }\n } \n\n let text = `${data.column.caption}: ${data.text}`;\n\n if(rowCountMessage.length > 0) {\n text += ` (${rowCountMessage})`;\n }\n\n if(groupPagingMessage.length > 0) {\n text += ` (${groupPagingMessage})`;\n }\n\n return text;\n }\n\n onDataGridRowUpdating(e: any) {\n let modifiedData = e.newData;\n let columnName = Object.keys(modifiedData)[0];\n let data = {\n fileParseUploadDataColumnId: e.oldData.Columns.find((c: any) => c.DataKey === columnName)\n .FileParseUploadDataColumnId,\n newValue: modifiedData[columnName]\n };\n e.newData = data;\n }\n\n toProcessFiles: any[] = [];\n onUploadComplete(args: { event: any; fileAuthResult: any; totalFiles: number }): void {\n this.refreshPageTitle();\n\n // Store files that are uploaded\n if (args.fileAuthResult.Files[0]) {\n let file = args.fileAuthResult.Files[0];\n this.toProcessFiles.push(file);\n }\n\n if (\n args.event.component.option('progress') == 100 &&\n this.toProcessFiles.length === args.totalFiles\n ) {\n var files = this.toProcessFiles.map((x: any) => {\n return {\n FileId: x.FileId,\n Filename: x.FileName\n };\n });\n\n this.fileUploadCompleted = true;\n\n this.client\n .getPostData('/api/FileParseUploads', {\n files: files,\n clientId: this.selectedClient,\n agentId: this.selectedAgent,\n batchId: this.selectedBatch\n })\n .then(data => {\n //Wait for the upload to complete \n setTimeout(() => this.waitForUploadToFinish(data.FileParseUploadId), 5000); \n this.fileParseUploadId = data.FileParseUploadId;\n this.columns = data.Columns; \n this.rankings = data.FormatRankings;\n\n if (this.rankings.length > 0) {\n this.selectedRanking = this.rankings[0];\n }\n })\n .catch(response => {\n this.fileParseComplete = true;\n this.fileParseSuccess = false;\n let errorMessage = 'File parsing failed';\n if (response && response.Message) {\n errorMessage += `: ${response.Message}`;\n }\n this.fileErrorMessage = errorMessage;\n })\n .finally(() => {\n this.uploadedFilesSummary();\n });\n }\n }\n\n onResubmitClick() {\n this.percentColumnsUploaded = 0;\n this.submitUrl = \"\";\n this.dataGridUrl = \"\";\n this.dataGridUpdateUrl = \"\"; \n this.fileParseComplete = false;\n this.fileParseSuccess = false; \n this.dataMessageObjTemp = {\n type: \"\",\n message: \"\"\n }\n this.alertMessage.option(\"value\", this.dataMessageObjTemp.message);\n this.alertMessage.option(\"visible\", this.dataMessageObjTemp.message != '');\n\n this.client.sendRequest(HttpMethodEnum.Delete, `/api/FileParseUploads/${this.fileParseUploadId}/data`)\n .then(_ => {\n var files = this.toProcessFiles.map((x: any)=> {\n return {\n \"FileId\" : x.FileId,\n \"Filename\" : x.FileName\n }\n });\n this.client.getPostData('/api/FileParseUploads', {\n files: files,\n clientId: this.selectedClient,\n agentId: this.selectedAgent,\n batchId: this.selectedBatch,\n format: this.selectedRanking.Format\n }).then(data => {\n //Wait for the upload to complete \n setTimeout(() => this.waitForUploadToFinish(data.FileParseUploadId), 5000); \n this.fileParseUploadId = data.FileParseUploadId;\n this.columns = data.Columns; \n dxAlert(\"File format applied.\", 'Success');\n\n }).catch(response => {\n this.fileParseComplete = true;\n this.fileParseSuccess = false;\n let errorMessage = 'File parsing failed';\n if (response && response.Message) {\n errorMessage += `: ${response.Message}`;\n }\n this.fileErrorMessage = errorMessage;\n });\n }); \n }\n\n waitForUploadToFinish(fileParseUploadId: Guid) {\n this.fileParseUploadService.get(fileParseUploadId)\n .then(fileParseUpload => { \n this.percentColumnsUploaded = fileParseUpload.PercentColumnsSaved;\n\n if (fileParseUpload.StatusType == FileParseUploadStatusTypeEnum.Uploaded) {\n this.submitUrl = `/api/FileParseUploads/${fileParseUpload.FileParseUploadId}`;\n this.dataGridUrl = `/api/FileParseUploads/${fileParseUpload.FileParseUploadId}/data`;\n this.dataGridUpdateUrl = this.dataGridUrl; \n this.fileParseComplete = true;\n this.fileParseSuccess = true; \n }\n else if (fileParseUpload.StatusType == FileParseUploadStatusTypeEnum.TimedOutDuringUpload) {\n let errorMessage = 'File upload timed out while saving parse data';\n this.processUploadError(errorMessage);\n } \n else if (fileParseUpload.StatusType == FileParseUploadStatusTypeEnum.Failed) {\n let errorMessage = 'An unknown error has occurred while saving parse data.';\n this.processUploadError(errorMessage);\n }\n else {\n // update progress bar\n setTimeout(() => this.waitForUploadToFinish(fileParseUploadId), 5000);\n console.log(\"Upload hasn't finished yet. Continuing to wait for upload...\");\n } \n }); \n }\n\n processUploadError(errorMessage: string) {\n this.fileParseComplete = true;\n this.fileParseSuccess = false; \n this.dataMessageObjTemp = {\n type: \"error\",\n message: errorMessage\n }\n this.alertMessage.option(\"value\", this.dataMessageObjTemp.message);\n this.alertMessage.option(\"visible\", this.dataMessageObjTemp.message != '');\n this.fileErrorMessage = errorMessage;\n }\n\n onFileReady(event: any) {\n if (event.value && event.value.length > 0) {\n let fileExtension = event.value[0].name.split('.').pop().toLowerCase();\n if (\n !(event.value as any[]).every((item: any) =>\n item.name\n .split('.')\n .pop()\n .toLowerCase()\n .includes('xls') && fileExtension.includes('xls')\n ? true\n : item.name.split('.').pop().toLowerCase() === fileExtension\n )\n ) {\n notify(\n {\n message: 'All files must be in the same format.',\n position: {\n of: '#invoice-upload',\n at: 'top',\n offset: '0 100'\n }\n },\n 'error',\n 1500\n );\n event.value = [];\n event.component.option('value', []);\n } else {\n let file: File = event.value[0];\n let ext = file.name.split('.').pop();\n this.agentRequired = ext !== undefined && ext.toLowerCase().indexOf('xls') === -1;\n }\n } else {\n this.agentRequired = false;\n }\n }\n\n displayFormatRanking(ranking: FileParseFormatRankingDto) {\n if (ranking) {\n return `${ranking.Format.Name} (${(100 * ranking.MatchPercentage).toFixed()}% match,\n ${ranking.MatchedColumns} matched columns, ${ranking.ExtraColumns} extra columns)`;\n } else {\n return '';\n }\n }\n\n itemTemplate(data: any) { \n let text = this.displayFormatRanking(data);\n return \"
\" + text + \"
\"; \n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-invoice-file.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload-invoice-file.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./upload-invoice-file.vue?vue&type=template&id=dcc1fc02&scoped=true&\"\nimport script from \"./upload-invoice-file.vue?vue&type=script&lang=ts&\"\nexport * from \"./upload-invoice-file.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./upload-invoice-file.vue?vue&type=style&index=0&id=dcc1fc02&prod&lang=scss&scoped=true&\"\nimport style1 from \"./upload-invoice-file.vue?vue&type=style&index=1&id=dcc1fc02&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dcc1fc02\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Client Matter Data\")]),_c('client-data-grid',{attrs:{\"idPropertyName\":\"ClientMatterDataId\"}},[_c('dx-editing',{attrs:{\"allow-editing\":false,\"allow-adding\":false,\"allow-deleting\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"ClientMatterDataDataGridSettings\"}}),_c('dx-column',{attrs:{\"type\":\"buttons\"}}),_c('dx-column',{attrs:{\"data-field\":\"MatterName\",\"fixed\":true}}),_c('dx-column',{attrs:{\"data-field\":\"CountryCode\",\"fixed\":true}}),_c('dx-column',{attrs:{\"data-field\":\"TitleKeyWords\",\"caption\":\"Title, Keywords\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"GroupName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"SubgroupName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"CompanyContact\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"MatterType\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"DateInitiated\",\"data-type\":\"date\"}}),_c('dx-column',{attrs:{\"data-field\":\"LawFirm\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"ServiceTypeLevel\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"ServiceCompanyCode\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"AccountCode\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"ProductCode\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"Region\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"CostCenter\",\"data-type\":\"string\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('br'),(_vm.selectedClient)?_c('div',{attrs:{\"id\":\"ClientDataGridContainer\"}},[_c('data-grid',_vm._g(_vm._b({ref:\"dataGrid\",attrs:{\"custom-store-options\":_vm.customStoreOptions,\"editing\":_vm.setAttr('editing', _vm.editingOptions)},on:{\"init-new-row\":_vm.initNewRow,\"row-updating\":_vm.rowUpdating,\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData,\"editing-start\":_vm.editingStart}},'data-grid',_vm.$attrs,false),_vm.$listeners),[_c('dx-pager',{attrs:{\"allowed-page-sizes\":[10, 25, 50, 100],\"show-page-size-selector\":true,\"visible\":true}}),_c('dx-paging',{attrs:{\"page-size\":25}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"ClientGroupDataGrid\"}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Client Matter Data Edit\",\"width\":\"40%\",\"height\":820,\"max-height\":\"95%\",\"on-showing\":_vm.popupShowing,\"on-hiding\":_vm.refreshDropdownData}}),_c('dx-form',{attrs:{\"col-count\":2,\"min-col-width\":233}},[_c('dx-group-item',[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"is-required\":true,\"disabled\":true,\"editor-type\":\"dxSelectBox\",\"label\":{ text: 'Client Name' },\"editor-options\":{ readOnly: true, value: _vm.selectedClient, dataSource: _vm.clients, displayExpr: 'text', valueExpr: 'value' }}}),_c('dx-item',{attrs:{\"data-field\":\"MatterName\",\"is-required\":true,\"editor-type\":\"dxTextBox\",\"editor-options\":{ maxLength: 100}}},[_c('dx-required-rule')],1),_c('dx-item',{attrs:{\"data-field\":\"CountryCode\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":{ items: _vm.dropdownData.CountryCode, \n showClearButton: true, \n searchEnabled: true, \n searchMode: 'startswith' }}},[_c('dx-required-rule')],1),_c('dx-item',{attrs:{\"data-field\":\"TitleKeyWords\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{\n dataSource: { \n paginate: true,\n store: {\n type: 'array',\n data: this.dropdownData.TitleKeyWords\n }\n },\n showClearButton: true, \n acceptCustomValue: true, \n maxLength: 255, \n searchEnabled: true\n }}}),_c('dx-item',{attrs:{\"data-field\":\"GroupName\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ items: _vm.dropdownData.GroupName, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"SubGroupName\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.SubGroupName, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"CompanyContact\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CompanyContact, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"MatterType\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.MatterType, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"DateInitiated\",\"editor-type\":\"dxDateBox\",\"editor-options\":{ openOnFieldClick: true }}}),_c('dx-item',{attrs:{\"data-field\":\"LawFirm\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.LawFirm, showClearButton: true, searchEnabled: true, searchMode: 'contains' }}})],1),_c('dx-group-item',[_c('dx-item',{attrs:{\"data-field\":\"ServiceTypeLevel\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.ServiceTypeLevel, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"ServiceCompanyCode\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.ServiceCompanyCode, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"AccountCode\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.AccountCode, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"ProductCode\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.ProductCode, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"Region\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.Region, showClearButton: true, acceptCustomValue: true, maxLength: 2 }}}),_c('dx-item',{attrs:{\"data-field\":\"CostCenter\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CostCenter, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}})],1)],1)],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ClientMatterDataId\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"MatterName\",\"fixed\":true,\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CountryCode\",\"fixed\":true,\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"TitleKeyWords\",\"caption\":\"Title, Keywords\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"GroupName\",\"caption\":\"Group Name\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"SubGroupName\",\"caption\":\"Subgroup Name\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CompanyContact\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"MatterType\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"date\",\"data-field\":\"DateInitiated\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"LawFirm\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ServiceTypeLevel\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ServiceCompanyCode\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AccountCode\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ProductCode\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Region\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CostCenter\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"type\":\"buttons\",\"data-field\":\"ClientId\",\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"filter-values\":[ _vm.selectedClient ]}}),_c('dx-column',{attrs:{\"data-type\":\"date\",\"data-field\":\"CreatedDate\",\"caption\":\"Created Date\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"date\",\"data-field\":\"UpdatedDate\",\"caption\":\"Last Update\",\"allow-filtering\":true}})],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '../store';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\nexport abstract class CrudServiceBase {\n client: QuestelServicesClient;\n\n constructor(baseUrl: string) {\n if(baseUrl.endsWith(\"/\")) {\n baseUrl = baseUrl.slice(0, -1);\n }\n this.client = new QuestelServicesClient(store, `${baseUrl}`);\n }\n\n async create(data: DtoType) : Promise {\n return await this.client.postJson('', data);\n }\n\n async get(id: Guid): Promise {\n return await this.client.get(`/${id}`);\n }\n\n async search(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search`, options);\n }\n\n async edit(id: Guid, data: DtoType) : Promise {\n return await this.client.sendRequest(HttpMethodEnum.Put, `/${id}`, data);\n }\n\n async delete(id: Guid) : Promise {\n return await this.client.sendRequest(HttpMethodEnum.Delete, `/${id}`);\n }\n}","import { CrudServiceBase } from './CrudServiceBase';\nimport { ClientMatterDataDto } from '@/models/matter/ClientMatterDataDto';\nimport { ClientMatterDataDropdownDto } from '@/models/matter/ClientMatterDataDropdownDto';\n\nexport class ClientMatterDataService extends CrudServiceBase {\n constructor() {\n super('/api/ClientMatterData');\n }\n\n async getDropdownData(clientId: Guid) : Promise {\n return await this.client.get(`/dropdown/${clientId}`);\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { CrudServiceBase } from '../service/CrudServiceBase';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxSelectBox, DxDateBox } from 'devextreme-vue';\nimport DxDataGrid, {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup,\n DxStateStoring,\n DxCustomRule,\n DxPaging,\n DxPager\n} from 'devextreme-vue/data-grid';\nimport { DxItem, DxGroupItem, DxButtonItem } from 'devextreme-vue/form';\nimport DevExpress from 'devextreme';\nimport { ClientService } from '@/service/ClientService';\nimport { SelectOption } from '@/models/SelectOption';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport dxDataGrid from 'devextreme/ui/data_grid';\nimport { RawLocation } from 'vue-router';\nimport { ClientMatterDataService } from '../service/ClientMatterDataService';\nimport { ClientMatterDataDropdownDto } from '../models/matter/ClientMatterDataDropdownDto';\nimport { ClientMatterDataDto } from '@/models/matter/ClientMatterDataDto';\nimport {\n DxValidator,\n DxRequiredRule,\n DxAsyncRule\n} from 'devextreme-vue/validator';\nimport _ from 'lodash';\nimport { confirm } from 'devextreme/ui/dialog';\nimport ClientMatterData from '../views/client-matter-data.vue';\n\n@Component({\n components: {\n DxSelectBox,\n DataGrid,\n DxEditing,\n DxPopup,\n DxItem,\n DxGroupItem,\n DxHeaderFilter,\n DxForm,\n DxColumn,\n DxDateBox,\n DxAsyncRule,\n DxRequiredRule,\n DxCustomRule,\n DxStateStoring,\n DxPaging,\n DxPager\n }\n})\nexport default class ClientDataGrid extends Vue {\n $refs: Vue['$refs'] & { \n dataGrid?: DataGrid; \n } = {};\n\n clientMatterDataService: ClientMatterDataService;\n clients: Array = [];\n selectedClient: Guid | null = null;\n dataGrid: any;\n dropdownData: Map> = new Map>();\n initialLoad: boolean = true;\n\n get routeClientId(): Guid | undefined {\n return this.$route.params['clientId'];\n }\n\n customStoreOptions: DevExpress.data.CustomStoreOptions = {\n key: 'ClientMatterDataId',\n load: loadOptions => this.loadDataGrid(loadOptions),\n insert: values => this.clientMatterDataService.create(values).catch(this.handleError),\n update: (key, values) => this.clientMatterDataService.edit(key, values).catch(this.handleError),\n remove: key => this.clientMatterDataService.delete(key).catch(this.handleError)\n };\n\n editingOptions: DevExpress.ui.dxDataGridEditing = {\n allowAdding: true,\n allowUpdating: true,\n allowDeleting: true,\n popup: {\n showTitle: true,\n title: \"Client Matter Data Edit\",\n width: '60%',\n height: '60%',\n onShown: this.popupShowing\n }\n };\n \n constructor() {\n super();\n this.clientMatterDataService = new ClientMatterDataService();\n }\n\n mounted() {\n this.loadData();\n this.setClientFromRoute(); \n this.initialLoad = true; \n }\n\n @Watch('routeClientId')\n private routeClientIdChange() {\n this.setClientFromRoute();\n } \n\n @Watch('selectedClient')\n private async selectedClientChange() {\n // Router will be updated with location matching the current location\n let location: RawLocation = { name: this.$route.name !== null ? this.$route.name : undefined };\n\n // Include selected client parameter if not null or empty\n if (this.selectedClient) {\n location.params = { clientId: this.selectedClient };\n this.refreshDropdownData(); \n }\n\n // This is to compare booleans instead of running in to situations where \"\" !== null !== undefined and having duplicate navigation errors\n let clientSelected = this.selectedClient ? true : false;\n let routeClientSelected = this.routeClientId ? true : false;\n let selectedClientChanged = clientSelected && routeClientSelected && this.selectedClient !== this.routeClientId;\n\n // If the route / dropdown selected status do not match, or if the selected client has changed, push a router update\n if (clientSelected !== routeClientSelected || selectedClientChanged) {\n await this.$router.push(location);\n }\n }\n\n private setClientFromRoute() : void {\n // If the route has a parameter for the clientId, select it\n if (this.routeClientId && this.selectedClient !== this.routeClientId) {\n this.selectedClient = this.routeClientId;\n } else if (!this.routeClientId) {\n this.selectedClient = null;\n }\n }\n\n async refreshDropdownData() {\n if(this.selectedClient) {\n this.dropdownData = (await this.clientMatterDataService.getDropdownData(this.selectedClient)).DropdownData; \n } \n } \n\n private async loadData() { \n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n }\n\n private loadDataGrid(loadOptions: LoadOptions): Promise { \n if (this.initialLoad) {\n this.clearFiltersAndSorting();\n }\n let clientFilter = ['ClientId', '=', this.selectedClient];\n if (loadOptions.filter) {\n loadOptions.filter = [clientFilter, 'and', loadOptions.filter];\n } else {\n loadOptions.filter = clientFilter;\n }\n return this.clientMatterDataService.search(loadOptions).catch(this.handleError);\n }\n\n private clearFiltersAndSorting() {\n this.initialLoad = false;\n this.dataGrid.clearFilter();\n this.dataGrid.clearSorting();\n }\n\n private popupShowing(e: any) : void {\n // Couldn't find a configuration option for this, so changing the style of Save and Cancel when loading the dialog.\n var toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n }\n\n protected setAttr(name: string, value: any): any {\n return Object.keys(this.$attrs).indexOf(name) > -1 ? this.$attrs[name] : value;\n }\n\n private readonly duplicateClientAgentCountryMsg: string = \"Client matter data already exists with the selected client-matter-countrycode combination.\";\n\n private handleError(result: any) {\n let message =\n result && result.Message\n ? result.Message\n : 'An unknown error occurred. Please try again, or contact support if the error continues.';\n\n //remove error and request id from message for this error\n if(message.includes(this.duplicateClientAgentCountryMsg)) {\n message = this.duplicateClientAgentCountryMsg;\n }\n\n throw message; \n }\n\n initNewRow(e: any) { \n e.data = {\n ClientId: this.selectedClient\n };\n }\n\n editingStart(e: any) {\n if (!e.data.ClientId) {\n e.data.ClientId = '';\n } \n }\n\n rowUpdating(e: any) { \n e.newData = _.merge({}, e.oldData, e.newData); \n\n //check if matter has line items and the matter name would be changed\n if (this.matterHasLineItems(e)) {\n let isCanceled = new Promise((resolve, reject) => {\n let dialogResult = confirm(`Invoicing rows already exist for matter ${e.oldData.MatterName}. Are you sure you want to change the matter name to ${e.newData.MatterName}?`, 'Matter Name Change Warning');\n dialogResult.then((result) => {\n if (result) {\n return resolve(false);\n } else {\n return resolve(true);\n }\n });\n });\n e.cancel = isCanceled; \n } \n }\n\n matterHasLineItems(e: any): boolean {\n let result = false;\n let oldMatterName = e.oldData.MatterName;\n let newMatterName = e.newData.MatterName;\n\n if (e.oldData.HasLineItems && oldMatterName != undefined && newMatterName != undefined && oldMatterName != newMatterName) {\n result = true; \n }\n\n return result;\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n saveEditData(): void {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-data-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-data-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-data-grid.vue?vue&type=template&id=3011c57a&\"\nimport script from \"./client-data-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-data-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport ClientDataGrid from '../components/client-data-grid.vue';\nimport { ClientMatterDataService } from '../service/ClientMatterDataService';\nimport { DxColumn, DxEditing, DxStateStoring } from 'devextreme-vue/data-grid';\n\n@Component({\n components: {\n PageTitle,\n ClientDataGrid,\n DxColumn,\n DxEditing,\n DxStateStoring\n }\n})\nexport default class ClientMatterData extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-matter-data.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-matter-data.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-matter-data.vue?vue&type=template&id=3b767750&\"\nimport script from \"./client-matter-data.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-matter-data.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Client Setup\")]),_c('div',[_c('dx-button',{staticStyle:{\"margin-bottom\":\"10px\"},attrs:{\"icon\":\"plus\",\"text\":\"Add New Client\"},on:{\"click\":_vm.openCreateClient}})],1),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('dx-select-box',{staticStyle:{\"margin-right\":\"5px\"},attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('dx-button',{attrs:{\"visible\":!!_vm.selectedClient,\"text\":\"Open Client Setup\"},on:{\"click\":_vm.openClientSetup}})],1),_c('client-setup-form',{attrs:{\"showDialog\":_vm.showClientSetup,\"selectedClient\":_vm.selectedClientOption},on:{\"hidingClientSetup\":_vm.hidingClientSetup}}),_c('create-client-form',{attrs:{\"showDialog\":_vm.showCreateClient},on:{\"hiding\":_vm.hidingCreateClient}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"900\",\"height\":\"100%\",\"max-width\":\"95%\",\"max-height\":\"95%\",\"show-title\":true,\"title\":_vm.popupTitle,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"hidden\":_vm.onPopupHidden,\"save-shortcut-pressed\":_vm.confirmSave}},[_c('div',{staticClass:\"client-setup-form\",staticStyle:{\"height\":\"100%\"}},[_c('dx-validation-group',{ref:\"validationGroupRef\",staticStyle:{\"height\":\"100%\"}},[_c('DxTabPanel',{attrs:{\"height\":20,\"data-source\":_vm.formTabs,\"selected-index\":_vm.selectedIndex,\"focus-state-enabled\":false},on:{\"update:selectedIndex\":function($event){_vm.selectedIndex=$event},\"update:selected-index\":function($event){_vm.selectedIndex=$event}}}),(!_vm.isLoaded)?_c('div',{staticClass:\"tabDiv\"},[_c('dx-load-indicator')],1):_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('client-setup-main',{attrs:{\"visible\":_vm.selectedTab=='Main',\"userDataSource\":_vm.usersList,\"clientEmail\":_vm.clientDetails.ClientEmail,\"clientCCEmail\":_vm.clientDetails.ClientCCEmail,\"clientShortName\":_vm.clientDetails.ClientShortName,\"clientUsers\":_vm.clientDetails.Users,\"clientActive\":_vm.clientDetails.Active},on:{\"update:clientEmail\":function($event){return _vm.$set(_vm.clientDetails, \"ClientEmail\", $event)},\"update:client-email\":function($event){return _vm.$set(_vm.clientDetails, \"ClientEmail\", $event)},\"update:clientCCEmail\":function($event){return _vm.$set(_vm.clientDetails, \"ClientCCEmail\", $event)},\"update:client-c-c-email\":function($event){return _vm.$set(_vm.clientDetails, \"ClientCCEmail\", $event)},\"update:clientShortName\":function($event){return _vm.$set(_vm.clientDetails, \"ClientShortName\", $event)},\"update:client-short-name\":function($event){return _vm.$set(_vm.clientDetails, \"ClientShortName\", $event)},\"update:clientUsers\":function($event){return _vm.$set(_vm.clientDetails, \"Users\", $event)},\"update:client-users\":function($event){return _vm.$set(_vm.clientDetails, \"Users\", $event)},\"update:clientActive\":function($event){return _vm.$set(_vm.clientDetails, \"Active\", $event)},\"update:client-active\":function($event){return _vm.$set(_vm.clientDetails, \"Active\", $event)}}}),_c('analysis-report',{attrs:{\"clientReportOptionModel\":_vm.clientReportOptionModel,\"visible\":_vm.selectedTab=='Analysis Reports',\"showEmailTemplate\":_vm.showEmailTemplate},on:{\"update:clientReportOptionModel\":function($event){_vm.clientReportOptionModel=$event},\"update:client-report-option-model\":function($event){_vm.clientReportOptionModel=$event},\"update:showEmailTemplate\":function($event){_vm.showEmailTemplate=$event},\"update:show-email-template\":function($event){_vm.showEmailTemplate=$event}}}),_c('auditor-report',{attrs:{\"clientReportOptionModel\":_vm.clientReportOptionModel,\"visible\":_vm.selectedTab=='Auditor Reports',\"showEmailTemplate\":_vm.showEmailTemplate,\"selectedClientAgentIds\":_vm.selectedClientAgentIds},on:{\"update:clientReportOptionModel\":function($event){_vm.clientReportOptionModel=$event},\"update:client-report-option-model\":function($event){_vm.clientReportOptionModel=$event},\"update:showEmailTemplate\":function($event){_vm.showEmailTemplate=$event},\"update:show-email-template\":function($event){_vm.showEmailTemplate=$event},\"showEdit\":_vm.onEditAgent,\"update:selectedClientAgentIds\":function($event){_vm.selectedClientAgentIds=$event},\"update:selected-client-agent-ids\":function($event){_vm.selectedClientAgentIds=$event}}})],1)],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingEdit },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('email-template-editor',{attrs:{\"showDialog\":_vm.showEmailTemplate},on:{\"hiding\":_vm.onEmailTemplateEditorHidding}}),_c('agent-info-edit',{attrs:{\"showDialog\":_vm.showingAgentInfo,\"clientAgentInfoDto\":_vm.clientAgentInfo},on:{\"hiding\":_vm.hidingDialog}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Agent Information\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave,\"hidden\":_vm.onPopupHidden}},[_c('dx-scroll-view',[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"agentInfoContent\"},[_c('h4',[_vm._v(\"Primary Agent Name\")]),_c('dx-text-box',{attrs:{\"visible\":!_vm.clientAgentInfo.IsUnrecognizedAgent,\"value\":_vm.clientAgentInfo.Agent.AgentName,\"read-only\":!_vm.clientAgentInfo.IsUnrecognizedAgent,\"width\":\"100%\",\"stylingMode\":\"outlined\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo.Agent, \"AgentName\", $event)}}}),_c('dx-select-box',{attrs:{\"visible\":_vm.clientAgentInfo.IsUnrecognizedAgent,\"value\":_vm.clientAgentInfo.Agent.AgentName,\"stylingMode\":\"outlined\",\"showClearButton\":true,\"dataSource\":_vm.agentsDataSource,\"acceptCustomValue\":true,\"onCustomItemCreating\":_vm.addAgentName,\"onSelectionChanged\":_vm.loadAgentData,\"search-enabled\":true,\"searchMode\":\"contains\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo.Agent, \"AgentName\", $event)}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('div',{staticClass:\"agentInfoContent\"},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"width\":\"60%\"}},[_c('h4',[_vm._v(\"Agent Name for Client\")]),_c('dx-text-box',{attrs:{\"width\":\"100%\",\"value\":_vm.clientAgentInfo.PrimaryAlias.AgentAlias,\"stylingMode\":\"outlined\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo.PrimaryAlias, \"AgentAlias\", $event)}}})],1),_c('div',{staticStyle:{\"display\":\"inline-block\",\"width\":\"40%\",\"padding-left\":\"10px\"}},[_c('h4',[_vm._v(\"Vendor Number\")]),_c('dx-text-box',{attrs:{\"width\":\"100%\",\"value\":_vm.clientAgentInfo.VendorNumber,\"stylingMode\":\"outlined\",\"max-length\":50},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo, \"VendorNumber\", $event)}}})],1)]),_c('div',{staticClass:\"agentInfoContent\"},[_c('h4',[_vm._v(\"Main Contact Email\")]),_c('dx-tag-box',{attrs:{\"name\":\"mainEmailComponent\",\"disabled\":_vm.primaryAgentNameUnset,\"dataSource\":_vm.mainEmailSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"value\":_vm.selectedMainEmail,\"stylingMode\":\"outlined\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\"},on:{\"opened\":_vm.onOpenedEmailCC,\"update:value\":function($event){_vm.selectedMainEmail=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailCCValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}])})],1),_c('div',{staticClass:\"agentInfoContent\"},[_c('h4',[_vm._v(\"Email CC\")]),_c('dx-tag-box',{attrs:{\"name\":\"emailCCComponent\",\"disabled\":_vm.primaryAgentNameUnset,\"dataSource\":_vm.emailCCSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"value\":_vm.selectedEmailCC,\"stylingMode\":\"outlined\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\"},on:{\"opened\":_vm.onOpenedEmailCC,\"update:value\":function($event){_vm.selectedEmailCC=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailCCValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}])})],1),_c('div',{staticClass:\"agentInfoContent\"},[_c('dx-check-box',{staticStyle:{\"display\":\"inline\"},attrs:{\"disabled\":_vm.primaryAgentNameUnset,\"value\":_vm.jurisdictionFree,\"width\":80,\"text\":\"Jurisdiction Free Agent\"},on:{\"update:value\":function($event){_vm.jurisdictionFree=$event}}})],1),_c('div',{staticClass:\"agentInfoContent\"},[_c('h4',[_vm._v(\"Jurisdiction by Country\")]),_c('dx-data-grid',{ref:\"jurisdictionDatagrid\",attrs:{\"disabled\":_vm.primaryAgentNameUnset || _vm.jurisdictionFree,\"width\":\"100%\",\"height\":\"350\",\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"rowAlternationEnabled\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":false,\"columnResizingMode\":\"nextColumn\",\"columnAutoWidth\":true,\"data-source\":_vm.jurisdictionDataSource},on:{\"row-updating\":_vm.jurisdictionRadioFunction}},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"data-field\":\"Country.CountryCode\",\"allowEditing\":false,\"data-type\":\"string\",\"caption\":\"Country\",\"allowHeaderFiltering\":true,\"width\":\"450\"}}),_c('dx-column',{attrs:{\"data-type\":\"boolean\",\"data-field\":\"InJurisdiction\",\"caption\":\"In\",\"width\":\"75\"}}),_c('dx-column',{attrs:{\"data-type\":\"boolean\",\"data-field\":\"OutJurisdiction\",\"caption\":\"Out\",\"width\":\"75\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_c('dx-header-filter',{attrs:{\"visible\":true}})],1)],1)])],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingEdit },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.submittingFileParseUpload}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult } from '@questelservices/common/dist';\nimport store from '@/store';\nimport { ClientAgentInfoDto } from '../models/client-agent/ClientAgentInfoDto';\nimport { UpdateClientAgentJurisdictionDto } from '@/models/client-agent/ClientAgentJurisdictionDto';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport { LinkClientAgentDto } from '@/models/client-agent/LinkClientAgentDto';\n\nexport class ClientAgentService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, \"/api/clientagents\");\n }\n\n async agentSetup(options: any): Promise {\n return await this.client.getPostData(`/agent-setup`, options); \n }\n\n async getExistingClientAgentData(clientId: Guid, agentName: string): Promise {\n return await this.client.getPostData(`/${clientId}`, agentName);\n }\n\n async getExistingClientAgentDataByAlias(agentAlias: string): Promise {\n return await this.client.getPostData('/agent-setup-existing-alias', agentAlias);\n }\n\n async getUnsetCountries(clientId: Guid, agentId: Guid) {\n return await this.client.get(`/unset-countries/${clientId}/${agentId}`);\n }\n\n async createClientAgentData(agentInfo: ClientAgentInfoDto) : Promise { \n let result = await this.client.postJson('/agent-setup-create', agentInfo);\n return result.Data ? result.Data : [];\n }\n\n async updateClientAgentData(agentInfo: ClientAgentInfoDto) : Promise { \n let result = await this.client.postJson('/agent-setup-update', agentInfo);\n return result.Data ? result.Data : [];\n }\n\n async updateClientAgentJurisdiction(jurisdictionDto: UpdateClientAgentJurisdictionDto): Promise {\n return await this.client.postJson('/agent-jurisdiction-update', jurisdictionDto);\n }\n\n async getClientAgentForReport(clientId: Guid, options: any) : Promise {\n return await this.client.postJson(`/${clientId}/associated-agents`, options);\n }\n\n async setClientAgentToReceiveReport(clientId: Guid, clientAgentIds: number[]): Promise {\n return await this.client.postJson(`/${clientId}/receive-report`, clientAgentIds);\n }\n\n async getUnlinkedAgents(clientId: Guid): Promise {\n return await this.client.get(`/unlinked-agents/${clientId}`);\n }\n\n async linkClientAndAgent(linkClientAgentDto: LinkClientAgentDto): Promise {\n return await this.client.postJson('/link-client-and-agent', linkClientAgentDto); \n }\n}","export interface ClientDto {\n ClientId: Guid;\n ClientName: string;\n}\n\nexport class ClientDto {\n ClientId = \"\";\n ClientName = \"\";\n}\n\nexport class ClientDetailDto implements ClientDto {\n ClientId = \"\";\n ClientName = \"\";\n ClientEmail: string | null = null;\n ClientCCEmail: string | null = null;\n ClientShortName: string | null = null;\n Active: boolean | null = null;\n Users: Array = [];\n}","export interface AgentDto {\n AgentId: Guid;\n AgentName: string;\n}\n\nexport class AgentDto implements AgentDto {\n AgentId = \"\";\n AgentName = \"\";\n}","export interface ClientAgentAliasDto{\n ClientAgentAliasId: Guid;\n ClientAgentId: number;\n PrimaryAlias: boolean;\n AgentAlias: string;\n}\n\nexport class ClientAgentAliasDto implements ClientAgentAliasDto {\n ClientAgentAliasId = \"\";\n ClientAgentId = 0;\n PrimaryAlias = false;\n AgentAlias = \"\";\n }","import { ClientDto } from '../client/ClientDto';\nimport { AgentDto } from '../agent/AgentDto';\n\nimport { ClientAgentDto } from './ClientAgentDto';\nimport { ClientAgentAliasDto } from './ClientAgentAliasDto';\nimport { ClientAgentJurisdictionDto } from './ClientAgentJurisdictionDto';\nimport { CountryDto } from '../CountryDto';\n\nexport interface ClientAgentInfoDto {\n PendingFileParseUploadId: Guid | undefined;\n FileParseUploadId: Guid | undefined;\n ClientAgentId: number;\n Client: ClientDto;\n Agent: AgentDto; \n PrimaryAlias: ClientAgentAliasDto;\n Jurisdictions: Array;\n AgentEmail: string;\n AgentCCEmail: string;\n IsUnrecognizedAgent: boolean;\n JurisdictionFree: boolean;\n UnsetCountries: Array;\n OriginalAgentId?: Guid;\n VendorNumber?: string;\n}\n\nexport class ClientAgentInfoDto implements ClientAgentInfoDto {\n ClientAgent = -1;\n Client = new ClientDto();\n Agent = new AgentDto();\n PrimaryAlias = new ClientAgentAliasDto();\n Jurisdictions: Array = [];\n AgentEmail = \"\";\n AgentCCEmail = \"\";\n IsUnrecognizedAgent = false;\n JurisdictionFree = false;\n UnsetCountries: Array = [];\n}","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { MatterOverageDNSDto } from '@/models/audit/MatterOverageDNSDto';\n\nexport class AuditingService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/auditing');\n }\n\n public async auditCompleted(clientId: Guid): Promise<{ Value: boolean }> {\n return await this.client.get(`/${clientId}/completed`);\n }\n\n public async toggleMatterOverageDNS(dto: MatterOverageDNSDto) {\n return await this.client.postJson('/toggleDNS', dto);\n }\n\n public async getAllMatterOverageDNS(clientId: Guid) {\n return await this.client.get(`/matterDNS/${clientId}`);\n }\n\n public async getMatterOverageMilestones(matterId: Guid) {\n return await this.client.get(`/matterOverageMilestones/${matterId}`);\n }\n\n public async getMatterWorkMiletones(matterWorkId: Guid) {\n return await this.client.get(`/matterWorkMilestones/${matterWorkId}`);\n }\n\n public async updateClientSnapshot(clientId: Guid) {\n return await this.client.postJson(`/client-snapshot/${clientId}`, new Object());\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxEditing, DxColumn, DxDataGrid, DxPager, DxPaging, DxRemoteOperations, DxFilterRow, DxHeaderFilter, DxSelection } from 'devextreme-vue/data-grid';\nimport { DxButton, DxCheckBox, DxTextBox, DxSelectBox, DxLoadPanel, DxTagBox } from 'devextreme-vue';\nimport { DxValidator, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport DataSource from \"devextreme/data/data_source\";\nimport { QuestelServicesClient, HttpMethodEnum, RequestResult } from '@questelservices/common';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { Prop } from 'vue-property-decorator'; \nimport notify from 'devextreme/ui/notify';\nimport { confirm, alert } from 'devextreme/ui/dialog'; \nimport { ClientAgentJurisdictionDto } from '../../models/client-agent/ClientAgentJurisdictionDto';\nimport { AgentService } from '../../service/AgentService'; \nimport { ClientAgentInfoDto } from '../../models/client-agent/ClientAgentInfoDto'; \nimport { CountryDto } from '../../models/CountryDto';\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport _ from 'lodash';\nimport { AuditingService } from '../../service/AuditingService';\n\n@Component({\n components: {\n DxDataGrid,\n DxEditing,\n DxCheckBox,\n DxPager,\n DxPaging,\n DxRemoteOperations,\n DxFilterRow,\n DxColumn,\n DxButton,\n DxTextBox,\n DxHeaderFilter,\n DxSelection,\n Popup,\n DxToolbarItem,\n DxSelectBox,\n DxLoadPanel,\n DxValidator,\n DxCustomRule,\n DxScrollView,\n DxTagBox,\n DxValidationGroup,\n DxRequiredRule\n }\n})\nexport default class AgentInfoEdit extends Vue {\n public $refs: Vue['$refs'] & {\n jurisdictionDatagrid?: DxDataGrid; \n validationGroupRef? : ValidationGroup;\n } = {};\n\n private readonly emailSeparator: string = ';';\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n @Prop()\n clientAgentInfoDto!: ClientAgentInfoDto;\n\n clientAgentInfo: ClientAgentInfoDto = new ClientAgentInfoDto();\n mainEmailSource: string[] = [\"\"];\n emailCCSource: string[] = [\"\"];\n selectedEmailCC: string[] = [];\n selectedMainEmail: string[] = [];\n origUnsetCountries: CountryDto[] = [];\n loadingExistingSettings: boolean = false;\n private agentObj: ClientAgentInfoDto | null = null;\n\n agents: Array = [];\n get agentsDataSource() : DataSource {\n return new DataSource({\n store: this.agents,\n paginate: true,\n pageSize: 100\n });\n }\n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n\n clientAgentService: ClientAgentService;\n private client = new QuestelServicesClient(this.$store, '');\n private submittingFileParseUpload: boolean = false;\n auditingService: AuditingService; \n \n jurisdictionDataSource: Array<{\n ClientAgentJurisdictionId: Guid;\n Country: CountryDto;\n InJurisdiction: boolean;\n OutJurisdiction: boolean;\n }> = [];\n\n readonly emptyGuid: string = \"00000000-0000-0000-0000-000000000000\";\n validationRule = {\n invalidEmail : {\n type: 'email',\n message : 'Invalid email'\n },\n noError : {}\n }\n\n //primaryAgentName: string = this.agentInfoData.AgentName;\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) { \n this.$emit(\"hiding\", this.agentObj);\n }\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) {\n if(this.$refs.jurisdictionDatagrid && this.$refs.jurisdictionDatagrid.instance) {\n this.$refs.jurisdictionDatagrid.instance.clearFilter();\n } \n this.clientAgentInfo = _.cloneDeep(this.clientAgentInfoDto); \n if (this.clientAgentInfo.PrimaryAlias.AgentAlias == \"\") {\n this.clientAgentInfo.PrimaryAlias.AgentAlias = this.clientAgentInfo.Agent.AgentName;\n }\n\n this.setMainEmail(this.clientAgentInfo.AgentEmail);\n this.setEmailCC(this.clientAgentInfo.AgentCCEmail);\n this.origUnsetCountries = this.clientAgentInfoDto.UnsetCountries;\n if(this.clientAgentInfo.IsUnrecognizedAgent) {\n this.checkForExistingAlias()\n .then(result => { \n if(result.ClientAgentId != 0) { \n var dialogResult = confirm(`This agent alias exists for agent ${result.Agent.AgentName}\n and client ${result.Client.ClientName}. Would you like to load the existing agent settings?`, \"Existing Alias\");\n dialogResult\n .then(dialogResult => {\n if(dialogResult) {\n this.loadingExistingSettings = true; \n this.clientAgentInfo.Agent = result.Agent; \n this.clientAgentInfo.JurisdictionFree = result.JurisdictionFree;\n this.clientAgentInfo.Jurisdictions = result.Jurisdictions;\n this.clientAgentInfo.VendorNumber = result.VendorNumber;\n\n // Get all unset countries that are not already in Jurisdictions\n let setCountries = this.clientAgentInfo.Jurisdictions.map(j => j.Country.CountryCode);\n this.clientAgentInfo.UnsetCountries = this.getUnsetCountries(setCountries, result.UnsetCountries);\n\n this.clientAgentInfo.AgentEmail = result.AgentEmail;\n this.clientAgentInfo.AgentCCEmail = result.AgentCCEmail;\n \n this.setMainEmail(this.clientAgentInfo.AgentEmail);\n this.setEmailCC(this.clientAgentInfo.AgentCCEmail);\n }\n this.displayJurisdictions();\n });\n } \n else {\n this.displayJurisdictions();\n }\n });\n }\n else {\n this.displayJurisdictions(); \n } \n } \n } \n\n setMainEmail(mainEmail: any) {\n this.mainEmailSource = mainEmail ? mainEmail.split(this.emailSeparator) : [''];\n this.selectedMainEmail = mainEmail ? mainEmail.split(this.emailSeparator) : [];\n }\n setEmailCC(emailCC: any) {\n this.emailCCSource = emailCC ? emailCC.split(this.emailSeparator) : [''];;\n this.selectedEmailCC = emailCC ? emailCC.split(this.emailSeparator) : [];\n }\n\n constructor() {\n super(); \n this.clientAgentService = new ClientAgentService();\n this.auditingService = new AuditingService(); \n this.loadData(); \n } \n\n async loadData() { \n let agentService = new AgentService();\n let agents = await agentService.getAll();\n this.agents = agents.map(a => {\n return a.AgentName;\n });\n }\n\n async checkForExistingAlias(): Promise {\n return await this.clientAgentService\n .getExistingClientAgentDataByAlias(this.clientAgentInfo.PrimaryAlias.AgentAlias);\n }\n\n checkEmailValidation(text: string) {\n return /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(text)\n }\n \n \n duplicateCustomItem: string = \"\"\n onCustomItemCreatingEvent(e:any) {\n if (this.checkEmailValidation(e.text))\n {\n let name = e.component.option(\"name\");\n if(name == \"emailCCComponent\")\n {\n if(_.find(this.emailCCSource, item => item === e.text)) {\n this.duplicateCustomItem = e.text;\n }\n else {\n this.emailCCSource.push(e.text);\n }\n }\n else {\n if(_.find(this.mainEmailSource, item => item === e.text)) {\n this.duplicateCustomItem = e.text;\n }\n else {\n this.mainEmailSource.push(e.text);\n }\n }\n }\n else {\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n }\n\n onEmailCCValueChanged(e:any) {\n if(this.duplicateCustomItem){\n let val = e.component.option(\"value\");\n\n val.push(this.duplicateCustomItem);\n e.component.option(\"value\", val);\n\n this.duplicateCustomItem = \"\";\n }\n if(e.value && e.value.length > 0) {\n if(_.find(e.value,item => !(this.checkEmailValidation(item)))) {\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n else {\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n else {\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n\n tagItemStyle(e:any) {\n return {\n 'background-color' : this.checkEmailValidation(e) ? '#e0e0e0' : '#f5b5b5'\n }\n } \n\n onOpenedEmailCC(e:any) {\n e.component.content().remove();\n }\n \n private async displayJurisdictions() { \n\n this.jurisdictionDataSource = []; \n \n const unsetCountries = await this.clientAgentService.getUnsetCountries(this.clientAgentInfo.Client.ClientId, this.clientAgentInfo.Agent.AgentId);\n\n for(let country of unsetCountries) {\n this.jurisdictionDataSource.push(\n {\n ClientAgentJurisdictionId: this.emptyGuid,\n Country: country,\n InJurisdiction: false,\n OutJurisdiction: false\n }\n );\n }\n \n const sortedJurisdiction = _.orderBy(this.clientAgentInfo.Jurisdictions, ['InJurisdiction', 'Country'], ['desc','asc']);\n\n for(let juris of sortedJurisdiction) {\n this.jurisdictionDataSource.push(\n {\n ClientAgentJurisdictionId: juris.ClientAgentJurisdictionId,\n Country: juris.Country,\n InJurisdiction: juris.InJurisdiction,\n OutJurisdiction: !juris.InJurisdiction\n }\n );\n } \n }\n\n get jurisdictionFree() {\n return this.clientAgentInfo.JurisdictionFree;\n }\n\n set jurisdictionFree(value: boolean) {\n this.clientAgentInfo.JurisdictionFree = value; \n if(value) {\n this.jurisdictionDataSource = []; \n }\n else {\n this.displayJurisdictions();\n } \n }\n\n get primaryAgentNameUnset() {\n return this.clientAgentInfo.Agent.AgentName == null\n || this.clientAgentInfo.Agent.AgentName == \"\";\n }\n\n displayInJurisdiction(data: any) {\n return data.InJurisdiction;\n }\n\n displayOutJurisdiction(data: any) {\n return !data.InJurisdiction;\n }\n\n jurisdictionRadioFunction(e: any) {\n if(e.newData.InJurisdiction && e.oldData.OutJurisdiction) {\n e.newData.OutJurisdiction = false;\n }\n else if(e.newData.OutJurisdiction && e.oldData.InJurisdiction) {\n e.newData.InJurisdiction = false;\n }\n }\n\n addAgentName(e: any) { \n e.customItem = e.text;\n if(!this.agents.some(a => a == e.text)) {\n this.agents.push(e.customItem); \n }\n this.clientAgentInfo.Agent.AgentName = e.text;\n }\n\n loadAgentData(e: any) {\n if(this.loadingExistingSettings) {\n this.loadingExistingSettings = false;\n return;\n }\n\n if(this.showingDialog) {\n if(this.clientAgentInfo.IsUnrecognizedAgent && this.clientAgentInfo.Agent.AgentName != null)\n {\n this.clientAgentService.getExistingClientAgentData(this.clientAgentInfo.Client.ClientId, this.clientAgentInfo.Agent.AgentName)\n .then(result => {\n if(result.ClientAgentId != 0) { \n this.clientAgentInfo.ClientAgentId = this.clientAgentInfo.Client.ClientId == result.Client.ClientId ? result.ClientAgentId : 0; \n this.clientAgentInfo.Agent.AgentId = result.Agent.AgentId; \n this.clientAgentInfo.AgentEmail = result.AgentEmail;\n this.clientAgentInfo.AgentCCEmail = result.AgentCCEmail;\n this.setMainEmail(this.clientAgentInfo.AgentEmail);\n this.setEmailCC(this.clientAgentInfo.AgentCCEmail);\n this.clientAgentInfo.JurisdictionFree = result.JurisdictionFree;\n this.clientAgentInfo.Jurisdictions = result.Jurisdictions;\n this.clientAgentInfo.VendorNumber = result.VendorNumber;\n //Get all unset countries that are not already in Jurisdictions\n let setCountries = this.clientAgentInfo.Jurisdictions.map(j => j.Country.CountryCode); \n this.clientAgentInfo.UnsetCountries = this.getUnsetCountries(setCountries, result.UnsetCountries); \n } \n else if(result.Agent != null) { \n this.clientAgentInfo.Agent.AgentId = result.Agent.AgentId; \n this.clientAgentInfo.AgentEmail = \"\";\n this.mainEmailSource = [\"\"];\n this.selectedMainEmail = [];\n this.clientAgentInfo.AgentCCEmail = '';\n this.emailCCSource = [\"\"];\n this.selectedEmailCC = [];\n this.clientAgentInfo.JurisdictionFree = false;\n this.clientAgentInfo.Jurisdictions = []; \n this.clientAgentInfo.UnsetCountries = this.origUnsetCountries;\n this.clientAgentInfo.VendorNumber='';\n }\n else {\n this.clientAgentInfo.AgentEmail = \"\";\n this.clientAgentInfo.AgentCCEmail = '';\n this.clientAgentInfo.JurisdictionFree = false;\n this.clientAgentInfo.Jurisdictions = [];\n this.clientAgentInfo.UnsetCountries = this.origUnsetCountries; \n this.emailCCSource = [\"\"];\n this.selectedEmailCC = []; \n this.mainEmailSource = [\"\"];\n this.selectedMainEmail = [];\n this.clientAgentInfo.VendorNumber=''; \n }\n \n this.displayJurisdictions(); \n });\n \n }\n } \n }\n\n hidingEdit() {\n this.clientAgentInfo = new ClientAgentInfoDto();\n this.showingDialog = false; \n } \n\n confirmSave() { \n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n }\n\n if(this.selectedEmailCC && this.selectedEmailCC.length > 0) {\n if(_.find(this.selectedEmailCC, item => !this.checkEmailValidation(item))) {\n return;\n }\n }\n if(this.selectedMainEmail && this.selectedMainEmail.length > 0) {\n if(_.find(this.selectedMainEmail, item => !this.checkEmailValidation(item))) {\n return;\n }\n }\n\n if (this.clientAgentInfo.PrimaryAlias.AgentAlias.trim() == \"\") {\n let message = 'Please enter a valid Agent Name for Client.';\n alert(message, 'Error');\n return;\n }\n \n //confirm for creating a new agent\n if(this.clientAgentInfo.Agent.AgentId == this.emptyGuid) {\n var result = confirm(`Are you sure you want to create the new agent \n ${this.clientAgentInfo.Agent.AgentName}, with the agent alias ${this.clientAgentInfo.PrimaryAlias.AgentAlias} \n for ${this.clientAgentInfo.Client.ClientName}?`, \"New Agent Creation\");\n result\n .then(dialogResult => {\n if(dialogResult) {\n this.saveAgentInfo();\n }\n });\n }\n else {\n this.saveAgentInfo();\n } \n }\n\n saveAgentInfo() { \n let jurisdictions: Array = []; \n \n for(let juris of this.jurisdictionDataSource) { \n if(!juris.InJurisdiction && !juris.OutJurisdiction) { \n continue;\n }\n let jursdictionDto: ClientAgentJurisdictionDto = {\n ClientAgentJurisdictionId: juris.ClientAgentJurisdictionId,\n ClientAgentId: this.clientAgentInfo.ClientAgentId,\n Country: juris.Country,\n InJurisdiction: juris.InJurisdiction\n }\n jurisdictions.push(jursdictionDto);\n }\n\n this.clientAgentInfo.Jurisdictions = jurisdictions;\n this.clientAgentInfo.AgentCCEmail = this.selectedEmailCC && this.selectedEmailCC.length > 0 ?\n this.selectedEmailCC.join(this.emailSeparator) : \"\";\n this.clientAgentInfo.AgentEmail = this.selectedMainEmail && this.selectedMainEmail.length > 0 ?\n this.selectedMainEmail.join(this.emailSeparator) : \"\"; \n \n this.saveClientAgentData()\n .then(async (uploadIds) => { \n this.submittingFileParseUpload = true;\n let results: RequestResult[] = [];\n\n for (let i = 0; i < uploadIds.length; i++) {\n let uploadId = uploadIds[i];\n await this.resubmitFileParseUpload(uploadId)\n .then(result => {\n results.push(result);\n })\n .catch(result => {\n results.push(result);\n });\n }\n\n return results;\n })\n .then(this.handleResubmit)\n .catch(this.handleSaveError)\n .finally(() => {\n this.submittingFileParseUpload = false;\n this.agentObj = null;\n });\n }\n\n private handleResubmit(results: RequestResult[]) { \n if (results.some(r => !r.Success)) { \n let message = 'An error occurred resubmitting the uploaded data. Please contact support.';\n alert(message, 'Error');\n } \n\n this.hidingEdit();\n }\n\n private handleSaveError(result: RequestResult) { \n let message = 'An unknown error has occurred. Please contact support';\n // 1 for errors in saving agent data\n if (result.Data == 1) {\n message = 'An error occurred while saving the agent data. Please try submitting it again.';\n }\n // 2 for errors in resubmitting file parse upload ids\n else if (result.Data == 2) {\n message = 'An error while resubmitting upload data. Please view the Submitted Files table to resubmit the upload manually or contact support.';\n }\n\n alert(message, 'Error');\n }\n\n saveClientAgentData() : Promise {\n //Creating a new client-agent or creating a new agent\n let result = this.clientAgentInfo.Agent.AgentId == this.emptyGuid || this.clientAgentInfo.ClientAgentId == 0\n ? this.clientAgentService.createClientAgentData(this.clientAgentInfo)\n : this.updateClientAgentData();\n \n this.agentObj = _.cloneDeep(this.clientAgentInfo); \n\n return result;\n }\n\n private async updateClientAgentData() {\n let clientId = this.clientAgentInfo.Client.ClientId;\n var ids = await this.clientAgentService.updateClientAgentData(this.clientAgentInfo); \n return ids;\n }\n\n resubmitFileParseUpload(fileUploadId: Guid) : Promise { \n return this.client.sendRequest(HttpMethodEnum.Patch, `/api/FileParseUploads/${fileUploadId}`);\n }\n\n getUnsetCountries(setCountryCodes: string[], result: CountryDto[]) : CountryDto[] { \n let uniqueUnset = _.uniqBy(this.origUnsetCountries.concat(result), c => c.CountryCode);\n return uniqueUnset\n .filter(c => !setCountryCodes.includes(c.CountryCode))\n .sort((c1, c2) => c1.CountryCode < c2.CountryCode ? -1 : c1.CountryCode > c2.CountryCode ? 1 : 0);\n }\n\n onPopupHidden(e:any){\n this.mainEmailSource = [''];\n this.selectedMainEmail = [];\n this.emailCCSource = [''];\n this.selectedEmailCC = [];\n } \n}\n","export enum TextTemplateTypeEnum {\n AutoText = 1,\n FeeSheetInstructions = 2,\n FeeSheetEmail = 3,\n AnalysisReport = 4,\n AuditorReport = 5,\n RespondToAgent = 6,\n ForwardToClient = 7\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-info-edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-info-edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./agent-info-edit.vue?vue&type=template&id=ea0c58e2&scoped=true&\"\nimport script from \"./agent-info-edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./agent-info-edit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./agent-info-edit.vue?vue&type=style&index=0&id=ea0c58e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea0c58e2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visibility)?_c('div',{staticClass:\"tabDiv\"},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\",staticStyle:{\"width\":\"25%\"}},[_vm._v(\"Analysis Report Email Template\")]),_c('div',{staticClass:\"dx-field-value\",staticStyle:{\"width\":\"75%\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',[_c('dx-lookup',{attrs:{\"width\":300,\"visible\":_vm.visibility,\"placeholder\":\"Select template\",\"data-source\":_vm.analysisEmailDataSource,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":false,\"popup-height\":400,\"value\":_vm.clientReportModel.AnalysisTemplateId},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"AnalysisTemplateId\", $event)}}})],1),_c('div',{staticStyle:{\"margin-left\":\"20px\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"styling-mode\":\"outlined\",\"text\":\"Template Editor\"},on:{\"click\":_vm.onOpenTemplateEditor}})],1)])])]),_c('div',[_c('h4',{staticClass:\"section-header\"},[_vm._v(\"Analysis Report Options\")]),_c('div',[_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.SplitByResponsibleAttorney,\"text\":\"Split Reports by Responsible Attorney\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"SplitByResponsibleAttorney\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.SplitByGroup,\"text\":\"Split Reports by Group\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"SplitByGroup\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.HighFeeWarnings,\"text\":\"Include High Fee Warnings\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"HighFeeWarnings\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.HighExpenditureWarnings,\"text\":\"Include High Expenditure Warnings\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"HighExpenditureWarnings\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.AuditorReportAllInOne,\"text\":\"Include Auditor Report All In One\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"AuditorReportAllInOne\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.PotentialSavings,\"text\":\"Include Potential Savings\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"PotentialSavings\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.clientReportModel.MatterRunningTotal,\"text\":\"Include Matter Running Totals\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"MatterRunningTotal\", $event)}}})],1)]),_c('div',{staticClass:\"dx-field buffer-field\",attrs:{\"id\":\"bufferAmountId\"},on:{\"mouseenter\":_vm.toggleDefault,\"mouseleave\":_vm.toggleDefault}},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Buffer Amount\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',[_c('dx-number-box',{attrs:{\"value\":_vm.clientReportModel.BufferAmount,\"width\":75,\"format\":\"$ #,##0.##;($ #,##0.##)\",\"min\":0},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"BufferAmount\", $event)}}})],1)])])])]),_c('dx-tooltip',{attrs:{\"visible\":_vm.bufferTooltip,\"target\":\"#bufferAmountId\"}},[_vm._v(\"\\n Do not print overages on the auditing or analysis reports if they don't exceed the rule by at least this buffer amount.\\n \")])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '../store';\nimport { TextTemplateDto } from '@/models/TextTemplateDto';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\n\nexport class TextTemplateService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '');\n }\n\n public async getTextTemplate(type: TextTemplateTypeEnum | string): Promise {\n return await this.client.get(`/api/texttemplate?textTemplateType=${type}`);\n }\n\n public async getAvailableAutoText(textTemplateType: TextTemplateTypeEnum | string): Promise {\n return await this.client.get(`/api/texttemplate/available-auto-texts?textTemplateType=${textTemplateType}`);\n }\n\n public async insertTextTemplate(data: TextTemplateDto): Promise {\n return await this.client.postJson(`/api/texttemplate`, data);\n }\n\n public async updateTextTemplate(data: TextTemplateDto): Promise {\n return await this.client.putJson(`/api/texttemplate`, data);\n }\n\n public async checkIfExists(name: string, textTemplateType?: TextTemplateTypeEnum): Promise> {\n const query = `/api/texttemplate/check-if-exist?name=${name}&textTemplateType=${textTemplateType}`;\n return await this.client.getJson(query);\n }\n\n public async getTextTemplateById(id: Guid): Promise {\n return await this.client.get(`/api/texttemplate/${id}`);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'; \nimport {DxLookup} from 'devextreme-vue/lookup';\nimport {DxTooltip} from 'devextreme-vue/tooltip';\nimport {DxButton} from 'devextreme-vue/button';\nimport _ from 'lodash';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport { DxCheckBox } from 'devextreme-vue';\nimport { ClientReportOptionDto } from '../../models/client/ClientReportOptionDto';\nimport { ClientService } from '@/service/ClientService';\nimport {DxValidator, DxRequiredRule} from 'devextreme-vue/validator';\nimport { DxNumberBox } from 'devextreme-vue/number-box';\n\n@Component({\n components: { \n DxLookup,\n DxButton,\n DxCheckBox,\n DxValidator,\n DxRequiredRule,\n DxNumberBox,\n DxTooltip\n }\n})\n\nexport default class AnaylisReport extends Vue {\n $refs: Vue['$refs'] & {\n \n } = {};\n\n @Prop({default : false}) \n visible!: boolean;\n\n @Prop({default : ''})\n clientId!: Guid;\n\n @Prop()\n clientReportOptionModel!: ClientReportOptionDto;\n\n get clientReportModel() {\n return this.clientReportOptionModel;\n }\n set clientReportModel(val: ClientReportOptionDto) {\n this.clientReportOptionModel = val;\n }\n\n get ClientId() : Guid {\n return this.clientId;\n }\n\n get visibility() : boolean {\n return this.visible;\n }\n\n @Watch(\"visible\")\n async onVisibleChanged(newVal: boolean, oldVal: boolean) {\n if(newVal) {\n\n }\n }\n\n @Prop({ default: false })\n showEmailTemplate!: boolean;\n\n @Watch(\"showEmailTemplate\")\n onValueChanged(newValue: boolean, oldValue: boolean) {\n if(!newValue) {\n this.analysisEmailDataSource.reload();\n }\n }\n\n bufferTooltip: boolean = false;\n textTemplateService: TextTemplateService;\n clientService: ClientService;\n analysisEmailStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.AnalysisReport)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n });\n analysisEmailDataSource: DataSource = new DataSource({\n store: this.analysisEmailStore,\n searchExpr: \"Name\"\n })\n toggleDefault(e: any) {\n this.bufferTooltip = !this.bufferTooltip;\n }\n\n constructor() {\n super();\n this.textTemplateService = new TextTemplateService();\n this.clientService = new ClientService();\n \n \n }\n onOpenTemplateEditor(e:any) {\n this.$emit(\"update:showEmailTemplate\", true);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-report.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-report.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./analysis-report.vue?vue&type=template&id=2fb940bc&scoped=true&\"\nimport script from \"./analysis-report.vue?vue&type=script&lang=ts&\"\nexport * from \"./analysis-report.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./analysis-report.vue?vue&type=style&index=0&id=2fb940bc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fb940bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visibility)?_c('div',{staticClass:\"tabDiv client-auditor-report\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\",staticStyle:{\"width\":\"25%\"}},[_vm._v(\"Auditor Report Email Template\")]),_c('div',{staticClass:\"dx-field-value\",staticStyle:{\"width\":\"75%\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',[_c('dx-lookup',{attrs:{\"width\":300,\"visible\":_vm.visibility,\"placeholder\":\"Select template\",\"data-source\":_vm.auditorEmailDataSource,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":false,\"popup-height\":400,\"value\":_vm.clientReportModel.AuditorTemplateId},on:{\"update:value\":function($event){return _vm.$set(_vm.clientReportModel, \"AuditorTemplateId\", $event)}}})],1),_c('div',{staticStyle:{\"margin-left\":\"20px\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"styling-mode\":\"outlined\",\"text\":\"Template Editor\"},on:{\"click\":_vm.onOpenTemplateEditor}})],1)])])])]),_c('div',{staticStyle:{\"height\":\"80%\"}},[_c('h4',{staticClass:\"section-header\"},[_vm._v(\"Agents to Receive Reports\")]),_c('dx-data-grid',{ref:\"clientAgentSelection\",attrs:{\"data-source\":_vm.agentToCustomStoreOptions,\"width\":\"100%\",\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"showFilterRow\":true,\"rowAlternationEnabled\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":false,\"height\":\"100%\",\"visible\":_vm.visibility,\"focused-row-enabled\":true,\"paging\":{ enabled: false }},on:{\"selection-changed\":_vm.onSelectionChanged,\"content-ready\":_vm.onContentReady},scopedSlots:_vm._u([{key:\"badgesTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"badges\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\"},on:{\"click\":function($event){return _vm.openEdit(data.data)}}})],1)])}}],null,false,1417969596)},[_c('dx-selection',{attrs:{\"mode\":\"multiple\",\"select-all-mode\":\"allPages\",\"show-check-boxes-mode\":\"always\"}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-scrolling',{attrs:{\"mode\":\"infinite\",\"preload-enabled\":true,\"row-rendering-mode\":\"virtual\"}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-column',{attrs:{\"data-field\":\"PrimaryAlias.AgentAlias\",\"data-type\":\"string\",\"caption\":\"Agent Name\",\"max-width\":\"200\",\"width\":\"200\",\"allowHeaderFiltering\":true,\"allow-editing\":false,\"header-filter\":{ allowSearch: true }}}),_c('dx-column',{attrs:{\"data-field\":\"AgentEmail\",\"data-type\":\"string\",\"caption\":\"Agent Email\",\"allow-editing\":false,\"cssClass\":\"wrapColumnClass\",\"allow-sorting\":false,\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"AgentCCEmail\",\"data-type\":\"string\",\"caption\":\"Email CC\",\"allow-editing\":false,\"cssClass\":\"wrapColumnClass\",\"allow-sorting\":false,\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"LatestBatch\",\"data-type\":\"string\",\"caption\":\"Latest Batch\",\"allow-editing\":false,\"allow-filtering\":true,\"allow-sorting\":true,\"allowHeaderFiltering\":true,\"header-filter\":{ dataSource: _vm.sortBatchFilter }}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"max-width\":\"50\",\"width\":\"50\",\"cell-template\":\"badgesTemplate\",\"cssClass\":\"badge-cell\"}})],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'; \nimport _ from 'lodash';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport DataSource from 'devextreme/data/data_source'; \nimport {DxLookup} from 'devextreme-vue/lookup';\nimport {DxButton} from 'devextreme-vue/button';\nimport {\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxFilterRow,\n DxScrolling,\n DxLoadPanel,\n DxSelection\n} from 'devextreme-vue/data-grid';\nimport {DxValidator, DxRequiredRule} from 'devextreme-vue/validator';\nimport { ClientReportOptionDto } from '@/models/client/ClientReportOptionDto';\nimport { ClientAgentService } from '@/service/ClientAgentService';\nimport DevExpress from 'devextreme';\nimport { ClientAgentInfoDto } from '@/models/client-agent/ClientAgentInfoDto';\n\n@Component({\n components: { \n DxLookup,\n DxButton,\n DxValidator,\n DxRequiredRule,\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxFilterRow,\n DxScrolling,\n DxLoadPanel,\n DxSelection\n }\n})\n\nexport default class AuditorReport extends Vue {\n public $refs: Vue['$refs'] & {\n clientAgentSelection?: DxDataGrid;\n } = {};\n @Prop({ default: false })\n showEmailTemplate!: boolean;\n\n @Watch(\"showEmailTemplate\")\n onValueChanged(newValue: boolean, oldValue: boolean) {\n if(!newValue) {\n this.auditorEmailDataSource.reload();\n }\n }\n\n @Prop({default : false}) \n visible!: boolean;\n\n @Prop()\n clientReportOptionModel!: ClientReportOptionDto;\n\n @Prop()\n selectedClientAgentIds!: number[] | null; \n\n get clientAgentDataGrid(): DevExpress.ui.dxDataGrid {\n return ((this.$refs.clientAgentSelection as any).instance as DevExpress.ui.dxDataGrid);\n } \n\n get selectedKeys() {\n return this.selectedClientAgentIds;\n }\n get clientReportModel() {\n return this.clientReportOptionModel;\n }\n set clientReportModel(val: ClientReportOptionDto) {\n this.clientReportOptionModel = val;\n }\n\n get visibility() : boolean {\n return this.visible;\n }\n\n get agentToCustomStoreOptions() {\n return new CustomStore({ \n key: 'ClientAgentId',\n load: (options): Promise => {\n if(this.clientReportModel.ClientId) {\n return this.clientAgentService\n .getClientAgentForReport(this.clientReportModel.ClientId,options)\n .then((result: any) => {\n this.getSelectedKeys(result.Data.data);\n\n return result.Data; \n })\n .catch(err => {\n return [];\n });\n }\n else {\n return Promise.resolve([]);\n }\n } \n });\n }\n\n getSelectedKeys(data:any) { \n if(this.selectedKeys == null) {\n let selectedKeys = data.filter((item: any) => item.ReceivesReport)\n .map((item: any) => item.ClientAgentId);\n\n this.$emit(\"update:selectedClientAgentIds\", selectedKeys);\n }\n }\n \n\n clientAgentService: ClientAgentService;\n textTemplateService: TextTemplateService;\n auditorEmailStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.AuditorReport)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n });\n auditorEmailDataSource: DataSource = new DataSource({\n store: this.auditorEmailStore,\n searchExpr: \"Name\"\n })\n\n constructor() {\n super();\n this.textTemplateService = new TextTemplateService();\n this.clientAgentService = new ClientAgentService();\n }\n onOpenTemplateEditor(e:any) {\n this.$emit(\"update:showEmailTemplate\", true);\n }\n\n openEdit(e:any) { \n this.$emit(\"showEdit\", e);\n }\n\n selectedIdsTemp: number[] | undefined;\n onSelectionChanged(e:any) { \n let selectedRowKeys = e.component.getSelectedRowKeys();\n \n this.$emit(\"update:selectedClientAgentIds\", selectedRowKeys);\n } \n\n private onContentReady(e:any): void { \n if(!e.component.__firstLoad) { \n e.component.option(\"selectedRowKeys\", this.selectedKeys);\n\n e.component.__firstLoad = true;\n } \n }\n\n mounted() {\n this.$root.$on(\"refresh-client-agent-selection\", this.handleEventBus);\n }\n\n beforeDestroy() {\n this.$root.$off(\"refresh-client-agent-selection\", this.handleEventBus);\n } \n\n private handleEventBus(data: ClientAgentInfoDto): void { \n // manually update the row \n const focusedRowKey = this.clientAgentDataGrid.option('focusedRowKey');\n \n const rows = this.clientAgentDataGrid.getVisibleRows();\n const rowIndex = this.clientAgentDataGrid.getRowIndexByKey(focusedRowKey); \n \n let row = rows[rowIndex]; \n \n row.data.AgentCCEmail = data.AgentCCEmail;\n row.data.AgentEmail = data.AgentEmail;\n row.data.PrimaryAlias = data.PrimaryAlias; \n row.data.Jurisdictions = data.Jurisdictions;\n row.data.JurisdictionFree = data.JurisdictionFree;\n row.data.VendorNumber = data.VendorNumber;\n row.data.UnsetCountries = data.UnsetCountries;\n\n let rowIndexes = [];\n rowIndexes.push(rowIndex);\n\n this.clientAgentDataGrid.repaintRows(rowIndexes); \n } \n\n private sortBatchFilter(data: any): void { \n data.dataSource.postProcess = (results: any) => { \n return _.orderBy(results,['value'],['desc']);\n }\n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-report.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-report.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./auditor-report.vue?vue&type=template&id=1eb9e9bc&scoped=true&\"\nimport script from \"./auditor-report.vue?vue&type=script&lang=ts&\"\nexport * from \"./auditor-report.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./auditor-report.vue?vue&type=style&index=0&id=1eb9e9bc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1eb9e9bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visibility)?_c('div',{staticClass:\"tabDiv\"},[_c('div',{staticClass:\"dx-card\"},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Short Name\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-text-box',{attrs:{\"stylingMode\":\"underlined\"},model:{value:(_vm.shortName),callback:function ($$v) {_vm.shortName=$$v},expression:\"shortName\"}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Contact Email\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"accept-custom-value\":true,\"hide-selected-items\":true,\"stylingMode\":\"outlined\",\"value\":_vm.primaryEmail,\"data-source\":_vm.primaryEmailSource,\"tag-template\":\"tag\",\"defer-rendering\":false,\"placeholder\":\"\"},on:{\"update:value\":function($event){_vm.primaryEmail=$event},\"opened\":_vm.onTagBoxOpened,\"custom-item-creating\":function($event){return _vm.onCustomItemCreatingEvent($event,'primary')}},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}],null,false,340690720)},[_c('dx-validator',[_c('dx-pattern-rule',{attrs:{\"type\":\"email\"}})],1)],1)],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Contact Email CC\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"accept-custom-value\":true,\"hide-selected-items\":true,\"stylingMode\":\"outlined\",\"value\":_vm.ccEmail,\"data-source\":_vm.ccEmailSource,\"tag-template\":\"tag\",\"defer-rendering\":false,\"placeholder\":\"\"},on:{\"update:value\":function($event){_vm.ccEmail=$event},\"opened\":_vm.onTagBoxOpened,\"custom-item-creating\":function($event){return _vm.onCustomItemCreatingEvent($event,'cc')}},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}],null,false,340690720)},[_c('dx-validator',[_c('dx-pattern-rule',{attrs:{\"type\":\"email\"}})],1)],1)],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Active Client\")]),_c('div',[_c('dx-check-box',{model:{value:(_vm.active),callback:function ($$v) {_vm.active=$$v},expression:\"active\"}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Assigned Users\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"value\":_vm.assignedUsers,\"hide-selected-items\":true,\"data-source\":_vm.usersList,\"search-enabled\":true,\"showSelectionControls\":true,\"value-expr\":\"Id\",\"display-expr\":\"Username\",\"stylingMode\":\"outlined\",\"applyValueMode\":\"useButtons\"},on:{\"update:value\":function($event){_vm.assignedUsers=$event}}})],1)])])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'; \nimport {DxLookup} from 'devextreme-vue/lookup';\nimport {DxButton} from 'devextreme-vue/button';\nimport _ from 'lodash';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport { DxCheckBox, DxTextBox, DxTagBox } from 'devextreme-vue';\nimport { ClientReportOptionDto } from '../../models/client/ClientReportOptionDto';\nimport { ClientService } from '@/service/ClientService';\nimport {DxValidator, DxRequiredRule, DxPatternRule} from 'devextreme-vue/validator';\nimport { UserDto } from '../../models/UserDto';\nimport { ClientDetailDto } from '../../models/client/ClientDto';\n\n@Component({\n components: { \n DxLookup,\n DxButton,\n DxCheckBox,\n DxValidator,\n DxRequiredRule,\n DxPatternRule,\n DxTextBox,\n DxTagBox\n }\n})\n\nexport default class ClientSetupMain extends Vue {\n $refs: Vue['$refs'] & {\n } = {};\n\n private readonly emailSeparator: string = ';';\n private primaryEmailSource: Array = [];\n private ccEmailSource: Array = [];\n\n get primaryEmail() {\n return this.clientEmail && this.clientEmail.trim() ? this.clientEmail.split(this.emailSeparator) : [];\n }\n\n set primaryEmail(value:Array) {\n if(this.newTagValue) {\n if(!value.find(x=> this.newTagValue === x)) {\n value.push(this.newTagValue)\n }\n this.newTagValue=null;\n }\n this.$emit('update:clientEmail', value.join(this.emailSeparator))\n }\n\n get ccEmail() {\n return this.clientCCEmail && this.clientCCEmail.trim() ? this.clientCCEmail.split(this.emailSeparator) : [];\n }\n\n set ccEmail(value:Array) {\n if(this.newTagValue) {\n if(!value.find(x=> this.newTagValue === x)) {\n value.push(this.newTagValue)\n }\n this.newTagValue=null;\n }\n this.$emit('update:clientCCEmail', value.join(this.emailSeparator))\n }\n\n get assignedUsers () {\n return this.clientUsers ? this.clientUsers : []\n }\n\n set assignedUsers (value: Array) {\n this.$emit('update:clientUsers', value)\n }\n\n get shortName() {\n return this.clientShortName || \"\";\n }\n\n set shortName(value: string) {\n this.$emit('update:clientShortName', value)\n }\n\n get active() {\n return this.clientActive ? true : false;\n }\n\n set active(value: boolean) {\n this.$emit('update:clientActive', value)\n }\n\n @Prop({default : false}) \n visible!: boolean;\n\n @Prop({default : ''})\n clientId!: Guid;\n\n @Prop({default: () => new Array() })\n userDataSource!: Array;\n\n @Prop()\n clientEmail!: string | null;\n\n @Prop()\n clientCCEmail!: string | null;\n\n @Prop()\n clientShortName!: string | null;\n\n @Prop()\n clientUsers!: Array;\n\n @Prop()\n clientActive!: boolean | null;\n\n get ClientId() : Guid {\n return this.clientId;\n }\n\n get visibility() : boolean {\n return this.visible;\n }\n\n constructor() {\n super();\n }\n\n mounted() {\n this.setUpEmailSources();\n }\n\n setUpEmailSources() {\n this.ccEmail.forEach(x=> {\n this.ccEmailSource.push(x);\n });\n\n this.primaryEmail.forEach(x=> {\n this.primaryEmailSource.push(x)\n });\n }\n\n get usersList() {\n return this.userDataSource;\n }\n\n private newTagValue: string | null = null;\n onCustomItemCreatingEvent(e:{component: DxTagBox, text: string, element: HTMLElement, customItem: string}, source: string) {\n \n if(source == \"primary\") {\n if(!this.primaryEmailSource.find(x=> e.text)) {\n this.primaryEmailSource.push(e.text);\n }\n else {\n this.newTagValue = e.text;\n }\n }\n\n if(source == \"cc\") {\n if(!this.ccEmailSource.find(x=> e.text)) {\n this.ccEmailSource.push(e.text);\n }\n else {\n this.newTagValue = e.text;\n }\n }\n }\n\n onTagBoxOpened(e:any) {\n e.component.content().remove();\n }\n\n checkEmailValidation(text: string) {\n return /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(text)\n }\n\n tagItemStyle(e:any) {\n let isValid = this.checkEmailValidation(e);\n if(!isValid) {\n return { 'background-color' : '#e43c3c' }\n }\n return {};\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-main.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-main.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-setup-main.vue?vue&type=template&id=689735bf&scoped=true&\"\nimport script from \"./client-setup-main.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-setup-main.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./client-setup-main.vue?vue&type=style&index=0&id=689735bf&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"689735bf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"width\":800,\"height\":\"auto\",\"max-width\":\"95%\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Create and Edit Templates\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"hidden\":_vm.onPopuphidden,\"showing\":_vm.onPopupShowing,\"shown\":_vm.onPopupShown,\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.saveEmailTemplate}},[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"email-template-editor\"},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"template-selection\"},[_c('div',{staticClass:\"selection\"},[_c('div',{staticClass:\"type-selection\"},[_c('dx-select-box',{attrs:{\"value\":_vm.textTemplate.TextTemplateTypeId,\"data-source\":_vm.textTemplateType,\"valueExpr\":\"key\",\"displayExpr\":\"value\",\"search-enabled\":true,\"width\":200,\"popup-height\":\"500\",\"onSelectionChanged\":_vm.onSelectionChanged,\"placeholder\":\"Select Template Type\"},on:{\"update:value\":function($event){return _vm.$set(_vm.textTemplate, \"TextTemplateTypeId\", $event)}}},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}})],1)],1)],1),_c('dx-lookup',{attrs:{\"data-source\":_vm.textTemplateStore,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"width\":300,\"popup-height\":\"500\",\"onSelectionChanged\":_vm.onSelectionTextChanged,\"placeholder\":\"Select Existing Text\",\"value\":_vm.selectedText},on:{\"update:value\":function($event){_vm.selectedText=$event}}})],1)]),_c('div',{staticClass:\"available-auto-text\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Available Auto Texts\")]),_c('dx-list',{staticClass:\"list-of-auto-texts\",attrs:{\"dataSource\":_vm.allAvailableAutoText,\"height\":\"150\",\"selectionMode\":'single'},on:{\"selection-changed\":_vm.onAvailableAutoTextChanged}})],1)]),_c('div',{staticClass:\"content\"},[_c('dx-html-editor',{ref:\"textAreaRef\",attrs:{\"value\":_vm.textTemplate.Text,\"value-type\":\"html\",\"height\":\"500\",\"validation-message-mode\":\"always\"},on:{\"update:value\":function($event){return _vm.$set(_vm.textTemplate, \"Text\", $event)}}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1),_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}})],1)],1)],1)])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxTextBox\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.saveAsOption}}),(_vm.saveOrUpdate == 'Update')?_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":{ text: 'New', type: 'normal', stylingMode: 'contained', onClick: _vm.forNew }}}):_vm._e(),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: _vm.saveOrUpdate, type: 'default', stylingMode: 'contained', onClick: _vm.saveEmailTemplate},\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Popup } from '@questelservices/common-vue';\nimport { Prop } from 'vue-property-decorator';\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxList, DxLookup,DxPopup , DxSelectBox} from 'devextreme-vue';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxValidator, DxRequiredRule, DxStringLengthRule } from 'devextreme-vue/validator';\nimport { TextTemplateDto } from '@/models/TextTemplateDto';\nimport _ from 'lodash';\nimport dialog from 'devextreme/ui/dialog';\nimport Lookup from 'devextreme/ui/lookup';\nimport dxHtmlEditor from 'devextreme/ui/html_editor';\nimport DxValidationGroup from 'devextreme-vue/validation-group';\nimport ValidationGroup from 'devextreme/ui/validation_group';\nimport String from '@/utilities/String';\nimport * as overlay from 'devextreme/ui/overlay';\n\nconst editorStatus = {\n valid : 'valid',\n invalid : 'invalid',\n pending : 'pending'\n}\n\nconst validationRule = {\n requiredError : {\n message : 'This is required.'\n },\n existError : {\n message : 'This already exists.'\n },\n noError : {}\n}\n\n@Component({\n components: {\n Popup,\n DxLookup,\n DxList,\n DxToolbarItem,\n DxHtmlEditor,\n DxItem,\n DxToolbar,\n DxValidator,\n DxRequiredRule,\n DxStringLengthRule,\n DxValidationGroup,\n DxPopup,\n DxSelectBox\n }\n})\nexport default class EmailTemplateEditor extends Vue {\n $refs: Vue['$refs'] & {\n savedTypeTemplateRef?: Lookup;\n savedTextTemplateRef?: Lookup;\n textAreaRef?: DxHtmlEditor;\n validationGroupRef? : ValidationGroup;\n } = {};\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) { \n this.$emit(\"hiding\");\n }\n\n private get savedTypeTemplate() {\n return ((this.$refs.savedTypeTemplateRef as Lookup).instance as any); \n }\n\n private get savedTextTemplate() {\n return ((this.$refs.savedTextTemplateRef as Lookup).instance as any); \n }\n\n private get textArea() {\n return (this.$refs.textAreaRef as DxHtmlEditor).instance as dxHtmlEditor;\n }\n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n } \n\n selectedText: Guid = ''; \n textTemplateStore: CustomStore | Array = [];\n textTemplateService : TextTemplateService;\n textTemplateType : Array;\n allAvailableAutoText: CustomStore;\n nameValue: string = '';\n textTemplate : TextTemplateDto;\n saveOrUpdate : string = \"Save\";\n showConfirmation: boolean = false;\n\n availableAutoText(type: TextTemplateTypeEnum | number | undefined = undefined) {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n if(type) {\n return this.textTemplateService.getAvailableAutoText(type)\n .then((results: string[]) => {\n return results;\n } \n )\n .catch(err=> []);\n }\n else {\n return Promise.resolve([]);\n }\n } \n });\n }\n \n templateStore(type: TextTemplateTypeEnum | number | undefined = undefined) {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n if(type) {\n return this.textTemplateService.getTextTemplate(type)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n else {\n return Promise.resolve([]);\n }\n }\n });\n }\n\n constructor() {\n super();\n this.textTemplate = this.defaultValue();\n this.textTemplateService = new TextTemplateService();\n this.allAvailableAutoText = this.availableAutoText();\n this.textTemplateType = [];\n overlay.baseZIndex(2000);\n }\n\n private defaultValue(textVal: string = \"\"): TextTemplateDto {\n return {\n TextTemplateId: \"00000000-0000-0000-0000-000000000000\",\n Name: \"\",\n Text: textVal,\n Favorite: false \n }\n }\n\n onSelectionTextChanged(e:any) { \n if(e.selectedItem) {\n this.textTemplate.Text = e.selectedItem.Text;\n this.textTemplate.Name = e.selectedItem.Name;\n this.nameValue = e.selectedItem.Name;\n this.textTemplate.Favorite = e.selectedItem.Favorite;\n this.textTemplate.TextTemplateId = e.selectedItem.TextTemplateId;\n this.saveOrUpdate = \"Update\";\n this.saveAsOption =this.textBoxOption(true, editorStatus.valid, validationRule.noError);\n this.saveAsOption.value = e.selectedItem.Name;\n\n this.textArea.option('value', e.selectedItem.Text);\n let length = this.textArea.getLength();\n this.textArea.getQuillInstance().selection.setRange({ index: length, length: 0 });\n }\n\n if(!this.selectedText) {\n this.onNew(e.selectedItem);\n }\n }\n \n onSelectionChanged(e:any) {\n if(e.selectedItem) {\n this.textTemplateStore = this.templateStore(e.selectedItem.key);\n this.allAvailableAutoText = this.availableAutoText(e.selectedItem.key);\n }\n else {\n this.textTemplateStore = [];\n this.onNew(e.selectedItem);\n }\n }\n\n saveAsOption: any = this.textBoxOption();\n\n textBoxOption(valid: boolean = true, \n status: string = editorStatus.valid,\n error: any = validationRule.noError) {\n\n \n return {\n width: '200px',\n placeholder:'Save as',\n value: this.nameValue,\n validationStatus: status,\n validationError : error,\n onValueChanged: this.onValueChanged,\n isValid : valid,\n maxLength: 50,\n onFocusOut: this.onFocusOut,\n valueChangeEvent: 'keyup'\n }\n }\n\n onFocusOut(e: any) {\n if (String.isNullOrEmpty(this.nameValue)) {\n this.saveAsOption = this.textBoxOption(false, editorStatus.invalid, validationRule.requiredError);\n }\n }\n\n onNew(itemSelected: any) { \n this.saveOrUpdate = \"Save\";\n // need to save this to a temp variable so that we can set\n // it back after it's being cleared when calling this.defaultValue\n const tempTextTemplateTypeId = this.textTemplate.TextTemplateTypeId;\n this.textTemplate = this.defaultValue();\n this.textTemplate.TextTemplateTypeId = tempTextTemplateTypeId;\n this.selectedText = '';\n this.nameValue = '';\n if(itemSelected) {\n this.saveAsOption = this.textBoxOption(false,editorStatus.invalid, validationRule.requiredError);\n }\n else{\n this.saveAsOption = this.textBoxOption();\n }\n }\n\n onValueChanged(e: any) {\n this.nameValue = e.value;\n if (!String.isNullOrEmpty(this.nameValue)) {\n if (!this.saveAsOption.isValid) {\n this.saveAsOption.isValid = true;\n this.saveAsOption.validationStatus = editorStatus.valid;\n this.saveAsOption.validationError = validationRule.noError;\n\n e.component.option('isValid', this.saveAsOption.isValid);\n e.component.option('validationStatus', this.saveAsOption.validationStatus);\n e.component.option('validationError', this.saveAsOption.validationError);\n }\n }\n }\n\n onAvailableAutoTextChanged(e: any) {\n if (e.addedItems != null && e.addedItems.length > 0) {\n let index = this.textArea.getQuillInstance().selection.savedRange.index;\n\n this.textArea.insertText(index, e.addedItems[0], {});\n let newIndex = index + e.addedItems[0].length;\n\n this.textArea.setSelection(newIndex, 0);\n e.component.instance().unselectAll();\n }\n }\n\n saveEmailTemplate(e: any) {\n this.toSave(false);\n }\n forNew(evnt: any) {\n this.toSave(true);\n }\n\n async toSave(isForNew: boolean) { \n var isValid = true;\n if(!this.nameValue && !this.textTemplate.Name){\n this.saveAsOption = this.textBoxOption(false,editorStatus.invalid, validationRule.requiredError);\n isValid = false;\n }\n let validate = this.validationGroup.validate();\n\n if(!validate.isValid) {\n isValid = false;\n }\n\n if (this.textArea.option('isValid') === false) {\n isValid = false;\n }\n\n if(isValid) {\n this.showConfirmation = true;\n let result = await dialog.confirm(\"Are you sure?\", \"Confirm Changes\"); \n if(result) {\n let payload = _.clone(this.textTemplate);\n if(isForNew) {\n payload.TextTemplateId = this.defaultValue().TextTemplateId;\n }\n\n this.saveAsOption = this.textBoxOption(true,editorStatus.pending);\n if(this.nameValue !== payload.Name || isForNew) {\n payload.Name = this.nameValue;\n\n this.textTemplateService.checkIfExists(payload.Name, payload.TextTemplateTypeId)\n .then(result => { \n if (result.Data === true) {\n this.saveAsOption = this.textBoxOption(false, editorStatus.invalid, validationRule.existError);\n } else {\n this.newUpdateOrSave(payload);\n }\n })\n .catch(reason => { \n dialog.alert('An error occurred saving the template. Please try again.', 'Error');\n });\n }\n else {\n this.newUpdateOrSave(payload);\n }\n }\n }\n }\n\n newUpdateOrSave(payload: TextTemplateDto) {\n if(payload.TextTemplateId === this.defaultValue().TextTemplateId){\n this.textTemplateService.insertTextTemplate(payload)\n .then(result => {\n this.showingDialog = false;\n })\n .catch(error => {\n\n }); \n }\n else {\n this.textTemplateService.updateTextTemplate(payload)\n .then(result => {\n this.showingDialog = false;\n })\n .catch(error => {\n\n });\n }\n }\n \n\n hidingDialog(e: any){\n this.showingDialog = false;\n }\n\n onPopuphidden(e:any) {\n this.textTemplate = this.defaultValue();\n this.allAvailableAutoText = this.availableAutoText();\n \n }\n onPopupShowing(e:any) {\n this.saveAsOption = this.textBoxOption();\n }\n\n onPopupShown(e: any) {\n let value: any[] = [];\n for (const key in TextTemplateTypeEnum) {\n let propValue = parseInt(key, 10) >= 0;\n if (propValue) {\n value.push({\n 'key': key,\n 'value': TextTemplateTypeEnum[key].split(/(?=[A-Z])/).join(' ')\n });\n }\n }\n\n this.textTemplateType = _.sortBy(value, t => t.value);\n this.validationGroup.reset();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-template-editor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-template-editor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./email-template-editor.vue?vue&type=template&id=c00c8b20&scoped=true&\"\nimport script from \"./email-template-editor.vue?vue&type=script&lang=ts&\"\nexport * from \"./email-template-editor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./email-template-editor.vue?vue&type=style&index=0&id=c00c8b20&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c00c8b20\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport AgentInfoEdit from '../activity-planner/agent-info-edit.vue';\nimport DxToolbar from 'devextreme-vue/toolbar'\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTabPanel } from 'devextreme-vue/tab-panel';\nimport { SelectOption } from '../../models/SelectOption';\nimport { Popup } from '@questelservices/common-vue'; \nimport AnalysisReport from './analysis-report.vue'\nimport AuditorReport from './auditor-report.vue'\nimport ClientSetupMain from './client-setup-main.vue'\n\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport { DxLoadIndicator } from 'devextreme-vue';\n\nimport EmailTemplateEditor from '../fee-sheets/email-template-editor.vue' \nimport _ from 'lodash';\nimport { ClientReportOptionDto } from '@/models/client/ClientReportOptionDto';\nimport { ClientService } from '@/service/ClientService';\nimport dialog from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport { ClientAgentInfoDto } from '@/models/client-agent/ClientAgentInfoDto';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { UserService } from '../../service/UserService';\nimport { UserDto } from '../../models/UserDto';\nimport { ClientDetailDto } from '../../models/client/ClientDto';\n\n\n@Component({\n components: { \n DxToolbar,\n DxToolbarItem,\n DxTabPanel,\n Popup,\n AnalysisReport,\n EmailTemplateEditor,\n AuditorReport,\n DxLoadIndicator,\n DxValidationGroup,\n AgentInfoEdit,\n ClientSetupMain\n }\n})\n\nexport default class ClientSetupForm extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n @Prop()\n selectedClient!: SelectOption;\n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n\n showEmailTemplate: boolean = false;\n formTabs: Array = [\n \"Main\",\n \"Analysis Reports\",\n \"Auditor Reports\"\n ];\n selectedIndex: number = 0;\n\n get selectedTab() {\n return this.formTabs[this.selectedIndex];\n }\n\n get popupTitle() {\n if(this.selectedClient != undefined) {\n return `${this.selectedClient.text} Setup`\n }\n else {\n return \"Client Setup\";\n } \n }\n\n get clientId() : Guid {\n return \"\" + this.selectedClient.value;\n }\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hidingClientSetup\");\n }\n\n\n @Watch(\"showDialog\")\n async onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) {\n try {\n this.clientReportOptionModel = await this.clientService.getClientReportOption(this.clientId)\n .then(res => res)\n .catch(err => this.reportDefault())\n this.usersList = await this.userService.getUserList()\n .then(res => res)\n .catch(err => new Array());\n this.clientDetails = await this.clientService.getClientDetails(this.clientId)\n .then(res => res)\n .catch(err => new ClientDetailDto());\n }\n finally {\n this.isLoaded = true;\n }\n } \n } \n\n selectedClientAgentIds : number[] | null = null;\n isLoaded: boolean = false; \n clientService: ClientService;\n clientAgentService: ClientAgentService;\n clientReportOptionModel: ClientReportOptionDto;\n userService: UserService;\n usersList: Array = [];\n clientDetails: ClientDetailDto = new ClientDetailDto();\n reportDefault() : ClientReportOptionDto {\n return {\n ClientReportOptionId : '00000000-0000-0000-0000-000000000000',\n ClientId: this.clientId,\n AnalysisTemplateId: undefined,\n AuditorTemplateId: undefined,\n AuditorReportAllInOne: false,\n HighExpenditureWarnings: false,\n HighFeeWarnings: false,\n SplitByGroup:false,\n SplitByResponsibleAttorney: false,\n PotentialSavings: false,\n MatterRunningTotal: false,\n BufferAmount: 0\n }\n }\n\n constructor() {\n super(); \n this.clientReportOptionModel = this.reportDefault();\n this.clientService = new ClientService(); \n this.clientAgentService = new ClientAgentService();\n this.userService = new UserService(); \n } \n \n clientAgentInfo: ClientAgentInfoDto = new ClientAgentInfoDto();\n showingAgentInfo = false;\n onEditAgent(data:any) {\n let cAInfo = new ClientAgentInfoDto();\n\n cAInfo.Agent.AgentId = data.AgentId;\n cAInfo.Agent.AgentName = data.AgentName;\n cAInfo.Client.ClientId = this.clientId;\n cAInfo.Jurisdictions = data.Jurisdictions ? data.Jurisdictions : cAInfo.Jurisdictions;\n cAInfo.AgentEmail = data.AgentEmail;\n cAInfo.UnsetCountries = data.UnsetCountries ? data.UnsetCountries : cAInfo.UnsetCountries;\n cAInfo.JurisdictionFree = data.JurisdictionFree;\n cAInfo.PrimaryAlias = data.PrimaryAlias ? data.PrimaryAlias : cAInfo.PrimaryAlias;\n cAInfo.AgentCCEmail = data.AgentCCEmail ? data.AgentCCEmail : null;\n cAInfo.ClientAgentId = data.ClientAgentId;\n cAInfo.VendorNumber = data.VendorNumber\n this.clientAgentInfo = cAInfo;\n \n this.showingAgentInfo = true;\n }\n\n hidingDialog(data: ClientAgentInfoDto | null) { \n this.showingAgentInfo = false;\n if(data !== null) {\n this.$root.$emit(\"refresh-client-agent-selection\", data);\n } \n }\n\n onPopupHidden(e:any) {\n this.isLoaded = false;\n this.selectedIndex = 0;\n this.selectedClientAgentIds = null;\n this.validationGroup.reset();\n }\n\n async confirmSave() {\n let validate = this.validationGroup.validate();\n\n if(!validate.isValid || !this.clientId) {\n return;\n }\n\n let result = await dialog.confirm(\"Are you sure?\", \"Confirm Changes\");\n \n if(result) {\n await this.updateClientDetails();\n }\n\n if(result && (this.selectedTab == 'Analysis Reports' || this.selectedTab == 'Auditor Reports')) {\n if(this.clientReportOptionModel.ClientReportOptionId === this.reportDefault().ClientReportOptionId){\n let result = await this.clientService.addClientReportOption(this.clientId, this.clientReportOptionModel)\n .then(res => true)\n .catch(err => {\n notify('Failed to save client report options.', 'error', 3000);\n return false;\n });\n \n this.saveClientAgentToReceiveReport(result);\n }\n else{\n let result = await this.clientService.updateClientReportOption(this.clientId, this.clientReportOptionModel)\n .then(res => true)\n .catch(err => {\n notify('Failed to save client report options.', 'error', 3000);\n return false;\n })\n \n this.saveClientAgentToReceiveReport(result);\n }\n }\n }\n\n saveClientAgentToReceiveReport(res: boolean) {\n if(this.selectedClientAgentIds != null && res) {\n this.clientAgentService.setClientAgentToReceiveReport(this.clientId, this.selectedClientAgentIds)\n .then(result => {\n this.hidingEdit();\n })\n .catch(err=> {\n notify('Failed to save client agents to receive report.', 'error', 3000);\n })\n } else {\n this.hidingEdit();\n }\n }\n\n async updateClientDetails() {\n await this.clientService.updateClientDetails(this.clientId, this.clientDetails)\n .then(x=> {\n this.hidingEdit();\n notify('Client details updated.', 'success', 3000);\n return true;\n })\n .catch(x=> {\n notify('Failed to update client.', 'error', 3000);\n return false;\n });\n }\n\n hidingEdit() {\n this.$emit(\"hidingClientSetup\");\n } \n\n onEmailTemplateEditorHidding() {\n this.showEmailTemplate = false;\n\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-form.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-form.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-setup-form.vue?vue&type=template&id=4f503a29&scoped=true&\"\nimport script from \"./client-setup-form.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-setup-form.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./client-setup-form.vue?vue&type=style&index=0&id=4f503a29&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f503a29\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Add New Client\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave,\"showing\":_vm.onPopupShowing}},[_c('dx-scroll-view',[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"newClientContent\"},[_c('h4',[_vm._v(\"Client Name\")]),_c('dx-text-box',{attrs:{\"width\":\"100%\",\"stylingMode\":\"outlined\",\"placeholder\":\"New Client Name\",\"value\":_vm.newClientName},on:{\"update:value\":function($event){_vm.newClientName=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('div',{staticClass:\"newClientContent\"},[_c('h4',[_vm._v(\"Initial Batch Name\")]),_c('dx-text-box',{attrs:{\"width\":\"100%\",\"stylingMode\":\"outlined\",\"placeholder\":\"Initial Batch Name\",\"value\":_vm.initialBatchName},on:{\"update:value\":function($event){_vm.initialBatchName=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('div',{staticClass:\"newClientContent\"},[_c('dx-check-box',{staticStyle:{\"display\":\"inline\"},attrs:{\"stylingMode\":\"outlined\",\"value\":_vm.addDefaultFeeRules,\"width\":80,\"text\":\"Add Default UTBMS FeeType Rules\"},on:{\"update:value\":function($event){_vm.addDefaultFeeRules=$event}}})],1)])],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingCreate },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxButton, DxTextBox, DxCheckBox } from 'devextreme-vue';\nimport { DxValidator, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxScrollView } from 'devextreme-vue/scroll-view'; \nimport { ClientService } from '@/service/ClientService';\nimport notify from 'devextreme/ui/notify';\nimport { Prop } from 'vue-property-decorator';\nimport { confirm, alert } from 'devextreme/ui/dialog';\nimport { ClientDto } from '@/models/client/ClientDto'; \nimport { CreateClientDto } from '@/models/client/CreateClientDto'; \nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\"; \nimport _ from 'lodash';\n\n@Component({\n components: {\n DxButton, \n Popup, \n DxTextBox, \n DxToolbarItem, \n DxCheckBox, \n DxValidator,\n DxCustomRule,\n DxScrollView, \n DxValidationGroup,\n DxRequiredRule\n }\n})\nexport default class CreateClientForm extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n clientService = new ClientService();\n\n clients: ClientDto[] = []; \n\n newClientName: string = \"\";\n initialBatchName: string = \"0\";\n addDefaultFeeRules: boolean = true; \n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hiding\");\n }\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n this.validationGroup.reset(); \n this.newClientName = \"\";\n this.addDefaultFeeRules = true; \n } \n } \n\n onPopupShowing() {\n this.initialBatchName = \"0\";\n }\n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n \n constructor() {\n super(); \n this.loadData(); \n } \n\n async loadData() {\n let clientService = new ClientService();\n this.clients = await clientService.getAll();\n } \n\n hidingCreate() {\n this.showingDialog = false;\n }\n\n async confirmSave() {\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n }\n\n if (this.clients.some(c => c.ClientName.toLowerCase() == this.newClientName.trim().toLowerCase())) {\n alert(\"A client already exists with this name. Please choose a different client name\", \"Client already exists\");\n return;\n }\n\n let confirmMessage = \"Are you sure you want to create the client \";\n if (this.addDefaultFeeRules) {\n confirmMessage += `${this.newClientName} and add default fee type rules for them?`;\n }\n else {\n confirmMessage += `${this.newClientName}?`;\n }\n\n var result = confirm(confirmMessage, \"Create New Client\");\n result\n .then(dialogResult => {\n if(dialogResult) {\n let createClientDto: CreateClientDto = {\n ClientName: this.newClientName,\n InitialBatchName: this.initialBatchName,\n AddDefaultFeeRules: this.addDefaultFeeRules\n }\n\n this.clientService.createClient(createClientDto)\n .then(_ =>{\n this.loadData();\n this.hidingCreate();\n notify(`Successfully created new client ${this.newClientName}`, \"success\", 4000);\n }); \n }\n }\n ); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-client.form.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-client.form.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./create-client.form.vue?vue&type=template&id=4ba18fb6&scoped=true&\"\nimport script from \"./create-client.form.vue?vue&type=script&lang=ts&\"\nexport * from \"./create-client.form.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./create-client.form.vue?vue&type=style&index=0&id=4ba18fb6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ba18fb6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Component from 'vue-class-component';\nimport { DxSelectBox } from 'devextreme-vue';\nimport { DxButton } from 'devextreme-vue';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { SelectOption } from '../models/SelectOption';\nimport { ClientService } from '../service/ClientService';\nimport ClientSetupForm from '../components/client/client-setup-form.vue';\nimport CreateClientForm from '../components/client/create-client.form.vue';\n\n@Component({\n components: { \n PageTitle,\n DxSelectBox,\n DxButton,\n ClientSetupForm,\n CreateClientForm\n }\n})\nexport default class ClientSetup extends Vue {\n clients: Array = [];\n selectedClient: Guid = '';\n showClientSetup: boolean = false\n showCreateClient: boolean = false;\n\n\n clientService: ClientService = new ClientService();\n\n get selectedClientOption() {\n return this.clients.filter(c => c.value == this.selectedClient)[0];\n }\n\n constructor() {\n super(); \n }\n\n mounted() {\n this.loadData();\n }\n\n async loadData() {\n let clients = await this.clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n }\n\n openClientSetup() {\n this.showClientSetup = true;\n }\n\n hidingClientSetup() {\n this.showClientSetup = false;\n }\n\n openCreateClient() {\n this.showCreateClient = true;\n }\n\n async hidingCreateClient() {\n this.showCreateClient = false;\n await this.loadData();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-setup.vue?vue&type=template&id=1df9fba8&\"\nimport script from \"./client-setup.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-setup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Fee Type Rules\")]),_c('fee-designations-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('br'),_c('br'),(_vm.selectedClient)?_c('data-grid',{attrs:{\"custom-store-options\":_vm.feeDesignationsCustomStoreOptions,\"pageSize\":25},on:{\"init-new-row\":_vm.initNewRow,\"row-updating\":_vm.rowUpdating,\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData,\"editing-start\":_vm.editingStart}},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Fee Rules Edit\",\"width\":\"60%\",\"height\":500,\"on-showing\":_vm.popupShowing,\"on-hiding\":_vm.popupHiding}}),_c('dx-form',[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"is-required\":true,\"visible\":false,\"editor-type\":\"dxSelectBox\",\"editor-options\":{ readOnly: true, value: _vm.selectedClient, dataSource: _vm.clients, displayExpr: 'text', valueExpr: 'value' }}}),_c('dx-item',{attrs:{\"data-field\":\"AgentId\",\"editor-type\":\"dxLookup\",\"editor-options\":{ searchEnabled: true, showClearButton: true, popupHeight: '300px', dataSource: _vm.filteredAgents, displayExpr: 'text', valueExpr: 'value' }}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-item',{attrs:{\"data-field\":\"FeeTypeId\",\"is-required\":true}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-item',{attrs:{\"data-field\":\"SearchColumn\",\"is-required\":true}}),_c('dx-item',{attrs:{\"data-field\":\"SearchTerm\",\"is-required\":true}})],1)],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AgentId\",\"caption\":\"Agent\",\"header-filter\":{ dataSource: _vm.allAgents, allowSearch: true },\"customizeText\":_vm.customizeNullText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"calculate-sort-value\":\"AgentName\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.allAgents,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"FeeTypeId\",\"header-filter\":{ dataSource: _vm.feeTypes },\"allow-filtering\":false,\"allow-header-filtering\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.feeTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"SearchColumn\",\"caption\":\"Column\",\"header-filter\":{ dataSource: _vm.availableFeeDesignationsSearchColumns },\"allow-filtering\":false,\"allow-header-filtering\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.availableFeeDesignationsSearchColumns,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"SearchTerm\",\"caption\":\"Text\",\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"type\":\"buttons\",\"caption\":\"\",\"data-field\":\"ClientId\",\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"filter-values\":[ _vm.selectedClient ]}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { FeeDesignationDto } from '@/models/Fees/FeeDesignationDto';\nimport { FeeTypeDto } from '@/models/Fees/FeeTypeDto';\n\nexport class FeeDesignationService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n async getTypes() : Promise {\n return await this.client.get('/types');\n }\n}","import { SelectOption } from '../../models/SelectOption';\n\nexport enum FeeDesignationsSearchColumns {\n Description = \"Description\",\n UTBMS = \"UTBMS\",\n UTBMS_Activity = \"UTBMSActivity\"\n};\n\nexport const AvailableFeeDesignationsSearchColumns: Array = [\n { text: \"Description\", value: \"Description\" },\n { text: \"UTBMS\", value: \"UTBMS\" },\n { text: \"UTBMS Activity\", value: \"UTBMS_Activity\" } \n];","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { FeeDesignationService } from '../../service/FeeDesignationService';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientService } from '../../service/ClientService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup\n} from 'devextreme-vue/data-grid';\nimport { DxItem } from 'devextreme-vue/form';\nimport { DxSelectBox } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport {\n AvailableFeeDesignationsSearchColumns,\n FeeDesignationsSearchColumns\n} from '../../models/Fees/FeeDesignationSearchColumns';\nimport { SelectOption } from '../../models/SelectOption';\nimport { AgentDto } from '../../models/agent/AgentDto';\nimport notify from 'devextreme/ui/notify';\n\n@Component({\n components: {\n DxSelectBox,\n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxLookup,\n DxPopup\n }\n})\nexport default class FeeDesignationsGrid extends Vue {\n clients: Array = [];\n allAgents: Array = [];\n filteredAgents: Array = [];\n feeTypes: Array = [];\n selectedClient: Guid = '';\n availableFeeDesignationsSearchColumns: Array = AvailableFeeDesignationsSearchColumns;\n dataGrid: any;\n feeDesignationsService: FeeDesignationService;\n feeDesignationsCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n \n agentService: AgentService = new AgentService();\n clientService: ClientService = new ClientService();\n\n @Watch('selectedClient')\n onSelectedClientChange() {\n this.filteredAgents = [];\n if(this.selectedClient) {\n this.clientService.getAgentByClientId(this.selectedClient).then(result => {\n this.filteredAgents = result.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n });\n });\n }\n }\n\n constructor() {\n super();\n this.feeDesignationsService = new FeeDesignationService(\n '/api/FeeDesignations'\n );\n this.feeDesignationsCustomStoreOptions = {\n key: 'FeeDesignationId',\n load: loadOptions => this.feeDesignationsService.search(loadOptions),\n insert: values => this.feeDesignationsService.create(values),\n update: (key, values) => this.feeDesignationsService.edit(key, values),\n remove: key => this.feeDesignationsService.delete(key)\n };\n }\n\n mounted() {\n this.loadData();\n }\n\n async loadData() {\n let clients = await this.clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n\n let agents = await this.agentService.getAll();\n this.allAgents = agents.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n });\n\n let feeTypes = await this.feeDesignationsService.getTypes();\n this.feeTypes = feeTypes.map(t => {\n return { text: t.Name, value: t.FeeTypeId };\n });\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n saveEditData(): void {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n\n popupShowing(e: any) {\n // Couldn't find a configuration option for this, so changing the the order and style of Save and Cancel when loading the dialog.\n var toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n }\n\n popupHiding(e: any) {\n let toast = document.getElementById('SelectedAgentWarningToast');\n if(toast) {\n toast.remove();\n }\n }\n\n initNewRow(e: any) {\n e.data = {\n ClientId: this.selectedClient,\n FeeTypeId: 0,\n SearchColumn: 'UTBMS'\n };\n }\n\n rowUpdating(e: any) { \n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData);\n }\n\n editingStart(e: any) {\n // If an agent id is set, but not in the filtered list, show a warning\n if(e.data && e.data.AgentId && !this.filteredAgents.some(a => a.value === e.data.AgentId)) {\n let warningMessage = 'The selected agent for this rule is no longer associated with this client. Please select a new agent or leave empty to apply to all.';\n notify({ \n message: warningMessage, \n position: { my: 'center', at: 'center', of: window, offset: '0 -200' },\n minWidth: '40%',\n closeOnClick: true,\n elementAttr: { id: 'SelectedAgentWarningToast' }\n }, 'warning', 10000);\n }\n }\n\n customizeNullText(info: any) {\n return info.valueText === '' ? 'ALL' : info.valueText;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-designations-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-designations-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-designations-grid.vue?vue&type=template&id=4ccf4da1&\"\nimport script from \"./fee-designations-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-designations-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FeeDesignationsGrid from '../components/fee-designations/fee-designations-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n FeeDesignationsGrid\n }\n})\nexport default class FeeDesignations extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-designations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-designations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-designations.vue?vue&type=template&id=da7d4762&\"\nimport script from \"./fee-designations.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-designations.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Infraction Rules Setup\")]),_c('infraction-rules-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{attrs:{\"custom-store-options\":_vm.infractionRulesCustomStoreOptions,\"pageSize\":25},on:{\"init-new-row\":_vm.initNewRow,\"row-updating\":_vm.rowUpdating,\"editing-start\":_vm.rowEditing,\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData}},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Infraction Rules Edit\",\"width\":\"60%\",\"height\":\"50%\",\"on-shown\":_vm.popupShowing}}),_c('dx-form',[_c('dx-group-item',{attrs:{\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"editor-type\":\"dxLookup\",\"editor-options\":_vm.clientOption}}),_c('dx-item',{attrs:{\"data-field\":\"AgentId\",\"editor-type\":\"dxLookup\",\"editor-options\":_vm.agentOption}}),_c('dx-item',{attrs:{\"data-field\":\"CountryId\",\"editor-type\":\"dxLookup\",\"editor-options\":{ searchEnabled: true, dataSource: _vm.countries, displayExpr: 'text', valueExpr: 'value', popupHeight: '350px' }}})],1),_c('dx-item',{attrs:{\"data-field\":\"InfractionTypeId\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ acceptCustomValue: true, searchEnabled: true, dataSource: _vm.infractionTypes, displayExpr: 'text', valueExpr: 'value', showClearButton: true }}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-item',{attrs:{\"data-field\":\"InfractionRuleTypeId\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.infractionRuleTypes,\n displayExpr: 'text',\n valueExpr: 'value',\n showClearButton: true,\n onItemClick: _vm.selectedRuleTypeChanged\n }}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-group-item',{attrs:{\"visible\":_vm.compareDatesSelected,\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"Column1\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.availableInfractionRuleDateColumns,\n valueExpr: 'value',\n displayExpr: 'text',\n showClearButton: true\n }}}),_c('dx-item',{attrs:{\"data-field\":\"Column2\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.availableInfractionRuleDateColumns,\n valueExpr: 'value',\n displayExpr: 'text',\n showClearButton: true\n }}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-item',{attrs:{\"data-field\":\"Operator\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ searchEnabled: true, dataSource: _vm.operators,\n displayExpr: 'text', valueExpr: 'value', showClearButton: true }}}),_c('dx-item',{attrs:{\"data-field\":\"Value\",\"editor-type\":\"dxTextBox\",\"isRequired\":true,\"editor-options\":{ showClearButton: true, valueChangeEvent: 'keyup' }}})],1),_c('dx-group-item',{attrs:{\"visible\":_vm.textSearchSelected,\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"Column1\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.availableInfractionRuleTextColumns,\n valueExpr: 'value',\n displayExpr: 'text',\n showClearButton: true\n }}}),_c('dx-item',{attrs:{\"data-field\":\"Operator\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.comparisonTypes,\n valueExpr: 'value',\n displayExpr: 'text',\n showClearButton: true\n }}}),_c('dx-item',{attrs:{\"data-field\":\"Value\",\"editor-type\":\"dxTextBox\",\"isRequired\":true,\"editor-options\":{ showClearButton: true, valueChangeEvent: 'keyup' }}})],1),_c('dx-group-item',{attrs:{\"visible\":_vm.columnTextLengthSelected,\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"Column1\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{\n searchEnabled: true,\n dataSource: _vm.availableInfractionRuleTextColumns,\n valueExpr: 'value',\n displayExpr: 'text',\n showClearButton: true \n }}}),_c('dx-item',{attrs:{\"data-field\":\"Operator\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ searchEnabled: true, dataSource: _vm.operators,\n displayExpr: 'text', valueExpr: 'value', showClearButton: true }}}),_c('dx-item',{attrs:{\"data-field\":\"Value\",\"editor-type\":\"dxTextBox\",\"isRequired\":true,\"editor-options\":{ showClearButton: true, valueChangeEvent: 'keyup' }}})],1)],1)],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ClientId\",\"caption\":\"Client\",\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AgentId\",\"caption\":\"Agent\",\"header-filter\":{ dataSource: _vm.agents, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.agents,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CountryId\",\"caption\":\"Country\",\"header-filter\":{ dataSource: _vm.countries, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.countries,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"InfractionTypeId\",\"caption\":\"Infraction Type\",\"header-filter\":{ dataSource: _vm.infractionTypes },\"allow-filtering\":false,\"allow-header-filtering\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.infractionTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"InfractionRuleTypeId\",\"caption\":\"Infraction Rule Type\",\"header-filter\":{ dataSource: _vm.infractionRuleTypes },\"allow-filtering\":false,\"allow-header-filtering\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.infractionRuleTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Column1\",\"header-filter\":{ dataSource: _vm.allColumns, allowSearch: true }}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Column2\",\"header-filter\":{ dataSource: _vm.allColumns, allowSearch: true }}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Operator\",\"header-filter\":{ dataSource: _vm.allOperators, allowSearch: true },\"allow-filtering\":false,\"allow-header-filtering\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.allOperators,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Value\",\"allow-header-filtering\":false}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { InfractionRuleDto } from '@/models/infractions/InfractionRuleDto';\nimport { InfractionTypeDto } from '@/models/infractions/InfractionTypeDto';\nimport { InfractionRuleTypeDto } from '@/models/infractions/InfractionRuleTypeDto';\nimport { RequestResult, HttpMethodEnum } from '@questelservices/common';\nexport class InfractionRuleService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n async getRuleTypes(): Promise {\n return await this.client.get('/ruletypes');\n }\n\n async getTypes(): Promise {\n return await this.client.get('/infractiontypes')\n .then(result => result.sort((a, b) => a.Name.localeCompare(b.Name)));\n }\n\n async addNewInfraction(newInfraction: InfractionTypeDto): Promise {\n return await this.client.postJson('/newInfraction', newInfraction);\n }\n}\n","export enum InfractionRuleType {\n Compare_Dates = 0,\n Text_Search_Match = 1,\n Column_Text_Length = 2\n}","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { CountryDto } from '@/models/CountryDto';\nimport { SelectOption } from '@/models/SelectOption';\n\nexport class CountryService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/countries');\n }\n\n async getAll(): Promise {\n return await this.client.get('');\n }\n\n async getAllDto(): Promise {\n return await this.client.get('');\n }\n\n async getAllSelectOptions(includeAll: boolean = false): Promise {\n let countries = await this.getAllDto();\n let result = countries.map(c => {\n return { text: c.CountryCode, value: c.CountryId };\n });\n\n if (includeAll) {\n result.unshift({ text: 'ALL', value: '' });\n }\n\n return result;\n }\n}\n","import { SelectOption } from '../SelectOption';\n\nexport const InfractionRuleDateColumns: Array = [\n { value: 'LineItemDate', text: 'Line Item Date' },\n // { value: 'DateEntered', text: 'Current Date' },\n // { value: 'BillingEndDate', text: 'Billing End Date' },\n // { value: 'BillingStartDate', text: 'Billing Start Date' },\n { value: 'InvoiceDate', text: 'Invoice Date' },\n { value: 'DateCreated', text: 'Date Created' },\n];\n\nexport const InfractionRuleTextColumns: Array = [\n { value: 'LineItemDescription', text: 'Line Item Description' },\n //{ value: 'InvoiceDescription', text: 'Invoice Description' },\n { value: 'ClientMatterId', text: 'Client Matter Number' },\n { value: 'CountryCode', text: 'Country Code' }, \n { value: 'InvoiceNumber', text: 'Invoice Number' }, \n { value: 'LawFirmId', text: 'Law Firm' },\n { value: 'LawFirmMatterId', text: 'Law Firm Matter Number' },\n { value: 'LineItemActivityCode', text: 'Line Item Activity Code' }, \n { value: 'LineItemExpenseCode', text: 'Line Item Expense Code' },\n { value: 'LineItemNumber', text: 'Line Item Number' }, \n { value: 'LineItemTaskCode', text: 'Line Item Task Code' }, \n //{ value: 'LineItemType', text: 'Line Item Type' },\n { value: 'TimekeeperClassification', text: 'Timekeeper Classification' }, \n { value: 'TimekeeperName', text: 'Timekeeper Name' }\n];","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { InfractionRuleService } from '../../service/InfractionRuleService';\nimport { InfractionRuleType } from '../../models/infractions/InfractionRuleType';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientService } from '../../service/ClientService';\nimport { CountryService } from '../../service/CountryService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup\n} from 'devextreme-vue/data-grid';\nimport { DxItem, DxGroupItem, DxButtonItem } from 'devextreme-vue/form';\nimport { DxSelectBox, DxButton, DxTextBox } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport {\n InfractionRuleDateColumns,\n InfractionRuleTextColumns\n} from '../../models/infractions/InfractionRuleColumns';\nimport { InfractionRuleTypeDto } from '../../models/infractions/InfractionRuleTypeDto';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { SelectOption } from '../../models/SelectOption';\nimport { Watch } from 'vue-property-decorator';\nimport { AgentDto } from '../../models/agent/AgentDto';\n\n@Component({\n components: {\n DxSelectBox,\n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxGroupItem,\n DxButtonItem,\n DxLookup,\n DxPopup,\n DxButton,\n DxTextBox\n }\n})\nexport default class InfractionRulesGrid extends Vue {\n clients: Array = [];\n agents: Array = [];\n filteredAgents: Array = [];\n selectedClient: Guid = '';\n countries: Array = [];\n operators: Array = [\n {text: \"<\", value: \"<\"},\n {text: \">\", value: \">\"},\n {text: \"=\", value: \"=\"},\n {text: \"!=\", value: \"!=\"}\n ];\n comparisonTypes: Array = [\n {text: \"Column Has Text\", value: \"ColumnHasText\"},\n // {text: \"N-grams\", value: \"Ngrams\"},\n {text: \"Exact Match\", value: \"ExactMatch\"}\n ];\n private get allOperators() : Array {\n return this.operators.concat(this.comparisonTypes);\n }\n\n availableInfractionRuleDateColumns: Array = InfractionRuleDateColumns;\n availableInfractionRuleTextColumns: Array = InfractionRuleTextColumns; \n private get allColumns(): Array {\n return this.availableInfractionRuleDateColumns.concat(this.availableInfractionRuleTextColumns);\n }\n\n infractionRuleTypes: Array<{ text: string, value: number }> = [];\n infractionTypes: Array<{ text: string , value?: Guid }> = [];\n\n infractionRuleService: InfractionRuleService;\n infractionRulesCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n\n compareDatesSelected: boolean = false;\n textSearchSelected: boolean = false;\n columnTextLengthSelected: boolean = false;\n\n selectedRuleType: number = -1;\n dataGrid: any;\n\n agentService: AgentService = new AgentService();\n clientService: ClientService = new ClientService();\n\n constructor() { \n super();\n\n this.infractionRuleService = new InfractionRuleService(\n '/api/InfractionRules'\n );\n\n this.infractionRulesCustomStoreOptions = {\n key: 'InfractionRuleId',\n load: loadOptions => this.infractionRuleService.search(loadOptions),\n insert: (values) => {\n return this.infractionRuleService.create(values)\n .catch((e: any) => {\n if(e && e.Message) {\n throw e.Message;\n }\n throw \"An error occurred.\";\n });\n },\n update: (key, values) => {\n // TODO: We might want to add more general handling in the client class\n return this.infractionRuleService.edit(key, values)\n .catch((e: any) => {\n if(e && e.Message) {\n throw e.Message;\n }\n throw \"An error occurred.\";\n });\n },\n remove: key => this.infractionRuleService.delete(key)\n };\n }\n\n created() {\n this.loadData();\n }\n get clientOption(): any {\n return {\n \"placeholder\" : \"Select a client\",\n \"dataSource\" : this.clients,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\",\n \"searchEnabled\": true,\n \"onSelectionChanged\": this.onClientSelectionChanged,\n \"popupHeight\": '350px'\n };\n }\n get agentOption(): any {\n return {\n \"placeholder\" : \"Select an agent\",\n \"dataSource\" : this.agents,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\",\n \"popupHeight\": \"350px\",\n \"searchEnabled\": true,\n \"onOpened\" : this.OnOpened\n };\n }\n \n async OnOpened(e: any) {\n e.component.option(\"dataSource\", []);\n e.component.instance().beginUpdate();\n var result = await this.agentDataSource();\n \n e.component.option(\"dataSource\", result);\n\n e.component.instance().endUpdate();\n }\n\n selectedClientId: Guid = \"\";\n private agentDataSource() : Promise {\n return this.agentService.getAll(this.selectedClientId)\n .then((success : AgentDto[]) => {\n let result = success.map((c: AgentDto) => {\n return { text: c.AgentName, value: c.AgentId };\n });\n \n result.unshift({text:\"ALL\", value: \"\"});\n\n return result;\n })\n .catch(err => []);\n }\n\n setSelectedClientId(val: any): void {\n this.selectedClientId = val;\n }\n\n onClientSelectionChanged(e: any) {\n this.setSelectedClientId(e.selectedItem? e.selectedItem.value : '');\n }\n\n async loadData() { \n this.clients = await this.clientService.getAll()\n .then((success: any) => {\n let result = success.map((c: any) => {\n return { text: c.ClientName, value: c.ClientId };\n })\n\n result.unshift({text:\"ALL\", value: \"\"});\n\n return result;\n })\n .catch(err=> []);\n\n this.agents = await this.agentDataSource();\n\n let countryService = new CountryService();\n this.countries = await countryService.getAll()\n .then((success : any) => {\n let result = success.map((c: any) => {\n return { text: c.CountryCode, value: c.CountryId };\n });\n\n result.unshift({text:\"ALL\", value: \"\"});\n\n return result;\n })\n .catch(err => []);\n\n this.infractionRuleTypes = await this.infractionRuleService.getRuleTypes()\n .then((success:any) => {\n let result = success.map((t:any) => { return { text: t.Name, value: t.InfractionRuleTypeId } });\n\n return result;\n })\n .catch(err => []);\n\n this.infractionTypes = await this.infractionRuleService.getTypes()\n .then((success : any) => {\n let result = success.map((t:any) => { return { text: t.Name, value: t.InfractionTypeId } });\n\n return result;\n })\n .catch(err => []);\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n popupShowing(e: any) {\n // Couldn't find a configuration option for this, so changing the style of Save and Cancel when loading the dialog.\n var toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems',toolbarItems);\n }\n\n initNewRow(e: any) {\n e.data = {\n ClientId: \"\",\n AgentId: \"\",\n CountryId: null\n };\n this.selectedRuleType = -1;\n // this.filteredAgents = this.agents;\n }\n\n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData); \n }\n\n rowEditing(e: any) {\n this.selectedRuleType = e.data.InfractionRuleTypeId;\n this.setSelectedRuleType();\n }\n \n\n saveEditData(): void {\n if (this.dataGrid) {\n this.dataGrid.saveEditData();\n }\n }\n\n selectedRuleTypeChanged(e: any): void {\n this.selectedRuleType = e.itemData.value;\n this.setSelectedRuleType();\n e.event.stopPropagation();\n }\n \n async onSelectionChanged(e: any) {\n let newClientId = e.value;\n if(newClientId != \"\") {\n let agents = await this.clientService.getAgentByClientId(newClientId);\n this.filteredAgents = agents.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n });\n this.filteredAgents.unshift({text:\"ALL\", value: \"\"});\n }\n else {\n // this.filteredAgents = this.agents;\n }\n }\n \n\n private setSelectedRuleType() {\n this.compareDatesSelected = false;\n this.textSearchSelected = false;\n this.columnTextLengthSelected = false;\n \n switch(this.selectedRuleType) {\n case InfractionRuleType.Compare_Dates: {\n this.compareDatesSelected = true; \n break;\n }\n case InfractionRuleType.Text_Search_Match: {\n this.textSearchSelected = true;\n break;\n }\n case InfractionRuleType.Column_Text_Length: {\n this.columnTextLengthSelected = true;\n break;\n }\n }\n }\n\n customizeNullText(info: any) {\n return info.valueText === '' ? 'ALL' : info.valueText;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./infraction-rules-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./infraction-rules-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./infraction-rules-grid.vue?vue&type=template&id=548e1039&\"\nimport script from \"./infraction-rules-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./infraction-rules-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport InfractionRulesGrid from '../components/infraction-rules/infraction-rules-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n InfractionRulesGrid\n }\n})\nexport default class InfractionRules extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./infraction-rules.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./infraction-rules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./infraction-rules.vue?vue&type=template&id=00ff01fa&\"\nimport script from \"./infraction-rules.vue?vue&type=script&lang=ts&\"\nexport * from \"./infraction-rules.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Multiphase Aliases\")]),_c('phase-aliases-grid',{ref:\"dataGrid\",on:{\"edit-alias\":_vm.showDialog,\"create-alias\":_vm.showDialog,\"delete-alias\":_vm.showDelete}}),_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Phase Alias Edit\",\"width\":\"60%\",\"height\":500}}),_c('phase-aliases-edit',{attrs:{\"showEdit\":_vm.showingEdit,\"phaseAlias\":_vm.phaseAlias},on:{\"hiding\":function($event){return _vm.hidingDialog()}}}),_c('dx-popup',{attrs:{\"visible\":_vm.deleteVisible,\"drag-enabled\":false,\"close-on-outside-click\":true,\"show-title\":true,\"width\":300,\"height\":150,\"title\":\"Delete\"},on:{\"update:visible\":function($event){_vm.deleteVisible=$event}}},[_c('p',[_vm._v(\"Are you sure you want to delete this alias?\")]),_c('dx-button',{attrs:{\"width\":115},on:{\"click\":function($event){return _vm.hideDelete()}}},[_vm._v(\"No\")]),_c('dx-button',{attrs:{\"width\":115},on:{\"click\":function($event){return _vm.deleteAlias()}}},[_vm._v(\"Yes\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{ref:\"dataGrid\",attrs:{\"custom-store-options\":_vm.phaseAliasCustomStoreOptions,\"pageSize\":25},on:{\"initialized\":_vm.dataGridInitialized,\"toolbar-preparing\":function($event){return _vm.onToolbarPreparing($event)}},scopedSlots:_vm._u([{key:\"addEditTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{attrs:{\"icon\":\"edit\"},on:{\"click\":function($event){return _vm.editAlias(data.data, false);}}}),_c('dx-button',{attrs:{\"icon\":\"trash\"},on:{\"click\":function($event){return _vm.showDelete(data.data);}}})],1)}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-column',{attrs:{\"data-field\":\"Name\",\"allow-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseTypeIds\",\"visible\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":10,\"cell-template\":\"addEditTemplate\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { PhaseAliasDto } from '@/models/PhaseAliasDto';\n\nexport class PhaseAliasService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n async getAll(filterOut: Guid[] = []) : Promise {\n return await this.client.getPostData(`/all`, filterOut);\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PhaseAliasService } from '../../service/PhaseAliasService';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { DataGrid } from '@questelservices/common-vue';\nimport 'devextreme-vue/tag-box';\nimport {\n DxColumn,\n DxHeaderFilter, \n DxDataGrid\n} from 'devextreme-vue/data-grid';\nimport { DxPopup, DxButton } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport {SelectOption} from '../../models/SelectOption';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { PhaseAliasDto } from '../../models/PhaseAliasDto';\n\n@Component({\n components: {\n DxDataGrid,\n DataGrid,\n DxColumn,\n DxHeaderFilter,\n DxPopup,\n DxButton\n }\n})\nexport default class PhaseAliasesGrid extends Vue { \n$refs: Vue['$refs'] & { \n dataGrid?: DataGrid;\n} = {};\n selectedClient: string = '';\n dataGrid: any;\n phaseAliasService: PhaseAliasService;\n phaseAliasCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n\n constructor() {\n super();\n\n this.phaseAliasService = new PhaseAliasService(\n '/api/PhaseAlias'\n );\n\n this.phaseAliasCustomStoreOptions = {\n load: loadOptions => this.phaseAliasService.search(loadOptions),\n };\n\n this.loadData(); \n }\n\n async loadData() {\n let client = new QuestelServicesClient(this.$store, ''); \n let phaseTypes = await client.get('/api/phasetype/all'); \n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component; \n }\n\n editAlias(data: any): void {\n this.$emit('edit-alias', data); \n }\n\n createAlias(): void {\n this.$emit('create-alias');\n }\n\n showDelete(data: any): void {\n this.$emit('delete-alias', data);\n }\n\n deleteAlias(phaseAlias: PhaseAliasDto): void {\n this.phaseAliasService.delete(phaseAlias.PhaseAliasId)\n .then(result => {\n this.refreshDataGrid();\n });\n } \n\n refreshDataGrid(): void {\n if(this.$refs.dataGrid) {\n (this.$refs.dataGrid as any).refreshDataGrid();\n } \n }\n\n onToolbarPreparing(e: any) {\n e.toolbarOptions.items.unshift({\n location: 'after',\n widget: 'dxButton',\n options: {\n width: 10,\n\n icon: 'plus',\n onClick: this.createAlias.bind(this)\n }\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-aliases-grid.vue?vue&type=template&id=46ccdf40&\"\nimport script from \"./phase-aliases-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-aliases-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"title\":\"Phase Alias Create or Edit\",\"width\":\"450\",\"drag-enabled\":true,\"height\":\"300\",\"resize-enabled\":true,\"close-on-outside-click\":false,\"visible\":_vm.showingEdit},on:{\"update:visible\":function($event){_vm.showingEdit=$event},\"save-shortcut-pressed\":_vm.saveAlias}},[_c('dx-scroll-view',[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Name:\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-text-box',{attrs:{\"value\":_vm.aliasName,\"valueChangeEvent\":\"keyup\"},on:{\"update:value\":function($event){_vm.aliasName=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Phases:\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"dataSource\":_vm.allPhaseTypes,\"displayExpr\":\"text\",\"valueExpr\":\"value\",\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"Select Phases\",\"applyValueMode\":\"useButtons\",\"value\":_vm.aliasPhases},on:{\"update:value\":function($event){_vm.aliasPhases=$event}}})],1)])])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save Alias', type: 'default', stylingMode: 'contained', onClick: _vm.saveAlias},\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingEdit },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export interface IPhaseAliasDto {\n PhaseAliasId: Guid;\n Name: string;\n PhaseTypeIds: Array;\n}\n\nexport class PhaseAliasDto implements IPhaseAliasDto {\n PhaseAliasId = \"\";\n Name = \"\";\n PhaseTypeIds = [] as number[] ;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '../../store';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { PhaseAliasDto } from '../../models/PhaseAliasDto';\nimport { DxButton, DxToolbar, DxTextBox, DxTagBox, DxForm, DxScrollView } from 'devextreme-vue';\nimport { DxItem } from 'devextreme-vue/form';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport CustomStore from 'devextreme/data/custom_store';\nimport CommonModule, { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { PhaseAliasService } from '../../service/PhaseAliasService';\nimport { SelectOption } from '../../models/SelectOption';\nimport notify from 'devextreme/ui/notify';\nimport { Popup } from '@questelservices/common-vue';\n\nconst commonState = getModule(CommonModule, store);\n\n@Component({\n components: {\n DxButton,\n DxToolbar,\n DxToolbarItem,\n DxTextBox,\n DxTagBox,\n DxForm,\n DxItem,\n DxScrollView,\n Popup\n }\n})\nexport default class PhaseAliasesEdit extends Vue { \n @Prop({ default: false })\n showEdit!: boolean;\n\n @Prop() \n phaseAlias!: PhaseAliasDto;\n\n phaseAliasService: PhaseAliasService;\n allPhaseTypes: Array = [];\n\n aliasId: Guid = \"\";\n aliasName: string = \"\";\n aliasPhases: Array = [];\n\n get showingEdit() {\n return this.showEdit;\n }\n\n set showingEdit(value) {\n this.$emit(\"hiding\");\n }\n\n @Watch(\"showEdit\")\n onPropertyChanged(value: boolean, oldValue: boolean) {\n if (value) { \n this.loadAlias();\n }\n }\n\n constructor() {\n super(); \n this.phaseAliasService = new PhaseAliasService(\n '/api/PhaseAlias'\n ); \n\n this.loadData();\n }\n\n loadAlias(): void {\n //create\n if(!this.phaseAlias) {\n this.aliasId = \"\";\n this.aliasName = \"\";\n this.aliasPhases = [];\n }\n //edit\n else {\n this.aliasId = this.phaseAlias.PhaseAliasId;\n this.aliasName = this.phaseAlias.Name;\n this.aliasPhases = this.phaseAlias.PhaseTypeIds;\n } \n }\n\n async loadData() {\n let client = new QuestelServicesClient(this.$store, ''); \n let phaseTypes = await client.get('/api/phasetype/all');\n\n this.allPhaseTypes = phaseTypes.map(p => {\n return { text: p.PhaseName, value: p.PhaseTypeId };\n }); \n }\n\n private saveAlias() {\n if(this.aliasName == \"\") {\n notify(\"Please enter a valid alias name\", \"error\", 1000);\n return;\n }\n\n if(this.aliasPhases.length == 0) {\n notify(\"Please enter at least one phase\", \"error\", 1000);\n return;\n }\n \n let phaseAliasDto = new PhaseAliasDto();\n phaseAliasDto.Name = this.aliasName;\n phaseAliasDto.PhaseTypeIds = this.aliasPhases;\n phaseAliasDto.PhaseAliasId = \"00000000-0000-0000-0000-000000000000\";\n\n //create\n if(this.aliasId == \"\") {\n this.phaseAliasService.create(phaseAliasDto)\n .then(result => {\n if(result.Data.Name == null) {\n notify(\"An alias with this name exists. Please choose a different name.\", \"error\", 1000);\n return;\n }\n this.hidingEdit();\n });\n }\n //edit\n else {\n phaseAliasDto.PhaseAliasId = this.aliasId;\n this.phaseAliasService.edit(this.aliasId, phaseAliasDto)\n .then(result => {\n if(result.Data.Name == null) {\n notify(\"An alias with this name exists. Please choose a different name.\", \"error\", 1000);\n return;\n }\n this.hidingEdit();\n });\n } \n }\n\n hidingEdit() { \n this.showingEdit = false;\n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases-edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases-edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-aliases-edit.vue?vue&type=template&id=03334f54&\"\nimport script from \"./phase-aliases-edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-aliases-edit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport PhaseAliasesGrid from '../components/phase-aliases/phase-aliases-grid.vue';\nimport PhaseAliasesEdit from '../components/phase-aliases/phase-aliases-edit.vue';\nimport { PhaseAliasDto } from '../models/PhaseAliasDto';\nimport { DxPopup, DxButton } from 'devextreme-vue';\nimport _ from \"lodash\";\n\n@Component({\n components: {\n PageTitle,\n PhaseAliasesGrid,\n PhaseAliasesEdit,\n DxPopup,\n DxButton\n }\n})\nexport default class PhaseAliases extends Vue {\n$refs: Vue['$refs'] & { \n dataGrid?: PhaseAliasesGrid;\n} = {};\n\n phaseAlias: PhaseAliasDto;\n showingEdit: boolean = false;\n deleteVisible: boolean = false;\n\n constructor() {\n super();\n this.phaseAlias = new PhaseAliasDto();\n }\n \n\n refreshDataGrid(): void { \n if (this.$refs.dataGrid) {\n (this.$refs.dataGrid as any).refreshDataGrid();\n }\n }\n\n hidingDialog(): void {\n this.phaseAlias = new PhaseAliasDto();\n this.showingEdit = false; \n this.refreshDataGrid();\n }\n\n showDialog(data: any): void {\n this.phaseAlias = data ? _.cloneDeep(data) : new PhaseAliasDto();\n this.showingEdit = true;\n }\n\n showDelete(data: any): void {\n this.phaseAlias = _.cloneDeep(data);\n this.deleteVisible = true; \n }\n\n deleteAlias(): void {\n (this.$refs.dataGrid as any).deleteAlias(this.phaseAlias);\n this.phaseAlias = new PhaseAliasDto();\n this.hideDelete();\n }\n\n hideDelete(): void {\n this.deleteVisible = false;\n this.phaseAlias = new PhaseAliasDto();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-aliases.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-aliases.vue?vue&type=template&id=41a1acfa&scoped=true&\"\nimport script from \"./phase-aliases.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-aliases.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-aliases.vue?vue&type=style&index=0&id=41a1acfa&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41a1acfa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Fee Sheet Rules Setup\")]),_c('fee-sheet-rules-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{attrs:{\"custom-store-options\":_vm.feeSheetRuleCustomStoreOptions,\"pageSize\":25},on:{\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData,\"editing-start\":_vm.editingStart,\"row-updating\":_vm.rowUpdating}},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":false,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Fee Sheet Rules Edit\",\"width\":\"60%\",\"height\":\"60%\",\"on-shown\":_vm.popupShowing}}),_c('dx-form',[_c('dx-group-item',{attrs:{\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"editor-options\":{ searchEnabled: true, disabled : true }}}),_c('dx-item',{attrs:{\"data-field\":\"Agent.AgentId\",\"editor-options\":{ searchEnabled: true, disabled : true }}}),_c('dx-item',{attrs:{\"data-field\":\"CountryId\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ searchEnabled: true, dataSource: _vm.countries, displayExpr: 'text', valueExpr: 'value' }}})],1),_c('dx-group-item',{attrs:{\"col-count\":3,\"col-span\":2}},[_c('dx-item',{attrs:{\"data-field\":\"CurrencyId\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ searchEnabled: true, dataSource: _vm.currencies, displayExpr: 'text', valueExpr: 'value', disabled : true }}}),_c('dx-item',{attrs:{\"data-field\":\"PhaseTypeId\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ searchEnabled: true, dataSource: _vm.phaseTypes, displayExpr: 'text', valueExpr: 'value', disabled : true }}}),_c('dx-item',{attrs:{\"data-field\":\"FilingTypeId\",\"editor-type\":\"dxSelectBox\",\"isRequired\":true,\"editor-options\":{ searchEnabled: true, dataSource: _vm.filingTypes, displayExpr: 'text', valueExpr: 'value', disabled : true }}})],1),_c('dx-item',{attrs:{\"data-field\":\"InJurisdiction\",\"groupCellTemplate\":\"inJurisdictionCellTemplate\",\"editor-options\":{ disabled: true }}}),_c('dx-item',{attrs:{\"item-type\":\"empty\"}}),_c('dx-item',{attrs:{\"data-field\":\"TargetAmount\",\"editor-type\":\"dxTextBox\",\"isRequired\":true,\"editor-options\":{ showClearButton: true }}}),_c('dx-item',{attrs:{\"data-field\":\"CapAmount\",\"editor-type\":\"dxTextBox\",\"isRequired\":true,\"editor-options\":{ showClearButton: true }}}),_c('dx-item',{attrs:{\"data-field\":\"Notes\",\"editor-type\":\"dxTextBox\",\"editor-options\":{ showClearButton: true }}})],1)],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ClientId\",\"caption\":\"Client\",\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"FilingTypeId\",\"caption\":\"Filing Type\",\"header-filter\":{ dataSource: _vm.filingTypes, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.filingTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"PhaseTypeId\",\"caption\":\"Phase Type\",\"header-filter\":{ dataSource: _vm.phaseTypes, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"InJurisdiction\",\"caption\":\"Jurisdiction\",\"groupCellTemplate\":\"inJurisdictionCellTemplate\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.jurisdictionOptions,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Agent.AgentId\",\"caption\":\"Agent\",\"header-filter\":{ dataSource: _vm.agents, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.agents,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CurrencyId\",\"caption\":\"Currency\",\"header-filter\":{ dataSource: _vm.currencies, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.currencies,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"TargetAmount\",\"allow-header-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CapAmount\",\"allow-header-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CountryId\",\"caption\":\"Country\",\"header-filter\":{ dataSource: _vm.countries, allowSearch: true },\"customizeText\":_vm.customizeNullText}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.countries,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Notes\",\"allow-header-filtering\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { FeeSheetRuleDto } from '@/models/Fees/FeeSheetRuleDto';\n\nexport class FeeSheetRuleService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n async getAll() : Promise {\n return await this.client.get('');\n }\n}","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { formatDate } from 'devextreme/localization';\nimport { CurrencyDto } from '@/models/CurrencyDto';\nimport { ExchangeRateDto } from '@/models/currency/ExchangeRateDto';\n\nexport class CurrencyService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/currencies');\n }\n\n public async getAll(): Promise {\n return await this.client.get('');\n }\n\n public async getHistoricalExchangeRate(source: string, currency: string, date: Date): Promise {\n let dateParam = formatDate(new Date(date), 'yyyy-MM-dd');\n return await this.client.get(`/historical-rate?source=${source}¤cy=${currency}&date=${dateParam}`);\n }\n}\n","\nimport { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { FilingTypeDto,ChangeFilingTypeDto } from '@/models/FilingTypeDto';\n\nexport class FilingTypeService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, \"/api/filingtypes\");\n }\n\n async getTypes() : Promise {\n return await this.client.get('/all');\n }\n\n async changeType(changeFileDto: ChangeFilingTypeDto) : Promise {\n return await this.client.postJson('/change',changeFileDto);\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { FeeSheetRuleService } from '../../service/FeeSheetRuleService';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientService } from '../../service/ClientService';\nimport { CountryService } from '../../service/CountryService';\nimport { CurrencyService } from '../../service/CurrencyService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup\n} from 'devextreme-vue/data-grid';\nimport { DxItem, DxGroupItem, DxButtonItem } from 'devextreme-vue/form';\nimport { DxSelectBox, DxButton, DxTextBox, DxCheckBox } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { FeeSheetRuleDto } from '../../models/Fees/FeeSheetRuleDto';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { FilingTypeDto } from '../../models/FilingTypeDto';\nimport { FilingTypeService } from '../../service/FilingTypeService';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport DateTime from '../../utilities/DateTime';\nimport _ from 'lodash';\n\n@Component({\n components: {\n DxSelectBox,\n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxGroupItem,\n DxButtonItem,\n DxLookup,\n DxPopup,\n DxButton,\n DxTextBox,\n DxCheckBox\n }\n})\nexport default class FeeSheetRulesGrid extends Vue {\n clients: Array<{ text: string; value: Guid }> = [];\n agents: Array<{ text: string; value: Guid }> = [];\n countries: Array<{ text: string; value: string }> = [];\n currencies: Array<{ text: string; value: string }> = [];\n phaseTypes: Array<{ text: string; value: string }> = [];\n filingTypes: Array<{ text: string; value: string }> = [];\n dataGrid: any;\n\n jurisdictionOptions: Array<{ text: string; value: boolean }> = [\n { text: 'In', value: true },\n { text: 'Out', value: false },\n ]\n\n feeSheetRuleCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n feeSheetRuleService: FeeSheetRuleService;\n\n constructor() {\n super();\n\n this.feeSheetRuleService = new FeeSheetRuleService('/api/FeeSheetRules');\n\n this.loadData();\n\n this.feeSheetRuleCustomStoreOptions = {\n key: 'FeeSheetRuleId',\n load: loadOptions => this.feeSheetRuleService.search(loadOptions).catch(result => {\n if (!result.Success) {\n throw Error(result.Message);\n }\n\n return result;\n }),\n insert: values => this.feeSheetRuleService.create(values).catch(result => {\n if (!result.Success) {\n throw Error(result.Message);\n }\n\n return result;\n }),\n update: (key, values) => this.feeSheetRuleService.edit(key, values).catch(result => {\n if (!result.Success) {\n throw Error(result.Message);\n }\n\n return result;\n }),\n remove: key => this.feeSheetRuleService.delete(key).catch(result => {\n if (!result.Success) {\n throw Error(result.Message);\n }\n\n return result;\n })\n };\n }\n\n async loadData() {\n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n this.clients.unshift({ text: 'ALL', value: '' });\n\n let agentService = new AgentService();\n let agents = await agentService.getAll();\n this.agents = agents.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n });\n this.agents.unshift({ text: 'ALL', value: '' });\n\n let countryService = new CountryService();\n let countries = await countryService.getAll();\n this.countries = countries.map((c: any) => { \n return { text: c.CountryCode, value: c.CountryId };\n });\n this.countries.unshift({ text: 'ALL', value: '' });\n\n let currencyService = new CurrencyService();\n let currencies = await currencyService.getAll();\n this.currencies = currencies.map((curr: any) => {\n return { text: curr.CurrencyCode, value: curr.CurrencyId };\n });\n\n let serviceClient = new QuestelServicesClient(this.$store, '');\n let phaseTypes = await serviceClient.get('/api/phasetype/all');\n this.phaseTypes = phaseTypes.map((p: any) => {\n return { text: p.PhaseName, value: p.PhaseTypeId };\n });\n\n let filingTypeService = new FilingTypeService();\n filingTypeService.getTypes().then(types => {\n this.filingTypes = types.map((type: any) => {\n return { text: type.Name, value: type.FilingTypeId };\n });\n this.filingTypes.unshift({ text: 'ALL', value: '' });\n });\n }\n\n popupShowing(e: any) {\n let toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n }\n\n editingStart(e: any) {\n if (e.data.CountryId == null) {\n e.data.CountryId = '';\n }\n\n if (e.data.ClientId == null) {\n e.data.ClientId = '';\n }\n\n if (e.data.FilingTypeId == null) {\n e.data.FilingTypeId = '';\n }\n\n if (e.data.Agent == null) {\n e.data.Agent = {\n AgentId: '',\n AgentName: ''\n };\n } else if (e.data.Agent.AgentId == null) {\n e.data.Agent.AgentId = '';\n }\n }\n\n rowUpdating(e: any) {\n e.newData = _.merge({}, e.oldData, e.newData);\n\n if (e.newData.Agent.AgentId === '') {\n e.newData.Agent.AgentId = '00000000-0000-0000-0000-000000000000';\n }\n }\n\n dataGridInitialized(e: any) {\n this.dataGrid = e.component;\n }\n\n saveEditData() {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n\n customizeNullText(info: any) {\n return info.valueText === '' ? 'ALL' : info.valueText;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-rules-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-rules-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-rules-grid.vue?vue&type=template&id=13bddf34&\"\nimport script from \"./fee-sheet-rules-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-rules-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FeeSheetRulesGrid from '../components/fee-sheet-rules/fee-sheet-rules-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n FeeSheetRulesGrid\n }\n})\nexport default class FeeSheetRules extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-rules.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-rules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-rules.vue?vue&type=template&id=0c7fd2fc&\"\nimport script from \"./fee-sheet-rules.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-rules.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Fee Sheets\")]),_c('client-agents-fee-sheets')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fee-sheets-items\"},[_c('div',{staticClass:\"flex\"},[_c('dx-lookup',{staticClass:\"upload-select-box\",attrs:{\"width\":\"300\",\"data-source\":_vm.clientStore,\"displayExpr\":\"ClientName\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"popup-height\":_vm.getPopupHeight,\"placeholder\":\"Select a client\",\"value\":_vm.selectedClient,\"onSelectionChanged\":_vm.onSelectedClientChanged},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),(_vm.selectedClient && _vm.selectedClient.ClientId)?_c('div',{staticClass:\"client-emailer-wizard\"},[_c('div',{staticClass:\"fs-emailer-wizard\"},[_c('dx-button',{attrs:{\"text\":\"Email Campaign\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.onEmailCampaignWizard}})],1)]):_vm._e()],1),(_vm.selectedClient && _vm.selectedClient.ClientId)?_c('div',[_c('div',{staticClass:\"client-fee-sheet\"},[_c('div',{staticClass:\"client-fee-sheet-header\"},[_c('div',{staticClass:\"add-fee-sheet\"},[_c('dx-button',{attrs:{\"text\":\"Add Client Sheet\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.onCreateFeeSheetFromTemplate}})],1),_c('div',{staticClass:\"header\"},[_vm._v(\"Client Fee Sheets\")])]),_c('div',{staticClass:\"client-fee-sheet-content\"},[_c('data-grid',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedClient),expression:\"selectedClient\"}],ref:\"clientDataGrid\",attrs:{\"custom-store-options\":_vm.clientCustomStoreOptions},on:{\"init-new-row\":_vm.initNewRow,\"row-updating\":_vm.rowUpdating,\"initialized\":_vm.dataGridInitialized},scopedSlots:_vm._u([{key:\"optionsTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"badges\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.editBtnClicked(data)}}}),_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"trash\",\"hint\":\"Delete\"},on:{\"click\":function($event){return _vm.deleteBtnClicked(data.data)}}})],1)])}}],null,false,1136546097)},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"ClientFeeSheetDataGrid\"}}),_c('dx-pager',{attrs:{\"allowed-page-sizes\":[10, 25, 50, 100],\"show-page-size-selector\":true,\"visible\":true}}),_c('dx-paging',{attrs:{\"page-size\":25}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FeeSheetName\",\"caption\":\"Name\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FeeSheetTitle\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"caption\":\"Filing Type\",\"data-field\":\"FilingTypesNamesString\",\"data-type\":\"string\",\"selected-filter-operation\":_vm.filterTypeOption,\"header-filter\":{ dataSource: _vm.filingTypes },\"calculate-filter-expression\":_vm.filingTypesFilterExpression}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":65,\"cell-template\":\"optionsTemplate\",\"cssClass\":\"badge-cell\",\"fixed\":true,\"fixed-position\":\"right\"}})],1)],1)]),_c('div',{staticClass:\"agent-fee-sheet\"},[_c('div',{staticClass:\"agent-fee-sheet-header\"},[_c('div',{staticClass:\"add-fee-sheet\"},[_c('dx-button',{attrs:{\"text\":\"Add Agent Sheets\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.openAgentFeeSheetMassAdder}})],1),_c('div',{staticClass:\"header\"},[_vm._v(\"Agent Fee Sheets\")])]),_c('div',{staticClass:\"agent-fee-sheet-content\"},[_c('data-grid',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedClient),expression:\"selectedClient\"}],ref:\"agentDataGrid\",attrs:{\"custom-store-options\":_vm.agentCustomStoreOptions,\"remote-operations\":{ sorting: false, paging: true, filtering: true }},scopedSlots:_vm._u([{key:\"optionsTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"badges\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.agentEditBtnClicked(data)}}}),_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"trash\",\"hint\":\"Delete\"},on:{\"click\":function($event){return _vm.agentDeleteBtnClicked(data.data)}}})],1)])}},{key:\"modifiedTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[(data.data.Modified)?_c('div',[_vm._v(\"\\n Yes\\n \")]):_c('div',[_vm._v(\"\\n No\\n \")])])}}],null,false,748032109)},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"AgentFeeSheetDataGrid\"}}),_c('dx-pager',{attrs:{\"allowed-page-sizes\":[10, 25, 50, 100],\"show-page-size-selector\":true,\"visible\":true}}),_c('dx-paging',{attrs:{\"page-size\":25}}),_c('dx-header-filter',{attrs:{\"visible\":true,\"allow-search\":true}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"AgentName\",\"caption\":\"Agent\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FeeSheetName\",\"caption\":\"Fee Sheet\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"Modified\",\"caption\":\"Modified\",\"data-type\":\"string\",\"cell-template\":\"modifiedTemplate\",\"header-filter\":{ dataSource: _vm.modifiedFilters }}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"Signed\",\"caption\":\"Signed\",\"data-type\":\"string\",\"header-filter\":{ dataSource: _vm.signedFilters },\"calculate-filter-expression\":_vm.signedFiltersExpression}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"EffectiveDate\",\"data-type\":\"date\",\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"InJurisdictionCountries\",\"caption\":\"In Jurisdiction Countries\",\"header-filter\":{dataSource: _vm.inJurisdictionCountriesDataSource},\"filter-opreations\":[_vm.filterTypeOption],\"selected-filter-operation\":_vm.filterTypeOption,\"data-type\":\"string\",\"calculate-filter-expression\":_vm.inJurisdictionCountriesFiltersExpression,\"cssClass\":\"wrapColumnClass\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FilingTypesNamesString\",\"data-type\":\"string\",\"caption\":\"Filing Type\",\"header-filter\":{ dataSource: _vm.filingTypes },\"calculate-filter-expression\":_vm.filingTypesFilterExpression}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":65,\"cell-template\":\"optionsTemplate\",\"cssClass\":\"badge-cell\"}})],1)],1)])]):_vm._e(),_c('create-fee-sheet-from-template',{attrs:{\"showDialog\":_vm.showCreateFromTemplate},on:{\"hidingCreateFromTemplate\":_vm.hidingCreateFromTemplate,\"onCreateFromTemplateHidden\":_vm.onAddUpdateFeeSheetClient}}),_c('add-update-fee-sheets',{attrs:{\"showDialog\":_vm.showAddUpdateFeeSheet,\"client\":_vm.getSelectedClient,\"feeSheet\":_vm.feeSheetData,\"feeSheetFor\":_vm.feeSheetFor,\"feeSheetType\":_vm.feeSheetType,\"template\":_vm.feeSheetTemplate},on:{\"hiding\":_vm.hidingAddUpdateFeeSheet,\"cancel\":_vm.cancelFeeSheet}}),_c('agent-fee-sheet-mass-adder',{attrs:{\"showDialog\":_vm.showMassAgentSheetAdder,\"selectedClient\":_vm.selectedClient,\"clientAgents\":_vm.clientAgents.map(function (x) { return x.AgentId; })},on:{\"hidingMassAdder\":_vm.hidingMassAdder}}),_c('fee-sheet-emailer-wizards',{attrs:{\"showDialog\":_vm.showWizard,\"client\":_vm.getSelectedClient},on:{\"hiding\":_vm.hidingAddUpdateFeeSheet}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.deletionInProgress},on:{\"update:visible\":function($event){_vm.deletionInProgress=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum, FeeSheetRowNotesDto } from '@/models/Fees/FeeSheetRowDto';\nimport { SendFeeSheetDto } from '@/models/Fees/SendFeeSheetDto';\nimport { FeeSheetMassAdderCreationDto } from '@/models/Fees/FeeSheetMassAdderDto';\nimport { HttpMethodEnum } from '@questelservices/common/dist/enums/HttpMethodEnum';\nimport { ExportFeeSheetsDto } from '@/models/Fees/ExportFeeSheetsDto';\n\nexport class FeeSheetsService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n public async getFeeSheetPerClient(clientId: Guid): Promise {\n return await this.client.get(`/${clientId}`);\n }\n\n public async getClientFeeSheets(options: LoadOptions, clientId: Guid) : Promise {\n return await this.client.getPostData(`/search/${clientId}/client`, options);\n }\n\n public async getAgentFeeSheets(options: LoadOptions, clientId: Guid) : Promise {\n return await this.client.getPostData(`/search/${clientId}/agent`, options);\n }\n\n public async searchWithFilter(options: LoadOptions, clientId: Guid, forClient: boolean) : Promise {\n return await this.client.getPostData(`/search/${clientId}?isForClient=${forClient}`, options);\n }\n\n public async searchFeeSheetDetailsPerFeeSheetId(feeSheetId: Guid, rowType?: FeeSheetRowTypeEnum): Promise {\n if (feeSheetId) {\n return await this.client.getPostData(`/search/fee-sheet-details/${feeSheetId}?type=${rowType || ''}`);\n }\n\n return await Promise.resolve([]);\n }\n\n public async getParentFeeSheetDetails(feeSheetId: Guid): Promise {\n if (feeSheetId) {\n return await this.client.get(`/search/fee-sheet-details/${feeSheetId}/parent`);\n }\n\n return await Promise.resolve([]);\n }\n\n public async insertFeeSheetRowAndRules(feeSheetRow: FeeSheetRowDto): Promise {\n return await this.client.postJson(`/fee-sheet-row`, feeSheetRow);\n }\n\n public async updateFeeSheetRecord(feeSheet: FeeSheetDto): Promise {\n return await this.client.sendRequest(HttpMethodEnum.Put, '', feeSheet);\n }\n\n public async deleteFeeSheet(feeSheetId: Guid): Promise {\n return await this.client.getData(HttpMethodEnum.Delete, `/${feeSheetId}`);\n }\n\n public async checkFeeSheetName(feeSheetName: string,client: string = '' , agent: string = ''): Promise {\n return await this.client.get(`?feeSheetName=${feeSheetName}&clientId=${client}&agentId=${agent}`);\n }\n\n public async getAgentsWithParentFeeSheet(clientFeeSheetId: Guid) : Promise {\n return await this.client.get(`/get-agents-by-parent-fee-sheet/${clientFeeSheetId}`);\n }\n\n public async getAgentNamesWithParentFeeSheet(clientFeeSheetId: Guid): Promise {\n return await this.client.get(`/${clientFeeSheetId}/associated-agents`);\n }\n\n public async createAgentFeeSheetsFromList(clientFeeSheetId: Guid, massAdderDto: FeeSheetMassAdderCreationDto): Promise {\n return await this.client.postJson(`/create-fee-sheets/${clientFeeSheetId}`, massAdderDto);\n }\n\n public async getFeeSheetsStatus(clientId: Guid, agentIds: Guid[]): Promise {\n return await this.client.getPostData(`/feeSheetStatus/${clientId}`, agentIds);\n }\n\n public async getExportFeeSheetsHTML(feeSheetIds: Guid[]): Promise {\n return await this.client.getPostData(`/export-fee-sheets-html`, feeSheetIds);\n }\n\n public async getExportFeeSheetsPdf(payload: ExportFeeSheetsDto) {\n return await this.client.getPostData(`/export-fee-sheets`, payload);\n }\n\n public async updateFeeSheetRowNotes(feeSheetRowId: Guid, note: string | null) {\n let feeSheetRowNotes: FeeSheetRowNotesDto = { FeeSheetRowId: feeSheetRowId, Notes: note }\n return await this.client.getPostData(`/update-feesheet-row-notes`, feeSheetRowNotes);\n }\n\n public async sendFeesheets(sendFeeSheets:SendFeeSheetDto) {\n return await this.client.getPostData(`/send-feesheets`, sendFeeSheets);\n }\n\n public async getSentDates(feeSheetId: Guid) {\n return await this.client.get(`/sent-dates/${feeSheetId}`);\n }\n}\n","export enum FeeTypeEnum {\n Service = 0,\n Translation = 1,\n Expense = 2\n}\n\nexport enum FeeTypeNameEnum {\n Service = \"Service\",\n Translation = \"Translation\",\n Expense = \"Expense\"\n}\n\nexport enum FeeSheetModalType {\n Add = \"Add\",\n Update = \"Update\"\n}\n\nexport enum FeeSheetModalFor {\n Client = \"Client\",\n Agent = \"Agent\"\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"65%\",\"height\":\"100%\",\"max-width\":\"100%\",\"max-height\":\"100%\",\"show-title\":true,\"title\":_vm.dialogTitle,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog,\"on-shown\":_vm.onPopupShown,\"on-hidden\":_vm.onPopupHidden},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.save}},[_c('dx-scroll-view',[_c('div',{staticClass:\"fee-sheet\"},[_c('div',{staticClass:\"fee-sheet-form\"},[_c('dx-form',{ref:\"formComponent\",attrs:{\"id\":\"feeSheetForm\",\"col-count\":9,\"form-data\":_vm.feeSheetValue,\"label-location\":'top'},scopedSlots:_vm._u([{key:\"lastSentDateTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('dx-button',{attrs:{\"icon\":\"info\",\"hint\":\"Sent Date History\"},on:{\"click\":function($event){return _vm.openSentDatePopup(data)}}}),_c('dx-date-box',{attrs:{\"type\":\"date\",\"value\":data.editorOptions.value,\"open-on-field-click\":true},on:{\"update:value\":function($event){return _vm.$set(data.editorOptions, \"value\", $event)},\"valueChanged\":_vm.onSelection}})],1)]}}])},[_c('dx-item',{attrs:{\"label\":{text:'Client'},\"col-span\":3},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('dx-text-box',{attrs:{\"read-only\":true},model:{value:(_vm.ClientVal.ClientName),callback:function ($$v) {_vm.$set(_vm.ClientVal, \"ClientName\", $$v)},expression:\"ClientVal.ClientName\"}})]},proxy:true}])}),_c('dx-item',{attrs:{\"data-field\":\"AgentId\",\"label\":{ text: 'Agent' },\"col-span\":3,\"editor-options\":_vm.agentOption,\"editor-type\":\"dxLookup\",\"validation-rules\":_vm.validationRules.agent,\"cssClass\":\"fee-sheet-name\",\"visible\":_vm.isAgentFor}}),_c('dx-item',{attrs:{\"item-type\":\"empty\",\"col-span\":3,\"visible\":_vm.isClientFor}}),_c('dx-item',{attrs:{\"data-field\":\"FeeSheetName\",\"label\":{\n text: (!_vm.isClientFor ? 'Client Fee Sheet': 'Sheet Name')\n },\"col-span\":3,\"editor-type\":\"dxTextBox\",\"validation-rules\":_vm.validationRules.sheetName,\"cssClass\":\"fee-sheet-name\",\"editor-options\":_vm.feeSheetTextBoxOption,\"visible\":_vm.feeSheetTextBoxOption.visible}}),_c('dx-item',{ref:\"refFeeSheetName\",attrs:{\"data-field\":\"FeeSheetName\",\"label\":{\n text: (!_vm.isClientFor ? 'Client Fee Sheet': 'Sheet Name')\n },\"col-span\":3,\"validation-rules\":_vm.validationRules.sheetName,\"editor-type\":\"dxLookup\",\"editor-options\":_vm.feeSheetOption,\"visible\":_vm.feeSheetOption.visible,\"cssClass\":\"fee-sheet-name\"}}),_c('dx-item',{attrs:{\"data-field\":\"InJurisdiction\",\"editor-type\":\"dxSelectBox\",\"label\":{text:'Jurisdiction'},\"editor-options\":_vm.jurisdictionOption}}),_c('dx-item',{attrs:{\"col-span\":3,\"data-field\":\"FilingTypes\",\"label\":{text:'Filing Type'},\"editor-options\":_vm.filingOption,\"editor-type\":\"dxTagBox\",\"validation-rules\":_vm.validationRules.filingType}}),_c('dx-item',{attrs:{\"col-span\":_vm.feeSheetFor === 'Agent' ? 1 : 2,\"data-field\":\"CurrencyId\",\"label\":{text:'Currency Type'},\"editor-options\":_vm.currencyOption,\"editor-type\":\"dxSelectBox\",\"validation-rules\":_vm.validationRules.currency}}),_c('dx-item',{attrs:{\"col-span\":_vm.feeSheetFor === 'Agent' ? 2 : 3,\"data-field\":\"EffectiveDate\",\"editor-type\":\"dxDateBox\",\"editor-options\":_vm.effectiveDateOptions}}),_c('dx-item',{attrs:{\"col-span\":2,\"data-field\":\"LastSentDate\",\"editor-type\":\"dxDateBox\",\"visible\":_vm.feeSheetFor === 'Agent',\"template\":\"lastSentDateTemplate\"}}),_c('dx-item',{attrs:{\"col-span\":5,\"data-field\":\"FeeSheetTitle\",\"label\":{text:'Title'},\"editor-options\":_vm.titleOptions,\"validation-rules\":_vm.validationRules.sheetTitle}}),_c('dx-item',{attrs:{\"col-span\":4,\"label\":{text:'Receipt'}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.feeSheet.ReceiptFileName!=null),expression:\"feeSheet.ReceiptFileName!=null\"}]},[_c('div',[(_vm.feeSheet.ReceiptFileId)?_c('span',{staticClass:\"download-link\"},[_c('a',{on:{\"click\":_vm.downloadSheetUrl}},[_vm._v(_vm._s(_vm.feeSheet.ReceiptFileName))])]):_c('span',[_vm._v(\" \"+_vm._s(_vm.feeSheet.ReceiptFileName)+\" \")]),_c('dx-button',{staticClass:\"remove-file\",attrs:{\"icon\":\"close\"},on:{\"click\":_vm.resetFile}})],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.feeSheet.ReceiptFileName==null),expression:\"feeSheet.ReceiptFileName==null\"}]},[_c('dx-button',{attrs:{\"icon\":\"upload\",\"text\":\"Add Receipt\"},on:{\"click\":function($event){return _vm.$refs.fileReceipt.click()}}}),_c('input',{ref:\"fileReceipt\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\"application/pdf\"},on:{\"change\":_vm.fileChange}})],1)])]},proxy:true}])})],1)],1)]),_c('div',{staticClass:\"phase-fee-sheet\"},[_c('div',{staticClass:\"fee-sheet-row-header\"},[_c('div',{staticClass:\"add-fee-sheet-row\"},[_c('dx-button',{attrs:{\"width\":\"150\",\"text\":\"Add Phase\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.onAddPhaseType}})],1)]),_c('div',{staticClass:\"list-of-fee-sheet-rows\"},[_c('dx-data-grid',{ref:\"phaseDataGrid\",attrs:{\"height\":350,\"data-source\":_vm.PhaseFeeSheetRows,\"pageSize\":25,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":false,\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnResizingMode\":_vm.setAttr('columnResizingMode', 'widget'),\"cache-enabled\":false,\"filter-row\":_vm.setAttr('filter-row', { visible: false })},on:{\"cell-prepared\":_vm.onCellPrepared,\"row-prepared\":_vm.onRowPrepared},scopedSlots:_vm._u([{key:\"phaseOrMultiphaseTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{},[_c('div',[(data.data.PhaseAliasId)?_c('div',[_vm._v(\"\\n \"+_vm._s(data.data.PhaseAlias.Name)+\"\\n \")]):_c('div',[_vm._v(\"\\n \"+_vm._s(data.data.PhaseType.PhaseName)+\"\\n \")])])])}},{key:\"signedTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-check-box',{attrs:{\"value\":data.data.Signed},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Signed\", $event)}}})],1)])}},{key:\"editTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOption\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.feeSheetRowEditBtnClicked(data)}}})],1),_c('div',[_c('dx-button',{staticClass:\"dx-button dx-button-normal dx-button-mode-contained dx-widget dx-button-has-icon\",class:_vm.getNotesClass(data.data),attrs:{\"type\":\"normal\",\"hint\":\"Notes\",\"icon\":\"comment\"},on:{\"click\":function($event){return _vm.openNotes(data)}}})],1),_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"clearsquare\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.feeSheetRowInfractionRemoveBtnClicked(data, 'Phase')}}})],1),(_vm.isForAgent())?_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"search\",\"hint\":\"Client's Rule\",\"disabled\":_vm.isModified(data.data.RowInfo)},on:{\"click\":function($event){return _vm.onParentFeeSheetRowView(data.data, 'Phase')}}})],1):_vm._e()])}},{key:\"capDisplayTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.CapDisplay,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"CapDisplay\", $event)}}})],1)])}}])},[_c('dx-column',{attrs:{\"width\":\"10%\",\"allow-editing\":false,\"caption\":\"Phase\",\"cell-template\":\"phaseOrMultiphaseTemplate\"}}),_c('dx-column',{attrs:{\"width\":\"55%\",\"allow-editing\":false,\"data-field\":\"Description\",\"caption\":\"Description\",\"calculate-cell-value\":_vm.getDescriptionValue}}),_c('dx-column',{attrs:{\"width\":\"13%\",\"allow-editing\":false,\"data-field\":\"CapDisplay\",\"cssClass\":\"description-cell\",\"cell-template\":\"capDisplayTemplate\",\"caption\":\"Caps\"}}),_c('dx-column',{attrs:{\"width\":\"10%\",\"allow-editing\":true,\"data-field\":\"Signed\",\"caption\":\"Signed\",\"cell-template\":\"signedTemplate\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":\"10%\",\"cell-template\":\"editTemplate\",\"cssClass\":\"badge-cell\"}})],1),_c('div',{staticClass:\"add-fee-sheet-row\"},[_c('dx-button',{attrs:{\"width\":\"150\",\"text\":\"Add Infraction\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.onAddInfraction}})],1),_c('div',{staticClass:\"infraction-list\"},[_c('dx-data-grid',{ref:\"infractionDataGrid\",attrs:{\"height\":200,\"data-source\":_vm.InfractionFeeSheetRows,\"pageSize\":25,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":false,\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnResizingMode\":_vm.setAttr('columnResizingMode', 'widget'),\"cache-enabled\":false,\"filter-row\":_vm.setAttr('filter-row', { visible: false })},on:{\"cell-prepared\":_vm.onCellPrepared,\"row-prepared\":_vm.onRowPrepared},scopedSlots:_vm._u([{key:\"signedTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-check-box',{attrs:{\"value\":data.data.Signed},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Signed\", $event)}}})],1)])}},{key:\"editTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOption\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.feeSheetRowInfractionEditBtnClicked(data)}}})],1),_c('div',[_c('dx-button',{staticClass:\"dx-button dx-button-normal dx-button-mode-contained dx-widget dx-button-has-icon\",class:_vm.getNotesClass(data.data),attrs:{\"type\":\"normal\",\"hint\":\"Notes\",\"icon\":\"comment\"},on:{\"click\":function($event){return _vm.openNotes(data)}}})],1),_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"clearsquare\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.feeSheetRowInfractionRemoveBtnClicked(data, 'Infraction')}}})],1),(_vm.isForAgent())?_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"search\",\"hint\":\"Client's Rule\",\"disabled\":_vm.isModified(data.data.RowInfo)},on:{\"click\":function($event){return _vm.onParentFeeSheetRowView(data.data, 'Infraction')}}})],1):_vm._e()])}},{key:\"capDisplayTemplate\",fn:function(ref){\n var data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.CapDisplay,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"CapDisplay\", $event)}}})],1)])}}])},[_c('dx-column',{attrs:{\"width\":\"10%\",\"allow-editing\":false,\"data-field\":\"InfractionType.Name\",\"caption\":\"Infraction\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"width\":\"55%\",\"allow-editing\":false,\"data-field\":\"Description\",\"caption\":\"Description\",\"calculate-cell-value\":_vm.getDescriptionValue}}),_c('dx-column',{attrs:{\"width\":\"13%\",\"allow-editing\":false,\"data-field\":\"CapDisplay\",\"cssClass\":\"description-cell\",\"cell-template\":\"capDisplayTemplate\",\"caption\":\"Caps\"}}),_c('dx-column',{attrs:{\"width\":\"10%\",\"allow-editing\":true,\"data-field\":\"Signed\",\"caption\":\"Signed\",\"cell-template\":\"signedTemplate\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":\"10%\",\"cell-template\":\"editTemplate\",\"cssClass\":\"badge-cell\"}})],1)],1)],1)])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.save, useSubmitBehavior:true },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.cancel },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('fee-sheet-row-dialog',{attrs:{\"showDialog\":_vm.showFeeSheetRowDialog,\"feeSheetRow\":_vm.feeSheetRow,\"feeSheetRowType\":_vm.feeSheetRowModalType,\"countryList\":_vm.countryList,\"feeSheetRowTypeEnum\":_vm.feeSheetRowType,\"selectedPhasesInfraction\":_vm.selectedPhasesInfraction},on:{\"hidingFeeSheetRow\":_vm.hidingFeeSheetRowDialog}}),(_vm.selectedfeeSheetRowNotes)?[_c('fee-sheet-row-notes',{attrs:{\"showDialog\":_vm.showFeeSheetNotes,\"title\":_vm.feeSheetNotesTitle,\"notes\":_vm.selectedfeeSheetRowNotes.UserNotes,\"updatedBy\":_vm.selectedfeeSheetRowNotes.UserNotesUpdatedBy,\"updateDate\":_vm.selectedfeeSheetRowNotes.UserNotesUpdateDate,\"feeSheetRowId\":_vm.selectedfeeSheetRowNotes.FeeSheetRowId},on:{\"update:showDialog\":function($event){_vm.showFeeSheetNotes=$event},\"update:show-dialog\":function($event){_vm.showFeeSheetNotes=$event},\"update:notes\":function($event){return _vm.$set(_vm.selectedfeeSheetRowNotes, \"UserNotes\", $event)},\"update:updatedBy\":function($event){return _vm.$set(_vm.selectedfeeSheetRowNotes, \"UserNotesUpdatedBy\", $event)},\"update:updated-by\":function($event){return _vm.$set(_vm.selectedfeeSheetRowNotes, \"UserNotesUpdatedBy\", $event)},\"update:updateDate\":function($event){return _vm.$set(_vm.selectedfeeSheetRowNotes, \"UserNotesUpdateDate\", $event)},\"update:update-date\":function($event){return _vm.$set(_vm.selectedfeeSheetRowNotes, \"UserNotesUpdateDate\", $event)}}})]:_vm._e(),_c('parent-fee-sheet-row-details',{attrs:{\"showDialog\":_vm.showParentFeeSheetRowDetail,\"parentFeeSheetRow\":_vm.parentFeeSheetRowToView},on:{\"hiding\":_vm.hidingParentFeeSheetRow}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.isLoading,\"shading\":true,\"show-pane\":true,\"shading-color\":\"rgba(0,0,0,0.4)\"}}),_c('popup',{attrs:{\"width\":\"300\",\"height\":\"400\",\"max-height\":\"400\",\"visible\":_vm.showSentDateListPopup,\"title\":\"Sent Date History\"},on:{\"update:visible\":function($event){_vm.showSentDateListPopup=$event}}},[_c('dx-scroll-view',{attrs:{\"show-scrollbar\":\"onScroll\",\"scrollByContent\":true,\"scrollByThumb\":true,\"direction\":\"vertical\"}},[_c('dx-list',{attrs:{\"data-source\":_vm.sentDates,\"display-expr\":_vm.formatSentDates}})],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'default', stylingMode: 'contained', onClick: _vm.closePopup },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '../store';\nimport { InfractionTypeDto } from '../models/infractions/InfractionTypeDto';\nimport { ManualCodeInvoiceLineItemDto } from '../models/ManualCodeInvoiceLineItemDto';\n\nexport class InfractionService {\n client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '')\n }\n\n async GetInfractionsPerLineItem(id: string): Promise {\n return await this.client.get(`/api/manualcoding/${id}/infractions`);\n }\n\n async ConfirmInfractions(id: string, payload: string): Promise {\n return await this.client.getPostData(`/api/manualcoding/${id}/confirm-infractions`, payload);\n }\n\n async AddInfraction(id: string, payload: InfractionTypeDto[]): Promise {\n return await this.client.getPostData(`/api/manualcoding/${id}/add-infractions`, payload);\n }\n\n async GetAllInfractionTypes(): Promise {\n return await this.client.get(`/api/manualcoding/infraction-types`);\n }\n\n async GetAllInfractions(id: string) : Promise {\n return await this.client.get(`/api/manualcoding/${id}/infractions/display`);\n }\n}","import { CountryDto } from '../CountryDto';\nimport { AgentDto } from '../agent/AgentDto';\nimport { FilingTypeDto } from '../FilingTypeDto';\n\nexport interface FeeSheetRuleDto {\n FeeSheetRuleId: Guid,\n FeeSheetRowId: Guid,\n CountryId?: number,\n CurrencyId?: number,\n TargetAmount?: number,\n CapAmount?: number,\n Notes: string,\n DeletedDate?: Date,\n Level: FeeSheetRuleLevelEnum,\n Type: string,\n Amount: number,\n CountryCode?: string,\n Country?: CountryDto,\n Agent?: AgentDto,\n ClientId?: Guid,\n FilingTypes: FilingTypeDto[], \n PhaseTypeId?: number,\n Signed: boolean,\n InJurisdiction: boolean,\n EffectiveDate?: Date\n}\n\nexport enum FeeSheetRuleLevelEnum {\n NA = 0,\n Level1= 1,\n Level2 = 2,\n Level3 = 3,\n Level4 = 4,\n Level5 = 5,\n Level6 = 6,\n Level7 = 7, \n Level8 = 8,\n Level9 = 9,\n Level10 = 10,\n}\n\nexport enum FeeSheetRuleLevelNameEnum {\n NA = \"N/A\",\n Level1 = \"Level 1\",\n Level2 = \"Level 2\",\n Level3 = \"Level 3\",\n Level4 = \"Level 4\",\n Level5 = \"Level 5\",\n Level6 = \"Level 6\",\n Level7 = \"Level 7\", \n Level8 = \"Level 8\",\n Level9 = \"Level 9\",\n Level10 = \"Level 10\",\n}\n\nexport enum FeeSheetRuleTypeEnum {\n Cap = \"Cap\",\n Target = \"Target\"\n}\n\nexport function FeeSheetRulesSortFunction(rule1: FeeSheetRuleDto, rule2: FeeSheetRuleDto) : number {\n let result = 0;\n\n if(rule1.CountryId == null || rule2.CountryId == null) {\n if(rule1.CountryId == null && rule2.CountryId != null) {\n result = -1;\n }\n else if(rule1.CountryId != null && rule2.CountryId == null) {\n result = 1;\n }\n }\n else {\n if(rule1.CountryId < rule2.CountryId) {\n result = -1;\n }\n else if(rule1.CountryId > rule2.CountryId) {\n result = 1;\n }\n }\n\n if(result == 0) {\n if(rule1.Level < rule2.Level) {\n result = -1;\n }\n else if(rule1.Level > rule2.Level) {\n result = 1;\n }\n }\n\n if(result == 0) {\n if(rule1.TargetAmount != null && rule2.CapAmount != null) {\n result = -1;\n }\n else if(rule1.CapAmount != null && rule2.TargetAmount != null) {\n result = 1;\n }\n }\n \n return result;\n}","import { PhaseTypeDto } from '../PhaseTypeDto';\nimport { FeeSheetRuleDto } from './FeeSheetRuleDto';\nimport { InfractionTypeDto } from '../infractions/InfractionTypeDto';\nimport { PhaseAliasDto } from '../PhaseAliasDto';\n\nexport interface FeeSheetRowDto {\n FeeSheetRowId: Guid;\n FeeSheetId: Guid;\n Description: string;\n PhaseTypeId?: number;\n InfractionTypeId?: Guid;\n PhaseAliasId?: Guid;\n PhaseType?: PhaseTypeDto;\n InfractionType?: InfractionTypeDto;\n PhaseAlias?: PhaseAliasDto;\n FeeSheetRules: FeeSheetRuleDto[];\n DeletedFeeSheetRules?: FeeSheetRuleDto[];\n Signed: boolean;\n CapDisplay: string;\n RowInfo?: ModifiedDetails;\nUserNotes?: string | null;\n UserNotesUpdateDate?: Date | null;\n UserNotesUpdatedBy?: string | null\n}\nexport interface ModifiedDetails {\n ModifiedDetails: Array;\n Status: FeeSheetRowStatusEnum;\n}\nexport enum FeeSheetRowStatusEnum {\n New,\n Modified,\n UnModified\n \n}\nexport enum FeeSheetRowDetailEnum {\n Description,\n Rule,\n Signed,\n}\nexport interface FeeSheetRowNotesDto {\n Notes: string | null;\n FeeSheetRowId: Guid;\n}\n\nexport enum FeeSheetRowTypeEnum {\n Phase = \"Phase\",\n Infraction = \"Infraction\"\n}","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { SelectOption } from '@/models/SelectOption';\n\nexport class PhaseTypeService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/phasetype');\n }\n\n async getAll(): Promise {\n return await this.client.get('/all');\n }\n\n async getAllSelectOptions(includeAll: boolean = false): Promise {\n let phaseTypes = await this.getAll();\n let result = phaseTypes.map(p => {\n return { text: p.PhaseName, value: p.PhaseTypeId };\n });\n\n if (includeAll) {\n result.unshift({ text: 'ALL', value: '' });\n }\n\n return result;\n }\n\n async get(id: number): Promise {\n return await this.client.get(`/${id}`);\n }\n\n async create(data: PhaseTypeDto): Promise {\n return await this.client.getPostData('', data);\n }\n\n async update(id: number, data: PhaseTypeDto): Promise {\n return await this.client.getData(HttpMethodEnum.Put, `/${id}`, data);\n }\n\n async delete(id: number): Promise {\n return await this.client.getData(HttpMethodEnum.Delete, `/${id}`);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"width\":700,\"height\":670,\"show-title\":true,\"title\":_vm.dialogTitle,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog,\"on-shown\":_vm.onPopupShown,\"on-hidden\":_vm.onPopupHidden,\"on-showing\":_vm.onShowing},on:{\"update:visible\":function($event){_vm.showingDialog=$event}}},[_c('dx-scroll-view',[_c('div',{staticClass:\"fee-sheet-rows\"},[_c('form',{on:{\"submit\":_vm.save}},[_c('dx-responsive-box',{attrs:{\"screen-by-width\":_vm.screen,\"single-column-screen\":\"xs\"}},[_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-col',{attrs:{\"ratio\":1}}),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_c('div',[_vm._v(_vm._s(_vm.thisFeeSheetRowType)+\":\")])]),_c('div',{staticClass:\"dx-field-value\"},[(_vm.forPhaseSelection)?_c('div',[_c('div',[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.phaseMultiPhaseTypes,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedPhase,\"placeholder\":\"Add a Phase\",\"read-only\":!_vm.thisIsForAdd},on:{\"update:value\":function($event){_vm.selectedPhase=$event}}})],1)]):_c('div',[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.infractionList,\"display-expr\":\"Name\",\"value-expr\":\"InfractionTypeId\",\"value\":_vm.selectedInfraction,\"read-only\":!_vm.thisIsForAdd,\"placeholder\":\"Add an Infraction\"},on:{\"update:value\":function($event){_vm.selectedInfraction=$event}}},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"Infraction is required\"}})],1)],1)],1)])])])])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":0,\"col\":0}})],1),_c('dx-item',[_c('dx-location',{attrs:{\"row\":0,\"col\":1}})],1),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"fee-sheet-rules\"},[_c('div',{staticClass:\"add-btn\"},[_c('dx-button',{attrs:{\"text\":\"Add\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"width\":70,\"on-click\":_vm.onAddFeeSheetRule,\"disabled\":_vm.cantAdd}})],1),_c('dx-data-grid',{ref:\"phaseDataGrid\",attrs:{\"cache-enabled\":false,\"height\":250,\"data-source\":_vm.ThisFeeSheetRow.FeeSheetRules,\"pageSize\":25,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":_vm.setAttr('rowAlternationEnabled', true),\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnMinWidth\":_vm.setAttr('columnMinWidth', 100),\"columnAutoWidth\":_vm.setAttr('columnAutoWidth', true),\"filter-row\":_vm.setAttr('filter-row', { visible: false }),\"onRowUpdated\":_vm.onRowUpdatedEvent},scopedSlots:_vm._u([{key:\"editTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOption\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"clearsquare\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.deleteBtnClicked(data)}}})],1)])}},{key:\"amountTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',[_vm._v(_vm._s(_vm._f(\"currency\")(data.data.Amount,2)))])]}}])},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\",\"allow-adding\":true,\"start-edit-action\":'click',\"select-text-on-edit-start\":true}}),_c('dx-column',{attrs:{\"allow-editing\":true,\"data-field\":\"Amount\",\"caption\":\"Amount\",\"data-type\":\"number\",\"cell-template\":\"amountTemplate\"}},[_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"allow-editing\":true,\"data-field\":\"CountryId\",\"caption\":\"Country\",\"editor-options\":{ onItemClick: _vm.onCellEdit }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.countryList,\"display-expr\":\"CountryCode\",\"value-expr\":\"CountryId\"}}),_c('dx-numeric-rule',{attrs:{\"message\":\"This is required!\"}}),_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"allow-editing\":true,\"data-field\":\"Level\",\"caption\":\"Level\",\"editor-options\":{ onItemClick: _vm.onCellEdit }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.levelList,\"display-expr\":\"text\",\"value-expr\":\"value\"}}),_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"allow-editing\":true,\"data-field\":\"Type\",\"editor-options\":{ onItemClick: _vm.onCellEdit },\"caption\":\"Type\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.typeList,\"displayExpr\":\"text\",\"value-expr\":\"value\"}}),_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":65,\"cell-template\":\"editTemplate\",\"cssClass\":\"badge-cell\"}}),_c('dx-scrolling',{attrs:{\"mode\":\"virtual\"}})],1),(_vm.errorMessage)?_c('span',{staticClass:\"duplication-of-rules\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()],1)]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":1,\"col\":0}})],1),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"field-label\"},[_vm._v(\"Description:\")]),_c('div',{staticClass:\"field-value\"},[_c('dx-html-editor',{ref:\"privateNotesEditor\",attrs:{\"value-type\":\"html\",\"height\":\"200\"},model:{value:(_vm.ThisFeeSheetRow.Description),callback:function ($$v) {_vm.$set(_vm.ThisFeeSheetRow, \"Description\", $$v)},expression:\"ThisFeeSheetRow.Description\"}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1)],1)])])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":2,\"col\":0}})],1),_c('dx-item',[_c('dx-location',{attrs:{\"row\":3,\"col\":0}})],1)],1)],1)])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: _vm.dialogTitle, type: 'default', stylingMode: 'contained', onClick: _vm.save, useSubmitBehavior: 'true', elementAttr: { id: 'feeSheetRowDialogSaveButton' } },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.cancel },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { DxPopup, DxSelectBox, DxButton, DxTextBox, DxScrollView } from 'devextreme-vue';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport { DxResponsiveBox, DxLocation, DxCol, DxRow } from 'devextreme-vue/responsive-box';\nimport { DxCheckBox } from 'devextreme-vue/check-box';\nimport {DxSwitch} from 'devextreme-vue/switch';\nimport {\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxScrolling,\n DxRequiredRule,\n DxNumericRule\n} from 'devextreme-vue/data-grid';\nimport { FeeSheetRuleDto, FeeSheetRuleLevelEnum, FeeSheetRuleTypeEnum, FeeSheetRuleLevelNameEnum } from '@/models/Fees/FeeSheetRuleDto';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '@/models/Fees/FeeSheetRowDto';\nimport { CountryDto } from '@/models/CountryDto';\nimport { FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport { DataGrid } from '@questelservices/common-vue';\nimport Button from \"devextreme/ui/button\";\nimport _ from \"lodash\";\nimport { PhaseTypeService } from '../../service/PhaseTypeService';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { InfractionService } from '@/service/InfractionService';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport DxValidator, { DxRequiredRule as RequiredRule} from 'devextreme-vue/validator';\nimport { DxForm } from 'devextreme-vue/form';\nimport SelectBox from \"devextreme/ui/select_box\";\nimport Form from \"devextreme/ui/form\";\nimport { PhaseAliasService } from '@/service/PhaseAliasService';\nimport { PhaseAliasDto } from '../../models/PhaseAliasDto';\nimport { alert } from 'devextreme/ui/dialog';\n\n@Component({\n components: {\n DxPopup,\n DxHtmlEditor,\n DxItem,\n DxToolbarItem,\n DxResponsiveBox,\n DxLocation,\n DxCol,\n DxRow,\n DxToolbar,\n DxSelectBox,\n DxCheckBox,\n DxDataGrid,\n DxEditing,\n DxColumn,\n DxButton,\n DxLookup,\n DxScrolling,\n DxTextBox,\n DxRequiredRule,\n DxValidator,\n RequiredRule,\n DxForm,\n DxScrollView,\n DxNumericRule\n }\n})\nexport default class FeeSheetRowDialog extends Vue {\n $refs: Vue['$refs'] & {\n phaseDataGrid?: DataGrid;\n } = {};\n\n @Prop()\n selectedPhasesInfraction!: any[];\n\n get thisSelectedPhasesInfraction() {\n return this.selectedPhasesInfraction;\n }\n\n set thisSelectedPhasesInfraction(value : any[]) {\n this.selectedPhasesInfraction = value;\n }\n \n @Prop()\n feeSheetRowTypeEnum!: FeeSheetRowTypeEnum;\n\n get thisFeeSheetRowType() {\n return this.feeSheetRowTypeEnum;\n }\n set thisFeeSheetRowType(value : FeeSheetRowTypeEnum){\n this.feeSheetRowTypeEnum = value;\n }\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingModal();\n }\n\n @Watch(\"showDialog\")\n onShowPropChange(value: boolean, oldValue: boolean) {\n if(value){\n this.processGetPhases();\n this.processFeeSheetRowType();\n this.addEventListeners(); \n }\n else {\n this.removeEventListeners();\n }\n }\n\n @Prop()\n feeSheetRow!: FeeSheetRowDto;\n\n get ThisFeeSheetRow() {\n return this.feeSheetRow;\n }\n\n set ThisFeeSheetRow(value:FeeSheetRowDto) {\n this.feeSheetRow = value;\n }\n\n @Prop()\n feeSheetRowType : FeeSheetModalType\n\n @Prop()\n countryList!: CountryDto[];\n\n dialogTitle: string;\n private phaseService: PhaseTypeService;\n private infractionService : InfractionService;\n private phaseAliasService: PhaseAliasService;\n \n typeList: Array<{ value: string, text: string }> = [ \n { value: FeeSheetRuleTypeEnum.Cap, text: FeeSheetRuleTypeEnum.Cap },\n { value: FeeSheetRuleTypeEnum.Target, text: FeeSheetRuleTypeEnum.Target }\n ];\n errorVisible: boolean = false;\n errorMessage :string = '';\n errorMessageList: any = {\n duplication : \"Duplication of row with same Country, Level and Type.\",\n required : \"Please provide necessary details in each row.\"\n }\n cantAdd: boolean = false;\n hasDuplication: boolean = false;\n forPhaseSelection: boolean;\n infractionList : InfractionTypeDto[];\n selectedPhase: any;\n selectedInfraction: any;\n phaseMultiPhaseTypes : Array<{ text: string, value: any, type:string }> = [];\n levelList: Array<{ value: number, text: string }> = [ \n { value: FeeSheetRuleLevelEnum.NA, text: FeeSheetRuleLevelNameEnum.NA }, \n { value: FeeSheetRuleLevelEnum.Level1, text: FeeSheetRuleLevelNameEnum.Level1 },\n { value: FeeSheetRuleLevelEnum.Level2, text: FeeSheetRuleLevelNameEnum.Level2 },\n { value: FeeSheetRuleLevelEnum.Level3, text: FeeSheetRuleLevelNameEnum.Level3 },\n { value: FeeSheetRuleLevelEnum.Level4, text: FeeSheetRuleLevelNameEnum.Level4 },\n { value: FeeSheetRuleLevelEnum.Level5, text: FeeSheetRuleLevelNameEnum.Level5 },\n { value: FeeSheetRuleLevelEnum.Level6, text: FeeSheetRuleLevelNameEnum.Level6 },\n { value: FeeSheetRuleLevelEnum.Level7, text: FeeSheetRuleLevelNameEnum.Level7 },\n { value: FeeSheetRuleLevelEnum.Level8, text: FeeSheetRuleLevelNameEnum.Level8 },\n { value: FeeSheetRuleLevelEnum.Level9, text: FeeSheetRuleLevelNameEnum.Level9 },\n { value: FeeSheetRuleLevelEnum.Level10, text: FeeSheetRuleLevelNameEnum.Level10 }\n \n ];\n thisIsForAdd : boolean;\n formValidationGroup: any;\n\n constructor() {\n super();\n this.dialogTitle = \"Add\"\n this.phaseService = new PhaseTypeService();\n this.infractionService = new InfractionService();\n this.phaseAliasService = new PhaseAliasService('/api/PhaseAlias');\n this.infractionList = [];\n this.phaseMultiPhaseTypes = [];\n this.feeSheetRowType = FeeSheetModalType.Add;\n this.thisIsForAdd = true;\n this.forPhaseSelection = true;\n this.selectedPhase = \"\";\n this.selectedInfraction = '';\n \n }\n\n addEventListeners(): void {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n }\n\n removeEventListeners(): void {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n destroyed(): void {\n this.removeEventListeners();\n }\n\n onKeydown(e: any): void {\n if (e.key === 'Enter' && (e.ctrlKey || e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n onKeyup(e: any): void {\n if (this.showingDialog && e.key === 'Enter' && (e.ctrlKey || e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n let buttonElement = document.getElementById(\"feeSheetRowDialogSaveButton\");\n if(buttonElement) {\n buttonElement.click();\n }\n }\n }\n\n cancel(): void {\n this.hidingModal();\n }\n\n hidingModal(data: FeeSheetRowDto | undefined = undefined) : void {\n this.errorMessage = \"\";\n this.$emit(\"hidingFeeSheetRow\", data); \n if(!data){\n (this.$refs.phaseDataGrid as any).instance.cancelEditData();\n }\n }\n\n onPopupHidden(e:any): void {\n this.hasDuplication = false;\n this.cantAdd = false;\n this.selectedPhase = '';\n this.selectedInfraction = '';\n\n this.resetValidation();\n }\n\n onShowing(e:any): void {\n this.selectedPhase = this.ThisFeeSheetRow.PhaseTypeId;\n this.selectedInfraction = this.ThisFeeSheetRow.InfractionTypeId;\n this.resetValidation();\n }\n\n onPopupShown(e:any) : void {\n if(this.$refs.phaseDataGrid) {\n (this.$refs.phaseDataGrid as any).instance.clearSelection();\n }\n }\n\n resetValidation() {\n if(this.formValidationGroup) {\n this.formValidationGroup.reset();\n }\n }\n\n screen(width: number) {\n if(width < 640)\n return 'xs';\n else \n return 'sm';\n }\n\n\n setAttr(name: string, value: any) : any {\n return Object.keys(this.$attrs).indexOf(name) > -1 ? this.$attrs[name] : value;\n }\n\n async getPhaseList(selected: any): Promise {\n return await this.phaseService.getAll()\n .then((response : PhaseTypeDto[]) => {\n let result = selected.length > 0 ?_.filter(response, (item:PhaseTypeDto) => {\n let equality = _.find(selected, x => x === item.PhaseTypeId);\n \n return equality || equality === 0 ? false : true;\n }) : response;\n\n let resp = result.map((p : PhaseTypeDto, index : number) => {\n return { text: p.PhaseName, value: p.PhaseTypeId, type: 'Phase'}\n });\n\n return resp;\n })\n .catch(err => []);\n }\n\n async getInfractionList(selected: any) : Promise {\n return await this.infractionService.GetAllInfractionTypes()\n .then((response : InfractionTypeDto[]) => {\n let result = selected.length > 0 ? _.filter(response, (item:InfractionTypeDto) => {\n return _.find(selected, x => x === item.InfractionTypeId) ? false : true;\n }): response;\n\n return result;\n })\n .catch(err => []);\n }\n\n async getMultiPhaseList(selected: any) : Promise {\n return await this.phaseAliasService.getAll(_.filter(selected, item => typeof(item) === 'string'))\n .then((response: PhaseAliasDto[]) => {\n let result = selected.length > 0 ? _.filter(response, (item:PhaseAliasDto) => {\n return _.find(selected, x => x === item.PhaseAliasId) ? false : true;\n }): response;\n\n let resp = result.map((p : PhaseAliasDto, index : number) => {\n return { text: p.Name, value: p.PhaseAliasId, type: 'Alias'}\n });\n\n return resp;\n })\n .catch(err => []);\n }\n\n async processGetPhases() {\n this.forPhaseSelection = this.thisFeeSheetRowType === FeeSheetRowTypeEnum.Phase ? true : false;\n let selected = this.thisSelectedPhasesInfraction;\n if(this.forPhaseSelection) {\n this.selectedPhase = \"\";\n this.infractionList = [];\n let pTypes = await this.getPhaseList(selected);\n let mTypes = await this.getMultiPhaseList(selected);\n\n this.phaseMultiPhaseTypes = _.concat(pTypes, mTypes);\n if(this.ThisFeeSheetRow.PhaseType) {\n this.selectedPhase = this.ThisFeeSheetRow.PhaseType.PhaseTypeId; \n }\n else if(this.ThisFeeSheetRow.PhaseAlias){\n this.selectedPhase = this.ThisFeeSheetRow.PhaseAlias.PhaseAliasId;\n }\n }\n else {\n this.phaseMultiPhaseTypes = [];\n\n this.infractionList = await this.getInfractionList(selected);\n\n if(this.ThisFeeSheetRow.InfractionType){\n this.ThisFeeSheetRow.InfractionTypeId = this.ThisFeeSheetRow.InfractionType.InfractionTypeId;\n this.selectedInfraction = this.ThisFeeSheetRow.InfractionType.InfractionTypeId;\n }\n }\n }\n\n processFeeSheetRowType(): void {\n if(this.feeSheetRowType === FeeSheetModalType.Update) {\n this.thisIsForAdd = false;\n this.dialogTitle = \"Update\";\n }\n else {\n this.thisIsForAdd = true;\n this.dialogTitle = \"Add\";\n }\n }\n\n onAddFeeSheetRule(e:any): void { \n let newRule: FeeSheetRuleDto = {\n FeeSheetRuleId: \"00000000-0000-0000-0000-000000000000\",\n FeeSheetRowId: this.feeSheetRow.FeeSheetRowId,\n CountryId: 0,\n Notes: \"\",\n Level: 0,\n Type: \"Cap\",\n Amount: 0,\n CountryCode: \"\",\n Signed: false,\n InJurisdiction: false,\n FilingTypes: []\n };\n\n let toAdd = _.cloneDeep(newRule);\n this.ThisFeeSheetRow.FeeSheetRules.unshift(toAdd);\n\n this.checkCanSaveAndAdd();\n }\n\n onCellEdit(e:any) : void {\n (this.$refs.phaseDataGrid as any).instance.saveEditData();\n }\n\n checkValue(newValue: any, oldValue:any, prop:string) {\n if(newValue.hasOwnProperty(prop) && \n oldValue.hasOwnProperty(prop) && \n newValue[prop] === oldValue[prop]\n ){\n return true;\n }\n\n return false;\n }\n\n onRowUpdatedEvent(e:any) : void {\n this.checkCanSaveAndAdd();\n }\n\n checkIfHasDuplicationOfRules() : boolean {\n let result = false;\n\n let currentRules = _.cloneDeep(this.feeSheetRow.FeeSheetRules);\n //Will include type once decided to be included\n let removeDuplication = currentRules.filter((obj, pos, arr) => {\n let fil = _.filter(arr, item => item.CountryId == obj.CountryId && item.Type == obj.Type && item.Level == obj.Level)\n return fil.length == 1;\n });\n\n if(removeDuplication.length !== this.feeSheetRow.FeeSheetRules.length){\n result = true;\n }\n \n return result;\n }\n\n\n\n checkFeeSheetRulesData(): boolean { \n if(_.find(this.feeSheetRow.FeeSheetRules, (item : FeeSheetRuleDto) => \n (item.CountryId == undefined) || !item.Type || item.Level == null || item.Amount < 0\n )) {\n return true;\n }\n return false\n }\n\n deleteBtnClicked(data: any): void {\n if(!this.feeSheetRow.DeletedFeeSheetRules) {\n this.feeSheetRow.DeletedFeeSheetRules = [];\n }\n\n if(data.data.FeeSheetRuleId != \"00000000-0000-0000-0000-000000000000\" && data.data.FeeSheetRuleId) {\n this.feeSheetRow.DeletedFeeSheetRules.push(data.data);\n }\n \n this.feeSheetRow.FeeSheetRules.splice(data.rowIndex, 1);\n\n this.checkCanSaveAndAdd();\n }\n\n checkCanSaveAndAdd() : void {\n let requiredData = this.checkFeeSheetRulesData();\n let dup = this.checkIfHasDuplicationOfRules();\n\n this.cantAdd = requiredData || dup;\n this.hasDuplication = dup;\n\n\n if(requiredData) {\n this.errorMessage = this.errorMessageList.required;\n } \n else if(dup) {\n this.errorMessage = this.errorMessageList.duplication;\n }\n else {\n this.errorMessage = \"\";\n }\n }\n\n save(e:any) { \n if(!this.showingDialog) {\n return;\n }\n\n //Validation for phase and infraction\n if(this.forPhaseSelection) {\n if(this.selectedPhase == null) {\n alert(\"Please select a valid Phase\", \"Invalid Phase\");\n return;\n }\n }\n else {\n if(this.selectedInfraction == null) {\n alert(\"Please select a valid Infraction\", \"Invalid Infraction\");\n return;\n }\n } \n\n if(this.hasDuplication) {\n this.errorMessage = this.errorMessageList.duplication;\n return;\n }\n\n if(this.checkFeeSheetRulesData()) {\n this.errorMessage = this.errorMessageList.required;\n return;\n }\n\n (this.$refs.phaseDataGrid as any).instance.saveEditData();\n let payload = _.cloneDeep(this.feeSheetRow); \n \n\n if(this.forPhaseSelection) {\n let selectedPhaseMultiPhase = _.find(this.phaseMultiPhaseTypes, item => item.value === this.selectedPhase);\n\n if(selectedPhaseMultiPhase) {\n if(selectedPhaseMultiPhase.type === \"Phase\") {\n payload.PhaseAliasId = undefined;\n payload.PhaseAlias = undefined;\n payload.PhaseTypeId = selectedPhaseMultiPhase.value;\n payload.PhaseType = {\n PhaseTypeId: selectedPhaseMultiPhase.value,\n PhaseName: selectedPhaseMultiPhase.text,\n PhaseVerb: \"\",\n RgbHex: \"\",\n PhaseOrder: 0,\n SecondaryPhaseOrder: null,\n IsBatched: false\n }\n }\n else {\n payload.PhaseTypeId = undefined;\n payload.PhaseType = undefined;\n payload.PhaseAlias = {\n Name: selectedPhaseMultiPhase.text,\n PhaseAliasId: selectedPhaseMultiPhase.value,\n PhaseTypeIds: []\n }\n payload.PhaseAliasId = selectedPhaseMultiPhase.value\n }\n }\n\n }\n else {\n payload.InfractionTypeId = this.selectedInfraction;\n payload.InfractionType = _.find(this.infractionList, \n (item: InfractionTypeDto) => item.InfractionTypeId == payload.InfractionTypeId);\n }\n \n \n this.hidingModal(payload);\n this.resetValidation();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-row-dialog.vue?vue&type=template&id=8d394b84&scoped=true&\"\nimport script from \"./fee-sheet-row-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-row-dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./fee-sheet-row-dialog.vue?vue&type=style&index=0&id=8d394b84&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d394b84\",\n null\n \n)\n\nexport default component.exports","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { FileHelpers } from '@questelservices/common-vue';\nimport { FileAuthorizationRequest } from '@questelservices/common-vue/dist/models/FileAuthorization';\n\n\nexport class FileService {\n private readonly client: QuestelServicesClient;\n private readonly fileService: FileHelpers;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/files');\n this.fileService = new FileHelpers(store);\n \n }\n \n async uploadFiles(request: FileAuthorizationRequest, selectedFiles: any): Promise {\n return this.fileService.getUploadAuthorization('/api/files/upload/authorization',request)\n .then(async (result: any)=>{\n let formData = new FormData();\n formData.append('files[]', selectedFiles);\n\n let res = await this.client.upload(result.Url, formData, result.Token);\n return res;\n }).catch((error : any)=>{\n return JSON.parse(error);\n });\n }\n\n async downloadFiles(fileIds: Guid[]): Promise {\n return this.client.getPostData(`/download`, fileIds)\n .then(async (result : any) => {\n let res = await this.client.download(result.Url, result.Token);\n \n return res;\n })\n .catch((err : any) => JSON.parse(err));\n }\n \n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"width\":700,\"height\":400,\"show-title\":true,\"title\":_vm.title,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog,\"on-showing\":_vm.onShowing},on:{\"update:visible\":function($event){_vm.showingDialog=$event}}},[_c('dx-scroll-view',[_c('div',{staticClass:\"fee-sheet-row-notes\"},[_c('form',{on:{\"submit\":_vm.save}},[_c('dx-responsive-box',{attrs:{\"screen-by-width\":_vm.screen,\"single-column-screen\":\"xs\"}},[_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-col',{attrs:{\"ratio\":1}}),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"field-value\"},[_c('dx-html-editor',{ref:\"privateNotesEditor\",attrs:{\"value-type\":\"html\",\"height\":\"200\"},model:{value:(_vm.actualNotesValue),callback:function ($$v) {_vm.actualNotesValue=$$v},expression:\"actualNotesValue\"}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1)],1)])])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":0,\"col\":0}})],1),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"last-update\"},[_vm._v(\"\\n \"+_vm._s(_vm.lastUpdate)+\"\\n \")])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":1,\"col\":0}})],1)],1)],1)])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.save, useSubmitBehavior: 'true', elementAttr: { id: 'feeSheetRowDialogSaveButton' } },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.cancel },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { DxPopup, DxButton, DxTextBox, DxScrollView } from 'devextreme-vue';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { Prop } from 'vue-property-decorator';\nimport { DxResponsiveBox, DxLocation, DxCol, DxRow } from 'devextreme-vue/responsive-box';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '@/models/Fees/FeeSheetRowDto';\nimport DxValidator, { DxRequiredRule as RequiredRule} from 'devextreme-vue/validator';\nimport { DxForm } from 'devextreme-vue/form';\nimport notify from 'devextreme/ui/notify';\nimport moment from 'moment';\nimport { FeeSheetsService} from '@/service/FeeSheetsService';\nimport CommonModule from '@questelservices/common';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store';\n\n@Component({\n components: {\n DxPopup,\n DxHtmlEditor,\n DxItem,\n DxToolbarItem,\n DxResponsiveBox,\n DxLocation,\n DxCol,\n DxRow,\n DxToolbar,\n DxButton,\n DxTextBox,\n DxValidator,\n RequiredRule,\n DxForm,\n DxScrollView\n }\n})\nexport default class FeeSheetRowNotes extends Vue {\n \n feeSheetService: FeeSheetsService;\n commonState = getModule(CommonModule, store);\n\n constructor() {\n super();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets');\n }\n\n @Prop()\n feeSheetRowId!: string | null\n\n @Prop()\n notes!: string | null\n\n @Prop()\n title!: string | null\n\n @Prop()\n updatedBy!: string | null\n \n @Prop()\n updateDate!: Date | null\n\n @Prop()\n showDialog!: boolean\n\n private defaultGuidValue: string = \"00000000-0000-0000-0000-000000000000\";\n private actualNotesValue: string | null = \"\";\n\n get showingDialog(): boolean {\n return this.showDialog;\n }\n\n set showingDialog(value: boolean) {\n this.actualNotesValue = null;\n this.$emit(\"update:showDialog\", value);\n }\n\n save(e:any) {\n if(this.feeSheetRowId && this.feeSheetRowId != this.defaultGuidValue) {\n this.feeSheetService.updateFeeSheetRowNotes(this.feeSheetRowId, this.actualNotesValue)\n .then(x=> {\n if(x.Success) {\n notify(\"Notes updated\", \"success\", 500);\n this.$emit('update:notes', this.actualNotesValue);\n this.$emit('update:updatedBy', this.commonState.jwtData.Name);\n this.$emit('update:updateDate', new Date());\n this.showingDialog=false;\n }\n else {\n notify(\"Notes not updated\", \"error\", 500);\n }\n })\n .catch(x=> {\n notify(\"Notes not updated\", \"error\", 500);\n })\n }\n else {\n if(this.actualNotesValue && this.actualNotesValue.trim()) {\n this.$emit('update:notes', this.actualNotesValue);\n this.$emit('update:updatedBy', this.commonState.jwtData.Name);\n this.$emit('update:updateDate', new Date());\n }\n else {\n this.$emit('update:notes', null);\n this.$emit('update:updatedBy', null);\n this.$emit('update:updateDate', null);\n }\n notify(\"Notes updated\", \"success\", 500);\n this.showingDialog=false;\n }\n \n }\n\n private cancel(): void {\n this.$emit(\"update:showDialog\", false);\n }\n\n get lastUpdate() {\n let name: string = \"\";\n let dateFormat: string =\"\";\n\n if(this.updatedBy && this.updatedBy.trim()) {\n name = `Last update: ${this.updatedBy}`;\n }\n\n if(this.updateDate) {\n dateFormat = `${moment(this.updateDate).format(\"MMM D, YYYY\")}`;\n }\n return `${name} ${dateFormat}`\n }\n\n private onShowing() {\n this.actualNotesValue = this.notes;\n }\n\n screen(width: number) {\n if(width < 640)\n return 'xs';\n else \n return 'sm';\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-notes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-row-notes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-row-notes.vue?vue&type=template&id=4742c6a4&scoped=true&\"\nimport script from \"./fee-sheet-row-notes.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-row-notes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./fee-sheet-row-notes.vue?vue&type=style&index=0&id=4742c6a4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4742c6a4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":840,\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Client's Rule\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog,\"on-shown\":_vm.onPopupShown,\"on-hidden\":_vm.onPopupHidden},on:{\"update:visible\":function($event){_vm.showingDialog=$event}}},[_c('div',{staticClass:\"parent-fee-sheet-row\"},[_c('dx-data-grid',{attrs:{\"height\":\"auto\",\"pageSize\":25,\"data-source\":_vm.parentFeeSheetRowValue,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":_vm.setAttr('rowAlternationEnabled', true),\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnResizingMode\":_vm.setAttr('columnResizingMode', 'widget'),\"cache-enabled\":false,\"columnAutoWidth\":_vm.setAttr('columnAutoWidth', true),\"filter-row\":_vm.setAttr('filter-row', { visible: false })},scopedSlots:_vm._u([{key:\"signedTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-check-box',{attrs:{\"value\":data.data.Signed,\"read-only\":true},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Signed\", $event)}}})],1)])}},{key:\"descriptionTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.Description,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Description\", $event)}}})],1)])}},{key:\"capDisplayTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.CapDisplay,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"CapDisplay\", $event)}}})],1)])}}])},[_c('dx-column',{attrs:{\"width\":\"20%\",\"allow-editing\":false,\"data-field\":\"PhaseOrInfractionName\",\"caption\":_vm.displayCaption(),\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"width\":\"55%\",\"allow-editing\":false,\"data-field\":\"Description\",\"caption\":\"Description\",\"cell-template\":\"descriptionTemplate\",\"cssClass\":\"description-cell\"}}),_c('dx-column',{attrs:{\"width\":\"15%\",\"allow-editing\":false,\"data-field\":\"CapDisplay\",\"cell-template\":\"capDisplayTemplate\",\"cssClass\":\"description-cell\",\"caption\":\"Caps\"}}),_c('dx-column',{attrs:{\"width\":\"10%\",\"allow-editing\":true,\"data-field\":\"Signed\",\"caption\":\"Signed\",\"cell-template\":\"signedTemplate\"}})],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.onCancel },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport DxToolbar from 'devextreme-vue/toolbar';\nimport { DxCheckBox } from 'devextreme-vue';\nimport _ from \"lodash\";\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxHtmlEditor } from 'devextreme-vue/html-editor';\nimport {\n DxDataGrid,\n DxColumn\n} from 'devextreme-vue/data-grid';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '@/models/Fees/FeeSheetRowDto';\n\n\n@Component({\n components: {\n Popup,\n DxDataGrid,\n DxHtmlEditor,\n DxColumn,\n DxToolbarItem,\n DxCheckBox\n }\n})\nexport default class ParentFeeSheetRowDetails extends Vue {\n @Prop({default : {\n Description: \"\",\n PhaseOrInfractionName: \"\",\n Signed: false,\n CapDisplay: \"\",\n FeeSheetRowType: FeeSheetRowTypeEnum.Phase\n }})\n parentFeeSheetRow!: any\n\n get parentFeeSheetRowValue() {\n if(this.parentFeeSheetRow) {\n this.isForPhase = this.parentFeeSheetRow.FeeSheetRowType == FeeSheetRowTypeEnum.Phase ? true : false;\n return [this.parentFeeSheetRow];\n }\n else{\n return [];\n }\n }\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingModal();\n }\n\n private hidingModal(): void {\n this.$emit(\"hiding\");\n }\n isForPhase: boolean = true;\n\n onPopupShown(e:any) {\n\n }\n onPopupHidden(e:any) {\n\n }\n\n setAttr(name: string, value: any) : any {\n return Object.keys(this.$attrs).indexOf(name) > -1 ? this.$attrs[name] : value;\n }\n onCancel(e: any) {\n this.showingDialog = false;\n }\n displayCaption() {\n if(this.isForPhase) {\n return \"Phase Name\";\n }\n else{\n return \"Infraction Name\";\n }\n }\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./parent-fee-sheet-row-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./parent-fee-sheet-row-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./parent-fee-sheet-row-details.vue?vue&type=template&id=66820884&scoped=true&\"\nimport script from \"./parent-fee-sheet-row-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./parent-fee-sheet-row-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./parent-fee-sheet-row-details.vue?vue&type=style&index=0&id=66820884&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66820884\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport { DxButton, DxDateBox, DxPopup, DxLookup, DxSelectBox, DxTagBox, DxTextBox, DxCheckBox, DxScrollView } from 'devextreme-vue';\nimport { DxList } from 'devextreme-vue/list';\nimport DxToolbar from 'devextreme-vue/toolbar';\nimport { DxForm, DxItem, DxAsyncRule, DxStringLengthRule, DxSimpleItem} from 'devextreme-vue/form';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { AgentService } from '../../service/AgentService';\nimport { FilingTypeService } from '@/service/FilingTypeService';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { FilingTypeDto } from '@/models/FilingTypeDto';\nimport { CurrencyService } from '@/service/CurrencyService';\nimport { JurisdictionDto } from '@/models/JurisdictionDto';\nimport { alert } from 'devextreme/ui/dialog';\nimport Form from 'devextreme/ui/form';\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\nimport { FeeSheetModalFor, FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport _ from 'lodash';\nimport { InfractionService } from '@/service/InfractionService';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport FeeSheetRowDialog from './fee-sheet-row-dialog.vue';\nimport { DxHtmlEditor } from 'devextreme-vue/html-editor';\nimport { DxDataGrid, DxColumn, DxEditing, DxHeaderFilter } from 'devextreme-vue/data-grid';\nimport DevExpress from 'devextreme';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum, FeeSheetRowStatusEnum, FeeSheetRowDetailEnum } from '../../models/Fees/FeeSheetRowDto';\nimport { FeeSheetRuleDto, FeeSheetRuleTypeEnum, FeeSheetRuleLevelEnum, FeeSheetRulesSortFunction, FeeSheetRuleLevelNameEnum } from '@/models/Fees/FeeSheetRuleDto';\nimport { CountryDto } from '@/models/CountryDto';\nimport { CountryService } from '@/service/CountryService';\nimport { FileService } from '@/service/FileService';\nimport DxValidator, { DxRequiredRule } from 'devextreme-vue/validator';\nimport { InfractionTypeDto } from '@/models/infractions/InfractionTypeDto';\nimport { Popup } from '@questelservices/common-vue';\nimport { ClientService } from '@/service/ClientService';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport { FeeSheetTemplateDto } from '@/models/FeeSheetTemplates/FeeSheetTemplateDto';\nimport dialog from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport FeeSheetRowNotes from './fee-sheet-row-notes.vue'\nimport ParentFeeSheetRowDetails from './parent-fee-sheet-row-details.vue';\n\nconst moment = require('moment');\n\nconst JURISDICTION : JurisdictionDto[] = [\n { Name : \"In\", Value : true},\n { Name : \"Out\", Value : false}\n ]\n\n@Component({\n components: {\n Popup,\n DxForm,\n DxItem,\n DxButton,\n DxDateBox,\n DxList,\n DxLookup,\n DxSelectBox,\n DxTagBox,\n DxToolbar,\n DxToolbarItem,\n DxStringLengthRule,\n DxAsyncRule,\n DxSimpleItem,\n DataGrid,\n DxColumn,\n DxHeaderFilter,\n DxEditing,\n DxDataGrid,\n FeeSheetRowDialog,\n DxHtmlEditor,\n DxCheckBox,\n DxTextBox,\n DxValidator,\n DxRequiredRule,\n DxScrollView,\n FeeSheetRowNotes,\n ParentFeeSheetRowDetails,\n DxLoadPanel\n }\n})\nexport default class AddUpdateFeeSheets extends Vue {\n $refs: Vue['$refs'] & {\n formComponent?: Form;\n phaseDataGrid?: DataGrid;\n infractionDataGrid?: DataGrid;\n refFeeSheetName?:any; \n } = {};\n\n @Prop({ default: FeeSheetModalFor.Client })\n feeSheetFor! : FeeSheetModalFor\n\n @Prop({ default: FeeSheetModalType.Add })\n feeSheetType! : FeeSheetModalType\n\n @Prop({ default: function() { \n let def : FeeSheetDto = {\n FeeSheetId: \"00000000-0000-0000-0000-000000000000\",\n ClientId: \"\",\n AgentId: \"\",\n CurrencyId: 1,\n InJurisdiction: true,\n FeeSheetName: \"\",\n EffectiveDate: new Date(),\n FilingTypes: [-1],\n FilingTypesNamesString: \"\",\n FeeSheetRows: [],\n FeeSheetTitle: \"\",\n DeletedFeeSheetRows: [],\n Signed: \"\",\n Modified: false,\n ReceiptFileId: null,\n ReceiptFileName: null \n };\n return def; \n } })\n feeSheet! : FeeSheetDto; \n\n get feeSheetValue() { \n return this.feeSheet;\n }\n\n @Prop()\n client!: ClientDto;\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n @Prop()\n template: FeeSheetTemplateDto | undefined;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingModal();\n }\n\n get ThisFeeSheetType() {\n return this.feeSheetType;\n }\n\n set ThisFeeSheetType(value: FeeSheetModalType) {\n this.feeSheetType = value;\n } \n\n @Watch(\"showDialog\")\n async onShowPropChange(value: boolean, oldValue: boolean) { \n if(value){ \n this.processClientVal();\n this.processGetCountries()\n .then(result => { \n this.processFeeSheetVal(); \n });\n this.processAgentValidation();\n this.processFeeSheetType(); \n }\n }\n\n private get dxPhaseDataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.phaseDataGrid as any).$refs.dxDataGrid.instance;\n } \n\n get ClientVal() {\n return this.client;\n }\n\n private get dxForm() {\n return ((this.$refs.formComponent as Form).instance as any); \n }\n\n private showSentDateListPopup: boolean = false;\n \n parentFeeSheetRows: Array = [];\n phaseWatcher: any;\n infractionWatcher: any;\n async getPrentFeeSheetDetails(id: Guid) {\n return await this.feeSheetsService.getParentFeeSheetDetails(id)\n .then(success => {\n _.forEach(success, (item : FeeSheetRowDto) => {\n item.CapDisplay = '';\n this.processCapDisplay(item, true);\n });\n\n return success;\n })\n .catch(err => []);\n }\n\n async processGettingFeeSheetRows(id: Guid) {\n if (this.$refs.phaseDataGrid) {\n (this.$refs.phaseDataGrid as any).instance.beginCustomLoading('');\n }\n\n if (this.$refs.infractionDataGrid) {\n (this.$refs.infractionDataGrid as any).instance.beginCustomLoading('');\n }\n\n this.PhaseFeeSheetRows = await this.processFeeSheetRows(id, FeeSheetRowTypeEnum.Phase)\n .then((success: FeeSheetRowDto[]) => {\n let result = _.forEach(success, (item: FeeSheetRowDto) => {\n _.forEach(item.FeeSheetRules, (fr: FeeSheetRuleDto) => {\n if(!fr.CountryId) {\n fr.CountryId = 0;\n }\n })\n });\n \n return result;\n })\n .catch(err=> [])\n .finally(() => {\n (this.$refs.phaseDataGrid as any).instance.endCustomLoading();\n });\n\n this.InfractionFeeSheetRows = await this.processFeeSheetRows(id, FeeSheetRowTypeEnum.Infraction)\n .then((success: FeeSheetRowDto[]) => {\n let result = _.forEach(success, (item: FeeSheetRowDto) => {\n _.forEach(item.FeeSheetRules, (fr: FeeSheetRuleDto) => {\n if(!fr.CountryId) {\n fr.CountryId = 0;\n }\n })\n });\n \n return result;\n }) \n .catch(err=>[])\n .finally(() => {\n (this.$refs.infractionDataGrid as any).instance.endCustomLoading();\n }); \n }\n\n dialogTitle: string = \"\";\n filingTypeValue: any = \"\"; \n\n get thisIsClientFor() {\n return this.isClientFor;\n }\n set thisIsClientFor(value: boolean) {\n this.isClientFor = value;\n }\n\n private agentService : AgentService = new AgentService();\n private clientService: ClientService;\n private currencyService : CurrencyService;\n private filingTypeService: FilingTypeService;\n private feeSheetsService: FeeSheetsService;\n private infractionService: InfractionService;\n private phaseService: PhaseTypeService;\n private countryService: CountryService;\n showParentFeeSheetRowDetail: boolean = false;\n parentFeeSheetRowToView: any = {};\n private fileService: FileService;\n selectedToBeAddPhaseType: any = {};\n countryList: CountryDto[] = [];\n selectedAgent: Guid = '';\n feeSheetStore: CustomStore;\n isClientFor: boolean = true\n isAgentFor: boolean = false;\n isAgentForUpdate: boolean = false;\n showFeeSheetRowDialog: boolean;\n feeSheetRow: FeeSheetRowDto;\n feeSheetRowModalType : FeeSheetModalType = FeeSheetModalType.Add;\n feeSheetRowIndex: number | undefined;\n selectedSheetNameFeeSheetId: Guid = '';\n PhaseFeeSheetRows : Array = [];\n InfractionFeeSheetRows : Array = [];\n private feeSheetRowType : FeeSheetRowTypeEnum = FeeSheetRowTypeEnum.Phase;\n SavedCurrentFeeSheetName: string = '';\n selectedPhasesInfraction: (Guid | number)[] = [];\n private agents: AgentDto[] = [];\n titleItemGroup: any = ['FeeSheetTitle'];\n showFeeSheetNotes: boolean = false;\n selectedfeeSheetRowNotes: FeeSheetRowDto | null = null;\n private originalFileId?: string | null = null;\n private originalFileName?: string | null = null;\n private selectedFile?: any;\n private isLoading: boolean = false;\n\n filingStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.filingTypeService.getTypes()\n .then((success: FilingTypeDto[]) => {\n let all : FilingTypeDto = {\n FilingTypeId: -1,\n Name: \"All\"\n }\n\n success.unshift(all);\n return success;\n })\n .catch(err => {\n return [];\n });\n \n }\n });\n\n currencyStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.currencyService.getAll()\n }\n });\n\n phaseTypeStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.phaseService.getAll()\n }\n });\n\n private feeSheetCustomStore(): CustomStore {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.feeSheetsService.getFeeSheetPerClient(this.getClientIdVal())\n .then((response: FeeSheetDto[]) => { \n _.forEach(response, (item: FeeSheetDto) => {\n if(item.FilingTypes.length == 0) {\n item.FilingTypes = [-1];\n }\n });\n\n return response;\n })\n .catch(err => {\n return [];\n });\n }\n })\n }\n\n constructor() {\n super();\n this.showFeeSheetRowDialog = false;\n this.feeSheetStore = this.feeSheetCustomStore(); \n this.clientService = new ClientService();\n this.filingTypeService = new FilingTypeService();\n this.currencyService = new CurrencyService();\n this.infractionService = new InfractionService();\n this.countryService = new CountryService();\n this.fileService = new FileService();\n this.phaseService = new PhaseTypeService(); \n this.feeSheetsService = new FeeSheetsService('/api/FeeSheets'); \n this.feeSheetRow = this.feeSheetRowDefaultValue(); \n this.showSentDateListPopup = false; \n } \n\n protected mounted(): void {\n this.loadData();\n }\n\n private async loadData(): Promise {\n this.agentService = new AgentService();\n this.agents = await this.agentService.getAll(this.client.ClientId);\n }\n\n jurisdictionOption: any = {\n \"items\" : JURISDICTION,\n \"displayExpr\": \"Name\",\n \"valueExpr\": \"Value\",\n }\n\n feeSheetOption: any = {\n \"placeholder\" : \"Select client fee sheet\",\n \"dataSource\" : this.feeSheetStore,\n \"displayExpr\": \"FeeSheetName\",\n \"valueExpr\": \"FeeSheetName\",\n \"onSelectionChanged\": this.onFeeSheetSelectionChanged,\n \"visible\" : true\n }\n\n feeSheetTextBoxOption: any = {\n \"visible\": true,\n \"maxLength\": 150\n }\n\n get agentOption(): any {\n return {\n \"placeholder\" : \"Select an agent\",\n \"dataSource\" : this.agents,\n \"displayExpr\": \"AgentName\",\n \"valueExpr\": \"AgentId\",\n \"popupHeight\": this.getPopupHeight,\n \"searchEnabled\": true,\n \"showClearButton\":true,\n \"showCancelButton\": true,\n \"onSelectionChanged\": this.onFeeSheetAgentSelectionChanged\n };\n }\n\n filingOption: any = {\n \"displayExpr\": \"Name\",\n \"valueExpr\": \"FilingTypeId\",\n \"placeholder\" : \"Select filing type\",\n \"dataSource\" : this.filingStore,\n \"showSelectionControls\" : true, \n \"applyValueMode\" : 'useButtons',\n \"multiline\" : false\n }\n\n currencyOption: any = {\n \"displayExpr\": \"CurrencyCode\",\n \"valueExpr\": \"CurrencyId\",\n \"placeholder\" : \"Select currency\",\n \"dataSource\" : this.currencyStore,\n }\n\n private sentDates: Date[] = [];\n\n private async openSentDatePopup(data: any) { \n this.showSentDateListPopup = true;\n this.sentDates = await this.feeSheetsService.getSentDates(this.feeSheetValue.FeeSheetId); \n }\n\n private formatSentDates(item: Date) { \n let data = moment(item).format(\"MM-DD-YYYY\"); \n return data;\n }\n\n private closePopup(): void {\n this.showSentDateListPopup = false;\n }\n\n titleOptions: any = {\n \"maxLength\": 150\n };\n\n effectiveDateOptions: any = {\n \"openOnFieldClick\": true\n };\n\n validationRules: any = {\n jurisdiction: [\n {type: 'required', message: 'Jurisdiction is required.'}\n ],\n filingType : [\n {type: 'required', message: 'Filing Type is required.'},\n {\n type: 'custom', \n message: 'If \\'All\\' is selected, it must be the only filing type selected.', \n validationCallback: this.validateFilingType \n }\n ],\n currency : [\n {type: 'required', message: 'Currency is required.'}\n ],\n agent : [\n { type: 'required', message: 'Agent is required.' }\n ],\n sheetName: [\n {type: 'required', message: 'Sheet Name is required.'}\n ],\n sheetTitle: [\n {type: 'required', message: 'Title is required.'}\n ]\n }\n\n notSelectedManually: boolean = true;\n feeSheetNameValidator: any;\n async asyncValidation(params: any) {\n let currentFeeSheetNameVal = this.SavedCurrentFeeSheetName;\n this.feeSheetNameValidator = params.validator;\n \n if(this.thisIsClientFor) {\n return await this.feeSheetsService.checkFeeSheetName(params.value, this.ClientVal.ClientId)\n .then(response => {\n if(response) {\n if(currentFeeSheetNameVal &&\n currentFeeSheetNameVal === params.value) {\n return true;\n }\n\n return false;\n }\n else {\n return true;\n }\n })\n .catch(err => {\n return true\n });\n }\n else {\n if(!this.feeSheet.AgentId) {\n return Promise.resolve(true);\n }\n\n if(!this.notSelectedManually) {\n this.processValidation(this.agentValidator);\n }\n \n return await this.feeSheetsService.checkFeeSheetName(params.value,this.ClientVal.ClientId, this.feeSheet.AgentId)\n .then(response => {\n return false;\n })\n .catch(err => {return true})\n .finally(() => {\n this.notSelectedManually = true;\n });\n }\n }\n\n agentValidator: any;\n async asyncValidationAgent(params: any) {\n\n this.agentValidator = params.validator;\n await this.processValidation(this.feeSheetNameValidator);\n\n if(!this.feeSheet.FeeSheetName) {\n return true;\n }\n\n return await this.feeSheetsService.checkFeeSheetName(this.feeSheet.FeeSheetName,this.ClientVal.ClientId,params.value)\n .then(response => {\n return false;\n })\n .catch(err => {return true})\n .finally(() => {\n this.notSelectedManually = true;\n });\n }\n\n async processValidation(otherValidator: any) {\n return await new Promise((resolve, reject) => {\n if(this.validationForm) {\n if(otherValidator) {\n let vldtr = _.find(this.validationForm.validators, item => \n !item.option().isValid && \n item == otherValidator\n )\n \n this.notSelectedManually = true;\n if(vldtr) {\n vldtr.validate();\n }\n } \n }\n resolve();\n }) \n }\n\n validateFilingType(e: any) {\n // If All is selected, it must the only option selected\n return !e.value.includes(-1) || e.value.length == 1;\n }\n\n getClientIdVal() : string {\n return this.client.ClientId;\n }\n\n feeSheetRowDefaultValue() : FeeSheetRowDto {\n let def: FeeSheetRowDto = {\n FeeSheetRowId: \"00000000-0000-0000-0000-000000000000\",\n FeeSheetId: this.feeSheet ? this.feeSheet.FeeSheetId:\n \"00000000-0000-0000-0000-000000000000\",\n Description: \"\",\n Signed: false,\n FeeSheetRules: [],\n CapDisplay : \"\",\n UserNotes: null,\n UserNotesUpdateDate: null,\n UserNotesUpdatedBy: null\n }\n\n return _.clone(def); \n }\n\n private feeSheetDefaultValue() : FeeSheetDto {\n let def : FeeSheetDto = {\n FeeSheetId: \"00000000-0000-0000-0000-000000000000\",\n ClientId: \"\",\n AgentId: \"\",\n CurrencyId: 1,\n InJurisdiction: true,\n FeeSheetName: \"\",\n EffectiveDate: new Date(),\n FilingTypes: [-1],\n FilingTypesNamesString: \"\",\n FeeSheetRows: [],\n FeeSheetTitle: \"\",\n DeletedFeeSheetRows: [],\n Signed: \"\",\n Modified: false,\n ReceiptFileId: null,\n ReceiptFileName: null \n };\n\n return _.clone(def); \n }\n\n getPopupHeight(): number {\n return window.innerHeight / 2;\n }\n async onPopupShown(e:any) {\n if(this.feeSheet.FeeSheetId\n && this.feeSheet.FeeSheetId != this.feeSheetDefaultValue().FeeSheetId\n ) {\n let id = this.feeSheet.FeeSheetId;\n if(this.feeSheetFor === FeeSheetModalFor.Agent) {\n this.parentFeeSheetRows = await this.getPrentFeeSheetDetails(id);\n }\n await this.processGettingFeeSheetRows(id);\n }\n else { \n if(this.template == null) {\n this.feeSheet.FeeSheetRows = [];\n this.PhaseFeeSheetRows = [];\n this.InfractionFeeSheetRows = [];\n } \n }\n }\n\n onPopupHidden(e:any) : void {\n this.isClientFor = true;\n this.isAgentFor = false;\n this.isAgentForUpdate = false;\n this.PhaseFeeSheetRows = [];\n this.InfractionFeeSheetRows = [];\n this.originalFileId = null;\n this.originalFileName = null;\n this.selectedFile = null;\n this.SavedCurrentFeeSheetName = '';\n this.dxForm.resetValues();\n if(this.phaseWatcher){\n this.phaseWatcher();\n }\n if(this.infractionWatcher) {\n this.infractionWatcher();\n }\n }\n\n processFeeSheetType(): any{\n this.feeSheetOption.readOnly = false;\n this.agentOption.readOnly = false;\n this.jurisdictionOption.readOnly = false;\n this.filingOption.readOnly = false;\n this.currencyOption.readOnly = false;\n this.titleOptions.readOnly = false;\n\n if (this.isClientFor) {\n this.agentOption.readOnly = true;\n } else {\n this.jurisdictionOption.readOnly = true;\n this.filingOption.readOnly = true;\n this.currencyOption.readOnly = true;\n this.titleOptions.readOnly = true;\n\n if (this.ThisFeeSheetType === FeeSheetModalType.Update) {\n this.feeSheetOption.readOnly = true;\n this.agentOption.readOnly = true;\n } else {\n this.validationRules.sheetName.push(\n {type: 'async', validationCallback:this.asyncValidation,\n message:'This fee sheet already exists for this agent.'\n }\n )\n\n this.validationRules.agent.push( \n {type: 'async', validationCallback:this.asyncValidationAgent,\n message:'Already has this fee sheet record.'\n }\n );\n }\n }\n }\n\n async processGetCountries() {\n this.countryList = await this.countryService.getAllDto().then((responses: CountryDto[]) => {\n let forAll : CountryDto = {\n CountryId: 0,\n CountryCode: \"All\"\n }\n\n responses.unshift(forAll);\n\n return responses;\n });\n }\n\n processAgentValidation() : void { \n if(this.feeSheetFor != FeeSheetModalFor.Agent) {\n this.isClientFor = true;\n this.isAgentFor = false;\n this.agentOption.readOnly = true;\n this.validationRules.agent = [];\n this.validationRules.sheetName = [\n {type: 'required', message: 'Sheet Name is required.'},\n {type: 'async', validationCallback:this.asyncValidation,\n message:'Sheet Name already exists.'\n }\n ];\n \n }\n else { \n this.feeSheetOption.dataSource = this.feeSheetStore;\n this.isClientFor = false;\n this.isAgentFor = true;\n this.feeSheetStore = this.feeSheetCustomStore();\n this.agentOption.readOnly = false;\n this.validationRules.agent = [\n { type: 'required', message: 'Agent is required.' }\n ];\n this.validationRules.sheetName = [\n {type: 'required', message: 'Sheet Name is required.'}\n \n ]\n }\n this.feeSheetTextBoxOption.visible = this.isClientFor;\n this.feeSheetOption.visible = !this.isClientFor; \n }\n\n processClientVal(): void {\n if(this.client) {\n this.feeSheet.ClientId = this.client.ClientId;\n }\n } \n\n processFeeSheetVal() { \n if(this.feeSheet.FeeSheetId\n && this.feeSheet.FeeSheetId != this.feeSheetDefaultValue().FeeSheetId\n ) { \n this.dialogTitle = `Update ${this.feeSheetFor} Fee Sheet`;\n if(this.$refs.formComponent) {\n (this.$refs.formComponent as any).formData.EffectiveDate = this.feeSheet.EffectiveDate;\n } \n this.SavedCurrentFeeSheetName = _.clone(this.feeSheet.FeeSheetName);\n\n if (this.feeSheet.FilingTypes.length == 0) {\n this.feeSheet.FilingTypes = [-1];\n }\n\n this.dialogTitle = `Update ${this.feeSheetFor} Fee Sheet` \n this.SavedCurrentFeeSheetName = _.clone(this.feeSheet.FeeSheetName); \n this.originalFileId = this.feeSheet.ReceiptFileId;\n\n }\n else {\n this.feeSheet = this.feeSheetDefaultValue(); \n if(this.template != null) { \n this.feeSheet.FeeSheetName = this.template.TemplateName;\n this.feeSheet.InJurisdiction = this.template.InJurisdiction;\n\n this.template.FeeSheetTemplatePhases.forEach(p => {\n let phaseType: PhaseTypeDto = {\n PhaseTypeId: p.PhaseTypeId != undefined ? p.PhaseTypeId : 0,\n PhaseName: p.PhaseName != undefined ? p.PhaseName : \"\",\n RgbHex: \"\",\n PhaseVerb: \"\",\n PhaseOrder: 0,\n SecondaryPhaseOrder: 0,\n IsBatched: false\n }\n\n\n let phaseRow = this.feeSheetRowDefaultValue();\n phaseRow.PhaseTypeId = p.PhaseTypeId;\n phaseRow.PhaseType = phaseType;\n phaseRow.Description = p.Description; \n \n p.FeeSheetTemplateRules.forEach(r => {\n if(r.CapAmount != undefined) {\n let phaseRule: FeeSheetRuleDto = {\n FeeSheetRuleId: '00000000-0000-0000-0000-000000000000',\n FeeSheetRowId: phaseRow.FeeSheetRowId,\n CountryId: r.CountryId === null ? 0 : r.CountryId,\n CurrencyId: 0,\n CapAmount: r.CapAmount,\n Notes: r.Notes,\n Level: r.Level,\n Type: r.Type,\n Amount: r.Amount,\n CountryCode: r.CountryCode,\n Signed: false,\n InJurisdiction: false,\n FilingTypes: [] \n };\n phaseRow.FeeSheetRules.push(phaseRule);\n }\n\n if(r.TargetAmount != undefined) {\n let phaseRule: FeeSheetRuleDto = {\n FeeSheetRuleId: '00000000-0000-0000-0000-000000000000',\n FeeSheetRowId: phaseRow.FeeSheetRowId,\n CountryId: r.CountryId === null ? 0 : r.CountryId,\n CurrencyId: 0,\n TargetAmount: r.TargetAmount,\n Notes: r.Notes,\n Level: r.Level,\n Type: r.Type,\n Amount: r.Amount,\n CountryCode: r.CountryCode,\n Signed: false,\n InJurisdiction: false,\n FilingTypes: [] \n };\n phaseRow.FeeSheetRules.push(phaseRule);\n } \n });\n this.processCapDisplay(phaseRow);\n this.PhaseFeeSheetRows.push(phaseRow);\n });\n\n this.template.FeeSheetTemplateTasks.forEach(t => {\n let infractionType: InfractionTypeDto = {\n InfractionTypeId: t.InfractionTypeId,\n Name: t.InfractionName != undefined ? t.InfractionName : \"\",\n IsConfirmed: false\n }\n\n let infractionRow = this.feeSheetRowDefaultValue();\n infractionRow.InfractionTypeId = t.InfractionTypeId;\n infractionRow.InfractionType = infractionType;\n infractionRow.Description = t.Description;\n\n t.FeeSheetTemplateRules.forEach(r => {\n if(r.CapAmount != undefined) {\n let infractionRule: FeeSheetRuleDto = {\n FeeSheetRuleId: '00000000-0000-0000-0000-000000000000',\n FeeSheetRowId: infractionRow.FeeSheetRowId,\n CountryId: r.CountryId === null ? 0 : r.CountryId,\n CurrencyId: 0,\n CapAmount: r.CapAmount,\n Notes: r.Notes,\n Level: r.Level,\n Type: r.Type,\n Amount: r.Amount,\n CountryCode: r.CountryCode,\n Signed: false,\n InJurisdiction: false,\n FilingTypes: [] \n };\n infractionRow.FeeSheetRules.push(infractionRule);\n }\n\n if(r.TargetAmount != undefined) {\n let infractionRule: FeeSheetRuleDto = {\n FeeSheetRuleId: '00000000-0000-0000-0000-000000000000',\n FeeSheetRowId: infractionRow.FeeSheetRowId,\n CountryId: r.CountryId === null ? 0 : r.CountryId,\n CurrencyId: 0,\n TargetAmount: r.TargetAmount,\n Notes: r.Notes,\n Level: r.Level,\n Type: r.Type,\n Amount: r.Amount,\n CountryCode: r.CountryCode,\n Signed: false,\n InJurisdiction: false,\n FilingTypes: [] \n };\n infractionRow.FeeSheetRules.push(infractionRule);\n }\n \n });\n\n this.processCapDisplay(infractionRow);\n this.InfractionFeeSheetRows.push(infractionRow); \n }); \n } \n\n this.feeSheet.ClientId = this.client.ClientId;\n this.dialogTitle = `Add ${this.feeSheetFor} Fee Sheet`\n } \n }\n\n async processFeeSheetRows(id: Guid, type?: FeeSheetRowTypeEnum): Promise {\n return await this.feeSheetsService.searchFeeSheetDetailsPerFeeSheetId(id, type).then(\n (response : FeeSheetRowDto[]) => {\n _.forEach(response, (item : FeeSheetRowDto) => {\n item.CapDisplay = '';\n this.processCapDisplay(item);\n });\n\n return response;\n }\n )\n .catch(err => { return [] }); \n }\n\n onFeeSheetAgentSelectionChanged(e:any) {\n this.notSelectedManually = false;\n }\n\n onFeeSheetSelectionChanged(e: any) {\n this.notSelectedManually = false;\n let selected = e.selectedItem;\n\n if (selected) {\n this.selectedSheetNameFeeSheetId = selected.FeeSheetId;\n }\n }\n\n onAddPhaseType(e:any): void {\n this.feeSheetRow = this.feeSheetRowDefaultValue();\n this.feeSheetRowType = FeeSheetRowTypeEnum.Phase;\n this.feeSheetRowModalType = FeeSheetModalType.Add; \n\n let selected = this.PhaseFeeSheetRows.map((item: FeeSheetRowDto) => {\n let res = item.PhaseAliasId || item.PhaseTypeId || 0;\n\n return res;\n });\n\n this.selectedPhasesInfraction = selected;\n this.showFeeSheetRowDialog = true;\n }\n\n onAddInfraction(e:any): void {\n this.feeSheetRow = this.feeSheetRowDefaultValue();\n this.feeSheetRowType = FeeSheetRowTypeEnum.Infraction;\n this.feeSheetRowModalType = FeeSheetModalType.Add; \n\n let selected = this.InfractionFeeSheetRows.map((item: FeeSheetRowDto) => {\n let res = item.InfractionTypeId || '';\n\n return res;\n });\n\n this.selectedPhasesInfraction = selected;\n this.showFeeSheetRowDialog = true;\n }\n\n setAttr(name: string, value: any) : any {\n return Object.keys(this.$attrs).indexOf(name) > -1 ? this.$attrs[name] : value;\n }\n\n hidingFeeSheetRowDialog(e: FeeSheetRowDto | undefined): void {\n if(e) {\n let cloned = _.clone(e);\n this.processCapDisplay(cloned);\n\n if(this.feeSheetRowIndex == undefined) {\n\n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase) {\n this.PhaseFeeSheetRows.push(cloned);\n }\n else {\n this.InfractionFeeSheetRows.push(cloned);\n } \n }\n else {\n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase){\n let phaseRow = this.PhaseFeeSheetRows[this.feeSheetRowIndex];\n\n phaseRow.CapDisplay = cloned.CapDisplay;\n phaseRow.Description = cloned.Description;\n phaseRow.FeeSheetRules = cloned.FeeSheetRules;\n phaseRow.DeletedFeeSheetRules = cloned.DeletedFeeSheetRules;\n }\n else {\n let infractionRow = this.InfractionFeeSheetRows[this.feeSheetRowIndex];\n\n infractionRow.CapDisplay = cloned.CapDisplay;\n infractionRow.Description = cloned.Description;\n infractionRow.FeeSheetRules = cloned.FeeSheetRules;\n infractionRow.DeletedFeeSheetRules = cloned.DeletedFeeSheetRules;\n } \n }\n }\n\n this.showFeeSheetRowDialog = false;\n this.feeSheetRowIndex = undefined;\n }\n\n processCapDisplay(feeSheetRow: FeeSheetRowDto, isForParent: boolean = false) : void {\n this.feeSheetRow.FeeSheetRules = feeSheetRow.FeeSheetRules.sort(FeeSheetRulesSortFunction); \n feeSheetRow.CapDisplay = '';\n let parentRow = (!isForParent && this.feeSheetFor == FeeSheetModalFor.Agent) ? \n (feeSheetRow.InfractionTypeId ? _.find(this.parentFeeSheetRows, x => x.InfractionTypeId == feeSheetRow.InfractionTypeId) :\n (feeSheetRow.PhaseTypeId != undefined ? _.find(this.parentFeeSheetRows, x => x.PhaseTypeId == feeSheetRow.PhaseTypeId) :\n _.find(this.parentFeeSheetRows, x => x.PhaseAliasId == feeSheetRow.PhaseAliasId)))\n : undefined;\n\n _.forEach(feeSheetRow.FeeSheetRules, (item: FeeSheetRuleDto) => {\n \n let details = '';\n\n let countryDetail = '';\n if(item.CountryId && item.CountryId > 0) {\n let ctryDetail = _.find(this.countryList, (cntry : CountryDto) => cntry.CountryId === item.CountryId);\n\n countryDetail = ctryDetail ? ctryDetail.CountryCode : '';\n }\n\n //to be implemented\n let levelDetail = '';\n\n if(item.Level != undefined) { \n levelDetail = this.getLevelDetail(item.Level);\n }\n\n let capTargetDetail = this.forCapDisplayDetail(feeSheetRow, item);\n \n details =`${countryDetail} ${levelDetail} ${capTargetDetail ? capTargetDetail + ':' : ''}\n ${this.$options.filters ? this.$options.filters.currency(item.Amount) : item.Amount}`;\n\n if(parentRow) {\n let parentRule = _.filter(parentRow.FeeSheetRules, x => (x.CountryId || 0) == (item.CountryId || 0 ) \n && x.Level == item.Level);\n if(!parentRule || parentRule.length == 0) {\n feeSheetRow.CapDisplay = `${feeSheetRow.CapDisplay}

${details}

`;\n }\n else {\n let hasSameRule = _.find(parentRule, i => i.CapAmount == item.CapAmount &&\n i.TargetAmount == item.TargetAmount && i.Level == item.Level)\n if(!hasSameRule) {\n feeSheetRow.CapDisplay = `${feeSheetRow.CapDisplay}

${details}

`;\n }\n else {\n feeSheetRow.CapDisplay = `${feeSheetRow.CapDisplay}

${details}

`;\n }\n }\n }\n else{\n feeSheetRow.CapDisplay = `${feeSheetRow.CapDisplay}

${details}

`;\n }\n \n });\n\n }\n\n forCapDisplayDetail(feeSheetRow: FeeSheetRowDto, item: FeeSheetRuleDto) : string {\n let result = '';\n \n let hasTarget = _.find(feeSheetRow.FeeSheetRules, \n (item : FeeSheetRuleDto) => item.Type === FeeSheetRuleTypeEnum.Target || item.TargetAmount != null);\n\n \n if(item.Type) {\n result = hasTarget ? item.Type : '';\n\n if(item.Type === FeeSheetRuleTypeEnum.Cap) {\n item.CapAmount = item.Amount;\n item.TargetAmount = undefined;\n }\n else {\n item.TargetAmount = item.Amount;\n item.CapAmount = undefined;\n }\n }\n else {\n //since 0 value also a false value\n if(item.CapAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Cap : '';\n item.Amount = item.CapAmount;\n item.Type = FeeSheetRuleTypeEnum.Cap;\n }\n else if(item.TargetAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Target : '';\n item.Amount = item.TargetAmount;\n item.Type = FeeSheetRuleTypeEnum.Target;\n }\n } \n\n if(!item.Level) {\n item.Level = FeeSheetRuleLevelEnum.NA;\n }\n \n return result;\n }\n\n getLevelDetail(level: FeeSheetRuleLevelEnum) {\n switch(level) {\n case FeeSheetRuleLevelEnum.NA:\n return FeeSheetRuleLevelNameEnum.NA;\n case FeeSheetRuleLevelEnum.Level1:\n return FeeSheetRuleLevelNameEnum.Level1;\n case FeeSheetRuleLevelEnum.Level2:\n return FeeSheetRuleLevelNameEnum.Level2; \n case FeeSheetRuleLevelEnum.Level3:\n return FeeSheetRuleLevelNameEnum.Level3;\n case FeeSheetRuleLevelEnum.Level4:\n return FeeSheetRuleLevelNameEnum.Level4;\n case FeeSheetRuleLevelEnum.Level5:\n return FeeSheetRuleLevelNameEnum.Level5;\n case FeeSheetRuleLevelEnum.Level6:\n return FeeSheetRuleLevelNameEnum.Level6;\n case FeeSheetRuleLevelEnum.Level7:\n return FeeSheetRuleLevelNameEnum.Level7;\n case FeeSheetRuleLevelEnum.Level8:\n return FeeSheetRuleLevelNameEnum.Level8;\n case FeeSheetRuleLevelEnum.Level9:\n return FeeSheetRuleLevelNameEnum.Level9;\n case FeeSheetRuleLevelEnum.Level10:\n return FeeSheetRuleLevelNameEnum.Level10;\n }\n }\n\n feeSheetRowEditBtnClicked(data:any) : void {\n this.feeSheetRowType = FeeSheetRowTypeEnum.Phase;\n this.processDataForEdit(data);\n }\n\n feeSheetRowInfractionEditBtnClicked(data:any) : void {\n this.feeSheetRowType = FeeSheetRowTypeEnum.Infraction; \n this.processDataForEdit(data);\n }\n\n feeSheetRowInfractionRemoveBtnClicked(data:any, phaseOrInfraction: string) : void {\n if(!this.feeSheet.DeletedFeeSheetRows) {\n this.feeSheet.DeletedFeeSheetRows = [];\n }\n\n if(data.data.FeeSheetRowId != \"00000000-0000-0000-0000-000000000000\") {\n this.feeSheet.DeletedFeeSheetRows.push(data.data);\n }\n\n if(phaseOrInfraction === FeeSheetRowTypeEnum.Phase) {\n this.PhaseFeeSheetRows.splice(data.rowIndex, 1);\n }\n else {\n this.InfractionFeeSheetRows.splice(data.rowIndex, 1);\n }\n }\n\n processDataForEdit(data: any): void {\n this.feeSheetRowIndex = data.rowIndex;\n\n this.feeSheetRow = _.cloneDeep(data.data);\n\n this.feeSheetRowModalType = FeeSheetModalType.Update;\n this.showFeeSheetRowDialog = true;\n this.selectedPhasesInfraction = [];\n }\n validationForm: any;\n\n private async processSave() { \n let payload = _.clone(this.feeSheet);\n\n if (payload.FilingTypes.includes(-1)) {\n payload.FilingTypes = [];\n }\n\n this.isLoading = true;\n try {\n if(this.feeSheet.ReceiptFileName != null && this.feeSheet.ReceiptFileName.toLowerCase().endsWith(\".pdf\") && this.feeSheet.ReceiptFileId == null) {\n let fileDetails = await this.processFile()\n if(fileDetails && fileDetails.Success) {\n payload.ReceiptFileId = fileDetails.Data.UploadedFiles[0].FileId;\n }\n else {\n throw new Error(\"Failed to upload file\");\n }\n }\n }\n catch {\n notify('Failed to upload file', 'error');\n payload.ReceiptFileName = this.originalFileName;\n payload.ReceiptFileId = this.originalFileId;\n }\n \n payload.FeeSheetRows = _.concat(this.PhaseFeeSheetRows, this.InfractionFeeSheetRows);\n\n _.forEach(payload.FeeSheetRows, (fr : FeeSheetRowDto) => {\n _.forEach(fr.FeeSheetRules, (item : FeeSheetRuleDto) => {\n if(!item.CountryId && item.CountryId === 0) {\n item.CountryId = undefined;\n }\n });\n });\n\n if(payload.FeeSheetId != \"00000000-0000-0000-0000-000000000000\") {\n this.feeSheetsService.updateFeeSheetRecord(payload)\n .then(response => {\n notify(`${payload.FeeSheetName} successfully saved`, 'success', 4000);\n this.hidingModal(true);\n })\n .catch(err => {\n alert('An error occurred saving the fee sheet.', 'Error');\n });\n }\n else {\n if(!this.isClientFor) {\n _.forEach(payload.FeeSheetRows, (item: FeeSheetRowDto) => {\n item.FeeSheetRowId = \"00000000-0000-0000-0000-000000000000\";\n\n _.forEach(item.FeeSheetRules, (fsr : FeeSheetRuleDto) => {\n fsr.FeeSheetRuleId = \"00000000-0000-0000-0000-000000000000\";\n });\n })\n }\n\n this.feeSheetsService.create(payload)\n .then(response => {\n notify(`${payload.FeeSheetName} successfully saved`, 'success', 4000);\n this.hidingModal(true);\n })\n .catch(err => {\n alert('An error occurred saving the fee sheet.', 'Error');\n });\n }\n this.isLoading = false;\n }\n \n private save(e: any): void { \n if (this.showFeeSheetRowDialog) {\n return;\n } \n\n this.validationForm = this.dxForm.validate();\n\n if (this.validationForm.status === 'pending') {\n this.validationForm.complete.then((response: any) => {\n if (response.isValid) {\n this.processSave()\n }\n });\n } else if (this.validationForm.isValid) {\n this.processSave()\n }\n }\n\n private hidingModal(updateData: boolean = false): void {\n this.$emit(\"hiding\", updateData);\n }\n\n private cancel(): void {\n this.$emit(\"cancel\");\n }\n displayUpdatedCells(e: any, rowStatus: FeeSheetRowStatusEnum, modifiedDetail : FeeSheetRowDetailEnum) {\n if(e.row.data.RowInfo && \n e.row.data.RowInfo.Status == rowStatus &&\n e.row.data.RowInfo.ModifiedDetails &&\n e.row.data.RowInfo.ModifiedDetails.includes(modifiedDetail)) {\n e.cellElement.style['border'] = \"solid 2px orange\";\n e.cellElement.style['box-shadow'] = \"inset 0px 0px 3px rgba(0,0,0,0.5)\";\n }\n }\n onRowPrepared(e:any) {\n if(e.rowType === 'data') {\n e.rowElement.style.height = \"50px\"; \n }\n\n if(e.rowType === 'data' && this.feeSheetFor === FeeSheetModalFor.Agent) {\n var hasParent = e.data.InfractionTypeId ? _.find(this.parentFeeSheetRows, x=> x.InfractionTypeId == e.data.InfractionTypeId) :\n (e.data.PhaseTypeId != undefined ? _.find(this.parentFeeSheetRows, x=> x.PhaseTypeId == e.data.PhaseTypeId) :\n _.find(this.parentFeeSheetRows, x=> x.PhaseAliasId == e.data.PhaseAliasId));\n\n if(!hasParent && ((!e.data.RowInfo && e.data.FeeSheetRowId == \"00000000-0000-0000-0000-000000000000\") ||\n e.data.RowInfo.Status == FeeSheetRowStatusEnum.New)) {\n e.rowElement.style['background'] = \"rgb(219, 239, 250)\";\n e.rowElement.style['box-shadow'] = \"0px 0px 3px rgba(0,0,0,0.5)\";\n }\n }\n }\n\n onCellPrepared(e: any) {\n if(e.rowType === 'data' && this.feeSheetFor === FeeSheetModalFor.Agent) {\n this.processExplicitModificationDetail(e.row.data);\n if(e.column.dataField === 'Description') {\n this.displayUpdatedCells(e, FeeSheetRowStatusEnum.Modified, FeeSheetRowDetailEnum.Description);\n }\n\n if(e.column.dataField === 'CapDisplay'){\n this.displayUpdatedCells(e, FeeSheetRowStatusEnum.Modified, FeeSheetRowDetailEnum.Rule);\n }\n\n if(e.column.dataField === 'Signed'){\n this.displayUpdatedCells(e, FeeSheetRowStatusEnum.Modified, FeeSheetRowDetailEnum.Signed);\n }\n }\n }\n\n processExplicitModificationDetail(data: FeeSheetRowDto) {\n let parentRow = data.InfractionTypeId ? \n _.find(this.parentFeeSheetRows, item => item.InfractionTypeId == data.InfractionTypeId) :\n (data.PhaseTypeId != undefined ?\n _.find(this.parentFeeSheetRows, item => item.PhaseTypeId == data.PhaseTypeId) :\n _.find(this.parentFeeSheetRows, item => item.PhaseAliasId == data.PhaseAliasId));\n if(!data.RowInfo) {\n data.RowInfo = {\n Status : FeeSheetRowStatusEnum.UnModified,\n ModifiedDetails: []\n }\n }\n if(parentRow) {\n let hasModified = false; \n\n let agentDescription = data.Description\n .replaceAll(\"


\\n\\n\\n]+)>)/ig, '');\n\n let clientDescription = parentRow.Description\n .replaceAll(\"


\\n\\n\\n]+)>)/ig, ''); \n\n if(clientDescription.localeCompare(agentDescription, 'en', {sensitivity: 'base' }) != 0) {\n hasModified= true;\n if(!data.RowInfo.ModifiedDetails.includes(FeeSheetRowDetailEnum.Description)) {\n data.RowInfo.ModifiedDetails.push(FeeSheetRowDetailEnum.Description);\n }\n \n }\n else{\n var toRemove = data.RowInfo.ModifiedDetails.indexOf(FeeSheetRowDetailEnum.Description);\n if(toRemove != -1) {\n data.RowInfo.ModifiedDetails.splice(toRemove, 1);\n }\n }\n if(parentRow.Signed != data.Signed) {\n hasModified= true;\n if(!data.RowInfo.ModifiedDetails.includes(FeeSheetRowDetailEnum.Signed)) {\n data.RowInfo.ModifiedDetails.push(FeeSheetRowDetailEnum.Signed);\n }\n }\n else{\n var toRemove = data.RowInfo.ModifiedDetails.indexOf(FeeSheetRowDetailEnum.Signed);\n if(toRemove != -1) {\n data.RowInfo.ModifiedDetails.splice(toRemove, 1);\n }\n }\n\n var rules = parentRow ? parentRow.FeeSheetRules : [];\n if(!_.every(data.FeeSheetRules, item => _.find(rules, x => x.TargetAmount == item.TargetAmount &&\n x.CapAmount == item.CapAmount && x.Level == item.Level && (x.CountryId || 0) == item.CountryId) != undefined) ||\n !_.every(rules, item => _.find(data.FeeSheetRules, x => x.TargetAmount == item.TargetAmount &&\n x.CapAmount == item.CapAmount && x.Level == item.Level && x.CountryId == (item.CountryId || 0)) != undefined)) {\n hasModified= true;\n if(!data.RowInfo.ModifiedDetails.includes(FeeSheetRowDetailEnum.Rule)) {\n data.RowInfo.ModifiedDetails.push(FeeSheetRowDetailEnum.Rule);\n }\n }\n else {\n var toRemove = data.RowInfo.ModifiedDetails.indexOf(FeeSheetRowDetailEnum.Rule);\n if(toRemove != -1) {\n data.RowInfo.ModifiedDetails.splice(toRemove, 1);\n }\n }\n \n if(hasModified) {\n data.RowInfo.Status = FeeSheetRowStatusEnum.Modified;\n }\n else {\n data.RowInfo.Status = FeeSheetRowStatusEnum.UnModified;\n }\n }\n else {\n data.RowInfo.Status = FeeSheetRowStatusEnum.New;\n }\n }\n isModified(rowInfo: any) {\n if(rowInfo && rowInfo.Status == FeeSheetRowStatusEnum.Modified) {\n return false;\n }\n return true;\n }\n isForAgent() {\n return this.feeSheetFor === FeeSheetModalFor.Agent ? true: false;\n }\n onParentFeeSheetRowView(data: FeeSheetRowDto, phaseOrInfraction: FeeSheetRowTypeEnum) {\n if(phaseOrInfraction == FeeSheetRowTypeEnum.Phase) {\n var phaseOrMulti = data.PhaseTypeId != undefined ? _.find(this.parentFeeSheetRows, item => item.PhaseTypeId == data.PhaseTypeId) :\n _.find(this.parentFeeSheetRows, item => item.PhaseAliasId == data.PhaseAliasId);\n if(phaseOrMulti) {\n this.parentFeeSheetRowToView = {\n Description: phaseOrMulti.Description,\n PhaseOrInfractionName: phaseOrMulti.PhaseType ? phaseOrMulti.PhaseType.PhaseName : \n (phaseOrMulti.PhaseAlias ? phaseOrMulti.PhaseAlias.Name: \"\"),\n Signed: phaseOrMulti.Signed,\n CapDisplay: phaseOrMulti.CapDisplay,\n FeeSheetRowType: FeeSheetRowTypeEnum.Phase\n };\n }\n }\n else {\n var infraction = _.find(this.parentFeeSheetRows, item => item.InfractionTypeId == data.InfractionTypeId);\n if(infraction) {\n this.parentFeeSheetRowToView = {\n Description: infraction.Description,\n PhaseOrInfractionName: infraction.InfractionType ? infraction.InfractionType.Name : \"\",\n Signed: infraction.Signed,\n CapDisplay: infraction.CapDisplay,\n FeeSheetRowType: FeeSheetRowTypeEnum.Infraction\n };\n }\n }\n\n this.showParentFeeSheetRowDetail = true;\n }\n hidingParentFeeSheetRow(){\n this.showParentFeeSheetRowDetail = false;\n this.parentFeeSheetRowToView = {\n Description: \"\",\n PhaseOrInfractionName: \"\",\n Signed: false,\n CapDisplay: \"\",\n FeeSheetRowType: FeeSheetRowTypeEnum.Phase\n };\n }\n private openNotes(data: any) {\n this.selectedfeeSheetRowNotes = data.data;\n this.showFeeSheetNotes=true;\n }\n\n private get feeSheetNotesTitle() {\n if(!this.selectedfeeSheetRowNotes) {\n return \"\";\n }\n \n if(this.selectedfeeSheetRowNotes.PhaseType) {\n return `${this.selectedfeeSheetRowNotes.PhaseType.PhaseName} Notes`;\n }\n\n if(this.selectedfeeSheetRowNotes.InfractionType) {\n return `${this.selectedfeeSheetRowNotes.InfractionType.Name} Notes`;\n }\n \n return \"\";\n }\n\n private getNotesClass(row:FeeSheetRowDto) {\n let defaultClass=\"notes-button\";\n if(row.UserNotes) {\n return \"notes-button has-notes\";\n }\n else {\n return \"notes-button\";\n }\n }\n\n private fileChange() {\n let inputElement: any = this.$refs.fileReceipt;\n if(inputElement.files.length && inputElement.files[0].name.toLowerCase().endsWith(\".pdf\")) {\n this.selectedFile = inputElement.files[0];\n this.feeSheet.ReceiptFileName = inputElement.files[0].name\n this.feeSheet.ReceiptFileId = null;\n if(this.PhaseFeeSheetRows.find(x=>!x.Signed) || this.InfractionFeeSheetRows.find(x=>!x.Signed)) {\n let buttons: Array = [\n { text: 'Yes', onClick: (event: any) => { return true } },\n { text: 'No', onClick: (event: any) => { return false } }\n ];\n\n let message = `Would you like to mark all of the rules on this sheet as 'signed'?`;\n let title = `Sign Fee Sheet`;\n dialog.custom({messageHtml: message, title: title, buttons: buttons}).show().then((x: boolean) =>{\n if(x) {\n this.PhaseFeeSheetRows.filter(x=>!x.Signed).forEach(x=>x.Signed = true);\n this.InfractionFeeSheetRows.filter(x=>!x.Signed).forEach(x=>x.Signed = true);\n }\n })\n }\n }\n else {\n this.feeSheet.ReceiptFileName = null;\n }\n }\n\n private onSelection(event: any) { \n this.feeSheet.LastSentDate = event.value;\n }\n\n private resetFile() {\n let buttons: Array = [\n { text: 'OK', onClick: (event: any) => { return true } },\n { text: 'Cancel', onClick: (event: any) => { return false } }\n ];\n let inputElement: any = this.$refs.fileReceipt;\n\n let message = `Are you sure you would like to remove ${this.feeSheet.ReceiptFileName} from this sheet?`\n let title = `Remove Receipt`\n\n dialog.custom({messageHtml: message, title: title, buttons: buttons}).show().then((x: boolean) =>{\n if(x) {\n inputElement.value = null;\n this.feeSheet.ReceiptFileId = null;\n this.feeSheet.ReceiptFileName = null;\n this.selectedFile = null;\n }\n })\n }\n\n private processFile() {\n if(this.feeSheet.ReceiptFileId == null && this.feeSheet.ReceiptFileName && this.feeSheet.ReceiptFileName.trim()) {\n var files : any[] = [{\"filename\": this.feeSheet.ReceiptFileName }];\n \n return this.fileService.uploadFiles({files: files}, this.selectedFile);\n }\n return Promise.resolve(null);\n }\n\n private downloadSheetUrl() {\n if(this.feeSheet.ReceiptFileId) {\n this.fileService.downloadFiles([this.feeSheet.ReceiptFileId])\n .then(result => {\n result.blob().then((b: any) => {\n var fileURL = URL.createObjectURL(b);\n window.open(fileURL);\n });\n })\n }\n } \n\n private getDescriptionValue(data: any) {\n return data.Description.replaceAll(/(<([^>]+)>)/ig, '')\n }\n}\n","import { CountryDto } from '../CountryDto';\n\nexport interface ClientAgentJurisdictionDto {\n ClientAgentJurisdictionId: Guid;\n ClientAgentId: number;\n Country: CountryDto\n InJurisdiction: boolean; \n}\n\nexport interface UpdateClientAgentJurisdictionDto {\n ClientId: Guid;\n AgentId: Guid;\n CountryCode: string;\n InJurisdiction: boolean;\n JurisdictionFree: boolean;\n}\n\nexport enum JurisdictionType {\n In = \"In\",\n Out = \"Out\",\n Unset = \"Unset\"\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-update-fee-sheets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./add-update-fee-sheets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./add-update-fee-sheets.vue?vue&type=template&id=b943908c&scoped=true&\"\nimport script from \"./add-update-fee-sheets.vue?vue&type=script&lang=ts&\"\nexport * from \"./add-update-fee-sheets.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./add-update-fee-sheets.vue?vue&type=style&index=0&id=b943908c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b943908c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"1200\",\"height\":\"630\",\"title\":\"Fee Sheet Wizard\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"hidden\":_vm.onPopUpHidden,\"showing\":_vm.onPopUpShowing,\"update:visible\":function($event){_vm.showingDialog=$event}}},[_c('load-panel',{attrs:{\"visible\":_vm.sendingInProgress},on:{\"update:visible\":function($event){_vm.sendingInProgress=$event}}}),_c('div',{staticClass:\"email-wizard\",staticStyle:{\"height\":\"400px\"}},[_c('dx-tabs',{ref:\"wizardStepper\",attrs:{\"data-source\":_vm.tabs},on:{\"selection-changed\":_vm.onSelectionChanged}}),_c('div',{staticClass:\"wizard-display\",staticStyle:{\"height\":\"100%\"}},[_c('dx-data-grid',{ref:\"agentFeeSheetsTo\",attrs:{\"data-source\":_vm.agentToCustomStoreOptions,\"width\":\"100%\",\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"rowAlternationEnabled\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":false,\"cacheEnabled\":false,\"columnMinWidth\":50,\"columnAutoWidth\":true,\"columnResizingMode\":'widget',\"height\":\"100%\",\"visible\":_vm.wizardStep === 0},on:{\"selection-changed\":_vm.onStep1SelectionChanged,\"contentReady\":_vm.contentReady},scopedSlots:_vm._u([{key:\"inJurisdictionTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.processJurisDictionDisplay(data.data, \"In\"))+\"\\n \")])])}},{key:\"outJurisdictionTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.processJurisDictionDisplay(data.data, \"Out\"))+\"\\n \")])])}}])},[_c('dx-selection',{attrs:{\"mode\":\"multiple\",\"select-all-mode\":\"allPages\",\"show-check-boxes-mode\":\"always\",\"deferred\":true}}),_c('dx-column',{attrs:{\"fixed\":true,\"fixed-position\":\"left\",\"data-field\":\"AgentName\",\"data-type\":\"string\",\"caption\":\"Agent Name\",\"width\":\"250\",\"allowHeaderFiltering\":true}}),_c('dx-column',{attrs:{\"data-field\":\"InJurisdictions\",\"caption\":\"In Jurisdiction\",\"cell-template\":\"inJurisdictionTemp\"}}),_c('dx-column',{attrs:{\"data-field\":\"OutJurisdictions\",\"caption\":\"Out of Jurisdiction\",\"cell-template\":\"outJurisdictionTemp\"}}),_c('dx-column',{attrs:{\"data-field\":\"AgentEmail\",\"data-type\":\"string\",\"caption\":\"Agent Email\",\"width\":\"150\"}}),_c('dx-column',{attrs:{\"data-field\":\"AgentCCEmail\",\"data-type\":\"string\",\"caption\":\"Email CC\",\"width\":\"150\"}})],1),_c('dx-data-grid',{ref:\"agentFeeSheets\",attrs:{\"data-source\":_vm.AgentFeeSheets,\"width\":\"100%\",\"showRowLines\":true,\"showColumnLines\":true,\"showBorders\":true,\"columnMinWidth\":50,\"visible\":_vm.wizardStep === 1,\"columnResizingMode\":'widget',\"height\":\"100%\"},on:{\"cell-prepared\":_vm.onCellPrepared,\"content-ready\":_vm.onContentReady,\"editing-start\":_vm.onEditingStart,\"row-updated\":_vm.onRowStep2Updated,\"context-menu-preparing\":_vm.prepareContextMenu}},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-scrolling',{attrs:{\"mode\":\"standard\"}}),_c('dx-load-panel',{attrs:{\"enabled\":true}}),_c('dx-column',{attrs:{\"fixed\":true,\"fixed-position\":\"left\",\"data-field\":\"AgentName\",\"data-type\":\"string\",\"max-width\":\"250\"}}),_vm._l((_vm.columns),function(column){return _c('dx-column',{key:column.name,attrs:{\"name\":column.name,\"data-type\":column.type,\"data-field\":column.name,\"allow-editing\":column.isEditable,\"allow-sorting\":false,\"allow-filtering\":false,\"max-width\":\"250\"}})})],2),_c('dx-data-grid',{ref:\"emailGrid\",attrs:{\"data-source\":_vm.emailInstructionGrid,\"showRowLines\":true,\"showColumnLines\":true,\"showBorders\":true,\"cacheEnabled\":false,\"visible\":_vm.wizardStep === 2,\"columnResizingMode\":'widget',\"height\":\"100%\",\"column-width\":250,\"repaint-changes-only\":true,\"remote-operations\":false,\"cache-enabled\":true},on:{\"cell-prepared\":_vm.onStep3CellPrepared,\"row-updated\":_vm.onRowUpdated},scopedSlots:_vm._u([{key:\"feeSheetToSendTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.FeeSheetToSend,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"FeeSheetToSend\", $event)}}})],1)])}},{key:\"emailPreviewTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"preview\"}},[(data.data.AgentName != '')?_c('div',{staticStyle:{\"margin-right\":\"10px\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"text\":\"Email\"},on:{\"click\":function($event){return _vm.onPreviewEmailClicked(data)}}})],1):_vm._e(),(data.data.AgentName != '')?_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"text\":\"Fee Sheet\"},on:{\"click\":function($event){return _vm.onPreviewFeeSheetClicked(data)}}})],1):_vm._e()])}}])},[_c('dx-scrolling',{attrs:{\"mode\":\"standard\"}}),_c('dx-load-panel',{attrs:{\"enabled\":true}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"fixed\":true,\"fixed-position\":\"left\",\"data-field\":\"AgentName\",\"data-type\":\"string\",\"max-width\":\"250\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FeeSheetToSend\",\"caption\":\"Fee Sheets To Send\",\"cell-template\":\"feeSheetToSendTemplate\",\"cssClass\":\"fee-sheet-to-send\"}}),_c('dx-column',{attrs:{\"data-field\":\"EmailTemplateId\",\"caption\":\"Email Template\",\"data-type\":\"string\",\"max-width\":\"250\",\"allow-editing\":true,\"editor-options\":{ onItemClick: _vm.saveCellEdit },\"show-editor-always\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.feeSheetEmailHeaderStore,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":false,\"popup-height\":400,\"placeholder\":\"Select email header\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"InstructionTemplateId\",\"data-type\":\"string\",\"caption\":\"Instruction Template\",\"max-width\":\"250\",\"editor-options\":{ onItemClick: _vm.saveCellInstructionEdit },\"show-editor-always\":true}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.feeSheetInstructionsStore,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":false,\"popup-height\":400,\"placeholder\":\"Select instruction\"}})],1),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"caption\":\"Preview\",\"width\":\"auto\",\"cell-template\":\"emailPreviewTemplate\",\"cssClass\":\"badge-cell\"}})],1),(_vm.wizardStep === 2)?_c('div',{staticClass:\"dx-field email-cc\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Email CC\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',[_c('dx-tag-box',{attrs:{\"name\":\"emailCCComponent\",\"dataSource\":_vm.emailCCSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"height\":\"35\",\"width\":\"400\",\"value\":_vm.selectedEmailCC,\"stylingMode\":\"filled\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\"},on:{\"opened\":_vm.onOpenedEmailCC,\"update:value\":function($event){_vm.selectedEmailCC=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailCCValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}],null,false,1866172192)})],1)])])]):_vm._e()],1)],1),(_vm.wizardStep == 2)?_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Edit Templates', type: 'normal', stylingMode: 'contained', onClick: _vm.onUpdateTemplates},\"location\":\"before\",\"toolbar\":\"bottom\"}}):_vm._e(),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: _vm.continueOrFinish, type: 'default', stylingMode: 'contained', onClick: _vm.wizardContinue },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: _vm.cancelOrBack, type: 'normal', stylingMode: 'contained', onClick: _vm.wizardCancel },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('email-template-editor',{attrs:{\"showDialog\":_vm.showEmailTemplate},on:{\"hiding\":_vm.onTemplateEditorHidden}}),_c('email-fee-sheet-preview',{attrs:{\"showDialog\":_vm.showPreview,\"previewDisplay\":_vm.previewDisplay,\"forFeeSheetPreview\":_vm.forFeeSheetPreview,\"feeSheetIds\":_vm.selectedFeeSheetIds,\"feeSheetInstructionId\":_vm.feeSheetInstructionId},on:{\"hiding\":function($event){_vm.showPreview = false; _vm.selectedFeeSheetIds = []}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"visible\":_vm.showingDialog,\"drag-enabled\":true,\"close-on-outside-click\":false,\"show-title\":true,\"title\":\"Preview\",\"width\":900},on:{\"update:visible\":function($event){_vm.showingDialog=$event}}},[_c('dx-load-panel',{attrs:{\"visible\":_vm.downloadInProgress},on:{\"update:visible\":function($event){_vm.downloadInProgress=$event}}}),_c('dx-scroll-view',{attrs:{\"scroll-by-content\":true,\"scroll-by-thumb\":true,\"show-scrollbar\":'onHover'}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.showDisplay)}})]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Download', type: 'default', stylingMode: 'contained', onClick: _vm.onDownloadFile},\"location\":\"after\",\"toolbar\":\"bottom\",\"visible\":_vm.isForFeeSheetPreview}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'normal', stylingMode: 'contained', onClick: _vm.onClose },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { DxPopup,DxScrollView,DxLoadPanel } from 'devextreme-vue';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\n import { alert } from 'devextreme/ui/dialog';\nimport { QuestelServicesClient } from '@questelservices/common/dist/QuestelServicesClient';\nimport FileSaver, { saveAs } from 'file-saver';\nimport {ExportFeeSheetsDto} from '@/models/Fees/ExportFeeSheetsDto'\n\n@Component({\n components: {\n DxPopup,\n DxToolbarItem,\n DxScrollView,\n DxLoadPanel\n \n }\n})\nexport default class emailFeeSheetPreview extends Vue {\n $refs: Vue['$refs'] & {\n \n } = {};\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) { \n this.$emit(\"hiding\");\n }\n\n @Prop()\n previewDisplay!: string;\n\n @Prop()\n forFeeSheetPreview!: boolean\n\n @Prop()\n feeSheetIds! : Guid[];\n\n @Prop()\n feeSheetInstructionId! : Guid;\n\n get showDisplay() : string {\n return this.previewDisplay;\n }\n\n get isForFeeSheetPreview() : boolean {\n return this.forFeeSheetPreview;\n }\n\n get FeeSheetIds() : any {\n return this.feeSheetIds;\n }\n\n\n feeSheetService : FeeSheetsService;\n downloadInProgress: boolean = false;\n client: QuestelServicesClient;\n\n constructor() {\n super();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets');\n this.client = new QuestelServicesClient(this.$store, '');\n }\n\n onClose(e:any) {\n this.showingDialog = false;\n }\n\n async onDownloadFile(e: any) {\n this.downloadInProgress = true;\n if(this.FeeSheetIds) {\n var payload : ExportFeeSheetsDto = {\n FeeSheetIds : this.FeeSheetIds,\n InstructionTemplateId : this.feeSheetInstructionId,\n TimeZoneOffset: (new Date()).getTimezoneOffset()\n }\n\n let authorizeDownloadResult = await this.feeSheetService.getExportFeeSheetsPdf(payload)\n .then((res: any) => {\n return res;\n })\n .catch(reason => {\n alert('An error occurred generating the report. Please contact support.', 'Error');\n return undefined;\n })\n .finally(() => {\n this.downloadInProgress = false;\n });\n\n if (authorizeDownloadResult && authorizeDownloadResult.Url && authorizeDownloadResult.Token) {\n await this.client.download(authorizeDownloadResult.Url, authorizeDownloadResult.Token)\n .then(result => {\n let filename = result.headers.get('Filename');\n\n result.blob().then((b: any) => {\n FileSaver.saveAs(b, decodeURIComponent(filename));\n });\n }).catch(err => {\n \n });\n }\n }\n }\n\n}\n","export enum AgentFeeSheetTableDetailEnum {\n Signed = 'Signed',\n SignedXY = 'Signed X/Y',\n NotSigned = 'Not Signed',\n NotYetSent = 'Not Yet Sent'\n}\n\nexport enum AgentFeeSheetDetailColorEnum {\n Signed = 'LightGreen',\n SignedXY = 'Yellow',\n NotSigned = 'Orange',\n NotYetSent = 'Orange',\n Blank = 'LightGray'\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-fee-sheet-preview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-fee-sheet-preview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./email-fee-sheet-preview.vue?vue&type=template&id=50e81fcd&scoped=true&\"\nimport script from \"./email-fee-sheet-preview.vue?vue&type=script&lang=ts&\"\nexport * from \"./email-fee-sheet-preview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50e81fcd\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { DxButton, DxPopup,DxTagBox, DxSelectBox, DxTextBox, DxCheckBox, DxScrollView, DxTabs, DxLoadPanel as LoadPanel } from 'devextreme-vue';\nimport DxToolbar from 'devextreme-vue/toolbar';\nimport {DxForm, DxItem, DxAsyncRule, DxStringLengthRule,DxSimpleItem} from 'devextreme-vue/form';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { AgentInfoDto } from '@/models/agent/AgentInfoDto';\nimport { FeeSheetEmailerWizardDto } from '@/models/Fees/FeeSheetEmailerWizardDto';\nimport { ClientAgentJurisdictionDto, JurisdictionType } from '@/models/client-agent/ClientAgentJurisdictionDto';\nimport { CountryDto } from '../../models/CountryDto';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport Form from \"devextreme/ui/form\";\nimport _ from \"lodash\";\nimport FeeSheetRowDialog from './fee-sheet-row-dialog.vue'\nimport { DxHtmlEditor } from 'devextreme-vue/html-editor';\nimport dialog from 'devextreme/ui/dialog';\nimport EmailTemplateEditor from './email-template-editor.vue'\nimport EmailFeeSheetPreview from './email-fee-sheet-preview.vue'\n\nimport DataGrid from \"devextreme/ui/data_grid\";\nimport {\n DxDataGrid,\n DxColumn,\n DxColumnFixing,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxFilterRow,\n DxSelection,\n DxScrolling,\n DxLoadPanel,\n DxLookup\n} from 'devextreme-vue/data-grid';\nimport DevExpress from 'devextreme';\nimport DxValidator, { DxRequiredRule } from 'devextreme-vue/validator';\nimport { Popup } from '@questelservices/common-vue';\nimport { FeeSheetsService } from '../../service/FeeSheetsService';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { EmailInstructionDto } from '@/models/EmailInstructionDto';\nimport { AgentFeeSheetTableDto, AgentFeeSheetTableColumnDto } from '@/models/audit/AgentFeeSheetTableDto';\nimport { AgentFeeSheetTableDetailEnum, AgentFeeSheetDetailColorEnum } from '@/models/audit/AgentFeeSheetTableDetailEnum';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport Tabs from \"devextreme/ui/tabs\";\nimport DataSource from 'devextreme/data/data_source';\nimport ArrayStore from 'devextreme/data/array_store';\nimport { getModule } from 'vuex-module-decorators';\nimport CommonModule from '@questelservices/common/dist/store/CommonModule';\nimport store from '@/store';\nimport { SendFeeSheetDto } from '@/models/Fees/SendFeeSheetDto';\nimport { SendAgentFeeSheetDto } from '@/models/Fees/SendAgentFeeSheetDto';\nimport notify from 'devextreme/ui/notify';\n\n\nconst commonState = getModule(CommonModule, store);\n\n@Component({\n components: {\n Popup,\n DxForm,\n DxItem,\n DxButton,\n DxLookup,\n DxSelectBox,\n DxToolbar,\n DxToolbarItem,\n DxStringLengthRule,\n DxAsyncRule,\n DxSimpleItem,\n DxColumn,\n DxHeaderFilter,\n DxEditing,\n DxDataGrid,\n FeeSheetRowDialog,\n DxCheckBox,\n DxTextBox,\n DxValidator,\n DxRequiredRule,\n DxScrollView,\n DxFilterRow,\n DxSelection,\n DxTabs,\n DxScrolling,\n DxLoadPanel,\n DxHtmlEditor,\n EmailTemplateEditor,\n EmailFeeSheetPreview,\n DxColumnFixing,\n LoadPanel,\n DxTagBox\n \n }\n})\nexport default class FeeSheetEmailerWizards extends Vue {\n $refs: Vue['$refs'] & {\n agentFeeSheetsTo?: DataGrid;\n agentFeeSheets?: DataGrid;\n emailGrid?: DataGrid;\n wizardStepper? : Tabs;\n } = {};\n\n @Prop()\n client!: ClientDto;\n\n \n get ClientVal() {\n return this.client;\n }\n \n get agentFeeSheetsToGrid() {\n return (this.$refs.agentFeeSheetsTo as DataGrid).instance;\n }\n\n get agentFeeSheetsGrid() {\n return (this.$refs.agentFeeSheets as DataGrid).instance;\n }\n\n get emailInsGrid() {\n return (this.$refs.emailGrid as DataGrid).instance;\n }\n\n get wizardStepperComponent() {\n return ((this.$refs.wizardStepper as Tabs).instance as any);\n }\n\n agentFromCustomStoreOptions: CustomStore;\n selectedRows: any[] = [];\n emailInstruction: EmailInstructionDto[] = [] \n wizardStep: number = 0;\n prevStep:number = 0;\n fromToolbarItem: boolean = false;\n agentService : AgentService;\n feeSheetService : FeeSheetsService;\n cancelOrBack: string = \"Cancel\";\n continueOrFinish: string = \"Continue\";\n showEmailTemplate: boolean = false;\n showPreview: boolean = false;\n previewDisplay: string = \"\";\n forFeeSheetPreview: boolean = false;\n tabs = [\n {\n id : 0,\n text : 'Select Agents',\n icon: 'user'\n },\n {\n id : 1,\n text : 'Select Fee Sheets',\n icon: 'card',\n disabled: true\n },\n {\n id : 2,\n text : 'Select Templates',\n icon: 'message',\n disabled: true\n }\n ]\n emailTemplateList: any = [];\n instructionTemplateList: any = [];\n\n get selectedRowAgentId() {\n return this.selectedRows.map(item => item.AgentId);\n }\n\n feeSheetColumns: any[] = [];\n\n get columns() : any[] { \n return this.feeSheetColumns;\n }\n\n agentsFeeSheets: FeeSheetDto[] = [];\n \n get AgentFeeSheets() : any {\n let result: any = [];\n \n if(this.agentsFeeSheets && this.agentsFeeSheets.length > 0) {\n result = this.processData(this.agentsFeeSheets.filter(afs => afs.ClientId === this.ClientVal.ClientId));\n }\n\n return new DataSource({\n store: new ArrayStore({\n key : \"AgentName\",\n data: result\n })\n });\n }\n\n emailInstructionList: EmailInstructionDto[] = [];\n get emailInstructionGrid() : any {\n return {\n \"store\" : {\n \"type\": 'array',\n \"key\" : 'AgentName',\n \"data\" : this.emailInstructionList\n }\n }\n }\n\n sendingInProgress: boolean = false;\n textTemplateService: TextTemplateService;\n feeSheetEmailHeaderStore: CustomStore;\n feeSheetInstructionsStore: CustomStore;\n defaultHeaderStore(type: TextTemplateTypeEnum) {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(type)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n });\n }\n\n constructor() {\n super();\n \n this.showDialog = false;\n this.agentService = new AgentService();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets');\n this.agentFromCustomStoreOptions = new CustomStore();\n this.textTemplateService = new TextTemplateService();\n this.feeSheetEmailHeaderStore = this.defaultHeaderStore(TextTemplateTypeEnum.FeeSheetEmail);\n this.feeSheetInstructionsStore = this.defaultHeaderStore(TextTemplateTypeEnum.FeeSheetInstructions);\n \n }\n \n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingModal();\n }\n\n onTemplateEditorHidden(e:any) {\n this.showEmailTemplate = false;\n this.feeSheetEmailHeaderStore = this.defaultHeaderStore(TextTemplateTypeEnum.FeeSheetEmail);\n this.feeSheetInstructionsStore = this.defaultHeaderStore(TextTemplateTypeEnum.FeeSheetInstructions);\n }\n async onSelectionChanged(e:any) {\n \n if(!this.fromToolbarItem) {\n let canContinue = true;\n this.prevStep = this.wizardStep;\n this.wizardStep = e.component.instance().option(\"selectedIndex\");\n\n if(this.wizardStep == 1) {\n let fromStep3 = this.prevStep > this.wizardStep;\n this.continueOrFinish = \"Continue\";\n this.cancelOrBack = \"Back\";\n\n if(!fromStep3) {\n this.wizardStepperComponent.option(\"items[2].disabled\", true);\n }\n // else {\n await this.processStep2Data(fromStep3);\n // }\n }\n else if(this.wizardStep == 2) {\n this.continueOrFinish = \"Finish\";\n this.cancelOrBack = \"Back\";\n \n await this.processStep3Data();\n }\n else {\n this.continueOrFinish = \"Continue\";\n this.cancelOrBack = \"cancel\";\n this.wizardStepperComponent.option(\"items[2].disabled\", true)\n }\n }\n this.fromToolbarItem = false;\n }\n\n onOpenedEmailCC(e:any) {\n e.component.content().remove();\n }\n\n emailCCSource: string[] = [\"\"];\n selectedEmailCC: string[] = [];\n duplicateCustomItem: string = \"\"\n emailCCHasError: boolean = false;\n validationRule = {\n invalidEmail : {\n type: 'email',\n message : 'Invalid email'\n },\n noError : {}\n }\n onCustomItemCreatingEvent(e:any) {\n if (this.checkEmailValidation(e.text))\n {\n let name = e.component.option(\"name\");\n\n if(name == \"emailCCComponent\")\n {\n if(_.find(this.emailCCSource, item => item === e.text)) {\n this.duplicateCustomItem = e.text;\n }\n else {\n this.emailCCSource.push(e.text);\n }\n }\n this.emailCCHasError = false;\n }\n else {\n this.emailCCHasError = true;\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n }\n\n tagItemStyle(e:any) {\n return {\n 'background-color' : this.checkEmailValidation(e) ? '#e0e0e0' : '#f5b5b5'\n }\n }\n\n onEmailCCValueChanged(e:any) {\n if(this.duplicateCustomItem){\n let val = e.component.option(\"value\");\n\n val.push(this.duplicateCustomItem);\n e.component.option(\"value\", val);\n\n this.duplicateCustomItem = \"\";\n }\n if(e.value && e.value.length > 0) {\n if(_.find(e.value,item => !(this.checkEmailValidation(item)))) {\n this.emailCCHasError = true;\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n else {\n this.emailCCHasError = false;\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n else {\n this.emailCCHasError = false;\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n\n checkEmailValidation(text: string) {\n return /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(text)\n }\n\n async onPreviewEmailClicked(e:any) {\n this.forFeeSheetPreview = false;\n if(!e.data.EmailTemplateId) {\n await dialog.alert(\"Please select email template first.\", \"Required\");\n }\n else {\n let toDisplay = await this.textTemplateService.getTextTemplateById(e.data.EmailTemplateId)\n .then(result => result.Text)\n .catch(err => \"\");\n \n this.previewDisplay = this.processActualTokenData(toDisplay, e.data);\n this.showPreview = true;\n }\n }\n\n selectedFeeSheetIds: Guid[] = [];\n feeSheetInstructionId: Guid = \"\";\n async onPreviewFeeSheetClicked(e:any) {\n this.forFeeSheetPreview = true;\n if(!e.data.InstructionTemplateId) {\n await dialog.alert(\"Please select instruction template first.\", \"Required\");\n }\n else {\n var feeSheetsHTML = await this.feeSheetService.getExportFeeSheetsHTML(e.data.FeeSheetIds);\n var toDisplay = await this.textTemplateService.getTextTemplateById(e.data.InstructionTemplateId)\n .then(result => result.Text)\n .catch(err => \"\");\n \n this.previewDisplay = this.processActualTokenData(toDisplay, e.data) + '

' + feeSheetsHTML;\n this.selectedFeeSheetIds = e.data.FeeSheetIds;\n this.feeSheetInstructionId = e.data.InstructionTemplateId;\n this.showPreview = true;\n }\n }\n\n processActualTokenData(toDisplay: string, data: any) {\n let result = \"\";\n result = toDisplay;\n if(result.includes(\"[AGENTNAME]\")) {\n result = result.split('[AGENTNAME]').join(data.AgentName);\n }\n if(result.includes(\"[CLIENTNAME]\")) {\n result = result.split('[CLIENTNAME]').join(this.ClientVal.ClientName);\n }\n\n return result;\n }\n\n widthValue = 250;\n private onCellPrepared(e: any): void { \n if(e.rowType === 'header') {\n return;\n }\n\n if(e.rowType === 'data' && e.column.dataField !== \"AgentName\" && !e.column.dataField.includes(\"_selection\")) { \n let obj = e.row.data; \n if(obj.hasOwnProperty(e.column.dataField)) { \n e.cellElement.style['background-color'] = this.getColor(e.row.data[e.column.dataField]);\n }\n else { \n e.cellElement.style['background-color'] = AgentFeeSheetDetailColorEnum.Blank;\n }\n\n e.cellElement.style['width'] = this.widthValue;\n \n }\n else if(e.column.dataField.includes(\"_selection\")){ \n e.cellElement.style['background-color'] = \"white\";\n e.cellElement.style['width'] = '30px';\n }\n }\n\n private getColor(value: string): AgentFeeSheetDetailColorEnum { \n if(value.includes('Signed') && value.includes('/')) {\n return AgentFeeSheetDetailColorEnum.SignedXY;\n }\n\n if(value.includes('Signed')) {\n return AgentFeeSheetDetailColorEnum.Signed\n }\n\n switch(value) {\n case AgentFeeSheetTableDetailEnum.NotSigned:\n return AgentFeeSheetDetailColorEnum.NotSigned; \n case AgentFeeSheetTableDetailEnum.NotYetSent:\n return AgentFeeSheetDetailColorEnum.NotYetSent;\n }\n \n return AgentFeeSheetDetailColorEnum.Blank;\n }\n\n onStep3CellPrepared(e: any) {\n if(e.rowType === 'data' && (e.column.dataField === \"AgentName\")) {\n let obj = e.row.data; \n if(!e.row.data.AgentName) { \n e.cellElement.style['border-right'] = \"2px solid transparent\";\n }\n }\n }\n\n onContentReady(e: any) {\n if(e.component) {\n this.selectionColumnIndexes.forEach(index => {\n e.component.columnOption(index,\"caption\", \"\");\n e.component.columnOption(index,\"width\", 70);\n \n })\n \n }\n }\n\n onEditingStart(e:any) {\n if(e.column.dataField.includes(\"_selection\")) {\n let prop = e.column.dataField;\n if(e.data[prop] != undefined) {\n e.cancel = false;\n }\n else {\n e.cancel = true;\n }\n\n }\n }\n\n selectedRowInContextMenu: any = {\n data : false,\n prop : \"\"\n };\n\n onRowStep2Updated(e:any) {\n let dataSource = (this.agentFeeSheetsGrid as any).getDataSource().items();\n \n this.processEnableAndDisableStep3(dataSource);\n }\n\n hasSelectedStep2Grid(dataSource: any[]) : boolean {\n let result = false;\n\n this.columns\n .filter((element: any) => element.name.includes(\"_selection\"))\n .forEach((element: any) => {\n if(dataSource.find((x:any) => x[element.name] == true)) {\n result = true;\n }\n });\n return result;\n }\n prepareContextMenu(e: any) {\n if(e.row.rowType && e.row.rowType === \"data\" && e.column.dataField.includes(\"_selection\"))\n {\n let prop = e.column.dataField;\n \n if(e.row.data[prop] != undefined) {\n this.selectedRowInContextMenu.data = e.row.data[prop];\n this.selectedRowInContextMenu.prop = prop;\n\n e.items = [\n { text: e.row.data[prop] ? \"Unselect All\" : \"Select All\",\n onItemClick: this.onContextMenuClick\n }\n ]\n }\n }\n }\n\n edittedColumn: string = '';\n saveCellEdit(e: any) {\n this.edittedColumn = 'EmailTemplateId';\n (this.emailInsGrid as any).saveEditData();\n }\n saveCellInstructionEdit(e:any) {\n this.edittedColumn = 'InstructionTemplateId';\n (this.emailInsGrid as any).saveEditData();\n }\n onRowUpdated(e: any) {\n if(e.key != undefined) {\n let data = e.data;\n let dataSource = (this.emailInsGrid as any).getDataSource().items();\n\n if(e.key === '') {\n dataSource.forEach((element:any) => {\n if(element.AgentName) {\n element[this.edittedColumn] = data[this.edittedColumn]\n }\n });\n }\n else {\n let first = dataSource[0];\n first[this.edittedColumn] = undefined;\n }\n\n (this.emailInsGrid as any).option(\"dataSource\", {\n \"store\" : {\n \"type\": 'array',\n \"key\" : 'AgentName',\n \"data\" : dataSource\n }\n })\n }\n }\n onContextMenuClick() {\n let dataSource = (this.agentFeeSheetsGrid as any).getDataSource().items();\n let rowData = this.selectedRowInContextMenu.data;\n let prop = this.selectedRowInContextMenu.prop;\n\n dataSource.forEach((element : any) => {\n if(element.hasOwnProperty(prop)) {\n element[prop] = rowData ? false: true;\n }\n });\n\n (this.agentFeeSheetsGrid as any).option(\"dataSource\", dataSource)\n this.processEnableAndDisableStep3(dataSource);\n \n }\n\n processEnableAndDisableStep3(dataSource: any) {\n let hasSelected = this.hasSelectedStep2Grid(dataSource);\n if(hasSelected) {\n this.wizardStepperComponent.option(\"items[2].disabled\", false)\n }\n else {\n this.wizardStepperComponent.option(\"items[2].disabled\", true)\n }\n }\n\n processEmailInstructionData(): Promise {\n let result : EmailInstructionDto[] = [];\n\n let firstElement : EmailInstructionDto = {\n AgentName : \"\",\n FeeSheetToSend : \"\",\n FeeSheetIds: []\n }\n\n if(this.$refs.agentFeeSheets) {\n let dataSource = (this.agentFeeSheetsGrid as any).getDataSource().items();\n let columnSelections = this.columns.filter((element: any) => element.name.includes(\"_selection\"));\n\n dataSource.forEach((element: any) => {\n let emailInstruction : EmailInstructionDto = {\n AgentName : element.AgentName,\n FeeSheetToSend : \"\",\n FeeSheetIds: []\n }\n let feeSheetNamesToSend: string[] = [];\n columnSelections.forEach((x:any) =>{ \n if(element[x.name] == true) {\n let fSheetName = x.name.replace('_selection', '');\n emailInstruction.FeeSheetToSend += `${fSheetName}
`\n feeSheetNamesToSend.push(fSheetName)\n }\n })\n\n if(emailInstruction.FeeSheetToSend) {\n emailInstruction.FeeSheetIds = this.agentsFeeSheets\n .filter(x => x.Agent && x.Agent.AgentName == element.AgentName &&\n feeSheetNamesToSend.includes(x.FeeSheetName))\n .map(x => x.FeeSheetId)\n result.push(emailInstruction)\n }\n });\n }\n \n result.unshift(firstElement);\n\n return Promise.resolve(result);\n }\n \n selectionColumnIndexes: number[] = []\n processColumns(agentsFeeSheets : any) {\n this.feeSheetColumns = [];\n let tempColumns : any = [];\n this.selectionColumnIndexes = []\n \n let columnIndex = 0;\n _.uniqBy(agentsFeeSheets, (c : any) => c.FeeSheetName).forEach(item => {\n let column = {\"name\":item.FeeSheetName, \"type\" : \"string\", \"isEditable\" : false}\n let column1 = {\"name\":`${item.FeeSheetName}_selection`, \"type\" : \"boolean\", \"isEditable\" : true}\n\n tempColumns.push(column);\n tempColumns.push(column1);\n columnIndex += 2;\n\n this.selectionColumnIndexes.push(columnIndex);\n })\n this.feeSheetColumns = tempColumns;\n }\n\n processData(agentsFeeSheets : any): AgentFeeSheetTableDto[] {\n let result: AgentFeeSheetTableDto[]= [];\n let agentsWithoutFeeSheets: AgentFeeSheetTableDto[] = []; \n\n this.selectedRows.forEach(agent => {\n let tableRow: AgentFeeSheetTableDto = {\n AgentName: agent.AgentName,\n Colors: [] as AgentFeeSheetDetailColorEnum[],\n FeeSheetIds: [] as Guid[]\n }; \n\n let count = _.uniqBy(agentsFeeSheets,(item : any) => item.FeeSheetName).length;\n for(var i = 0; i < count; i++) {\n agentsFeeSheets\n .filter((item : any) => item.AgentName && item.AgentName == agent.AgentName)\n .forEach((item : any, ind: number, arr: any[]) => {\n let agentFeeSheet = item;\n\n if(agentFeeSheet) {\n tableRow.FeeSheetIds.push(agentFeeSheet.FeeSheetId);\n\n let tableColumn : AgentFeeSheetTableColumnDto = {\n Signed: agentFeeSheet.Signed,\n Modified: agentFeeSheet.Modified,\n EffectiveDate : (this.$options.filters as any).moment(agentFeeSheet.EffectiveDate,\"DD MMM YYYY\"),\n LastSentDate : agentFeeSheet.LastSentDate ? \n (this.$options.filters as any).moment(agentFeeSheet.LastSentDate,\"DD MMM YYYY\"):undefined \n };\n let modifiedString = agentFeeSheet.Modified ? \"Modified\" : \"\";\n\n if(agentFeeSheet.Signed === \"Yes\") {\n if(agentFeeSheet.EffectiveDate) {\n tableRow[agentFeeSheet.FeeSheetName] = `${AgentFeeSheetTableDetailEnum.Signed} ${modifiedString} ${tableColumn.EffectiveDate}`; \n } \n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.Signed);\n }\n else if(agentFeeSheet.Signed !== \"Yes\" && agentFeeSheet.Signed !== \"No\"){\n let signedDetail = agentFeeSheet.Signed.replace(' of ','/');\n let detail = AgentFeeSheetTableDetailEnum.SignedXY.replace('X/Y', signedDetail);\n\n if(agentFeeSheet.EffectiveDate) {\n tableRow[agentFeeSheet.FeeSheetName] = `${detail} ${modifiedString} ${tableColumn.EffectiveDate}`; \n } \n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.SignedXY);\n }\n else if(agentFeeSheet.Signed === \"No\") {\n if(!agentFeeSheet.LastSentDate){\n tableRow[agentFeeSheet.FeeSheetName] = AgentFeeSheetTableDetailEnum.NotYetSent;\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.NotYetSent);\n } \n else {\n tableRow[agentFeeSheet.FeeSheetName] = AgentFeeSheetTableDetailEnum.NotSigned;\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.NotSigned);\n }\n \n }\n \n \n tableRow[`${agentFeeSheet.FeeSheetName}_selection`] = false;\n } \n else {\n tableRow.FeeSheetIds.push(\"\");\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.Blank);\n }\n });\n }\n\n if(tableRow.FeeSheetIds.every(id => id == \"\")) {\n agentsWithoutFeeSheets.push(tableRow);\n }\n else {\n result.push(tableRow);\n }\n });\n \n result = _.orderBy(result, a => a.AgentName);\n agentsWithoutFeeSheets = _.orderBy(agentsWithoutFeeSheets, a => a.AgentName);\n result = result.concat(agentsWithoutFeeSheets);\n\n return result;\n } \n\n onUpdateTemplates(e: any) {\n this.showEmailTemplate = true;\n }\n \n\n hidingModal() :void {\n this.$emit(\"hiding\");\n }\n\n step1Selection: any;\n async onStep1SelectionChanged(e:any) {\n this.step1Selection = await (this.agentFeeSheetsToGrid as any).getSelectedRowsData()\n .then((success : any) => success)\n .catch((err: any) => []);\n\n if(this.step1Selection.length > 0) {\n this.wizardStepperComponent.option(\"items[1].disabled\", false)\n }\n else {\n this.wizardStepperComponent.option(\"items[1].disabled\", true)\n }\n }\n\n contentReady(e: any) {\n if (e.component.shouldSkipNextReady) {\n e.component.shouldSkipNextReady = false;\n } else {\n e.component.shouldSkipNextReady = true;\n e.component.columnOption('command:select', 'width', 40);\n e.component.updateDimensions();\n }\n }\n\n get agentToCustomStoreOptions() {\n if(this.showDialog) {\n return new CustomStore({ \n key: 'AgentId',\n load: (options): Promise => {\n if(this.client && this.client.ClientId) {\n return this.agentService\n .agentInfo(options, this.client.ClientId)\n .then((result: any) => {\n return result.data; \n })\n .catch(err => {\n return [];\n });\n }\n else {\n return Promise.resolve([]);\n }\n } \n });\n }\n else {\n return []\n }\n }\n\n async processStep2Data(fromStep3: boolean) : Promise {\n let canContinue : boolean = true;\n\n if(!fromStep3) {\n this.selectedRows = await (this.agentFeeSheetsToGrid as any).getSelectedRowsData()\n .then((success : any) => success)\n .catch((err: any) => []);\n\n if(this.selectedRows.length === 0) {\n await dialog.alert(\"Select at least one agent to continue.\", \"Required\");\n canContinue = false;\n }\n else {\n this.agentsFeeSheets = await this.feeSheetService.getFeeSheetsStatus(this.client.ClientId, \n this.selectedRows.map((item : any)=>item.AgentId))\n .then(result => {\n result = _.orderBy(result, [\"FeeSheetName\"],[\"asc\"]);\n this.processColumns(result.filter(afs => afs.ClientId === this.ClientVal.ClientId));\n\n return result;\n })\n .catch(err => err);\n }\n }\n return Promise.resolve(canContinue);\n }\n\n async processStep3Data() : Promise {\n let canContinue : boolean = true;\n let dataSource = (this.agentFeeSheetsGrid as any).getDataSource().items();\n \n let hasSelected = this.hasSelectedStep2Grid(dataSource);\n \n if(!hasSelected) {\n await dialog.alert(\"Select at least one fee sheet to continue.\", \"Required\");\n canContinue = false;\n }\n else{\n (this.emailInsGrid as any).beginCustomLoading();\n this.emailInstructionList = await this.processEmailInstructionData();\n (this.emailInsGrid as any).endCustomLoading();\n }\n\n return Promise.resolve(canContinue);\n }\n\n async processDisplayMissingEmailAndFeeSheetId(dataSourceItems: any) {\n var agentWithMissingTemplate = \"\";\n\n dataSourceItems.filter((item : any)=> !item.InstructionTemplateId || !item.EmailTemplateId)\n .forEach((element : any) => {\n agentWithMissingTemplate += `${element.AgentName}
`\n });;\n\n await dialog.alert(`Please select an email template and a fee sheet template for all agents.
\n Agents missing a template selection:
\n ${agentWithMissingTemplate}`, \"Required\");\n }\n\n async processConfirmationToSend(dataSourceItems: any) {\n var agentsWithFeeSheet: any = [];\n var displayMessage = \"\";\n dataSourceItems.forEach((element : any) => {\n let aWf = {\n \"AgentName\" : element.AgentName,\n \"FeeSheetsSelected\" : element.FeeSheetToSend.split(\"
\")\n .sort()\n }\n aWf.FeeSheetsSelected.shift();\n aWf.FeeSheetsSelected = aWf.FeeSheetsSelected.join(\", \");\n\n agentsWithFeeSheet.push(aWf);\n });\n let groupedItems = _.groupBy(agentsWithFeeSheet, i => i.FeeSheetsSelected);\n\n let toDisplay = _.map(groupedItems,(feeSheetGroup, key) => {\n let feeSheets = key.split(\", \");\n let header = \"Fee Sheets \";\n let agentNames = \"\";\n\n feeSheets.forEach((item ,indx)=> {\n if(feeSheets.length == 1) {\n header += `${item}`;\n }\n else {\n header += (indx + 1) == feeSheets.length && feeSheets.length > 1 ?\n `and ${item}`: `${item}, `;\n }\n });\n\n feeSheetGroup.forEach((item ,indx)=> {\n if(feeSheetGroup.length == 1) {\n agentNames += `${item.AgentName}`;\n }\n else {\n agentNames += (indx + 1) == feeSheetGroup.length && feeSheetGroup.length > 1 ?\n `and ${item.AgentName}`: `${item.AgentName}, `;\n }\n });\n\n return header + ` ${feeSheets.length > 1 ? 'are' : 'is'}` + \" to be sent to:
\" + agentNames;\n });\n\n let dl = dialog.custom({\n title: \"Fee Sheet Emailing Confirmation\",\n messageHtml: toDisplay.join(\"

\"),\n buttons: [\n {\n text: \"Send\",\n onClick: (e) => {\n return {result: true}\n }\n },\n {\n text: \"Cancel\",\n onClick: (e) => {\n return {result: false}\n }\n }\n ]\n });\n\n let result = await dl.show().then((dialogResult : any)=> dialogResult.result)\n .catch((err: any) => false);\n\n return result;\n }\n\n\n async wizardContinue(){\n let canContinue = true;\n if(this.wizardStep == 2) {\n var dataSourceItems = _.cloneDeep((this.emailInsGrid as any).getDataSource().items());\n dataSourceItems.shift();\n\n if(!_.every(dataSourceItems, item => item.InstructionTemplateId && item.EmailTemplateId)) {\n await this.processDisplayMissingEmailAndFeeSheetId(dataSourceItems)\n return;\n }\n\n if(this.emailCCHasError) {\n await dialog.alert(\"Invalid Email in Email CC\", 'Error');\n return;\n }\n\n if(await this.processConfirmationToSend(dataSourceItems)) {\n this.sendingInProgress = true;\n var jwtData = commonState.jwtData;\n var senderEmailAdd = jwtData.EmailAddress;\n var displayName = `${jwtData.GivenName} ${jwtData.Surname}`;\n var agentFeeSheets : SendAgentFeeSheetDto[] = [];\n\n _.forEach(dataSourceItems, item => {\n var agent = _.find(this.step1Selection, x => x.AgentName == item.AgentName);\n var agentFS : SendAgentFeeSheetDto = {\n AgentName : item.AgentName,\n FeeSheetIds : item.FeeSheetIds,\n EmailTemplateId : item.EmailTemplateId,\n InstructionTemplateId : item.InstructionTemplateId,\n Email : agent.AgentEmail.split(';'),\n Cc : this.selectedEmailCC, //Add the Email cc here \n AgentId : agent.AgentId\n }\n\n agentFeeSheets.push(agentFS);\n });\n\n var payload : SendFeeSheetDto = {\n SenderEmailAddress : senderEmailAdd,\n ClientName : this.ClientVal.ClientName,\n ClientId : this.ClientVal.ClientId,\n AgentFeeSheets : agentFeeSheets,\n TimeZoneOffset : (new Date()).getTimezoneOffset()\n }\n\n this.feeSheetService.sendFeesheets(payload)\n .then(success => {\n var messageDisplay = dataSourceItems.length > 1 ? \"Emails\" : \"Email\";\n this.emailCCSource = [];\n this.selectedEmailCC = [];\n notify(`${messageDisplay} successfully sent`, 'success', 4000);\n })\n .catch(error => {\n notify('Failed to send email', 'error');\n })\n .finally(() => {\n this.sendingInProgress = false;\n })\n \n }\n \n }\n else {\n if(this.wizardStep === 0) {\n canContinue = await this.processStep2Data(false);\n }\n else {\n canContinue = await this.processStep3Data();\n }\n if(canContinue) {\n this.wizardStep++;\n this.cancelOrBack = \"Back\";\n if(this.wizardStep != 2) {\n this.continueOrFinish = \"Continue\";\n }\n else {\n this.continueOrFinish = \"Finish\";\n }\n this.fromToolbarItem = true;\n this.wizardStepperComponent.option(\"selectedIndex\", this.wizardStep)\n }\n \n }\n }\n\n wizardCancel() {\n if(this.wizardStep > 0) {\n this.wizardStep--;\n this.continueOrFinish = \"Continue\"\n if(this.wizardStep != 0) {\n this.cancelOrBack = \"Back\";\n }\n else {\n this.wizardStepperComponent.option(\"items[2].disabled\", true);\n this.cancelOrBack = \"Cancel\";\n }\n\n this.fromToolbarItem = true;\n this.wizardStepperComponent.option(\"selectedIndex\", this.wizardStep)\n }\n else {\n this.showingDialog = false;\n }\n \n }\n\n onPopUpHidden(e:any){\n this.duplicateCustomItem = \"\";\n this.selectedEmailCC =[];\n this.emailCCSource = [];\n this.wizardStep = 0;\n this.selectedRowInContextMenu = {\n data : false,\n prop : \"\"\n };\n this.agentsFeeSheets = [];\n this.feeSheetColumns = [];\n\n }\n\n onPopUpShowing(e:any) {\n this.wizardStepperComponent.option(\"selectedIndex\", 0);\n }\n\n\n\n processJurisDictionDisplay(data: AgentInfoDto, jurisdictionType: JurisdictionType) : string {\n let result = \"\"; \n\n if(!data){\n return result;\n }\n\n if(jurisdictionType === JurisdictionType.In) { \n if(data.Jurisdictions) {\n let filteredData = data.Jurisdictions.filter((item : ClientAgentJurisdictionDto) => item.InJurisdiction);\n filteredData.forEach((element : ClientAgentJurisdictionDto) => {\n result = (result ? `${result}, `: \"\") + element.Country.CountryCode;\n }); \n } \n }\n else if(jurisdictionType === JurisdictionType.Out) { \n if(data.Jurisdictions) {\n let filteredData = data.Jurisdictions.filter((item : ClientAgentJurisdictionDto) => !item.InJurisdiction);\n filteredData.forEach((element : ClientAgentJurisdictionDto) => {\n result = (result ? `${result}, `: \"\") + element.Country.CountryCode;\n }); \n } \n }\n \n return result;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-emailer-wizards.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-emailer-wizards.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-emailer-wizards.vue?vue&type=template&id=083318d3&scoped=true&\"\nimport script from \"./fee-sheet-emailer-wizards.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-emailer-wizards.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./fee-sheet-emailer-wizards.vue?vue&type=style&index=0&id=083318d3&prod&lang=scss&scoped=true&\"\nimport style1 from \"./fee-sheet-emailer-wizards.vue?vue&type=style&index=1&id=083318d3&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"083318d3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":950,\"height\":550,\"max-width\":\"95%\",\"max-height\":\"95%\",\"show-title\":true,\"title\":_vm.getTitle,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"hidden\":_vm.onPopupHidden,\"showing\":_vm.onPopupShowing,\"save-shortcut-pressed\":_vm.save}},[_c('div',{staticClass:\"mass-adder-content\"},[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',[_c('dx-date-box',{attrs:{\"value\":_vm.selectedEffectiveDate,\"type\":\"date\",\"placeholder\":\"Select an effective date\",\"open-on-field-click\":true},on:{\"update:value\":function($event){_vm.selectedEffectiveDate=$event}}},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}})],1)],1),_c('dx-lookup',{staticClass:\"upload-select-box\",attrs:{\"data-source\":_vm.clientFeeSheets,\"displayExpr\":\"FeeSheetName\",\"valueExpr\":\"FeeSheetId\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"placeholder\":\"Select a client fee sheet\",\"value\":_vm.selectedFeeSheetId,\"onSelectionChanged\":_vm.onSelectedFeeSheetChanged,\"popup-height\":\"500\"},on:{\"update:value\":function($event){_vm.selectedFeeSheetId=$event}}},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}})],1)],1)],1),_c('dx-scroll-view',[_c('div',{staticClass:\"agent-selection\"},[_c('dx-tag-box',{attrs:{\"dataSource\":_vm.AgentSelectionStore,\"showSelectionControls\":true,\"displayExpr\":\"Agent.AgentName\",\"valueExpr\":\"Agent.AgentId\",\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"Select agents\",\"applyValueMode\":\"useButtons\",\"value\":_vm.selectedAgentIds,\"item-template\":\"item\",\"tag-template\":\"tag\",\"validation-message-mode\":\"always\"},on:{\"opened\":_vm.onOpened,\"update:value\":function($event){_vm.selectedAgentIds=$event}},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{class:{'is-in-client-agent' : data.IsClientAgent, 'not-client-agent' : !data.IsClientAgent},attrs:{\"id\":'item-' + data.Agent.AgentId},on:{\"mouseenter\":function($event){return _vm.onMouseEnter(data)},\"mouseleave\":_vm.onMouseLeave}},[_vm._v(\"\\n \"+_vm._s(data.Agent.AgentName)+\"\\n \")])]}},{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',{style:({fontWeight: _vm.ClientAgents.includes(data.Agent.AgentId) ? 'bold': 'initial'})},[_vm._v(\"\\n \"+_vm._s(data.Agent.AgentName)+\"\\n \")]),(!_vm.preSelectedAgentIds.includes(data.Agent.AgentId))?_c('div',{staticClass:\"dx-tag-remove-button\"}):_vm._e()])]}}])},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}}),_c('dx-custom-rule',{attrs:{\"validation-callback\":_vm.validateSelectAgents,\"reevaluate\":true,\"message\":\"Please select agents.\"}})],1)],1),_c('dx-tooltip',{attrs:{\"close-on-outside-click\":false,\"position\":'top',\"target\":_vm.hoveredItem,\"visible\":_vm.tooltipVisible,\"content-template\":\"displayTemplate\"},on:{\"update:visible\":function($event){_vm.tooltipVisible=$event}},scopedSlots:_vm._u([{key:\"displayTemplate\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.agentGroup)+\"\\n \")]},proxy:true}])})],1)])],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.save },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport { DxButton, DxPopup, DxLookup, DxSelectBox, DxTextBox, DxCheckBox, DxScrollView, DxTooltip } from 'devextreme-vue';\nimport DxToolbar from 'devextreme-vue/toolbar'\nimport { DxForm, DxItem, DxAsyncRule, DxStringLengthRule,DxSimpleItem } from 'devextreme-vue/form';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { FilingTypeDto } from '@/models/FilingTypeDto';\nimport { CurrencyService } from '@/service/CurrencyService';\nimport { JurisdictionDto } from '@/models/JurisdictionDto';\nimport Form from \"devextreme/ui/form\";\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\nimport { FeeSheetModalFor, FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport _ from \"lodash\";\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxScrolling\n} from 'devextreme-vue/data-grid';\nimport { DxDateBox , DxTagBox} from 'devextreme-vue';\nimport DxList from 'devextreme-vue/list';\nimport DxListItem from 'devextreme-vue/list';\nimport DevExpress from 'devextreme';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '../../models/Fees/FeeSheetRowDto';\nimport { FeeSheetRuleDto, FeeSheetRuleTypeEnum, FeeSheetRuleLevelEnum, FeeSheetRulesSortFunction } from '../../models/Fees/FeeSheetRuleDto';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { Popup } from '@questelservices/common-vue';\nimport { AgentDto } from '../../models/agent/AgentDto';\nimport { FeeSheetMassAdderDto, FeeSheetMassAdderCreationDto } from '../../models/Fees/FeeSheetMassAdderDto';\nimport { alert } from \"devextreme/ui/dialog\";\nimport DataSource from 'devextreme/data/data_source';\nimport List from \"devextreme/ui/list\";\nimport { DxValidator, DxRequiredRule, DxCustomRule } from 'devextreme-vue/validator';\nimport DxValidationGroup from 'devextreme-vue/validation-group';\nimport ValidationGroup from \"devextreme/ui/validation_group\";\n\n@Component({\n components: {\n Popup, \n DxButton,\n DxLookup,\n DxScrollView,\n DxSelectBox,\n DxToolbar,\n DxToolbarItem, \n DxList,\n DxListItem,\n DxDateBox,\n DxTagBox,\n DxTooltip,\n DxValidationGroup,\n DxValidator, DxRequiredRule, DxCustomRule\n }\n})\nexport default class AgentFeeSheetMassAdder extends Vue {\n $refs: Vue['$refs'] & { \n agentSelectionRef? : List;\n validationGroupRef? : ValidationGroup;\n } = {};\n\n get AgentSelectionComponent() {\n return ((this.$refs.agentSelectionRef as any).instance as any);\n }\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n @Prop()\n selectedClient!: ClientDto;\n\n @Prop()\n clientAgents! : Guid[];\n\n get ClientAgents() : Guid[] {\n return this.clientAgents;\n }\n\n get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any)\n }\n\n hoveredItem : string = \"\";\n tooltipVisible: boolean = false;\n agentGroup: string = '';\n preSelectedAgentIds: Guid[] = []\n feeSheetService: FeeSheetsService;\n clientFeeSheets: FeeSheetDto[] = [];\n selectedEffectiveDate: any = null;\n selectedFeeSheetId: Guid = \"\";\n\n // agentList: AgentDto[] = []\n get AgentSelectionStore() : DataSource {\n return new DataSource({\n store: this.AgentCustomStore,\n paginate: true,\n pageSize: 50,\n key: \"Agent.AgentId\"\n });\n }\n get AgentCustomStore() : CustomStore {\n return new CustomStore({ \n loadMode: 'raw', \n load: (options): Promise => {\n return this.agentService.getAll()\n .then(this.processResult)\n .catch(err => err);\n \n \n }\n });\n }\n\n processResult(result: any) {\n let res = result.map((item: any) => {\n return {\n Agent : item,\n IsClientAgent : this.clientAgents.includes(item.AgentId),\n AgentFeeSheetExists : this.preSelectedAgentIds.includes(item.AgentId)\n }\n })\n return _.orderBy(res, item => item.IsClientAgent, ['desc']);\n }\n private agentService = new AgentService();\n\n\n agentListItems: any = [];\n selectedAgentIds: Guid[] = [];\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingDialog();\n }\n\n\n get getTitle() {\n if(this.selectedClient) {\n return \"Create Agent Fee Sheets for \" + this.selectedClient.ClientName;\n }\n //fallback Title in case\n return \"Create Agent Fee Sheets\";\n }\n\n constructor() {\n super();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets'); \n }\n tagItemStyle(e:any) {\n return {\n 'padding-left' : '8px',\n 'padding-top' : '5px',\n 'padding-bottom' : '5px',\n 'padding-right' : this.preSelectedAgentIds.includes(e.Agent.AgentId) ? '10px' : '32px'\n }\n }\n validateSelectAgents(e:any) {\n if(e.value && e.value.length > 0){\n if(_.every(e.value, x => this.preSelectedAgentIds.includes(x))) {\n return false;\n }\n }\n \n return true;\n }\n onMouseEnter(e: any) {\n this.tooltipVisible = true;\n this.hoveredItem = '#item-' + e.Agent.AgentId;\n this.agentGroup = e.IsClientAgent ? \"Client Agent\" : \"Other Agent\";\n }\n onMouseLeave() {\n this.tooltipVisible = false;\n this.hoveredItem = '';\n this.agentGroup = '';\n }\n\n onOpened(e: any) {\n let element = document.getElementsByClassName(\"dx-list-select-all\")[0] as any;\n if (element != null) {\n element.remove();\n }\n }\n \n async loadData() {\n let clientFeeSheets = await this.feeSheetService.getFeeSheetPerClient(this.selectedClient.ClientId);\n this.clientFeeSheets = clientFeeSheets.filter(fs => fs.AgentId == null);\n }\n\n async onSelectedFeeSheetChanged() {\n if (this.selectedFeeSheetId === null) {\n return;\n }\n\n this.selectedAgentIds = [];\n this.preSelectedAgentIds = await this.feeSheetService.getAgentsWithParentFeeSheet(this.selectedFeeSheetId)\n .then(result => result)\n .catch(err=> []);\n this.selectedAgentIds = _.cloneDeep(this.preSelectedAgentIds);\n \n this.AgentSelectionStore.load();\n }\n\n onPopupHidden(e:any) {\n this.preSelectedAgentIds = [];\n this.selectedAgentIds = [];\n this.selectedFeeSheetId = '';\n this.selectedEffectiveDate = null;\n\n this.validationGroup.reset();\n\n }\n async onPopupShowing(e:any) {\n this.agentListItems = []; \n\n this.AgentSelectionStore.reload();\n await this.loadData();\n this.validationGroup.reset();\n }\n\n save() { \n if(!this.showingDialog) {\n return;\n }\n\n let validate = this.validationGroup.validate();\n \n if(!validate.isValid){\n return;\n }\n\n let creationDto: FeeSheetMassAdderCreationDto =\n {\n Agents: this.selectedAgentIds.filter(x => !this.preSelectedAgentIds.includes(x))\n .map(id => {\n return {\n AgentId : id,\n AgentName : \"\"\n }\n }),\n EffectiveDate: this.selectedEffectiveDate\n };\n\n this.feeSheetService.createAgentFeeSheetsFromList(this.selectedFeeSheetId, creationDto)\n .then(result => {\n this.hidingDialog();\n }); \n }\n\n hidingDialog() {\n this.$emit(\"hidingMassAdder\");\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-mass-adder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-mass-adder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./agent-fee-sheet-mass-adder.vue?vue&type=template&id=5ee9bdc4&scoped=true&\"\nimport script from \"./agent-fee-sheet-mass-adder.vue?vue&type=script&lang=ts&\"\nexport * from \"./agent-fee-sheet-mass-adder.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./agent-fee-sheet-mass-adder.vue?vue&type=style&index=0&id=5ee9bdc4&prod&lang=scss&scoped=true&\"\nimport style1 from \"./agent-fee-sheet-mass-adder.vue?vue&type=style&index=1&id=5ee9bdc4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ee9bdc4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":400,\"height\":400,\"show-title\":true,\"title\":_vm.dialogTitle,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.save,\"hidden\":_vm.onPopupHidden}},[_c('dx-select-box',{attrs:{\"displayExpr\":\"TemplateName\",\"placeholder\":\"Select a fee sheet template\",\"dataSource\":_vm.feeSheetTemplates,\"value\":_vm.selectedTemplate},on:{\"update:value\":function($event){_vm.selectedTemplate=$event}}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.save, useSubmitBehavior: true },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingModal },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { FeeSheetTemplateDto } from '@/models/FeeSheetTemplates/FeeSheetTemplateDto';\n\nexport class FeeSheetTemplateService extends CrudServiceBase {\n constructor(baseUrl: string) {\n super(baseUrl);\n }\n\n async getAll() : Promise {\n return await this.client.get('/all');\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport { DxButton, DxPopup, DxLookup, DxSelectBox } from 'devextreme-vue';\nimport DxToolbar from 'devextreme-vue/toolbar';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { FeeSheetTemplateService } from '../../service/FeeSheetTemplateService';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { Popup } from '@questelservices/common-vue';\nimport { FeeSheetTemplateDto } from '../../models/FeeSheetTemplates/FeeSheetTemplateDto';\n\n\n@Component({\n components: {\n DxButton,\n DxLookup,\n DxSelectBox,\n DxToolbar,\n DxToolbarItem,\n Popup\n }\n})\nexport default class CreateFeeSheetFromTemplate extends Vue {\n $refs: Vue['$refs'] & { \n } = {};\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingModal();\n }\n\n @Watch(\"showDialog\")\n async onShowPropChange(value: boolean, oldValue: boolean) {\n if(value){\n this.selectedTemplate = null;\n this.createClientSheet = false;\n }\n }\n\n\n dialogTitle: string = \"Which Template Would You Like To Use?\";\n feeSheetTemplates: FeeSheetTemplateDto[] = [];\n selectedTemplate: any = null; \n createClientSheet: boolean = false; \n\n constructor() {\n super(); \n this.loadData();\n }\n\n async loadData() {\n let feeSheetTemplateService = new FeeSheetTemplateService('/api/FeeSheetTemplate');\n feeSheetTemplateService.getAll()\n .then(result => {\n this.feeSheetTemplates = result;\n let useNoTemplate: FeeSheetTemplateDto = {\n TemplateName: \"Create New Fee Sheet\",\n FeeSheetTemplateId: \"\",\n Notes: \"\",\n FeeSheetTemplatePhases: [],\n FeeSheetTemplateTasks: [],\n InJurisdiction: false\n }\n this.feeSheetTemplates.unshift(useNoTemplate);\n });\n }\n\n save(): void {\n this.$emit(\"hidingCreateFromTemplate\", this.selectedTemplate);\n this.createClientSheet = true;\n }\n\n hidingModal(): void {\n this.$emit(\"hidingCreateFromTemplate\");\n }\n\n onPopupHidden(): void {\n this.$emit(\"onCreateFromTemplateHidden\", this.createClientSheet);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-fee-sheet-from-template.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-fee-sheet-from-template.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./create-fee-sheet-from-template.vue?vue&type=template&id=36871011&scoped=true&\"\nimport script from \"./create-fee-sheet-from-template.vue?vue&type=script&lang=ts&\"\nexport * from \"./create-fee-sheet-from-template.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36871011\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ClientService } from '../../service/ClientService';\nimport { FeeSheetsService } from '../../service/FeeSheetsService';\nimport { FilingTypeService } from '../../service/FilingTypeService';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxLoadPanel, DxButton, DxLookup, DxTooltip } from 'devextreme-vue';\nimport AddUpdateFeeSheets from './add-update-fee-sheets.vue';\nimport FeeSheetEmailerWizards from './fee-sheet-emailer-wizards.vue';\nimport AgentFeeSheetMassAdder from './agent-fee-sheet-mass-adder.vue';\nimport CreateFeeSheetFromTemplate from './create-fee-sheet-from-template.vue';\nimport { \n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxPopup,\n DxStateStoring,\n DxPaging,\n DxPager\n} from 'devextreme-vue/data-grid';\nimport { confirm } from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport { ClientDto } from '../../models/client/ClientDto';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { FeeSheetModalFor, FeeSheetModalType } from '../../models/Fees/FeeTypeEnum';\nimport { FeeSheetTemplateDto } from '../../models/FeeSheetTemplates/FeeSheetTemplateDto';\nimport { FilingTypeDto } from '../../models/FilingTypeDto';\nimport _ from 'lodash';\nimport { SelectOption } from '@/models/SelectOption';\n\n@Component({\n components: { \n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter, \n DxLoadPanel,\n DxLookup,\n DxPopup,\n DxButton,\n DxStateStoring,\n DxPaging, \n DxPager,\n AddUpdateFeeSheets,\n AgentFeeSheetMassAdder,\n CreateFeeSheetFromTemplate,\n FeeSheetEmailerWizards\n }\n})\nexport default class ClientAgentsFeeSheets extends Vue {\n $refs: Vue['$refs'] & {\n agentDataGrid?: DataGrid;\n clientDataGrid?: DataGrid;\n } = {};\n\n dataGridUrl: string = ''; \n selectedClient: ClientDto = {\n ClientId: \"\",\n ClientName: \"\"\n }\n inJurisdictionCountriesFilter : Array = [];\n private clientService : ClientService; \n clientCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n agentCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n feeSheetsService: FeeSheetsService;\n showAddUpdateFeeSheet: boolean;\n showMassAgentSheetAdder: boolean;\n showCreateFromTemplate: boolean;\n showWizard: boolean;\n feeSheetData: FeeSheetDto;\n feeSheetFor: FeeSheetModalFor;\n feeSheetType: FeeSheetModalType;\n feeSheetTemplate: any = null;\n deletionInProgress: boolean = false;\n filingTypes: SelectOption[] = [];\n\n constructor() {\n super();\n this.loadData();\n this.feeSheetFor = FeeSheetModalFor.Client;\n this.feeSheetType = FeeSheetModalType.Add;\n this.showAddUpdateFeeSheet = false;\n this.showWizard = false;\n this.showMassAgentSheetAdder = false;\n this.showCreateFromTemplate = false;\n this.clientService = new ClientService();\n this.feeSheetsService = new FeeSheetsService('/api/FeeSheets');\n this.clientCustomStoreOptions = {};\n this.agentCustomStoreOptions = {};\n this.feeSheetData = {\n FeeSheetId: \"\",\n ClientId: \"\",\n AgentId: \"\",\n CurrencyId: 0,\n InJurisdiction: false,\n FeeSheetName: \"\",\n EffectiveDate: new Date(),\n FilingTypes: [],\n FilingTypesNamesString: \"\",\n FeeSheetRows: [],\n FeeSheetTitle: '',\n DeletedFeeSheetRows: [],\n Signed: \"\",\n Modified: false\n };\n\n \n }\n\n async loadData() {\n let filingTypeService = new FilingTypeService();\n\n let filingTypes = await filingTypeService.getTypes();\n\n this.filingTypes = filingTypes.map(f => {\n return { \n value: f.Name, \n text: f.Name \n };\n })\n }\n\n clientStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.clientService.getAll();\n }\n });\n\n private clientStoreOption(clientId: Guid) : any {\n return {\n key: 'FeeSheetId',\n load: (loadOptions: any) => this.feeSheetsService\n .getClientFeeSheets(loadOptions,clientId) \n .catch(err => [])\n };\n }\n\n private agentStoreOption(clientId: Guid) : any {\n return {\n key: 'FeeSheetId',\n load: (loadOptions: any) => this.feeSheetsService\n .getAgentFeeSheets(loadOptions,clientId)\n .then(result => { \n let countries: Array = [];\n _.forEach(result.data, item => {\n let list = item.InJurisdictionCountries ? item.InJurisdictionCountries.split(', ') : [];\n\n countries = _.concat(countries, list);\n });\n this.inJurisdictionCountriesFilter = _.uniq(countries); \n return result;\n })\n .catch(err => [])\n };\n }\n\n getPopupHeight(): number {\n return window.innerHeight / 1.5;\n }\n\n initNewRow(e: any) { }\n\n rowUpdating(e: any) { }\n\n dataGridInitialized(e: any): void { }\n \n hidingAddUpdateFeeSheet(updateData: boolean): void { \n this.showAddUpdateFeeSheet = false;\n this.showWizard = false;\n\n if (updateData === true) {\n this.refreshDataGrids();\n } \n }\n\n private cancelFeeSheet(): void {\n this.showAddUpdateFeeSheet = false;\n this.showWizard = false;\n }\n\n refreshDataGrids() : void {\n if (this.$refs.clientDataGrid) {\n (this.$refs.clientDataGrid as any).refreshDataGrid();\n } \n \n if (this.$refs.agentDataGrid) {\n (this.$refs.agentDataGrid as any).refreshDataGrid();\n }\n \n }\n\n onEmailCampaignWizard(e: any): void {\n this.showWizard = true;\n }\n\n hidingCreateFromTemplate(template: FeeSheetTemplateDto): void {\n this.showCreateFromTemplate = false;\n \n if(template != null) {\n if(template.FeeSheetTemplateId == \"\") { \n this.feeSheetTemplate = null; \n }\n else { \n this.feeSheetTemplate = template; \n } \n } \n }\n\n onAddUpdateFeeSheetClient(createClientSheet: boolean): void {\n if(createClientSheet) {\n this.feeSheetData.FeeSheetId = \"\";\n this.feeSheetFor = FeeSheetModalFor.Client;\n this.feeSheetType = FeeSheetModalType.Add;\n this.showAddUpdateFeeSheet = true;\n } \n }\n onAddUpdateFeeSheetAgent(e: any): void {\n this.feeSheetData.FeeSheetId = \"\";\n this.feeSheetFor = FeeSheetModalFor.Agent;\n this.feeSheetType = FeeSheetModalType.Add;\n this.showAddUpdateFeeSheet = true;\n }\n\n onCreateFeeSheetFromTemplate(e: any): void {\n this.showCreateFromTemplate = true;\n }\n\n get getSelectedClient(): ClientDto {\n let empty: ClientDto = {\n ClientId: '',\n ClientName: ''\n };\n\n return this.selectedClient != null ? this.selectedClient : empty;\n }\n\n editBtnClicked(e: any): void { \n this.feeSheetFor = FeeSheetModalFor.Client;\n this.feeSheetType = FeeSheetModalType.Update\n\n if(e.data.FilingTypeId == null) {\n e.data.FilingTypeId = -1;\n }\n this.feeSheetData = _.clone(e.data);\n this.showAddUpdateFeeSheet = true;\n }\n\n async deleteBtnClicked(sheet: FeeSheetDto) {\n let agents = await this.feeSheetsService.getAgentNamesWithParentFeeSheet(sheet.FeeSheetId);\n let message = `

Are you sure want to delete ${sheet.FeeSheetTitle} for ${sheet.ClientName}?

`;\n\n if (agents.length > 0) {\n let agentsString = agents.map(a => `${a}`).join(', ');\n message += `

This will also delete the associated agent sheets for:

${agentsString}

`;\n }\n\n let result = await confirm(message, 'Confirm Delete');\n if (result) {\n notify(`Deleting ${sheet.FeeSheetTitle}...`, 'info', 4000);\n this.deletionInProgress = true;\n this.feeSheetsService.deleteFeeSheet(sheet.FeeSheetId)\n .then(response => {\n notify(`${sheet.FeeSheetTitle} successfully deleted`, 'success', 4000);\n this.refreshDataGrids();\n })\n .catch(reason => {\n notify(`An error occurred deleting the fee sheet`, 'error', 4000);\n })\n .finally(() => {\n this.deletionInProgress = false;\n });\n }\n }\n\n agentEditBtnClicked(e:any) : void {\n this.feeSheetFor = FeeSheetModalFor.Agent;\n this.feeSheetType = FeeSheetModalType.Update;\n \n if(e.data.FilingTypeId == null) {\n e.data.FilingTypeId = -1;\n }\n this.feeSheetData = _.clone(e.data);\n this.showAddUpdateFeeSheet = true;\n }\n\n async agentDeleteBtnClicked(sheet: FeeSheetDto) {\n let message = `Are you sure you want to delete ${sheet.FeeSheetTitle} for ${sheet.AgentName}?`;\n let result = await confirm(message, 'Confirm Delete');\n if (result) {\n notify(`Deleting ${sheet.FeeSheetTitle}...`, 'info', 4000);\n this.deletionInProgress = true;\n this.feeSheetsService.deleteFeeSheet(sheet.FeeSheetId)\n .then(response => {\n notify(`${sheet.FeeSheetTitle} successfully deleted`, 'success', 4000);\n this.refreshDataGrids();\n })\n .catch(reason => {\n notify(`An error occurred deleting the fee sheet`, 'error', 4000);\n })\n .finally(() => {\n this.deletionInProgress = false;\n });\n }\n }\n\n clientAgents : any[] = [];\n async onSelectedClientChanged(e: any): Promise {\n let val = e.selectedItem;\n if (val == null) {\n val = {\n ClientId: '',\n ClientName: ''\n };\n }\n\n if(val && val.ClientId) {\n this.clientCustomStoreOptions = this.clientStoreOption(val.ClientId);\n this.agentCustomStoreOptions = this.agentStoreOption(val.ClientId);\n this.clientAgents = await this.clientService.getAgentByClientId(val.ClientId);\n }\n }\n\n openAgentFeeSheetMassAdder() {\n this.showMassAgentSheetAdder = true;\n }\n\n hidingMassAdder() {\n this.showMassAgentSheetAdder = false;\n this.refreshDataGrids();\n }\n\n private signedFilters(data: any): void { \n data.dataSource.postProcess = (results: any) => { \n let withPartial: number = results.filter((r: { key: string|string[]; }) => r.key.includes('of')).length;\n \n if(withPartial > 0) {\n let newResult = results.filter(function(obj: any) {\n return !obj.key.includes('of');\n });\n\n newResult.push({ text: 'Partial', value: 'Partial' });\n return newResult;\n } \n \n return results;\n }\n } \n\n private signedFiltersExpression(value: string, selectedFilterOperations: string, target: string): string[] { \n if(target === 'headerFilter' && value === 'Partial') {\n return ['Signed', 'contains', 'of'];\n }\n \n return ['Signed', selectedFilterOperations, value];\n }\n\n private inJurisdictionCountriesDataSource(data: any) {\n data.dataSource.postProcess = (results: any) => { \n results = this.inJurisdictionCountriesFilter.map(item => {\n var entry = {\n \"text\" : item,\n \"value\" : item\n }\n return entry;\n }) \n \n return results;\n }\n }\n filterTypeOption = 'contains';\n private inJurisdictionCountriesFiltersExpression(value: string, selectedFilterOperations: string, target: string): string[] { \n if(target === 'headerFilter') {\n return ['InJurisdictionCountries',this.filterTypeOption, value]\n }\n return ['InJurisdictionCountries', this.filterTypeOption, value];\n }\n\n private modifiedFilters(data: any): void {\n data.dataSource.postProcess = (results: any) => { \n return results.map(function(r: any) { \n if(r.value === true) {\n return {key: true, value: true, text: 'Yes'};\n }\n else if(r.value === false) {\n return {key: false, value: false, text: 'No'}; \n }\n }); \n }\n }\n\n private filingTypesFilterExpression(value: string, selectedFilterOperations: string, target: string): string[] { \n return ['FilingTypesNamesString', 'contains', value];\n }\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-agents-fee-sheets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-agents-fee-sheets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-agents-fee-sheets.vue?vue&type=template&id=5edb1017&scoped=true&\"\nimport script from \"./client-agents-fee-sheets.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-agents-fee-sheets.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./client-agents-fee-sheets.vue?vue&type=style&index=0&id=5edb1017&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5edb1017\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Breadcrumbs, PageTitle } from '@questelservices/common-vue';\nimport ClientAgentsFeeSheets from '../components/fee-sheets/client-agents-fee-sheets.vue';\n\n@Component({\n components: {\n Breadcrumbs,\n PageTitle,\n ClientAgentsFeeSheets\n }\n})\nexport default class FeeSheets extends Vue {}\n","export enum AnalysisReportPrintDataOptionsType {\n DoNotPrint,\n SingleLineItem,\n EntirePhase,\n EntireCase\n}\n\nexport enum AnalysisReportPrintDataOptionsTypeStrings {\n DoNotPrint = 'Do Not Print',\n SingleLineItem = 'Single Line Item Only',\n EntirePhase = 'Entire Phase Data',\n EntireCase = 'Entire Case Data'\n}","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheets.vue?vue&type=template&id=d6eb0b80&\"\nimport script from \"./fee-sheets.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheets.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('div',{staticClass:\"topFixedPanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[_c('div',{staticClass:\"matter-work-flex-container\"},[_c('page-title',{staticStyle:{\"margin\":\"0px\",\"width\":\"87%\"}},[(!_vm.selectedMatter)?_c('div',[_vm._v(\"Phase Assignment\")]):_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.selectedMatter.ClientMatterId)+\"\\n   \\n \"+_vm._s(_vm.selectedMatter.CountryCode)+\"\\n   \\n \"+_vm._s(_vm.selectedMatter.ClientName)+\"\\n \")]),_c('div',[(_vm.selectedMatter && _vm.filingTypes.length > 0 && _vm.gridRefresher)?_c('filing-type',{attrs:{\"filingTypes\":_vm.filingTypes,\"matter\":_vm.selectedMatter},on:{\"update\":_vm.changeFiling}}):_vm._e()],1)])]),_c('div',{staticClass:\"order-setup\"},[_c('dx-button',{attrs:{\"id\":\"selectColumns\",\"icon\":\"columnchooser\",\"hint\":\"Select Columns\"},on:{\"click\":_vm.selectColumns}}),_c('dx-button',{attrs:{\"id\":\"orderSetup\",\"icon\":\"preferences\",\"hint\":\"Page Setup\"},on:{\"click\":function($event){return _vm.openSetupDialog()}}}),_c('order-setup-dialog',{attrs:{\"showDialog\":_vm.showingSetupDialog},on:{\"hiding\":function($event){return _vm.hidingDialog()},\"case-display-order-saved\":_vm.caseDisplayOrderUpdated,\"on-auto-skip-changed\":_vm.onAutoSkipChanged}})],1)],1),(_vm.selectedMatter || !_vm.gridRefresher)?_c('div',{class:{\"empty-panel-effect\": !_vm.gridRefresher},staticStyle:{\"border-style\":\"solid\",\"border-width\":\"1px\",\"height\":\"134px\"}},[(_vm.selectedMatter && _vm.gridRefresher)?_c('matter-totals',{attrs:{\"matter\":_vm.selectedMatter,\"phaseTypes\":_vm.phaseTypes,\"feeSheetRules\":_vm.feeSheetRules,\"feeBudgetRules\":_vm.feeBudgetRules,\"latestBatchIds\":_vm.batchIdsOfCurrentBatch}}):_vm._e()],1):_vm._e()]),_c('div',{staticClass:\"middlePanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[_c('div',{staticClass:\"matter-work-flex-container\",class:{\"empty-panel-padding\": !_vm.gridRefresher}},[(_vm.selectedMatter || !_vm.gridRefresher)?_c('div',{class:{\"empty-panel-effect\": !_vm.gridRefresher},staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('matter-work-line-items',{ref:\"matterWorkLineItems\",attrs:{\"matterIdSelected\":_vm.selectedMatterId,\"selectedMatter\":_vm.selectedMatter,\"clientId\":_vm.getClientId,\"filingType\":_vm.selectedFilingType,\"phaseTypes\":_vm.phaseTypes,\"latestBatchIds\":_vm.batchIdsOfCurrentBatch},on:{\"update:line-items\":_vm.lineItemsLoaded,\"assign-phase\":_vm.assignPhaseToSelection,\"dialog-state-changed\":_vm.matterWorkLineItemsDialogStateChanged,\"set-exempt-row\":_vm.setExemptRowToSelection}}),_c('div',{staticClass:\"bottomFixedPanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen },attrs:{\"id\":\"phase-btns\"}},[_vm._l((_vm.phaseTypes),function(phase){return _c('dx-button',{key:phase.PhaseTypeId,staticClass:\"phase-btn\",style:('--phase-color: ' + phase.RgbHex + '; background-color: var(--phase-color);'),attrs:{\"width\":100,\"type\":\"default\",\"text\":phase.PhaseName,\"hint\":phase.PhaseName},on:{\"click\":function($event){return _vm.assignPhaseToSelection(phase.PhaseTypeId)}}})}),_c('dx-button',{staticClass:\"phase-btn\",style:('background-color: white;'),attrs:{\"width\":100,\"type\":\"default\",\"text\":\"Clear Phase\",\"hint\":\"Clear Phase\"},on:{\"click\":function($event){return _vm.assignPhaseToSelection(null)}}})],2)],1):_c('div',[_c('dx-load-indicator')],1)])])]),_c('div',{staticClass:\"matter-work-navigation-container\"},[_c('matter-work-navigator',{ref:\"matterWorkNavigation\",attrs:{\"phaseTypes\":_vm.phaseTypes,\"isAutoSkip\":_vm.isAutoSkip,\"pageType\":_vm.pageType,\"userReviewedMode\":_vm.userReviewedMode,\"matterWorkId\":_vm.matterWorkId},on:{\"confirmAll\":_vm.confirmAllMatters}})],1),_c('dx-popup',{staticClass:\"releaseCompletedMatters\",attrs:{\"title\":\"Release Completed Matters\",\"width\":\"100%\",\"max-width\":\"500\",\"drag-enabled\":true,\"height\":\"auto\",\"close-on-outside-click\":false,\"visible\":_vm.showingReleaseMatters},on:{\"update:visible\":function($event){_vm.showingReleaseMatters=$event}}},[_c('p',[_vm._v(\"Claimed set is complete. Select Release Claim\\n to remove this from your claimed list.\\n Otherwise, continue reviewing and release it\\n later on the claim screen.\")]),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"text\":\"Continue Reviewing\"},on:{\"click\":function($event){return _vm.closeReleaseMatters()}}}),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"text\":\"Release Claim\"},on:{\"click\":function($event){return _vm.releaseMatters()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"matter-work-line-items\"},[_c('data-grid',{ref:\"manualCodingDataGrid\",attrs:{\"custom-store-options\":_vm.dataGridCustomStoreOption,\"selection\":{ mode: 'multiple' },\"rowAlternationEnabled\":false,\"paging\":{ enabled: false, pageSize: 50, rowRenderingMode: 'virtual' },\"scrolling\":{ mode: 'infinite' },\"showFilterRow\":false,\"cache-enabled\":false,\"column-auto-width\":true,\"height\":\"100%\"},on:{\"cell-hover-changed\":_vm.cellHoverChanged,\"context-menu-preparing\":_vm.prepareContextMenu,\"content-ready\":_vm.onContentReady,\"cell-prepared\":_vm.onCellPrepared,\"cell-dbl-click\":_vm.onCellDoubleClick},scopedSlots:_vm._u([{key:\"badgesTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"badges\"}},[_c('div',{staticClass:\"infraction-option\",attrs:{\"id\":_vm.getIdForPopover(data)},on:{\"mouseenter\":function($event){return _vm.showPopOver(data)},\"mouseleave\":_vm.hidePopover}},[_c('dx-button',{class:_vm.getInfractionClass(data.data),attrs:{\"type\":\"normal\",\"icon\":\"warning\"},on:{\"click\":function($event){return _vm.openInfractionForm(data)}}})],1),_c('div',[_c('dx-button',{class:_vm.getNotesClass(data.data),attrs:{\"type\":\"normal\",\"icon\":\"comment\"},on:{\"click\":function($event){return _vm.openNotesForm(data.data)}}})],1)])}},{key:\"contextMenuItem\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"context-menu-item\",style:({ 'background-color': data.rgbHex })},[_c('span',{style:({ 'color': data.textColor })},[_vm._v(_vm._s(data.text))])])]}}])},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"storage\"}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\",\"refreshMode\":\"repaint\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"BatchName\",\"caption\":\"Batch\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"width\":10,\"min-width\":10,\"data-field\":\"LastAssignedBy\",\"caption\":\"User Set\",\"data-type\":\"string\",\"cell-template\":_vm.lastAssignedByTemplate}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"AssignedPhaseName\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"width\":70,\"min-width\":10,\"data-field\":\"AssignedPhaseProbability\",\"data-type\":\"number\",\"format\":{ type: 'percent', precision: 2 }}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"cell-template\":_vm.servTemplate,\"min-width\":10,\"width\":\"auto\",\"data-field\":\"ServiceDate\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"cell-template\":_vm.servTemplate,\"min-width\":10,\"data-field\":\"InvoiceDate\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"AgentName\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"cell-template\":_vm.amountTemplate,\"data-field\":\"LineItemTotal\",\"allow-editing\":false,\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"PhaseCode\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"UTBMS\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"FeeType\",\"min-width\":10}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.feeTypes,\"display-expr\":\"text\",\"value-expr\":\"value\"}})],1),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"InvoiceNumber\",\"data-type\":\"string\",\"cell-template\":_vm.invTemplate,\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"Description\",\"width\":82,\"data-type\":\"string\",\"min-width\":10,\"cell-template\":_vm.descTemplate,\"css-class\":\"word-wrap\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"TimekeeperName\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"LineItemUnitCost\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"LineItemNumberOfUnits\",\"data-type\":\"string\",\"min-width\":10}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"min-width\":10,\"width\":82,\"cell-template\":\"badgesTemplate\",\"cssClass\":\"badge-cell\"}}),_c('dx-column-chooser',{attrs:{\"enabled\":true,\"mode\":\"dragAndDrop\"}})],1),_c('phase-assignment-notes',{attrs:{\"showNotes\":_vm.showingNotes,\"lineItemId\":_vm.notesLineItem.InvoiceLineItemId,\"filingType\":_vm.filingType,\"loadingAutoTextData\":_vm.loadingAutoTextData},on:{\"hiding\":_vm.hidingNotes,\"process-auto-text\":_vm.onProcessAutoText}}),_c('phase-assignment-infractions',{attrs:{\"showDialog\":_vm.showingInfractions,\"lineItem\":_vm.hoveredLineItem,\"infractionTypes\":_vm.infractionTypes,\"phaseColor\":_vm.hoveredRowPhaseColor},on:{\"hiding\":_vm.hidingInfractions}}),_c('phase-assignment-infractions-popover',{attrs:{\"popoverTarget\":_vm.popoverTarget,\"lineItem\":_vm.hoveredLineItem,\"infractionTypes\":_vm.infractionTypes,\"phaseColor\":_vm.hoveredRowPhaseColor,\"popoverVisible\":_vm.popoverVis},on:{\"hidingPopover\":_vm.hidingPopover,\"update:popoverVisible\":function($event){_vm.popoverVis=$event},\"update:popover-visible\":function($event){_vm.popoverVis=$event}}}),_c('agent-info-edit',{attrs:{\"showDialog\":_vm.showingAgentInfo,\"clientAgentInfoDto\":_vm.clientAgentInfo},on:{\"hiding\":_vm.hidingAgentInfo}}),_c('phase-history',{attrs:{\"line-item\":_vm.phaseHistoryLineItemId,\"visible\":_vm.showingPhaseHistory},on:{\"update:visible\":function($event){_vm.showingPhaseHistory=$event},\"hiding\":_vm.hidingPhaseHistory}}),_c('update-line-items-country',{ref:\"updateLineItemsCountry\",attrs:{\"showDialog\":_vm.showingUpdateCountry,\"selectedRows\":_vm.selectedLineItems,\"oldCountryCode\":_vm.selectedMatter.CountryCode},on:{\"hiding\":_vm.hidingUpdateCountry}}),_c('update-line-items-matter-name',{ref:\"updateLineItemsMatterName\",attrs:{\"showDialog\":_vm.showingUpdateMatterName,\"selectedRows\":_vm.selectedLineItems,\"clientId\":_vm.selectedMatter.ClientId,\"currentMatter\":_vm.selectedMatter},on:{\"hiding\":_vm.hidingUpdateMatterName}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{staticClass:\"phase-assignment-notes-popup\",attrs:{\"title\":\"Line Item Notes\",\"width\":\"100%\",\"max-width\":\"1500\",\"drag-enabled\":true,\"height\":\"auto\",\"close-on-outside-click\":false,\"visible\":_vm.showingNotes},on:{\"update:visible\":function($event){_vm.showingNotes=$event},\"shown\":_vm.cycleNotesItem,\"hidden\":_vm.onNotesHidden,\"save-shortcut-pressed\":_vm.saveNotes}},[_c('dx-responsive-box',{attrs:{\"screen-by-width\":_vm.screen,\"single-column-screen\":\"xs\"}},[_c('dx-row',{attrs:{\"ratio\":1}}),_c('dx-row',{attrs:{\"ratio\":1,\"screen\":\"xs\"}}),_c('dx-row',{attrs:{\"ratio\":1,\"screen\":\"xs\"}}),_c('dx-col',{attrs:{\"ratio\":1,\"screen\":\"xs\"}}),_c('dx-col',{attrs:{\"ratio\":1.5,\"screen\":\"sm\"}}),_c('dx-col',{attrs:{\"ratio\":1.5,\"screen\":\"sm\"}}),_c('dx-col',{attrs:{\"ratio\":1,\"screen\":\"sm\"}}),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"content-container content-notes\"},[_c('h3',[_vm._v(\"Internal Notes\")]),_c('div',[_c('dx-html-editor',{ref:\"privateNotesEditor\",attrs:{\"value\":_vm.privateNotes,\"value-type\":\"html\",\"height\":\"280\"},on:{\"update:value\":function($event){_vm.privateNotes=$event}}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1)],1)])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":0,\"col\":0}})],1),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"content-container content-notes\"},[_c('h3',{class:{ 'red-label': _vm.isNonPatentFilingType }},[_vm._v(_vm._s(_vm.reportLanguageLabel))]),_c('div',[_c('dx-html-editor',{ref:\"auditorNotesEditor\",attrs:{\"value\":_vm.auditorNotes,\"value-type\":\"html\",\"height\":\"280\"},on:{\"update:value\":function($event){_vm.auditorNotes=$event},\"value-changed\":_vm.onReportLanguageChanged,\"focus-out\":_vm.onReportLanguageFocusOut}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1)],1)])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":0,\"col\":1}})],1),_c('dx-item',{scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',{staticClass:\"content-container content-controls\"},[_c('h3',[_vm._v(\"Analysis Report Print Options\")]),_c('div',[_c('dx-radio-group',{ref:\"printOptionsRadio\",attrs:{\"items\":_vm.printOptionsStrings,\"value\":_vm.selectedPrintOption},on:{\"update:value\":function($event){_vm.selectedPrintOption=$event}}}),_c('dx-check-box',{attrs:{\"value\":_vm.markImportant,\"text\":\"Mark As Important\"},on:{\"update:value\":function($event){_vm.markImportant=$event}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.printComments,\"text\":\"Print Comments on Auditor's Report\"},on:{\"update:value\":function($event){_vm.printComments=$event}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":_vm.includeCharges,\"text\":\"Include Charges from all Agents\"},on:{\"update:value\":function($event){_vm.includeCharges=$event}}})],1),_c('div',{staticClass:\"auto-text dx-card\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"auto-text-content\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.textTemplateStore,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":false,\"popup-height\":400,\"value\":_vm.selectedText,\"placeholder\":\"Select existing text\",\"onSelectionChanged\":_vm.onSelectionChanged},on:{\"update:value\":function($event){_vm.selectedText=$event}}}),_c('dx-button',{attrs:{\"width\":\"100%\"},on:{\"click\":_vm.onNewEditAutoText}},[_vm._v(\"New/Edit Auto Text\")])],1)])])]},proxy:true}])},[_c('dx-location',{attrs:{\"row\":0,\"col\":2,\"screen\":\"sm\"}}),_c('dx-location',{attrs:{\"row\":1,\"col\":0,\"screen\":\"xs\"}})],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save Notes', type: 'default', stylingMode: 'contained', onClick: _vm.saveNotes },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingNotes },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.loadingAutoTextData},on:{\"update:visible\":function($event){_vm.loadingAutoTextData=$event}}}),_c('auto-text-dialog',{attrs:{\"availableAutoText\":_vm.availableAutoText,\"showDialog\":_vm.openAutoText},on:{\"hidingDialog\":_vm.onAutoTextHiding}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AnalysisReportPrintDataOptionsType } from './AnalysisReportPrintDataOptionsType';\n\nexport interface IManualCodeInvoiceLineItemNotesDto { \n InvoiceLineItemNotesId: Guid;\n InvoiceLineItemId: Guid;\n PrivateAuditorNotes: string;\n AuditorNotesReportLanguage: string;\n AnalysisReportPrintDataOptionsType: AnalysisReportPrintDataOptionsType;\n MarkImportant: boolean;\n PrintCommentsAuditorReport: boolean;\n IncludeAllAgentsCharges: boolean;\n PhaseHistory: string;\n}\n\nexport class ManualCodeInvoiceLineItemNotesDto implements IManualCodeInvoiceLineItemNotesDto {\n InvoiceLineItemNotesId = '00000000-0000-0000-0000-000000000000';\n InvoiceLineItemId = '';\n PrivateAuditorNotes = '';\n AuditorNotesReportLanguage = '';\n AnalysisReportPrintDataOptionsType = AnalysisReportPrintDataOptionsType.DoNotPrint;\n MarkImportant = false;\n PrintCommentsAuditorReport = true;\n IncludeAllAgentsCharges = false;\n PhaseHistory = ''; \n}\n","export enum KeyMap {\r\n tab = 9,\r\n enter = 13,\r\n space = 32,\r\n leftArrow = 37,\r\n upArrow = 38,\r\n rightArrow = 39,\r\n downArrow = 40,\r\n one = 49,\r\n numPadOne = 97,\r\n two = 50,\r\n numPadTwo = 98,\r\n three = 51,\r\n numPadThree = 99,\r\n four = 52,\r\n numPadFour = 100,\r\n five = 53,\r\n numPadFive = 101,\r\n six = 54,\r\n numPadSix = 102,\r\n seven = 55,\r\n numPadSeven = 103,\r\n eight = 56,\r\n numPadEight = 104,\r\n nine = 57,\r\n numPadNine = 105,\r\n fSlash = 191,\r\n numPadFSlash = 111,\r\n period = 190,\r\n numPadPeriod = 110,\r\n numPadPlus = 107,\r\n equals = 187,\r\n minus = 189,\r\n numPadMinus = 109,\r\n letterT = 84,\r\n ctrl = 17,\r\n numPadAsterisk = 106\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"width\":\"100%\",\"max-width\":\"1000\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Create New / Edit Existing Analysis Auto Text\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"hidden\":_vm.onHidden,\"showing\":_vm.onShowing,\"save-shortcut-pressed\":_vm.saveAutoText}},[_c('div',{staticClass:\"auto-text-flex-content\"},[_c('div',{staticClass:\"text-content\"},[_c('div',{staticClass:\"text-selection\"},[_c('dx-lookup',{ref:\"savedTextTemplateRef\",attrs:{\"data-source\":_vm.textTemplateStore,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"width\":400,\"popup-height\":500,\"onSelectionChanged\":_vm.onSelectionChanged,\"placeholder\":\"Select existing text\",\"value\":_vm.selectedText},on:{\"update:value\":function($event){_vm.selectedText=$event}}}),_c('div',{class:{favorite : _vm.autoTextTemplate.Favorite}},[_c('dx-button',{attrs:{\"icon\":\"favorites\",\"hint\":\"Favorite\",\"onClick\":_vm.onClickFavorite,\"hoverStateEnabled\":false,\"focusStateEnabled\":false,\"activeStateEnabled\":false}})],1)],1),_c('dx-html-editor',{ref:\"textAreaRef\",attrs:{\"value\":_vm.autoTextTemplate.Text,\"value-type\":\"html\",\"height\":\"280\",\"validation-message-mode\":\"always\"},on:{\"update:value\":function($event){return _vm.$set(_vm.autoTextTemplate, \"Text\", $event)}}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1),_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"This is required.\"}})],1)],1)],1),_c('div',{staticClass:\"auto-text-content\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Available Auto Texts\")]),_c('dx-list',{staticClass:\"list-of-auto-texts\",attrs:{\"dataSource\":_vm.allAvailableAutoText,\"height\":\"280\",\"selectionMode\":'single'},on:{\"selection-changed\":_vm.onAvailableAutoTextChanged}})],1)]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Edit Phase Verbs', type: 'normal', stylingMode: 'contained', onClick: _vm.onEditPhaseVerb},\"location\":\"before\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{ref:\"saveAsComponent\",attrs:{\"widget\":\"dxTextBox\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.saveAsOption}}),(_vm.saveOrUpdate == 'Update')?_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":{ text: 'New', type: 'normal', stylingMode: 'contained', onClick: _vm.forNew }}}):_vm._e(),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: _vm.saveOrUpdate, type: 'default', stylingMode: 'contained', onClick: _vm.forSave},\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('phase-verb-editor',{attrs:{\"visible\":_vm.showPhaseVerbEditor},on:{\"update:visible\":function($event){_vm.showPhaseVerbEditor=$event},\"hiding\":function($event){_vm.showPhaseVerbEditor = false}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"title\":\"Phase Verb Editor\",\"visible\":_vm.visible,\"width\":1000},on:{\"hiding\":_vm.onHiding,\"hidden\":_vm.onHidden}},[_c('dx-data-grid',{ref:_vm.dataGridRefKey,attrs:{\"allow-column-resizing\":true,\"data-source\":_vm.dataSource,\"height\":\"100%\",\"repaint-changes-only\":true},on:{\"row-updating\":_vm.onRowUpdating,\"toolbar-preparing\":_vm.onToolbarPreparing,\"editor-preparing\":_vm.onEditorPreparing}},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"batch\",\"refresh-mode\":\"repaint\"}}),_c('dx-paging',{attrs:{\"enabled\":false}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseName\",\"allow-editing\":false,\"width\":200}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseVerb\"}}),_c('dx-scrolling',{attrs:{\"mode\":\"virtual\"}})],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.saveButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.cancelButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport {\n DxColumn,\n DxDataGrid,\n DxEditing,\n DxPaging,\n DxScrolling\n} from 'devextreme-vue/data-grid';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport _ from 'lodash';\n\n@Component({\n components: {\n DxColumn,\n DxDataGrid,\n DxEditing,\n DxPaging,\n DxPopup,\n DxScrolling,\n DxToolbarItem\n }\n})\nexport default class PhaseVerbEditor extends Vue {\n private readonly phaseTypeService: PhaseTypeService = new PhaseTypeService();\n readonly dataGridRefKey: string = 'data-grid';\n\n @Prop({ required: true })\n visible!: boolean;\n\n created() {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n get dataGrid() {\n let dataGridRef = this.$refs[this.dataGridRefKey];\n if (dataGridRef != null) {\n return (dataGridRef as DxDataGrid).instance;\n }\n }\n\n get dataSource() {\n return new CustomStore({\n key: 'PhaseTypeId',\n loadMode: 'raw',\n load: () => this.phaseTypeService.getAll(),\n update: (key, values) => this.phaseTypeService.update(key, values)\n });\n }\n\n get saveButtonOptions() {\n return {\n text: 'Save',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.saveAndClose\n };\n }\n\n get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancelAndClose\n };\n }\n\n private hasEditData() {\n return this.dataGrid != null && this.dataGrid.hasEditData();\n }\n\n private saveEditData() {\n if (this.dataGrid != null) {\n this.dataGrid.saveEditData();\n }\n }\n\n private cancelEditData() {\n if (this.dataGrid != null) {\n this.dataGrid.cancelEditData();\n }\n }\n\n onToolbarPreparing(e: any) {\n e.toolbarOptions.visible = false;\n }\n\n onEditorPreparing(e: any) {\n if (e.parentType === 'dataRow' && e.dataField === 'PhaseVerb') {\n e.editorOptions.maxLength = 50;\n }\n }\n\n onRowUpdating(e: any) {\n e.newData = _.merge({}, e.oldData, e.newData);\n }\n\n saveAndClose() {\n this.save();\n this.close();\n }\n\n private save() {\n if (this.hasEditData()) {\n this.saveEditData();\n }\n }\n\n cancelAndClose() {\n this.cancel();\n this.close();\n }\n\n private cancel() {\n if (this.hasEditData()) {\n this.cancelEditData();\n }\n }\n\n onHiding() {\n this.close();\n }\n\n onHidden() {\n this.reset();\n }\n\n private reset() {\n this.cancel();\n }\n\n private close() {\n this.$emit('hiding');\n }\n\n private onKeydown(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private onKeyup(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.focusDataGrid();\n this.saveAndClose();\n }\n }\n\n private isSaveShortcut(e: KeyboardEvent) {\n return e.key === 'Enter' && (e.ctrlKey || e.shiftKey);\n }\n\n private focusDataGrid() {\n if (this.dataGrid != null) {\n this.dataGrid.focus();\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-verb-editor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-verb-editor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-verb-editor.vue?vue&type=template&id=012771f4&scoped=true&\"\nimport script from \"./phase-verb-editor.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-verb-editor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"012771f4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { Prop } from 'vue-property-decorator';\nimport { DxPopup, DxButton, DxSelectBox, DxTextArea, DxList, DxTextBox, DxLookup } from 'devextreme-vue';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { QuestelServicesClient } from '@questelservices/common/dist';\nimport { DxValidator, DxRequiredRule, DxStringLengthRule } from 'devextreme-vue/validator';\nimport { TextTemplateDto } from '@/models/TextTemplateDto';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport _ from 'lodash';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport Lookup from 'devextreme/ui/lookup';\nimport dxHtmlEditor from 'devextreme/ui/html_editor';\nimport dialog from 'devextreme/ui/dialog';\nimport PhaseVerbEditor from '@/components/phase-types/phase-verb-editor.vue';\nimport * as overlay from 'devextreme/ui/overlay';\n\nconst editorStatus = {\n valid : 'valid',\n invalid : 'invalid',\n pending : 'pending'\n}\n\nconst validationRule = {\n requiredError : {\n message : 'This is required.'\n },\n existError : {\n message : 'This already exists.'\n },\n noError : {}\n}\n\n@Component({\n components: {\n DxPopup,\n DxLookup,\n DxSelectBox,\n DxButton,\n DxTextArea,\n DxList,\n DxToolbarItem,\n DxTextBox,\n DxHtmlEditor,\n DxItem,\n DxToolbar,\n DxValidator,\n DxRequiredRule,\n DxStringLengthRule,\n PhaseVerbEditor\n }\n })\nexport default class AutoTextDialog extends Vue {\n $refs: Vue['$refs'] & {\n savedTextTemplateRef?: Lookup;\n textAreaRef?: DxHtmlEditor;\n saveAsComponent?: any;\n textBoxComponent?: any;\n } = {};\n\n @Prop()\n showDialog!: boolean;\n\n @Prop()\n availableAutoText! : Array;\n\n get showingDialog() : boolean {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hidingDialog\");\n }\n\n private get availablelAutoTextUrl(): string {\n return `/api/texttemplate/available-auto-texts`;\n }\n\n private get allAvailableAutoText() {\n return this.availableAutoText;\n } \n\n get htmlEditor() {\n return (this.$refs.textAreaRef as DxHtmlEditor).instance as dxHtmlEditor;\n }\n\n showPhaseVerbEditor: boolean = false;\n textTemplateService : TextTemplateService;\n selectedText: Guid = '';\n autoTextTemplate : TextTemplateDto;\n saveOrUpdate : string = \"Save\";\n\n private defaultValue(): TextTemplateDto{\n return {\n TextTemplateId : \"00000000-0000-0000-0000-000000000000\",\n Name: \"\",\n Text: \"\",\n Favorite: false\n }\n }\n\n onClickFavorite(e:any) {\n this.autoTextTemplate.Favorite = !this.autoTextTemplate.Favorite;\n }\n\n onEditPhaseVerb(e:any) {\n this.showPhaseVerbEditor = true\n }\n \n saveAsOption: any = this.textBoxOption();\n\n textBoxOption(valid: boolean = true, \n status: string = editorStatus.valid,\n error: any = validationRule.noError) {\n\n \n return {\n width: '200px',\n placeholder:'Save as',\n value: this.nameValue,\n validationStatus: status,\n validationError : error,\n onValueChanged: this.onInputChanged,\n onContentReady: this.textBoxReady,\n isValid : valid,\n maxLength: 50\n }\n }\n\n textBoxReady(e:any) {\n if(!this.saveAsComponent) {\n this.saveAsComponent = e.component;\n }\n }\n\n onNew() {\n this.saveOrUpdate = \"Save\";\n this.autoTextTemplate = this.defaultValue();\n this.selectedText = '';\n this.nameValue = '';\n this.saveAsOption = this.textBoxOption(false,editorStatus.invalid, validationRule.requiredError);\n }\n\n resetTextAreaValidation() {\n this.htmlEditor.option('validationStatus', 'valid');\n this.htmlEditor.option('validationError', undefined);\n this.htmlEditor.option('isValid', true);\n this.htmlEditor.setSelection(0, 0);\n this.htmlEditor.getQuillInstance().selection.setRange({index: 0, length: 0})\n }\n\n nameValue: string = '';\n saveAsComponent: any;\n onInputChanged(e:any ){\n this.nameValue = e.value;\n\n if(e.value){\n this.saveAsOption = this.textBoxOption();\n }\n else{\n this.saveAsOption = this.textBoxOption(false,editorStatus.invalid, validationRule.requiredError);\n }\n }\n\n onAvailableAutoTextChanged(e: any) {\n if (e.addedItems != null && e.addedItems.length > 0) {\n let index = this.htmlEditor.getQuillInstance().selection.savedRange.index;\n\n this.htmlEditor.insertText(index, e.addedItems[0], {});\n let newLength = index + e.addedItems[0].length;\n\n this.htmlEditor.setSelection(newLength, 0);\n e.component.instance().unselectAll();\n }\n }\n\n onSelectionChanged(e:any) {\n if(e.selectedItem) {\n this.autoTextTemplate.Text = e.selectedItem.Text;\n this.autoTextTemplate.Name = e.selectedItem.Name;\n this.nameValue = e.selectedItem.Name;\n this.autoTextTemplate.Favorite = e.selectedItem.Favorite;\n this.autoTextTemplate.TextTemplateId = e.selectedItem.TextTemplateId;\n this.saveOrUpdate = \"Update\";\n this.saveAsOption =this.textBoxOption(true, editorStatus.valid, validationRule.noError);\n this.saveAsOption.value = e.selectedItem.Name;\n\n this.htmlEditor.option(\"value\", e.selectedItem.Text);\n let length = this.htmlEditor.getLength();\n this.htmlEditor.getQuillInstance().selection.setRange({ index: length, length: 0 });\n }\n\n if(!this.selectedText) {\n this.onNew();\n }\n\n }\n\n textTemplateStore: CustomStore;\n \n templateStore() {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.AutoText)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n });\n }\n\n constructor() {\n super(); \n this.textTemplateService = new TextTemplateService();\n this.autoTextTemplate = this.defaultValue();\n this.saveAsOption = this.textBoxOption();\n this.textTemplateStore = this.templateStore();\n overlay.baseZIndex(2000);\n }\n\n clearAll() {\n this.selectedText = '';\n this.autoTextTemplate = this.defaultValue();\n this.nameValue = '';\n this.htmlEditor.reset();\n }\n\n onHidden(e:any) {\n this.clearAll();\n this.saveAsOption = this.textBoxOption();\n this.resetTextAreaValidation();\n }\n\n onShowing(e:any) {\n this.textTemplateStore = this.templateStore();\n }\n\n async forSave(evnt: any) {\n this.saveAutoText(false);\n }\n\n async forNew(evnt: any) {\n this.saveAutoText(true);\n }\n\n async saveAutoText(isForNew: boolean) {\n var isValid = true;\n if(!this.nameValue && !this.autoTextTemplate.Name){\n this.saveAsOption = this.textBoxOption(false,editorStatus.invalid, validationRule.requiredError);\n isValid = false;\n }\n if(!this.autoTextTemplate.Text) {\n isValid = false;\n }\n\n if (this.htmlEditor.option('isValid') === false) {\n isValid = false;\n }\n\n if(isValid) {\n let result = await dialog.confirm(\"Are you sure?\", \"Confirm Changes\");\n if(result) {\n this.autoTextTemplate.TextTemplateTypeId = TextTemplateTypeEnum.AutoText;\n let payload = _.clone(this.autoTextTemplate);\n if(isForNew) {\n payload.TextTemplateId = this.defaultValue().TextTemplateId;\n }\n\n this.saveAsOption = this.textBoxOption(true,editorStatus.pending);\n if(this.nameValue !== payload.Name || isForNew) {\n payload.Name = this.nameValue;\n\n this.textTemplateService.checkIfExists(payload.Name, payload.TextTemplateTypeId)\n .then(result => {\n if (result.Data === true) {\n this.saveAsOption = this.textBoxOption(false, editorStatus.invalid, validationRule.existError);\n } else {\n this.toSave(payload);\n }\n })\n .catch(reason => {\n dialog.alert('An error occurred saving the auto text. Please try again.', 'Error');\n });\n }\n else {\n this.toSave(payload);\n }\n }\n }\n\n \n }\n\n toSave(payload: any) {\n if(payload.TextTemplateId === this.defaultValue().TextTemplateId){\n this.textTemplateService.insertTextTemplate(payload)\n .then(result => {\n this.showingDialog = false;\n })\n .catch(error => {\n\n }); \n }\n else {\n this.textTemplateService.updateTextTemplate(payload)\n .then(result => {\n this.showingDialog = false;\n })\n .catch(error => {\n\n });\n }\n }\n\n hidingDialog() {\n this.showingDialog = false;\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auto-text-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auto-text-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./auto-text-dialog.vue?vue&type=template&id=09c18504&scoped=true&\"\nimport script from \"./auto-text-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./auto-text-dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./auto-text-dialog.vue?vue&type=style&index=0&id=09c18504&prod&lang=scss&scoped=true&\"\nimport style1 from \"./auto-text-dialog.vue?vue&type=style&index=1&id=09c18504&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09c18504\",\n null\n \n)\n\nexport default component.exports","export default class Html {\n public static removeTags(value?: string) {\n if (value == null || value.length === 0) {\n return '';\n }\n\n return value.replace(/(<([^>]+)>)/ig, '');\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '../../store';\nimport { DxButton, DxTextArea, DxRadioGroup, DxCheckBox, DxLookup } from 'devextreme-vue';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport CustomStore from 'devextreme/data/custom_store';\nimport CommonModule, { QuestelServicesClient } from '@questelservices/common';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { ManualCodeInvoiceLineItemNotesDto } from '@/models/ManualCodeInvoiceLineItemNotesDto';\nimport { AnalysisReportPrintDataOptionsType, AnalysisReportPrintDataOptionsTypeStrings } from '@/models/AnalysisReportPrintDataOptionsType';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxResponsiveBox, DxLocation, DxCol, DxRow } from 'devextreme-vue/responsive-box';\nimport { KeyMap } from '@/models/KeyMap';\nimport { FilingTypeDto } from '../../models/FilingTypeDto';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport AutoTextDialog from \"./auto-text-dialog.vue\"\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport _ from \"lodash\";\nimport Html from '@/utilities/Html';\nimport * as overlay from 'devextreme/ui/overlay';\n\nconst commonState = getModule(CommonModule, store);\n\n@Component({\n components: {\n DxButton,\n DxTextArea,\n DxRadioGroup,\n DxCheckBox,\n DxHtmlEditor,\n DxToolbar,\n DxItem,\n DxToolbarItem,\n DxResponsiveBox,\n DxLocation,\n DxCol,\n DxRow,\n Popup,\n DxLoadPanel,\n DxSelectBox,\n DxLookup,\n AutoTextDialog\n }\n})\nexport default class PhaseAssignmentNotes extends Vue { \n$refs: Vue['$refs'] & { \n privateNotesEditor?: DxHtmlEditor;\n auditorNotesEditor?: DxHtmlEditor;\n printOptionsRadio?: DxRadioGroup;\n markImportant?: DxCheckBox;\n printComments?: DxCheckBox;\n includeCharges?: DxCheckBox; \n} = {};\n\n @Prop({ default: false })\n showNotes!: boolean;\n\n @Prop() \n lineItemId!: string;\n\n @Prop()\n filingType!: FilingTypeDto;\n\n @Prop({ default: false })\n loadingAutoTextData!: boolean;\n\n client: QuestelServicesClient;\n\n selectedText: Guid = '';\n notes: string = \"\"; \n openAutoText: boolean = false;\n\n get showingNotes() {\n return this.showNotes;\n }\n\n set showingNotes(value) {\n this.$emit(\"hiding\");\n }\n\n screen(width: number) {\n if(width < 640)\n return 'xs';\n else \n return 'sm';\n }\n \n value: string = this.lineItemId;\n notesLoaded: boolean = false; \n reportLanguageInitialized: boolean = false;\n private printOptionsStrings: string[] = [\n 'Do Not Print',\n 'Single Line Item Only',\n 'Entire Phase Data',\n 'Entire Case Data'\n ];\n availableAutoText: Array = [];\n \n privateNotes: string;\n auditorNotes: string;\n private selectedPrintOption: string = '';\n markImportant: boolean;\n printComments: boolean;\n includeCharges: boolean; \n phaseHistory: string;\n\n selectedNotesItem: number = -1;\n selectedPrintItem: number = -1;\n textTemplateService: TextTemplateService;\n\n private get lineItemNotesUrl(): string {\n return `/api/manualcoding/${this.lineItemId}/lineItemNotes`;\n }\n\n private modifyNotesUrl: string = \"/api/manualcoding/modifynotes\";\n\n get reportLanguageLabel(): string {\n return `Report Language${this.isNonPatentFilingType ? ` (${this.filingType.Name})` : ''}`;\n }\n\n get isNonPatentFilingType() {\n return this.filingType != null && (this.filingType.FilingTypeId == null || this.filingType.FilingTypeId !== 0);\n }\n\n get privateNotesInstance() {\n return (this.$refs.privateNotesEditor as any).instance as any;\n }\n get auditorNotesInstance() {\n return (this.$refs.auditorNotesEditor as any).instance as any;\n }\n\n get auditorNotesData(): string {\n return this.auditorNotes;\n }\n\n get privateNotesData(): string {\n return this.privateNotes;\n }\n\n @Watch(\"showNotes\")\n private async onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n await this.loadNotes();\n }\n }\n\n created() {\n document.addEventListener('keyup', this.onKeyup);\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup);\n }\n\n onKeyup(event: KeyboardEvent) {\n switch (event.keyCode) {\n case KeyMap.tab:\n this.cycleNotesItem();\n break;\n case KeyMap.upArrow:\n this.cyclePrintOption(-1);\n break;\n case KeyMap.downArrow:\n this.cyclePrintOption(1);\n break;\n }\n }\n\n constructor() { \n super(); \n this.client = new QuestelServicesClient(this.$store, '');\n this.notesLoaded = false; \n\n this.textTemplateService = new TextTemplateService();\n this.privateNotes = \"\";\n this.auditorNotes = \"\"; \n this.markImportant = false;\n this.printComments = false;\n this.includeCharges = false; \n this.phaseHistory = \"\";\n \n this.textTemplateStore = this.defaultTextStore(); \n overlay.baseZIndex(1500); \n }\n\n private onReportLanguageChanged(e: any): void {\n // if no change then just exit function\n if(e.value === null && e.previousValue === '') {\n return;\n } \n\n // If option is 'Do Not Print' then you type into report Language\n // change option to 'Enthire Phase Data'. Don't let blanks/spaces\n // trigger change\n var auditorTrim = Html.removeTags(e.value).trim();\n if(auditorTrim.length > 0 \n && this.selectedPrintOption === AnalysisReportPrintDataOptionsTypeStrings.DoNotPrint\n && this.reportLanguageInitialized) { \n this.selectedPrintOption = AnalysisReportPrintDataOptionsTypeStrings.EntirePhase;\n }\n\n this.reportLanguageInitialized = true;\n }\n\n private onReportLanguageFocusOut(e: any): void {\n // If option is other than 'Do Not Print' and no data in\n // report language, then change option to 'Do Not Print'\n var auditorTrim = Html.removeTags(this.auditorNotesData).trim();\n if(auditorTrim.length === 0\n && this.selectedPrintOption !== AnalysisReportPrintDataOptionsTypeStrings.DoNotPrint) { \n this.selectedPrintOption = AnalysisReportPrintDataOptionsTypeStrings.DoNotPrint;\n }\n }\n\n onSelectionChanged(e:any) {\n if(e.selectedItem) {\n let text =e.selectedItem.Text;\n let autoTextContained : string[] = [];\n\n this.availableAutoText.forEach(item => {\n if(_.includes(text, item)) {\n autoTextContained.push(item);\n }\n });\n \n this.$emit('process-auto-text', autoTextContained, text, (result : string) => {\n this.auditorNotes = result;\n });\n }\n \n }\n onNewEditAutoText(e:any) {\n this.openAutoText = true;\n }\n\n onAutoTextHiding(e:any){\n this.openAutoText = false;\n this.textTemplateStore = this.defaultTextStore();\n }\n\n private onNotesHidden(e: any) {\n this.selectedNotesItem = -1;\n this.auditorNotesInstance.reset();\n this.auditorNotesInstance.clearHistory();\n this.privateNotesInstance.reset();\n this.privateNotesInstance.clearHistory();\n this.selectedText = \"\";\n }\n\n private async loadNotes() { \n const result = await this.client.getJson(this.lineItemNotesUrl);\n\n if(!result.Data) {\n throw result;\n }\n \n this.privateNotes = result.Data.PrivateAuditorNotes;\n this.auditorNotes = result.Data.AuditorNotesReportLanguage;\n this.reportLanguageInitialized = this.auditorNotes === '' ? true : false;\n this.selectedPrintOption = this.printOptionsStrings[result.Data.AnalysisReportPrintDataOptionsType];\n this.selectedPrintItem = result.Data.AnalysisReportPrintDataOptionsType; \n\n this.markImportant = result.Data.MarkImportant;\n this.printComments = result.Data.PrintCommentsAuditorReport;\n this.includeCharges = result.Data.IncludeAllAgentsCharges;\n this.phaseHistory = result.Data.PhaseHistory; \n this.notesLoaded = true; \n }\n\n private saveNotes() { \n let invoiceLineItemNotesDto = new ManualCodeInvoiceLineItemNotesDto();\n invoiceLineItemNotesDto.InvoiceLineItemId = this.lineItemId;\n \n invoiceLineItemNotesDto.PrivateAuditorNotes = this.privateNotesData;\n invoiceLineItemNotesDto.AuditorNotesReportLanguage = this.auditorNotesData;\n \n switch (this.selectedPrintOption) {\n case AnalysisReportPrintDataOptionsTypeStrings.DoNotPrint:\n invoiceLineItemNotesDto.AnalysisReportPrintDataOptionsType = AnalysisReportPrintDataOptionsType.DoNotPrint;\n break;\n case AnalysisReportPrintDataOptionsTypeStrings.SingleLineItem:\n invoiceLineItemNotesDto.AnalysisReportPrintDataOptionsType = AnalysisReportPrintDataOptionsType.SingleLineItem;\n break;\n case AnalysisReportPrintDataOptionsTypeStrings.EntirePhase:\n invoiceLineItemNotesDto.AnalysisReportPrintDataOptionsType = AnalysisReportPrintDataOptionsType.EntirePhase;\n break;\n case AnalysisReportPrintDataOptionsTypeStrings.EntireCase:\n invoiceLineItemNotesDto.AnalysisReportPrintDataOptionsType = AnalysisReportPrintDataOptionsType.EntireCase;\n break;\n }\n\n invoiceLineItemNotesDto.MarkImportant = this.markImportant;\n invoiceLineItemNotesDto.PrintCommentsAuditorReport = this.printComments;\n invoiceLineItemNotesDto.IncludeAllAgentsCharges = this.includeCharges;\n invoiceLineItemNotesDto.PhaseHistory = this.phaseHistory; \n \n this.client.postJson(this.modifyNotesUrl, invoiceLineItemNotesDto).then(x=>{\n this.$root.$emit('updatenavmatters', null);\n });\n\n this.hidingNotes();\n }\n\n hidingNotes() {\n this.selectedNotesItem = -1;\n this.showingNotes = false;\n this.selectedText = '';\n }\n\n textTemplateStore: CustomStore ;\n \n defaultTextStore() {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.AutoText)\n .then((results : any) => {\n return results;\n }\n \n )\n .catch(err=> []);\n }\n });\n }\n\n cycleNotesItem() { \n switch(this.selectedNotesItem) {\n case -1: \n this.privateNotesInstance.setSelection(0,0);\n this.selectedNotesItem = 0; \n break;\n\n case 0: \n this.privateNotesInstance.undo();\n this.auditorNotesInstance.setSelection(0,0);\n this.selectedNotesItem = 1; \n break;\n\n case 1: \n this.auditorNotesInstance.undo(); \n (this.$refs.printOptionsRadio as any).instance.focus();\n this.selectedNotesItem = 2; \n break; \n } \n }\n\n cyclePrintOption(value: number) { \n this.selectedPrintItem += value; \n\n if(this.selectedPrintItem < 0) {\n this.selectedPrintItem = 0;\n }\n\n if(this.selectedPrintItem > 6) {\n this.selectedPrintItem = 6;\n } \n\n switch(this.selectedPrintItem) { \n case 3: \n if(value == -1) { \n if(this.$refs.auditorNotesEditor) { \n (this.$refs.printOptionsRadio as any).instance.focus(); \n } \n this.selectedPrintItem = 0;\n }\n break; \n case 4:\n if(this.$refs.markImportant) {\n (this.$refs.markImportant as any).instance.focus();\n } \n break;\n case 5: \n if(this.$refs.printComments) {\n (this.$refs.printComments as any).instance.focus(); \n } \n break;\n case 6:\n if(this.$refs.includeCharges) {\n (this.$refs.includeCharges as any).instance.focus(); \n } \n break;\n }\n } \n\n async mounted() { \n this.availableAutoText = await this.textTemplateService.getAvailableAutoText(TextTemplateTypeEnum.AutoText);\n } \n}\n","export enum ExecutiveSummaryRequestEnum {\n PhaseAnalysisItem,\n Infraction,\n All\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-notes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-notes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-assignment-notes.vue?vue&type=template&id=dfb915b6&\"\nimport script from \"./phase-assignment-notes.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-assignment-notes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-assignment-notes.vue?vue&type=style&index=0&id=dfb915b6&prod&lang=scss&\"\nimport style1 from \"./phase-assignment-notes.vue?vue&type=style&index=1&id=dfb915b6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":500,\"height\":\"auto\",\"show-title\":true,\"title\":\"Infraction Notification\",\"drag-enabled\":false,\"close-on-outside-click\":true,\"on-shown\":_vm.onPopupShown,\"on-hiding\":_vm.onPopupHiding,\"on-hidden\":_vm.onPopupHidden,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.save}},[_c('div',{attrs:{\"id\":\"infractionDialog\"}},[_c('div',{staticClass:\"new-infraction-popup\"},[_c('div',{staticClass:\"new-infraction-headers\"},[_c('dx-button',{attrs:{\"hint\":\"Add\",\"icon\":\"add\",\"focusStateEnabled\":false,\"disabled\":_vm.list.length > 0},on:{\"click\":_vm.addInfraction}}),_c('div',{staticClass:\"display\"},[_vm._v(\"Create New Infraction\")])],1)]),_c('div',{staticClass:\"add-infractions\"},[_c('div',{staticClass:\"to-be-added\"},[_c('form',{ref:\"addInfractionForm\"},[_c('ul',_vm._l((_vm.list),function(element,index){return _c('li',{key:index,staticClass:\"list-group-item\"},[_c('dx-text-box',{attrs:{\"value\":element.Name,\"placeholder\":\"TAG Name\"},on:{\"update:value\":function($event){return _vm.$set(element, \"Name\", $event)}}},[_c('dx-validator',[_c('dx-required-rule',{attrs:{\"message\":\"TAG is required!\"}}),_c('dx-custom-rule',{attrs:{\"validation-callback\":_vm.duplicationValidation,\"message\":\"Duplication of TAG\"}})],1)],1),_c('dx-button',{attrs:{\"hint\":\"Remove\",\"icon\":\"close\"},on:{\"click\":function($event){return _vm.removeAt(index)}}})],1)}),0)])])]),_c('hr'),_c('div',{staticClass:\"infraction-title-popup\"},[_c('div',[_vm._v(\"List of Infractions\")])]),_c('div',{staticClass:\"confirm-infraction\"},[_c('div',{staticClass:\"infraction-header\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Infraction Name\")]),_c('div',{staticClass:\"dx-field-label confirm\"},[_vm._v(\"Confirm\")])]),_c('div',{staticClass:\"infraction-list\"},[_c('dx-scroll-view',{ref:\"infractionListScrollPopup\",style:('--hoveredColor: ' + _vm.phaseColor + ';'),attrs:{\"show-scrollbar\":'onHover',\"scrollByContent\":true,\"scrollByThumb\":true,\"direction\":\"vertical\"},on:{\"initialized\":_vm.scrollViewInit}},[_c('div',{staticClass:\"has-content\"},[_c('dx-list',{ref:\"listPopup\",staticClass:\"list-of-infractions\",attrs:{\"items\":_vm.infractionTypesListSource,\"allow-item-deleting\":false,\"show-selection-controls\":false,\"selection-mode\":\"multiple\",\"itemTemplate\":\"item\",\"selected-items\":_vm.selectedInfraction,\"onSelectionChanged\":_vm.listSelectionChanged},on:{\"update:selectedItems\":function($event){_vm.selectedInfraction=$event},\"update:selected-items\":function($event){_vm.selectedInfraction=$event},\"content-ready\":_vm.onContentReady},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar data = ref.data;\nvar index = ref.index;\nreturn [_c('div',{class:_vm.isSelectedInfractionClass(data.IsConfirmed)},[_c('div',{staticClass:\"infraction-name\"},[_vm._v(_vm._s(data.Name))]),_c('dx-check-box',{attrs:{\"onValueChanged\":_vm.onSelectedValueChanged,\"onInitialized\":_vm.onCheckBoxContentReady},model:{value:(data.IsConfirmed),callback:function ($$v) {_vm.$set(data, \"IsConfirmed\", $$v)},expression:\"data.IsConfirmed\"}})],1)]}}])})],1)])],1)])]),_c('dx-load-panel',{attrs:{\"position\":_vm.loadPanelPosition,\"show-indicator\":true,\"visible\":_vm.loadingVisible,\"show-pane\":true,\"shading\":true,\"message\":\"Loading data...\",\"close-on-outside-click\":false,\"shading-color\":\"rgb(150, 150, 150,0.4)\"},on:{\"update:visible\":function($event){_vm.loadingVisible=$event}}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save Changes', type: 'default', stylingMode: 'contained', onClick: _vm.save, useSubmitBehavior: true },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingInfractions },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { DxButton, DxTextBox, DxCheckBox, DxAutocomplete, DxSelectBox } from 'devextreme-vue';\nimport DxToolbar, { DxItem } from 'devextreme-vue/toolbar';\nimport { Prop } from 'vue-property-decorator';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { InfractionDto } from '../../models/infractions/InfractionDto';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { InfractionModel } from '../../models/infractions/InfractionModel';\nimport { InfractionService } from '@/service/InfractionService';\nimport DxValidator, { DxRequiredRule, DxCustomRule } from 'devextreme-vue/validator';\nimport _ from 'lodash';\nimport CustomStore from 'devextreme/data/custom_store';\nimport ScrollView from 'devextreme/ui/scroll_view';\nimport CheckBox from 'devextreme/ui/check_box';\nimport DxList from 'devextreme-vue/list';\nimport List from 'devextreme/ui/list';\nimport { Popup } from '@questelservices/common-vue';\nimport { ManualCodeInvoiceLineItemDto } from '../../models/ManualCodeInvoiceLineItemDto';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\n\n@Component({\n components: {\n DxButton,\n DxItem,\n DxList,\n DxScrollView,\n DxTextBox,\n DxValidator,\n DxRequiredRule,\n DxLoadPanel,\n DxCheckBox,\n DxAutocomplete,\n DxToolbar,\n DxToolbarItem,\n DxCustomRule,\n DxSelectBox,\n Popup\n }\n })\n export default class PhaseAssignmentInfractionsDialog extends Vue {\n $refs: Vue['$refs'] & {\n listPopup?: List;\n } = {};\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n @Prop({ required: true }) \n lineItem!: ManualCodeInvoiceLineItemDto;\n \n @Prop({ required: true })\n infractionTypes!: InfractionTypeDto[];\n\n @Prop({ default: 'rgb(240, 240, 240)' })\n phaseColor!: string;\n\n get showingDialog(): boolean {\n return this.showDialog;\n }\n\n set showingDialog(value: boolean) {\n this.hidingInfractions(true);\n }\n\n private get infractionForm(): any {\n return this.$refs['addInfractionForm'];\n }\n\n private get listPopupRef(): any {\n return ((this.$refs.listPopup as List).instance as any);\n }\n\n @Watch('showDialog')\n onPropertyChanged(value: boolean, oldValue: boolean) {\n if (value) {\n\n } else {\n this.list = [];\n }\n }\n\n loadPanelPosition = { of : '#infractionDialog' };\n loadingVisible: boolean = false;\n list: InfractionTypeDto[] = [];\n infractionService: InfractionService;\n infractionTypesListSource: InfractionTypeDto[] = [];\n\n constructor() {\n super();\n this.infractionService = new InfractionService();\n }\n\n selectedInfraction: any[] = [];\n infractionListScroll?: any = undefined;\n\n getInfractionListSource(): InfractionTypeDto[] {\n let infractions = _.cloneDeep(this.infractionTypes);\n for (let lineItemInfraction of this.lineItem.Infractions) {\n let infraction = infractions.find(i => i.InfractionTypeId === lineItemInfraction.InfractionTypeId);\n if (infraction) {\n infraction.IsConfirmed = lineItemInfraction.IsConfirmed;\n }\n }\n\n let selected = infractions.find(i => i.IsConfirmed);\n if (selected) {\n this.selectedInfraction.push(selected);\n }\n\n return infractions;\n }\n\n handleScrollingToSelectedInfraction(): void {\n let selectedElement = document.getElementsByClassName('selected-infraction-popup')[0];\n if (selectedElement) {\n selectedElement.scrollIntoView(true);\n }\n }\n\n isSelectedInfractionClass(isConfirmed: boolean) {\n let deft = 'dx-template-wrapper dx-item-content dx-list-item-content';\n return isConfirmed ? 'selected-infraction-popup ' + deft : deft;\n }\n\n selectionOfInfraction(e: any): void {\n let elem = e.component;\n let items = elem.option().items;\n let isConfirmed = _.find(items, item => item.IsConfirmed);\n\n if (isConfirmed) {\n this.selectedInfraction = [];\n this.selectedInfraction.push(isConfirmed);\n }\n\n elem.option('selectedItems', this.selectedInfraction);\n }\n\n onContentReady(e: any): void {\n this.selectionOfInfraction(e);\n this.handleScrollingToSelectedInfraction();\n }\n\n scrollViewInit(e: any): void {\n this.infractionListScroll = e.component; \n }\n\n listSelectionChanged(e: any): void {\n let removeItem = e.removedItems ? e.removedItems[0] : undefined;\n let addedItem = e.addedItems ? e.addedItems[0] : undefined;\n let items = e.component.option().items;\n\n if (removeItem) {\n removeItem.IsConfirmed = false;\n }\n\n if (addedItem) {\n this.selectedInfraction = [];\n let prevSelected = _.find(items, item => item.IsConfirmed);\n let currenctSelected = _.find(items, item => item.InfractionTypeId === addedItem.InfractionTypeId);\n\n if (prevSelected) {\n prevSelected.IsConfirmed = false;\n }\n if (currenctSelected) {\n currenctSelected.IsConfirmed = true;\n }\n \n this.selectedInfraction.push(currenctSelected);\n }\n\n this.handleScrollingToSelectedInfraction();\n }\n\n checkBoxComponent: any[] = [];\n onCheckBoxContentReady(e: any): void {\n this.checkBoxComponent.push(e.component);\n }\n \n onSelectedValueChanged(data: any): void {\n let a = data;\n let fond = _.find(this.checkBoxComponent, (item: any) => item === data.component);\n\n if (data.value) {\n let excludedElement = [];\n excludedElement.push(fond);\n\n let toUncheck = _.difference(this.checkBoxComponent, excludedElement);\n toUncheck.forEach((item: CheckBox) => {\n item.option('value', false);\n });\n }\n }\n \n private addInfraction(): void {\n let newInfraction: InfractionTypeDto = {\n InfractionTypeId: undefined,\n Name: '',\n IsConfirmed: true\n };\n\n this.list.push(newInfraction);\n }\n\n private removeAt(index: number): void {\n this.list.splice(index, 1);\n }\n\n private hidingInfractions(isCancelled: boolean = true, lineItem?: ManualCodeInvoiceLineItemDto, reloadInfractionTypes: boolean = false): void {\n this.$emit('hiding', { isCancelled, lineItem, reloadInfractionTypes });\n }\n\n private save() {\n if (this.checkHasError()) {\n return;\n }\n\n if (this.list.length > 0) {\n if (_.find(this.list, item => item.Name === '')) {\n return;\n }\n }\n\n if (this.list.length > 0) {\n this.addInfractions(this.lineItem.InvoiceLineItemId).then(response => {\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.Infraction);\n this.hidingInfractions(false, response, true);\n }).catch(err => {});\n } else {\n this.confirmInfractions(this.lineItem.InvoiceLineItemId).then(response => {\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.Infraction);\n this.hidingInfractions(false, response);\n }).catch(err => {});\n }\n }\n\n private async confirmInfractions(lineItemId: Guid): Promise {\n let payload = '00000000-0000-0000-0000-000000000000';\n if (this.selectedInfraction && this.selectedInfraction.length > 0) {\n payload = this.selectedInfraction[0].InfractionTypeId;\n }\n\n return await this.infractionService.ConfirmInfractions(lineItemId, payload);\n }\n\n private async addInfractions(lineItemId: Guid): Promise {\n return await this.infractionService.AddInfraction(lineItemId, this.list); \n }\n\n onPopupShown(e: any): void {\n this.loadingVisible = true;\n this.infractionTypesListSource = this.getInfractionListSource();\n this.loadingVisible = false;\n }\n\n onPopupHiding(e: any): void {\n this.hidingInfractions(true);\n this.loadingVisible = false;\n }\n\n onPopupHidden(e: any): void {\n this.selectedInfraction = [];\n this.infractionTypesListSource = [];\n }\n\n private checkHasError(): boolean {\n return this.checkDuplication();\n }\n\n private checkDuplication(): boolean {\n if (this.list.length > 0) {\n let elem = _.find(this.infractionTypesListSource, t => t.Name.toLowerCase().trim() === this.list[0].Name.toLowerCase().trim());\n if (elem) {\n return true;\n }\n }\n\n return false;\n }\n\n duplicationValidation(e: any): boolean {\n if (e.value.trim() !== '') {\n let elem = _.find(this.infractionTypesListSource, t => t.Name.toLowerCase().trim() === e.value.toLowerCase().trim());\n if (elem) {\n return false;\n }\n }\n\n return true;\n } \n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infractions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infractions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-assignment-infractions.vue?vue&type=template&id=53ed9690&scoped=true&\"\nimport script from \"./phase-assignment-infractions.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-assignment-infractions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-assignment-infractions.vue?vue&type=style&index=0&id=53ed9690&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53ed9690\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popover',{ref:\"dxPopover\",staticClass:\"infraction-popover\",attrs:{\"id\":\"dxPopover\",\"width\":300,\"position\":\"left\",\"target\":_vm.popoverTargetGet,\"defer-rendering\":true,\"title\":\"Infraction notifications\",\"show-title\":true,\"showCloseButton\":true,\"closeOnOutsideClick\":true,\"hoverStateEnabled\":true,\"visible\":_vm.popoverVisibleTemp},on:{\"showing\":_vm.showingPopover,\"hidden\":_vm.hiddenPopover,\"hiding\":_vm.hidPopover,\"shown\":_vm.initFunc,\"update:visible\":function($event){_vm.popoverVisibleTemp=$event}}},[_c('div',{staticClass:\"content\"},[(_vm.listOfInfractionsPerLineItem.length > 0)?_c('div',[_c('div',{staticClass:\"infraction-header\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Infraction Name\")]),_c('div',{staticClass:\"dx-field-label confirm\"},[_vm._v(\"Confirm\")])]),_c('div',{staticClass:\"has-content\"},[_c('dx-scroll-view',{ref:\"infractionListScroll\",style:('--hoveredColor: ' + _vm.phaseColor + ';'),attrs:{\"id\":\"infractionScrollview\",\"show-scrollbar\":'onHover',\"scrollByContent\":true,\"scrollByThumb\":true,\"direction\":\"vertical\"}},[_c('dx-list',{ref:\"dxListOfInfraction\",staticClass:\"list-of-infractions\",attrs:{\"items\":_vm.listOfInfractionsPerLineItem,\"allow-item-deleting\":false,\"show-selection-controls\":false,\"selection-mode\":\"multiple\",\"itemTemplate\":\"item\",\"selected-items\":_vm.selectedInfraction,\"onSelectionChanged\":_vm.listSelectionChanged},on:{\"update:selectedItems\":function($event){_vm.selectedInfraction=$event},\"update:selected-items\":function($event){_vm.selectedInfraction=$event},\"content-ready\":_vm.onContentReady},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar data = ref.data;\nvar index = ref.index;\nreturn [_c('div',{class:_vm.isSelectedInfractionClass(data.IsConfirmed)},[_c('div',{staticClass:\"infraction-name\"},[_vm._v(_vm._s(data.Name))]),_c('dx-check-box',{attrs:{\"onValueChanged\":_vm.onSelectedValueChanged,\"value\":data.IsConfirmed,\"onInitialized\":_vm.onCheckBoxContentReady},on:{\"update:value\":function($event){return _vm.$set(data, \"IsConfirmed\", $event)}}})],1)]}}],null,false,1801420880)})],1)],1),_c('div',{staticClass:\"options\"},[_c('div',{attrs:{\"align\":\"center\",\"id\":\"infraction-info-popover\"}}),_c('div',{staticClass:\"btn-options\"},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Confirm', type: 'default', stylingMode: 'contained', onClick: _vm.saveConfirm },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingPopover },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { DxButton, DxTextBox,DxCheckBox } from 'devextreme-vue';\nimport CheckBox from 'devextreme/ui/check_box';\nimport { Prop } from 'vue-property-decorator';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport DxPopover, { DxToolbarItem } from 'devextreme-vue/popover';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { InfractionDto } from '../../models/infractions/InfractionDto';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { InfractionModel } from '../../models/infractions/InfractionModel';\nimport {InfractionCacheModel } from '../../models/infractions/InfractionCacheModel';\nimport { InfractionService } from '@/service/InfractionService';\nimport DxToolbar, { DxItem } from 'devextreme-vue/toolbar';\nimport DxList from 'devextreme-vue/list';\nimport _ from 'lodash';\nimport { ManualCodeInvoiceLineItemDto } from '../../models/ManualCodeInvoiceLineItemDto';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\n\n@Component({\n components: {\n DxButton,\n DxPopover,\n DxScrollView,\n DxTextBox,\n DxLoadPanel,\n DxCheckBox,\n DxToolbar,\n DxItem,\n DxList\n }\n })\n export default class PhaseAssignmentInfractionsPopover extends Vue {\n @Prop({ default: false })\n popoverVisible!: boolean;\n\n get popoverVis(): boolean {\n return this.popoverVisible;\n }\n\n set popoverVis(value: boolean) {\n this.$emit('update:popoverVisible', value);\n }\n\n popoverVisibleTemp: boolean = false;\n\n @Watch('popoverVisible')\n onPropertyChanged(value: boolean, oldValue: boolean) {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n\n if (this.debounceTime) {\n clearTimeout(this.debounceTime);\n this.debounceTime = undefined;\n }\n\n if (!value) {\n this.debounceTime = setTimeout(this.handlePopoverHidingTimeout, 500);\n } else {\n this.popoverVisibleTemp = true;\n\n let comp = this.dxPopover;\n this.initFunc(comp);\n }\n }\n\n @Prop({ default: '' })\n popoverTarget!: string;\n\n get popoverTargetGet(): string {\n return this.popoverTarget;\n }\n\n @Prop({ required: true })\n lineItem!: ManualCodeInvoiceLineItemDto;\n\n @Prop({ required: true })\n infractionTypes!: InfractionTypeDto[];\n\n @Prop({ default: 'rgb(240, 240, 240)' })\n phaseColor!: string;\n\n private get dxPopover(): any {\n return ((this.$refs['dxPopover'] as any).instance as any);\n }\n\n private get dxListOfInfractions(): any {\n return (this.$refs['dxListOfInfraction'] as DxList).instance;\n }\n\n updated(): void {\n this.$nextTick(function() {\n this.handleScrollingToSelectedInfraction();\n });\n }\n \n active: boolean = false;\n debounceTime: number | undefined;\n listOfInfractionsPerLineItem: InfractionTypeDto[] = [];\n infractionService: InfractionService;\n infractionInfo: string = '';\n thisComponentHovered!: boolean;\n cacheData: InfractionCacheModel[] = [];\n\n constructor() {\n super();\n this.infractionService = new InfractionService();\n this.$root.$on('remove-popover-cache', this.handleRemoveCacheEventBus);\n }\n\n beforeDestroy() {\n this.$root.$off('remove-popover-cache', this.handleRemoveCacheEventBus);\n }\n\n handleScrollingToSelectedInfraction(): void {\n let selectedElement = document.getElementsByClassName('selected-infraction-popover')[0];\n if (selectedElement) {\n selectedElement.scrollIntoView(true);\n }\n }\n\n handleRemoveCacheEventBus(): void {\n this.removeCacheBasedFromSelectedLineId();\n }\n\n isSelectedInfractionClass(isConfirmed: boolean): string {\n let deft = 'dx-template-wrapper dx-item-content dx-list-item-content';\n return isConfirmed ? 'selected-infraction-popover ' + deft : deft;\n }\n\n initFunc(component: any): void {\n let popOverComponent = component;\n\n if (popOverComponent._$element) {\n let elem = popOverComponent._$element[0];\n\n if (elem && elem.children) {\n let setEventElem = elem.children[0];\n\n if (setEventElem) {\n if (!setEventElem.onmouseenter) {\n setEventElem.onmouseenter = this.mouseOver;\n }\n if (!setEventElem.onmouseleave) {\n setEventElem.onmouseleave = this.mouseLeft;\n }\n }\n \n }\n }\n }\n\n checkBoxComponent: any[] = [];\n onCheckBoxContentReady(e: any): void {\n this.checkBoxComponent.push(e.component);\n }\n \n onSelectedValueChanged(data: any): void {\n let a = data;\n let fond = _.find(this.checkBoxComponent, (item: any) => item === data.component);\n\n if (data.value) {\n let excludedElement = [];\n excludedElement.push(fond);\n\n let toUncheck = _.difference(this.checkBoxComponent, excludedElement);\n toUncheck.forEach((item: CheckBox) => {\n item.option('value', false);\n });\n }\n }\n\n selectedInfraction: any[] = [];\n\n selectionOfInfraction(e: any): void {\n let elem = e.component;\n let items = elem.option().items;\n let isConfirmed = _.find(items, item => item.IsConfirmed);\n\n if (isConfirmed) {\n this.selectedInfraction = [];\n this.selectedInfraction.push(isConfirmed);\n }\n\n elem.option('selectedItems', this.selectedInfraction);\n }\n\n listSelectionChanged(e: any): void {\n let removeItem = e.removedItems ? e.removedItems[0] : undefined;\n let addedItem = e.addedItems ? e.addedItems[0] : undefined;\n let items = e.component.option().items;\n\n if (removeItem) {\n removeItem.IsConfirmed = false;\n }\n\n if (addedItem) {\n this.selectedInfraction = [];\n let prevSelected = _.find(items, item => item.IsConfirmed);\n let currenctSelected = _.find(items, item => item.InfractionTypeId == addedItem.InfractionTypeId);\n\n if (prevSelected) {\n prevSelected.IsConfirmed = false;\n }\n\n if (currenctSelected) {\n currenctSelected.IsConfirmed = true;\n }\n \n this.selectedInfraction.push(currenctSelected);\n }\n\n this.handleScrollingToSelectedInfraction();\n }\n\n onContentReady(e: any): void {\n this.selectionOfInfraction(e);\n }\n\n private hideTimeout: number | undefined;\n\n mouseLeft(): void {\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n }\n\n this.hideTimeout = setTimeout(() => {\n this.listOfInfractionsPerLineItem = [];\n this.hidingPopover();\n }, 2000);\n }\n\n mouseOver(): void {\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n\n this.thisComponentHovered = true;\n }\n\n handlePopoverHidingTimeout(): void {\n if (!this.thisComponentHovered) {\n this.hidingPopover();\n } else {\n this.popoverVisibleTemp = true;\n }\n }\n\n hiddenPopover(e: any) {\n this.listOfInfractionsPerLineItem = [];\n // this.hidingPopover();\n }\n\n hidPopover(e: any) {\n this.hidingPopover();\n }\n\n showingPopover(e: any): void {\n this.checkBoxComponent = [];\n this.listOfInfractionsPerLineItem = [];\n\n let infractions = _.cloneDeep(this.lineItem.Infractions);\n if (!infractions.length) {\n infractions = _.cloneDeep(this.infractionTypes);\n }\n\n this.listOfInfractionsPerLineItem = infractions;\n }\n\n private removeCacheBasedFromSelectedLineId(): void {\n if (this.cacheData) {\n _.remove(this.cacheData, data => data.key === this.lineItem.InvoiceLineItemId);\n }\n }\n\n private saveConfirm(): void {\n let lineItemId = this.lineItem.InvoiceLineItemId;\n let payload = '00000000-0000-0000-0000-000000000000';\n\n if (this.selectedInfraction && this.selectedInfraction.length > 0) {\n payload = this.selectedInfraction[0].InfractionTypeId;\n }\n\n this.infractionService.ConfirmInfractions(lineItemId, payload)\n .then(response => {\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.Infraction);\n this.hidingPopover(false, response);\n })\n .catch(err => {});\n }\n\n hidingPopover(isCancelled: boolean = true, lineItem?: ManualCodeInvoiceLineItemDto): void {\n this.thisComponentHovered = false;\n this.popoverVisibleTemp = false;\n this.popoverVis = false;\n this.checkBoxComponent = [];\n this.$emit('hidingPopover', { isCancelled, lineItem });\n }\n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infraction-popover.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment-infraction-popover.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-assignment-infraction-popover.vue?vue&type=template&id=52833e89&\"\nimport script from \"./phase-assignment-infraction-popover.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-assignment-infraction-popover.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-assignment-infraction-popover.vue?vue&type=style&index=0&id=52833e89&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"title\":\"Phase History\",\"visible\":_vm.visible,\"height\":600,\"width\":400,\"max-height\":\"95%\"},on:{\"hiding\":_vm.onHiding}},[_c('dx-data-grid',{attrs:{\"allow-column-resizing\":true,\"data-source\":_vm.dataSource,\"height\":\"100%\",\"word-wrap-enabled\":true},on:{\"cell-prepared\":_vm.onCellPrepared,\"row-prepared\":_vm.onRowPrepared},scopedSlots:_vm._u([{key:\"phase-set-by-cell-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',[_vm._v(_vm._s(_vm._f(\"initials\")(data.data.PhaseSetBy)))])]}}])},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"PhaseHistoryDataGrid\"}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseName\"}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseSetBy\",\"caption\":\"User Set\",\"width\":70,\"cell-template\":\"phase-set-by-cell-template\"}}),_c('dx-column',{attrs:{\"data-field\":\"DateChanged\",\"data-type\":\"date\",\"format\":\"M/d/yyyy h:mm a\",\"caption\":\"Date\"}})],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.closeButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport DataSource from 'devextreme/data/data_source';\nimport {\n DxColumn,\n DxDataGrid,\n DxPaging,\n DxScrolling,\n DxStateStoring\n} from 'devextreme-vue/data-grid';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport String from '@/utilities/String';\n\n@Component({\n components: {\n DxColumn,\n DxDataGrid,\n DxPaging,\n DxPopup,\n DxScrolling,\n DxStateStoring,\n DxToolbarItem\n }\n})\nexport default class PhaseHistory extends Vue {\n private readonly client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n\n @Prop({ required: true })\n visible!: boolean;\n\n @Prop({ required: true })\n lineItem!: Guid;\n\n @Watch('lineItem')\n async onLineItemChanged() {\n await this.dataSource.reload();\n }\n\n get dataSource() {\n return new DataSource({\n key: 'InvoiceLineItemPhaseSettingId',\n loadMode: 'raw',\n load: () => {\n if (String.isNullOrEmpty(this.lineItem)) {\n return [];\n }\n\n return this.client.get(`/api/InvoiceLineItems/${this.lineItem}/phase-settings`);\n }\n });\n }\n\n get closeButtonOptions() {\n return {\n text: 'Close',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.close\n };\n }\n\n onCellPrepared(e: any) {\n if (e.rowType === 'data' && e.column.dataField === 'PhaseSetBy') {\n e.cellElement.title = e.text;\n }\n }\n\n onRowPrepared(e: any) {\n if (e.rowType === 'data') {\n e.rowElement.style['background-color'] = e.data.PhaseRgbHex;\n }\n }\n\n onHiding() {\n this.close();\n }\n\n close() {\n this.$emit('hiding');\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-history.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-history.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-history.vue?vue&type=template&id=61acd3ee&\"\nimport script from \"./phase-history.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-history.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Change Selected Rows Country\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave}},[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',[_c('h4',[_vm._v(\"Country\")]),_c('dx-lookup',{attrs:{\"dataSource\":_vm.countriesDataSource,\"show-selection-controls\":true,\"search-enabled\":true,\"searchMode\":\"contains\",\"stylingMode\":\"outlined\",\"showClearButton\":true,\"search-expr\":\"text\",\"value-expr\":\"value\",\"display-expr\":\"text\",\"value\":_vm.selectedCountryId},on:{\"update:value\":function($event){_vm.selectedCountryId=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-load-indicator',{attrs:{\"id\":\"load-indicator\",\"height\":40,\"width\":40,\"visible\":_vm.updatingCountryCode}})],1)]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingUpdate },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { HttpMethodEnum, QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { InvoiceLineItemUpdateCountryDto } from '@/models/InvoiceLineItemUpdateCountryDto';\nimport { InvoiceLineItemUpdateMatterNameDto } from '@/models/InvoiceLineItemUpdateMatterNameDto';\nimport { InvoiceLineItemApplyExchangeRateDto } from '@/models/invoice/InvoiceLineItemApplyExchangeRateDto';\nimport { InvoiceLineItemBulkApplyExchangeRateDto } from '@/models/invoice/InvoiceLineItemBulkApplyExchangeRateDto';\nimport { InvoiceLineItemBulkOperationResponseDto } from '@/models/invoice/InvoiceLineItemBulkOperationResponseDto';\nimport { InvoiceLineItemBulkUpdateInvoiceDateDto } from '@/models/invoice/InvoiceLineItemBulkUpdateInvoiceDateDto';\nimport { InvoiceLineItemBulkUpdateInvoiceNumberDto } from '@/models/invoice/InvoiceLineItemBulkUpdateInvoiceNumberDto';\nimport { InvoiceLineItemUpdateInvoiceDateDto } from '@/models/invoice/InvoiceLineItemUpdateInvoiceDateDto';\nimport { InvoiceLineItemUpdateInvoiceNumberDto } from '@/models/invoice/InvoiceLineItemUpdateInvoiceNumberDto';\nimport { InvoiceLineItemUpdateTotalDto } from '@/models/invoice/InvoiceLineItemUpdateTotalDto';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\n\nexport class InvoiceLineItemService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/InvoiceLineItems');\n }\n\n public async updateLineItemCountryCodes(updateCountryDto: InvoiceLineItemUpdateCountryDto) {\n return await this.client.postJson('/update-country-code', updateCountryDto);\n }\n\n public async updateLineItemMatterName(updateMatterNameDto: InvoiceLineItemUpdateMatterNameDto) {\n return await this.client.postJson('/update-matter-name', updateMatterNameDto);\n }\n\n public async updateInvoiceDate(id: Guid, dto: InvoiceLineItemUpdateInvoiceDateDto): Promise {\n return await this.client.getData(HttpMethodEnum.Patch, `/${id}/invoice-date`, dto);\n }\n\n public async updateInvoiceNumber(id: Guid, dto: InvoiceLineItemUpdateInvoiceNumberDto): Promise {\n return await this.client.getData(HttpMethodEnum.Patch, `/${id}/invoice-number`, dto);\n }\n\n public async updateLineItemTotal(id: Guid, dto: InvoiceLineItemUpdateTotalDto): Promise {\n return await this.client.getData(HttpMethodEnum.Patch, `/${id}/line-item-total`, dto);\n }\n\n public async applyExchangeRate(id: Guid, dto: InvoiceLineItemApplyExchangeRateDto): Promise {\n return await this.client.getData(HttpMethodEnum.Patch, `/${id}/exchange-rate`, dto);\n }\n\n public async bulkUpdateInvoiceDate(dto: InvoiceLineItemBulkUpdateInvoiceDateDto): Promise {\n return await this.client.getPostData('/invoice-date', dto);\n }\n\n public async bulkUpdateInvoiceNumber(dto: InvoiceLineItemBulkUpdateInvoiceNumberDto): Promise {\n return await this.client.getPostData('/invoice-number', dto);\n }\n\n public async bulkApplyExchangeRate(dto: InvoiceLineItemBulkApplyExchangeRateDto): Promise {\n return await this.client.getPostData('/exchange-rate', dto);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxButton, DxTextBox, DxLookup, DxList } from 'devextreme-vue';\nimport { DxValidator, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxScrollView } from 'devextreme-vue/scroll-view'; \nimport { DxLoadIndicator } from 'devextreme-vue/load-indicator';\nimport { CountryService } from '@/service/CountryService';\nimport { InvoiceLineItemService } from '@/service/InvoiceLineItemService';\nimport { SelectOption } from '@/models/SelectOption';\nimport { Prop } from 'vue-property-decorator';\nimport { confirm } from 'devextreme/ui/dialog'; \nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport _ from 'lodash';\nimport { InvoiceLineItemUpdateCountryDto } from '@/models/InvoiceLineItemUpdateCountryDto';\nimport * as overlay from 'devextreme/ui/overlay';\n\n@Component({\n components: {\n DxButton, \n Popup, \n DxTextBox, \n DxToolbarItem,\n DxLookup, \n DxList, \n DxValidator,\n DxCustomRule,\n DxScrollView, \n DxValidationGroup,\n DxRequiredRule,\n DxLoadIndicator\n }\n})\nexport default class UpdateLineItemsCountry extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n popup?: Popup;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n @Prop()\n oldCountryCode!: string;\n\n @Prop()\n selectedRows!: ManualCodeInvoiceLineItemDto[];\n\n countriesDataSource: SelectOption[] = []; \n \n updatingCountryCode: boolean = false;\n selectedCountryId: number = 0; \n selectedCountryCode: string = \"\"; \n selectedRowsCount: number = 0;\n selectedRowsIds: Array = []; \n lineItemService: InvoiceLineItemService;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hiding\", this.selectedRowsIds, this.selectedCountryCode);\n }\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n this.selectedRowsCount = this.selectedRows.length;\n this.validationGroup.reset();\n } \n } \n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n \n constructor() {\n super(); \n this.lineItemService = new InvoiceLineItemService(); \n overlay.baseZIndex(2000); \n this.loadData(); \n \n } \n\n async loadData() { \n let countryService = new CountryService();\n this.countriesDataSource = await countryService.getAllSelectOptions(false); \n } \n\n hidingUpdate() {\n this.showingDialog = false; \n }\n\n async confirmSave() {\n if (this.updatingCountryCode) {\n return;\n }\n\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n } \n\n var selectedCountryOption = this.countriesDataSource.filter(c => c.value == this.selectedCountryId)[0]; \n\n if (this.oldCountryCode == selectedCountryOption.text) {\n this.hidingUpdate();\n return;\n }\n\n let dialogText: string = `Are you sure you want to update the country from ${this.oldCountryCode} \n to ${selectedCountryOption.text} for the ${this.selectedRowsCount} selected row(s)?`\n\n var dialogResult = confirm(dialogText, \"Update Country\");\n dialogResult\n .then(dialogResult => {\n if(dialogResult) {\n this.selectedCountryCode = selectedCountryOption.text;\n this.selectedRowsIds = this.selectedRows.map(li => li.InvoiceLineItemId);\n let updateDto: InvoiceLineItemUpdateCountryDto = {\n InvoiceLineItemIds: this.selectedRowsIds,\n CountryId: this.selectedCountryId\n };\n\n this.updatingCountryCode = true;\n this.lineItemService.updateLineItemCountryCodes(updateDto)\n .then(_ => {\n this.hidingUpdate(); \n })\n .finally( () => {\n this.updatingCountryCode = false;\n }); \n } \n }); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-country.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-country.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./update-line-items-country.vue?vue&type=template&id=0c25dcaf&scoped=true&\"\nimport script from \"./update-line-items-country.vue?vue&type=script&lang=ts&\"\nexport * from \"./update-line-items-country.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./update-line-items-country.vue?vue&type=style&index=0&id=0c25dcaf&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c25dcaf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Change Selected Rows Matter Name\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave}},[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',[_c('h4',[_vm._v(\"Matter Name\")]),_c('dx-select-box',{ref:\"matterNameSelectBox\",attrs:{\"accept-custom-value\":true,\"dataSource\":_vm.matterNamesDataSource,\"search-enabled\":true,\"searchMode\":\"contains\",\"stylingMode\":\"outlined\",\"showClearButton\":true,\"search-expr\":\"MatterName\",\"display-expr\":_vm.getMatterDisplay,\"value\":_vm.selectedMatter},on:{\"update:value\":function($event){_vm.selectedMatter=$event},\"customItemCreating\":_vm.createCustomMatter}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-load-indicator',{attrs:{\"id\":\"load-indicator\",\"height\":40,\"width\":40,\"visible\":_vm.updatingMatterName}})],1)]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingUpdate },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxButton, DxTextBox, DxLookup, DxList, DxSelectBox } from 'devextreme-vue';\nimport { DxLoadIndicator } from 'devextreme-vue/load-indicator';\nimport { DxValidator, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxScrollView } from 'devextreme-vue/scroll-view'; \nimport { ClientService } from '@/service/ClientService';\nimport { InvoiceLineItemService } from '@/service/InvoiceLineItemService';\nimport { SelectOption } from '@/models/SelectOption';\nimport { Prop } from 'vue-property-decorator';\nimport { confirm } from 'devextreme/ui/dialog'; \nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport _ from 'lodash';\nimport { InvoiceLineItemUpdateCountryDto } from '@/models/InvoiceLineItemUpdateCountryDto';\nimport * as overlay from 'devextreme/ui/overlay';\nimport { MatterDto } from '@/models/matter/MatterDto';\nimport { InvoiceLineItemUpdateMatterNameDto } from '@/models/InvoiceLineItemUpdateMatterNameDto';\nimport DataSource from 'devextreme/data/data_source';\n\n@Component({\n components: {\n DxButton, \n Popup, \n DxTextBox, \n DxToolbarItem,\n DxLookup, \n DxList, \n DxSelectBox,\n DxValidator,\n DxCustomRule,\n DxScrollView, \n DxValidationGroup,\n DxRequiredRule,\n DxLoadIndicator\n }\n})\nexport default class UpdateLineItemsMatterName extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n popup?: Popup;\n matterNameSelectBox?: DxSelectBox;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n @Prop()\n clientId!: Guid;\n\n @Prop()\n selectedRows!: ManualCodeInvoiceLineItemDto[];\n\n @Prop()\n currentMatter!: MatterDto;\n\n matters: MatterDto[] = [];\n\n get mattersDataSource() {\n return this.matters;\n }\n\n matterNamesDataSource: DataSource = new DataSource({}); \n\n updatingMatterName: boolean = false; \n selectedMatter: any = null;\n selectedRowsCount: number = 0;\n selectedRowsIds: Array = []; \n lineItemService: InvoiceLineItemService;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hiding\", this.selectedRowsIds, this.selectedMatter);\n }\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n this.selectedRowsCount = this.selectedRows.length;\n this.validationGroup.reset();\n this.loadData();\n } \n } \n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n \n constructor() {\n super(); \n this.lineItemService = new InvoiceLineItemService();\n overlay.baseZIndex(2000); \n this.loadData(); \n \n } \n\n async loadData() { \n let clientService = new ClientService();\n this.matters = await clientService.getMatters(this.clientId);\n this.matterNamesDataSource = new DataSource({\n key: ['MatterName', 'CountryId'],\n store: {\n type: 'array',\n data: this.mattersDataSource\n },\n paginate: true,\n pageSize: 10\n }); \n }\n\n hidingUpdate() {\n this.showingDialog = false; \n }\n\n createCustomMatter(e: any) { \n if(!this.matters.some(m => m == e.text)) { \n let matter: MatterDto = {\n MatterId: '',\n ClientId: this.clientId,\n CountryId: this.currentMatter.CountryId,\n CountryCode: this.currentMatter.CountryCode,\n MatterName: e.text,\n FilingTypeId: 1\n };\n e.customItem = matter;\n this.matters.push(matter);\n this.selectedMatter = matter;\n } \n }\n\n getMatterDisplay(item: any) {\n let result = '';\n if (item && item.MatterName) {\n result = `${item.MatterName}, CountryCode: ${item.CountryCode}`;\n } \n\n return result;\n }\n\n async confirmSave() { \n if (this.updatingMatterName) {\n return;\n }\n\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n } \n \n let oldMatter = this.matters.filter(m => m.MatterId == this.currentMatter.MatterId)[0]; \n if (this.currentMatter.MatterId == this.selectedMatter.MatterId) {\n this.hidingUpdate();\n return;\n }\n\n let dialogText: string = `Are you sure you want to update the matter name from ${oldMatter.MatterName} \n to ${this.selectedMatter.MatterName} for the ${this.selectedRowsCount} selected row(s)?`\n\n var dialogResult = confirm(dialogText, \"Update Matter Name\");\n dialogResult\n .then(dialogResult => {\n if(dialogResult) { \n this.selectedRowsIds = this.selectedRows.map(li => li.InvoiceLineItemId);\n let updateDto: InvoiceLineItemUpdateMatterNameDto = {\n InvoiceLineItemIds: this.selectedRowsIds,\n MatterName: this.selectedMatter.MatterName,\n CountryId: this.selectedMatter.CountryId\n };\n\n this.updatingMatterName = true;\n this.lineItemService.updateLineItemMatterName(updateDto)\n .then(_ => { \n this.hidingUpdate(); \n })\n .finally( () => {\n this.updatingMatterName = false;\n }); \n } \n }); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-matter-name.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-matter-name.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./update-line-items-matter-name.vue?vue&type=template&id=2d006e24&scoped=true&\"\nimport script from \"./update-line-items-matter-name.vue?vue&type=script&lang=ts&\"\nexport * from \"./update-line-items-matter-name.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./update-line-items-matter-name.vue?vue&type=style&index=0&id=2d006e24&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d006e24\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxButton, DxAccordion } from 'devextreme-vue';\nimport { DxColumn, DxColumnChooser, DxEditing, DxLookup, DxStateStoring } from 'devextreme-vue/data-grid';\nimport { Prop, Watch, Component, Emit } from 'vue-property-decorator';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\nimport PhaseAssignmentNotes from './phase-assignment-notes.vue';\nimport PhaseAssignmentInfractions from './phase-assignment-infractions.vue';\nimport PhaseAssignmentInfractionsPopover from './phase-assignment-infraction-popover.vue';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { DxCheckBox } from 'devextreme-vue/check-box';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { FilingTypeDto } from '../../models/FilingTypeDto';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { FeeTypeEnum, FeeTypeNameEnum } from '@/models/Fees/FeeTypeEnum';\nimport { InfractionService } from '../../service/InfractionService';\nimport { UserSettingsService } from '../../service/UserSettingsService';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { UserSettingReportName, UserSettingName } from '@/models/UserSetting';\nimport { MatterWorkMatterDto } from '@/models/matter-work/MatterWorkMatterDto';\nimport _ from 'lodash';\nimport { AutoTextDataDto } from '@/models/auto-text/AutoTextDataDto';\nimport AgentInfoEdit from '../activity-planner/agent-info-edit.vue';\nimport { ClientAgentInfoDto } from '../../models/client-agent/ClientAgentInfoDto';\nimport { UpdateClientAgentJurisdictionDto } from '../../models/client-agent/ClientAgentJurisdictionDto';\nimport PhaseHistory from './phase-history.vue';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store';\nimport { alert } from \"devextreme/ui/dialog\"\nimport MatterWorkModule from '@/store/MatterWorkModule';\nimport { AnalysisReportPrintDataOptionsType } from '@/models/AnalysisReportPrintDataOptionsType';\nimport String from '@/utilities/String';\nimport UpdateLineItemsCountry from './update-line-items-country.vue';\nimport UpdateLineItemsMatterName from '@/components/matter-work/update-line-items-matter-name.vue';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\nimport { MatterDto } from '@/models/matter/MatterDto';\n\nexport interface MatterWorkLineItemsDialogState {\n showingContextMenu: boolean;\n showingInfractions: boolean;\n showingInfractionsPopover: boolean;\n showingNotes: boolean;\n showingColumnChooser: boolean;\n showingAgentInfo: boolean;\n showingPhaseHistory: boolean;\n showingUpdateCountry: boolean;\n showingUpdateMatterName: boolean;\n}\n\nconst moment = require('moment');\n\n@Component({\n components: {\n DataGrid,\n DxButton,\n DxColumn,\n DxColumnChooser,\n DxEditing,\n DxLookup,\n DxStateStoring,\n PhaseAssignmentNotes,\n PhaseAssignmentInfractions,\n DxCheckBox,\n DxScrollView,\n DxAccordion,\n PhaseAssignmentInfractionsPopover,\n AgentInfoEdit,\n PhaseHistory,\n UpdateLineItemsCountry,\n UpdateLineItemsMatterName\n }\n})\nexport default class MatterWorkLineItems extends Vue {\n $refs: Vue['$refs'] & {\n manualCodingDataGrid?: DataGrid;\n } = {};\n @Prop()\n matterIdSelected!: Guid;\n\n @Prop()\n phaseTypes!: PhaseTypeDto[];\n\n @Prop()\n selectedMatter!: MatterWorkMatterDto;\n\n @Prop()\n filingType!: FilingTypeDto;\n\n @Prop({ default: undefined })\n clientId!: Guid;\n\n @Prop()\n latestBatchIds!: Guid[];\n\n get activeBatchIds() : Guid[] {\n return this.latestBatchIds;\n }\n\n get selectedMatterId() : Guid {\n return this.matterIdSelected;\n }\n\n @Prop({ default: false })\n visible!: boolean;\n\n get visibility() : boolean {\n return this.visible;\n }\n\n private matterWorkModule: MatterWorkModule = getModule(MatterWorkModule, store);\n\n phaseHistoryLineItemId: Guid = '';\n lineItems: ManualCodeInvoiceLineItemDto[] = [];\n selectedLineItems: ManualCodeInvoiceLineItemDto[] = [];\n infractionTypes: InfractionTypeDto[] = [];\n \n feeTypes: Array<{ value: string, text: string }> = [ \n { value: FeeTypeNameEnum.Service, text: FeeTypeNameEnum.Service }, \n { value: FeeTypeNameEnum.Translation, text: FeeTypeNameEnum.Translation }, \n { value: FeeTypeNameEnum.Expense, text: FeeTypeNameEnum.Expense }\n ];\n selectedLineItem = {\n lineItemId: \"\",\n previousFeeType: FeeTypeNameEnum.Service\n };\n\n client: QuestelServicesClient;\n infractionService: InfractionService;\n userSettingsService: UserSettingsService;\n clientAgentService: ClientAgentService; \n loadingAutoTextData: boolean = false;\n matterIdRequested: Guid = '';\n\n coloredColumns: Array = [\n \"AssignedPhaseName\",\n \"Description\",\n \"LineItemTotal\",\n \"PhaseCode\",\n \"UTBMS\",\n \"FeeType\"\n ];\n\n forRequestAutoTextValue: Array = [\n \"[OVERCAPCOUNT]\",\n \"[OVERCAPCOUNTOVERAGE]\",\n \"[OVERTARGETCOUNT]\",\n \"[OVERTARGETCOUNTOVERAGE]\",\n \"[SUMINVOICE]\",\n \"[PHASEVERB]\",\n \"[PHASECHARGE]\",\n \"[PHASETOTAL]\",\n \"[AMOUNTOVERTARGET]\",\n \"[AMOUNTOVERCAP]\",\n \"[PHASETARGET]\",\n \"[PHASECAP]\",\n \"[OVERTARGETLIST]\",\n \"[OVERCAPLIST]\"\n ];\n\n constructor() {\n super();\n this.client = new QuestelServicesClient(this.$store, '');\n this.infractionService = new InfractionService();\n this.userSettingsService = new UserSettingsService(this.$store);\n this.clientAgentService = new ClientAgentService();\n }\n\n async onProcessAutoText(e: string[], text: string, callback: Function){\n let autoTextContained = e;\n let selectedText = text;\n let requestedData: AutoTextDataDto | undefined = undefined;\n let hasForRequest = _.some(autoTextContained, item => this.forRequestAutoTextValue.includes(item));\n\n if(hasForRequest) {\n let li = this.notesLineItem.InvoiceLineItemId;\n requestedData = await this.processRequestForAutoTextData(li);\n }\n\n autoTextContained.forEach(item => {\n let actualData = this.processDataToDisplay(item, requestedData);\n\n selectedText = selectedText.split(item).join(actualData);\n })\n\n callback(selectedText);\n }\n\n processDataToDisplay(autoText: string, requestedData : AutoTextDataDto | undefined) : string {\n let result = '';\n if(autoText === \"[AGENTNAME]\")\n {\n result = this.notesLineItem.AgentName;\n }\n else if(autoText === \"[CLIENTNAME]\"){\n result = this.selectedMatter.ClientName;\n }\n else if(autoText === \"[COUNTRY]\"){\n result = this.selectedMatter.CountryCode;\n }\n else if(autoText === \"[PHASETYPE]\"){\n if (this.notesLineItem.AssignedPhaseTypeId == null) {\n result = \"Blank\";\n }\n else {\n result = this.notesLineItem.AssignedPhaseName;\n } \n }\n else if(autoText === \"[SERVICEDATE]\"){\n result = moment(this.notesLineItem.ServiceDate).format(\"MM-DD-YYYY\");\n }\n else if(autoText === \"[INVOICEDATE]\"){\n result = moment(this.notesLineItem.InvoiceDate).format(\"MM-DD-YYYY\");\n }\n else if(autoText === \"[PHASECHARGE]\"){\n if (requestedData && requestedData.PhaseTotal) {\n result = (this.$options.filters as any).currencyTruncate(requestedData.PhaseCharge);\n }\n }\n else if(autoText === \"[PHASETOTAL]\"){\n if (requestedData && requestedData.PhaseTotal) {\n result = (this.$options.filters as any).currencyTruncate(requestedData.PhaseTotal);\n } \n }\n else if(autoText === \"[AMOUNTOVERTARGET]\"){\n if (requestedData && requestedData.PhaseTarget && requestedData.PhaseCharge) {\n \n if(requestedData.PhaseCap &&\n (requestedData.PhaseCharge - requestedData.PhaseCap) > 0 ) {\n result = \"NotOverTarget\";\n }\n else {\n let overage = requestedData.PhaseCharge - requestedData.PhaseTarget;\n if (overage > 0) {\n result = (this.$options.filters as any).currencyTruncate(overage);\n }\n else {\n result = \"NotOverTarget\";\n }\n }\n }\n else {\n result = \"NoTargetRuleFound\";\n } \n }\n else if(autoText === \"[AMOUNTOVERCAP]\"){\n if (requestedData && requestedData.PhaseCap && requestedData.PhaseCharge) {\n let overage = requestedData.PhaseCharge - requestedData.PhaseCap;\n if (overage > 0) {\n result = (this.$options.filters as any).currencyTruncate(overage);\n }\n else {\n result = \"NotOverCap\";\n }\n \n }\n else {\n result = \"NoCapRuleFound\";\n } \n }\n else if(autoText === \"[PHASEVERB]\"){\n if(requestedData){\n result = requestedData.PhaseVerb ? \n requestedData.PhaseVerb\n : '';\n }\n }\n else if(autoText === \"[LINEITEMCHARGE]\"){\n result = (this.$options.filters as any).currencyTruncate(this.notesLineItem.LineItemTotal);\n }\n else if(autoText === \"[PHASETARGET]\"){\n if (requestedData && requestedData.PhaseTarget) {\n result = (this.$options.filters as any).currencyTruncate(requestedData.PhaseTarget);\n }\n else {\n result = \"NoTargetRuleFound\";\n } \n }\n else if(autoText === \"[PHASECAP]\"){\n if (requestedData && requestedData.PhaseCap) {\n result = (this.$options.filters as any).currencyTruncate(requestedData.PhaseCap);\n }\n else {\n result = \"NoCapRuleFound\";\n } \n }\n else if(autoText === \"[OVERCAPCOUNT]\"){\n if(requestedData){\n result = requestedData.OverCapCount ? \n requestedData.OverCapCount.toString()\n : 'NoneOverCap';\n }\n }\n else if(autoText === \"[OVERCAPCOUNTOVERAGE]\"){\n if(requestedData){\n result = requestedData.OverCapCountOverage && requestedData.OverCapCountOverage > 0? \n (this.$options.filters as any).currencyTruncate(requestedData.OverCapCountOverage)\n : 'NotOverCap';\n }\n }\n else if(autoText === \"[OVERTARGETCOUNT]\"){\n if(requestedData){\n result = requestedData.OverTargetCount ? \n requestedData.OverTargetCount.toString()\n : 'NoneOverTarget';\n }\n }\n else if(autoText === \"[OVERTARGETCOUNTOVERAGE]\"){\n if(requestedData){\n result = requestedData.OverTargetCountOverage && requestedData.OverTargetCountOverage > 0 ? \n (this.$options.filters as any).currencyTruncate(requestedData.OverTargetCountOverage)\n : 'NotOverTarget';\n }\n }\n else if(autoText === \"[INVOICENUMBER]\"){\n result = this.notesLineItem.InvoiceNumber;\n }\n else if(autoText === \"[SUMINVOICECASE]\"){\n let res = _.filter(this.lineItems, i => i.InvoiceNumber === this.notesLineItem.InvoiceNumber);\n let resSum = _.sumBy(res, i => i.LineItemTotal).toString();\n\n result = (this.$options.filters as any).currencyTruncate(resSum);\n }\n else if(autoText === \"[SUMINVOICE]\"){\n if(requestedData){\n result = requestedData.SumInvoice ? \n (this.$options.filters as any).currencyTruncate(requestedData.SumInvoice) \n : '';\n }\n }\n else if (autoText === \"[OVERTARGETLIST]\") {\n if (requestedData != null) {\n if(requestedData.OverTargetList) {\n if(requestedData.OverTargetList.length > 0) {\n result = requestedData.OverTargetList.map(m => `${m.ClientMatterId}, ${m.CountryCode}`).join(\"
\");\n }\n else{\n result = \"NoOverageFound\"\n }\n }\n else{\n result = \"NoOverageFound\"\n } \n }\n }\n else if (autoText === \"[OVERCAPLIST]\") {\n if (requestedData != null) {\n if(requestedData.OverCapList) {\n if(requestedData.OverCapList.length > 0) {\n result = requestedData.OverCapList.map(m => `${m.ClientMatterId}, ${m.CountryCode}`).join(\"
\");\n }\n else {\n result = \"NoOverageFound\"\n }\n }\n else{\n result = \"NoOverageFound\"\n } \n }\n }\n\n return result;\n }\n\n async processRequestForAutoTextData(lineItemId: Guid): Promise {\n this.loadingAutoTextData = true;\n let result = await this.client.getData(HttpMethodEnum.Get,this.autoTextDataValue(lineItemId))\n .then(result => {\n return result;\n })\n .catch(err => undefined)\n .finally(() => {\n this.loadingAutoTextData = false;\n });\n return result;\n }\n\n private get dxDataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.manualCodingDataGrid as any).$refs.dxDataGrid.instance;\n }\n\n private get dataGridCustomStore(): DevExpress.data.CustomStore { \n return this.dxDataGrid.getDataSource().store() as DevExpress.data.CustomStore; \n }\n\n public updateLineItems(lineItems: ManualCodeInvoiceLineItemDto[]): void { \n let updates = lineItems.map(li => { \n return {\n type: 'update',\n key: li.InvoiceLineItemId,\n data: li\n }\n });\n \n this.dataGridCustomStore.push(updates);\n\n //process again the focused phase type display\n if(this.currentlyFocusedPhase) {\n this.onFocusPhaseUpdates(lineItems);\n }\n }\n\n onFocusPhaseUpdates(lItems: any[]) {\n lItems.forEach(li => {\n let ind = _.findIndex(this.listOfLineItems,(x : any) => li.InvoiceLineItemId === x.InvoiceLineItemId)\n if(ind != -1) {\n this.listOfLineItems[ind] = li;\n }\n });\n \n this.listOfLineItems = _.union(this.listOfLineItems, lItems);\n\n this.handleFocusedPhaseTypeEvent(this.currentlyFocusedPhase);\n }\n\n customDataSource: any[] = [];\n private get dataGridCustomStoreOption(): DevExpress.data.CustomStoreOptions {\n return {\n key: 'InvoiceLineItemId',\n loadMode: 'raw',\n onLoaded: this.dataGridLoaded,\n onUpdated: this.dataUpdated,\n onPush: this.dataPush,\n load: () => {\n this.matterIdRequested = this.selectedMatterId;\n\n if(this.currentlyFocusedPhase) {\n this.lineItems = this.listOfLineItems;\n return Promise.resolve(this.customDataSource);\n }\n else {\n return this.client.get(this.matterUrl)\n .then(result => { \n this.lineItems = result;\n return result;\n });\n }\n },\n // TODO: In the future if other columns are editable we should update this (maybe server side) to handle editing any column\n update: (key, values) => { \n return this.updateFeeType(key, values);\n }\n }\n }\n\n async updateFeeType(id: Guid, feeType: FeeTypeEnum) {\n let updatedMatter = this.selectedMatter;\n return await this.client.getData(HttpMethodEnum.Patch, `/api/InvoiceLineItems/${id}/feeType`, feeType)\n .then(result => {\n return result;\n })\n .catch(_ => {\n alert(`Error updating fee type for matter ${updatedMatter!.ClientMatterId}.`, \"Error\");\n\n let lineItem = this.lineItems.filter(li => li.InvoiceLineItemId == this.selectedLineItem.lineItemId)[0];\n lineItem.FeeType = this.selectedLineItem.previousFeeType;\n return lineItem;\n });\n }\n\n private isContextShow: boolean = false;\n\n popoverTarget: string = '';\n popoverVis: boolean = false;\n draggingSelect: boolean = false;\n draggingSelection: Map = new Map();\n draggingSelectOrDeselect: boolean | null = true;\n draggingLastSet: string = \"\";\n\n private get matterUrl(): string {\n return `/api/manualcoding/${this.selectedMatterId}/line-items`;\n }\n\n private autoTextDataValue(lineItemId: Guid) : string {\n return `/api/manualcoding/auto-text-value/${this.selectedMatter.MatterWorkId}?lineItemId=${lineItemId}`;\n }\n\n private selectedMatterChanged: boolean = false;\n @Watch('matterUrl')\n onMatterUrlChange() {\n // Clear the current selection before advancing.\n // This was because of issues with the datagrid trying to load the previously selected data.\n this.dxDataGrid.clearSelection();\n if(this.listOfLineItems && this.listOfLineItems.length > 0) {\n this.clearFocus();\n }\n \n this.refreshDataGrid(); \n this.selectedMatterChanged = true;\n }\n\n private getContextMenuItems(): ContextMenuItem[] {\n return [\n {\n text: 'Set Phase',\n items: [\n ...this.getCommonPhaseTypes().map(p => this.getContextMenuItem(p)),\n {\n text: 'More',\n items: [\n ...this.getOtherPhaseTypes().map(p => this.getContextMenuItem(p)),\n {\n text: 'Clear Phase',\n onItemClick: () => this.assignPhase(null)\n }\n ]\n }\n ]\n },\n this.getContextMenuExempt(),\n this.getContextMenuChangeCountry(),\n this.getContextMenuChangeMatterName()\n ];\n }\n\n refreshDataGrid(): void {\n if (this.$refs.manualCodingDataGrid) {\n (this.$refs.manualCodingDataGrid as any).refreshDataGrid();\n } \n }\n\n saveCellEdit(): void {\n if (this.dxDataGrid.hasEditData()) {\n this.dxDataGrid.saveEditData();\n }\n }\n\n dataPush(e: any) : void {\n this.updateSelectedMatterLineItems();\n }\n\n dataUpdated(e: any, a: any): void {\n this.updateSelectedMatterLineItems();\n }\n\n dataGridLoaded(result: any[]): void {\n // If the selected matter is changed before the previous line items are loaded,\n // the line items for the last selected matter aren't requested for.\n // Check if the matterId of the requested line items doesn't match the selected matter.\n if (this.selectedMatterId !== this.matterIdRequested) {\n this.refreshDataGrid();\n } else {\n this.$emit('update:line-items', this.lineItems);\n if(this.matterWorkModule && this.matterWorkModule.selectMatter && this.lineItems) {\n this.$set(this.matterWorkModule.selectMatter, 'LineItems',this.lineItems);\n }\n } \n }\n\n updateSelectedMatterLineItems() {\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.PhaseAnalysisItem);\n if(this.matterWorkModule && this.matterWorkModule.selectMatter && this.lineItems) {\n this.$set(this.matterWorkModule.selectMatter, 'LineItems',this.lineItems);\n }\n }\n\n\n startIndexSelection: number = -1;\n endIndexSelection: number = -1;\n prevEndval: number = -1;\n fromDragBack: boolean = false;\n\n incrementOrDecrement(isFromTop: boolean, bigger: number, smaller: number,callback: any){\n if(isFromTop) {\n for(var i = smaller; i <= bigger; i++){\n callback(i);\n }\n }\n else{\n for(var i = bigger; i >= smaller; i--){\n callback(i);\n }\n }\n }\n cellHoverChanged(e: any): void { \n let dragBack = false;\n let isIncremental = true;\n if (e.event.buttons == 2 && (e.event.type == \"mouseover\" || !this.draggingSelect)) {\n if (!e.row) {\n return;\n }\n\n if(this.startIndexSelection == -1) {\n this.startIndexSelection = e.row.rowIndex;\n if(this.endIndexSelection == -1) {\n this.endIndexSelection = e.row.rowIndex;\n }\n }\n else {\n if(this.endIndexSelection != -1) {\n if(this.startIndexSelection == e.row.rowIndex) {\n dragBack = true;\n }\n else if(this.startIndexSelection > this.endIndexSelection) {\n if(this.endIndexSelection < e.row.rowIndex){\n dragBack = true;\n }\n else {\n dragBack = false;\n }\n }\n else if(this.startIndexSelection < this.endIndexSelection) {\n if(this.endIndexSelection > e.row.rowIndex){\n dragBack = true;\n }\n else if(this.endIndexSelection < e.row.rowIndex) {\n dragBack = false;\n }\n }\n }\n \n this.endIndexSelection = e.row.rowIndex;\n }\n\n \n this.draggingSelect = true;\n isIncremental = (this.startIndexSelection < this.endIndexSelection);\n var smaller = Math.min(this.endIndexSelection, this.startIndexSelection);\n var bigger = Math.max(this.endIndexSelection, this.startIndexSelection);\n\n if(this.prevEndval != -1) {\n isIncremental = (this.prevEndval < this.endIndexSelection);\n smaller = Math.min(this.endIndexSelection, this.prevEndval);\n bigger = Math.max(this.endIndexSelection, this.prevEndval);\n }\n\n var smallerIterate = smaller == -1 ? bigger : smaller;\n if(this.prevEndval != this.endIndexSelection) {\n this.incrementOrDecrement(isIncremental, bigger, smaller, (i: number) => {\n if(i != this.prevEndval || (dragBack || this.fromDragBack)) {\n let selectedRowKeys: any[] = e.component.getSelectedRowKeys();\n let toSet = false;\n let rowKey = e.component.getKeyByRowIndex(i);\n let previouslySet = this.draggingSelection.get(rowKey);\n \n\n if (this.draggingSelectOrDeselect == null) {\n if (selectedRowKeys.includes(rowKey)) {\n this.draggingSelectOrDeselect = false;\n } \n else {\n this.draggingSelectOrDeselect = true;\n }\n }\n\n \n if(dragBack) {\n let firstSetKey = e.component.getKeyByRowIndex(this.startIndexSelection);\n let firstSet = this.draggingSelection.get(firstSetKey);\n \n toSet = !firstSet;\n }\n else {\n if(previouslySet != null) {\n toSet = !previouslySet;\n }\n else {\n toSet = this.draggingSelectOrDeselect;\n }\n }\n \n this.setRowFromHover(e.component, rowKey, toSet);\n }\n })\n \n if(dragBack) {\n this.fromDragBack = true;\n }\n else {\n this.fromDragBack = false;\n }\n\n dragBack = false;\n this.prevEndval = this.endIndexSelection;\n } \n } else if (this.draggingSelect && e.event.buttons == 0) {\n this.prevEndval = -1;\n dragBack = false;\n this.draggingSelect = false;\n this.draggingSelectOrDeselect = null;\n this.draggingSelection.clear();\n this.draggingLastSet = \"\";\n this.startIndexSelection = -1;\n this.endIndexSelection = -1;\n this.fromDragBack = false;\n \n }\n\n this.toggleLineItemTotalTooltip(e);\n }\n\n toggleLineItemTotalTooltip(e: any) {\n if(e.rowType === 'data' && e.value === e.data.LineItemTotal && e.row.isSelected) {\n if(e.eventType == \"mouseover\") {\n if(e.row) {\n let selectedRowsTotal = _.sum(e.component.getSelectedRowsData().map((r: any) => r.LineItemTotal));\n e.cellElement.title = (this.$options.filters as any).currency(selectedRowsTotal);\n }\n }\n else {\n e.cellElement.title = \"\";\n }\n } \n }\n\n setRowFromHover(component: any, rowKey: string, set: boolean) {\n if (set) {\n component.selectRows([rowKey], true);\n } \n else {\n component.deselectRows([rowKey], true);\n }\n\n this.draggingSelection.set(rowKey, set);\n this.draggingLastSet = rowKey;\n }\n\n checkGridScrollPosition(e: any) {\n //var gridHeight = e.element.offsetHeight;\n //var loc = e.event.clientX;\n\n //if (gridHeight - 100 < loc) {\n // var scrollable = this.dxDataGrid.getScrollable();\n // scrollable.scrollBy(100);\n //}\n } \n \n prepareContextMenu(e: any): void {\n if (e.target === 'content' && e.row && e.row.rowType === 'data' && !this.draggingSelect) { \n let preserve: boolean = false;\n let selectedRowKeys: any[] = e.component.getSelectedRowKeys();\n\n if (selectedRowKeys.includes(e.row.key)) {\n preserve = true;\n }\n\n e.component.selectRows([e.row.key], preserve);\n e.items = this.getContextMenuItems();\n \n if (e.column.dataField === 'AgentName') {\n e.items.push({\n text: 'View Agent Setup',\n onItemClick: () => this.showAgentInfoEditWindow(e.row.data.AgentName)\n });\n\n e.items = e.items.concat(this.getContextMenuAgentJurisdiction(e))\n } else if (e.column.dataField === 'LastAssignedBy') {\n e.items.push({\n text: 'View Phase History',\n onItemClick: () => this.showPhaseHistory(e.row.data)\n });\n }\n\n this.isContextShow = true;\n this.dialogStateChanged();\n }\n\n e.event.preventDefault();\n }\n\n private showPhaseHistory(lineItem: ManualCodeInvoiceLineItemDto) {\n this.phaseHistoryLineItemId = lineItem.InvoiceLineItemId;\n this.showingPhaseHistory = true;\n }\n\n private getCommonPhaseTypes(): PhaseTypeDto[] {\n return this.phaseTypes\n .filter(p => p.SecondaryPhaseOrder !== null)\n .sort((a, b) => {\n if (a.SecondaryPhaseOrder === b.SecondaryPhaseOrder) return 0;\n if (a.SecondaryPhaseOrder === null) return 1;\n if (b.SecondaryPhaseOrder === null) return -1;\n return a.SecondaryPhaseOrder < b.SecondaryPhaseOrder ? -1 : 1;\n });\n }\n\n private getOtherPhaseTypes(): PhaseTypeDto[] {\n return this.phaseTypes.filter(p => p.SecondaryPhaseOrder === null).sort((a, b) => a.PhaseOrder - b.PhaseOrder);\n }\n\n private getContextMenuItem(phaseType: PhaseTypeDto): ContextMenuItem {\n return {\n text: phaseType.PhaseName,\n rgbHex: phaseType.RgbHex,\n template: 'contextMenuItem',\n onItemClick: () => this.assignPhase(phaseType.PhaseTypeId)\n };\n }\n\n private assignPhase(phaseTypeId: number | null): void {\n this.$emit('assign-phase', phaseTypeId); \n }\n \n private getContextMenuExempt() {\n let isExempt = true;\n let selectedRows: Array = ((this.$refs.manualCodingDataGrid as any).$refs.dxDataGrid as any)\n .instance.getSelectedRowsData();\n \n for(let i = 0; i < selectedRows.length; i++) {\n let row = selectedRows[i];\n if(row.IsExempt == false){\n isExempt = true;\n break;\n }\n else{\n isExempt = false;\n }\n }\n if (isExempt){\n return {\n text: 'Make Row(s) Exempt',\n template: 'contextMenuItem',\n onItemClick: () => this.$emit('set-exempt-row', true)\n };\n }\n else{\n return {\n text: 'Make Row(s) Unexempt',\n template: 'contextMenuItem',\n onItemClick: () => this.$emit('set-exempt-row', false)\n };\n }\n }\n\n private getContextMenuChangeCountry() {\n return { \n text: 'Change Rows\\' Country',\n template: 'contextMenuItem',\n onItemClick: () => {\n this.updateLineItemCountry();\n }\n };\n }\n\n private getContextMenuChangeMatterName() {\n return { \n text: 'Change Matter Name',\n template: 'contextMenuItem',\n onItemClick: () => {\n this.updateLineItemMatterName();\n }\n };\n }\n\n private getContextMenuAgentJurisdiction(e: any) {\n let items = [];\n\n let inJurisdictionDto: UpdateClientAgentJurisdictionDto = {\n ClientId: this.clientId,\n AgentId: e.row.data.AgentId,\n CountryCode: this.selectedMatter.CountryCode,\n InJurisdiction: true,\n JurisdictionFree: false\n };\n\n let inJurisdictionItem = {\n text: 'Set In Jurisdiction for ' + this.selectedMatter.CountryCode,\n textColor: 'DarkGreen',\n template: 'contextMenuItem', \n onItemClick: () => this.updateClientAgentJurisdiction(inJurisdictionDto) \n };\n\n\n let outJurisdictionDto: UpdateClientAgentJurisdictionDto = {\n ClientId: this.clientId,\n AgentId: e.row.data.AgentId,\n CountryCode: this.selectedMatter.CountryCode,\n InJurisdiction: false,\n JurisdictionFree: false\n };\n\n let outJurisdictionItem = {\n text: 'Set Out of Jurisdiction for ' + this.selectedMatter.CountryCode,\n textColor: 'DarkBlue',\n template: 'contextMenuItem',\n onItemClick: () => this.updateClientAgentJurisdiction(outJurisdictionDto) \n };\n \n let jurisdictionFreeDto: UpdateClientAgentJurisdictionDto = {\n ClientId: this.clientId,\n AgentId: e.row.data.AgentId,\n CountryCode: this.selectedMatter.CountryCode,\n InJurisdiction: false,\n JurisdictionFree: true\n };\n\n let jurisdictionFreeItem = {\n text: 'Set Jurisdiction Free',\n textColor: 'DarkGray',\n template: 'contextMenuItem',\n onItemClick: () => this.updateClientAgentJurisdiction(jurisdictionFreeDto) \n };\n\n if(e.row.data.AgentJurisdiction == null) {\n items.push(inJurisdictionItem);\n items.push(outJurisdictionItem);\n items.push(jurisdictionFreeItem);\n }\n else if(e.row.data.AgentJurisdictionFree) {\n items.push(inJurisdictionItem);\n items.push(outJurisdictionItem);\n }\n else if(e.row.data.AgentJurisdiction) { \n items.push(outJurisdictionItem);\n items.push(jurisdictionFreeItem);\n }\n else {\n items.push(inJurisdictionItem);\n items.push(jurisdictionFreeItem);\n }\n\n return items;\n }\n\n private updateClientAgentJurisdiction(jurisdictionDto: UpdateClientAgentJurisdictionDto) {\n this.clientAgentService.updateClientAgentJurisdiction(jurisdictionDto)\n .then(result => {\n this.refreshDataGrid();\n })\n .finally(() => {\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.PhaseAnalysisItem);\n });\n };\n\n private updateLineItemCountry() { \n this.selectedLineItems = ((this.$refs.manualCodingDataGrid as any).$refs.dxDataGrid as any)\n .instance.getSelectedRowsData(); \n this.showingUpdateCountry = true;\n } \n\n private updateLineItemMatterName() {\n this.selectedLineItems = ((this.$refs.manualCodingDataGrid as any).$refs.dxDataGrid as any)\n .instance.getSelectedRowsData(); \n this.showingUpdateMatterName = true;\n }\n \n private clientAgentInfo: ClientAgentInfoDto = new ClientAgentInfoDto();\n private showAgentInfoEditWindow(agentName: string) {\n this.clientAgentService.getExistingClientAgentData(this.selectedMatter.ClientId, agentName)\n .then(result => {\n this.clientAgentInfo = result;\n this.clientAgentInfo.Client = {\n ClientId: this.selectedMatter.ClientId,\n ClientName: this.selectedMatter.ClientName\n };\n this.showingAgentInfo = true;\n });\n }\n\n private readonly auditorNotesClass: string = \"auditor-notes\";\n private readonly privateNotesClass: string = \"private-notes\";\n\n private getNotesClass(row: any) {\n let notesClass = \"default-notes\";\n\n if (row.AnalysisReportPrintDataOptions === AnalysisReportPrintDataOptionsType.SingleLineItem ||\n row.AnalysisReportPrintDataOptions === AnalysisReportPrintDataOptionsType.EntirePhase ||\n row.AnalysisReportPrintDataOptions === AnalysisReportPrintDataOptionsType.EntireCase) {\n notesClass = this.auditorNotesClass;\n } else if (!String.isNullOrEmpty(row.AuditorNotesReportLanguage) || !String.isNullOrEmpty(row.PrivateAuditorNotes)) {\n notesClass = this.privateNotesClass;\n }\n\n return notesClass;\n }\n\n private getInfractionClass(row: any): string {\n let result = \"no-infraction\";\n\n if (row.HasConfirmedInfraction) {\n result = \"has-confirmed-infraction\";\n } else if (row.HasSystemGeneratedInfraction){\n result = \"has-system-generated\";\n }\n\n return result;\n }\n\n private notesLineItem: any = {};\n userFontSize: number = 12; //standard font size for data grid\n showingNotes: boolean = false;\n showingInfractions: boolean = false;\n showingAgentInfo: boolean = false;\n showingPhaseHistory: boolean = false;\n showingUpdateCountry: boolean = false;\n showingUpdateMatterName: boolean = false;\n hoveredLineItem: ManualCodeInvoiceLineItemDto | null = null;\n hoveredRowPhaseColor: string = '';\n private static readonly defaultPhaseColor: string = 'rgb(240, 240, 240)';\n\n @Emit()\n dialogStateChanged(): MatterWorkLineItemsDialogState { \n return {\n showingContextMenu: this.isContextShow,\n showingInfractions: this.showingInfractions,\n showingInfractionsPopover: this.popoverVis,\n showingNotes: this.showingNotes,\n showingColumnChooser: false,\n showingAgentInfo: this.showingAgentInfo,\n showingPhaseHistory: this.showingPhaseHistory,\n showingUpdateCountry: this.showingUpdateCountry,\n showingUpdateMatterName: this.showingUpdateMatterName\n };\n }\n\n private enableLoadPanel() {\n this.setLoadPanelEnabled(true);\n }\n\n private disableLoadPanel() {\n this.setLoadPanelEnabled(false);\n }\n\n private setLoadPanelEnabled(value: boolean) {\n let currentValue = this.dxDataGrid.option('loadPanel.enabled');\n if (value !== currentValue) {\n this.dxDataGrid.option('loadPanel.enabled', value);\n }\n }\n\n hidingNotes(): void {\n this.showingNotes = false;\n this.dialogStateChanged();\n setTimeout(() => {\n this.refreshDataGrid();\n }, 1000);\n }\n\n hidingInfractions(e: { isCancelled: boolean, lineItem?: ManualCodeInvoiceLineItemDto, reloadInfractionTypes: boolean }): void {\n this.showingInfractions = false;\n if (!e.isCancelled && e.lineItem) {\n this.updateLineItems([e.lineItem]);\n }\n\n if (e.reloadInfractionTypes) {\n this.infractionService.GetAllInfractionTypes()\n .then(response => {\n this.infractionTypes = response;\n });\n }\n\n this.dialogStateChanged();\n }\n\n hidingPopover(e: { isCancelled: boolean, lineItem?: ManualCodeInvoiceLineItemDto }): void {\n if (!e.isCancelled && e.lineItem) {\n this.updateLineItems([e.lineItem]);\n }\n\n this.enableLoadPanel();\n this.dialogStateChanged();\n }\n\n hidingAgentInfo() { \n this.showingAgentInfo = false;\n this.refreshDataGrid();\n }\n\n hidingPhaseHistory() {\n this.showingPhaseHistory = false;\n this.phaseHistoryLineItemId = '';\n }\n\n hidingUpdateCountry(lineItemIds: Guid[], newCountryCode: string) {\n this.showingUpdateCountry = false;\n if (lineItemIds.length > 0) { \n let remainingLineItems = this.selectedMatter.LineItems.filter(li => !lineItemIds.some(id => id == li.InvoiceLineItemId)); \n\n if (remainingLineItems.length == 0) {\n this.selectedMatter.IsDeleted = true;\n this.$root.$emit('matter-deleted', this.selectedMatterId)\n }\n else {\n this.selectedMatter.LineItems = remainingLineItems;\n this.selectedMatter.LineItemTotals = remainingLineItems.reduce(function(sum, li) { return sum + li.LineItemTotal; }, 0);\n this.selectedMatter.LineItemTotalsService = remainingLineItems\n .filter(li => li.FeeType == FeeTypeNameEnum.Service)\n .reduce(function(sum, li) { return sum + li.LineItemTotal; }, 0);\n this.selectedMatter.AllLineItemsConfirmed = this.selectedMatter.LineItems.every(li => li.Confirmed);\n this.selectedMatter.Agents = this.selectedMatter.LineItems.map(li => li.AgentName);\n this.selectedMatter.Phases = this.selectedMatter.LineItems.map(li => li.AssignedPhaseName); \n\n this.refreshDataGrid();\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.All);\n } \n\n // Update the target matter if it is in this MatterWork\n this.$root.$emit('updatetargetmatter', this.selectedMatter.ClientMatterId, newCountryCode)\n }\n }\n\n hidingUpdateMatterName(lineItemIds: Guid[], newMatter: MatterDto) {\n this.showingUpdateMatterName = false; \n\n if (newMatter != null && lineItemIds.length > 0) { \n let remainingLineItems = this.selectedMatter.LineItems.filter(li => !lineItemIds.some(id => id == li.InvoiceLineItemId)); \n\n if (remainingLineItems.length == 0) {\n this.selectedMatter.IsDeleted = true;\n this.$root.$emit('matter-deleted', this.selectedMatterId)\n }\n else {\n this.selectedMatter.LineItems = remainingLineItems;\n this.selectedMatter.LineItemTotals = remainingLineItems.reduce(function(sum, li) { return sum + li.LineItemTotal; }, 0);\n this.selectedMatter.LineItemTotalsService = remainingLineItems\n .filter(li => li.FeeType == FeeTypeNameEnum.Service)\n .reduce(function(sum, li) { return sum + li.LineItemTotal; }, 0);\n this.selectedMatter.AllLineItemsConfirmed = this.selectedMatter.LineItems.every(li => li.Confirmed);\n this.selectedMatter.Agents = this.selectedMatter.LineItems.map(li => li.AgentName);\n this.selectedMatter.Phases = this.selectedMatter.LineItems.map(li => li.AssignedPhaseName); \n\n this.refreshDataGrid();\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.All);\n } \n\n // Update the target matter if it is in this MatterWork\n this.$root.$emit('updatetargetmatter', newMatter.MatterName, newMatter.CountryCode)\n }\n }\n\n private getIdForPopover(rowData: any): string {\n return 'target-' + rowData.rowIndex;\n }\n\n private popoverTimeout: number | undefined;\n\n private hidePopover(): void {\n if (this.popoverTimeout) {\n clearTimeout(this.popoverTimeout);\n this.popoverTimeout = undefined;\n }\n\n this.popoverVis = false;\n } \n\n private showPopOver(e: any): void {\n if (this.popoverVis) {\n return;\n }\n\n if (this.popoverTimeout) {\n clearTimeout(this.popoverTimeout);\n }\n\n this.popoverTimeout = setTimeout(() => {\n this.disableLoadPanel();\n this.hoveredLineItem = e.row.data;\n this.popoverTarget = '#target-' + e.rowIndex;\n let phaseType = this.phaseTypes.find(t => t.PhaseTypeId === e.row.data.AssignedPhaseTypeId);\n this.hoveredRowPhaseColor = phaseType ? phaseType.RgbHex : MatterWorkLineItems.defaultPhaseColor;\n this.popoverVis = true;\n this.dialogStateChanged();\n }, 500);\n }\n\n private openInfractionForm(e: any): void {\n this.popoverVis = false;\n this.hoveredLineItem = e.row.data;\n this.popoverTarget = '#target-' + e.rowIndex;\n let phaseType = this.phaseTypes.find(t => t.PhaseTypeId === e.row.data.AssignedPhaseTypeId);\n this.hoveredRowPhaseColor = phaseType ? phaseType.RgbHex : MatterWorkLineItems.defaultPhaseColor;\n this.showingInfractions = true;\n this.dialogStateChanged();\n }\n\n private openNotesForm(row: any): void { \n this.notesLineItem = row;\n this.showingNotes = true;\n this.dialogStateChanged();\n }\n\n openNotesKeyboard(): void {\n let selectedRows: Array = ((this.$refs.manualCodingDataGrid as any).$refs.dxDataGrid as any)\n .instance.getSelectedRowsData();\n if (selectedRows.length > 0) {\n this.openNotesForm(selectedRows[selectedRows.length - 1]);\n }\n } \n\n onContentReady(e: any): void {\n var columnChooserView = e.component.getView(\"columnChooserView\");\n if (!columnChooserView._popupContainer) {\n columnChooserView._initializePopupContainer();\n columnChooserView.render();\n columnChooserView._popupContainer.on(\"hiding\", () =>\n {\n this.dialogStateChanged();\n });\n }\n document.addEventListener('mousedown', this.onMousedown);\n setTimeout(() => this.scrollToTop(), 100);\n }\n\n destroyed() {\n document.removeEventListener('mousedown', this.onMousedown);\n }\n\n onMousedown(e: MouseEvent) {\n if (this.isContextShow) {\n this.isContextShow = false;\n this.dialogStateChanged();\n }\n }\n\n async getFontSizeFromUserSettings() {\n let userPref = await this.userSettingsService.getUserSettings(UserSettingReportName.UserPreference,\n UserSettingName.DataTableFontSize);\n\n if(userPref && userPref[0]) {\n this.userFontSize = +(userPref[0].Value);\n }\n }\n\n handleUserPreferenceChangeEvent(value : number) {\n this.userFontSize = value;\n }\n onCellPrepared(e: any) {\n if(e.rowType === 'data' && e.column.dataField === 'LastAssignedBy') {\n e.cellElement.title = e.text;\n }\n else if(e.rowType === 'data' && this.coloredColumns.includes(e.column.dataField)) { \n let phaseType = this.phaseTypes.filter(t => t.PhaseTypeId == e.row.data.AssignedPhaseTypeId)[0];\n if (phaseType) {\n e.cellElement.style['background-color'] = phaseType.RgbHex;\n }\n }\n else if(e.rowType === 'data' && e.column.dataField == 'AgentName') { \n if (e.row.data.AgentJurisdictionFree) {\n e.cellElement.style['color'] = 'DarkGray';\n }\n else if(e.row.data.AgentJurisdiction == null) {\n e.cellElement.style['color'] = 'Red';\n }\n else if(e.row.data.AgentJurisdiction) {\n e.cellElement.style['color'] = 'DarkGreen';\n }\n else {\n e.cellElement.style['color'] = 'DarkBlue';\n } \n } \n }\n\n onCellDoubleClick(e: any) { \n if(e.rowType === 'data' && e.column.dataField === 'FeeType') { \n this.selectedLineItem.lineItemId = e.data.InvoiceLineItemId \n this.selectedLineItem.previousFeeType = e.value; \n\n switch(e.value) {\n case FeeTypeNameEnum.Service: \n e.data.FeeType = FeeTypeNameEnum.Expense;\n this.dxDataGrid.cellValue(e.rowIndex, 'FeeType', FeeTypeNameEnum.Expense);\n break;\n \n case FeeTypeNameEnum.Expense:\n e.data.FeeType = FeeTypeNameEnum.Translation;\n this.dxDataGrid.cellValue(e.rowIndex, 'FeeType', FeeTypeNameEnum.Translation);\n break;\n\n case FeeTypeNameEnum.Translation:\n e.data.FeeType = FeeTypeNameEnum.Service;\n this.dxDataGrid.cellValue(e.rowIndex, 'FeeType', FeeTypeNameEnum.Service);\n break;\n } \n this.saveCellEdit();\n }\n }\n\n listOfLineItems: any;\n currentlyFocusedPhase: string | undefined;\n clearFocus() {\n this.listOfLineItems = undefined;\n this.customDataSource = [];\n this.currentlyFocusedPhase = undefined;\n }\n \n async handleFocusedPhaseTypeEvent(e: any) {\n if(!e)\n {\n this.clearFocus();\n }\n else {\n this.currentlyFocusedPhase = e;\n this.listOfLineItems = this.listOfLineItems || await this.dxDataGrid.getDataSource().store().load();\n let focusedLineItems = this.listOfLineItems.filter((item :any) => item.AssignedPhaseName == (e === \"Unassigned\" ? null:e));\n let recordsToBeIncluded: any[] = [];\n\n //also handles when same service date\n focusedLineItems.forEach((item :any) => {\n let ind = _.findIndex(this.listOfLineItems, (lineItem : any) => item.InvoiceLineItemId == lineItem.InvoiceLineItemId);\n let backInd = ind + 2;\n let frontInd = ind - 2;\n\n for(var i = 2; i > 0 ; i--){\n let backItm = backInd < this.listOfLineItems.length ? this.listOfLineItems[backInd] : undefined;\n let frontItm = frontInd >= 0 ? this.listOfLineItems[frontInd] : undefined;\n\n if(backItm && backItm.AssignedPhaseName != e) {\n recordsToBeIncluded.push(backInd);\n }\n if(frontItm && frontItm.AssignedPhaseName != e) {\n recordsToBeIncluded.push(frontInd);\n }\n\n backInd--;\n frontInd++;\n }\n\n recordsToBeIncluded.push(ind);\n });\n\n //get data per index\n let newDataSource: any[] = [];\n \n _.uniqBy(recordsToBeIncluded, item => item)\n .sort((a,b) => a - b)\n .forEach((indx : number) => {\n newDataSource.push(this.listOfLineItems[indx]);\n });\n\n if(newDataSource && newDataSource.length == 0) {\n this.clearFocus();\n }\n else {\n this.customDataSource = newDataSource;\n }\n }\n\n this.refreshDataGrid();\n }\n\n async mounted(): Promise {\n this.$root.$on(\"user-preference\", this.handleUserPreferenceChangeEvent);\n this.$root.$on(\"focused-phase-type\", this.handleFocusedPhaseTypeEvent);\n await this.getFontSizeFromUserSettings();\n\n this.infractionTypes = await this.infractionService.GetAllInfractionTypes();\n }\n\n private lastAssignedByTemplate(container: any, options: any): void {\n const value: string = options.data.LastAssignedBy; \n\n container.textContent = value.split(' ').map(s => s[0]).join('').toUpperCase(); \n }\n\n private servTemplate(container: any, options: any): void {\n const serviceDate = moment(options.data.ServiceDate).format(\"MM-DD-YYYY\");\n \n container.textContent = serviceDate;\n container.title = serviceDate; \n\n const inCurrentBatch: boolean = this.activeBatchIds && this.activeBatchIds.some(b => b === options.data.BatchId);\n\n container.style.fontWeight = inCurrentBatch ? \"bold\" : \"normal\";\n container.style.fontSize = `${(this.userFontSize + 2)}px`;\n container.style.textDecoration = \"none\"; \n }\n\n private amountTemplate(container: any, options: any): void {\n const num = parseFloat(options.data.LineItemTotal);\n\n if (!isNaN(num)) {\n const lineItemTotal = num.toLocaleString(undefined, {\n style: 'currency',\n currency: 'USD'\n });\n\n container.textContent = lineItemTotal;\n container.title = lineItemTotal;\n }\n \n const inCurrentBatch: boolean = this.activeBatchIds && this.activeBatchIds.some(b => b === options.data.BatchId);\n\n container.style.fontWeight = inCurrentBatch ? \"bold\" : \"normal\";\n container.style.fontSize = `${(this.userFontSize + 2)}px`;\n container.style.textDecoration = options.data.IsExempt ? \"line-through\" : \"none\";\n }\n\n private invTemplate(container: any, options: any): void {\n const invoiceNumber = options.data.InvoiceNumber;\n container.textContent = invoiceNumber;\n container.title = invoiceNumber;\n\n const inCurrentBatch: boolean = this.activeBatchIds && this.activeBatchIds.some(b => b === options.data.BatchId);\n\n container.style.fontWeight = inCurrentBatch ? \"bold\" : \"normal\";\n container.style.fontSize = `${(this.userFontSize + 2)}px`;\n container.style.textDecoration = \"none\";\n }\n\n private descTemplate(container: any, options: any): void {\n container.textContent = options.data.Description;\n if(options.data.FeeType !== FeeTypeNameEnum.Service) {\n container.style.paddingLeft = \"25px\";\n } \n }\n\n beforeDestroy() {\n this.lineItems.length=0;\n this.detachHandlers();\n this.$root.$off(\"user-preference\", this.handleUserPreferenceChangeEvent);\n this.$root.$off(\"focused-phase-type\", this.handleFocusedPhaseTypeEvent);\n }\n\n detachHandlers() {\n if(this.dxDataGrid) {\n this.dxDataGrid.off(\"cellDblClick\");\n this.dxDataGrid.off(\"cellHoverChanged\");\n this.dxDataGrid.off(\"cellPrepared\");\n this.dxDataGrid.off(\"contentReady\");\n this.dxDataGrid.off(\"contextMenuPreparing\");\n this.dxDataGrid.dispose();\n }\n }\n\n scrollToNewestRow() {\n this.dxDataGrid.clearSorting();\n let latestDate = this.lineItems.reduce((a, b) => { \n return a.DateCreated > b.DateCreated ? a : b \n }).DateCreated;\n let lineItem = this.lineItems.find(li => li.DateCreated == latestDate);\n \n if(lineItem != null) {\n let rowElement = this.dxDataGrid.getRowElement(this.dxDataGrid.getRowIndexByKey(lineItem.InvoiceLineItemId));\n let scrollView = this.dxDataGrid.getScrollable();\n if(rowElement) { \n scrollView.scrollToElement(rowElement);\n } \n } \n }\n\n scrollToTop() {\n if (this.selectedMatterChanged) {\n this.selectedMatterChanged = false;\n let scrollable = this.dxDataGrid.getScrollable();\n if (scrollable != undefined) {\n scrollable.scrollTo(0); \n }\n }\n }\n}\n","export enum MatterWorkTypeEnum {\n Coding = 0,\n Auditing = 1\n}\n\nexport enum MatterWorkTypeNameEnum {\n Coding = 'Coding',\n Auditing = 'Auditing'\n}\n\nexport enum MatterWorkSearchTypeEnum {\n Name = 'Name',\n Description = 'Description'\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-line-items.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-line-items.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./matter-work-line-items.vue?vue&type=template&id=107ab624&scoped=true&\"\nimport script from \"./matter-work-line-items.vue?vue&type=script&lang=ts&\"\nexport * from \"./matter-work-line-items.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./matter-work-line-items.vue?vue&type=style&index=0&id=107ab624&prod&lang=scss&scoped=true&\"\nimport style1 from \"./matter-work-line-items.vue?vue&type=style&index=1&id=107ab624&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"107ab624\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"phase-totals-and-overages\"},[_c('div',{staticClass:\"phase-totals-wrapper\"},[_c('dx-scroll-view',{staticClass:\"phase-totals\",attrs:{\"id\":\"scrollview\",\"showScrollbar\":\"onHover\",\"scrollByContent\":true,\"scrollByThumb\":true,\"direction\":\"horizontal\"}},[_c('ul',_vm._l((_vm.phaseTotals),function(item){return _c('li',{key:item.PhaseType},[_c('span',{staticClass:\"total-header\"},[_vm._v(_vm._s(item.PhaseType))]),_c('span',{staticClass:\"number-alignment\",style:('--phase-color: ' + item.RgbHex + '; background-color: var(--phase-color);')},[_vm._v(_vm._s(_vm._f(\"currency\")(item.Services)))]),_c('span',{staticClass:\"number-alignment\",style:('--phase-color: ' + item.RgbHex + '; background-color: var(--phase-color);')},[_vm._v(_vm._s(_vm._f(\"currency\")(item.Expenses)))]),_c('span',{staticClass:\"number-alignment\",style:('--phase-color: ' + item.RgbHex + '; background-color: var(--phase-color);')},[_vm._v(_vm._s(_vm._f(\"currency\")(item.Translations)))]),_c('span',{staticClass:\"number-alignment\",style:('--phase-color: ' + item.RgbHex + '; background-color: var(--phase-color);')},[_vm._v(_vm._s(_vm._f(\"currency\")(item.Total)))])])}),0)])],1),_c('div',{staticClass:\"matter-overages-wrapper\",attrs:{\"id\":\"overage-summary\"}},[(_vm.matterOverages.length)?_c('div',[_c('div',{staticClass:\"matter-overages-header\"},[_vm._v(\"Over Cap Details\")]),_c('dx-scroll-view',{staticClass:\"matter-overages\",attrs:{\"showScrollbar\":\"onHover\",\"scrollByContent\":true,\"scrollByThumb\":true,\"direction\":\"both\",\"height\":\"100\"}},[_c('ul',_vm._l((_vm.matterOverages),function(item,index){return _c('li',{key:index},[_c('div',{staticClass:\"overage-row\"},[_c('div',{staticClass:\"overage-row-phase-color-box\",style:('--phase-color: ' + item.RgbHex + '; background-color: var(--phase-color);')}),_c('div',{staticClass:\"overage-row-details-wrapper\"},[_c('div',{staticClass:\"overage-row-details-text\"},[_vm._v(_vm._s(item.AliasName)+\" - \"+_vm._s(_vm._f(\"currency\")(item.Total))+\" - \"+_vm._s(item.AgentName))]),_c('div',{staticClass:\"overage-row-details-warning\",style:(_vm.overageRowDetailsWarningStyle(item))},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"currency\")(item.Total - item.RuleValue))+\" Over \"+_vm._s(_vm._f(\"currency\")(item.RuleValue))+\" \"+_vm._s(item.TargetOrCap === 0 ? 'Cap' : 'Target')+\"\\n \")])])])])}),0)])],1):_vm._e(),_c('dx-load-panel',{attrs:{\"position\":_vm.position,\"visible\":_vm.gettingOverageDetails},on:{\"update:visible\":function($event){_vm.gettingOverageDetails=$event}}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum FeeSheetTypeEnum {\n Cap = 0,\n Target = 1\n}\n\nexport enum FeeSheetTypeNameEnum {\n Cap = 'Cap',\n Target = 'Target'\n}\n","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { FeeSheetRuleDto } from '../models/Fees/FeeSheetRuleDto';\nimport { InvoiceLineItemDto } from '../models/invoice/InvoiceLineItemDto';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\n\nexport class MattersService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/matters');\n }\n\n async getRulesForMatter(matterId: Guid): Promise {\n return await this.client.get(`/${matterId}/fee-sheet-rules`);\n }\n\n async getLineItems(matterId: Guid): Promise {\n return await this.client.get(`/${matterId}/line-items`);\n }\n\n public async getMatterBestRulesForOverage(matterId: Guid) {\n return await this.client.get(`/${matterId}/overages/rules`);\n }\n\n public async getExecutiveSummaryData(matterId: Guid,type: ExecutiveSummaryRequestEnum ) {\n return await this.client.get(`/${matterId}/executive-summary?type=${type}`);\n }\n}\n","export enum OveragesTypeEnum {\n HardOverage = \"HardOverage\",\n SoftOverage = \"SoftOverage\"\n }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { MatterWorkMatterDto } from '../../models/matter-work/MatterWorkMatterDto';\nimport { DxLoadPanel } from 'devextreme-vue';\nimport _ from 'lodash';\nimport { PhaseTotal } from '../../models/PhaseTotal';\nimport { AutoTextDataDto } from '../../models/auto-text/AutoTextDataDto';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { FeeTypeNameEnum } from '../../models/Fees/FeeTypeEnum';\nimport { MatterOverage } from '../../models/MatterOverage';\nimport { FeeSheetTypeEnum } from '../../models/Fees/FeeSheetTypeEnum';\nimport { FeeSheetRuleDto } from '../../models/Fees/FeeSheetRuleDto';\nimport { MattersService } from '../../service/MattersService';\nimport { FeeSheetRuleService } from '../../service/FeeSheetRuleService';\nimport { OveragesTypeEnum } from '../../models/audit/OveragesTypeEnum';\nimport { FeeBudgetRuleDto } from '../../models/fee-budgets/FeeBudgetRuleDto';\nimport {PhaseTaskEnum} from '../../models/PhaseTaskEnum';\nimport { MatterBestRulesForOverageDto } from '@/models/matter/MatterBestRulesForOverageDto';\n\n@Component({\n components: {\n DxScrollView,\n DxLoadPanel\n }\n})\nexport default class MatterTotals extends Vue {\n @Prop()\n matter!: MatterWorkMatterDto;\n\n get matterId(): Guid {\n return this.matter.MatterId;\n }\n\n @Prop()\n phaseTypes!: PhaseTypeDto[];\n\n @Prop()\n feeSheetRules!: FeeSheetRuleDto[];\n\n @Prop()\n feeBudgetRules!: FeeBudgetRuleDto[];\n\n @Prop()\n latestBatchIds!: Guid[];\n\n get activeBatchIds(): Guid[] {\n return this.latestBatchIds;\n }\n\n @Watch(\"matter.MatterId\")\n async onMatterChanged() {\n this.updateSummary();\n }\n position = { at: 'center', of:'#overage-summary'}\n gettingOverageDetails: boolean = false;\n mattersService: MattersService;\n autoTextData: AutoTextDataDto[] = [];\n dateFilter: any = (this.$options.filters as any);\n matterBestRuleForOverage: MatterBestRulesForOverageDto[] = [];\n\n get matterFeeSheetRules(): FeeSheetRuleDto[] {\n return this.feeSheetRules.filter(\n r =>\n r.ClientId === this.matter.ClientId &&\n (r.Country == null || r.Country.CountryCode === this.matter.CountryCode)\n );\n }\n\n get matterFeeBudgetRules() {\n return this.feeBudgetRules.filter(r => r.MatterId === this.matterId);\n }\n\n constructor() {\n super();\n this.mattersService = new MattersService();\n }\n\n get phaseTotals(): PhaseTotal[] {\n let lineItems = this.matter.LineItems;\n let groupedItems = _.groupBy(lineItems, i => i.AssignedPhaseName);\n\n let phases = Object.keys(groupedItems);\n let matterServicesTotal: number = 0;\n let matterExpensesTotal: number = 0;\n let matterTranslationTotal: number = 0;\n\n let result: PhaseTotal[] = _.map(groupedItems, (group, key) => {\n let services = _.sumBy(\n _.filter(group, i => i.FeeType === FeeTypeNameEnum.Service),\n i => i.IsExempt ? 0 : i.LineItemTotal\n );\n let expenses = _.sumBy(\n _.filter(group, i => i.FeeType === FeeTypeNameEnum.Expense),\n i => i.IsExempt ? 0 : i.LineItemTotal\n );\n let translations = _.sumBy(\n _.filter(group, i => i.FeeType === FeeTypeNameEnum.Translation),\n i => i.IsExempt ? 0 : i.LineItemTotal\n );\n\n matterServicesTotal += services;\n matterExpensesTotal += expenses;\n matterTranslationTotal += translations;\n\n let phaseType = _.find(this.phaseTypes, i => key === i.PhaseName);\n\n return {\n Services: services,\n Expenses: expenses,\n Translations: translations,\n PhaseType: key == null || key === 'null' ? 'Unassigned' : key,\n Total: services + expenses + translations,\n RgbHex: phaseType ? phaseType.RgbHex : undefined,\n PhaseOrder: phaseType ? phaseType.PhaseOrder : undefined\n };\n });\n\n result.sort(function(total1, total2) {\n let order1 = total1.PhaseOrder ? total1.PhaseOrder : 0\n let order2 = total2.PhaseOrder ? total2.PhaseOrder : 0\n return order1 - order2;\n });\n\n let total: PhaseTotal = {\n RgbHex: undefined,\n Services: matterServicesTotal,\n Expenses: matterExpensesTotal,\n Translations: matterTranslationTotal,\n PhaseType: 'Matter Total',\n Total: matterServicesTotal + matterExpensesTotal + matterTranslationTotal,\n PhaseOrder: undefined \n };\n\n result.push(total);\n result.unshift({\n Services: 'Services',\n Expenses: 'Expenses',\n Translations: 'Translations',\n PhaseType: '',\n Total: 'Total',\n RgbHex: undefined,\n PhaseOrder: undefined\n });\n return result;\n }\n\n overageRowDetailsWarningStyle(item: MatterOverage) {\n return {\n 'background-color': item.OverageType === OveragesTypeEnum.HardOverage\n ? 'rgba(255, 0, 0, 0.7)'\n : 'rgba(255, 255, 0, 0.7)'\n };\n }\n\n checkIfIsInCurrentBatch(batchId: Guid){\n return this.activeBatchIds && this.activeBatchIds.some(b => b == batchId);\n }\n\n beforeDestroy(): void {\n this.$root.$off(\"process-auto-text-value\", this.handleUserSettingChanged);\n this.$root.$off('updatenavmatters', this.updateSummary)\n }\n\n created() { \n this.loadData();\n }\n\n async mounted(): Promise {\n this.$root.$on(\"process-auto-text-value\", this.handleUserSettingChanged);\n this.$root.$on('updatenavmatters', this.updateSummary)\n }\n\n updateSummary() {\n this.gettingOverageDetails = true;\n this.mattersService.getMatterBestRulesForOverage(this.matter.MatterId)\n .then(result => {\n this.matterBestRuleForOverage = result;\n })\n .finally(() => {\n this.gettingOverageDetails = false\n });\n }\n async loadData() {\n this.updateSummary()\n }\n\n get matterOverages(): MatterOverage[] {\n let lineItems = this.matter.LineItems.filter(i => i.FeeType === FeeTypeNameEnum.Service);\n let groupedByAgent = _.groupBy(lineItems, i => i.AgentName);\n\n let result = _.flatMap(groupedByAgent, (linesByAgent, agentName) => {\n let groupedByPhase = _.groupBy(linesByAgent, i => i.AssignedPhaseTypeId);\n\n return _.flatMap(groupedByPhase, (linesByPhase, phaseTypeId) => {\n let overages: MatterOverage[] = [];\n let phaseType = this.phaseTypes.filter(t => t.PhaseTypeId === parseInt(phaseTypeId))[0];\n let lineItemsPhase = phaseType != null ? \n (phaseType.IsBatched ?\n linesByPhase.filter(i => this.activeBatchIds && this.activeBatchIds.includes(i.BatchId)) \n : linesByPhase) : [];\n\n if (phaseType != null && lineItemsPhase && lineItemsPhase.length > 0) {\n let phaseTypeId = phaseType.PhaseTypeId;\n let bestRule = this.matterBestRuleForOverage.find(m => m.AgentName == agentName && m.PhaseTypeId == phaseTypeId)\n\n if(bestRule) {\n let overage: MatterOverage = {\n AliasName: phaseType.PhaseName,\n RgbHex: phaseType.RgbHex,\n Total: bestRule.PhaseAgentTotal ? bestRule.PhaseAgentTotal : 0,\n RuleValue: bestRule.RuleType == FeeSheetTypeEnum.Cap ? \n (bestRule.CapAmount ? bestRule.CapAmount : 0) : \n (bestRule.TargetAmount ? bestRule.TargetAmount : 0),\n TargetOrCap: bestRule.RuleType,\n OverageType: bestRule.HardOrSoftOverage == 0 ? OveragesTypeEnum.SoftOverage : OveragesTypeEnum.HardOverage,\n AgentName: agentName,\n PhaseOrder: phaseType.PhaseOrder\n };\n\n if(bestRule.FeeSheetRuleId) {\n if (overages.filter(mo => mo.AliasName == phaseType.PhaseName).length != 0) {\n if (bestRule.RuleType == FeeSheetTypeEnum.Cap) {\n overages = overages.filter(mo => mo.TargetOrCap != FeeSheetTypeEnum.Target && mo.AliasName != phaseType.PhaseName);\n overages.push(overage);\n }\n } else {\n overages.push(overage);\n }\n }\n else{\n overages.push(overage);\n }\n }\n }\n return overages;\n });\n });\n\n return _.sortBy(result, o => o.PhaseOrder);\n }\n\n handleUserSettingChanged(done: any) {\n done(this.autoTextData);\n }\n}\n","export enum PhaseNames {\r\n drafting = 8,\r\n filing = 0,\r\n exam = 2,\r\n prosecution = 3,\r\n grant = 25,\r\n oneSixOneOneSixTwo = 6,\r\n appeal = 11,\r\n annuity = 14,\r\n ids = 9,\r\n publication = 4,\r\n postGrantReview = 13,\r\n validation = 5,\r\n pph = 10,\r\n noveltySearch = 7,\r\n idsCopies = 23,\r\n subsequentApplications = 24,\r\n misc = 22 \r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-totals.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-totals.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./matter-totals.vue?vue&type=template&id=1a0c3999&scoped=true&\"\nimport script from \"./matter-totals.vue?vue&type=script&lang=ts&\"\nexport * from \"./matter-totals.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./matter-totals.vue?vue&type=style&index=0&id=1a0c3999&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a0c3999\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":500,\"height\":\"auto\",\"show-title\":true,\"title\":\"Page Setup\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.saveCaseOrder}},[_c('div',[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Autoskip :\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('div',[_c('dx-check-box',{attrs:{\"value\":_vm.autoSkipValue,\"width\":40},on:{\"update:value\":function($event){_vm.autoSkipValue=$event}}})],1)])])]),_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Data table font size :\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-select-box',{attrs:{\"data-source\":_vm.fontSizesAvailable,\"value\":_vm.selectedFontSize,\"placeholder\":\"Select font size\",\"width\":40},on:{\"update:value\":function($event){_vm.selectedFontSize=$event}}})],1)])]),_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Set Case Display Order :\")]),_c('div',{staticClass:\"dx-field-value\"})])]),_c('div',{staticClass:\"grid-container\"},[_c('div',[_c('draggable',_vm._b({staticClass:\"list-group\",attrs:{\"tag\":\"ul\",\"draggable\":\".draggable\"},on:{\"start\":function($event){_vm.isDragging = true; _vm.errorResponseMessage = undefined},\"end\":function($event){_vm.isDragging = false}},model:{value:(_vm.sortableArray),callback:function ($$v) {_vm.sortableArray=$$v},expression:\"sortableArray\"}},'draggable',_vm.dragOptions,false),[_c('transition-group',{attrs:{\"type\":\"transition\",\"name\":!_vm.isDragging ? 'flip-list' : null}},_vm._l((_vm.sortableArray),function(element,index){return _c('li',{key:element.name,staticClass:\"list-group-item\",class:!element.fixed ? 'draggable': ''},[(!element.fixed)?_c('span',{staticClass:\"badge\"},[_vm._v(_vm._s(_vm.displayOrder(element, index)))]):_vm._e(),_c('span',{class:!element.fixed ? 'order-name':''},[_vm._v(_vm._s(element.name))]),(!element.fixed)?_c('dx-button',{attrs:{\"id\":\"setOrder\",\"icon\":\"close\",\"hint\":\"Unset\"},on:{\"click\":function($event){return _vm.unselectElement(element)}}}):_c('dx-button',{attrs:{\"id\":\"setOrder\",\"icon\":\"check\",\"hint\":\"Set\"},on:{\"click\":function($event){return _vm.unselectElement(element)}}})],1)}),0)],1)],1)]),_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Set Ordering Method :\")])])]),_c('div',{staticClass:\"grid-container\"},[_c('div',[_c('dx-radio-group',{attrs:{\"items\":_vm.orderingOptions,\"value\":_vm.selectedOrderingOption},on:{\"update:value\":function($event){_vm.selectedOrderingOption=$event}}})],1)]),(_vm.errorResponseMessage)?_c('div',{staticClass:\"error-message\"},[_c('span',[_vm._v(_vm._s(_vm.errorResponseMessage))])]):_vm._e(),_c('div',{staticClass:\"options\"},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.saveCaseOrder },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { DxButton, DxSelectBox, DxRadioGroup } from 'devextreme-vue';\nimport DxToolbar, { DxItem } from 'devextreme-vue/toolbar';\nimport CustomStore from 'devextreme/data/custom_store';\nimport CommonModule, { QuestelServicesClient } from '@questelservices/common';\nimport { Prop } from 'vue-property-decorator';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '../../store';\nimport { OrderCase } from '../../models/OrderCase';\nimport { UserSetting, UserSettingReportName, UserSettingName, OrderingMethod } from '@/models/UserSetting';\nimport { UserSettingFilter } from '../../models/UserSettingFilter';\nimport _ from \"lodash\";\nimport { UserService } from '@/service/UserService';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxCheckBox } from 'devextreme-vue/check-box';\n\nconst draggable = require('vuedraggable');\nconst commonState = getModule(CommonModule, store);\nconst CASE_ORDER_SELECTION = [\n \"Phase\",\n \"Country\",\n \"Agent\",\n \"Filing Type\"\n]\n\nconst FONT_SIZES_AVAILABLE = [\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20\n]\n\n@Component({\n components: {\n draggable,\n DxButton,\n DxSelectBox,\n DxToolbar,\n DxItem,\n Popup,\n DxCheckBox,\n DxRadioGroup\n }\n})\nexport default class PhaseAssignmentOrderSetupDialog extends Vue {\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) { \n this.$emit(\"hiding\");\n } \n\n @Watch(\"showDialog\")\n async onPropertyChanged(value: boolean, oldValue: boolean) {\n if(value){\n this.errorResponseMessage = undefined\n this.isDragging = true;\n let dbValCaseOrder = await this.getDataSource();\n this.sortableArray = dbValCaseOrder;\n this.selectedFontSize = await this.getUserPreferenceFontSize() || 12;\n this.autoSkipValue = await this.getAutoskipPreference();\n this.selectedOrderingOption = await this.getOrderingMethodPreference();\n this.isDragging = false;\n }\n }\n\n get dragOptions() {\n return {\n animation: 200,\n group: \"description\",\n disabled: false,\n ghostClass: \"ghost\"\n }\n }\n\n private orderingOptions: string[] = [\n OrderingMethod.ByMatterName,\n OrderingMethod.ByServiceCost,\n OrderingMethod.ByTotalCost \n ];\n\n private selectedOrderingOption: string = OrderingMethod.ByMatterName;\n \n isDragging: boolean = true;\n sortableArray: OrderCase[] = [];\n userService: UserService;\n option: UserSettingFilter = {\n reportName: UserSettingReportName.ManualCoding,\n name : UserSettingName.CaseDisplayOrder\n }\n optionUserPref: UserSettingFilter = {\n reportName: UserSettingReportName.UserPreference,\n name : UserSettingName.DataTableFontSize\n }\n autoSkipPref: UserSettingFilter = {\n reportName: UserSettingReportName.UserPreference,\n name : UserSettingName.AutoSkip\n }\n private orderingPref: UserSettingFilter = {\n reportName: UserSettingReportName.ManualCoding,\n name: UserSettingName.OrderingMethod\n };\n errorResponseMessage:string | undefined = \"undefined\";\n accountId: number | undefined;\n fontSizesAvailable: number[] = FONT_SIZES_AVAILABLE;\n selectedFontSize: number = 12;\n autoSkipValue: boolean = false;\n\n constructor() {\n super();\n this.userService = new UserService(); \n }\n\n getDataSource(): Promise | undefined { \n return this.userService.getUserSettingsWithFilter(this.option)\n .then((result : UserSetting[]) => {\n if (!result) {\n throw result;\n }\n\n if(result.length > 0) {\n let dbVal = _.orderBy(result, u => u.SortOrder, ['asc']);\n\n let mappedDbVal = dbVal.map((item : UserSetting)=> {\n let res : string = item.Value;\n\n return res;\n });\n\n return _.union(mappedDbVal, CASE_ORDER_SELECTION).map((item: string)=> {\n let res: OrderCase = {\n name : item,\n fixed : dbVal.length > 0 ? (_.find(dbVal, i => i.Value === item) ? false : true) : true\n }\n\n return res;\n });\n }\n\n return CASE_ORDER_SELECTION.map((item: string)=> {\n let res: OrderCase = {\n name : item,\n fixed : true\n }\n\n return res;\n });\n })\n .catch(result => {\n if (result && result.Message) {\n throw result.Message;\n } else {\n throw \"Error loading data.\";\n }\n\n return undefined;\n }); \n } \n\n private getAutoskipPreference(): Promise | undefined { \n return this.userService.getUserSettingsWithFilter(this.autoSkipPref)\n .then((result: UserSetting[]) => {\n let autoSkip = _.find(result, (item:UserSetting) => {\n return item.ReportName === UserSettingReportName.UserPreference &&\n item.Name === UserSettingName.AutoSkip;\n }) || false;\n\n return (autoSkip ? autoSkip.Value == 'true': false);\n })\n .catch((err: any) => false);\n }\n\n private getUserPreferenceFontSize() : Promise | undefined { \n return this.userService.getUserSettingsWithFilter(this.optionUserPref)\n .then((result : UserSetting[]) => {\n var fontSize = _.find(result, (item:UserSetting) => {\n return item.ReportName === UserSettingReportName.UserPreference &&\n item.Name === UserSettingName.DataTableFontSize;\n });\n\n return fontSize ? +fontSize.Value : fontSize;\n })\n .catch(result => {\n if (result && result.Message) {\n throw result.Message;\n } else {\n throw \"Error loading data.\";\n }\n\n return undefined;\n });\n }\n\n private getOrderingMethodPreference(): Promise | undefined { \n return this.userService.getUserSettingsWithFilter(this.orderingPref)\n .then((result: UserSetting[]) => { \n let orderingMethod = _.find(result, (item: UserSetting) => {\n return item.ReportName === UserSettingReportName.ManualCoding &&\n item.Name === UserSettingName.OrderingMethod;\n });\n \n return orderingMethod ? orderingMethod.Value : OrderingMethod.ByMatterName;\n })\n .catch((err: any) => false);\n }\n\n displayOrder(element: OrderCase, index: number): string {\n let elem = element;\n let result: string = \"\";\n\n if(!elem.fixed) {\n result = (index + 1).toString();\n }\n\n return result;\n }\n\n unselectElement(element: OrderCase): void {\n this.errorResponseMessage = undefined;\n\n element.fixed = !element.fixed;\n\n this.sortableArray = _.sortBy(this.sortableArray, u => u.fixed);\n }\n\n async saveCaseOrder() {\n this.errorResponseMessage = undefined;\n let hasError: boolean = false;\n\n await Promise.all([this.saveUserPref(), this.saveAutoSkip(), this.saveManualCaseOrder() ])\n .then(success => { \n let userSettings: UserSetting[] = [];\n success.forEach(element => {\n if(element.Success && element.Data && element.Data.length > 0) {\n element.Data.forEach((elem : any)=> {\n userSettings.push(elem);\n })\n \n }\n });\n\n this.$root.$emit(\"user-settings-changed\", userSettings);\n this.showingDialog = false;\n })\n .catch(err => {\n this.errorResponseMessage = \"Failed to save database.\";\n });\n }\n\n hidingDialog() {\n this.showingDialog = false;\n }\n\n saveAutoSkip() : Promise {\n let autoSkip : UserSetting[] = [\n {\n ReportName : UserSettingReportName.UserPreference,\n Name : UserSettingName.AutoSkip,\n Value : this.autoSkipValue.toString(),\n SortOrder : undefined\n }\n ]\n\n return this.userService.insertUserSettings(autoSkip, this.autoSkipPref)\n .then(success => {\n\n this.$emit('on-auto-skip-changed', this.autoSkipValue);\n return success;\n })\n .catch( error => {\n return [];\n });\n }\n\n saveUserPref() : Promise {\n let userPref : UserSetting[] = [ \n {\n ReportName : UserSettingReportName.UserPreference,\n Name : UserSettingName.DataTableFontSize,\n Value : this.selectedFontSize.toString(),\n SortOrder : undefined\n }\n ];\n return this.userService.insertUserSettings(userPref, this.optionUserPref)\n .then(success => {\n this.$root.$emit(\"user-preference\", this.selectedFontSize);\n return success;\n })\n .catch( error => {\n return [];\n });\n }\n\n private async saveManualCaseOrder() : Promise {\n let toSave = _.filter(this.sortableArray, i => !i.fixed).map((item: OrderCase) => {\n if(!item.fixed) {\n let model : UserSetting = {\n\n ReportName : UserSettingReportName.ManualCoding,\n Name : UserSettingName.CaseDisplayOrder,\n Value : item.name,\n SortOrder : this.sortableArray.indexOf(item) + 1\n }\n\n return model;\n }\n });\n\n let resultCaseOrder = await this.userService.insertUserSettings((toSave as UserSetting[]), this.option);\n\n let orderingMethod : UserSetting =\n {\n ReportName : UserSettingReportName.ManualCoding,\n Name : UserSettingName.OrderingMethod,\n Value : this.selectedOrderingOption,\n SortOrder : undefined\n }; \n \n let resultOrdeMethod = await this.userService.insertUserSettings([ orderingMethod ], this.orderingPref);\n\n toSave.push(orderingMethod);\n\n this.$emit('case-display-order-saved', toSave);\n\n return resultCaseOrder.Success && resultOrdeMethod.Success; \n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment_order-setup-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment_order-setup-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-assignment_order-setup-dialog.vue?vue&type=template&id=84dcce7c&scoped=true&\"\nimport script from \"./phase-assignment_order-setup-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-assignment_order-setup-dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-assignment_order-setup-dialog.vue?vue&type=style&index=0&id=84dcce7c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"84dcce7c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"filing-type-container\"}},[_c('div',{staticClass:\"filing-inline-components\"},[_c('dx-select-box',{attrs:{\"data-source\":_vm.filingTypes,\"value\":_vm.filingTypeValue,\"display-expr\":\"Name\",\"value-expr\":\"FilingTypeId\"},on:{\"valueChanged\":_vm.onSelection}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showLoad),expression:\"showLoad\"}],staticClass:\"filing-inline-components\"},[_c('dx-load-indicator',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showCheck),expression:\"!showCheck\"}],attrs:{\"id\":\"small-indicator\",\"height\":15,\"width\":15}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCheck),expression:\"showCheck\"}],staticClass:\"dx-icon-check\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export interface FilingTypeDto {\n FilingTypeId?: number | null;\n Name: string;\n}\n\nexport class ChangeFilingTypeDto {\n /**\n *\n */\n constructor(FilingType: number, MatterId: Guid) {\n this.FilingType = FilingType;\n this.MatterId = MatterId;\n }\n FilingType: number;\n MatterId: Guid;\n}\n\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport { Component, Watch, Prop, Emit } from 'vue-property-decorator';\nimport { DxSelectBox } from 'devextreme-vue';\nimport { DxLoadIndicator } from 'devextreme-vue/load-indicator'\nimport { FilingTypeDto, ChangeFilingTypeDto } from '@/models/FilingTypeDto'\nimport { FilingTypeService } from '@/service/FilingTypeService'\nimport { MatterWorkMatterDto } from '../models/matter-work/MatterWorkMatterDto';\n\n@Component({\n components: {\n DxSelectBox,\n DxLoadIndicator\n }\n})\nexport default class FilingType extends Vue {\n\n @Prop({ required: true })\n filingTypes!: FilingTypeDto[];\n\n @Prop()\n matter!: MatterWorkMatterDto;\n\n private filingTypeService: FilingTypeService;\n private showLoad: boolean = false;\n private showCheck: boolean = false;\n\n get filingTypeValue () {\n return this.matter.FilingTypeId;\n }\n\n private debounceTime: any;\n\n constructor() {\n super();\n this.filingTypeService = new FilingTypeService();\n }\n\n private onSelection(event: any) {\n if(this.debounceTime){\n clearTimeout(this.debounceTime);\n }\n if(event.value != this.filingTypeValue) {\n \n let matterId: string = this.matter.MatterId;\n this.debounceTime = setTimeout(() => {\n this.showLoad = true;\n let dto: ChangeFilingTypeDto = new ChangeFilingTypeDto(event.value,matterId);\n this.filingTypeService.changeType(dto)\n .then(result => {\n this.showCheck = true;\n this.update(dto);\n })\n .catch(error => {\n console.error(error);\n })\n .finally(() => {\n setTimeout(() => { \n this.showLoad=false;\n this.showCheck = false; \n },1000);\n });\n }, 500);\n }\n }\n\n @Emit()\n update(dto: ChangeFilingTypeDto) {\n return dto;\n }\n}\n","export enum FilingTypeEnum {\n Patent = 0,\n Design = 1,\n Trademark = 2,\n UtilityModel = 3,\n Litigation = 4\n}\n\nexport enum FilingTypeNameEnum {\n Patent = 'Patent',\n Design = 'Design',\n Trademark = 'Trademark',\n UtilityModel = 'Utility Model',\n Litigation = 'Litigation'\n}\n\nexport function getFilingTypeName(filingTypeId: number) {\n switch(filingTypeId) {\n case FilingTypeEnum.Patent:\n return FilingTypeNameEnum.Patent;\n case FilingTypeEnum.Design:\n return FilingTypeNameEnum.Design; \n case FilingTypeEnum.Trademark:\n return FilingTypeNameEnum.Trademark; \n case FilingTypeEnum.UtilityModel:\n return FilingTypeNameEnum.UtilityModel;\n case FilingTypeEnum.Litigation:\n return FilingTypeNameEnum.Litigation;\n default:\n return \"No Filing Type\"\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filing-type.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./filing-type.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./filing-type.vue?vue&type=template&id=5666be66&scoped=true&\"\nimport script from \"./filing-type.vue?vue&type=script&lang=ts&\"\nexport * from \"./filing-type.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./filing-type.vue?vue&type=style&index=0&id=5666be66&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5666be66\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.componentReady)?_c('div',{staticClass:\"matter-work-navigation\"},[_c('div',{staticClass:\"totals-container\"},[_vm._v(\"\\n \"+_vm._s(_vm.caseCount())+\"\\n \"),_c('br'),_vm._v(\"\\n \"+_vm._s(_vm.reviewedCount())+\" \\n \")]),_c('div',{staticClass:\"navigation-buttons-container\"},[_c('dx-button',{staticClass:\"navigation-button\",attrs:{\"text\":\"<<\",\"type\":\"default\"},on:{\"click\":function($event){return _vm.prevActiveCase()}}}),_c('dx-button',{staticClass:\"navigation-button\",attrs:{\"text\":\"<\",\"type\":\"default\"},on:{\"click\":function($event){return _vm.prevCase()}}}),_c('dx-button',{staticClass:\"navigation-button\",attrs:{\"text\":\">\",\"type\":\"default\"},on:{\"click\":function($event){return _vm.nextCase()}}}),_c('dx-button',{staticClass:\"navigation-button\",attrs:{\"text\":\">>\",\"type\":\"default\"},on:{\"click\":function($event){return _vm.confirmAllMatters()}}})],1),_c('dx-radio-group',{attrs:{\"items\":_vm.textSearchOptions,\"value\":_vm.selectedTextSearchOption,\"layout\":\"horizontal\"},on:{\"update:value\":function($event){_vm.selectedTextSearchOption=$event},\"option-changed\":_vm.textSearchOptionChanged}}),_c('dx-tree-list',{ref:\"dxTreeList\",attrs:{\"show-column-headers\":false,\"show-row-lines\":false,\"word-wrap-enabled\":true,\"height\":\"85%\",\"data-source\":_vm.getNavItems,\"data-structure\":\"plain\",\"key-expr\":\"itemKey\",\"parent-id-expr\":\"parentKey\",\"hover-state-enabled\":true,\"selection\":{ mode: 'single' },\"selected-row-keys\":[_vm.selectedItemId],\"repaint-changes-only\":true},on:{\"selectionChanged\":_vm.treeListSelectionChanged}},[_c('dx-search-panel',{attrs:{\"visible\":true,\"searchVisibleColumnsOnly\":false,\"text\":_vm.searchText},on:{\"update:text\":function($event){_vm.searchText=$event}}}),_c('dx-column',{attrs:{\"allow-search\":_vm.selectedTextSearchOption === 'Name',\"data-field\":\"text\",\"cell-template\":_vm.matterTemplate}}),_c('dx-column',{attrs:{\"visible\":false,\"allow-search\":_vm.selectedTextSearchOption === 'Description',\"data-field\":\"matterWork.LineItemDescriptionList\"}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { MatterWorkMatterDto } from '@/models/matter-work/MatterWorkMatterDto';\nimport { MatterWorkTypeEnum, MatterWorkSearchTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport { sortBy } from 'lodash';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { DxButton, DxRadioGroup } from 'devextreme-vue';\nimport { DxTreeList, DxColumn, DxSearchPanel } from 'devextreme-vue/tree-list';\nimport { UserService } from '@/service/UserService';\nimport { UserSetting, UserSettingName, OrderingMethod } from '@/models/UserSetting';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { FilingTypeEnum, FilingTypeNameEnum, getFilingTypeName } from '@/models/matter/FilingTypeEnum';\nimport { BatchService } from '@/service/BatchService';\nimport _ from 'lodash';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store'\nimport MatterWorkModule from '@/store/MatterWorkModule'\nimport { AuditingService } from '@/service/AuditingService';\nimport { MatterOverageDNSDto } from '@/models/audit/MatterOverageDNSDto';\nimport { MatterOverageMilestoneDto } from '@/models/audit/MatterOverageMilestoneDto';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { MatterDetails, NavigationDetails, NavigationFlattened, NavigationItems } from '@/models/matter-work/NavigationDetails';\n\n@Component({\n components: {\n DxButton,\n DxTreeList,\n DxColumn,\n DxSearchPanel,\n DxRadioGroup\n }\n})\nexport default class MatterWorkNavigator extends Vue {\n @Prop()\n matterWorkId!: Guid;\n\n @Prop()\n phaseTypes!: Array;\n\n @Prop()\n isAutoSkip!: boolean;\n\n // Flag for Auditing or Coding page functionality\n @Prop()\n pageType!: MatterWorkTypeEnum;\n\n @Prop()\n selectedMatterNav!: MatterWorkMatterDto\n\n codingType = MatterWorkTypeEnum.Coding;\n auditingType = MatterWorkTypeEnum.Auditing; \n\n @Prop()\n userReviewedMode!: boolean;\n\n milestones: MatterOverageMilestoneDto[] = [];\n\n constructor() {\n super();\n this.batchService = new BatchService();\n }\n\n private matterTemplate(container: any, options: any): void { \n const text = options.data.text; \n \n if(this.pageType === MatterWorkTypeEnum.Coding && this.userReviewedMode === true) {\n const check: string = options.data.userReviewed && options.data.details.MatterId ? '✓' : ''; \n container.innerHTML = `${options.data.text} ${check}`; \n }\n else if(this.pageType === MatterWorkTypeEnum.Coding) { \n const check: string = options.data.allConfirmed && options.data.details.MatterId ? '✓' : '';\n container.innerHTML = `${text} ${check}`; \n }\n else if(this.pageType === MatterWorkTypeEnum.Auditing) { \n const check: string = options.data.audited && options.data.details && options.data.details.MatterId ? '✓' : '';\n container.innerHTML = `${text} ${check}`;\n } \n }\n\n private caseCount(): string {\n return `Case ${this.selectedMatterIndex + 1} of ${Object.keys(this.matterDetails).length}`;\n }\n\n private reviewedCount(): string { \n if(this.pageType === MatterWorkTypeEnum.Coding && this.userReviewedMode === true) {\n const unReviewedMatterItemCount = Object.keys(_.pickBy(this.matterDetails, x => !x.UserReviewed)).length; \n return `${unReviewedMatterItemCount} Unreviewed`;\n }\n else if(this.pageType === MatterWorkTypeEnum.Coding) {\n const unconfirmedMatterItemCount = Object.keys(_.pickBy(this.matterDetails, x=>!x.AllLineItemsConfirmed)).length;\n return `${unconfirmedMatterItemCount} Unconfirmed`;\n }\n else if(this.pageType === MatterWorkTypeEnum.Auditing) {\n const auditedMatterItemCount = Object.keys(_.pickBy(this.matterDetails, x=>x.Audited)).length; \n return `${auditedMatterItemCount} Reviewed`;\n }\n\n console.error(\"No unreviewed/unconfirmed/reviewed count.\");\n return \"\";\n }\n\n private get IsAutoSkip(){\n return this.isAutoSkip;\n }\n\n private get selectedMatterId(): Guid | null {\n return this.matterWorkModule.selectMatterId;\n }\n\n private get selectedMatter(): MatterWorkMatterDto | null { \n return this.matterWorkModule.selectMatter;\n }\n\n private get selectedMatterIndex() {\n let uniqueNavItems = _.uniqBy(this.navItems.filter(x=>!x.isParent), x=>x.details!.MatterId);\n return uniqueNavItems.findIndex(x=>x.details!.MatterId === this.selectedMatterId);\n }\n\n private selectedItemId: string = '';\n private userService: UserService = new UserService();\n private auditingService: AuditingService = new AuditingService();\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n componentReady: boolean = false;\n caseDisplayOrder: string[] = ['Country', 'Agent', 'Phase', 'Filing Type'];\n private orderMethod: string = OrderingMethod.ByMatterName;\n matterWorkModule = getModule(MatterWorkModule, store);\n private matterDetails: MatterDetails = {};\n private navigationFlattened: Array = [];\n private navigationChangeTimeout: any;\n \n batchService: BatchService;\n private textSearchOptions: string[] = [MatterWorkSearchTypeEnum.Name, MatterWorkSearchTypeEnum.Description];\n private selectedTextSearchOption: string = MatterWorkSearchTypeEnum.Name;\n private shouldShowRelease: boolean = false;\n private isDisposed: boolean = false;\n\n private _searchText: string = '';\n get searchText() {\n return this._searchText;\n }\n set searchText(newValue: string) { \n if(newValue === '') { \n // The UI has not yet been updated (all nodes collapsed) when the search text has changed, so wait to re-select the current item until this has finished (hopefully)\n setTimeout(() => {\n this.scrollToId(this.selectedItemId);\n }, 250);\n }\n this._searchText = newValue;\n }\n\n created() { \n this.loadData();\n }\n\n mounted() {\n this.$root.$on('updatenavmatters', this.updateNavMatters);\n this.$root.$on('matter-deleted', this.handleRemovingOfMatter);\n this.$root.$on('updatetargetmatter', this.updateTargetMatter);\n }\n\n handleRemovingOfMatter(matterId: any) {\n if(!_.some(this.navigationFlattened, x => x.MatterId != matterId)) { \n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n this.$router.push({name: 'auditing-work'});\n }\n else{\n this.$router.push({name: 'coding-work'});\n }\n }\n else {\n this.changeCase('next');\n this.updateMatterList(matterId);\n }\n }\n \n updateTargetMatter(clientMatterId: string, countryCode: string) {\n let matter = this.navigationFlattened.find(nf => nf.ClientMatterId == clientMatterId && nf.CountryCode == countryCode);\n if (matter !== undefined) {\n this.updateNavMatters(matter.MatterId);\n }\n }\n\n updateNavMatters(matterId: any) { \n if(matterId == null || typeof(matterId) != \"string\") {\n matterId= this.selectedMatterId;\n }\n this.updateMatterList(matterId);\n }\n\n async loadData() {\n this.componentReady = false;\n let mattersData = await this.client.get(`/api/MatterWorks/${this.matterWorkId}/navigation`);\n if(mattersData) {\n Object.assign(this.matterDetails, mattersData.Details);\n this.navigationFlattened = mattersData.NavigationItems;\n\n let matterWorkmatters = Object.values(this.matterDetails);\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n this.shouldShowRelease = !_.every(matterWorkmatters, x=>x.Audited === true);\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding && this.userReviewedMode) {\n this.shouldShowRelease = !_.every(matterWorkmatters, x=>x.UserReviewed === true);\n }\n else {\n this.shouldShowRelease = !_.every(matterWorkmatters, x=>x.AllLineItemsConfirmed === true);\n }\n }\n\n if(this.navigationFlattened.length) {\n let activeBatchIds = await this.batchService.getActiveBatchIds(this.clientId);\n this.matterWorkModule.setActiveBatchIds(activeBatchIds);\n }\n\n if(this.pageType == this.auditingType) {\n await this.auditingService.getAllMatterOverageDNS(this.clientId)\n .then(result => {\n let matterOveragesDNS: MatterOverageDNSDto[] = result;\n matterOveragesDNS.forEach(x=> {\n let phase = this.phaseTypes.find(z=>z.PhaseTypeId ==x.PhaseTypeId);\n x.PhaseTypeName = phase ? phase.PhaseName : \"\";\n });\n this.matterWorkModule.setMatterOverageDNS(matterOveragesDNS)\n });\n }\n \n await this.refreshCaseDisplayOrder();\n }\n\n get clientId(): Guid {\n return Object.values(this.matterDetails)[0].ClientId;\n }\n\n private auditingHeaders: Array = [\n {\n text: 'Hard Overages',\n parentKey: null,\n itemKey: 'HardOverages',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Cap',\n parentKey: 'HardOverages',\n itemKey: 'HardOveragesCap',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Target',\n parentKey: 'HardOverages',\n itemKey: 'HardOveragesTarget',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Soft Overages',\n parentKey: null,\n itemKey: 'SoftOverages',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Cap',\n parentKey: 'SoftOverages',\n itemKey: 'SoftOveragesCap',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Target',\n parentKey: 'SoftOverages',\n itemKey: 'SoftOveragesTarget',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Infractions',\n parentKey: null,\n itemKey: 'Infractions',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Notes',\n parentKey: null,\n itemKey: 'Notes',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Internal Notes',\n parentKey: 'Notes',\n itemKey: 'InternalNotes',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Analysis Notes',\n parentKey: 'Notes',\n itemKey: 'ReportLanguage',\n isParent: true,\n details: {} as any,\n level: -1\n },\n {\n text: 'Do Not Send',\n parentKey: null,\n itemKey: 'DoNotSend',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Potential Issues',\n parentKey: null,\n itemKey: 'PotentialIssues',\n isParent: true,\n details: {} as any,\n level: -2\n },\n {\n text: 'Issues Removed',\n parentKey: null,\n itemKey: 'IssuesRemoved',\n isParent: true,\n details: {} as any,\n level: -2\n }\n ]\n\n async refreshCaseDisplayOrder(settings?: UserSetting[]) {\n if(this.isDisposed) {\n return;\n }\n \n if(!settings) {\n settings = await this.userService.getUserSettingsWithFilter({ reportName: 'ManualCoding', name: '' });\n } \n\n const orderMethod: UserSetting = settings.filter(s => s.Name == UserSettingName.OrderingMethod)[0]; \n if(orderMethod) {\n this.orderMethod = orderMethod.Value;\n } \n \n settings = settings.filter(s => s.Name !== UserSettingName.OrderingMethod);\n let sortedSettings = sortBy(settings, s => s.SortOrder);\n this.caseDisplayOrder = sortedSettings.map(s => s.Value);\n this.removeAllDataForRecalculation();\n this.navItems.length = 0;\n this.navItems = this.pageType == MatterWorkTypeEnum.Auditing ? this.createAuditingNavigationItems(): this.createNavigationItems();\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n this.updateAuditingHeaders();\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding) {\n this.updateCodingHeaders(this.userReviewedMode);\n }\n this.updateParentStyling();\n this.componentReady = true; \n\n // After component is ready, wait for tree list to render to select the first item\n await this.$nextTick();\n\n this.selectFirstMatter();\n }\n\n private selectFirstMatter() {\n let firstMatter: NavigationItems | undefined;\n \n if (this.pageType == MatterWorkTypeEnum.Auditing) {\n firstMatter = _.find(this.navItems, x=> !x.isParent && !x.audited)\n } else if (this.pageType == MatterWorkTypeEnum.Coding && this.userReviewedMode) {\n firstMatter = _.find(this.navItems, x=> !x.isParent && !x.userReviewed);\n } else {\n firstMatter = _.find(this.navItems, x=> !x.isParent && !x.allConfirmed);\n }\n \n // This is unlikely, but if no unconfirmed matters, then select the first one\n if (!firstMatter) {\n firstMatter = _.find(this.navItems, x=> !x.isParent);\n } \n this.updateSelectedItem(firstMatter); \n }\n\n private getTreeListNodeParents(childNode: DevExpress.ui.dxTreeListNode) : DevExpress.ui.dxTreeListNode[] {\n let node = childNode;\n let nodes = [];\n while(node && node.parent) {\n nodes.unshift(node.parent);\n node = node.parent;\n }\n return nodes;\n }\n\n private treeListSelectionChanged(e: any): void { \n if(e.component.isReady()) {\n let selectedData: NavigationItems = e.selectedRowsData[0];\n let previousSelectedData = e.currentDeselectedRowKeys[0]\n\n if(!selectedData) {\n return;\n }\n\n if(selectedData.isParent) {\n e.component.deselectRows([selectedData.itemKey]);\n e.component.selectRows([previousSelectedData]);\n return;\n }\n\n // If the selection was changed programmatically (for example, via a keyboard shortcut or button click) the selectedItemId will already be set\n // If not (such as via a click on the navigator), then the selected item needs to be updated \n if(selectedData.itemKey !== this.selectedItemId) {\n this.updateSelectedItem(selectedData);\n }\n\n // Collapse nodes after changing\n let dxTreeList = e.component as DevExpress.ui.dxTreeList;\n \n // Get old and new parent nodes\n let oldSelectedNode = dxTreeList.getNodeByKey(e.currentDeselectedRowKeys[0]);\n let deselectedParentNodes = this.getTreeListNodeParents(oldSelectedNode);\n let newSelectedNode = dxTreeList.getNodeByKey(selectedData.itemKey);\n let newParentNodes = this.getTreeListNodeParents(newSelectedNode);\n\n // Filter to only parent nodes not in the new list\n let nodesToCollapse = deselectedParentNodes.filter(oldNode => !newParentNodes.some(newNode => newNode.key === oldNode.key)); \n \n // Collapse any old nodes, and expand all new ones\n nodesToCollapse.forEach(n => dxTreeList.collapseRow(n.key));\n newParentNodes.forEach(n => dxTreeList.expandRow(n.key));\n\n // Try to scroll to the newly selected id\n this.scrollToId(selectedData.itemKey);\n }\n }\n\n private textSearchOptionChanged(e: any): void { \n const dxTreeList = ((this.$refs.dxTreeList as any).instance as DevExpress.ui.dxTreeList);\n dxTreeList.clearFilter();\n }\n\n private async scrollToId(id: string) { \n if(this.$refs.dxTreeList) {\n // TODO: Fix issue with scrolling up to top\n await this.$nextTick();\n let dxTreeList = ((this.$refs.dxTreeList as any).instance as DevExpress.ui.dxTreeList);\n dxTreeList.navigateToRow(id);\n }\n }\n\n private updateSelectedItem(item: NavigationItems | undefined): void { \n if(this.isDisposed) {\n return;\n }\n\n if (item && item.itemKey) {\n this.selectedItemId = item.itemKey;\n this.currentSelectedIndex = _.findIndex(_.cloneDeep(this.navItems.filter(x=> x.isParent == false)), ni => ni.itemKey == item.itemKey);\n var selectedMatter = _.clone(this.matterDetails[item.details!.MatterId]);\n selectedMatter.LineItems = [];\n this.matterWorkModule.setSelectedMatter(selectedMatter);\n this.matterWorkModule.setSelectedMatterId(item.details!.MatterId);\n this.scrollToId(item.itemKey);\n\n // if(this.navigationChangeTimeout) {\n // clearTimeout(this.navigationChangeTimeout);\n // }\n // this.navigationChangeTimeout = setTimeout(()=>{\n // this.client.get(`/api/manualcoding/${item.details!.MatterId}/line-items`)\n // .then(x=>{\n // if(this.selectedMatter){\n // this.selectedMatter.LineItems = x;\n // }\n // }).catch(x=> {\n // if(this.selectedMatter) {\n // this.selectedMatter.LineItems=[]\n // }\n \n // });\n // },250) \n }\n }\n\n prevCase() {\n this.changeCase('prev',false);\n }\n nextCase() {\n this.changeCase('next',false);\n }\n prevActiveCase() {\n this.changeCase('prev', true);\n }\n nextActiveCase() {\n this.changeCase('next', true);\n }\n\n private currentSelectedIndex: number = -1;\n changeCase(direction: 'prev' | 'next', active: boolean = false, targetId: string | null = null) {\n let idToCheck = targetId || this.selectedItemId; \n if(this.navItems && this.navItems.length) {\n let loopItems = this.loopItems();\n\n if(this.pageType == MatterWorkTypeEnum.Auditing && active){\n loopItems = loopItems.filter(x=>!x.audited || x.itemKey == idToCheck);\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding && this.userReviewedMode && active) {\n loopItems = loopItems.filter(x=>!x.userReviewed || x.itemKey == idToCheck);\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding && active){\n loopItems = loopItems.filter(x=>!x.allConfirmed || x.itemKey == idToCheck);\n }\n\n //try re-assigning if ever all are confirmed/audited/userreviewed\n if(loopItems.length <= 1) {\n loopItems = this.loopItems();\n }\n\n //if items are still empty then stop\n if(loopItems.length <= 1) {\n return;\n }\n\n if(direction == 'prev') {\n loopItems = _.reverse(loopItems);\n } \n\n let currentIndex = _.findIndex(loopItems, x=> x.itemKey == idToCheck);\n if(currentIndex < 0) {\n //it was removed :|_.cloneDeep(this.navItems.filter(x=> x.isParent == false)\n let addIndex = -1;\n if(direction == 'prev') {\n addIndex = 0;\n }\n\n let newKeyWithIndex = _.cloneDeep(this.navItems.filter(x=> x.isParent == false))[this.currentSelectedIndex+addIndex];\n if(newKeyWithIndex) {\n this.changeCase(direction,active,newKeyWithIndex.itemKey);\n return;\n }\n }\n let nextIndex=currentIndex+1;\n let nextNav: NavigationItems = loopItems[nextIndex%loopItems.length];\n if(nextNav) {\n this.updateSelectedItem(nextNav);\n }\n }\n }\n\n private loopItems() {\n if(this.navItems != null && this.navItems.length) {\n if(this.selectedTextSearchOption == MatterWorkSearchTypeEnum.Name && this._searchText) {\n return this.navItems.filter(x=> x.isParent == false && x.text.toLowerCase().includes(this._searchText.toLowerCase()));\n }\n\n if(this.selectedTextSearchOption == MatterWorkSearchTypeEnum.Description && this._searchText) {\n return this.navItems.filter(x=> x.isParent == false \n && x.matterWork \n && x.matterWork.LineItemDescriptionList \n && x.matterWork.LineItemDescriptionList.toLowerCase().includes(this._searchText.toLowerCase()));\n }\n \n return this.navItems.filter(x=> x.isParent == false);\n }\n return [];\n }\n \n confirmAllMatters() {\n if (this.pageType === MatterWorkTypeEnum.Auditing && this.selectedMatter != null) {\n if (!this.selectedMatter.Audited) {\n this.$emit('auditMatter');\n } \n this.nextActiveCase();\n } else if (this.pageType === MatterWorkTypeEnum.Coding && this.selectedMatter != null) {\n \n if (this.userReviewedMode && !this.selectedMatter.UserReviewed) {\n this.$emit('confirmAll');\n } else if (!this.userReviewedMode && !this.selectedMatter.AllLineItemsConfirmed) {\n this.$emit('confirmAll');\n }\n this.nextActiveCase();\n \n }\n }\n\n async updateMatterList(matterId: Guid) {\n if(this.isDisposed) {\n return;\n }\n\n let updatedMatters = await this.client.get( `/api/MatterWorks/${this.matterWorkId}/navigation?matterId=${matterId}`);\n this.matterDetails = Object.assign({}, this.matterDetails ,updatedMatters.Details);\n _.remove(this.navigationFlattened, x=>x.MatterId == matterId);\n this.mergeArrays(this.navigationFlattened,updatedMatters.NavigationItems)\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n this.removeUpdatedMatter(matterId);\n var newNavItems = this.createAuditingNavigationItems(updatedMatters.NavigationItems);\n this.navItems.length = 0;\n this.navItems = newNavItems;\n this.updateAuditingHeaders();\n }\n else{\n var items = this.createNavigationItems();\n this.navItems.length = 0;\n this.navItems = items;\n this.updateCodingHeaders(this.userReviewedMode);\n }\n this.updateParentStyling(); \n }\n\n removeUpdatedMatter(matterId : Guid) {\n _.remove(this.navItems, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n _.remove(this.capHardOverages, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.capHardOverages);\n _.remove(this.targetHardOverages, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.targetHardOverages);\n _.remove(this.capSoftOverages, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.capSoftOverages);\n _.remove(this.targetSoftOverages, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.targetSoftOverages);\n _.remove(this.infractions, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.infractions);\n _.remove(this.reportLanguage, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.reportLanguage);\n _.remove(this.internalNotes, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.internalNotes);\n _.remove(this.doNotSend, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.doNotSend); \n _.remove(this.potentialIssues, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.potentialIssues); \n _.remove(this.issuesRemoved, x => x.details && x.details.MatterId && x.details.MatterId == matterId);\n this.removeGroupingsWithNoMember(this.issuesRemoved);\n }\n\n removeAllDataForRecalculation() {\n this.capHardOverages.length = 0;\n this.targetHardOverages.length = 0;\n this.capSoftOverages.length = 0;\n this.targetSoftOverages.length = 0;\n this.infractions.length = 0;\n this.reportLanguage.length = 0;\n this.internalNotes.length = 0;\n this.doNotSend.length = 0;\n this.potentialIssues.length = 0;\n this.issuesRemoved.length = 0;\n }\n\n removeGroupingsWithNoMember(itemList: Array)\n {\n if(itemList && itemList.length > 0) {\n var groupings = _.cloneDeep(itemList).filter(x => !this.auditingHeaders.map(y => y.itemKey).includes(x.itemKey) \n && x.isParent && x.level != null && (x.details && !x.details.MatterId));\n groupings = _.orderBy(groupings, ['level'],['desc']); \n \n groupings.forEach(x => {\n var ind = _.findIndex(itemList, item => item.parentKey == x.itemKey)\n if(ind == -1) {\n _.remove(itemList, item => item.itemKey == x.itemKey);\n }\n });\n\n }\n }\n confirmAuditMatter(matterId: Guid, setBool: boolean) {\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n var items = this.navItems.filter(x=> !x.isParent && x.details!.MatterId == matterId)\n var navFlattend= this.navigationFlattened.filter(x=>x.MatterId == matterId);\n navFlattend.forEach(x=>{\n x.IsAudited = setBool;\n });\n items.forEach(x=>{ \n x.audited = setBool; \n x.details!.IsAudited = setBool;\n });\n this.matterDetails[matterId].Audited = setBool;\n this.updateAuditingHeaders();\n if(this.selectedMatter!.MatterId === matterId) {\n this.nextActiveCase();\n }\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding) {\n if(this.userReviewedMode) {\n this.navItems.filter(x=> !x.isParent && x.details!.MatterId === matterId).forEach(x=>{ x.userReviewed = setBool; });\n this.matterDetails[matterId].UserReviewed = setBool;\n this.selectedMatter!.UserReviewed = setBool;\n }\n else {\n if(this.pageType == MatterWorkTypeEnum.Coding) {\n this.navItems.filter(x=> !x.isParent && x.details!.MatterId === matterId).forEach(x=>{ x.allConfirmed = setBool; });\n this.matterDetails[matterId].AllLineItemsConfirmed = setBool;\n this.selectedMatter!.AllLineItemsConfirmed = setBool;\n }\n }\n this.updateCodingHeaders(this.userReviewedMode);\n }\n \n this.updateParentStyling();\n }\n \n beforeDestroy() {\n this.matterWorkModule.setMatterOverageDNS([]);\n this.matterWorkModule.setActiveBatchIds([]);\n this.matterWorkModule.setSelectedMatterId(null);\n this.matterWorkModule.setSelectedMatter(null);\n this.capHardOverages.length = 0;\n this.capSoftOverages.length = 0;\n this.targetHardOverages.length = 0;\n this.targetSoftOverages.length = 0;\n this.reportLanguage.length = 0;\n this.internalNotes.length = 0;\n this.infractions.length = 0;\n this.doNotSend.length = 0;\n this.potentialIssues.length = 0;\n this.issuesRemoved.length = 0;\n this.navigationFlattened.length = 0;\n this.navItems.length = 0;\n this.$root.$off('updatenavmatters', this.updateNavMatters)\n this.$root.$off('matter-deleted', this.handleRemovingOfMatter)\n this.$root.$off('updatetargetmatter', this.updateTargetMatter);\n this.removeMatterDetails();\n this.detachHandlers();\n this.componentReady=false;\n }\n\n detachHandlers() {\n let dxTreeList = this.$refs.dxTreeList as any;\n if(dxTreeList) {\n let treeListInstance = dxTreeList.instance as DevExpress.ui.dxTreeList;\n treeListInstance.off(\"selectionChanged\");\n treeListInstance.option(\"onSelectionChanged\", undefined);\n treeListInstance.dispose();\n }\n this.isDisposed = true;\n }\n\n removeMatterDetails() {\n for(var key in this.matterDetails) {\n if(this.matterDetails.hasOwnProperty(key)) {\n delete this.matterDetails[key];\n }\n }\n }\n\n private get getNavItems(): Array {\n return this.navItems;\n }\n\n private navItems: Array = [];\n\n private capHardOverages: Array = [];\n private targetHardOverages: Array = [];\n private capSoftOverages: Array = [];\n private targetSoftOverages: Array = [];\n private infractions: Array = [];\n private internalNotes: Array = [];\n private reportLanguage: Array = [];\n private doNotSend: Array = [];\n private potentialIssues: Array = [];\n private issuesRemoved: Array = [];\n\n private createAuditingNavigationItems(updatedMatter: NavigationFlattened[] | undefined = undefined) { \n var navFlattend = updatedMatter ? updatedMatter : this.navigationFlattened;\n let auditingNavigation: Array = [];\n var capHardOveragesTemp: Array = [];\n var targetHardOveragesTemp: Array = [];\n var capSoftOveragesTemp: Array = [];\n var targetSoftOveragesTemp: Array = [];\n var infractionsTemp: Array = [];\n var internalNotesTemp: Array = [];\n var reportLanguageTemp: Array = [];\n var doNotSendTemp: Array = [];\n var potentialIssuesTemp: Array = [];\n var issuesRemovedTemp: Array = [];\n\n \n capHardOveragesTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.HardOverage == true && x.OverageType == \"Cap\" && x.DoNotSend != true));\n capHardOveragesTemp.forEach(x=>{\n x.parentKey = \"HardOveragesCap\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"HardOveragesCap\"+x.itemKey;\n });\n\n targetHardOveragesTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.HardOverage == true && x.OverageType == \"Target\" && x.DoNotSend != true));\n targetHardOveragesTemp.forEach(x=>{\n x.parentKey = \"HardOveragesTarget\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"HardOveragesTarget\"+x.itemKey;\n });\n\n capSoftOveragesTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.SoftOverage == true && x.OverageType == \"Cap\" && x.DoNotSend != true));\n capSoftOveragesTemp.forEach(x=>{\n x.parentKey = \"SoftOveragesCap\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"SoftOveragesCap\"+x.itemKey;\n });\n\n targetSoftOveragesTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.SoftOverage == true && x.OverageType == \"Target\" && x.DoNotSend != true));\n targetSoftOveragesTemp.forEach(x=>{\n x.parentKey = \"SoftOveragesTarget\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"SoftOveragesTarget\"+x.itemKey;\n });\n \n infractionsTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.HasInfraction == true));\n infractionsTemp.forEach(x=>{\n x.parentKey = \"Infractions\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"Infractions\"+x.itemKey;\n });\n\n internalNotesTemp = this.createNavigationItems(_.filter(navFlattend,x=> x.HasInternalNotes == true))\n internalNotesTemp.forEach(x=>{\n x.parentKey = \"InternalNotes\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"InternalNotes\"+x.itemKey;\n });\n\n reportLanguageTemp = this.createNavigationItems(_.filter(navFlattend,x=> x.HasReportLanguage == true))\n reportLanguageTemp.forEach(x=>{\n x.parentKey = \"ReportLanguage\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"ReportLanguage\"+x.itemKey;\n });\n\n doNotSendTemp = this.createNavigationItems(_.filter(navFlattend, x=> x.DoNotSend == true && (x.SoftOverage == true || x.HardOverage == true)));\n doNotSendTemp.forEach(x=>{\n x.parentKey = \"DoNotSend\" + (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"DoNotSend\"+ x.itemKey;\n });\n\n potentialIssuesTemp = this.createAnalysisIssueItems(_.filter(navFlattend, x=> x.HasAnalysisIssue == true));\n potentialIssuesTemp.forEach(x=> {\n x.parentKey = \"PotentialIssues\" + (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"PotentialIssues\"+ x.itemKey;\n });\n\n if(capHardOveragesTemp.length > 0) {\n this.capHardOverages = this.mergeAndReorderNavigationItems(this.capHardOverages, capHardOveragesTemp);\n }\n if(targetHardOveragesTemp.length > 0) {\n this.targetHardOverages = this.mergeAndReorderNavigationItems(this.targetHardOverages, targetHardOveragesTemp);\n }\n if(capSoftOveragesTemp.length > 0) {\n this.capSoftOverages = this.mergeAndReorderNavigationItems(this.capSoftOverages, capSoftOveragesTemp);\n }\n if(targetSoftOveragesTemp.length > 0) {\n this.targetSoftOverages = this.mergeAndReorderNavigationItems(this.targetSoftOverages, targetSoftOveragesTemp);\n }\n if(infractionsTemp.length > 0) {\n this.infractions = this.mergeAndReorderNavigationItems(this.infractions, infractionsTemp);\n }\n if(internalNotesTemp.length > 0) {\n this.internalNotes = this.mergeAndReorderNavigationItems(this.internalNotes, internalNotesTemp);\n }\n if(reportLanguageTemp.length > 0) {\n this.reportLanguage = this.mergeAndReorderNavigationItems(this.reportLanguage, reportLanguageTemp);\n }\n\n if(doNotSendTemp.length > 0) {\n this.doNotSend = this.mergeAndReorderNavigationItems(this.doNotSend, doNotSendTemp);\n }\n if(potentialIssuesTemp.length > 0) {\n this.potentialIssues = this.mergeAndReorderNavigationItems(this.potentialIssues, potentialIssuesTemp);\n }\n\n this.mergeArrays(auditingNavigation, this.auditingHeaders);\n this.mergeArrays(auditingNavigation, this.capHardOverages);\n this.mergeArrays(auditingNavigation, this.targetHardOverages);\n this.mergeArrays(auditingNavigation, this.capSoftOverages);\n this.mergeArrays(auditingNavigation, this.targetSoftOverages);\n this.mergeArrays(auditingNavigation, this.infractions);\n this.mergeArrays(auditingNavigation, this.internalNotes);\n this.mergeArrays(auditingNavigation, this.reportLanguage);\n this.mergeArrays(auditingNavigation, this.doNotSend);\n this.mergeArrays(auditingNavigation, this.potentialIssues);\n\n let mattersWithIssues = _.uniq(auditingNavigation.filter(x=>!x.isParent).map(x=>x.details!.MatterId));\n\n var issuesRemovedTemp : Array = [];\n issuesRemovedTemp = this.createNavigationItems(navFlattend.filter(x=> mattersWithIssues.indexOf(x.MatterId) < 0));\n issuesRemovedTemp.forEach(x=>{\n x.parentKey = \"IssuesRemoved\"+ (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = \"IssuesRemoved\"+x.itemKey;\n });\n\n if(issuesRemovedTemp.length > 0) {\n this.issuesRemoved = this.mergeAndReorderNavigationItems(this.issuesRemoved, issuesRemovedTemp);\n }\n this.mergeArrays(auditingNavigation, this.issuesRemoved);\n auditingNavigation = _.uniqBy(auditingNavigation, i => i.itemKey)\n\n return auditingNavigation;\n }\n\n mergeAndReorderNavigationItems(target: Array, source: Array) {\n var result: Array = []; \n var parentNavs = _.remove(target, x => x.isParent)\n var sourceParentNavs = _.remove(source, x => x.isParent)\n var parentNavResult : Array = []; \n var itemNavResult: Array = []; \n if((parentNavs && parentNavs.length > 0) || \n (sourceParentNavs && sourceParentNavs.length > 0)) {\n sourceParentNavs.forEach(x =>\n {\n var isInTarget = _.findIndex(parentNavs, y => y.itemKey == x.itemKey);\n if(isInTarget == -1) {\n parentNavs.push(x);\n }\n });\n parentNavResult = this.sortByDisplayOrder(parentNavs);\n\n let lowestParentLevel = _.maxBy(parentNavResult.map(x=> x.level)) || 0;\n let parentInDeepestLevel = parentNavResult.filter(x => x.level == lowestParentLevel);\n this.mergeArrays(target, source);\n parentInDeepestLevel.forEach(element => {\n let items = this.sortOrder(_.filter(target, x => x.parentKey == element.itemKey));\n\n this.mergeArrays(itemNavResult, items);\n });\n\n this.mergeArrays(result, parentNavResult)\n this.mergeArrays(result, itemNavResult)\n }\n else{\n this.mergeArrays(target, source)\n\n target = this.sortOrder(target);\n this.mergeArrays(result, target)\n }\n \n result = _.uniqBy(result, i => i.itemKey)\n return result;\n }\n\n sortByDisplayOrder(items: Array| []) {\n let temp : Array = []; \n\n if(items.length == 0){\n return [];\n }\n\n let maxLevelItem = _.minBy(items, x => x.level);\n let maxLevel = maxLevelItem ? maxLevelItem.level : 0;\n let maxCaseType = maxLevelItem ? maxLevelItem.caseType : '';\n let maxLevelItems = _.filter(items, x => x.level == maxLevel);\n\n if(maxCaseType == 'Phase') {\n temp = this.sortByPhase(maxLevelItems);\n }\n else if(maxCaseType =='Filing Type') {\n temp = this.sortByFilingType(maxLevelItems);\n }\n else {\n temp = _.sortBy(maxLevelItems, ['text']);\n }\n \n let tempItems = _.cloneDeep(temp);\n tempItems.forEach(x => {\n var nextLevelItems = items.filter(y => y.parentKey && y.parentKey.includes(x.itemKey));\n\n this.mergeArrays(temp, this.sortByDisplayOrder(nextLevelItems));\n });\n\n return temp;\n }\n\n private updateCodingHeaders(isUserReviewMode: boolean) {\n var parentHeaderLevel = _.minBy(this.navItems, item => item.level);\n\n if(parentHeaderLevel && parentHeaderLevel.level != undefined) {\n var parentHeaders = _.filter(this.navItems, item => item.isParent && item.level == (parentHeaderLevel ? parentHeaderLevel.level : 0));\n\n parentHeaders.forEach(pHeader => {\n var members = _.filter(this.navItems, item => !item.isParent && item.itemKey.includes(pHeader.itemKey))\n var count = members.length;\n var confirmedCount = isUserReviewMode ? _.filter(members, item => item.userReviewed).length : _.filter(members, item => item.allConfirmed).length;\n\n pHeader.text = `${pHeader.itemKey} ${confirmedCount}/${count}`;\n });\n }\n }\n\n private updateAuditingHeaders() {\n if(this.pageType != MatterWorkTypeEnum.Auditing) {\n return;\n }\n\n let hardOverageHeader = this.navItems.find(x=>x.itemKey=='HardOverages');\n let hardOverageCount = _.uniq(this.capHardOverages.concat(this.targetHardOverages).filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let hardOverageAuditedCount = _.uniq(this.capHardOverages.concat(this.targetHardOverages).filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n hardOverageHeader!.text=`Hard Overages ${hardOverageAuditedCount}/${hardOverageCount}`;\n\n let softOverageHeader = this.navItems.find(x=>x.itemKey=='SoftOverages');\n let softOverageCount = _.uniq(this.capSoftOverages.concat(this.targetSoftOverages).filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let softOverageAuditedCount = _.uniq(this.capSoftOverages.concat(this.targetSoftOverages).filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n softOverageHeader!.text = `Soft Overages ${softOverageAuditedCount}/${softOverageCount}`;\n\n let notesHeader = this.navItems.find(x=>x.itemKey=='Notes');\n let notesCount = _.uniq(this.internalNotes.concat(this.reportLanguage).filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length; \n let notesAuditedCount = _.uniq(this.internalNotes.concat(this.reportLanguage).filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n notesHeader!.text = `Notes ${notesAuditedCount}/${notesCount}`;\n\n let infractionsHeader = this.navItems.find(x=>x.itemKey=='Infractions');\n let infractionsCount = _.uniq(this.infractions.filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let infractionsAuditedCount = _.uniq(this.infractions.filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n infractionsHeader!.text= `Infractions ${infractionsAuditedCount}/${infractionsCount}`;\n\n let doNotSendHeader = this.navItems.find(x=>x.itemKey=='DoNotSend');\n let doNotSendCount = _.uniq(this.doNotSend.filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let doNotSendAuditedCount = _.uniq(this.doNotSend.filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n doNotSendHeader!.text = `Do Not Send ${doNotSendAuditedCount}/${doNotSendCount}`;\n \n let potentialIssuesHeader = this.navItems.find(x=>x.itemKey=='PotentialIssues');\n let potentialIssuesCount = _.uniq(this.potentialIssues.filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let potentialIssuesAuditedCount = _.uniq(this.potentialIssues.filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n potentialIssuesHeader!.text = `Potential Issues ${potentialIssuesAuditedCount}/${potentialIssuesCount}`;\n\n let issuesRemovedHeader = this.navItems.find(x=>x.itemKey=='IssuesRemoved');\n let issueRemovedCount = _.uniq(this.issuesRemoved.filter(x=>!x.isParent).map(x=>x.details!.MatterId)).length;\n let issueRemovedAuditedCount = _.uniq(this.issuesRemoved.filter(x=>x.audited && !x.isParent).map(x=>x.details!.MatterId)).length;\n issuesRemovedHeader!.text = `Issues Removed ${issueRemovedAuditedCount}/${issueRemovedCount}`;\n }\n\n private updateParentStyling() {\n let parents = _.sortBy(_.uniq(_.filter(this.navItems, x => x.isParent)), x=> x.level! * -1);\n parents.forEach(x => {\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n x.audited = !this.navItems.some(z => z.parentKey == x.itemKey && z.audited != true);\n }\n else if(this.pageType == MatterWorkTypeEnum.Coding && this.userReviewedMode) {\n x.userReviewed = !this.navItems.some(z => z.parentKey == x.itemKey && z.userReviewed != true);\n }\n else {\n x.allConfirmed = !this.navItems.some(z => z.parentKey == x.itemKey && z.allConfirmed != true);\n }\n });\n }\n\n private createNavigationItems(items?: Array) {\n if(items == null) {\n items = this.navigationFlattened\n }\n //create a plain list instead of nested arrays to easily loop through.\n //use parentkeys to create hierarchy in dxtreelist\n let navigationItems: Array = [];\n let headers: Array = [];\n //check for caseDisplays\n if(this.caseDisplayOrder.length) {\n //sort case displays to be used for keycombinations for parentKeys, \n //get corresponding casedisplay object keys Agent -> Agent, Phase -> Phase, Filing Type -> FilingTypeId, Country -> CountryCode\n let sortedCase = _.sortBy(this.caseDisplayOrder.map(x=> {return { caseType: x, key: this.getCaseOrderKey(x)};}),['key']);\n //go through the flattened list and get the Case Display value combinations for item\n let groupedNavigation = _.groupBy(items, (details) =>{\n let header: any = {};\n let itemKey = sortedCase.map(x=> {\n let value: string = details[x.key];\n if(x.key == \"FilingTypeId\") {\n value = getFilingTypeName(details[x.key]);\n }\n header[x.caseType] = value;\n return value;\n }).join('');\n header['parentId'] = itemKey;\n headers.push(header);\n return itemKey;\n })\n\n //make sure headers are unique\n let uniqueHeaders = _.uniqBy(headers,(x)=> x['parentId']);\n let parentNavs: Array = [];\n let itemNavs: Array = [];\n\n //loop through the unique headers and start creating the nav items\n _.forEach(uniqueHeaders, header=> {\n let itemKey: string = '';\n var agentCaseOrder = this.caseDisplayOrder.find(x => x == \"Agent\");\n var phaseCaseOrder = this.caseDisplayOrder.find(x => x == \"Phase\");\n this.caseDisplayOrder.forEach((x,index,arr)=> {\n \n let item: NavigationItems = {\n text: header[x],\n parentKey: index == 0 ? null : itemKey,\n itemKey: index == arr.length - 1 ? header['parentId'] : itemKey+header[x],\n isParent: true,\n details: {} as any,\n caseType: x,\n level: index,\n allConfirmed: true,\n audited: true,\n userReviewed: true,\n }\n itemKey = itemKey+header[x];\n parentNavs.push(item);\n });\n\n let navItems = _.sortBy(_.uniqBy(groupedNavigation[header['parentId']], (x)=> header['parentId']+x.MatterId),['text']);\n _.forEach(_.cloneDeep(navItems),(x)=> {\n var agentValue = header[agentCaseOrder || ''];\n var phaseValue = header[phaseCaseOrder || ''];\n\n if(agentValue && phaseValue) {\n x.LineItemTotalsService = x.NavigationTotal.LineItemTotalsService;\n x.LineItemTotals = x.NavigationTotal.LineItemTotal\n }\n else if(agentValue) {\n x.LineItemTotalsService = x.NavigationTotal.OverallAgentServiceTotal;\n x.LineItemTotals = x.NavigationTotal.OverallAgentTotal;\n }\n else if(phaseValue) {\n x.LineItemTotalsService = x.NavigationTotal.OverallPhaseServiceTotal;\n x.LineItemTotals = x.NavigationTotal.OverallPhaseTotal;\n }\n else {\n x.LineItemTotalsService = x.NavigationTotal.MatterServiceTotal;\n x.LineItemTotals = x.NavigationTotal.MatterTotal;\n }\n\n let itemDetails: NavigationItems = {\n text: x.ClientMatterId,\n parentKey: header['parentId'],\n itemKey: header['parentId']+x.MatterId,\n isParent: false,\n details: x,\n allConfirmed: this.matterDetails[x.MatterId].AllLineItemsConfirmed,\n userReviewed: this.matterDetails[x.MatterId].UserReviewed,\n audited: x.IsAudited ? true : false,\n level: null,\n matterWork: this.matterDetails[x.MatterId]\n }\n itemNavs.push(itemDetails);\n });\n });\n\n parentNavs = this.sortHeaders(_.uniqBy(parentNavs,(x)=> x.text+x.itemKey), null);\n //get final parent and loop to sort children\n parentNavs.filter(x=>x.level == this.caseDisplayOrder.length - 1).forEach(x=> {\n let forSort = _.remove(itemNavs, z=> z.parentKey == x.itemKey);\n forSort = this.sortOrder(forSort);\n this.mergeArrays(itemNavs, forSort);\n })\n this.mergeArrays(navigationItems, parentNavs)\n this.mergeArrays(navigationItems, itemNavs)\n }\n else {\n let unGrouped = _.sortBy(_.uniqBy(items, x => x.MatterId), ['ClientMatterId']);\n _.forEach(_.cloneDeep(unGrouped), x=> {\n x.LineItemTotalsService = x.NavigationTotal.MatterServiceTotal;\n x.LineItemTotals = x.NavigationTotal.MatterTotal;\n\n let itemDetails: NavigationItems = {\n text: x.ClientMatterId,\n parentKey: null,\n itemKey: x.MatterId,\n isParent: false,\n details: x,\n allConfirmed: this.matterDetails[x.MatterId].AllLineItemsConfirmed,\n userReviewed: this.matterDetails[x.MatterId].UserReviewed,\n audited: x.IsAudited ? true : false,\n level: 0,\n matterWork: this.matterDetails[x.MatterId]\n }\n navigationItems.push(itemDetails);\n });\n navigationItems = this.sortOrder(navigationItems);\n }\n return navigationItems;\n }\n\n createAnalysisIssueItems(items?: Array) {\n if(items == null || items == undefined) {\n items = this.navigationFlattened\n }\n\n // create sub header for each rule type\n let analysisTriggerRules = (_.flatten(items.map(i => i.AnalysisIssues)));\n let uniqueRules = _.sortBy(_.uniqBy(analysisTriggerRules, ai => ai.AnalysisTriggerRuleId), r => r.RuleName);\n\n let parentNavs: Array = [];\n _.forEach(uniqueRules, r => {\n parentNavs.unshift({\n text: r.RuleName,\n parentKey: '',\n itemKey: r.AnalysisTriggerRuleId,\n isParent: true,\n details: {} as any,\n level: -1\n })\n }); \n\n // for each rule type, create the subtree\n let navItems: Array = [];\n for (let navItem of parentNavs) {\n navItems.unshift(navItem);\n let subItems = items.filter(i => i.AnalysisIssues.some(ai => ai.AnalysisTriggerRuleId == navItem.itemKey))\n let childNavItems = this.createNavigationItems(subItems);\n childNavItems.forEach(x => {\n x.parentKey = navItem.itemKey + (x.parentKey == null ? '' : x.parentKey);\n x.itemKey = navItem.itemKey + x.itemKey;\n });\n this.mergeArrays(navItems, childNavItems);\n }\n\n return navItems;\n }\n\n private sortHeaders(headerItems: Array, parentKey: string | null) {\n let itemsToSort = _.remove(headerItems,x=>x.parentKey == parentKey);\n if(itemsToSort.length == 0) {\n return [];\n }\n let caseType = itemsToSort[0].caseType;\n let level = itemsToSort[0].level;\n let sorted: Array = [];\n\n if(caseType == 'Phase') {\n itemsToSort = this.sortByPhase(itemsToSort);\n }\n else if(caseType =='Filing Type') {\n itemsToSort = this.sortByFilingType(itemsToSort);\n }\n else {\n itemsToSort = _.sortBy(itemsToSort, ['text']);\n }\n this.mergeArrays(sorted,itemsToSort)\n\n if(level! < this.caseDisplayOrder.length) {\n _.forEach(itemsToSort, x=>{\n var children = this.sortHeaders(headerItems, x.itemKey);\n this.mergeArrays(sorted,children)\n });\n }\n return sorted;\n }\n\n private sortByPhase(headerItems: Array) {\n let sorted = _.sortBy(headerItems.map(x=> { \n let phase = this.phaseTypes.find(z=>z.PhaseName == x.text);\n let phaseSort = phase != null ? phase.PhaseOrder : this.phaseTypes.length+1\n return {item: x, order: phaseSort}\n }),['order']).map(x=> x.item);\n return sorted;\n }\n\n private sortByFilingType(headerItems: Array) {\n let filingTypeEnum = FilingTypeEnum as any\n let filingTypeNameEnum = FilingTypeNameEnum as any\n let sorted = _.sortBy(headerItems.map(x=> { \n let sort: number = filingTypeEnum[filingTypeNameEnum[x.text]]\n return {item: x, order: sort}\n }),['order']).map(x=> x.item);\n return sorted;\n }\n\n private sortOrder(navItems: Array) {\n switch(this.orderMethod) {\n case OrderingMethod.ByMatterName:\n return sortBy(navItems, r => r.text);\n case OrderingMethod.ByServiceCost:\n return _.orderBy(navItems, ['details.LineItemTotalsService', 'text'], ['desc', 'asc']);\n case OrderingMethod.ByTotalCost:\n return _.orderBy(navItems, ['details.LineItemTotals', 'text'], ['desc', 'asc']);\n default:\n return navItems;\n } \n }\n\n //for final parent key generation\n private getCaseOrderKey(caseOrder: string) {\n let key: string;\n switch(caseOrder) {\n case 'Agent':\n key = 'Agent';\n break;\n case 'Phase':\n key = 'Phase';\n break;\n case 'Country':\n key = 'CountryCode';\n break;\n case 'Filing Type':\n key = 'FilingTypeId';\n break;\n default:\n key = '';\n break;\n }\n return key;\n }\n\n //prevents creation of new array, instead of concat.\n private mergeArrays(target: Array, source: Array) {\n source.forEach(x=>{\n target.push(x);\n });\n }\n\n checkForRelease() {\n let matterWorkmatters = Object.values(this.matterDetails);\n let forRelease: boolean = false;\n if(this.pageType == MatterWorkTypeEnum.Auditing) {\n forRelease = _.every(matterWorkmatters, x=>x.Audited === true);\n }\n else if(this.pageType === MatterWorkTypeEnum.Coding && this.userReviewedMode) {\n forRelease = _.every(matterWorkmatters, x=>x.UserReviewed === true);\n }\n else {\n forRelease = _.every(matterWorkmatters, x=>x.AllLineItemsConfirmed === true);\n }\n return forRelease && this.shouldShowRelease;\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-navigator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-navigator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./matter-work-navigator.vue?vue&type=template&id=7cd85582&scoped=true&\"\nimport script from \"./matter-work-navigator.vue?vue&type=script&lang=ts&\"\nexport * from \"./matter-work-navigator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./matter-work-navigator.vue?vue&type=style&index=0&id=7cd85582&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cd85582\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport Component from 'vue-class-component';\r\nimport { Prop, Watch } from 'vue-property-decorator';\r\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\r\nimport { PageTitle } from '@questelservices/common-vue';\r\nimport { DxButton, DxPopup, DxLoadIndicator } from 'devextreme-vue';\r\nimport DevExpress from 'devextreme/bundles/dx.all';\r\nimport { MatterWorkDto } from '../models/matter-work/MatterWorkDto';\r\nimport { MatterWorkMatterDto } from '../models/matter-work/MatterWorkMatterDto';\r\nimport MatterWorkLineItems, { MatterWorkLineItemsDialogState } from '../components/matter-work/matter-work-line-items.vue';\r\nimport { MatterWorkTypeEnum } from '../models/matter-work/MatterWorkTypeEnum';\r\nimport MatterTotals from '../components/matter-work/matter-totals.vue';\r\nimport { PhaseTypeDto } from '../models/PhaseTypeDto';\r\nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\r\nimport { KeyMap } from '@/models/KeyMap';\r\nimport { PhaseNames } from '@/models/PhaseNames';\r\nimport OrderSetupDialog from '../components/matter-work/phase-assignment_order-setup-dialog.vue';\r\nimport { UserSetting, UserSettingReportName, UserSettingName, OrderingMethod } from '@/models/UserSetting';\r\nimport FilingType from '../components/filing-type.vue';\r\nimport { ChangeFilingTypeDto, FilingTypeDto } from '../models/FilingTypeDto';\r\nimport { FilingTypeService } from '../service/FilingTypeService';\r\nimport { UserSettingFilter } from '@/models/UserSettingFilter';\r\nimport { UserService } from '@/service/UserService';\r\nimport _, { orderBy, update } from 'lodash';\r\nimport { FeeSheetRuleDto } from '@/models/Fees/FeeSheetRuleDto';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from \"devextreme/ui/dialog\"\r\nimport { BatchService } from '@/service/BatchService';\r\nimport { FeeBudgetRuleDto } from '@/models/fee-budgets/FeeBudgetRuleDto';\r\nimport MatterWorkNavigator from '../components/matter-work/matter-work-navigator.vue';\r\nimport { getModule } from 'vuex-module-decorators';\r\nimport store from '@/store';\r\nimport MatterWorkModule from '@/store/MatterWorkModule';\r\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\r\n\r\n@Component({\r\n components: {\r\n PageTitle,\r\n DxButton,\r\n MatterTotals,\r\n MatterWorkLineItems,\r\n OrderSetupDialog,\r\n FilingType,\r\n DxPopup,\r\n DxLoadIndicator,\r\n MatterWorkNavigator\r\n },\r\n beforeRouteLeave: function(to,from,next) {\r\n let codingPage: PhaseAssignment = this as PhaseAssignment;\r\n codingPage.$destroy();\r\n next();\r\n }\r\n})\r\nexport default class PhaseAssignment extends Vue {\r\n $refs: Vue['$refs'] & {\r\n matterWorkLineItems?: MatterWorkLineItems;\r\n matterWorkNavigation?: MatterWorkNavigator; \r\n } = {};\r\n\r\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\r\n private filingTypeService: FilingTypeService = new FilingTypeService();\r\n private userService: UserService = new UserService();\r\n\r\n get lineItemDataGrid(): DevExpress.ui.dxDataGrid {\r\n return (((this.$refs.matterWorkLineItems as any).$refs.manualCodingDataGrid as any).$refs\r\n .dxDataGrid as any).instance\r\n }\r\n\r\n private get matterWorkId(): Guid | undefined {\r\n return this.$route.params.id;\r\n }\r\n\r\n private get userReviewedMode(): boolean | undefined {\r\n if (this.matterWork) {\r\n return this.matterWork.UserReviewedMode;\r\n }\r\n else {\r\n return false;\r\n } \r\n }\r\n\r\n private matterWork: MatterWorkDto | null = null;\r\n private phaseTypes: PhaseTypeDto[] = [];\r\n private filingTypes: FilingTypeDto[] = [];\r\n private feeSheetRules: FeeSheetRuleDto[] = [];\r\n private feeBudgetRules: FeeBudgetRuleDto[] = [];\r\n\r\n clientId: Guid = '';\r\n private gridRefresher: boolean = true;\r\n private gridRefreshTimeout: any = null;\r\n\r\n @Watch(\"selectedMatterId\")\r\n gridRefresh() {\r\n this.gridRefresher = false;\r\n if(this.gridRefreshTimeout) {\r\n clearTimeout(this.gridRefreshTimeout);\r\n }\r\n this.gridRefreshTimeout = setTimeout(()=>{\r\n this.gridRefresher = true;\r\n }, 100);\r\n }\r\n matterWorkModule = getModule(MatterWorkModule, store);\r\n\r\n private get selectedMatterId() {\r\n return this.matterWorkModule.selectMatterId;\r\n }\r\n\r\n private get selectedMatter() {\r\n return this.matterWorkModule.selectMatter;\r\n }\r\n\r\n private get selectedFilingType(): FilingTypeDto | undefined {\r\n if(this.selectedMatter) {\r\n return this.filingTypes.find(t => t.FilingTypeId === this.selectedMatter!.FilingTypeId);\r\n }\r\n }\r\n\r\n private confirmAll: boolean = false; \r\n\r\n get getClientId() { \r\n if(this.selectedMatter) {\r\n return this.selectedMatter.ClientId;\r\n }\r\n }\r\n \r\n private allMattersConfirmed: boolean = false;\r\n private allMattersReviewed: boolean = false;\r\n\r\n // This gets the status of the left sidebar\r\n private get sidePanelIsOpen() {\r\n return (this.$root.$children[0].$children[1] as any).menuOpened; \r\n }\r\n\r\n private isAutoSkip : boolean = false;\r\n\r\n @Watch('allMattersConfirmed')\r\n onAllMattersConfirmed() {\r\n // Only show dialog when all matters weren't originally \r\n // confirmed and are now confirmed\r\n if (this.allMattersConfirmed) {\r\n this.showingReleaseMatters = true;\r\n } \r\n }\r\n\r\n @Watch('selectedMatter')\r\n onSelectedMatterChanged() {\r\n this.linesSetByCodeAll = [];\r\n }\r\n\r\n @Watch('allMattersReviewed')\r\n onAllMattersReviewed() {\r\n if (this.allMattersReviewed && this.matterWork && this.matterWork.UserReviewedMode) {\r\n this.showingReleaseMatters = true;\r\n } \r\n }\r\n\r\n private showingReleaseMatters: boolean = false;\r\n\r\n pageType: MatterWorkTypeEnum = MatterWorkTypeEnum.Coding;\r\n\r\n batchService: BatchService;\r\n \r\n get batchIdsOfCurrentBatch() {\r\n return this.matterWorkModule.activeBatches || [];\r\n }\r\n\r\n mounted() {\r\n\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.batchService = new BatchService();\r\n \r\n }\r\n\r\n created() {\r\n document.addEventListener('keyup', this.onKeyup);\r\n this.loadData();\r\n }\r\n\r\n beforeDestroy() {\r\n if(this.$refs.matterWorkLineItems) {\r\n this.$refs.matterWorkLineItems.$destroy();\r\n }\r\n if(this.$refs.matterWorkNavigation) {\r\n this.$refs.matterWorkNavigation.$destroy();\r\n }\r\n\r\n this.gridRefresher=false;\r\n this.feeSheetRules.length=0;\r\n this.feeBudgetRules.length=0;\r\n }\r\n\r\n destroyed() {\r\n document.removeEventListener('keyup', this.onKeyup);\r\n this.matterWorkModule.setSelectedMatterId(null);\r\n this.matterWorkModule.setSelectedMatter(null);\r\n this.matterWorkModule.setActiveBatchIds([]);\r\n }\r\n\r\n onAutoSkipChanged(data: boolean) {\r\n this.isAutoSkip = data;\r\n }\r\n\r\n get isDialogOpen() {\r\n return this.showingSetupDialog || this.showingNotes || this.showingContextMenu || this.showingColumnChooser ||\r\n this.showingInfractions || this.showingInfractionsPopover || this.showingReleaseMatters || this.showingPhaseHistory ||\r\n this.showingUpdateCountry || this.showingUpdateMatterName;\r\n }\r\n\r\n onKeyup(event: KeyboardEvent) {\r\n if (this.isDialogOpen) {\r\n return;\r\n }\r\n\r\n //if target of event is a text editor disable keyboard shortcuts\r\n if ((event.target as any ).className == \"dx-texteditor-input\") {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n \r\n if (event.ctrlKey) {\r\n switch (event.keyCode) {\r\n case KeyMap.one:\r\n case KeyMap.numPadOne:\r\n this.assignPhaseToSelection(PhaseNames.misc,event);\r\n break;\r\n case KeyMap.two:\r\n case KeyMap.numPadTwo:\r\n this.assignPhaseToSelection(PhaseNames.publication,event);\r\n break;\r\n case KeyMap.three:\r\n case KeyMap.numPadThree:\r\n this.assignPhaseToSelection(PhaseNames.postGrantReview,event);\r\n break;\r\n case KeyMap.four:\r\n case KeyMap.numPadFour:\r\n this.assignPhaseToSelection(PhaseNames.validation,event);\r\n break;\r\n case KeyMap.five:\r\n case KeyMap.numPadFive:\r\n this.assignPhaseToSelection(PhaseNames.pph,event);\r\n break;\r\n case KeyMap.six:\r\n case KeyMap.numPadSix:\r\n this.assignPhaseToSelection(PhaseNames.noveltySearch,event);\r\n break;\r\n case KeyMap.fSlash:\r\n case KeyMap.numPadFSlash:\r\n this.assignPhaseToSelection(PhaseNames.idsCopies,event);\r\n break;\r\n }\r\n } else {\r\n switch (event.keyCode) {\r\n case KeyMap.leftArrow:\r\n (this.$refs.matterWorkNavigation as any).prevCase();\r\n break;\r\n case KeyMap.rightArrow:\r\n (this.$refs.matterWorkNavigation as any).nextCase();\r\n break;\r\n case KeyMap.upArrow: \r\n (this.$refs.matterWorkNavigation as any).prevActiveCase();\r\n break;\r\n case KeyMap.downArrow: \r\n (this.$refs.matterWorkNavigation as any).confirmAllMatters();\r\n break;\r\n case KeyMap.one:\r\n case KeyMap.numPadOne:\r\n this.assignPhaseToSelection(PhaseNames.drafting,event);\r\n break;\r\n case KeyMap.two:\r\n case KeyMap.numPadTwo:\r\n this.assignPhaseToSelection(PhaseNames.filing,event);\r\n break;\r\n case KeyMap.three:\r\n case KeyMap.numPadThree:\r\n this.assignPhaseToSelection(PhaseNames.exam,event);\r\n break;\r\n case KeyMap.four:\r\n case KeyMap.numPadFour:\r\n this.assignPhaseToSelection(PhaseNames.prosecution,event);\r\n break;\r\n case KeyMap.five:\r\n case KeyMap.numPadFive:\r\n this.assignPhaseToSelection(PhaseNames.grant,event);\r\n break;\r\n case KeyMap.six:\r\n case KeyMap.numPadSix:\r\n this.assignPhaseToSelection(PhaseNames.oneSixOneOneSixTwo,event);\r\n break;\r\n case KeyMap.seven:\r\n case KeyMap.numPadSeven:\r\n this.assignPhaseToSelection(PhaseNames.appeal,event);\r\n break;\r\n case KeyMap.eight:\r\n case KeyMap.numPadEight:\r\n this.assignPhaseToSelection(PhaseNames.subsequentApplications,event);\r\n break;\r\n case KeyMap.nine:\r\n case KeyMap.numPadNine:\r\n this.assignPhaseToSelection(PhaseNames.annuity,event);\r\n break;\r\n case KeyMap.fSlash:\r\n case KeyMap.numPadFSlash:\r\n this.assignPhaseToSelection(PhaseNames.ids,event);\r\n break;\r\n case KeyMap.period:\r\n case KeyMap.numPadPeriod:\r\n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\r\n if (selectedRows.length === 1) {\r\n this.openNotes();\r\n } else if (selectedRows.length > 1) {\r\n notify('Cannot open notes with multiple lines selected.','info', 1000);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n async loadRequiredData() {\r\n this.phaseTypes = await this.client.get('/api/phasetype/all');\r\n this.matterWork = await this.client.get(`/api/MatterWorks/${this.matterWorkId}`);\r\n }\r\n\r\n async loadData() {\r\n // Phase types and matters are required for the navigator / page to load, other data can be loaded asyncronously\r\n await this.loadRequiredData();\r\n \r\n this.filingTypeService.getTypes().then(types => {\r\n this.filingTypes = types;\r\n });\r\n\r\n this.getAutoskipPreference().then(preference => {\r\n this.isAutoSkip = preference;\r\n });\r\n\r\n this.client.get(`/api/MatterWorks/${this.matterWorkId}/fee-sheet-rules`).then(rules => {\r\n this.feeSheetRules = rules;\r\n });\r\n\r\n this.client.get(`/api/MatterWorks/${this.matterWorkId}/fee-budget-rules`).then(rules => {\r\n this.feeBudgetRules = rules;\r\n });\r\n }\r\n\r\n updateLineItems(lineItems: ManualCodeInvoiceLineItemDto[], skip: boolean = true): void { \r\n if (this.$refs.matterWorkLineItems) {\r\n this.$refs.matterWorkLineItems.updateLineItems(lineItems);\r\n }\r\n\r\n this.checkAllLineItemsConfirmed(skip);\r\n }\r\n\r\n private linesSetByCodeAll: Guid[] = [];\r\n\r\n async assignPhaseToSelection(phaseTypeId: number | null, event: KeyboardEvent | null): Promise { \r\n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\r\n let lineItemIds: Guid[] = [];\r\n\r\n // If no line items selected, assign phase to all line items in latest batch\r\n if (selectedRows.length === 0) {\r\n if (this.linesSetByCodeAll.length > 0) {\r\n lineItemIds = this.linesSetByCodeAll;\r\n } else if (this.$refs.matterWorkLineItems && this.$refs.matterWorkLineItems.activeBatchIds) {\r\n lineItemIds = this.$refs.matterWorkLineItems.lineItems\r\n .filter(li => this.batchIdsOfCurrentBatch.some(b => b === li.BatchId) && li.LastAssignedById == null)\r\n .map(li => li.InvoiceLineItemId);\r\n this.linesSetByCodeAll = lineItemIds;\r\n }\r\n\r\n if (this.$refs.matterWorkLineItems) {\r\n selectedRows = this.$refs.matterWorkLineItems.lineItems.filter(li => lineItemIds.some(id => li.InvoiceLineItemId == id));\r\n } \r\n\r\n } else {\r\n this.linesSetByCodeAll = [];\r\n selectedRows.forEach(row => {\r\n lineItemIds.push(row.InvoiceLineItemId);\r\n });\r\n }\r\n\r\n if (lineItemIds.length) {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.lineItemDataGrid.clearSelection();\r\n \r\n let oldRows: ManualCodeInvoiceLineItemDto[] = _.cloneDeep(selectedRows);\r\n\r\n let assignedPhaseTypeId = phaseTypeId == null ? -1 : phaseTypeId;\r\n let assignedPhaseName = phaseTypeId == null ? 'Unassigned' : this.phaseTypes.filter(p => p.PhaseTypeId == phaseTypeId)[0].PhaseName; \r\n\r\n selectedRows.forEach(li => {\r\n li.AssignedPhaseTypeId = assignedPhaseTypeId;\r\n li.AssignedPhaseName = assignedPhaseName;\r\n li.Confirmed = true;\r\n }); \r\n\r\n let updatedMatter = this.selectedMatter;\r\n this.updateLineItems(selectedRows, false);\r\n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\r\n\r\n await this.client.getPostData('/api/manualcoding/assignphase', {\r\n phaseTypeId: phaseTypeId,\r\n lineItems: lineItemIds\r\n })\r\n .then(results => {\r\n // update the line items with any additional information from the backend (LastAssignedById, ConfirmedById, etc)\r\n // only update the line items if the matter hasn't been changed after phase assignment\r\n if (this.selectedMatterId == updatedMatter!.MatterId) {\r\n this.updateLineItems(results, false);\r\n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\r\n } \r\n })\r\n .catch(_ => {\r\n alert(`Error assigning phase to line item(s) for matter ${updatedMatter!.ClientMatterId}.`, \"Error\");\r\n if (this.selectedMatterId == updatedMatter!.MatterId) {\r\n //revert rows if an error occurs\r\n this.updateLineItems(oldRows, false); \r\n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\r\n } \r\n });\r\n }\r\n }\r\n\r\n setExemptRowToSelection(isExemptRow: boolean) {\r\n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\r\n let lineItemIds: Guid[] = [];\r\n\r\n // If no line items selected, assign phase to all line items in latest batch\r\n if (selectedRows.length === 0) { \r\n if (this.$refs.matterWorkLineItems && this.$refs.matterWorkLineItems.activeBatchIds) {\r\n let activeBatchIds = this.$refs.matterWorkLineItems.activeBatchIds;\r\n lineItemIds = this.$refs.matterWorkLineItems.lineItems\r\n .filter(li => activeBatchIds.some(b => b === li.BatchId))\r\n .map(li => li.InvoiceLineItemId);\r\n }\r\n } else { \r\n selectedRows.forEach(row => {\r\n lineItemIds.push(row.InvoiceLineItemId);\r\n });\r\n }\r\n\r\n if (lineItemIds.length) {\r\n this.lineItemDataGrid.clearSelection();\r\n \r\n this.client.getPostData('/api/manualcoding/updateexemptrow', {\r\n isExemptRow: isExemptRow,\r\n lineItems: lineItemIds\r\n }).then(results => {\r\n this.updateLineItems(results, false);\r\n });\r\n }\r\n }\r\n\r\n matterWorkLineItemsDialogStateChanged(e: MatterWorkLineItemsDialogState) {\r\n this.showingNotes = e.showingNotes;\r\n this.showingContextMenu = e.showingContextMenu;\r\n this.showingColumnChooser = e.showingColumnChooser;\r\n this.showingInfractions = e.showingInfractions;\r\n this.showingInfractionsPopover = e.showingInfractionsPopover;\r\n this.showingPhaseHistory = e.showingPhaseHistory;\r\n this.showingUpdateCountry = e.showingUpdateCountry;\r\n this.showingUpdateMatterName = e.showingUpdateMatterName;\r\n }\r\n\r\n confirmAllMatters() { \r\n this.selectedMatter!.UserReviewed = true;\r\n let matterId = this.selectedMatterId;\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, true);\r\n if (this.userReviewedMode) {\r\n this.client.postJson(`/api/manualcoding/review-matter/${this.selectedMatterId}`, {} )\r\n .then(result => {\r\n if(result.Data === false) {\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }\r\n }).catch(x=>{\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }).finally(()=>{\r\n if((this.$refs.matterWorkNavigation as any).checkForRelease()) {\r\n this.allMattersReviewed = true;\r\n }\r\n }); \r\n } \r\n else {\r\n this.client.postJson(`/api/manualcoding/${this.selectedMatterId}/confirmall`, { \r\n }).then(result => { \r\n this.confirmAll = true;\r\n this.lineItemDataGrid.refresh();\r\n if(result.Data === false) {\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }\r\n }).catch(x=>{\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }).finally(()=>{\r\n if((this.$refs.matterWorkNavigation as any).checkForRelease()) {\r\n this.allMattersConfirmed = true;\r\n }\r\n }); \r\n }\r\n } \r\n \r\n\r\n lineItemsLoaded(lineItems: ManualCodeInvoiceLineItemDto[]): void { \r\n if (lineItems && lineItems.length) {\r\n if(this.selectedMatter) {\r\n this.selectedMatter.LineItems = lineItems; \r\n }\r\n if (!this.userReviewedMode) {\r\n this.checkAllLineItemsConfirmed(); \r\n } \r\n }\r\n }\r\n\r\n autoSkipPref: UserSettingFilter = {\r\n reportName: UserSettingReportName.UserPreference,\r\n name : UserSettingName.AutoSkip\r\n }\r\n \r\n getAutoskipPreference(): Promise {\r\n return this.userService.getUserSettingsWithFilter(this.autoSkipPref)\r\n .then((result: UserSetting[]) => {\r\n let autoSkip = _.find(result, (item:UserSetting) => {\r\n return item.ReportName === UserSettingReportName.UserPreference &&\r\n item.Name === UserSettingName.AutoSkip;\r\n }) || false;\r\n\r\n return (autoSkip ? autoSkip.Value == 'true': false);\r\n })\r\n .catch((err: any) => false)\r\n }\r\n\r\n checkAllLineItemsConfirmed(skip: boolean = true) { \r\n let allPreviouslyConfirmed: boolean = this.selectedMatter!.AllLineItemsConfirmed;\r\n this.selectedMatter!.AllLineItemsConfirmed = this.selectedMatter!.LineItems.every(li => li.Confirmed);\r\n if(skip || this.isAutoSkip) { \r\n this.autoskipIfFinalRowConfirmed(this.selectedMatter!.AllLineItemsConfirmed, allPreviouslyConfirmed); \r\n } \r\n }\r\n\r\n private autoskipIfFinalRowConfirmed(allConfirmed: boolean, allPreviouslyConfirmed: boolean): void { \r\n if (!allPreviouslyConfirmed && allConfirmed && !this.userReviewedMode) { \r\n this.selectedMatter!.UserReviewed = true;\r\n let matterId = this.selectedMatter!.MatterId;\r\n this.client.postJson(`/api/manualcoding/${this.selectedMatterId}/confirmall`, {} )\r\n .then(result => {\r\n (this.$refs.matterWorkNavigation as any).nextActiveCase();\r\n if(result.Data === false) {\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }\r\n }).catch(x=>{\r\n (this.$refs.matterWorkNavigation as any).confirmAuditMatter(matterId, false);\r\n }).finally(()=>{\r\n if((this.$refs.matterWorkNavigation as any).checkForRelease()) {\r\n this.allMattersReviewed = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n public showingSetupDialog: boolean = false;\r\n \r\n private showingNotes: boolean = false;\r\n private showingContextMenu: boolean = false;\r\n private showingColumnChooser: boolean = false;\r\n private showingInfractions: boolean = false;\r\n private showingInfractionsPopover: boolean = false;\r\n private showingPhaseHistory: boolean = false;\r\n private showingUpdateCountry: boolean = false;\r\n private showingUpdateMatterName: boolean = false;\r\n\r\n openSetupDialog(): void {\r\n this.showingSetupDialog = true;\r\n }\r\n\r\n hidingDialog() {\r\n this.showingSetupDialog = false;\r\n }\r\n\r\n async caseDisplayOrderUpdated(settings: UserSetting[]) { \r\n // only refresh the matter data if order method is by service cost to recalculate the change of fee type\r\n const orderMethod = settings.filter(s => s.Name === UserSettingName.OrderingMethod && s.Value === OrderingMethod.ByServiceCost); \r\n if(orderMethod.length > 0) { \r\n\r\n const lineItem = await this.client.get(`/api/manualcoding/${this.selectedMatterId}/line-items`)\r\n this.selectedMatter!.LineItems=lineItem; \r\n }\r\n\r\n (this.$refs.matterWorkNavigation as any).refreshCaseDisplayOrder(settings); \r\n } \r\n\r\n selectColumns() {\r\n this.lineItemDataGrid.showColumnChooser();\r\n this.showingColumnChooser = true;\r\n }\r\n\r\n private changeFiling(dto: ChangeFilingTypeDto) {\r\n this.selectedMatter!.FilingTypeId = dto.FilingType;\r\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.PhaseAnalysisItem)\r\n }\r\n\r\n private openNotes() {\r\n (this.$refs.matterWorkLineItems as any).openNotesKeyboard(); \r\n }\r\n\r\n private releaseMatters() {\r\n this.client.sendRequest(HttpMethodEnum.Post,\r\n `/api/matterworks/${this.matterWorkId}/release-matters`\r\n )\r\n .then(result => {\r\n this.closeReleaseMatters();\r\n this.$router.push({ name: 'coding-work' });\r\n });\r\n }\r\n\r\n private closeReleaseMatters() {\r\n this.showingReleaseMatters = false;\r\n }\r\n}\r\n","export enum AgentJurisdictionColorEnum {\n Free = \"DarkGray\",\n In = \"DarkGreen\",\n Out = \"DarkBlue\",\n Unset = \"Red\"\n}","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./phase-assignment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./phase-assignment.vue?vue&type=template&id=a509c498&scoped=true&\"\nimport script from \"./phase-assignment.vue?vue&type=script&lang=ts&\"\nexport * from \"./phase-assignment.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./phase-assignment.vue?vue&type=style&index=0&id=a509c498&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a509c498\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('div',{staticClass:\"topFixedPanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[_c('div',{staticClass:\"matter-work-flex-container\"},[_c('page-title',{staticStyle:{\"margin\":\"0px\",\"width\":\"87%\"}},[(!_vm.selectedMatter)?_c('div',[_vm._v(\"Auditing Page\")]):_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.selectedMatter.ClientMatterId)+\"\\n   \\n \"+_vm._s(_vm.selectedMatter.CountryCode)+\"\\n   \\n \"+_vm._s(_vm.selectedMatter.ClientName)+\"\\n \")]),_c('div',[(_vm.selectedMatter && _vm.filingTypes.length > 0 && _vm.gridRefresher)?_c('filing-type',{attrs:{\"filingTypes\":_vm.filingTypes,\"matter\":_vm.selectedMatter},on:{\"update\":_vm.changeFiling}}):_vm._e()],1)])]),_c('div',{staticClass:\"order-setup\"},[_c('dx-button',{attrs:{\"id\":\"selectColumns\",\"icon\":\"columnchooser\",\"hint\":\"Select Columns\"},on:{\"click\":_vm.selectColumns}}),_c('dx-button',{attrs:{\"id\":\"orderSetup\",\"icon\":\"preferences\",\"hint\":\"Page Setup\"},on:{\"click\":function($event){return _vm.openSetupDialog()}}}),_c('order-setup-dialog',{attrs:{\"showDialog\":_vm.showingSetupDialog},on:{\"hiding\":function($event){return _vm.hidingDialog()},\"case-display-order-saved\":_vm.caseDisplayOrderUpdated,\"on-auto-skip-changed\":_vm.onAutoSkipChanged}})],1)],1),(_vm.selectedMatter || !_vm.gridRefresher)?_c('div',{class:{\"empty-panel-effect\": !_vm.gridRefresher},staticStyle:{\"border-style\":\"solid\",\"border-width\":\"1px\",\"height\":\"272px\"}},[(_vm.selectedMatter && _vm.gridRefresher)?_c('charge-summary',{ref:\"chargesummary\",attrs:{\"matter\":_vm.selectedMatter,\"phaseTypes\":_vm.phaseTypes,\"clientId\":_vm.clientId,\"feeSheetRules\":_vm.feeSheetRules,\"feeBudgetRules\":_vm.feeBudgetRules,\"latestBatchIds\":_vm.batchIdsOfCurrentBatch}}):_vm._e()],1):_vm._e()]),_c('div',{staticClass:\"middlePanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[_c('div',{staticClass:\"matter-work-flex-container\",class:{\"empty-panel-padding\": !_vm.gridRefresher}},[(_vm.selectedMatter || !_vm.gridRefresher)?_c('div',{class:{\"empty-panel-effect\": !_vm.gridRefresher},staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('matter-work-line-items',{ref:\"matterWorkLineItems\",attrs:{\"visible\":_vm.selectedMatter && _vm.gridRefresher,\"matterIdSelected\":_vm.selectedMatterId,\"selectedMatter\":_vm.selectedMatter,\"clientId\":_vm.clientId,\"filingType\":_vm.selectedFilingType,\"phaseTypes\":_vm.phaseTypes,\"latestBatchIds\":_vm.batchIdsOfCurrentBatch},on:{\"update:line-items\":_vm.lineItemsLoaded,\"assign-phase\":_vm.assignPhaseToSelection,\"dialog-state-changed\":_vm.matterWorkLineItemsDialogStateChanged,\"set-exempt-row\":_vm.setExemptRowToSelection}})],1):_c('div',[_c('dx-load-indicator')],1)])]),_c('div',{staticClass:\"bottomFixedPanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[(_vm.selectedMatter || !_vm.gridRefresher)?_c('div',{class:{\"empty-panel-effect\": !_vm.gridRefresher},staticStyle:{\"height\":\"192px\"},attrs:{\"id\":\"agent-fee-sheet-table\"}},[(_vm.selectedMatter && _vm.gridRefresher)?_c('agent-fee-sheet-table',{ref:\"agentFeeSheetTable\",attrs:{\"matter\":_vm.selectedMatter},on:{\"feeSheetUpdated\":_vm.feeSheetUpdated}}):_vm._e()],1):_vm._e()])]),_c('div',{staticClass:\"matter-work-navigation-container\"},[_c('matter-work-navigator',{ref:\"matterWorkNavigation\",attrs:{\"phaseTypes\":_vm.phaseTypes,\"isAutoSkip\":_vm.isAutoSkip,\"pageType\":_vm.pageType,\"matterWorkId\":_vm.matterWorkId},on:{\"auditMatter\":_vm.auditMatter}})],1),_c('dx-popup',{staticClass:\"releaseCompletedMatters\",attrs:{\"title\":\"Release Completed Matters\",\"width\":\"100%\",\"max-width\":\"500\",\"drag-enabled\":true,\"height\":\"auto\",\"close-on-outside-click\":false,\"visible\":_vm.showingReleaseMatters},on:{\"update:visible\":function($event){_vm.showingReleaseMatters=$event}}},[_c('p',[_vm._v(\"Claimed set is complete. Select Release Claim\\n to remove this from your claimed list.\\n Otherwise, continue reviewing and release it\\n later on the claim screen.\")]),_c('span',{staticClass:\"load-indicator-release-matter\"},[_c('dx-load-indicator',{attrs:{\"width\":30,\"height\":30,\"visible\":_vm.showIndicatorForReleaseMatter}})],1),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"text\":\"Continue Reviewing\"},on:{\"click\":function($event){return _vm.closeReleaseMatters()}}}),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"disabled\":_vm.showIndicatorForReleaseMatter || _vm.showIndicatorForReleaseMatterButton},on:{\"click\":function($event){return _vm.releaseMatters()}}},[[_c('span',[_c('dx-load-indicator',{attrs:{\"width\":15,\"height\":15,\"visible\":_vm.showIndicatorForReleaseMatterButton}}),_c('span',{staticClass:\"dx-button-text\"},[_vm._v(_vm._s(_vm.buttonText))])],1)]],2)],1),_c('dx-popup',{staticClass:\"releaseCompletedMatters\",attrs:{\"title\":\"Cleared For Reporting\",\"width\":\"100%\",\"max-width\":\"500\",\"drag-enabled\":true,\"height\":\"auto\",\"close-on-outside-click\":false,\"visible\":_vm.showingReadyToReport},on:{\"update:visible\":function($event){_vm.showingReadyToReport=$event}}},[_c('p',[_vm._v(\"Are these ready to be reported on? These will be automatically \\n sent on \"+_vm._s(_vm.reportAvailableScheduledDate)+\".\")]),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"text\":\"No\"},on:{\"click\":function($event){return _vm.closeClearedForReport()}}}),_c('dx-button',{attrs:{\"width\":200,\"type\":\"default\",\"text\":\"Yes\"},on:{\"click\":function($event){return _vm.setClearedForReporting()}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"auditing-page-summary\"},[_c('div',{staticClass:\"charge-summary\"},[_c('dx-data-grid',{ref:\"chargeSummaryGrid\",attrs:{\"data-source\":_vm.chargeSummary,\"width\":\"100%\",\"height\":\"270px\",\"cache-enabled\":false,\"key-expr\":\"PhaseTotal.PhaseType\"},on:{\"cell-prepared\":_vm.onCellPrepared,\"content-ready\":_vm.onContentReady,\"row-collapsed\":_vm.onRowCollapsed,\"row-expanded\":_vm.onRowExpanded},scopedSlots:_vm._u([{key:\"focusToggle\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',{staticClass:\"dx-field focus-toggle\"},[_c('span',{staticClass:\"focus-toggle-switch\"},[_c('dx-switch',{attrs:{\"value\":data.data.IsFocused,\"focus-state-enabled\":true},on:{\"update:value\":function($event){return _vm.$set(data.data, \"IsFocused\", $event)},\"option-changed\":function($event){return _vm.onFocusedChanged(data.data.IsFocused ? data.data.PhaseTotal.PhaseType: '')}}})],1),_c('span',{staticClass:\"dx-field-value focus-toggle-label\"},[_vm._v(\"Focus\")])])]}},{key:\"servicesTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[_c('pre',[_vm._v(_vm._s(_vm._f(\"chargeTotalCurrency\")(data.data.PhaseTotal.Services)))]),(data.data.ServiceOverageType == 'HardOverage')?_c('i',{staticClass:\"dx-icon-info\",staticStyle:{\"color\":\"red\"}}):_vm._e(),(data.data.ServiceOverageType == 'SoftOverage')?_c('i',{staticClass:\"dx-icon-help\",staticStyle:{\"color\":\"#ffae42\"}}):_vm._e()])]}},{key:\"detailTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('charge-detail',{attrs:{\"summary\":data.data.AgentSummaries,\"phase-type\":data.data.PhaseTotal.PhaseType,\"phaseTypes\":_vm.phaseTypes,\"clientId\":_vm.matter.ClientId}})]}}])},[_c('dx-scrolling',{attrs:{\"mode\":\"standard\"}}),_c('dx-load-panel',{attrs:{\"enabled\":true}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"caption\":\"\",\"data-field\":\"PhaseType\",\"data-type\":\"string\",\"width\":170,\"cell-template\":_vm.phaseTypeTemplate}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"width\":80,\"cell-template\":\"focusToggle\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"PhaseTotal.Total\",\"caption\":\"TOTAL\",\"data-type\":\"string\",\"cell-template\":_vm.totalTemplate,\"alignment\":\"right\",\"cssClass\":\"retainSpaces\",\"width\":142}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"PhaseTotal.Services\",\"caption\":\"SERVICES\",\"data-type\":\"string\",\"cell-template\":\"servicesTemplate\",\"alignment\":\"right\",\"cssClass\":\"services\",\"width\":220}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"PhaseTotal.Expenses\",\"caption\":\"EXPENSES\",\"data-type\":\"string\",\"cell-template\":_vm.expensesTemplate,\"alignment\":\"right\",\"cssClass\":\"retainSpaces\",\"width\":120}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"PhaseTotal.Translations\",\"caption\":\"TRANSLATIONS\",\"data-type\":\"string\",\"cell-template\":_vm.translationsTemplate,\"alignment\":\"right\",\"cssClass\":\"retainSpaces\",\"width\":120}}),_c('dx-column'),_c('dx-summary',{attrs:{\"calculate-custom-summary\":_vm.calculateTotals}},[_c('dx-total-item',{attrs:{\"name\":\"PhaseTypeSummary\",\"summary-type\":\"custom\",\"show-in-column\":\"PhaseType\",\"display-format\":\"Case Total\"}}),_c('dx-total-item',{attrs:{\"name\":\"TotalsSummary\",\"summary-type\":\"sum\",\"show-in-column\":\"PhaseTotal.Total\",\"customize-text\":_vm.displayFormat,\"column\":\"PhaseTotal.Total\"}}),_c('dx-total-item',{attrs:{\"name\":\"ServicesSummary\",\"summary-type\":\"sum\",\"show-in-column\":\"PhaseTotal.Services\",\"customize-text\":_vm.displayFormat,\"column\":\"PhaseTotal.Services\"}}),_c('dx-total-item',{attrs:{\"name\":\"ExpensesSummary\",\"summary-type\":\"sum\",\"show-in-column\":\"PhaseTotal.Expenses\",\"customize-text\":_vm.displayFormat,\"column\":\"PhaseTotal.Expenses\"}}),_c('dx-total-item',{attrs:{\"name\":\"TranslationsSummary\",\"summary-type\":\"sum\",\"show-in-column\":\"PhaseTotal.Translations\",\"customize-text\":_vm.displayFormat,\"column\":\"PhaseTotal.Translations\"}})],1),_c('dx-master-detail',{attrs:{\"enabled\":true,\"template\":\"detailTemplate\"}})],1)],1),_c('div',{staticClass:\"executive-summary\"},[_c('dx-data-grid',{attrs:{\"data-source\":_vm.executiveSummary,\"width\":\"100%\",\"height\":\"270px\",\"cache-enabled\":false,\"column-auto-width\":true},on:{\"cell-prepared\":_vm.onExecutiveSummaryCellPrepared},scopedSlots:_vm._u([{key:\"detailsTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('pre',{style:(_vm.executiveSummaryPhaseBorder(data.data))},[_vm._v(_vm._s(data.data.Details))])]}}])},[_c('dx-scrolling',{attrs:{\"mode\":\"standard\"}}),_c('dx-load-panel',{attrs:{\"enabled\":true}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"Issue\",\"caption\":\"ISSUES\",\"data-type\":\"string\",\"alignment\":\"left\",\"width\":200,\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"data-field\":\"Details\",\"caption\":\"DETAILS\",\"data-type\":\"string\",\"alignment\":\"left\",\"cell-template\":\"detailsTemplate\",\"cssClass\":\"execSummary\",\"allow-sorting\":false}}),_c('dx-column')],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"charge-details\"},[_c('dx-data-grid',{staticClass:\"detail-grid\",attrs:{\"data-source\":_vm.AgentSummaries,\"cache-enabled\":false,\"width\":\"100%\",\"showRowLines\":true,\"showColumnHeaders\":false,\"key-expr\":\"AgentName\"},on:{\"cell-prepared\":_vm.onCellPrepared},scopedSlots:_vm._u([{key:\"serviceTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[(_vm.getMatterOverageButton(data.data) == 'SoftOverage')?_c('dx-button',{staticClass:\"overageBtn\",staticStyle:{\"float\":\"right\",\"background-color\":\"transparent\"},attrs:{\"icon\":\"check\"},on:{\"click\":function (e) { return _vm.toggleDoNotSend(e, data.data); }}}):(_vm.getMatterOverageButton(data.data) == 'SoftOverageDNS')?_c('dx-button',{staticClass:\"overageBtn\",staticStyle:{\"float\":\"right\",\"background-color\":\"transparent\"},attrs:{\"icon\":\"close\"},on:{\"click\":function (e) { return _vm.toggleDoNotSend(e, data.data); }}}):(_vm.getMatterOverageButton(data.data) == 'HardOverage')?_c('dx-button',{staticClass:\"overageBtn\",staticStyle:{\"float\":\"right\",\"background-color\":\"transparent\"},attrs:{\"icon\":\"check\"},on:{\"click\":function (e) { return _vm.toggleDoNotSend(e, data.data); }}}):(_vm.getMatterOverageButton(data.data) == 'HardOverageDNS')?_c('dx-button',{staticClass:\"overageBtn\",staticStyle:{\"float\":\"right\",\"background-color\":\"transparent\"},attrs:{\"icon\":\"close\"},on:{\"click\":function (e) { return _vm.toggleDoNotSend(e, data.data); }}}):_vm._e(),_c('pre',{style:(_vm.checkValue(data.data.Services, data.data.OverageDetail != undefined)),domProps:{\"innerHTML\":_vm._s(_vm.processDataTODisplay(data.data))}})],1)]}},{key:\"expenseTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('pre',{style:(_vm.checkValue(data.data.Expenses))},[_vm._v(_vm._s(_vm._f(\"chargeTotalCurrency\")(data.data.Expenses)))])]}},{key:\"translationTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('pre',{style:(_vm.checkValue(data.data.Translations))},[_vm._v(_vm._s(_vm._f(\"chargeTotalCurrency\")(data.data.Translations)))])]}}])},[_c('dx-column',{attrs:{\"allow-editing\":false,\"caption\":\"\",\"data-field\":\"AgentName\",\"data-type\":\"string\",\"alignment\":\"center\",\"width\":250}}),_c('dx-column',{attrs:{\"encodeHtml\":false,\"allow-editing\":false,\"data-field\":\"Services\",\"caption\":\"\",\"data-type\":\"number\",\"cell-template\":\"serviceTemplate\",\"cssClass\":\"retainSpaces\",\"width\":220}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"caption\":\"\",\"data-type\":\"number\",\"cell-template\":\"expenseTemplate\",\"cssClass\":\"retainSpaces\",\"width\":120}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"caption\":\"\",\"data-type\":\"number\",\"cell-template\":\"translationTemplate\",\"width\":120,\"cssClass\":\"retainSpaces\"}}),_c('dx-column')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport _ from 'lodash';\nimport { AgentSummary } from '../../models/audit/AgentSummary';\nimport {\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxMasterDetail\n} from 'devextreme-vue/data-grid';\nimport { DxButton } from 'devextreme-vue';\nimport { FeeTypeNameEnum } from '@/models/Fees/FeeTypeEnum';\nimport { OveragesTypeEnum } from '@/models/audit/OveragesTypeEnum';\nimport { AgentJurisdictionColorEnum} from '@/models/AgentJurisdictionColorEnum';\nimport { AuditingService } from '../../service/AuditingService';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { MatterOverageDNSDto } from '../../models/audit/MatterOverageDNSDto';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store'\nimport MatterWorkModule from '@/store/MatterWorkModule'\n\n@Component({\n components: {\n DxDataGrid,\n DxColumn,\n DxButton \n } \n})\nexport default class ChargeSummary extends Vue {\n @Prop()\n summary!: AgentSummary[];\n\n @Prop()\n phaseTypes!: PhaseTypeDto[];\n\n @Prop({ default: undefined })\n clientId!: Guid; \n\n @Prop()\n phaseType! : string;\n\n auditingService: AuditingService;\n matterWorkModule = getModule(MatterWorkModule, store);\n\n constructor() {\n super();\n this.auditingService = new AuditingService();\n }\n\n get matterOveragesDNS(): MatterOverageDNSDto[] {\n return this.matterWorkModule.matterOverageDoNotSend || []\n }\n\n get AgentSummaries() {\n return this.summary || [];\n } \n\n onContentReady(e:any){\n \n }\n\n checkValue(value: number, hasOverageDetail: boolean | undefined = undefined){\n let result: {}\n if(hasOverageDetail != undefined) {\n result= {\n \"padding-right\" : hasOverageDetail ? \"20px\": \"0px\", \n \"text-align\" : hasOverageDetail ? \"center\" : \"right\"\n };\n }\n else {\n result= {\n \"padding-right\" : \"0px\",\n \"text-align\" : \"right\"\n };\n }\n \n return result;\n }\n\n processDataTODisplay(data: AgentSummary) {\n let toDisplay: number | string = \"-\";\n\n if(data.Services) {\n let filter = (this.$options.filters as any).chargeTotalCurrency;\n let currencyFilter = (this.$options.filters as any).currency;\n if(!data.OverageDetail) {\n toDisplay = filter(data.Services);\n }\n else {\n let overage = data.OverageDetail;\n toDisplay = `${filter(data.Services)}
(${filter(overage.Total - overage.RuleValue,)} over ${currencyFilter(overage.RuleValue)} ${overage.TargetOrCap === 0 ? 'cap' : 'target'})`\n }\n }\n \n return toDisplay;\n }\n\n onCellPrepared(e: any) { \n if(e.rowType === 'data' && e.column.dataField == \"Services\" && e.row.data.OverageType != undefined && e.row.data.OverageInLatestBatch) { \n let colorVal = e.row.data.OverageType == OveragesTypeEnum.HardOverage ? 'red' : '#ffae42';\n e.cellElement.style['border'] = `solid 2px ${colorVal}`;\n e.cellElement.style['font-weight'] = 'bold';\n \n }\n else if(e.rowType === 'data' && e.column.dataField == \"AgentName\") {\n if(e.row.data.AgentJurisdictionFree){\n e.cellElement.style['color'] = AgentJurisdictionColorEnum.Free; \n }\n else if(e.row.data.AgentJurisdiction == null) {\n e.cellElement.style['color'] = AgentJurisdictionColorEnum.Unset;\n }\n else if(e.row.data.AgentJurisdiction) {\n e.cellElement.style['color'] = AgentJurisdictionColorEnum.In;\n }\n else {\n e.cellElement.style['color'] = AgentJurisdictionColorEnum.Out;\n }\n }\n }\n\n toggleDoNotSend(e: any, data: any) {\n var button = e.component;\n let phase = this.phaseTypes.find(z=>z.PhaseTypeId == data.PhaseTypeId);\n let matterOverageDNSDto: MatterOverageDNSDto = {\n ClientId: this.clientId,\n MatterId: data.MatterId,\n AgentName: data.AgentName,\n PhaseTypeId: data.PhaseTypeId,\n PhaseTypeName: phase ? phase.PhaseName : \"\"\n };\n this.auditingService.toggleMatterOverageDNS(matterOverageDNSDto)\n .then(result => { \n if(result.Data) { \n button.option(\"icon\", \"close\")\n this.matterOveragesDNS.unshift(matterOverageDNSDto);\n this.$root.$emit('updatenavmatters', matterOverageDNSDto.MatterId);\n }\n else { \n button.option(\"icon\", \"check\");\n let indexToRemove = this.matterOveragesDNS.findIndex(x=> { \n return x.ClientId == matterOverageDNSDto.ClientId \n && x.MatterId == matterOverageDNSDto.MatterId\n && x.AgentName == matterOverageDNSDto.AgentName\n && x.PhaseTypeId == matterOverageDNSDto.PhaseTypeId\n })\n this.$delete(this.matterOveragesDNS,indexToRemove);\n this.$root.$emit('updatenavmatters', matterOverageDNSDto.MatterId);\n }\n });\n }\n\n getMatterOverageButton(data: any) { \n if(data.OverageType == \"SoftOverage\") {\n if(this.matterOveragesDNS.find(mo => mo.MatterId == data.MatterId && mo.AgentName == data.AgentName && mo.PhaseTypeId == data.PhaseTypeId) != undefined) {\n return \"SoftOverageDNS\";\n }\n else {\n return \"SoftOverage\";\n }\n }\n else if(data.OverageType == \"HardOverage\") {\n if(this.matterOveragesDNS.find(mo => mo.MatterId == data.MatterId && mo.AgentName == data.AgentName && mo.PhaseTypeId == data.PhaseTypeId) != undefined) {\n return \"HardOverageDNS\";\n }\n else {\n return \"HardOverage\";\n }\n }\n }\n}\n","export enum ExecutiveSummaryTypeEnum {\n Phase,\n AnalysisItem,\n Infraction\n}","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-detail.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-detail.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./charge-detail.vue?vue&type=template&id=af080416&scoped=true&\"\nimport script from \"./charge-detail.vue?vue&type=script&lang=ts&\"\nexport * from \"./charge-detail.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./charge-detail.vue?vue&type=style&index=0&id=af080416&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"af080416\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { ChargeSummaryDto } from '@/models/audit/ChargeSummaryDto';\nimport { AgentSummary } from '@/models/audit/AgentSummary';\nimport {\n DxDataGrid,\n DxColumn, \n DxMasterDetail,\n DxSummary,\n DxTotalItem,\n DxLoadPanel,\n DxScrolling\n} from 'devextreme-vue/data-grid';\nimport { DxSwitch } from 'devextreme-vue/switch';\nimport { MatterWorkMatterDto } from '@/models/matter-work/MatterWorkMatterDto';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { FeeTypeNameEnum } from '@/models/Fees/FeeTypeEnum';\nimport _ from 'lodash';\nimport ChargeDetail from './charge-detail.vue';\nimport { FeeSheetRuleDto } from '@/models/Fees/FeeSheetRuleDto';\nimport { FeeSheetTypeEnum } from '@/models/Fees/FeeSheetTypeEnum';\nimport { MatterOverage } from '@/models/MatterOverage';\nimport { OveragesTypeEnum } from '@/models/audit/OveragesTypeEnum';\nimport { AutoTextDataDto } from '@/models/auto-text/AutoTextDataDto';\nimport { FeeBudgetRuleDto } from '@/models/fee-budgets/FeeBudgetRuleDto';\nimport { AuditingService } from '@/service/AuditingService';\nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\nimport { MatterBestRulesForOverageDto } from '@/models/matter/MatterBestRulesForOverageDto';\nimport { ExecutiveSummaryDto } from '@/models/ExecutiveSummaryDto';\nimport { MattersService } from '@/service/MattersService';\nimport { ExecutiveSummaryTypeEnum } from '@/models/ExecutiveSummaryTypeEnum';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\n\n@Component({\n components: {\n DxDataGrid,\n DxColumn,\n DxSwitch,\n DxMasterDetail,\n ChargeDetail,\n DxSummary,\n DxTotalItem,\n DxLoadPanel,\n DxScrolling\n }\n})\nexport default class ChargeSummary extends Vue {\n $refs: Vue['$refs'] & {\n chargeSummaryGrid?: DxDataGrid;\n } = {};\n\n @Prop()\n matter!: MatterWorkMatterDto;\n\n get matterId(): Guid {\n return this.matter.MatterId;\n }\n\n get matterLineItems() : ManualCodeInvoiceLineItemDto[] {\n return this.matter.LineItems;\n }\n\n @Watch(\"matter.MatterId\")\n async onMatterChanged() {\n this.matterIdChanged = true;\n this.currentFocusedPhaseType = \"\";\n this.updateSummary();\n }\n\n @Prop()\n phaseTypes!: PhaseTypeDto[];\n\n @Prop({ default: undefined })\n clientId!: Guid;\n\n @Prop()\n feeSheetRules!: FeeSheetRuleDto[];\n\n @Prop()\n feeBudgetRules!: FeeBudgetRuleDto[];\n\n @Prop()\n latestBatchIds!: Guid[];\n\n get activeBatchIds(): Guid[] {\n return this.latestBatchIds;\n }\n\n private get dxDataGrid() {\n return (this.$refs.chargeSummaryGrid as any).instance;\n } \n\n fromExpandingCollapsingRow: boolean = false;\n currentFocusedPhaseType: string|undefined;\n autoTextData: AutoTextDataDto[] = [];\n dateFilter: any = (this.$options.filters as any);\n matterBestRuleForOverage: MatterBestRulesForOverageDto[] = [];\n auditingService: AuditingService;\n matterService: MattersService;\n\n constructor() {\n super();\n this.auditingService = new AuditingService();\n this.matterService = new MattersService();\n this.loadData(this.auditingService, this.matterService); \n }\n\n async loadData(auditingService: AuditingService, matterService: MattersService) {\n this.updateSummary(matterService);\n }\n \n updateSummary(matterService: MattersService | undefined = undefined) {\n (this.matterService ? this.matterService: \n (matterService ? matterService : new MattersService()))\n .getMatterBestRulesForOverage(this.matter.MatterId)\n .then(result => {\n this.matterBestRuleForOverage = result;\n });\n\n (this.matterService ? this.matterService: \n (matterService ? matterService : new MattersService()))\n .getExecutiveSummaryData(this.matter.MatterId, ExecutiveSummaryRequestEnum.All)\n .then(result => {\n this.execSummary = result;\n });\n }\n\n updateSummaryWhenChanges(type : ExecutiveSummaryRequestEnum | undefined) {\n if(type != undefined) {\n this.matterService.getMatterBestRulesForOverage(this.matter.MatterId)\n .then(result => {\n this.matterBestRuleForOverage = result;\n });\n\n var execResult: ExecutiveSummaryDto[] = []\n this.matterService.getExecutiveSummaryData(this.matter.MatterId, type)\n .then(result => {\n execResult = result;\n\n if(type == ExecutiveSummaryRequestEnum.Infraction || type == ExecutiveSummaryRequestEnum.All) {\n var phaseOverage = this.executiveSummary.filter(x => x.Type == ExecutiveSummaryTypeEnum.Phase);\n var analysisItem = this.executiveSummary.filter(x => x.Type == ExecutiveSummaryTypeEnum.AnalysisItem);\n\n this.executiveSummary.length = 0;\n this.executiveSummary = _.concat(phaseOverage, execResult, analysisItem);\n }\n if(type == ExecutiveSummaryRequestEnum.PhaseAnalysisItem || type == ExecutiveSummaryRequestEnum.All){\n var infractionOverage = this.executiveSummary.filter(x => x.Type == ExecutiveSummaryTypeEnum.Infraction);\n var phaseOverage = execResult.filter(x => x.Type == ExecutiveSummaryTypeEnum.Phase);\n var analysisItem = execResult.filter(x => x.Type == ExecutiveSummaryTypeEnum.AnalysisItem);\n\n this.executiveSummary.length = 0;\n this.executiveSummary = _.concat(phaseOverage, infractionOverage, analysisItem);\n }\n })\n .finally(() => {\n \n });\n }\n }\n\n onRowExpanded(e:any) {\n this.fromExpandingCollapsingRow = true;\n }\n\n onRowCollapsed(e:any) {\n let component = e.component.instance();\n let chargeSummary = component.getDataSource().items();\n let summ = chargeSummary.find((item: ChargeSummaryDto) => item.PhaseTotal.PhaseType == e.key)\n\n if(summ.IsFocused){\n this.currentFocusedPhaseType = undefined;\n summ.IsFocused = false;\n component.saveEditData();\n this.$root.$emit(\"focused-phase-type\", undefined);\n }\n\n this.fromExpandingCollapsingRow = true;\n }\n\n private onFocusedChanged(phaseType: string) { \n if(phaseType) {\n this.currentFocusedPhaseType = phaseType;\n let chargeSummary = this.dxDataGrid.getDataSource().items()\n let filtered = chargeSummary.filter((item: ChargeSummaryDto) => item.PhaseTotal.PhaseType !== phaseType);\n\n filtered.forEach((item: ChargeSummaryDto) => {\n if(item.IsFocused) {\n item.IsFocused = false;\n }\n });\n }\n else {\n this.currentFocusedPhaseType = undefined;\n }\n\n this.dxDataGrid.saveEditData();\n this.$root.$emit(\"focused-phase-type\", phaseType);\n }\n\n displayFormat(e:any){\n return (this.$options.filters as any).chargeTotalCurrency(e.value);\n }\n\n calculateTotals(options: any) {\n if (options.name === 'PhaseTypeSummary') {\n if (options.summaryProcess === 'start') {\n options.totalValue = 0;\n } else if (options.summaryProcess === 'calculate') {\n options.totalValue = options.totalValue + 0;\n }\n }\n }\n\n matterIdChanged: boolean = true;\n onContentReady(e: any) {\n if(this.matterIdChanged) {\n this.expandRowsInCurrentBatch(e.component);\n }\n else if(!this.fromExpandingCollapsingRow) {\n this.scrollToFocusedRow();\n }\n }\n\n scrollToFocusedRow() {\n let focusedPhase = document.getElementsByClassName('focused-phase')[0];\n if (focusedPhase) {\n setTimeout(() => {\n focusedPhase.scrollIntoView(true);\n },200)\n }\n }\n\n expandRowsInCurrentBatch(component: any) { \n let items = component.getDataSource().items();\n\n let filteredItems = items.filter((element : any) => this.checkIfIsInCurrentBatch(element.BatchId));\n let notInBatch = items.filter((element : any) => !this.checkIfIsInCurrentBatch(element.BatchId))\n\n notInBatch.forEach((element : any) => {\n component.collapseRow(element.PhaseTotal.PhaseType);\n });\n\n filteredItems.forEach((element : any) => {\n component.expandRow(element.PhaseTotal.PhaseType);\n });\n\n //scrolls the element to the top unlike the navigateToKey\n let billedHere = document.getElementsByClassName('billed-here')[0];\n if (billedHere) {\n billedHere.scrollIntoView(true);\n }\n \n\n if(items && items.length > 0 && this.activeBatchIds && this.activeBatchIds.length > 0) {\n this.matterIdChanged = false;\n } \n }\n\n onCellPrepared(e: any) { \n if(e.rowType === 'data' && e.column.dataField == \"PhaseType\") { \n e.cellElement.style['background-color'] = e.row.data.PhaseTotal.RgbHex;\n }\n\n if(e.rowType === 'data' && e.column.dataField == \"PhaseTotal.Services\" && e.row.data.ServiceOverageType && e.row.data.OverageInLatestBatch) { \n e.cellElement.style['color'] = 'red';\n e.cellElement.style['font-weight'] = 'bold';\n }\n }\n\n onExecutiveSummaryCellPrepared(e: any) { \n if(e.rowType === 'data' ) { \n if(e.column.dataField == \"Issue\" && e.row.data.Type == ExecutiveSummaryTypeEnum.Phase) {\n e.cellElement.style['background-color'] = e.row.data.RGB;\n }\n\n if (e.row.data.Type == ExecutiveSummaryTypeEnum.AnalysisItem && !e.row.data.IssueInLatestBatch) {\n e.cellElement.style['background-color'] = '#f5f5f5';\n }\n }\n }\n executiveSummaryPhaseBorder(data: any) {\n if(data.Type == ExecutiveSummaryTypeEnum.Phase) {\n let colorVal = data.OverageType == 0 ? '#ffae42' : 'red';\n return {\n 'border' : `solid 2px ${colorVal}`\n };\n }\n }\n\n get matterFeeSheetRules(): FeeSheetRuleDto[] {\n return this.feeSheetRules.filter(\n r => \n r.ClientId === this.matter.ClientId &&\n (r.Country == null || r.Country.CountryCode === this.matter.CountryCode)\n );\n }\n\n get matterFeeBudgetRules() {\n return this.feeBudgetRules.filter(r => r.MatterId === this.matterId);\n }\n\n matterOverages(): MatterOverage[] {\n let filteredRules = this.matterFeeSheetRules.filter(r => r.FilingTypes.length == 0 || r.FilingTypes.some(f => f.FilingTypeId == this.matter.FilingTypeId)); \n let lineItems = this.matterLineItems.filter(item => item.FeeType === FeeTypeNameEnum.Service);\n let groupedByAgent = _.groupBy(lineItems, i => i.AgentName);\n \n let matterOverages = _.flatMap(groupedByAgent, (linesByAgent, agentName) => {\n let groupedByPhase = _.groupBy(linesByAgent, i => i.AssignedPhaseTypeId);\n\n return _.flatMap(groupedByPhase, (lineItems, phaseTypeId) => {\n let overages: MatterOverage[] = [];\n let phaseType = this.phaseTypes.filter(t => t.PhaseTypeId === parseInt(phaseTypeId))[0];\n let lineItemsPhase = phaseType != null ?\n (phaseType.IsBatched ?\n lineItems.filter(i => this.activeBatchIds && this.activeBatchIds.includes(i.BatchId))\n : lineItems) : [];\n\n if (phaseType != null && lineItemsPhase && lineItemsPhase.length > 0) {\n let phaseTypeId = phaseType.PhaseTypeId;\n let bestRule = this.matterBestRuleForOverage.find(m => m.AgentName == agentName && m.PhaseTypeId == phaseTypeId)\n\n if(bestRule) {\n let overage: MatterOverage = {\n AliasName: phaseType.PhaseName,\n RgbHex: phaseType.RgbHex,\n Total: bestRule.PhaseAgentTotal ? bestRule.PhaseAgentTotal : 0,\n RuleValue: bestRule.RuleType == FeeSheetTypeEnum.Cap ? \n (bestRule.CapAmount ? bestRule.CapAmount : 0) : \n (bestRule.TargetAmount ? bestRule.TargetAmount : 0),\n TargetOrCap: bestRule.RuleType,\n OverageType: bestRule.HardOrSoftOverage == 0 ? OveragesTypeEnum.SoftOverage : OveragesTypeEnum.HardOverage,\n AgentName: agentName,\n PhaseOrder: phaseType.PhaseOrder,\n OverageInLatestBatch : bestRule.OverageInLatestBatch\n };\n \n if(bestRule.FeeSheetRuleId) {\n if (overages.filter(mo => mo.AliasName == phaseType.PhaseName).length != 0) {\n if (bestRule.RuleType == FeeSheetTypeEnum.Cap) {\n overages = overages.filter(mo => mo.TargetOrCap != FeeSheetTypeEnum.Target && mo.AliasName != phaseType.PhaseName);\n overages.push(overage);\n }\n } else {\n overages.push(overage);\n }\n }\n else{\n overages.push(overage);\n }\n }\n }\n\n return overages;\n });\n });\n\n return matterOverages;\n }\n\n\n private currentLineItems: ManualCodeInvoiceLineItemDto[] = [];\n \n execSummary: ExecutiveSummaryDto[] = [];\n get executiveSummary() : ExecutiveSummaryDto[] {\n return this.execSummary;\n }\n set executiveSummary(data: ExecutiveSummaryDto[]) {\n this.execSummary = data;\n }\n\n get chargeSummary(): ChargeSummaryDto[] { \n let matterOverAges = this.matterOverages();\n this.currentLineItems = _.cloneDeep(this.matterLineItems);\n let latestBatchId = this.activeBatchIds;\n let groupedItems = _.groupBy(this.currentLineItems, i => i.AssignedPhaseName); \n\n let result: ChargeSummaryDto[] = _.map(groupedItems, (phaseGroup, key) => {\n let agentSummaries: AgentSummary[] = [];\n let batchId : Guid = \"\";\n let agentGroups = _.groupBy(phaseGroup, g => g.AgentName);\n\n _.forEach(agentGroups, (lineItems) => { \n let agentSumm: AgentSummary = {\n AgentName: lineItems[0].AgentName,\n Services: 0,\n Translations: 0,\n Expenses: 0,\n AgentJurisdiction: lineItems[0].AgentJurisdiction,\n AgentJurisdictionFree: lineItems[0].AgentJurisdictionFree,\n MatterId: this.matterId,\n PhaseTypeId: lineItems[0].AssignedPhaseTypeId,\n OverageInLatestBatch: false\n }\n\n let serviceLineItems = lineItems.filter(li => li.FeeType === FeeTypeNameEnum.Service)\n agentSumm.Services = serviceLineItems.reduce((sum, li) => sum + (li.IsExempt ? 0 : li.LineItemTotal), 0);\n agentSumm.Expenses = lineItems.filter(li => li.FeeType === FeeTypeNameEnum.Expense).reduce((sum, li) => sum + (li.IsExempt ? 0 : li.LineItemTotal), 0);\n agentSumm.Translations = lineItems.filter(li => li.FeeType === FeeTypeNameEnum.Translation).reduce((sum, li) => sum + (li.IsExempt ? 0 : li.LineItemTotal), 0);\n \n let overage = _.find(matterOverAges, item => item.AgentName === agentSumm.AgentName && item.AliasName === key); \n if(overage) {\n agentSumm.OverageDetail = overage;\n agentSumm.OverageType = agentSumm.OverageDetail.OverageType;\n agentSumm.RuleType = agentSumm.OverageDetail.TargetOrCap;\n agentSumm.OverageInLatestBatch = overage.OverageInLatestBatch ? overage.OverageInLatestBatch : false;\n }\n \n let lineItem = lineItems.find(li => latestBatchId && latestBatchId.some(b => b == li.BatchId));\n if(lineItem != undefined) {\n batchId = lineItem.BatchId\n } \n agentSummaries.push(agentSumm);\n });\n \n\n //for summary overage type\n let serviceWithOverages = agentSummaries.filter(item => item.OverageDetail);\n let summaryOverageType = undefined;\n if(serviceWithOverages && serviceWithOverages.length > 0) {\n summaryOverageType = _.find(serviceWithOverages, item => item.OverageType && item.OverageType === OveragesTypeEnum.HardOverage)\n ? OveragesTypeEnum.HardOverage : OveragesTypeEnum.SoftOverage;\n }\n\n let services = _.sumBy(\n agentSummaries,\n i => i.Services\n );\n let expenses = _.sumBy(\n agentSummaries,\n i => i.Expenses\n );\n let translations = _.sumBy(\n agentSummaries,\n i => i.Translations\n ); \n\n let phaseType = _.find(this.phaseTypes, i => key === i.PhaseName);\n let phaseTypeName = key == null || key === 'null' ? 'Unassigned' : key;\n \n return {\n PhaseTotal: {\n Services: services,\n Expenses: expenses,\n Translations: translations,\n PhaseType: phaseTypeName,\n Total: services + expenses + translations,\n RgbHex: phaseType ? phaseType.RgbHex : undefined,\n PhaseOrder: phaseType ? phaseType.PhaseOrder : undefined\n },\n AgentSummaries: agentSummaries,\n RowCount: phaseGroup.length,\n BatchId: batchId,\n ServiceOverageType: summaryOverageType,\n PhaseOrder: phaseType ? phaseType.PhaseOrder : 0,\n IsFocused: this.currentFocusedPhaseType === phaseTypeName ? true : false,\n OverageInLatestBatch: agentSummaries.some(s => s.OverageInLatestBatch)\n };\n \n });\n\n this.fromExpandingCollapsingRow = false;\n // this.currentChargeSummary = result.sort((a, b) => a.PhaseOrder - b.PhaseOrder);\n\n return result.sort((a, b) => a.PhaseOrder - b.PhaseOrder);\n }\n\n private checkIfIsInCurrentBatch(batchId: Guid): boolean {\n return this.activeBatchIds && this.activeBatchIds.some(b => b === batchId);\n }\n\n private isInCurrentBatch(batchId: Guid): string {\n return this.checkIfIsInCurrentBatch(batchId) ? \"bold\" : \"normal\"; \n }\n\n private phaseTypeTemplate(container: any, options: any) {\n container.textContent = `${options.data.PhaseTotal.PhaseType} (${options.data.RowCount})`;\n container.className = `${this.checkIfIsInCurrentBatch(options.data.BatchId) ? 'billed-here': ''} ${options.data.IsFocused ? 'focused-phase': ''}`;\n container.style.fontWeight = this.isInCurrentBatch(options.data.BatchId);\n }\n\n private totalTemplate(container: any, options: any) {\n const filter = (this.$options.filters as any).chargeTotalCurrency;\n\n container.textContent = filter(options.data.PhaseTotal.Total, false);\n }\n\n private expensesTemplate(container: any, options: any) {\n const filter = (this.$options.filters as any).chargeTotalCurrency;\n\n container.textContent = filter(options.data.PhaseTotal.Expenses, false);\n }\n\n private translationsTemplate(container: any, options: any) {\n const filter = (this.$options.filters as any).chargeTotalCurrency;\n\n container.textContent = filter(options.data.PhaseTotal.Translations, false);\n }\n\n beforeDestroy(): void {\n this.$root.$off(\"process-auto-text-value\", this.handleUserSettingChanged);\n this.$root.$off('updatenavmatters', this.updateSummaryWhenChanges)\n }\n\n async mounted(): Promise {\n this.$root.$on(\"process-auto-text-value\", this.handleUserSettingChanged);\n this.$root.$on('updatenavmatters', this.updateSummaryWhenChanges)\n }\n\n handleUserSettingChanged(done: any) {\n done(this.autoTextData);\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-summary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./charge-summary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./charge-summary.vue?vue&type=template&id=0d2b7676&scoped=true&\"\nimport script from \"./charge-summary.vue?vue&type=script&lang=ts&\"\nexport * from \"./charge-summary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./charge-summary.vue?vue&type=style&index=0&id=0d2b7676&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d2b7676\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.feeSheetTableLoaded),expression:\"feeSheetTableLoaded\"}],staticClass:\"agent-fee-sheet-table\"},[_c('dx-data-grid',{attrs:{\"data-source\":_vm.AgentFeeSheets,\"max-height\":100,\"showRowLines\":true,\"showColumnLines\":true,\"showBorders\":true,\"height\":190,\"columnWidth\":250,\"key-expr\":\"AgentName\"},on:{\"cell-prepared\":_vm.onCellPrepared,\"content-ready\":_vm.onContentReady,\"context-menu-preparing\":_vm.prepareContextMenu}},[_c('dx-scrolling',{attrs:{\"mode\":\"standard\"}}),_c('dx-load-panel',{attrs:{\"enabled\":true}}),_c('dx-column',{attrs:{\"data-field\":\"AgentName\",\"data-type\":\"string\"}}),_vm._l((_vm.columns),function(column){return _c('dx-column',{key:column,attrs:{\"name\":column,\"data-type\":\"string\",\"data-field\":column,\"allow-editing\":false,\"allow-sorting\":false,\"allow-filtering\":false,\"width\":_vm.widthValue}})}),_c('dx-column')],2),_c('add-update-fee-sheets',{attrs:{\"showDialog\":_vm.showAddUpdateFeeSheet,\"client\":_vm.client,\"feeSheet\":_vm.selectedFeeSheet,\"feeSheetFor\":_vm.feeSheetOwner,\"feeSheetType\":_vm.feeSheetUpdate},on:{\"hiding\":_vm.saveFeeSheet,\"cancel\":_vm.cancelFeeSheet}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport _ from 'lodash';\nimport {\n DxDataGrid,\n DxColumn,\n DxLoadPanel,\n DxScrolling\n} from 'devextreme-vue/data-grid';\nimport { MatterWorkMatterDto } from '@/models/matter-work/MatterWorkMatterDto';\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\nimport { AgentFeeSheetTableDto } from '@/models/audit/AgentFeeSheetTableDto';\nimport { AgentFeeSheetTableColumnDto } from '@/models/audit/AgentFeeSheetTableDto';\nimport { AgentFeeSheetTableDetailEnum, AgentFeeSheetDetailColorEnum } from '@/models/audit/AgentFeeSheetTableDetailEnum';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { FeeSheetModalFor } from '@/models/Fees/FeeTypeEnum';\nimport { FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport AddUpdateFeeSheets from '../fee-sheets/add-update-fee-sheets.vue';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\n@Component({\n components: {\n DxDataGrid,\n DxColumn,\n DxLoadPanel,\n DxScrolling,\n AddUpdateFeeSheets\n }\n \n})\nexport default class AgentFeeSheetTable extends Vue {\n \n private agents: AgentDto[] = [];\n private agentsFeeSheets: FeeSheetDto[] = [];\n \n @Prop()\n matter!: MatterWorkMatterDto;\n\n get matterId(): Guid {\n return this.matter.MatterId;\n }\n\n get matterLineItems() : ManualCodeInvoiceLineItemDto[] {\n return this.matter.LineItems;\n }\n\n @Watch(\"matter.MatterId\")\n async onMatterChanged() { \n await this.processGettingAgentFeeSheets();\n }\n\n feeSheetService: FeeSheetsService;\n feeSheetTableLoaded: boolean = false;\n\n clientFeeSheets: FeeSheetDto[] = [];\n\n private showAddUpdateFeeSheet: boolean = false;\n\n selectedFeeSheetId: Guid = \"\";\n feeSheetOwner: FeeSheetModalFor = FeeSheetModalFor.Agent;\n feeSheetUpdate: FeeSheetModalType = FeeSheetModalType.Update;\n\n get selectedFeeSheet(): FeeSheetDto{\n return _.clone(this.agentsFeeSheets.filter(s => s.FeeSheetId == this.selectedFeeSheetId)[0]); \n }\n\n get client() : ClientDto| undefined {\n if(this.matter) {\n return {\n ClientId : this.matter.ClientId,\n ClientName : this.matter.ClientName\n }\n }\n else { return undefined;}\n }\n\n created() {\n this.loadData();\n }\n \n constructor() {\n super();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets');\n }\n\n async loadData() { \n this.clientFeeSheets = (await this.feeSheetService.getFeeSheetPerClient(this.matter.ClientId)); \n await this.processGettingAgentFeeSheets(); \n }\n\n async processGettingAgentFeeSheets() {\n this.agents = _.uniqBy(this.matter.LineItems, item => item.AgentName)\n .map(function(item): AgentDto {\n return {AgentName: item.AgentName, AgentId: item.AgentId};\n });\n let agentIds = this.agents.map(a => a.AgentId);\n this.agentsFeeSheets = await this.feeSheetService.getFeeSheetsStatus(this.matter.ClientId, agentIds);\n }\n\n feeSheetColumns: string[] = [];\n\n get columns() : string[] { \n return this.feeSheetColumns;\n }\n \n get AgentFeeSheets() : AgentFeeSheetTableDto[] { \n return this.processData(this.agentsFeeSheets); \n }\n\n onContentReady(e: any) {\n if(!e.component.__firstLoad) {\n let items = e.component.getDataSource().items();\n\n if(items && items.length > 0) {\n this.feeSheetTableLoaded = true;\n e.component.__firstLoad = true; \n }\n } \n }\n\n widthValue = 250;\n heightValue = 120;\n\n processData(agentsFeeSheets: FeeSheetDto[]): AgentFeeSheetTableDto[] {\n let result: AgentFeeSheetTableDto[]= [];\n let agentsWithoutFeeSheets: AgentFeeSheetTableDto[] = [];\n let clientFeeSheetsFiltered = this.clientFeeSheets.filter(c => this.agentsFeeSheets.some(a => a.ParentFeeSheetId == c.FeeSheetId)); \n let clientFeeSheets = _.orderBy(clientFeeSheetsFiltered, c => c.FeeSheetName);\n this.feeSheetColumns = _.uniqBy(clientFeeSheets, c => c.FeeSheetName).map(s => s.FeeSheetName);\n this.feeSheetColumns = _.orderBy(this.feeSheetColumns, c => c.toLowerCase());\n\n //loop over agents in matter\n this.agents.forEach(agent => {\n let tableRow: AgentFeeSheetTableDto = {\n AgentName: agent.AgentName,\n Colors: [] as AgentFeeSheetDetailColorEnum[],\n FeeSheetIds: [] as Guid[]\n }; \n \n //then for each client fee sheet, make a column \n clientFeeSheets.forEach(clientFeeSheet => { \n let agentFeeSheet = this.agentsFeeSheets.find(s => s.ParentFeeSheetId == clientFeeSheet.FeeSheetId\n && s.AgentId == agent.AgentId);\n\n if(agentFeeSheet != undefined) { \n tableRow.FeeSheetIds.push(agentFeeSheet.FeeSheetId);\n let tableColumn : AgentFeeSheetTableColumnDto = {\n Signed: agentFeeSheet.Signed,\n Modified: agentFeeSheet.Modified,\n EffectiveDate : (this.$options.filters as any).moment(agentFeeSheet.EffectiveDate,\"MM-DD-YYYY\"),\n LastSentDate : agentFeeSheet.LastSentDate ? \n (this.$options.filters as any).moment(agentFeeSheet.LastSentDate,\"MM-DD-YYYY\"):undefined \n };\n let modifiedString = agentFeeSheet.Modified ? \"Modified\" : \"\";\n\n if(agentFeeSheet.Signed === \"Yes\") {\n if(agentFeeSheet.EffectiveDate) {\n tableRow[agentFeeSheet.FeeSheetName] = `${AgentFeeSheetTableDetailEnum.Signed} ${modifiedString} ${new Date(agentFeeSheet.EffectiveDate).toDateString()}`; \n } \n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.Signed);\n }\n else if(agentFeeSheet.Signed !== \"Yes\" && agentFeeSheet.Signed !== \"No\"){\n let signedDetail = agentFeeSheet.Signed.replace(' of ','/');\n let detail = AgentFeeSheetTableDetailEnum.SignedXY.replace('X/Y', signedDetail);\n\n if(agentFeeSheet.EffectiveDate) {\n tableRow[agentFeeSheet.FeeSheetName] = `${detail} ${modifiedString} ${new Date(agentFeeSheet.EffectiveDate).toDateString() }`; \n } \n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.SignedXY);\n }\n else if(agentFeeSheet.Signed === \"No\") {\n if(!agentFeeSheet.LastSentDate){\n tableRow[agentFeeSheet.FeeSheetName] = AgentFeeSheetTableDetailEnum.NotYetSent;\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.NotYetSent);\n } \n else {\n tableRow[agentFeeSheet.FeeSheetName] = AgentFeeSheetTableDetailEnum.NotSigned;\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.NotSigned);\n }\n } \n } \n else {\n tableRow.FeeSheetIds.push(\"\");\n tableRow.Colors.push(AgentFeeSheetDetailColorEnum.Blank);\n } \n });\n\n if(tableRow.FeeSheetIds.every(id => id == \"\")) {\n agentsWithoutFeeSheets.push(tableRow);\n }\n else {\n result.push(tableRow);\n } \n });\n \n result = _.orderBy(result, a => a.AgentName.toLowerCase());\n agentsWithoutFeeSheets = _.orderBy(agentsWithoutFeeSheets, a => a.AgentName.toLowerCase());\n result = result.concat(agentsWithoutFeeSheets);\n\n return result;\n } \n\n onCellPrepared(e: any) { \n if(e.rowType === 'data' && e.column.dataField !== \"AgentName\" && e.column.dataField != undefined) {\n let obj = e.row.data; \n if(obj.hasOwnProperty(e.column.dataField)) { \n e.cellElement.style['background-color'] = e.row.data.Colors[e.columnIndex-1];\n }\n else { \n e.cellElement.style['background-color'] = AgentFeeSheetDetailColorEnum.Blank;\n }\n\n e.cellElement.style['width'] = this.widthValue;\n }\n else if(e.column.dataField == undefined) {\n e.cellElement.style['background-color'] = AgentFeeSheetDetailColorEnum.Blank;\n }\n }\n\n prepareContextMenu(e: any) { \n if(e.target == \"header\" || e.columnIndex == 0 || e.column.dataField == undefined) {\n return;\n } \n \n let feeSheetId = e.row.data.FeeSheetIds[e.columnIndex-1];\n if(feeSheetId != \"\") {\n e.items = [];\n e.items.push({\n text: \"View Sheet\",\n onItemClick: () => {\n this.openFeeSheet(feeSheetId);\n }\n });\n }\n }\n\n openFeeSheet(feeSheetId: Guid) { \n this.selectedFeeSheetId = feeSheetId;\n this.showAddUpdateFeeSheet = true;\n }\n\n private saveFeeSheet(data: any): void { \n this.showAddUpdateFeeSheet = false;\n this.selectedFeeSheetId = \"\";\n if(data && data.updateData) {\n this.processGettingAgentFeeSheets();\n this.$emit(\"feeSheetUpdated\");\n }\n }\n\n private cancelFeeSheet(): void {\n this.selectedFeeSheetId = \"\";\n this.showAddUpdateFeeSheet = false; \n }\n}\n","export enum BatchEventTypeEnum {\n DataDeadline = 10,\n AutoCoding = 30,\n CodingDeadline = 40,\n AuditingDeadline = 50,\n AnalysisDeadline = 60,\n ReportAvailable = 70\n}\n\nexport enum BatchEventDateTypeEnum {\n CreateDate = 0,\n ScheduledDate = 1,\n ProcessedDate = 2,\n StartDate = 3,\n EndDate = 4\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-table.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./agent-fee-sheet-table.vue?vue&type=template&id=6c2b7cf7&\"\nimport script from \"./agent-fee-sheet-table.vue?vue&type=script&lang=ts&\"\nexport * from \"./agent-fee-sheet-table.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./agent-fee-sheet-table.vue?vue&type=style&index=0&id=6c2b7cf7&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxButton, DxPopup, DxLoadIndicator } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { MatterWorkMatterDto } from '../models/matter-work/MatterWorkMatterDto';\nimport MatterWorkLineItems, { MatterWorkLineItemsDialogState } from '../components/matter-work/matter-work-line-items.vue';\nimport { MatterWorkTypeEnum } from '../models/matter-work/MatterWorkTypeEnum';\nimport { PhaseTypeDto } from '../models/PhaseTypeDto';\nimport { ManualCodeInvoiceLineItemDto } from '@/models/ManualCodeInvoiceLineItemDto';\nimport { KeyMap } from '@/models/KeyMap';\nimport { PhaseNames } from '@/models/PhaseNames';\nimport OrderSetupDialog from '../components/matter-work/phase-assignment_order-setup-dialog.vue';\nimport { UserSetting, UserSettingReportName, UserSettingName, OrderingMethod } from '@/models/UserSetting';\nimport FilingType from '../components/filing-type.vue';\nimport { ChangeFilingTypeDto, FilingTypeDto } from '../models/FilingTypeDto';\nimport { FilingTypeService } from '../service/FilingTypeService';\nimport { UserSettingFilter } from '@/models/UserSettingFilter';\nimport { UserService } from '@/service/UserService';\nimport _, { xor } from 'lodash';\nimport { FeeSheetRuleDto } from '@/models/Fees/FeeSheetRuleDto';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport notify from 'devextreme/ui/notify';\nimport { alert } from 'devextreme/ui/dialog';\nimport ChargeSummary from '../components/auditor/charge-summary.vue';\nimport AgentFeeSheetTable from '../components/auditor/agent-fee-sheet-table.vue';\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\nimport { AgentDto } from '../models/agent/AgentDto';\nimport { ClientDto } from '../models/client/ClientDto';\nimport { BatchService } from '@/service/BatchService';\nimport { FeeBudgetRuleDto } from '@/models/fee-budgets/FeeBudgetRuleDto';\nimport { AuditingService } from '@/service/AuditingService';\nimport { BatchEventTypeDateDto } from '@/models/batch/BatchEventTypeDateDto';\nimport { BatchEventTypeEnum, BatchEventDateTypeEnum } from '@/models/batch/BatchEventTypeEnum';\nimport DateTime from '../utilities/DateTime';\nimport MatterWorkNavigator from '@/components/matter-work/matter-work-navigator.vue';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '@/store';\nimport MatterWorkModule from '@/store/MatterWorkModule';\nimport { ExecutiveSummaryRequestEnum } from '@/models/ExecutiveSummaryRequestEnum';\n\n@Component({\n components: {\n PageTitle,\n DxButton, \n MatterWorkLineItems,\n OrderSetupDialog,\n FilingType,\n DxPopup,\n DxLoadIndicator,\n ChargeSummary,\n AgentFeeSheetTable,\n MatterWorkNavigator\n },\n beforeRouteLeave: function (to,from,next) {\n let auditorPage: AuditorPage = this as AuditorPage;\n auditorPage.$destroy();\n next();\n }\n})\nexport default class AuditorPage extends Vue {\n $refs: Vue['$refs'] & {\n matterWorkLineItems?: MatterWorkLineItems;\n chargesummary?: ChargeSummary; \n matterWorkNavigation?: MatterWorkNavigator; \n agentFeeSheetTable?: AgentFeeSheetTable;\n \n } = {};\n\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private filingTypeService: FilingTypeService = new FilingTypeService();\n private userService: UserService = new UserService();\n\n private get agentFeeSheetTable(): AgentFeeSheetTable {\n return (this.$refs.agentFeeSheetTable as any);\n }\n\n private get lineItemDataGrid(): DevExpress.ui.dxDataGrid {\n return (((this.$refs.matterWorkLineItems as any).$refs.manualCodingDataGrid as any).$refs\n .dxDataGrid as any).instance;\n }\n\n private get matterWorkId(): Guid | undefined {\n return this.$route.params.id;\n }\n\n private get caseCount(): number | null {\n if(this.$route.query.cases) {\n let caseCount = parseInt(this.$route.query.cases as string);\n return caseCount;\n }\n return null;\n }\n\n private phaseTypes: PhaseTypeDto[] = [];\n private filingTypes: FilingTypeDto[] = [];\n private feeSheetRules: FeeSheetRuleDto[] = [];\n private feeBudgetRules: FeeBudgetRuleDto[] = [];\n\n clientId: Guid = '';\n clientDto: ClientDto = {\n ClientId: '',\n ClientName: ''\n }\n\n agentFeeSheetProcessed: boolean = false; \n feeSheetService: FeeSheetsService;\n agents: AgentDto[] = [];\n agentFeeSheets: FeeSheetDto[] = [];\n matterWorkType: MatterWorkTypeEnum = MatterWorkTypeEnum.Auditing;\n private showIndicatorForReleaseMatter: boolean = false;\n private showIndicatorForReleaseMatterButton: boolean = false; \n private buttonText: string = \"Release Claims\";\n private gridRefresher: boolean = true;\n private gridRefreshTimeout: any = null;\n\n @Watch(\"selectedMatterId\")\n gridRefresh() {\n this.gridRefresher = false;\n if(this.gridRefreshTimeout) {\n clearTimeout(this.gridRefreshTimeout);\n }\n this.gridRefreshTimeout = setTimeout(()=>{this.gridRefresher = true;}, 250);\n }\n matterWorkModule = getModule(MatterWorkModule, store);\n\n private get selectedFilingType(): FilingTypeDto | undefined {\n if(this.selectedMatter) {\n return this.filingTypes.find(t => t.FilingTypeId === this.selectedMatter!.FilingTypeId);\n }\n }\n\n get getClientId() { \n if(this.selectedMatter) {\n return this.selectedMatter.ClientId;\n }\n }\n \n private get selectedMatterId() {\n return this.matterWorkModule.selectMatterId;\n }\n\n private get selectedMatter() {\n return this.matterWorkModule.selectMatter;\n }\n \n // This gets the status of the left sidebar\n private get sidePanelIsOpen() {\n return (this.$root.$children[0].$children[1] as any).menuOpened; \n }\n\n private isAutoSkip : boolean = false;\n\n @Watch('selectedMatter')\n onSelectedMatterChanged() {\n this.linesSetByCodeAll = [];\n if(this.selectedMatter) {\n this.clientId = this.selectedMatter.ClientId\n this.clientDto = {\n ClientId: this.selectedMatter.ClientId,\n ClientName: this.selectedMatter.ClientName\n } \n }\n }\n \n private auditingService: AuditingService;\n batchService: BatchService;\n clientIdWatcher: any; \n\n get batchIdsOfCurrentBatch() {\n return this.matterWorkModule.activeBatches || [];\n }\n\n private showingReleaseMatters: boolean = false;\n private showingReadyToReport: boolean = false;\n private reportAvailableScheduledDate: Date | null = null;\n pageType: MatterWorkTypeEnum = MatterWorkTypeEnum.Auditing; \n\n get isDialogOpen() {\n return this.showingSetupDialog || this.showingNotes || this.showingContextMenu || this.showingColumnChooser ||\n this.showingInfractions || this.showingInfractionsPopover || this.showingReleaseMatters || this.showingPhaseHistory;\n }\n\n constructor() {\n super();\n this.feeSheetService = new FeeSheetsService('/api/FeeSheets');\n this.batchService = new BatchService();\n this.auditingService = new AuditingService();\n }\n \n created() {\n document.addEventListener('keyup', this.onKeyup);\n this.loadData();\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup);\n this.matterWorkModule.setSelectedMatterId(null);\n this.matterWorkModule.setSelectedMatter(null);\n this.matterWorkModule.setActiveBatchIds([]);\n }\n\n beforeDestroy() {\n if(this.$refs.matterWorkLineItems) {\n this.$refs.matterWorkLineItems.$destroy();\n }\n\n if(this.$refs.matterWorkNavigation) {\n this.$refs.matterWorkNavigation.$destroy();\n }\n\n if(this.$refs.chargesummary) {\n this.$refs.chargesummary.$destroy();\n }\n\n this.gridRefresher=false;\n this.agents.length = 0;\n }\n\n onAutoSkipChanged(data: boolean) {\n this.isAutoSkip = data;\n } \n\n onKeyup(event: KeyboardEvent) {\n if (this.isDialogOpen) {\n return;\n }\n\n //if target of event is a text editor disable keyboard shortcuts\n if ((event.target as any ).className == \"dx-texteditor-input\") {\n return;\n }\n\n event.preventDefault();\n \n if (event.ctrlKey) {\n switch (event.keyCode) {\n case KeyMap.one:\n case KeyMap.numPadOne:\n this.assignPhaseToSelection(PhaseNames.misc,event);\n break;\n case KeyMap.two:\n case KeyMap.numPadTwo:\n this.assignPhaseToSelection(PhaseNames.publication,event);\n break;\n case KeyMap.three:\n case KeyMap.numPadThree:\n this.assignPhaseToSelection(PhaseNames.postGrantReview,event);\n break;\n case KeyMap.four:\n case KeyMap.numPadFour:\n this.assignPhaseToSelection(PhaseNames.validation,event);\n break;\n case KeyMap.five:\n case KeyMap.numPadFive:\n this.assignPhaseToSelection(PhaseNames.pph,event);\n break;\n case KeyMap.six:\n case KeyMap.numPadSix:\n this.assignPhaseToSelection(PhaseNames.noveltySearch,event);\n break;\n case KeyMap.fSlash:\n case KeyMap.numPadFSlash:\n this.assignPhaseToSelection(PhaseNames.idsCopies,event);\n break;\n }\n } else {\n switch (event.keyCode) {\n case KeyMap.leftArrow:\n (this.$refs.matterWorkNavigation as any).prevCase();\n break;\n case KeyMap.rightArrow:\n (this.$refs.matterWorkNavigation as any).nextCase();\n break;\n case KeyMap.upArrow: \n (this.$refs.matterWorkNavigation as any).prevActiveCase();\n break;\n case KeyMap.downArrow: \n (this.$refs.matterWorkNavigation as any).confirmAllMatters();\n break;\n case KeyMap.one:\n case KeyMap.numPadOne:\n this.assignPhaseToSelection(PhaseNames.drafting,event);\n break;\n case KeyMap.two:\n case KeyMap.numPadTwo:\n this.assignPhaseToSelection(PhaseNames.filing,event);\n break;\n case KeyMap.three:\n case KeyMap.numPadThree:\n this.assignPhaseToSelection(PhaseNames.exam,event);\n break;\n case KeyMap.four:\n case KeyMap.numPadFour:\n this.assignPhaseToSelection(PhaseNames.prosecution,event);\n break;\n case KeyMap.five:\n case KeyMap.numPadFive:\n this.assignPhaseToSelection(PhaseNames.grant,event);\n break;\n case KeyMap.six:\n case KeyMap.numPadSix:\n this.assignPhaseToSelection(PhaseNames.oneSixOneOneSixTwo,event);\n break;\n case KeyMap.seven:\n case KeyMap.numPadSeven:\n this.assignPhaseToSelection(PhaseNames.appeal,event);\n break;\n case KeyMap.eight:\n case KeyMap.numPadEight:\n this.assignPhaseToSelection(PhaseNames.subsequentApplications,event);\n break;\n case KeyMap.nine:\n case KeyMap.numPadNine:\n this.assignPhaseToSelection(PhaseNames.annuity,event);\n break;\n case KeyMap.fSlash:\n case KeyMap.numPadFSlash:\n this.assignPhaseToSelection(PhaseNames.ids,event);\n break;\n case KeyMap.period:\n case KeyMap.numPadPeriod:\n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\n if (selectedRows.length === 1) {\n this.openNotes();\n } else if (selectedRows.length > 1) {\n notify('Cannot open notes with multiple lines selected.','info', 1000);\n }\n break;\n }\n }\n }\n\n async loadRequiredData() {\n this.phaseTypes = await this.client.get('/api/phasetype/all');\n }\n\n async loadData() {\n this.filingTypeService.getTypes().then(types => {\n this.filingTypes = types;\n });\n\n this.getAutoskipPreference().then(preference => {\n this.isAutoSkip = preference;\n });\n\n this.client.get(`/api/MatterWorks/${this.matterWorkId}/fee-sheet-rules`).then(rules => {\n this.feeSheetRules = rules;\n });\n\n this.client.get(`/api/MatterWorks/${this.matterWorkId}/fee-budget-rules`).then(rules => {\n this.feeBudgetRules = rules;\n });\n\n // Phase types and matters are required for the navigator / page to load, other data can be loaded asyncronously\n await this.loadRequiredData();\n }\n\n updateLineItems(lineItems: ManualCodeInvoiceLineItemDto[], skip: boolean = true): void {\n if(this.$refs.matterWorkLineItems) {\n this.$refs.matterWorkLineItems.updateLineItems(lineItems);\n }\n }\n\n private linesSetByCodeAll: Guid[] = [];\n\n async assignPhaseToSelection(phaseTypeId: number | null, event: KeyboardEvent | null): Promise { \n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\n let lineItemIds: Guid[] = [];\n\n // If no line items selected, assign phase to all line items in latest batch\n if (selectedRows.length === 0) {\n if (this.linesSetByCodeAll.length > 0) {\n lineItemIds = this.linesSetByCodeAll;\n } else if (this.$refs.matterWorkLineItems && this.$refs.matterWorkLineItems.activeBatchIds) {\n lineItemIds = this.$refs.matterWorkLineItems.lineItems\n .filter(li => this.batchIdsOfCurrentBatch.some(b => b === li.BatchId) && li.LastAssignedById == null)\n .map(li => li.InvoiceLineItemId);\n this.linesSetByCodeAll = lineItemIds;\n }\n\n if (this.$refs.matterWorkLineItems) {\n selectedRows = this.$refs.matterWorkLineItems.lineItems.filter(li => lineItemIds.some(id => li.InvoiceLineItemId == id));\n } \n\n } else {\n this.linesSetByCodeAll = [];\n selectedRows.forEach(row => {\n lineItemIds.push(row.InvoiceLineItemId);\n });\n }\n\n if (lineItemIds.length) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.lineItemDataGrid.clearSelection();\n \n let oldRows: ManualCodeInvoiceLineItemDto[] = _.cloneDeep(selectedRows);\n\n let assignedPhaseTypeId = phaseTypeId == null ? -1 : phaseTypeId;\n let assignedPhaseName = phaseTypeId == null ? 'Unassigned' : this.phaseTypes.filter(p => p.PhaseTypeId == phaseTypeId)[0].PhaseName; \n\n selectedRows.forEach(li => {\n li.AssignedPhaseTypeId = assignedPhaseTypeId;\n li.AssignedPhaseName = assignedPhaseName;\n li.Confirmed = true;\n }); \n\n let updatedMatter = this.selectedMatter;\n this.updateLineItems(selectedRows, false);\n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\n\n await this.client.getPostData('/api/manualcoding/assignphase', {\n phaseTypeId: phaseTypeId,\n lineItems: lineItemIds\n })\n .then(results => {\n // update the line items with any additional information from the backend (LastAssignedById, ConfirmedById, etc)\n // only update the line items if the matter hasn't been changed after phase assignment\n if (this.selectedMatterId == updatedMatter!.MatterId) {\n this.updateLineItems(results, false);\n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\n }\n })\n .catch(_ => {\n alert(`Error assigning phase to line item(s) for matter ${updatedMatter!.ClientMatterId}.`, \"Error\");\n if (this.selectedMatterId == updatedMatter!.MatterId) {\n //revert rows if an error occurs\n this.updateLineItems(oldRows, false); \n this.$refs.matterWorkNavigation!.updateMatterList(this.selectedMatter!.MatterId);\n } \n });\n }\n }\n\n setExemptRowToSelection(isExemptRow: boolean) {\n let selectedRows = this.lineItemDataGrid.getSelectedRowsData() as ManualCodeInvoiceLineItemDto[];\n let lineItemIds: Guid[] = [];\n\n // If no line items selected, assign phase to all line items in latest batch\n if (selectedRows.length === 0) { \n if (this.$refs.matterWorkLineItems && this.$refs.matterWorkLineItems.activeBatchIds) {\n let activeBatchIds = this.$refs.matterWorkLineItems.activeBatchIds;\n lineItemIds = this.$refs.matterWorkLineItems.lineItems\n .filter(li => activeBatchIds.some(b => b === li.BatchId))\n .map(li => li.InvoiceLineItemId);\n }\n } else { \n selectedRows.forEach(row => {\n lineItemIds.push(row.InvoiceLineItemId);\n });\n }\n\n if (lineItemIds.length) {\n this.lineItemDataGrid.clearSelection();\n\n this.client.getPostData('/api/manualcoding/updateexemptrow', {\n isExemptRow: isExemptRow,\n lineItems: lineItemIds\n }).then(results => {\n this.updateLineItems(results, false);\n });\n }\n }\n\n matterWorkLineItemsDialogStateChanged(e: MatterWorkLineItemsDialogState) {\n this.showingNotes = e.showingNotes;\n this.showingContextMenu = e.showingContextMenu;\n this.showingColumnChooser = e.showingColumnChooser;\n this.showingInfractions = e.showingInfractions;\n this.showingInfractionsPopover = e.showingInfractionsPopover;\n this.showingPhaseHistory = e.showingPhaseHistory;\n }\n\n auditMatter() { \n if(this.selectedMatter) {\n this.selectedMatter.IsStillAuditing = true;\n let cloneMatter=_.clone(this.selectedMatter);\n this.client.postJson(`/api/auditing/${this.selectedMatterId}`, {})\n .then(result => {\n this.displayErrorAuditingMatter(cloneMatter, result.Data === false ? false : true);\n })\n .catch(err => {\n this.displayErrorAuditingMatter(cloneMatter, false);\n });\n }\n }\n\n displayErrorAuditingMatter(auditingMatter: MatterWorkMatterDto, isSuccessfulResult: boolean) {\n this.$refs.matterWorkNavigation!.confirmAuditMatter(auditingMatter.MatterId,isSuccessfulResult);\n if (!isSuccessfulResult) {\n if (this.showingReleaseMatters) {\n this.showingReleaseMatters = false;\n }\n let message = `An error occurred when auditing matter ${auditingMatter.ClientMatterId} ${auditingMatter.CountryCode}.`;\n alert(message, 'Error');\n }\n\n let isForRelease = this.$refs.matterWorkNavigation!.checkForRelease();\n if(isForRelease) {\n this.showingReleaseMatters = true;\n }\n }\n\n nextActiveCase() {\n if(this.$refs.matterWorkNavigation) {\n this.$refs.matterWorkNavigation.nextActiveCase()\n } \n }\n\n lineItemsLoaded(lineItems: ManualCodeInvoiceLineItemDto[]) { \n if (lineItems && lineItems.length) {\n this.agents = _.uniqBy(lineItems, item => item.AgentName)\n .map(function(item): AgentDto {\n return { AgentName: item.AgentName, AgentId: item.AgentId };\n }); \n this.updateFeeSheetsStatuses(); \n\n if(this.selectedMatter) { \n this.selectedMatter.LineItems = lineItems; \n } \n }\n }\n\n async updateFeeSheetsStatuses() {\n if(this.getClientId) { \n this.agentFeeSheetTable.processGettingAgentFeeSheets();\n }\n }\n\n autoSkipPref: UserSettingFilter = {\n reportName: UserSettingReportName.UserPreference,\n name : UserSettingName.AutoSkip\n }\n \n getAutoskipPreference(): Promise {\n return this.userService.getUserSettingsWithFilter(this.autoSkipPref)\n .then((result: UserSetting[]) => {\n let autoSkip = _.find(result, (item:UserSetting) => {\n return item.ReportName === UserSettingReportName.UserPreference &&\n item.Name === UserSettingName.AutoSkip;\n }) || false;\n\n return (autoSkip ? autoSkip.Value == 'true': false);\n })\n .catch((err: any) => false)\n }\n\n\n public showingSetupDialog: boolean = false;\n \n private showingNotes: boolean = false;\n private showingContextMenu: boolean = false;\n private showingColumnChooser: boolean = false;\n private showingInfractions: boolean = false;\n private showingInfractionsPopover: boolean = false;\n private showingPhaseHistory: boolean = false;\n\n openSetupDialog(): void {\n this.showingSetupDialog = true;\n }\n\n hidingDialog() {\n this.showingSetupDialog = false;\n }\n\n async caseDisplayOrderUpdated(settings: UserSetting[]) {\n const orderMethod = settings.filter(s => s.Name === UserSettingName.OrderingMethod && s.Value === OrderingMethod.ByServiceCost); \n\n (this.$refs.matterWorkNavigation as any).refreshCaseDisplayOrder(settings);\n }\n\n selectColumns() {\n this.lineItemDataGrid.showColumnChooser();\n this.showingColumnChooser = true;\n }\n\n private changeFiling(dto: ChangeFilingTypeDto) {\n this.selectedMatter!.FilingTypeId = dto.FilingType;\n this.$root.$emit('updatenavmatters', ExecutiveSummaryRequestEnum.PhaseAnalysisItem)\n }\n\n private openNotes() {\n (this.$refs.matterWorkLineItems as any).openNotesKeyboard();\n }\n\n private async releaseMatters() { \n this.showIndicatorForReleaseMatterButton = true; \n this.buttonText = \"Releasing Claims\";\n await this.client.sendRequest(HttpMethodEnum.Post, `/api/matterworks/${this.matterWorkId}/release-matters`)\n .finally(() => {\n this.showIndicatorForReleaseMatterButton = false;\n });\n \n if(this.clientId) {\n let auditCompleted = await this.auditingService.auditCompleted(this.clientId).then(result =>{\n return result;\n });\n if(auditCompleted.Value) { \n const dto: BatchEventTypeDateDto = { \n BatchEventType: BatchEventTypeEnum.ReportAvailable,\n BatchEventDateType: BatchEventDateTypeEnum.ScheduledDate\n };\n\n try { \n let date = await this.batchService.getBatchEventTypeDate(this.clientId, dto); \n if(date.Data.reportAvailableDate !== null) {\n this.reportAvailableScheduledDate = (this.$options.filters as any).moment(date,\"MM-DD-YYYY\");\n this.showingReadyToReport = true;\n }\n else { \n notify('Report Available Batch Event not found.','error', 10000);\n return;\n }\n } catch (error) { \n notify('Error occured while Releasing Matters.','error', 10000);\n return;\n } \n }\n else { \n this.closeReleaseMatters(); \n this.$router.push({ name: 'auditing-work' });\n } \n }\n this.closeReleaseMatters();\n }\n\n private async setClearedForReporting() {\n if(this.getClientId) {\n await this.batchService.setReadyForReporting(this.getClientId);\n this.showingReadyToReport = false;\n this.$router.push({ name: 'auditing-work' });\n }\n }\n\n private closeReleaseMatters() {\n this.showingReleaseMatters = false;\n }\n\n private closeClearedForReport() {\n this.showingReadyToReport = false;\n }\n\n private feeSheetUpdated() {\n this.loadData();\n this.lineItemDataGrid.refresh(); \n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-page.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditor-page.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./auditor-page.vue?vue&type=template&id=07ec9d2d&scoped=true&\"\nimport script from \"./auditor-page.vue?vue&type=script&lang=ts&\"\nexport * from \"./auditor-page.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./auditor-page.vue?vue&type=style&index=0&id=07ec9d2d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07ec9d2d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Fee Sheet Templates\")]),_c('fee-sheet-templates-grid',{ref:\"feeSheetTemplatesGrid\",on:{\"showingDelete\":function($event){return _vm.showDelete()}}}),_c('dx-popup',{attrs:{\"visible\":_vm.deleteVisible,\"drag-enabled\":false,\"close-on-outside-click\":true,\"show-title\":true,\"width\":300,\"height\":150,\"title\":\"Delete\"},on:{\"update:visible\":function($event){_vm.deleteVisible=$event}}},[_c('p',[_vm._v(\"Are you sure you want to delete this template?\")]),_c('dx-button',{attrs:{\"width\":115},on:{\"click\":function($event){return _vm.deleteFeeSheetTemplate()}}},[_vm._v(\"Yes\")]),_c('dx-button',{attrs:{\"width\":115},on:{\"click\":function($event){return _vm.hideDelete()}}},[_vm._v(\"No\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"multi-phase-create\"},[_c('dx-button',{attrs:{\"text\":\"Create New Template\",\"type\":\"default\",\"styling-mode\":\"outlined\",\"on-click\":_vm.createNewFeeSheetTemplate}})],1),_c('br'),_c('data-grid',{staticClass:\"multi-phase-grid\",attrs:{\"custom-store-options\":_vm.feeSheetTemplatesCustomStoreOptions,\"pageSize\":25},on:{\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData},scopedSlots:_vm._u([{key:\"editOrDelete\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOrDelete\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.editFeeSheetTemplate(data.data);}}})],1),_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"trash\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.showDelete(data.data);}}})],1)])}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-paging',{attrs:{\"page-size\":10}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"TemplateName\",\"caption\":\"Template Name\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Notes\",\"allow-filtering\":true,\"allow-header-filtering\":true,\"caption\":\"Notes\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"type\":\"buttons\",\"caption\":\"\",\"data-field\":\"FeeSheetTemplateId\",\"visible\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":125,\"cell-template\":\"editOrDelete\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { FeeSheetTemplateService } from '../../service/FeeSheetTemplateService';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientService } from '../../service/ClientService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxPaging,\n DxLookup,\n DxPopup,\n DxDataGrid,\n DxFilterRow \n} from 'devextreme-vue/data-grid';\nimport { DxItem } from 'devextreme-vue/form';\nimport { DxSelectBox, DxButton } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\n\n@Component({\n components: {\n DxSelectBox,\n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxLookup,\n DxPopup,\n DxDataGrid,\n DxPaging,\n DxFilterRow,\n DxButton\n }\n})\nexport default class FeeSheetTemplatesGrid extends Vue {\n feeSheetTemplatesService: FeeSheetTemplateService;\n dataGrid: any; \n feeSheetTemplatesCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n\n templateIdToDelete: Guid = \"\";\n\n constructor() {\n super();\n\n this.feeSheetTemplatesService = new FeeSheetTemplateService(\n '/api/FeeSheetTemplate'\n );\n\n this.feeSheetTemplatesCustomStoreOptions = {\n key: 'FeeSheetTemplateId',\n load: loadOptions => this.feeSheetTemplatesService.search(loadOptions),\n };\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n saveEditData(): void {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n\n createNewFeeSheetTemplate(row: any) : void {\n this.$router.push('/fee-sheet-templates-form');\n }\n\n editFeeSheetTemplate(row: any) : void {\n this.$router.push(`/fee-sheet-templates-form/${row.FeeSheetTemplateId}`);\n }\n\n deleteFeeSheetTemplate() {\n this.feeSheetTemplatesService.delete(this.templateIdToDelete)\n .then(result => {\n this.refreshDataGrid();\n });\n }\n\n private refreshDataGrid() {\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n }\n\n customizeNullText(info: any) {\n return info.valueText === '' ? 'ALL' : info.valueText;\n }\n\n showDelete(row: any): void { \n this.templateIdToDelete = row.FeeSheetTemplateId;\n this.$emit('showingDelete');\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-templates-grid.vue?vue&type=template&id=7f320d26&scoped=true&\"\nimport script from \"./fee-sheet-templates-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-templates-grid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./fee-sheet-templates-grid.vue?vue&type=style&index=0&id=7f320d26&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f320d26\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FeeSheetTemplatesGrid from '../components/fee-sheet-templates/fee-sheet-templates-grid.vue';\nimport { DxPopup, DxButton } from 'devextreme-vue';\n\n@Component({\n components: {\n PageTitle,\n FeeSheetTemplatesGrid,\n DxPopup,\n DxButton\n }\n})\nexport default class FeeSheetTemplates extends Vue {\n $refs: Vue['$refs'] & {\n feeSheetTemplatesGrid?: FeeSheetTemplatesGrid; \n } = {};\n\n deleteVisible: boolean = false;\n\n constructor() {\n super();\n }\n\n showDelete(): void {\n this.deleteVisible = true;\n }\n\n hideDelete(): void {\n this.deleteVisible = false;\n }\n\n deleteFeeSheetTemplate(): void {\n (this.$refs.feeSheetTemplatesGrid as any).deleteFeeSheetTemplate();\n this.hideDelete();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-templates.vue?vue&type=template&id=7eba69b4&\"\nimport script from \"./fee-sheet-templates.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-templates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fee-sheet-template\"},[_c('page-title',[_vm._v(_vm._s(this.title))]),_c('br'),_c('div',{staticClass:\"fee-sheet-template-content\"},[_c('div',{staticClass:\"container\"},[_c('h3',[_vm._v(\"Template Name\")]),_c('dx-text-box',{attrs:{\"width\":250,\"value\":_vm.templateName},on:{\"update:value\":function($event){_vm.templateName=$event}}})],1),_c('div',{staticClass:\"container\"},[_c('h3',[_vm._v(\"Notes \")]),_c('dx-text-area',{attrs:{\"width\":250,\"height\":100,\"value\":_vm.templateNotes},on:{\"update:value\":function($event){_vm.templateNotes=$event}}})],1),_c('div',{staticClass:\"container\"},[_c('h3',[_vm._v(\"Jurisdiction \")]),_c('dx-select-box',{attrs:{\"data-source\":_vm.jurisdictionList,\"display-expr\":\"Name\",\"value-expr\":\"Value\",\"value\":_vm.templateInJurisdiction,\"width\":\"250\"},on:{\"update:value\":function($event){_vm.templateInJurisdiction=$event}}})],1),_c('div',{staticClass:\"container\"},[_c('h3',[_vm._v(\"Phases Rules\")]),_c('div',{staticClass:\"addControls\"},[_c('div',{staticClass:\"addButton\"},[_c('dx-button',{attrs:{\"type\":\"default\",\"styling-mode\":\"outlined\",\"width\":\"125\",\"on-click\":_vm.onAddPhaseType}},[_vm._v(\"Add Phase\")])],1)])]),_c('dx-data-grid',{attrs:{\"data-source\":_vm.templatePhases,\"pageSize\":25,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":_vm.setAttr('rowAlternationEnabled', true),\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnResizingMode\":_vm.setAttr('columnResizingMode', 'widget'),\"columnAutoWidth\":_vm.setAttr('columnAutoWidth', true),\"filter-row\":_vm.setAttr('filter-row', { visible: false })},scopedSlots:_vm._u([{key:\"signedTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-check-box',{attrs:{\"value\":data.data.Signed},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Signed\", $event)}}})],1)])}},{key:\"phaseOrMultiphaseTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\"\\n \"+_vm._s(data.data.PhaseName)+\"\\n \")])])}},{key:\"editTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOption\"}},[_c('div',{staticStyle:{\"float\":\"left\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.onEditPhaseType(data)}}})],1),_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"clearsquare\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.onDeletePhaseType(data)}}})],1)])}},{key:\"descriptionTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.Description,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Description\", $event)}}})],1)])}}])},[_c('dx-paging',{attrs:{\"page-size\":10}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"PhaseTypeId\",\"visible\":false}}),_c('dx-column',{attrs:{\"allow-filtering\":true,\"allow-header-filtering\":true,\"caption\":\"Phase Name\",\"allow-editing\":false,\"cell-template\":\"phaseOrMultiphaseTemplate\",\"width\":30 +'%'}}),_c('dx-column',{attrs:{\"width\":40 +'%',\"allow-editing\":false,\"data-field\":\"Description\",\"caption\":\"Description\",\"cell-template\":\"descriptionTemplate\",\"cssClass\":\"description-cell\"}}),_c('dx-column',{attrs:{\"width\":20 +'%',\"allow-editing\":false,\"data-field\":\"CapDisplay\",\"caption\":\"Caps\",\"encodeHtml\":false}}),_c('dx-column',{attrs:{\"width\":10 +'%',\"allow-editing\":true,\"data-field\":\"Signed\",\"caption\":\"Signed\",\"cell-template\":\"signedTemplate\",\"visible\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":10 +'%',\"cell-template\":\"editTemplate\",\"cssClass\":\"badge-cell\"}})],1),_c('div',{staticClass:\"container\"},[_c('h3',[_vm._v(\"Task Rules\")]),_c('div',{staticClass:\"addControls\"},[_c('div',{staticClass:\"addButton\"},[_c('dx-button',{attrs:{\"type\":\"default\",\"styling-mode\":\"outlined\",\"width\":\"125\"},on:{\"click\":function($event){return _vm.onAddTaskType()}}},[_vm._v(\"Add Task\")])],1)])]),_c('div',{staticClass:\"container\"},[_c('dx-data-grid',{attrs:{\"data-source\":_vm.templateTasks,\"pageSize\":25,\"showBorders\":_vm.setAttr('showBorders', true),\"showRowLines\":_vm.setAttr('showRowLines', true),\"showColumnLines\":_vm.setAttr('showColumnLines', true),\"rowAlternationEnabled\":_vm.setAttr('rowAlternationEnabled', true),\"allowColumnResizing\":_vm.setAttr('allowColumnResizing', false),\"allowColumnReordering\":_vm.setAttr('allowColumnReordering', false),\"columnResizingMode\":_vm.setAttr('columnResizingMode', 'widget'),\"columnAutoWidth\":_vm.setAttr('columnAutoWidth', true),\"filter-row\":_vm.setAttr('filter-row', { visible: false })},scopedSlots:_vm._u([{key:\"editTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"editOption\"}},[_c('div',{staticStyle:{\"float\":\"left\"}},[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.onEditTaskType(data)}}})],1),_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"clearsquare\",\"hint\":\"Remove\"},on:{\"click\":function($event){return _vm.onDeleteTaskType(data)}}})],1)])}},{key:\"descriptionTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-html-editor',{attrs:{\"value\":data.data.Description,\"value-type\":\"html\"},on:{\"update:value\":function($event){return _vm.$set(data.data, \"Description\", $event)}}})],1)])}}])},[_c('dx-paging',{attrs:{\"page-size\":10}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"InfractionTypeId\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"InfractionName\",\"allow-filtering\":true,\"allow-header-filtering\":true,\"caption\":\"Infraction Name\",\"allow-editing\":false,\"width\":30 +'%'}}),_c('dx-column',{attrs:{\"width\":40 +'%',\"allow-editing\":false,\"data-field\":\"Description\",\"caption\":\"Description\",\"cell-template\":\"descriptionTemplate\",\"cssClass\":\"description-cell\"}}),_c('dx-column',{attrs:{\"width\":20 +'%',\"allow-editing\":false,\"data-field\":\"CapDisplay\",\"caption\":\"Caps\",\"encodeHtml\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":10 +'px',\"cell-template\":\"editTemplate\",\"cssClass\":\"badge-cell\"}})],1)],1),_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"tool-bar\"},[_c('dx-button',{staticClass:\"exit\",attrs:{\"type\":\"normal\",\"stylingMode\":\"contained\",\"width\":100},on:{\"click\":function($event){return _vm.exitFeeSheetTemplate();}}},[_vm._v(\"Exit\")]),_c('dx-button',{staticClass:\"save\",attrs:{\"type\":\"default\",\"styling-mode\":\"contained\",\"width\":100},on:{\"click\":function($event){return _vm.saveFeeSheetTemplate();}}},[_vm._v(\"Save and Exit\")])],1)])],1),_c('dx-popup',{attrs:{\"visible\":_vm.errorVisible,\"drag-enabled\":false,\"close-on-outside-click\":true,\"show-title\":true,\"width\":300,\"height\":150,\"title\":\"Error\"},on:{\"update:visible\":function($event){_vm.errorVisible=$event}}},[_c('p',[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]),_c('fee-sheet-row-dialog',{attrs:{\"showDialog\":_vm.showFeeSheetRowDialog,\"feeSheetRow\":_vm.feeSheetRow,\"feeSheetRowType\":_vm.feeSheetRowModalType,\"countryList\":_vm.countryList,\"feeSheetRowTypeEnum\":_vm.feeSheetRowType,\"selectedPhasesInfraction\":_vm.selectedPhasesInfraction},on:{\"hidingFeeSheetRow\":_vm.hidingFeeSheetRowDialog}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup, \n DxDataGrid,\n DxFilterRow,\n DxPaging\n} from 'devextreme-vue/data-grid';\nimport { DxSelectBox, DxButton, DxTextBox, DxTextArea, DxPopup, DxTreeView, DxDropDownBox , DxToolbar, DxCheckBox} from 'devextreme-vue';\nimport { FeeSheetTemplateService } from '../service/FeeSheetTemplateService';\nimport { PhaseTypeService } from '../service/PhaseTypeService';\nimport { InfractionRuleService } from '../service/InfractionRuleService';\nimport { FeeSheetTemplateDto } from '../models/FeeSheetTemplates/FeeSheetTemplateDto';\nimport { FeeSheetTemplatePhaseDto } from '../models/FeeSheetTemplates/FeeSheetTemplatePhaseDto';\nimport { FeeSheetTemplateTaskDto } from '../models/FeeSheetTemplates/FeeSheetTemplateTaskDto';\nimport { FeeSheetTemplateRuleDto } from '../models/FeeSheetTemplates/FeeSheetTemplateRuleDto';\nimport { PhaseTypeDto } from '../models/PhaseTypeDto';\nimport { InfractionTypeDto } from '../models/infractions/InfractionTypeDto';\nimport { KeyMap } from '../models/KeyMap';\nimport { PhaseAliasService } from '../service/PhaseAliasService';\nimport { PhaseAliasDto } from '../models/PhaseAliasDto';\nimport _ from \"lodash\";\nimport FeeSheetRowDialog from '../components/fee-sheets/fee-sheet-row-dialog.vue'\nimport { CountryDto } from '../models/CountryDto';\nimport { CountryService } from '@/service/CountryService';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '../models/Fees/FeeSheetRowDto';\nimport { FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport { FeeSheetRuleDto, FeeSheetRuleTypeEnum, FeeSheetRuleLevelEnum } from '../models/Fees/FeeSheetRuleDto';\nimport { DxHtmlEditor } from 'devextreme-vue/html-editor';\nimport { JurisdictionDto } from '../models/JurisdictionDto';\n\n\n\n@Component({\n components: {\n PageTitle,\n DxDataGrid,\n DxHeaderFilter,\n DxColumn,\n DxTextBox,\n DxButton,\n DxSelectBox,\n DxTextArea, \n DxEditing,\n DxPopup,\n DxPaging,\n DxDropDownBox,\n DxTreeView,\n DxToolbar,\n FeeSheetRowDialog,\n DxHtmlEditor,\n DxCheckBox\n }\n})\nexport default class FeeSheetTemplatesForm extends Vue {\n title: string = \"Fee Sheet Template\";\n feeSheetTemplatesService: FeeSheetTemplateService;\n\n ///phaseTypeDtos: Array = [];\n ///phaseMultiPhaseTypes : Array<{ text: string, value: any, type:string }> = [];\n phaseNames: Array = [];\n selectedPhase: any = '';\n selectedMultiphase: Guid = '';\n\n ///infractionTypeDtos: Array = [];\n ///infractionTypes: Array<{ text: string, value: number }> = [];\n\n jurisdictionList : Array = [\n { Name : \"In\", Value : true},\n { Name : \"Out\", Value : false}\n ];\n\n infractionNames: Array = [];\n selectedInfraction: number = 0;\n\n feeSheetTemplateId?: Guid; \n templateName: string = \"\"; \n templateNotes: string = \"\";\n templateInJurisdiction: boolean = true;\n\n templatePhases: Array = [];\n templateTasks: Array = [];\n DeletedFeeSheetTemplatePhases: Array = [];\n DeletedFeeSheetTemplateTasks: Array = [];\n\n errorVisible: boolean = false;\n errorMessage: string = \"\";\n phaseOrMultiPhase: string[] = [\n \"Phase\",\n \"Multiphase Alias\"\n ];\n readonly templateNameExists: string = \"A Fee Sheet Template with this name already exists. Please choose another name.\";\n readonly emptyTemplateName: string = \"Please choose a Fee Sheet Template name.\";\n readonly emptyPhasesOrTasks: string = \"Please add at least one Phase or Task to the template.\";\n readonly phaseAlreadyAdded: string = \"This phase has already been added to the template. Please add a different phase.\";\n readonly phaseAliasAlreadyAdded: string = \"This phase alias has already been added to the template. Please add a different phase.\";\n readonly taskAlreadyAdded: string = \"This task has already been added to the template. Please add a different task.\"; \n private phaseTypeService: PhaseTypeService;\n private phaseAliasService: PhaseAliasService;\n private countryService: CountryService;\n\n countryList: CountryDto[] = [];\n feeSheetRow: FeeSheetRowDto;\n private feeSheetRowType : FeeSheetRowTypeEnum = FeeSheetRowTypeEnum.Phase;\n feeSheetRowModalType : FeeSheetModalType = FeeSheetModalType.Add;\n showFeeSheetRowDialog: boolean;\n selectedPhasesInfraction: (Guid | number)[] = [];\n selectedFeeSheetTemplateId: string | undefined;\n\n constructor() {\n super();\n this.phaseTypeService = new PhaseTypeService();\n this.phaseAliasService = new PhaseAliasService('/api/PhaseAlias');\n this.feeSheetTemplatesService = new FeeSheetTemplateService(\n '/api/FeeSheetTemplate'\n );\n\n this.showFeeSheetRowDialog = false;\n this.countryService = new CountryService();\n\n this.processGetCountries();\n\n this.feeSheetRowModalType = FeeSheetModalType.Add;\n this.feeSheetRow = this.feeSheetRowDefaultValue();\n }\n\n created() {\n document.addEventListener('keydown', this.onKeydown);\n document.addEventListener('keyup', this.onKeyup);\n\n if (this.$route.params.id) {\n this.title = \"Fee Sheet Template Edit\";\n this.feeSheetTemplateId = this.$route.params.id;\n } else {\n this.title = \"Fee Sheet Template Create\";\n }\n\n this.loadData();\n }\n\n destroyed() {\n document.removeEventListener('keydown', this.onKeydown);\n document.removeEventListener('keyup', this.onKeyup);\n }\n\n onKeydown(event: KeyboardEvent) {\n if ((event.ctrlKey || event.shiftKey) && event.keyCode === KeyMap.enter) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n onKeyup(event: KeyboardEvent) {\n if ((event.ctrlKey || event.shiftKey) && event.keyCode === KeyMap.enter) {\n event.preventDefault();\n event.stopPropagation();\n this.saveFeeSheetTemplate();\n }\n }\n\nasync getPhaseList() : Promise{\n return await this.phaseTypeService.getAll()\n .then((response : PhaseTypeDto[]) => {\n let result = response.map((p : PhaseTypeDto, index : number) => {\n return { text: p.PhaseName, value: p.PhaseTypeId}\n });\n\n return result;\n })\n .catch(err => []); \n}\nasync getPhaseAlias() : Promise{\n return await this.phaseAliasService.getAll()\n .then((response : PhaseAliasDto[]) => {\n let result = response.map((p : PhaseAliasDto, index : number) => {\n return { text: p.Name, value: p.PhaseAliasId, type: 'Alias'}\n });\n\n return result;\n })\n .catch(err => []); \n}\n\n async loadData() {\n if(this.feeSheetTemplateId) {\n this.feeSheetTemplatesService.get(this.feeSheetTemplateId)\n .then(result => {\n this.templateName = result.TemplateName;\n this.templateNotes = result.Notes;\n this.templateInJurisdiction = result.InJurisdiction\n _.forEach(result.FeeSheetTemplatePhases, (item : FeeSheetTemplatePhaseDto) => {\n item.CapDisplay = '';\n this.processPhaseCapDisplay(item);\n _.forEach(item.FeeSheetTemplateRules, (fr: FeeSheetTemplateRuleDto) => {\n if(!fr.CountryId) {\n fr.CountryId = 0;\n }\n })\n });\n this.templatePhases = result.FeeSheetTemplatePhases;\n _.forEach(result.FeeSheetTemplateTasks, (item : FeeSheetTemplateTaskDto) => {\n item.CapDisplay = '';\n this.processTaskCapDisplay(item);\n _.forEach(item.FeeSheetTemplateRules, (fr: FeeSheetTemplateRuleDto) => {\n if(!fr.CountryId) {\n fr.CountryId = 0;\n }\n })\n });\n this.templateTasks = result.FeeSheetTemplateTasks; \n });\n }\n \n \n }\n \n\n feeSheetRowDefaultValue() : FeeSheetRowDto {\n let def: FeeSheetRowDto = {\n FeeSheetRowId: \"00000000-0000-0000-0000-000000000000\",\n FeeSheetId: \"00000000-0000-0000-0000-000000000000\",\n Description: \"\",\n Signed: false,\n FeeSheetRules: [],\n CapDisplay : \"\"\n }\n\n return _.clone(def); \n }\n\n onAddPhaseType(e:any): void {\n this.feeSheetRow = this.feeSheetRowDefaultValue();\n this.feeSheetRowType = FeeSheetRowTypeEnum.Phase;\n this.feeSheetRowModalType = FeeSheetModalType.Add;\n this.showFeeSheetRowDialog = true;\n \n let selected = this.templatePhases.map((item: FeeSheetTemplatePhaseDto) => {\n let res = item.PhaseAliasId || item.PhaseTypeId || 0;\n\n return res;\n });\n this.selectedPhasesInfraction = selected;\n }\n onEditPhaseType(e: any): void {\n this.feeSheetRowType = FeeSheetRowTypeEnum.Phase;\n this.processDataForEdit(e);\n }\n onDeletePhaseType(e: any): void {\n if(!this.DeletedFeeSheetTemplatePhases) {\n this.DeletedFeeSheetTemplatePhases = [];\n }\n\n if(e.data.FeeSheetRowId != \"00000000-0000-0000-0000-000000000000\") {\n this.DeletedFeeSheetTemplatePhases.push(e.data);\n }\n\n this.templatePhases.splice(e.rowIndex, 1);\n }\n\n onAddTaskType(e:any): void {\n this.feeSheetRow = this.feeSheetRowDefaultValue();\n this.feeSheetRowType = FeeSheetRowTypeEnum.Infraction;\n this.feeSheetRowModalType = FeeSheetModalType.Add;\n this.showFeeSheetRowDialog = true;\n \n let selected = this.templateTasks.map((item: FeeSheetTemplateTaskDto) => {\n let res = item.InfractionTypeId || '';\n\n return res;\n });\n\n this.selectedPhasesInfraction = selected;\n }\n onEditTaskType(e: any): void {\n this.feeSheetRowType = FeeSheetRowTypeEnum.Infraction;\n this.processDataForEdit(e);\n }\n onDeleteTaskType(e: any): void {\n if(!this.DeletedFeeSheetTemplateTasks) {\n this.DeletedFeeSheetTemplateTasks = [];\n }\n\n if(e.data.FeeSheetRowId != \"00000000-0000-0000-0000-000000000000\") {\n this.DeletedFeeSheetTemplateTasks.push(e.data);\n }\n\n this.templateTasks.splice(e.rowIndex, 1);\n }\n \n async processGetCountries() {\n this.countryService = new CountryService();\n this.countryList = await this.countryService.getAllDto().then((responses: CountryDto[]) => {\n let forAll : CountryDto = {\n CountryId: 0,\n CountryCode: \"All\"\n }\n\n responses.unshift(forAll);\n\n return responses;\n });\n }\n\n hidingFeeSheetRowDialog(e: FeeSheetRowDto | undefined): void {\n if(e) {\n let cloned = _.clone(e);\n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase) {\n //add phase\n if(this.selectedFeeSheetTemplateId == undefined) {\n let fsRowTemplate: FeeSheetTemplatePhaseDto = {\n FeeSheetTemplatePhaseId: e.FeeSheetRowId,\n FeeSheetTemplateId: this.feeSheetTemplateId,\n Description: e.Description,\n PhaseTypeId: e.PhaseTypeId,\n PhaseType: e.PhaseType,\n PhaseAliasId: e.PhaseAliasId,\n PhaseAlias: e.PhaseAlias,\n FeeSheetTemplateRules: this.convertFeeSheetTemplateRules(cloned.FeeSheetRules), \n CapDisplay: e.CapDisplay\n }\n if (e.PhaseAlias){\n fsRowTemplate.PhaseName = e.PhaseAlias.Name;\n }\n else {\n if (e.PhaseType){\n fsRowTemplate.PhaseName = e.PhaseType.PhaseName;\n }\n else {\n fsRowTemplate.PhaseName = \"\";\n }\n }\n\n fsRowTemplate.FeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.FeeSheetRules); \n\n this.processPhaseCapDisplay(fsRowTemplate);\n\n this.templatePhases.push(fsRowTemplate);\n }\n else{ //edit phase\n let fsRowTemplate = this.templatePhases.find(x => x.FeeSheetTemplatePhaseId === this.selectedFeeSheetTemplateId);\n\n if(fsRowTemplate){\n fsRowTemplate.CapDisplay = cloned.CapDisplay;\n fsRowTemplate.Description = cloned.Description;\n\n \n fsRowTemplate.FeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.FeeSheetRules);\n fsRowTemplate.DeletedFeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.DeletedFeeSheetRules);\n \n this.processPhaseCapDisplay(fsRowTemplate);\n }\n \n }\n }\n else{ //task/infraction\n if(this.selectedFeeSheetTemplateId == undefined) {\n let fsRowTemplate: FeeSheetTemplateTaskDto = {\n FeeSheetTemplateTaskId: e.FeeSheetRowId,\n FeeSheetTemplateId: this.feeSheetTemplateId,\n InfractionTypeId: e.InfractionTypeId,\n Description: e.Description,\n FeeSheetTemplateRules: this.convertFeeSheetTemplateRules(cloned.FeeSheetRules), \n CapDisplay: e.CapDisplay\n }\n if(e.InfractionType){\n fsRowTemplate.InfractionType = e.InfractionType;\n fsRowTemplate.InfractionName = e.InfractionType.Name;\n }\n fsRowTemplate.FeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.FeeSheetRules); \n\n this.processTaskCapDisplay(fsRowTemplate);\n\n this.templateTasks.push(fsRowTemplate);\n\n } else {\n let fsRowTemplate = this.templateTasks.find(x => x.FeeSheetTemplateTaskId === this.selectedFeeSheetTemplateId);\n\n \n if(fsRowTemplate){\n fsRowTemplate.CapDisplay = cloned.CapDisplay;\n fsRowTemplate.Description = cloned.Description;\n \n fsRowTemplate.FeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.FeeSheetRules);\n fsRowTemplate.DeletedFeeSheetTemplateRules = this.convertFeeSheetTemplateRules(cloned.DeletedFeeSheetRules);\n \n this.processTaskCapDisplay(fsRowTemplate);\n }\n }\n }\n \n }\n\n this.showFeeSheetRowDialog = false;\n this.selectedFeeSheetTemplateId = undefined;\n }\n\n processPhaseCapDisplay(feeSheetTemplatePhase: FeeSheetTemplatePhaseDto) : void {\n \n feeSheetTemplatePhase.CapDisplay = '';\n\n _.forEach(feeSheetTemplatePhase.FeeSheetTemplateRules, (item: FeeSheetTemplateRuleDto) => {\n let details = '';\n\n let countryDetail = '';\n if(item.CountryId && item.CountryId > 0) {\n let ctryDetail = _.find(this.countryList, (cntry : CountryDto) => cntry.CountryId === item.CountryId);\n\n countryDetail = ctryDetail ? ctryDetail.CountryCode : '';\n }\n\n //to be implemented\n let levelDetail = '';\n\n let capTargetDetail = this.forPhaseCapDisplayDetail(feeSheetTemplatePhase, item);\n \n details =`${countryDetail} ${levelDetail + ' '}${capTargetDetail ? capTargetDetail + ':' : ''}\n ${this.$options.filters ? this.$options.filters.currency(item.Amount) : item.Amount}`;\n\n feeSheetTemplatePhase.CapDisplay = feeSheetTemplatePhase.CapDisplay + details + '
';\n });\n\n }\n processTaskCapDisplay(feeSheetTemplateTask: FeeSheetTemplateTaskDto) : void {\n feeSheetTemplateTask.CapDisplay = '';\n\n _.forEach(feeSheetTemplateTask.FeeSheetTemplateRules, (item: FeeSheetTemplateRuleDto) => {\n let details = '';\n\n let countryDetail = '';\n if(item.CountryId && item.CountryId > 0) {\n let ctryDetail = _.find(this.countryList, (cntry : CountryDto) => cntry.CountryId === item.CountryId);\n\n countryDetail = ctryDetail ? ctryDetail.CountryCode : '';\n }\n\n //to be implemented\n let levelDetail = '';\n\n let capTargetDetail = this.forTaskCapDisplayDetail(feeSheetTemplateTask, item);\n \n details =`${countryDetail} ${levelDetail + ' '}${capTargetDetail ? capTargetDetail + ':' : ''}\n ${this.$options.filters ? this.$options.filters.currency(item.Amount) : item.Amount}`;\n\n feeSheetTemplateTask.CapDisplay = feeSheetTemplateTask.CapDisplay + details + '
';\n });\n\n }\n\n forPhaseCapDisplayDetail(feeSheetTemplatePhase: FeeSheetTemplatePhaseDto, item: FeeSheetTemplateRuleDto) : string {\n let result = '';\n \n let hasTarget = _.find(feeSheetTemplatePhase.FeeSheetTemplateRules, \n (item : FeeSheetTemplateRuleDto) => item.Type === FeeSheetRuleTypeEnum.Target || item.TargetAmount != null);\n \n if(item.Type) {\n result = hasTarget ? item.Type : '';\n\n if(item.Type === FeeSheetRuleTypeEnum.Cap) {\n item.CapAmount = item.Amount;\n item.TargetAmount = undefined;\n }\n else {\n item.TargetAmount = item.Amount;\n item.CapAmount = undefined;\n }\n }\n else {\n //since 0 value also a false value\n if(item.CapAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Cap : '';\n item.Amount = item.CapAmount;\n item.Type = FeeSheetRuleTypeEnum.Cap;\n }\n else if(item.TargetAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Target : '';\n item.Amount = item.TargetAmount;\n item.Type = FeeSheetRuleTypeEnum.Target;\n }\n } \n\n if(!item.Level) {\n item.Level = FeeSheetRuleLevelEnum.NA;\n }\n \n return result;\n }\n forTaskCapDisplayDetail(feeSheetTemplateTask: FeeSheetTemplateTaskDto, item: FeeSheetTemplateRuleDto) : string {\n let result = '';\n \n let hasTarget = _.find(feeSheetTemplateTask.FeeSheetTemplateRules, \n (item : FeeSheetTemplateRuleDto) => item.Type === FeeSheetRuleTypeEnum.Target || item.TargetAmount != null);\n \n if(item.Type) {\n result = hasTarget ? item.Type : '';\n\n if(item.Type === FeeSheetRuleTypeEnum.Cap) {\n item.CapAmount = item.Amount;\n item.TargetAmount = undefined;\n }\n else {\n item.TargetAmount = item.Amount;\n item.CapAmount = undefined;\n }\n }\n else {\n //since 0 value also a false value\n if(item.CapAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Cap : '';\n item.Amount = item.CapAmount;\n item.Type = FeeSheetRuleTypeEnum.Cap;\n }\n else if(item.TargetAmount != null) {\n result = hasTarget ? FeeSheetRuleTypeEnum.Target : '';\n item.Amount = item.TargetAmount;\n item.Type = FeeSheetRuleTypeEnum.Target;\n }\n } \n\n if(!item.Level) {\n item.Level = FeeSheetRuleLevelEnum.NA;\n }\n \n return result;\n }\n\n convertFeeSheetPhaseTemplate(row: FeeSheetTemplatePhaseDto | undefined){\n if (row){\n let ret: FeeSheetRowDto = {\n FeeSheetRowId: row.FeeSheetTemplatePhaseId,\n FeeSheetId: row.FeeSheetTemplateId ? row.FeeSheetTemplateId : \"00000000-0000-0000-0000-000000000000\",\n Description: row.Description,\n PhaseTypeId: row.PhaseTypeId,\n PhaseAliasId: row.PhaseAliasId,\n PhaseType: row.PhaseType,\n PhaseAlias: row.PhaseAlias,\n Signed: false,\n FeeSheetRules: [],\n CapDisplay : row.CapDisplay,\n \n }\n ret.FeeSheetRules = this.convertFeeSheetRules(row.FeeSheetTemplateRules);\n\n return _.clone(ret); \n }\n else {\n return this.feeSheetRowDefaultValue();\n }\n }\n convertFeeSheetTaskTemplate(row: FeeSheetTemplateTaskDto | undefined){\n if (row){\n let ret: FeeSheetRowDto = {\n FeeSheetRowId: row.FeeSheetTemplateTaskId,\n FeeSheetId: row.FeeSheetTemplateId ? row.FeeSheetTemplateId : \"00000000-0000-0000-0000-000000000000\",\n Description: row.Description,\n InfractionTypeId: row.InfractionTypeId, \n InfractionType: row.InfractionType,\n Signed: false,\n FeeSheetRules: [],\n CapDisplay : row.CapDisplay,\n \n }\n ret.FeeSheetRules = this.convertFeeSheetRules(row.FeeSheetTemplateRules);\n\n return _.clone(ret); \n }\n else {\n return this.feeSheetRowDefaultValue();\n }\n }\n\n convertFeeSheetTemplateRules(rules: FeeSheetRuleDto[] | undefined){\n let templateRules: FeeSheetTemplateRuleDto[] = [];\n _.forEach(rules, (item: FeeSheetRuleDto) => {\n let rule: FeeSheetTemplateRuleDto = {\n FeeSheetTemplateRuleId: item.FeeSheetRuleId,\n CountryId: item.CountryId,\n CountryCode: item.CountryCode,\n TargetAmount: item.TargetAmount,\n CapAmount: item.CapAmount,\n Notes: item.Notes,\n Level: item.Level,\n Type: item.Type,\n Amount: item.Amount,\n Signed: item.Signed,\n InJurisdiction: item.InJurisdiction\n }\n\n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase) {\n rule.FeeSheetTemplatePhaseId = item.FeeSheetRowId;\n }\n else { \n rule.FeeSheetTemplateTaskId = item.FeeSheetRowId;\n }\n \n templateRules.push(rule);\n });\n return templateRules;\n }\n convertFeeSheetRules(rules: FeeSheetTemplateRuleDto[] | undefined){\n let fsRules: FeeSheetRuleDto[] = [];\n _.forEach(rules, (item: FeeSheetTemplateRuleDto) => {\n let rule: FeeSheetRuleDto = {\n FeeSheetRuleId: item.FeeSheetTemplateRuleId,\n FeeSheetRowId: item.FeeSheetTemplatePhaseId ? item.FeeSheetTemplatePhaseId : \"00000000-0000-0000-0000-000000000000\",\n CountryId: item.CountryId,\n CountryCode: item.CountryCode,\n TargetAmount: item.TargetAmount,\n CapAmount: item.CapAmount,\n Notes: item.Notes,\n Level: item.Level,\n Type: item.Type,\n Amount: item.Amount,\n Signed: item.Signed,\n InJurisdiction: item.InJurisdiction,\n FilingTypes: []\n }\n \n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase) {\n rule.FeeSheetRowId = item.FeeSheetTemplatePhaseId ? item.FeeSheetTemplatePhaseId : \"00000000-0000-0000-0000-000000000000\";\n }\n else { \n rule.FeeSheetRowId = item.FeeSheetTemplateTaskId ? item.FeeSheetTemplateTaskId : \"00000000-0000-0000-0000-000000000000\";\n }\n \n fsRules.push(rule);\n });\n return fsRules;\n }\n\n deletePhase(row: any): void { \n if(row.PhaseAliasId) {\n this.templatePhases = _.remove(this.templatePhases, item => item.PhaseAliasId !== row.PhaseAliasId);\n }\n else if(row.PhaseTypeId != undefined) {\n this.templatePhases = _.remove(this.templatePhases, item => item.PhaseTypeId !== row.PhaseTypeId);\n }\n \n \n // this.templatePhases\n // .filter(p => row.PhaseTypeId ? row ===);\n }\n\n /*\n addInfraction(): void { \n let infractionType = this.infractionTypeDtos[this.selectedInfraction];\n\n //if task already added\n if(this.templateTasks.filter(i => i.InfractionName == infractionType.Name).length > 0) {\n this.errorMessage = this.taskAlreadyAdded;\n this.errorVisible = true;\n return;\n }\n\n let templateTask: FeeSheetTemplateTaskDto = { \n FeeSheetTemplateId: this.feeSheetTemplateId ? this.feeSheetTemplateId : undefined,\n InfractionTypeId: infractionType.InfractionTypeId,\n InfractionName: infractionType.Name,\n Description: \"\",\n FeeSheetTemplateRules: [], \n CapDisplay: \"\"\n }\n this.templateTasks.push(templateTask);\n }\n \n\n deleteInfraction(row: any): void { \n this.templateTasks = this.templateTasks\n .filter(t => t.InfractionTypeId != row.InfractionTypeId);\n }\n */\n \n \n feeSheetPhaseRemoveBtnClicked(data:any, phaseOrInfraction: string) : void {\n if(!this.DeletedFeeSheetTemplatePhases) {\n this.DeletedFeeSheetTemplatePhases = [];\n }\n\n if(data.data.FeeSheetTemplatePhaseId != \"00000000-0000-0000-0000-000000000000\") {\n this.DeletedFeeSheetTemplatePhases.push(data.data);\n }\n\n if(phaseOrInfraction === FeeSheetRowTypeEnum.Phase) {\n this.templatePhases.splice(data.rowIndex, 1);\n }\n else {\n this.templatePhases.splice(data.rowIndex, 1);\n }\n }\n\n processDataForEdit(data: any | undefined): void {\n\n if(this.feeSheetRowType === FeeSheetRowTypeEnum.Phase) {\n this.feeSheetRow = this.convertFeeSheetPhaseTemplate(data.data);\n this.selectedFeeSheetTemplateId = data.data.FeeSheetTemplatePhaseId;\n } else {\n this.feeSheetRow = this.convertFeeSheetTaskTemplate(data.data);\n this.selectedFeeSheetTemplateId = data.data.FeeSheetTemplateTaskId;\n }\n\n this.feeSheetRowModalType = FeeSheetModalType.Update;\n this.showFeeSheetRowDialog = true;\n }\n\n exitFeeSheetTemplate(): void {\n this.$router.push('/fee-sheet-templates');\n }\n\n setAttr(name: string, value: any) : any {\n return Object.keys(this.$attrs).indexOf(name) > -1 ? this.$attrs[name] : value;\n }\n\n saveFeeSheetTemplate(): void {\n if(this.templateName == \"\") {\n this.errorMessage = this.emptyTemplateName;\n this.errorVisible = true;\n return; \n } \n \n if(this.templatePhases.length == 0 && this.templateTasks.length == 0) {\n this.errorMessage = this.emptyPhasesOrTasks;\n this.errorVisible = true;\n return;\n }\n\n _.forEach(this.templatePhases, (fr : FeeSheetTemplatePhaseDto) => {\n _.forEach(fr.FeeSheetTemplateRules, (item : FeeSheetTemplateRuleDto) => {\n if(!item.CountryId && item.CountryId === 0) {\n item.CountryId = undefined;\n }\n });\n });\n _.forEach(this.templateTasks, (fr : FeeSheetTemplateTaskDto) => {\n _.forEach(fr.FeeSheetTemplateRules, (item : FeeSheetTemplateRuleDto) => {\n if(!item.CountryId && item.CountryId === 0) {\n item.CountryId = undefined;\n }\n });\n });\n let feeSheetTemplate: FeeSheetTemplateDto = { \n TemplateName: this.templateName,\n Notes: this.templateNotes,\n InJurisdiction: this.templateInJurisdiction,\n FeeSheetTemplatePhases: this.templatePhases,\n FeeSheetTemplateTasks: this.templateTasks,\n DeletedFeeSheetTemplatePhases: this.DeletedFeeSheetTemplatePhases,\n DeletedFeeSheetTemplateTasks: this.DeletedFeeSheetTemplateTasks\n };\n\n if(this.feeSheetTemplateId) {\n //edit \n feeSheetTemplate.FeeSheetTemplateId = this.feeSheetTemplateId;\n this.feeSheetTemplatesService\n .edit(this.feeSheetTemplateId, feeSheetTemplate)\n .then(result => {\n if(result.Data.TemplateName == null) {\n this.errorMessage = this.templateNameExists;\n this.errorVisible = true;\n }\n else {\n this.exitFeeSheetTemplate();\n } \n }); \n }\n else{\n //create \n this.feeSheetTemplatesService\n .create(feeSheetTemplate)\n .then(result => {\n if(result.Data.TemplateName == null) {\n this.errorMessage = this.templateNameExists;\n this.errorVisible = true;\n }\n else {\n this.exitFeeSheetTemplate(); \n } \n }); \n } \n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-form.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-sheet-templates-form.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-sheet-templates-form.vue?vue&type=template&id=68b4178a&scoped=true&\"\nimport script from \"./fee-sheet-templates-form.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-sheet-templates-form.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./fee-sheet-templates-form.vue?vue&type=style&index=0&id=68b4178a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68b4178a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"File Parse Format\")]),_c('file-parse-format-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{attrs:{\"custom-store-options\":_vm.fileParseFormatCustomStoreOptions,\"pageSize\":25},on:{\"initialized\":_vm.dataGridInitialized,\"init-new-row\":_vm.initNewRow},scopedSlots:_vm._u([{key:\"fileNameFormatTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"fileNameFormatTemplate\"}},[_c('router-link',{attrs:{\"to\":{ name: 'file-parse-format-column', params: { id: data.data.FileParseFormatId }}}},[_vm._v(\"\\n \"+_vm._s(data.data.Name)+\"\\n \")])],1)}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"mode\":\"popup\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"Name\",\"cell-template\":\"fileNameFormatTemplate\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"calculate-cell-value\":_vm.displayFileExtensions}})],1),_c('file-parse-format-create',{attrs:{\"showDialog\":_vm.showFileParseFormatCreate},on:{\"hidingFormatCreate\":_vm.hidingFormatCreate}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { CrudServiceBase } from './CrudServiceBase';\nimport { FileParseFormatDto } from '@/models/file-parsing/FileParseFormatDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { FileParseFormatFileExtensionDto } from '@/models/file-parsing/FileParseFormatFileExtensionDto';\nimport { FileParseTargetColumnOptionDto } from '@/models/file-parsing/FileParseTargetColumnOptionDto'\n\n\nexport class FileParseFormatService extends CrudServiceBase {\n constructor() {\n super('/api/FileParseFormats');\n }\n\n async getColumnFormats(fileParseFormatId: Guid, options: LoadOptions) : Promise {\n return await this.client.getPostData(`/${fileParseFormatId}/FileParseColumnFormats/search`, options);\n }\n async getFileExtensions() : Promise> {\n return await this.client.get(`/file-extensions/`);\n }\n async getDataTypes() : Promise> {\n return await this.client.get(`/data-types/`);\n }\n async checkFileParseFormatName(fileParseFormatName: string): Promise{\n return await this.client.get(`?fileParseFormatName=${fileParseFormatName}`);\n }\n async getTargetColumnNameOptions(): Promise{\n return await this.client.get(`/target-column-options/`);\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":352,\"height\":198,\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Create New Format or Copy Existing?\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"hidden\":_vm.onPopupHidden,\"save-shortcut-pressed\":_vm.confirmCreate}},[_c('div',[_c('dx-select-box',{attrs:{\"displayExpr\":\"Name\",\"valueExpr\":\"FileParseFormatId\",\"placeholder\":\"Select a file parse format\",\"dataSource\":_vm.fileParseFormats,\"value\":_vm.selecedFormatId},on:{\"update:value\":function($event){_vm.selecedFormatId=$event}}})],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'OK', type: 'default', stylingMode: 'contained', onClick: _vm.confirmCreate },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { Prop } from 'vue-property-decorator';\nimport { DxButton, DxPopup, DxLookup, DxSelectBox, DxTextBox, DxCheckBox, DxScrollView, DxTooltip } from 'devextreme-vue';\nimport DxToolbar from 'devextreme-vue/toolbar'\nimport { DxForm, DxItem, DxAsyncRule, DxStringLengthRule,DxSimpleItem } from 'devextreme-vue/form';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { FeeSheetDto } from '@/models/Fees/FeeSheetDto';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { FilingTypeDto } from '@/models/FilingTypeDto';\nimport { CurrencyService } from '@/service/CurrencyService';\nimport { JurisdictionDto } from '@/models/JurisdictionDto';\nimport Form from \"devextreme/ui/form\";\nimport { FeeSheetsService } from '@/service/FeeSheetsService';\nimport { FeeSheetModalFor, FeeSheetModalType } from '@/models/Fees/FeeTypeEnum';\nimport _ from \"lodash\";\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxDataGrid,\n DxColumn,\n DxEditing,\n DxFormItem,\n DxHeaderFilter,\n DxScrolling\n} from 'devextreme-vue/data-grid';\nimport { DxDateBox , DxTagBox} from 'devextreme-vue';\nimport DxList from 'devextreme-vue/list';\nimport DxListItem from 'devextreme-vue/list';\nimport DevExpress from 'devextreme';\nimport { PhaseTypeDto } from '../../models/PhaseTypeDto';\nimport { FeeSheetRowDto, FeeSheetRowTypeEnum } from '../../models/Fees/FeeSheetRowDto';\nimport { FeeSheetRuleDto, FeeSheetRuleTypeEnum, FeeSheetRuleLevelEnum, FeeSheetRulesSortFunction } from '../../models/Fees/FeeSheetRuleDto';\nimport { InfractionTypeDto } from '../../models/infractions/InfractionTypeDto';\nimport { Popup } from '@questelservices/common-vue';\nimport { AgentDto } from '../../models/agent/AgentDto';\nimport { FeeSheetMassAdderDto, FeeSheetMassAdderCreationDto } from '../../models/Fees/FeeSheetMassAdderDto';\nimport { alert } from \"devextreme/ui/dialog\";\nimport DataSource from 'devextreme/data/data_source';\nimport List from \"devextreme/ui/list\";\nimport { DxValidator, DxRequiredRule, DxCustomRule } from 'devextreme-vue/validator';\nimport DxValidationGroup from 'devextreme-vue/validation-group';\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport { FileParseFormatService } from '../../service/FileParseFormatService';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { FileParseFormatDto } from '../../models/file-parsing/FileParseFormatDto';\n\n@Component({\n components: {\n Popup, \n DxButton,\n DxLookup,\n DxSelectBox,\n DxToolbar,\n DxToolbarItem, \n DxList,\n DxListItem,\n DxDateBox,\n DxTagBox,\n DxTooltip,\n DxValidationGroup,\n DxValidator, DxRequiredRule, DxCustomRule\n }\n})\nexport default class FileParseFormatCreate extends Vue {\n $refs: Vue['$refs'] & { \n agentSelectionRef? : List;\n validationGroupRef? : ValidationGroup;\n } = {};\n\n get AgentSelectionComponent() {\n return ((this.$refs.agentSelectionRef as any).instance as any);\n }\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value:boolean) {\n this.hidingDialog();\n }\n\n fileParseFormats: Array = [];\n selecedFormatId: Guid = '';\n\n constructor() {\n super(); \n this.loadData();\n }\n\n async loadData() {\n let fileParseFormatService = new FileParseFormatService();\n let loadOptions: LoadOptions = {};\n fileParseFormatService.search(loadOptions)\n .then(result => {\n this.fileParseFormats = result.data;\n this.fileParseFormats.unshift(\n {\n FileParseFormatId: '',\n Name: 'Create New Format',\n FileExtensions: [],\n FileParseFormatColumns: [],\n FileParseFormatCalculations: [],\n DeletedFileParseFormatColumns: []\n }\n );\n });\n }\n\n\n onPopupHidden(e: any) {\n this.selecedFormatId = '';\n }\n\n confirmCreate() { \n if (this.selecedFormatId === '') {\n this.$router.push({ name: 'file-parse-format-column' }); \n } else {\n this.$router.push({ name: 'file-parse-format-column', params: { id: this.selecedFormatId, copyFromExisting: 'true' } });\n } \n }\n\n hidingDialog() {\n this.$emit('hidingFormatCreate');\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-create.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-create.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-format-create.vue?vue&type=template&id=329020e6&\"\nimport script from \"./file-parse-format-create.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-format-create.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { FileParseFormatService } from '../../service/FileParseFormatService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxDataGrid,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup\n} from 'devextreme-vue/data-grid';\nimport { DxItem, DxGroupItem, DxButtonItem } from 'devextreme-vue/form';\nimport { DxSelectBox, DxButton, DxTextBox, DxCheckBox } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport FileParseFormatCreate from './file-parse-format-create.vue';\nimport { FileParseFormatDto } from '../../models/file-parsing/FileParseFormatDto';\nimport { FileParseFormatFileExtensionDto } from '../../models/file-parsing/FileParseFormatFileExtensionDto';\n\n@Component({\n components: {\n DataGrid,\n DxColumn,\n DxEditing,\n DxDataGrid,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxGroupItem,\n DxButtonItem,\n DxLookup,\n DxPopup,\n DxButton,\n DxTextBox,\n DxCheckBox,\n FileParseFormatCreate\n }\n})\nexport default class FileParseFormatGrid extends Vue {\n dataGrid: any;\n fileParseFormatCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n fileParseFormatService: FileParseFormatService;\n \n showFileParseFormatCreate: boolean = false;\n\n constructor() {\n super();\n this.fileParseFormatService = new FileParseFormatService();\n \n this.fileParseFormatCustomStoreOptions = {\n key: 'FileParseFormatId',\n load: loadOptions => this.fileParseFormatService.search(loadOptions),\n };\n \n }\n \n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n initNewRow(e: any) {\n e.promise = Promise.reject();\n this.showFileParseFormatCreate = true;\n return false;\n } \n \n displayFileExtensions(format: FileParseFormatDto) {\n return format.FileExtensions.map(e => e.FileExtension).join(\", \");\n }\n\n hidingFormatCreate() {\n this.showFileParseFormatCreate = false; \n }\n }\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-format-grid.vue?vue&type=template&id=447ff8ce&\"\nimport script from \"./file-parse-format-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-format-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FileParseFormatGrid from '../components/file-parsing/file-parse-format-grid.vue';\n\n @Component({\n components: {\n PageTitle,\n FileParseFormatGrid\n }\n})\nexport default class FileParseFormat extends Vue{}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-format.vue?vue&type=template&id=0245b040&\"\nimport script from \"./file-parse-format.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-format.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"File Parse Format Edit\")]),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',{staticClass:\"dx-fieldset\",staticStyle:{\"width\":\"500px\"}},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Name\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-text-box',{attrs:{\"max-length\":50},model:{value:(_vm.formatDto.Name),callback:function ($$v) {_vm.$set(_vm.formatDto, \"Name\", $$v)},expression:\"formatDto.Name\"}},[_c('dx-validator',[_c('dx-async-rule',{attrs:{\"validation-callback\":_vm.validateAsync,\"message\":\"Name already exists.\",\"reevaluate\":true}}),_c('dx-required-rule')],1)],1)],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"File Extension\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.fileExtensions,\"show-selection-controls\":true,\"search-enabled\":true,\"value\":_vm.selectedFileExtensions,\"apply-value-mode\":\"useButtons\",\"styling-mode\":\"underlined\",\"max-length\":100},on:{\"update:value\":function($event){_vm.selectedFileExtensions=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1)])]),(_vm.configuration)?_c('div',[_c('dx-button',{attrs:{\"icon\":\"preferences\",\"text\":\"Configure\"},on:{\"click\":_vm.openConfiguration}})],1):_vm._e()]),_c('file-parse-format-configuration',{attrs:{\"visible\":_vm.showConfiguration,\"file-parse-format\":_vm.formatDto,\"calculations\":_vm.availableCalculations,\"currencies\":_vm.currencies,\"target-column-options\":_vm.targetColumnOptions},on:{\"update:visible\":function($event){_vm.showConfiguration=$event},\"hiding\":_vm.closeConfiguration,\"initialized\":_vm.configurationInitialized}}),_c('div',[_c('DxDataGrid',{ref:\"datagrid\",attrs:{\"data-source\":_vm.formatDto.FileParseFormatColumns,\"key-expr\":\"FileParseFormatColumnId\",\"height\":\"700px\",\"paging\":{ pageSize: 15 }},on:{\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveFormatGrid,\"row-updating\":_vm.rowUpdating,\"row-updated\":_vm.rowUpdated,\"row-inserting\":_vm.rowInserting,\"row-removed\":_vm.rowRemoved,\"editing-start\":_vm.dataGridEditingStart,\"init-new-row\":_vm.dataGridInitNewRow},scopedSlots:_vm._u([{key:\"targetColumnEditTemplate\",fn:function(data){return [_c('div',[_c('dx-select-box',{attrs:{\"value\":data.data.value,\"data-source\":_vm.targetColumnOptionsDataSource,\"grouped\":true,\"value-expr\":\"FileParseTargetColumnOptionId\",\"display-expr\":\"TargetColumnName\",\"accept-custom-value\":true,\"onCustomItemCreating\":_vm.onCustomItemCreatingEvent,\"onValueChanged\":function (e) { return _vm.onTargetColumnChanged(e, data.data); },\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true}})],1)]}},{key:\"dataTypeEditTemplate\",fn:function(data){return [_c('div',[_c('dx-select-box',{attrs:{\"value\":data.data.value,\"data-source\":_vm.dataTypes,\"value-expr\":\"value\",\"display-expr\":\"text\",\"readOnly\":_vm.targetColumnOptions.some(function (o) { return o.FileParseTargetColumnOptionId === data.data.data.FileParseTargetColumnOptionId && o.CustomItem !== true; }),\"on-value-changed\":function (e) { return _vm.onDataTypeChanged(e, data.data); }}})],1)]}},{key:\"columnFiltersEditTemplate\",fn:function(data){return [_c('div',[_c('dx-sortable',{attrs:{\"handle\":\".filter-reorder-drag\"},on:{\"reorder\":function (e) { return _vm.filterReorder(e, data.data); }}},_vm._l((data.data.value),function(fileParseColumnFilterId,index){return _c('div',{key:'FileParseColumnFilterIds' + (index + 1)},[_c('dx-select-box',{attrs:{\"data-source\":_vm.availableFilters.filter(function (f) { return fileParseColumnFilterId === f.FileParseColumnFilterId || !data.data.data.FileParseColumnFilterIds.some(function (id) { return id === f.FileParseColumnFilterId; }); }),\"display-expr\":\"FilterName\",\"value-expr\":\"FileParseColumnFilterId\",\"value\":fileParseColumnFilterId,\"on-value-changed\":function (value) { return _vm.filterValueChanged(value, data.data, index); },\"buttons\":_vm.getFilterRemoveButtonOptions(data.data, index)},on:{\"update:value\":function($event){fileParseColumnFilterId=$event}}})],1)}),0),_c('dx-button',{attrs:{\"icon\":\"add\",\"text\":\"Add Filter\"},on:{\"click\":function($event){return _vm.addFilterClick(data.data)}}})],1)]}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"showTitle\":true,\"title\":\"File Parse Format Column Edit\",\"width\":\"60%\",\"height\":\"60%\",\"on-showing\":_vm.popupShowing,\"on-hiding\":_vm.popupHiding}}),_c('dx-form',{attrs:{\"onInitialized\":_vm.formInitialized}})],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"SourceColumnName\",\"editor-options\":{ maxLength: 100 }}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"FileParseTargetColumnOptionId\",\"caption\":\"Target Column Name\",\"edit-cell-template\":\"targetColumnEditTemplate\",\"calculate-sort-value\":_vm.calculateTargetColumnNameSortValue}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.targetColumnOptions,\"value-expr\":\"FileParseTargetColumnOptionId\",\"display-expr\":\"TargetColumnName\"}}),_c('dx-custom-rule',{attrs:{\"validation-callback\":_vm.validateTargetColumn,\"reevaluate\":true,\"message\":\"Target Column Name already exists.\"}}),_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"DataFormat\",\"editor-options\":{ maxLength: 50 }}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AlternateSourceColumnName\",\"editor-options\":{ maxLength: 100 },\"visible\":false}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"DataType\",\"caption\":\"Data Type\",\"edit-cell-template\":\"dataTypeEditTemplate\"}},[_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"data-type\":\"boolean\",\"data-field\":\"IsRequired\"}}),_c('dx-column',{attrs:{\"data-type\":\"number\",\"data-field\":\"SortOrder\",\"visible\":false}},[_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"data-type\":\"boolean\",\"data-field\":\"IsEditable\"}}),_c('dx-column',{attrs:{\"caption\":\"Filters\",\"data-field\":\"FileParseColumnFilterIds\",\"visible\":false,\"edit-cell-template\":\"columnFiltersEditTemplate\"}})],1)],1),_c('div',{staticClass:\"options\"},[_c('dx-toolbar',{attrs:{\"element-attr\":{ class: 'toolbar' }}},[_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Delete Format', type: 'normal', stylingMode: 'contained', onClick: _vm.deleteFormat },\"location\":\"before\",\"toolbar\":\"bottom\",\"visible\":_vm.fileParseFormatId != null}}),_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save', type: 'default', stylingMode: 'contained', onClick: _vm.saveFormat },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.returnToList },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { FileParseCalculationDto } from '@/models/file-parsing/FileParseCalculationDto';\n\nexport class FileParseCalculationService {\n private client: QuestelServicesClient = new QuestelServicesClient(store, '/api/FileParseCalculations');\n\n async getAll(): Promise {\n return await this.client.get('');\n }\n}\n","export interface FileParseFormatFileExtensionDto {\n FileParseFormatFileExtensionId: Guid;\n FileParseFormatId: Guid;\n FileExtension: string;\n}\n\nexport class FileParseFormatFileExtensionDto implements FileParseFormatFileExtensionDto {\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"visible\":_vm.visible,\"title\":\"File Parse Format Configuration\"},on:{\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding,\"hidden\":_vm.onHidden}},[_c('dx-scroll-view',[_c('div',[(_vm.currencyConversionCalculation)?_c('div',[_c('div',{staticClass:\"dx-field\",staticStyle:{\"width\":\"350px\"}},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(_vm._s(_vm.currencyConversionCalculation.CalculationName))]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.currencyConversionEnabled},on:{\"update:value\":function($event){_vm.currencyConversionEnabled=$event}}})],1)]),_c('dx-form',{ref:\"currencyConversionForm\",attrs:{\"form-data\":_vm.currencyConversionData,\"col-count\":4,\"disabled\":!_vm.currencyConversionEnabled}},[_c('dx-item',{attrs:{\"data-field\":\"AmountColumn\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":_vm.amountColumnEditorOptions}}),_c('dx-item',{attrs:{\"data-field\":\"SourceCurrencyColumn\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":_vm.sourceCurrencyColumnEditorOptions}}),_c('dx-item',{attrs:{\"data-field\":\"DateColumn\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":_vm.dateColumnEditorOptions}}),_c('dx-item',{attrs:{\"data-field\":\"DestinationCurrency\",\"editor-type\":\"dxSelectBox\",\"editor-options\":_vm.destinationCurrencyEditorOptions}})],1)],1):_vm._e()])]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.saveButtonOptions}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.cancelButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export interface CurrencyConversionData {\n AmountColumn: string;\n SourceCurrencyColumn: string;\n DateColumn: string;\n DestinationCurrency: string | null;\n}\n\nexport function GetDefaultCurrencyConversionData(): CurrencyConversionData {\n return {\n AmountColumn: '',\n SourceCurrencyColumn: '',\n DateColumn: '',\n DestinationCurrency: null\n };\n}\n\nexport function ResetCurrencyConversionData(data: CurrencyConversionData) {\n data.AmountColumn = '';\n data.SourceCurrencyColumn = '';\n data.DateColumn = '';\n data.DestinationCurrency = null;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { DxButton, DxCheckBox, DxScrollView } from 'devextreme-vue';\nimport { DxForm, DxItem } from 'devextreme-vue/form';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport dxForm from 'devextreme/ui/form';\nimport _ from 'lodash';\nimport { FileParseFormatDto } from '@/models/file-parsing/FileParseFormatDto';\nimport { CurrencyDto } from '@/models/CurrencyDto';\nimport {\n CurrencyConversionData,\n GetDefaultCurrencyConversionData,\n ResetCurrencyConversionData\n} from '@/models/file-parsing/format-calculations/CurrencyConversionData';\nimport { FileParseCalculationDto } from '@/models/file-parsing/FileParseCalculationDto';\nimport { FileParseFormatCalculationDto } from '@/models/file-parsing/FileParseFormatCalculationDto';\nimport { FileParseFormatColumnDto } from '@/models/file-parsing/FileParseFormatColumnDto';\nimport { FileParseTargetColumnOptionDto } from '@/models/file-parsing/FileParseTargetColumnOptionDto';\n\n@Component({\n components: {\n DxButton,\n DxCheckBox,\n DxForm,\n DxItem,\n DxPopup,\n DxScrollView,\n DxToolbarItem\n }\n})\nexport default class FileParseFormatConfiguration extends Vue {\n readonly currencyConversionData: CurrencyConversionData;\n currencyConversionEnabled: boolean = false;\n isValid: boolean = true;\n\n constructor() {\n super();\n this.currencyConversionData = GetDefaultCurrencyConversionData();\n }\n\n @Prop({ required: true })\n visible!: boolean;\n\n @Prop({ required: true })\n readonly fileParseFormat!: FileParseFormatDto;\n\n @Prop({ required: true })\n readonly calculations!: FileParseCalculationDto[];\n\n @Prop({ required: true })\n readonly currencies!: CurrencyDto[];\n\n @Prop({ required: true })\n readonly targetColumnOptions!: FileParseTargetColumnOptionDto[];\n\n created() {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n }\n\n mounted() {\n this.$emit('initialized', { component: this });\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n get currencyConversionForm() {\n return (this.$refs['currencyConversionForm'] as DxForm).instance;\n }\n\n get saveButtonOptions() {\n return {\n text: 'OK',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.saveAndClose,\n useSubmitBehavior: true\n };\n }\n\n get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancelAndClose\n };\n }\n\n get amountColumnEditorOptions() {\n return {\n items: this.amountColumnEditorItems\n };\n }\n\n get sourceCurrencyColumnEditorOptions() {\n return {\n items: this.sourceCurrencyColumnEditorItems\n };\n }\n\n get dateColumnEditorOptions() {\n return {\n items: this.dateColumnEditorItems\n };\n }\n\n get destinationCurrencyEditorOptions() {\n return {\n items: this.destinationCurrencyEditorItems\n };\n }\n\n get amountColumnEditorItems() {\n let items = this.fileParseFormat.FileParseFormatColumns\n .filter(c => c.DataType.toLowerCase() === 'number')\n .map(c => this.getTargetColumnName(c));\n return _.sortBy(items);\n }\n\n get sourceCurrencyColumnEditorItems() {\n let items = this.fileParseFormat.FileParseFormatColumns\n .filter(c => c.DataType.toLowerCase() === 'string')\n .map(c => this.getTargetColumnName(c));\n return _.sortBy(items);\n }\n\n get dateColumnEditorItems() {\n let items = this.fileParseFormat.FileParseFormatColumns\n .filter(c => c.DataType.toLowerCase() === 'date' || c.DataType.toLowerCase() === 'datetime')\n .map(c => this.getTargetColumnName(c));\n return _.sortBy(items);\n }\n\n get destinationCurrencyEditorItems() {\n return this.currencies.map(c => c.CurrencyCode);\n }\n\n get currencyConversionCalculation() {\n return this.calculations.find(c => c.CalculationName.toLowerCase() === 'currency conversion');\n }\n\n private getTargetColumnName(column: FileParseFormatColumnDto): string | undefined {\n if (column.TargetColumnName != null) {\n return column.TargetColumnName;\n }\n\n let option = this.targetColumnOptions.find(o => o.FileParseTargetColumnOptionId === column.FileParseTargetColumnOptionId);\n return option != null ? option.TargetColumnName : undefined;\n }\n\n saveAndClose() {\n if (this.validateForms()) {\n this.save();\n this.close();\n }\n }\n\n private validateForms() {\n let isValid = true;\n\n if (this.currencyConversionForm) {\n let validationResult = this.currencyConversionForm.validate();\n isValid = validationResult.isValid ? validationResult.isValid : false;\n }\n\n return isValid;\n }\n\n private save() {\n this.isValid = true;\n this.fileParseFormat.FileParseFormatCalculations.splice(0);\n\n if (this.currencyConversionEnabled) {\n this.addCurrencyConversion();\n }\n }\n\n private addCurrencyConversion() {\n if (!this.currencyConversionCalculation) {\n return;\n }\n\n this.fileParseFormat.FileParseFormatCalculations.push({\n FileParseCalculationId: this.currencyConversionCalculation.FileParseCalculationId,\n FileParseFormatCalculationName: 'Currency Conversion',\n FileParseFormatCalculationData: _.cloneDeep(this.currencyConversionData)\n });\n }\n\n cancelAndClose() {\n this.close();\n }\n\n private close() {\n this.$emit('hiding');\n }\n\n onShowing() {\n this.initialize();\n }\n\n private initialize() {\n this.initializeCalculationData();\n this.populateCalculationData();\n }\n\n private initializeCalculationData() {\n this.initializeCurrencyConversionData();\n }\n\n private initializeCurrencyConversionData() {\n if (this.amountColumnEditorItems[0] != null) {\n this.currencyConversionData.AmountColumn = this.amountColumnEditorItems[0];\n }\n\n if (this.sourceCurrencyColumnEditorItems[0] != null) {\n this.currencyConversionData.SourceCurrencyColumn = this.sourceCurrencyColumnEditorItems[0];\n }\n\n if (this.dateColumnEditorItems[0] != null) {\n this.currencyConversionData.DateColumn = this.dateColumnEditorItems[0];\n }\n\n if (this.destinationCurrencyEditorItems[0] != null) {\n this.currencyConversionData.DestinationCurrency = this.destinationCurrencyEditorItems[0];\n }\n }\n\n populateCalculationData() {\n this.isValid = true;\n\n for (let calculation of this.calculations) {\n let current = this.fileParseFormat.FileParseFormatCalculations\n .find(c => c.FileParseCalculationId === calculation.FileParseCalculationId);\n if (current == null) {\n continue;\n }\n\n let calculationName = calculation.CalculationName.toLowerCase();\n if (calculationName === 'currency conversion') {\n this.populateCurrencyConversionData(current);\n }\n }\n }\n\n private populateCurrencyConversionData(calculation: FileParseFormatCalculationDto) {\n this.currencyConversionEnabled = true;\n\n let currentData = calculation.FileParseFormatCalculationData;\n if (currentData.AmountColumn != null) {\n if (!this.amountColumnEditorItems.includes(currentData.AmountColumn)) {\n this.isValid = false;\n currentData.AmountColumn = '';\n }\n\n this.currencyConversionData.AmountColumn = currentData.AmountColumn;\n }\n\n if (currentData.SourceCurrencyColumn != null) {\n if (!this.sourceCurrencyColumnEditorItems.includes(currentData.SourceCurrencyColumn)) {\n this.isValid = false;\n currentData.SourceCurrencyColumn = '';\n }\n\n this.currencyConversionData.SourceCurrencyColumn = currentData.SourceCurrencyColumn;\n }\n\n if (currentData.DateColumn != null) {\n if (!this.dateColumnEditorItems.includes(currentData.DateColumn)) {\n this.isValid = false;\n currentData.DateColumn = '';\n }\n\n this.currencyConversionData.DateColumn = currentData.DateColumn;\n }\n\n if (currentData.DestinationCurrency != null) {\n if (!this.destinationCurrencyEditorItems.includes(currentData.DestinationCurrency)) {\n this.isValid = false;\n currentData.DestinationCurrency = '';\n }\n\n this.currencyConversionData.DestinationCurrency = currentData.DestinationCurrency;\n }\n }\n\n onHiding() {\n this.close();\n }\n\n onHidden() {\n this.reset();\n }\n\n private reset() {\n this.resetCurrencyConversion();\n }\n\n private resetCurrencyConversion() {\n this.currencyConversionEnabled = false;\n ResetCurrencyConversionData(this.currencyConversionData);\n }\n\n private onKeydown(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private onKeyup(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.saveAndClose();\n }\n }\n\n private isSaveShortcut(e: KeyboardEvent) {\n return e.key === 'Enter' && (e.ctrlKey || e.shiftKey);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-configuration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-configuration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-format-configuration.vue?vue&type=template&id=f48b04ce&scoped=true&\"\nimport script from \"./file-parse-format-configuration.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-format-configuration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f48b04ce\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxToolbar, DxItem } from 'devextreme-vue/toolbar';\nimport { FileParseFormatService } from '@/service/FileParseFormatService';\nimport { FileParseCalculationService } from '@/service/FileParseCalculationService';\nimport {\n FileParseFormatDto,\n GetDefaultFileParseFormatDto\n} from '@/models/file-parsing/FileParseFormatDto';\nimport { FileParseFormatFileExtensionDto } from '@/models/file-parsing/FileParseFormatFileExtensionDto';\nimport { FileParseColumnFilterDto } from '@/models/file-parsing/FileParseColumnFilterDto';\nimport { FileParseCalculationDto } from '@/models/file-parsing/FileParseCalculationDto';\nimport { FileParseFormatCalculationDto } from '@/models/file-parsing/FileParseFormatCalculationDto';\nimport {\n DxColumn,\n DxRequiredRule,\n DxEditing,\n DxDataGrid,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxPaging,\n DxPopup, \n DxCustomRule,\n DxAsyncRule,\n DxLookup\n} from 'devextreme-vue/data-grid';\nimport { DxButton, DxTextBox, DxCheckBox, DxTagBox, DxSelectBox, DxSortable, DxValidator } from 'devextreme-vue';\nimport { SelectOption } from '../models/SelectOption';\nimport { QuestelServicesClient, RequestResult } from '@questelservices/common';\nimport DevExpress from 'devextreme';\nimport { FileParseFormatColumnDto } from '../models/file-parsing/FileParseFormatColumnDto';\nimport { confirm } from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport DataGrid from \"devextreme/ui/data_grid\";\nimport { FileParseTargetColumnOptionDto } from '@/models/file-parsing/FileParseTargetColumnOptionDto';\nimport _ from 'lodash';\nimport Form from 'devextreme/ui/form';\nimport { CurrencyService } from '@/service/CurrencyService';\nimport { CurrencyDto } from '@/models/CurrencyDto';\nimport FileParseFormatConfiguration from '@/components/file-parsing/file-parse-format-configuration.vue';\nimport DataSource from 'devextreme/data/data_source';\n\n@Component({\n components: {\n PageTitle,\n DxToolbar,\n DxItem,\n DxColumn,\n DxRequiredRule,\n DxEditing,\n DxDataGrid,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxPaging,\n DxPopup,\n DxLookup,\n DxButton,\n DxTextBox,\n DxCheckBox,\n DxTagBox,\n DxSelectBox,\n DxSortable,\n DxValidator,\n DxCustomRule,\n DxAsyncRule,\n FileParseFormatConfiguration\n }\n})\nexport default class FileParseFormatColumn extends Vue {\n $refs: Vue['$refs'] & {\n datagrid?: DataGrid;\n } = {};\n\n formatDto: FileParseFormatDto = GetDefaultFileParseFormatDto();\n dataGrid: any;\n fileExtensions: string[] = [];\n dataTypes: Array = [];\n availableFilters: Array = [];\n selectedFileExtensions: string[] = [];\n availableCalculations: FileParseCalculationDto[] = [];\n currencies: CurrencyDto[] = [];\n showConfiguration: boolean = false;\n configuration: FileParseFormatConfiguration | null = null;\n targetColumnOptions: Array = [];\n private readonly othersGroupLabel: string = 'Others';\n\n get targetColumnOptionsDataSource() {\n return new DataSource({\n store: this.targetColumnOptions,\n group: 'TableName',\n searchExpr: 'TargetColumnName'\n\n });\n }\n\n calculateTargetColumnNameSortValue(rowData: any) {\n if (rowData.FileParseTargetColumnOptionId != null) {\n let targetColumnOption = this.targetColumnOptions.find(o => o.FileParseTargetColumnOptionId === rowData.FileParseTargetColumnOptionId);\n if (targetColumnOption != null) {\n return targetColumnOption.TargetColumnName;\n }\n }\n \n return rowData.TargetColumnName;\n }\n\n private get fileParseFormatId(): Guid | undefined {\n return this.$route.params.id;\n }\n\n private fileParseFormatService: FileParseFormatService = new FileParseFormatService();\n private fileParseCalculationService: FileParseCalculationService = new FileParseCalculationService();\n private currencyService: CurrencyService = new CurrencyService();\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n\n async mounted() {\n if (this.fileParseFormatId) {\n this.formatDto = await this.fileParseFormatService.get(this.fileParseFormatId);\n\n // If copying an existing format, unset the primary keys\n if(this.$route.params['copyFromExisting']) {\n this.formatDto.FileParseFormatId = undefined;\n\n this.formatDto.FileExtensions.forEach(fe => {\n fe.FileParseFormatFileExtensionId = \"00000000-0000-0000-0000-000000000000\";\n });\n\n this.formatDto.FileParseFormatColumns.forEach(c => {\n c.FileParseFormatColumnId = \"00000000-0000-0000-0000-000000000000\";\n });\n } \n\n // Set a file parse format id as a route parameter so the breadcrumb will load the selected format\n this.$route.params['fileParseFormatId'] = this.fileParseFormatId;\n this.selectedFileExtensions = this.formatDto.FileExtensions.map(fe => fe.FileExtension);\n } \n else {\n this.formatDto = GetDefaultFileParseFormatDto();\n }\n\n this.formatNameValue = this.formatDto ? this.formatDto.Name : '';\n this.targetColumnOptions = await this.fileParseFormatService\n .getTargetColumnNameOptions() \n .catch(err => []);\n\n this.formatDto.FileParseFormatColumns.forEach(item => {\n if (item.FileParseTargetColumnOptionId == null && item.TargetColumnName != null) {\n let maxId = _.maxBy(this.targetColumnOptions, item => item.FileParseTargetColumnOptionId);\n let id = (maxId ? maxId.FileParseTargetColumnOptionId : 0) + 1;\n\n let customItem = {\n \"FileParseTargetColumnOptionId\": id,\n \"TableName\": this.othersGroupLabel,\n \"TargetColumnName\": item.TargetColumnName,\n \"DataType\": item.DataType,\n \"CustomItem\": true\n };\n\n item.FileParseTargetColumnOptionId = id;\n this.targetColumnOptions.push(customItem);\n }\n });\n\n let extensions = await this.fileParseFormatService.getFileExtensions();\n this.fileExtensions = extensions;\n\n let types = await this.fileParseFormatService.getDataTypes();\n this.dataTypes = types.map(t => {\n return { text: t, value: t };\n });\n\n this.availableFilters = await this.client.get('/api/FileParseColumnFilters');\n this.availableCalculations = await this.fileParseCalculationService.getAll();\n this.currencies = await this.currencyService.getAll();\n }\n\n configurationInitialized(e: any) {\n this.configuration = e.component;\n }\n\n openConfiguration() {\n this.showConfiguration = true;\n }\n\n closeConfiguration() {\n this.showConfiguration = false;\n }\n\n popupShowing(e: any) {\n this.removeUnusedCustomTargetColumn();\n\n // Couldn't find a configuration option for this, so changing the style of Save and Cancel when loading the dialog.\n var toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[0].options.text = 'OK';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n }\n\n onTargetColumnChanged(e: any, data: any) {\n let selectedTargetOption = this.targetColumnOptions.find(o => o.FileParseTargetColumnOptionId === e.value);\n if (selectedTargetOption != null) {\n data.setValue(selectedTargetOption.FileParseTargetColumnOptionId);\n \n // Also update the value of the DataType\n this.dataGrid.cellValue(data.row.rowIndex, this.dataGrid.getVisibleColumnIndex('DataType'), selectedTargetOption.DataType);\n this.repaintEditForm();\n }\n }\n\n onDataTypeChanged(e: any, data: any) {\n data.setValue(e.value);\n }\n\n onCustomItemCreatingEvent(e: any) {\n let alreadyExists = this.targetColumnOptions.find(item => item.TargetColumnName === e.text && item.TableName === this.othersGroupLabel);\n if (alreadyExists) {\n e.customItem = alreadyExists;\n return;\n }\n\n let maxId = _.maxBy(this.targetColumnOptions, item => item.FileParseTargetColumnOptionId);\n let id = (maxId ? maxId.FileParseTargetColumnOptionId : 0) + 1;\n\n let customItem = {\n \"FileParseTargetColumnOptionId\": id,\n \"TableName\": this.othersGroupLabel,\n \"TargetColumnName\": e.text,\n \"DataType\": 'string',\n \"CustomItem\": true\n };\n\n this.targetColumnOptions.push(customItem);\n e.customItem = customItem;\n }\n\n validateTargetColumn(e: any) {\n return this.validateTargetColumnValue(e.value);\n }\n\n validateTargetColumnValue(value: any){\n let result = true;\n if (value === this.targetColumnValue){\n result = true;\n } else if (value) {\n if (this.formatDto.FileParseFormatColumns.find(c => c.FileParseTargetColumnOptionId === value)) {\n result = false;\n } else {\n result = true;\n }\n }\n\n return result;\n }\n\n formatNameValue: string | undefined = '';\n async validateAsync(param: any) {\n if (this.formatNameValue == param.value || !param.value) {\n return true;\n }\n \n return await this.fileParseFormatService\n .checkFileParseFormatName(param.value)\n .then(response => {\n return !response;\n });\n }\n\n dataGridInitNewRow(e: any) {\n e.data = {\n IsRequired: false,\n IsEditable: false,\n FileParseColumnFilterIds: []\n };\n }\n\n rowInserting(e: any) {\n e.data.FileParseColumnFilterIds = e.data.FileParseColumnFilterIds.filter(\n (id: Guid) => id.length > 0\n );\n }\n \n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData);\n e.newData.FileParseColumnFilterIds = e.newData.FileParseColumnFilterIds.filter(\n (id: Guid) => id.length > 0\n );\n\n this.dataSaved = true;\n }\n\n rowUpdated(e: any) {\n if (this.configuration != null) {\n this.configuration.populateCalculationData();\n }\n\n (this.$refs.datagrid as any).instance.refresh();\n }\n\n removeUnusedCustomTargetColumn() {\n _.remove(this.targetColumnOptions, option =>\n option.TableName === this.othersGroupLabel && _.findIndex(this.formatDto.FileParseFormatColumns, column => column.TargetColumnName === option.TargetColumnName || column.FileParseTargetColumnOptionId === option.FileParseTargetColumnOptionId) === -1\n );\n }\n\n rowRemoved(e: any) {\n this.formatDto.DeletedFileParseFormatColumns.push(e.data);\n\n if (this.configuration != null) {\n this.configuration.populateCalculationData();\n }\n \n this.removeUnusedCustomTargetColumn();\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n saveFormat(e: any) {\n let result = e.validationGroup.validate();\n if (result.isValid) {\n this.submitSave();\n } \n }\n\n submitSave() {\n this.dataGrid.focus();\n this.formatDto.FileExtensions = this.selectedFileExtensions\n .map(fe => {\n let fileExtension = new FileParseFormatFileExtensionDto();\n fileExtension.FileExtension = fe;\n return fileExtension;\n });\n\n let payload = _.cloneDeep(this.formatDto);\n\n this.targetColumnOptions\n .filter(item => item.TableName === this.othersGroupLabel)\n .forEach(item => {\n let notInOptions = payload.FileParseFormatColumns.find(c => c.FileParseTargetColumnOptionId === item.FileParseTargetColumnOptionId);\n\n if (notInOptions) {\n notInOptions.FileParseTargetColumnOptionId = undefined;\n notInOptions.TargetColumnName = item.TargetColumnName;\n }\n });\n \n if (payload.FileParseFormatId == undefined) { \n let result = this.fileParseFormatService.create(payload).then(res => {\n this.returnToList();\n return res;\n }).catch(res => {\n this.handleSaveError(res);\n });\n } else {\n let result = this.fileParseFormatService.edit(payload.FileParseFormatId, payload).then(res => {\n this.returnToList();\n return res;\n }).catch(res => {\n this.handleSaveError(res);\n });\n }\n }\n\n private handleSaveError(result: any) {\n let message = 'An error occurred saving the file parse format.';\n if (result && result.Message) {\n message = result.Message;\n\n let index = message.indexOf(' (Error');\n if (index > -1) {\n message = message.substring(0, index);\n }\n }\n\n this.showErrorMessage(message);\n }\n\n private showErrorMessage(message: string) {\n notify({ message, position: 'top center' }, 'error', 7000);\n }\n\n deleteFormat(e: any) {\n confirm(`Are you sure you want to delete ${this.formatDto.Name}?`, 'Confirm')\n .then(result => {\n if (result && this.formatDto.FileParseFormatId != null) {\n this.fileParseFormatService.delete(this.formatDto.FileParseFormatId)\n .then(this.onFormatDeleted)\n .catch(this.handleDeleteError);\n }\n });\n }\n\n private onFormatDeleted(result: RequestResult) {\n notify({ message: `${this.formatDto.Name} successfully deleted.`, position: 'top center' }, 'success', 5000);\n this.returnToList();\n }\n\n private handleDeleteError(result: any) {\n this.showErrorMessage('An error occurred deleting the file parse format.');\n }\n\n returnToList() {\n this.$router.push({ path: '/file-parse-format' });\n }\n\n created(): void {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n }\n\n destroyed(): void {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n onKeydown(e: any): void {\n if (e.key === 'Enter' && (e.ctrlKey || e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n onKeyup(e: any): void {\n if (e.key === 'Enter' && (e.ctrlKey || e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n this.saveFormatGrid();\n }\n }\n\n saveFormatGrid() {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n\n // Store reference to form when initialized, to use for repainting later\n private columnEditForm: DevExpress.ui.dxForm | undefined = undefined;\n formInitialized(e: any) {\n this.columnEditForm = e.component;\n }\n\n repaintEditForm() {\n if (this.columnEditForm) {\n this.columnEditForm.repaint();\n }\n }\n\n targetColumnValue: string = '';\n\n // Get a copy of the filters when starting to edit that copy, to be able to restore it when editing is canceled.\n // There's possibly a better way of doing this if we spend more time on it.\n private currentEditColumnId: Guid = '';\n private selectedFilterIds: Guid[] = [];\n private dataSaved: boolean = false;\n dataGridEditingStart(e: any) {\n this.targetColumnValue = e.data.FileParseTargetColumnOptionId; \n this.currentEditColumnId = e.data.FileParseFormatColumnId;\n // Create a copy of the array to restore if needed\n this.selectedFilterIds = [...e.data.FileParseColumnFilterIds];\n this.dataSaved = false;\n }\n\n popupHiding(e: any) {\n this.targetColumnOptionsDataSource.searchValue(null);\n this.targetColumnOptionsDataSource.filter(null);\n this.targetColumnOptionsDataSource.load();\n\n // If data was not saved, restore the original filter value.\n // This is a workaround to find a way of making cancel work.\n if (!this.dataSaved) {\n let column = this.formatDto.FileParseFormatColumns.find(\n c => c.FileParseFormatColumnId === this.currentEditColumnId\n );\n if (column) {\n column.FileParseColumnFilterIds = this.selectedFilterIds;\n }\n }\n this.dataSaved = false;\n }\n\n addFilterClick(e: any) {\n // Add empty value\n e.data.FileParseColumnFilterIds.push('');\n // Repaint form\n this.repaintEditForm();\n }\n\n removeFilterClick(data: any, index: number) {\n // Remove element at index\n data.data.FileParseColumnFilterIds.splice(index, 1);\n // Set column value to array\n data.setValue(data.data.FileParseColumnFilterIds);\n // Repaint form\n this.repaintEditForm();\n }\n\n getFilterRemoveButtonOptions(data: any, index: number) {\n return [\n {\n name: 'remove',\n options: {\n icon: 'trash',\n onClick: () => {\n this.removeFilterClick(data, index);\n }\n }\n },\n {\n name: 'drag',\n options: {\n icon: 'dragvertical',\n activeStateEnabled: false,\n focusStateEnabled: false,\n hoverStateEnabled: false,\n elementAttr: { class: 'filter-reorder-drag' }\n }\n }\n ];\n }\n\n filterValueChanged(value: any, data: any, index: number) {\n // Update value\n data.data.FileParseColumnFilterIds[index] = value.value;\n // Set column value to entire array\n data.setValue(data.data.FileParseColumnFilterIds);\n this.repaintEditForm();\n }\n\n filterReorder(e: any, data: any) {\n let movedItem = data.data.FileParseColumnFilterIds[e.fromIndex];\n data.data.FileParseColumnFilterIds.splice(e.fromIndex, 1);\n data.data.FileParseColumnFilterIds.splice(e.toIndex, 0, movedItem);\n // Update column value\n data.setValue(data.data.FileParseColumnFilterIds);\n this.repaintEditForm();\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-column.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-column.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-format-column.vue?vue&type=template&id=d6191aa4&scoped=true&\"\nimport script from \"./file-parse-format-column.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-format-column.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./file-parse-format-column.vue?vue&type=style&index=0&id=d6191aa4&prod&lang=scss&scoped=true&\"\nimport style1 from \"./file-parse-format-column.vue?vue&type=style&index=1&id=d6191aa4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d6191aa4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Submitted Files\")]),_c('file-parse-submitted-files')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-button',{staticClass:\"refresh-button\",attrs:{\"icon\":\"refresh\",\"text\":\"Refresh\"},on:{\"click\":_vm.refreshFileParseUploadTable}}),_c('data-grid',{ref:\"fileParseUploadDataGrid\",attrs:{\"custom-store-options\":_vm.submittedFilesStoreOptions,\"remote-operations\":{ sorting: false, paging: true, filtering: false }},scopedSlots:_vm._u([{key:\"resubmitCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{attrs:{\"visible\":_vm.showResubmitButton(data),\"disabled\":_vm.resubmitInProgress,\"type\":\"normal\",\"text\":\"resubmit\"},on:{\"click\":function($event){return _vm.resubmitFileParseUpload(data)}}})],1)}}])},[_c('dx-header-filter',{attrs:{\"visible\":true,\"allow-search\":true}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_c('dx-paging',{attrs:{\"page-size\":25}}),_c('dx-pager',{attrs:{\"allowed-page-sizes\":[10, 25, 50, 100],\"show-page-size-selector\":true,\"visible\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"storage\"}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"data-field\":\"Client.ClientName\",\"caption\":\"Client\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false,\"width\":200}}),_c('dx-column',{attrs:{\"data-field\":\"Batch.BatchName\",\"caption\":\"Batch\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false,\"width\":100}}),_c('dx-column',{attrs:{\"data-field\":\"Agent.AgentName\",\"caption\":\"Agent\",\"data-type\":\"string\",\"calculate-cell-value\":_vm.getAgentName,\"allow-filtering\":true,\"allow-editing\":false,\"width\":300}}),_c('dx-column',{attrs:{\"data-field\":\"FileList\",\"caption\":\"Filename(s)\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false,\"width\":300}}),_c('dx-column',{attrs:{\"data-field\":\"CreatedDate\",\"caption\":\"Created Date\",\"data-type\":\"datetime\",\"allow-filtering\":true,\"allow-editing\":false,\"width\":150}}),_c('dx-column',{attrs:{\"data-field\":\"StatusType\",\"caption\":\"Status\",\"data-type\":\"string\",\"calculate-cell-value\":_vm.getStatus,\"allow-filtering\":true,\"allow-editing\":false,\"width\":150}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":150,\"cell-template\":\"resubmitCellTemplate\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport dialog from 'devextreme/ui/dialog';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxButton } from 'devextreme-vue/button';\nimport {DxDataGrid, DxEditing, DxColumn, DxFilterRow, DxStateStoring, DxScrolling, DxHeaderFilter, DxPager, DxPaging } from 'devextreme-vue/data-grid';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport { FileParseUploadDto } from '@/models/file-parsing/FileParseUploadDto';\nimport { FileParseUploadStatusTypeEnum, FileParseUploadStatusTypeEnumString } from '@/models/file-parsing/FileParseUploadStatusTypeEnum';\nimport { FileParseUploadService } from '@/service/FileParseUploadService';\n\n@Component({\n components: {\n DataGrid,\n DxDataGrid,\n DxButton, \n DxColumn,\n DxFilterRow,\n DxEditing,\n DxStateStoring,\n DxScrolling,\n DxHeaderFilter,\n DxPager,\n DxPaging\n }\n})\nexport default class FileParseSubmittedFiles extends Vue {\n $refs: Vue['$refs'] & {\n fileParseUploadDataGrid?: DataGrid;\n } = {};\n\n private submittedFilesStoreOptions: DevExpress.data.CustomStoreOptions;\n private fileParseUploadService: FileParseUploadService = new FileParseUploadService();\n initialLoad: boolean = true;\n\n private get dataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.fileParseUploadDataGrid as any).$refs.dxDataGrid.instance;\n }\n \n constructor() {\n super();\n\n this.submittedFilesStoreOptions = {\n key: 'FileParseUploadId',\n load: (loadOptions) => {\n if(loadOptions.filter === undefined) {\n loadOptions.filter = [];\n }\n if (this.initialLoad) {\n this.initialLoad = false;\n this.applyDefaultSort();\n }\n \n return this.fileParseUploadService.search(loadOptions);\n }\n }\n } \n\n getAgentName(rowData: any) {\n return rowData.Agent == null ? '' : rowData.Agent.AgentName;\n }\n\n getStatus(rowData: any){\n let result = \"\";\n switch (rowData.StatusType)\n {\n case FileParseUploadStatusTypeEnum.Created:\n result = FileParseUploadStatusTypeEnumString.Created;\n break;\n case FileParseUploadStatusTypeEnum.Uploading:\n result = FileParseUploadStatusTypeEnumString.Uploading;\n break;\n case FileParseUploadStatusTypeEnum.Uploaded:\n result = FileParseUploadStatusTypeEnumString.Uploaded;\n break;\n case FileParseUploadStatusTypeEnum.InQueue:\n result = FileParseUploadStatusTypeEnumString.InQueue;\n break;\n case FileParseUploadStatusTypeEnum.NeedsReview:\n result = FileParseUploadStatusTypeEnumString.NeedsReview;\n break;\n case FileParseUploadStatusTypeEnum.Processing:\n result = FileParseUploadStatusTypeEnumString.Processing;\n break;\n case FileParseUploadStatusTypeEnum.Complete:\n result = FileParseUploadStatusTypeEnumString.Complete;\n break;\n case FileParseUploadStatusTypeEnum.Failed:\n result = FileParseUploadStatusTypeEnumString.Failed;\n break;\n case FileParseUploadStatusTypeEnum.TimedOutWhileCompletingUpload:\n result = FileParseUploadStatusTypeEnumString.TimedOutWhileCompletingUpload;\n break;\n case FileParseUploadStatusTypeEnum.NeedsResubmission:\n result = FileParseUploadStatusTypeEnumString.NeedsResubmission;\n break;\n case FileParseUploadStatusTypeEnum.TimedOutDuringUpload:\n result = FileParseUploadStatusTypeEnumString.TimedOutDuringUpload;\n break;\n default:\n result = 'Unknown Status';\n }\n return result;\n }\n\n private resubmitInProgress: boolean = false;\n private async resubmitFileParseUpload(rowData: any)\n {\n this.resubmitInProgress = true;\n rowData.data.StatusType = 1;\n await this.fileParseUploadService.submit(rowData.data.FileParseUploadId);\n this.refreshFileParseUploadTable();\n this.resubmitInProgress = false;\n }\n\n private async refreshFileParseUploadTable() {\n this.dataGrid.refresh();\n }\n\n private showResubmitButton(data: any) {\n return data.data.StatusType === FileParseUploadStatusTypeEnum.TimedOutWhileCompletingUpload ||\n data.data.StatusType === FileParseUploadStatusTypeEnum.NeedsResubmission;\n }\n \n private applyDefaultSort() {\n this.dataGrid.columnOption('CreatedDate', 'sortOrder', 'desc');\n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-submitted-files.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-submitted-files.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-submitted-files.vue?vue&type=template&id=665e094a&scoped=true&\"\nimport script from \"./file-parse-submitted-files.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-submitted-files.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./file-parse-submitted-files.vue?vue&type=style&index=0&id=665e094a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"665e094a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FileParseSubmittedFiles from '../components/file-parsing/file-parse-submitted-files.vue';\n\n@Component({\n components: {\n PageTitle,\n FileParseSubmittedFiles\n }\n})\nexport default class SubmittedFiles extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./submitted-files.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./submitted-files.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./submitted-files.vue?vue&type=template&id=82fc1fd4&\"\nimport script from \"./submitted-files.vue?vue&type=script&lang=ts&\"\nexport * from \"./submitted-files.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"User Assigned Clients\")]),_c('user-assigned-clients')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('alert-message',{attrs:{\"type\":_vm.dataMessageType,\"message\":_vm.dataMessage}}),_c('div',{staticClass:\"dx-fieldset\",staticStyle:{\"max-width\":\"800px\"}},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Assigned clients\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"show-selection-controls\":true,\"search-enabled\":true,\"multiline\":false,\"value\":_vm.userClient},on:{\"update:value\":function($event){_vm.userClient=$event}}})],1)])]),_c('div',[_c('dx-button',{staticStyle:{\"margin-right\":\"10px\"},attrs:{\"type\":\"cancel\",\"text\":\"Cancel\"},on:{\"click\":_vm.onCancelClick}}),_c('dx-button',{attrs:{\"type\":\"default\",\"text\":\"Save\"},on:{\"click\":_vm.onSaveClick}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { ClientService } from '../../service/ClientService';\nimport { DxTagBox, DxButton, DxScrollView } from 'devextreme-vue';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { UserService } from '../../service/UserService';\nimport { AlertMessage } from '@questelservices/common-vue';\n\n@Component({\n components: {\n DxTagBox,\n DxButton,\n DxScrollView,\n AlertMessage\n }\n})\nexport default class UserAssignedClients extends Vue {\n private clients: Array<{ text: string; value: Guid }> = [];\n private userClient: Array = [];\n private userService: UserService = new UserService();\n private dataMessageType: string = '';\n private dataMessage: string = '';\n\n constructor() { \n super();\n this.loadData();\n }\n\n async loadData(): Promise { \n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n });\n\n this.userClient = await this.userService.getAssignedClients();\n }\n\n async onCancelClick(): Promise {\n this.userClient = await this.userService.getAssignedClients();\n }\n\n onSaveClick(): Promise {\n return this.userService.updateAssignedClient(this.userClient)\n .then(success => {\n this.dataMessageType = 'success';\n this.dataMessage = 'Changes successfully saved.';\n this.resetMessage();\n return true;\n })\n .catch(error => {\n this.dataMessageType = 'error';\n this.dataMessage = 'An unexpected error occurred. Please try again.';\n return false;\n });\n }\n\n resetMessage(): void {\n setTimeout(() => {\n this.dataMessageType = '';\n this.dataMessage = '';\n }, 5000);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user-assigned-clients.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user-assigned-clients.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./user-assigned-clients.vue?vue&type=template&id=7796780c&scoped=true&\"\nimport script from \"./user-assigned-clients.vue?vue&type=script&lang=ts&\"\nexport * from \"./user-assigned-clients.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./user-assigned-clients.vue?vue&type=style&index=0&id=7796780c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7796780c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport UserAssignedClients from '../components/users/user-assigned-clients.vue';\n\n@Component({\n components: {\n PageTitle,\n UserAssignedClients\n }\n})\nexport default class UserAssigned extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user-assigned.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user-assigned.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./user-assigned.vue?vue&type=template&id=49987322&\"\nimport script from \"./user-assigned.vue?vue&type=script&lang=ts&\"\nexport * from \"./user-assigned.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"batch-name-header\"},[_c('page-title',[_vm._v(\"Batch Details\")])],1),_c('dx-select-box',{staticClass:\"batch-type-selection\",attrs:{\"data-source\":_vm.batchTypes,\"value\":_vm.batchTypeId,\"display-expr\":\"text\",\"value-expr\":\"value\",\"styling-mode\":\"outlined\"},on:{\"update:value\":function($event){_vm.batchTypeId=$event},\"valueChanged\":_vm.onBatchTypeChanged}})],1),(_vm.batch)?_c('batch-details',{attrs:{\"batch\":_vm.batch},on:{\"hidingDeleteBatchData\":_vm.hidingDeleteBatchData}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Client:\")]),_c('div',{staticClass:\"dx-field-value\"},[_vm._v(\"\\n \"+_vm._s(_vm.batch.ClientName)+\"\\n \")])]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Batch Name:\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('div',{staticClass:\"batch-name\"},[_c('div',{staticClass:\"batch-name-value\"},[_vm._v(_vm._s(_vm.batch.BatchName))]),_c('div',{staticClass:\"batch-name-edit\"},[_c('dx-button',{attrs:{\"icon\":\"edit\"},on:{\"click\":_vm.renameBatch}})],1)])])]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Total Matters:\")]),_c('div',{staticClass:\"dx-field-value\"},[_vm._v(\"\\n \"+_vm._s(_vm.batch.MatterCount)+\"\\n \")])]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Total Line Items:\")]),_c('div',{staticClass:\"dx-field-value\"},[_vm._v(\"\\n \"+_vm._s(_vm.batch.LineItemCount)+\"\\n \")])]),_c('div',{staticClass:\"auto-coding-buttons\"},[_c('div',{staticClass:\"auto-coding-button\"},[_c('dx-button',{attrs:{\"text\":\"Start Auto Coding\",\"visible\":!_vm.startingAutoCoding},on:{\"click\":_vm.startAutoCoding}}),_c('dx-load-indicator',{attrs:{\"visible\":_vm.startingAutoCoding}})],1),_c('div',{staticClass:\"auto-coding-button\"},[_c('dx-button',{attrs:{\"text\":\"Start Azure Auto Coding\",\"visible\":!_vm.startingAzureCoding},on:{\"click\":_vm.startAzureCoding}}),_c('dx-load-indicator',{attrs:{\"visible\":_vm.startingAzureCoding}})],1),_c('div',{staticClass:\"auto-coding-button\"},[_c('dx-button',{attrs:{\"text\":\"Start Post Processing\",\"visible\":!_vm.startingPostProcessing},on:{\"click\":_vm.startPostProcessing}}),_c('dx-load-indicator',{attrs:{\"visible\":_vm.startingPostProcessing}})],1),_c('div',{staticClass:\"auto-coding-buttons\"},[_c('div',{staticClass:\"auto-coding-button\"},[_c('dx-button',{attrs:{\"text\":\"Delete Batch Data\"},on:{\"click\":_vm.showDeleteBatchData}})],1)])]),(_vm.batch.BatchCompleteDate == null && !_vm.batchCompleted)?_c('br'):_vm._e(),_c('div',{staticClass:\"auto-coding-buttons\"},[_c('div',{staticClass:\"auto-coding-button\"},[_c('dx-button',{attrs:{\"text\":\"Complete Batch\",\"visible\":_vm.batch.BatchCompleteDate == null && !_vm.batchCompleted && !_vm.completingBatch},on:{\"click\":_vm.completeBatch}}),_c('dx-load-indicator',{attrs:{\"visible\":_vm.completingBatch}})],1)])]),_c('div',[(_vm.batch.BatchEvents && _vm.batch.BatchEvents.length)?_c('batch-event-details',{attrs:{\"batchEvents\":_vm.batch.BatchEvents}}):_vm._e()],1),_c('batch-rename',{attrs:{\"batch\":_vm.batch,\"visible\":_vm.showBatchRename},on:{\"update:visible\":function($event){_vm.showBatchRename=$event},\"hiding\":_vm.closeBatchRename}}),_c('batch-delete-data',{attrs:{\"showDialog\":_vm.showingDeleteBatchData,\"batch\":_vm.batch},on:{\"hidingDeleteBatchData\":_vm.hidingDeleteBatchData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"BatchEventDetailsContainer\"}},[_c('dx-load-panel',{attrs:{\"elementAttr\":{ class: 'batch-event-details-load-panel' },\"max-width\":\"100px\",\"width\":\"100px\",\"max-height\":\"100px\",\"height\":\"100px\",\"position\":{ my: 'top', at: 'top', of: '#BatchEventDetailsContainer' },\"visible\":_vm.updatingBatches,\"message\":\"Updating\"}}),_c('data-grid',{ref:\"batchEventDetailsDataGrid\",attrs:{\"custom-store-options\":_vm.dataStoreOptions,\"paging\":{ enabled: false },\"load-panel\":{ enabled: false }},on:{\"row-updating\":_vm.rowUpdating,\"save-shortcut-pressed\":_vm.saveEditData},scopedSlots:_vm._u([{key:\"processBatchEventCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"processBatchEventCellTemplate\"}},[(_vm.showProcessButton(data.data))?_c('dx-button',{attrs:{\"type\":\"default\"},on:{\"click\":function($event){return _vm.processBatchEvent(data.data.BatchId, data.data.BatchEventId)}}},[_vm._v(\"Process\")]):_vm._e()],1)}}])},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column',{attrs:{\"data-field\":\"BatchEventType\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"CreatedDate\",\"data-type\":\"datetime\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"ScheduledDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"ProcessedDate\",\"data-type\":\"datetime\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"StartDate\",\"data-type\":\"datetime\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"EndDate\",\"data-type\":\"datetime\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"allow-filtering\":false,\"cell-template\":\"processBatchEventCellTemplate\",\"allow-editing\":false}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { BatchEventDetailsDto } from '@/models/batch/BatchEventDetailsDto';\n\nexport class BatchEventService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '');\n }\n\n public async updateBatchEvent(batchEventId: Guid, batchEvent: BatchEventDetailsDto): Promise {\n return await this.client.getData(HttpMethodEnum.Post, `/api/batchevents/${batchEventId}/update-batch-event`, batchEvent);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { BatchEventDetailsDto } from '@/models/batch/BatchEventDetailsDto';\nimport { DataGrid } from '@questelservices/common-vue';\nimport DevExpress from 'devextreme';\nimport { DxColumn, DxEditing } from 'devextreme-vue/data-grid';\nimport { DxButton, DxLoadPanel } from 'devextreme-vue';\nimport { BatchService } from '../../service/BatchService';\nimport { BatchEventService } from '../../service/BatchEventService';\nimport dialog from 'devextreme/ui/dialog';\nimport _ from 'lodash';\nimport { BatchEventTypeEnum } from '@/models/batch/BatchEventTypeEnum';\n\n\n@Component({\n components: {\n DataGrid,\n DxColumn,\n DxButton,\n DxLoadPanel,\n DxEditing\n }\n})\nexport default class BatchEventDetails extends Vue {\n $refs: Vue['$refs'] & {\n batchEventDetailsDataGrid?: DataGrid;\n } = {};\n\n @Prop({ required: true })\n batchEvents!: Array;\n\n batchEventDetails: Array = this.batchEvents;\n\n batchService: BatchService = new BatchService();\n batchEventService: BatchEventService = new BatchEventService();\n\n updatingBatches: boolean = false;\n\n private get dxDataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.batchEventDetailsDataGrid as any).$refs.dxDataGrid.instance;\n }\n\n private get dataStoreOptions() : DevExpress.data.CustomStoreOptions {\n return {\n loadMode: 'raw',\n key: 'BatchId',\n load: () => { return this.batchEventDetails; },\n update: (key, values) => {\n return this.updateBatchEvent(key, values)\n .catch((e: any) => {\n if(e && e.Message) {\n throw e.Message;\n }\n throw \"An error occurred.\";\n });\n },\n }\n }\n\n async updateBatchEvent(batchId: Guid, batchEventDto: BatchEventDetailsDto)\n {\n // validate that batch event time is in between adjacent events \n let batchEventIndex = this.batchEvents.findIndex(be => be.BatchEventId == batchEventDto.BatchEventId);\n let prevBatchEvent = this.batchEvents[batchEventIndex - 1];\n let nextBatchEvent = this.batchEvents[batchEventIndex + 1];\n\n if (prevBatchEvent && prevBatchEvent.ScheduledDate > batchEventDto.ScheduledDate) {\n dialog.alert(\"The Scheduled Date of a batch event must occur after the previous event's Scheduled Date.\", \"Error\");\n return;\n }\n if (nextBatchEvent && nextBatchEvent.ScheduledDate < batchEventDto.ScheduledDate) {\n dialog.alert(\"The Scheduled Date of a batch event must occur before the next event's Scheduled Date.\", \"Error\");\n return;\n }\n\n\n this.batchEvents[batchEventIndex].ScheduledDate = batchEventDto.ScheduledDate;\n return this.batchEventService.updateBatchEvent(batchEventDto.BatchEventId, batchEventDto)\n }\n\n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData); \n }\n\n saveEditData(): void {\n if (this.dxDataGrid) {\n this.dxDataGrid.saveEditData();\n }\n }\n\n async processBatchEvent(batchId: Guid, batchEventId: Guid) {\n this.updatingBatches = true;\n await this.batchService.processBatchEvent(batchEventId).catch(await this.processBatchEventError);\n this.batchEventDetails = await this.batchService.getBatchEvents(batchId);\n await this.dxDataGrid.refresh(true);\n this.updatingBatches = false;\n }\n\n async processBatchEventError(error: any) {\n let message = 'An error occurred processing the batch event';\n message += error.Message ? ': ' + error.Message : '.';\n await dialog.alert(message, 'Error');\n }\n\n showProcessButton(batchEvent: BatchEventDetailsDto)\n {\n let result = false;\n\n if (batchEvent.ProcessedDate == null &&\n (batchEvent.BatchEventTypeId == BatchEventTypeEnum.DataDeadline || \n batchEvent.BatchEventTypeId == BatchEventTypeEnum.AutoCoding))\n {\n result = true;\n }\n \n return result;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-event-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-event-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-event-details.vue?vue&type=template&id=b2a8a484&\"\nimport script from \"./batch-event-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-event-details.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('popup',{attrs:{\"width\":800,\"height\":750,\"show-title\":true,\"title\":\"Delete Batch Data\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.deleteData}},[_vm._v(\" \\n >\\n \"),_c('dx-load-panel',{attrs:{\"visible\":_vm.deletingData},on:{\"update:visible\":function($event){_vm.deletingData=$event}}}),_c('dx-tree-view',{ref:\"treeViewRef\",attrs:{\"id\":\"treeview\",\"items\":_vm.treeListItems,\"show-check-boxes-mode\":\"selectAll\",\"selection-mode\":\"multiple\",\"select-nodes-recursive\":true,\"select-by-click\":true}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Delete Data', type: 'default', stylingMode: 'contained', onClick: _vm.deleteData },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingDialog },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { BatchDetailsDto } from '../../models/batch/BatchDetailsDto';\nimport BatchEventDetails from './batch-event-details.vue';\nimport { BatchService } from '../../service/BatchService';\nimport { DxButton, DxLoadIndicator } from 'devextreme-vue';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport DxToolbar from 'devextreme-vue/toolbar';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxTreeView } from 'devextreme-vue/tree-view';\nimport { BatchDataDeleteDto, BatchDataDeleteFileDto, BatchDataDeleteAgentInvoiceDto } from '../../models/batch/BatchDataDeleteDto';\nimport { BatchDataDeleteRequestDto } from '../../models/batch/BatchDataDeleteRequestDto';\nimport { confirm, alert } from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\n\n@Component({\n components: {\n BatchEventDetails,\n DxButton,\n DxLoadIndicator,\n DxLoadPanel,\n DxTreeView,\n DxToolbar,\n DxToolbarItem, \n Popup\n }\n})\nexport default class BatchDeleteData extends Vue {\n $refs: Vue['$refs'] & { \n treeViewRef?: DxTreeView;\n } = {};\n\n @Prop({ default: false })\n showDialog!: boolean;\n\n @Prop({ required: true })\n batch!: BatchDetailsDto;\n\n @Watch(\"showDialog\")\n async onShowPropChange(value: boolean, oldValue: boolean) {\n if (value) {\n this.loadData();\n }\n }\n \n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value: boolean) {\n this.hidingDialog();\n }\n\n get treeView() {\n return (this.$refs.treeViewRef as any).instance; \n }\n\n treeListItems: Array = [];\n batchDataDeleteDto: any;\n deletingData: boolean = false;\n\n hidingDialog() {\n this.$emit(\"hidingDeleteBatchData\");\n this.treeListItems = [];\n }\n\n generateTree(batchDataDeleteDto: BatchDataDeleteDto) {\n let fileItems: any[] = [];\n\n batchDataDeleteDto.Files.forEach(file => {\n let agentInvoiceItems: any[] = [];\n file.AgentInvoices.forEach(agentInvoice => {\n agentInvoiceItems.push({\n id: agentInvoice.ParentFileParseUploadFileId + agentInvoice.AgentId + agentInvoice.InvoiceNumber,\n text: `${agentInvoice.AgentName}, ${agentInvoice.InvoiceNumber}`,\n type: \"Invoice\",\n AgentId: agentInvoice.AgentId,\n InvoiceNumber: agentInvoice.InvoiceNumber,\n ParentFileParseUploadFileId: agentInvoice.ParentFileParseUploadFileId\n });\n });\n\n fileItems.push({\n id: file.FileParseUploadFileId,\n text: file.Filename,\n items: agentInvoiceItems,\n type: \"File\"\n });\n });\n\n this.treeListItems = [\n {\n id: batchDataDeleteDto.BatchId,\n text: batchDataDeleteDto.BatchName,\n items: fileItems,\n type: \"Batch\"\n } \n ];\n }\n\n deleteData() { \n if (this.$refs.treeViewRef) { \n let selectedKeys = (this.$refs.treeViewRef as any).instance.getSelectedNodesKeys();\n\n if (selectedKeys.length === 0) {\n alert(\"Please select an item to delete\", \"Error\");\n return;\n }\n\n confirm(\"Are you sure you want to delete the selected items?\", \"Confirm Delete\")\n .then(result => {\n if (result) {\n let itemsArray = (this.$refs.treeViewRef as any).instance._dataAdapter._dataStructure;\n let selectedItems = itemsArray.filter((i: any) => i.internalFields.selected && selectedKeys.find((k: string) => k == i.internalFields.parentKey) == undefined); \n \n let batchDataDeleteDto: BatchDataDeleteRequestDto = {\n ClientId: this.batch.ClientId,\n BatchId: undefined,\n FilesToDelete: [],\n AgentInvoicesToDelete: []\n };\n\n if (selectedKeys.some((k: string) => k == this.batch.BatchId)) {\n batchDataDeleteDto.BatchId = this.batch.BatchId;\n }\n else {\n let fileItems = selectedItems.filter((i: any) => i.type == \"File\"); \n fileItems.forEach((file: any) => {\n let fileDto: BatchDataDeleteFileDto = {\n FileParseUploadFileId: file.id,\n Filename: file.text,\n AgentInvoices: []\n };\n batchDataDeleteDto.FilesToDelete.push(fileDto);\n });\n\n let invoiceItems = selectedItems.filter((i: any) => i.type == \"Invoice\");\n invoiceItems.forEach((invoice: any) => {\n let invoiceDto: BatchDataDeleteAgentInvoiceDto = {\n AgentId: invoice.AgentId,\n AgentName: \"\",\n InvoiceNumber: invoice.InvoiceNumber,\n ParentFileParseUploadFileId: invoice.ParentFileParseUploadFileId \n };\n batchDataDeleteDto.AgentInvoicesToDelete.push(invoiceDto);\n }); \n }\n\n let batchService = new BatchService();\n this.deletingData = true;\n\n batchService.deleteBatchData(batchDataDeleteDto)\n .then(result => {\n this.hidingDialog();\n notify(\"Batch data successfully deleted.\", \"success\", 5000);\n })\n .catch(reason => {\n alert(\"Deleting batch data failed. Please contact support.\", \"Delete Failed\");\n })\n .finally(() => {\n this.deletingData = false;\n });\n } \n }\n ); \n } \n }\n\n async loadData() {\n let batchService = new BatchService();\n this.batchDataDeleteDto = await batchService.getBatchDataDeleteTree(this.batch.BatchId)\n .then(result => this.generateTree(result))\n }\n\n constructor() {\n super(); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-delete-data.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-delete-data.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-delete-data.vue?vue&type=template&id=4a39286c&\"\nimport script from \"./batch-delete-data.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-delete-data.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"title\":_vm.title,\"visible\":_vm.visible,\"width\":\"320\",\"height\":\"180\"},on:{\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding,\"hidden\":_vm.onHidden}},[_c('dx-validation-group',{ref:_vm.validationGroupRefKey},[_c('dx-text-box',{attrs:{\"max-length\":200,\"placeholder\":\"Enter a name\",\"value\":_vm.batchName,\"value-change-event\":\"keyup\"},on:{\"update:value\":function($event){_vm.batchName=$event}}},[_c('dx-validator',[_c('dx-required-rule'),_c('dx-async-rule',{attrs:{\"ignore-empty-value\":true,\"validation-callback\":_vm.validateBatchNameAsync}})],1)],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.saveButtonOptions}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.cancelButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTextBox } from 'devextreme-vue/text-box';\nimport { DxValidator, DxRequiredRule, DxAsyncRule } from 'devextreme-vue/validator';\nimport { DxValidationGroup } from 'devextreme-vue/validation-group';\nimport { BatchDetailsDto } from '@/models/batch/BatchDetailsDto';\nimport { BatchService } from '@/service/BatchService';\nimport { BatchNameValidationParameters } from '@/models/batch/BatchNameValidationParameters';\nimport { ValidationResultDto } from '@/models/ValidationResultDto';\nimport { BatchDto } from '@/models/batch/BatchDto';\n\n@Component({\n components: {\n DxAsyncRule,\n DxPopup,\n DxRequiredRule,\n DxTextBox,\n DxToolbarItem,\n DxValidationGroup,\n DxValidator\n }\n})\nexport default class BatchRename extends Vue {\n private readonly batchService: BatchService = new BatchService();\n readonly validationGroupRefKey: string = 'validationGroup';\n batchName: string | null = null;\n private bypassServerValidation: boolean = true;\n\n @Prop({ required: true })\n batch!: BatchDetailsDto;\n\n @Prop({ required: true })\n visible!: boolean;\n\n get title() {\n return `Rename Batch ${this.batch.BatchName}`;\n }\n\n get saveButtonOptions() {\n return {\n text: 'Save',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.saveAndClose,\n useSubmitBehavior: true\n };\n }\n\n get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancelAndClose\n };\n }\n\n get validationGroup() {\n let validationGroupRef = this.$refs[this.validationGroupRefKey];\n if (validationGroupRef != null) {\n return (validationGroupRef as DxValidationGroup).instance;\n }\n\n return undefined;\n }\n\n created() {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n validateBatchNameAsync(params: any) {\n if (this.bypassServerValidation || params.value === this.batch.BatchName) {\n return Promise.resolve({\n isValid: true,\n message: ''\n });\n }\n\n let parameters: BatchNameValidationParameters = {\n ClientId: this.batch.ClientId,\n BatchName: params.value\n };\n\n return this.batchService.validateBatchName(parameters)\n .then(result => {\n return {\n isValid: result.IsValid,\n message: result.Message\n };\n })\n .catch(reason => {\n return {\n isValid: false,\n message: 'An error occurred validating the batch name'\n };\n });\n }\n\n private saveAndClose() {\n if (this.validationGroup) {\n this.bypassServerValidation = false;\n\n let result = this.validationGroup.validate() as any;\n if (result.status === 'pending') {\n result.complete.then((validationResult: any) => {\n if (validationResult.isValid === true) {\n this.submitSaveAndClose();\n }\n });\n } else if (result.isValid === true) {\n this.submitSaveAndClose();\n }\n\n this.bypassServerValidation = true;\n } else {\n this.submitSaveAndClose();\n }\n }\n\n private submitSaveAndClose() {\n this.save();\n this.close();\n }\n\n private cancelAndClose() {\n this.close();\n }\n\n private save() {\n let changesMade = false;\n\n if (this.batchName != null && this.batchName !== this.batch.BatchName) {\n this.batch.BatchName = this.batchName;\n changesMade = true;\n }\n\n if (changesMade) {\n let data: BatchDto = {\n BatchId: this.batch.BatchId,\n BatchName: this.batch.BatchName,\n BatchTypeId: this.batch.BatchTypeId\n };\n\n this.batchService.updateBatch(this.batch.BatchId, data);\n }\n }\n\n onShowing() {\n this.initialize();\n }\n\n onHiding() {\n this.close();\n }\n\n onHidden() {\n this.reset();\n }\n\n private initialize() {\n this.batchName = this.batch.BatchName;\n this.bypassServerValidation = true;\n }\n\n private reset() {\n this.batchName = null;\n this.bypassServerValidation = true;\n }\n\n private close() {\n this.$emit('hiding');\n }\n\n private onKeydown(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private onKeyup(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.saveAndClose();\n }\n }\n\n private isSaveShortcut(e: KeyboardEvent) {\n return e.key === 'Enter' && (e.ctrlKey || e.shiftKey);\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-rename.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-rename.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-rename.vue?vue&type=template&id=a845b5c6&\"\nimport script from \"./batch-rename.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-rename.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Prop } from 'vue-property-decorator';\nimport { BatchDetailsDto } from '../../models/batch/BatchDetailsDto';\nimport BatchEventDetails from './batch-event-details.vue';\nimport { BatchService } from '../../service/BatchService';\nimport BatchDeleteData from './batch-delete-data.vue';\nimport { DxButton, DxLoadIndicator } from 'devextreme-vue';\nimport dialog from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport BatchRename from '@/components/batch/batch-rename.vue';\n\n@Component({\n components: {\n BatchEventDetails,\n BatchRename,\n BatchDeleteData,\n DxButton,\n DxLoadIndicator\n }\n})\nexport default class BatchDetails extends Vue {\n batchService: BatchService = new BatchService();\n showBatchRename: boolean = false;\n\n @Prop({ required: true })\n batch!: BatchDetailsDto;\n\n startingAutoCoding: boolean = false;\n async startAutoCoding() {\n this.startingAutoCoding = true;\n await this.batchService.startAutoCoding(this.batch.BatchId)\n .then(this.startAutoCodingSuccess)\n .catch(await this.startAutoCodingError);\n this.startingAutoCoding = false;\n }\n\n startingAzureCoding: boolean = false;\n async startAzureCoding() {\n this.startingAzureCoding = true;\n await this.batchService.startAzureCoding(this.batch.BatchId)\n .then(this.startAzureCodingSuccess)\n .catch(await this.startAzureCodingError);\n this.startingAzureCoding = false;\n }\n\n startingPostProcessing: boolean = false;\n async startPostProcessing() {\n this.startingPostProcessing = true;\n await this.batchService.startPostProcessing(this.batch.BatchId)\n .then(this.startPostProcessingSuccess)\n .catch(await this.startPostProcessingError);\n this.startingPostProcessing = false;\n }\n\n batchCompleted: boolean = false;\n completingBatch: boolean = false;\n async completeBatch() {\n this.completingBatch = true;\n await this.batchService.completeBatch(this.batch.BatchId)\n .then(() => { this.showMessage(null, 'The batch has been completed'); this.batchCompleted = true })\n .catch(await this.completeBatchError);\n this.completingBatch = false;\n }\n\n showingDeleteBatchData: boolean = false;\n showDeleteBatchData() {\n this.showingDeleteBatchData = true;\n }\n\n hidingDeleteBatchData() {\n this.showingDeleteBatchData = false;\n this.$emit(\"hidingDeleteBatchData\");\n }\n\n renameBatch() {\n this.showBatchRename = true;\n }\n\n closeBatchRename() {\n this.showBatchRename = false;\n }\n\n startAutoCodingSuccess() {\n notify('Auto coding started', 'success', 3000);\n }\n\n startAzureCodingSuccess() {\n notify('Azure auto coding started', 'success', 3000);\n }\n\n startPostProcessingSuccess() {\n notify('Post processing started', 'success', 3000);\n }\n\n async startAutoCodingError(error: any) {\n await this.showMessage(error, 'An error occurred starting auto coding');\n }\n\n async startAzureCodingError(error: any) {\n await this.showMessage(error, 'An error occurred starting azure auto coding');\n }\n\n async startPostProcessingError(error: any) {\n await this.showMessage(error, 'An error occurred starting post processing');\n }\n\n async completeBatchError(error: any) {\n await this.showMessage(error, 'An error occurred completing the batch');\n }\n\n async showMessage(error: any, message: any) {\n let type = error ? 'Error' : 'Success';\n\n if (error) {\n message += error.Message ? ': ' + error.Message : '.';\n }\n\n await dialog.alert(message, type);\n }\n}\n","import { SelectOption } from '../SelectOption';\n\nexport enum BatchTypeEnum {\n Production = 1,\n SavingsReport = 2\n}\n\nexport enum BatchTypeNameEnum {\n Production = 'Production',\n SavingsReport = 'Savings Report'\n }\n\nexport const BatchTypes: SelectOption[] = [\n { value: BatchTypeEnum.Production, text: BatchTypeNameEnum.Production },\n { value: BatchTypeEnum.SavingsReport, text: BatchTypeNameEnum.SavingsReport }\n];","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-details.vue?vue&type=template&id=0992d8f8&scoped=true&\"\nimport script from \"./batch-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./batch-details.vue?vue&type=style&index=0&id=0992d8f8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0992d8f8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { BatchService } from '@/service/BatchService';\nimport { BatchDetailsDto } from '@/models/batch/BatchDetailsDto';\nimport BatchDetails from '@/components/batch/batch-details.vue';\nimport { BatchTypes } from '../../models/batch/BatchTypeEnum';\nimport { DxSelectBox } from 'devextreme-vue';\nimport { SelectOption } from '@/models/SelectOption';\nimport { BatchDto } from '@/models/batch/BatchDto';\nimport { alert } from 'devextreme/ui/dialog'; \n\n@Component({\n components: {\n PageTitle,\n BatchDetails,\n DxSelectBox\n }\n})\nexport default class Batch extends Vue {\n batch: BatchDetailsDto | null = null\n batchTypes: SelectOption[] = BatchTypes;\n\n private get batchId(): Guid | undefined {\n return this.$route.params.id;\n }\n\n private get batchTypeId(): any {\n return this.batch != null ? this.batch.BatchTypeId : undefined;\n }\n\n private set batchTypeId(batchTypeId: any) {\n if (this.batch !== null ) {\n this.batch.BatchTypeId = batchTypeId;\n }\n }\n\n private get batchName(): string | undefined {\n return this.batch != null ? this.batch.BatchName : undefined;\n }\n\n\n private batchService: BatchService = new BatchService();\n\n async mounted() {\n if(this.batchId) {\n this.batch = await this.batchService.getBatchDetails(this.batchId); \n // Set a client id as a route parameter so the breadcrumb will load the selected client\n this.$route.params['clientId'] = this.batch.ClientId;\n }\n }\n\n async hidingDeleteBatchData() {\n if(this.batchId) {\n this.batch = await this.batchService.getBatchDetails(this.batchId); \n } \n }\n\n private onBatchTypeChanged(event: any) {\n if (event.previousValue === undefined) {\n return;\n } \n\n if (this.batch != undefined) {\n let batchDto: BatchDto = {\n BatchId: this.batch.BatchId,\n BatchName: this.batch.BatchName,\n BatchTypeId: this.batch.BatchTypeId\n };\n\n this.batchService.updateBatch(this.batch.BatchId, batchDto)\n .then(result => {\n let batchTypeName = this.batchTypes.filter(bt => bt.value == result.BatchTypeId)[0].text;\n let message = `Batch Type set to ${batchTypeName} for Batch ${result.BatchName}.`;\n alert(message, 'Batch Type Updated');\n })\n .catch(error => {\n let message = `There was an error setting the Batch Type for Batch ${this.batchName}.`;\n alert(message, 'Error');\n });\n } \n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch.vue?vue&type=template&id=b85ef9c8&scoped=true&\"\nimport script from \"./batch.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./batch.vue?vue&type=style&index=0&id=b85ef9c8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b85ef9c8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Client Batches\")]),_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('br'),(_vm.selectedClient)?_c('div',{attrs:{\"id\":\"ClientBatchesContainer\"}},[_c('div',[_c('dx-button',{attrs:{\"text\":\"Add New Client Batch\",\"visible\":!_vm.addingClientBatch},on:{\"click\":_vm.addNewClientBatch}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.addingClientBatch,\"width\":\"100px\",\"height\":\"100px\",\"shading-color\":\"rgb(150, 150, 150,0.4)\",\"position\":{ my: 'middle', at: 'middle', of: '#ClientBatchesContainer' }}})],1),_c('br'),_c('batch-list',{attrs:{\"batches\":_vm.batches,\"showClient\":false}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{ref:\"batchListDataGrid\",attrs:{\"custom-store-options\":_vm.dataStoreOptions,\"pageSize\":10},scopedSlots:_vm._u([{key:\"batchNameTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"batchNameTemplate\"}},[_c('router-link',{attrs:{\"to\":{ name: 'batch', params: { id: data.data.BatchId }}}},[_vm._v(\"\\n \"+_vm._s(data.data.BatchName)+\"\\n \")])],1)}}])},[(_vm.showClient)?_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"data-type\":\"string\"}}):_vm._e(),_c('dx-column',{attrs:{\"data-field\":\"BatchName\",\"cell-template\":\"batchNameTemplate\"}}),_c('dx-column',{attrs:{\"data-field\":\"BatchStartDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"BatchClosedDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"MatterCount\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"LineItemCount\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"BatchTypeId\",\"caption\":\"Batch Type\",\"allow-filtering\":false,\"alignment\":\"right\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.batchTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport { Prop, Component, Watch } from 'vue-property-decorator';\nimport DevExpress from 'devextreme';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { BatchDetailsDto } from '../../models/batch/BatchDetailsDto';\nimport { BatchTypes } from '../../models/batch/BatchTypeEnum';\nimport { DxColumn, DxLookup } from 'devextreme-vue/data-grid';\nimport { SelectOption } from '@/models/SelectOption';\n\n@Component({\n components: {\n DataGrid,\n DxColumn,\n DxLookup\n }\n})\nexport default class BatchList extends Vue {\n $refs: Vue['$refs'] & {\n batchListDataGrid?: DataGrid;\n } = {};\n\n @Prop({ required: true })\n batches!: Array;\n\n @Prop({ default: true })\n showClient!: boolean;\n\n batchTypes: Array = BatchTypes;\n\n private get dxDataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.batchListDataGrid as any).$refs.dxDataGrid.instance;\n }\n\n @Watch('batches')\n private batchesChanged(val: any, oldVal: any) {\n this.dxDataGrid.refresh();\n }\n\n private get dataStoreOptions() : DevExpress.data.CustomStoreOptions {\n return {\n key: 'BatchId',\n loadMode: 'raw',\n load: () => { return this.batches }\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-list.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-list.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-list.vue?vue&type=template&id=d9f14b2a&\"\nimport script from \"./batch-list.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-list.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxSelectBox, DxButton, DxLoadPanel } from 'devextreme-vue';\nimport { ClientService } from '../../service/ClientService';\nimport { SelectOption } from '../../models/SelectOption';\nimport { BatchDetailsDto } from '../../models/batch/BatchDetailsDto';\nimport { BatchService } from '../../service/BatchService';\nimport BatchList from '../../components/batch/batch-list.vue';\nimport dialog from 'devextreme/ui/dialog';\n\n@Component({\n components: {\n PageTitle,\n DxSelectBox,\n BatchList,\n DxButton,\n DxLoadPanel\n }\n})\nexport default class ClientBatches extends Vue {\n clients: Array = [];\n selectedClient: Guid = '';\n batches: Array = [];\n\n batchService: BatchService = new BatchService();\n\n private get routeClientId() : Guid | undefined {\n return this.$route.params['clientId'];\n }\n\n @Watch('routeClientId') \n private routeClientIdChange(){\n this.setClientFromRoute();\n }\n\n private setClientFromRoute() {\n // If the route has a parameter for the clientId, select it\n if(this.routeClientId && this.selectedClient !== this.routeClientId) {\n this.selectedClient = this.routeClientId;\n } else if (!this.routeClientId) {\n this.selectedClient = '';\n }\n }\n\n mounted() {\n this.loadData();\n this.setClientFromRoute();\n }\n\n async loadData() {\n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => { return { text: c.ClientName, value: c.ClientId } });\n }\n\n @Watch('selectedClient')\n private async clientChange() {\n this.batches = [];\n if(this.selectedClient) {\n if(this.routeClientId !== this.selectedClient) {\n this.$router.push({ name: 'client-batches', params: { clientId: this.selectedClient } });\n }\n await this.loadBatches();\n }\n }\n\n private async loadBatches() {\n this.batches = await this.batchService.getClientBatches(this.selectedClient);\n }\n\n addingClientBatch: boolean = false;\n \n async addNewClientBatch() {\n let confirm = await dialog.confirm('Adding a new client batch will close any existing batch. Would you like to continue?', 'Confirm');\n if(confirm) {\n this.addingClientBatch = true;\n await this.batchService.addNewBatch(this.selectedClient).catch(await this.addNewClientBatchError);\n await this.loadBatches();\n this.addingClientBatch = false;\n }\n }\n\n async addNewClientBatchError(error: any) {\n let message = 'An error occurred adding a new client batch';\n message += error.Message ? ': ' + error.Message : '.';\n await dialog.alert(message, 'Error');\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-batches.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-batches.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-batches.vue?vue&type=template&id=1e3e248d&\"\nimport script from \"./client-batches.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-batches.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Client Group Data\")]),_c('client-group-data-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticStyle:{\"margin-bottom\":\"5px\"}},[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}})],1),(_vm.selectedClient)?_c('data-grid',{attrs:{\"custom-store-options\":_vm.clientGroupDataCustomStoreOptions,\"pageSize\":25},on:{\"init-new-row\":_vm.initNewRow,\"row-updating\":_vm.rowUpdating,\"initialized\":_vm.dataGridInitialized,\"save-shortcut-pressed\":_vm.saveEditData,\"editing-start\":_vm.editingStart}},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"ClientGroupDataGrid\"}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-updating\":true,\"allow-deleting\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Client Group Data Edit\",\"width\":\"40%\",\"height\":750,\"on-showing\":_vm.popupShowing,\"on-hiding\":_vm.refreshDropdownData}}),_c('dx-form',{attrs:{\"col-count\":2,\"min-col-width\":233}},[_c('dx-group-item',[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"is-required\":true,\"disabled\":true,\"editor-type\":\"dxSelectBox\",\"label\":{ text: 'Client Name' },\"editor-options\":{ readOnly: true, value: _vm.selectedClient, dataSource: _vm.clients, displayExpr: 'text', valueExpr: 'value' }}}),_c('dx-item',{attrs:{\"data-field\":\"GroupName\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":{ items: _vm.dropdownData.GroupName, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"SubGroupName\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.SubGroupName, showClearButton: true, acceptCustomValue: true, maxLength: 50 }}}),_c('dx-item',{attrs:{\"data-field\":\"CorpName\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CorpName, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"AddressLine1\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.AddressLine1, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"AddressLine2\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.AddressLine2, showClearButton: true, acceptCustomValue: true }}})],1),_c('dx-group-item',[_c('dx-item',{attrs:{\"data-field\":\"ProfitCenter\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.ProfitCenter, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"CostCenter\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CostCenter, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"GLAccount\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.GLAccount, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"KCO\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.KCO, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"CO\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CO, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"BA\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.BA, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"ANI\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.ANI, showClearButton: true, acceptCustomValue: true }}}),_c('dx-item',{attrs:{\"data-field\":\"CompanyNo\",\"editor-type\":\"dxSelectBox\",\"editor-options\":{ dataSource: _vm.dropdownData.CompanyNo, showClearButton: true, acceptCustomValue: true }}})],1)],1)],1),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ClientGroupId\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"GroupName\",\"caption\":\"Group Name\",\"allow-filtering\":true,\"fixed\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"SubGroupName\",\"caption\":\"Subgroup Name\",\"allow-filtering\":true,\"fixed\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CorpName\",\"caption\":\"Corp Name\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AddressLine1\",\"caption\":\"Address Line 1\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"AddressLine2\",\"caption\":\"Address Line 2\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"KCO\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CO\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"BA\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ANI\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"ProfitCenter\",\"caption\":\"Profit Center\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CompanyNo\",\"caption\":\"Company No\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"GLAccount\",\"caption\":\"GL Account\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"data-field\":\"CostCenter\",\"caption\":\"Cost Center\",\"allow-filtering\":true}}),_c('dx-column',{attrs:{\"data-type\":\"string\",\"type\":\"buttons\",\"caption\":\"\",\"data-field\":\"ClientId\",\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"filter-values\":[ _vm.selectedClient ]}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ClientGroupDto } from '@/models/client/ClientGroupDto';\nimport { ClientGroupDropdownDto } from '@/models/client/ClientGroupDropdownDto';\nimport { CrudServiceBase } from './CrudServiceBase';\n\nexport class ClientGroupService extends CrudServiceBase { \n constructor() {\n super('/api/ClientGroups');\n }\n\n async getDropdownData(clientId: Guid) : Promise {\n return await this.client.get(`/dropdown/${clientId}`);\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { ClientGroupService } from '../../service/ClientGroupService';\nimport { ClientGroupDropdownDto } from '../../models/client/ClientGroupDropdownDto';\nimport { ClientService } from '../../service/ClientService';\nimport { DataGrid } from '@questelservices/common-vue';\nimport {\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPopup,\n DxStateStoring\n} from 'devextreme-vue/data-grid';\nimport { DxItem, DxGroupItem, DxButtonItem } from 'devextreme-vue/form';\nimport { DxDropDownBox, DxSelectBox, DxButton, DxTextBox, DxCheckBox } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { Dictionary } from 'vue-router/types/router';\nimport _ from 'lodash';\n\n@Component({\n components: {\n DxDropDownBox,\n DxSelectBox,\n DataGrid,\n DxColumn,\n DxEditing,\n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxItem,\n DxGroupItem,\n DxButtonItem,\n DxLookup,\n DxPopup,\n DxStateStoring,\n DxButton,\n DxTextBox,\n DxCheckBox\n }\n})\nexport default class ClientGroupDataGrid extends Vue {\n clients: Array<{ text: string; value: Guid }> = [];\n selectedClient: Guid = '';\n dataGrid: any;\n clientGroupDataCustomStoreOptions: DevExpress.data.CustomStoreOptions;\n clientGroupService: ClientGroupService = new ClientGroupService();\n dropdownData: Map> = new Map>();\n\n constructor() {\n super();\n this.loadData();\n this.clientGroupDataCustomStoreOptions = {\n key: 'ClientGroupId',\n load: loadOptions => this.clientGroupService.search(loadOptions).catch(this.handleResponseError),\n insert: values => this.clientGroupService.create(values).catch(this.handleResponseError),\n update: (key, values) => this.clientGroupService.edit(key, values).catch(this.handleResponseError),\n remove: key => this.clientGroupService.delete(key).catch(this.handleResponseError)\n };\n }\n\n @Watch('selectedClient')\n onSelectedClientChange() { \n this.refreshDropdownData(); \n }\n\n async loadData() { \n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n }); \n }\n\n handleResponseError(result: any) {\n let message = 'An unknown error occurred.';\n if (result && result.Message) {\n message = result.Message;\n\n let index = message.indexOf(' (Error');\n if (index > -1) {\n message = message.substring(0, index);\n }\n }\n\n throw Error(message);\n }\n\n async refreshDropdownData() {\n if (this.selectedClient) {\n this.dropdownData = (await this.clientGroupService.getDropdownData(this.selectedClient)).DropdownData; \n } \n }\n\n popupShowing(e: any) {\n // Couldn't find a configuration option for this, so changing the style of Save and Cancel when loading the dialog.\n var toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n }\n\n initNewRow(e: any) { \n e.data = {\n ClientId: this.selectedClient\n };\n }\n\n editingStart(e: any) {\n if (!e.data.ClientId) {\n e.data.ClientId = '';\n }\n }\n\n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = _.merge({}, e.oldData, e.newData);\n }\n\n dataGridInitialized(e: any): void {\n this.dataGrid = e.component;\n }\n\n saveEditData(): void {\n if (this.dataGrid) {\n this.dataGrid.focus();\n this.dataGrid.saveEditData();\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-group-data-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-group-data-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-group-data-grid.vue?vue&type=template&id=87055b50&\"\nimport script from \"./client-group-data-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-group-data-grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport ClientGroupDataGrid from '../components/client-group-data/client-group-data-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n ClientGroupDataGrid\n }\n})\nexport default class ClientGroupData extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-group-data.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-group-data.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-group-data.vue?vue&type=template&id=d624d110&\"\nimport script from \"./client-group-data.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-group-data.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(_vm._s(_vm.title))]),_c('div',[_vm._m(0),_c('dx-button',{attrs:{\"text\":\"Email Support\",\"type\":\"default\"},on:{\"click\":_vm.onEmailSupport}})],1),(false)?_c('div',[(_vm.errorMessage)?_c('div',[_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e(),(_vm.submitted)?_c('div',[_c('h3',[_vm._v(\"Thank you.\")]),_c('div',[_vm._v(\"The email has been sent.\")])]):_vm._e(),(!_vm.submitted)?_c('div',[_c('form',{on:{\"submit\":_vm.onSubmit}},[_c('dx-form',{ref:\"form\",attrs:{\"form-data\":_vm.formData,\"show-validation-summary\":true,\"validation-group\":\"helpData\"},on:{\"update:formData\":function($event){_vm.formData=$event},\"update:form-data\":function($event){_vm.formData=$event}}},[_c('dx-simple-item',{attrs:{\"data-field\":\"FirstName\"}},[_c('dx-required-rule',{attrs:{\"message\":\"Please enter your first name\"}})],1),_c('dx-simple-item',{attrs:{\"data-field\":\"LastName\"}},[_c('dx-required-rule',{attrs:{\"message\":\"Please enter your last name\"}})],1),_c('dx-simple-item',{attrs:{\"data-field\":\"Company\"}},[_c('dx-required-rule',{attrs:{\"message\":\"Please enter your company\"}})],1),_c('dx-simple-item',{attrs:{\"data-field\":\"Email\"}},[_c('dx-required-rule',{attrs:{\"message\":\"Please enter your email\"}}),_c('dx-email-rule',{attrs:{\"message\":\"Please enter a valid email\"}})],1),_c('dx-simple-item',{attrs:{\"data-field\":\"Phone\"}}),(false)?_c('dx-simple-item',{attrs:{\"data-field\":\"Country\",\"editor-type\":\"dxSelectBox\",\"editor-options\":_vm.countryEditorOptions}}):_vm._e(),_c('dx-simple-item',{attrs:{\"data-field\":\"Message\"}},[_c('dx-required-rule',{attrs:{\"message\":\"Please enter a message\"}})],1),_c('dx-button-item',{attrs:{\"horizontal-alignment\":\"left\"}},[_c('dx-button-options',{attrs:{\"disabled\":_vm.isSubmitting,\"text\":\"Submit\",\"type\":\"default\",\"use-submit-behavior\":true}})],1)],1),_c('dx-load-indicator',{attrs:{\"visible\":_vm.isSubmitting}})],1)]):_vm._e()]):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-bottom\":\"5px\"}},[_c('em',[_vm._v(\"Please describe the issue in as much detail as possible, and include a screenshot if applicable.\")])])}]\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { HelpFormDto } from '../models/help/HelpFormDto';\n\nexport class HelpService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/help');\n }\n\n public async SubmitForm(formData: HelpFormDto): Promise> {\n return await this.client.postJson('', formData);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Countries } from '@questelservices/common';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxButton } from 'devextreme-vue';\nimport DxForm, {\n DxSimpleItem,\n DxButtonItem,\n DxButtonOptions,\n DxRequiredRule,\n DxPatternRule,\n DxEmailRule\n} from 'devextreme-vue/form';\nimport { DxLoadIndicator } from 'devextreme-vue/load-indicator';\nimport { HelpFormDto } from '../models/help/HelpFormDto';\nimport { HelpService } from '../service/HelpService';\n\n@Component({\n components: {\n PageTitle,\n DxButton,\n DxForm,\n DxSimpleItem,\n DxButtonItem,\n DxButtonOptions,\n DxRequiredRule,\n DxPatternRule,\n DxEmailRule,\n DxLoadIndicator\n }\n})\nexport default class Help extends Vue {\n private isSubmitting: boolean = false;\n private submitted: boolean = false;\n private errorMessage: string = '';\n private helpService: HelpService = new HelpService();\n\n @Prop({ default: 'Help' })\n public readonly title!: string;\n\n private get formData(): HelpFormDto {\n return {\n FirstName: '',\n LastName: '',\n Company: '',\n Email: '',\n Message: ''\n };\n }\n\n private get countryEditorOptions() {\n return {\n dataSource: this.countries,\n displayExpr: 'Name',\n searchEnabled: true,\n searchExpr: 'Name',\n valueExpr: 'Name'\n };\n }\n\n private get countries() {\n return Countries;\n }\n\n private onEmailSupport(e: any): void {\n window.open('mailto:QuestelServicesSupport@questel.com?subject=Questel%20Services%20Support%20Request', '_self');\n }\n\n private onSubmit(e: any): void {\n this.errorMessage = '';\n this.isSubmitting = true;\n\n this.helpService.SubmitForm(this.formData)\n .then(this.handleSuccessfulSubmission)\n .catch(this.handleFailedSubmission)\n .finally(() => {\n this.isSubmitting = false;\n });\n\n e.preventDefault();\n }\n\n private get form() {\n return (this.$refs['form'] as any).instance;\n }\n\n private handleSuccessfulSubmission(): void {\n if (this.form) {\n this.form.resetValues();\n }\n \n this.submitted = true;\n }\n\n private handleFailedSubmission(result: any): void {\n this.errorMessage = result.Message ? result.Message : 'An error occurred while submitting the form.';\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./help.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./help.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./help.vue?vue&type=template&id=2fc9200d&scoped=true&\"\nimport script from \"./help.vue?vue&type=script&lang=ts&\"\nexport * from \"./help.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./help.vue?vue&type=style&index=0&id=2fc9200d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fc9200d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Incomplete Uploads\")]),_c('file-parse-uploads',{attrs:{\"complete\":false}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"file-parse-uploads-select-box\"},[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.fileParseUploadsDataSource,\"display-expr\":_vm.fileParseUploadDisplayExpression,\"value\":_vm.selectedUpload,\"show-clear-button\":true,\"width\":\"650\",\"placeholder\":\"Select an upload\",\"disabled\":_vm.loading},on:{\"update:value\":function($event){_vm.selectedUpload=$event}}})],1),(_vm.selectedUpload != null)?_c('div',{staticClass:\"action-buttons\"},[_c('dx-button',{attrs:{\"type\":\"default\",\"text\":\"Complete\",\"element-attr\":{ class: 'action-button' },\"disabled\":_vm.loading},on:{\"click\":_vm.onCompleteClicked}})],1):_vm._e(),_c('dx-load-panel',{attrs:{\"visible\":_vm.loading},on:{\"update:visible\":function($event){_vm.loading=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport DataSource from 'devextreme/data/data_source';\nimport dialog from 'devextreme/ui/dialog';\nimport { DxButton } from 'devextreme-vue/button';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport { FileParseUploadDto } from '@/models/file-parsing/FileParseUploadDto';\n\n@Component({\n components: {\n DxButton,\n DxLoadPanel,\n DxSelectBox\n }\n})\nexport default class FileParseUploads extends Vue {\n private readonly fileParseUploadsUrl: string = '/FileParseUploads';\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '/api');\n private fileParseUploads: FileParseUploadDto[] = [];\n\n selectedUpload: FileParseUploadDto | null = null;\n loading: boolean = false;\n\n @Prop()\n readonly complete?: boolean;\n\n get fileParseUploadsDataSource(): DataSource {\n return new DataSource({\n store: this.fileParseUploads,\n paginate: true,\n pageSize: 100\n });\n }\n\n async created() {\n await this.loadFileParseUploads();\n }\n\n private async loadFileParseUploads() {\n let url = this.getFileParseUploadsUrl();\n this.fileParseUploads = await this.client.get(url);\n }\n\n private getFileParseUploadsUrl() {\n let query = this.getFileParseUploadsQueryString();\n return `${this.fileParseUploadsUrl}${query}`;\n }\n\n private getFileParseUploadsQueryString() {\n let parameters: string[] = [];\n\n if (this.complete != null) {\n parameters.push(`complete=${this.complete}`);\n }\n\n return parameters.length > 0 ? `?${parameters.join('&')}` : '';\n }\n\n async onCompleteClicked(e: any) {\n await this.completeSelectedUpload();\n }\n\n private async completeSelectedUpload() {\n if (this.selectedUpload == null) {\n return;\n }\n\n let url = `${this.fileParseUploadsUrl}/${this.selectedUpload.FileParseUploadId}`;\n this.loading = true;\n\n await this.client.sendRequest(HttpMethodEnum.Patch, url)\n .then(async response => {\n let message = 'Upload completed successfully.';\n if (response != null && response.Message != null) {\n message = response.Message;\n }\n await dialog.alert(message, 'Success');\n await this.loadFileParseUploads();\n this.selectedUpload = null;\n })\n .catch(async response => {\n let message = 'An error occurred completing the upload.';\n if (response != null && response.Message != null) {\n message = response.Message;\n }\n await dialog.alert(message, 'Error');\n })\n .finally(() => {\n this.loading = false;\n });\n }\n\n fileParseUploadDisplayExpression(fileParseUpload?: FileParseUploadDto) {\n if (fileParseUpload == null) {\n return '';\n }\n\n let client = fileParseUpload.Client == null ? 'Unknown client' : fileParseUpload.Client.ClientName;\n let batch = fileParseUpload.Batch == null ? 'Unknown batch' : fileParseUpload.Batch.BatchName;\n let agent = fileParseUpload.Agent == null ? undefined : fileParseUpload.Agent.AgentName;\n let fileList = fileParseUpload.FileList;\n let result = client;\n\n if (agent != null) {\n result += ` | ${agent}`;\n }\n\n result += ` | ${batch}`;\n\n result += ` | ${fileList}`;\n\n let createdDate = new Date(fileParseUpload.CreatedDate);\n result += ` | ${createdDate.toLocaleString()}`;\n\n return result;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-uploads.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-uploads.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-parse-uploads.vue?vue&type=template&id=1bc77108&scoped=true&\"\nimport script from \"./file-parse-uploads.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-parse-uploads.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./file-parse-uploads.vue?vue&type=style&index=0&id=1bc77108&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bc77108\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FileParseUploads from '@/components/file-parse-uploads.vue';\n\n@Component({\n components: {\n FileParseUploads,\n PageTitle\n }\n})\nexport default class IncompleteUploads extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incomplete-uploads.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./incomplete-uploads.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./incomplete-uploads.vue?vue&type=template&id=358663ce&\"\nimport script from \"./incomplete-uploads.vue?vue&type=script&lang=ts&\"\nexport * from \"./incomplete-uploads.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Fee Budgets\")]),_c('fee-budget-list')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-data-grid',{attrs:{\"data-source\":_vm.feeBudgetRulesDataSource,\"paging\":{ pageSize: 25 }},on:{\"initialized\":_vm.onDataGridInitialized,\"init-new-row\":_vm.initNewRow,\"editing-start\":_vm.onEditingStart,\"row-updating\":_vm.onRowUpdating},scopedSlots:_vm._u([{key:\"clientNameEditTemplate\",fn:function(ref){\nvar cellInfo = ref.data;\nreturn [_c('div',[_c('dx-select-box',{attrs:{\"data-source\":_vm.clients,\"display-expr\":\"text\",\"search-enabled\":true,\"on-value-changed\":function (e) { return _vm.onClientSelectionChanged(e.value, cellInfo); },\"search-expr\":\"text\",\"value\":cellInfo.value,\"value-expr\":\"value\",\"readOnly\":_vm.isReadOnly}})],1)]}},{key:\"matterNameEditTemplate\",fn:function(ref){\nvar cellInfo = ref.data;\nreturn [_c('div',[_c('dx-select-box',{attrs:{\"accept-custom-value\":true,\"data-source\":_vm.clientMattersDataSource,\"display-expr\":\"text\",\"max-length\":100,\"on-custom-item-creating\":_vm.onCreatingCustomMatterName,\"on-value-changed\":function (e) { return _vm.onValueChanged(e.value, cellInfo); },\"search-enabled\":true,\"search-expr\":\"text\",\"value\":cellInfo.value,\"value-expr\":\"value\",\"readOnly\":_vm.isReadOnly}})],1)]}},{key:\"countryEditTemplate\",fn:function(ref){\nvar cellInfo = ref.data;\nreturn [_c('div',[_c('dx-select-box',{attrs:{\"data-source\":_vm.countries,\"display-expr\":\"text\",\"on-value-changed\":function (e) { return _vm.onValueChanged(e.value, cellInfo); },\"search-enabled\":true,\"search-expr\":\"text\",\"value\":cellInfo.value,\"value-expr\":\"value\",\"readOnly\":_vm.isReadOnly}})],1)]}},{key:\"agentEditTemplate\",fn:function(ref){\nvar cellInfo = ref.data;\nreturn [_c('div',[_c('dx-select-box',{attrs:{\"data-source\":_vm.clientAgentsDataSource,\"display-expr\":\"text\",\"on-value-changed\":function (e) { return _vm.onValueChanged(e.value, cellInfo); },\"search-enabled\":true,\"search-expr\":\"text\",\"value\":cellInfo.value,\"value-expr\":\"value\",\"readOnly\":_vm.isReadOnly}})],1)]}},{key:\"phaseEditTemplate\",fn:function(ref){\nvar cellInfo = ref.data;\nreturn [_c('div',[_c('dx-select-box',{attrs:{\"data-source\":_vm.phaseTypes,\"display-expr\":\"text\",\"on-value-changed\":function (e) { return _vm.onValueChanged(e.value, cellInfo); },\"search-enabled\":true,\"search-expr\":\"text\",\"value\":cellInfo.value,\"value-expr\":\"value\",\"readOnly\":_vm.isReadOnly}})],1)]}},{key:\"notes-cell-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"comment\"},on:{\"click\":function($event){return _vm.openNotes(data.data)}}})]}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"FeeBudgetRuleDataGrid\"}}),_c('dx-editing',{attrs:{\"allow-adding\":true,\"allow-deleting\":true,\"allow-updating\":true,\"mode\":\"popup\"}},[_c('dx-popup',{attrs:{\"show-title\":true,\"title\":\"Edit Fee Budget\",\"width\":\"40%\",\"max-height\":\"95%\",\"on-showing\":_vm.onPopupShowing}}),_c('dx-form',{attrs:{\"col-count\":1,\"min-col-width\":233}},[_c('dx-group-item',[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"is-required\":true,\"editor-type\":\"dxSelectBox\"}}),_c('dx-item',{attrs:{\"data-field\":\"MatterName\"}}),_c('dx-item',{attrs:{\"data-field\":\"CountryId\",\"is-required\":true,\"editor-type\":\"dxSelectBox\",\"editor-options\":{ searchMode: 'startswith' }}}),_c('dx-item',{attrs:{\"data-field\":\"AgentId\"}}),_c('dx-item',{attrs:{\"data-field\":\"PhaseTypeId\",\"is-required\":true,\"editor-type\":\"dxSelectBox\"}}),_c('dx-item',{attrs:{\"data-field\":\"Amount\",\"is-required\":true,\"editor-type\":\"dxNumberBox\",\"editor-options\":{ format: '$ #,##0.##;($ #,##0.##)', min: 0 }}}),_c('dx-item',{attrs:{\"data-field\":\"CapOrTarget\",\"is-required\":true,\"label\":{ visible: false },\"editor-type\":\"dxRadioGroup\",\"editor-options\":{ dataSource: _vm.ruleTypes, layout: 'horizontal', displayExpr: 'text', valueExpr: 'value' }}}),_c('dx-item',{attrs:{\"data-field\":\"Notes\",\"editor-type\":\"dxTextArea\",\"editor-options\":{ maxLength: 255, stylingMode: 'outlined' }}})],1)],1)],1),_c('dx-column',{attrs:{\"data-field\":\"FeeBudgetRuleId\",\"data-type\":\"string\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-field\":\"ClientId\",\"data-type\":\"string\",\"caption\":\"Client\",\"calculate-sort-value\":\"ClientName\",\"readOnly\":_vm.isReadOnly,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.clients, allowSearch: true },\"edit-cell-template\":\"clientNameEditTemplate\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"MatterName\",\"data-type\":\"string\",\"caption\":\"Matter Name\",\"allow-header-filtering\":false,\"edit-cell-template\":\"matterNameEditTemplate\"}},[_c('dx-required-rule')],1),_c('dx-column',{attrs:{\"data-field\":\"CountryId\",\"data-type\":\"string\",\"caption\":\"Country\",\"calculate-sort-value\":\"CountryCode\",\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.countries, allowSearch: true, searchMode: 'startswith' },\"edit-cell-template\":\"countryEditTemplate\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.countries,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"AgentId\",\"data-type\":\"string\",\"caption\":\"Agent\",\"calculate-sort-value\":\"AgentName\",\"customize-text\":_vm.customizeEmptyText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.agents, allowSearch: true },\"edit-cell-template\":\"agentEditTemplate\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.agents,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"PhaseTypeId\",\"data-type\":\"string\",\"caption\":\"Phase Type\",\"calculate-sort-value\":\"PhaseName\",\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.phaseTypes, allowSearch: true },\"edit-cell-template\":\"phaseEditTemplate\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"CapOrTarget\",\"data-type\":\"string\",\"caption\":\"Cap/Target\",\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.ruleTypes }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.ruleTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"Amount\",\"data-type\":\"string\",\"caption\":\"Amount\",\"format\":{ type: 'currency', precision: 2 },\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"Notes\",\"data-type\":\"string\",\"caption\":\"Notes\",\"allow-filtering\":false,\"allow-sorting\":false,\"min-width\":53,\"width\":53,\"cell-template\":\"notes-cell-template\"}})],1),_c('text-popup',{attrs:{\"title\":\"Notes\",\"text\":_vm.notesToShow,\"visible\":_vm.showNotes,\"width\":\"400\",\"height\":\"225\"},on:{\"update:visible\":function($event){_vm.showNotes=$event},\"hiding\":_vm.closeNotes}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"title\":_vm.title,\"visible\":_vm.visible,\"width\":_vm.width,\"height\":_vm.height,\"max-height\":\"95%\"},on:{\"hiding\":_vm.onHiding}},[_c('div',{staticClass:\"popup-content\"},[_c('dx-text-area',{attrs:{\"value\":_vm.text,\"read-only\":true,\"height\":\"100%\"}})],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.closeButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTextArea } from 'devextreme-vue/text-area';\n\n@Component({\n components: {\n DxPopup,\n DxTextArea,\n DxToolbarItem\n }\n})\nexport default class TextPopup extends Vue {\n\n @Prop({ required: true })\n text!: string;\n\n @Prop({ default: '' })\n title!: string;\n\n @Prop({ required: true })\n visible!: boolean;\n\n @Prop({ default: '40%' })\n width!: number | string;\n\n @Prop({ default: '95%' })\n height!: number | string;\n\n get closeButtonOptions() {\n return {\n text: 'Close',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.close\n };\n }\n\n onHiding() {\n this.close();\n }\n\n private close() {\n this.$emit('hiding');\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./text-popup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./text-popup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./text-popup.vue?vue&type=template&id=18f72b10&scoped=true&\"\nimport script from \"./text-popup.vue?vue&type=script&lang=ts&\"\nexport * from \"./text-popup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./text-popup.vue?vue&type=style&index=0&id=18f72b10&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18f72b10\",\n null\n \n)\n\nexport default component.exports","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { FeeBudgetRuleDto } from '@/models/fee-budgets/FeeBudgetRuleDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\nexport class FeeBudgetRuleService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/feebudgetrules');\n }\n\n async list(options: LoadOptions): Promise {\n return await this.client.getPostData('/list', options);\n }\n\n async get(id: Guid): Promise {\n return await this.client.get(`/${id}`);\n }\n\n async create(data: FeeBudgetRuleDto): Promise {\n return await this.client.getPostData('', data);\n }\n\n async update(id: Guid, data: FeeBudgetRuleDto): Promise {\n return await this.client.getData(HttpMethodEnum.Put, `/${id}`, data);\n }\n\n async delete(id: Guid): Promise {\n return await this.client.getData(HttpMethodEnum.Delete, `/${id}`);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport dxDataGrid from 'devextreme/ui/data_grid';\nimport { DxButton } from 'devextreme-vue/button';\nimport {\n DxColumn,\n DxDataGrid,\n DxEditing, \n DxForm,\n DxFormItem,\n DxHeaderFilter,\n DxLookup,\n DxPaging,\n DxPopup,\n DxRequiredRule,\n DxScrolling,\n DxStateStoring\n} from 'devextreme-vue/data-grid';\nimport { DxButtonItem, DxGroupItem, DxItem } from 'devextreme-vue/form';\nimport { DxNumberBox } from 'devextreme-vue/number-box';\nimport { DxRadioGroup } from 'devextreme-vue/radio-group';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { DxTextArea } from 'devextreme-vue/text-area';\nimport { DxTextBox } from 'devextreme-vue/text-box';\nimport TextPopup from '@/components/text-popup.vue';\nimport { SelectOption } from '@/models/SelectOption';\nimport { FeeBudgetRuleDto } from '@/models/fee-budgets/FeeBudgetRuleDto';\nimport { FeeSheetTypeEnum, FeeSheetTypeNameEnum } from '@/models/Fees/FeeSheetTypeEnum';\nimport { AgentService } from '@/service/AgentService';\nimport { ClientService } from '@/service/ClientService';\nimport { CountryService } from '@/service/CountryService';\nimport { FeeBudgetRuleService } from '@/service/FeeBudgetRuleService';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport String from '@/utilities/String';\nimport _ from 'lodash';\n\n@Component({\n components: {\n DxButton,\n DxButtonItem,\n DxColumn,\n DxDataGrid,\n DxEditing, \n DxForm,\n DxFormItem,\n DxGroupItem,\n DxHeaderFilter,\n DxItem,\n DxLookup,\n DxNumberBox,\n DxPaging,\n DxPopup,\n DxRadioGroup,\n DxRequiredRule,\n DxScrolling,\n DxSelectBox,\n DxStateStoring,\n DxTextArea,\n DxTextBox,\n TextPopup\n }\n})\nexport default class FeeBudgetList extends Vue {\n private readonly feeBudgetRuleService: FeeBudgetRuleService = new FeeBudgetRuleService();\n private readonly agentService: AgentService = new AgentService();\n private readonly clientService: ClientService = new ClientService();\n private readonly countryService: CountryService = new CountryService();\n private readonly phaseTypeService: PhaseTypeService = new PhaseTypeService();\n\n private dataGrid: dxDataGrid | undefined;\n private selectedClient: Guid = '';\n private clientMatters: SelectOption[] = [];\n private clientAgents: SelectOption[] = this.getDefaultClientAgents();\n private insertingMatter: boolean = false;\n\n private isReadOnly: boolean = false;\n\n showNotes: boolean = false;\n notesToShow: string = '';\n clients: SelectOption[] = [];\n agents: SelectOption[] = [];\n countries: SelectOption[] = [];\n phaseTypes: SelectOption[] = [];\n ruleTypes: SelectOption[] = [\n { text: FeeSheetTypeNameEnum.Cap, value: FeeSheetTypeEnum.Cap },\n { text: FeeSheetTypeNameEnum.Target, value: FeeSheetTypeEnum.Target }\n ];\n\n @Watch('selectedClient')\n async onSelectedClientChanged() { \n this.clientMatters = [];\n this.clientAgents = this.getDefaultClientAgents();\n this.insertingMatter = false;\n\n if (String.isNullOrEmpty(this.selectedClient)) {\n return;\n }\n\n this.clientMattersDataSource.pageIndex(0);\n await this.clientMattersDataSource.reload();\n\n this.clientAgents = await this.agentService.getAllSelectOptions(this.selectedClient);\n this.clientAgentsDataSource.pageIndex(0);\n await this.clientAgentsDataSource.reload();\n }\n\n get feeBudgetRulesDataSource() {\n return new CustomStore({\n key: 'FeeBudgetRuleId',\n load: options => this.feeBudgetRuleService.list(options).catch(this.handleResponseError),\n insert: values => this.feeBudgetRuleService.create(values).catch(this.handleResponseError),\n update: (key, values) => this.feeBudgetRuleService.update(key, values).catch(this.handleResponseError),\n remove: key => this.feeBudgetRuleService.delete(key).catch(this.handleResponseError)\n });\n }\n\n get clientMattersDataSource() {\n return new DataSource({\n loadMode: 'raw',\n load: () => {\n if (this.insertingMatter) {\n this.insertingMatter = false;\n return this.clientMatters;\n }\n\n if (String.isNullOrEmpty(this.selectedClient)) {\n return [];\n }\n\n return this.clientService.getMatterSelectOptions(this.selectedClient)\n .then(result => {\n this.clientMatters = result;\n return result;\n });\n },\n insert: values => {\n if (this.clientMatters.findIndex(m => m.value === values.value) === -1) {\n this.clientMatters.unshift(values);\n }\n\n return Promise.resolve(values);\n },\n paginate: true,\n pageSize: 100\n });\n }\n\n get clientAgentsDataSource() { \n return new DataSource({\n store: this.clientAgents,\n paginate: true,\n pageSize: 100\n });\n }\n\n private handleResponseError(result: any) {\n let message = 'An unknown error occurred.';\n if (result && result.Message) {\n message = result.Message;\n\n let index = message.indexOf(' (Error');\n if (index > -1) {\n message = message.substring(0, index);\n }\n }\n\n throw Error(message);\n }\n\n async created() {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n await this.loadData();\n }\n\n private async loadData() {\n this.clients = await this.clientService.getAllSelectOptions();\n this.agents = await this.agentService.getAllSelectOptions();\n this.countries = await this.countryService.getAllSelectOptions();\n this.phaseTypes = await this.phaseTypeService.getAllSelectOptions();\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n private onClientSelectionChanged(value: Guid, cellInfo: any) { \n this.selectedClient = value;\n cellInfo.setValue(value);\n } \n\n onCreatingCustomMatterName(e: any) {\n e.customItem = { text: e.text, value: e.text };\n this.insertingMatter = true;\n this.clientMattersDataSource.store().insert(e.customItem);\n this.clientMattersDataSource.reload();\n }\n\n openNotes(rule: FeeBudgetRuleDto) {\n this.notesToShow = rule.Notes;\n this.showNotes = true;\n }\n\n closeNotes() {\n this.showNotes = false;\n this.notesToShow = '';\n }\n\n onDataGridInitialized(e: any) {\n this.dataGrid = e.component;\n }\n\n initNewRow(e: any) { \n this.isReadOnly = false; \n e.data.Amount = 0;\n e.data.CapOrTarget = FeeSheetTypeEnum.Cap;\n e.data.AgentId = '';\n }\n\n onEditingStart(e: any) { \n this.isReadOnly = true; \n if (e.data.AgentId == null) {\n e.data.AgentId = '';\n }\n }\n\n onRowUpdating(e: any) { \n e.newData = _.merge({}, e.oldData, e.newData);\n }\n\n onPopupShowing(e: any) { \n let toolbarItems = e.component.option('toolbarItems');\n toolbarItems[0].options.stylingMode = 'contained';\n toolbarItems[1].options.stylingMode = 'contained';\n toolbarItems[1].options.type = 'normal';\n e.component.option('toolbarItems', toolbarItems);\n } \n\n onValueChanged(value: any, cellInfo: any) {\n cellInfo.setValue(value);\n }\n\n private getDefaultClientAgents(): SelectOption[] {\n return [{ text: 'ALL', value: '' }];\n }\n\n customizeEmptyText(cellInfo: any) {\n return String.isNullOrEmpty(cellInfo.valueText) ? 'ALL' : cellInfo.valueText;\n }\n\n async save() { \n this.focusDataGrid();\n if (this.hasEditData()) {\n await this.saveEditData();\n }\n }\n\n private hasEditData() {\n return this.dataGrid != null && this.dataGrid.hasEditData();\n }\n\n private async saveEditData() {\n if (this.dataGrid != null) {\n await this.dataGrid.saveEditData();\n }\n }\n\n private onKeydown(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private onKeyup(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.save();\n }\n }\n\n private isSaveShortcut(e: KeyboardEvent) {\n return e.key === 'Enter' && (e.ctrlKey || e.shiftKey);\n }\n\n private focusDataGrid() {\n if (this.dataGrid != null) {\n this.dataGrid.focus();\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-budget-list.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-budget-list.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-budget-list.vue?vue&type=template&id=006c5226&\"\nimport script from \"./fee-budget-list.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-budget-list.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FeeBudgetList from '@/components/fee-budgets/fee-budget-list.vue';\n\n@Component({\n components: {\n FeeBudgetList,\n PageTitle\n }\n})\nexport default class FeeBudgets extends Vue {}\n","export enum ReportTypeEnum {\n Analysis,\n Auditor\n }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-budgets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./fee-budgets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./fee-budgets.vue?vue&type=template&id=68256abc&\"\nimport script from \"./fee-budgets.vue?vue&type=script&lang=ts&\"\nexport * from \"./fee-budgets.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Coding\")]),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"icon\":\"refresh\",\"text\":\"Refresh\"},on:{\"click\":_vm.refreshDataGrid}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Browse\",\"icon\":\"globe\"},on:{\"click\":_vm.openBrowseModeDialog}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Client Summary\",\"icon\":\"bulletlist\"},on:{\"click\":_vm.showClientSummary}}),_c('div',{staticClass:\"coding-work\"},[_c('h3',[_vm._v(\"Available Coding Work\")]),_c('data-grid',{ref:\"availableWorkDataGrid\",staticClass:\"available-work-data-grid\",attrs:{\"custom-store-options\":_vm.productionDataStoreOptions,\"columnResizingMode\":\"nextColumn\",\"noDataText\":\"No work available.\",\"paging\":{ enabled: false },\"scrolling\":{ mode: 'infinite' },\"height\":\"450px\",\"repaintChangesOnly\":true},on:{\"data-error-occurred\":_vm.onDataErrorOccurred},scopedSlots:_vm._u([{key:\"claimTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, false, _vm.codingWorkType);}}},[_vm._v(\"Claim\")])],1)}},{key:\"claimAllTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, true, _vm.codingWorkType);}}},[_vm._v(\"Claim All\")])],1)}}])},[_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"caption\":\"Client\"}}),_c('dx-column',{attrs:{\"width\":150,\"data-field\":\"DueDate\",\"data-type\":\"datetime\",\"caption\":\"Due Date\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"AgentCount\",\"data-type\":\"string\",\"caption\":\"Agents\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"CountryCount\",\"data-type\":\"string\",\"caption\":\"Countries\"}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Available Matters\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Line Items\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimTemplate\"}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimAllTemplate\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_vm._t(\"remote-operations\",[_c('dx-remote-operations',{attrs:{\"filtering\":true,\"paging\":true,\"sorting\":true}})])],2),_c('hr',{staticStyle:{\"margin-top\":\"25px\",\"margin-bottom\":\"20px\"}}),_c('h3',[_vm._v(\"Available Savings Report Coding Work\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.savingsReportTableVisible),expression:\"savingsReportTableVisible\"}]},[_c('data-grid',{ref:\"availableSavingsReportWorkDataGrid\",staticClass:\"available-work-data-grid\",attrs:{\"custom-store-options\":_vm.savingsReportStoreOptions,\"columnResizingMode\":\"nextColumn\",\"noDataText\":\"No work available.\",\"paging\":{ enabled: false },\"scrolling\":{ mode: 'infinite' },\"height\":\"450px\",\"repaintChangesOnly\":true},on:{\"data-error-occurred\":_vm.onDataErrorOccurred},scopedSlots:_vm._u([{key:\"claimTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, false, _vm.codingWorkType);}}},[_vm._v(\"Claim\")])],1)}},{key:\"claimAllTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, true, _vm.codingWorkType);}}},[_vm._v(\"Claim All\")])],1)}}])},[_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"caption\":\"Client\"}}),_c('dx-column',{attrs:{\"width\":150,\"data-field\":\"DueDate\",\"data-type\":\"datetime\",\"caption\":\"Due Date\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"AgentCount\",\"data-type\":\"string\",\"caption\":\"Agents\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"CountryCount\",\"data-type\":\"string\",\"caption\":\"Countries\"}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Available Matters\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Line Items\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimTemplate\"}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimAllTemplate\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_vm._t(\"remote-operations\",[_c('dx-remote-operations',{attrs:{\"filtering\":true,\"paging\":true,\"sorting\":true}})])],2)],1),_c('hr',{staticStyle:{\"margin-top\":\"25px\",\"margin-bottom\":\"20px\"}}),_c('claimed-work',{ref:\"claimedWork\",attrs:{\"matterWorkType\":_vm.codingWorkType,\"title\":\"Claimed Coding Work\"},on:{\"claimed-work-released\":_vm.refreshDataGrid}}),_c('client-summary',{ref:_vm.clientSummaryRef})],1),_c('claim-dialog',{ref:_vm.claimDialogRef}),_c('browse-mode-selection-dialog',{ref:_vm.browseModeDialogRef})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"65%\",\"height\":\"65%\",\"title\":\"Client Summary\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showDialog},on:{\"hidden\":_vm.onPopUpHidden,\"shown\":_vm.onPopUpShown,\"update:visible\":function($event){_vm.showDialog=$event}}},[_c('div',{staticClass:\"dx-card\",staticStyle:{\"height\":\"100%\"}},[_c('dx-data-grid',{ref:_vm.dataGridRef,staticStyle:{\"height\":\"100%\"},attrs:{\"dataSource\":_vm.clientSummarySource,\"columnAutoWidth\":true,\"showRowLines\":true,\"showColumnLines\":true,\"showBorders\":true,\"columnResizingMode\":\"nextColumn\",\"paging\":{ enabled: false },\"columnMinWidth\":50,\"wordWrapEnabled\":false,\"width\":\"100%\",\"scrolling\":{ mode: 'infinite' },\"height\":\"100%\"},on:{\"data-error-occurred\":_vm.OnDataErrorOccured,\"content-ready\":_vm.onContentReady,\"row-prepared\":_vm.onRowPrepared,\"cell-prepared\":_vm.onCellPrepared},scopedSlots:_vm._u([{key:\"markready\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-check-box',{on:{\"valueChanged\":function($event){return _vm.markReport($event,data)}},model:{value:(data.data.ReadyForReporting),callback:function ($$v) {_vm.$set(data.data, \"ReadyForReporting\", $$v)},expression:\"data.data.ReadyForReporting\"}})]}},{key:\"sendAnalysisReportsCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"message\",\"text\":\"Send\",\"hint\":\"Send Client Reports\"},on:{\"click\":function($event){return _vm.sendBatchReport(data, _vm.analysisReportType)}}})]}},{key:\"sendAuditorReportsCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"message\",\"text\":\"Send\",\"hint\":\"Send Agent Reports\"},on:{\"click\":function($event){return _vm.sendBatchReport(data, _vm.auditorReportType)}}})]}}])},[_c('dx-column',{attrs:{\"width\":80,\"caption\":\"Ready for Reporting\",\"cell-template\":\"markready\",\"fixed\":true,\"fixed-position\":\"left\",\"data-field\":\"ReadyForReporting\"}}),_c('dx-column',{attrs:{\"width\":200,\"data-field\":\"ClientName\",\"caption\":\"Client\",\"fixed\":true,\"fixed-position\":\"left\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"MatterNeedsAuditingCount\",\"data-type\":\"string\",\"caption\":\"Matter(s) Unreviewed\",\"fixed\":true,\"fixed-position\":\"left\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"LatestBatchName\",\"data-type\":\"string\",\"caption\":\"Batch\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"DataIn\",\"data-type\":\"date\",\"caption\":\"Data In\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Matters\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Lines\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalHardOverages\",\"data-type\":\"string\",\"caption\":\"Hard Overages\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalSoftOverages\",\"data-type\":\"string\",\"caption\":\"Soft Overages\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalInfractions\",\"data-type\":\"string\",\"caption\":\"Infractions\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalNotes\",\"data-type\":\"string\",\"caption\":\"Notes\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"ReportOut\",\"data-type\":\"date\",\"caption\":\"Reports Out\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":109,\"caption\":\"Send Client Reports\",\"cell-template\":\"sendAnalysisReportsCellTemplate\",\"allow-filtering\":false,\"allow-sorting\":false,\"allow-editing\":false,\"fixed\":true,\"fixed-position\":\"right\"}}),_c('dx-column',{attrs:{\"width\":109,\"caption\":\"Send Agent Reports\",\"cell-template\":\"sendAuditorReportsCellTemplate\",\"allow-filtering\":false,\"allow-sorting\":false,\"allow-editing\":false,\"fixed\":true,\"fixed-position\":\"right\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}})],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'normal', stylingMode: 'contained', onClick: _vm.close },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-load-panel',{attrs:{\"visible\":_vm.sendingReport},on:{\"update:visible\":function($event){_vm.sendingReport=$event}}}),_c('send-reports-confirmation',{ref:_vm.sendReportsConfirmationRef,on:{\"hiding\":_vm.onSendReportsConfirmationHiding}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { HttpMethodEnum, QuestelServicesClient, RequestResult } from '@questelservices/common';\nimport store from '../store';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport { BatchTypeEnum } from '@/models/batch/BatchTypeEnum';\n\nexport class ActivityPlannerService {\n private client: QuestelServicesClient;\n\n constructor(baseUrl: string) {\n this.client = new QuestelServicesClient(store, `${baseUrl}/activityplanner`);\n }\n\n public getAvailableWork(options: LoadOptions, matterWorkType: MatterWorkTypeEnum, batchType: BatchTypeEnum) {\n return this.client.getPostData(`/work/${matterWorkType}/${batchType}`, options);\n }\n\n public claimWork(workToClaim: object, matterWorkType: MatterWorkTypeEnum): Promise {\n return this.client.postJson(`/claim-matters/${matterWorkType}`, workToClaim);\n }\n\n public async clientSummary(options: LoadOptions): Promise {\n return await this.client.getPostData(`/client-summary`, options);\n }\n\n public async getAnalysisTexts(clientId: Guid, batchId: Guid) {\n return await this.client.getData(HttpMethodEnum.Get, `/analysis-text-review/${clientId}/${batchId}`);\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"title\":_vm.title,\"height\":\"auto\",\"width\":\"auto\",\"max-height\":\"95%\",\"max-width\":\"95%\",\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding}},[_c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.message)}}),_c('div',[_c('dx-select-box',{attrs:{\"data-source\":_vm.batchesDataSource,\"display-expr\":_vm.batchDisplayExpression,\"value\":_vm.selectedBatch},on:{\"update:value\":function($event){_vm.selectedBatch=$event}}})],1)]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"center\",\"toolbar\":\"bottom\",\"options\":_vm.yesButtonOptions}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"center\",\"toolbar\":\"bottom\",\"options\":_vm.noButtonOptions}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit, Prop, Watch } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport { confirm } from 'devextreme/ui/dialog';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { BatchDetailsDto } from '@/models/batch/BatchDetailsDto';\nimport { BatchEventTypeEnum } from '@/models/batch/BatchEventTypeEnum';\nimport { ClientDto } from '@/models/client/ClientDto';\nimport { ReportTypeEnum } from '@/models/ReportTypeEnum';\nimport { BatchService } from '@/service/BatchService';\nimport moment from 'moment';\n\n@Component({\n components: {\n DxPopup,\n DxSelectBox,\n DxToolbarItem\n }\n})\nexport default class SendReportsConfirmation extends Vue {\n private readonly batchService: BatchService = new BatchService();\n\n private showDialog: boolean = false;\n\n client: ClientDto | null = null;\n dialogResult: boolean | null = null;\n reportType: ReportTypeEnum = ReportTypeEnum.Analysis;\n selectedBatch: BatchDetailsDto | null = null;\n\n @Watch('client')\n async onClientChanged() {\n this.selectedBatch = null;\n await this.batchesDataSource.reload();\n }\n\n private get title() {\n return `Manual ${this.reportTypeName} Report Sending for ${this.clientName}`;\n }\n\n private get message() {\n return `Are you sure you want to send the ${this.reportTypeName} reports for the selected batch for ${this.clientName} right now?`;\n }\n\n private get clientName() {\n return this.client != null ? this.client.ClientName : 'Unknown Client';\n }\n\n get reportTypeName() {\n switch (this.reportType) {\n case ReportTypeEnum.Analysis:\n return 'Analysis';\n case ReportTypeEnum.Auditor:\n return 'Auditor';\n }\n }\n\n private get batchesDataSource() {\n return new DataSource({\n store: this.batchStore,\n paginate: true,\n pageSize: 100\n });\n }\n\n private get batchStore() {\n return new CustomStore({\n key: 'BatchId',\n loadMode: 'raw',\n load: this.getClientBatches\n });\n }\n\n private async getClientBatches() {\n if (this.client == null) {\n return [];\n }\n\n let batches = await this.batchService.getClientBatchesReportStatus(this.client.ClientId);\n if (batches.length > 0) {\n this.selectedBatch = batches[0];\n }\n\n return batches;\n }\n\n private get yesButtonOptions() {\n return {\n text: 'Yes',\n type: 'default',\n stylingMode: 'text',\n onClick: this.yes\n };\n }\n\n private get noButtonOptions() {\n return {\n text: 'No',\n type: 'default',\n stylingMode: 'text',\n onClick: this.no\n };\n }\n\n show() {\n this.showDialog = true;\n }\n\n async yes() {\n let cancel = false;\n\n if (this.selectedBatch != null && !this.selectedBatch.ReadyForReporting) {\n let message = 'This batch has not been cleared for reporting. Send anyway?';\n let title = 'Batch not cleared for reporting';\n\n let sendAnyway = await confirm(message, title);\n cancel = !sendAnyway;\n }\n\n if (!cancel) {\n this.close(true);\n }\n }\n\n no() {\n this.close(false);\n }\n\n private close(dialogResult: boolean) {\n this.dialogResult = dialogResult;\n this.showDialog = false;\n }\n\n private onShowing() {\n this.dialogResult = null;\n }\n\n @Emit('hiding')\n private onHiding() {\n return this.dialogResult;\n }\n\n private batchDisplayExpression(batch?: BatchDetailsDto) {\n if (batch == null) {\n return '';\n }\n\n let status = 'Unknown';\n let reportAvailable = batch.BatchEvents.find(e => e.BatchEventTypeId === BatchEventTypeEnum.ReportAvailable);\n if (reportAvailable != null) {\n if (reportAvailable.ProcessedDate != null) {\n let sentDate = moment(reportAvailable.ProcessedDate).format('M/D/YYYY');\n status = `Sent on ${sentDate}`;\n } else {\n status = 'Not yet sent';\n }\n }\n\n return `${batch.BatchName}, ${status}`;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./send-reports-confirmation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./send-reports-confirmation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./send-reports-confirmation.vue?vue&type=template&id=6e472d20&\"\nimport script from \"./send-reports-confirmation.vue?vue&type=script&lang=ts&\"\nexport * from \"./send-reports-confirmation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport DxDataGrid, {\n DxColumn,\n DxRemoteOperations,\n DxPaging,\n DxPager,\n DxFilterRow,\n DxSelection,\n DxEditing\n} from 'devextreme-vue/data-grid';\nimport * as overlay from 'devextreme/ui/overlay';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { QuestelServicesClient } from '@questelservices/common/dist';\nimport { DxButton, DxTooltip, DxCheckBox, DxLoadPanel } from 'devextreme-vue';\nimport _ from 'lodash';\nimport { Popup } from '@questelservices/common-vue';\nimport { ActivityPlannerService } from '@/service/ActivityPlannerService';\nimport { PageTitle, DataGrid } from '@questelservices/common-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport dialog from 'devextreme/ui/dialog';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { BatchService } from '../../service/BatchService';\nimport notify from 'devextreme/ui/notify';\nimport moment from 'moment';\nimport { ClientSummaryDto } from '@/models/ClientSummaryDto';\nimport { ReportTypeEnum } from '@/models/ReportTypeEnum';\nimport { SendBatchReportsRequestDto } from '@/models/batch/SendBatchReportsRequestDto';\nimport SendReportsConfirmation from '@/components/auditor/send-reports-confirmation.vue';\n\n@Component({\n components: {\n DxDataGrid,\n DxColumn,\n DxRemoteOperations,\n DxPaging,\n DxPager,\n DxFilterRow,\n DxToolbarItem,\n DxSelection,\n DxTooltip,\n DxEditing,\n DxCheckBox,\n DxLoadPanel,\n Popup,\n DxButton,\n SendReportsConfirmation\n }\n})\nexport default class ClientSummary extends Vue {\n private readonly analysisReportType: ReportTypeEnum = ReportTypeEnum.Analysis;\n private readonly auditorReportType: ReportTypeEnum = ReportTypeEnum.Auditor;\n private readonly sendReportsConfirmationRef: string = 'sendReportsConfirmationRef';\n private showDialog: boolean = false;\n\n constructor() {\n super();\n this.activityPlannerService = new ActivityPlannerService('/api');\n this.batchService = new BatchService();\n // the fix for pop-ups not showing behind the parent modal\n overlay.baseZIndex(2000);\n }\n \n displayMessage: string = '';\n hoveredItem : string = \"\";\n tooltipVisible: boolean = false;\n sendingReport: boolean = false;\n listOfSelectedBatchIds: Array = [];\n tempSelectedBatchIds: Array = [];\n batchService: BatchService;\n activityPlannerService: ActivityPlannerService;\n readonly dataGridRef: string = 'dataGridRef';\n\n private get dataGrid() {\n return (this.$refs[this.dataGridRef] as DxDataGrid).instance;\n }\n\n private get sendReportsConfirmation() {\n return this.$refs[this.sendReportsConfirmationRef] as SendReportsConfirmation;\n }\n\n show() {\n this.showDialog = true;\n }\n\n close() {\n this.showDialog = false;\n }\n\n get clientSummarySource() {\n return new CustomStore({\n key: 'ClientId',\n loadMode: 'raw',\n load: options => {\n if (!this.showDialog) {\n return [];\n }\n\n return this.activityPlannerService\n .clientSummary(options)\n .then(result => {\n let data = result.data as ClientSummaryDto[];\n this.processPreSelectedBatchIds(data);\n return data;\n })\n .catch(err => {\n return [];\n })\n },\n update: (key, values) => {\n if (key) {\n return this.batchService.setReadyForReporting(key)\n .then(() => {\n return values;\n })\n .catch(err => {\n notify('Failed to save ready for reporting', 'error', 3000);\n });\n } else {\n return Promise.resolve();\n }\n }\n });\n }\n\n processPreSelectedBatchIds(data: ClientSummaryDto[]) {\n this.listOfSelectedBatchIds = data.filter(item => item.ReadyForReporting).map(item => item.ClientId);\n this.tempSelectedBatchIds = _.cloneDeep(this.listOfSelectedBatchIds);\n }\n\n onPopUpHidden(e: any) {\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n\n this.tempSelectedBatchIds = [];\n this.listOfSelectedBatchIds = [];\n this.$emit('client-summary-hidden');\n }\n\n onPopUpShown(e: any) {\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n }\n\n OnDataErrorOccured(e: any) {\n if (e != null && e.error != null) {\n e.error.message = \"Failed to load data.\";\n }\n }\n\n onContentReady(e: any) {\n if (!e.component.__firstLoad) {\n e.component.option(\"selectedRowKeys\", this.listOfSelectedBatchIds);\n }\n }\n \n onRowPrepared(e: any) {\n if (e.rowType == \"data\" && e.data) {\n if (e.data.MatterNeedsAuditingCount > 0) {\n e.rowElement.style['background-color'] = \"#f9e08c\";\n }\n }\n }\n \n onCellPrepared(e: any) {\n if (e.rowType === 'data' && e.data) {\n e.cellElement.setAttribute(\"id\", `audit-${e.columnIndex}-${e.data.ClientName}`);\n }\n }\n\n sendBatchReport(data: any, reportType: ReportTypeEnum) {\n if (data != null && data.data != null) {\n this.sendReportsConfirmation.reportType = reportType;\n this.sendReportsConfirmation.client = {\n ClientId: data.data.ClientId,\n ClientName: data.data.ClientName\n };\n\n this.sendReportsConfirmation.show();\n }\n }\n\n private async onSendReportsConfirmationHiding() {\n if (this.sendReportsConfirmation.dialogResult === true && this.sendReportsConfirmation.selectedBatch != null) {\n let batchName = this.sendReportsConfirmation.selectedBatch.BatchName;\n let reportTypeName = this.sendReportsConfirmation.reportTypeName;\n let clientName = this.sendReportsConfirmation.selectedBatch.ClientName;\n\n notify(`Sending batch ${batchName} ${reportTypeName} reports for ${clientName}...`, \"info\");\n this.sendingReport = true;\n\n let options: SendBatchReportsRequestDto = {\n ReportType: this.sendReportsConfirmation.reportType,\n ForceSend: true\n };\n\n this.batchService.sendReport(this.sendReportsConfirmation.selectedBatch.BatchId, options)\n .then(response => {\n notify(`Batch ${batchName} ${reportTypeName} reports for ${clientName} have been queued to be sent. \n Check the File Service tab soon to verify that the reports have finished sending`, \"success\");\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n })\n .catch(reason => {\n let message = `Failed to send batch ${batchName} ${reportTypeName} reports for ${clientName}.`;\n if (reason != null && reason.Message != null) {\n message += ` ${reason.Message}`;\n }\n\n dialog.alert(message, \"Report Sending Failed\");\n })\n .finally(() => {\n this.sendingReport = false;\n });\n }\n }\n\n markReport(e: any, data: any) {\n if(e.value && data.data.MatterNeedsAuditingCount > 0) {\n dialog.confirm(`${data.data.ClientName}, ${data.data.LatestBatchName} still has ${data.data.MatterNeedsAuditingCount}\n ${data.data.MatterNeedsAuditingCount > 1 ? \"cases\": \"case\"} that have not yet been audited.
Are you sure you want to set this to be ready to send?`\n , \"Confirm Ready to Send\")\n .then(res => {\n if(res) {\n this.clientSummarySource.update(data.data.ClientId, data.data.ClientId);\n }\n else {\n data.data.ReadyForReporting = false;\n }\n this.dataGrid!.repaint();\n });\n }\n else {\n this.clientSummarySource.update(data.data.ClientId, data.data.ClientId);\n this.dataGrid!.repaint();\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-summary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-summary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-summary.vue?vue&type=template&id=3ce269da&\"\nimport script from \"./client-summary.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-summary.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":660,\"height\":\"auto\",\"show-title\":true,\"title\":_vm.title,\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hidden\":_vm.onHidden,\"save-shortcut-pressed\":_vm.claimSelectedWork},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',{staticClass:\"popup-property-details\",staticStyle:{\"padding\":\"15px\"}},[_c('dx-data-grid',{ref:\"claimTable\",attrs:{\"height\":\"400px\",\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"rowAlternationEnabled\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":false,\"columnResizingMode\":\"nextColumn\",\"columnAutoWidth\":true},on:{\"contentReady\":_vm.contentReady}},[_c('dx-scrolling',{attrs:{\"mode\":\"infinite\",\"row-rendering-mode\":\"virtual\"}}),_c('dx-selection',{attrs:{\"mode\":\"multiple\",\"select-all-mode\":\"allPages\",\"show-check-boxes-mode\":\"always\",\"deferred\":true}}),_c('dx-column',{attrs:{\"data-field\":\"MatterName\",\"data-type\":\"string\",\"caption\":\"Client Matter Number\",\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"AgentName\",\"data-type\":\"string\",\"caption\":\"Agent\"}}),_c('dx-column',{attrs:{\"data-field\":\"Country\",\"data-type\":\"string\",\"caption\":\"Country\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-paging',{attrs:{\"enabled\":false}})],1),_c('div',[_c('h3',[_vm._v(\"Notes\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.notes),expression:\"notes\"}],staticStyle:{\"width\":\"100%\"},domProps:{\"value\":(_vm.notes)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.notes=$event.target.value}}})]),_c('br'),_c('div',[_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(_vm._s(_vm.claimError))])]),_c('div',{staticStyle:{\"float\":\"right\"}},[_c('dx-button',{attrs:{\"type\":\"default\"},on:{\"click\":_vm.close}},[_vm._v(\"Close without claiming\")]),_c('dx-button',{staticStyle:{\"margin-left\":\"15px\"},attrs:{\"type\":\"default\"},on:{\"click\":_vm.claimSelectedWork}},[_vm._v(\"Claim\")])],1)],1)])}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxColumn, DxDataGrid, DxPager, DxPaging, DxRemoteOperations, DxFilterRow, DxHeaderFilter, DxSelection, DxScrolling } from 'devextreme-vue/data-grid';\nimport { DxButton, DxCheckBox } from 'devextreme-vue';\nimport CustomStore from 'devextreme/data/custom_store';\nimport CommonModule, { QuestelServicesClient } from '@questelservices/common';\nimport { Prop } from 'vue-property-decorator';\nimport { AvailableMattersDto } from '../models/AvailableMattersDto';\nimport { ActivityPlannerService } from '../service/ActivityPlannerService';\nimport { getModule } from 'vuex-module-decorators';\nimport store from '../store';\nimport { MatterWorkTypeEnum } from '../models/matter-work/MatterWorkTypeEnum';\nimport DataGrid from 'devextreme/ui/data_grid';\nimport _ from 'lodash';\n\nconst commonState = getModule(CommonModule, store);\n\n@Component({\n components: {\n DxDataGrid,\n DxCheckBox,\n DxPager,\n DxPaging,\n DxRemoteOperations,\n DxFilterRow,\n DxColumn,\n DxButton,\n DxHeaderFilter,\n DxSelection,\n DxScrolling,\n Popup\n }\n})\nexport default class ActivityPlannerClaimDialog extends Vue {\n private showDialog: boolean = false;\n\n clientId: Guid = '';\n isClaimAll: boolean = false;\n matterWorkType: MatterWorkTypeEnum = MatterWorkTypeEnum.Coding;\n\n activityPlannerService: ActivityPlannerService;\n client: QuestelServicesClient;\n notes: string = '';\n claimError: string = '';\n\n get dataGrid() {\n return (this.$refs['claimTable'] as DxDataGrid).instance;\n }\n\n get claimWorkUrl(): string {\n return `/api/activityplanner/claim-dialog/${this.matterWorkType}`;\n }\n\n get title() {\n if (this.matterWorkType === MatterWorkTypeEnum.Coding) {\n return 'Claim matters for manual code assignment';\n } else if (this.matterWorkType === MatterWorkTypeEnum.Auditing) {\n return 'Claim matters for auditing work';\n }\n }\n\n @Watch('showDialog')\n onPropertyChanged(value: boolean, oldValue: boolean) {\n if (value) {\n this.claimError = '';\n } \n }\n\n constructor() {\n super();\n this.activityPlannerService = new ActivityPlannerService('/api');\n this.client = new QuestelServicesClient(this.$store, '');\n }\n\n show() {\n this.showDialog = true;\n }\n\n close() {\n this.showDialog = false;\n }\n\n onShowing(e: any) {\n if (this.dataGrid) {\n this.dataGrid.option('dataSource', this.dataSource);\n this.dataGrid.refresh()\n .then(() => {\n if (this.dataGrid) {\n this.dataGrid.getScrollable().scrollTo(0);\n }\n });\n \n this.dataGrid.option('selectionFilter', this.isClaimAll ? null : []);\n }\n\n this.notes = this.isClaimAll ? 'All cases were claimed by ' + commonState.authenticatedUser.fullName : '';\n }\n\n onHidden(e: any) {\n if (this.dataGrid) {\n this.dataGrid.option('dataSource', []);\n this.dataGrid.option('selectionFilter', []);\n }\n\n this.notes = '';\n }\n\n get dataSource() {\n return new CustomStore({\n key: 'MatterId',\n load: loadOptions => {\n return this.client.postJson(this.claimWorkUrl + `?clientId=${this.clientId}`, loadOptions)\n .then(result => {\n if (!result.Data) {\n throw result;\n }\n return result.Data;\n })\n .catch(result => {\n if (result && result.Message) {\n throw result.Message;\n } else {\n throw 'Error loading data.';\n }\n });\n }\n });\n }\n\n contentReady(e: any) {\n if (e.component.shouldSkipNextReady) {\n e.component.shouldSkipNextReady = false;\n } else {\n e.component.shouldSkipNextReady = true;\n e.component.columnOption('command:select', 'width', 40);\n e.component.updateDimensions();\n }\n }\n\n async claimSelectedWork() {\n if (!this.dataGrid) {\n return;\n }\n\n let selectedRowKeys = await this.dataGrid.getSelectedRowKeys();\n\n if (selectedRowKeys.length > 0) {\n this.activityPlannerService.claimWork({ mattersToClaim: selectedRowKeys, notes: this.notes }, this.matterWorkType)\n .then(result => {\n if (this.matterWorkType === MatterWorkTypeEnum.Coding) {\n this.$router.push(`/phase-assignment/${result.Data}`);\n } else if (this.matterWorkType === MatterWorkTypeEnum.Auditing) {\n let caseCount = _.uniq(selectedRowKeys).length;\n this.$router.push(`/auditing/${result.Data}?cases=${caseCount}`);\n } else {\n this.close();\n }\n });\n } else {\n this.claimError = 'Select at least one matter to claim.';\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./activity-planner_claim-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./activity-planner_claim-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./activity-planner_claim-dialog.vue?vue&type=template&id=444f3dec&\"\nimport script from \"./activity-planner_claim-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./activity-planner_claim-dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_c('dx-load-panel',{attrs:{\"visible\":_vm.releaseInProgress},on:{\"update:visible\":function($event){_vm.releaseInProgress=$event}}}),_c('data-grid',{ref:\"claimedWorkDataGrid\",attrs:{\"url\":_vm.claimedWorkUrl,\"pagingEnabled\":false,\"showFilterRow\":false,\"rowAlternationEnabled\":false,\"showColumnLines\":false,\"allowColumnResizing\":false,\"allowColumnReordering\":false,\"noDataText\":\"No work has been claimed.\",\"hover-state-enabled\":true,\"word-wrap-enabled\":true},on:{\"row-click\":_vm.onRowClick,\"row-prepared\":_vm.onRowPrepared,\"content-ready\":_vm.onContentReady},scopedSlots:_vm._u([{key:\"claimedByGroupCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[_vm._v(_vm._s(data.summaryItems.filter(function (i) { return i.name === 'ClaimedByDisplay'; })[0].value))])]}},{key:\"matterWorkProgressCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-progress-bar',{attrs:{\"min\":0,\"max\":data.data.TotalLines,\"value\":data.data.ConfirmedLines}})]}},{key:\"matterWorkProgressCellTemplateAudit\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-progress-bar',{attrs:{\"min\":0,\"max\":data.data.ClaimedCasesCount,\"value\":data.data.AuditedCasesCount}})]}},{key:\"matterWorkActionCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"matterWorkActionCellTemplate\"}},[_c('dx-button',{attrs:{\"type\":\"default\",\"stylingMode\":\"contained\"},on:{\"click\":function($event){return _vm.confirmReleaseClaim(data.data)}}},[_vm._v(\"Release Claim\")])],1)}}])},[_c('dx-grouping',{attrs:{\"autoExpandAll\":false,\"expandMode\":\"rowClick\"}}),_c('dx-sorting',{attrs:{\"mode\":\"none\"}}),_c('dx-sort-by-group-summary-info',{attrs:{\"sort-order\":\"desc\",\"summary-item\":\"CurrentUserCount\"}}),_c('dx-summary',[_c('dx-group-item',{attrs:{\"summary-type\":\"sum\",\"column\":\"CurrentUser\",\"name\":\"CurrentUserCount\"}}),_c('dx-group-item',{attrs:{\"summary-type\":\"max\",\"column\":\"ClaimedBy\",\"name\":\"ClaimedByDisplay\"}}),_c('dx-group-item',{attrs:{\"summary-type\":\"sum\",\"align-by-column\":true,\"display-format\":\"{0}\",\"column\":\"ClaimedCasesCount\"}}),_c('dx-group-item',{attrs:{\"summary-type\":\"sum\",\"align-by-column\":true,\"display-format\":\"{0}\",\"column\":\"UnconfirmedLines\"}}),_c('dx-group-item',{attrs:{\"summary-type\":\"sum\",\"align-by-column\":true,\"display-format\":\"{0}\",\"column\":\"TotalLines\"}})],1),_c('dx-remote-operations',{attrs:{\"filtering\":true,\"paging\":true,\"sorting\":true,\"grouping\":true,\"summary\":true}}),_c('dx-column',{attrs:{\"group-index\":0,\"data-field\":\"ClaimedById\",\"groupCellTemplate\":\"claimedByGroupCellTemplate\"}}),_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"data-type\":\"string\",\"caption\":\"Client\"}}),_c('dx-column',{attrs:{\"data-field\":\"ClaimedCasesCount\",\"data-type\":\"number\",\"caption\":\"Claimed Cases\"}}),(_vm.matterWorkType == 0)?_c('dx-column',{attrs:{\"data-field\":\"TotalLines\",\"caption\":\"Line Items\",\"data-type\":\"number\",\"width\":\"100\"}}):_vm._e(),(_vm.matterWorkType == 0)?_c('dx-column',{attrs:{\"data-field\":\"UnconfirmedLines\",\"caption\":\"Unconfirmed\",\"data-type\":\"number\",\"width\":\"100\"}}):_vm._e(),(_vm.matterWorkType == 1)?_c('dx-column',{attrs:{\"data-field\":\"AuditedCasesCount\",\"caption\":\"Audited Cases\",\"data-type\":\"number\",\"width\":\"100\"}}):_vm._e(),_c('dx-column',{attrs:{\"data-field\":\"ClaimedDate\",\"data-type\":\"datetime\",\"caption\":\"Claimed Date\",\"width\":\"150\"}}),_c('dx-column',{attrs:{\"data-field\":\"DueDate\",\"data-type\":\"datetime\",\"caption\":\"Due Date\",\"width\":\"150\"}}),(_vm.matterWorkType == 0)?_c('dx-column',{attrs:{\"caption\":\"Progress\",\"cell-template\":\"matterWorkProgressCellTemplate\"}}):_vm._e(),(_vm.matterWorkType == 1)?_c('dx-column',{attrs:{\"caption\":\"Progress\",\"cell-template\":\"matterWorkProgressCellTemplateAudit\"}}):_vm._e(),_c('dx-column',{attrs:{\"data-field\":\"Notes\"}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"allow-filtering\":false,\"cell-template\":\"matterWorkActionCellTemplate\",\"width\":\"115\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { DataGrid } from '@questelservices/common-vue';\nimport dxDataGrid from 'devextreme/ui/data_grid';\nimport { DxProgressBar, DxButton } from 'devextreme-vue';\nimport DxDataGrid, {\n DxGrouping,\n DxSummary,\n DxGroupItem,\n DxSortByGroupSummaryInfo,\n DxSorting,\n DxRemoteOperations,\n DxColumn\n} from 'devextreme-vue/data-grid';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { MatterWorkTypeEnum } from '../../models/matter-work/MatterWorkTypeEnum';\nimport CommonModule, { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport dialog from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport { getModule } from 'vuex-module-decorators';\nimport { BatchService } from '@/service/BatchService';\nimport { AuditingService } from '@/service/AuditingService';\nimport { BatchEventTypeDateDto } from '@/models/batch/BatchEventTypeDateDto';\nimport { BatchEventTypeEnum, BatchEventDateTypeEnum } from '@/models/batch/BatchEventTypeEnum';\n\n@Component({\n components: {\n DataGrid,\n DxProgressBar,\n DxColumn,\n DxRemoteOperations,\n DxGrouping,\n DxSummary,\n DxGroupItem,\n DxSortByGroupSummaryInfo,\n DxSorting,\n DxButton,\n DxLoadPanel\n }\n})\nexport default class ClaimedWork extends Vue {\n public $refs: Vue['$refs'] & {\n claimedWorkDataGrid?: DataGrid;\n } = {};\n\n @Prop()\n title!: string;\n\n @Prop()\n matterWorkType!: MatterWorkTypeEnum; \n\n claimedWorkUrl: string = `/api/activityplanner/claimed/${this.matterWorkType}`;\n private dxDataGrid?: dxDataGrid;\n private firstLoad: boolean = true; \n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private commonState = getModule(CommonModule, this.$store);\n private auditingService: AuditingService;\n private batchService: BatchService;\n private releaseInProgress: boolean = false;\n\n constructor() {\n super(); \n this.batchService = new BatchService();\n this.auditingService = new AuditingService();\n }\n\n mounted() {\n if (this.$refs.claimedWorkDataGrid) {\n let dataGridRef = this.$refs.claimedWorkDataGrid as any;\n this.dxDataGrid = dataGridRef.$refs.dxDataGrid.instance as dxDataGrid;\n }\n }\n\n refreshDataGrid() {\n if (this.$refs.claimedWorkDataGrid) {\n (this.$refs.claimedWorkDataGrid as any).refreshDataGrid();\n }\n }\n\n expandFirstGroup() {\n if (this.dxDataGrid) {\n // Expand first group\n this.dxDataGrid.expandRow(this.dxDataGrid.getKeyByRowIndex(0));\n }\n }\n\n onRowPrepared(e: any) {\n if (e.rowType === 'data' && e.data.MatterWorkId) {\n let location = this.getClaimedWorkLink(e);\n e.rowElement.addEventListener('auxclick', (event: any) => {\n if (event.which === 2 && location != null) {\n event.preventDefault();\n event.stopPropagation();\n window.open(location.href, '_blank');\n }\n });\n }\n }\n\n private getClaimedWorkLink(e: any) {\n if (e.data.MatterWorkId) {\n switch (this.matterWorkType) {\n case MatterWorkTypeEnum.Coding:\n return this.$router.resolve(`/phase-assignment/${e.data.MatterWorkId}`);\n case MatterWorkTypeEnum.Auditing:\n return this.$router.resolve(`/auditing/${e.data.MatterWorkId}?cases=${e.data.ClaimedCasesCount}`);\n default:\n return;\n }\n }\n }\n\n onRowClick(e: any) {\n if (e.rowType === 'data' && e.data.MatterWorkId) {\n switch (this.matterWorkType) {\n case MatterWorkTypeEnum.Coding:\n this.$router.push(`/phase-assignment/${e.data.MatterWorkId}`); \n break;\n case MatterWorkTypeEnum.Auditing:\n this.$router.push(`/auditing/${e.data.MatterWorkId}?cases=${e.data.ClaimedCasesCount}`);\n break;\n default:\n break;\n }\n }\n }\n\n onContentReady(e: any) {\n if (this.firstLoad) {\n this.expandFirstGroup();\n this.firstLoad = false;\n }\n }\n\n async confirmReleaseClaim(data: any) {\n let currentUserId = this.commonState.jwtData.Id;\n \n let ownerString = currentUserId === data.ClaimedById\n ? 'your'\n : `${data.ClaimedBy}'s`;\n \n let casesString = data.ClaimedCasesCount === 1 ? \"case\" : \"cases\";\n let message = `Are you sure you want to release ${ownerString} claim of ${data.ClaimedCasesCount} ${casesString} for ${data.ClientName}?`;\n let releaseConfirmed = await dialog.confirm(message, 'Confirm');\n\n if (releaseConfirmed) {\n notify('Releasing claimed work...', 'info', 4000);\n this.releaseInProgress = true;\n await this.client.sendRequest(HttpMethodEnum.Post, `/api/matterworks/${data.MatterWorkId}/release-matters`)\n .then(result => {\n notify('Claimed work successfully released', 'success', 4000);\n })\n .catch(reason => {\n notify('An error occurred releasing the claimed work', 'error', 4000);\n })\n .finally(() => {\n this.releaseInProgress = false;\n });\n\n if (this.matterWorkType === MatterWorkTypeEnum.Auditing) {\n const auditCompleted = await this.auditingService.auditCompleted(data.ClientId);\n if (auditCompleted.Value) {\n const dto: BatchEventTypeDateDto = {\n BatchEventType: BatchEventTypeEnum.ReportAvailable,\n BatchEventDateType: BatchEventDateTypeEnum.ScheduledDate\n };\n \n try { \n const date = await this.batchService.getBatchEventTypeDate(data.ClientId, dto);\n if (date.Data.reportAvailableDate != null) {\n const formattedDate = (this.$options.filters as any).moment(date, \"MM-DD-YYYY\");\n const sendReportingMsg = `Are these ready to be reported on? These will be automatically sent on ${formattedDate}.`;\n const okayToSendReporting = await dialog.confirm(sendReportingMsg, 'Confirm');\n if (okayToSendReporting) {\n await this.batchService.setReadyForReporting(data.ClientId);\n }\n }\n else { \n notify('Report Available Batch Event not found.','error', 10000);\n return;\n }\n } catch (error) { \n notify('Error occured while Releasing Matters.','error', 10000);\n return;\n } \n }\n }\n\n this.$emit(\"claimed-work-released\");\n }\n\n return false;\n } \n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./claimed-work.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./claimed-work.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./claimed-work.vue?vue&type=template&id=628698de&scoped=true&\"\nimport script from \"./claimed-work.vue?vue&type=script&lang=ts&\"\nexport * from \"./claimed-work.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./claimed-work.vue?vue&type=style&index=0&id=628698de&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"628698de\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{staticClass:\"browse-mode-selection\",attrs:{\"visible\":_vm.showDialog,\"title\":\"Browse\",\"width\":\"25%\",\"height\":\"57%\"},on:{\"hiding\":_vm.hidingPopup,\"update:visible\":function($event){_vm.showDialog=$event}}},[_c('dx-scroll-view',[_c('dx-load-indicator',{attrs:{\"visible\":(!_vm.clientsLoaded && !_vm.errorMessage) || _vm.loadingCases}}),_c('div',[_c('alert-message',{staticStyle:{\"margin-bottom\":\"15px\"},attrs:{\"type\":\"error\",\"message\":_vm.errorMessage,\"isHtml\":true}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.clientsLoaded && !_vm.loadingCases),expression:\"clientsLoaded && !loadingCases\"}],staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Client\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"searchEnabled\":true,\"value\":_vm.clientId,\"value-expr\":\"ClientId\",\"display-expr\":\"ClientName\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.clientId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),(_vm.clientDataLoading && !_vm.errorMessage)?_c('dx-load-indicator'):[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Batch\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.batches,\"searchEnabled\":true,\"value\":_vm.batchId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.batchId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Countries\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.countries,\"searchEnabled\":true,\"value\":_vm.countryIds,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"show-selection-controls\":true,\"apply-value-mode\":\"useButtons\",\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.countryIds=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Agents\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.agents,\"searchEnabled\":true,\"value\":_vm.agentIds,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"show-selection-controls\":true,\"apply-value-mode\":\"useButtons\",\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.agentIds=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Filing Type\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.filingTypes,\"searchEnabled\":true,\"value\":_vm.filingTypeId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.filingTypeId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Phase\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"searchEnabled\":true,\"value\":_vm.phaseTypeId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.phaseTypeId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Confident\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-radio-group',{attrs:{\"items\":_vm.confidentRadioOptions,\"disabled\":!_vm.clientDataReady,\"value\":_vm.isConfident,\"value-expr\":\"value\",\"display-expr\":\"text\"},on:{\"update:value\":function($event){_vm.isConfident=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Has Internal Notes\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.hasInternalNotes,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.hasInternalNotes=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Has Report Language\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.hasReportLanguage,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.hasReportLanguage=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Claim Set\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.claimSet,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.claimSet=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"User Reviewed Mode\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.userReviewedMode,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.userReviewedMode=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Notes\")]),_c('div',{staticClass:\"dx-field-value\",staticStyle:{\"height\":\"54px\"}},[_c('dx-text-area',{attrs:{\"height\":\"100%\",\"value\":_vm.notes,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.notes=$event},\"change\":_vm.notesChange}})],1)])]],2)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.loadCasesButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { DxButton, DxLoadIndicator, DxLookup, DxRadioGroup, DxCheckBox, DxScrollView, DxTextArea } from 'devextreme-vue';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTagBox } from 'devextreme-vue/tag-box';\nimport { Popup, AlertMessage } from '@questelservices/common-vue';\nimport { QuestelServicesClient, RequestResult } from '@questelservices/common';\nimport { ClientService } from '../../service/ClientService';\nimport { ClientDto } from '../../models/client/ClientDto';\nimport { SelectOption } from '../../models/SelectOption';\nimport { uniqBy, sortBy } from 'lodash';\nimport { BrowseSelectionDataDto } from '../../models/browse-mode/BrowseSelectionDataDto';\nimport { CreateMatterWorkDto } from '../../models/browse-mode/CreateMatterWorkDto';\nimport string from '@/utilities/String';\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\n\n@Component({\n components: {\n DxButton,\n DxPopup,\n DxLoadIndicator,\n DxLookup,\n DxRadioGroup,\n DxCheckBox,\n DxScrollView,\n DxTagBox,\n DxToolbarItem,\n DxTextArea,\n AlertMessage\n }\n})\nexport default class BrowseModeSelectionDialog extends Vue {\n private showDialog: boolean = false;\n \n errorMessage: string = '';\n loadingCases: boolean = false;\n \n get loadCasesButtonOptions(): any {\n return {\n disabled: !this.clientDataReady || this.loadingCases,\n text: 'Load Cases',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.loadCases,\n };\n }\n\n clients: ClientDto[] = [];\n clientsLoaded: boolean = false;\n\n clientData: BrowseSelectionDataDto[] = [];\n clientDataLoading: boolean = false;\n get clientDataReady() : boolean {\n return this.clientData && this.clientData.length > 0;\n }\n\n confidentRadioOptions: any[] = [\n { value: null, text: 'All Cases' },\n { value: false, text: 'Low Confidence Only' },\n { value: true, text: 'High Confidence Only' },\n ];\n\n clientId: Guid | null = null;\n batchId: Guid | null = null;\n countryIds: number[] = [];\n agentIds: Guid[] = [];\n filingTypeId: number | null = null;\n phaseTypeId: number | null = null;\n isConfident: boolean | null = null;\n hasInternalNotes: boolean = false;\n hasReportLanguage: boolean = false;\n claimSet: boolean = false;\n notes: string = '';\n useCustomNotes: boolean = false;\n userReviewedMode: boolean = false;\n \n @Watch('clientId')\n onClientIdChanged(value: Guid | null, oldValue: Guid | null) {\n this.resetAllExceptClientId();\n this.clientData = [];\n if(value != null) { \n this.clientDataLoading = true;\n this.client.get(`/api/ActivityPlanner/browse-selection-data/${value}`)\n .then(data => {\n this.clientData = data;\n this.clientDataLoading = false;\n })\n .catch(this.handleDataLoadingError);\n }\n }\n\n private handleDataLoadingError(result: any) {\n let message = result && result.Message\n ? ' Error Message:

' + result.Message\n : '';\n\n this.errorMessage = 'An error occurred loading data. Please try again, or contact support if the error continues.' + message;\n }\n\n private filterClientData() : (data: BrowseSelectionDataDto[], field: 'batch' | 'country' | 'agent' | 'filingType' | 'phase') => BrowseSelectionDataDto[] {\n return (data, field) => {\n if (field !== 'batch') {\n data = data.filter(d => this.batchId == null || this.batchId == d.BatchId);\n }\n\n if (field !== 'country') {\n data = data.filter(d => this.countryIds.length === 0 || this.countryIds.includes(d.CountryId));\n }\n\n if (field !== 'agent') {\n data = data.filter(d => this.agentIds.length === 0 || this.agentIds.includes(d.AgentId));\n }\n\n if (field !== 'filingType') {\n data = data.filter(d => this.filingTypeId == null || this.filingTypeId == d.FilingTypeId);\n }\n\n if (field !== 'phase') {\n data = data.filter(d => this.phaseTypeId == null || this.phaseTypeId == d.PhaseTypeId);\n }\n\n return data;\n }\n }\n\n private sortSelectOptions(data: SelectOption[], sortDescending: boolean = false) : SelectOption[] {\n let uniqueData = uniqBy(data, d => d.value);\n let sortedData = sortBy(uniqueData, d => d.text);\n if(sortDescending) {\n sortedData = sortedData.reverse();\n }\n return sortedData;\n }\n\n get batches() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'batch').map(d => {\n return {\n text: d.BatchName,\n value: d.BatchId\n };\n }), true);\n }\n\n get countries() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'country').map(d => {\n return {\n text: d.CountryCode,\n value: d.CountryId\n };\n }));\n }\n\n get agents() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'agent').map(d => {\n return {\n text: d.AgentName,\n value: d.AgentId\n };\n }));\n }\n\n get filingTypes() : SelectOption[] {\n let filteredData = this.filterClientData()(this.clientData, 'filingType');\n let uniqueData = uniqBy(filteredData, d => d.FilingTypeId);\n let sortedData = sortBy(uniqueData, d => d.FilingTypeId);\n return sortedData.map(d => {\n return {\n text: d.FilingTypeName,\n value: d.FilingTypeId\n };\n });\n }\n\n get phaseTypes(): SelectOption[] {\n let filteredData = this.filterClientData()(this.clientData, 'phase').filter(d => d.PhaseTypeId != null);\n let uniqueData = uniqBy(filteredData, d => d.PhaseTypeId);\n let sortedData = sortBy(uniqueData, d => d.PhaseTypeOrder);\n return sortedData.map(d => {\n // The nulls were filtered out, so declare these are the right type\n return {\n text: d.PhaseTypeName as string,\n value: d.PhaseTypeId as number\n };\n });\n }\n\n getPostData(): CreateMatterWorkDto {\n return {\n MatterWorkType: MatterWorkTypeEnum.Coding,\n // this.clientId should not be null at this point, so declare it as the right type\n ClientId: this.clientId as Guid,\n BatchId: this.batchId,\n CountryIds: this.countryIds,\n AgentIds: this.agentIds,\n FilingTypeId: this.filingTypeId,\n PhaseTypeId: this.phaseTypeId,\n IsConfident: this.isConfident,\n HasInternalNotes: this.hasInternalNotes,\n HasReportLanguage: this.hasReportLanguage,\n ClaimSet: this.claimSet,\n Notes: this.notes,\n UserReviewedMode: this.userReviewedMode\n }\n }\n\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private clientService: ClientService = new ClientService();\n\n mounted() : void {\n this.clientService.getAll().then(clients => {\n this.clients = clients;\n this.clientsLoaded = true;\n })\n .catch(this.handleDataLoadingError);\n }\n\n private reset() : void {\n this.clientId = null;\n this.resetAllExceptClientId();\n }\n\n private resetAllExceptClientId() : void {\n this.batchId = null;\n this.countryIds = [];\n this.agentIds = [];\n this.phaseTypeId = null;\n this.isConfident = null;\n this.hasInternalNotes = false;\n this.hasReportLanguage = false;\n this.claimSet = false;\n this.errorMessage = '';\n\n if (!this.useCustomNotes) {\n this.notes = '';\n }\n }\n\n filterValueChanged(e: any) {\n if (this.useCustomNotes) {\n return;\n }\n\n let parts: string[] = [];\n\n if (this.batchId != null) {\n let batch = this.batches.find(b => b.value === this.batchId);\n if (batch != null) {\n parts.push(batch.text);\n }\n }\n\n if (this.countryIds.length > 0) {\n let countries: string[] = [];\n this.countryIds.forEach(countryId => {\n let country = this.countries.find(c => c.value === countryId);\n if (country != null) {\n countries.push(country.text);\n }\n });\n\n if (countries.length > 0) {\n parts.push(sortBy(countries).join(', '));\n }\n }\n\n if (this.agentIds.length > 0) {\n let agents: string[] = [];\n this.agentIds.forEach(agentId => {\n let agent = this.agents.find(a => a.value === agentId);\n if (agent != null) {\n agents.push(agent.text);\n }\n });\n\n if (agents.length > 0) {\n parts.push(sortBy(agents).join(', '));\n }\n }\n\n if (this.filingTypeId != null) {\n let filingType = this.filingTypes.find(f => f.value === this.filingTypeId);\n if (filingType != null) {\n parts.push(filingType.text);\n }\n }\n\n if (this.phaseTypeId != null) {\n let phaseType = this.phaseTypes.find(p => p.value === this.phaseTypeId);\n if (phaseType != null) {\n parts.push(phaseType.text);\n }\n }\n\n if (this.isConfident != null) {\n if (this.isConfident) {\n parts.push('HC');\n } else {\n parts.push('LC');\n }\n }\n\n if (this.hasInternalNotes) {\n parts.push('Has Internal Notes');\n }\n\n if (this.hasReportLanguage) {\n parts.push('Has Report Language');\n }\n\n this.notes = parts.join(', ');\n }\n\n notesChange() {\n this.useCustomNotes = !string.isNullOrEmpty(this.notes);\n }\n\n private async loadCases() : Promise {\n this.errorMessage = '';\n this.loadingCases = true;\n this.client.getPostData>('/api/MatterWorks', this.getPostData())\n .then(result => {\n if(result.Success) { \n this.$router.push({ name: 'phase-assignment', params: { id: result.Data!.MatterWorkId as string } }); \n } else if(result.Message) {\n this.errorMessage = result.Message\n }\n })\n .catch(this.handleDataLoadingError)\n .finally(() => {\n this.loadingCases = false;\n });\n }\n\n show() {\n this.showDialog = true;\n }\n\n private hidingPopup(): void {\n this.reset();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./browse-mode-selection-dialog.vue?vue&type=template&id=1ac33fa8&scoped=true&\"\nimport script from \"./browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./browse-mode-selection-dialog.vue?vue&type=style&index=0&id=1ac33fa8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ac33fa8\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { DataGrid, PageTitle } from '@questelservices/common-vue';\nimport { DxButton, DxPopup, DxProgressBar } from 'devextreme-vue';\nimport ClientSummary from '@/components/activity-planner/client-summary.vue';\nimport {\n DxColumn,\n DxFilterRow,\n DxLoadPanel,\n DxPager,\n DxPaging,\n DxRemoteOperations\n} from 'devextreme-vue/data-grid';\nimport ClaimDialog from '@/views/activity-planner_claim-dialog.vue';\nimport ClaimedWork from '@/components/activity-planner/claimed-work.vue';\nimport BrowseModeSelectionDialog from '@/components/browse-mode/browse-mode-selection-dialog.vue';\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport { ActivityPlannerService } from '@/service/ActivityPlannerService';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { BatchTypeEnum } from '@/models/batch/BatchTypeEnum';\n\n@Component({\n components: {\n BrowseModeSelectionDialog,\n ClaimDialog,\n ClaimedWork,\n ClientSummary,\n DataGrid,\n DxButton,\n DxColumn,\n DxFilterRow,\n DxLoadPanel,\n DxPager,\n DxPaging,\n DxPopup,\n DxProgressBar,\n DxRemoteOperations,\n PageTitle\n }\n})\nexport default class Coding extends Vue {\n public $refs: Vue['$refs'] & {\n availableWorkDataGrid?: DataGrid;\n availableSavingsReportWorkDataGrid?: DataGrid;\n claimedWork?: ClaimedWork;\n } = {};\n\n public readonly savingsReportTableRef: string = 'availableSavingsReportWorkDataGrid';\n public readonly browseModeDialogRef: string = 'browseModeDialogRef';\n public readonly claimDialogRef: string = 'claimDialogRef';\n public readonly clientSummaryRef: string = 'clientSummaryRef';\n public readonly codingWorkType: MatterWorkTypeEnum = MatterWorkTypeEnum.Coding;\n public readonly productionBatchType: BatchTypeEnum = BatchTypeEnum.Production;\n public readonly savingsReportBatchType: BatchTypeEnum = BatchTypeEnum.SavingsReport;\n\n activityPlannerService: ActivityPlannerService; \n productionDataStoreOptions: DevExpress.data.CustomStoreOptions;\n savingsReportStoreOptions: DevExpress.data.CustomStoreOptions;\n\n savingsReportTableVisible: boolean = true;\n\n constructor() {\n super();\n\n this.activityPlannerService = new ActivityPlannerService('/api');\n this.productionDataStoreOptions = { \n load: loadOptions => \n this.activityPlannerService\n .getAvailableWork(loadOptions, MatterWorkTypeEnum.Coding, BatchTypeEnum.Production) \n };\n\n this.savingsReportStoreOptions = { \n load: loadOptions => \n this.activityPlannerService\n .getAvailableWork(loadOptions, MatterWorkTypeEnum.Coding, BatchTypeEnum.SavingsReport) \n .then(result => { \n let showSavingsTable = result.data.length > 0 ? true : false;\n this.updateDisplay(showSavingsTable);\n return result;\n }) \n };\n }\n \n updateDisplay(isVisble: boolean) {\n this.savingsReportTableVisible = isVisble;\n }\n\n private get savingsReportTable() {\n return this.$refs[this.savingsReportTableRef] as DataGrid;\n }\n\n private get browseModeDialog() {\n return this.$refs[this.browseModeDialogRef] as BrowseModeSelectionDialog;\n }\n\n private get claimDialog() {\n return this.$refs[this.claimDialogRef] as ClaimDialog;\n }\n\n private get clientSummary() {\n return this.$refs[this.clientSummaryRef] as ClientSummary;\n }\n\n claimWorkRow(row: any, all: boolean, matterWorkType: MatterWorkTypeEnum) {\n this.claimDialog.clientId = row.ClientId;\n this.claimDialog.matterWorkType = matterWorkType;\n this.claimDialog.isClaimAll = all;\n this.claimDialog.show();\n }\n\n onDataErrorOccurred(e: any) {\n if (e != null && e.error != null) {\n e.error.message = 'Failed to load data.';\n }\n }\n\n refreshDataGrid() {\n if (this.$refs.availableWorkDataGrid) {\n (this.$refs.availableWorkDataGrid as any).refreshDataGrid();\n }\n\n if (this.$refs.availableSavingsReportWorkDataGrid) {\n (this.$refs.availableSavingsReportWorkDataGrid as any).refreshDataGrid();\n }\n\n if (this.$refs.claimedWork) {\n (this.$refs.claimedWork as any).refreshDataGrid();\n }\n }\n\n openBrowseModeDialog() {\n this.browseModeDialog.show();\n }\n\n showClientSummary() {\n this.clientSummary.show();\n }\n}\n","import { SelectOption } from '../SelectOption';\n\nexport enum BatchSnapshotStatusEnum {\n Created = 1,\n InProgress,\n Failed,\n Cancelled,\n Completed\n}\n\nexport enum BatchSnapshotStatusNameEnum {\n Created = 'Created',\n InProgress = 'In Progress',\n Failed = 'Failed',\n Cancelled = 'Cancelled',\n Completed = 'Completed'\n }\n\nexport const BatchSnapshotStatuses: SelectOption[] = [\n { value: BatchSnapshotStatusEnum.Created, text: BatchSnapshotStatusNameEnum.Created },\n { value: BatchSnapshotStatusEnum.InProgress, text: BatchSnapshotStatusNameEnum.InProgress },\n { value: BatchSnapshotStatusEnum.Failed, text: BatchSnapshotStatusNameEnum.Failed },\n { value: BatchSnapshotStatusEnum.Cancelled, text: BatchSnapshotStatusNameEnum.Cancelled },\n { value: BatchSnapshotStatusEnum.Completed, text: BatchSnapshotStatusNameEnum.Completed }\n];\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./coding.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./coding.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./coding.vue?vue&type=template&id=d843b498&scoped=true&\"\nimport script from \"./coding.vue?vue&type=script&lang=ts&\"\nexport * from \"./coding.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./coding.vue?vue&type=style&index=0&id=d843b498&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d843b498\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Batch Snapshot\")]),_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClientId,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClientId=$event}}}),_c('br'),_c('div',{staticClass:\"snapshot-buttons\"},[_c('div',{staticClass:\"snapshot-button\"},[_c('dx-button',{attrs:{\"text\":\"Resnapshot Batch\",\"visible\":_vm.showButtons},on:{\"click\":_vm.snapshotBatch}})],1),_c('div',{staticClass:\"snapshot-button\"},[_c('dx-button',{attrs:{\"text\":\"Refresh\",\"visible\":_vm.showButtons},on:{\"click\":_vm.refreshBatchSnapshots}})],1)]),_c('br'),(_vm.BatchNameValue)?_c('h2',{staticClass:\"table-heading\"},[_vm._v(\"\\n Batch Snapshots for: \"+_vm._s(_vm.BatchNameValue)+\"\\n \")]):_c('h2',{staticClass:\"table-heading\"},[_vm._v(\"\\n Batch Snapshots\\n \")]),_c('data-grid',{ref:\"batchSnapshotDataGrid\",attrs:{\"custom-store-options\":_vm.dataStoreOptions,\"pageSize\":10}},[_c('dx-column',{attrs:{\"data-field\":\"StartDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"EndDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"Status\",\"data-type\":\"string\"}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.batchSnapshotStatuses,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_vm._v(\" /> \\n \"),_c('dx-column',{attrs:{\"data-field\":\"MatterCount\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"LineItemCount\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"HardOverages\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"SoftOverages\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"Infractions\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"Notes\",\"data-type\":\"number\"}}),_c('dx-column',{attrs:{\"data-field\":\"AnalysisIssues\",\"data-type\":\"number\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { DataGrid, PageTitle } from '@questelservices/common-vue';\nimport { DxButton, DxPopup, DxSelectBox } from 'devextreme-vue';\nimport DxDataGrid, {\n DxColumn,\n DxLookup\n} from 'devextreme-vue/data-grid';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { BatchService } from '../../service/BatchService';\nimport { ClientService } from '../../service/ClientService';\nimport { SelectOption } from '../../models/SelectOption';\nimport { BatchDetailsDto } from '@/models/batch/BatchDetailsDto';\nimport { BatchSnapshotDto } from '@/models/batch/BatchSnapshotDto';\nimport { BatchSnapshotStatuses } from '../../models/batch/BatchSnapshotStatusEnum';\nimport dialog from 'devextreme/ui/dialog';\nimport { dxPolarChartArgumentAxisMinorTick } from 'devextreme/viz/polar_chart';\nimport DateTime from '@/utilities/DateTime';\n\n@Component({\n components: {\n DataGrid,\n PageTitle,\n DxButton,\n DxColumn,\n DxLookup,\n DxSelectBox\n }\n})\nexport default class BatchSnapshot extends Vue {\n $refs: Vue['$refs'] & {\n batchSnapshotDataGrid?: DataGrid;\n } = {};\n\n clients: Array = [];\n selectedClientId: Guid = '';\n batches: Array = [];\n selectedBatchId: Guid = '';\n batchName: string = '';\n batchSnapshots: Array = [];\n batchSnapshotStatuses: Array = BatchSnapshotStatuses;\n\n batchService: BatchService = new BatchService();\n clientService: ClientService = new ClientService();\n \n constructor() {\n super();\n }\n\n mounted() {\n this.loadData(); \n } \n\n async loadData() {\n let clients = await this.clientService.getAll();\n this.clients = clients.map(c => { return { text: c.ClientName, value: c.ClientId } });\n }\n\n @Watch('selectedClientId')\n private async onClientChange() {\n this.resetBatchData();\n if(this.selectedClientId) {\n await this.loadBatches();\n }\n } \n\n @Watch('selectedBatchId')\n private async onBatchChange() {\n this.batchSnapshots = [];\n if (this.selectedBatchId != null && this.selectedBatchId != '') {\n this.batchSnapshots = await this.batchService.getBatchSnapshots(this.selectedBatchId);\n }\n this.refreshDataGrid();\n }\n\n private async loadBatches() {\n this.batches = await this.batchService.getClientBatches(this.selectedClientId, true);\n if (this.batches == null || this.batches.length == 0) {\n this.batches = [];\n this.selectedBatchId = '';\n this.batchName = ''; \n }\n else {\n let latestBatch = this.batches[0];\n this.selectedBatchId = latestBatch.BatchId;\n this.batchName = latestBatch.BatchName\n } \n }\n\n private resetBatchData() {\n this.batches = [];\n this.selectedBatchId = '';\n this.batchName = ''; \n }\n\n get isClientSelected() {\n return this.selectedClientId != null && this.selectedClientId != '';\n }\n\n get isBatchSelected() {\n return this.selectedBatchId != null && this.selectedBatchId != '';\n }\n\n get showButtons() {\n return this.isClientSelected && this.isBatchSelected;\n }\n\n get BatchNameValue() {\n return this.batchName;\n } \n\n private get dataStoreOptions() : DevExpress.data.CustomStoreOptions {\n return {\n key: 'BatchSnapshotId',\n loadMode: 'raw',\n load: () => { return this.batchSnapshots }\n }\n }\n\n private async snapshotBatch() {\n if (this.selectedBatchId != '') {\n let selectedBatch = this.batches.filter(x => x.BatchId == this.selectedBatchId)[0];\n let confirm = await dialog.confirm(`This operation will snapshot ${selectedBatch.MatterCount} matters with ${selectedBatch.LineItemCount} line items. Would you like to continue?`, 'Confirm'); \n if(confirm) { \n await this.batchService.snapshotBatch(selectedBatch.BatchId);\n this.batchSnapshots = await this.batchService.getBatchSnapshots(selectedBatch.BatchId); \n this.refreshDataGrid();\n }\n } \n }\n\n private async refreshBatchSnapshots() {\n if (this.selectedBatchId != null)\n {\n this.batchSnapshots = await this.batchService.getBatchSnapshots(this.selectedBatchId); \n this.refreshDataGrid(); \n } \n }\n\n private refreshDataGrid() {\n if (this.$refs.batchSnapshotDataGrid) {\n (this.$refs.batchSnapshotDataGrid as any).refreshDataGrid();\n\n // set default sort to StartDate\n let datagrid = (this.$refs.batchSnapshotDataGrid.$refs.dxDataGrid as DxDataGrid).instance;\n if (datagrid) {\n datagrid.columnOption('StartDate', 'sortOrder', 'desc');\n }\n } \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-snapshot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-snapshot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./batch-snapshot.vue?vue&type=template&id=79a5532c&scoped=true&\"\nimport script from \"./batch-snapshot.vue?vue&type=script&lang=ts&\"\nexport * from \"./batch-snapshot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./batch-snapshot.vue?vue&type=style&index=0&id=79a5532c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79a5532c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Auditing\")]),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"icon\":\"refresh\",\"text\":\"Refresh\"},on:{\"click\":_vm.refreshDataGrid}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Browse\",\"icon\":\"globe\"},on:{\"click\":_vm.openBrowseModeDialog}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Reports\",\"icon\":\"chart\"},on:{\"click\":_vm.showReportDialog}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Client Summary\",\"icon\":\"bulletlist\"},on:{\"click\":_vm.showClientSummary}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"text\":\"Analysis Text Review\",\"icon\":\"bulletlist\"},on:{\"click\":_vm.showTextReview}}),_c('div',{staticClass:\"auditing-work\"},[_c('h3',[_vm._v(\"Available Auditing Work\")]),_c('data-grid',{ref:\"availableAuditingWorkDataGrid\",staticClass:\"available-work-data-grid\",attrs:{\"custom-store-options\":_vm.productionDataStoreOptions,\"columnResizingMode\":\"nextColumn\",\"noDataText\":\"No work available.\",\"paging\":{ enabled: false },\"scrolling\":{ mode: 'infinite' },\"height\":\"450px\"},on:{\"data-error-occurred\":_vm.onDataErrorOccurred},scopedSlots:_vm._u([{key:\"claimTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, false, _vm.auditingWorkType);}}},[_vm._v(\"Claim\")])],1)}},{key:\"claimAllTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, true, _vm.auditingWorkType);}}},[_vm._v(\"Claim All\")])],1)}}])},[_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"caption\":\"Client\"}}),_c('dx-column',{attrs:{\"width\":150,\"data-field\":\"DueDate\",\"data-type\":\"datetime\",\"caption\":\"Due Date\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"AgentCount\",\"data-type\":\"string\",\"caption\":\"Agents\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"CountryCount\",\"data-type\":\"string\",\"caption\":\"Countries\"}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Available Matters\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Line Items\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"HardOverages\",\"data-type\":\"string\",\"caption\":\"Hard Overages\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"SoftOverages\",\"data-type\":\"string\",\"caption\":\"Soft Overages\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"Infractions\",\"data-type\":\"string\",\"caption\":\"Infractions\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"Notes\",\"data-type\":\"string\",\"caption\":\"Notes\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AnalysisCases\",\"data-type\":\"string\",\"caption\":\"Analysis Cases\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimTemplate\"}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimAllTemplate\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_vm._t(\"remote-operations\",[_c('dx-remote-operations',{attrs:{\"filtering\":true,\"paging\":true,\"sorting\":true}})])],2),_c('hr',{staticStyle:{\"margin-top\":\"25px\",\"margin-bottom\":\"20px\"}}),_c('h3',[_vm._v(\"Available Savings Report Auditing Work\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.savingsReportTableVisible),expression:\"savingsReportTableVisible\"}]},[_c('data-grid',{ref:\"availableSavingsReportWorkDataGrid\",staticClass:\"available-work-data-grid\",attrs:{\"custom-store-options\":_vm.savingsReportStoreOptions,\"columnResizingMode\":\"nextColumn\",\"noDataText\":\"No work available.\",\"paging\":{ enabled: false },\"scrolling\":{ mode: 'infinite' },\"height\":\"450px\"},on:{\"data-error-occurred\":_vm.onDataErrorOccurred},scopedSlots:_vm._u([{key:\"claimTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, false, _vm.auditingWorkType);}}},[_vm._v(\"Claim\")])],1)}},{key:\"claimAllTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('dx-button',{on:{\"click\":function($event){return _vm.claimWorkRow(data.data, true, _vm.auditingWorkType);}}},[_vm._v(\"Claim All\")])],1)}}])},[_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"caption\":\"Client\"}}),_c('dx-column',{attrs:{\"width\":150,\"data-field\":\"DueDate\",\"data-type\":\"datetime\",\"caption\":\"Due Date\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"AgentCount\",\"data-type\":\"string\",\"caption\":\"Agents\"}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"CountryCount\",\"data-type\":\"string\",\"caption\":\"Countries\"}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Available Matters\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Line Items\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"HardOverages\",\"data-type\":\"string\",\"caption\":\"Hard Overages\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"SoftOverages\",\"data-type\":\"string\",\"caption\":\"Soft Overages\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"Infractions\",\"data-type\":\"string\",\"caption\":\"Infractions\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"Notes\",\"data-type\":\"string\",\"caption\":\"Notes\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AnalysisCases\",\"data-type\":\"string\",\"caption\":\"Analysis Cases\",\"allow-sorting\":false}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimTemplate\"}}),_c('dx-column',{attrs:{\"allow-sorting\":false,\"width\":65,\"cell-template\":\"claimAllTemplate\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_vm._t(\"remote-operations\",[_c('dx-remote-operations',{attrs:{\"filtering\":true,\"paging\":true,\"sorting\":true}})])],2)],1),_c('hr',{staticStyle:{\"margin-top\":\"25px\",\"margin-bottom\":\"20px\"}}),_c('claimed-work',{ref:\"claimedAuditingWork\",attrs:{\"matterWorkType\":_vm.auditingWorkType,\"title\":\"Claimed Auditing Work\"},on:{\"claimed-work-released\":_vm.refreshDataGrid}})],1),_c('claim-dialog',{ref:_vm.claimDialogRef}),_c('auditing-browse-mode-selection-dialog',{ref:_vm.browseModeDialogRef}),_c('report-on-demand',{ref:_vm.reportDialogRef}),_c('client-summary',{ref:_vm.clientSummaryRef}),_c('analysis-text-review',{ref:_vm.analysisTextReviewRef})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"width\":\"550\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Reports\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"hidden\":_vm.onHidden}},[_c('dx-load-panel',{attrs:{\"visible\":_vm.downloadInProgress},on:{\"update:visible\":function($event){_vm.downloadInProgress=$event}}}),_c('dx-tabs',{attrs:{\"data-source\":_vm.tabs,\"selected-index\":_vm.selectedTab},on:{\"update:selectedIndex\":function($event){_vm.selectedTab=$event},\"update:selected-index\":function($event){_vm.selectedTab=$event}}}),(_vm.selectedTab==0)?_c('div',[_c('div',{staticClass:\"dx-card\"},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field-header\"},[_vm._v(\"Analysis Report\")]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Select Client\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{ref:\"clientAnalysisRef\",attrs:{\"data-source\":_vm.clientAnalysisStore,\"valueExpr\":\"ClientId\",\"displayExpr\":\"ClientName\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"value\":_vm.selectedAnalysisClient,\"displayValue\":_vm.selectedAnalysisClientName,\"stylingMode\":\"outlined\",\"placeholder\":\"Select a client\",\"popup-height\":_vm.getPopupHeight},on:{\"update:value\":function($event){_vm.selectedAnalysisClient=$event},\"update:displayValue\":function($event){_vm.selectedAnalysisClientName=$event},\"update:display-value\":function($event){_vm.selectedAnalysisClientName=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Select Batch\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{ref:\"batchAnalysisRef\",attrs:{\"data-source\":_vm.batchSelectionStore,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedAnalysisBatchId,\"displayValue\":_vm.selectedAnalysisBatchName,\"stylingMode\":\"outlined\",\"disabled\":_vm.selectedAnalysisClient == null,\"show-clear-button\":true,\"placeholder\":\"Select a batch\",\"popup-height\":_vm.getPopupHeight},on:{\"update:value\":function($event){_vm.selectedAnalysisBatchId=$event},\"update:displayValue\":function($event){_vm.selectedAnalysisBatchName=$event},\"update:display-value\":function($event){_vm.selectedAnalysisBatchName=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('dx-button',{attrs:{\"icon\":\"export\",\"text\":\"Display Analysis Report\",\"styling-mode\":\"contained\",\"type\":\"default\"},on:{\"click\":_vm.displayAnalysisReport}})],1)])]),_c('div',{staticClass:\"dx-card\"},[_c('div',{staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field-header\"},[_vm._v(\"Auditor Report\")]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Select Client\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{ref:\"clientAuditorRef\",attrs:{\"data-source\":_vm.clientAuditStore,\"valueExpr\":\"ClientId\",\"displayExpr\":\"ClientName\",\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"value\":_vm.selectedAuditClient,\"displayValue\":_vm.selectedAuditClientName,\"placeholder\":\"Select a client\",\"popup-height\":_vm.getPopupHeight,\"stylingMode\":\"outlined\"},on:{\"update:value\":function($event){_vm.selectedAuditClient=$event},\"update:displayValue\":function($event){_vm.selectedAuditClientName=$event},\"update:display-value\":function($event){_vm.selectedAuditClientName=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Select Agents\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{ref:\"agentsRef\",attrs:{\"dataSource\":_vm.AgentStore,\"displayExpr\":\"text\",\"valueExpr\":\"value\",\"showSelectionControls\":true,\"search-enabled\":true,\"placeholder\":\"Select a agent\",\"applyValueMode\":\"useButtons\",\"value\":_vm.selectedAuditAgents,\"disabled\":_vm.selectedAuditClient == null,\"stylingMode\":\"outlined\"},on:{\"update:value\":function($event){_vm.selectedAuditAgents=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Select Batch\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{ref:\"batchAuditorRef\",attrs:{\"data-source\":_vm.batchAuditSelectionStore,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedAuditBatchId,\"displayValue\":_vm.selectedAuditBatchName,\"disabled\":_vm.selectedAuditClient == null,\"show-clear-button\":true,\"placeholder\":\"Select a batch\",\"popup-height\":_vm.getPopupHeight,\"stylingMode\":\"outlined\"},on:{\"update:value\":function($event){_vm.selectedAuditBatchId=$event},\"update:displayValue\":function($event){_vm.selectedAuditBatchName=$event},\"update:display-value\":function($event){_vm.selectedAuditBatchName=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('dx-button',{attrs:{\"icon\":\"export\",\"text\":\"Display Auditor Report\",\"styling-mode\":\"contained\",\"type\":\"success\"},on:{\"click\":_vm.displayAuditorReport}})],1)])])]):_vm._e(),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'normal', stylingMode: 'contained', onClick: _vm.closePopup },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '../store';\nimport { ReportTypeEnum } from '@/models/ReportTypeEnum';\nimport { BrowseSelectionDataDto } from '@/models/browse-mode/BrowseSelectionDataDto';\n\nexport class ReportService {\n private client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '');\n }\n\n public async getReportOnDemand(batchId: Guid|null, agentIds: Guid[]|null, reportType: ReportTypeEnum): Promise {\n return await this.client.getPostData(`/api/report/on-demand/${batchId}`, {agentIds : agentIds, reportType: reportType});\n }\n public async getReportOptions(clientId: Guid): Promise {\n return await this.client.get(`/api/Report/report-options/${clientId}`);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { DxButton, DxTextBox, DxSelectBox, DxLoadPanel, DxTabs, DxLookup,DxTagBox } from 'devextreme-vue';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport DataSource from \"devextreme/data/data_source\";\nimport notify from 'devextreme/ui/notify';\nimport { confirm, alert } from 'devextreme/ui/dialog';\nimport { ClientDto } from '../../models/client/ClientDto';\nimport _ from 'lodash';\nimport { AgentDto } from '../../models/agent/AgentDto';\nimport { BatchDetailsDto } from '../../models/batch/BatchDetailsDto';\nimport { ClientService } from '../../service/ClientService';\nimport { BatchService } from '../../service/BatchService';\nimport { ReportService } from '../../service/ReportService';\nimport { BrowseSelectionDataDto } from '../../models/browse-mode/BrowseSelectionDataDto';\nimport { SelectOption } from '../../models/SelectOption';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ClientAgentAliasDto } from '../../models/client-agent/ClientAgentAliasDto';\nimport Lookup from 'devextreme/ui/lookup';\nimport FileSaver, { saveAs } from 'file-saver';\nimport { FileHelpers } from '@questelservices/common-vue';\nimport { ReportTypeEnum } from '../../models/ReportTypeEnum';\nimport TagBox from \"devextreme/ui/tag_box\";\n\n@Component({\n components: {\n DxButton,\n DxTextBox,\n DxPopup,\n DxToolbarItem,\n DxSelectBox,\n DxLookup,\n DxLoadPanel,\n DxTabs,\n DxTagBox\n }\n})\nexport default class ReportOnDemand extends Vue {\n public $refs: Vue['$refs'] & {\n clientAnalysisRef?: Lookup;\n clientAuditorRef?: Lookup;\n batchAnalysisRef?: Lookup;\n batchAuditorRef?: Lookup;\n agentsRef?: TagBox;\n } = {};\n\n private showDialog: boolean = false;\n private selectedTab: number = 0;\n private selectedAnalysisClient: string | null = null;\n private selectedAnalysisClientName: string = '';\n private selectedAnalysisBatchId: string | null = null;\n private selectedAnalysisBatchName: string = '';\n private selectedAnalysisClientData: Array = [];\n private selectedAuditClient: string | null = null;\n private selectedAuditClientName: string = '';\n private selectedAuditAgents: Guid[] = [];\n private selectedAuditBatchId: string | null = null;\n private selectedAuditBatchName: string = '';\n private selectedAuditClientData: Array = [];\n private clientService: ClientService;\n private batchService: BatchService;\n private client: QuestelServicesClient;\n private reportService: ReportService;\n private downloadInProgress: boolean = false;\n private tabs = [\n { id: 0, text: 'Monthly Reports' }\n ];\n\n get clientAnalysisStore(): CustomStore {\n return this.clientStore();\n }\n\n constructor() {\n super();\n this.clientService = new ClientService();\n this.batchService = new BatchService();\n this.reportService = new ReportService();\n this.client = new QuestelServicesClient(this.$store, '');\n }\n\n get clientAuditStore(): CustomStore {\n return this.clientStore();\n }\n\n get batchSelectionStore() :CustomStore {\n this.selectedAnalysisBatchId = null;\n return this.batchAgentStore(this.selectedAnalysisClient);\n }\n\n get batchAuditSelectionStore() : CustomStore {\n this.selectedAuditBatchId = null;\n return this.batchAgentStore(this.selectedAuditClient);\n }\n\n get AgentStore() : CustomStore {\n this.selectedAuditAgents = [];\n return this.batchAgentStore(this.selectedAuditClient, 'agent');\n }\n\n clientStore(): CustomStore {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n return this.clientService.getAll();\n }\n });\n }\n batchAgentStore(clientId : string| null = null, type: 'batch' | 'agent' = 'batch'): CustomStore {\n return new CustomStore({\n loadMode: 'raw',\n load: (options): Promise => {\n if (clientId) {\n return this.reportService.getReportOptions(clientId)\n .then(data => {\n var result = data.map(x => {\n if(type === 'batch') {\n return {\n text: x.BatchName,\n value: x.BatchId\n } \n }\n else {\n return {\n text: x.AgentName,\n value: x.AgentId\n } \n }\n \n });\n\n return this.sortSelectOptions(result, type === 'batch');\n })\n .catch(this.handleDataLoadingError);\n }\n else {\n return Promise.resolve([]);\n }\n }\n });\n }\n\n \n\n private handleDataLoadingError(reason: any) {\n let message = 'An error occurred loading data. Please try again, or contact support if the error continues.';\n alert(message, 'Error');\n }\n\n private sortSelectOptions(data: SelectOption[], descending: boolean = false) {\n let uniqueData = _.uniqBy(data, d => d.value);\n let sortedData = _.sortBy(uniqueData, d => d.text);\n if (descending) {\n sortedData = sortedData.reverse();\n }\n\n return sortedData;\n }\n\n show() {\n this.showDialog = true;\n }\n\n closePopup() {\n this.showDialog = false;\n }\n\n onHidden() {\n this.reset();\n }\n\n getPopupHeight(): number {\n return window.innerHeight / 3.0;\n }\n\n private reset() {\n this.selectedAnalysisClient = null;\n this.selectedAnalysisBatchId = null;\n this.selectedAuditClient = null;\n this.selectedAuditAgents = [];\n this.selectedAuditBatchId = null;\n }\n\n async displayAnalysisReport() {\n if (this.selectedAnalysisClient == null) {\n alert('Please select a client.', 'Missing selection');\n\n return;\n }\n\n if (this.selectedAnalysisBatchId == null) {\n alert('Please select a batch.', 'Missing selection');\n return;\n }\n \n await this.processDownloadOnDemandReports(this.selectedAnalysisBatchId, ReportTypeEnum.Analysis);\n }\n\n async displayAuditorReport() { \n if (this.selectedAuditClient == null) {\n alert('Please select a client.', 'Missing selection');\n return;\n }\n\n if (this.selectedAuditBatchId == null) {\n alert('Please select a batch.', 'Missing selection');\n return;\n }\n \n await this.processDownloadOnDemandReports(this.selectedAuditBatchId, ReportTypeEnum.Auditor);\n }\n\n async processDownloadOnDemandReports(batchId: string, type: ReportTypeEnum) { \n let clientName = type === ReportTypeEnum.Auditor ? this.selectedAuditClientName : this.selectedAnalysisClientName;\n let batchName = type === ReportTypeEnum.Auditor ? this.selectedAuditBatchName : this.selectedAnalysisBatchName;\n \n this.downloadInProgress = true;\n\n let failed: boolean = false; \n let authorizeDownloadResult = await this.reportService.getReportOnDemand(batchId, this.selectedAuditAgents, type)\n .then((res: any) => {\n return res;\n })\n .catch(reason => {\n failed = true;\n alert('An error occurred generating the report. Please contact support.', 'Error');\n return undefined;\n })\n .finally(() => {\n this.downloadInProgress = false;\n });\n \n if (failed) {\n return;\n }\n \n if (authorizeDownloadResult && authorizeDownloadResult.Url && authorizeDownloadResult.Token) {\n await this.client.download(authorizeDownloadResult.Url, authorizeDownloadResult.Token)\n .then(result => {\n let filename = result.headers.get('Filename');\n\n result.blob().then((b: any) => {\n FileSaver.saveAs(b, decodeURIComponent(filename));\n });\n\n if(type === ReportTypeEnum.Auditor) {\n this.processDisplayAgentsWithNoReport(authorizeDownloadResult.Files);\n }\n });\n } else {\n if(this.selectedAuditAgents && this.selectedAuditAgents.length > 0 && type === ReportTypeEnum.Auditor) {\n this.processDisplayAgentsWithNoReport([], true);\n }\n else {\n alert(`${clientName} in ${batchName} didn't have anything to report on.`, 'Report printing cancelled.');\n }\n \n }\n }\n processDisplayAgentsWithNoReport(files: any, hasAllSelected: boolean = false) {\n if(files.length > 0 || hasAllSelected) {\n var selectedAuditAgentNames = ((this.$refs.agentsRef as any).instance as any).getDataSource().items()\n .filter((agent : any) => this.selectedAuditAgents.includes(agent.value))\n .map((agent : any) => agent.text);\n\n var displayString = \"The following agents had nothing to report on:
\";\n var agentsWithNoReports: string[] = [];\n\n _.forEach(selectedAuditAgentNames, agentName => {\n var agentWithReport = _.find(files, item => item.FileName.includes(agentName));\n if(!agentWithReport) {\n agentsWithNoReports.push(`${agentName}`);\n }\n })\n if(agentsWithNoReports.length > 0){\n agentsWithNoReports.forEach((item, index) => {\n var toDisplay = `${item}` + (index < (agentsWithNoReports.length - 1) ? \", \" :\"\");\n if(index && (index % 4 == 0)) {\n toDisplay += \"
\";\n }\n\n displayString += toDisplay;\n });\n alert(`${displayString}`, 'Agents with nothing to report on.');\n }\n\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./report-on-demand.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./report-on-demand.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./report-on-demand.vue?vue&type=template&id=6caf5e36&scoped=true&\"\nimport script from \"./report-on-demand.vue?vue&type=script&lang=ts&\"\nexport * from \"./report-on-demand.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./report-on-demand.vue?vue&type=style&index=0&id=6caf5e36&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6caf5e36\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{staticClass:\"browse-mode-selection\",attrs:{\"visible\":_vm.showDialog,\"title\":\"Browse\",\"width\":\"25%\",\"height\":\"57%\"},on:{\"hiding\":_vm.hidingPopup,\"update:visible\":function($event){_vm.showDialog=$event}}},[_c('dx-scroll-view',[_c('dx-load-indicator',{attrs:{\"visible\":(!_vm.clientsLoaded && !_vm.errorMessage) || _vm.loadingCases}}),_c('div',[_c('alert-message',{staticStyle:{\"margin-bottom\":\"15px\"},attrs:{\"type\":\"error\",\"message\":_vm.errorMessage,\"isHtml\":true}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.clientsLoaded && !_vm.loadingCases),expression:\"clientsLoaded && !loadingCases\"}],staticClass:\"dx-fieldset\"},[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Client\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"searchEnabled\":true,\"value\":_vm.clientId,\"value-expr\":\"ClientId\",\"display-expr\":\"ClientName\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.clientId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),(_vm.clientDataLoading && !_vm.errorMessage)?_c('dx-load-indicator'):[_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Batch\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.batches,\"searchEnabled\":true,\"value\":_vm.batchId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.batchId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Countries\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.countries,\"searchEnabled\":true,\"value\":_vm.countryIds,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"show-selection-controls\":true,\"apply-value-mode\":\"useButtons\",\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.countryIds=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Agents\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-tag-box',{attrs:{\"data-source\":_vm.agents,\"searchEnabled\":true,\"value\":_vm.agentIds,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"show-selection-controls\":true,\"apply-value-mode\":\"useButtons\",\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.agentIds=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Filing Type\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.filingTypes,\"searchEnabled\":true,\"value\":_vm.filingTypeId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.filingTypeId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Phase\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"searchEnabled\":true,\"value\":_vm.phaseTypeId,\"disabled\":!_vm.clientDataReady,\"value-expr\":\"value\",\"display-expr\":\"text\",\"show-clear-button\":true,\"popupHeight\":\"350px\"},on:{\"update:value\":function($event){_vm.phaseTypeId=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Has Internal Notes\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.hasInternalNotes,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.hasInternalNotes=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Has Report Language\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.hasReportLanguage,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.hasReportLanguage=$event},\"valueChanged\":_vm.filterValueChanged}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Claim Set\")]),_c('div',{staticClass:\"dx-field-value\"},[_c('dx-check-box',{attrs:{\"value\":_vm.claimSet,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.claimSet=$event}}})],1)]),_c('div',{staticClass:\"dx-field\"},[_c('div',{staticClass:\"dx-field-label\"},[_vm._v(\"Notes\")]),_c('div',{staticClass:\"dx-field-value\",staticStyle:{\"height\":\"54px\"}},[_c('dx-text-area',{attrs:{\"height\":\"100%\",\"value\":_vm.notes,\"disabled\":!_vm.clientDataReady},on:{\"update:value\":function($event){_vm.notes=$event},\"change\":_vm.notesChange}})],1)])]],2)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.loadCasesButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { DxButton, DxLoadIndicator, DxLookup, DxRadioGroup, DxCheckBox, DxScrollView, DxTextArea } from 'devextreme-vue';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTagBox } from 'devextreme-vue/tag-box';\nimport { Popup, AlertMessage } from '@questelservices/common-vue';\nimport { QuestelServicesClient, RequestResult } from '@questelservices/common';\nimport { ClientService } from '../../service/ClientService';\nimport { ClientDto } from '../../models/client/ClientDto';\nimport { SelectOption } from '../../models/SelectOption';\nimport { uniqBy, sortBy } from 'lodash';\nimport { BrowseSelectionDataDto } from '../../models/browse-mode/BrowseSelectionDataDto';\nimport { CreateMatterWorkDto } from '../../models/browse-mode/CreateMatterWorkDto';\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport string from '@/utilities/String';\n\n@Component({\n components: {\n DxButton,\n DxPopup,\n DxLoadIndicator,\n DxLookup,\n DxRadioGroup,\n DxCheckBox,\n DxScrollView,\n DxTagBox,\n DxToolbarItem,\n DxTextArea,\n AlertMessage\n }\n})\nexport default class AuditingBrowseModeSelectionDialog extends Vue {\n private showDialog: boolean = false;\n \n errorMessage: string = '';\n loadingCases: boolean = false;\n \n get loadCasesButtonOptions(): any {\n return {\n disabled: !this.clientDataReady || this.loadingCases,\n text: 'Load Cases',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.loadCases,\n };\n }\n\n clients: ClientDto[] = [];\n clientsLoaded: boolean = false;\n\n clientData: BrowseSelectionDataDto[] = [];\n clientDataLoading: boolean = false;\n get clientDataReady() : boolean {\n return this.clientData && this.clientData.length > 0;\n }\n\n clientId: Guid | null = null;\n batchId: Guid | null = null;\n countryIds: number[] = [];\n agentIds: Guid[] = [];\n filingTypeId: number | null = null;\n phaseTypeId: number | null = null;\n isConfident: boolean | null = null;\n hasInternalNotes: boolean = false;\n hasReportLanguage: boolean = false;\n claimSet: boolean = false;\n notes: string = '';\n useCustomNotes: boolean = false;\n userReviewedMode: boolean = false;\n \n @Watch('clientId')\n onClientIdChanged(value: Guid | null, oldValue: Guid | null) {\n this.resetAllExceptClientId();\n this.clientData = [];\n if(value != null) { \n this.clientDataLoading = true;\n this.client.get(`/api/ActivityPlanner/browse-selection-data/${value}?matterWorkType=${MatterWorkTypeEnum.Auditing}`)\n .then(data => {\n this.clientData = data;\n this.clientDataLoading = false;\n })\n .catch(this.handleDataLoadingError);\n }\n }\n\n private handleDataLoadingError(result: any) {\n let message = result && result.Message\n ? ' Error Message:

' + result.Message\n : '';\n\n this.errorMessage = 'An error occurred loading data. Please try again, or contact support if the error continues.' + message;\n }\n\n private filterClientData() : (data: BrowseSelectionDataDto[], field: 'batch' | 'country' | 'agent' | 'filingType' | 'phase') => BrowseSelectionDataDto[] {\n return (data, field) => {\n if (field !== 'batch') {\n data = data.filter(d => this.batchId == null || this.batchId == d.BatchId);\n }\n\n if (field !== 'country') {\n data = data.filter(d => this.countryIds.length === 0 || this.countryIds.includes(d.CountryId));\n }\n\n if (field !== 'agent') {\n data = data.filter(d => this.agentIds.length === 0 || this.agentIds.includes(d.AgentId));\n }\n\n if (field !== 'filingType') {\n data = data.filter(d => this.filingTypeId == null || this.filingTypeId == d.FilingTypeId);\n }\n\n if (field !== 'phase') {\n data = data.filter(d => this.phaseTypeId == null || this.phaseTypeId == d.PhaseTypeId);\n }\n\n return data;\n }\n }\n\n private sortSelectOptions(data: SelectOption[], sortDescending: boolean = false) : SelectOption[] {\n let uniqueData = uniqBy(data, d => d.value);\n let sortedData = sortBy(uniqueData, d => d.text);\n if(sortDescending) {\n sortedData = sortedData.reverse();\n }\n return sortedData;\n }\n\n get batches() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'batch').map(d => {\n return {\n text: d.BatchName,\n value: d.BatchId\n };\n }), true);\n }\n\n get countries() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'country').map(d => {\n return {\n text: d.CountryCode,\n value: d.CountryId\n };\n }));\n }\n\n get agents() : SelectOption[] {\n return this.sortSelectOptions(this.filterClientData()(this.clientData, 'agent').map(d => {\n return {\n text: d.AgentName,\n value: d.AgentId\n };\n }));\n }\n\n get filingTypes() : SelectOption[] {\n let filteredData = this.filterClientData()(this.clientData, 'filingType');\n let uniqueData = uniqBy(filteredData, d => d.FilingTypeId);\n let sortedData = sortBy(uniqueData, d => d.FilingTypeId);\n return sortedData.map(d => {\n return {\n text: d.FilingTypeName,\n value: d.FilingTypeId\n };\n });\n }\n\n get phaseTypes(): SelectOption[] {\n let filteredData = this.filterClientData()(this.clientData, 'phase').filter(d => d.PhaseTypeId != null);\n let uniqueData = uniqBy(filteredData, d => d.PhaseTypeId);\n let sortedData = sortBy(uniqueData, d => d.PhaseTypeOrder);\n return sortedData.map(d => {\n // The nulls were filtered out, so declare these are the right type\n return {\n text: d.PhaseTypeName as string,\n value: d.PhaseTypeId as number\n };\n });\n }\n\n getPostData(): CreateMatterWorkDto {\n return {\n MatterWorkType: MatterWorkTypeEnum.Auditing, \n // this.clientId should not be null at this point, so declare it as the right type\n ClientId: this.clientId as Guid,\n BatchId: this.batchId,\n CountryIds: this.countryIds,\n AgentIds: this.agentIds,\n FilingTypeId: this.filingTypeId,\n PhaseTypeId: this.phaseTypeId,\n IsConfident: this.isConfident,\n HasInternalNotes: this.hasInternalNotes,\n HasReportLanguage: this.hasReportLanguage,\n ClaimSet: this.claimSet,\n Notes: this.notes,\n UserReviewedMode: this.userReviewedMode\n }\n }\n\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private clientService: ClientService = new ClientService();\n\n mounted() : void {\n this.clientService.getAll().then(clients => {\n this.clients = clients;\n this.clientsLoaded = true;\n })\n .catch(this.handleDataLoadingError);\n }\n\n private reset() : void {\n this.clientId = null;\n this.resetAllExceptClientId();\n }\n\n private resetAllExceptClientId() : void {\n this.batchId = null;\n this.countryIds = [];\n this.agentIds = [];\n this.phaseTypeId = null;\n this.isConfident = null;\n this.hasInternalNotes = false;\n this.hasReportLanguage = false;\n this.claimSet = false;\n this.errorMessage = '';\n\n if (!this.useCustomNotes) {\n this.notes = '';\n }\n }\n\n filterValueChanged(e: any) {\n if (this.useCustomNotes) {\n return;\n }\n\n let parts: string[] = [];\n\n if (this.batchId != null) {\n let batch = this.batches.find(b => b.value === this.batchId);\n if (batch != null) {\n parts.push(batch.text);\n }\n }\n\n if (this.countryIds.length > 0) {\n let countries: string[] = [];\n this.countryIds.forEach(countryId => {\n let country = this.countries.find(c => c.value === countryId);\n if (country != null) {\n countries.push(country.text);\n }\n });\n\n if (countries.length > 0) {\n parts.push(sortBy(countries).join(', '));\n }\n }\n\n if (this.agentIds.length > 0) {\n let agents: string[] = [];\n this.agentIds.forEach(agentId => {\n let agent = this.agents.find(a => a.value === agentId);\n if (agent != null) {\n agents.push(agent.text);\n }\n });\n\n if (agents.length > 0) {\n parts.push(sortBy(agents).join(', '));\n }\n }\n\n if (this.filingTypeId != null) {\n let filingType = this.filingTypes.find(f => f.value === this.filingTypeId);\n if (filingType != null) {\n parts.push(filingType.text);\n }\n }\n\n if (this.phaseTypeId != null) {\n let phaseType = this.phaseTypes.find(p => p.value === this.phaseTypeId);\n if (phaseType != null) {\n parts.push(phaseType.text);\n }\n }\n\n if (this.hasInternalNotes) {\n parts.push('Has Internal Notes');\n }\n\n if (this.hasReportLanguage) {\n parts.push('Has Report Language');\n }\n\n this.notes = parts.join(', ');\n }\n\n notesChange() {\n this.useCustomNotes = !string.isNullOrEmpty(this.notes);\n }\n\n private async loadCases() : Promise {\n this.errorMessage = '';\n this.loadingCases = true;\n this.client.getPostData>('/api/MatterWorks', this.getPostData())\n .then(result => {\n if(result.Success) {\n this.$router.push({ name: 'auditing', params: { id: result.Data!.MatterWorkId as string }, query: {'cases': result.Data!.Cases.toString()} }); \n } else if(result.Message) {\n this.errorMessage = result.Message\n }\n })\n .catch(this.handleDataLoadingError)\n .finally(() => {\n this.loadingCases = false;\n });\n }\n\n show() {\n this.showDialog = true;\n }\n\n private hidingPopup(): void {\n this.reset();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing-browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing-browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./auditing-browse-mode-selection-dialog.vue?vue&type=template&id=d8bb848a&scoped=true&\"\nimport script from \"./auditing-browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./auditing-browse-mode-selection-dialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./auditing-browse-mode-selection-dialog.vue?vue&type=style&index=0&id=d8bb848a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d8bb848a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"65%\",\"height\":\"98%\",\"title\":\"Analysis Review\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showDialog},on:{\"hidden\":_vm.onPopUpHidden,\"showing\":_vm.onPopupShowing,\"update:visible\":function($event){_vm.showDialog=$event}}},[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"200\",\"placeholder\":\"Select Client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('br'),_c('dx-select-box',{attrs:{\"enabled\":_vm.selectedClient,\"search-enabled\":true,\"data-source\":_vm.batches,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedBatch,\"show-clear-button\":true,\"width\":\"200\",\"placeholder\":\"Select Batch\"},on:{\"update:value\":function($event){_vm.selectedBatch=$event}}}),_c('br'),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedClient && _vm.selectedBatch),expression:\"selectedClient && selectedBatch\"}],staticClass:\"outer-container\"},[_c('p',[_vm._v(\" Total Entries: \"+_vm._s(_vm.analysisTexts.length)+\" \")]),_c('dx-load-indicator',{attrs:{\"visible\":_vm.loadingAnalysisTexts}}),_c('dx-scroll-view',{attrs:{\"height\":\"95%\",\"direction\":\"vertical\"}},[_c('div',_vm._l((_vm.analysisTexts),function(item){return _c('div',{key:item.LineItemNotesId,staticClass:\"item-container\"},[_c('div',{staticClass:\"content-container content-notes\"},[_c('div',{staticClass:\"item-header-container\"},[_c('p',{style:({ 'background-color': _vm.getNotesLabelColor(item.AssignedPhaseTypeId) })},[_vm._v(\" \"+_vm._s(_vm.getNotesLabel(item))+\" \")]),_c('dx-button',{staticClass:\"matter-details-button\",attrs:{\"width\":\"100\",\"styling-mode\":\"outlined\"},on:{\"click\":function($event){return _vm.showMatterDetails(item)}}},[_vm._v(\" View Case \")])],1),_c('dx-html-editor',{ref:\"auditorNotesEditor\",refInFor:true,attrs:{\"height\":\"150\",\"value\":item.AnalysisText,\"value-type\":\"html\"},on:{\"value-changed\":function (e) { return _vm.onTextChanged(e, item.LineItemNotesId); }}},[_c('dx-toolbar',[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1)],1),_c('div',{staticClass:\"content-container content-controls\"},[_c('h3',[_vm._v(\"Analysis Report Print Options\")]),_c('div',[_c('dx-radio-group',{ref:\"printOptionsRadio\",refInFor:true,attrs:{\"items\":_vm.printOptionsStrings,\"value\":item.AnalysisReportPrintDataOptionsType,\"value-expr\":\"value\",\"display-expr\":\"text\"},on:{\"update:value\":function($event){return _vm.$set(item, \"AnalysisReportPrintDataOptionsType\", $event)}}}),_c('dx-check-box',{attrs:{\"value\":item.PrintCommentsAuditorReport,\"text\":\"Print Comments on Auditor's Report\"},on:{\"update:value\":function($event){return _vm.$set(item, \"PrintCommentsAuditorReport\", $event)}}}),_c('br'),_c('dx-check-box',{attrs:{\"value\":item.IncludeAllAgentsCharges,\"text\":\"Include Charges from all Agents\"},on:{\"update:value\":function($event){return _vm.$set(item, \"IncludeAllAgentsCharges\", $event)}}})],1)])])}),0)])],1),_c('matter-details',{ref:_vm.matterDetailsRef}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Save and Exit', type: 'normal', stylingMode: 'contained', onClick: _vm.saveChanges },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'normal', stylingMode: 'contained', onClick: _vm.close },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"height\":\"65%\",\"max-width\":\"95%\",\"title\":_vm.title,\"visible\":_vm.showDialog,\"width\":\"auto\"},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"hidden\":_vm.onHidden,\"hiding\":_vm.onHiding,\"showing\":_vm.onShowing}},[_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('dx-data-grid',{ref:_vm.dataGridRef,attrs:{\"allow-column-resizing\":true,\"height\":\"100%\",\"scrolling\":{ mode: 'infinite', preloadEnabled: true }},on:{\"cell-prepared\":_vm.onCellPrepared},scopedSlots:_vm._u([{key:\"report-language-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{domProps:{\"innerHTML\":_vm._s(data.data.ReportLanguage)}})]}}])},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"storage-key\":\"MatterDetailsDataGrid\",\"type\":\"localStorage\"}}),_c('dx-column',{attrs:{\"data-field\":\"InvoiceLineItemId\",\"data-type\":\"string\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-field\":\"ServiceDate\",\"data-type\":\"date\",\"caption\":\"Service Date\",\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"AgentName\",\"data-type\":\"string\",\"caption\":\"Agent\",\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"LineItemTotal\",\"data-type\":\"number\",\"caption\":\"Charge\",\"format\":{ type: 'currency', currency: 'usd', precision: 2 },\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"PhaseCode\",\"data-type\":\"string\",\"caption\":\"Phase Code\",\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"UTBMS\",\"data-type\":\"string\",\"caption\":\"UTBMS\",\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"FeeType\",\"data-type\":\"string\",\"caption\":\"Fee Type\",\"width\":\"6%\"}}),_c('dx-column',{attrs:{\"data-field\":\"Description\",\"data-type\":\"string\",\"caption\":\"Description\",\"css-class\":\"word-wrap\",\"width\":\"32%\"}}),_c('dx-column',{attrs:{\"caption\":\"Report Language\",\"cell-template\":\"report-language-template\",\"css-class\":\"word-wrap\",\"width\":\"32%\"}})],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.closeButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit } from 'vue-property-decorator';\nimport DataSource from 'devextreme/data/data_source';\nimport { DxColumn, DxDataGrid, DxStateStoring } from 'devextreme-vue/data-grid';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { MatterDto } from '@/models/matter/MatterDto';\nimport { MattersService } from '@/service/MattersService';\n\ninterface MatterDetailsDto {\n MatterId: Guid;\n ClientName: string;\n MatterName: string;\n CountryCode: string;\n}\n\n@Component({\n components: {\n DxColumn,\n DxDataGrid,\n DxPopup,\n DxStateStoring,\n DxToolbarItem\n }\n})\nexport default class MatterDetails extends Vue {\n private readonly dataGridRef: string = 'dataGridRef';\n private readonly matterService: MattersService = new MattersService();\n private showDialog: boolean = false;\n private colorizedColumns: string[] = [\n 'LineItemTotal',\n 'PhaseCode',\n 'UTBMS'\n ];\n\n matter: MatterDetailsDto | null = null;\n\n private get dataGrid() {\n return (this.$refs[this.dataGridRef] as DxDataGrid).instance;\n }\n\n private get title() {\n if (this.matter == null) {\n return 'Matter Details';\n }\n\n return `${this.matter.ClientName}, ${this.matter.MatterName}, ${this.matter.CountryCode}`;\n }\n\n private get dataSource() {\n return new DataSource({\n key: 'InvoiceLineItemId',\n loadMode: 'raw',\n load: () => {\n if (this.matter == null) {\n return [];\n }\n\n return this.matterService.getLineItems(this.matter.MatterId);\n }\n });\n }\n\n private get closeButtonOptions() {\n return {\n text: 'Close',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.close\n };\n }\n\n show() {\n this.showDialog = true;\n }\n\n private close() {\n this.showDialog = false;\n }\n\n private onShowing() {\n if (this.dataGrid != null) {\n this.dataGrid.option('dataSource', this.dataSource);\n this.dataGrid.refresh();\n }\n }\n\n @Emit('hiding')\n private onHiding() {\n return this.showDialog;\n }\n\n private onHidden() {\n if (this.dataGrid != null) {\n this.dataGrid.option('dataSource', []);\n }\n }\n\n private onCellPrepared(e: any) {\n if (e.rowType === 'data' && this.colorizedColumns.includes(e.column.dataField)) {\n e.cellElement.style['background-color'] = e.data.PhaseRgbHex;\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-details.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-details.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./matter-details.vue?vue&type=template&id=4f367309&scoped=true&\"\nimport script from \"./matter-details.vue?vue&type=script&lang=ts&\"\nexport * from \"./matter-details.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./matter-details.vue?vue&type=style&index=0&id=4f367309&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f367309\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport { DxButton, DxTooltip, DxCheckBox, DxRadioGroup, DxLoadPanel, DxLookup, DxSelectBox, DxScrollView, DxLoadIndicator } from 'devextreme-vue';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxResponsiveBox, DxLocation, DxCol, DxRow } from 'devextreme-vue/responsive-box';\nimport _ from 'lodash';\nimport { Popup } from '@questelservices/common-vue';\nimport dialog from 'devextreme/ui/dialog';\nimport MatterDetails from '@/components/matter/matter-details.vue';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { BatchDto } from '@/models/batch/BatchDto';\nimport { AnalysisTextReviewDto } from '@/models/AnalysisTextReviewDto';\nimport { ClientService } from '../../service/ClientService';\nimport { SelectOption } from '../../models/SelectOption';\nimport { ActivityPlannerService } from '@/service/ActivityPlannerService';\nimport { BatchService } from '../../service/BatchService';\nimport { BatchTypeEnum } from '@/models/batch/BatchTypeEnum';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { AnalysisReportPrintDataOptionsType } from '@/models/AnalysisReportPrintDataOptionsType';\nimport * as overlay from 'devextreme/ui/overlay';\nimport { ManualCodeInvoiceLineItemNotesDto } from '@/models/ManualCodeInvoiceLineItemNotesDto';\n\n@Component({\n components: {\n DxSelectBox,\n DxLookup,\n DxButton,\n DxRadioGroup,\n DxCheckBox,\n DxToolbarItem,\n DxItem,\n DxHtmlEditor,\n DxToolbar,\n DxResponsiveBox,\n DxLocation,\n DxCol,\n DxRow,\n DxScrollView,\n DxLoadIndicator,\n Popup,\n MatterDetails\n }\n})\nexport default class AnalysisTextReview extends Vue {\n private readonly matterDetailsRef: string = 'matterDetails';\n\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private activityPlannerService: ActivityPlannerService = new ActivityPlannerService('api');\n private batchService: BatchService = new BatchService();\n private phaseTypes: PhaseTypeDto[] = [];\n clients: Array = [];\n selectedClient: Guid = '';\n batches: Array = [];\n selectedBatch: Guid = '';\n showDialog: boolean = false;\n loadingAnalysisTexts: boolean = false;\n \n analysisTexts: Array = []; \n analysisTextsOrig: Array = []; \n\n private printOptionsStrings: SelectOption[] = [\n { text: 'Do Not Print', value: AnalysisReportPrintDataOptionsType.DoNotPrint },\n { text: 'Single Line Item Only', value: AnalysisReportPrintDataOptionsType.SingleLineItem },\n { text: 'Entire Phase Data', value: AnalysisReportPrintDataOptionsType.EntirePhase },\n { text: 'Entire Case Data', value: AnalysisReportPrintDataOptionsType.EntireCase } \n ];\n\n constructor() { \n super();\n }\n\n mounted() {\n this.loadData();\n }\n async loadData() {\n this.phaseTypes = await this.client.get('/api/phasetype/all');\n\n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clients = clients.map(c => { return { text: c.ClientName, value: c.ClientId } });\n }\n\n show() {\n this.showDialog = true;\n }\n\n close() {\n this.showDialog = false;\n } \n\n onPopUpHidden(e: any) {\n this.$emit('analysis-text-review-hidden');\n }\n\n onPopupShowing(e: any) {\n this.selectedClient = '';\n this.selectedBatch = '';\n }\n\n @Watch('selectedClient')\n private async clientChanged() {\n this.batches = [];\n this.selectedBatch = '';\n if(this.selectedClient) { \n let batches = await this.batchService.getClientBatches(this.selectedClient, true); \n this.batches = batches.map(b => { return { text: b.BatchName, value: b.BatchId } }); \n \n if(batches.length > 0) {\n this.selectedBatch = batches[0].BatchId;\n } \n }\n }\n\n @Watch('selectedBatch')\n private async batchChanged() {\n this.analysisTexts = [];\n if(this.selectedClient && this.selectedBatch) {\n this.loadingAnalysisTexts = true;\n this.analysisTextsOrig = await this.activityPlannerService.getAnalysisTexts(this.selectedClient, this.selectedBatch);\n this.analysisTexts = _.cloneDeep(this.analysisTextsOrig);\n this.loadingAnalysisTexts = false; \n }\n }\n\n private get matterDetails() {\n return this.$refs[this.matterDetailsRef] as MatterDetails;\n }\n\n private showMatterDetails(item: AnalysisTextReviewDto) {\n this.matterDetails.matter = {\n MatterId: item.MatterId,\n MatterName: item.MatterName,\n ClientName: item.ClientName,\n CountryCode: item.Country\n };\n this.matterDetails.show();\n }\n\n private getNotesLabelColor(phaseTypeId: number) {\n let color = 'FFFFFF';\n let phaseType = this.phaseTypes.filter(p => p.PhaseTypeId == phaseTypeId)[0];\n \n if(phaseType != null) {\n color = this.phaseTypes.filter(p => p.PhaseTypeId == phaseTypeId)[0].RgbHex;\n }\n\n return color;\n }\n\n private getNotesLabel(item: AnalysisTextReviewDto)\n {\n let label = `${item.MatterName}, ${item.Country}, ${item.AgentName}, ${item.AssignedPhaseName}`;\n return label;\n }\n\n private saveChanges() { \n let updatedNotes: ManualCodeInvoiceLineItemNotesDto[] = this.analysisTexts.filter(a => this.isModified(a))\n .map(a => {\n return {\n InvoiceLineItemId: '00000000-0000-0000-0000-000000000000',\n InvoiceLineItemNotesId: a.LineItemNotesId, \n PrivateAuditorNotes: '',\n AuditorNotesReportLanguage: a.AnalysisText,\n AnalysisReportPrintDataOptionsType: a.AnalysisReportPrintDataOptionsType,\n MarkImportant: false,\n PrintCommentsAuditorReport: a.PrintCommentsAuditorReport,\n IncludeAllAgentsCharges: a.IncludeAllAgentsCharges,\n PhaseHistory: ''\n }\n });\n\n this.client.postJson('/api/manualcoding/bulk-modify-notes', updatedNotes);\n this.close();\n }\n\n private isModified(analysisText: AnalysisTextReviewDto) : boolean {\n let originalAnalysisText = this.analysisTextsOrig.filter(a => a.LineItemNotesId == analysisText.LineItemNotesId)[0];\n\n if (originalAnalysisText.AnalysisText != analysisText.AnalysisText) {\n return true;\n }\n\n if (originalAnalysisText.AnalysisReportPrintDataOptionsType != analysisText.AnalysisReportPrintDataOptionsType) {\n return true;\n }\n\n if (originalAnalysisText.PrintCommentsAuditorReport != analysisText.PrintCommentsAuditorReport) {\n return true;\n }\n\n if (originalAnalysisText.IncludeAllAgentsCharges != analysisText.IncludeAllAgentsCharges) {\n return true;\n }\n\n return false;\n }\n\n // add CSS class to color the text boxes yellow if the text has been modified by the user\n private onTextChanged(item: any, lineItemNotesId: Guid) {\n let analysisTextItem = this.analysisTexts.filter(a => a.LineItemNotesId == lineItemNotesId)[0];\n analysisTextItem.AnalysisText = item.value;\n let originalAnalysisText = this.analysisTextsOrig.filter(a => a.LineItemNotesId == lineItemNotesId)[0].AnalysisText;\n\n if (originalAnalysisText != item.value) {\n item.element.classList.add('analysis-text-modified')\n } \n else {\n item.element.classList.remove('analysis-text-modified')\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-text-review.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-text-review.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./analysis-text-review.vue?vue&type=template&id=57e11fc1&\"\nimport script from \"./analysis-text-review.vue?vue&type=script&lang=ts&\"\nexport * from \"./analysis-text-review.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./analysis-text-review.vue?vue&type=style&index=0&id=57e11fc1&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { DataGrid, PageTitle } from '@questelservices/common-vue';\nimport { DxButton, DxPopup, DxProgressBar } from 'devextreme-vue';\nimport {\n DxColumn,\n DxFilterRow,\n DxLoadPanel,\n DxPager,\n DxPaging,\n DxRemoteOperations\n} from 'devextreme-vue/data-grid';\nimport ClaimDialog from '@/views/activity-planner_claim-dialog.vue';\nimport ClaimedWork from '@/components/activity-planner/claimed-work.vue';\nimport ReportOnDemand from '@/components/activity-planner/report-on-demand.vue';\nimport AuditingBrowseModeSelectionDialog from '@/components/browse-mode/auditing-browse-mode-selection-dialog.vue';\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport ClientSummary from '@/components/activity-planner/client-summary.vue';\nimport AnalysisTextReview from '@/components/activity-planner/analysis-text-review.vue';\nimport { ActivityPlannerService } from '@/service/ActivityPlannerService';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { BatchTypeEnum } from '@/models/batch/BatchTypeEnum';\n\n@Component({\n components: {\n AuditingBrowseModeSelectionDialog,\n ClaimDialog,\n ClaimedWork,\n ClientSummary,\n DataGrid,\n DxButton,\n DxColumn,\n DxFilterRow,\n DxLoadPanel,\n DxPager,\n DxPaging,\n DxPopup,\n DxProgressBar,\n DxRemoteOperations,\n PageTitle,\n ReportOnDemand,\n AnalysisTextReview\n }\n})\nexport default class Auditing extends Vue {\n public $refs: Vue['$refs'] & {\n availableAuditingWorkDataGrid?: DataGrid;\n availableSavingsReportWorkDataGrid?: DataGrid;\n claimedAuditingWork?: ClaimedWork;\n clientSummaryRef?: ClientSummary;\n analysisTextReviewRef?: AnalysisTextReview;\n } = {};\n\n public readonly auditingWorkType: MatterWorkTypeEnum = MatterWorkTypeEnum.Auditing;\n public readonly availableAuditingWorkUrl: string = `/api/activityplanner/work/${MatterWorkTypeEnum.Auditing}`;\n public readonly browseModeDialogRef: string = 'browseModeDialogRef';\n public readonly claimDialogRef: string = 'claimDialogRef';\n public readonly clientSummaryRef: string = 'clientSummaryRef';\n public readonly reportDialogRef: string = 'reportDialogRef'; \n public readonly analysisTextReviewRef: string = 'analysisTextReviewRef';\n\n activityPlannerService: ActivityPlannerService; \n productionDataStoreOptions: DevExpress.data.CustomStoreOptions;\n savingsReportStoreOptions: DevExpress.data.CustomStoreOptions;\n\n savingsReportTableVisible: boolean = true;\n\n private get browseModeDialog() {\n return this.$refs[this.browseModeDialogRef] as AuditingBrowseModeSelectionDialog;\n }\n\n private get claimDialog() {\n return this.$refs[this.claimDialogRef] as ClaimDialog;\n }\n\n private get clientSummary() {\n return this.$refs[this.clientSummaryRef] as ClientSummary;\n }\n\n private get reportDialog() {\n return this.$refs[this.reportDialogRef] as ReportOnDemand;\n }\n\n private get analysisTextReview() {\n return this.$refs[this.analysisTextReviewRef] as AnalysisTextReview;\n }\n\n constructor() {\n super();\n\n this.activityPlannerService = new ActivityPlannerService('/api');\n this.productionDataStoreOptions = { \n load: loadOptions => \n this.activityPlannerService\n .getAvailableWork(loadOptions, MatterWorkTypeEnum.Auditing, BatchTypeEnum.Production) \n };\n\n this.savingsReportStoreOptions = { \n load: loadOptions => \n this.activityPlannerService\n .getAvailableWork(loadOptions, MatterWorkTypeEnum.Auditing, BatchTypeEnum.SavingsReport) \n .then(result => { \n let showSavingsTable = result.data.length > 0 ? true : false;\n this.updateDisplay(showSavingsTable);\n return result;\n }) \n };\n }\n\n updateDisplay(isVisble: boolean) {\n this.savingsReportTableVisible = isVisble;\n }\n\n showReportDialog() {\n this.reportDialog.show();\n }\n\n claimWorkRow(row: any, all: boolean, matterWorkType: MatterWorkTypeEnum) {\n this.claimDialog.clientId = row.ClientId;\n this.claimDialog.matterWorkType = matterWorkType;\n this.claimDialog.isClaimAll = all;\n this.claimDialog.show();\n }\n\n onDataErrorOccurred(e: any) {\n if (e != null && e.error != null) {\n e.error.message = 'Failed to load data.';\n }\n }\n\n refreshDataGrid() {\n if (this.$refs.availableAuditingWorkDataGrid) {\n (this.$refs.availableAuditingWorkDataGrid as any).refreshDataGrid();\n }\n\n if (this.$refs.availableSavingsReportWorkDataGrid) {\n (this.$refs.availableSavingsReportWorkDataGrid as any).refreshDataGrid();\n }\n\n if (this.$refs.claimedAuditingWork) {\n (this.$refs.claimedAuditingWork as any).refreshDataGrid();\n } \n }\n\n openBrowseModeDialog() {\n this.browseModeDialog.show();\n }\n\n showClientSummary() {\n this.clientSummary.show();\n }\n\n showTextReview() {\n this.analysisTextReview.show();\n }\n}\n","export enum RespondEnum {\n ToAgent,\n ToClient,\n DoNotSend \n}","import DateTime from '@/utilities/DateTime';\n\nexport interface CommentAutoTextData {\n ClientName : string,\n AgentName : string,\n MatterName : string,\n CountryCode : string,\n IssueName : string,\n AgentReponseDate : DateTime,\n AgentComment : string,\n}\n\nexport interface EmailDetail {\n Cc : string,\n Bcc : string,\n Subject : string,\n From : string,\n Sent: DateTime,\n Body: string,\n To: string,\n FileUploadId: Guid,\n CommentId: Guid,\n}\n \nexport enum CommentAutoTextEnum {\n AgentName = \"[AGENTNAME]\",\n ClientName = \"[CLIENTNAME]\",\n MatterName = \"[MATTERNAME]\",\n Country = \"[COUNTRY]\",\n IssueName = \"[ISSUENAME]\",\n CommentDate = \"[COMMENTDATE]\",\n AgentComment = \"[AGENTCOMMENT]\"\n}\n ","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./auditing.vue?vue&type=template&id=bb6b0aa0&scoped=true&\"\nimport script from \"./auditing.vue?vue&type=script&lang=ts&\"\nexport * from \"./auditing.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./auditing.vue?vue&type=style&index=0&id=bb6b0aa0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bb6b0aa0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Comments\")]),_c('div',[_c('div',{staticClass:\"comment-select-box-container\"},[_vm._m(0),_c('div',[_c('dx-lookup',{attrs:{\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"data-source\":_vm.respondToAgentDataSource,\"value\":_vm.respondToAgentValue,\"valueExpr\":\"TextTemplateId\",\"displayExpr\":\"Name\"},on:{\"selectionChanged\":_vm.respondToAgentChanged,\"update:value\":function($event){_vm.respondToAgentValue=$event}}})],1)]),_c('div',{staticClass:\"comment-select-box-container\"},[_vm._m(1),_c('div',[_c('dx-lookup',{attrs:{\"search-enabled\":true,\"show-clear-button\":true,\"show-cancel-button\":true,\"data-source\":_vm.forwardToClientDataSource,\"value\":_vm.forwardToClientValue,\"displayExpr\":\"Name\",\"valueExpr\":\"TextTemplateId\"},on:{\"selectionChanged\":_vm.forwardToClientChanged,\"update:value\":function($event){_vm.forwardToClientValue=$event}}})],1)]),_c('div',{staticClass:\"comment-select-box-container\"},[_vm._m(2),_c('div',[_c('dx-button',{attrs:{\"text\":\"Edit Templates\"},on:{\"click\":function($event){return _vm.showTemplatePopup(true)}}})],1)])]),_c('email-template-editor',{attrs:{\"showDialog\":_vm.displayTemplateEditor},on:{\"hiding\":_vm.hideTemplatePopup}}),_c('comments-grid',{attrs:{\"show-all-comments\":false,\"replyToAgentId\":_vm.respondToAgentValue,\"forwardToClientId\":_vm.forwardToClientValue}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\"Respond To Agent\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\"Forward to Client\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',[_vm._v(\" \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"margin-top\":\"10px\"}},[_c('div',{staticClass:\"comment-count-container\"},[_c('span',[_vm._v(\"Comments in List: \"),_c('span',{staticClass:\"comment-count\"},[_vm._v(_vm._s(this.commentCount))])])]),_c('dx-data-grid',{ref:\"commentDatagrid\",attrs:{\"data-source\":_vm.dataGridCustomStoreOption,\"rowAlternationEnabled\":false,\"paging\":{ enabled: true, pageSize: 100 },\"pager\":{ showPageSizeSelector: false },\"filter-row\":{visible: true },\"word-wrap-enabled\":true,\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":false,\"columnMinWidth\":100,\"columnAutoWidth\":true,\"columnResizingMode\":\"widget\",\"remote-operations\":{ sorting: true, paging: true, filtering: true, requireTotalCount: true },\"height\":\"100%\"},on:{\"cell-prepared\":_vm.onCellPrepared,\"row-updating\":_vm.rowUpdating,\"context-menu-preparing\":_vm.prepareContextMenu,\"content-ready\":_vm.updateCommentCount},scopedSlots:_vm._u([{key:\"agentResponseDateTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',[_vm._v(_vm._s(_vm._f(\"moment\")(data.data.AgentResponseDate,\"MM-DD-YYYY\")))])]}},{key:\"escalateTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('span',[_c('dx-button',{attrs:{\"onClick\":function () { return _vm.escalateComment(data.data); },\"stylingMode\":\"outlined\",\"text\":\"Escalate\"}})],1)]}}])},[_c('dx-header-filter',{attrs:{\"visible\":true,\"allow-search\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"storage\"}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-summary',{attrs:{\"visible\":false}},[_c('dx-total-item',{attrs:{\"visible\":false,\"column\":\"CommentId\",\"summary-type\":\"count\",\"name\":\"CommentCount\"}})],1),_c('dx-column',{attrs:{\"visible\":false,\"data-field\":\"CommentId\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"ClientName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"AgentName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"MatterName\",\"data-type\":\"string\",\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"CountryCode\",\"caption\":\"Country\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"allow-filtering\":true,\"min-width\":10,\"caption\":\"Phase/Infraction\",\"data-field\":\"IssueName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"AmountOver\",\"data-type\":\"string\",\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"AgentResponseDate\",\"data-type\":\"date\",\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"allow-filtering\":true,\"min-width\":10,\"data-field\":\"AgentComment\",\"data-type\":\"string\",\"allowHeaderFiltering\":false}}),_c('dx-column',{attrs:{\"allow-editing\":true,\"allow-sorting\":true,\"allow-header-filtering\":true,\"min-width\":10,\"data-type\":\"boolean\",\"data-field\":\"IssueResolved\",\"caption\":\"Issue Resolved\",\"allowHeaderFiltering\":false,\"true-text\":\"Checked\",\"false-text\":\"Unchecked\"}}),_c('dx-column',{attrs:{\"cell-template\":\"escalateTemplate\",\"allow-editing\":false,\"min-width\":10,\"caption\":\"Escalate\",\"alignment\":\"center\",\"allowHeaderFiltering\":false,\"visible\":_vm.showEscalateColumn}})],1),_c('respond-to-comment',{attrs:{\"showRespondEmail\":_vm.showRespondEmail,\"EmailSubject\":_vm.emailSubject,\"EmailTo\":_vm.emailTo,\"commentEmail\":_vm.commentEmail,\"respondType\":_vm.respondType,\"selectedForwardToClientId\":_vm.getForwardToClientId,\"selectedReplyToAgentId\":_vm.getReplyToAgentId,\"commentData\":_vm.commentData},on:{\"hiding\":function($event){return _vm.onRespondCommentHidden()}}}),_c('matter-details',{ref:_vm.matterDetailsRef}),_c('popup',{attrs:{\"width\":\"700\",\"height\":\"600\",\"max-height\":\"600\",\"visible\":_vm.showDialog,\"title\":_vm.popupTitle},on:{\"update:visible\":function($event){_vm.showDialog=$event}}},[_c('dx-scroll-view',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.emailBodyText)}})]),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Close', type: 'default', stylingMode: 'contained', onClick: _vm.closePopup },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, RequestResult, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { CommentDto } from '@/models/comments/CommentDto';\nimport { EmailResponseDto } from '@/models/comments/EmailResponseDto';\nimport { RespondEnum } from '@/models/comments/RespondEnum';\nimport { CommentEmailDto } from '@/models/comments/CommentEmailDto';\n\nexport class CommentService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/comments');\n }\n\n async search(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search`, options);\n }\n\n async searchAll(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search-all`, options);\n }\n\n async searchCommentEmail(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search-comment-email`, options);\n }\n\n async edit(id: Guid, data: CommentDto) : Promise {\n return await this.client.sendRequest(HttpMethodEnum.Put, `/${id}`, data);\n }\n\n async editCommentEmail(id: Guid, data: CommentEmailDto) : Promise {\n return await this.client.sendRequest(HttpMethodEnum.Put, `/update-email/${id}`, data);\n }\n\n async getCanEscalate(): Promise {\n return await this.client.getData(HttpMethodEnum.Get, `/can-escalate`);\n }\n\n public async sendEmail(data: EmailResponseDto,responseType : RespondEnum): Promise {\n return await this.client.postJson(`/send-email-response?responseType=${responseType}`, data);\n }\n\n public async getResponseHistory(emailId: Guid): Promise {\n return await this.client.getData(HttpMethodEnum.Get, `/response-history/${emailId}`);\n }\n\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"title\":_vm.title,\"width\":\"100%\",\"max-width\":\"900\",\"drag-enabled\":true,\"height\":\"auto\",\"close-on-outside-click\":false,\"visible\":_vm.showingNotes},on:{\"update:visible\":function($event){_vm.showingNotes=$event},\"hidden\":_vm.onPopUpHidden}},[_c('div',{staticClass:\"respond-to-comment\"},[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"email-element\"},[_c('div',{staticClass:\"email-display\"},[_c('div',{staticClass:\"email-display-content\"},[_vm._v(\"To\")])]),_c('dx-tag-box',{attrs:{\"name\":\"emailToComponent\",\"dataSource\":_vm.emailToSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"value\":_vm.selectedToEmail,\"stylingMode\":\"outlined\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\",\"width\":\"90%\"},on:{\"opened\":_vm.onOpenedEmailAddress,\"update:value\":function($event){_vm.selectedToEmail=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}])})],1),_c('div',{staticClass:\"email-element\"},[_c('div',{staticClass:\"email-display\"},[_c('div',{staticClass:\"email-display-content\"},[_vm._v(\"Cc\")])]),_c('dx-tag-box',{attrs:{\"name\":\"emailCCComponent\",\"dataSource\":_vm.emailCCSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"value\":_vm.selectedEmailCC,\"stylingMode\":\"outlined\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\",\"width\":\"90%\"},on:{\"opened\":_vm.onOpenedEmailAddress,\"update:value\":function($event){_vm.selectedEmailCC=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}])})],1),_c('div',{staticClass:\"email-element\"},[_c('div',{staticClass:\"email-display\"},[_c('div',{staticClass:\"email-display-content\"},[_vm._v(\"Bcc\")])]),_c('dx-tag-box',{attrs:{\"name\":\"emailBccComponent\",\"dataSource\":_vm.emailBccSource,\"showSelectionControls\":true,\"hide-selected-items\":true,\"search-enabled\":true,\"placeholder\":\"\",\"value\":_vm.selectedEmailBcc,\"stylingMode\":\"outlined\",\"accept-custom-value\":true,\"defer-rendering\":false,\"tag-template\":\"tag\",\"width\":\"90%\"},on:{\"opened\":_vm.onOpenedEmailAddress,\"update:value\":function($event){_vm.selectedEmailBcc=$event},\"custom-item-creating\":_vm.onCustomItemCreatingEvent,\"value-changed\":_vm.onEmailValueChanged},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',{staticClass:\"dx-tag-content\",style:(_vm.tagItemStyle(data))},[_c('span',[_vm._v(\"\\n \"+_vm._s(data)+\"\\n \")]),_c('div',{staticClass:\"dx-tag-remove-button\"})])]}}])})],1),_c('div',{staticStyle:{\"margin-bottom\":\"2px\"}},[_c('dx-text-box',{attrs:{\"placeholder\":\"Add a subject\",\"styling-mode\":\"outlined\",\"value\":_vm.emailSubject}})],1),_c('dx-html-editor',{ref:\"emailBodyEditor\",attrs:{\"value\":_vm.body,\"value-type\":\"html\",\"height\":\"280\"},on:{\"update:value\":function($event){_vm.body=$event}}},[_c('dx-toolbar',{attrs:{\"container\":\"#htmlEditorFooter\"}},[_c('dx-item',{attrs:{\"format-name\":\"undo\"}}),_c('dx-item',{attrs:{\"format-name\":\"redo\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"bold\"}}),_c('dx-item',{attrs:{\"format-name\":\"italic\"}}),_c('dx-item',{attrs:{\"format-name\":\"strike\"}}),_c('dx-item',{attrs:{\"format-name\":\"underline\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignLeft\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignCenter\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignRight\"}}),_c('dx-item',{attrs:{\"format-name\":\"alignJustify\"}}),_c('dx-item',{attrs:{\"format-name\":\"separator\"}}),_c('dx-item',{attrs:{\"format-name\":\"color\"}}),_c('dx-item',{attrs:{\"format-name\":\"background\"}}),_c('dx-item',{attrs:{\"format-name\":\"link\"}})],1)],1),_c('div',{attrs:{\"id\":\"htmlEditorFooter\"}})],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Send', type: 'default', stylingMode: 'contained', onClick: _vm.onSendEmail},\"location\":\"before\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Discard', type: 'normal', stylingMode: 'contained', onClick: _vm.onDiscard},\"location\":\"before\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Popup } from '@questelservices/common-vue';\nimport { Prop, Watch } from 'vue-property-decorator';\nimport { DxHtmlEditor, DxItem, DxToolbar } from 'devextreme-vue/html-editor';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\n import _ from 'lodash';\n import { DxTagBox, DxTextBox } from 'devextreme-vue';\nimport { RespondEnum } from '@/models/comments/RespondEnum';\nimport { TextTemplateService } from '@/service/TextTemplateService';\nimport { CommentAutoTextData, CommentAutoTextEnum, EmailDetail } from '@/models/comments/CommentAutoText';\nimport { EmailResponseDto } from '@/models/comments/EmailResponseDto';\nimport HtmlEditor from \"devextreme/ui/html_editor\";\nimport { CommentService } from '../../service/CommentService';\nimport { confirm, alert } from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport DateTime from '../../utilities/DateTime';\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\n\nconst moment = require('moment');\n@Component({\n components: {\n Popup,\n DxHtmlEditor, DxItem, DxToolbar,\n DxToolbarItem,\n DxTagBox,\n DxTextBox,\n DxValidationGroup\n }\n})\nexport default class RespondToComment extends Vue {\n private readonly emailSeparator: string = ';';\n $refs: Vue['$refs'] & {\n emailBodyEditor?: HtmlEditor;\n validationGroupRef? : ValidationGroup;\n } = {};\n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n\n @Prop()\n EmailSubject!: string;\n\n @Prop()\n EmailFrom!: string;\n\n @Prop()\n EmailTo!: string;\n\n @Prop()\n selectedForwardToClientId!: Guid\n\n @Prop()\n selectedReplyToAgentId!: Guid\n\n @Prop()\n respondType!: RespondEnum;\n\n @Prop()\n commentData!: CommentAutoTextData;\n\n @Prop()\n commentEmail! : EmailDetail;\n\n\n @Prop({ default: false })\n showRespondEmail!: boolean;\n\n @Watch('commentEmail', {deep: true}) \n onEmailCcChanged(newVal: any, oldVal: any) {\n if(newVal.Cc) {\n let cc = newVal.Cc.split(this.emailSeparator);\n this.emailCCSource = cc;\n this.selectedEmailCC = cc;\n }\n else {\n this.emailCCSource = [];\n this.selectedEmailCC = [];\n }\n\n if(newVal.Bcc) {\n let bcc = newVal.Bcc.split(this.emailSeparator);\n this.emailBccSource = bcc;\n this.selectedEmailBcc = bcc;\n }\n else {\n this.emailBccSource = [];\n this.selectedEmailBcc = [];\n }\n }\n\n get emailBodyValue() : string {\n return '';\n }\n\n get showingNotes() {\n return this.showRespondEmail;\n }\n\n set showingNotes(value) {\n this.$emit(\"hiding\");\n }\n\n get emailSubject() : string {\n return this.EmailSubject;\n }\n\n get title() {\n switch (this.respondType) {\n case RespondEnum.ToAgent:\n return 'Respond to Agent';\n case RespondEnum.ToClient:\n return 'Forward to Client';\n default:\n return 'New Email';\n }\n }\n\n get emailToSource() : string[] {\n var result = this.EmailTo ? this.EmailTo.split(this.emailSeparator) : [];\n this.selectedToEmail = result;\n return result;\n }\n\n get bodyHtmlEditor() {\n return (this.$refs.emailBodyEditor as any).instance;\n }\n\n @Watch('respondType')\n async onRespondTypeChanged(newVal: RespondEnum, oldVal : RespondEnum) {\n if(newVal == RespondEnum.ToAgent && this.selectedReplyToAgentId){\n await this.textTemplateService.getTextTemplateById(this.selectedReplyToAgentId)\n .then(success => {\n if(success.Text) {\n var text = this.processAutoTextActualValues(success.Text);\n this.body = this.processEmailBody(text);\n }\n })\n }\n else if(newVal == RespondEnum.ToClient && this.selectedForwardToClientId) {\n await this.textTemplateService.getTextTemplateById(this.selectedForwardToClientId)\n .then(success => {\n if(success.Text) {\n var text = this.processAutoTextActualValues(success.Text);\n this.body = this.processEmailBody(text);\n }\n })\n }\n else {\n this.body = this.processEmailBody(\"

\");\n }\n }\n\n processAutoTextActualValues(text: string) {\n var autoTexts = Object.values(CommentAutoTextEnum);\n var selectedText = text;\n\n autoTexts.forEach(item => {\n var data : string= \"\";\n\n if(item == CommentAutoTextEnum.AgentName) {\n data = this.commentData.AgentName;\n }\n else if(item == CommentAutoTextEnum.ClientName) {\n data = this.commentData.ClientName;\n }\n else if(item == CommentAutoTextEnum.MatterName) {\n data = this.commentData.MatterName;\n }\n else if(item == CommentAutoTextEnum.Country) {\n data = this.commentData.CountryCode;\n }\n else if(item == CommentAutoTextEnum.IssueName) {\n data = this.commentData.IssueName;\n }\n else if(item == CommentAutoTextEnum.CommentDate) {\n data = moment(this.commentData.AgentReponseDate).format(\"MM-DD-YYYY\");\n }\n else if(item == CommentAutoTextEnum.AgentComment) {\n data = this.commentData.AgentComment;\n }\n\n selectedText = selectedText.split(item).join(data);\n })\n\n return selectedText;\n }\n\n processEmailBody(text: string) {\n const Parchment = this.bodyHtmlEditor.get('parchment'); // you can get Quill \"Embed\" blot by \".get('blots/embed')\" \n const Embed = Parchment.Embed; // base \"Embed\" blot without any content class \n class Hr extends Embed {\n static create(value: any) {\n let node = super.create(value);\n node.setAttribute('style', 'display:inline-block; width:98%');\n\n return node;\n }\n }\n Hr.blotName = 'hr';\n Hr.tagName = 'hr'\n this.bodyHtmlEditor.register(Hr);\n\n var emailDetails = this.commentEmail;\n var prevFrom = `From: ${emailDetails.From}
`;\n var sent = `Sent: ${moment(emailDetails.Sent).format(\"LLLL\")}
`;\n var prevTo = `To: ${emailDetails.To}
`;\n var subj = `Subject: ${emailDetails.Subject}
`;\n var prevCC = emailDetails.Cc ? `Cc: ${emailDetails.Cc}
`: '';\n var prevBcc = emailDetails.Bcc ? `Bcc: ${emailDetails.Bcc}
`: '';\n var body = emailDetails.Body;\n\n var result = `${text}\n
\n
\n ${prevFrom}${sent}${prevTo}${prevCC}${prevBcc}${subj}\n
\n ${body}\n `\n\n return result;\n\n }\n\n mainEmailSource: string[] = [];\n emailCCSource: string[] = [];\n emailBccSource: string[] = [];\n selectedEmailCC: string[] = [];\n selectedEmailBcc: string[] = [];\n selectedMainEmail: string[] = [];\n selectedToEmail: string[] = [];\n auditorNotes: string = '';\n body:string = '';\n textTemplateService : TextTemplateService;\n duplicateCustomItem: string = '';\n duplicateCustomItemCc: string = '';\n duplicateCustomItemBcc: string = '';\n commentService: CommentService;\n\n constructor() {\n super(); \n this.textTemplateService = new TextTemplateService();\n this.commentService = new CommentService();\n } \n validationRule = {\n invalidEmail : {\n type: 'email',\n message : 'Invalid email'\n },\n noError : {}\n }\n onCustomItemCreatingEvent(e:any) {\n if (this.checkEmailValidation(e.text))\n {\n let name = e.component.option(\"name\");\n if(name == \"emailCCComponent\")\n {\n if(_.find(this.emailCCSource, item => item === e.text)) {\n this.duplicateCustomItemCc = e.text;\n }\n else {\n this.emailCCSource.push(e.text);\n }\n }\n else if(name == \"emailBccComponent\"){\n if(_.find(this.emailBccSource, item => item === e.text)) {\n this.duplicateCustomItemBcc = e.text;\n }\n else {\n this.emailBccSource.push(e.text);\n }\n }\n else if(name == \"emailToComponent\"){\n if(_.find(this.emailToSource, item => item === e.text)) {\n this.duplicateCustomItem = e.text;\n }\n else {\n this.emailToSource.push(e.text);\n }\n }\n }\n else {\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n }\n\n onEmailValueChanged(e:any) {\n \n let val = e.component.option(\"value\");\n let name = e.component.option(\"name\");\n if(name == \"emailCCComponent\" && this.duplicateCustomItemCc)\n {\n val.push(this.duplicateCustomItemCc);\n e.component.option(\"value\", val);\n\n this.duplicateCustomItemCc = \"\";\n }\n else if(name == \"emailBccComponent\" && this.duplicateCustomItemBcc) {\n val.push(this.duplicateCustomItemBcc);\n e.component.option(\"value\", val);\n\n this.duplicateCustomItemBcc = \"\";\n }else if(name == \"emailToComponent\" && this.duplicateCustomItem) {\n val.push(this.duplicateCustomItem);\n e.component.option(\"value\", val);\n\n this.duplicateCustomItem = \"\";\n }\n \n \n if(e.value && e.value.length > 0) {\n if(_.find(e.value,item => !(this.checkEmailValidation(item)))) {\n e.component.option(\"isValid\", false)\n e.component.option(\"validationError\",this.validationRule.invalidEmail)\n }\n else {\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n else {\n e.component.option(\"isValid\", true)\n e.component.option(\"validationError\", null)\n }\n }\n\n onOpenedEmailAddress(e:any) {\n e.component.content().remove();\n }\n onDiscard(e:any) {\n this.showingNotes = false;\n }\n\n tagItemStyle(e:any) {\n return {\n 'background-color' : this.checkEmailValidation(e) ? '#e0e0e0' : '#f5b5b5'\n }\n }\n\n checkEmailValidation(text: string) {\n return /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(text)\n }\n\n onSendEmail(e: any) {\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n }\n\n if(this.selectedEmailCC && this.selectedEmailCC.length > 0) {\n if(_.find(this.selectedEmailCC, item => !this.checkEmailValidation(item))) {\n return;\n }\n }\n if(this.selectedEmailBcc && this.selectedEmailBcc.length > 0) {\n if(_.find(this.selectedEmailBcc, item => !this.checkEmailValidation(item))) {\n return;\n }\n }\n if(this.selectedToEmail && this.selectedToEmail.length > 0) {\n if(_.find(this.selectedToEmail, item => !this.checkEmailValidation(item))) {\n return;\n }\n }\n\n var result = confirm(`Are you sure you want to send this email?`, this.title);\n result.then(async dialogResult => {\n if(dialogResult) {\n var payload : EmailResponseDto = {\n Cc : this.selectedEmailCC,\n Bcc : this.selectedEmailBcc,\n Subject : this.emailSubject,\n Body: this.body,\n To: this.selectedToEmail[0],\n FileUploadId: this.commentEmail.FileUploadId,\n ClientName : this.commentData.ClientName,\n AgentName : this.commentData.AgentName,\n CommentId: this.commentEmail.CommentId\n }\n var res = await this.commentService.sendEmail(payload, this.respondType)\n .then(success => {\n return success.Data;\n })\n .catch(err => {\n return false;\n })\n if(res) {\n notify('Email successfully sent.', 'success', 3000);\n this.showingNotes = false;\n }\n else {\n alert(\"An error occured while sending the email.\", 'Error');\n }\n }\n }); \n }\n\n onPopUpHidden(e: any) {\n this.body = \"\"\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./respond-to-comment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./respond-to-comment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./respond-to-comment.vue?vue&type=template&id=f5f97a42&scoped=true&\"\nimport script from \"./respond-to-comment.vue?vue&type=script&lang=ts&\"\nexport * from \"./respond-to-comment.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./respond-to-comment.vue?vue&type=style&index=0&id=f5f97a42&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f5f97a42\",\n null\n \n)\n\nexport default component.exports","export default class DateTime {\n public static get utcNow(): Date {\n return new Date(new Date().getTime());\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \nimport { alert } from 'devextreme/ui/dialog';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxEditing, DxColumn, DxHeaderFilter, DxStateStoring } from 'devextreme-vue/data-grid';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { DxButton } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { CommentService } from '../../service/CommentService';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { InfractionTypeDto } from '@/models/infractions/InfractionTypeDto';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport { InfractionService } from '@/service/InfractionService';\nimport RespondToComment from '@/components/activity-planner/respond-to-comment.vue'\nimport { MatterWorkTypeEnum } from '@/models/matter-work/MatterWorkTypeEnum';\nimport { RespondEnum } from '@/models/comments/RespondEnum';\nimport { CommentAutoTextData, EmailDetail } from '@/models/comments/CommentAutoText';\nimport { CommentDto } from '@/models/comments/CommentDto';\nimport DateTime from '../../utilities/DateTime';\nimport MatterDetails from '@/components/matter/matter-details.vue';\nimport { DxDataGrid, DxSummary, DxTotalItem } from 'devextreme-vue/data-grid';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ViewMatterInAuditingDto } from '@/models/matter-work/ViewMatterInAuditingDto';\n\n @Component({\n components: {\n DxButton,\n DxColumn,\n DxEditing,\n DxScrollView,\n DxStateStoring,\n DxToolbarItem,\n RespondToComment,\n MatterDetails,\n Popup,\n DxHeaderFilter,\n DxDataGrid,\n DxSummary,\n DxTotalItem\n }\n })\n export default class CommentsGrid extends Vue {\n public $refs: Vue['$refs'] & {\n commentDatagrid?: DxDataGrid;\n } = {};\n\n @Prop()\n showAllComments!: boolean; \n\n @Prop()\n replyToAgentId!: Guid;\n\n @Prop()\n forwardToClientId!: Guid;\n\n get getReplyToAgentId() {\n return this.replyToAgentId;\n }\n\n get getForwardToClientId() {\n return this.forwardToClientId;\n }\n\n private readonly matterDetailsRef: string = 'matterDetails';\n dataGridCustomStoreOption: CustomStore;\n private client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n commentService: CommentService;\n phaseTypes: Array = [];\n infractionTypes: Array = []; \n canEscalate: boolean = false;\n showRespondEmail: boolean = false;\n emailCC: string = '';\n emailBcc: string = ''\n emailBody: string = '';\n emailSubject: string = '';\n emailTo: string = '';\n respondType: RespondEnum = RespondEnum.DoNotSend;\n commentData: CommentAutoTextData | {} = {};\n commentEmail : EmailDetail | {} = {}\n private showDialog: boolean = false;\n private emailBodyText: string = '';\n private popupTitle: string = '';\n private commentCount: number=0;\n\n allCommentsDataStoreOptions: DevExpress.data.CustomStoreOptions = {\n key: 'CommentId',\n load: loadOptions => this.commentService.searchAll(loadOptions),\n update: (key, values) => this.commentService.edit(key, values)\n };\n\n tieredCommentsDataStoreOptions: DevExpress.data.CustomStoreOptions = {\n key: 'CommentId',\n load: loadOptions => this.commentService.search(loadOptions),\n update: (key, values) => this.commentService.edit(key, values)\n };\n\n updateCommentCount() {\n this.commentCount=this.dataGrid.getTotalSummaryValue(\"CommentCount\");\n }\n\n get showEscalateColumn() : boolean {\n if (this.showAllComments) {\n return false;\n }\n\n if (this.canEscalate) {\n return true;\n }\n\n return false;\n }\n\n constructor() {\n super(); \n this.commentService = new CommentService(); \n this.dataGridCustomStoreOption = this.showAllComments ? new CustomStore(this.allCommentsDataStoreOptions) \n : new CustomStore(this.tieredCommentsDataStoreOptions); \n } \n\n created() {\n this.loadData(); \n }\n \n async loadData()\n {\n let phaseTypeService = new PhaseTypeService();\n this.phaseTypes = await phaseTypeService.getAll();\n\n let infractionService = new InfractionService();\n this.infractionTypes = await infractionService.GetAllInfractionTypes();\n\n this.canEscalate = await this.commentService.getCanEscalate();\n this.applyIssueResolvedFilter();\n }\n\n onCellPrepared(e: any) {\n if(e.rowType === 'data' && e.column.caption === 'Phase/Infraction') {\n let phaseType = this.phaseTypes.filter(t => t.PhaseName === e.row.data.PhaseName)[0]; \n if (phaseType) {\n e.cellElement.style['background-color'] = phaseType.RgbHex;\n }\n } \n }\n\n private get dataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.commentDatagrid as any).instance;\n }\n\n refreshDataGrid(): void {\n this.dataGrid.refresh();\n }\n private applyIssueResolvedFilter() {\n this.dataGrid.columnOption('IssueResolved', 'filterValue', false);\n } \n\n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData);\n }\n\n escalateComment(comment: CommentDto){\n if (comment.Tier < 3) {\n comment.Tier++;\n }\n\n this.commentService.edit(comment.CommentId, comment)\n .then(_ => {\n this.refreshDataGrid();\n });\n }\n\n private get matterDetails() {\n return this.$refs[this.matterDetailsRef] as MatterDetails;\n }\n\n prepareContextMenu(e: any): void {\n if (e.target === 'content' && e.row && e.row.rowType === 'data') {\n let hasAgentReponse = e.row.data.ResponseEmailId === null ? false : true;\n let hasForwardedToClient = e.row.data.ForwardEmailId === null ? false : true;\n \n e.items = [\n {\n text: 'View Matter',\n onItemClick: () => this.showMatterDetails(e.row.data)\n },\n {\n text: 'Open Matter in Auditing',\n onItemClick: () => this.openMatterInAuditing(e.row.data)\n },\n {\n text: 'Respond to Agent',\n onItemClick: () => this.openResponseEmail(e.row.data, RespondEnum.ToAgent)\n },\n {\n text: 'Forward Agent Comment to Client',\n onItemClick: () => this.openResponseEmail(e.row.data, RespondEnum.ToClient)\n },\n {\n text: 'View Correspondence', disabled: e.row.data.ResponseEmailId === null\n },\n {\n text: 'View Response History',\n items: [\n {\n text: \"Respond to Agent\",\n onItemClick: () => {\n this.popupTitle = \"Response History - Respond to Agent\";\n this.openResponseHistory(e.row.data.ResponseEmailId);\n },\n disabled: !hasAgentReponse\n },\n {\n text: \"Forwarded to Client\", \n onItemClick: () => {\n this.popupTitle = \"Response History - Forwarded to Client\";\n this.openResponseHistory(e.row.data.ForwardEmailId);\n },\n disabled: !hasForwardedToClient\n }\n ],\n disabled: hasAgentReponse !== true && hasForwardedToClient !== true\n }\n ];\n }\n }\n\n private showMatterDetails(comment: CommentDto) {\n this.matterDetails.matter = {\n MatterId: comment.MatterId,\n MatterName: comment.MatterName,\n ClientName: comment.ClientName,\n CountryCode: comment.CountryCode\n };\n\n this.matterDetails.show();\n }\n\n private openMatterInAuditing(comment: CommentDto) { \n let notes = `RE: ${comment.AgentName}, ${comment.MatterName}`; \n \n let viewMatterInAuditingDto: ViewMatterInAuditingDto = {\n MatterId: comment.MatterId,\n Notes: notes\n };\n\n this.client.getPostData('/api/MatterWorks/view-matter-in-auditing', viewMatterInAuditingDto)\n .then(result => {\n let route = this.$router.resolve({ name: 'auditing', params: { id: result as string }, query: {'cases': '1'} });\n window.open(route.href);\n })\n .catch(err => {\n alert('Error opening matter in Auditing', 'Error');\n }); \n }\n\n openResponseEmail(e: CommentDto, to: RespondEnum) { \n this.showRespondEmail = true;\n this.respondType = to;\n if(to == RespondEnum.ToAgent) {\n this.emailSubject = `Re: ${e.CommentEmail.Subject}`;\n this.emailTo = e.CommentEmail.From;\n this.emailCC = e.CommentEmail.Cc;\n }\n else {\n this.emailSubject = `Fw: ${e.CommentEmail.Subject}`;\n this.emailTo = e.CommentEmail.ClientEmail;\n }\n this.commentData = {\n ClientName : e.ClientName,\n AgentName : e.AgentName,\n MatterName : e.MatterName,\n CountryCode : e.CountryCode,\n IssueName : e.IssueName,\n AgentReponseDate : e.AgentResponseDate,\n AgentComment : e.AgentComment,\n }\n this.commentEmail = {\n Cc : e.CommentEmail.Cc,\n Bcc : e.CommentEmail.Bcc,\n Subject : e.CommentEmail.Subject,\n From : e.CommentEmail.From,\n Sent: e.AgentResponseDate,\n To: e.CommentEmail.To,\n Body : e.CommentEmail.Body,\n FileUploadId : e.CommentEmail.FileUploadId,\n CommentId : e.CommentId\n }\n }\n\n onRespondCommentHidden() {\n this.showRespondEmail = false;\n this.respondType = RespondEnum.DoNotSend;\n this.emailTo = \"\";\n this.emailSubject = \"\";\n this.commentData = {\n ClientName : \"\",\n AgentName : \"\",\n MatterName : \"\",\n CountryCode : \"\",\n IssueName : \"\",\n AgentReponseDate : new DateTime(),\n AgentComment : \"\",\n };\n this.commentEmail = {\n Cc : \"\",\n Bcc : \"\",\n Subject : \"\",\n From : \"\",\n Sent: new DateTime(),\n To: \"\",\n Body : \"\",\n FileUploadId : \"\",\n CommentId: \"\"\n }\n }\n \n private async openResponseHistory(emailId: Guid): Promise { \n this.showDialog = true;\n this.emailBodyText = await this.commentService.getResponseHistory(emailId);\n }\n\n private closePopup(): void {\n this.showDialog = false;\n }\n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./comments-grid.vue?vue&type=template&id=75b58a92&scoped=true&\"\nimport script from \"./comments-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./comments-grid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./comments-grid.vue?vue&type=style&index=0&id=75b58a92&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75b58a92\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxButton, DxLookup } from 'devextreme-vue';\nimport notify from 'devextreme/ui/notify';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport EmailTemplateEditor from '@/components/fee-sheets/email-template-editor.vue'\nimport { TextTemplateService } from '@/service/TextTemplateService'\nimport { UserService } from '@/service/UserService'\nimport { TextTemplateTypeEnum } from '@/models/TextTemplateTypeEnum';\nimport { TextTemplateDto } from '@/models/TextTemplateDto';\nimport { UserSettingName } from '@/models/UserSetting';\nimport CommentsGrid from '../../components/activity-planner/comments-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n DxLookup,\n DxButton,\n EmailTemplateEditor,\n CommentsGrid\n }\n})\nexport default class Comments extends Vue {\n private displayTemplateEditor: boolean = false;\n private textTemplateService: TextTemplateService;\n private userService: UserService;\n private respondToAgentValue: Guid = \"\";\n private forwardToClientValue: Guid = \"\";\n private doneInitialLoad: boolean = false;\n\n constructor() {\n super();\n this.textTemplateService = new TextTemplateService();\n this.userService = new UserService();\n }\n\n private get respondToAgentDataSource() {\n return new DataSource({\n store: this.respondToAgentStore,\n });\n }\n\n private get forwardToClientDataSource() {\n return new DataSource({\n store: this.forwardToClientStore,\n });\n }\n\n private respondToAgentStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n key: 'TextTemplateId',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.RespondToAgent);\n }\n });\n\n private forwardToClientStore: CustomStore = new CustomStore({\n loadMode: 'raw',\n key: 'TextTemplateId',\n load: (options): Promise => {\n return this.textTemplateService.getTextTemplate(TextTemplateTypeEnum.ForwardToClient);\n }\n });\n\n mounted() {\n this.userService.getCommentSettings().then(x=>{\n let respondToAgent = x.find(x=>x.Name == UserSettingName.RespondToAgent)\n this.respondToAgentValue = respondToAgent != null ? respondToAgent.Value : \"\";\n\n let forwardToClient = x.find(x=>x.Name == UserSettingName.ForwardToClient);\n this.forwardToClientValue = forwardToClient != null ? forwardToClient.Value: \"\";\n setTimeout(()=>{ this.doneInitialLoad = true }, 1000)\n })\n\n \n }\n\n private showTemplatePopup(show: boolean = true) {\n this.displayTemplateEditor = show;\n }\n\n private hideTemplatePopup() {\n this.showTemplatePopup(false);\n this.respondToAgentDataSource.reload();\n this.forwardToClientDataSource.reload();\n }\n\n private respondToAgentChanged(e:any) {\n this.updateCommentSetting(UserSettingName.RespondToAgent, e)\n }\n\n private forwardToClientChanged(e:any) {\n this.updateCommentSetting(UserSettingName.ForwardToClient, e)\n }\n\n private updateCommentSetting(name: string, e: any) {\n if(this.doneInitialLoad) {\n let selected: string | null = null;\n if(e && e.selectedItem) {\n selected = (e.selectedItem as TextTemplateDto).TextTemplateId;\n }\n this.userService.updateCommentSettings(name, selected).then(x=> {\n notify('Updated comment template','success', 1000);\n })\n }\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./comments.vue?vue&type=template&id=24ae375f&scoped=true&\"\nimport script from \"./comments.vue?vue&type=script&lang=ts&\"\nexport * from \"./comments.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./comments.vue?vue&type=style&index=0&id=24ae375f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24ae375f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Comments\")]),_c('div',[_c('comments-grid',{attrs:{\"show-all-comments\":true,\"replyToAgentId\":_vm.respondToAgentValue,\"forwardToClientId\":_vm.forwardToClientValue}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport CommentsGrid from '../components/activity-planner/comments-grid.vue';\nimport { UserService } from '@/service/UserService';\nimport { UserSettingName } from '@/models/UserSetting';\n\n@Component({\n components: {\n PageTitle,\n CommentsGrid\n }\n})\nexport default class AllComments extends Vue {\n private userService: UserService;\n private respondToAgentValue: Guid = \"\";\n private forwardToClientValue: Guid = \"\";\n\n constructor() {\n super();\n this.userService = new UserService();\n }\n\n mounted() {\n this.userService.getCommentSettings().then(x=>{\n let respondToAgent = x.find(x=>x.Name == UserSettingName.RespondToAgent)\n this.respondToAgentValue = respondToAgent != null ? respondToAgent.Value : \"\";\n\n let forwardToClient = x.find(x=>x.Name == UserSettingName.ForwardToClient);\n this.forwardToClientValue = forwardToClient != null ? forwardToClient.Value: \"\";\n\n setTimeout(()=>{ }, 1000)\n })\n\n \n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-comments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-comments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./all-comments.vue?vue&type=template&id=079749e4&\"\nimport script from \"./all-comments.vue?vue&type=script&lang=ts&\"\nexport * from \"./all-comments.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Comments Response Management\")]),_c('div',{staticClass:\"comments-response\"},[_c('comments-response',{ref:\"commentsResponse\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"table\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Parsed Emails\")]),_c('email-table',{ref:\"parsedEmails\",attrs:{\"isParsedEmail\":true}})],1),_c('div',{staticClass:\"table\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Unparsed Emails\")]),_c('email-table',{ref:\"unparsedEmails\",attrs:{\"isParsedEmail\":false}})],1),_c('div',{staticClass:\"table\"},[_c('div',{attrs:{\"id\":\"dropzone\"}},[_c('file-upload',{ref:\"emailUpload\",attrs:{\"id\":\"email-upload\",\"multiple\":true,\"accept\":\".msg\",\"authUrl\":\"/api/FileParseUploads/authorize\",\"label-text\":\"Drag emails to be manually added here\",\"drop-zone\":\"#dropzone\"},on:{\"uploaded\":_vm.onUploadComplete}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('data-grid',{ref:\"emailDataGrid\",attrs:{\"custom-store-options\":_vm.emailStoreOptions,\"remote-operations\":{ sorting: false, paging: true, filtering: false },\"pageSize\":50},on:{\"row-updating\":_vm.rowUpdating},scopedSlots:_vm._u([{key:\"attachmentList\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',{staticClass:\"word-wrap-column\"},[_vm._v(\" \\n \"+_vm._s(_vm.attachmentListDisplay(data.data))+\"\\n \")])])}}])},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"storage\"}}),_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\"}}),_c('dx-column-fixing',{attrs:{\"enabled\":true}}),_c('dx-column',{attrs:{\"data-field\":\"From\",\"caption\":\"Email Address\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"Subject\",\"caption\":\"Email Subject\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"Attachments\",\"caption\":\"Attachments\",\"data-type\":\"string\",\"cell-template\":\"attachmentList\",\"allow-filtering\":false,\"allow-editing\":false}}),_c('dx-column',{attrs:{\"data-field\":\"CreatedDate\",\"caption\":\"Upload Date\",\"data-type\":\"datetime\",\"sort-order\":\"desc\",\"allow-filtering\":true,\"allow-editing\":false}}),(_vm.isParsedEmail)?_c('dx-column',{attrs:{\"data-field\":\"ClientName\",\"caption\":\"Client Name\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false}}):_vm._e(),(_vm.isParsedEmail)?_c('dx-column',{attrs:{\"data-field\":\"AgentName\",\"caption\":\"Agent Name\",\"data-type\":\"string\",\"allow-filtering\":true,\"allow-editing\":false}}):_vm._e(),(_vm.isParsedEmail)?_c('dx-column',{attrs:{\"data-field\":\"PhaseOverCapCommentCount\",\"caption\":\"Overcap Comments\",\"data-type\":\"number\",\"allow-filtering\":true,\"allow-editing\":false}}):_vm._e(),(_vm.isParsedEmail)?_c('dx-column',{attrs:{\"data-field\":\"PhaseOverTargetCommentCount\",\"caption\":\"Overtarget Comments\",\"data-type\":\"number\",\"allow-filtering\":true,\"allow-editing\":false}}):_vm._e(),(_vm.isParsedEmail)?_c('dx-column',{attrs:{\"data-field\":\"InfractionCommentCount\",\"caption\":\"Infraction Comments\",\"data-type\":\"number\",\"allow-filtering\":true,\"allow-editing\":false}}):_vm._e(),_c('dx-column',{attrs:{\"data-field\":\"IssueResolved\",\"caption\":\"Issue Resolved\",\"data-type\":\"boolean\",\"allow-editing\":true,\"allow-sorting\":true,\"allow-header-filtering\":false,\"min-width\":10,\"true-text\":\"Checked\",\"false-text\":\"Unchecked\",\"fixed\":true,\"fixed-position\":\"right\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport { DxEditing, DxColumn, DxFilterRow, DxStateStoring, DxColumnFixing } from 'devextreme-vue/data-grid';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { CommentService } from '@/service/CommentService';\nimport { CommentEmailDto } from '@/models/comments/CommentEmailDto';\n\n@Component({\n components: { \n DataGrid,\n DxColumn,\n DxFilterRow,\n DxEditing,\n DxStateStoring,\n DxColumnFixing\n }\n})\nexport default class EmailTable extends Vue {\n $refs: Vue['$refs'] & {\n emailDataGrid?: DataGrid;\n } = {};\n \n @Prop()\n isParsedEmail!: boolean;\n\n private emailStoreOptions: DevExpress.data.CustomStoreOptions;\n private commentService: CommentService = new CommentService(); \n private initialLoad: boolean = true;\n\n constructor() { \n super(); \n\n this.emailStoreOptions = { \n key: 'EmailId', \n load: (loadOptions) => { \n if(loadOptions.filter === undefined) {\n loadOptions.filter = [];\n }\n\n // parsed email means no errors\n loadOptions.filter.push(\"HasError\", \"=\", !this.isParsedEmail); \n\n if (this.initialLoad) {\n this.initialLoad = false;\n this.applyIssueResolvedFilter();\n } \n return this.commentService.searchCommentEmail(loadOptions)\n },\n update: (key, values) => this.commentService.editCommentEmail(key, values)\n };\n } \n\n private get dataGrid(): DevExpress.ui.dxDataGrid {\n return (this.$refs.emailDataGrid as any).$refs.dxDataGrid.instance;\n }\n\n public refreshDataGrid() { \n if (this.$refs.emailDataGrid) {\n (this.$refs.emailDataGrid as any).refreshDataGrid();\n }\n }\n\n private applyIssueResolvedFilter() {\n this.dataGrid.columnOption('IssueResolved', 'filterValue', false);\n } \n\n rowUpdating(e: any) {\n // Add back any data not edited\n e.newData = Object.assign({}, e.oldData, e.newData);\n }\n\n private attachmentListDisplay(dto: CommentEmailDto): string {\n return dto.Attachments.join(', '); \n } \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-table.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./email-table.vue?vue&type=template&id=78c351e4&scoped=true&\"\nimport script from \"./email-table.vue?vue&type=script&lang=ts&\"\nexport * from \"./email-table.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./email-table.vue?vue&type=style&index=0&id=78c351e4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78c351e4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport DxDraggable from 'devextreme-vue/draggable';\nimport EmailTable from '@/components/comment/email-table.vue';\nimport notify from 'devextreme/ui/notify';\nimport { FileUpload } from '@questelservices/common-vue';\nimport { QuestelServicesClient } from '@questelservices/common';\n\n@Component({\n components: {\n DxDraggable,\n EmailTable,\n FileUpload\n }\n})\nexport default class CommentsResponse extends Vue {\n public $refs: Vue['$refs'] & {\n parsedEmails?: EmailTable;\n unparsedEmails?: EmailTable;\n emailUpload?: FileUpload;\n } = {};\n\n private client = new QuestelServicesClient(this.$store, ''); \n private toProcessFiles: File[] = []; \n private notValidFiles: number = 0;\n\n private get emailUploader() { \n return this.$refs.emailUpload as any; \n }\n \n private onUploadComplete(args: { event: any; fileAuthResult: any; totalFiles: number }): void { \n // Store files that are uploaded \n if (args.fileAuthResult.Files[0]) {\n let fileExtension = args.fileAuthResult.Files[0].FileName.split('.').pop().toLowerCase();\n if(fileExtension === 'msg') {\n let file = args.fileAuthResult.Files[0];\n this.toProcessFiles.push(file);\n }\n else {\n this.notValidFiles++;\n } \n }\n \n if (\n args.event.component.option('progress') === 100 \n && args.totalFiles === (this.notValidFiles + this.toProcessFiles.length)\n ) \n {\n var files = this.toProcessFiles.map((x: any) => {\n return {\n FileId: x.FileId,\n Filename: x.FileName\n };\n });\n\n this.client\n .getPostData<{Success: boolean; Count: number}>('/api/FileParseUploads/comment-email', files)\n .then(data => {\n \n if(data.Success) { \n notify({message: `Successfully processed ${data.Count} file(s).`}, 'success', 2000);\n (this.$refs.parsedEmails as any).refreshDataGrid();\n (this.$refs.unparsedEmails as any).refreshDataGrid();\n } \n else { \n notify({message: `No file was processed. Only .msg files are accepted.`}, 'info', 2000);\n } \n })\n .catch(response => { \n notify({message: `Processing of file(s) has failed. ${response}`}, 'error', 2000);\n })\n .finally(() => {\n this.toProcessFiles = [];\n this.notValidFiles = 0;\n this.emailUploader.resetFileUploader();\n }); \n } \n }\n \n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-response.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-response.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./comments-response.vue?vue&type=template&id=2e298359&scoped=true&\"\nimport script from \"./comments-response.vue?vue&type=script&lang=ts&\"\nexport * from \"./comments-response.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./comments-response.vue?vue&type=style&index=0&id=2e298359&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e298359\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport CommentsResponse from '@/components/comment/comments-response.vue';\n\n@Component({\n components: {\n CommentsResponse,\n PageTitle\n }\n})\nexport default class CommentsResponsePage extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-response.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-response.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./comments-response.vue?vue&type=template&id=b8c73f68&\"\nimport script from \"./comments-response.vue?vue&type=script&lang=ts&\"\nexport * from \"./comments-response.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"File Service\")]),_c('div',{staticClass:\"middlePanel\",class:{ 'panelSideMenuOpen': _vm.sidePanelIsOpen, 'panelSideMenuClosed': !_vm.sidePanelIsOpen }},[_c('div',{staticClass:\"matter-work-flex-container\"},[_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c('file-service-grid')],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"file-lookup-page\"},[_c('div',{staticClass:\"data-grid\"},[_c('dx-data-grid',{ref:\"fileLookupDataGrid\",attrs:{\"data-source\":_vm.dataGridCustomStoreOption,\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"rowAlternationEnabled\":false,\"paging\":{ enabled: false },\"column-auto-width\":true,\"word-wrap-enabled\":true,\"cache-enabled\":false,\"height\":\"100%\"},scopedSlots:_vm._u([{key:\"emailTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[(data.data.EmailTo)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"To: \")]),_vm._v(_vm._s(data.data.EmailTo)+\"\\n \")]):_vm._e(),(data.data.EmailCc)?_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\"Cc: \")]),_vm._v(_vm._s(data.data.EmailCc)+\"\\n \")]):_vm._e()])])}},{key:\"downloadTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{attrs:{\"id\":\"badges\"}},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"download\",\"hint\":\"download\"},on:{\"click\":function($event){return _vm.onDownload(data.data)}}})],1)])}}])},[_c('dx-filter-row',{attrs:{\"visible\":true}}),_c('dx-scrolling',{attrs:{\"mode\":\"infinite\",\"preload-enabled\":true,\"row-rendering-mode\":\"virtual\"}}),_c('dx-header-filter',{attrs:{\"visible\":true,\"allow-search\":true}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"ClientName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"ItemType\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"FileName\",\"data-type\":\"string\",\"width\":200}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"DateCreated\",\"data-type\":\"date\",\"format\":\"MM/dd/yyyy hh:mm a\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"BatchName\",\"caption\":\"Batch\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"data-field\":\"User\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":true,\"min-width\":10,\"caption\":\"Emails\",\"allow-filtering\":false,\"calculate-sort-value\":_vm.SortingEmails,\"cell-template\":\"emailTemplate\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"min-width\":10,\"width\":82,\"cell-template\":\"downloadTemplate\",\"cssClass\":\"download-cell\"}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\n\nexport class FileLookupService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/filelookup');\n \n }\n\n async searchFiles(options: LoadOptions) : Promise {\n return await this.client.getPostData(`/search`, options);\n }\n \n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DataGrid } from '@questelservices/common-vue';\nimport { DxEditing, DxColumn, DxHeaderFilter, DxStateStoring, DxScrolling,DxDataGrid, DxFilterRow } from 'devextreme-vue/data-grid';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport { DxButton } from 'devextreme-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport { CommentService } from '../../service/CommentService';\nimport { PhaseTypeDto } from '@/models/PhaseTypeDto';\nimport { InfractionTypeDto } from '@/models/infractions/InfractionTypeDto';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport { InfractionService } from '@/service/InfractionService';\nimport {FileLookupService} from '@/service/FileLookupService';\nimport RespondToComment from '@/components/activity-planner/respond-to-comment.vue'\nimport {RespondEnum} from '@/models/comments/RespondEnum';\nimport DateTime from '../../utilities/DateTime';\nimport MatterDetails from '@/components/matter/matter-details.vue';\nimport { FileService } from '@/service/FileService';\nimport FileSaver, { saveAs } from 'file-saver';\nimport CustomStore from 'devextreme/data/custom_store';\n\n// const chromedriver = require('chromedriver');\n@Component({\n components: {\n DxDataGrid,\n DxButton,\n DxColumn,\n DxScrollView,\n DxHeaderFilter,\n DxFilterRow,\n DxScrolling\n }\n })\n export default class FileServiceGrid extends Vue {\n dataGridCustomStoreOption: CustomStore;\n private fileLookupService: FileLookupService;\n private fileService: FileService;\n constructor() {\n super();\n this.fileLookupService = new FileLookupService();\n this.fileService = new FileService();\n this.dataGridCustomStoreOption = new CustomStore({ \n load: (options): Promise => {\n return this.fileLookupService.searchFiles(options)\n .catch(result => {\n throw 'An error occurred loading the agent setup.';\n });\n } \n });\n // = {\n // key: 'Id',\n // load: loadOptions => this.fileLookupService.searchFiles(loadOptions) \n // };\n }\n\n SortingEmails(rowData: any) {\n return rowData.EmailTo + rowData.EmailCc;\n }\n\n onDownload(data:any) {\n if(data.FileId) {\n this.fileService.downloadFiles([data.FileId])\n .then(result => {\n let fileName = result.headers.get('Filename');\n result.blob().then((b: any) => {\n // var childProcess = require('child_process');\n // // var chromedriver = require('chromedriver');\n // var binPath = chromedriver.path;\n // var childArgs: any[] = [\n \n // ];\n // childProcess.execFile(binPath, childArgs, function(err:any, stdout:any, stderr:any) {\n // var a = 1;\n // // handle results\n // });\n // var returnPromise = true;\n // var args: any[] = [\n // 'safebrowsing.enabled=False'\n // ];\n\n // chromedriver.start(args, true);\n // var a = 1;\n // chromedriver.stop();\n FileSaver.saveAs(b, decodeURIComponent(fileName));\n // const url = window.URL.createObjectURL(b);\n // const link = document.createElement('a');\n // link.href = url;\n // link.setAttribute('download', decodeURIComponent(fileName));\n // document.body.appendChild(link);\n // link.click();\n // link.remove();\n });\n })\n }\n }\n \n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-service-grid.vue?vue&type=template&id=24ed7663&scoped=true&\"\nimport script from \"./file-service-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-service-grid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./file-service-grid.vue?vue&type=style&index=0&id=24ed7663&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24ed7663\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport FileServiceGrid from '@/components/file-service/file-service-grid.vue';\n\n@Component({\n components: {\n PageTitle,\n FileServiceGrid\n }\n})\nexport default class FileServicePage extends Vue {\n // This gets the status of the left sidebar\n private get sidePanelIsOpen() {\n return (this.$root.$children[0].$children[1] as any).menuOpened; \n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-service.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./file-service.vue?vue&type=template&id=1cb30839&\"\nimport script from \"./file-service.vue?vue&type=script&lang=ts&\"\nexport * from \"./file-service.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./file-service.vue?vue&type=style&index=0&id=1cb30839&prod&lang=scss&scope=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Agent Setup\")]),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"icon\":\"refresh\",\"text\":\"Refresh\"},on:{\"click\":_vm.refreshDataGrid}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"icon\":\"plus\",\"text\":\"Add New Agent\"},on:{\"click\":_vm.openCreateAgentForm}}),_c('dx-button',{staticClass:\"activity-buttons\",attrs:{\"icon\":\"plus\",\"text\":\"Add Existing Agent\"},on:{\"click\":_vm.openLinkAgentForm}}),_c('div',{staticClass:\"agent-work\"},[_c('agent-setup',{ref:\"agentSetup\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-data-grid',{ref:\"agentSetupDataGrid\",attrs:{\"data-source\":_vm.agentSetupStore,\"showBorders\":true,\"showRowLines\":true,\"showColumnLines\":true,\"rowAlternationEnabled\":true,\"allowColumnResizing\":true,\"allowColumnReordering\":true,\"columnMinWidth\":100,\"columnAutoWidth\":true},scopedSlots:_vm._u([{key:\"agentInfoEditTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_c('dx-button',{attrs:{\"type\":\"normal\",\"icon\":\"edit\"},on:{\"click\":function($event){return _vm.onAgentSetupEdit(data.data)}}})],1)])}},{key:\"primaryAgentNameTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_vm._v(\"\\n \"+_vm._s(_vm.processPrimaryAgentDisplay(data.data))+\"\\n \")])}},{key:\"inJurisdictionTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\" \\n \"+_vm._s(_vm.processInJurisDictionDisplay(data.data, \"In\"))+\"\\n \")])])}},{key:\"outJurisdictionTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\" \\n \"+_vm._s(_vm.processInJurisDictionDisplay(data.data, \"Out\"))+\"\\n \")])])}},{key:\"unsetJurisdictionTemp\",fn:function(ref){\nvar data = ref.data;\nreturn _c('div',{},[_c('div',[_vm._v(\" \\n \"+_vm._s(_vm.processInJurisDictionDisplay(data.data, \"Unset\"))+\"\\n \")])])}}])},[_c('dx-column',{attrs:{\"data-field\":\"Client.ClientName\",\"data-type\":\"string\",\"caption\":\"Client\",\"width\":\"350\"}}),_c('dx-column',{attrs:{\"data-field\":\"Agent\",\"caption\":\"Primary Agent Name\",\"cell-template\":\"primaryAgentNameTemp\"}}),_c('dx-column',{attrs:{\"data-field\":\"PrimaryAlias.AgentAlias\",\"caption\":\"Client's Agent Alias\"}}),_c('dx-column',{attrs:{\"data-field\":\"Jurisdictions\",\"caption\":\"In Jurisdiction Countries\",\"cell-template\":\"inJurisdictionTemp\"}}),_c('dx-column',{attrs:{\"data-field\":\"OutOfJurisdiction\",\"cell-template\":\"outJurisdictionTemp\",\"caption\":\"Out of Jurisdiction Countries\"}}),_c('dx-column',{attrs:{\"data-field\":\"UnsetCountries\",\"cell-template\":\"unsetJurisdictionTemp\",\"caption\":\"Unset Countries\",\"width\":\"250\"}}),_c('dx-column',{attrs:{\"data-field\":\"AgentEmail\",\"data-type\":\"string\",\"caption\":\"Email Address\"}}),_c('dx-column',{attrs:{\"data-field\":\"AgentCCEmail\",\"data-type\":\"string\",\"caption\":\"Email CC\"}}),_c('dx-column',{attrs:{\"allow-editing\":false,\"allow-sorting\":false,\"width\":65,\"cell-template\":\"agentInfoEditTemplate\"}})],1),_c('create-new-agent',{ref:\"createNewAgent\",attrs:{\"showDialog\":_vm.showingCreateNewAgent},on:{\"hidingCreateNewAgent\":_vm.hidingCreateNewAgent,\"createNewAgentHidden\":_vm.createNewAgentHidden}}),_c('link-new-agent',{ref:\"linkExistingAgent\",attrs:{\"showDialog\":_vm.showingLinkNewAgent},on:{\"hiding\":_vm.hidingLinkAgent}}),_c('agent-info-edit',{attrs:{\"showDialog\":_vm.showingAgentInfo,\"clientAgentInfoDto\":_vm.clientAgentInfo},on:{\"hiding\":_vm.hidingDialog}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Add New Agent\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave,\"hidden\":_vm.onHidden}},[_c('dx-scroll-view',[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"newAgentContent\"},[_c('h4',[_vm._v(\"Agent Name\")]),_c('dx-text-box',{attrs:{\"width\":\"100%\",\"stylingMode\":\"outlined\",\"placeholder\":\"New agent name\",\"value\":_vm.clientAgentInfo.Agent.AgentName},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo.Agent, \"AgentName\", $event)}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('div',{staticClass:\"newAgentContent\"},[_c('h4',[_vm._v(\"Client Name\")]),_c('dx-select-box',{attrs:{\"dataSource\":_vm.clientsDataSource,\"stylingMode\":\"outlined\",\"showClearButton\":true,\"search-enabled\":true,\"searchMode\":\"contains\",\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.clientAgentInfo.Client.ClientId,\"placeholder\":\"Select a client to create this agent for\"},on:{\"update:value\":function($event){return _vm.$set(_vm.clientAgentInfo.Client, \"ClientId\", $event)}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1)])],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingCreate },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Popup } from '@questelservices/common-vue';\nimport { DxButton, DxTextBox, DxSelectBox } from 'devextreme-vue';\nimport { DxValidator, DxEmailRule, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxScrollView } from 'devextreme-vue/scroll-view';\nimport DataSource from \"devextreme/data/data_source\";\nimport CommonModule, { QuestelServicesClient, HttpMethodEnum, RequestResult } from '@questelservices/common'; \nimport { ClientService } from '@/service/ClientService';\nimport { SelectOption } from '@/models/SelectOption';\nimport { Prop } from 'vue-property-decorator';\nimport { alert } from 'devextreme/ui/dialog';\nimport { AgentDto } from '../../models/agent/AgentDto';\nimport { AgentService } from '../../service/AgentService';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { ClientDto } from '../../models/client/ClientDto'; \nimport { CountryDto } from '../../models/CountryDto'; \nimport { ClientAgentInfoDto } from '../../models/client-agent/ClientAgentInfoDto';\nimport DxValidationGroup from 'devextreme-vue/validation-group'\nimport ValidationGroup from \"devextreme/ui/validation_group\";\nimport _ from 'lodash';\n\n@Component({\n components: {\n DxButton, \n Popup, \n DxTextBox, \n DxToolbarItem,\n DxSelectBox, \n DxValidator,\n DxCustomRule,\n DxScrollView, \n DxValidationGroup,\n DxRequiredRule\n }\n})\nexport default class CreateNewAgent extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n clientsDataSource: SelectOption[] = []; \n agents: AgentDto[] = [];\n clientAgentInfo: ClientAgentInfoDto = new ClientAgentInfoDto();\n createNewAgent: boolean = false;\n \n readonly emptyGuid: string = \"00000000-0000-0000-0000-000000000000\";\n\n //primaryAgentName: string = this.agentInfoData.AgentName;\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hidingCreateNewAgent\", this.clientAgentInfo, false);\n }\n\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n this.clientAgentInfo = new ClientAgentInfoDto(); \n this.createNewAgent = false;\n this.validationGroup.reset();\n } \n } \n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n \n constructor() {\n super(); \n this.loadData(); \n } \n\n async loadData() { \n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clientsDataSource = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n }); \n \n let agentService = new AgentService();\n let agents = await agentService.getAll();\n this.agents = agents;\n } \n\n async refreshAgents() {\n let agentService = new AgentService();\n let agents = await agentService.getAll();\n this.agents = agents;\n }\n\n hidingCreate() {\n this.showingDialog = false;\n }\n\n onHidden() {\n this.$emit(\"createNewAgentHidden\", this.clientAgentInfo, this.createNewAgent);\n }\n\n async confirmSave() {\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n }\n \n if (this.agents.some(a => a.AgentName.toLowerCase() == this.clientAgentInfo.Agent.AgentName.trim().toLowerCase())) {\n let message = 'An agent with this name already exists.';\n alert(message, 'Error');\n return;\n }\n\n this.clientAgentInfo.Agent.AgentId = this.emptyGuid;\n this.clientAgentInfo.PrimaryAlias.ClientAgentAliasId = this.emptyGuid;\n this.clientAgentInfo.Client.ClientName = this.clientsDataSource.filter(c => c.value == this.clientAgentInfo.Client.ClientId)[0].text;\n this.createNewAgent = true;\n\n this.hidingCreate(); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-new-agent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./create-new-agent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./create-new-agent.vue?vue&type=template&id=40417e89&scoped=true&\"\nimport script from \"./create-new-agent.vue?vue&type=script&lang=ts&\"\nexport * from \"./create-new-agent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./create-new-agent.vue?vue&type=style&index=0&id=40417e89&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40417e89\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('popup',{attrs:{\"width\":\"665\",\"height\":\"auto\",\"max-height\":\"95%\",\"show-title\":true,\"title\":\"Add New Agent\",\"drag-enabled\":false,\"close-on-outside-click\":false,\"visible\":_vm.showingDialog},on:{\"update:visible\":function($event){_vm.showingDialog=$event},\"save-shortcut-pressed\":_vm.confirmSave}},[_c('dx-scroll-view',[_c('dx-validation-group',{ref:\"validationGroupRef\"},[_c('div',{staticClass:\"newAgentContent\"},[_c('h4',[_vm._v(\"Client Name\")]),_c('dx-select-box',{attrs:{\"dataSource\":_vm.clientsDataSource,\"stylingMode\":\"outlined\",\"showClearButton\":true,\"search-enabled\":true,\"searchMode\":\"contains\",\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClientId,\"placeholder\":\"Select a client to link an agent to\"},on:{\"update:value\":function($event){_vm.selectedClientId=$event},\"valueChanged\":_vm.onClientSelected}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('div',{staticClass:\"newAgentContent\"},[_c('h4',[_vm._v(\"Agent Name\")]),_c('dx-lookup',{attrs:{\"width\":\"100%\",\"dataSource\":_vm.agentsDataSource,\"stylingMode\":\"outlined\",\"showClearButton\":true,\"search-enabled\":true,\"searchMode\":\"contains\",\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedAgentId,\"disabled\":_vm.clientNotSelected},on:{\"update:value\":function($event){_vm.selectedAgentId=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1)])],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Ok', type: 'default', stylingMode: 'contained', onClick: _vm.confirmSave },\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":{ text: 'Cancel', type: 'normal', stylingMode: 'contained', onClick: _vm.hidingCreate },\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n import { Component, Vue, Watch } from 'vue-property-decorator';\n import { Popup } from '@questelservices/common-vue';\n import { DxButton, DxTextBox, DxSelectBox, DxLookup } from 'devextreme-vue';\n import { DxValidator, DxEmailRule, DxCustomRule, DxRequiredRule } from 'devextreme-vue/validator';\n import { DxToolbarItem } from 'devextreme-vue/popup';\n import { DxScrollView } from 'devextreme-vue/scroll-view'; \n import { ClientService } from '@/service/ClientService';\n import { SelectOption } from '@/models/SelectOption';\n import { Prop } from 'vue-property-decorator';\n import { confirm, alert } from 'devextreme/ui/dialog';\n import { AgentDto } from '../../models/agent/AgentDto';\n import { AgentService } from '../../service/AgentService';\n import { ClientAgentService } from '../../service/ClientAgentService';\n import { ClientDto } from '../../models/client/ClientDto'; \n import { CountryDto } from '../../models/CountryDto'; \n import { ClientAgentInfoDto } from '../../models/client-agent/ClientAgentInfoDto';\n import DxValidationGroup from 'devextreme-vue/validation-group'\n import ValidationGroup from \"devextreme/ui/validation_group\";\n import _ from 'lodash';\nimport { LinkClientAgentDto } from '@/models/client-agent/LinkClientAgentDto';\n\n @Component({\n components: {\n DxButton, \n Popup, \n DxTextBox, \n DxToolbarItem,\n DxSelectBox, \n DxLookup, \n DxValidator,\n DxCustomRule,\n DxScrollView, \n DxValidationGroup,\n DxRequiredRule\n }\n })\n export default class LinkNewAgent extends Vue {\n public $refs: Vue['$refs'] & {\n validationGroupRef? : ValidationGroup;\n } = {};\n \n @Prop({ default: false })\n showDialog!: boolean; \n\n clientAgentService = new ClientAgentService();\n\n clientsDataSource: SelectOption[] = []; \n agentsDataSource: SelectOption[] = [];\n \n selectedClientId: Guid = \"\";\n selectedAgentId: Guid = \"\";\n\n get showingDialog() {\n return this.showDialog;\n }\n\n set showingDialog(value) {\n this.$emit(\"hiding\");\n }\n\n get clientNotSelected() {\n return this.selectedClientId === \"\" || this.selectedClientId === null;\n }\n\n @Watch(\"showDialog\")\n onPropertyChanged(value: boolean, oldValue: boolean) { \n if (value) { \n this.selectedClientId = \"\";\n this.selectedAgentId = \"\";\n this.validationGroup.reset();\n } \n } \n\n private get validationGroup() {\n return ((this.$refs.validationGroupRef as ValidationGroup).instance as any); \n }\n \n constructor() {\n super(); \n this.loadData(); \n } \n\n async loadData() {\n let clientService = new ClientService();\n let clients = await clientService.getAll();\n this.clientsDataSource = clients.map(c => {\n return { text: c.ClientName, value: c.ClientId };\n }); \n } \n\n async onClientSelected(e: any) {\n if (this.selectedClientId === \"\" || this.selectedClientId === null) { \n this.selectedAgentId = \"\"; \n this.agentsDataSource = []; \n return; \n }\n\n let agents = await this.clientAgentService.getUnlinkedAgents(this.selectedClientId);\n console.log(agents.length);\n this.agentsDataSource = agents.map(a => {\n return { text: a.AgentName, value: a.AgentId };\n }); \n }\n\n hidingCreate() {\n this.showingDialog = false;\n }\n\n async confirmSave() {\n let validation = this.validationGroup.validate();\n if(!validation.isValid){\n return;\n }\n\n let clientName = this.clientsDataSource.filter(c => c.value == this.selectedClientId)[0].text;\n let agentName = this.agentsDataSource.filter(a => a.value == this.selectedAgentId)[0].text;\n\n var result = confirm(`Are you sure you want to link the agent ${agentName} to the client ${clientName}?`, \"Link Existing Agent\");\n result\n .then(dialogResult => {\n if(dialogResult) {\n let linkClientAgentDto: LinkClientAgentDto = {\n ClientId: this.selectedClientId,\n AgentId: this.selectedAgentId\n };\n\n this.clientAgentService.linkClientAndAgent(linkClientAgentDto)\n .then(_ =>{\n this.hidingCreate(); \n }); \n }\n }\n ); \n }\n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./link-new-agent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./link-new-agent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./link-new-agent.vue?vue&type=template&id=492ae608&scoped=true&\"\nimport script from \"./link-new-agent.vue?vue&type=script&lang=ts&\"\nexport * from \"./link-new-agent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./link-new-agent.vue?vue&type=style&index=0&id=492ae608&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"492ae608\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport DxDataGrid, {\n DxGrouping,\n DxSummary,\n DxGroupItem,\n DxSortByGroupSummaryInfo,\n DxSorting,\n DxRemoteOperations,\n DxColumn\n} from 'devextreme-vue/data-grid';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { QuestelServicesClient } from '@questelservices/common/dist';\nimport { DxButton } from 'devextreme-vue';\nimport { ClientAgentDto } from '../../models/client-agent/ClientAgentDto';\nimport { ClientAgentJurisdictionDto, JurisdictionType } from '@/models/client-agent/ClientAgentJurisdictionDto';\nimport { CountryDto } from '../../models/CountryDto';\nimport _ from 'lodash';\nimport { ClientAgentAliasDto } from '@/models/client-agent/ClientAgentAliasDto';\nimport { ClientDto } from '../../models/client/ClientDto';\nimport AgentInfoEdit from './agent-info-edit.vue';\nimport CreateNewAgent from './create-new-agent.vue';\nimport LinkNewAgent from './link-new-agent.vue';\nimport { ClientAgentInfoDto } from '../../models/client-agent/ClientAgentInfoDto';\n\n@Component({\n components: {\n DxDataGrid,\n DxGrouping,\n DxSummary,\n DxGroupItem,\n DxSortByGroupSummaryInfo,\n DxSorting,\n DxRemoteOperations,\n DxColumn,\n DxButton,\n AgentInfoEdit,\n CreateNewAgent,\n LinkNewAgent\n }\n})\nexport default class AgentSetup extends Vue {\n public $refs: Vue['$refs'] & {\n agentSetupDataGrid?: DxDataGrid;\n createNewAgent?: CreateNewAgent;\n } = {};\n\n agentSetupStore: CustomStore;\n hasData: boolean = false;\n clientAgentService: ClientAgentService;\n selectedClientId: Guid = '';\n showingAgentInfo: boolean = false;\n clientAgentInfo: ClientAgentInfoDto = new ClientAgentInfoDto();\n agentSetupList: ClientAgentDto[] = [];\n \n showingCreateNewAgent: boolean = false; \n showingLinkNewAgent: boolean = false;\n\n constructor() {\n super();\n this.clientAgentService = new ClientAgentService();\n this.agentSetupStore = new CustomStore({ \n load: (options): Promise => {\n return this.clientAgentService\n .agentSetup(options)\n .then(result => {\n return result.data;\n })\n .catch(result => {\n throw 'An error occurred loading the agent setup.';\n });\n } \n });\n }\n\n private get dataGrid() {\n if (this.$refs.agentSetupDataGrid) {\n return this.$refs.agentSetupDataGrid.instance;\n }\n\n return undefined;\n }\n\n refreshDataGrid() {\n if (this.dataGrid) {\n this.dataGrid.refresh();\n }\n }\n\n onAgentSetupEdit(data: any ) { \n this.clientAgentInfo = data; \n this.showingAgentInfo = true;\n }\n\n hidingDialog() { \n this.showingAgentInfo = false;\n this.refreshDataGrid(); \n if (this.$refs.createNewAgent) {\n (this.$refs.createNewAgent as any).refreshAgents();\n } \n }\n\n showCreateNewAgent() {\n this.showingCreateNewAgent = true;\n }\n\n hidingCreateNewAgent() {\n this.showingCreateNewAgent = false; \n }\n\n createNewAgentHidden(clientAgentInfo: ClientAgentInfoDto, createAgent: boolean) {\n if (!createAgent) {\n return;\n }\n\n this.showingAgentInfo = true;\n this.clientAgentInfo = clientAgentInfo;\n }\n\n showLinkAgent() {\n this.showingLinkNewAgent = true;\n }\n\n hidingLinkAgent() {\n this.showingLinkNewAgent = false;\n }\n\n linkAgentHidden() {\n this.refreshDataGrid();\n }\n\n\n\n processPrimaryAgentDisplay(data: any) {\n let result = \"\";\n if(data.Agent && data.Agent.AgentId != \"00000000-0000-0000-0000-000000000000\"\n && data.Agent.AgentName) {\n result = data.Agent.AgentName;\n }\n\n return result;\n }\n\n processAgentAlias(data: any) : string {\n let result = \"\"; \n if(data.ClientAgent && data.ClientAgent.ClientAgentAliases){\n result = _.find(data.ClientAgent.ClientAgentAliases, (item : ClientAgentAliasDto) => item.PrimaryAlias).AgentAlias;\n }\n\n return result;\n }\n\n processInJurisDictionDisplay(data: ClientAgentInfoDto, jurisdictionType: JurisdictionType): string {\n let result = \"\"; \n\n if(!data){\n return result;\n }\n\n if(jurisdictionType === JurisdictionType.In) { \n if(data.Jurisdictions) {\n let filteredData = data.Jurisdictions.filter((item : ClientAgentJurisdictionDto) => item.InJurisdiction);\n filteredData.forEach((element : ClientAgentJurisdictionDto) => {\n result = (result ? `${result}, `: \"\") + element.Country.CountryCode;\n }); \n } \n }\n else if(jurisdictionType === JurisdictionType.Out) { \n if(data.Jurisdictions) {\n let filteredData = data.Jurisdictions.filter((item : ClientAgentJurisdictionDto) => !item.InJurisdiction);\n filteredData.forEach((element : ClientAgentJurisdictionDto) => {\n result = (result ? `${result}, `: \"\") + element.Country.CountryCode;\n }); \n } \n }\n else if(jurisdictionType === JurisdictionType.Unset) {\n if(data.UnsetCountries) {\n data.UnsetCountries.forEach((element : CountryDto) => {\n result = (result ? `${result}, `: \"\") + element.CountryCode;\n }); \n } \n }\n\n return result;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./agent-setup.vue?vue&type=template&id=53264f59&scoped=true&\"\nimport script from \"./agent-setup.vue?vue&type=script&lang=ts&\"\nexport * from \"./agent-setup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./agent-setup.vue?vue&type=style&index=0&id=53264f59&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53264f59\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport { DxButton } from 'devextreme-vue';\nimport AgentSetup from '@/components/activity-planner/agent-setup.vue';\n\n@Component({\n components: {\n AgentSetup, \n DxButton,\n PageTitle\n }\n})\nexport default class AgentSetupPage extends Vue {\n public $refs: Vue['$refs'] & {\n agentSetup?: AgentSetup; \n } = {};\n\n refreshDataGrid() {\n if (this.$refs.agentSetup) {\n (this.$refs.agentSetup as any).refreshDataGrid();\n }\n }\n\n openCreateAgentForm() {\n if (this.$refs.agentSetup) {\n (this.$refs.agentSetup as any).showCreateNewAgent();\n }\n }\n\n openLinkAgentForm() {\n if (this.$refs.agentSetup) {\n (this.$refs.agentSetup as any).showLinkAgent();\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-setup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./agent-setup.vue?vue&type=template&id=68018550&scoped=true&\"\nimport script from \"./agent-setup.vue?vue&type=script&lang=ts&\"\nexport * from \"./agent-setup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./agent-setup.vue?vue&type=style&index=0&id=68018550&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68018550\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Reports\")]),_c('all-clients-summary')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-data-grid',{ref:_vm.dataGridRef,attrs:{\"data-source\":_vm.allClientsSummaryStore,\"columnAutoWidth\":true,\"showRowLines\":true,\"showColumnLines\":true,\"showBorders\":true,\"columnResizingMode\":\"nextColumn\",\"paging\":{ enabled: false },\"columnMinWidth\":50,\"wordWrapEnabled\":false,\"width\":\"100%\",\"height\":\"100%\",\"repaint-changes-only\":true},on:{\"content-ready\":_vm.onContentReady,\"row-prepared\":_vm.onRowPrepared,\"row-validating\":_vm.onRowValidating,\"cell-prepared\":_vm.onCellPrepared},scopedSlots:_vm._u([{key:\"selectionTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-checkbox',{attrs:{\"value\":data.ReadyForReporting},on:{\"update:value\":function($event){return _vm.$set(data, \"ReadyForReporting\", $event)}}})]}},{key:\"sendAnalysisReportsCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"message\",\"text\":\"Send\",\"hint\":\"Send Client Reports\"},on:{\"click\":function($event){return _vm.sendBatchReport(data, _vm.analysisReportType)}}})]}},{key:\"sendAuditorReportsCellTemplate\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"message\",\"text\":\"Send\",\"hint\":\"Send Agent Reports\"},on:{\"click\":function($event){return _vm.sendBatchReport(data, _vm.auditorReportType)}}})]}}])},[_c('dx-editing',{attrs:{\"allow-updating\":true,\"mode\":\"cell\",\"refresh-mode\":\"repaint\"}}),_c('dx-column',{attrs:{\"width\":80,\"data-field\":\"ReadyForReporting\",\"data-type\":\"boolean\",\"caption\":\"Ready for Reporting\",\"fixed\":true,\"fixed-position\":\"left\",\"cell-tempate\":\"selectionTemplate\"}}),_c('dx-column',{attrs:{\"width\":200,\"data-field\":\"ClientName\",\"caption\":\"Client\",\"fixed\":true,\"fixed-position\":\"left\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"MatterNeedsAuditingCount\",\"data-type\":\"string\",\"caption\":\"Matter(s) Unreviewed\",\"fixed\":true,\"fixed-position\":\"left\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"LatestBatchName\",\"data-type\":\"string\",\"caption\":\"Batch\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"DataIn\",\"data-type\":\"date\",\"caption\":\"Data In\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"AvailableCases\",\"data-type\":\"string\",\"caption\":\"Matters\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"LineItemCount\",\"data-type\":\"string\",\"caption\":\"Lines\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalHardOverages\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"UnreviewedHardOverages\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalSoftOverages\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"UnreviewedSoftOverages\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalInfractions\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"UnreviewedInfractions\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"TotalNotes\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":125,\"data-field\":\"UnreviewedNotes\",\"data-type\":\"string\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":100,\"data-field\":\"ReportOut\",\"data-type\":\"date\",\"caption\":\"Reports Out\",\"allow-editing\":false}}),_c('dx-column',{attrs:{\"width\":109,\"caption\":\"Send Client Reports\",\"cell-template\":\"sendAnalysisReportsCellTemplate\",\"allow-filtering\":false,\"allow-sorting\":false,\"allow-editing\":false,\"fixed\":true,\"fixed-position\":\"right\"}}),_c('dx-column',{attrs:{\"width\":109,\"caption\":\"Send Agent Reports\",\"cell-template\":\"sendAuditorReportsCellTemplate\",\"allow-filtering\":false,\"allow-sorting\":false,\"allow-editing\":false,\"fixed\":true,\"fixed-position\":\"right\"}}),_c('dx-filter-row',{attrs:{\"visible\":true}})],1),_c('dx-load-panel',{attrs:{\"visible\":_vm.sendingReport},on:{\"update:visible\":function($event){_vm.sendingReport=$event}}}),_c('send-reports-confirmation',{ref:_vm.sendReportsConfirmationRef,on:{\"hiding\":_vm.onSendReportsConfirmationHiding}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\nimport DxDataGrid, {\n DxColumn,\n DxRemoteOperations,\n DxPaging,\n DxPager,\n DxFilterRow,\n DxSelection,\n DxEditing \n} from 'devextreme-vue/data-grid';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { ClientAgentService } from '../../service/ClientAgentService';\nimport { QuestelServicesClient } from '@questelservices/common/dist';\nimport { DxButton, DxTooltip, DxCheckBox, DxLoadPanel } from 'devextreme-vue';\nimport _ from 'lodash';\n import { Popup } from '@questelservices/common-vue';\nimport { ActivityPlannerService } from '@/service/ActivityPlannerService';\nimport { PageTitle, DataGrid } from '@questelservices/common-vue';\nimport DevExpress from 'devextreme/bundles/dx.all';\nimport dialog from 'devextreme/ui/dialog';\nimport { DxToolbarItem } from 'devextreme-vue/popup';\nimport { BatchService } from '../../service/BatchService';\nimport notify from 'devextreme/ui/notify';\nimport moment from 'moment';\nimport { ClientSummaryDto } from '@/models/ClientSummaryDto';\nimport { ReportTypeEnum } from '@/models/ReportTypeEnum';\nimport { SendBatchReportsRequestDto } from '@/models/batch/SendBatchReportsRequestDto';\nimport SendReportsConfirmation from '@/components/auditor/send-reports-confirmation.vue';\n\n@Component({\n components: {\n DxDataGrid,\n DxColumn,\n DxRemoteOperations,\n DxPaging,\n DxPager,\n DxFilterRow,\n DxToolbarItem,\n DxSelection,\n DxTooltip,\n DxEditing,\n DxLoadPanel,\n DxButton,\n SendReportsConfirmation\n }\n})\nexport default class AllClientsSummary extends Vue {\n private showDialog: boolean = false;\n private allClientsSummaryStore: CustomStore;\n private readonly analysisReportType: ReportTypeEnum = ReportTypeEnum.Analysis;\n private readonly auditorReportType: ReportTypeEnum = ReportTypeEnum.Auditor;\n private readonly sendReportsConfirmationRef: string = 'sendReportsConfirmationRef';\n readonly dataGridRef: string = 'dataGridRef';\n\n private get dataGrid() {\n return (this.$refs[this.dataGridRef] as DxDataGrid).instance;\n }\n\n private get sendReportsConfirmation() {\n return this.$refs[this.sendReportsConfirmationRef] as SendReportsConfirmation;\n }\n\n constructor() {\n super();\n this.activityPlannerService = new ActivityPlannerService('/api');\n this.batchService = new BatchService();\n this.allClientsSummaryStore = new CustomStore({\n key: 'ClientId',\n loadMode: 'raw', \n load: options => {\n return this.activityPlannerService\n .clientSummary(options)\n .then(result => {\n let data = result.data as ClientSummaryDto[];\n this.processPreSelectedBatchIds(data);\n return data;\n })\n .catch(err => {\n return [];\n })\n }, \n update: (key, values) => { \n if (key) { \n return this.batchService.setReadyForReporting(key)\n .then(success => { \n return success;\n })\n .catch(err => {\n notify('Failed to save ready for reporting', 'error', 3000);\n });\n } else {\n return Promise.resolve();\n } \n } \n });\n }\n \n displayMessage: string = '';\n hoveredItem : string = \"\";\n tooltipVisible: boolean = false;\n sendingReport: boolean = false;\n listOfSelectedBatchIds: Array = [];\n tempSelectedBatchIds: Array = [];\n batchService: BatchService;\n activityPlannerService: ActivityPlannerService;\n\n processPreSelectedBatchIds(data: ClientSummaryDto[]) {\n this.listOfSelectedBatchIds = data.filter(item => item.ReadyForReporting).map(item => item.ClientId);\n this.tempSelectedBatchIds = _.cloneDeep(this.listOfSelectedBatchIds);\n }\n\n OnDataErrorOccured(e: any) {\n if (e != null && e.error != null) {\n e.error.message = \"Failed to load data.\";\n }\n }\n\n onContentReady(e: any) {\n if (!e.component.__firstLoad) {\n e.component.option(\"selectedRowKeys\", this.listOfSelectedBatchIds);\n }\n } \n\n onRowValidating(e: any) {\n if (e.newData) {\n let data = e.component.getDataSource().items();\n let keyData = data.find((x:any) => x.ClientId == e.key);\n \n if (keyData.MatterNeedsAuditingCount > 0 && e.newData.ReadyForReporting) {\n e.promise = dialog.confirm(`${keyData.ClientName}, ${keyData.LatestBatchName} still has ${keyData.MatterNeedsAuditingCount}\n ${keyData.MatterNeedsAuditingCount > 1 ? \"cases\": \"case\"} that have not yet been audited.
Are you sure you want to set this to be ready to send?`\n , \"Confirm Ready to Send\")\n .then(res => {\n if (!res) {\n e.component.cancelEditData();\n return;\n }\n });\n }\n else {\n e.component.saveEditData();\n }\n\n this.refreshDataGrid();\n }\n }\n\n onRowPrepared(e: any) {\n if (e.rowType == \"data\" && e.data) {\n if (e.data.MatterNeedsAuditingCount > 0) {\n e.rowElement.style['background-color'] = \"#f9e08c\";\n }\n }\n }\n \n onCellPrepared(e: any) {\n if (e.rowType === 'data' && e.data) {\n e.cellElement.setAttribute(\"id\", `audit-${e.columnIndex}-${e.data.ClientName}`);\n }\n }\n\n refreshDataGrid() {\n if (this.dataGrid) {\n this.dataGrid.refresh();\n }\n }\n\n sendBatchReport(data: any, reportType: ReportTypeEnum) {\n if (data != null && data.data != null) {\n this.sendReportsConfirmation.reportType = reportType;\n this.sendReportsConfirmation.client = {\n ClientId: data.data.ClientId,\n ClientName: data.data.ClientName\n };\n\n this.sendReportsConfirmation.show();\n }\n }\n\n private async onSendReportsConfirmationHiding() {\n if (this.sendReportsConfirmation.dialogResult === true && this.sendReportsConfirmation.selectedBatch != null) {\n let batchName = this.sendReportsConfirmation.selectedBatch.BatchName;\n let reportTypeName = this.sendReportsConfirmation.reportTypeName;\n let clientName = this.sendReportsConfirmation.selectedBatch.ClientName;\n\n notify(`Sending batch ${batchName} ${reportTypeName} reports for ${clientName}...`, \"info\");\n this.sendingReport = true;\n\n let options: SendBatchReportsRequestDto = {\n ReportType: this.sendReportsConfirmation.reportType,\n ForceSend: true\n };\n\n this.batchService.sendReport(this.sendReportsConfirmation.selectedBatch.BatchId, options)\n .then(response => {\n notify(`Batch ${batchName} ${reportTypeName} reports successfully sent for ${clientName}`, \"success\");\n })\n .catch(reason => {\n let message = `Failed to send batch ${batchName} ${reportTypeName} reports for ${clientName}.`;\n if (reason != null && reason.Message != null) {\n message += ` ${reason.Message}`;\n }\n\n dialog.alert(message, \"Report Sending Failed\");\n })\n .finally(() => {\n this.sendingReport = false;\n });\n }\n }\n }\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-clients-summary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./all-clients-summary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./all-clients-summary.vue?vue&type=template&id=22cf9071&scoped=true&\"\nimport script from \"./all-clients-summary.vue?vue&type=script&lang=ts&\"\nexport * from \"./all-clients-summary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./all-clients-summary.vue?vue&type=style&index=0&id=22cf9071&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22cf9071\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Breadcrumbs, PageTitle } from '@questelservices/common-vue';\nimport AllClientsSummary from '@/components/auditor/all-clients-summary.vue';\n\n@Component({\n components: {\n Breadcrumbs,\n PageTitle,\n AllClientsSummary\n }\n})\nexport default class ClientSummary extends Vue {}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-summary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-summary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./client-summary.vue?vue&type=template&id=79354f03&\"\nimport script from \"./client-summary.vue?vue&type=script&lang=ts&\"\nexport * from \"./client-summary.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"PDF Translator\")]),_c('pdf-translator')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('file-upload',{ref:_vm.fileUploaderRef,attrs:{\"accept\":_vm.accept,\"auth-url\":_vm.authUrl,\"multiple\":_vm.multiple,\"upload-failed-message\":_vm.uploadFailedMessage,\"upload-mode\":_vm.uploadMode,\"uploaded-message\":_vm.uploadedMessage},on:{\"on-value-changed\":_vm.onFilesReady,\"uploaded\":_vm.onUploadComplete}}),_c('div',[_c('div',{staticClass:\"dx-field\"},[_c('dx-check-box',{attrs:{\"text\":_vm.combineText,\"value\":_vm.combine},on:{\"update:value\":function($event){_vm.combine=$event}}})],1),_c('div',{staticClass:\"dx-field\"},[_c('dx-check-box',{attrs:{\"text\":_vm.includeOriginalsText,\"value\":_vm.includeOriginals},on:{\"update:value\":function($event){_vm.includeOriginals=$event}}})],1)])],1),_c('div',{staticClass:\"job-area\"},[_c('dx-button',{staticClass:\"refresh-button\",attrs:{\"icon\":\"refresh\",\"text\":\"Refresh\"},on:{\"click\":_vm.refreshJobs}}),_c('dx-data-grid',{ref:_vm.dataGridRef,attrs:{\"data-source\":_vm.jobsDataSource,\"allow-column-reordering\":true,\"allow-column-resizing\":true},scopedSlots:_vm._u([{key:\"download-cell-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"download\",\"hint\":\"Download\",\"disabled\":data.value == null},on:{\"click\":function($event){return _vm.downloadFile(data.value)}}})]}}])},[_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"AutoTranslationJobsDataGrid\"}}),_c('dx-column',{attrs:{\"data-field\":\"JobId\",\"data-type\":\"string\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-field\":\"SubmittedBy\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"FileName\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"FileCount\",\"data-type\":\"string\"}}),_c('dx-column',{attrs:{\"data-field\":\"StatusMessage\",\"data-type\":\"string\",\"caption\":\"Status\"}}),_c('dx-column',{attrs:{\"data-field\":\"CreatedDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"StartDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"CompleteDate\",\"data-type\":\"datetime\"}}),_c('dx-column',{attrs:{\"data-field\":\"ResultFileId\",\"caption\":\"Download\",\"min-width\":100,\"width\":100,\"cell-template\":\"download-cell-template\"}})],1)],1),_c('dx-load-panel',{attrs:{\"visible\":_vm.translationInProgress},on:{\"update:visible\":function($event){_vm.translationInProgress=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { AutoTranslationResponseDto } from '@/models/auto-translation/AutoTranslationResponseDto';\nimport { AutoTranslationRequestDto } from '@/models/auto-translation/AutoTranslationRequestDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\nexport class AutoTranslationService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/AutoTranslations');\n }\n\n public async translate(parameters: AutoTranslationRequestDto): Promise {\n return await this.client.getPostData('', parameters);\n }\n\n public async getJobs(options: LoadOptions): Promise {\n return await this.client.getPostData('/list', options);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { FileUpload } from '@questelservices/common-vue';\nimport { FileAuthorizationResult, FileAuthorizationRequest } from '@questelservices/common-vue/dist/models/FileAuthorization';\nimport { FileDetails } from '@questelservices/common-vue/dist/models/FileDetails';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { alert } from 'devextreme/ui/dialog';\nimport { DxButton } from 'devextreme-vue/button';\nimport { DxCheckBox } from 'devextreme-vue/check-box';\nimport { DxColumn, DxDataGrid, DxStateStoring } from 'devextreme-vue/data-grid';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport FileSaver from 'file-saver';\nimport { AutoTranslationJobDto } from '@/models/auto-translation/AutoTranslationJobDto';\nimport { AutoTranslationRequestDto } from '@/models/auto-translation/AutoTranslationRequestDto';\nimport { AutoTranslationService } from '@/service/AutoTranslationService';\n\ninterface UploadCompleteResult {\n event: any;\n fileAuthResult: FileAuthorizationResult;\n totalFiles: number;\n}\n\n@Component({\n components: {\n DxButton,\n DxCheckBox,\n DxColumn,\n DxDataGrid,\n DxLoadPanel,\n DxStateStoring,\n FileUpload\n }\n})\nexport default class PdfTranslator extends Vue {\n private readonly accept: string = 'application/pdf,application/zip';\n private readonly authUrl: string = '/api/uploads/authorization';\n private readonly combineText: string = 'Combine documents into one file';\n private readonly dataGridRef: string = 'dataGridRef';\n private readonly fileUploaderRef: string = 'fileUploaderRef';\n private readonly includeOriginalsText: string = 'Include original documents';\n private readonly multiple: boolean = true;\n private readonly uploadFailedMessage: string = 'Upload failed';\n private readonly uploadMode: string = 'useButtons';\n private readonly uploadedMessage: string = 'Uploaded';\n\n private readonly autoTranslationService: AutoTranslationService = new AutoTranslationService();\n private readonly client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n\n private combine: boolean = false;\n private filesToProcess: any[] = [];\n private fileNames: string[] = [];\n private includeOriginals: boolean = false;\n private translationInProgress: boolean = false;\n\n private get dataGrid() {\n return (this.$refs[this.dataGridRef] as DxDataGrid).instance;\n }\n\n private get fileUploader() {\n return this.$refs[this.fileUploaderRef] as any;\n }\n\n private get jobsDataSource() {\n return new CustomStore({\n key: 'JobId',\n load: options => this.autoTranslationService.getJobs(options).catch(this.handleResponseError)\n });\n }\n\n private downloadFile(fileId?: Guid) {\n if (fileId == null) {\n alert('Unable to download file.', 'Error');\n return;\n }\n\n let files: FileDetails[] = [{ fileId: fileId }];\n let authorization: FileAuthorizationRequest = {\n files: files\n };\n\n this.client.getPostData('/api/downloads/authorization', authorization)\n .then(downloadAuthorization => {\n this.client.download(downloadAuthorization.Url, downloadAuthorization.Token)\n .then((downloadResult: Response) => {\n if (downloadResult.ok) {\n let filename: string | undefined = undefined;\n let filenameHeader = downloadResult.headers.get('Filename');\n\n if (filenameHeader != null) {\n filename = filenameHeader;\n }\n\n if (filename != null) {\n filename = decodeURIComponent(filename);\n }\n\n downloadResult.blob().then(data => {\n FileSaver.saveAs(data, filename);\n });\n } else {\n this.handleErrorResponse('An error occurred downloading the translated file(s).');\n }\n })\n .catch(reason => {\n this.handleErrorResponse('An error occurred downloading the translated file(s).');\n });\n })\n .catch(reason => {\n this.handleErrorResponse('An error occurred downloading the translated file(s).');\n });\n }\n\n private handleResponseError(result: any) {\n let message = 'An unknown error occurred.';\n if (result != null && result.Message != null) {\n message = result.Message;\n\n let index = message.indexOf(' (Error');\n if (index > -1) {\n message = message.substring(0, index);\n }\n }\n\n throw Error(message);\n }\n\n private onFilesReady(event: any) {\n if (event.value != null) {\n this.fileNames = event.value.map((f: any) => f.name);\n } else {\n this.fileNames = [];\n }\n }\n\n private onUploadComplete(args: UploadCompleteResult) {\n if (args.fileAuthResult.Files.length > 0) {\n this.filesToProcess.push(args.fileAuthResult.Files[0]);\n }\n\n let progress = args.event.component.option('progress');\n if (progress === 100 && this.filesToProcess.length === args.totalFiles) {\n let files: any[] = [];\n\n this.fileNames.forEach(fileName => {\n let file = this.filesToProcess.find(f => f.FileName === fileName);\n if (file != null) {\n files.push(file);\n }\n });\n\n let parameters: AutoTranslationRequestDto = {\n Files: files,\n Combine: this.combine,\n IncludeOriginals: this.includeOriginals\n };\n\n this.translationInProgress = true;\n\n this.autoTranslationService.translate(parameters)\n .then(response => {\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n\n alert('Documents successfully submitted.', 'Submitted');\n this.reset();\n })\n .catch(reason => {\n this.handleErrorResponse('An error occurred submitting the file(s).');\n })\n .finally(() => {\n this.translationInProgress = false;\n });\n }\n }\n\n private handleErrorResponse(message: string) {\n alert(message, 'Error');\n }\n\n private refreshJobs() {\n if (this.dataGrid != null) {\n this.dataGrid.refresh();\n }\n }\n\n private reset() {\n this.filesToProcess = [];\n this.fileNames = [];\n this.fileUploader.resetUploader();\n this.fileUploader.resetFileUploader();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdf-translator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdf-translator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pdf-translator.vue?vue&type=template&id=4d318fbc&scoped=true&\"\nimport script from \"./pdf-translator.vue?vue&type=script&lang=ts&\"\nexport * from \"./pdf-translator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./pdf-translator.vue?vue&type=style&index=0&id=4d318fbc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d318fbc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport PdfTranslator from '@/components/auto-translation/pdf-translator.vue';\n\n@Component({\n components: {\n PageTitle,\n PdfTranslator\n }\n})\nexport default class PdfTranslatorView extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdf-translator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdf-translator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pdf-translator.vue?vue&type=template&id=b7a406da&\"\nimport script from \"./pdf-translator.vue?vue&type=script&lang=ts&\"\nexport * from \"./pdf-translator.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"E-Billing\")]),_c('e-billing')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"main-container\"},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',{staticStyle:{\"margin-right\":\"10px\",\"width\":\"400px\"}},[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"placeholder\":\"Select a client\",\"element-attr\":{ class: 'select-box' }},on:{\"update:value\":function($event){_vm.selectedClient=$event}}}),_c('dx-select-box',{attrs:{\"disabled\":_vm.selectedClient == null,\"search-enabled\":true,\"data-source\":_vm.batches,\"display-expr\":_vm.batchDisplayExpression,\"value-expr\":\"BatchId\",\"value\":_vm.selectedBatch,\"show-clear-button\":true,\"placeholder\":\"Select a batch\",\"element-attr\":{ class: 'select-box' }},on:{\"update:value\":function($event){_vm.selectedBatch=$event}}})],1),_c('dx-button',{attrs:{\"disabled\":_vm.selectedReports.length === 0,\"icon\":\"export\",\"text\":\"Print\"},on:{\"click\":_vm.downloadReports}})],1),(_vm.selectedClient != null && _vm.selectedBatch != null)?_c('div',[_c('dx-list',{attrs:{\"data-source\":_vm.reports,\"display-expr\":\"DisplayName\",\"element-attr\":{ class: 'report-selection' },\"height\":\"720px\",\"width\":\"500px\",\"key-expr\":\"ClientEbillingReportKey\",\"page-load-mode\":\"scrollBottom\",\"select-all-mode\":\"allPages\",\"selected-items\":_vm.selectedReports,\"selection-mode\":\"all\",\"show-selection-controls\":true},on:{\"update:selectedItems\":function($event){_vm.selectedReports=$event},\"update:selected-items\":function($event){_vm.selectedReports=$event}}})],1):_vm._e()]),_c('dx-load-panel',{attrs:{\"visible\":_vm.downloadInProgress},on:{\"update:visible\":function($event){_vm.downloadInProgress=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient } from '@questelservices/common';\nimport store from '@/store';\nimport { FileAuthorizationResult } from '@questelservices/common-vue/dist/models/FileAuthorization';\nimport { EbillingReportsRequestDto } from '@/models/e-billing/EbillingReportsRequestDto';\n\nexport class EbillingService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/ebilling');\n }\n\n public async getEbillingReports(request: EbillingReportsRequestDto): Promise {\n return await this.client.getPostData('', request);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport { QuestelServicesClient } from '@questelservices/common';\nimport { alert } from 'devextreme/ui/dialog';\nimport notify from 'devextreme/ui/notify';\nimport { DxButton } from 'devextreme-vue/button';\nimport { DxList } from 'devextreme-vue/list';\nimport { DxLoadPanel } from 'devextreme-vue/load-panel';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport FileSaver from 'file-saver';\nimport { SelectOption } from '@/models/SelectOption';\nimport { BatchDto } from '@/models/batch/BatchDto';\nimport { ClientEbillingReportDto } from '@/models/e-billing/ClientEbillingReportDto';\nimport { ClientEbillingReportRequestDto } from '@/models/e-billing/ClientEbillingReportRequestDto';\nimport { EbillingReportsRequestDto } from '@/models/e-billing/EbillingReportsRequestDto';\nimport { ClientService } from '@/service/ClientService';\nimport { BatchService } from '@/service/BatchService';\nimport { EbillingService } from '@/service/EbillingService';\nimport String from '@/utilities/String';\n\n@Component({\n components: {\n DxButton,\n DxList,\n DxLoadPanel,\n DxSelectBox\n }\n})\nexport default class EBilling extends Vue {\n private readonly batchService: BatchService = new BatchService();\n private readonly client: QuestelServicesClient = new QuestelServicesClient(this.$store, '');\n private readonly clientService: ClientService = new ClientService();\n private readonly ebillingService: EbillingService = new EbillingService();\n\n private batches: BatchDto[] = [];\n private clients: SelectOption[] = [];\n private downloadInProgress: boolean = false;\n private reports: ClientEbillingReportDto[] = [];\n private selectedBatch: Guid | null = null;\n private selectedClient: Guid | null = null;\n private selectedReports: ClientEbillingReportDto[] = [];\n\n @Watch('selectedClient')\n private async onSelectedClientChanged() {\n this.selectedBatch = null;\n this.batches = [];\n\n await this.loadBatches();\n\n if (this.batches.length > 0) {\n this.selectedBatch = this.batches[0].BatchId;\n }\n }\n\n @Watch('selectedBatch')\n private async onSelectedBatchChanged() {\n this.reports = [];\n\n if (this.selectedBatch != null) {\n this.reports = await this.batchService.getEbillingReports(this.selectedBatch);\n }\n }\n\n async created() {\n await this.loadData();\n }\n\n private async loadData() {\n this.clients = await this.clientService.getEbillerSelectOptions();\n }\n\n private async loadBatches() {\n if (this.selectedClient != null) {\n this.batches = await this.batchService.getClosedClientBatches(this.selectedClient);\n }\n }\n\n private downloadReports() {\n if (this.selectedBatch == null) {\n return;\n }\n\n let request: EbillingReportsRequestDto = {\n BatchId: this.selectedBatch,\n ReportsToGenerate: this.selectedReports.map(r => {\n return {\n ClientEbillingReportId: r.ClientEbillingReportId,\n AgentId: r.AgentId\n };\n })\n };\n\n this.downloadInProgress = true;\n this.ebillingService.getEbillingReports(request)\n .then(downloadAuthorization => {\n this.client.download(downloadAuthorization.Url, downloadAuthorization.Token)\n .then((downloadResult: Response) => {\n if (downloadResult.ok) {\n let filename: string | undefined = undefined;\n let filenameHeader = downloadResult.headers.get('Filename');\n\n if (filenameHeader != null) {\n filename = filenameHeader;\n }\n\n if (filename != null) {\n filename = decodeURIComponent(filename);\n }\n\n downloadResult.blob().then(data => {\n FileSaver.saveAs(data, filename);\n });\n\n notify('Report printing complete', 'success', 4000);\n } else {\n this.handleErrorResponse('An error occurred downloading the report(s).');\n }\n })\n .catch(reason => {\n this.handleErrorResponse('An error occurred downloading the report(s).');\n });\n })\n .catch(reason => {\n if(reason.Message == \"No reports generated.\") {\n this.handleNoReportsAvailable();\n }\n else {\n this.handleErrorResponse('An error occurred generating the report(s).');\n }\n })\n .finally(() => {\n this.downloadInProgress = false;\n });\n }\n\n private handleErrorResponse(message: string) {\n alert(message, 'Error');\n }\n\n private handleNoReportsAvailable(){\n let batchName = this.batches.find(x => x.BatchId == this.selectedBatch);\n let clientName = this.clients.find(x => x.value == this.selectedClient);\n let reportTypes = this.reports.filter(x => this.selectedReports.some(z => x.ClientEbillingReportId == z.ClientEbillingReportId)).map(x => x.DisplayName);\n let reportMessage = \"\"\n if(reportTypes.length > 2) {\n reportMessage = `${reportTypes[0]} and ${reportTypes.length - 1} other reports`;\n }\n else {\n reportMessage = `${reportTypes.join(\",\")} report(s)`;\n }\n let message = `${clientName!.text} has no ${reportMessage} in batch ${batchName!.BatchName}`;\n alert(message, 'Report printing cancelled');\n }\n\n private batchDisplayExpression(batch?: BatchDto) {\n if (batch == null) {\n return '';\n }\n\n let result = String.removeTrailingZeros(batch.BatchName);\n return result == null ? '' : result;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./e-billing.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./e-billing.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./e-billing.vue?vue&type=template&id=7ffe6a44&scoped=true&\"\nimport script from \"./e-billing.vue?vue&type=script&lang=ts&\"\nexport * from \"./e-billing.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./e-billing.vue?vue&type=style&index=0&id=7ffe6a44&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ffe6a44\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport EBilling from '@/components/e-billing/e-billing.vue';\n\n@Component({\n components: {\n EBilling,\n PageTitle\n }\n})\nexport default class EBillingView extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./e-billing.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./e-billing.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./e-billing.vue?vue&type=template&id=be647360&\"\nimport script from \"./e-billing.vue?vue&type=script&lang=ts&\"\nexport * from \"./e-billing.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Analysis Triggers\")]),_c('analysis-trigger-list')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-data-grid',{attrs:{\"data-source\":_vm.analysisTriggerRulesDataSource,\"paging\":{ pageSize: 25 },\"allow-column-resizing\":true},on:{\"initialized\":_vm.onDataGridInitialized,\"toolbar-preparing\":_vm.addHeaderButton},scopedSlots:_vm._u([{key:\"notes-cell-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('dx-button',{attrs:{\"icon\":\"comment\",\"hint\":\"Notes\"},on:{\"click\":function($event){return _vm.openNotes(data.data)}}})]}},{key:\"edit-delete\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[_c('dx-button',{staticClass:\"analysis-row-buttons\",attrs:{\"icon\":\"edit\",\"hint\":\"Edit\"},on:{\"click\":function($event){return _vm.showAddEdit(data.data)}}}),_c('dx-button',{staticClass:\"analysis-row-buttons\",attrs:{\"icon\":\"trash\",\"hint\":\"Delete\"},on:{\"click\":function($event){return _vm.removeRow(data.data)}}})],1)]}}])},[_c('dx-header-filter',{attrs:{\"visible\":true}}),_c('dx-filter-row',{attrs:{\"visible\":true}}),_c('dx-state-storing',{attrs:{\"enabled\":true,\"type\":\"localStorage\",\"storage-key\":\"AnalysisTriggerRuleDataGrid\"}}),_c('dx-column',{attrs:{\"data-field\":\"AnalysisTriggerRuleId\",\"data-type\":\"string\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-field\":\"AnalysisTriggerRuleTypeId\",\"data-type\":\"string\",\"caption\":\"Rule Type\",\"calculate-sort-value\":\"RuleTypeName\",\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.analysisTriggerRuleTypeOptions, allowSearch: true }}},[_c('dx-required-rule'),_c('dx-lookup',{attrs:{\"data-source\":_vm.analysisTriggerRuleTypeOptions,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"RuleName\",\"data-type\":\"string\",\"caption\":\"Rule Name\",\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"ClientId\",\"data-type\":\"string\",\"caption\":\"Client\",\"calculate-sort-value\":\"ClientName\",\"customize-text\":_vm.customizeEmptyText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.clients, allowSearch: true }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.clients,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"CountryId\",\"data-type\":\"string\",\"caption\":\"Country\",\"calculate-sort-value\":\"CountryCode\",\"customize-text\":_vm.customizeEmptyText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.countries, allowSearch: true, searchMode: 'startswith' }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.countries,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"FilingTypeId\",\"data-type\":\"string\",\"caption\":\"Filing Type\",\"calculate-sort-value\":\"FilingTypeName\",\"customize-text\":_vm.customizeEmptyText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.filingTypes, allowSearch: true }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.filingTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"PhaseType1Id\",\"data-type\":\"string\",\"caption\":\"Phase Type 1\",\"calculate-sort-value\":\"Phase1Name\",\"customize-text\":_vm.customizeEmptyOptionalText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.phaseTypes, allowSearch: true }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"PhaseType2Id\",\"data-type\":\"string\",\"caption\":\"Phase Type 2\",\"calculate-sort-value\":\"Phase2Name\",\"customize-text\":_vm.customizeEmptyOptionalText,\"allow-filtering\":false,\"allow-header-filtering\":true,\"header-filter\":{ dataSource: _vm.phaseTypes, allowSearch: true }}},[_c('dx-lookup',{attrs:{\"data-source\":_vm.phaseTypes,\"value-expr\":\"value\",\"display-expr\":\"text\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"Number\",\"data-type\":\"string\",\"caption\":\"Number\",\"customize-text\":_vm.customizeEmptyOptionalText,\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"Amount\",\"data-type\":\"string\",\"caption\":\"Amount\",\"customize-text\":_vm.customizeEmptyOptionalText,\"format\":{ type: 'currency' },\"allow-header-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"Notes\",\"data-type\":\"string\",\"caption\":\"Notes\",\"allow-filtering\":false,\"allow-sorting\":false,\"min-width\":53,\"width\":53,\"cell-template\":\"notes-cell-template\"}}),_c('dx-column',{attrs:{\"caption\":\"\",\"allow-filtering\":false,\"allow-sorting\":false,\"cell-template\":\"edit-delete\"}})],1),_c('text-popup',{attrs:{\"title\":\"Notes\",\"text\":_vm.notesToShow,\"visible\":_vm.showNotes,\"width\":\"400\",\"height\":\"225\"},on:{\"update:visible\":function($event){_vm.showNotes=$event},\"hiding\":_vm.closeNotes}}),_c('analysis-trigger-rule-add-edit',{ref:\"analysisTriggerRuleAddEdit\",attrs:{\"visible\":_vm.showAddEditPopup,\"analysisTriggerRule\":_vm.targetRule,\"analysisTriggerTypes\":_vm.analysisTriggerRuleTypes,\"phaseTypes\":_vm.phaseTypes,\"filingTypes\":_vm.filingTypes,\"countryList\":_vm.countries,\"clientList\":_vm.clients,\"errorMessage\":_vm.errorMessage,\"height\":\"80%\"},on:{\"hiding\":_vm.hideAddEdit,\"save-and-hide\":_vm.saveRowData}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { AnalysisTriggerRuleDto } from '@/models/analysis-triggers/AnalysisTriggerRuleDto';\nimport { LoadOptions } from 'devextreme/data/load_options';\n\nexport class AnalysisTriggerRuleService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/AnalysisTriggerRules');\n }\n\n async list(options: LoadOptions): Promise {\n return await this.client.getPostData('/list', options);\n }\n\n async get(id: Guid): Promise {\n return await this.client.get(`/${id}`);\n }\n\n async create(data: AnalysisTriggerRuleDto): Promise {\n return await this.client.getPostData('', data);\n }\n\n async update(id: Guid, data: AnalysisTriggerRuleDto): Promise {\n return await this.client.getData(HttpMethodEnum.Put, `/${id}`, data);\n }\n\n async delete(id: Guid): Promise {\n return await this.client.getData(HttpMethodEnum.Delete, `/${id}`);\n }\n}\n","import { QuestelServicesClient, HttpMethodEnum } from '@questelservices/common';\nimport store from '@/store';\nimport { AnalysisTriggerRuleTypeDto } from '@/models/analysis-triggers/AnalysisTriggerRuleTypeDto';\n\nexport class AnalysisTriggerRuleTypeService {\n private readonly client: QuestelServicesClient;\n\n constructor() {\n this.client = new QuestelServicesClient(store, '/api/AnalysisTriggerRuleTypes');\n }\n\n async list(): Promise {\n return await this.client.get('');\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('dx-popup',{attrs:{\"title\":_vm.title,\"visible\":_vm.visible,\"width\":\"40%\",\"height\":_vm.height,\"max-height\":\"95%\"},on:{\"hiding\":_vm.onHiding}},[_c('div',[(_vm.errorMessage)?_c('div',{staticClass:\"dx-error-message\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e(),(_vm.showForm)?_c('dx-form',{ref:\"analysisRuleForm\",attrs:{\"col-count\":1,\"form-data\":_vm.formData,\"validation-group\":\"analysisRuleData\"},on:{\"field-data-change\":_vm.updateFormData}},[_c('dx-group-item',{attrs:{\"col-count\":2}},[_c('dx-item',{attrs:{\"editor-type\":\"dxLookup\",\"data-field\":\"AnalysisTriggerRuleTypeId\",\"is-required\":true,\"editor-options\":_vm.analysisTriggerRuleType}},[_c('dx-label',{attrs:{\"text\":\"Rule Type\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"RuleName\",\"is-required\":true,\"editor-type\":\"dxTextBox\",\"editor-options\":{ hint: 'Enter up to 255 characters', maxLength: 255, placeholder: 'Rule name' }}},[_c('dx-label',{attrs:{\"text\":\"Rule name\"}})],1)],1),_c('dx-group-item',{attrs:{\"col-count\":3}},[_c('dx-item',{attrs:{\"data-field\":\"ClientId\",\"editor-type\":\"dxLookup\",\"editor-options\":_vm.clientListOption}},[_c('dx-label',{attrs:{\"text\":\"Client\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"CountryId\",\"editor-type\":\"dxLookup\",\"editor-options\":_vm.countryListOption}},[_c('dx-label',{attrs:{\"text\":\"Country\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"FilingTypeId\",\"editor-type\":\"dxLookup\",\"editor-options\":_vm.filingTypeOption}},[_c('dx-label',{attrs:{\"text\":\"Filing Type\"}})],1)],1),_c('dx-group-item',{attrs:{\"col-count\":4}},[_c('dx-item',{attrs:{\"data-field\":\"PhaseType1Id\",\"is-required\":_vm.phaseType1Required,\"visible\":_vm.phaseType1Required,\"editor-type\":\"dxLookup\",\"editor-options\":_vm.phaseTypeOption}},[_c('dx-label',{attrs:{\"text\":\"Phase Type 1\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"PhaseType2Id\",\"is-required\":_vm.phaseType2Required,\"visible\":_vm.phaseType2Required,\"editor-type\":\"dxLookup\",\"editor-options\":_vm.phaseTypeOption}},[_c('dx-label',{attrs:{\"text\":\"Phase Type 2\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"Number\",\"is-required\":_vm.numberRequired,\"visible\":_vm.numberRequired,\"editor-type\":\"dxNumberBox\",\"editor-options\":{ format: '###0', min: 0 }}},[_c('dx-label',{attrs:{\"text\":\"Number\"}})],1),_c('dx-item',{attrs:{\"data-field\":\"Amount\",\"editor-type\":\"dxNumberBox\",\"is-required\":_vm.amountRequired,\"visible\":_vm.amountRequired,\"editor-options\":{ format: '$ #,##0.##;($ #,##0.##)', min: 0 }}},[_c('dx-label',{attrs:{\"text\":\"Amount\"}})],1)],1),_c('dx-group-item',{attrs:{\"col-count\":1}},[_c('dx-item',{attrs:{\"data-field\":\"Notes\",\"editor-type\":\"dxTextArea\",\"editor-options\":{ maxLength: 255, placeholder: 'Enter up to 255 characters', stylingMode: 'outlined' }}})],1)],1):_vm._e()],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.saveButtonOptions}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"location\":\"after\",\"toolbar\":\"bottom\",\"options\":_vm.closeButtonOptions}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTextArea } from 'devextreme-vue/text-area';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { DxTextBox } from 'devextreme-vue/text-box';\nimport { DxButton } from 'devextreme-vue/button';\nimport { DxForm, DxItem, DxGroupItem, DxLabel } from 'devextreme-vue/form'\nimport { DxLookup } from 'devextreme-vue/lookup'\nimport { AnalysisTriggerRuleDto } from '@/models/analysis-triggers/AnalysisTriggerRuleDto';\nimport { AnalysisTriggerRuleTypeDto } from '@/models/analysis-triggers/AnalysisTriggerRuleTypeDto';\nimport { SelectOption } from '@/models/SelectOption';\nimport Form from 'devextreme/ui/form';\nimport dxForm from 'devextreme/ui/form';\nimport _, { isNull, isUndefined } from 'lodash';\n\n@Component({\n components: {\n DxPopup,\n DxTextArea,\n DxToolbarItem,\n DxSelectBox,\n DxTextBox,\n DxButton,\n DxForm,\n DxItem,\n DxLookup,\n DxGroupItem,\n DxLabel\n }\n})\nexport default class AnalysisTriggerRuleAddEdit extends Vue {\n\n @Prop({ required: true })\n visible!: boolean;\n\n @Prop({ default: '40%' })\n width!: number | string;\n\n @Prop({ default: '95%' })\n height!: number | string;\n\n @Prop()\n analysisTriggerRule!: AnalysisTriggerRuleDto;\n\n @Prop({required: true})\n analysisTriggerTypes!: Array;\n\n @Prop({required: true})\n phaseTypes!: Array;\n\n @Prop({required: true})\n filingTypes!: Array;\n\n @Prop({required: true})\n countryList!: Array;\n\n @Prop({required: true})\n clientList!:Array;\n\n @Prop({required:false})\n errorMessage: string | null = null;\n\n $refs: Vue['$refs'] & {\n analysisRuleForm?: Form;\n } = {};\n\n get closeButtonOptions() {\n return {\n text: 'Close',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.close\n };\n }\n\n get saveButtonOptions() {\n return {\n text: 'Save',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.validateAndSave\n };\n }\n\n private get formData() {\n return {\n AnalysisTriggerRuleId: this.analysisTriggerRule.AnalysisTriggerRuleId,\n AnalysisTriggerRuleTypeId: this.analysisTriggerRule.AnalysisTriggerRuleTypeId,\n CountryId: this.analysisTriggerRule.CountryId || '',\n CountryCode: this.analysisTriggerRule.CountryCode,\n FilingTypeId: this.analysisTriggerRule.FilingTypeId || '',\n FilingTypeName: this.analysisTriggerRule.FilingTypeName,\n ClientId: this.analysisTriggerRule.ClientId || '',\n ClientName: this.analysisTriggerRule.ClientName,\n CreatedDate: this.analysisTriggerRule.CreatedDate,\n CreatedById: this.analysisTriggerRule.CreatedById,\n CreatedBy: this.analysisTriggerRule.CreatedBy,\n RuleTypeName: this.analysisTriggerRule.RuleTypeName,\n RuleName: this.analysisTriggerRule.RuleName,\n Amount: isUndefined(this.analysisTriggerRule.Amount) || isNull(this.analysisTriggerRule.Amount) ? '': this.analysisTriggerRule.Amount,\n Number: isUndefined(this.analysisTriggerRule.Number) || isNull(this.analysisTriggerRule.Number) ? '': this.analysisTriggerRule.Number,\n Notes:this.analysisTriggerRule.Notes,\n PhaseType1Id: this.analysisTriggerRule.PhaseType1Id,\n Phase1Name: this.analysisTriggerRule.Phase1Name,\n PhaseType2Id: this.analysisTriggerRule.PhaseType2Id,\n Phase2Name: this.analysisTriggerRule.Phase2Name\n } as AnalysisTriggerRuleDto \n }\n\n private set formData(value) {\n this.$emit('update:analysisTriggerRule',value);\n }\n\n onHiding() {\n this.close();\n }\n\n private close() {\n this.$emit('hiding');\n }\n\n public validateAndSave() {\n const form = this.dxForm as dxForm;\n if(form) {\n let validated = form.validate();\n if(validated.isValid) {\n this.$emit('save-and-hide', _.cloneDeep(this.formData));\n }\n }\n }\n\n get analysisTriggerRuleType(): any {\n return {\n \"placeholder\" : \"Select a Rule Type\",\n \"dataSource\" : this.analysisTriggerTypes,\n \"displayExpr\": \"RuleTypeName\",\n \"valueExpr\": \"AnalysisTriggerRuleTypeId\",\n \"searchEnabled\": true,\n \"popupHeight\": this.getPopupHeight,\n \"onSelectionChanged\": this.ruleTypeChanged\n };\n }\n\n get filingTypeOption(): any {\n return {\n \"placeholder\" : \"Select a Filing Type\",\n \"dataSource\" : this.filingTypes,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\"\n };\n }\n\n get clientListOption(): any {\n return {\n \"placeholder\" : \"Select a Client\",\n \"dataSource\" : this.clientList,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\",\n \"searchEnabled\": true,\n \"popupHeight\": this.getPopupHeight\n };\n }\n\n get countryListOption(): any {\n return {\n \"placeholder\" : \"Select a Country\",\n \"dataSource\" : this.countryList,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\",\n \"popupHeight\": this.getPopupHeight\n };\n }\n\n get phaseTypeOption(): any {\n return {\n \"placeholder\" : \"Select a Phase\",\n \"dataSource\" : this.phaseTypes,\n \"displayExpr\": \"text\",\n \"valueExpr\": \"value\",\n \"popupHeight\": this.getPopupHeight\n };\n }\n\n get showForm(): boolean {\n if(this.formData) {\n return true;\n }\n return false;\n }\n\n get title(): string {\n if(this.formData && this.formData.AnalysisTriggerRuleId) {\n return 'Edit Analysis Trigger';\n }\n return 'Add Analysis Trigger';\n }\n\n getPopupHeight(): number {\n return window.innerHeight / 2;\n }\n\n private phaseType1Required: boolean = false;\n private phaseType2Required: boolean = false;\n private numberRequired: boolean = false;\n private amountRequired: boolean = false;\n\n private ruleTypeChanged(newValue: any) {\n if(newValue && newValue.selectedItem) {\n let ruleType = this.analysisTriggerTypes.find(x=>x.AnalysisTriggerRuleTypeId == newValue.selectedItem.AnalysisTriggerRuleTypeId);\n if(ruleType) {\n this.phaseType1Required = ruleType.Phase1Required;\n this.phaseType2Required = ruleType.Phase2Required;\n this.numberRequired = ruleType.NumberRequired;\n this.amountRequired = ruleType.AmountRequired;\n return;\n }\n }\n\n this.phaseType1Required = false;\n this.phaseType2Required = false;\n this.numberRequired = false;\n this.amountRequired = false;\n }\n\n private updateFormData(e: any) {\n console.log(this.updateFormData);\n this.formData = e.component.option('formData');\n }\n\n private get dxForm() {\n return ((this.$refs.analysisRuleForm as Form).instance as any); \n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-rule-add-edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-rule-add-edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./analysis-trigger-rule-add-edit.vue?vue&type=template&id=73996540&scoped=true&\"\nimport script from \"./analysis-trigger-rule-add-edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./analysis-trigger-rule-add-edit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./analysis-trigger-rule-add-edit.vue?vue&type=style&index=0&id=73996540&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73996540\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport dxDataGrid from 'devextreme/ui/data_grid';\nimport { DxButton } from 'devextreme-vue/button';\nimport {\n DxColumn,\n DxDataGrid,\n DxEditing,\n DxFilterRow,\n DxHeaderFilter,\n DxLookup,\n DxPaging,\n DxPopup,\n DxRequiredRule,\n DxScrolling,\n DxStateStoring\n} from 'devextreme-vue/data-grid';\nimport { DxNumberBox } from 'devextreme-vue/number-box';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { DxTextArea } from 'devextreme-vue/text-area';\nimport { DxTextBox } from 'devextreme-vue/text-box';\nimport TextPopup from '@/components/text-popup.vue';\nimport { SelectOption } from '@/models/SelectOption';\nimport { AnalysisTriggerRuleDto } from '@/models/analysis-triggers/AnalysisTriggerRuleDto';\nimport { AnalysisTriggerRuleTypeDto } from '@/models/analysis-triggers/AnalysisTriggerRuleTypeDto';\nimport { AnalysisTriggerRuleService } from '@/service/AnalysisTriggerRuleService';\nimport { AnalysisTriggerRuleTypeService } from '@/service/AnalysisTriggerRuleTypeService';\nimport { ClientService } from '@/service/ClientService';\nimport { CountryService } from '@/service/CountryService';\nimport { FilingTypeService } from '@/service/FilingTypeService';\nimport { PhaseTypeService } from '@/service/PhaseTypeService';\nimport String from '@/utilities/String';\nimport _ from 'lodash';\nimport AnalysisTriggerRuleAddEdit from '@/components/analysis-triggers/analysis-trigger-rule-add-edit.vue'\nimport { confirm } from 'devextreme/ui/dialog';\n\n@Component({\n components: {\n DxButton,\n DxColumn,\n DxDataGrid,\n DxEditing,\n DxFilterRow,\n DxHeaderFilter,\n DxLookup,\n DxNumberBox,\n DxPaging,\n DxPopup,\n DxRequiredRule,\n DxScrolling,\n DxSelectBox,\n DxStateStoring,\n DxTextArea,\n DxTextBox,\n TextPopup,\n AnalysisTriggerRuleAddEdit\n }\n})\nexport default class AnalysisTriggerList extends Vue {\n private readonly analysisTriggerRuleService: AnalysisTriggerRuleService = new AnalysisTriggerRuleService();\n private readonly analysisTriggerRuleTypeService: AnalysisTriggerRuleTypeService = new AnalysisTriggerRuleTypeService();\n private readonly clientService: ClientService = new ClientService();\n private readonly countryService: CountryService = new CountryService();\n private readonly filingTypeService: FilingTypeService = new FilingTypeService();\n private readonly phaseTypeService: PhaseTypeService = new PhaseTypeService();\n\n private analysisTriggerRuleTypeOptions: SelectOption[] = [];\n private analysisTriggerRuleTypes: AnalysisTriggerRuleTypeDto[] = [];\n private clients: SelectOption[] = [];\n private countries: SelectOption[] = [];\n private dataGrid: dxDataGrid | undefined;\n private filingTypes: SelectOption[] = [];\n private notesToShow: string = '';\n private phaseTypes: SelectOption[] = [];\n private selectedRuleType: AnalysisTriggerRuleTypeDto | null = null;\n private selectedRuleTypeId: number | null = null;\n private showNotes: boolean = false;\n private errorMessage: string | null = null;\n\n $refs: Vue['$refs'] & {\n analysisTriggerRuleAddEdit?: AnalysisTriggerRuleAddEdit;\n } = {};\n\n private get analysisTriggerRulesDataSource() {\n return new CustomStore({\n key: 'AnalysisTriggerRuleId',\n load: options => this.analysisTriggerRuleService.list(options).catch(this.handleResponseError),\n insert: values => this.analysisTriggerRuleService.create(values).catch(this.handleResponseError),\n update: (key, values) => this.analysisTriggerRuleService.update(key, values).catch(this.handleResponseError),\n remove: key => this.analysisTriggerRuleService.delete(key).catch(this.handleResponseError)\n });\n }\n\n private handleResponseError(result: any) {\n let message = 'An unknown error occurred.';\n if (result != null && result.Message != null) {\n message = result.Message;\n\n let index = message.indexOf(' (Error');\n if (index > -1) {\n message = message.substring(0, index);\n }\n }\n this.errorMessage=message;\n throw Error(message);\n }\n\n async created() {\n document.addEventListener('keyup', this.onKeyup, true);\n document.addEventListener('keydown', this.onKeydown, true);\n await this.loadData();\n }\n\n private async loadData() {\n this.analysisTriggerRuleTypes = await this.analysisTriggerRuleTypeService.list();\n this.analysisTriggerRuleTypeOptions = this.analysisTriggerRuleTypes.map(t => {\n return { text: t.RuleTypeName, value: t.AnalysisTriggerRuleTypeId };\n });\n\n this.clients = await this.clientService.getAllSelectOptions(true);\n this.countries = await this.countryService.getAllSelectOptions(true);\n this.phaseTypes = await this.phaseTypeService.getAllSelectOptions();\n\n let filingTypes = await this.filingTypeService.getTypes();\n this.filingTypes = filingTypes.map(t => {\n return { text: t.Name, value: t.FilingTypeId as number };\n });\n this.filingTypes.unshift({ text: 'ALL', value: '' });\n }\n\n destroyed() {\n document.removeEventListener('keyup', this.onKeyup, true);\n document.removeEventListener('keydown', this.onKeydown, true);\n }\n\n private openNotes(rule: AnalysisTriggerRuleDto) {\n this.notesToShow = rule.Notes != null ? rule.Notes : '';\n this.showNotes = true;\n }\n\n private closeNotes() {\n this.showNotes = false;\n this.notesToShow = '';\n }\n\n private showAddEditPopup: boolean = false;\n private targetRule: AnalysisTriggerRuleDto = this.resetTargetRule();\n\n private resetTargetRule(): AnalysisTriggerRuleDto {\n return {\n AnalysisTriggerRuleId: '00000000-0000-0000-0000-000000000000',\n AnalysisTriggerRuleTypeId: 0,\n RuleTypeName:'',\n RuleName: '',\n CreatedDate:new Date(),\n CreatedById: '',\n CreatedBy: ''\n }\n }\n\n private showAddEdit(rule: AnalysisTriggerRuleDto | null) {\n this.errorMessage=null;\n this.showAddEditPopup = true;\n if(rule) {\n this.targetRule = _.cloneDeep(rule);\n return;\n }\n this.targetRule = this.resetTargetRule();\n }\n\n private hideAddEdit(rule: AnalysisTriggerRuleDto) {\n this.showAddEditPopup = false;\n this.targetRule = this.resetTargetRule();\n }\n\n private saveRowData(rule: AnalysisTriggerRuleDto) {\n \n if(rule && rule.AnalysisTriggerRuleId) {\n this.analysisTriggerRulesDataSource.update(rule.AnalysisTriggerRuleId, rule).then((x: AnalysisTriggerRuleDto)=>{\n this.analysisTriggerRulesDataSource.push([{type:'update',data: x, key: x.AnalysisTriggerRuleId }]);\n this.hideAndResetPopup();\n })\n }\n\n if(rule && !rule.AnalysisTriggerRuleId) {\n let ruleToSend = Object.assign({},this.resetTargetRule(),rule);\n this.analysisTriggerRulesDataSource.insert(ruleToSend).then((x: AnalysisTriggerRuleDto)=>{\n if(this.dataGrid){\n this.dataGrid.refresh();\n this.hideAndResetPopup()\n }\n })\n }\n }\n\n private hideAndResetPopup() {\n this.showAddEditPopup=false;\n this.targetRule = this.resetTargetRule();\n }\n\n private removeRow(rule: AnalysisTriggerRuleDto) {\n if(rule) {\n confirm('Are you sure you want to delete this record?','Confirm Deletion').then(x=>{\n if(x) {\n this.analysisTriggerRulesDataSource.remove(rule.AnalysisTriggerRuleId).then(()=>{\n this.analysisTriggerRulesDataSource.push([{type:'remove',key: rule.AnalysisTriggerRuleId}])\n })\n }\n })\n }\n }\n\n private onDataGridInitialized(e: any) {\n this.dataGrid = e.component;\n }\n\n private customizeEmptyText(cellInfo: any) {\n return String.isNullOrEmpty(cellInfo.valueText) ? 'ALL' : cellInfo.valueText;\n }\n\n private customizeEmptyOptionalText(cellInfo: any) {\n return String.isNullOrEmpty(cellInfo.valueText) ? '--' : cellInfo.valueText;\n }\n\n private onKeydown(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private onKeyup(e: KeyboardEvent) {\n if (this.isSaveShortcut(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.executeSave();\n }\n }\n\n private executeSave() {\n const addEdit = this.$refs.analysisTriggerRuleAddEdit;\n if(addEdit) {\n addEdit.validateAndSave();\n }\n }\n\n private isSaveShortcut(e: KeyboardEvent) {\n return e.key === 'Enter' && (e.ctrlKey || e.shiftKey);\n }\n\n private focusDataGrid() {\n if (this.dataGrid != null) {\n this.dataGrid.focus();\n }\n }\n\n private addHeaderButton(event: any) {\n event.toolbarOptions.items.unshift({\n location: 'after',\n widget: 'dxButton',\n options: {\n icon: 'add',\n onClick: this.showAddEdit\n }\n });\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-list.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-trigger-list.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./analysis-trigger-list.vue?vue&type=template&id=5f5714a2&scoped=true&\"\nimport script from \"./analysis-trigger-list.vue?vue&type=script&lang=ts&\"\nexport * from \"./analysis-trigger-list.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./analysis-trigger-list.vue?vue&type=style&index=0&id=5f5714a2&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f5714a2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport AnalysisTriggerList from '@/components/analysis-triggers/analysis-trigger-list.vue';\n\n@Component({\n components: {\n AnalysisTriggerList,\n PageTitle\n }\n})\nexport default class AnalysisTriggers extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-triggers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./analysis-triggers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./analysis-triggers.vue?vue&type=template&id=261cd990&\"\nimport script from \"./analysis-triggers.vue?vue&type=script&lang=ts&\"\nexport * from \"./analysis-triggers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('page-title',[_vm._v(\"Invoice Lookup\")]),_c('invoice-lookup-grid')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"client-selection\"},[_c('dx-select-box',{attrs:{\"search-enabled\":true,\"data-source\":_vm.clients,\"display-expr\":\"text\",\"value-expr\":\"value\",\"value\":_vm.selectedClient,\"show-clear-button\":true,\"width\":\"400\",\"placeholder\":\"Select a client\"},on:{\"update:value\":function($event){_vm.selectedClient=$event},\"value-changed\":_vm.onSelectedClientChanged}})],1),(_vm.selectedClient != null)?_c('div',[_c('div',{staticClass:\"modify-btn-container\"},[_c('dx-button',{attrs:{\"text\":\"Change Invoice Date\",\"hint\":\"Change Invoice Date\",\"disabled\":_vm.modifyButtonsDisabled,\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.editInvoiceDate(null)}}}),_c('dx-button',{attrs:{\"text\":\"Change Invoice Number\",\"hint\":\"Change Invoice Number\",\"disabled\":_vm.modifyButtonsDisabled,\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.editInvoiceNumber(null)}}}),_c('dx-button',{attrs:{\"text\":\"Apply Exchange Rate\",\"hint\":\"Apply Exchange Rate\",\"disabled\":_vm.modifyButtonsDisabled,\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.onApplyExchangeRateClicked(null)}}})],1),_c('dx-data-grid',{attrs:{\"allow-column-resizing\":true,\"data-source\":_vm.dataSource,\"filter-row\":{ visible: true },\"height\":_vm.getGridHeight,\"pager\":{ showInfo: true, showNavigationButtons: true },\"paging\":{ pageSize: 100 },\"remote-operations\":{ paging: true, filtering: true, sorting: true, summary: true },\"repaint-changes-only\":true,\"scrolling\":{ rowRenderingMode: 'virtual' }},on:{\"initialized\":_vm.onDataGridInitialized,\"data-error-occurred\":_vm.onDataErrorOccurred},scopedSlots:_vm._u([{key:\"modify-cell-template\",fn:function(ref){\nvar data = ref.data;\nreturn [_c('div',[_c('dx-button',{attrs:{\"text\":\"Invoice Date\",\"hint\":\"Change Invoice Date\",\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.editInvoiceDate(data.data)}}}),_c('dx-button',{attrs:{\"text\":\"Invoice No\",\"hint\":\"Change Invoice Number\",\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.editInvoiceNumber(data.data)}}}),_c('dx-button',{attrs:{\"text\":\"Amount\",\"hint\":\"Change Amount\",\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.editLineItemTotal(data.data)}}}),_c('dx-button',{attrs:{\"text\":\"Exchange Rate\",\"hint\":\"Apply Exchange Rate\",\"element-attr\":{ class: 'modify-btn' }},on:{\"click\":function($event){return _vm.onApplyExchangeRateClicked(data.data)}}})],1)]}}],null,false,2529531189)},[_c('dx-summary',[_c('dx-total-item',{attrs:{\"column\":\"LineItemTotal\",\"display-format\":\"Line Item Total: {0}\",\"summary-type\":\"sum\",\"value-format\":{ type: 'currency', precision: 2 }}})],1),_c('dx-column',{attrs:{\"data-field\":\"InvoiceLineItemId\",\"data-type\":\"string\",\"visible\":false}}),_c('dx-column',{attrs:{\"data-field\":\"BatchId\",\"data-type\":\"string\",\"caption\":\"Batch\",\"calculate-display-value\":\"BatchName\",\"calculate-sort-value\":\"BatchNameRaw\",\"filter-value\":_vm.selectedBatch,\"width\":\"5%\"},on:{\"update:filterValue\":function($event){_vm.selectedBatch=$event},\"update:filter-value\":function($event){_vm.selectedBatch=$event}}},[_c('dx-lookup',{attrs:{\"display-expr\":\"BatchName\",\"value-expr\":\"BatchId\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"AgentId\",\"data-type\":\"string\",\"caption\":\"Agent\",\"calculate-display-value\":\"AgentName\",\"calculate-sort-value\":\"AgentName\",\"filter-value\":_vm.selectedAgent},on:{\"update:filterValue\":function($event){_vm.selectedAgent=$event},\"update:filter-value\":function($event){_vm.selectedAgent=$event}}},[_c('dx-lookup',{attrs:{\"display-expr\":\"AgentName\",\"value-expr\":\"AgentId\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"InvoiceNumber\",\"data-type\":\"string\",\"caption\":\"Invoice Number\",\"filter-value\":_vm.selectedInvoiceNumber},on:{\"update:filterValue\":function($event){_vm.selectedInvoiceNumber=$event},\"update:filter-value\":function($event){_vm.selectedInvoiceNumber=$event}}},[_c('dx-lookup',{attrs:{\"display-expr\":\"InvoiceNumber\",\"value-expr\":\"InvoiceNumber\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"InvoiceDate\",\"data-type\":\"date\",\"caption\":\"Invoice Date\",\"width\":\"5%\"}}),_c('dx-column',{attrs:{\"data-field\":\"MatterName\",\"data-type\":\"string\",\"caption\":\"Matter Name\"}}),_c('dx-column',{attrs:{\"data-field\":\"CountryId\",\"data-type\":\"string\",\"caption\":\"Country Code\",\"calculate-display-value\":\"CountryCode\",\"calculate-sort-value\":\"CountryCode\",\"filter-value\":_vm.selectedCountry,\"width\":\"5%\"},on:{\"update:filterValue\":function($event){_vm.selectedCountry=$event},\"update:filter-value\":function($event){_vm.selectedCountry=$event}}},[_c('dx-lookup',{attrs:{\"display-expr\":\"CountryCode\",\"value-expr\":\"CountryId\"}})],1),_c('dx-column',{attrs:{\"data-field\":\"LineItemDate\",\"data-type\":\"date\",\"caption\":\"Line Item Date\",\"width\":\"5%\"}}),_c('dx-column',{attrs:{\"data-field\":\"LineItemDescription\",\"data-type\":\"string\",\"caption\":\"Line Item Description\",\"width\":\"20%\",\"allow-filtering\":false}}),_c('dx-column',{attrs:{\"data-field\":\"LineItemTotal\",\"data-type\":\"number\",\"caption\":\"Line Item Amount\",\"format\":{ type: 'currency', precision: 2 },\"width\":\"12%\"}}),_c('dx-column',{attrs:{\"caption\":\"Modify\",\"allow-filtering\":false,\"allow-sorting\":false,\"fixed\":true,\"fixed-position\":\"right\",\"min-width\":510,\"width\":510,\"cell-template\":\"modify-cell-template\"}})],1)],1):_vm._e(),_c('apply-exchange-rate',{ref:_vm.applyExchangeRateRef,on:{\"hiding\":_vm.onApplyExchangeRateDialogHiding}}),_c('edit-invoice-date',{ref:_vm.editInvoiceDateRef,on:{\"hiding\":_vm.onEditInvoiceDateDialogHiding}}),_c('edit-invoice-number',{ref:_vm.editInvoiceNumberRef,on:{\"hiding\":_vm.onEditInvoiceNumberDialogHiding}}),_c('edit-line-item-total',{ref:_vm.editLineItemTotalRef,on:{\"hiding\":_vm.onEditLineItemTotalDialogHiding}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"height\":\"auto\",\"width\":\"300\",\"max-height\":\"95%\",\"max-width\":\"95%\",\"title\":_vm.title,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding}},[_c('dx-validation-group',{on:{\"initialized\":_vm.onValidationGroupInitialized}},[_c('dx-select-box',{attrs:{\"data-source\":_vm.currenciesDataSource,\"display-expr\":\"CurrencyCode\",\"value-expr\":\"CurrencyCode\",\"placeholder\":\"Select source currency\"},on:{\"value-changed\":_vm.onCurrencyChanged}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-number-box',{attrs:{\"value\":_vm.value,\"format\":{ type: 'fixedPoint', precision: 6 },\"placeholder\":\"Exchange rate\",\"element-attr\":{ class: 'exchange-rate' }},on:{\"update:value\":function($event){_vm.value=$event}}},[_c('dx-validator',[_c('dx-required-rule')],1)],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.okButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.cancelButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit } from 'vue-property-decorator';\nimport DataSource from 'devextreme/data/data_source';\nimport { alert } from 'devextreme/ui/dialog';\nimport dxValidationGroup from 'devextreme/ui/validation_group';\nimport { DxNumberBox } from 'devextreme-vue/number-box';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport { DxValidationGroup } from 'devextreme-vue/validation-group';\nimport { DxRequiredRule, DxValidator } from 'devextreme-vue/validator';\nimport { CurrencyDto } from '@/models/CurrencyDto';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\nimport { CurrencyService } from '@/service/CurrencyService';\n\n@Component({\n components: {\n DxNumberBox,\n DxPopup,\n DxRequiredRule,\n DxSelectBox,\n DxToolbarItem,\n DxValidationGroup,\n DxValidator\n }\n})\nexport default class ApplyExchangeRate extends Vue {\n private readonly currencyService: CurrencyService = new CurrencyService();\n private readonly targetCurrency: string = 'USD';\n private readonly title: string = 'Apply Exchange Rate';\n private currencies: CurrencyDto[] = [];\n private showDialog: boolean = false;\n private validationGroup: dxValidationGroup | undefined;\n\n public dialogResult: boolean | null = null;\n public invoiceDate: Date | null = null;\n public lineItem: InvoiceLookupLineItemDto | null = null;\n public value: number | null = null;\n\n private get okButtonOptions() {\n return {\n text: 'OK',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.ok\n };\n }\n\n private get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancel\n };\n }\n\n private get currenciesDataSource() {\n return new DataSource({\n store: this.currencies,\n paginate: true,\n pageSize: 100\n });\n }\n\n async created() {\n await this.loadData();\n }\n\n private async loadData() {\n this.currencies = await this.currencyService.getAll();\n }\n\n public show() {\n this.showDialog = true;\n }\n\n private async onCurrencyChanged(e: any) {\n if (this.invoiceDate == null) {\n return;\n }\n\n this.value = null;\n \n if (e.event == null || e.value == null) {\n return;\n }\n\n let source = e.value as string;\n await this.currencyService.getHistoricalExchangeRate(source, this.targetCurrency, this.invoiceDate)\n .then(result => {\n this.value = result.ExchangeRate;\n })\n .catch(() => {\n alert('An error occurred retrieving the exchange rate.', 'Error');\n });\n }\n\n private ok() {\n if (this.isValid()) {\n this.close(true);\n }\n }\n\n private isValid() {\n if (this.validationGroup == null) {\n return true;\n }\n\n let result = this.validationGroup.validate();\n return result.isValid === true;\n }\n\n private cancel() {\n this.close(false);\n }\n\n private close(dialogResult: boolean) {\n this.dialogResult = dialogResult;\n this.showDialog = false;\n }\n\n private resetValidators() {\n if (this.validationGroup != null) {\n this.validationGroup.reset();\n }\n }\n\n private onShowing() {\n this.dialogResult = null;\n this.value = null;\n this.resetValidators();\n }\n\n @Emit('hiding')\n private onHiding() {\n return this.dialogResult;\n }\n\n private onValidationGroupInitialized(e: any) {\n this.validationGroup = e.component;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apply-exchange-rate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apply-exchange-rate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./apply-exchange-rate.vue?vue&type=template&id=ef72a4ce&scoped=true&\"\nimport script from \"./apply-exchange-rate.vue?vue&type=script&lang=ts&\"\nexport * from \"./apply-exchange-rate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./apply-exchange-rate.vue?vue&type=style&index=0&id=ef72a4ce&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ef72a4ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"height\":\"auto\",\"width\":\"300\",\"max-height\":\"95%\",\"max-width\":\"95%\",\"title\":_vm.title,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding}},[_c('dx-date-box',{attrs:{\"value\":_vm.value,\"open-on-field-click\":true},on:{\"update:value\":function($event){_vm.value=$event},\"initialized\":_vm.onDateBoxInitialized}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.okButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.cancelButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit } from 'vue-property-decorator';\nimport dxDateBox from 'devextreme/ui/date_box';\nimport { DxDateBox } from 'devextreme-vue/date-box';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxRequiredRule, DxValidator } from 'devextreme-vue/validator';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\n\n@Component({\n components: {\n DxDateBox,\n DxPopup,\n DxRequiredRule,\n DxToolbarItem,\n DxValidator\n }\n})\nexport default class EditInvoiceDate extends Vue {\n private readonly title: string = 'Change Invoice Date';\n private dateBox: dxDateBox | undefined;\n private originalValue: Date | null = null;\n private showDialog: boolean = false;\n\n public dialogResult: boolean | null = null;\n public lineItem: InvoiceLookupLineItemDto | null = null;\n public value: Date | null = null;\n public valueChanged: boolean = false;\n\n private get okButtonOptions() {\n return {\n text: 'OK',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.ok\n };\n }\n\n private get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancel\n };\n }\n\n public show() {\n this.showDialog = true;\n }\n\n private ok() {\n if (this.isValid()) {\n this.close(true);\n }\n }\n\n private isValid() {\n if (this.dateBox == null) {\n return true;\n }\n\n return this.dateBox.option('isValid') as boolean;\n }\n\n private cancel() {\n this.close(false);\n }\n\n private close(dialogResult: boolean) {\n this.dialogResult = dialogResult;\n this.showDialog = false;\n }\n\n private onShowing() {\n this.dialogResult = null;\n this.originalValue = this.value;\n }\n\n @Emit('hiding')\n private onHiding() {\n this.valueChanged = this.value !== this.originalValue;\n return this.dialogResult;\n }\n\n private onDateBoxInitialized(e: any) {\n this.dateBox = e.component;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-invoice-date.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-invoice-date.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./edit-invoice-date.vue?vue&type=template&id=f1e543d0&\"\nimport script from \"./edit-invoice-date.vue?vue&type=script&lang=ts&\"\nexport * from \"./edit-invoice-date.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"height\":\"auto\",\"width\":\"300\",\"max-height\":\"95%\",\"max-width\":\"95%\",\"title\":_vm.title,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding}},[_c('dx-text-box',{attrs:{\"value\":_vm.value,\"max-length\":100},on:{\"update:value\":function($event){_vm.value=$event},\"initialized\":_vm.onTextBoxInitialized}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.okButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.cancelButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit } from 'vue-property-decorator';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxTextBox } from 'devextreme-vue/text-box';\nimport { DxRequiredRule, DxValidator } from 'devextreme-vue/validator';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\n\n@Component({\n components: {\n DxPopup,\n DxRequiredRule,\n DxTextBox,\n DxToolbarItem,\n DxValidator\n }\n})\nexport default class EditInvoiceNumber extends Vue {\n private readonly title: string = 'Change Invoice Number';\n private originalValue: string = '';\n private showDialog: boolean = false;\n private textBox: dxTextBox | undefined;\n\n public dialogResult: boolean | null = null;\n public lineItem: InvoiceLookupLineItemDto | null = null;\n public value: string = '';\n public valueChanged: boolean = false;\n\n private get okButtonOptions() {\n return {\n text: 'OK',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.ok\n };\n }\n\n private get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancel\n };\n }\n\n public show() {\n this.showDialog = true;\n }\n\n private ok() {\n if (this.isValid()) {\n this.close(true);\n }\n }\n\n private isValid() {\n if (this.textBox == null) {\n return true;\n }\n\n return this.textBox.option('isValid') as boolean;\n }\n\n private cancel() {\n this.close(false);\n }\n\n private close(dialogResult: boolean) {\n this.dialogResult = dialogResult;\n this.showDialog = false;\n }\n\n private onShowing() {\n this.dialogResult = null;\n this.originalValue = this.value;\n }\n\n @Emit('hiding')\n private onHiding() {\n this.valueChanged = this.value !== this.originalValue;\n return this.dialogResult;\n }\n\n private onTextBoxInitialized(e: any) {\n this.textBox = e.component;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-invoice-number.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-invoice-number.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./edit-invoice-number.vue?vue&type=template&id=58202da6&\"\nimport script from \"./edit-invoice-number.vue?vue&type=script&lang=ts&\"\nexport * from \"./edit-invoice-number.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('dx-popup',{attrs:{\"height\":\"auto\",\"width\":\"300\",\"max-height\":\"95%\",\"max-width\":\"95%\",\"title\":_vm.title,\"visible\":_vm.showDialog},on:{\"update:visible\":function($event){_vm.showDialog=$event},\"showing\":_vm.onShowing,\"hiding\":_vm.onHiding}},[_c('dx-number-box',{attrs:{\"value\":_vm.value,\"format\":{ type: 'currency', precision: 2 }},on:{\"update:value\":function($event){_vm.value=$event},\"initialized\":_vm.onNumberBoxInitialized}},[_c('dx-validator',[_c('dx-required-rule')],1)],1),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.okButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}}),_c('dx-toolbar-item',{attrs:{\"widget\":\"dxButton\",\"options\":_vm.cancelButtonOptions,\"location\":\"after\",\"toolbar\":\"bottom\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Emit } from 'vue-property-decorator';\nimport dxNumberBox from 'devextreme/ui/number_box';\nimport { DxNumberBox } from 'devextreme-vue/number-box';\nimport { DxPopup, DxToolbarItem } from 'devextreme-vue/popup';\nimport { DxRequiredRule, DxValidator } from 'devextreme-vue/validator';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\n\n@Component({\n components: {\n DxNumberBox,\n DxPopup,\n DxRequiredRule,\n DxToolbarItem,\n DxValidator\n }\n})\nexport default class EditLineItemTotal extends Vue {\n private readonly title: string = 'Change Line Item Amount';\n private numberBox: dxNumberBox | undefined;\n private originalValue: number = 0;\n private showDialog: boolean = false;\n\n public dialogResult: boolean | null = null;\n public lineItem: InvoiceLookupLineItemDto | null = null;\n public value: number = 0;\n public valueChanged: boolean = false;\n\n private get okButtonOptions() {\n return {\n text: 'OK',\n type: 'default',\n stylingMode: 'contained',\n onClick: this.ok\n };\n }\n\n private get cancelButtonOptions() {\n return {\n text: 'Cancel',\n type: 'normal',\n stylingMode: 'contained',\n onClick: this.cancel\n };\n }\n\n public show() {\n this.showDialog = true;\n }\n\n private ok() {\n if (this.isValid()) {\n this.close(true);\n }\n }\n\n private isValid() {\n if (this.numberBox == null) {\n return true;\n }\n\n return this.numberBox.option('isValid') as boolean;\n }\n\n private cancel() {\n this.close(false);\n }\n\n private close(dialogResult: boolean) {\n this.dialogResult = dialogResult;\n this.showDialog = false;\n }\n\n private onShowing() {\n this.dialogResult = null;\n this.originalValue = this.value;\n }\n\n @Emit('hiding')\n private onHiding() {\n this.valueChanged = this.value !== this.originalValue;\n return this.dialogResult;\n }\n\n private onNumberBoxInitialized(e: any) {\n this.numberBox = e.component;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-line-item-total.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./edit-line-item-total.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./edit-line-item-total.vue?vue&type=template&id=b80defd6&\"\nimport script from \"./edit-line-item-total.vue?vue&type=script&lang=ts&\"\nexport * from \"./edit-line-item-total.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { Watch } from 'vue-property-decorator';\nimport CustomStore from 'devextreme/data/custom_store';\nimport { DataSourceOptions } from 'devextreme/data/data_source';\nimport { LoadOptions } from 'devextreme/data/load_options';\nimport { formatNumber } from 'devextreme/localization';\nimport dxDataGrid from 'devextreme/ui/data_grid';\nimport notify from 'devextreme/ui/notify';\nimport { DxButton } from 'devextreme-vue/button';\nimport {\n DxColumn,\n DxDataGrid,\n DxLookup,\n DxSummary,\n DxTotalItem\n} from 'devextreme-vue/data-grid';\nimport { DxSelectBox } from 'devextreme-vue/select-box';\nimport ApplyExchangeRate from '@/components/invoice-lookup/apply-exchange-rate.vue';\nimport EditInvoiceDate from '@/components/invoice-lookup/edit-invoice-date.vue';\nimport EditInvoiceNumber from '@/components/invoice-lookup/edit-invoice-number.vue';\nimport EditLineItemTotal from '@/components/invoice-lookup/edit-line-item-total.vue';\nimport { CountryDto } from '@/models/CountryDto';\nimport { SelectOption } from '@/models/SelectOption';\nimport { AgentDto } from '@/models/agent/AgentDto';\nimport { BatchDto } from '@/models/batch/BatchDto';\nimport { InvoiceDto } from '@/models/invoice/InvoiceDto';\nimport { InvoiceLookupLineItemDto } from '@/models/invoice/InvoiceLookupLineItemDto';\nimport { ClientService } from '@/service/ClientService';\nimport { InvoiceLineItemService } from '@/service/InvoiceLineItemService';\nimport { InvoiceLineItemApplyExchangeRateDto } from '@/models/invoice/InvoiceLineItemApplyExchangeRateDto';\nimport { InvoiceLineItemBulkApplyExchangeRateDto } from '@/models/invoice/InvoiceLineItemBulkApplyExchangeRateDto';\nimport { InvoiceLineItemBulkOperationResponseDto } from '@/models/invoice/InvoiceLineItemBulkOperationResponseDto';\nimport { InvoiceLineItemBulkUpdateInvoiceDateDto } from '@/models/invoice/InvoiceLineItemBulkUpdateInvoiceDateDto';\nimport { InvoiceLineItemBulkUpdateInvoiceNumberDto } from '@/models/invoice/InvoiceLineItemBulkUpdateInvoiceNumberDto';\nimport { InvoiceLineItemUpdateInvoiceDateDto } from '@/models/invoice/InvoiceLineItemUpdateInvoiceDateDto';\nimport { InvoiceLineItemUpdateInvoiceNumberDto } from '@/models/invoice/InvoiceLineItemUpdateInvoiceNumberDto';\nimport { InvoiceLineItemUpdateTotalDto } from '@/models/invoice/InvoiceLineItemUpdateTotalDto';\nimport String from '@/utilities/String';\n\n@Component({\n components: {\n ApplyExchangeRate,\n DxButton,\n DxColumn,\n DxDataGrid,\n DxLookup,\n DxSelectBox,\n DxSummary,\n DxTotalItem,\n EditInvoiceDate,\n EditInvoiceNumber,\n EditLineItemTotal\n }\n})\nexport default class InvoiceLookupGrid extends Vue {\n private readonly applyExchangeRateRef: string = 'applyExchangeRateRef';\n private readonly clientService: ClientService = new ClientService();\n private readonly editInvoiceDateRef: string = 'editInvoiceDateRef';\n private readonly editInvoiceNumberRef: string = 'editInvoiceNumberRef';\n private readonly editLineItemTotalRef: string = 'editLineItemTotalRef';\n private readonly invoiceLineItemService: InvoiceLineItemService = new InvoiceLineItemService();\n\n private changingClient: boolean = false;\n private clients: SelectOption[] = [];\n private dataGrid: dxDataGrid | undefined;\n private selectedAgent: Guid | null = null;\n private selectedBatch: Guid | null = null;\n private selectedClient: Guid | null = null;\n private selectedCountry: number | null = null;\n private selectedInvoiceNumber: string | null = null;\n\n private get dataSource(): DataSourceOptions {\n return {\n store: this.dataStore,\n reshapeOnPush: true\n };\n }\n\n private get dataStore() {\n return new CustomStore({\n key: 'InvoiceLineItemId',\n load: options => this.loadDataGrid(options)\n });\n }\n\n private get modifyButtonsDisabled() {\n return this.selectedClient == null || this.selectedAgent == null || this.selectedInvoiceNumber == null;\n }\n\n private get applyExchangeRateDialog() {\n return this.$refs[this.applyExchangeRateRef] as ApplyExchangeRate;\n }\n\n private get editInvoiceDateDialog() {\n return this.$refs[this.editInvoiceDateRef] as EditInvoiceDate;\n }\n\n private get editInvoiceNumberDialog() {\n return this.$refs[this.editInvoiceNumberRef] as EditInvoiceNumber;\n }\n\n private get editLineItemTotalDialog() {\n return this.$refs[this.editLineItemTotalRef] as EditLineItemTotal;\n }\n\n private async loadDataGrid(options: LoadOptions) {\n if (this.selectedClient != null) {\n return await this.clientService.getClientLineItems(this.selectedClient, options);\n }\n\n return Promise.resolve([]);\n }\n\n @Watch('selectedBatch')\n private onSelectedBatchChanged() {\n if (!this.changingClient) {\n this.updateLookupData();\n }\n }\n\n @Watch('selectedAgent')\n private onSelectedAgentChanged() {\n if (!this.changingClient) {\n this.updateLookupData();\n }\n }\n\n private onSelectedClientChanged() {\n this.changingClient = true;\n this.clearFilters();\n this.setPageIndex(0);\n this.updateLookupData();\n\n this.$nextTick(() => {\n this.changingClient = false;\n });\n }\n\n @Watch('selectedInvoiceNumber')\n private onSelectedInvoiceNumberChanged() {\n if (!this.changingClient) {\n this.updateLookupData();\n }\n }\n\n @Watch('selectedCountry')\n private onSelectedCountryChanged() {\n if (!this.changingClient) {\n this.updateLookupData();\n }\n }\n\n private clearFilters() {\n if (this.dataGrid != null) {\n this.dataGrid.clearFilter();\n }\n }\n\n private setPageIndex(newIndex: number) {\n if (this.dataGrid != null) {\n this.dataGrid.pageIndex(newIndex);\n }\n }\n\n async created() {\n await this.loadData();\n }\n\n private async loadData() {\n this.clients = await this.clientService.getAllSelectOptions();\n }\n\n private async updateLookupData() {\n if (this.selectedClient == null) {\n return;\n }\n\n await this.clientService.getLookupData(this.selectedClient, this.selectedBatch, this.selectedAgent, this.selectedInvoiceNumber, this.selectedCountry)\n .then(result => {\n let batchesDataSource = this.getBatchesDataSource(result.Batches);\n let agentsDataSource = this.getAgentsDataSource(result.Agents);\n let invoiceNumbersDataSource = this.getInvoiceNumbersDataSource(result.Invoices);\n let countriesDataSource = this.getCountriesDataSource(result.Countries);\n\n this.setDataGridLookupColumnData('BatchId', batchesDataSource);\n this.setDataGridLookupColumnData('AgentId', agentsDataSource);\n this.setDataGridLookupColumnData('InvoiceNumber', invoiceNumbersDataSource);\n this.setDataGridLookupColumnData('CountryId', countriesDataSource);\n });\n }\n\n private getBatchesDataSource(batches: BatchDto[]): DataSourceOptions {\n return {\n store: batches,\n paginate: true,\n pageSize: 100,\n sort: [{ selector: 'BatchName', desc: true }]\n };\n }\n\n private getAgentsDataSource(agents: AgentDto[]): DataSourceOptions {\n return {\n store: agents,\n paginate: true,\n pageSize: 100,\n sort: 'AgentName'\n };\n }\n\n private getInvoiceNumbersDataSource(invoiceNumbers: InvoiceDto[]): DataSourceOptions {\n return {\n store: invoiceNumbers,\n paginate: true,\n pageSize: 100,\n sort: 'InvoiceNumber'\n };\n }\n\n private getCountriesDataSource(countries: CountryDto[]): DataSourceOptions {\n return {\n store: countries,\n paginate: true,\n pageSize: 100,\n sort: 'CountryCode'\n };\n }\n\n private setDataGridLookupColumnData(columnId: string, lookupData: any) {\n this.setDataGridColumnOption(columnId, 'lookup.dataSource', lookupData);\n }\n\n private setDataGridColumnOption(id: string, optionName: string, optionValue: any) {\n if (this.dataGrid != null) {\n this.dataGrid.columnOption(id, optionName, optionValue);\n }\n }\n\n private editInvoiceDate(lineItem?: InvoiceLookupLineItemDto) {\n let invoiceDate: Date | null = null;\n\n if (lineItem != null && lineItem.InvoiceDate != null) {\n invoiceDate = lineItem.InvoiceDate;\n this.editInvoiceDateDialog.lineItem = lineItem;\n } else {\n invoiceDate = this.getFirstRowInvoiceDate();\n this.editInvoiceDateDialog.lineItem = null;\n }\n\n this.editInvoiceDateDialog.value = invoiceDate;\n this.editInvoiceDateDialog.show();\n }\n\n private getFirstRowInvoiceDate() {\n let data = this.getFirstRowData();\n return data != null ? data.InvoiceDate : null;\n }\n\n private onEditInvoiceDateDialogHiding() {\n if (this.editInvoiceDateDialog.dialogResult !== true || !this.editInvoiceDateDialog.valueChanged || this.editInvoiceDateDialog.value == null) {\n return;\n }\n\n if (this.editInvoiceDateDialog.lineItem != null) {\n this.updateInvoiceDate(this.editInvoiceDateDialog.lineItem.InvoiceLineItemId, this.editInvoiceDateDialog.value);\n } else if (this.selectedClient != null && this.selectedAgent != null && this.selectedInvoiceNumber != null) {\n this.bulkUpdateInvoiceDate(this.selectedClient, this.selectedAgent, this.selectedInvoiceNumber, this.editInvoiceDateDialog.value);\n }\n }\n\n private async updateInvoiceDate(lineItemId: Guid, invoiceDate: Date) {\n let dto: InvoiceLineItemUpdateInvoiceDateDto = {\n InvoiceDate: invoiceDate\n };\n\n notify('Updating invoice date...');\n\n await this.invoiceLineItemService.updateInvoiceDate(lineItemId, dto)\n .then(result => {\n this.pushUpdateToDataStore(result);\n notify('Invoice date successfully updated.', 'success');\n });\n }\n\n private async bulkUpdateInvoiceDate(clientId: Guid, agentId: Guid, invoiceNumber: string, invoiceDate: Date) {\n let dto: InvoiceLineItemBulkUpdateInvoiceDateDto = {\n ClientId: clientId,\n AgentId: agentId,\n InvoiceNumber: invoiceNumber,\n InvoiceDate: invoiceDate\n };\n\n notify('Updating invoice date...');\n\n await this.invoiceLineItemService.bulkUpdateInvoiceDate(dto)\n .then(result => {\n this.refreshDataGrid();\n notify(this.getBulkOperationSuccessMessage(result), 'success');\n });\n }\n\n private editInvoiceNumber(lineItem?: InvoiceLookupLineItemDto) {\n let invoiceNumber: string = String.empty;\n\n if (lineItem != null && lineItem.InvoiceNumber != null) {\n invoiceNumber = lineItem.InvoiceNumber;\n this.editInvoiceNumberDialog.lineItem = lineItem;\n } else {\n invoiceNumber = this.getFirstRowInvoiceNumber();\n this.editInvoiceNumberDialog.lineItem = null;\n }\n\n this.editInvoiceNumberDialog.value = invoiceNumber;\n this.editInvoiceNumberDialog.show();\n }\n\n private getFirstRowInvoiceNumber() {\n let data = this.getFirstRowData();\n return data != null ? data.InvoiceNumber : String.empty;\n }\n\n private onEditInvoiceNumberDialogHiding() {\n if (this.editInvoiceNumberDialog.dialogResult !== true || !this.editInvoiceNumberDialog.valueChanged) {\n return;\n }\n\n if (this.editInvoiceNumberDialog.lineItem != null) {\n this.updateInvoiceNumber(this.editInvoiceNumberDialog.lineItem.InvoiceLineItemId, this.editInvoiceNumberDialog.value);\n } else if (this.selectedClient != null && this.selectedAgent != null && this.selectedInvoiceNumber != null) {\n this.bulkUpdateInvoiceNumber(this.selectedClient, this.selectedAgent, this.selectedInvoiceNumber, this.editInvoiceNumberDialog.value);\n }\n }\n\n private async updateInvoiceNumber(lineItemId: Guid, invoiceNumber: string) {\n let dto: InvoiceLineItemUpdateInvoiceNumberDto = {\n InvoiceNumber: invoiceNumber\n };\n\n notify('Updating invoice number...');\n\n await this.invoiceLineItemService.updateInvoiceNumber(lineItemId, dto)\n .then(result => {\n this.pushUpdateToDataStore(result);\n notify('Invoice number successfully updated.', 'success');\n this.updateInvoiceLookupData();\n });\n }\n\n private async updateInvoiceLookupData() {\n if (this.selectedClient == null) {\n return;\n }\n\n await this.clientService.getInvoiceLookupData(this.selectedClient, this.selectedBatch, this.selectedAgent, this.selectedCountry)\n .then(result => {\n let invoiceNumbersDataSource = this.getInvoiceNumbersDataSource(result.Invoices);\n this.setDataGridLookupColumnData('InvoiceNumber', invoiceNumbersDataSource);\n });\n }\n\n private async bulkUpdateInvoiceNumber(clientId: string, agentId: string, invoiceNumber: string, newInvoiceNumber: string) {\n let dto: InvoiceLineItemBulkUpdateInvoiceNumberDto = {\n ClientId: clientId,\n AgentId: agentId,\n InvoiceNumber: invoiceNumber,\n NewInvoiceNumber: newInvoiceNumber\n };\n\n notify('Updating invoice number...');\n\n await this.invoiceLineItemService.bulkUpdateInvoiceNumber(dto)\n .then(result => {\n this.refreshDataGrid();\n notify(this.getBulkOperationSuccessMessage(result), 'success');\n this.updateInvoiceLookupData();\n });\n }\n\n private editLineItemTotal(lineItem?: InvoiceLookupLineItemDto) {\n let lineItemTotal: number = 0;\n\n if (lineItem != null) {\n lineItemTotal = lineItem.LineItemTotal;\n this.editLineItemTotalDialog.lineItem = lineItem;\n } else {\n lineItemTotal = this.getFirstRowLineItemTotal();\n this.editLineItemTotalDialog.lineItem = null;\n }\n\n this.editLineItemTotalDialog.value = lineItemTotal;\n this.editLineItemTotalDialog.show();\n }\n\n private getFirstRowLineItemTotal() {\n let data = this.getFirstRowData();\n return data != null ? data.LineItemTotal : 0;\n }\n\n private async onEditLineItemTotalDialogHiding() {\n if (this.editLineItemTotalDialog.dialogResult !== true || !this.editLineItemTotalDialog.valueChanged) {\n return;\n }\n\n if (this.editLineItemTotalDialog.lineItem != null) {\n let id = this.editLineItemTotalDialog.lineItem.InvoiceLineItemId;\n let dto: InvoiceLineItemUpdateTotalDto = {\n LineItemTotal: this.editLineItemTotalDialog.value\n };\n\n notify('Updating line item amount...');\n\n await this.invoiceLineItemService.updateLineItemTotal(id, dto)\n .then(result => {\n this.pushUpdateToDataStore(result);\n notify('Line item amount successfully updated.', 'success');\n });\n }\n }\n\n private onApplyExchangeRateClicked(lineItem?: InvoiceLookupLineItemDto) {\n let invoiceDate: Date | null = null;\n\n if (lineItem != null && lineItem.LineItemDate != null) {\n invoiceDate = lineItem.InvoiceDate;\n this.applyExchangeRateDialog.lineItem = lineItem;\n } else {\n invoiceDate = this.getFirstRowInvoiceDate();\n this.applyExchangeRateDialog.lineItem = null;\n }\n\n this.applyExchangeRateDialog.invoiceDate = invoiceDate;\n this.applyExchangeRateDialog.show();\n }\n\n private onApplyExchangeRateDialogHiding() {\n if (this.applyExchangeRateDialog.dialogResult !== true || this.applyExchangeRateDialog.value == null) {\n return;\n }\n\n if (this.applyExchangeRateDialog.lineItem != null) {\n this.applyExchangeRate(this.applyExchangeRateDialog.lineItem.InvoiceLineItemId, this.applyExchangeRateDialog.value);\n } else if (this.selectedClient != null && this.selectedAgent != null && this.selectedInvoiceNumber != null) {\n this.bulkApplyExchangeRate(this.selectedClient, this.selectedAgent, this.selectedInvoiceNumber, this.applyExchangeRateDialog.value);\n }\n }\n\n private async applyExchangeRate(lineItemId: Guid, exchangeRate: number) {\n let dto: InvoiceLineItemApplyExchangeRateDto = {\n ExchangeRate: exchangeRate\n };\n\n notify('Applying exchange rate...');\n\n await this.invoiceLineItemService.applyExchangeRate(lineItemId, dto)\n .then(result => {\n this.pushUpdateToDataStore(result);\n notify('Exchange rate successfully applied.', 'success');\n });\n }\n\n private async bulkApplyExchangeRate(clientId: Guid, agentId: Guid, invoiceNumber: string, exchangeRate: number) {\n let dto: InvoiceLineItemBulkApplyExchangeRateDto = {\n ClientId: clientId,\n AgentId: agentId,\n InvoiceNumber: invoiceNumber,\n ExchangeRate: exchangeRate\n };\n\n notify('Applying exchange rate...');\n\n await this.invoiceLineItemService.bulkApplyExchangeRate(dto)\n .then(result => {\n this.refreshDataGrid();\n notify(this.getBulkOperationSuccessMessage(result), 'success');\n });\n }\n\n private refreshDataGrid(changesOnly: boolean = true) {\n if (this.dataGrid != null) {\n this.dataGrid.refresh(changesOnly);\n }\n }\n\n private pushUpdateToDataStore(lineItem: InvoiceLookupLineItemDto) {\n this.dataStore.push([\n {\n type: 'update',\n data: lineItem,\n key: lineItem.InvoiceLineItemId\n }\n ]);\n }\n\n private getFirstRowData() {\n if (this.dataGrid == null) {\n return null;\n }\n\n let rows = this.dataGrid.getVisibleRows();\n if (rows.length > 0 && rows[0].data != null) {\n return rows[0].data as InvoiceLookupLineItemDto;\n }\n\n return null;\n }\n\n private getBulkOperationSuccessMessage(result: InvoiceLineItemBulkOperationResponseDto) {\n let optionalPlural = result.InvoiceLineItemsUpdated === 1 ? String.empty : 's';\n let lineItemsUpdated = formatNumber(result.InvoiceLineItemsUpdated, 'fixedPoint');\n return `Successfully updated ${lineItemsUpdated} line item${optionalPlural}.`;\n }\n\n private onDataGridInitialized(e: any) {\n this.dataGrid = e.component;\n }\n\n private onDataErrorOccurred(e: any) {\n e.error.message = 'Failed to load data. Please refresh the page.';\n }\n\n private getGridHeight() {\n return window.innerHeight - 250;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invoice-lookup-grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invoice-lookup-grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./invoice-lookup-grid.vue?vue&type=template&id=7c18342a&scoped=true&\"\nimport script from \"./invoice-lookup-grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./invoice-lookup-grid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./invoice-lookup-grid.vue?vue&type=style&index=0&id=7c18342a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c18342a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component from 'vue-class-component';\nimport { PageTitle } from '@questelservices/common-vue';\nimport InvoiceLookupGrid from '@/components/invoice-lookup/invoice-lookup-grid.vue';\n\n@Component({\n components: {\n InvoiceLookupGrid,\n PageTitle\n }\n})\nexport default class InvoiceLookup extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invoice-lookup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./invoice-lookup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./invoice-lookup.vue?vue&type=template&id=59349656&\"\nimport script from \"./invoice-lookup.vue?vue&type=script&lang=ts&\"\nexport * from \"./invoice-lookup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Home from './views/Home.vue';\nimport UploadInvoiceFile from './views/upload-invoice-file.vue';\nimport ClientMatterData from './views/client-matter-data.vue';\nimport ClientSetup from './views/client-setup.vue';\nimport FeeDesignations from './views/fee-designations.vue';\nimport InfractionRules from './views/infraction-rules.vue';\nimport PhaseAliases from './views/phase-aliases.vue';\nimport FeeSheetRules from './views/fee-sheet-rules.vue';\nimport FeeSheets from './views/fee-sheets.vue';\nimport PhaseAssignment from './views/phase-assignment.vue';\nimport AuditorPage from './views/auditor-page.vue';\nimport FeeSheetTemplates from './views/fee-sheet-templates.vue';\nimport FeeSheetTemplatesForm from './views/fee-sheet-templates-form.vue';\nimport FileParseFormat from './views/file-parse-format.vue';\nimport FileParseFormatColumn from './views/file-parse-format-column.vue';\nimport SubmittedFiles from './views/submitted-files.vue';\nimport UserAssignedClients from './views/user-assigned.vue';\nimport {\n Login,\n SideNavInnerToolbar as defaultLayout,\n SingleCard as simpleLayout\n} from '@questelservices/common-vue';\nimport store from './store';\nimport CommonModule, {checkForAzureAdCodeUrl} from '@questelservices/common';\nimport { getModule } from 'vuex-module-decorators';\nimport Batch from './views/batch/batch.vue';\nimport ClientBatches from './views/batch/client-batches.vue';\nimport ClientGroupData from './views/client-group-data.vue';\nimport Help from './views/help.vue';\nimport IncompleteUploads from './views/incomplete-uploads.vue';\nimport FeeBudgets from './views/fee-budgets.vue';\nimport Coding from './views/activity-planner/coding.vue';\nimport BatchSnapshot from './views/activity-planner/batch-snapshot.vue';\nimport Auditing from './views/activity-planner/auditing.vue';\nimport Comments from './views/activity-planner/comments.vue';\nimport AllComments from './views/all-comments.vue';\nimport CommentsResponse from './views/comments-response.vue';\nimport FileService from './views/file-service.vue'\nimport AgentSetup from './views/activity-planner/agent-setup.vue';\nimport ClientSummary from './views/activity-planner/client-summary.vue';\nimport PdfTranslatorView from './views/pdf-translator.vue';\nimport EBillingView from './views/e-billing.vue';\nimport AnalysisTriggers from './views/analysis-triggers.vue';\nimport InvoiceLookup from './views/invoice-lookup.vue';\n\nconst productName = 'QuestelServicesThor';\nconst commonState = getModule(CommonModule, store);\n\nconst menuItems = [\n {\n text: 'Home',\n path: '/home',\n icon: 'home'\n },\n {\n text: 'File Upload',\n icon: 'bulletlist',\n expanded: true,\n items: [\n {\n text: 'Upload Invoice File',\n path: '/upload-invoice-file',\n icon: 'upload'\n },\n {\n text: 'View Submitted Files',\n path: '/submitted-invoice-files',\n icon: 'filter'\n }\n ]\n }, \n {\n text: 'Activity Planner',\n icon: 'bulletlist',\n expanded: true,\n items: [\n {\n text: 'Coding',\n path: '/coding',\n icon: 'codeblock'\n },\n {\n text: 'Batch Snapshot',\n path: '/batch-snapshot',\n icon: 'refresh'\n }, \n {\n text: 'Auditing',\n path: '/auditing',\n icon: 'check'\n },\n {\n text: 'Comments',\n path: '/comments',\n icon: 'comment'\n },\n {\n text: 'Agent Setup',\n path: '/agent-setup',\n icon: 'preferences'\n },\n {\n text: 'Reports',\n path: '/client-summary',\n icon: 'chart'\n }\n ]\n }, \n {\n text: 'Comments',\n path: '/all-comments',\n icon: 'comment'\n },\n {\n text: 'Fee Type Rules',\n path: '/fee-designations',\n icon: 'filter'\n },\n /*{\n text: 'Infraction Rules',\n path: '/infraction-rules',\n icon: 'key'\n },\n {\n text: 'Fee Sheet Rules',\n path: '/fee-sheet-rules',\n icon: 'key'\n },\n {\n text: 'Multiphase Aliases',\n path: '/phase-aliases',\n icon: 'key'\n },\n {\n text: 'User Assigned Clients',\n path: '/users',\n icon: 'key'\n },**/\n {\n text: 'Fee Sheets',\n path: '/fee-sheets',\n icon: 'money'\n },\n {\n text: 'Fee Sheet Templates',\n path: '/fee-sheet-templates',\n icon: 'tags'\n },\n {\n text: 'Fee Budgets',\n path: '/fee-budgets',\n icon: 'key'\n },\n {\n text: 'Client Matter Data',\n path: '/client-matter-data',\n icon: 'user'\n },\n {\n text: 'Client Group Data',\n path: '/client-group-data',\n icon: 'group'\n },\n {\n text: 'Analysis Triggers',\n path: '/analysis-triggers',\n icon: 'warning'\n },\n {\n text: 'E-Billing',\n path: '/e-billing',\n icon: 'chart'\n },\n {\n text: 'Client Setup',\n path: '/client-setup',\n icon: 'preferences'\n },\n {\n text: 'Comments Response',\n path: '/comments-response',\n icon: 'comment'\n },\n {\n text: 'Parse Format',\n path: '/file-parse-format',\n icon: 'variable'\n },\n {\n text: 'Invoice Lookup',\n path: '/invoice-lookup',\n icon: 'find'\n },\n {\n text: 'PDF Translator',\n path: '/pdf-translator',\n icon: 'globe'\n },\n {\n text: 'File Service',\n path: '/file-service',\n icon: 'doc'\n },\n {\n text: 'Help',\n path: '/help',\n icon: 'help'\n }\n];\n\nconst layoutProps = { menuItems: menuItems, showAlert: false };\n\nVue.use(Router);\n\nconst router = new Router({\n routes: [\n {\n path: '/home',\n name: 'home',\n meta: { requiresAuth: true },\n components: {\n layout: defaultLayout,\n content: Home\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/file-service',\n name: 'file-service',\n meta: { \n requiresAuth: true,\n breadcrumbs: [\n { text: 'File Service' }\n ] \n },\n components: {\n layout: defaultLayout,\n content: FileService\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/upload-invoice-file',\n name: 'upload-invoice-file',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Upload Invoice File' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: UploadInvoiceFile\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/submitted-invoice-files',\n name: 'submitted-invoice-files',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'View Submitted Files' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: SubmittedFiles\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/coding',\n name: 'coding-work',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Coding' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: Coding\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/batch-snapshot',\n name: 'batch-snapshot',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Batch Snapshot' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: BatchSnapshot\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/auditing',\n name: 'auditing-work',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Auditing' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: Auditing\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/comments',\n name: 'comments',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Comments' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: Comments\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/agent-setup',\n name: 'agent-setup',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Agent Setup' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: AgentSetup\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/client-summary',\n name: 'client-summary',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Reports'}\n ]\n },\n components: {\n layout: defaultLayout,\n content: ClientSummary\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/all-comments',\n name: 'all-comments',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'All Comments' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: AllComments\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/fee-designations',\n name: 'fee-designations',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Type Rules' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeDesignations\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/fee-sheet-templates',\n name: 'fee-sheet-templates',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Sheet Templates' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeSheetTemplates\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/fee-sheet-templates-form/:id?',\n name: 'fee-sheet-templates-form',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Sheet Templates Form' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeSheetTemplatesForm\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/infraction-rules',\n name: 'infraction-rules',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Infraction Rules' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: InfractionRules\n },\n props: {\n layout: layoutProps\n }\n }, \n {\n path: '/fee-sheet-rules',\n name: 'fee-sheet-rules',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Sheet Rules' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeSheetRules\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/phase-aliases',\n name: 'phase-aliases',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Multiphase Aliases' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: PhaseAliases\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/client-batches/:clientId?',\n name: 'client-batches',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Client Batches', name: 'client-batches' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: ClientBatches\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/client-matter-data/:clientId?',\n name: 'client-matter-data',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Client Matter Data', name: 'client-matter-data' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: ClientMatterData\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/client-group-data',\n name: 'client-group-data',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Client Group Data' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: ClientGroupData\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/client-setup',\n name: 'client-setup',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Client Setup' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: ClientSetup\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/comments-response',\n name: 'comments-response',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Comments Response' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: CommentsResponse\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/batch/:id',\n name: 'batch',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Client Batches', name: 'client-batches' },\n { text: 'Batch Details', name: 'batch' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: Batch\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/users',\n name: 'user-assigned-clients',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'User Assigned Clients' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: UserAssignedClients\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/fee-sheets',\n name: 'fee-sheets',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Sheets' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeSheets\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/phase-assignment/:id',\n name: 'phase-assignment',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Activity Planner', name: 'coding-work' },\n { text: 'Phase Assignment' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: PhaseAssignment\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/auditing/:id',\n name: 'auditing',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Activity Planner', name: 'auditing-work' },\n { text: 'Auditing Page' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: AuditorPage\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/file-parse-format',\n name: 'file-parse-format',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'File Parse Format', name: 'file-parse-format' } \n ]\n },\n components: {\n layout: defaultLayout,\n content: FileParseFormat\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/file-parse-format-column/:id?',\n name: 'file-parse-format-column',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'File Parse Format', name: 'file-parse-format' },\n { text: 'File Parse Format Edit', name: 'file-parse-format-column' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FileParseFormatColumn\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/incomplete-uploads',\n name: 'incomplete-uploads',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Incomplete Uploads', name: 'incomplete-uploads' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: IncompleteUploads\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/fee-budgets',\n name: 'fee-budgets',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Fee Budgets', name: 'fee-budgets' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: FeeBudgets\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/e-billing',\n name: 'e-billing',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'E-Billing', name: 'e-billing' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: EBillingView\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/analysis-triggers',\n name: 'analysis-triggers',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Analysis Triggers', name: 'analysis-triggers' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: AnalysisTriggers\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/invoice-lookup',\n name: 'invoice-lookup',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Invoice Lookup', name: 'invoice-lookup' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: InvoiceLookup\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/pdf-translator',\n name: 'pdf-translator',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'PDF Translator', name: 'pdf-translator' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: PdfTranslatorView\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/help',\n name: 'help',\n meta: {\n requiresAuth: true,\n breadcrumbs: [\n { text: 'Help' }\n ]\n },\n components: {\n layout: defaultLayout,\n content: Help\n },\n props: {\n layout: layoutProps\n }\n },\n {\n path: '/login',\n name: 'login',\n alias: ['/recovery', '/sessionExpired'], \n meta: { requiresAuth: false },\n components: {\n layout: simpleLayout,\n content: Login\n },\n props: {\n content: { productName: productName, enableAzureAD: true },\n redirectUrl: '/home'\n }\n }, \n {\n path: '/',\n redirect: '/home'\n },\n {\n path: '*',\n redirect: '/home'\n }\n ]\n});\n\nrouter.beforeEach((to, from, next) => { \n if (to.name === 'login' && commonState.authenticatedUser.authenticated) {\n next({ name: 'home' });\n }\n\n if (to.matched.some(record => record.meta.requiresAuth)) {\n if (!commonState.authenticatedUser.authenticated) {\n \n let codeQuery = checkForAzureAdCodeUrl(to);\n\n next({\n name: 'login',\n query: codeQuery\n });\n } else {\n next();\n }\n } else {\n next();\n }\n});\n\nexport default router;\n","import Vue from 'vue';\n\nVue.use(require('vue-moment'));\n\nVue.filter('currency', function(value: any) {\n const num = parseFloat(value);\n if (!isNaN(num)) {\n return num.toLocaleString(undefined, {\n style: 'currency',\n currency: 'USD'\n });\n }\n\n return value;\n});\n\nVue.filter('currencyTruncate', function(value: any) {\n const num = parseFloat(value);\n\n if (!isNaN(num)) {\n var res = num.toLocaleString(undefined, {\n style: 'currency',\n currency: 'USD'\n });\n\n res = res.replace(/\\.../, '');\n\n return res;\n }\n\n return value;\n});\n\nVue.filter('chargeTotalCurrency', function(value: any,replaceWithSpaces: boolean = false) {\n const num = parseFloat(value);\n if(num === 0){\n return \"-\";\n }\n else if (!isNaN(num)) {\n var res = num.toLocaleString(undefined, {\n style: 'currency',\n currency: 'USD'\n });\n\n if(replaceWithSpaces) {\n res = res.replace(/\\.00/, ' ');\n }\n else {\n res = res.replace(/\\.00/, '');\n }\n\n return res;\n }\n\n return value;\n});\n\nVue.filter('initials', function(value: any) {\n if (value == null || typeof value !== 'string') {\n return value;\n }\n\n const valueString = value as string;\n return valueString.split(' ').map(s => s[0]).join('').toUpperCase();\n});\n","import 'devextreme/dist/css/dx.common.css';\nimport './themes/generated/theme.base.css';\nimport './themes/generated/theme.additional.css';\nimport Vue from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nimport { SetupService } from '@questelservices/common';\nimport { getModule } from 'vuex-module-decorators';\nimport CommonModule from '@questelservices/common';\nimport './filters/filters';\n\n\nVue.config.productionTip = false;\n\n// initialize application\n(async () => {\n await new SetupService(store).initializeApp();\n\n let rootElement = new Vue({\n router,\n store,\n render: h => h(App)\n });\n\n rootElement.$mount('#app');\n\n const commonState = getModule(CommonModule, store);\n if (commonState.isAuthenticated) {\n rootElement.$root.$emit('login-success');\n }\n})();\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./respond-to-comment.vue?vue&type=style&index=0&id=f5f97a42&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./agent-fee-sheet-mass-adder.vue?vue&type=style&index=1&id=5ee9bdc4&prod&lang=scss&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=00115360&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-agents-fee-sheets.vue?vue&type=style&index=0&id=5edb1017&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./client-setup-main.vue?vue&type=style&index=0&id=689735bf&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./comments-grid.vue?vue&type=style&index=0&id=75b58a92&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pdf-translator.vue?vue&type=style&index=0&id=4d318fbc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./update-line-items-country.vue?vue&type=style&index=0&id=0c25dcaf&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./batch-details.vue?vue&type=style&index=0&id=0992d8f8&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-format-column.vue?vue&type=style&index=1&id=d6191aa4&prod&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./auditing.vue?vue&type=style&index=0&id=bb6b0aa0&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./apply-exchange-rate.vue?vue&type=style&index=0&id=ef72a4ce&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email-table.vue?vue&type=style&index=0&id=78c351e4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./matter-work-navigator.vue?vue&type=style&index=0&id=7cd85582&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./file-parse-submitted-files.vue?vue&type=style&index=0&id=665e094a&prod&lang=scss&scoped=true&\""],"sourceRoot":""}